diff --git a/.rubocop.yml b/.rubocop.yml index 90657ef..dd34054 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,10 +1,10 @@ AllCops: - TargetRubyVersion: 2.4 + TargetRubyVersion: 2.7 # Layout -Layout/AlignHash: +Layout/HashAlignment: EnforcedHashRocketStyle: table EnforcedColonStyle: table diff --git a/Gemfile b/Gemfile index 10ad069..5c502e2 100644 --- a/Gemfile +++ b/Gemfile @@ -3,7 +3,7 @@ source 'https://rubygems.org' # TODO: change branch back to edge once the changes are merged -git 'https://github.com/hyperstack-org/hyperstack', branch: 'hyperstack-js', glob: 'ruby/*/*.gemspec' do +git 'https://github.com/hyperstack-org/hyperstack', branch: 'edge', glob: 'ruby/*/*.gemspec' do gem 'rails-hyperstack' end diff --git a/Gemfile.lock b/Gemfile.lock index 668ee7b..02295e5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,203 +1,196 @@ GIT remote: https://github.com/hyperstack-org/hyperstack - revision: b81ca605b6327be34109b73b96d2b5ea767b7416 - branch: hyperstack-js + revision: 075162ff6cd9ecc8572c3947b3e55c06f669f789 + branch: edge glob: ruby/*/*.gemspec specs: - hyper-component (1.0.alpha1.5) - hyper-state (= 1.0.alpha1.5) - hyperstack-config (= 1.0.alpha1.5) - libv8 (~> 7.3.492.27.1) - mini_racer (~> 0.2.6) - opal (>= 0.11.0, < 0.12.0) + hyper-component (1.0.alpha1.8) + hyper-state (= 1.0.alpha1.8) + hyperstack-config (= 1.0.alpha1.8) opal-activesupport (~> 0.3.1) react-rails (>= 2.4.0, < 2.5.0) - hyper-model (1.0.alpha1.5) + hyper-model (1.0.alpha1.8) activemodel activerecord (>= 4.0.0) - hyper-component (= 1.0.alpha1.5) - hyper-operation (= 1.0.alpha1.5) - hyper-operation (1.0.alpha1.5) + hyper-operation (= 1.0.alpha1.8) + hyper-operation (1.0.alpha1.8) activerecord (>= 4.0.0) - hyper-component (= 1.0.alpha1.5) + hyper-component (= 1.0.alpha1.8) mutations opal-activesupport (~> 0.3.1) tty-table - hyper-router (1.0.alpha1.5) - hyper-component (= 1.0.alpha1.5) - hyper-state (= 1.0.alpha1.5) + hyper-router (1.0.alpha1.8) + hyper-component (= 1.0.alpha1.8) + hyper-state (= 1.0.alpha1.8) opal-browser (~> 0.2.0) - hyper-state (1.0.alpha1.5) - hyperstack-config (= 1.0.alpha1.5) - opal (>= 0.11.0, < 0.12.0) - hyperstack-config (1.0.alpha1.5) + hyper-state (1.0.alpha1.8) + hyperstack-config (= 1.0.alpha1.8) + hyperstack-config (1.0.alpha1.8) listen (~> 3.0) - mini_racer (~> 0.2.6) - opal (>= 0.11.0, < 0.12.0) + opal (>= 0.11.0, < 2.0) opal-browser (~> 0.2.0) uglifier websocket - rails-hyperstack (1.0.alpha1.5) - hyper-model (= 1.0.alpha1.5) - hyper-router (= 1.0.alpha1.5) - hyperstack-config (= 1.0.alpha1.5) - libv8 (~> 7.3.492.27.1) - mini_racer (~> 0.2.6) + rails-hyperstack (1.0.alpha1.8) + hyper-model (= 1.0.alpha1.8) + hyper-router (= 1.0.alpha1.8) + hyperstack-config (= 1.0.alpha1.8) opal-browser (~> 0.2.0) - opal-rails (~> 0.9.4) - rails (>= 4.0.0) + opal-rails + rails (>= 5.0.0, < 7.0) react-rails (>= 2.4.0, < 2.5.0) GEM remote: https://rubygems.org/ specs: - actioncable (5.2.4.1) - actionpack (= 5.2.4.1) + actioncable (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailer (5.2.4.1) - actionpack (= 5.2.4.1) - actionview (= 5.2.4.1) - activejob (= 5.2.4.1) + actionmailbox (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) + mail (>= 2.7.1) + actionmailer (6.1.4.1) + actionpack (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activesupport (= 6.1.4.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (5.2.4.1) - actionview (= 5.2.4.1) - activesupport (= 5.2.4.1) - rack (~> 2.0, >= 2.0.8) + actionpack (6.1.4.1) + actionview (= 6.1.4.1) + activesupport (= 6.1.4.1) + rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.2) - actionview (5.2.4.1) - activesupport (= 5.2.4.1) + rails-html-sanitizer (~> 1.0, >= 1.2.0) + actiontext (6.1.4.1) + actionpack (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) + nokogiri (>= 1.8.5) + actionview (6.1.4.1) + activesupport (= 6.1.4.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) - rails-html-sanitizer (~> 1.0, >= 1.0.3) - activejob (5.2.4.1) - activesupport (= 5.2.4.1) + rails-html-sanitizer (~> 1.1, >= 1.2.0) + activejob (6.1.4.1) + activesupport (= 6.1.4.1) globalid (>= 0.3.6) - activemodel (5.2.4.1) - activesupport (= 5.2.4.1) - activerecord (5.2.4.1) - activemodel (= 5.2.4.1) - activesupport (= 5.2.4.1) - arel (>= 9.0) - activestorage (5.2.4.1) - actionpack (= 5.2.4.1) - activerecord (= 5.2.4.1) - marcel (~> 0.3.1) - activesupport (5.2.4.1) + activemodel (6.1.4.1) + activesupport (= 6.1.4.1) + activerecord (6.1.4.1) + activemodel (= 6.1.4.1) + activesupport (= 6.1.4.1) + activestorage (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activesupport (= 6.1.4.1) + marcel (~> 1.0.0) + mini_mime (>= 1.1.0) + activesupport (6.1.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - arel (9.0.0) - ast (2.4.0) + i18n (>= 1.6, < 2) + minitest (>= 5.1) + tzinfo (~> 2.0) + zeitwerk (~> 2.3) + ast (2.4.2) babel-source (5.8.35) babel-transpiler (0.7.0) babel-source (>= 4.0, < 6) execjs (~> 2.0) builder (3.2.4) - concurrent-ruby (1.1.5) - connection_pool (2.2.2) - crass (1.0.5) - equatable (0.6.1) - erubi (1.9.0) - execjs (2.7.0) - ffi (1.11.3) - globalid (0.4.2) - activesupport (>= 4.2.0) - hike (1.2.3) - i18n (1.7.0) + concurrent-ruby (1.1.9) + connection_pool (2.2.5) + crass (1.0.6) + erubi (1.10.0) + execjs (2.8.1) + ffi (1.15.4) + globalid (0.5.2) + activesupport (>= 5.0) + i18n (1.8.11) concurrent-ruby (~> 1.0) - jquery-rails (4.3.5) - rails-dom-testing (>= 1, < 3) - railties (>= 4.2.0) - thor (>= 0.14, < 2.0) - libv8 (7.3.492.27.1) - listen (3.2.1) + listen (3.7.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.4.0) + loofah (2.12.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) - method_source (0.9.2) - mimemagic (0.3.3) - mini_mime (1.0.2) - mini_portile2 (2.4.0) - mini_racer (0.2.8) - libv8 (>= 6.9.411) - minitest (5.13.0) - mutations (0.9.0) + marcel (1.0.2) + method_source (1.0.0) + mini_mime (1.1.2) + minitest (5.14.4) + mutations (0.9.1) activesupport - necromancer (0.5.1) - nio4r (2.5.2) - nokogiri (1.10.7) - mini_portile2 (~> 2.4.0) - opal (0.11.4) + nio4r (2.5.8) + nokogiri (1.12.5-x86_64-linux) + racc (~> 1.4) + opal (1.3.2) ast (>= 2.3.0) - hike (~> 1.2) - parser (= 2.3.3.1) - sourcemap (~> 0.1.0) + parser (~> 3.0) opal-activesupport (0.3.3) opal (>= 0.5.0, < 2) opal-browser (0.2.0) opal paggio - opal-jquery (0.4.4) - opal (>= 0.10.0, < 1.1) - opal-rails (0.9.5) - jquery-rails - opal (>= 0.11.0, < 0.12) - opal-activesupport (>= 0.0.5) - opal-jquery (~> 0.4.0) - opal-sprockets (~> 0.4.2) - rails (>= 4.1, < 6.0) - sprockets-rails (>= 2.3.3, < 4.0) - opal-sprockets (0.4.3.0.11.0.3.7) - opal (~> 0.11.0) - sprockets (~> 3.7) + opal-jquery (0.4.6) + opal (>= 0.10.0, < 2.0) + opal-rails (2.0.1) + opal (~> 1.0) + opal-sprockets (~> 1.0) + rails (>= 6.0, < 7) + sprockets-rails (>= 3.0) + opal-sprockets (1.0.2) + opal (>= 1.0, < 2.0) + sprockets (~> 4.0) tilt (>= 1.4) paggio (0.2.6) - parser (2.3.3.1) - ast (~> 2.2) - pastel (0.7.3) - equatable (~> 0.6) + parser (3.0.2.0) + ast (~> 2.4.1) + pastel (0.8.0) tty-color (~> 0.5) - rack (2.0.8) + racc (1.6.0) + rack (2.2.3) rack-test (1.1.0) rack (>= 1.0, < 3) - rails (5.2.4.1) - actioncable (= 5.2.4.1) - actionmailer (= 5.2.4.1) - actionpack (= 5.2.4.1) - actionview (= 5.2.4.1) - activejob (= 5.2.4.1) - activemodel (= 5.2.4.1) - activerecord (= 5.2.4.1) - activestorage (= 5.2.4.1) - activesupport (= 5.2.4.1) - bundler (>= 1.3.0) - railties (= 5.2.4.1) + rails (6.1.4.1) + actioncable (= 6.1.4.1) + actionmailbox (= 6.1.4.1) + actionmailer (= 6.1.4.1) + actionpack (= 6.1.4.1) + actiontext (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activemodel (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) + bundler (>= 1.15.0) + railties (= 6.1.4.1) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) + rails-html-sanitizer (1.4.2) loofah (~> 2.3) - railties (5.2.4.1) - actionpack (= 5.2.4.1) - activesupport (= 5.2.4.1) + railties (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) method_source - rake (>= 0.8.7) - thor (>= 0.19.0, < 2.0) - rake (13.0.1) - rb-fsevent (0.10.3) + rake (>= 0.13) + thor (~> 1.0) + rake (13.0.6) + rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) react-rails (2.4.7) @@ -206,43 +199,40 @@ GEM execjs railties (>= 3.2) tilt - sourcemap (0.1.1) - sprockets (3.7.2) + sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.1) - actionpack (>= 4.0) - activesupport (>= 4.0) + sprockets-rails (3.3.0) + actionpack (>= 5.2) + activesupport (>= 5.2) sprockets (>= 3.0.0) - strings (0.1.8) - strings-ansi (~> 0.1) - unicode-display_width (~> 1.5) + strings (0.2.1) + strings-ansi (~> 0.2) + unicode-display_width (>= 1.5, < 3.0) unicode_utils (~> 1.4) strings-ansi (0.2.0) - thor (1.0.1) - thread_safe (0.3.6) + thor (1.1.0) tilt (2.0.10) - tty-color (0.5.0) - tty-screen (0.7.0) - tty-table (0.11.0) - equatable (~> 0.6) - necromancer (~> 0.5) - pastel (~> 0.7.2) - strings (~> 0.1.5) - tty-screen (~> 0.7) - tzinfo (1.2.6) - thread_safe (~> 0.1) + tty-color (0.6.0) + tty-screen (0.8.1) + tty-table (0.12.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-screen (~> 0.8) + tzinfo (2.0.4) + concurrent-ruby (~> 1.0) uglifier (4.2.0) execjs (>= 0.3.0, < 3) - unicode-display_width (1.6.0) + unicode-display_width (2.1.0) unicode_utils (1.4.0) - websocket (1.2.8) - websocket-driver (0.7.1) + websocket (1.2.9) + websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.4) + websocket-extensions (0.1.5) + zeitwerk (2.5.1) PLATFORMS - ruby + x86_64-linux DEPENDENCIES opal @@ -254,4 +244,4 @@ DEPENDENCIES uglifier BUNDLED WITH - 1.17.3 + 2.2.5 diff --git a/README.md b/README.md index a8e3de5..91ce00a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Hyperstack +This fork fix Gemfile, and hyperstack-compiler in order to get latest hyperstack (1.0.alpha1.8) and opal (1.3.2) working + ### Hyperstack.js Hyperstack client-side including: diff --git a/dist/hyper-router.js b/dist/hyper-router.js index 1579024..7a0a235 100644 --- a/dist/hyper-router.js +++ b/dist/hyper-router.js @@ -1,518 +1,601 @@ -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/boot"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["hyperstack/boot"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$attr_reader', '$<<', '$receivers', '$set_var', '$new', '$each', '$call']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), $a; + var $nesting = [self].concat($parent_nesting), $a; - if ($truthy((($a = Opal.const_get_relative($nesting, 'Operation', 'skip_raise')) ? 'constant' : nil))) { - } else { + if ($truthy((($a = $$($nesting, 'Operation', 'skip_raise')) ? 'constant' : nil))) { + return nil + } else { (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Application(){}; - var self = $Application = $klass($base, $super, 'Application', $Application); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Application'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Boot(){}; - var self = $Boot = $klass($base, $super, 'Boot', $Boot); + var self = $klass($base, $super, 'Boot'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $ReactDummyParams(){}; - var self = $ReactDummyParams = $klass($base, $super, 'ReactDummyParams', $ReactDummyParams); + var self = $klass($base, $super, 'ReactDummyParams'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ReactDummyParams_initialize_1; + var $nesting = [self].concat($parent_nesting), $ReactDummyParams_initialize$1; self.$attr_reader("context"); - return (Opal.defn(self, '$initialize', TMP_ReactDummyParams_initialize_1 = function $$initialize(context) { + return (Opal.def(self, '$initialize', $ReactDummyParams_initialize$1 = function $$initialize(context) { var self = this; return (self.context = context) - }, TMP_ReactDummyParams_initialize_1.$$arity = 1), nil) && 'initialize'; + }, $ReactDummyParams_initialize$1.$$arity = 1), nil) && 'initialize'; })($nesting[0], null, $nesting); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_on_dispatch_2, TMP_receivers_4, TMP_run_6; + var $nesting = [self].concat($parent_nesting), $on_dispatch$2, $receivers$3, $run$5; - Opal.defn(self, '$on_dispatch', TMP_on_dispatch_2 = function $$on_dispatch() { - var self = this, $iter = TMP_on_dispatch_2.$$p, block = $iter || nil; + Opal.def(self, '$on_dispatch', $on_dispatch$2 = function $$on_dispatch() { + var $iter = $on_dispatch$2.$$p, block = $iter || nil, self = this; - if ($iter) TMP_on_dispatch_2.$$p = null; - return self.$receivers()['$<<'](block) - }, TMP_on_dispatch_2.$$arity = 0); + if ($iter) $on_dispatch$2.$$p = null; + + + if ($iter) $on_dispatch$2.$$p = null;; + return self.$receivers()['$<<'](block); + }, $on_dispatch$2.$$arity = 0); - Opal.defn(self, '$receivers', TMP_receivers_4 = function $$receivers() { - var TMP_3, self = this; + Opal.def(self, '$receivers', $receivers$3 = function $$receivers() { + var $$4, self = this; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@receivers", $hash2(["force"], {"force": true})], (TMP_3 = function(){var self = TMP_3.$$s || this; + return $send($$$($$($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@receivers", $hash2(["force"], {"force": true})], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - return []}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)) - }, TMP_receivers_4.$$arity = 0); - return (Opal.defn(self, '$run', TMP_run_6 = function $$run($kwargs) { - var TMP_5, self = this, context, params = nil; + return []}, $$4.$$s = self, $$4.$$arity = 0, $$4)) + }, $receivers$3.$$arity = 0); + return (Opal.def(self, '$run', $run$5 = function $$run($kwargs) { + var context, $$6, self = this, params = nil; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + context = $kwargs.$$smap["context"]; if (context == null) { context = nil - } - - params = Opal.const_get_relative($nesting, 'ReactDummyParams').$new(context); - return $send(self.$receivers(), 'each', [], (TMP_5 = function(receiver){var self = TMP_5.$$s || this; -if (receiver == null) receiver = nil; - return receiver.$call(params)}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); - }, TMP_run_6.$$arity = -1), nil) && 'run'; + }; + params = $$($nesting, 'ReactDummyParams').$new(context); + return $send(self.$receivers(), 'each', [], ($$6 = function(receiver){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (receiver == null) { + receiver = nil; + }; + return receiver.$call(params);}, $$6.$$s = self, $$6.$$arity = 1, $$6)); + }, $run$5.$$arity = -1), nil) && 'run'; })(Opal.get_singleton_class(self), $nesting); - })($nesting[0], Opal.const_get_relative($nesting, 'Operation'), $nesting) + })($nesting[0], $$($nesting, 'Operation'), $nesting) })($nesting[0], null, $nesting); } })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/deprecation_warning"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["hyperstack/native_wrapper_compatibility"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; + + Opal.add_stubs(['$include?', '$instance_methods', '$include', '$extend']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Native'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Wrapper'); + + var $nesting = [self].concat($parent_nesting), $Wrapper_included$1; + + return (Opal.defs(self, '$included', $Wrapper_included$1 = function $$included(klass) { + var self = this; + + if ($truthy($$($nesting, 'Native').$instance_methods()['$include?']("to_n"))) { + return klass.$include($$($nesting, 'Native')) + } else { + return klass.$extend($$$($$($nesting, 'Native'), 'Helpers')) + } + }, $Wrapper_included$1.$$arity = 1), nil) && 'included' + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["hyperstack/deprecation_warning"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; Opal.add_stubs(['$production?', '$env', '$include?', '$<<']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_deprecation_warning_1; + var $nesting = [self].concat($parent_nesting), $Hyperstack_deprecation_warning$1; - Opal.defs(self, '$deprecation_warning', TMP_Hyperstack_deprecation_warning_1 = function $$deprecation_warning(name, message) { - var $a, self = this; + return (Opal.defs(self, '$deprecation_warning', $Hyperstack_deprecation_warning$1 = function $$deprecation_warning(name, message) { + var self = this, $ret_or_1 = nil; if (self.deprecation_messages == null) self.deprecation_messages = nil; if ($truthy(self.$env()['$production?']())) { return nil}; - self.deprecation_messages = ($truthy($a = self.deprecation_messages) ? $a : []); + self.deprecation_messages = (function() {if ($truthy(($ret_or_1 = self.deprecation_messages))) { + return $ret_or_1 + } else { + return [] + }; return nil; })(); message = "" + "Warning: Deprecated feature used in " + (name) + ". " + (message); if ($truthy(self.deprecation_messages['$include?'](message))) { return nil}; self.deprecation_messages['$<<'](message); - return console.warn.apply(console, [message]); - }, TMP_Hyperstack_deprecation_warning_1.$$arity = 2) + return console.warn.apply(console, [message]);; + }, $Hyperstack_deprecation_warning$1.$$arity = 2), nil) && 'deprecation_warning' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/string"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["hyperstack/string"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_to_json_1; + var $nesting = [self].concat($parent_nesting), $String_to_json$1; - return (Opal.defn(self, '$to_json', TMP_String_to_json_1 = function $$to_json() { + return (Opal.def(self, '$to_json', $String_to_json$1 = function $$to_json() { var self = this; return JSON.stringify(self) - }, TMP_String_to_json_1.$$arity = 0), nil) && 'to_json' + }, $String_to_json$1.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/client_stubs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack/client_stubs"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_import_1, TMP_imports_2, TMP_import_tree_3; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $import$1, $imports$2, $import_tree$3; - Opal.defn(self, '$import', TMP_import_1 = function($a_rest) { - var self = this, args; + Opal.def(self, '$import', $import$1 = function($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_import_1.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $import$1.$$arity = -1); - Opal.defn(self, '$imports', TMP_imports_2 = function $$imports($a_rest) { - var self = this, args; + Opal.def(self, '$imports', $imports$2 = function $$imports($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_imports_2.$$arity = -1); - return (Opal.defn(self, '$import_tree', TMP_import_tree_3 = function $$import_tree($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_import_tree_3.$$arity = -1), nil) && 'import_tree'; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $imports$2.$$arity = -1); + return (Opal.def(self, '$import_tree', $import_tree$3 = function $$import_tree($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $import_tree$3.$$arity = -1), nil) && 'import_tree'; })(Opal.get_singleton_class(self), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/context"] = function(Opal) { +Opal.modules["hyperstack/context"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$instance_variable_get', '$!', '$key?', '$[]', '$dup', '$[]=', '$-', '$instance_variable_set', '$each', '$run', '$new']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Context, self = $Context = $module($base, 'Context'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Context'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Context_set_var_1, TMP_Context_reset$B_5; + var $nesting = [self].concat($parent_nesting), $Context_set_var$1, $Context_reset$excl$2; - Opal.defs(self, '$set_var', TMP_Context_set_var_1 = function $$set_var(ctx, var$, $kwargs) { - var $a, $b, self = this, force, $iter = TMP_Context_set_var_1.$$p, $yield = $iter || nil, inst_value_b4 = nil, $writer = nil; + Opal.defs(self, '$set_var', $Context_set_var$1 = function $$set_var(ctx, var$, $kwargs) { + var force, $iter = $Context_set_var$1.$$p, $yield = $iter || nil, self = this, inst_value_b4 = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $writer = nil, $ret_or_4 = nil, $ret_or_5 = nil; if (self.context == null) self.context = nil; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + if ($iter) $Context_set_var$1.$$p = null; + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + force = $kwargs.$$smap["force"]; if (force == null) { force = nil - } - if ($iter) TMP_Context_set_var_1.$$p = null; - + }; inst_value_b4 = ctx.$instance_variable_get(var$); - if ($truthy(($truthy($a = ($truthy($b = self.context) ? self.context['$[]'](ctx)['$key?'](var$)['$!']() : $b)) ? ($truthy($b = force) ? $b : inst_value_b4['$!']()) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.context))) { + return self.context['$[]'](ctx)['$key?'](var$)['$!']() + } else { + return $ret_or_2 + }; return nil; })()))) { - $writer = [var$, ($truthy($a = inst_value_b4) ? inst_value_b4.$dup() : $a)]; + if ($truthy(($ret_or_3 = force))) { + return $ret_or_3 + } else { + return inst_value_b4['$!']() + }; + } else { + return $ret_or_1 + }; return nil; })())) { + + $writer = [var$, (function() {if ($truthy(($ret_or_4 = inst_value_b4))) { + return inst_value_b4.$dup() + } else { + return $ret_or_4 + }; return nil; })()]; $send(self.context['$[]'](ctx), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];}; - return ($truthy($a = inst_value_b4) ? $a : ctx.$instance_variable_set(var$, Opal.yieldX($yield, []))); - }, TMP_Context_set_var_1.$$arity = -3); - Opal.defs(self, '$reset!', TMP_Context_reset$B_5 = function(reboot) { - var TMP_2, TMP_4, self = this; + if ($truthy(($ret_or_5 = inst_value_b4))) { + return $ret_or_5 + } else { + return ctx.$instance_variable_set(var$, Opal.yieldX($yield, [])) + }; + }, $Context_set_var$1.$$arity = -3); + return (Opal.defs(self, '$reset!', $Context_reset$excl$2 = function(reboot) { + var $$3, $$5, self = this; if (self.context == null) self.context = nil; + + if (reboot == null) { reboot = true; - } + }; if ($truthy(self.context)) { - $send(self.context, 'each', [], (TMP_2 = function(ctx, vars){var self = TMP_2.$$s || this, TMP_3; -if (ctx == null) ctx = nil;if (vars == null) vars = nil; - return $send(vars, 'each', [], (TMP_3 = function(var$, init){var self = TMP_3.$$s || this, $a; -if (var$ == null) var$ = nil;if (init == null) init = nil; - return ctx.$instance_variable_set(var$, ($truthy($a = init) ? init.$dup() : $a))}, TMP_3.$$s = self, TMP_3.$$arity = 2, TMP_3))}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)); + $send(self.context, 'each', [], ($$3 = function(ctx, vars){var self = $$3.$$s == null ? this : $$3.$$s, $$4; + + + + if (ctx == null) { + ctx = nil; + }; + + if (vars == null) { + vars = nil; + }; + return $send(vars, 'each', [], ($$4 = function(var$, init){var self = $$4.$$s == null ? this : $$4.$$s, $ret_or_6 = nil; + + + + if (var$ == null) { + var$ = nil; + }; + + if (init == null) { + init = nil; + }; + return ctx.$instance_variable_set(var$, (function() {if ($truthy(($ret_or_6 = init))) { + return init.$dup() + } else { + return $ret_or_6 + }; return nil; })());}, $$4.$$s = self, $$4.$$arity = 2, $$4));}, $$3.$$s = self, $$3.$$arity = 2, $$3)); if ($truthy(reboot)) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Application'), 'Boot').$run() - } else { + return $$$($$$($$($nesting, 'Hyperstack'), 'Application'), 'Boot').$run() + } else { return nil }; - } else { - return (self.context = $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_4 = function(h, k){var self = TMP_4.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - + } else { + return (self.context = $send($$($nesting, 'Hash'), 'new', [], ($$5 = function(h, k){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; $writer = [k, $hash2([], {})]; $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_4.$$s = self, TMP_4.$$arity = 2, TMP_4))) - } - }, TMP_Context_reset$B_5.$$arity = -1); + return $writer[$rb_minus($writer["length"], 1)];}, $$5.$$s = self, $$5.$$arity = 2, $$5))) + }; + }, $Context_reset$excl$2.$$arity = -1), nil) && 'reset!'; })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/js_imports"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["hyperstack/js_imports"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$!=', '$!', '$each', '$raise']); + Opal.add_stubs(['$!', '$each', '$raise']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_js_import_2; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $js_import$1; - return (Opal.defn(self, '$js_import', TMP_js_import_2 = function $$js_import(value, $kwargs) { - var $a, $b, TMP_1, self = this, client_only, server_only, defines, on_server = nil; + return (Opal.def(self, '$js_import', $js_import$1 = function $$js_import(value, $kwargs) { + var defines, client_only, server_only, $$2, self = this, on_server = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if (!Opal.hasOwnProperty.call($kwargs.$$smap, 'defines')) { + throw Opal.ArgumentError.$new('missing keyword: defines'); } + defines = $kwargs.$$smap["defines"];; + client_only = $kwargs.$$smap["client_only"]; if (client_only == null) { client_only = nil - } + }; + server_only = $kwargs.$$smap["server_only"]; if (server_only == null) { server_only = nil - } - if (!Opal.hasOwnProperty.call($kwargs.$$smap, 'defines')) { - throw Opal.ArgumentError.$new('missing keyword: defines'); - } - defines = $kwargs.$$smap["defines"]; - + }; defines = [].concat(Opal.to_a(defines)); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - return nil + + on_server = typeof Opal.global.document === 'undefined'; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = server_only))) { + return on_server['$!']() + } else { + return $ret_or_2 + }; return nil; })()))) { + return $ret_or_1 + } else { + + if ($truthy(($ret_or_3 = client_only))) { + return on_server } else { + return $ret_or_3 + }; + }; return nil; })())) { + return nil}; + return $send(defines, 'each', [], ($$2 = function(name){var self = $$2.$$s == null ? this : $$2.$$s; + - on_server = typeof Opal.global.document === 'undefined'; - if ($truthy(($truthy($a = ($truthy($b = server_only) ? on_server['$!']() : $b)) ? $a : ($truthy($b = client_only) ? on_server : $b)))) { - return nil}; - return $send(defines, 'each', [], (TMP_1 = function(name){var self = TMP_1.$$s || this; -if (name == null) name = nil; - if ($truthy(Opal.global[name] === undefined)) { - } else { - return nil; - }; - return self.$raise("" + ("" + "The package " + (name) + " was not found. Add it to the webpack ") + ("" + ((function() {if ($truthy(client_only)) { - return "client_only.js" - } else { - return "client_and_server.js" - }; return nil; })()) + " manifest."));}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); - }; - }, TMP_js_import_2.$$arity = 2), nil) && 'js_import' + if (name == null) { + name = nil; + }; + if ($truthy(Opal.global[name] === undefined)) { + } else { + return nil; + }; + return self.$raise("" + ("" + "The package " + (name) + " was not found. Add it to the webpack ") + ("" + ((function() {if ($truthy(client_only)) { + return "client_only.js" + } else { + return "client_and_server.js" + }; return nil; })()) + " manifest."));}, $$2.$$s = self, $$2.$$arity = 1, $$2));; + }, $js_import$1.$$arity = 2), nil) && 'js_import' })(Opal.get_singleton_class(self), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/on_client"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack/on_client"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - Opal.add_stubs(['$==', '$!']); + Opal.add_stubs(['$!']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_on_client$q_1; + var $nesting = [self].concat($parent_nesting), $Hyperstack_on_client$ques$1; - Opal.defs(self, '$on_client?', TMP_Hyperstack_on_client$q_1 = function() { + return (Opal.defs(self, '$on_client?', $Hyperstack_on_client$ques$1 = function() { var self = this; - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - return (typeof Opal.global.document === 'undefined')['$!']() - } else { - return nil - } - }, TMP_Hyperstack_on_client$q_1.$$arity = 0) + return (typeof Opal.global.document === 'undefined')['$!']() + }, $Hyperstack_on_client$ques$1.$$arity = 0), nil) && 'on_client?' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/active_support_string_inquirer"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; +Opal.modules["hyperstack/active_support_string_inquirer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $range = Opal.range; Opal.add_stubs(['$private', '$==', '$[]']); return (function($base, $parent_nesting) { - var $ActiveSupport, self = $ActiveSupport = $module($base, 'ActiveSupport'); + var self = $module($base, 'ActiveSupport'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $StringInquirer(){}; - var self = $StringInquirer = $klass($base, $super, 'StringInquirer', $StringInquirer); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'StringInquirer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_StringInquirer_respond_to_missing$q_1, TMP_StringInquirer_method_missing_2; + var $nesting = [self].concat($parent_nesting), $StringInquirer_respond_to_missing$ques$1, $StringInquirer_method_missing$2; self.$private(); - Opal.defn(self, '$respond_to_missing?', TMP_StringInquirer_respond_to_missing$q_1 = function(method_name, include_private) { - var $a, self = this, $iter = TMP_StringInquirer_respond_to_missing$q_1.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$respond_to_missing?', $StringInquirer_respond_to_missing$ques$1 = function(method_name, include_private) { + var $iter = $StringInquirer_respond_to_missing$ques$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil; + if ($iter) $StringInquirer_respond_to_missing$ques$1.$$p = null; + + if (include_private == null) { include_private = false; - } - if ($iter) TMP_StringInquirer_respond_to_missing$q_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return ($truthy($a = method_name['$[]'](-1)['$==']("?")) ? $a : $send(self, Opal.find_super_dispatcher(self, 'respond_to_missing?', TMP_StringInquirer_respond_to_missing$q_1, false), $zuper, $iter)) - }, TMP_StringInquirer_respond_to_missing$q_1.$$arity = -2); - return (Opal.defn(self, '$method_missing', TMP_StringInquirer_method_missing_2 = function $$method_missing(method_name, $a_rest) { - var self = this, arguments$, $iter = TMP_StringInquirer_method_missing_2.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - arguments$ = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - arguments$[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_StringInquirer_method_missing_2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + }; + if ($truthy(($ret_or_1 = method_name['$[]'](-1)['$==']("?")))) { + return $ret_or_1 + } else { + return $send2(self, $find_super(self, 'respond_to_missing?', $StringInquirer_respond_to_missing$ques$1, false, true), 'respond_to_missing?', [method_name, include_private], $iter) + }; + }, $StringInquirer_respond_to_missing$ques$1.$$arity = -2); + return (Opal.def(self, '$method_missing', $StringInquirer_method_missing$2 = function $$method_missing(method_name, $a) { + var $post_args, arguments$, $iter = $StringInquirer_method_missing$2.$$p, $yield = $iter || nil, self = this; + + if ($iter) $StringInquirer_method_missing$2.$$p = null; + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + arguments$ = $post_args;; if (method_name['$[]'](-1)['$==']("?")) { return self['$=='](method_name['$[]']($range(0, -2, false))) - } else { - return $send(self, Opal.find_super_dispatcher(self, 'method_missing', TMP_StringInquirer_method_missing_2, false), $zuper, $iter) - } - }, TMP_StringInquirer_method_missing_2.$$arity = -2), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'String'), $nesting) + } else { + return $send2(self, $find_super(self, 'method_missing', $StringInquirer_method_missing$2, false, true), 'method_missing', [method_name].concat(Opal.to_a(arguments)), $iter) + }; + }, $StringInquirer_method_missing$2.$$arity = -2), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'String'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack_env"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["hyperstack_env"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; Opal.add_stubs(['$new']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_env_1; + var $nesting = [self].concat($parent_nesting), $Hyperstack_env$1; - Opal.defs(self, '$env', TMP_Hyperstack_env_1 = function $$env() { - var $a, self = this; + return (Opal.defs(self, '$env', $Hyperstack_env$1 = function $$env() { + var self = this, $ret_or_1 = nil; if (self.environment == null) self.environment = nil; - return (self.environment = ($truthy($a = self.environment) ? $a : Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'StringInquirer').$new("development"))) - }, TMP_Hyperstack_env_1.$$arity = 0) + return (self.environment = (function() {if ($truthy(($ret_or_1 = self.environment))) { + return $ret_or_1 + } else { + return $$$($$($nesting, 'ActiveSupport'), 'StringInquirer').$new("development") + }; return nil; })()) + }, $Hyperstack_env$1.$$arity = 0), nil) && 'env' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/hotloader/stub"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass; +Opal.modules["hyperstack/hotloader/stub"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), $a; + var $nesting = [self].concat($parent_nesting), $a; - if ($truthy((($a = Opal.const_get_relative($nesting, 'Hotloader', 'skip_raise')) ? 'constant' : nil))) { - } else { - (function($base, $super, $parent_nesting) { - function $Hotloader(){}; - var self = $Hotloader = $klass($base, $super, 'Hotloader', $Hotloader); + if ($truthy((($a = $$($nesting, 'Hotloader', 'skip_raise')) ? 'constant' : nil))) { + return nil + } else { + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Hotloader'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hotloader_when_file_updates_1; + var $nesting = [self].concat($parent_nesting), $Hotloader_when_file_updates$1; - return Opal.defs(self, '$when_file_updates', TMP_Hotloader_when_file_updates_1 = function $$when_file_updates() { - var self = this, $iter = TMP_Hotloader_when_file_updates_1.$$p, block = $iter || nil; + return (Opal.defs(self, '$when_file_updates', $Hotloader_when_file_updates$1 = function $$when_file_updates() { + var $iter = $Hotloader_when_file_updates$1.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Hotloader_when_file_updates_1.$$p = null; - return nil - }, TMP_Hotloader_when_file_updates_1.$$arity = 0) + if ($iter) $Hotloader_when_file_updates$1.$$p = null; + + + if ($iter) $Hotloader_when_file_updates$1.$$p = null;; + return nil; + }, $Hotloader_when_file_updates$1.$$arity = 0), nil) && 'when_file_updates' })($nesting[0], null, $nesting) } })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack-config"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack-config"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - Opal.add_stubs(['$require', '$==']); + Opal.add_stubs(['$require']); self.$require("hyperstack/boot"); (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_naming_convention_1; + var $nesting = [self].concat($parent_nesting), $Hyperstack_naming_convention$1; - Opal.defs(self, '$naming_convention', TMP_Hyperstack_naming_convention_1 = function $$naming_convention() { + return (Opal.defs(self, '$naming_convention', $Hyperstack_naming_convention$1 = function $$naming_convention() { var self = this; return "camelize_params" - }, TMP_Hyperstack_naming_convention_1.$$arity = 0) + }, $Hyperstack_naming_convention$1.$$arity = 0), nil) && 'naming_convention' })($nesting[0], $nesting); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - - self.$require("hyperstack/deprecation_warning"); - self.$require("hyperstack/string"); - self.$require("hyperstack/client_stubs"); - self.$require("hyperstack/context"); - self.$require("hyperstack/js_imports"); - self.$require("hyperstack/on_client"); - self.$require("hyperstack/active_support_string_inquirer.rb"); - self.$require("hyperstack_env"); - return self.$require("hyperstack/hotloader/stub"); - } else { - return nil - }; + + self.$require("hyperstack/native_wrapper_compatibility"); + self.$require("hyperstack/deprecation_warning"); + self.$require("hyperstack/string"); + self.$require("hyperstack/client_stubs"); + self.$require("hyperstack/context"); + self.$require("hyperstack/js_imports"); + self.$require("hyperstack/on_client"); + self.$require("hyperstack/active_support_string_inquirer.rb"); + self.$require("hyperstack_env"); + return self.$require("hyperstack/hotloader/stub");; }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["hyperstack/internal/component"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - Opal.add_stubs(['$require', '$!=', '$attr_accessor']); + Opal.add_stubs(['$require', '$attr_accessor']); self.$require("hyperstack-config"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + nil; + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); return self.$attr_accessor("after_error_args") })(Opal.get_singleton_class(self), $nesting) @@ -521,296 +604,344 @@ Opal.modules["hyperstack/internal/component"] = function(Opal) { })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/callbacks"] = function(Opal) { +Opal.modules["hyperstack/internal/callbacks"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; - Opal.add_stubs(['$!=', '$extend', '$each', '$flatten', '$callbacks_for', '$class', '$is_a?', '$instance_exec', '$to_proc', '$send', '$define_singleton_method', '$set_var', '$<<', '$push', '$when_file_updates', '$delete_if', '$equal?', '$call', '$+', '$respond_to?', '$superclass', '$any?']); + Opal.add_stubs(['$extend', '$each', '$flatten', '$callbacks_for', '$class', '$is_a?', '$method', '$send', '$define_singleton_method', '$set_var', '$lambda', '$instance_exec', '$to_proc', '$<<', '$push', '$when_file_updates', '$delete_if', '$equal?', '$call', '$+', '$respond_to?', '$superclass', '$any?']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Callbacks, self = $Callbacks = $module($base, 'Callbacks'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Callbacks'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Callbacks_included_1, TMP_Callbacks_run_callback_3; + var $nesting = [self].concat($parent_nesting), $Callbacks_included$1, $Callbacks_run_callback$2; - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; - Opal.defs(self, '$included', TMP_Callbacks_included_1 = function $$included(base) { + nil; + Opal.defs(self, '$included', $Callbacks_included$1 = function $$included(base) { var self = this; - return base.$extend(Opal.const_get_relative($nesting, 'ClassMethods')) - }, TMP_Callbacks_included_1.$$arity = 1); + return base.$extend($$($nesting, 'ClassMethods')) + }, $Callbacks_included$1.$$arity = 1); - Opal.defn(self, '$run_callback', TMP_Callbacks_run_callback_3 = function $$run_callback(name, $a_rest) { - var TMP_2, self = this, args, $iter = TMP_Callbacks_run_callback_3.$$p, $yield = $iter || nil; + Opal.def(self, '$run_callback', $Callbacks_run_callback$2 = function $$run_callback(name, $a) { + var $post_args, args, $$3, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Callbacks_run_callback_3.$$p = null; - $send(self.$class().$callbacks_for(name).$flatten(), 'each', [], (TMP_2 = function(callback){var self = TMP_2.$$s || this, result = nil; -if (callback == null) callback = nil; - result = (function() {if ($truthy(callback['$is_a?'](Opal.const_get_relative($nesting, 'Proc')))) { - return $send(self, 'instance_exec', Opal.to_a(args), callback.$to_proc()) - } else { - return $send(self, 'send', [callback].concat(Opal.to_a(args))) - }; return nil; })(); - if (($yield !== nil)) { - return (args = Opal.yield1($yield, result)) - } else { - return nil - };}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + $send(self.$class().$callbacks_for(name).$flatten(), 'each', [], ($$3 = function(callback){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (callback == null) { + callback = nil; + }; + if ($truthy(callback['$is_a?']($$($nesting, 'Proc')))) { + } else { + callback = self.$method(callback) + }; + return (args = $send(self.$class(), 'send', ["" + "_" + (name) + "_before_call_hook", name, self, callback].concat(Opal.to_a(args))));}, $$3.$$s = self, $$3.$$arity = 1, $$3)); return args; - }, TMP_Callbacks_run_callback_3.$$arity = -2); - (function($base, $parent_nesting) { - var $ClassMethods, self = $ClassMethods = $module($base, 'ClassMethods'); + }, $Callbacks_run_callback$2.$$arity = -2); + return (function($base, $parent_nesting) { + var self = $module($base, 'ClassMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassMethods_define_callback_4, TMP_ClassMethods_callbacks_for_10, TMP_ClassMethods_callbacks$q_11; + var $nesting = [self].concat($parent_nesting), $ClassMethods_define_callback$4, $ClassMethods_callbacks_for$11, $ClassMethods_callbacks$ques$12; - Opal.defn(self, '$define_callback', TMP_ClassMethods_define_callback_4 = function $$define_callback(callback_name) { - var TMP_5, TMP_7, self = this, $iter = TMP_ClassMethods_define_callback_4.$$p, after_define_hook = $iter || nil, wrapper_name = nil; + Opal.def(self, '$define_callback', $ClassMethods_define_callback$4 = function $$define_callback(callback_name, $kwargs) { + var before_call_hook, after_define_hook, $$5, $$7, $$8, $iter = $ClassMethods_define_callback$4.$$p, $yield = $iter || nil, self = this, wrapper_name = nil, $ret_or_1 = nil; - if ($iter) TMP_ClassMethods_define_callback_4.$$p = null; + if ($iter) $ClassMethods_define_callback$4.$$p = null; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + before_call_hook = $kwargs.$$smap["before_call_hook"]; + if (before_call_hook == null) { + before_call_hook = nil + }; + + after_define_hook = $kwargs.$$smap["after_define_hook"]; + if (after_define_hook == null) { + after_define_hook = nil + }; wrapper_name = "" + "_" + (callback_name) + "_callbacks"; - $send(self, 'define_singleton_method', [wrapper_name], (TMP_5 = function(){var self = TMP_5.$$s || this, TMP_6; + $send(self, 'define_singleton_method', [wrapper_name], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s, $$6; - return $send(Opal.const_get_relative($nesting, 'Context'), 'set_var', [self, "" + "@" + (wrapper_name), $hash2(["force"], {"force": true})], (TMP_6 = function(){var self = TMP_6.$$s || this; + return $send($$($nesting, 'Context'), 'set_var', [self, "" + "@" + (wrapper_name), $hash2(["force"], {"force": true})], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; - return []}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6))}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5)); - return $send(self, 'define_singleton_method', [callback_name], (TMP_7 = function($a_rest){var self = TMP_7.$$s || this, block, args, TMP_8; + return []}, $$6.$$s = self, $$6.$$arity = 0, $$6))}, $$5.$$s = self, $$5.$$arity = 0, $$5)); + before_call_hook = (function() {if ($truthy(($ret_or_1 = before_call_hook))) { + return $ret_or_1 + } else { + return $send(self, 'lambda', [], ($$7 = function(_name, sself, proc, $a){var self = $$7.$$s == null ? this : $$7.$$s, $post_args, args; - block = TMP_7.$$p || nil; - if (block) TMP_7.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - + + + if (_name == null) { + _name = nil; + }; + + if (sself == null) { + sself = nil; + }; + + if (proc == null) { + proc = nil; + }; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + $send(sself, 'instance_exec', Opal.to_a(args), proc.$to_proc()); + return args;}, $$7.$$s = self, $$7.$$arity = -4, $$7)) + }; return nil; })(); + $send(self, 'define_singleton_method', ["" + "_" + (callback_name) + "_before_call_hook"], before_call_hook.$to_proc()); + return $send(self, 'define_singleton_method', [callback_name], ($$8 = function($a){var self = $$8.$$s == null ? this : $$8.$$s, $iter = $$8.$$p, block = $iter || nil, $post_args, args, $$9; + + + + if ($iter) $$8.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ((block !== nil)) { args['$<<'](block)}; self.$send(wrapper_name).$push(args); - $send(Opal.const_get_relative($nesting, 'Hotloader'), 'when_file_updates', [], (TMP_8 = function(){var self = TMP_8.$$s || this, TMP_9; + $send($$($nesting, 'Hotloader'), 'when_file_updates', [], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s, $$10; + + return $send(self.$send(wrapper_name), 'delete_if', [], ($$10 = function(item){var self = $$10.$$s == null ? this : $$10.$$s; - return $send(self.$send(wrapper_name), 'delete_if', [], (TMP_9 = function(item){var self = TMP_9.$$s || this; -if (item == null) item = nil; - return item['$equal?'](args)}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9))}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8)); + + + if (item == null) { + item = nil; + }; + return item['$equal?'](args);}, $$10.$$s = self, $$10.$$arity = 1, $$10))}, $$9.$$s = self, $$9.$$arity = 0, $$9)); if ($truthy(after_define_hook)) { - return $send(after_define_hook, 'call', Opal.to_a(args), block.$to_proc()) - } else { + return after_define_hook.$call(self) + } else { return nil - };}, TMP_7.$$s = self, TMP_7.$$arity = -1, TMP_7)); - }, TMP_ClassMethods_define_callback_4.$$arity = 1); + };}, $$8.$$s = self, $$8.$$arity = -1, $$8)); + }, $ClassMethods_define_callback$4.$$arity = -2); - Opal.defn(self, '$callbacks_for', TMP_ClassMethods_callbacks_for_10 = function $$callbacks_for(callback_name) { + Opal.def(self, '$callbacks_for', $ClassMethods_callbacks_for$11 = function $$callbacks_for(callback_name) { var self = this, wrapper_name = nil; wrapper_name = "" + "_" + (callback_name) + "_callbacks"; return $rb_plus((function() {if ($truthy(self.$superclass()['$respond_to?']("callbacks_for"))) { return self.$superclass().$callbacks_for(callback_name) - } else { + } else { return [] }; return nil; })(), self.$send(wrapper_name)); - }, TMP_ClassMethods_callbacks_for_10.$$arity = 1); - - Opal.defn(self, '$callbacks?', TMP_ClassMethods_callbacks$q_11 = function(name) { + }, $ClassMethods_callbacks_for$11.$$arity = 1); + return (Opal.def(self, '$callbacks?', $ClassMethods_callbacks$ques$12 = function(name) { var self = this; return self.$callbacks_for(name)['$any?']() - }, TMP_ClassMethods_callbacks$q_11.$$arity = 1); + }, $ClassMethods_callbacks$ques$12.$$arity = 1), nil) && 'callbacks?'; })($nesting[0], $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/auto_unmount"] = function(Opal) { +Opal.modules["hyperstack/internal/auto_unmount"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$include', '$class_eval', '$define_callback', '$run_callback', '$each', '$[]', '$objects_to_unmount', '$to_proc', '$delete', '$instance_variables', '$instance_variable_get', '$respond_to?', '$unmount', '$==', '$unmounted?', '$tap', '$define_singleton_method', '$abort', '$<<', '$new', '$[]=', '$-']); + Opal.add_stubs(['$include', '$class_eval', '$define_callback', '$run_callback', '$each', '$[]', '$objects_to_unmount', '$to_proc', '$delete', '$instance_variables', '$instance_variable_get', '$respond_to?', '$unmount', '$unmounted?', '$tap', '$define_singleton_method', '$abort', '$<<', '$new', '$[]=', '$-']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $AutoUnmount, self = $AutoUnmount = $module($base, 'AutoUnmount'); + return (function($base, $parent_nesting) { + var self = $module($base, 'AutoUnmount'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_AutoUnmount_included_2, TMP_AutoUnmount_unmounted$q_3, TMP_AutoUnmount_unmount_5, TMP_AutoUnmount_every_6, TMP_AutoUnmount_after_9; + var $nesting = [self].concat($parent_nesting), $AutoUnmount_included$1, $AutoUnmount_unmounted$ques$3, $AutoUnmount_unmount$4, $AutoUnmount_every$6, $AutoUnmount_after$9; - Opal.defs(self, '$included', TMP_AutoUnmount_included_2 = function $$included(base) { - var TMP_1, self = this; + Opal.defs(self, '$included', $AutoUnmount_included$1 = function $$included(base) { + var $$2, self = this; - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Callbacks')); - return $send(base, 'class_eval', [], (TMP_1 = function(){var self = TMP_1.$$s || this; + base.$include($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Callbacks')); + return $send(base, 'class_eval', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - return self.$define_callback("before_unmount")}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); - }, TMP_AutoUnmount_included_2.$$arity = 1); + return self.$define_callback("before_unmount")}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + }, $AutoUnmount_included$1.$$arity = 1); - Opal.defn(self, '$unmounted?', TMP_AutoUnmount_unmounted$q_3 = function() { + Opal.def(self, '$unmounted?', $AutoUnmount_unmounted$ques$3 = function() { var self = this; if (self.__hyperstack_internal_auto_unmount_unmounted == null) self.__hyperstack_internal_auto_unmount_unmounted = nil; return self.__hyperstack_internal_auto_unmount_unmounted - }, TMP_AutoUnmount_unmounted$q_3.$$arity = 0); + }, $AutoUnmount_unmounted$ques$3.$$arity = 0); - Opal.defn(self, '$unmount', TMP_AutoUnmount_unmount_5 = function $$unmount() { - var TMP_4, self = this; + Opal.def(self, '$unmount', $AutoUnmount_unmount$4 = function $$unmount() { + var $$5, self = this; self.$run_callback("before_unmount"); - $send(Opal.const_get_relative($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self), 'each', [], "unmount".$to_proc()); - Opal.const_get_relative($nesting, 'AutoUnmount').$objects_to_unmount().$delete(self); - $send(self.$instance_variables(), 'each', [], (TMP_4 = function(var$){var self = TMP_4.$$s || this, val = nil; -if (var$ == null) var$ = nil; - + $send($$($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self), 'each', [], "unmount".$to_proc()); + $$($nesting, 'AutoUnmount').$objects_to_unmount().$delete(self); + $send(self.$instance_variables(), 'each', [], ($$5 = function(var$){var self = $$5.$$s == null ? this : $$5.$$s, val = nil; + + + + if (var$ == null) { + var$ = nil; + }; val = self.$instance_variable_get(var$); try { if ($truthy(val['$respond_to?']("unmount"))) { return val.$unmount() - } else { + } else { return nil } } catch ($err) { - if (Opal.rescue($err, [(function() {if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'JS'), 'Error') - } else { - return nil - }; return nil; })()])) { + if (Opal.rescue($err, [$$$($$($nesting, 'JS'), 'Error')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - };;}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); + };;}, $$5.$$s = self, $$5.$$arity = 1, $$5)); return (self.__hyperstack_internal_auto_unmount_unmounted = true); - }, TMP_AutoUnmount_unmount_5.$$arity = 0); + }, $AutoUnmount_unmount$4.$$arity = 0); - Opal.defn(self, '$every', TMP_AutoUnmount_every_6 = function $$every($a_rest) { - var TMP_7, self = this, args, $iter = TMP_AutoUnmount_every_6.$$p, block = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$every', $AutoUnmount_every$6 = function $$every($a) { + var $iter = $AutoUnmount_every$6.$$p, block = $iter || nil, $post_args, args, $$7, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_AutoUnmount_every_6.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $AutoUnmount_every$6.$$p = null; + + if ($iter) $AutoUnmount_every$6.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ($truthy(self['$unmounted?']())) { return nil}; - return $send($send(self, Opal.find_super_dispatcher(self, 'every', TMP_AutoUnmount_every_6, false), $zuper, $iter), 'tap', [], (TMP_7 = function(id){var self = TMP_7.$$s || this, TMP_8, sself = nil; -if (id == null) id = nil; - + return $send($send2(self, $find_super(self, 'every', $AutoUnmount_every$6, false, true), 'every', Opal.to_a(args), $iter), 'tap', [], ($$7 = function(id){var self = $$7.$$s == null ? this : $$7.$$s, $$8, sself = nil; + + + + if (id == null) { + id = nil; + }; sself = self; - $send(id, 'define_singleton_method', ["unmount"], (TMP_8 = function(){var self = TMP_8.$$s || this; + $send(id, 'define_singleton_method', ["unmount"], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; - return self.$abort()}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8)); - return Opal.const_get_relative($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self)['$<<'](id);}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); - }, TMP_AutoUnmount_every_6.$$arity = -1); + return self.$abort()}, $$8.$$s = self, $$8.$$arity = 0, $$8)); + return $$($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self)['$<<'](id);}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + }, $AutoUnmount_every$6.$$arity = -1); - Opal.defn(self, '$after', TMP_AutoUnmount_after_9 = function $$after($a_rest) { - var TMP_10, self = this, args, $iter = TMP_AutoUnmount_after_9.$$p, block = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$after', $AutoUnmount_after$9 = function $$after($a) { + var $iter = $AutoUnmount_after$9.$$p, block = $iter || nil, $post_args, args, $$10, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_AutoUnmount_after_9.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $AutoUnmount_after$9.$$p = null; + + + if ($iter) $AutoUnmount_after$9.$$p = null;; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ($truthy(self['$unmounted?']())) { return nil}; - return $send($send(self, Opal.find_super_dispatcher(self, 'after', TMP_AutoUnmount_after_9, false), $zuper, $iter), 'tap', [], (TMP_10 = function(id){var self = TMP_10.$$s || this, TMP_11, sself = nil; -if (id == null) id = nil; - + return $send($send2(self, $find_super(self, 'after', $AutoUnmount_after$9, false, true), 'after', Opal.to_a(args), $iter), 'tap', [], ($$10 = function(id){var self = $$10.$$s == null ? this : $$10.$$s, $$11, sself = nil; + + + + if (id == null) { + id = nil; + }; sself = self; - $send(id, 'define_singleton_method', ["unmount"], (TMP_11 = function(){var self = TMP_11.$$s || this; + $send(id, 'define_singleton_method', ["unmount"], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; - return self.$abort()}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11)); - return Opal.const_get_relative($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self)['$<<'](id);}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)); - }, TMP_AutoUnmount_after_9.$$arity = -1); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_objects_to_unmount_13; + return self.$abort()}, $$11.$$s = self, $$11.$$arity = 0, $$11)); + return $$($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self)['$<<'](id);}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + }, $AutoUnmount_after$9.$$arity = -1); + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $objects_to_unmount$12; - return (Opal.defn(self, '$objects_to_unmount', TMP_objects_to_unmount_13 = function $$objects_to_unmount() { - var $a, TMP_12, self = this; + return (Opal.def(self, '$objects_to_unmount', $objects_to_unmount$12 = function $$objects_to_unmount() { + var $$13, self = this, $ret_or_1 = nil; if (self.objects_to_unmount == null) self.objects_to_unmount = nil; - return (self.objects_to_unmount = ($truthy($a = self.objects_to_unmount) ? $a : $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_12 = function(h, k){var self = TMP_12.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - - $writer = [k, Opal.const_get_relative($nesting, 'Set').$new()]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12)))) - }, TMP_objects_to_unmount_13.$$arity = 0), nil) && 'objects_to_unmount' + return (self.objects_to_unmount = (function() {if ($truthy(($ret_or_1 = self.objects_to_unmount))) { + return $ret_or_1 + } else { + return $send($$($nesting, 'Hash'), 'new', [], ($$13 = function(h, k){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, $$($nesting, 'Set').$new()]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$13.$$s = self, $$13.$$arity = 2, $$13)) + }; return nil; })()) + }, $objects_to_unmount$12.$$arity = 0), nil) && 'objects_to_unmount' })(Opal.get_singleton_class(self), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["native"] = function(Opal) { +Opal.modules["native"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $hash2 = Opal.hash2, $klass = Opal.klass, $gvars = Opal.gvars; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $range = Opal.range, $alias = Opal.alias, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $gvars = Opal.gvars; - Opal.add_stubs(['$try_convert', '$native?', '$respond_to?', '$to_n', '$raise', '$inspect', '$Native', '$proc', '$map!', '$end_with?', '$define_method', '$[]', '$convert', '$call', '$to_proc', '$new', '$each', '$native_reader', '$native_writer', '$extend', '$is_a?', '$map', '$alias_method', '$to_a', '$_Array', '$include', '$method_missing', '$bind', '$instance_method', '$slice', '$-', '$length', '$[]=', '$enum_for', '$===', '$>=', '$<<', '$each_pair', '$_initialize', '$name', '$exiting_mid', '$native_module']); + Opal.add_stubs(['$try_convert', '$native?', '$respond_to?', '$to_n', '$raise', '$inspect', '$Native', '$proc', '$map!', '$end_with?', '$define_method', '$[]', '$convert', '$call', '$to_proc', '$new', '$each', '$native_reader', '$native_writer', '$extend', '$warn', '$include', '$is_a?', '$map', '$to_a', '$_Array', '$method_missing', '$bind', '$instance_method', '$slice', '$-', '$length', '$[]=', '$enum_for', '$===', '$>=', '$<<', '$each_pair', '$method_defined?', '$_initialize', '$name', '$native_module']); (function($base, $parent_nesting) { - var $Native, self = $Native = $module($base, 'Native'); + var self = $module($base, 'Native'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Native_is_a$q_1, TMP_Native_try_convert_2, TMP_Native_convert_3, TMP_Native_call_4, TMP_Native_proc_5, TMP_Native_included_19, TMP_Native_initialize_20, TMP_Native_to_n_21; + var $nesting = [self].concat($parent_nesting), $Native_is_a$ques$1, $Native_try_convert$2, $Native_convert$3, $Native_call$4, $Native_proc$5, $Native_included$22; - Opal.defs(self, '$is_a?', TMP_Native_is_a$q_1 = function(object, klass) { + Opal.defs(self, '$is_a?', $Native_is_a$ques$1 = function(object, klass) { var self = this; @@ -821,13 +952,15 @@ Opal.modules["native"] = function(Opal) { return false; } - }, TMP_Native_is_a$q_1.$$arity = 2); - Opal.defs(self, '$try_convert', TMP_Native_try_convert_2 = function $$try_convert(value, default$) { + }, $Native_is_a$ques$1.$$arity = 2); + Opal.defs(self, '$try_convert', $Native_try_convert$2 = function $$try_convert(value, default$) { var self = this; + + if (default$ == null) { default$ = nil; - } + }; if (self['$native?'](value)) { return value; @@ -838,9 +971,9 @@ Opal.modules["native"] = function(Opal) { else { return default$; } - - }, TMP_Native_try_convert_2.$$arity = -2); - Opal.defs(self, '$convert', TMP_Native_convert_3 = function $$convert(value) { + ; + }, $Native_try_convert$2.$$arity = -2); + Opal.defs(self, '$convert', $Native_convert$3 = function $$convert(value) { var self = this; @@ -851,20 +984,21 @@ Opal.modules["native"] = function(Opal) { return value.$to_n(); } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + (value.$inspect()) + " isn't native"); + self.$raise($$($nesting, 'ArgumentError'), "" + (value.$inspect()) + " isn't native"); } - }, TMP_Native_convert_3.$$arity = 1); - Opal.defs(self, '$call', TMP_Native_call_4 = function $$call(obj, key, $a_rest) { - var self = this, args, $iter = TMP_Native_call_4.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 2; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 2; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 2] = arguments[$arg_idx]; - } - if ($iter) TMP_Native_call_4.$$p = null; + }, $Native_convert$3.$$arity = 1); + Opal.defs(self, '$call', $Native_call$4 = function $$call(obj, key, $a) { + var $iter = $Native_call$4.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Native_call$4.$$p = null; + + + if ($iter) $Native_call$4.$$p = null;; + + $post_args = Opal.slice.call(arguments, 2, arguments.length); + + args = $post_args;; var prop = obj[key]; @@ -887,29 +1021,34 @@ Opal.modules["native"] = function(Opal) { else { return self.$Native(prop); } - - }, TMP_Native_call_4.$$arity = -3); - Opal.defs(self, '$proc', TMP_Native_proc_5 = function $$proc() { - var TMP_6, self = this, $iter = TMP_Native_proc_5.$$p, block = $iter || nil; + ; + }, $Native_call$4.$$arity = -3); + Opal.defs(self, '$proc', $Native_proc$5 = function $$proc() { + var $iter = $Native_proc$5.$$p, block = $iter || nil, $$6, self = this; - if ($iter) TMP_Native_proc_5.$$p = null; + if ($iter) $Native_proc$5.$$p = null; + + if ($iter) $Native_proc$5.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'LocalJumpError'), "no block given") + } else { + self.$raise($$($nesting, 'LocalJumpError'), "no block given") }; - return $send(Opal.const_get_qualified('::', 'Kernel'), 'proc', [], (TMP_6 = function($a_rest){var self = TMP_6.$$s || this, args, TMP_7, instance = nil; + return $send($$$('::', 'Kernel'), 'proc', [], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $post_args, args, $$7, instance = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - $send(args, 'map!', [], (TMP_7 = function(arg){var self = TMP_7.$$s || this; -if (arg == null) arg = nil; - return self.$Native(arg)}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + $send(args, 'map!', [], ($$7 = function(arg){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (arg == null) { + arg = nil; + }; + return self.$Native(arg);}, $$7.$$s = self, $$7.$$arity = 1, $$7)); instance = self.$Native(this); // if global is current scope, run the block in the scope it was defined @@ -926,242 +1065,277 @@ if (arg == null) arg = nil; finally { block.$$s = self_; } - ;}, TMP_6.$$s = self, TMP_6.$$arity = -1, TMP_6)); - }, TMP_Native_proc_5.$$arity = 0); + ;}, $$6.$$s = self, $$6.$$arity = -1, $$6)); + }, $Native_proc$5.$$arity = 0); (function($base, $parent_nesting) { - var $Helpers, self = $Helpers = $module($base, 'Helpers'); + var self = $module($base, 'Helpers'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Helpers_alias_native_11, TMP_Helpers_native_reader_14, TMP_Helpers_native_writer_17, TMP_Helpers_native_accessor_18; + var $nesting = [self].concat($parent_nesting), $Helpers_alias_native$8, $Helpers_native_reader$12, $Helpers_native_writer$15, $Helpers_native_accessor$18; - Opal.defn(self, '$alias_native', TMP_Helpers_alias_native_11 = function $$alias_native(new$, $old, $kwargs) { - var TMP_8, TMP_9, TMP_10, self = this, $post_args, as, old; + Opal.def(self, '$alias_native', $Helpers_alias_native$8 = function $$alias_native(new$, $a, $b) { + var $post_args, $kwargs, old, as, $$9, $$10, $$11, $iter = $Helpers_alias_native$8.$$p, $yield = $iter || nil, self = this; + if ($iter) $Helpers_alias_native$8.$$p = null; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + $kwargs = Opal.extract_kwargs($post_args); - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) { + old = $post_args[0]; + $post_args.splice(0, 1); } + if (old == null) { + old = new$; + }; + as = $kwargs.$$smap["as"]; if (as == null) { as = nil - } - if (0 < $post_args.length) { - old = $post_args.splice(0,1)[0]; - } - if (old == null) { - old = new$; - } + }; if ($truthy(old['$end_with?']("="))) { - return $send(self, 'define_method', [new$], (TMP_8 = function(value){var self = TMP_8.$$s || this; + return $send(self, 'define_method', [new$], ($$9 = function(value){var self = $$9.$$s == null ? this : $$9.$$s; if (self["native"] == null) self["native"] = nil; -if (value == null) value = nil; - - self["native"][old['$[]']($range(0, -2, false))] = Opal.const_get_relative($nesting, 'Native').$convert(value); - return value;}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)) + + + + if (value == null) { + value = nil; + }; + self["native"][old['$[]']($range(0, -2, false))] = $$($nesting, 'Native').$convert(value); + return value;}, $$9.$$s = self, $$9.$$arity = 1, $$9)) } else if ($truthy(as)) { - return $send(self, 'define_method', [new$], (TMP_9 = function($a_rest){var self = TMP_9.$$s || this, block, args, value = nil; + return $send(self, 'define_method', [new$], ($$10 = function($c){var self = $$10.$$s == null ? this : $$10.$$s, $iter = $$10.$$p, block = $iter || nil, $post_args, args, value = nil; if (self["native"] == null) self["native"] = nil; - block = TMP_9.$$p || nil; - if (block) TMP_9.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy((value = $send(Opal.const_get_relative($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc())))) { + + + if ($iter) $$10.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + value = $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc()); + if ($truthy(value)) { return as.$new(value.$to_n()) - } else { + } else { return nil - }}, TMP_9.$$s = self, TMP_9.$$arity = -1, TMP_9)) - } else { - return $send(self, 'define_method', [new$], (TMP_10 = function($a_rest){var self = TMP_10.$$s || this, block, args; + };}, $$10.$$s = self, $$10.$$arity = -1, $$10)) + } else { + return $send(self, 'define_method', [new$], ($$11 = function($c){var self = $$11.$$s == null ? this : $$11.$$s, $iter = $$11.$$p, block = $iter || nil, $post_args, args; if (self["native"] == null) self["native"] = nil; - block = TMP_10.$$p || nil; - if (block) TMP_10.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc())}, TMP_10.$$s = self, TMP_10.$$arity = -1, TMP_10)) - } - }, TMP_Helpers_alias_native_11.$$arity = -2); + + + if ($iter) $$11.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc());}, $$11.$$s = self, $$11.$$arity = -1, $$11)) + }; + }, $Helpers_alias_native$8.$$arity = -2); - Opal.defn(self, '$native_reader', TMP_Helpers_native_reader_14 = function $$native_reader($a_rest) { - var TMP_12, self = this, names; + Opal.def(self, '$native_reader', $Helpers_native_reader$12 = function $$native_reader($a) { + var $post_args, names, $$13, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(names, 'each', [], (TMP_12 = function(name){var self = TMP_12.$$s || this, TMP_13; -if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_13 = function(){var self = TMP_13.$$s || this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; + return $send(names, 'each', [], ($$13 = function(name){var self = $$13.$$s == null ? this : $$13.$$s, $$14; + + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s; if (self["native"] == null) self["native"] = nil; - return self.$Native(self["native"][name])}, TMP_13.$$s = self, TMP_13.$$arity = 0, TMP_13))}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)) - }, TMP_Helpers_native_reader_14.$$arity = -1); + return self.$Native(self["native"][name])}, $$14.$$s = self, $$14.$$arity = 0, $$14));}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + }, $Helpers_native_reader$12.$$arity = -1); - Opal.defn(self, '$native_writer', TMP_Helpers_native_writer_17 = function $$native_writer($a_rest) { - var TMP_15, self = this, names; + Opal.def(self, '$native_writer', $Helpers_native_writer$15 = function $$native_writer($a) { + var $post_args, names, $$16, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(names, 'each', [], (TMP_15 = function(name){var self = TMP_15.$$s || this, TMP_16; -if (name == null) name = nil; - return $send(self, 'define_method', ["" + (name) + "="], (TMP_16 = function(value){var self = TMP_16.$$s || this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; + return $send(names, 'each', [], ($$16 = function(name){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', ["" + (name) + "="], ($$17 = function(value){var self = $$17.$$s == null ? this : $$17.$$s; if (self["native"] == null) self["native"] = nil; -if (value == null) value = nil; - return self.$Native(self["native"][name] = value)}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16))}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)) - }, TMP_Helpers_native_writer_17.$$arity = -1); - - Opal.defn(self, '$native_accessor', TMP_Helpers_native_accessor_18 = function $$native_accessor($a_rest) { - var self = this, names; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } + + + + if (value == null) { + value = nil; + }; + return self.$Native(self["native"][name] = value);}, $$17.$$s = self, $$17.$$arity = 1, $$17));}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + }, $Helpers_native_writer$15.$$arity = -1); + return (Opal.def(self, '$native_accessor', $Helpers_native_accessor$18 = function $$native_accessor($a) { + var $post_args, names, self = this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; $send(self, 'native_reader', Opal.to_a(names)); return $send(self, 'native_writer', Opal.to_a(names)); - }, TMP_Helpers_native_accessor_18.$$arity = -1); + }, $Helpers_native_accessor$18.$$arity = -1), nil) && 'native_accessor'; })($nesting[0], $nesting); - Opal.defs(self, '$included', TMP_Native_included_19 = function $$included(klass) { - var self = this; + (function($base, $parent_nesting) { + var self = $module($base, 'Wrapper'); - return klass.$extend(Opal.const_get_relative($nesting, 'Helpers')) - }, TMP_Native_included_19.$$arity = 1); - - Opal.defn(self, '$initialize', TMP_Native_initialize_20 = function $$initialize(native$) { - var self = this; + var $nesting = [self].concat($parent_nesting), $Wrapper_initialize$19, $Wrapper_to_n$20, $Wrapper_included$21; - if ($truthy(Opal.const_get_qualified('::', 'Kernel')['$native?'](native$))) { + + Opal.def(self, '$initialize', $Wrapper_initialize$19 = function $$initialize(native$) { + var self = this; + + + if ($truthy($$$('::', 'Kernel')['$native?'](native$))) { } else { - Opal.const_get_qualified('::', 'Kernel').$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + (native$.$inspect()) + " isn't native") - }; - return (self["native"] = native$); - }, TMP_Native_initialize_20.$$arity = 1); - - Opal.defn(self, '$to_n', TMP_Native_to_n_21 = function $$to_n() { + $$$('::', 'Kernel').$raise($$($nesting, 'ArgumentError'), "" + (native$.$inspect()) + " isn't native") + }; + return (self["native"] = native$); + }, $Wrapper_initialize$19.$$arity = 1); + + Opal.def(self, '$to_n', $Wrapper_to_n$20 = function $$to_n() { + var self = this; + if (self["native"] == null) self["native"] = nil; + + return self["native"] + }, $Wrapper_to_n$20.$$arity = 0); + return (Opal.defs(self, '$included', $Wrapper_included$21 = function $$included(klass) { + var self = this; + + return klass.$extend($$($nesting, 'Helpers')) + }, $Wrapper_included$21.$$arity = 1), nil) && 'included'; + })($nesting[0], $nesting); + return (Opal.defs(self, '$included', $Native_included$22 = function $$included(base) { var self = this; - if (self["native"] == null) self["native"] = nil; - return self["native"] - }, TMP_Native_to_n_21.$$arity = 0); + + self.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."); + return base.$include($$($nesting, 'Wrapper')); + }, $Native_included$22.$$arity = 1), nil) && 'included'; })($nesting[0], $nesting); (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_native$q_22, TMP_Kernel_Native_25, TMP_Kernel_Array_26; + var $nesting = [self].concat($parent_nesting), $Kernel_native$ques$23, $Kernel_Native$24, $Kernel_Array$27; - Opal.defn(self, '$native?', TMP_Kernel_native$q_22 = function(value) { + Opal.def(self, '$native?', $Kernel_native$ques$23 = function(value) { var self = this; - return value == null || !value.$$class - }, TMP_Kernel_native$q_22.$$arity = 1); + return value == null || !value.$$class; + }, $Kernel_native$ques$23.$$arity = 1); - Opal.defn(self, '$Native', TMP_Kernel_Native_25 = function $$Native(obj) { - var TMP_23, TMP_24, self = this; + Opal.def(self, '$Native', $Kernel_Native$24 = function $$Native(obj) { + var $$25, $$26, $iter = $Kernel_Native$24.$$p, $yield = $iter || nil, self = this; + if ($iter) $Kernel_Native$24.$$p = null; if ($truthy(obj == null)) { return nil } else if ($truthy(self['$native?'](obj))) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Object').$new(obj) - } else if ($truthy(obj['$is_a?'](Opal.const_get_relative($nesting, 'Array')))) { - return $send(obj, 'map', [], (TMP_23 = function(o){var self = TMP_23.$$s || this; -if (o == null) o = nil; - return self.$Native(o)}, TMP_23.$$s = self, TMP_23.$$arity = 1, TMP_23)) - } else if ($truthy(obj['$is_a?'](Opal.const_get_relative($nesting, 'Proc')))) { - return $send(self, 'proc', [], (TMP_24 = function($a_rest){var self = TMP_24.$$s || this, block, args; - - block = TMP_24.$$p || nil; - if (block) TMP_24.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$Native($send(obj, 'call', Opal.to_a(args), block.$to_proc()))}, TMP_24.$$s = self, TMP_24.$$arity = -1, TMP_24)) - } else { + return $$$($$($nesting, 'Native'), 'Object').$new(obj) + } else if ($truthy(obj['$is_a?']($$($nesting, 'Array')))) { + return $send(obj, 'map', [], ($$25 = function(o){var self = $$25.$$s == null ? this : $$25.$$s; + + + + if (o == null) { + o = nil; + }; + return self.$Native(o);}, $$25.$$s = self, $$25.$$arity = 1, $$25)) + } else if ($truthy(obj['$is_a?']($$($nesting, 'Proc')))) { + return $send(self, 'proc', [], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $iter = $$26.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$26.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return self.$Native($send(obj, 'call', Opal.to_a(args), block.$to_proc()));}, $$26.$$s = self, $$26.$$arity = -1, $$26)) + } else { return obj } - }, TMP_Kernel_Native_25.$$arity = 1); - self.$alias_method("_Array", "Array"); - - Opal.defn(self, '$Array', TMP_Kernel_Array_26 = function $$Array(object, $a_rest) { - var self = this, args, $iter = TMP_Kernel_Array_26.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Kernel_Array_26.$$p = null; + }, $Kernel_Native$24.$$arity = 1); + $alias(self, "_Array", "Array"); + return (Opal.def(self, '$Array', $Kernel_Array$27 = function $$Array(object, $a) { + var $iter = $Kernel_Array$27.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Kernel_Array$27.$$p = null; + + if ($iter) $Kernel_Array$27.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(self['$native?'](object))) { - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array'), 'new', [object].concat(Opal.to_a(args)), block.$to_proc()).$to_a()}; + return $send($$$($$($nesting, 'Native'), 'Array'), 'new', [object].concat(Opal.to_a(args)), block.$to_proc()).$to_a()}; return self.$_Array(object); - }, TMP_Kernel_Array_26.$$arity = -2); + }, $Kernel_Array$27.$$arity = -2), nil) && 'Array'; })($nesting[0], $nesting); (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_$eq$eq_27, TMP_Object_has_key$q_28, TMP_Object_each_29, TMP_Object_$$_30, TMP_Object_$$$eq_31, TMP_Object_merge$B_32, TMP_Object_respond_to$q_33, TMP_Object_respond_to_missing$q_34, TMP_Object_method_missing_35, TMP_Object_nil$q_36, TMP_Object_is_a$q_37, TMP_Object_instance_of$q_38, TMP_Object_class_39, TMP_Object_to_a_40, TMP_Object_inspect_41; + var $nesting = [self].concat($parent_nesting), $Object_$eq_eq$28, $Object_has_key$ques$29, $Object_each$30, $Object_$$$31, $Object_$$$eq$32, $Object_merge$excl$33, $Object_respond_to$ques$34, $Object_respond_to_missing$ques$35, $Object_method_missing$36, $Object_nil$ques$37, $Object_is_a$ques$38, $Object_instance_of$ques$39, $Object_class$40, $Object_to_a$41, $Object_inspect$42; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_qualified('::', 'Native')); + self.$include($$$($$$('::', 'Native'), 'Wrapper')); - Opal.defn(self, '$==', TMP_Object_$eq$eq_27 = function(other) { + Opal.def(self, '$==', $Object_$eq_eq$28 = function(other) { var self = this; - return self["native"] === Opal.const_get_qualified('::', 'Native').$try_convert(other) - }, TMP_Object_$eq$eq_27.$$arity = 1); + return self["native"] === $$$('::', 'Native').$try_convert(other) + }, $Object_$eq_eq$28.$$arity = 1); - Opal.defn(self, '$has_key?', TMP_Object_has_key$q_28 = function(name) { + Opal.def(self, '$has_key?', $Object_has_key$ques$29 = function(name) { var self = this; return Opal.hasOwnProperty.call(self["native"], name) - }, TMP_Object_has_key$q_28.$$arity = 1); - Opal.alias(self, "key?", "has_key?"); - Opal.alias(self, "include?", "has_key?"); - Opal.alias(self, "member?", "has_key?"); + }, $Object_has_key$ques$29.$$arity = 1); + $alias(self, "key?", "has_key?"); + $alias(self, "include?", "has_key?"); + $alias(self, "member?", "has_key?"); - Opal.defn(self, '$each', TMP_Object_each_29 = function $$each($a_rest) { - var self = this, args, $iter = TMP_Object_each_29.$$p, $yield = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_each_29.$$p = null; + Opal.def(self, '$each', $Object_each$30 = function $$each($a) { + var $post_args, args, $iter = $Object_each$30.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Object_each$30.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if (($yield !== nil)) { @@ -1170,12 +1344,12 @@ if (o == null) o = nil; } ; return self; - } else { + } else { return $send(self, 'method_missing', ["each"].concat(Opal.to_a(args))) - } - }, TMP_Object_each_29.$$arity = -1); + }; + }, $Object_each$30.$$arity = -1); - Opal.defn(self, '$[]', TMP_Object_$$_30 = function(key) { + Opal.def(self, '$[]', $Object_$$$31 = function(key) { var self = this; @@ -1185,154 +1359,179 @@ if (o == null) o = nil; return prop; } else { - return Opal.const_get_qualified('::', 'Native').$call(self["native"], key) + return $$$('::', 'Native').$call(self["native"], key) } - }, TMP_Object_$$_30.$$arity = 1); + }, $Object_$$$31.$$arity = 1); - Opal.defn(self, '$[]=', TMP_Object_$$$eq_31 = function(key, value) { + Opal.def(self, '$[]=', $Object_$$$eq$32 = function(key, value) { var self = this, native$ = nil; - native$ = Opal.const_get_qualified('::', 'Native').$try_convert(value); + native$ = $$$('::', 'Native').$try_convert(value); if ($truthy(native$ === nil)) { return self["native"][key] = value - } else { + } else { return self["native"][key] = native$ }; - }, TMP_Object_$$$eq_31.$$arity = 2); + }, $Object_$$$eq$32.$$arity = 2); - Opal.defn(self, '$merge!', TMP_Object_merge$B_32 = function(other) { + Opal.def(self, '$merge!', $Object_merge$excl$33 = function(other) { var self = this; - other = Opal.const_get_qualified('::', 'Native').$convert(other); + other = $$$('::', 'Native').$convert(other); for (var prop in other) { self["native"][prop] = other[prop]; } ; return self; - }, TMP_Object_merge$B_32.$$arity = 1); + }, $Object_merge$excl$33.$$arity = 1); - Opal.defn(self, '$respond_to?', TMP_Object_respond_to$q_33 = function(name, include_all) { + Opal.def(self, '$respond_to?', $Object_respond_to$ques$34 = function(name, include_all) { var self = this; + + if (include_all == null) { include_all = false; - } - return Opal.const_get_qualified('::', 'Kernel').$instance_method("respond_to?").$bind(self).$call(name, include_all) - }, TMP_Object_respond_to$q_33.$$arity = -2); + }; + return $$$('::', 'Kernel').$instance_method("respond_to?").$bind(self).$call(name, include_all); + }, $Object_respond_to$ques$34.$$arity = -2); - Opal.defn(self, '$respond_to_missing?', TMP_Object_respond_to_missing$q_34 = function(name, include_all) { + Opal.def(self, '$respond_to_missing?', $Object_respond_to_missing$ques$35 = function(name, include_all) { var self = this; + + if (include_all == null) { include_all = false; - } - return Opal.hasOwnProperty.call(self["native"], name) - }, TMP_Object_respond_to_missing$q_34.$$arity = -2); + }; + return Opal.hasOwnProperty.call(self["native"], name); + }, $Object_respond_to_missing$ques$35.$$arity = -2); - Opal.defn(self, '$method_missing', TMP_Object_method_missing_35 = function $$method_missing(mid, $a_rest) { - var self = this, args, $iter = TMP_Object_method_missing_35.$$p, block = $iter || nil, $writer = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_method_missing_35.$$p = null; + Opal.def(self, '$method_missing', $Object_method_missing$36 = function $$method_missing(mid, $a) { + var $iter = $Object_method_missing$36.$$p, block = $iter || nil, $post_args, args, self = this, $writer = nil; + + if ($iter) $Object_method_missing$36.$$p = null; + + + if ($iter) $Object_method_missing$36.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if (mid.charAt(mid.length - 1) === '=') { return (($writer = [mid.$slice(0, $rb_minus(mid.$length(), 1)), args['$[]'](0)]), $send(self, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); } else { - return $send(Opal.const_get_qualified('::', 'Native'), 'call', [self["native"], mid].concat(Opal.to_a(args)), block.$to_proc()); + return $send($$$('::', 'Native'), 'call', [self["native"], mid].concat(Opal.to_a(args)), block.$to_proc()); } + ; + }, $Object_method_missing$36.$$arity = -2); - }, TMP_Object_method_missing_35.$$arity = -2); - - Opal.defn(self, '$nil?', TMP_Object_nil$q_36 = function() { + Opal.def(self, '$nil?', $Object_nil$ques$37 = function() { var self = this; return false - }, TMP_Object_nil$q_36.$$arity = 0); + }, $Object_nil$ques$37.$$arity = 0); - Opal.defn(self, '$is_a?', TMP_Object_is_a$q_37 = function(klass) { + Opal.def(self, '$is_a?', $Object_is_a$ques$38 = function(klass) { var self = this; - return Opal.is_a(self, klass) - }, TMP_Object_is_a$q_37.$$arity = 1); - Opal.alias(self, "kind_of?", "is_a?"); + return Opal.is_a(self, klass); + }, $Object_is_a$ques$38.$$arity = 1); + $alias(self, "kind_of?", "is_a?"); - Opal.defn(self, '$instance_of?', TMP_Object_instance_of$q_38 = function(klass) { + Opal.def(self, '$instance_of?', $Object_instance_of$ques$39 = function(klass) { var self = this; - return self.$$class === klass - }, TMP_Object_instance_of$q_38.$$arity = 1); + return self.$$class === klass; + }, $Object_instance_of$ques$39.$$arity = 1); - Opal.defn(self, '$class', TMP_Object_class_39 = function() { + Opal.def(self, '$class', $Object_class$40 = function() { var self = this; - return self.$$class - }, TMP_Object_class_39.$$arity = 0); + return self.$$class; + }, $Object_class$40.$$arity = 0); - Opal.defn(self, '$to_a', TMP_Object_to_a_40 = function $$to_a(options) { - var self = this, $iter = TMP_Object_to_a_40.$$p, block = $iter || nil; + Opal.def(self, '$to_a', $Object_to_a$41 = function $$to_a(options) { + var $iter = $Object_to_a$41.$$p, block = $iter || nil, self = this; + if ($iter) $Object_to_a$41.$$p = null; + + + if ($iter) $Object_to_a$41.$$p = null;; + if (options == null) { options = $hash2([], {}); - } - if ($iter) TMP_Object_to_a_40.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a() - }, TMP_Object_to_a_40.$$arity = -1); - return (Opal.defn(self, '$inspect', TMP_Object_inspect_41 = function $$inspect() { + }; + return $send($$$($$$('::', 'Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a(); + }, $Object_to_a$41.$$arity = -1); + return (Opal.def(self, '$inspect', $Object_inspect$42 = function $$inspect() { var self = this; return "" + "#" - }, TMP_Object_inspect_41.$$arity = 0), nil) && 'inspect'; - })(Opal.const_get_relative($nesting, 'Native'), Opal.const_get_relative($nesting, 'BasicObject'), $nesting); + }, $Object_inspect$42.$$arity = 0), nil) && 'inspect'; + })($$($nesting, 'Native'), $$($nesting, 'BasicObject'), $nesting); (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_initialize_42, TMP_Array_each_43, TMP_Array_$$_44, TMP_Array_$$$eq_45, TMP_Array_last_46, TMP_Array_length_47, TMP_Array_inspect_48; + var $nesting = [self].concat($parent_nesting), $Array_initialize$43, $Array_each$44, $Array_$$$45, $Array_$$$eq$46, $Array_last$47, $Array_length$48, $Array_inspect$49; - def.named = def["native"] = def.get = def.block = def.set = def.length = nil; + self.$$prototype.named = self.$$prototype["native"] = self.$$prototype.get = self.$$prototype.block = self.$$prototype.set = self.$$prototype.length = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); + self.$include($$($nesting, 'Enumerable')); - Opal.defn(self, '$initialize', TMP_Array_initialize_42 = function $$initialize(native$, options) { - var $a, self = this, $iter = TMP_Array_initialize_42.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Array_initialize$43 = function $$initialize(native$, options) { + var $iter = $Array_initialize$43.$$p, block = $iter || nil, self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + if ($iter) $Array_initialize$43.$$p = null; + + + if ($iter) $Array_initialize$43.$$p = null;; + if (options == null) { options = $hash2([], {}); - } - if ($iter) TMP_Array_initialize_42.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Array_initialize_42, false), [native$], null); - self.get = ($truthy($a = options['$[]']("get")) ? $a : options['$[]']("access")); + }; + $send2(self, $find_super(self, 'initialize', $Array_initialize$43, false, true), 'initialize', [native$], null); + self.get = (function() {if ($truthy(($ret_or_1 = options['$[]']("get")))) { + return $ret_or_1 + } else { + return options['$[]']("access") + }; return nil; })(); self.named = options['$[]']("named"); - self.set = ($truthy($a = options['$[]']("set")) ? $a : options['$[]']("access")); - self.length = ($truthy($a = options['$[]']("length")) ? $a : "length"); + self.set = (function() {if ($truthy(($ret_or_2 = options['$[]']("set")))) { + return $ret_or_2 + } else { + return options['$[]']("access") + }; return nil; })(); + self.length = (function() {if ($truthy(($ret_or_3 = options['$[]']("length")))) { + return $ret_or_3 + } else { + return "length" + }; return nil; })(); self.block = block; if ($truthy(self.$length() == null)) { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no length found on the array-like object") - } else { + return self.$raise($$($nesting, 'ArgumentError'), "no length found on the array-like object") + } else { return nil }; - }, TMP_Array_initialize_42.$$arity = -2); + }, $Array_initialize$43.$$arity = -2); - Opal.defn(self, '$each', TMP_Array_each_43 = function $$each() { - var self = this, $iter = TMP_Array_each_43.$$p, block = $iter || nil; + Opal.def(self, '$each', $Array_each$44 = function $$each() { + var $iter = $Array_each$44.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_each_43.$$p = null; + if ($iter) $Array_each$44.$$p = null; + + if ($iter) $Array_each$44.$$p = null;; if ($truthy(block)) { - } else { + } else { return self.$enum_for("each") }; @@ -1341,51 +1540,53 @@ if (o == null) o = nil; } ; return self; - }, TMP_Array_each_43.$$arity = 0); + }, $Array_each$44.$$arity = 0); - Opal.defn(self, '$[]', TMP_Array_$$_44 = function(index) { + Opal.def(self, '$[]', $Array_$$$45 = function(index) { var self = this, result = nil, $case = nil; result = (function() {$case = index; - if (Opal.const_get_relative($nesting, 'String')['$===']($case) || Opal.const_get_relative($nesting, 'Symbol')['$===']($case)) {if ($truthy(self.named)) { + if ($$($nesting, 'String')['$===']($case) || $$($nesting, 'Symbol')['$===']($case)) {if ($truthy(self.named)) { return self["native"][self.named](index) - } else { + } else { return self["native"][index] }} - else if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {if ($truthy(self.get)) { + else if ($$($nesting, 'Integer')['$===']($case)) {if ($truthy(self.get)) { return self["native"][self.get](index) - } else { + } else { return self["native"][index] }} else { return nil }})(); if ($truthy(result)) { if ($truthy(self.block)) { return self.block.$call(result) - } else { + } else { return self.$Native(result) } - } else { + } else { return nil }; - }, TMP_Array_$$_44.$$arity = 1); + }, $Array_$$$45.$$arity = 1); - Opal.defn(self, '$[]=', TMP_Array_$$$eq_45 = function(index, value) { + Opal.def(self, '$[]=', $Array_$$$eq$46 = function(index, value) { var self = this; if ($truthy(self.set)) { - return self["native"][self.set](index, Opal.const_get_relative($nesting, 'Native').$convert(value)) - } else { - return self["native"][index] = Opal.const_get_relative($nesting, 'Native').$convert(value) + return self["native"][self.set](index, $$($nesting, 'Native').$convert(value)) + } else { + return self["native"][index] = $$($nesting, 'Native').$convert(value) } - }, TMP_Array_$$$eq_45.$$arity = 2); + }, $Array_$$$eq$46.$$arity = 2); - Opal.defn(self, '$last', TMP_Array_last_46 = function $$last(count) { + Opal.def(self, '$last', $Array_last$47 = function $$last(count) { var $a, self = this, index = nil, result = nil; + + if (count == null) { count = nil; - } + }; if ($truthy(count)) { index = $rb_minus(self.$length(), 1); @@ -1396,108 +1597,110 @@ if (o == null) o = nil; index = $rb_minus(index, 1); }; return result; - } else { + } else { return self['$[]']($rb_minus(self.$length(), 1)) - } - }, TMP_Array_last_46.$$arity = -1); + }; + }, $Array_last$47.$$arity = -1); - Opal.defn(self, '$length', TMP_Array_length_47 = function $$length() { + Opal.def(self, '$length', $Array_length$48 = function $$length() { var self = this; return self["native"][self.length] - }, TMP_Array_length_47.$$arity = 0); - Opal.alias(self, "to_ary", "to_a"); - return (Opal.defn(self, '$inspect', TMP_Array_inspect_48 = function $$inspect() { + }, $Array_length$48.$$arity = 0); + $alias(self, "to_ary", "to_a"); + return (Opal.def(self, '$inspect', $Array_inspect$49 = function $$inspect() { var self = this; return self.$to_a().$inspect() - }, TMP_Array_inspect_48.$$arity = 0), nil) && 'inspect'; - })(Opal.const_get_relative($nesting, 'Native'), null, $nesting); + }, $Array_inspect$49.$$arity = 0), nil) && 'inspect'; + })($$($nesting, 'Native'), null, $nesting); (function($base, $super, $parent_nesting) { - function $Numeric(){}; - var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric); + var self = $klass($base, $super, 'Numeric'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Numeric_to_n_49; + var $nesting = [self].concat($parent_nesting), $Numeric_to_n$50; - return (Opal.defn(self, '$to_n', TMP_Numeric_to_n_49 = function $$to_n() { + return (Opal.def(self, '$to_n', $Numeric_to_n$50 = function $$to_n() { var self = this; - return self.valueOf() - }, TMP_Numeric_to_n_49.$$arity = 0), nil) && 'to_n' + return self.valueOf(); + }, $Numeric_to_n$50.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Proc(){}; - var self = $Proc = $klass($base, $super, 'Proc', $Proc); + var self = $klass($base, $super, 'Proc'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Proc_to_n_50; + var $nesting = [self].concat($parent_nesting), $Proc_to_n$51; - return (Opal.defn(self, '$to_n', TMP_Proc_to_n_50 = function $$to_n() { + return (Opal.def(self, '$to_n', $Proc_to_n$51 = function $$to_n() { var self = this; return self - }, TMP_Proc_to_n_50.$$arity = 0), nil) && 'to_n' + }, $Proc_to_n$51.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_to_n_51; + var $nesting = [self].concat($parent_nesting), $String_to_n$52; - return (Opal.defn(self, '$to_n', TMP_String_to_n_51 = function $$to_n() { + return (Opal.def(self, '$to_n', $String_to_n$52 = function $$to_n() { var self = this; - return self.valueOf() - }, TMP_String_to_n_51.$$arity = 0), nil) && 'to_n' + return self.valueOf(); + }, $String_to_n$52.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Regexp(){}; - var self = $Regexp = $klass($base, $super, 'Regexp', $Regexp); + var self = $klass($base, $super, 'Regexp'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Regexp_to_n_52; + var $nesting = [self].concat($parent_nesting), $Regexp_to_n$53; - return (Opal.defn(self, '$to_n', TMP_Regexp_to_n_52 = function $$to_n() { + return (Opal.def(self, '$to_n', $Regexp_to_n$53 = function $$to_n() { var self = this; - return self.valueOf() - }, TMP_Regexp_to_n_52.$$arity = 0), nil) && 'to_n' + return self.valueOf(); + }, $Regexp_to_n$53.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $MatchData(){}; - var self = $MatchData = $klass($base, $super, 'MatchData', $MatchData); + var self = $klass($base, $super, 'MatchData'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_MatchData_to_n_53; + var $nesting = [self].concat($parent_nesting), $MatchData_to_n$54; - def.matches = nil; - return (Opal.defn(self, '$to_n', TMP_MatchData_to_n_53 = function $$to_n() { + self.$$prototype.matches = nil; + return (Opal.def(self, '$to_n', $MatchData_to_n$54 = function $$to_n() { var self = this; return self.matches - }, TMP_MatchData_to_n_53.$$arity = 0), nil) && 'to_n' + }, $MatchData_to_n$54.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Struct(){}; - var self = $Struct = $klass($base, $super, 'Struct', $Struct); + var self = $klass($base, $super, 'Struct'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Struct_to_n_55; + var $nesting = [self].concat($parent_nesting), $Struct_to_n$55; - return (Opal.defn(self, '$to_n', TMP_Struct_to_n_55 = function $$to_n() { - var TMP_54, self = this, result = nil; + return (Opal.def(self, '$to_n', $Struct_to_n$55 = function $$to_n() { + var $$56, self = this, result = nil; result = {}; - $send(self, 'each_pair', [], (TMP_54 = function(name, value){var self = TMP_54.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return result[name] = Opal.const_get_relative($nesting, 'Native').$try_convert(value, value)}, TMP_54.$$s = self, TMP_54.$$arity = 2, TMP_54)); + $send(self, 'each_pair', [], ($$56 = function(name, value){var self = $$56.$$s == null ? this : $$56.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return result[name] = $$($nesting, 'Native').$try_convert(value, value);}, $$56.$$s = self, $$56.$$arity = 2, $$56)); return result; - }, TMP_Struct_to_n_55.$$arity = 0), nil) && 'to_n' + }, $Struct_to_n$55.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_to_n_56; + var $nesting = [self].concat($parent_nesting), $Array_to_n$57; - return (Opal.defn(self, '$to_n', TMP_Array_to_n_56 = function $$to_n() { + return (Opal.def(self, '$to_n', $Array_to_n$57 = function $$to_n() { var self = this; @@ -1506,356 +1709,734 @@ if (name == null) name = nil;if (value == null) value = nil; for (var i = 0, length = self.length; i < length; i++) { var obj = self[i]; - result.push(Opal.const_get_relative($nesting, 'Native').$try_convert(obj, obj)); + result.push($$($nesting, 'Native').$try_convert(obj, obj)); } return result; - }, TMP_Array_to_n_56.$$arity = 0), nil) && 'to_n' + }, $Array_to_n$57.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Boolean(){}; - var self = $Boolean = $klass($base, $super, 'Boolean', $Boolean); + var self = $klass($base, $super, 'Boolean'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Boolean_to_n_57; + var $nesting = [self].concat($parent_nesting), $Boolean_to_n$58; - return (Opal.defn(self, '$to_n', TMP_Boolean_to_n_57 = function $$to_n() { + return (Opal.def(self, '$to_n', $Boolean_to_n$58 = function $$to_n() { var self = this; - return self.valueOf() - }, TMP_Boolean_to_n_57.$$arity = 0), nil) && 'to_n' + return self.valueOf(); + }, $Boolean_to_n$58.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Time(){}; - var self = $Time = $klass($base, $super, 'Time', $Time); + var self = $klass($base, $super, 'Time'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Time_to_n_58; + var $nesting = [self].concat($parent_nesting), $Time_to_n$59; - return (Opal.defn(self, '$to_n', TMP_Time_to_n_58 = function $$to_n() { + return (Opal.def(self, '$to_n', $Time_to_n$59 = function $$to_n() { var self = this; return self - }, TMP_Time_to_n_58.$$arity = 0), nil) && 'to_n' + }, $Time_to_n$59.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $NilClass(){}; - var self = $NilClass = $klass($base, $super, 'NilClass', $NilClass); + var self = $klass($base, $super, 'NilClass'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NilClass_to_n_59; + var $nesting = [self].concat($parent_nesting), $NilClass_to_n$60; - return (Opal.defn(self, '$to_n', TMP_NilClass_to_n_59 = function $$to_n() { + return (Opal.def(self, '$to_n', $NilClass_to_n$60 = function $$to_n() { var self = this; - return null - }, TMP_NilClass_to_n_59.$$arity = 0), nil) && 'to_n' + return null; + }, $NilClass_to_n$60.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_initialize_60, TMP_Hash_to_n_61; + if ($truthy($$($nesting, 'Hash')['$method_defined?']("_initialize"))) { + } else { + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Hash'); - - self.$alias_method("_initialize", "initialize"); - - Opal.defn(self, '$initialize', TMP_Hash_initialize_60 = function $$initialize(defaults) { - var self = this, $iter = TMP_Hash_initialize_60.$$p, block = $iter || nil; + var $nesting = [self].concat($parent_nesting), $Hash_initialize$61, $Hash_to_n$62; - if ($iter) TMP_Hash_initialize_60.$$p = null; - if (defaults != null && - (defaults.constructor === undefined || - defaults.constructor === Object)) { - var smap = self.$$smap, - keys = self.$$keys, - key, value; + $alias(self, "_initialize", "initialize"); + + Opal.def(self, '$initialize', $Hash_initialize$61 = function $$initialize(defaults) { + var $iter = $Hash_initialize$61.$$p, block = $iter || nil, self = this; - for (key in defaults) { - value = defaults[key]; - - if (value && - (value.constructor === undefined || - value.constructor === Object)) { - smap[key] = Opal.const_get_relative($nesting, 'Hash').$new(value); - } else if (value && value.$$is_array) { - value = value.map(function(item) { - if (item && - (item.constructor === undefined || - item.constructor === Object)) { - return Opal.const_get_relative($nesting, 'Hash').$new(item); - } + if ($iter) $Hash_initialize$61.$$p = null; + + + if ($iter) $Hash_initialize$61.$$p = null;; + ; + + if (defaults != null && + (defaults.constructor === undefined || + defaults.constructor === Object)) { + var smap = self.$$smap, + keys = self.$$keys, + key, value; + + for (key in defaults) { + value = defaults[key]; + + if (value && + (value.constructor === undefined || + value.constructor === Object)) { + smap[key] = $$($nesting, 'Hash').$new(value); + } else if (value && value.$$is_array) { + value = value.map(function(item) { + if (item && + (item.constructor === undefined || + item.constructor === Object)) { + return $$($nesting, 'Hash').$new(item); + } - return self.$Native(item); - }); - smap[key] = value - } else { - smap[key] = self.$Native(value); + return self.$Native(item); + }); + smap[key] = value + } else { + smap[key] = self.$Native(value); + } + + keys.push(key); } - keys.push(key); + return self; } - return self; - } + return $send(self, '_initialize', [defaults], block.$to_proc()); + ; + }, $Hash_initialize$61.$$arity = -1); + return (Opal.def(self, '$to_n', $Hash_to_n$62 = function $$to_n() { + var self = this; - return $send(self, '_initialize', [defaults], block.$to_proc()); - - }, TMP_Hash_initialize_60.$$arity = -1); - return (Opal.defn(self, '$to_n', TMP_Hash_to_n_61 = function $$to_n() { + + var result = {}, + keys = self.$$keys, + smap = self.$$smap, + key, value; + + for (var i = 0, length = keys.length; i < length; i++) { + key = keys[i]; + + if (key.$$is_string) { + value = smap[key]; + } else { + key = key.key; + value = key.value; + } + + result[key] = $$($nesting, 'Native').$try_convert(value, value); + } + + return result; + + }, $Hash_to_n$62.$$arity = 0), nil) && 'to_n'; + })($nesting[0], null, $nesting) + }; + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Module'); + + var $nesting = [self].concat($parent_nesting), $Module_native_module$63; + + return (Opal.def(self, '$native_module', $Module_native_module$63 = function $$native_module() { + var self = this; + + return Opal.global[self.$name()] = self + }, $Module_native_module$63.$$arity = 0), nil) && 'native_module' + })($nesting[0], null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Class'); + + var $nesting = [self].concat($parent_nesting), $Class_native_alias$64, $Class_native_class$65; + + + + Opal.def(self, '$native_alias', $Class_native_alias$64 = function $$native_alias(new_jsid, existing_mid) { + var self = this; + + + var aliased = self.prototype['$' + existing_mid]; + if (!aliased) { + self.$raise($$($nesting, 'NameError').$new("" + "undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", existing_mid)); + } + self.prototype[new_jsid] = aliased; + + }, $Class_native_alias$64.$$arity = 2); + return (Opal.def(self, '$native_class', $Class_native_class$65 = function $$native_class() { var self = this; - var result = {}, - keys = self.$$keys, - smap = self.$$smap, - key, value; + self.$native_module(); + return self["new"] = self.$new;; + }, $Class_native_class$65.$$arity = 0), nil) && 'native_class'; + })($nesting[0], null, $nesting); + return ($gvars.$ = ($gvars.global = self.$Native(Opal.global))); +}; + +Opal.modules["json"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; + + Opal.add_stubs(['$raise', '$new', '$push', '$[]=', '$-', '$[]', '$create_id', '$json_create', '$const_get', '$attr_accessor', '$create_id=', '$===', '$parse', '$generate', '$from_object', '$merge', '$to_json', '$responds_to?', '$to_io', '$write', '$to_s', '$to_a', '$strftime']); + + (function($base, $parent_nesting) { + var self = $module($base, 'JSON'); + + var $nesting = [self].concat($parent_nesting), $JSON_$$$1, $JSON_parse$2, $JSON_parse$excl$3, $JSON_load$4, $JSON_from_object$5, $JSON_generate$6, $JSON_dump$7, $writer = nil; + + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'JSONError'); + + var $nesting = [self].concat($parent_nesting); - for (var i = 0, length = keys.length; i < length; i++) { + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ParserError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'JSONError'), $nesting); + + var $hasOwn = Opal.hasOwnProperty; + + function $parse(source) { + try { + return JSON.parse(source); + } catch (e) { + self.$raise($$$($$($nesting, 'JSON'), 'ParserError'), e.message); + } + }; + + function to_opal(value, options) { + var klass, arr, hash, i, ii, k; + + switch (typeof value) { + case 'string': + return value; + + case 'number': + return value; + + case 'boolean': + return !!value; + + case 'undefined': + return nil; + + case 'object': + if (!value) return nil; + + if (value.$$is_array) { + arr = (options.array_class).$new(); + + for (i = 0, ii = value.length; i < ii; i++) { + (arr).$push(to_opal(value[i], options)); + } + + return arr; + } + else { + hash = (options.object_class).$new(); + + for (k in value) { + if ($hasOwn.call(value, k)) { + (($writer = [k, to_opal(value[k], options)]), $send((hash), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); + } + } + + if (!options.parse && (klass = (hash)['$[]']($$($nesting, 'JSON').$create_id())) != nil) { + return $$$('::', 'Object').$const_get(klass).$json_create(hash); + } + else { + return hash; + } + } + } + }; + ; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("create_id") + })(Opal.get_singleton_class(self), $nesting); + + $writer = ["json_class"]; + $send(self, 'create_id=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + Opal.defs(self, '$[]', $JSON_$$$1 = function(value, options) { + var self = this; + + + + if (options == null) { + options = $hash2([], {}); + }; + if ($truthy($$($nesting, 'String')['$==='](value))) { + return self.$parse(value, options) + } else { + return self.$generate(value, options) + }; + }, $JSON_$$$1.$$arity = -2); + Opal.defs(self, '$parse', $JSON_parse$2 = function $$parse(source, options) { + var self = this; + + + + if (options == null) { + options = $hash2([], {}); + }; + return self.$from_object($parse(source), options.$merge($hash2(["parse"], {"parse": true}))); + }, $JSON_parse$2.$$arity = -2); + Opal.defs(self, '$parse!', $JSON_parse$excl$3 = function(source, options) { + var self = this; + + + + if (options == null) { + options = $hash2([], {}); + }; + return self.$parse(source, options); + }, $JSON_parse$excl$3.$$arity = -2); + Opal.defs(self, '$load', $JSON_load$4 = function $$load(source, options) { + var self = this; + + + + if (options == null) { + options = $hash2([], {}); + }; + return self.$from_object($parse(source), options); + }, $JSON_load$4.$$arity = -2); + Opal.defs(self, '$from_object', $JSON_from_object$5 = function $$from_object(js_object, options) { + var self = this, $ret_or_1 = nil, $writer = nil, $ret_or_2 = nil; + + + + if (options == null) { + options = $hash2([], {}); + }; + if ($truthy(($ret_or_1 = options['$[]']("object_class")))) { + $ret_or_1 + } else { + + $writer = ["object_class", $$($nesting, 'Hash')]; + $send(options, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + if ($truthy(($ret_or_2 = options['$[]']("array_class")))) { + $ret_or_2 + } else { + + $writer = ["array_class", $$($nesting, 'Array')]; + $send(options, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return to_opal(js_object, options.$$smap);; + }, $JSON_from_object$5.$$arity = -2); + Opal.defs(self, '$generate', $JSON_generate$6 = function $$generate(obj, options) { + var self = this; + + + + if (options == null) { + options = $hash2([], {}); + }; + return obj.$to_json(options); + }, $JSON_generate$6.$$arity = -2); + return (Opal.defs(self, '$dump', $JSON_dump$7 = function $$dump(obj, io, limit) { + var self = this, string = nil; + + + + if (io == null) { + io = nil; + }; + + if (limit == null) { + limit = nil; + }; + string = self.$generate(obj); + if ($truthy(io)) { + + if ($truthy(io['$responds_to?']("to_io"))) { + io = io.$to_io()}; + io.$write(string); + return io; + } else { + return string + }; + }, $JSON_dump$7.$$arity = -2), nil) && 'dump'; + })($nesting[0], $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Object'); + + var $nesting = [self].concat($parent_nesting), $Object_to_json$8; + + return (Opal.def(self, '$to_json', $Object_to_json$8 = function $$to_json() { + var self = this; + + return self.$to_s().$to_json() + }, $Object_to_json$8.$$arity = 0), nil) && 'to_json' + })($nesting[0], null, $nesting); + (function($base, $parent_nesting) { + var self = $module($base, 'Enumerable'); + + var $nesting = [self].concat($parent_nesting), $Enumerable_to_json$9; + + return (Opal.def(self, '$to_json', $Enumerable_to_json$9 = function $$to_json() { + var self = this; + + return self.$to_a().$to_json() + }, $Enumerable_to_json$9.$$arity = 0), nil) && 'to_json' + })($nesting[0], $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Array'); + + var $nesting = [self].concat($parent_nesting), $Array_to_json$10; + + return (Opal.def(self, '$to_json', $Array_to_json$10 = function $$to_json() { + var self = this; + + + var result = []; + + for (var i = 0, length = self.length; i < length; i++) { + result.push((self[i]).$to_json()); + } + + return '[' + result.join(',') + ']'; + + }, $Array_to_json$10.$$arity = 0), nil) && 'to_json' + })($nesting[0], null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Boolean'); + + var $nesting = [self].concat($parent_nesting), $Boolean_to_json$11; + + return (Opal.def(self, '$to_json', $Boolean_to_json$11 = function $$to_json() { + var self = this; + + return (self == true) ? 'true' : 'false'; + }, $Boolean_to_json$11.$$arity = 0), nil) && 'to_json' + })($nesting[0], null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Hash'); + + var $nesting = [self].concat($parent_nesting), $Hash_to_json$12; + + return (Opal.def(self, '$to_json', $Hash_to_json$12 = function $$to_json() { + var self = this; + + + var result = []; + + for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { key = keys[i]; if (key.$$is_string) { - value = smap[key]; + value = self.$$smap[key]; } else { - key = key.key; value = key.value; + key = key.key; } - result[key] = Opal.const_get_relative($nesting, 'Native').$try_convert(value, value); + result.push((key).$to_s().$to_json() + ':' + (value).$to_json()); } - return result; + return '{' + result.join(',') + '}'; - }, TMP_Hash_to_n_61.$$arity = 0), nil) && 'to_n'; + }, $Hash_to_json$12.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Module(){}; - var self = $Module = $klass($base, $super, 'Module', $Module); + var self = $klass($base, $super, 'NilClass'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Module_native_module_62; + var $nesting = [self].concat($parent_nesting), $NilClass_to_json$13; - return (Opal.defn(self, '$native_module', TMP_Module_native_module_62 = function $$native_module() { + return (Opal.def(self, '$to_json', $NilClass_to_json$13 = function $$to_json() { var self = this; - return Opal.global[self.$name()] = self - }, TMP_Module_native_module_62.$$arity = 0), nil) && 'native_module' + return "null" + }, $NilClass_to_json$13.$$arity = 0), nil) && 'to_json' + })($nesting[0], null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Numeric'); + + var $nesting = [self].concat($parent_nesting), $Numeric_to_json$14; + + return (Opal.def(self, '$to_json', $Numeric_to_json$14 = function $$to_json() { + var self = this; + + return self.toString(); + }, $Numeric_to_json$14.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Class(){}; - var self = $Class = $klass($base, $super, 'Class', $Class); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Class_native_alias_63, TMP_Class_native_class_64; + var $nesting = [self].concat($parent_nesting), $String_to_json$15; + + return (Opal.def(self, '$to_json', $String_to_json$15 = function $$to_json() { + var self = this; + + return JSON.stringify(self); + }, $String_to_json$15.$$arity = 0), nil) && 'to_json' + })($nesting[0], null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Time'); + + var $nesting = [self].concat($parent_nesting), $Time_to_json$16; + + return (Opal.def(self, '$to_json', $Time_to_json$16 = function $$to_json() { + var self = this; + + return self.$strftime("%FT%T%z").$to_json() + }, $Time_to_json$16.$$arity = 0), nil) && 'to_json' + })($nesting[0], null, $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Date'); + + var $nesting = [self].concat($parent_nesting), $Date_to_json$17, $Date_as_json$18; - Opal.defn(self, '$native_alias', TMP_Class_native_alias_63 = function $$native_alias(new_jsid, existing_mid) { + Opal.def(self, '$to_json', $Date_to_json$17 = function $$to_json() { var self = this; - - var aliased = self.$$proto['$' + existing_mid]; - if (!aliased) { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", self.$exiting_mid())); - } - self.$$proto[new_jsid] = aliased; - - }, TMP_Class_native_alias_63.$$arity = 2); - return (Opal.defn(self, '$native_class', TMP_Class_native_class_64 = function $$native_class() { + return self.$to_s().$to_json() + }, $Date_to_json$17.$$arity = 0); + return (Opal.def(self, '$as_json', $Date_as_json$18 = function $$as_json() { var self = this; - - self.$native_module(); - return self["new"] = self.$new;; - }, TMP_Class_native_class_64.$$arity = 0), nil) && 'native_class'; + return self.$to_s() + }, $Date_as_json$18.$$arity = 0), nil) && 'as_json'; })($nesting[0], null, $nesting); - return ($gvars.$ = ($gvars.global = self.$Native(Opal.global))); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/state/observer"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["hyperstack/state/observer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $send = Opal.send; Opal.add_stubs(['$observing', '$to_proc', '$update_objects_to_observe', '$remove']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $State, self = $State = $module($base, 'State'); + return (function($base, $parent_nesting) { + var self = $module($base, 'State'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Observer, self = $Observer = $module($base, 'Observer'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Observer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Observer_observing_1, TMP_Observer_update_objects_to_observe_2, TMP_Observer_remove_3; + var $nesting = [self].concat($parent_nesting), $Observer_observing$1, $Observer_update_objects_to_observe$2, $Observer_remove$3; - Opal.defn(self, '$observing', TMP_Observer_observing_1 = function $$observing($kwargs) { - var self = this, immediate_update, rendering, update_objects, $iter = TMP_Observer_observing_1.$$p, block = $iter || nil; + Opal.def(self, '$observing', $Observer_observing$1 = function $$observing($kwargs) { + var $iter = $Observer_observing$1.$$p, block = $iter || nil, immediate_update, rendering, update_objects, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + if ($iter) $Observer_observing$1.$$p = null; + + + if ($iter) $Observer_observing$1.$$p = null;; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + immediate_update = $kwargs.$$smap["immediate_update"]; if (immediate_update == null) { immediate_update = false - } + }; + rendering = $kwargs.$$smap["rendering"]; if (rendering == null) { rendering = false - } + }; + update_objects = $kwargs.$$smap["update_objects"]; if (update_objects == null) { update_objects = false - } - if ($iter) TMP_Observer_observing_1.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper'), 'observing', [self, immediate_update, rendering, update_objects], block.$to_proc()) - }, TMP_Observer_observing_1.$$arity = -1); + }; + return $send($$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper'), 'observing', [self, immediate_update, rendering, update_objects], block.$to_proc()); + }, $Observer_observing$1.$$arity = -1); - Opal.defn(self, '$update_objects_to_observe', TMP_Observer_update_objects_to_observe_2 = function $$update_objects_to_observe() { + Opal.def(self, '$update_objects_to_observe', $Observer_update_objects_to_observe$2 = function $$update_objects_to_observe() { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper').$update_objects_to_observe(self) - }, TMP_Observer_update_objects_to_observe_2.$$arity = 0); - - Opal.defn(self, '$remove', TMP_Observer_remove_3 = function $$remove() { + return $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper').$update_objects_to_observe(self) + }, $Observer_update_objects_to_observe$2.$$arity = 0); + return (Opal.def(self, '$remove', $Observer_remove$3 = function $$remove() { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper').$remove(self) - }, TMP_Observer_remove_3.$$arity = 0); + return $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper').$remove(self) + }, $Observer_remove$3.$$arity = 0), nil) && 'remove'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/validator"] = function(Opal) { +Opal.modules["hyperstack/internal/component/validator"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$attr_accessor', '$attr_reader', '$private', '$tap', '$new', '$each', '$instance_variable_set', '$dup', '$instance_variable_get', '$build', '$to_proc', '$instance_eval', '$[]=', '$-', '$define_rule', '$coerce_native_hash_values', '$rules', '$define_all_others', '$props_wrapper', '$reject', '$[]', '$errors=', '$allow_undefined_props?', '$validate_undefined', '$defined_props', '$validate_required', '$validate_types', '$validate_allowed', '$errors', '$inject', '$select', '$include?', '$keys', '$!', '$define_param', '$is_a?', '$type_check', '$>', '$length', '$validate_value_array', '$nil?', '$respond_to?', '$_react_param_conversion', '$<<', '$each_with_index', '$Native']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Validator(){}; - var self = $Validator = $klass($base, $super, 'Validator', $Validator); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Validator'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Validator_copy_3, TMP_Validator_initialize_4, TMP_Validator_build_5, TMP_Validator_build_6, TMP_Validator_requires_7, TMP_Validator_optional_8, TMP_Validator_event_9, TMP_Validator_all_other_params_12, TMP_Validator_validate_14, TMP_Validator_default_props_17, TMP_Validator_defined_props_19, TMP_Validator_allow_undefined_props$q_20, TMP_Validator_rules_21, TMP_Validator_define_rule_22, TMP_Validator_errors_23, TMP_Validator_validate_types_24, TMP_Validator_type_check_25, TMP_Validator_validate_allowed_26, TMP_Validator_validate_required_28, TMP_Validator_validate_undefined_30, TMP_Validator_validate_value_array_32, TMP_Validator_coerce_native_hash_values_34; + var $nesting = [self].concat($parent_nesting), $Validator_copy$1, $Validator_initialize$4, $Validator_build$5, $Validator_build$6, $Validator_requires$7, $Validator_optional$8, $Validator_event$9, $Validator_all_other_params$10, $Validator_validate$13, $Validator_default_props$15, $Validator_defined_props$18, $Validator_allow_undefined_props$ques$20, $Validator_rules$21, $Validator_define_rule$22, $Validator_errors$23, $Validator_validate_types$24, $Validator_type_check$25, $Validator_validate_allowed$26, $Validator_validate_required$27, $Validator_validate_undefined$29, $Validator_validate_value_array$31, $Validator_coerce_native_hash_values$33; - def.allow_undefined_props = def.rules = def.errors = nil; + self.$$prototype.allow_undefined_props = self.$$prototype.rules = self.$$prototype.errors = nil; self.$attr_accessor("errors"); self.$attr_reader("props_wrapper"); self.$private("errors", "props_wrapper"); - Opal.defn(self, '$copy', TMP_Validator_copy_3 = function $$copy(new_props_wrapper) { - var TMP_1, self = this; + Opal.def(self, '$copy', $Validator_copy$1 = function $$copy(new_props_wrapper) { + var $$2, self = this; + + return $send($$($nesting, 'Validator').$new(new_props_wrapper), 'tap', [], ($$2 = function(c){var self = $$2.$$s == null ? this : $$2.$$s, $$3; - return $send(Opal.const_get_relative($nesting, 'Validator').$new(new_props_wrapper), 'tap', [], (TMP_1 = function(c){var self = TMP_1.$$s || this, TMP_2; -if (c == null) c = nil; - return $send(["@allow_undefined_props", "@rules", "@errors"], 'each', [], (TMP_2 = function(var$){var self = TMP_2.$$s || this; -if (var$ == null) var$ = nil; - return c.$instance_variable_set(var$, self.$instance_variable_get(var$).$dup())}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)) - }, TMP_Validator_copy_3.$$arity = 1); + + + if (c == null) { + c = nil; + }; + return $send(["@allow_undefined_props", "@rules", "@errors"], 'each', [], ($$3 = function(var$){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (var$ == null) { + var$ = nil; + }; + return c.$instance_variable_set(var$, self.$instance_variable_get(var$).$dup());}, $$3.$$s = self, $$3.$$arity = 1, $$3));}, $$2.$$s = self, $$2.$$arity = 1, $$2)) + }, $Validator_copy$1.$$arity = 1); - Opal.defn(self, '$initialize', TMP_Validator_initialize_4 = function $$initialize(props_wrapper) { + Opal.def(self, '$initialize', $Validator_initialize$4 = function $$initialize(props_wrapper) { var self = this; + + if (props_wrapper == null) { - props_wrapper = Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'PropsWrapper')); - } - return (self.props_wrapper = props_wrapper) - }, TMP_Validator_initialize_4.$$arity = -1); - Opal.defs(self, '$build', TMP_Validator_build_5 = function $$build() { - var self = this, $iter = TMP_Validator_build_5.$$p, block = $iter || nil; + props_wrapper = $$($nesting, 'Class').$new($$($nesting, 'PropsWrapper')); + }; + return (self.props_wrapper = props_wrapper); + }, $Validator_initialize$4.$$arity = -1); + Opal.defs(self, '$build', $Validator_build$5 = function $$build() { + var $iter = $Validator_build$5.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Validator_build_5.$$p = null; - return $send(self.$new(), 'build', [], block.$to_proc()) - }, TMP_Validator_build_5.$$arity = 0); + if ($iter) $Validator_build$5.$$p = null; + + + if ($iter) $Validator_build$5.$$p = null;; + return $send(self.$new(), 'build', [], block.$to_proc()); + }, $Validator_build$5.$$arity = 0); - Opal.defn(self, '$build', TMP_Validator_build_6 = function $$build() { - var self = this, $iter = TMP_Validator_build_6.$$p, block = $iter || nil; + Opal.def(self, '$build', $Validator_build$6 = function $$build() { + var $iter = $Validator_build$6.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Validator_build_6.$$p = null; + if ($iter) $Validator_build$6.$$p = null; + + if ($iter) $Validator_build$6.$$p = null;; $send(self, 'instance_eval', [], block.$to_proc()); return self; - }, TMP_Validator_build_6.$$arity = 0); + }, $Validator_build$6.$$arity = 0); - Opal.defn(self, '$requires', TMP_Validator_requires_7 = function $$requires(name, options) { + Opal.def(self, '$requires', $Validator_requires$7 = function $$requires(name, options) { var self = this, $writer = nil; + + if (options == null) { options = $hash2([], {}); - } - + }; $writer = ["required", true]; $send(options, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$define_rule(name, options); - }, TMP_Validator_requires_7.$$arity = -2); + }, $Validator_requires$7.$$arity = -2); - Opal.defn(self, '$optional', TMP_Validator_optional_8 = function $$optional(name, options) { + Opal.def(self, '$optional', $Validator_optional$8 = function $$optional(name, options) { var self = this, $writer = nil; + + if (options == null) { options = $hash2([], {}); - } - + }; $writer = ["required", false]; $send(options, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$define_rule(name, options); - }, TMP_Validator_optional_8.$$arity = -2); + }, $Validator_optional$8.$$arity = -2); - Opal.defn(self, '$event', TMP_Validator_event_9 = function $$event(name) { + Opal.def(self, '$event', $Validator_event$9 = function $$event(name) { var self = this, $writer = nil; - $writer = [name, self.$coerce_native_hash_values($hash2(["default", "type", "allow_nil"], {"default": nil, "type": Opal.const_get_relative($nesting, 'Proc'), "allow_nil": true}))]; + $writer = [name, self.$coerce_native_hash_values($hash2(["default", "type", "allow_nil"], {"default": nil, "type": $$($nesting, 'Proc'), "allow_nil": true}))]; $send(self.$rules(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_Validator_event_9.$$arity = 1); + }, $Validator_event$9.$$arity = 1); - Opal.defn(self, '$all_other_params', TMP_Validator_all_other_params_12 = function $$all_other_params(name) { - var TMP_10, self = this; + Opal.def(self, '$all_other_params', $Validator_all_other_params$10 = function $$all_other_params(name) { + var $$11, self = this; self.allow_undefined_props = true; - return $send(self.$props_wrapper(), 'define_all_others', [name], (TMP_10 = function(props){var self = TMP_10.$$s || this, TMP_11; -if (props == null) props = nil; - return $send(props, 'reject', [], (TMP_11 = function(name, value){var self = TMP_11.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return self.$rules()['$[]'](name)}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11))}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)); - }, TMP_Validator_all_other_params_12.$$arity = 1); + return $send(self.$props_wrapper(), 'define_all_others', [name], ($$11 = function(props){var self = $$11.$$s == null ? this : $$11.$$s, $$12; + + + + if (props == null) { + props = nil; + }; + return $send(props, 'reject', [], ($$12 = function(name, value){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return self.$rules()['$[]'](name);}, $$12.$$s = self, $$12.$$arity = 2, $$12));}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + }, $Validator_all_other_params$10.$$arity = 1); - Opal.defn(self, '$validate', TMP_Validator_validate_14 = function $$validate(props) { - var TMP_13, self = this, $writer = nil; + Opal.def(self, '$validate', $Validator_validate$13 = function $$validate(props) { + var $$14, self = this, $writer = nil; @@ -1863,379 +2444,525 @@ if (name == null) name = nil;if (value == null) value = nil; $send(self, 'errors=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(self['$allow_undefined_props?']())) { - } else { + } else { self.$validate_undefined(props) }; props = self.$coerce_native_hash_values(self.$defined_props(props)); self.$validate_required(props); - $send(props, 'each', [], (TMP_13 = function(name, value){var self = TMP_13.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - + $send(props, 'each', [], ($$14 = function(name, value){var self = $$14.$$s == null ? this : $$14.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; self.$validate_types(name, value); - return self.$validate_allowed(name, value);}, TMP_13.$$s = self, TMP_13.$$arity = 2, TMP_13)); + return self.$validate_allowed(name, value);}, $$14.$$s = self, $$14.$$arity = 2, $$14)); return self.$errors(); - }, TMP_Validator_validate_14.$$arity = 1); + }, $Validator_validate$13.$$arity = 1); - Opal.defn(self, '$default_props', TMP_Validator_default_props_17 = function $$default_props() { - var TMP_15, TMP_16, self = this; + Opal.def(self, '$default_props', $Validator_default_props$15 = function $$default_props() { + var $$16, $$17, self = this; - return $send($send(self.$rules(), 'select', [], (TMP_15 = function(key, value){var self = TMP_15.$$s || this; -if (key == null) key = nil;if (value == null) value = nil; - return value.$keys()['$include?']("default")}, TMP_15.$$s = self, TMP_15.$$arity = 2, TMP_15)), 'inject', [$hash2([], {})], (TMP_16 = function(memo, $a){var self = TMP_16.$$s || this, $a_args, k, v, $writer = nil; + return $send($send(self.$rules(), 'select', [], ($$16 = function(key, value){var self = $$16.$$s == null ? this : $$16.$$s; - if ($a == null) { - $a = nil; - } - $a = Opal.to_ary($a); - $a_args = Opal.slice.call($a, 0, $a.length); - k = $a_args.splice(0,1)[0]; - if (k == null) { - k = nil; - } - v = $a_args.splice(0,1)[0]; - if (v == null) { - v = nil; - }if (memo == null) memo = nil; - + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + return value.$keys()['$include?']("default");}, $$16.$$s = self, $$16.$$arity = 2, $$16)), 'inject', [$hash2([], {})], ($$17 = function(memo, $mlhs_tmp1){var self = $$17.$$s == null ? this : $$17.$$s, $a, $b, k = nil, v = nil, $writer = nil; + + + + if (memo == null) { + memo = nil; + }; + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; + }; + $b = $mlhs_tmp1, $a = Opal.to_ary($b), (k = ($a[0] == null ? nil : $a[0])), (v = ($a[1] == null ? nil : $a[1])), $b; $writer = [k, v['$[]']("default")]; $send(memo, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return memo;}, TMP_16.$$s = self, TMP_16.$$arity = 2, TMP_16.$$has_top_level_mlhs_arg = true, TMP_16)) - }, TMP_Validator_default_props_17.$$arity = 0); + return memo;}, $$17.$$s = self, $$17.$$arity = 2, $$17.$$has_top_level_mlhs_arg = true, $$17)) + }, $Validator_default_props$15.$$arity = 0); self.$private(); - Opal.defn(self, '$defined_props', TMP_Validator_defined_props_19 = function $$defined_props(props) { - var TMP_18, self = this; + Opal.def(self, '$defined_props', $Validator_defined_props$18 = function $$defined_props(props) { + var $$19, self = this; - return $send(props, 'select', [], (TMP_18 = function(name){var self = TMP_18.$$s || this; -if (name == null) name = nil; - return self.$rules().$keys()['$include?'](name)}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)) - }, TMP_Validator_defined_props_19.$$arity = 1); + return $send(props, 'select', [], ($$19 = function(name){var self = $$19.$$s == null ? this : $$19.$$s; + + + + if (name == null) { + name = nil; + }; + return self.$rules().$keys()['$include?'](name);}, $$19.$$s = self, $$19.$$arity = 1, $$19)) + }, $Validator_defined_props$18.$$arity = 1); - Opal.defn(self, '$allow_undefined_props?', TMP_Validator_allow_undefined_props$q_20 = function() { + Opal.def(self, '$allow_undefined_props?', $Validator_allow_undefined_props$ques$20 = function() { var self = this; return self.allow_undefined_props['$!']()['$!']() - }, TMP_Validator_allow_undefined_props$q_20.$$arity = 0); + }, $Validator_allow_undefined_props$ques$20.$$arity = 0); - Opal.defn(self, '$rules', TMP_Validator_rules_21 = function $$rules() { - var $a, self = this; + Opal.def(self, '$rules', $Validator_rules$21 = function $$rules() { + var self = this, $ret_or_1 = nil; - return (self.rules = ($truthy($a = self.rules) ? $a : $hash2(["children"], {"children": $hash2(["required"], {"required": false})}))) - }, TMP_Validator_rules_21.$$arity = 0); + return (self.rules = (function() {if ($truthy(($ret_or_1 = self.rules))) { + return $ret_or_1 + } else { + return $hash2(["children"], {"children": $hash2(["required"], {"required": false})}) + }; return nil; })()) + }, $Validator_rules$21.$$arity = 0); - Opal.defn(self, '$define_rule', TMP_Validator_define_rule_22 = function $$define_rule(name, options) { + Opal.def(self, '$define_rule', $Validator_define_rule$22 = function $$define_rule(name, options) { var self = this, $writer = nil; + + if (options == null) { options = $hash2([], {}); - } - + }; $writer = [name, self.$coerce_native_hash_values(options)]; $send(self.$rules(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$props_wrapper().$define_param(name, options['$[]']("type"), options['$[]']("alias")); - }, TMP_Validator_define_rule_22.$$arity = -2); + }, $Validator_define_rule$22.$$arity = -2); - Opal.defn(self, '$errors', TMP_Validator_errors_23 = function $$errors() { - var $a, self = this; + Opal.def(self, '$errors', $Validator_errors$23 = function $$errors() { + var self = this, $ret_or_2 = nil; - return (self.errors = ($truthy($a = self.errors) ? $a : [])) - }, TMP_Validator_errors_23.$$arity = 0); + return (self.errors = (function() {if ($truthy(($ret_or_2 = self.errors))) { + return $ret_or_2 + } else { + return [] + }; return nil; })()) + }, $Validator_errors$23.$$arity = 0); - Opal.defn(self, '$validate_types', TMP_Validator_validate_types_24 = function $$validate_types(prop_name, value) { + Opal.def(self, '$validate_types', $Validator_validate_types$24 = function $$validate_types(prop_name, value) { var self = this, klass = nil, allow_nil = nil; if ($truthy((klass = self.$rules()['$[]'](prop_name)['$[]']("type")))) { - } else { + } else { return nil }; - if ($truthy(klass['$is_a?'](Opal.const_get_relative($nesting, 'Array'))['$!']())) { + if ($truthy(klass['$is_a?']($$($nesting, 'Array'))['$!']())) { allow_nil = self.$rules()['$[]'](prop_name)['$[]']("allow_nil")['$!']()['$!'](); return self.$type_check("" + "`" + (prop_name) + "`", value, klass, allow_nil); } else if ($truthy($rb_gt(klass.$length(), 0))) { return self.$validate_value_array(prop_name, value) - } else { + } else { allow_nil = self.$rules()['$[]'](prop_name)['$[]']("allow_nil")['$!']()['$!'](); - return self.$type_check("" + "`" + (prop_name) + "`", value, Opal.const_get_relative($nesting, 'Array'), allow_nil); + return self.$type_check("" + "`" + (prop_name) + "`", value, $$($nesting, 'Array'), allow_nil); }; - }, TMP_Validator_validate_types_24.$$arity = 2); + }, $Validator_validate_types$24.$$arity = 2); - Opal.defn(self, '$type_check', TMP_Validator_type_check_25 = function $$type_check(prop_name, value, klass, allow_nil) { - var $a, self = this; + Opal.def(self, '$type_check', $Validator_type_check$25 = function $$type_check(prop_name, value, klass, allow_nil) { + var self = this, $ret_or_3 = nil, $ret_or_4 = nil; - if ($truthy(($truthy($a = allow_nil) ? value['$nil?']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = allow_nil))) { + return value['$nil?']() + } else { + return $ret_or_3 + }; return nil; })())) { return nil}; if ($truthy(value['$is_a?'](klass))) { return nil}; - if ($truthy(($truthy($a = klass['$respond_to?']("_react_param_conversion")) ? klass.$_react_param_conversion(value, "validate_only") : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = klass['$respond_to?']("_react_param_conversion")))) { + return klass.$_react_param_conversion(value, "validate_only") + } else { + return $ret_or_4 + }; return nil; })())) { return nil}; return self.$errors()['$<<']("" + "Provided prop " + (prop_name) + " could not be converted to " + (klass)); - }, TMP_Validator_type_check_25.$$arity = 4); + }, $Validator_type_check$25.$$arity = 4); - Opal.defn(self, '$validate_allowed', TMP_Validator_validate_allowed_26 = function $$validate_allowed(prop_name, value) { + Opal.def(self, '$validate_allowed', $Validator_validate_allowed$26 = function $$validate_allowed(prop_name, value) { var self = this, values = nil; if ($truthy((values = self.$rules()['$[]'](prop_name)['$[]']("values")))) { - } else { + } else { return nil }; if ($truthy(values['$include?'](value))) { return nil}; return self.$errors()['$<<']("" + "Value `" + (value) + "` for prop `" + (prop_name) + "` is not an allowed value"); - }, TMP_Validator_validate_allowed_26.$$arity = 2); + }, $Validator_validate_allowed$26.$$arity = 2); - Opal.defn(self, '$validate_required', TMP_Validator_validate_required_28 = function $$validate_required(props) { - var TMP_27, self = this; + Opal.def(self, '$validate_required', $Validator_validate_required$27 = function $$validate_required(props) { + var $$28, self = this; - return $send($rb_minus(self.$rules().$keys(), props.$keys()), 'each', [], (TMP_27 = function(name){var self = TMP_27.$$s || this; -if (name == null) name = nil; - + return $send($rb_minus(self.$rules().$keys(), props.$keys()), 'each', [], ($$28 = function(name){var self = $$28.$$s == null ? this : $$28.$$s; + + + + if (name == null) { + name = nil; + }; if ($truthy(self.$rules()['$[]'](name)['$[]']("required"))) { - } else { + } else { return nil; }; - return self.$errors()['$<<']("" + "Required prop `" + (name) + "` was not specified");}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)) - }, TMP_Validator_validate_required_28.$$arity = 1); + return self.$errors()['$<<']("" + "Required prop `" + (name) + "` was not specified");}, $$28.$$s = self, $$28.$$arity = 1, $$28)) + }, $Validator_validate_required$27.$$arity = 1); - Opal.defn(self, '$validate_undefined', TMP_Validator_validate_undefined_30 = function $$validate_undefined(props) { - var TMP_29, self = this; + Opal.def(self, '$validate_undefined', $Validator_validate_undefined$29 = function $$validate_undefined(props) { + var $$30, self = this; - return $send($rb_minus(props.$keys(), self.$rules().$keys()), 'each', [], (TMP_29 = function(prop_name){var self = TMP_29.$$s || this; -if (prop_name == null) prop_name = nil; - return self.$errors()['$<<']("" + "Provided prop `" + (prop_name) + "` not specified in spec")}, TMP_29.$$s = self, TMP_29.$$arity = 1, TMP_29)) - }, TMP_Validator_validate_undefined_30.$$arity = 1); + return $send($rb_minus(props.$keys(), self.$rules().$keys()), 'each', [], ($$30 = function(prop_name){var self = $$30.$$s == null ? this : $$30.$$s; + + + + if (prop_name == null) { + prop_name = nil; + }; + return self.$errors()['$<<']("" + "Provided prop `" + (prop_name) + "` not specified in spec");}, $$30.$$s = self, $$30.$$arity = 1, $$30)) + }, $Validator_validate_undefined$29.$$arity = 1); - Opal.defn(self, '$validate_value_array', TMP_Validator_validate_value_array_32 = function $$validate_value_array(name, value) { - var TMP_31, self = this, klass = nil, allow_nil = nil; + Opal.def(self, '$validate_value_array', $Validator_validate_value_array$31 = function $$validate_value_array(name, value) { + var $$32, self = this, klass = nil, allow_nil = nil; try { klass = self.$rules()['$[]'](name)['$[]']("type"); allow_nil = self.$rules()['$[]'](name)['$[]']("allow_nil")['$!']()['$!'](); - return $send(value, 'each_with_index', [], (TMP_31 = function(item, index){var self = TMP_31.$$s || this; -if (item == null) item = nil;if (index == null) index = nil; - return self.$type_check("" + "`" + (name) + "`[" + (index) + "]", self.$Native(item), klass['$[]'](0), allow_nil)}, TMP_31.$$s = self, TMP_31.$$arity = 2, TMP_31)); + return $send(value, 'each_with_index', [], ($$32 = function(item, index){var self = $$32.$$s == null ? this : $$32.$$s; + + + + if (item == null) { + item = nil; + }; + + if (index == null) { + index = nil; + }; + return self.$type_check("" + "`" + (name) + "`[" + (index) + "]", self.$Native(item), klass['$[]'](0), allow_nil);}, $$32.$$s = self, $$32.$$arity = 2, $$32)); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NoMethodError')])) { + if (Opal.rescue($err, [$$($nesting, 'NoMethodError')])) { try { return self.$errors()['$<<']("" + "Provided prop `" + (name) + "` was not an Array") - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Validator_validate_value_array_32.$$arity = 2); - return (Opal.defn(self, '$coerce_native_hash_values', TMP_Validator_coerce_native_hash_values_34 = function $$coerce_native_hash_values(hash) { - var TMP_33, self = this; + }, $Validator_validate_value_array$31.$$arity = 2); + return (Opal.def(self, '$coerce_native_hash_values', $Validator_coerce_native_hash_values$33 = function $$coerce_native_hash_values(hash) { + var $$34, self = this; - return $send(hash, 'each', [], (TMP_33 = function(key, value){var self = TMP_33.$$s || this, $writer = nil; -if (key == null) key = nil;if (value == null) value = nil; - + return $send(hash, 'each', [], ($$34 = function(key, value){var self = $$34.$$s == null ? this : $$34.$$s, $writer = nil; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; $writer = [key, self.$Native(value)]; $send(hash, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_33.$$s = self, TMP_33.$$arity = 2, TMP_33)) - }, TMP_Validator_coerce_native_hash_values_34.$$arity = 1), nil) && 'coerce_native_hash_values'; + return $writer[$rb_minus($writer["length"], 1)];}, $$34.$$s = self, $$34.$$arity = 2, $$34)) + }, $Validator_coerce_native_hash_values$33.$$arity = 1), nil) && 'coerce_native_hash_values'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/string"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["hyperstack/ext/component/string"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_event_camelize_1; + var $nesting = [self].concat($parent_nesting), $String_event_camelize$1; - return (Opal.defn(self, '$event_camelize', TMP_String_event_camelize_1 = function $$event_camelize() { + return (Opal.def(self, '$event_camelize', $String_event_camelize$1 = function $$event_camelize() { var self = this; return self.replace(/(^|_)([^_]+)/g, function(match, pre, word, index) { var capitalize = true; return capitalize ? word.substr(0,1).toUpperCase()+word.substr(1) : word; }) - }, TMP_String_event_camelize_1.$$arity = 0), nil) && 'event_camelize' + }, $String_event_camelize$1.$$arity = 0), nil) && 'event_camelize' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/element"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $hash = Opal.hash; +Opal.modules["hyperstack/component/element"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $alias = Opal.alias, $hash = Opal.hash; - Opal.add_stubs(['$require', '$include', '$alias_native', '$attr_reader', '$attr_accessor', '$_update_ref', '$[]', '$properties', '$raise', '$type', '$ref', '$dom_node', '$each', '$!=', '$strip', '$merge_event_prop!', '$to_proc', '$shallow_to_n', '$empty?', '$render', '$convert_props', '$new', '$block', '$delete', '$private', '$=~', '$merge_component_event_prop!', '$gsub', '$include?', '$event_camelize', '$merge_built_in_event_prop!', '$==', '$key_code', '$instance_variable_get', '$merge!', '$Array', '$ignore_bulk_updates']); + Opal.add_stubs(['$require', '$attr_reader', '$attr_accessor', '$new', '$is_a?', '$!', '$empty?', '$raise', '$==', '$convert_string', '$set_native_attributes', '$_update_ref', '$[]', '$properties', '$element_type', '$ref', '$dom_node', '$each', '$!=', '$strip', '$merge_event_prop!', '$to_proc', '$shallow_to_n', '$render', '$convert_props', '$block', '$delete', '$private', '$=~', '$merge_component_event_prop!', '$gsub', '$include?', '$event_camelize', '$merge_built_in_event_prop!', '$key_code', '$instance_variable_get', '$merge!', '$Array', '$ignore_bulk_updates']); self.$require("hyperstack/ext/component/string"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Element_initialize_1, TMP_Element__update_ref_2, TMP_Element_ref_3, TMP_Element_dom_node_4, TMP_Element_on_5, TMP_Element_render_7, TMP_Element_delete_8, TMP_Element_merge_event_prop$B_9, TMP_Element_merge_built_in_event_prop$B_11, TMP_Element_merge_component_event_prop$B_12; + var $nesting = [self].concat($parent_nesting), $Element_set_native_attributes$1, $Element_props$2, $Element_convert_string$3, $Element_initialize$4, $Element_children$5, $Element__update_ref$6, $Element_ref$7, $Element_dom_node$8, $Element_on$9, $Element_render$11, $Element_$$12, $Element_merge_event_prop$excl$13, $Element_merge_built_in_event_prop$excl$15, $Element_merge_component_event_prop$excl$16; - def._child_element = def.ref = def["native"] = def.properties = def.type = nil; + self.$$prototype.props = self.$$prototype._props_as_hash = self.$$prototype._child_element = self.$$prototype._ref = self.$$prototype.properties = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - self.$alias_native("element_type", "type"); - self.$alias_native("props", "props"); self.$attr_reader("type"); + self.$attr_reader("element_type"); self.$attr_reader("properties"); self.$attr_reader("block"); + self.$attr_reader("to_n"); self.$attr_accessor("waiting_on_resources"); - Opal.defn(self, '$initialize', TMP_Element_initialize_1 = function $$initialize(native_element, type, properties, block) { - var $a, self = this; + Opal.def(self, '$set_native_attributes', $Element_set_native_attributes$1 = function $$set_native_attributes(native_element) { + var self = this; - if (type == null) { - type = nil; - } + + self.key = native_element.key; + self.props = native_element.props; + self.ref = native_element.ref; + self.type = native_element.type; + self._owner = native_element._owner; + return (self._props_as_hash = $$($nesting, 'Hash').$new(self.props)); + }, $Element_set_native_attributes$1.$$arity = 1); + + Opal.def(self, '$props', $Element_props$2 = function $$props() { + var self = this; + + return self._props_as_hash + }, $Element_props$2.$$arity = 0); + + Opal.def(self, '$convert_string', $Element_convert_string$3 = function $$convert_string(native_element, element_type, props, block) { + var self = this, $ret_or_1 = nil; + + + if ($truthy(native_element['$is_a?'])) { + } else { + return native_element + }; + if ($truthy(native_element['$is_a?']($$($nesting, 'String')))) { + } else { + return native_element + }; + if ($truthy((function() {if ($truthy(($ret_or_1 = props['$empty?']()['$!']()))) { + return $ret_or_1 + } else { + return block + }; return nil; })())) { + self.$raise("Internal Error Element.new called with string, but non-nil props or block")}; + if (element_type['$==']("wrap_child")) { + return React.createElement(React.Fragment, null, [native_element]); + } else { + return React.createElement(native_element, null); + }; + }, $Element_convert_string$3.$$arity = 4); + + Opal.def(self, '$initialize', $Element_initialize$4 = function $$initialize(native_element, element_type, properties, block) { + var self = this, $ret_or_2 = nil; + + + + if (element_type == null) { + element_type = nil; + }; + if (properties == null) { properties = $hash2([], {}); - } + }; + if (block == null) { block = nil; - } - - self.type = type; - self.properties = ($truthy($a = (function() {if ($truthy(typeof properties === 'undefined')) { - return nil + }; + try { + + native_element = self.$convert_string(native_element, element_type, properties, block); + if (element_type['$==']("wrap_child")) { } else { - return properties - }; return nil; })()) ? $a : $hash2([], {})); - self.block = block; - return (self["native"] = native_element); - }, TMP_Element_initialize_1.$$arity = -2); + self.element_type = element_type + }; + self.properties = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(typeof properties === 'undefined')) { + return nil + } else { + return properties + }; return nil; })()))) { + return $ret_or_2 + } else { + return $hash2([], {}) + }; return nil; })(); + self.block = block; + self.$$typeof = native_element.$$typeof; + self.to_n = self; + return self.$set_native_attributes(native_element); + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { + try { + return nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + }, $Element_initialize$4.$$arity = -2); + + Opal.def(self, '$children', $Element_children$5 = function $$children() { + var self = this; + + return self.props.children + }, $Element_children$5.$$arity = 0); - Opal.defn(self, '$_update_ref', TMP_Element__update_ref_2 = function $$_update_ref(x) { + Opal.def(self, '$_update_ref', $Element__update_ref$6 = function $$_update_ref(x) { var self = this; - self.ref = x; + self._ref = x; if ($truthy(self._child_element)) { return self._child_element.$_update_ref(x) - } else { + } else { return nil }; - }, TMP_Element__update_ref_2.$$arity = 1); + }, $Element__update_ref$6.$$arity = 1); - Opal.defn(self, '$ref', TMP_Element_ref_3 = function $$ref() { + Opal.def(self, '$ref', $Element_ref$7 = function $$ref() { var self = this; - if ($truthy(self.ref)) { - return self.ref}; + if ($truthy(self._ref)) { + return self._ref}; if ($truthy(self.$properties()['$[]']("ref"))) { - self.$raise("" + "The instance of " + (self.$type()) + " has not been mounted yet")}; - return self.$raise("" + "Attempt to get a ref on " + (self.$type()) + " which is a static component."); - }, TMP_Element_ref_3.$$arity = 0); + self.$raise("" + "The instance of " + (self.$element_type()) + " has not been mounted yet")}; + return self.$raise("" + "Attempt to get a ref on " + (self.$element_type()) + " which is a static component."); + }, $Element_ref$7.$$arity = 0); - Opal.defn(self, '$dom_node', TMP_Element_dom_node_4 = function $$dom_node() { + Opal.def(self, '$dom_node', $Element_dom_node$8 = function $$dom_node() { var self = this; if ($truthy(typeof self.$ref().$dom_node == 'function')) { return self.$ref().$dom_node() - } else { + } else { return self.$ref() } - }, TMP_Element_dom_node_4.$$arity = 0); + }, $Element_dom_node$8.$$arity = 0); - Opal.defn(self, '$on', TMP_Element_on_5 = function $$on($a_rest) { - var TMP_6, self = this, event_names, $iter = TMP_Element_on_5.$$p, block = $iter || nil, any_found = nil; + Opal.def(self, '$on', $Element_on$9 = function $$on($a) { + var $iter = $Element_on$9.$$p, block = $iter || nil, $post_args, event_names, $$10, self = this, any_found = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - event_names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - event_names[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Element_on_5.$$p = null; + if ($iter) $Element_on$9.$$p = null; - any_found = false; - $send(event_names, 'each', [], (TMP_6 = function(event_name){var self = TMP_6.$$s || this, $a; -if (event_name == null) event_name = nil; - if ($truthy(($truthy($a = event_name) ? event_name.$strip()['$!=']("") : $a))) { - } else { + if ($iter) $Element_on$9.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + event_names = $post_args;; + any_found = false; + $send(event_names, 'each', [], ($$10 = function(event_name){var self = $$10.$$s == null ? this : $$10.$$s, $ret_or_3 = nil; + + + + if (event_name == null) { + event_name = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_3 = event_name))) { + return event_name.$strip()['$!=']("") + } else { + return $ret_or_3 + }; return nil; })())) { + } else { return nil; }; $send(self, 'merge_event_prop!', [event_name], block.$to_proc()); - return (any_found = true);}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); + return (any_found = true);}, $$10.$$s = self, $$10.$$arity = 1, $$10)); if ($truthy(any_found)) { - self["native"] = React.cloneElement(self["native"], self.properties.$shallow_to_n())}; + self.$set_native_attributes(React.cloneElement(self, self.properties.$shallow_to_n()))}; return self; - }, TMP_Element_on_5.$$arity = -1); + }, $Element_on$9.$$arity = -1); - Opal.defn(self, '$render', TMP_Element_render_7 = function $$render($a_rest) { - var self = this, props; + Opal.def(self, '$render', $Element_render$11 = function $$render($a) { + var $post_args, props, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - props = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - props[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + props = $post_args;; if ($truthy(props['$empty?']())) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render(self) - } else { + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render(self) + } else { - props = $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper'), 'convert_props', [self.type, self.properties].concat(Opal.to_a(props))); - return (self._child_element = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render(Opal.const_get_relative($nesting, 'Element').$new(React.cloneElement(self["native"], props.$shallow_to_n()), self.$type(), props, self.$block()))); - } - }, TMP_Element_render_7.$$arity = -1); + props = $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper'), 'convert_props', [self.$element_type(), self.properties].concat(Opal.to_a(props))); + return (self._child_element = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render($$($nesting, 'Element').$new(React.cloneElement(self, props.$shallow_to_n()), self.$element_type(), props, self.$block()))); + }; + }, $Element_render$11.$$arity = -1); - Opal.defn(self, '$delete', TMP_Element_delete_8 = function() { + Opal.def(self, '$~', $Element_$$12 = function() { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$delete(self) - }, TMP_Element_delete_8.$$arity = 0); - Opal.alias(self, "as_node", "delete"); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$delete(self) + }, $Element_$$12.$$arity = 0); + $alias(self, "as_node", "~"); + $alias(self, "delete", "~"); self.$private(); - Opal.defn(self, '$merge_event_prop!', TMP_Element_merge_event_prop$B_9 = function(event_name) { - var TMP_10, self = this, $iter = TMP_Element_merge_event_prop$B_9.$$p, block = $iter || nil, name = nil; + Opal.def(self, '$merge_event_prop!', $Element_merge_event_prop$excl$13 = function(event_name) { + var $iter = $Element_merge_event_prop$excl$13.$$p, block = $iter || nil, $$14, self = this, name = nil; - if ($iter) TMP_Element_merge_event_prop$B_9.$$p = null; + if ($iter) $Element_merge_event_prop$excl$13.$$p = null; + + + if ($iter) $Element_merge_event_prop$excl$13.$$p = null;; if ($truthy(event_name['$=~'](/^<(.+)>$/))) { return $send(self, 'merge_component_event_prop!', [event_name.$gsub(/^<(.+)>$/, "\\1")], block.$to_proc()) - } else if ($truthy(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Event'), 'BUILT_IN_EVENTS')['$include?']((name = "" + "on" + (event_name.$event_camelize()))))) { + } else if ($truthy($$$($$($nesting, 'Event'), 'BUILT_IN_EVENTS')['$include?']((name = "" + "on" + (event_name.$event_camelize()))))) { return $send(self, 'merge_built_in_event_prop!', [name], block.$to_proc()) } else if (event_name['$==']("enter")) { - return $send(self, 'merge_built_in_event_prop!', ["onKeyDown"], (TMP_10 = function(evt){var self = TMP_10.$$s || this; -if (evt == null) evt = nil; - if (evt.$key_code()['$=='](13)) { + return $send(self, 'merge_built_in_event_prop!', ["onKeyDown"], ($$14 = function(evt){var self = $$14.$$s == null ? this : $$14.$$s; + + + + if (evt == null) { + evt = nil; + }; + if (evt.$key_code()['$=='](13)) { return Opal.yield1(block, evt); - } else { + } else { return nil - }}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)) - } else if ($truthy(self.type.$instance_variable_get("@native_import"))) { + };}, $$14.$$s = self, $$14.$$arity = 1, $$14)) + } else if ($truthy(self.$element_type().$instance_variable_get("@native_import"))) { return $send(self, 'merge_component_event_prop!', [name], block.$to_proc()) - } else { + } else { return $send(self, 'merge_component_event_prop!', ["" + "on_" + (event_name)], block.$to_proc()) - } - }, TMP_Element_merge_event_prop$B_9.$$arity = 1); + }; + }, $Element_merge_event_prop$excl$13.$$arity = 1); - Opal.defn(self, '$merge_built_in_event_prop!', TMP_Element_merge_built_in_event_prop$B_11 = function(prop_name) { - var self = this, $iter = TMP_Element_merge_built_in_event_prop$B_11.$$p, block = $iter || nil; + Opal.def(self, '$merge_built_in_event_prop!', $Element_merge_built_in_event_prop$excl$15 = function(prop_name) { + var $iter = $Element_merge_built_in_event_prop$excl$15.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Element_merge_built_in_event_prop$B_11.$$p = null; + if ($iter) $Element_merge_built_in_event_prop$excl$15.$$p = null; + + + if ($iter) $Element_merge_built_in_event_prop$excl$15.$$p = null;; return self.properties['$merge!']($hash(prop_name, function(){ var react_event = arguments[0]; @@ -2247,122 +2974,154 @@ if (evt == null) evt = nil; if (arguments.length > 1) { all_args = Array.prototype.slice.call(arguments); other_args = all_args.slice(1, arguments.length); - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper'), 'ignore_bulk_updates', [Opal.const_get_relative($nesting, 'Event').$new(react_event)].concat(Opal.to_a((other_args))), block.$to_proc()); + return $send($$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper'), 'ignore_bulk_updates', [$$($nesting, 'Event').$new(react_event)].concat(Opal.to_a((other_args))), block.$to_proc()); } else { - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper'), 'ignore_bulk_updates', [Opal.const_get_relative($nesting, 'Event').$new(react_event)], block.$to_proc()); + return $send($$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper'), 'ignore_bulk_updates', [$$($nesting, 'Event').$new(react_event)], block.$to_proc()); } } - )) - }, TMP_Element_merge_built_in_event_prop$B_11.$$arity = 1); - return (Opal.defn(self, '$merge_component_event_prop!', TMP_Element_merge_component_event_prop$B_12 = function(prop_name) { - var self = this, $iter = TMP_Element_merge_component_event_prop$B_12.$$p, $yield = $iter || nil; + )); + }, $Element_merge_built_in_event_prop$excl$15.$$arity = 1); + return (Opal.def(self, '$merge_component_event_prop!', $Element_merge_component_event_prop$excl$16 = function(prop_name) { + var $iter = $Element_merge_component_event_prop$excl$16.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Element_merge_component_event_prop$B_12.$$p = null; + if ($iter) $Element_merge_component_event_prop$excl$16.$$p = null; return self.properties['$merge!']($hash(prop_name, function(){ return Opal.yieldX($yield, Opal.to_a(self.$Array(arguments))) } )) - }, TMP_Element_merge_component_event_prop$B_12.$$arity = 1), nil) && 'merge_component_event_prop!'; + }, $Element_merge_component_event_prop$excl$16.$$arity = 1), nil) && 'merge_component_event_prop!'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/native_library"] = function(Opal) { +Opal.modules["hyperstack/component/native_library"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super; Opal.add_stubs(['$each', '$lookup_native_name', '$create_component_wrapper', '$create_library_wrapper', '$raise', '$name', '$scope_native_name', '$+', '$downcase', '$[]', '$import_const_from_native', '$const_defined?', '$const_get', '$render', '$to_proc', '$private', '$native_react_component?', '$const_set', '$imports', '$new', '$class_eval', '$include']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $NativeLibrary(){}; - var self = $NativeLibrary = $klass($base, $super, 'NativeLibrary', $NativeLibrary); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'NativeLibrary'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_imports_1, TMP_rename_3, TMP_import_const_from_native_4, TMP_const_missing_5, TMP_method_missing_6, TMP_lookup_native_name_7, TMP_scope_native_name_8, TMP_create_component_wrapper_10, TMP_create_library_wrapper_11; + var $nesting = [self].concat($parent_nesting), $imports$1, $rename$2, $import_const_from_native$4, $const_missing$5, $method_missing$6, $lookup_native_name$7, $scope_native_name$8, $create_component_wrapper$9, $create_library_wrapper$11; - Opal.defn(self, '$imports', TMP_imports_1 = function $$imports(native_name) { + Opal.def(self, '$imports', $imports$1 = function $$imports(native_name) { var self = this; self.__hyperstack_component_native_prefix = "" + (native_name) + "."; return self; - }, TMP_imports_1.$$arity = 1); + }, $imports$1.$$arity = 1); - Opal.defn(self, '$rename', TMP_rename_3 = function $$rename(rename_list) { - var TMP_2, self = this; + Opal.def(self, '$rename', $rename$2 = function $$rename(rename_list) { + var $$3, self = this; - return $send(rename_list, 'each', [], (TMP_2 = function(js_name, ruby_name){var self = TMP_2.$$s || this, $a, native_name = nil; -if (js_name == null) js_name = nil;if (ruby_name == null) ruby_name = nil; - + return $send(rename_list, 'each', [], ($$3 = function(js_name, ruby_name){var self = $$3.$$s == null ? this : $$3.$$s, native_name = nil, $ret_or_1 = nil; + + + + if (js_name == null) { + js_name = nil; + }; + + if (ruby_name == null) { + ruby_name = nil; + }; native_name = self.$lookup_native_name(js_name); if ($truthy(self.$lookup_native_name(js_name))) { - return ($truthy($a = self.$create_component_wrapper(self, native_name, ruby_name)) ? $a : self.$create_library_wrapper(self, native_name, ruby_name)) + if ($truthy(($ret_or_1 = self.$create_component_wrapper(self, native_name, ruby_name)))) { + return $ret_or_1 } else { + return self.$create_library_wrapper(self, native_name, ruby_name) + } + } else { return self.$raise("" + ("" + "class " + (self.$name()) + " < Hyperstack::Component::NativeLibrary could not import " + (js_name) + ". ") + ("" + "Native value " + (self.$scope_native_name(js_name)) + " is undefined.")) - };}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)) - }, TMP_rename_3.$$arity = 1); + };}, $$3.$$s = self, $$3.$$arity = 2, $$3)) + }, $rename$2.$$arity = 1); - Opal.defn(self, '$import_const_from_native', TMP_import_const_from_native_4 = function $$import_const_from_native(klass, const_name, create_library) { - var $a, $b, $c, self = this, native_name = nil; + Opal.def(self, '$import_const_from_native', $import_const_from_native$4 = function $$import_const_from_native(klass, const_name, create_library) { + var self = this, native_name = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; - native_name = ($truthy($a = self.$lookup_native_name(const_name)) ? $a : self.$lookup_native_name($rb_plus(const_name['$[]'](0).$downcase(), const_name['$[]']($range(1, -1, false))))); - return ($truthy($a = native_name) ? ($truthy($b = self.$create_component_wrapper(klass, native_name, const_name)) ? $b : ($truthy($c = create_library) ? self.$create_library_wrapper(klass, native_name, const_name) : $c)) : $a); - }, TMP_import_const_from_native_4.$$arity = 3); + native_name = (function() {if ($truthy(($ret_or_2 = self.$lookup_native_name(const_name)))) { + return $ret_or_2 + } else { + return self.$lookup_native_name($rb_plus(const_name['$[]'](0).$downcase(), const_name['$[]']($range(1, -1, false)))) + }; return nil; })(); + if ($truthy(($ret_or_3 = native_name))) { + + if ($truthy(($ret_or_4 = self.$create_component_wrapper(klass, native_name, const_name)))) { + return $ret_or_4 + } else { + + if ($truthy(($ret_or_5 = create_library))) { + return self.$create_library_wrapper(klass, native_name, const_name) + } else { + return $ret_or_5 + }; + }; + } else { + return $ret_or_3 + }; + }, $import_const_from_native$4.$$arity = 3); - Opal.defn(self, '$const_missing', TMP_const_missing_5 = function $$const_missing(const_name) { - var $a, self = this, $iter = TMP_const_missing_5.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$const_missing', $const_missing$5 = function $$const_missing(const_name) { + var $iter = $const_missing$5.$$p, $yield = $iter || nil, self = this, $ret_or_6 = nil; - if ($iter) TMP_const_missing_5.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; + if ($iter) $const_missing$5.$$p = null; + if ($truthy(($ret_or_6 = self.$import_const_from_native(self, const_name, true)))) { + return $ret_or_6 + } else { + return $send2(self, $find_super(self, 'const_missing', $const_missing$5, false, true), 'const_missing', [const_name], $iter) } - return ($truthy($a = self.$import_const_from_native(self, const_name, true)) ? $a : $send(self, Opal.find_super_dispatcher(self, 'const_missing', TMP_const_missing_5, false), $zuper, $iter)) - }, TMP_const_missing_5.$$arity = 1); + }, $const_missing$5.$$arity = 1); - Opal.defn(self, '$method_missing', TMP_method_missing_6 = function $$method_missing(method, $a_rest) { - var $b, self = this, args, $iter = TMP_method_missing_6.$$p, block = $iter || nil, component_class = nil; + Opal.def(self, '$method_missing', $method_missing$6 = function $$method_missing(method, $a) { + var $iter = $method_missing$6.$$p, block = $iter || nil, $post_args, args, self = this, component_class = nil, $ret_or_7 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_method_missing_6.$$p = null; + if ($iter) $method_missing$6.$$p = null; + + + if ($iter) $method_missing$6.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + args = $post_args;; if ($truthy(self['$const_defined?'](method, false))) { component_class = self.$const_get(method)}; - component_class = ($truthy($b = component_class) ? $b : self.$import_const_from_native(self, method, false)); + component_class = (function() {if ($truthy(($ret_or_7 = component_class))) { + return $ret_or_7 + } else { + return self.$import_const_from_native(self, method, false) + }; return nil; })(); if ($truthy(component_class)) { - } else { + } else { self.$raise("" + "could not import a react component named: " + ("" + (self.$scope_native_name(method)))) }; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [component_class].concat(Opal.to_a(args)), block.$to_proc()); - }, TMP_method_missing_6.$$arity = -2); + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [component_class].concat(Opal.to_a(args)), block.$to_proc()); + }, $method_missing$6.$$arity = -2); self.$private(); - Opal.defn(self, '$lookup_native_name', TMP_lookup_native_name_7 = function $$lookup_native_name(js_name) { + Opal.def(self, '$lookup_native_name', $lookup_native_name$7 = function $$lookup_native_name(js_name) { var self = this, native_name = nil; try { @@ -2370,42 +3129,42 @@ if (js_name == null) js_name = nil;if (ruby_name == null) ruby_name = nil; native_name = self.$scope_native_name(js_name); return eval(native_name) !== undefined && native_name; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_lookup_native_name_7.$$arity = 1); + }, $lookup_native_name$7.$$arity = 1); - Opal.defn(self, '$scope_native_name', TMP_scope_native_name_8 = function $$scope_native_name(js_name) { + Opal.def(self, '$scope_native_name', $scope_native_name$8 = function $$scope_native_name(js_name) { var self = this; if (self.__hyperstack_component_native_prefix == null) self.__hyperstack_component_native_prefix = nil; return "" + (self.__hyperstack_component_native_prefix) + (js_name) - }, TMP_scope_native_name_8.$$arity = 1); + }, $scope_native_name$8.$$arity = 1); - Opal.defn(self, '$create_component_wrapper', TMP_create_component_wrapper_10 = function $$create_component_wrapper(klass, native_name, ruby_name) { - var TMP_9, self = this, new_klass = nil; + Opal.def(self, '$create_component_wrapper', $create_component_wrapper$9 = function $$create_component_wrapper(klass, native_name, ruby_name) { + var $$10, self = this, new_klass = nil; - if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper')['$native_react_component?'](native_name))) { + if ($truthy($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper')['$native_react_component?'](native_name))) { - new_klass = klass.$const_set(ruby_name, Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'NativeLibrary')).$imports(native_name)); - $send(new_klass, 'class_eval', [], (TMP_9 = function(){var self = TMP_9.$$s || this; + new_klass = klass.$const_set(ruby_name, $$($nesting, 'Class').$new($$($nesting, 'NativeLibrary')).$imports(native_name)); + $send(new_klass, 'class_eval', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - - self.$include(Opal.const_get_relative($nesting, 'Component')); - return self.$imports(native_name);}, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)); + + self.$include($$($nesting, 'Component')); + return self.$imports(native_name);}, $$10.$$s = self, $$10.$$arity = 0, $$10)); return new_klass; - } else { + } else { return nil } - }, TMP_create_component_wrapper_10.$$arity = 3); - return (Opal.defn(self, '$create_library_wrapper', TMP_create_library_wrapper_11 = function $$create_library_wrapper(klass, native_name, ruby_name) { + }, $create_component_wrapper$9.$$arity = 3); + return (Opal.def(self, '$create_library_wrapper', $create_library_wrapper$11 = function $$create_library_wrapper(klass, native_name, ruby_name) { var self = this; - return klass.$const_set(ruby_name, Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'NativeLibrary')).$imports(native_name)) - }, TMP_create_library_wrapper_11.$$arity = 3), nil) && 'create_library_wrapper'; + return klass.$const_set(ruby_name, $$($nesting, 'Class').$new($$($nesting, 'NativeLibrary')).$imports(native_name)) + }, $create_library_wrapper$11.$$arity = 3), nil) && 'create_library_wrapper'; })(Opal.get_singleton_class(self), $nesting); return self.$imports("NativeLibrary"); })($nesting[0], null, $nesting) @@ -2413,59 +3172,57 @@ if (js_name == null) js_name = nil;if (ruby_name == null) ruby_name = nil; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { +Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $hash2 = Opal.hash2, $send = Opal.send, $class_variable_get = Opal.class_variable_get, $truthy = Opal.truthy, $lambda = Opal.lambda, $range = Opal.range; - Opal.add_stubs(['$require', '$instance_variable_set', '$[]=', '$-', '$raise', '$stateless?', '$eval_native_react_component', '$add_after_error_hook_to_native', '$[]', '$!', '$method_defined?', '$respond_to?', '$native_mixins', '$to_n', '$static_call_backs', '$new', '$name', '$default_props', '$prop_types', '$callbacks?', '$<<', '$is_a?', '$create_native_react_class', '$include?', '$lambda', '$_update_ref', '$convert_props', '$shallow_to_n', '$flatten', '$call', '$each', '$split', '$==', '$merge', '$lower_camelize', '$join', '$to_key', '$ignore_mutations', '$const_defined?', '$gsub', '$html_attr?', '$private', '$first', '$concat', '$map', '$+', '$upcase']); + Opal.add_stubs(['$require', '$instance_variable_set', '$[]=', '$-', '$raise', '$stateless?', '$eval_native_react_component', '$add_after_error_hook_to_native', '$[]', '$!', '$method_defined?', '$respond_to?', '$native_mixins', '$to_n', '$static_call_backs', '$new', '$name', '$default_props', '$prop_types', '$callbacks?', '$<<', '$is_a?', '$create_native_react_class', '$include?', '$_update_ref', '$convert_props', '$shallow_to_n', '$flatten', '$call', '$each', '$split', '$==', '$merge', '$lower_camelize', '$join', '$to_key', '$ignore_mutations', '$const_defined?', '$gsub', '$html_attr?', '$private', '$first', '$concat', '$map', '$+', '$upcase']); self.$require("hyperstack/component/native_library"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ReactWrapper(){}; - var self = $ReactWrapper = $klass($base, $super, 'ReactWrapper', $ReactWrapper); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ReactWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ReactWrapper_stateless$q_1, TMP_ReactWrapper_import_native_component_2, TMP_ReactWrapper_eval_native_react_component_3, TMP_ReactWrapper_native_react_component$q_4, TMP_ReactWrapper_add_after_error_hook_5, TMP_ReactWrapper_add_after_error_hook_to_native_6, TMP_ReactWrapper_create_native_react_class_7, TMP_ReactWrapper_create_element_8, TMP_ReactWrapper_clear_component_class_cache_10, TMP_ReactWrapper_convert_props_21, TMP_ReactWrapper_lower_camelize_23; + var $nesting = [self].concat($parent_nesting), $ReactWrapper_stateless$ques$1, $ReactWrapper_import_native_component$2, $ReactWrapper_eval_native_react_component$3, $ReactWrapper_native_react_component$ques$4, $ReactWrapper_add_after_error_hook$5, $ReactWrapper_add_after_error_hook_to_native$6, $ReactWrapper_create_native_react_class$7, $ReactWrapper_create_element$8, $ReactWrapper_clear_component_class_cache$10, $ReactWrapper_convert_props$11, $ReactWrapper_lower_camelize$22; - (Opal.class_variable_set($ReactWrapper, '@@component_classes', $hash2([], {}))); - Opal.defs(self, '$stateless?', TMP_ReactWrapper_stateless$q_1 = function(ncc) { + $class_variable_set($nesting[0], '@@component_classes', $hash2([], {})); + Opal.defs(self, '$stateless?', $ReactWrapper_stateless$ques$1 = function(ncc) { var self = this; - return typeof ncc === 'function' && !(ncc.prototype && ncc.prototype.isReactComponent) - }, TMP_ReactWrapper_stateless$q_1.$$arity = 1); - Opal.defs(self, '$import_native_component', TMP_ReactWrapper_import_native_component_2 = function $$import_native_component(opal_class, native_class) { - var $a, self = this, $writer = nil; + return typeof ncc === 'symbol' || (typeof ncc === 'function' && !(ncc.prototype && ncc.prototype.isReactComponent)) + }, $ReactWrapper_stateless$ques$1.$$arity = 1); + Opal.defs(self, '$import_native_component', $ReactWrapper_import_native_component$2 = function $$import_native_component(opal_class, native_class) { + var self = this, $writer = nil; opal_class.$instance_variable_set("@native_import", true); $writer = [opal_class, native_class]; - $send((($a = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $a), '[]=', Opal.to_a($writer)); + $send($class_variable_get($nesting[0], '@@component_classes', false), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_ReactWrapper_import_native_component_2.$$arity = 2); - Opal.defs(self, '$eval_native_react_component', TMP_ReactWrapper_eval_native_react_component_3 = function $$eval_native_react_component(name) { - var $a, $b, self = this, component = nil, is_component_class = nil, has_render_method = nil; + }, $ReactWrapper_import_native_component$2.$$arity = 2); + Opal.defs(self, '$eval_native_react_component', $ReactWrapper_eval_native_react_component$3 = function $$eval_native_react_component(name) { + var self = this, component = nil, is_component_class = nil, $ret_or_1 = nil, $ret_or_2 = nil, has_render_method = nil, $ret_or_3 = nil, $ret_or_4 = nil; component = eval(name); @@ -2473,47 +3230,66 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { self.$raise("" + (name) + " is not defined")}; if ($truthy(component.__esModule)) { component = component.default}; - is_component_class = ($truthy($a = component.prototype !== undefined) ? ($truthy($b = !!component.prototype.isReactComponent) ? $b : !!component.prototype.render) : $a); - has_render_method = typeof component.render === "function"; - if ($truthy(($truthy($a = ($truthy($b = is_component_class) ? $b : self['$stateless?'](component))) ? $a : has_render_method))) { + is_component_class = (function() {if ($truthy(($ret_or_1 = component.prototype !== undefined))) { + + if ($truthy(($ret_or_2 = !!component.prototype.isReactComponent))) { + return $ret_or_2 } else { + return !!component.prototype.render + }; + } else { + return $ret_or_1 + }; return nil; })(); + has_render_method = typeof component.render === "function"; + if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = is_component_class))) { + return $ret_or_4 + } else { + return self['$stateless?'](component) + }; return nil; })()))) { + return $ret_or_3 + } else { + return has_render_method + }; return nil; })())) { + } else { self.$raise("does not appear to be a native react component") }; return component; - }, TMP_ReactWrapper_eval_native_react_component_3.$$arity = 1); - Opal.defs(self, '$native_react_component?', TMP_ReactWrapper_native_react_component$q_4 = function(name) { + }, $ReactWrapper_eval_native_react_component$3.$$arity = 1); + Opal.defs(self, '$native_react_component?', $ReactWrapper_native_react_component$ques$4 = function(name) { var self = this; + + if (name == null) { name = nil; - } + }; try { if ($truthy(name)) { - } else { + } else { return false }; self.$eval_native_react_component(name); return true; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { try { return false - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - } - }, TMP_ReactWrapper_native_react_component$q_4.$$arity = -1); - Opal.defs(self, '$add_after_error_hook', TMP_ReactWrapper_add_after_error_hook_5 = function $$add_after_error_hook(klass) { - var $a, self = this; + }; + }, $ReactWrapper_native_react_component$ques$4.$$arity = -1); + Opal.defs(self, '$add_after_error_hook', $ReactWrapper_add_after_error_hook$5 = function $$add_after_error_hook(klass) { + var self = this; - return self.$add_after_error_hook_to_native((($a = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $a)['$[]'](klass)) - }, TMP_ReactWrapper_add_after_error_hook_5.$$arity = 1); - Opal.defs(self, '$add_after_error_hook_to_native', TMP_ReactWrapper_add_after_error_hook_to_native_6 = function $$add_after_error_hook_to_native(native_comp) { + return self.$add_after_error_hook_to_native($class_variable_get($nesting[0], '@@component_classes', false)['$[]'](klass)) + }, $ReactWrapper_add_after_error_hook$5.$$arity = 1); + Opal.defs(self, '$add_after_error_hook_to_native', $ReactWrapper_add_after_error_hook_to_native$6 = function $$add_after_error_hook_to_native(native_comp) { var self = this; if ($truthy(native_comp)) { - } else { + } else { return nil }; @@ -2522,33 +3298,38 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { this.__opalInstance.$component_did_catch(error, Opal.Hash.$new(info)); } ; - }, TMP_ReactWrapper_add_after_error_hook_to_native_6.$$arity = 1); - Opal.defs(self, '$create_native_react_class', TMP_ReactWrapper_create_native_react_class_7 = function $$create_native_react_class(type) { - var $a, $b, self = this, render_fn = nil, $writer = nil, comp = nil; + }, $ReactWrapper_add_after_error_hook_to_native$6.$$arity = 1); + Opal.defs(self, '$create_native_react_class', $ReactWrapper_create_native_react_class$7 = function $$create_native_react_class(type) { + var self = this, old_school = nil, render_fn = nil, $ret_or_5 = nil, $writer = nil, comp = nil, $ret_or_6 = nil; if ($truthy(typeof(createReactClass)=='undefined')) { self.$raise("createReactClass is undefined. Add the 'react-create-class' npm module, and import it as 'createReactClass'")}; if ($truthy(type['$method_defined?']("render")['$!']())) { self.$raise("Provided class should define `render` method")}; - render_fn = (function() {if ($truthy(type['$method_defined?']("_render_wrapper"))) { - return "_render_wrapper" - } else { + old_school = type['$method_defined?']("_render_wrapper")['$!'](); + render_fn = (function() {if ($truthy(old_school)) { return "render" + } else { + return "_render_wrapper" }; return nil; })(); - return ($truthy($a = (($b = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $b)['$[]'](type)) ? $a : (($writer = [type, ((comp = + if ($truthy(($ret_or_5 = $class_variable_get($nesting[0], '@@component_classes', false)['$[]'](type)))) { + return $ret_or_5 + } else { + + $writer = [type, ((comp = createReactClass({ getInitialState: function() { this.mixins = (function() {if ($truthy(type['$respond_to?']("native_mixins"))) { - return type.$native_mixins() + return type.$native_mixins() } else { - return [] - }; return nil; })(); + return []; + }; return nil; })(); this.statics = (function() {if ($truthy(type['$respond_to?']("static_call_backs"))) { - return type.$static_call_backs().$to_n() + return type.$static_call_backs().$to_n() } else { - return {} - }; return nil; })(); + return {}; + }; return nil; })(); this.__opalInstanceInitializedState = false; this.__opalInstanceSyncSetState = true; this.__opalInstance = type.$new(this); @@ -2560,17 +3341,17 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { displayName: type.$name(), getDefaultProps: function() { return (function() {if ($truthy(type['$respond_to?']("default_props"))) { - return type.$default_props().$to_n() + return type.$default_props().$to_n() } else { - return {} - }; return nil; })(); + return {}; + }; return nil; })(); }, propTypes: (function() {if ($truthy(type['$respond_to?']("prop_types"))) { - return type.$prop_types().$to_n() + return type.$prop_types().$to_n() } else { - return {} - }; return nil; })(), - componentWillMount: function() { + return {}; + }; return nil; })(), + componentWillMount: old_school && function() { if (type['$method_defined?']("component_will_mount")) { this.__opalInstanceSyncSetState = true; this.__opalInstance.$component_will_mount(); @@ -2584,7 +3365,7 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { this.__opalInstance.$component_did_mount(); } }, - componentWillReceiveProps: function(next_props) { + UNSAFE_componentWillReceiveProps: function(next_props) { if (type['$method_defined?']("component_will_receive_props")) { this.__opalInstanceSyncSetState = true; this.__opalInstance.$component_will_receive_props(Opal.Hash.$new(next_props)); @@ -2597,7 +3378,7 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { return this.__opalInstance["$should_component_update?"](Opal.Hash.$new(next_props), Opal.Hash.$new(next_state)); } else { return true; } }, - componentWillUpdate: function(next_props, next_state) { + UNSAFE_componentWillUpdate: function(next_props, next_state) { if (type['$method_defined?']("component_will_update")) { this.__opalInstanceSyncSetState = false; this.__opalInstance.$component_will_update(Opal.Hash.$new(next_props), Opal.Hash.$new(next_state)); @@ -2621,42 +3402,58 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { return this.__opalInstance.$send(render_fn).$to_n(); } }) - ), (function() {if ($truthy(($truthy($b = type['$respond_to?']("callbacks?")) ? type['$callbacks?']("after_error") : $b))) { - return self.$add_after_error_hook_to_native(comp) + ), (function() {if ($truthy((function() {if ($truthy(($ret_or_6 = type['$respond_to?']("callbacks?")))) { + return type['$callbacks?']("after_error") } else { - return nil - }; return nil; })(), comp)]), $send((($b = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $b), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); - }, TMP_ReactWrapper_create_native_react_class_7.$$arity = 1); - Opal.defs(self, '$create_element', TMP_ReactWrapper_create_element_8 = function $$create_element(type, $a_rest) { - var $b, TMP_9, self = this, args, $iter = TMP_ReactWrapper_create_element_8.$$p, block = $iter || nil, params = nil, ncc = nil, ele = nil, ref = nil, properties = nil, a = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_ReactWrapper_create_element_8.$$p = null; + return $ret_or_6 + }; return nil; })())) { + return self.$add_after_error_hook_to_native(comp) + } else { + return nil + }; return nil; })(), comp)]; + $send($class_variable_get($nesting[0], '@@component_classes', false), '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }; + }, $ReactWrapper_create_native_react_class$7.$$arity = 1); + Opal.defs(self, '$create_element', $ReactWrapper_create_element$8 = function $$create_element(type, $a) { + var $iter = $ReactWrapper_create_element$8.$$p, block = $iter || nil, $post_args, args, $$9, self = this, params = nil, ncc = nil, $ret_or_7 = nil, ele = nil, ref = nil, properties = nil, a = nil; + + if ($iter) $ReactWrapper_create_element$8.$$p = null; + + if ($iter) $ReactWrapper_create_element$8.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; params = []; - ncc = (($b = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $b)['$[]'](type); + ncc = $class_variable_get($nesting[0], '@@component_classes', false)['$[]'](type); if ($truthy(ncc)) { params['$<<'](ncc) - } else if ($truthy(type['$is_a?'](Opal.const_get_relative($nesting, 'Class')))) { + } else if ($truthy(type['$is_a?']($$($nesting, 'Class')))) { params['$<<'](self.$create_native_react_class(type)) - } else if ($truthy(($truthy($b = (block !== nil)) ? $b : Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Tags'), 'HTML_TAGS')['$include?'](type)))) { + } else if ($truthy((function() {if ($truthy(($ret_or_7 = (block !== nil)))) { + return $ret_or_7 + } else { + return $$$($$($nesting, 'Tags'), 'HTML_TAGS')['$include?'](type) + }; return nil; })())) { params['$<<'](type) - } else if ($truthy(type['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element').$new(type) - } else { + } else if ($truthy(type['$is_a?']($$($nesting, 'String')))) { + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element').$new(type) + } else { self.$raise("" + (type) + " not implemented") }; ele = nil; if ($truthy(self['$stateless?'](ncc))) { - } else { - ref = $send(self, 'lambda', [], (TMP_9 = function(ref){var self = TMP_9.$$s || this; -if (ref == null) ref = nil; - return ele.$_update_ref(ref)}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)) + } else { + ref = $lambda(($$9 = function(ref){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (ref == null) { + ref = nil; + }; + return ele.$_update_ref(ref);}, $$9.$$s = self, $$9.$$arity = 1, $$9)) }; properties = $send(self, 'convert_props', [type, $hash2(["ref"], {"ref": ref})].concat(Opal.to_a(args))); params['$<<'](properties.$shallow_to_n()); @@ -2668,43 +3465,55 @@ if (ref == null) ref = nil; params.push(a[i].$to_n()); } ;}; - return (ele = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element').$new(React.createElement.apply(null, params), type, properties, block)); - }, TMP_ReactWrapper_create_element_8.$$arity = -2); - Opal.defs(self, '$clear_component_class_cache', TMP_ReactWrapper_clear_component_class_cache_10 = function $$clear_component_class_cache() { + return (ele = $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element').$new(React.createElement.apply(null, params), type, properties, block)); + }, $ReactWrapper_create_element$8.$$arity = -2); + Opal.defs(self, '$clear_component_class_cache', $ReactWrapper_clear_component_class_cache$10 = function $$clear_component_class_cache() { var self = this; - return (Opal.class_variable_set($ReactWrapper, '@@component_classes', $hash2([], {}))) - }, TMP_ReactWrapper_clear_component_class_cache_10.$$arity = 0); - Opal.defs(self, '$convert_props', TMP_ReactWrapper_convert_props_21 = function $$convert_props(type, $a_rest) { - var TMP_11, TMP_13, self = this, args, properties = nil, props = nil; + return $class_variable_set($nesting[0], '@@component_classes', $hash2([], {})) + }, $ReactWrapper_clear_component_class_cache$10.$$arity = 0); + Opal.defs(self, '$convert_props', $ReactWrapper_convert_props$11 = function $$convert_props(type, $a) { + var $post_args, args, $$12, $$14, self = this, properties = nil, props = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; properties = $hash2([], {}); - $send(args, 'each', [], (TMP_11 = function(arg){var self = TMP_11.$$s || this, TMP_12, $writer = nil; -if (arg == null) arg = nil; - if ($truthy(arg['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + $send(args, 'each', [], ($$12 = function(arg){var self = $$12.$$s == null ? this : $$12.$$s, $$13, $writer = nil; + + + + if (arg == null) { + arg = nil; + }; + if ($truthy(arg['$is_a?']($$($nesting, 'String')))) { $writer = [arg, true]; $send(properties, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else if ($truthy(arg['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { - return $send(arg, 'each', [], (TMP_12 = function(key, value){var self = TMP_12.$$s || this, $a; -if (key == null) key = nil;if (value == null) value = nil; - if ($truthy(["class", "className", "class_name"]['$include?'](key))) { + } else if ($truthy(arg['$is_a?']($$($nesting, 'Hash')))) { + return $send(arg, 'each', [], ($$13 = function(key, value){var self = $$13.$$s == null ? this : $$13.$$s, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + if ($truthy(["class", "className", "class_name"]['$include?'](key))) { if ($truthy(value)) { - } else { + } else { return nil; }; - if ($truthy(value['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + if ($truthy(value['$is_a?']($$($nesting, 'String')))) { value = value.$split(" ") - } else if ($truthy(value['$is_a?'](Opal.const_get_relative($nesting, 'Array'))['$!']())) { + } else if ($truthy(value['$is_a?']($$($nesting, 'Array'))['$!']())) { self.$raise("The class param must be a string or array of strings")}; $writer = ["className", [].concat(Opal.to_a(properties['$[]']("className"))).concat(Opal.to_a(value))]; @@ -2713,33 +3522,54 @@ if (key == null) key = nil;if (value == null) value = nil; } else if (key['$==']("style")) { if ($truthy(value)) { - } else { + } else { return nil; }; - if ($truthy(value['$is_a?'](Opal.const_get_relative($nesting, 'Hash'))['$!']())) { + if ($truthy(value['$is_a?']($$($nesting, 'Hash'))['$!']())) { self.$raise("The style param must be a Hash")}; - $writer = ["style", ($truthy($a = properties['$[]']("style")) ? $a : $hash2([], {})).$merge(value)]; + $writer = ["style", (function() {if ($truthy(($ret_or_8 = properties['$[]']("style")))) { + return $ret_or_8 + } else { + return $hash2([], {}) + }; return nil; })().$merge(value)]; $send(properties, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - } else if ($truthy(($truthy($a = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'ReactAPI'), 'HASH_ATTRIBUTES')['$include?'](key)) ? value['$is_a?'](Opal.const_get_relative($nesting, 'Hash')) : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_9 = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'ReactAPI'), 'HASH_ATTRIBUTES')['$include?'](key)))) { + return value['$is_a?']($$($nesting, 'Hash')) + } else { + return $ret_or_9 + }; return nil; })())) { - $writer = [key, ($truthy($a = properties['$[]'](key)) ? $a : $hash2([], {})).$merge(value)]; + $writer = [key, (function() {if ($truthy(($ret_or_10 = properties['$[]'](key)))) { + return $ret_or_10 + } else { + return $hash2([], {}) + }; return nil; })().$merge(value)]; $send(properties, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { $writer = [key, value]; $send(properties, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12)) - } else { + };}, $$13.$$s = self, $$13.$$arity = 2, $$13)) + } else { return nil - }}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)); + };}, $$12.$$s = self, $$12.$$arity = 1, $$12)); props = $hash2([], {}); - $send(properties, 'each', [], (TMP_13 = function(key, value){var self = TMP_13.$$s || this, TMP_14, TMP_15, TMP_16, TMP_17, TMP_18, TMP_19, $a, TMP_20, $writer = nil, fn = nil; -if (key == null) key = nil;if (value == null) value = nil; - if ($truthy(["style", "dangerously_set_inner_HTML"]['$include?'](key))) { + $send(properties, 'each', [], ($$14 = function(key, value){var self = $$14.$$s == null ? this : $$14.$$s, $$15, $$16, $$17, $$18, $$19, $$20, $$21, $writer = nil, fn = nil, $ret_or_11 = nil; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + if ($truthy(["style", "dangerously_set_inner_HTML"]['$include?'](key))) { $writer = [self.$lower_camelize(key), value.$to_n()]; $send(props, '[]=', Opal.to_a($writer)); @@ -2761,7 +3591,7 @@ if (key == null) key = nil;if (value == null) value = nil; } else if (type['$==']("input")) { key = (function() {if ($truthy(["radio", "checkbox"]['$include?'](properties['$[]']("type")))) { return "defaultChecked" - } else { + } else { return "defaultValue" }; return nil; })()}; @@ -2771,31 +3601,31 @@ if (key == null) key = nil;if (value == null) value = nil; } else if (key['$==']("ref")) { if ($truthy(value)) { - } else { + } else { return nil; }; if ($truthy(value['$respond_to?']("call"))) { - } else { + } else { self.$raise("" + "The ref and dom params must be given a Proc.\n" + "If you want to capture the ref in an instance variable use the `set` method.\n" + "For example `ref: set(:TheRef)` will capture assign the ref to `@TheRef`\n") }; if ($truthy(value.__hyperstack_component_ref_is_already_wrapped)) { - } else { + } else { fn = value; value = function(dom_node){ if (dom_node !== null && dom_node.__opalInstance !== undefined && dom_node.__opalInstance !== null) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_14 = function(){var self = TMP_14.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$15 = function(){var self = $$15.$$s == null ? this : $$15.$$s; - return fn.$call(dom_node.__opalInstance)}, TMP_14.$$s = self, TMP_14.$$arity = 0, TMP_14)); + return fn.$call(dom_node.__opalInstance)}, $$15.$$s = self, $$15.$$arity = 0, $$15)); } else if(dom_node !== null && ReactDOM.findDOMNode !== undefined && dom_node.nodeType === undefined) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_15 = function(){var self = TMP_15.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - return fn.$call(ReactDOM.findDOMNode(dom_node))}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)); + return fn.$call(ReactDOM.findDOMNode(dom_node))}, $$16.$$s = self, $$16.$$arity = 0, $$16)); } else if(dom_node !== null){ - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_16 = function(){var self = TMP_16.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; - return fn.$call(dom_node)}, TMP_16.$$s = self, TMP_16.$$arity = 0, TMP_16)); + return fn.$call(dom_node)}, $$17.$$s = self, $$17.$$arity = 0, $$17)); } } ; @@ -2808,191 +3638,218 @@ if (key == null) key = nil;if (value == null) value = nil; } else if (key['$==']("jq_ref")) { if ($truthy(value['$respond_to?']("call"))) { - } else { + } else { self.$raise("" + "The ref and dom params must be given a Proc.\n" + "If you want to capture the dom node in an instance variable use the `set` method.\n" + "For example `dom: set(:DomNode)` will assign the dom node to `@DomNode`\n") }; - if ($truthy(Opal.const_get_relative($nesting, 'Module')['$const_defined?']("Element"))) { - } else { + if ($truthy($$($nesting, 'Module')['$const_defined?']("Element"))) { + } else { self.$raise("" + "You must include 'hyperstack/component/jquery' " + "in your manifest to use the `dom` reference key.\n" + "For example if using rails include " + "`config.import 'hyperstack/component/jquery', client_only: true`" + "in your config/initializer/hyperstack.rb file") }; $writer = ["ref", function(dom_node){ if (dom_node !== null && dom_node.__opalInstance !== undefined && dom_node.__opalInstance !== null) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_17 = function(){var self = TMP_17.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$18 = function(){var self = $$18.$$s == null ? this : $$18.$$s; - return value.$call(Opal.const_get_qualified('::', 'Element')['$[]'](dom_node.__opalInstance))}, TMP_17.$$s = self, TMP_17.$$arity = 0, TMP_17)); + return value.$call($$$('::', 'Element')['$[]'](dom_node.__opalInstance))}, $$18.$$s = self, $$18.$$arity = 0, $$18)); } else if(dom_node !== null && ReactDOM.findDOMNode !== undefined && dom_node.nodeType === undefined) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_18 = function(){var self = TMP_18.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$19 = function(){var self = $$19.$$s == null ? this : $$19.$$s; - return value.$call(Opal.const_get_qualified('::', 'Element')['$[]'](ReactDOM.findDOMNode(dom_node)))}, TMP_18.$$s = self, TMP_18.$$arity = 0, TMP_18)); + return value.$call($$$('::', 'Element')['$[]'](ReactDOM.findDOMNode(dom_node)))}, $$19.$$s = self, $$19.$$arity = 0, $$19)); } else if(dom_node !== null) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_19 = function(){var self = TMP_19.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s; - return value.$call(Opal.const_get_qualified('::', 'Element')['$[]'](dom_node))}, TMP_19.$$s = self, TMP_19.$$arity = 0, TMP_19)); + return value.$call($$$('::', 'Element')['$[]'](dom_node))}, $$20.$$s = self, $$20.$$arity = 0, $$20)); } } ]; $send(props, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - } else if ($truthy(($truthy($a = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'ReactAPI'), 'HASH_ATTRIBUTES')['$include?'](key)) ? value['$is_a?'](Opal.const_get_relative($nesting, 'Hash')) : $a))) { - return $send(value, 'each', [], (TMP_20 = function(k, v){var self = TMP_20.$$s || this; -if (k == null) k = nil;if (v == null) v = nil; - + } else if ($truthy((function() {if ($truthy(($ret_or_11 = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'ReactAPI'), 'HASH_ATTRIBUTES')['$include?'](key)))) { + return value['$is_a?']($$($nesting, 'Hash')) + } else { + return $ret_or_11 + }; return nil; })())) { + return $send(value, 'each', [], ($$21 = function(k, v){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (k == null) { + k = nil; + }; + + if (v == null) { + v = nil; + }; $writer = ["" + (key) + "-" + (k.$gsub(/__|_/, $hash2(["__", "_"], {"__": "_", "_": "-"}))), v.$to_n()]; $send(props, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_20.$$s = self, TMP_20.$$arity = 2, TMP_20)) - } else { + return $writer[$rb_minus($writer["length"], 1)];}, $$21.$$s = self, $$21.$$arity = 2, $$21)) + } else { - $writer = [(function() {if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'ReactAPI')['$html_attr?'](self.$lower_camelize(key)))) { + $writer = [(function() {if ($truthy($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'ReactAPI')['$html_attr?'](self.$lower_camelize(key)))) { return self.$lower_camelize(key) - } else { + } else { return key }; return nil; })(), value]; $send(props, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }}, TMP_13.$$s = self, TMP_13.$$arity = 2, TMP_13)); + };}, $$14.$$s = self, $$14.$$arity = 2, $$14)); return props; - }, TMP_ReactWrapper_convert_props_21.$$arity = -2); + }, $ReactWrapper_convert_props$11.$$arity = -2); self.$private(); - return Opal.defs(self, '$lower_camelize', TMP_ReactWrapper_lower_camelize_23 = function $$lower_camelize(snake_cased_word) { - var TMP_22, self = this, words = nil, result = nil; + return (Opal.defs(self, '$lower_camelize', $ReactWrapper_lower_camelize$22 = function $$lower_camelize(snake_cased_word) { + var $$23, self = this, words = nil, result = nil; words = snake_cased_word.$split("_"); result = [words.$first()]; - return result.$concat($send(words['$[]']($range(1, -1, false)), 'map', [], (TMP_22 = function(word){var self = TMP_22.$$s || this; -if (word == null) word = nil; - return $rb_plus(word['$[]'](0).$upcase(), word['$[]']($range(1, -1, false)))}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22))).$join(""); - }, TMP_ReactWrapper_lower_camelize_23.$$arity = 1); + return result.$concat($send(words['$[]']($range(1, -1, false)), 'map', [], ($$23 = function(word){var self = $$23.$$s == null ? this : $$23.$$s; + + + + if (word == null) { + word = nil; + }; + return $rb_plus(word['$[]'](0).$upcase(), word['$[]']($range(1, -1, false)));}, $$23.$$s = self, $$23.$$arity = 1, $$23))).$join(""); + }, $ReactWrapper_lower_camelize$22.$$arity = 1), nil) && 'lower_camelize'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/hash"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; +Opal.modules["hyperstack/ext/component/hash"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$each']); return (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); + var self = $klass($base, $super, 'Hash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_shallow_to_n_2; + var $nesting = [self].concat($parent_nesting), $Hash_shallow_to_n$1; - return (Opal.defn(self, '$shallow_to_n', TMP_Hash_shallow_to_n_2 = function $$shallow_to_n() { - var TMP_1, self = this, hash = nil; + return (Opal.def(self, '$shallow_to_n', $Hash_shallow_to_n$1 = function $$shallow_to_n() { + var $$2, self = this, hash = nil; hash = {}; - $send(self, 'each', [], (TMP_1 = function(key, value){var self = TMP_1.$$s || this; -if (key == null) key = nil;if (value == null) value = nil; - return hash[key] = value}, TMP_1.$$s = self, TMP_1.$$arity = 2, TMP_1)); + $send(self, 'each', [], ($$2 = function(key, value){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + return hash[key] = value;}, $$2.$$s = self, $$2.$$arity = 2, $$2)); return hash; - }, TMP_Hash_shallow_to_n_2.$$arity = 0), nil) && 'shallow_to_n' + }, $Hash_shallow_to_n$1.$$arity = 0), nil) && 'shallow_to_n' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/kernel/singleton_class"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send; +Opal.modules["active_support/core_ext/kernel/singleton_class"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send; Opal.add_stubs(['$class_eval', '$singleton_class', '$to_proc']); return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_class_eval_1; + var $nesting = [self].concat($parent_nesting), $Kernel_class_eval$1; - - Opal.defn(self, '$class_eval', TMP_Kernel_class_eval_1 = function $$class_eval($a_rest) { - var self = this, args, $iter = TMP_Kernel_class_eval_1.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Kernel_class_eval_1.$$p = null; - return $send(self.$singleton_class(), 'class_eval', Opal.to_a(args), block.$to_proc()) - }, TMP_Kernel_class_eval_1.$$arity = -1) + return (Opal.def(self, '$class_eval', $Kernel_class_eval$1 = function $$class_eval($a) { + var $iter = $Kernel_class_eval$1.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Kernel_class_eval$1.$$p = null; + + + if ($iter) $Kernel_class_eval$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$singleton_class(), 'class_eval', Opal.to_a(args), block.$to_proc()); + }, $Kernel_class_eval$1.$$arity = -1), nil) && 'class_eval' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/module/remove_method"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["active_support/core_ext/module/remove_method"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$method_defined?', '$private_method_defined?', '$undef_method', '$remove_possible_method', '$define_method', '$to_proc']); return (function($base, $super, $parent_nesting) { - function $Module(){}; - var self = $Module = $klass($base, $super, 'Module', $Module); + var self = $klass($base, $super, 'Module'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Module_remove_possible_method_1, TMP_Module_redefine_method_2; + var $nesting = [self].concat($parent_nesting), $Module_remove_possible_method$1, $Module_redefine_method$2; - Opal.defn(self, '$remove_possible_method', TMP_Module_remove_possible_method_1 = function $$remove_possible_method(method) { - var $a, self = this; + Opal.def(self, '$remove_possible_method', $Module_remove_possible_method$1 = function $$remove_possible_method(method) { + var self = this, $ret_or_1 = nil; - if ($truthy(($truthy($a = self['$method_defined?'](method)) ? $a : self['$private_method_defined?'](method)))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = self['$method_defined?'](method)))) { + return $ret_or_1 + } else { + return self['$private_method_defined?'](method) + }; return nil; })())) { return self.$undef_method(method) - } else { + } else { return nil } - }, TMP_Module_remove_possible_method_1.$$arity = 1); - return (Opal.defn(self, '$redefine_method', TMP_Module_redefine_method_2 = function $$redefine_method(method) { - var self = this, $iter = TMP_Module_redefine_method_2.$$p, block = $iter || nil; + }, $Module_remove_possible_method$1.$$arity = 1); + return (Opal.def(self, '$redefine_method', $Module_redefine_method$2 = function $$redefine_method(method) { + var $iter = $Module_redefine_method$2.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Module_redefine_method_2.$$p = null; + if ($iter) $Module_redefine_method$2.$$p = null; + + if ($iter) $Module_redefine_method$2.$$p = null;; self.$remove_possible_method(method); return $send(self, 'define_method', [method], block.$to_proc()); - }, TMP_Module_redefine_method_2.$$arity = 1), nil) && 'redefine_method'; + }, $Module_redefine_method$2.$$arity = 1), nil) && 'redefine_method'; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/array/extract_options"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["active_support/core_ext/array/extract_options"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; Opal.add_stubs(['$instance_of?', '$is_a?', '$last', '$extractable_options?', '$pop']); (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); + var self = $klass($base, $super, 'Hash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_extractable_options$q_1; + var $nesting = [self].concat($parent_nesting), $Hash_extractable_options$ques$1; - return (Opal.defn(self, '$extractable_options?', TMP_Hash_extractable_options$q_1 = function() { + return (Opal.def(self, '$extractable_options?', $Hash_extractable_options$ques$1 = function() { var self = this; - return self['$instance_of?'](Opal.const_get_relative($nesting, 'Hash')) - }, TMP_Hash_extractable_options$q_1.$$arity = 0), nil) && 'extractable_options?' + return self['$instance_of?']($$($nesting, 'Hash')) + }, $Hash_extractable_options$ques$1.$$arity = 0), nil) && 'extractable_options?' })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_extract_options$B_2; + var $nesting = [self].concat($parent_nesting), $Array_extract_options$excl$2; - return (Opal.defn(self, '$extract_options!', TMP_Array_extract_options$B_2 = function() { - var $a, self = this; + return (Opal.def(self, '$extract_options!', $Array_extract_options$excl$2 = function() { + var self = this, $ret_or_1 = nil; - if ($truthy(($truthy($a = self.$last()['$is_a?'](Opal.const_get_relative($nesting, 'Hash'))) ? self.$last()['$extractable_options?']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = self.$last()['$is_a?']($$($nesting, 'Hash'))))) { + return self.$last()['$extractable_options?']() + } else { + return $ret_or_1 + }; return nil; })())) { return self.$pop() - } else { + } else { return $hash2([], {}) } - }, TMP_Array_extract_options$B_2.$$arity = 0), nil) && 'extract_options!' + }, $Array_extract_options$excl$2.$$arity = 0), nil) && 'extract_options!' })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/class/attribute"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["active_support/core_ext/class/attribute"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$require', '$extract_options!', '$fetch', '$each', '$define_singleton_method', '$!', '$public_send', '$class_eval', '$singleton_class', '$remove_possible_method', '$define_method', '$singleton_class?', '$instance_variable_defined?', '$instance_variable_get', '$send', '$class', '$attr_writer', '$private', '$respond_to?', '$!=', '$first', '$ancestors']); @@ -3000,242 +3857,319 @@ Opal.modules["active_support/core_ext/class/attribute"] = function(Opal) { self.$require("active_support/core_ext/module/remove_method"); self.$require("active_support/core_ext/array/extract_options"); return (function($base, $super, $parent_nesting) { - function $Class(){}; - var self = $Class = $klass($base, $super, 'Class', $Class); + var self = $klass($base, $super, 'Class'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Class_class_attribute_11, TMP_Class_singleton_class$q_12; + var $nesting = [self].concat($parent_nesting), $Class_class_attribute$1, $Class_singleton_class$ques$12; - Opal.defn(self, '$class_attribute', TMP_Class_class_attribute_11 = function $$class_attribute($a_rest) { - var $b, TMP_1, self = this, attrs, options = nil, instance_reader = nil, instance_writer = nil, instance_predicate = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - attrs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - attrs[$arg_idx - 0] = arguments[$arg_idx]; - } + Opal.def(self, '$class_attribute', $Class_class_attribute$1 = function $$class_attribute($a) { + var $post_args, attrs, $$2, self = this, options = nil, instance_reader = nil, $ret_or_1 = nil, instance_writer = nil, $ret_or_2 = nil, instance_predicate = nil; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + attrs = $post_args;; options = attrs['$extract_options!'](); - instance_reader = ($truthy($b = options.$fetch("instance_accessor", true)) ? options.$fetch("instance_reader", true) : $b); - instance_writer = ($truthy($b = options.$fetch("instance_accessor", true)) ? options.$fetch("instance_writer", true) : $b); + instance_reader = (function() {if ($truthy(($ret_or_1 = options.$fetch("instance_accessor", true)))) { + return options.$fetch("instance_reader", true) + } else { + return $ret_or_1 + }; return nil; })(); + instance_writer = (function() {if ($truthy(($ret_or_2 = options.$fetch("instance_accessor", true)))) { + return options.$fetch("instance_writer", true) + } else { + return $ret_or_2 + }; return nil; })(); instance_predicate = options.$fetch("instance_predicate", true); - return $send(attrs, 'each', [], (TMP_1 = function(name){var self = TMP_1.$$s || this, TMP_2, TMP_3, TMP_4, TMP_9, TMP_10, ivar = nil; -if (name == null) name = nil; - - $send(self, 'define_singleton_method', [name], (TMP_2 = function(){var self = TMP_2.$$s || this; + return $send(attrs, 'each', [], ($$2 = function(name){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $$4, $$5, $$10, $$11, ivar = nil; + + + + if (name == null) { + name = nil; + }; + $send(self, 'define_singleton_method', [name], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; - return nil}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); + return nil}, $$3.$$s = self, $$3.$$arity = 0, $$3)); if ($truthy(instance_predicate)) { - $send(self, 'define_singleton_method', ["" + (name) + "?"], (TMP_3 = function(){var self = TMP_3.$$s || this; + $send(self, 'define_singleton_method', ["" + (name) + "?"], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$public_send(name)['$!']()['$!']()}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3))}; + return self.$public_send(name)['$!']()['$!']()}, $$4.$$s = self, $$4.$$arity = 0, $$4))}; ivar = "" + "@" + (name); - $send(self, 'define_singleton_method', ["" + (name) + "="], (TMP_4 = function(val){var self = TMP_4.$$s || this, TMP_5, TMP_7; -if (val == null) val = nil; - - $send(self.$singleton_class(), 'class_eval', [], (TMP_5 = function(){var self = TMP_5.$$s || this, TMP_6; + $send(self, 'define_singleton_method', ["" + (name) + "="], ($$5 = function(val){var self = $$5.$$s == null ? this : $$5.$$s, $$6, $$8; + + if (val == null) { + val = nil; + }; + $send(self.$singleton_class(), 'class_eval', [], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s, $$7; + + self.$remove_possible_method(name); - return $send(self, 'define_method', [name], (TMP_6 = function(){var self = TMP_6.$$s || this; + return $send(self, 'define_method', [name], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; - return val}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6));}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5)); + return val}, $$7.$$s = self, $$7.$$arity = 0, $$7));}, $$6.$$s = self, $$6.$$arity = 0, $$6)); if ($truthy(self['$singleton_class?']())) { - $send(self, 'class_eval', [], (TMP_7 = function(){var self = TMP_7.$$s || this, TMP_8; + $send(self, 'class_eval', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s, $$9; - + self.$remove_possible_method(name); - return $send(self, 'define_method', [name], (TMP_8 = function(){var self = TMP_8.$$s || this; + return $send(self, 'define_method', [name], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s; - if ($truthy(self['$instance_variable_defined?'](ivar))) { + if ($truthy(self['$instance_variable_defined?'](ivar))) { return self.$instance_variable_get(ivar) - } else { + } else { return self.$singleton_class().$send(name) - }}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8));}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7))}; - return val;}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); + }}, $$9.$$s = self, $$9.$$arity = 0, $$9));}, $$8.$$s = self, $$8.$$arity = 0, $$8))}; + return val;}, $$5.$$s = self, $$5.$$arity = 1, $$5)); if ($truthy(instance_reader)) { self.$remove_possible_method(name); - $send(self, 'define_method', [name], (TMP_9 = function(){var self = TMP_9.$$s || this; + $send(self, 'define_method', [name], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - if ($truthy(self['$instance_variable_defined?'](ivar))) { + if ($truthy(self['$instance_variable_defined?'](ivar))) { return self.$instance_variable_get(ivar) - } else { + } else { return self.$class().$public_send(name) - }}, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)); + }}, $$10.$$s = self, $$10.$$arity = 0, $$10)); if ($truthy(instance_predicate)) { - $send(self, 'define_method', ["" + (name) + "?"], (TMP_10 = function(){var self = TMP_10.$$s || this; + $send(self, 'define_method', ["" + (name) + "?"], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; - return self.$public_send(name)['$!']()['$!']()}, TMP_10.$$s = self, TMP_10.$$arity = 0, TMP_10))};}; + return self.$public_send(name)['$!']()['$!']()}, $$11.$$s = self, $$11.$$arity = 0, $$11))};}; if ($truthy(instance_writer)) { return self.$attr_writer(name) - } else { + } else { return nil - };}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); - }, TMP_Class_class_attribute_11.$$arity = -1); + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $Class_class_attribute$1.$$arity = -1); self.$private(); if ($truthy(self['$respond_to?']("singleton_class?"))) { return nil - } else { - return (Opal.defn(self, '$singleton_class?', TMP_Class_singleton_class$q_12 = function() { - var $a, self = this; + } else { + return (Opal.def(self, '$singleton_class?', $Class_singleton_class$ques$12 = function() { + var self = this, $ret_or_3 = nil; - return ($truthy($a = true) ? $a : self.$ancestors().$first()['$!='](self)) - }, TMP_Class_singleton_class$q_12.$$arity = 0), nil) && 'singleton_class?' + if ($truthy(($ret_or_3 = true))) { + return $ret_or_3 + } else { + return self.$ancestors().$first()['$!='](self) + } + }, $Class_singleton_class$ques$12.$$arity = 0), nil) && 'singleton_class?' }; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/rendering_context"] = function(Opal) { +Opal.modules["hyperstack/internal/component/rendering_context"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var $$27, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; - Opal.add_stubs(['$attr_accessor', '$waiting_on_resources', '$raise_if_not_quiet?', '$raise', '$new', '$!', '$remove_nodes_from_args', '$build', '$waiting_on_resources=', '$-', '$run_child_block', '$nil?', '$to_proc', '$dup', '$tap', '$create_element', '$detect', '$respond_to?', '$is_a?', '$last', '$to_s', '$render', '$<<', '$delete', '$include?', '$index', '$[]=', '$[]', '$each', '$acts_as_string?', '$empty?', '$!=', '$raise_render_error', '$==', '$count', '$improper_render', '$>', '$try', '$class', '$define_method', '$unshift', '$hyper_component?', '$send']); + Opal.add_stubs(['$attr_accessor', '$waiting_on_resources', '$raise_if_not_quiet?', '$raise', '$new', '$<<', '$!', '$remove_nodes_from_args', '$build', '$waiting_on_resources=', '$-', '$run_child_block', '$to_proc', '$dup', '$tap', '$create_element', '$detect', '$respond_to?', '$is_a?', '$last', '$collect', '$render', '$to_s', '$>', '$length', '$first', '$delete', '$include?', '$index', '$[]=', '$[]', '$each', '$check_for_component_return', '$dummy_value?', '$==', '$empty?', '$pushable_string?', '$try', '$log', '$loading?', '$define_method', '$unshift', '$hyper_component?', '$send']); (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $RenderingContext(){}; - var self = $RenderingContext = $klass($base, $super, 'RenderingContext', $RenderingContext); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RenderingContext'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $NotQuiet(){}; - var self = $NotQuiet = $klass($base, $super, 'NotQuiet', $NotQuiet); + var self = $klass($base, $super, 'NotQuiet'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_raise_if_not_quiet$q_1, TMP_raise_if_not_quiet$eq_2, TMP_quiet_test_3, TMP_render_4, TMP_build_12, TMP_delete_13, TMP_rendered$q_14, TMP_replace_15, TMP_remove_nodes_from_args_17, TMP_run_child_block_18, TMP_raise_render_error_20, TMP_improper_render_21; + var $nesting = [self].concat($parent_nesting), $raise_if_not_quiet$ques$1, $raise_if_not_quiet$eq$2, $quiet_test$3, $render_string$4, $render$5, $build$13, $delete$14, $rendered$ques$15, $replace$16, $remove_nodes_from_args$17, $run_child_block$19, $check_for_component_return$21, $dummy_value$ques$22, $pushable_string$ques$23, $improper_render$24; self.$attr_accessor("waiting_on_resources"); - Opal.defn(self, '$raise_if_not_quiet?', TMP_raise_if_not_quiet$q_1 = function() { + Opal.def(self, '$raise_if_not_quiet?', $raise_if_not_quiet$ques$1 = function() { var self = this; if (self.raise_if_not_quiet == null) self.raise_if_not_quiet = nil; return self.raise_if_not_quiet - }, TMP_raise_if_not_quiet$q_1.$$arity = 0); + }, $raise_if_not_quiet$ques$1.$$arity = 0); - Opal.defn(self, '$raise_if_not_quiet=', TMP_raise_if_not_quiet$eq_2 = function(x) { + Opal.def(self, '$raise_if_not_quiet=', $raise_if_not_quiet$eq$2 = function(x) { var self = this; return (self.raise_if_not_quiet = x) - }, TMP_raise_if_not_quiet$eq_2.$$arity = 1); + }, $raise_if_not_quiet$eq$2.$$arity = 1); - Opal.defn(self, '$quiet_test', TMP_quiet_test_3 = function $$quiet_test(component) { - var $a, self = this; + Opal.def(self, '$quiet_test', $quiet_test$3 = function $$quiet_test(component) { + var self = this, $ret_or_1 = nil; - if ($truthy(($truthy($a = component.$waiting_on_resources()) ? self['$raise_if_not_quiet?']() : $a))) { - } else { + if ($truthy((function() {if ($truthy(($ret_or_1 = component.$waiting_on_resources()))) { + return self['$raise_if_not_quiet?']() + } else { + return $ret_or_1 + }; return nil; })())) { + } else { return nil }; - return self.$raise(Opal.const_get_relative($nesting, 'NotQuiet').$new("" + (component) + " is waiting on resources")); - }, TMP_quiet_test_3.$$arity = 1); + return self.$raise($$($nesting, 'NotQuiet').$new("" + (component) + " is waiting on resources")); + }, $quiet_test$3.$$arity = 1); + + Opal.def(self, '$render_string', $render_string$4 = function $$render_string(string) { + var self = this, $ret_or_2 = nil; + if (self.buffer == null) self.buffer = nil; + + + self.buffer = (function() {if ($truthy(($ret_or_2 = self.buffer))) { + return $ret_or_2 + } else { + return [] + }; return nil; })(); + return self.buffer['$<<'](string); + }, $render_string$4.$$arity = 1); - Opal.defn(self, '$render', TMP_render_4 = function $$render(name, $a_rest) { - var $b, TMP_5, self = this, args, $iter = TMP_render_4.$$p, block = $iter || nil, was_outer_most = nil, element = nil, $writer = nil; + Opal.def(self, '$render', $render$5 = function $$render(name, $a) { + var $iter = $render$5.$$p, block = $iter || nil, $post_args, args, $$6, self = this, was_outer_most = nil, $ret_or_3 = nil, element = nil, $writer = nil; if (self.not_outer_most == null) self.not_outer_most = nil; if (self.buffer == null) self.buffer = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_render_4.$$p = null; + if ($iter) $render$5.$$p = null; + + + if ($iter) $render$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; return (function() { try { was_outer_most = self.not_outer_most['$!'](); self.not_outer_most = true; self.$remove_nodes_from_args(args); - if ($truthy(self.buffer)) { - } else { - self.buffer = ($truthy($b = self.buffer) ? $b : []) - }; + self.buffer = (function() {if ($truthy(($ret_or_3 = self.buffer))) { + return $ret_or_3 + } else { + return [] + }; return nil; })(); if ($truthy(block)) { - element = $send(self, 'build', [], (TMP_5 = function(){var self = TMP_5.$$s || this, TMP_6, TMP_7, TMP_9, TMP_10, TMP_11, saved_waiting_on_resources = nil, $writer = nil, buffer = nil, buffer_s = nil; + element = $send(self, 'build', [], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s, $$7, $$8, $$10, saved_waiting_on_resources = nil, $writer = nil, buffer = nil; if (self.buffer == null) self.buffer = nil; - + saved_waiting_on_resources = nil; $writer = [nil]; $send(self, 'waiting_on_resources=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $send(self, 'run_child_block', [name['$nil?']()], block.$to_proc()); + $send(self, 'run_child_block', [], block.$to_proc()); if ($truthy(name)) { buffer = self.buffer.$dup(); - return $send($send(Opal.const_get_relative($nesting, 'ReactWrapper'), 'create_element', [name].concat(Opal.to_a(args)), (TMP_6 = function(){var self = TMP_6.$$s || this; + return $send($send($$($nesting, 'ReactWrapper'), 'create_element', [name].concat(Opal.to_a(args)), ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; - return buffer}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6)), 'tap', [], (TMP_7 = function(element){var self = TMP_7.$$s || this, $a, TMP_8; -if (element == null) element = nil; - + return buffer}, $$7.$$s = self, $$7.$$arity = 0, $$7)), 'tap', [], ($$8 = function(element){var self = $$8.$$s == null ? this : $$8.$$s, $$9, $ret_or_4 = nil, $ret_or_5 = nil; + + - $writer = [($truthy($a = saved_waiting_on_resources) ? $a : $send(buffer, 'detect', [], (TMP_8 = function(e){var self = TMP_8.$$s || this; -if (e == null) e = nil; - if ($truthy(e['$respond_to?']("waiting_on_resources"))) { - return e.$waiting_on_resources() + if (element == null) { + element = nil; + }; + + $writer = [(function() {if ($truthy(($ret_or_4 = saved_waiting_on_resources))) { + return $ret_or_4 + } else { + return $send(buffer, 'detect', [], ($$9 = function(e){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (e == null) { + e = nil; + }; + if ($truthy(e['$respond_to?']("waiting_on_resources"))) { + return e.$waiting_on_resources() } else { - return nil - }}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8))['$!']()['$!']())]; + return nil + };}, $$9.$$s = self, $$9.$$arity = 1, $$9))['$!']()['$!']() + }; return nil; })()]; $send(element, 'waiting_on_resources=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(buffer.$last()['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - return ($truthy($a = element.$waiting_on_resources()) ? $a : (($writer = [self.$waiting_on_resources()]), $send(element, 'waiting_on_resources=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) + if ($truthy(buffer.$last()['$is_a?']($$($nesting, 'String')))) { + if ($truthy(($ret_or_5 = element.$waiting_on_resources()))) { + return $ret_or_5 } else { + + $writer = [self.$waiting_on_resources()]; + $send(element, 'waiting_on_resources=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } + } else { return nil - };}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); - } else if ($truthy(self.buffer.$last()['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')))) { - return $send(self.buffer.$last(), 'tap', [], (TMP_9 = function(element){var self = TMP_9.$$s || this, $a; -if (element == null) element = nil; - return ($truthy($a = element.$waiting_on_resources()) ? $a : (($writer = [saved_waiting_on_resources]), $send(element, 'waiting_on_resources=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)) - } else { + };}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + } else { - buffer_s = self.buffer.$last().$to_s(); - return $send($send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', ["span"], (TMP_10 = function(){var self = TMP_10.$$s || this; + buffer = $send(self.buffer, 'collect', [], ($$10 = function(item){var self = $$10.$$s == null ? this : $$10.$$s, $$11, $$12, $ret_or_6 = nil; - return buffer_s}, TMP_10.$$s = self, TMP_10.$$arity = 0, TMP_10)), 'tap', [], (TMP_11 = function(element){var self = TMP_11.$$s || this; -if (element == null) element = nil; - - $writer = [saved_waiting_on_resources]; - $send(element, 'waiting_on_resources=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)); - };}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5)) - } else if ($truthy(name['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + + + if (item == null) { + item = nil; + }; + if ($truthy(item['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + + if ($truthy(($ret_or_6 = item.$waiting_on_resources()))) { + $ret_or_6 + } else { + + $writer = [saved_waiting_on_resources]; + $send(item, 'waiting_on_resources=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return item; + } else { + return $send($send($$($nesting, 'RenderingContext'), 'render', ["span"], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; + + return item.$to_s()}, $$11.$$s = self, $$11.$$arity = 0, $$11)), 'tap', [], ($$12 = function(element){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (element == null) { + element = nil; + }; + $writer = [saved_waiting_on_resources]; + $send(element, 'waiting_on_resources=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$12.$$s = self, $$12.$$arity = 1, $$12)) + };}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + if ($truthy($rb_gt(buffer.$length(), 1))) { + return buffer + } else { + return buffer.$first() + }; + };}, $$6.$$s = self, $$6.$$arity = 0, $$6)) + } else if ($truthy(name['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { element = name - } else { + } else { - element = $send(Opal.const_get_relative($nesting, 'ReactWrapper'), 'create_element', [name].concat(Opal.to_a(args))); + element = $send($$($nesting, 'ReactWrapper'), 'create_element', [name].concat(Opal.to_a(args))); $writer = [self.$waiting_on_resources()]; $send(element, 'waiting_on_resources=', Opal.to_a($writer)); @@ -3250,43 +4184,44 @@ if (element == null) element = nil; } finally { (function() {if ($truthy(was_outer_most)) { return (self.not_outer_most = (self.buffer = nil)) - } else { + } else { return nil }; return nil; })() - }; })() - }, TMP_render_4.$$arity = -2); + }; })(); + }, $render$5.$$arity = -2); - Opal.defn(self, '$build', TMP_build_12 = function $$build() { - var self = this, $iter = TMP_build_12.$$p, $yield = $iter || nil, current = nil, return_val = nil; + Opal.def(self, '$build', $build$13 = function $$build() { + var $iter = $build$13.$$p, $yield = $iter || nil, self = this, current = nil, return_val = nil; if (self.buffer == null) self.buffer = nil; - if ($iter) TMP_build_12.$$p = null; + if ($iter) $build$13.$$p = null; current = self.buffer; self.buffer = []; return_val = Opal.yield1($yield, self.buffer); self.buffer = current; return return_val; - }, TMP_build_12.$$arity = 0); + }, $build$13.$$arity = 0); - Opal.defn(self, '$delete', TMP_delete_13 = function(element) { + Opal.def(self, '$delete', $delete$14 = function(element) { var self = this; if (self.buffer == null) self.buffer = nil; self.buffer.$delete(element); + self.last_deleted = element; return element; - }, TMP_delete_13.$$arity = 1); - Opal.alias(self, "as_node", "delete"); + }, $delete$14.$$arity = 1); + $alias(self, "as_node", "delete"); - Opal.defn(self, '$rendered?', TMP_rendered$q_14 = function(element) { + Opal.def(self, '$rendered?', $rendered$ques$15 = function(element) { var self = this; if (self.buffer == null) self.buffer = nil; return self.buffer['$include?'](element) - }, TMP_rendered$q_14.$$arity = 1); + }, $rendered$ques$15.$$arity = 1); - Opal.defn(self, '$replace', TMP_replace_15 = function $$replace(e1, e2) { + Opal.def(self, '$replace', $replace$16 = function $$replace(e1, e2) { var self = this, $writer = nil; if (self.buffer == null) self.buffer = nil; @@ -3294,259 +4229,319 @@ if (element == null) element = nil; $writer = [self.buffer.$index(e1), e2]; $send(self.buffer, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_replace_15.$$arity = 2); + }, $replace$16.$$arity = 2); - Opal.defn(self, '$remove_nodes_from_args', TMP_remove_nodes_from_args_17 = function $$remove_nodes_from_args(args) { - var $a, TMP_16, self = this; + Opal.def(self, '$remove_nodes_from_args', $remove_nodes_from_args$17 = function $$remove_nodes_from_args(args) { + var $$18, self = this, $ret_or_7 = nil; - if ($truthy(($truthy($a = args['$[]'](0)) ? args['$[]'](0)['$is_a?'](Opal.const_get_relative($nesting, 'Hash')) : $a))) { - return $send(args['$[]'](0), 'each', [], (TMP_16 = function(key, value){var self = TMP_16.$$s || this; -if (key == null) key = nil;if (value == null) value = nil; - + if ($truthy((function() {if ($truthy(($ret_or_7 = args['$[]'](0)))) { + return args['$[]'](0)['$is_a?']($$($nesting, 'Hash')) + } else { + return $ret_or_7 + }; return nil; })())) { + return $send(args['$[]'](0), 'each', [], ($$18 = function(key, value){var self = $$18.$$s == null ? this : $$18.$$s; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; try { - if ($truthy(value['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + if ($truthy(value['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { return value.$delete() - } else { + } else { return nil } } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - };}, TMP_16.$$s = self, TMP_16.$$arity = 2, TMP_16)) - } else { + };}, $$18.$$s = self, $$18.$$arity = 2, $$18)) + } else { return nil } - }, TMP_remove_nodes_from_args_17.$$arity = 1); + }, $remove_nodes_from_args$17.$$arity = 1); - Opal.defn(self, '$run_child_block', TMP_run_child_block_18 = function $$run_child_block(is_outer_scope) { - var $a, TMP_19, $b, self = this, $iter = TMP_run_child_block_18.$$p, $yield = $iter || nil, result = nil; + Opal.def(self, '$run_child_block', $run_child_block$19 = function $$run_child_block() { + var $$20, $iter = $run_child_block$19.$$p, $yield = $iter || nil, self = this, result = nil; + if (self.last_deleted == null) self.last_deleted = nil; if (self.buffer == null) self.buffer = nil; - if ($iter) TMP_run_child_block_18.$$p = null; + if ($iter) $run_child_block$19.$$p = null; result = Opal.yieldX($yield, []); - if ($truthy(($truthy($a = result['$respond_to?']("acts_as_string?")) ? result['$acts_as_string?']() : $a))) { - $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', ["span"], (TMP_19 = function(){var self = TMP_19.$$s || this; - - return result.$to_s()}, TMP_19.$$s = self, TMP_19.$$arity = 0, TMP_19)) - } else if ($truthy(($truthy($a = result['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? $a : ($truthy($b = result['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element'))) ? self.buffer['$empty?']() : $b)))) { - self.buffer['$<<'](result)}; - if ($truthy(($truthy($a = is_outer_scope) ? self.buffer['$!=']([result]) : $a))) { - return self.$raise_render_error(result) - } else { + self.$check_for_component_return(result); + if ($truthy(self['$dummy_value?'](result))) { + $send($$($nesting, 'RenderingContext'), 'render', ["span"], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s; + + return result.$to_s()}, $$20.$$s = self, $$20.$$arity = 0, $$20)) + } else if ($truthy(result['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + if (self.last_deleted['$=='](result)) { + } else if ($truthy(self.buffer['$empty?']())) { + self.buffer['$<<'](result)} + } else if ($truthy(self['$pushable_string?'](result))) { + self.buffer['$<<'](result.$to_s())}; + return (self.last_deleted = nil); + }, $run_child_block$19.$$arity = 0); + + Opal.def(self, '$check_for_component_return', $check_for_component_return$21 = function $$check_for_component_return(result) { + var self = this; + + + if ($truthy(result.$try("hyper_component?"))) { + } else { return nil }; - }, TMP_run_child_block_18.$$arity = 1); + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers').$log("" + "a component's render method returned the component class " + (result) + ", did you mean to say " + (result) + "()", "warning"); + }, $check_for_component_return$21.$$arity = 1); - Opal.defn(self, '$raise_render_error', TMP_raise_render_error_20 = function $$raise_render_error(result) { - var self = this; + Opal.def(self, '$dummy_value?', $dummy_value$ques$22 = function(result) { + var self = this, $ret_or_8 = nil; + + if ($truthy(($ret_or_8 = result['$respond_to?']("loading?")))) { + return result['$loading?']() + } else { + return $ret_or_8 + } + }, $dummy_value$ques$22.$$arity = 1); + + Opal.def(self, '$pushable_string?', $pushable_string$ques$23 = function(result) { + var self = this, $ret_or_9 = nil, $ret_or_10 = nil; if (self.buffer == null) self.buffer = nil; - if (self.buffer.$count()['$=='](1)) { - self.$improper_render("A different element was returned than was generated within the DSL.", "Possibly improper use of Element#delete.")}; - if ($truthy($rb_gt(self.buffer.$count(), 1))) { - self.$improper_render("" + "Instead " + (self.buffer.$count()) + " elements were generated.", "Do you want to wrap your elements in a div?")}; - if ($truthy(result.$try("hyper_component?"))) { - self.$improper_render("" + "Instead the component " + (result) + " was returned.", "" + "Did you mean " + (result) + "()?")}; - return self.$improper_render("" + "Instead the " + (result.$class()) + " " + (result) + " was returned.", "You may need to convert this to a string."); - }, TMP_raise_render_error_20.$$arity = 1); - return (Opal.defn(self, '$improper_render', TMP_improper_render_21 = function $$improper_render(message, solution) { + if ($truthy(self.buffer['$empty?']())) { + } else { + return result['$is_a?']($$($nesting, 'String')) + }; + if ($truthy(($ret_or_9 = (function() {if ($truthy(($ret_or_10 = result))) { + return result['$respond_to?']("to_n") + } else { + return $ret_or_10 + }; return nil; })()))) { + return result['$is_a?']($$($nesting, 'Array'))['$!']() + } else { + return $ret_or_9 + }; + }, $pushable_string$ques$23.$$arity = 1); + return (Opal.def(self, '$improper_render', $improper_render$24 = function $$improper_render(message, solution) { var self = this; - return self.$raise("" + "a component's render method must generate and return exactly 1 element or a string.\n" + ("" + " " + (message) + " " + (solution))) - }, TMP_improper_render_21.$$arity = 2), nil) && 'improper_render'; + return nil + }, $improper_render$24.$$arity = 2), nil) && 'improper_render'; })(Opal.get_singleton_class(self), $nesting); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); return (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_22, TMP_Object_para_25, TMP_Object_br_28; + var $nesting = [self].concat($parent_nesting), $Object$25, $Object_para$29, $Object_br$31; - $send(["span", "td", "th"], 'each', [], (TMP_Object_22 = function(tag){var self = TMP_Object_22.$$s || this, TMP_23; -if (tag == null) tag = nil; - return $send(self, 'define_method', [tag], (TMP_23 = function($a_rest){var self = TMP_23.$$s || this, block, args, $b, TMP_24; - - block = TMP_23.$$p || nil; - if (block) TMP_23.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + $send(["span", "td", "th"], 'each', [], ($Object$25 = function(tag){var self = $Object$25.$$s == null ? this : $Object$25.$$s, $$26; + + + if (tag == null) { + tag = nil; + }; + return $send(self, 'define_method', [tag], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $iter = $$26.$$p, block = $iter || nil, $post_args, args, $$28, $ret_or_11 = nil; + + + + if ($iter) $$26.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; args.$unshift(tag); - if ($truthy(($truthy($b = self['$respond_to?']("hyper_component?")) ? self['$hyper_component?']() : $b))) { + if ($truthy((function() {if ($truthy(($ret_or_11 = self['$respond_to?']("hyper_component?")))) { + return self['$hyper_component?']() + } else { + return $ret_or_11 + }; return nil; })())) { return $send(self, 'send', Opal.to_a(args), block.$to_proc())}; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', Opal.to_a(args), (TMP_24 = function(){var self = TMP_24.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', Opal.to_a(args), ($$28 = function(){var self = $$28.$$s == null ? this : $$28.$$s; - return self.$to_s()}, TMP_24.$$s = self, TMP_24.$$arity = 0, TMP_24));}, TMP_23.$$s = self, TMP_23.$$arity = -1, TMP_23))}, TMP_Object_22.$$s = self, TMP_Object_22.$$arity = 1, TMP_Object_22)); + return self.$to_s()}, $$28.$$s = self, $$28.$$arity = 0, $$28));}, $$26.$$s = self, $$26.$$arity = -1, $$26));}, $Object$25.$$s = self, $Object$25.$$arity = 1, $Object$25)); - Opal.defn(self, '$para', TMP_Object_para_25 = function $$para($a_rest) { - var $b, TMP_26, self = this, args, $iter = TMP_Object_para_25.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_para_25.$$p = null; + Opal.def(self, '$para', $Object_para$29 = function $$para($a) { + var $iter = $Object_para$29.$$p, block = $iter || nil, $post_args, args, $$30, self = this, $ret_or_12 = nil; + + if ($iter) $Object_para$29.$$p = null; + + + if ($iter) $Object_para$29.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + args = $post_args;; args.$unshift("p"); - if ($truthy(($truthy($b = self['$respond_to?']("hyper_component?")) ? self['$hyper_component?']() : $b))) { + if ($truthy((function() {if ($truthy(($ret_or_12 = self['$respond_to?']("hyper_component?")))) { + return self['$hyper_component?']() + } else { + return $ret_or_12 + }; return nil; })())) { return $send(self, 'send', Opal.to_a(args), block.$to_proc())}; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', Opal.to_a(args), (TMP_26 = function(){var self = TMP_26.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', Opal.to_a(args), ($$30 = function(){var self = $$30.$$s == null ? this : $$30.$$s; - return self.$to_s()}, TMP_26.$$s = self, TMP_26.$$arity = 0, TMP_26)); - }, TMP_Object_para_25.$$arity = -1); - return (Opal.defn(self, '$br', TMP_Object_br_28 = function $$br() { - var $a, TMP_27, self = this; + return self.$to_s()}, $$30.$$s = self, $$30.$$arity = 0, $$30)); + }, $Object_para$29.$$arity = -1); + return (Opal.def(self, '$br', $Object_br$31 = function $$br() { + var $$32, self = this, $ret_or_13 = nil; - if ($truthy(($truthy($a = self['$respond_to?']("hyper_component?")) ? self['$hyper_component?']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_13 = self['$respond_to?']("hyper_component?")))) { + return self['$hyper_component?']() + } else { + return $ret_or_13 + }; return nil; })())) { return self.$send("br")}; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', ["span"], (TMP_27 = function(){var self = TMP_27.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [$$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'FRAGMENT')], ($$32 = function(){var self = $$32.$$s == null ? this : $$32.$$s, $$33; - - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render(self.$to_s()); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render("br");}, TMP_27.$$s = self, TMP_27.$$arity = 0, TMP_27)); - }, TMP_Object_br_28.$$arity = 0), nil) && 'br'; + + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [$$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'FRAGMENT')], ($$33 = function(){var self = $$33.$$s == null ? this : $$33.$$s; + + return self.$to_s()}, $$33.$$s = self, $$33.$$arity = 0, $$33)); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render($$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'BR'));}, $$32.$$s = self, $$32.$$arity = 0, $$32)); + }, $Object_br$31.$$arity = 0), nil) && 'br'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/children"] = function(Opal) { +Opal.modules["hyperstack/component/children"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $lambda = Opal.lambda, $truthy = Opal.truthy; - Opal.add_stubs(['$include', '$each', '$to_proc', '$lambda', '$render', '$to_enum', '$length', '$>', '$new', '$call', '$<<', '$alias_method']); + Opal.add_stubs(['$include', '$each', '$to_proc', '$render', '$to_enum', '$length', '$>', '$new', '$call', '$<<', '$alias_method']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Children(){}; - var self = $Children = $klass($base, $super, 'Children', $Children); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Children'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Children_initialize_1, TMP_Children_render_2, TMP_Children_to_proc_4, TMP_Children_each_5, TMP_Children_length_7; + var $nesting = [self].concat($parent_nesting), $Children_initialize$1, $Children_render$2, $Children_to_proc$3, $Children_each$5, $Children_length$7; - def.children = def.length = nil; + self.$$prototype.children = self.$$prototype.length = nil; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); + self.$include($$($nesting, 'Enumerable')); - Opal.defn(self, '$initialize', TMP_Children_initialize_1 = function $$initialize(children) { + Opal.def(self, '$initialize', $Children_initialize$1 = function $$initialize(children) { var self = this; return (self.children = children) - }, TMP_Children_initialize_1.$$arity = 1); + }, $Children_initialize$1.$$arity = 1); - Opal.defn(self, '$render', TMP_Children_render_2 = function $$render() { + Opal.def(self, '$render', $Children_render$2 = function $$render() { var self = this; return $send(self, 'each', [], "render".$to_proc()) - }, TMP_Children_render_2.$$arity = 0); + }, $Children_render$2.$$arity = 0); - Opal.defn(self, '$to_proc', TMP_Children_to_proc_4 = function $$to_proc() { - var TMP_3, self = this; + Opal.def(self, '$to_proc', $Children_to_proc$3 = function $$to_proc() { + var $$4, self = this; - return $send(self, 'lambda', [], (TMP_3 = function(){var self = TMP_3.$$s || this; + return $lambda(($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$render()}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)) - }, TMP_Children_to_proc_4.$$arity = 0); + return self.$render()}, $$4.$$s = self, $$4.$$arity = 0, $$4)) + }, $Children_to_proc$3.$$arity = 0); - Opal.defn(self, '$each', TMP_Children_each_5 = function $$each() { - var TMP_6, self = this, $iter = TMP_Children_each_5.$$p, block = $iter || nil, collection = nil, element = nil; + Opal.def(self, '$each', $Children_each$5 = function $$each() { + var $iter = $Children_each$5.$$p, block = $iter || nil, $$6, self = this, collection = nil, element = nil; - if ($iter) TMP_Children_each_5.$$p = null; + if ($iter) $Children_each$5.$$p = null; + + if ($iter) $Children_each$5.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'to_enum', ["each"], (TMP_6 = function(){var self = TMP_6.$$s || this; + } else { + return $send(self, 'to_enum', ["each"], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; - return self.$length()}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6)) + return self.$length()}, $$6.$$s = self, $$6.$$arity = 0, $$6)) }; if ($truthy($rb_gt(self.$length(), 0))) { - } else { + } else { return [] }; collection = []; React.Children.forEach(self.children, function(context){ - ((element = Opal.const_get_relative($nesting, 'Element').$new(context)), block.$call(element), collection['$<<'](element)) + ((element = $$($nesting, 'Element').$new(context, "wrap_child")), block.$call(element), collection['$<<'](element)) }) ; return collection; - }, TMP_Children_each_5.$$arity = 0); + }, $Children_each$5.$$arity = 0); - Opal.defn(self, '$length', TMP_Children_length_7 = function $$length() { - var $a, self = this; + Opal.def(self, '$length', $Children_length$7 = function $$length() { + var self = this, $ret_or_1 = nil; - return (self.length = ($truthy($a = self.length) ? $a : React.Children.count(self.children))) - }, TMP_Children_length_7.$$arity = 0); + return (self.length = (function() {if ($truthy(($ret_or_1 = self.length))) { + return $ret_or_1 + } else { + return React.Children.count(self.children) + }; return nil; })()) + }, $Children_length$7.$$arity = 0); return self.$alias_method("size", "length"); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) { +Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $lambda = Opal.lambda, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$new', '$include?', '$param_accessor_style', '$raise', '$[]', '$dom_node', '$==', '$=~', '$pluralize', '$set_or_replace_state_or_prop', '$to_proc', '$private', '$lambda', '$instance_eval', '$callbacks?', '$class', '$RescueWrapper', '$call', '$after_error_args=', '$-', '$__hyperstack_component_run_post_render_hooks', '$__hyperstack_component_rescue_wrapper', '$__hyperstack_router_wrapper', '$shallow_to_n']); + Opal.add_stubs(['$require', '$new', '$include?', '$param_accessor_style', '$raise', '$[]', '$dom_node', '$==', '$=~', '$pluralize', '$set_or_replace_state_or_prop', '$to_proc', '$private', '$instance_eval', '$callbacks?', '$class', '$RescueWrapper', '$call', '$after_error_args=', '$-', '$__hyperstack_component_run_post_render_hooks', '$__hyperstack_component_rescue_wrapper', '$__hyperstack_router_wrapper', '$shallow_to_n']); self.$require("hyperstack/component/children"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $InstanceMethods, self = $InstanceMethods = $module($base, 'InstanceMethods'); + return (function($base, $parent_nesting) { + var self = $module($base, 'InstanceMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_InstanceMethods_children_1, TMP_InstanceMethods_params_2, TMP_InstanceMethods_props_3, TMP_InstanceMethods_dom_node_4, TMP_InstanceMethods_jq_node_5, TMP_InstanceMethods_mounted$q_6, TMP_InstanceMethods_pluralize_7, TMP_InstanceMethods_force_update$B_8, TMP_InstanceMethods_set_state_9, TMP_InstanceMethods_set_state$B_10, TMP_InstanceMethods___hyperstack_router_wrapper_11, TMP_InstanceMethods___hyperstack_component_rescue_wrapper_13, TMP_InstanceMethods___hyperstack_component_select_wrappers_14, TMP_InstanceMethods_set_or_replace_state_or_prop_15; + var $nesting = [self].concat($parent_nesting), $InstanceMethods_children$1, $InstanceMethods_params$2, $InstanceMethods_props$3, $InstanceMethods_dom_node$4, $InstanceMethods_jq_node$5, $InstanceMethods_mounted$ques$6, $InstanceMethods_pluralize$7, $InstanceMethods_force_update$excl$8, $InstanceMethods_set_state$9, $InstanceMethods_set_state$excl$10, $InstanceMethods___hyperstack_router_wrapper$11, $InstanceMethods___hyperstack_component_rescue_wrapper$13, $InstanceMethods___hyperstack_component_select_wrappers$14, $InstanceMethods_set_or_replace_state_or_prop$15; - Opal.defn(self, '$children', TMP_InstanceMethods_children_1 = function $$children() { + Opal.def(self, '$children', $InstanceMethods_children$1 = function $$children() { var self = this; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Children').$new(self.__hyperstack_component_native.props.children) - }, TMP_InstanceMethods_children_1.$$arity = 0); + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Children').$new(self.__hyperstack_component_native.props.children) + }, $InstanceMethods_children$1.$$arity = 0); - Opal.defn(self, '$params', TMP_InstanceMethods_params_2 = function $$params() { + Opal.def(self, '$params', $InstanceMethods_params$2 = function $$params() { var self = this; if (self.__hyperstack_component_params_wrapper == null) self.__hyperstack_component_params_wrapper = nil; @@ -3554,112 +4549,134 @@ Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) if ($truthy(["hyperstack", "accessors"]['$include?'](self.__hyperstack_component_params_wrapper.$param_accessor_style()))) { self.$raise("" + "params are now directly accessible via instance variables.\n" + " to access the legacy behavior add `param_accessor_style = :legacy` " + "to your component class\n" + " to access both behaviors add `param_accessor_style = :both` " + "to your component class")}; return self.__hyperstack_component_params_wrapper; - }, TMP_InstanceMethods_params_2.$$arity = 0); + }, $InstanceMethods_params$2.$$arity = 0); - Opal.defn(self, '$props', TMP_InstanceMethods_props_3 = function $$props() { + Opal.def(self, '$props', $InstanceMethods_props$3 = function $$props() { var self = this; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - return Opal.const_get_relative($nesting, 'Hash').$new(self.__hyperstack_component_native.props) - }, TMP_InstanceMethods_props_3.$$arity = 0); + return $$($nesting, 'Hash').$new(self.__hyperstack_component_native.props) + }, $InstanceMethods_props$3.$$arity = 0); - Opal.defn(self, '$dom_node', TMP_InstanceMethods_dom_node_4 = function $$dom_node() { + Opal.def(self, '$dom_node', $InstanceMethods_dom_node$4 = function $$dom_node() { var self = this; return ReactDOM.findDOMNode(self.__hyperstack_component_native) - }, TMP_InstanceMethods_dom_node_4.$$arity = 0); + }, $InstanceMethods_dom_node$4.$$arity = 0); - Opal.defn(self, '$jq_node', TMP_InstanceMethods_jq_node_5 = function $$jq_node() { + Opal.def(self, '$jq_node', $InstanceMethods_jq_node$5 = function $$jq_node() { var self = this; - return Opal.const_get_qualified('::', 'Element')['$[]'](self.$dom_node()) - }, TMP_InstanceMethods_jq_node_5.$$arity = 0); + return $$$('::', 'Element')['$[]'](self.$dom_node()) + }, $InstanceMethods_jq_node$5.$$arity = 0); - Opal.defn(self, '$mounted?', TMP_InstanceMethods_mounted$q_6 = function() { + Opal.def(self, '$mounted?', $InstanceMethods_mounted$ques$6 = function() { var self = this; return (self.__hyperstack_component_is_mounted === undefined) ? false : self.__hyperstack_component_is_mounted - }, TMP_InstanceMethods_mounted$q_6.$$arity = 0); + }, $InstanceMethods_mounted$ques$6.$$arity = 0); - Opal.defn(self, '$pluralize', TMP_InstanceMethods_pluralize_7 = function $$pluralize(count, singular, plural) { - var $a, self = this, word = nil; + Opal.def(self, '$pluralize', $InstanceMethods_pluralize$7 = function $$pluralize(count, singular, plural) { + var self = this, word = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + if (plural == null) { plural = nil; - } - - word = (function() {if ($truthy(($truthy($a = count['$=='](1)) ? $a : count['$=~'](/^1(\.0+)?$/)))) { + }; + word = (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = count['$=='](1)))) { + return $ret_or_1 + } else { + return count['$=~'](/^1(\.0+)?$/) + }; return nil; })())) { return singular - } else { - return ($truthy($a = plural) ? $a : singular.$pluralize()) + } else if ($truthy(($ret_or_2 = plural))) { + return $ret_or_2 + } else { + return singular.$pluralize() }; return nil; })(); - return "" + (($truthy($a = count) ? $a : 0)) + " " + (word); - }, TMP_InstanceMethods_pluralize_7.$$arity = -3); + return "" + ((function() {if ($truthy(($ret_or_3 = count))) { + return $ret_or_3 + } else { + return 0 + }; return nil; })()) + " " + (word); + }, $InstanceMethods_pluralize$7.$$arity = -3); - Opal.defn(self, '$force_update!', TMP_InstanceMethods_force_update$B_8 = function() { + Opal.def(self, '$force_update!', $InstanceMethods_force_update$excl$8 = function() { var self = this; self.__hyperstack_component_native.forceUpdate(); return self; - }, TMP_InstanceMethods_force_update$B_8.$$arity = 0); + }, $InstanceMethods_force_update$excl$8.$$arity = 0); - Opal.defn(self, '$set_state', TMP_InstanceMethods_set_state_9 = function $$set_state(state) { - var self = this, $iter = TMP_InstanceMethods_set_state_9.$$p, block = $iter || nil; + Opal.def(self, '$set_state', $InstanceMethods_set_state$9 = function $$set_state(state) { + var $iter = $InstanceMethods_set_state$9.$$p, block = $iter || nil, self = this; - if ($iter) TMP_InstanceMethods_set_state_9.$$p = null; - return $send(self, 'set_or_replace_state_or_prop', [state, "setState"], block.$to_proc()) - }, TMP_InstanceMethods_set_state_9.$$arity = 1); + if ($iter) $InstanceMethods_set_state$9.$$p = null; + + + if ($iter) $InstanceMethods_set_state$9.$$p = null;; + return $send(self, 'set_or_replace_state_or_prop', [state, "setState"], block.$to_proc()); + }, $InstanceMethods_set_state$9.$$arity = 1); - Opal.defn(self, '$set_state!', TMP_InstanceMethods_set_state$B_10 = function(state) { - var self = this, $iter = TMP_InstanceMethods_set_state$B_10.$$p, block = $iter || nil; + Opal.def(self, '$set_state!', $InstanceMethods_set_state$excl$10 = function(state) { + var $iter = $InstanceMethods_set_state$excl$10.$$p, block = $iter || nil, self = this; - if ($iter) TMP_InstanceMethods_set_state$B_10.$$p = null; + if ($iter) $InstanceMethods_set_state$excl$10.$$p = null; + + if ($iter) $InstanceMethods_set_state$excl$10.$$p = null;; $send(self, 'set_or_replace_state_or_prop', [state, "setState"], block.$to_proc()); return self.__hyperstack_component_native.forceUpdate(); - }, TMP_InstanceMethods_set_state$B_10.$$arity = 1); + }, $InstanceMethods_set_state$excl$10.$$arity = 1); self.$private(); - Opal.defn(self, '$__hyperstack_router_wrapper', TMP_InstanceMethods___hyperstack_router_wrapper_11 = function $$__hyperstack_router_wrapper() { - var TMP_12, self = this, $iter = TMP_InstanceMethods___hyperstack_router_wrapper_11.$$p, block = $iter || nil; + Opal.def(self, '$__hyperstack_router_wrapper', $InstanceMethods___hyperstack_router_wrapper$11 = function $$__hyperstack_router_wrapper() { + var $iter = $InstanceMethods___hyperstack_router_wrapper$11.$$p, block = $iter || nil, $$12, self = this; - if ($iter) TMP_InstanceMethods___hyperstack_router_wrapper_11.$$p = null; - return $send(self, 'lambda', [], (TMP_12 = function(){var self = TMP_12.$$s || this; + if ($iter) $InstanceMethods___hyperstack_router_wrapper$11.$$p = null; + + + if ($iter) $InstanceMethods___hyperstack_router_wrapper$11.$$p = null;; + return $lambda(($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s; - return $send(self, 'instance_eval', [], block.$to_proc())}, TMP_12.$$s = self, TMP_12.$$arity = 0, TMP_12)) - }, TMP_InstanceMethods___hyperstack_router_wrapper_11.$$arity = 0); + return $send(self, 'instance_eval', [], block.$to_proc())}, $$12.$$s = self, $$12.$$arity = 0, $$12)); + }, $InstanceMethods___hyperstack_router_wrapper$11.$$arity = 0); - Opal.defn(self, '$__hyperstack_component_rescue_wrapper', TMP_InstanceMethods___hyperstack_component_rescue_wrapper_13 = function $$__hyperstack_component_rescue_wrapper(child) { + Opal.def(self, '$__hyperstack_component_rescue_wrapper', $InstanceMethods___hyperstack_component_rescue_wrapper$13 = function $$__hyperstack_component_rescue_wrapper(child) { var self = this; if ($truthy(self.$class()['$callbacks?']("__hyperstack_component_rescue_hook"))) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component').$RescueWrapper($hash2(["child", "children_elements"], {"child": self, "children_elements": child})) - } else { + return $$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component').$RescueWrapper($hash2(["child", "children_elements"], {"child": self, "children_elements": child})) + } else { return child.$call() } - }, TMP_InstanceMethods___hyperstack_component_rescue_wrapper_13.$$arity = 1); + }, $InstanceMethods___hyperstack_component_rescue_wrapper$13.$$arity = 1); - Opal.defn(self, '$__hyperstack_component_select_wrappers', TMP_InstanceMethods___hyperstack_component_select_wrappers_14 = function $$__hyperstack_component_select_wrappers() { - var self = this, $iter = TMP_InstanceMethods___hyperstack_component_select_wrappers_14.$$p, block = $iter || nil, $writer = nil; + Opal.def(self, '$__hyperstack_component_select_wrappers', $InstanceMethods___hyperstack_component_select_wrappers$14 = function $$__hyperstack_component_select_wrappers() { + var $iter = $InstanceMethods___hyperstack_component_select_wrappers$14.$$p, block = $iter || nil, self = this, $writer = nil; - if ($iter) TMP_InstanceMethods___hyperstack_component_select_wrappers_14.$$p = null; + if ($iter) $InstanceMethods___hyperstack_component_select_wrappers$14.$$p = null; + if ($iter) $InstanceMethods___hyperstack_component_select_wrappers$14.$$p = null;; + $writer = [nil]; - $send(Opal.const_get_relative($nesting, 'RescueWrapper'), 'after_error_args=', Opal.to_a($writer)); + $send($$($nesting, 'RescueWrapper'), 'after_error_args=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$__hyperstack_component_run_post_render_hooks(self.$__hyperstack_component_rescue_wrapper($send(self, '__hyperstack_router_wrapper', [], block.$to_proc()))); - }, TMP_InstanceMethods___hyperstack_component_select_wrappers_14.$$arity = 0); - - Opal.defn(self, '$set_or_replace_state_or_prop', TMP_InstanceMethods_set_or_replace_state_or_prop_15 = function $$set_or_replace_state_or_prop(state_or_prop, method) { - var self = this, $iter = TMP_InstanceMethods_set_or_replace_state_or_prop_15.$$p, block = $iter || nil; + }, $InstanceMethods___hyperstack_component_select_wrappers$14.$$arity = 0); + return (Opal.def(self, '$set_or_replace_state_or_prop', $InstanceMethods_set_or_replace_state_or_prop$15 = function $$set_or_replace_state_or_prop(state_or_prop, method) { + var $iter = $InstanceMethods_set_or_replace_state_or_prop$15.$$p, block = $iter || nil, self = this; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - if ($iter) TMP_InstanceMethods_set_or_replace_state_or_prop_15.$$p = null; + if ($iter) $InstanceMethods_set_or_replace_state_or_prop$15.$$p = null; + + if ($iter) $InstanceMethods_set_or_replace_state_or_prop$15.$$p = null;; if ($truthy(self.__hyperstack_component_native)) { - } else { + } else { self.$raise("No native ReactComponent associated") }; var state_prop_n = state_or_prop.$shallow_to_n(); @@ -3677,7 +4694,7 @@ Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) } } - } else { + } else { if (self.__hyperstack_component_native.__opalInstanceInitializedState === true) { self.__hyperstack_component_native[method](state_prop_n); @@ -3690,15 +4707,14 @@ Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) } }; - }, TMP_InstanceMethods_set_or_replace_state_or_prop_15.$$arity = 2); + }, $InstanceMethods_set_or_replace_state_or_prop$15.$$arity = 2), nil) && 'set_or_replace_state_or_prop'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/class_methods"] = function(Opal) { +Opal.modules["hyperstack/internal/component/class_methods"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_le(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); } @@ -3711,276 +4727,311 @@ Opal.modules["hyperstack/internal/component/class_methods"] = function(Opal) { function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range, $hash2 = Opal.hash2, $hash = Opal.hash; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias, $hash = Opal.hash; - Opal.add_stubs(['$create_element', '$to_proc', '$render', '$deprecation_warning', '$select', '$mounted_components', '$<=', '$class', '$param_accessor_style', '$props_wrapper', '$==', '$[]', '$<<', '$each', '$before_new_params', '$included', '$is_a?', '$type', '$define_method', '$__hyperstack_component_select_wrappers', '$instance_eval', '$__hyperstack_component_after_render_hook', '$on', '$instance_exec', '$empty?', '$__hyperstack_component_rescue_hook', '$!', '$detect', '$before_mount', '$before_update', '$after_mount', '$after_update', '$any?', '$respond_to?', '$haml_class_name', '$superclass', '$copy', '$validator', '$new', '$validate', '$>', '$count', '$+', '$name', '$join', '$default_props', '$build', '$first', '$delete', '$merge!', '$[]=', '$-', '$key?', '$optional', '$requires', '$all_other_params', '$props', '$=~', '$gsub', '$include?', '$event_camelize', '$event', '$call', '$arity', '$last', '$pop', '$state', '$singleton_class', '$__send__', '$mutate', '$native_mixins', '$static_call_backs', '$split', '$to_n', '$add_item_to_tree', '$Native', '$create_native_react_class', '$reverse', '$import_native_component', '$eval_native_react_component', '$raise', '$message', '$!=', '$length', '$inject']); + Opal.add_stubs(['$create_element', '$to_proc', '$render', '$deprecation_warning', '$select', '$mounted_components', '$<=', '$class', '$param_accessor_style', '$props_wrapper', '$==', '$[]', '$<<', '$each', '$before_new_params', '$included', '$is_a?', '$element_type', '$define_method', '$__hyperstack_component_select_wrappers', '$instance_eval', '$__hyperstack_component_after_render_hook', '$on', '$instance_exec', '$empty?', '$__hyperstack_component_rescue_hook', '$!', '$detect', '$before_mount', '$before_update', '$after_mount', '$after_update', '$any?', '$respond_to?', '$haml_class_name', '$superclass', '$copy', '$validator', '$new', '$validate', '$>', '$count', '$+', '$name', '$join', '$default_props', '$build', '$first', '$delete', '$merge!', '$[]=', '$-', '$key?', '$optional', '$requires', '$all_other_params', '$props', '$=~', '$gsub', '$include?', '$event_camelize', '$event', '$call', '$arity', '$last', '$pop', '$state', '$singleton_class', '$__send__', '$mutate', '$native_mixins', '$static_call_backs', '$split', '$to_n', '$add_item_to_tree', '$Native', '$create_native_react_class', '$reverse', '$import_native_component', '$eval_native_react_component', '$raise', '$message', '$!=', '$length', '$inject']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $ClassMethods, self = $ClassMethods = $module($base, 'ClassMethods'); + return (function($base, $parent_nesting) { + var self = $module($base, 'ClassMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassMethods_create_element_1, TMP_ClassMethods_insert_element_2, TMP_ClassMethods_deprecation_warning_3, TMP_ClassMethods_hyper_component$q_4, TMP_ClassMethods_allow_deprecated_render_definition$q_5, TMP_ClassMethods_mounted_components_7, TMP_ClassMethods_param_accessor_style_8, TMP_ClassMethods_backtrace_9, TMP_ClassMethods_append_backtrace_11, TMP_ClassMethods_before_receive_props_12, TMP_ClassMethods_render_13, TMP_ClassMethods_on_19, TMP_ClassMethods_rescues_22, TMP_ClassMethods_before_render_25, TMP_ClassMethods_after_render_26, TMP_ClassMethods_method_missing_27, TMP_ClassMethods_validator_28, TMP_ClassMethods_prop_types_29, TMP_ClassMethods_default_props_30, TMP_ClassMethods_params_31, TMP_ClassMethods_props_wrapper_32, TMP_ClassMethods_param_33, TMP_ClassMethods_collect_other_params_as_35, TMP_ClassMethods_fires_37, TMP_ClassMethods_define_state_38, TMP_ClassMethods_export_state_41, TMP_ClassMethods_native_mixin_45, TMP_ClassMethods_native_mixins_46, TMP_ClassMethods_static_call_back_47, TMP_ClassMethods_static_call_backs_48, TMP_ClassMethods_export_component_49, TMP_ClassMethods_imports_51, TMP_ClassMethods_add_item_to_tree_53, TMP_ClassMethods_to_n_54; + var $nesting = [self].concat($parent_nesting), $ClassMethods_create_element$1, $ClassMethods_insert_element$2, $ClassMethods_deprecation_warning$3, $ClassMethods_hyper_component$ques$4, $ClassMethods_allow_deprecated_render_definition$ques$5, $ClassMethods_mounted_components$6, $ClassMethods_param_accessor_style$8, $ClassMethods_backtrace$9, $ClassMethods_append_backtrace$10, $ClassMethods_before_receive_props$12, $ClassMethods_render$13, $ClassMethods_on$19, $ClassMethods_rescues$22, $ClassMethods_before_render$25, $ClassMethods_after_render$26, $ClassMethods_method_missing$27, $ClassMethods_validator$28, $ClassMethods_prop_types$29, $ClassMethods_default_props$30, $ClassMethods_params$31, $ClassMethods_props_wrapper$32, $ClassMethods_param$33, $ClassMethods_collect_other_params_as$34, $ClassMethods_fires$36, $ClassMethods_define_state$38, $ClassMethods_export_state$41, $ClassMethods_native_mixin$45, $ClassMethods_native_mixins$46, $ClassMethods_static_call_back$47, $ClassMethods_static_call_backs$48, $ClassMethods_export_component$49, $ClassMethods_imports$50, $ClassMethods_add_item_to_tree$52, $ClassMethods_to_n$54; - Opal.defn(self, '$create_element', TMP_ClassMethods_create_element_1 = function $$create_element($a_rest) { - var self = this, params, $iter = TMP_ClassMethods_create_element_1.$$p, children = $iter || nil; + Opal.def(self, '$create_element', $ClassMethods_create_element$1 = function $$create_element($a) { + var $iter = $ClassMethods_create_element$1.$$p, children = $iter || nil, $post_args, params, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_create_element_1.$$p = null; - return $send(Opal.const_get_relative($nesting, 'ReactWrapper'), 'create_element', [self].concat(Opal.to_a(params)), children.$to_proc()) - }, TMP_ClassMethods_create_element_1.$$arity = -1); - - Opal.defn(self, '$insert_element', TMP_ClassMethods_insert_element_2 = function $$insert_element($a_rest) { - var self = this, params, $iter = TMP_ClassMethods_insert_element_2.$$p, children = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_insert_element_2.$$p = null; - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [self].concat(Opal.to_a(params)), children.$to_proc()) - }, TMP_ClassMethods_insert_element_2.$$arity = -1); + if ($iter) $ClassMethods_create_element$1.$$p = null; + + + if ($iter) $ClassMethods_create_element$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + params = $post_args;; + return $send($$($nesting, 'ReactWrapper'), 'create_element', [self].concat(Opal.to_a(params)), children.$to_proc()); + }, $ClassMethods_create_element$1.$$arity = -1); + + Opal.def(self, '$insert_element', $ClassMethods_insert_element$2 = function $$insert_element($a) { + var $iter = $ClassMethods_insert_element$2.$$p, children = $iter || nil, $post_args, params, self = this; + + if ($iter) $ClassMethods_insert_element$2.$$p = null; + + + if ($iter) $ClassMethods_insert_element$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + params = $post_args;; + return $send($$($nesting, 'RenderingContext'), 'render', [self].concat(Opal.to_a(params)), children.$to_proc()); + }, $ClassMethods_insert_element$2.$$arity = -1); - Opal.defn(self, '$deprecation_warning', TMP_ClassMethods_deprecation_warning_3 = function $$deprecation_warning(message) { + Opal.def(self, '$deprecation_warning', $ClassMethods_deprecation_warning$3 = function $$deprecation_warning(message) { var self = this; - return Opal.const_get_relative($nesting, 'Hyperstack').$deprecation_warning(self, message) - }, TMP_ClassMethods_deprecation_warning_3.$$arity = 1); + return $$($nesting, 'Hyperstack').$deprecation_warning(self, message) + }, $ClassMethods_deprecation_warning$3.$$arity = 1); - Opal.defn(self, '$hyper_component?', TMP_ClassMethods_hyper_component$q_4 = function() { + Opal.def(self, '$hyper_component?', $ClassMethods_hyper_component$ques$4 = function() { var self = this; return true - }, TMP_ClassMethods_hyper_component$q_4.$$arity = 0); + }, $ClassMethods_hyper_component$ques$4.$$arity = 0); - Opal.defn(self, '$allow_deprecated_render_definition?', TMP_ClassMethods_allow_deprecated_render_definition$q_5 = function() { + Opal.def(self, '$allow_deprecated_render_definition?', $ClassMethods_allow_deprecated_render_definition$ques$5 = function() { var self = this; return false - }, TMP_ClassMethods_allow_deprecated_render_definition$q_5.$$arity = 0); + }, $ClassMethods_allow_deprecated_render_definition$ques$5.$$arity = 0); - Opal.defn(self, '$mounted_components', TMP_ClassMethods_mounted_components_7 = function $$mounted_components() { - var TMP_6, self = this; + Opal.def(self, '$mounted_components', $ClassMethods_mounted_components$6 = function $$mounted_components() { + var $$7, self = this; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component').$mounted_components(), 'select', [], (TMP_6 = function(c){var self = TMP_6.$$s || this; -if (c == null) c = nil; - return $rb_le(c.$class(), self)}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)) - }, TMP_ClassMethods_mounted_components_7.$$arity = 0); + return $send($$$($$($nesting, 'Hyperstack'), 'Component').$mounted_components(), 'select', [], ($$7 = function(c){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (c == null) { + c = nil; + }; + return $rb_le(c.$class(), self);}, $$7.$$s = self, $$7.$$arity = 1, $$7)) + }, $ClassMethods_mounted_components$6.$$arity = 0); - Opal.defn(self, '$param_accessor_style', TMP_ClassMethods_param_accessor_style_8 = function $$param_accessor_style($a_rest) { - var self = this, args; + Opal.def(self, '$param_accessor_style', $ClassMethods_param_accessor_style$8 = function $$param_accessor_style($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$props_wrapper(), 'param_accessor_style', Opal.to_a(args)) - }, TMP_ClassMethods_param_accessor_style_8.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$props_wrapper(), 'param_accessor_style', Opal.to_a(args)); + }, $ClassMethods_param_accessor_style$8.$$arity = -1); - Opal.defn(self, '$backtrace', TMP_ClassMethods_backtrace_9 = function $$backtrace($a_rest) { - var $b, self = this, args; + Opal.def(self, '$backtrace', $ClassMethods_backtrace$9 = function $$backtrace($a) { + var $post_args, args, self = this, $ret_or_1 = nil; if (self.__hyperstack_component_dont_catch_exceptions == null) self.__hyperstack_component_dont_catch_exceptions = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self.__hyperstack_component_dont_catch_exceptions = args['$[]'](0)['$==']("none"); - return (self.__hyperstack_component_backtrace_off = ($truthy($b = self.__hyperstack_component_dont_catch_exceptions) ? $b : args['$[]'](0)['$==']("off"))); - }, TMP_ClassMethods_backtrace_9.$$arity = -1); + return (self.__hyperstack_component_backtrace_off = (function() {if ($truthy(($ret_or_1 = self.__hyperstack_component_dont_catch_exceptions))) { + return $ret_or_1 + } else { + + return args['$[]'](0)['$==']("off"); + }; return nil; })()); + }, $ClassMethods_backtrace$9.$$arity = -1); - Opal.defn(self, '$append_backtrace', TMP_ClassMethods_append_backtrace_11 = function $$append_backtrace(message_array, backtrace) { - var TMP_10, self = this; + Opal.def(self, '$append_backtrace', $ClassMethods_append_backtrace$10 = function $$append_backtrace(message_array, backtrace) { + var $$11, self = this; message_array['$<<']("" + " " + (backtrace['$[]'](0))); - return $send(backtrace['$[]']($range(1, -1, false)), 'each', [], (TMP_10 = function(line){var self = TMP_10.$$s || this; -if (line == null) line = nil; - return message_array['$<<'](line)}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)); - }, TMP_ClassMethods_append_backtrace_11.$$arity = 2); - - Opal.defn(self, '$before_receive_props', TMP_ClassMethods_before_receive_props_12 = function $$before_receive_props($a_rest) { - var self = this, args, $iter = TMP_ClassMethods_before_receive_props_12.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_before_receive_props_12.$$p = null; + return $send(backtrace['$[]']($range(1, -1, false)), 'each', [], ($$11 = function(line){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (line == null) { + line = nil; + }; + return message_array['$<<'](line);}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + }, $ClassMethods_append_backtrace$10.$$arity = 2); + + Opal.def(self, '$before_receive_props', $ClassMethods_before_receive_props$12 = function $$before_receive_props($a) { + var $iter = $ClassMethods_before_receive_props$12.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $ClassMethods_before_receive_props$12.$$p = null; + + if ($iter) $ClassMethods_before_receive_props$12.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self.$deprecation_warning("'before_receive_props' is deprecated. Use the 'before_new_params' macro instead."); return $send(self, 'before_new_params', Opal.to_a(args), block.$to_proc()); - }, TMP_ClassMethods_before_receive_props_12.$$arity = -1); + }, $ClassMethods_before_receive_props$12.$$arity = -1); - Opal.defn(self, '$render', TMP_ClassMethods_render_13 = function $$render(container, params) { - var TMP_14, TMP_17, self = this, $iter = TMP_ClassMethods_render_13.$$p, block = $iter || nil; + Opal.def(self, '$render', $ClassMethods_render$13 = function $$render(container, params) { + var $iter = $ClassMethods_render$13.$$p, block = $iter || nil, $$14, $$17, self = this; + if ($iter) $ClassMethods_render$13.$$p = null; + + + if ($iter) $ClassMethods_render$13.$$p = null;; + if (container == null) { container = nil; - } + }; + if (params == null) { params = $hash2([], {}); - } - if ($iter) TMP_ClassMethods_render_13.$$p = null; - - Opal.const_get_relative($nesting, 'Tags').$included(self); + }; + $$($nesting, 'Tags').$included(self); if ($truthy(container)) { - if ($truthy(container['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')))) { - container = container.$type()}; - return $send(self, 'define_method', ["__hyperstack_component_render"], (TMP_14 = function(){var self = TMP_14.$$s || this, TMP_15; + if ($truthy(container['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + container = container.$element_type()}; + return $send(self, 'define_method', ["__hyperstack_component_render"], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s, $$15; - return $send(self, '__hyperstack_component_select_wrappers', [], (TMP_15 = function(){var self = TMP_15.$$s || this, TMP_16; + return $send(self, '__hyperstack_component_select_wrappers', [], ($$15 = function(){var self = $$15.$$s == null ? this : $$15.$$s, $$16; - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [container, params], (TMP_16 = function(){var self = TMP_16.$$s || this; + return $send($$($nesting, 'RenderingContext'), 'render', [container, params], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - if ($truthy(block)) { + if ($truthy(block)) { return $send(self, 'instance_eval', [], block.$to_proc()) - } else { + } else { return nil - }}, TMP_16.$$s = self, TMP_16.$$arity = 0, TMP_16))}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15))}, TMP_14.$$s = self, TMP_14.$$arity = 0, TMP_14)); - } else { - return $send(self, 'define_method', ["__hyperstack_component_render"], (TMP_17 = function(){var self = TMP_17.$$s || this, TMP_18; + }}, $$16.$$s = self, $$16.$$arity = 0, $$16))}, $$15.$$s = self, $$15.$$arity = 0, $$15))}, $$14.$$s = self, $$14.$$arity = 0, $$14)); + } else { + return $send(self, 'define_method', ["__hyperstack_component_render"], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s, $$18; - return $send(self, '__hyperstack_component_select_wrappers', [], (TMP_18 = function(){var self = TMP_18.$$s || this; + return $send(self, '__hyperstack_component_select_wrappers', [], ($$18 = function(){var self = $$18.$$s == null ? this : $$18.$$s; - return $send(self, 'instance_eval', [], block.$to_proc())}, TMP_18.$$s = self, TMP_18.$$arity = 0, TMP_18))}, TMP_17.$$s = self, TMP_17.$$arity = 0, TMP_17)) + return $send(self, 'instance_eval', [], block.$to_proc())}, $$18.$$s = self, $$18.$$arity = 0, $$18))}, $$17.$$s = self, $$17.$$arity = 0, $$17)) }; - }, TMP_ClassMethods_render_13.$$arity = -1); + }, $ClassMethods_render$13.$$arity = -1); - Opal.defn(self, '$on', TMP_ClassMethods_on_19 = function $$on($a_rest) { - var TMP_20, self = this, args, $iter = TMP_ClassMethods_on_19.$$p, block = $iter || nil; + Opal.def(self, '$on', $ClassMethods_on$19 = function $$on($a) { + var $iter = $ClassMethods_on$19.$$p, block = $iter || nil, $post_args, args, $$20, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_on_19.$$p = null; - return $send(self, '__hyperstack_component_after_render_hook', [], (TMP_20 = function(element){var self = TMP_20.$$s || this, TMP_21; -if (element == null) element = nil; - return $send(element, 'on', Opal.to_a(args), (TMP_21 = function($a_rest){var self = TMP_21.$$s || this, aargs; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - aargs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - aargs[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self, 'instance_exec', Opal.to_a(aargs), block.$to_proc())}, TMP_21.$$s = self, TMP_21.$$arity = -1, TMP_21))}, TMP_20.$$s = self, TMP_20.$$arity = 1, TMP_20)) - }, TMP_ClassMethods_on_19.$$arity = -1); + if ($iter) $ClassMethods_on$19.$$p = null; + + + if ($iter) $ClassMethods_on$19.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, '__hyperstack_component_after_render_hook', [], ($$20 = function(element){var self = $$20.$$s == null ? this : $$20.$$s, $$21; + + + + if (element == null) { + element = nil; + }; + return $send(element, 'on', Opal.to_a(args), ($$21 = function($b){var self = $$21.$$s == null ? this : $$21.$$s, $post_args, aargs; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + aargs = $post_args;; + return $send(self, 'instance_exec', Opal.to_a(aargs), block.$to_proc());}, $$21.$$s = self, $$21.$$arity = -1, $$21));}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + }, $ClassMethods_on$19.$$arity = -1); - Opal.defn(self, '$rescues', TMP_ClassMethods_rescues_22 = function $$rescues($a_rest) { - var TMP_23, self = this, klasses, $iter = TMP_ClassMethods_rescues_22.$$p, block = $iter || nil; + Opal.def(self, '$rescues', $ClassMethods_rescues$22 = function $$rescues($a) { + var $iter = $ClassMethods_rescues$22.$$p, block = $iter || nil, $post_args, klasses, $$23, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - klasses = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - klasses[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_rescues_22.$$p = null; + if ($iter) $ClassMethods_rescues$22.$$p = null; + + if ($iter) $ClassMethods_rescues$22.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + klasses = $post_args;; if ($truthy(klasses['$empty?']())) { - klasses = [Opal.const_get_relative($nesting, 'StandardError')]}; - return $send(self, '__hyperstack_component_rescue_hook', [], (TMP_23 = function(found, $a_rest){var self = TMP_23.$$s || this, args, $b, TMP_24; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (found == null) found = nil; - - if ($truthy(($truthy($b = found) ? $b : $send(klasses, 'detect', [], (TMP_24 = function(klass){var self = TMP_24.$$s || this; -if (klass == null) klass = nil; - return args['$[]'](0)['$is_a?'](klass)}, TMP_24.$$s = self, TMP_24.$$arity = 1, TMP_24))['$!']()))) { + klasses = [$$($nesting, 'StandardError')]}; + return $send(self, '__hyperstack_component_rescue_hook', [], ($$23 = function(found, $b){var self = $$23.$$s == null ? this : $$23.$$s, $post_args, args, $$24, $ret_or_2 = nil; + + + + if (found == null) { + found = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_2 = found))) { + return $ret_or_2 + } else { + return $send(klasses, 'detect', [], ($$24 = function(klass){var self = $$24.$$s == null ? this : $$24.$$s; + + + + if (klass == null) { + klass = nil; + }; + return args['$[]'](0)['$is_a?'](klass);}, $$24.$$s = self, $$24.$$arity = 1, $$24))['$!']() + }; return nil; })())) { return [found].concat(Opal.to_a(args));}; $send(self, 'instance_exec', Opal.to_a(args), block.$to_proc()); - return [true].concat(Opal.to_a(args));}, TMP_23.$$s = self, TMP_23.$$arity = -2, TMP_23)); - }, TMP_ClassMethods_rescues_22.$$arity = -1); + return [true].concat(Opal.to_a(args));}, $$23.$$s = self, $$23.$$arity = -2, $$23)); + }, $ClassMethods_rescues$22.$$arity = -1); - Opal.defn(self, '$before_render', TMP_ClassMethods_before_render_25 = function $$before_render($a_rest) { - var self = this, args, $iter = TMP_ClassMethods_before_render_25.$$p, block = $iter || nil; + Opal.def(self, '$before_render', $ClassMethods_before_render$25 = function $$before_render($a) { + var $iter = $ClassMethods_before_render$25.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_before_render_25.$$p = null; + if ($iter) $ClassMethods_before_render$25.$$p = null; + + + if ($iter) $ClassMethods_before_render$25.$$p = null;; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; $send(self, 'before_mount', Opal.to_a(args), block.$to_proc()); return $send(self, 'before_update', Opal.to_a(args), block.$to_proc()); - }, TMP_ClassMethods_before_render_25.$$arity = -1); + }, $ClassMethods_before_render$25.$$arity = -1); - Opal.defn(self, '$after_render', TMP_ClassMethods_after_render_26 = function $$after_render($a_rest) { - var self = this, args, $iter = TMP_ClassMethods_after_render_26.$$p, block = $iter || nil; + Opal.def(self, '$after_render', $ClassMethods_after_render$26 = function $$after_render($a) { + var $iter = $ClassMethods_after_render$26.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_after_render_26.$$p = null; + if ($iter) $ClassMethods_after_render$26.$$p = null; + + + if ($iter) $ClassMethods_after_render$26.$$p = null;; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; $send(self, 'after_mount', Opal.to_a(args), block.$to_proc()); - return $send(self, 'after_update', Opal.to_a(args), block.$to_proc()); - }, TMP_ClassMethods_after_render_26.$$arity = -1); - - Opal.defn(self, '$method_missing', TMP_ClassMethods_method_missing_27 = function $$method_missing(name, $a_rest) { - var $b, self = this, args, $iter = TMP_ClassMethods_method_missing_27.$$p, children = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_method_missing_27.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy(($truthy($b = args['$any?']()) ? $b : Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')['$respond_to?']("haml_class_name")['$!']()))) { - return $send(self, Opal.find_super_dispatcher(self, 'method_missing', TMP_ClassMethods_method_missing_27, false), $zuper, $iter) - } else { - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [self, $hash2(["class"], {"class": Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element').$haml_class_name(name)})], children.$to_proc()) - } - }, TMP_ClassMethods_method_missing_27.$$arity = -2); + return $send(self, 'after_update', Opal.to_a(args), block.$to_proc()); + }, $ClassMethods_after_render$26.$$arity = -1); + + Opal.def(self, '$method_missing', $ClassMethods_method_missing$27 = function $$method_missing(name, $a) { + var $iter = $ClassMethods_method_missing$27.$$p, children = $iter || nil, $post_args, args, self = this, $ret_or_3 = nil; + + if ($iter) $ClassMethods_method_missing$27.$$p = null; + + + if ($iter) $ClassMethods_method_missing$27.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_3 = args['$any?']()))) { + return $ret_or_3 + } else { + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')['$respond_to?']("haml_class_name")['$!']() + }; return nil; })())) { + return $send2(self, $find_super(self, 'method_missing', $ClassMethods_method_missing$27, false, true), 'method_missing', [name].concat(Opal.to_a(args)), $iter) + } else { + return $send($$($nesting, 'RenderingContext'), 'render', [self, $hash2(["class"], {"class": $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element').$haml_class_name(name)})], children.$to_proc()) + }; + }, $ClassMethods_method_missing$27.$$arity = -2); - Opal.defn(self, '$validator', TMP_ClassMethods_validator_28 = function $$validator() { + Opal.def(self, '$validator', $ClassMethods_validator$28 = function $$validator() { var self = this; if (self.__hyperstack_component_validator == null) self.__hyperstack_component_validator = nil; @@ -3989,84 +5040,100 @@ if (klass == null) klass = nil; return self.__hyperstack_component_validator}; if ($truthy(self.$superclass()['$respond_to?']("validator"))) { return (self.__hyperstack_component_validator = self.$superclass().$validator().$copy(self.$props_wrapper())) - } else { - return (self.__hyperstack_component_validator = Opal.const_get_relative($nesting, 'Validator').$new(self.$props_wrapper())) + } else { + return (self.__hyperstack_component_validator = $$($nesting, 'Validator').$new(self.$props_wrapper())) }; - }, TMP_ClassMethods_validator_28.$$arity = 0); + }, $ClassMethods_validator$28.$$arity = 0); - Opal.defn(self, '$prop_types', TMP_ClassMethods_prop_types_29 = function $$prop_types() { + Opal.def(self, '$prop_types', $ClassMethods_prop_types$29 = function $$prop_types() { var self = this; if ($truthy(self.$validator())) { return $hash2(["_componentValidator"], {"_componentValidator": function(props, propName, componentName) { - var errors = self.$validator().$validate(Opal.const_get_relative($nesting, 'Hash').$new(props)); + var errors = self.$validator().$validate($$($nesting, 'Hash').$new(props)); return (function() {if ($truthy($rb_gt((errors).$count(), 0))) { return new Error($rb_plus("" + "In component `" + (self.$name()) + "`\n", (errors).$join("\n"))) - } else { - return undefined + } else { + return undefined; }; return nil; })(); } }) - } else { + } else { return $hash2([], {}) } - }, TMP_ClassMethods_prop_types_29.$$arity = 0); + }, $ClassMethods_prop_types$29.$$arity = 0); - Opal.defn(self, '$default_props', TMP_ClassMethods_default_props_30 = function $$default_props() { + Opal.def(self, '$default_props', $ClassMethods_default_props$30 = function $$default_props() { var self = this; return self.$validator().$default_props() - }, TMP_ClassMethods_default_props_30.$$arity = 0); + }, $ClassMethods_default_props$30.$$arity = 0); - Opal.defn(self, '$params', TMP_ClassMethods_params_31 = function $$params() { - var self = this, $iter = TMP_ClassMethods_params_31.$$p, block = $iter || nil; + Opal.def(self, '$params', $ClassMethods_params$31 = function $$params() { + var $iter = $ClassMethods_params$31.$$p, block = $iter || nil, self = this; - if ($iter) TMP_ClassMethods_params_31.$$p = null; - return $send(self.$validator(), 'build', [], block.$to_proc()) - }, TMP_ClassMethods_params_31.$$arity = 0); + if ($iter) $ClassMethods_params$31.$$p = null; + + + if ($iter) $ClassMethods_params$31.$$p = null;; + return $send(self.$validator(), 'build', [], block.$to_proc()); + }, $ClassMethods_params$31.$$arity = 0); - Opal.defn(self, '$props_wrapper', TMP_ClassMethods_props_wrapper_32 = function $$props_wrapper() { - var $a, self = this; + Opal.def(self, '$props_wrapper', $ClassMethods_props_wrapper$32 = function $$props_wrapper() { + var self = this, $ret_or_4 = nil; if (self.__hyperstack_component_props_wrapper == null) self.__hyperstack_component_props_wrapper = nil; if ($truthy(self.__hyperstack_component_props_wrapper)) { return self.__hyperstack_component_props_wrapper}; if ($truthy(self.$superclass()['$respond_to?']("props_wrapper"))) { - return (self.__hyperstack_component_props_wrapper = Opal.const_get_relative($nesting, 'Class').$new(self.$superclass().$props_wrapper())) + return (self.__hyperstack_component_props_wrapper = $$($nesting, 'Class').$new(self.$superclass().$props_wrapper())) + } else { + return (self.__hyperstack_component_props_wrapper = (function() {if ($truthy(($ret_or_4 = self.__hyperstack_component_props_wrapper))) { + return $ret_or_4 } else { - return (self.__hyperstack_component_props_wrapper = ($truthy($a = self.__hyperstack_component_props_wrapper) ? $a : Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'PropsWrapper')))) + return $$($nesting, 'Class').$new($$($nesting, 'PropsWrapper')) + }; return nil; })()) }; - }, TMP_ClassMethods_props_wrapper_32.$$arity = 0); + }, $ClassMethods_props_wrapper$32.$$arity = 0); - Opal.defn(self, '$param', TMP_ClassMethods_param_33 = function $$param($a_rest) { - var $b, self = this, args, options = nil, name = nil, default$ = nil, $writer = nil; + Opal.def(self, '$param', $ClassMethods_param$33 = function $$param($a) { + var $post_args, args, self = this, options = nil, name = nil, default$ = nil, $ret_or_5 = nil, $ret_or_6 = nil, $writer = nil, $ret_or_7 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(args['$[]'](0)['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(args['$[]'](0)['$is_a?']($$($nesting, 'Hash')))) { options = args['$[]'](0); name = options.$first()['$[]'](0); default$ = options.$first()['$[]'](1); options.$delete(name); options['$merge!']($hash2(["default"], {"default": default$})); - } else { + } else { name = args['$[]'](0); - options = ($truthy($b = args['$[]'](1)) ? $b : $hash2([], {})); + options = (function() {if ($truthy(($ret_or_5 = args['$[]'](1)))) { + return $ret_or_5 + } else { + return $hash2([], {}) + }; return nil; })(); }; - if (options['$[]']("type")['$=='](Opal.const_get_relative($nesting, 'Proc'))) { + if (options['$[]']("type")['$==']($$($nesting, 'Proc'))) { - ($truthy($b = options['$[]']("default")) ? $b : (($writer = ["default", nil]), $send(options, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); + if ($truthy(($ret_or_6 = options['$[]']("default")))) { + $ret_or_6 + } else { + + $writer = ["default", nil]; + $send(options, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; if ($truthy(options['$key?']("allow_nil"))) { - } else { + } else { $writer = ["allow_nil", true]; $send(options, '[]=', Opal.to_a($writer)); @@ -4075,202 +5142,274 @@ if (klass == null) klass = nil; if (name['$==']("class")) { name = "className"; - ($truthy($b = options['$[]']("alias")) ? $b : (($writer = ["alias", "Class"]), $send(options, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]));}; + if ($truthy(($ret_or_7 = options['$[]']("alias")))) { + $ret_or_7 + } else { + + $writer = ["alias", "Class"]; + $send(options, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + };}; if ($truthy(options['$[]']("default"))) { return self.$validator().$optional(name, options) - } else { + } else { return self.$validator().$requires(name, options) }; - }, TMP_ClassMethods_param_33.$$arity = -1); + }, $ClassMethods_param$33.$$arity = -1); - Opal.defn(self, '$collect_other_params_as', TMP_ClassMethods_collect_other_params_as_35 = function $$collect_other_params_as(name) { - var TMP_34, self = this; + Opal.def(self, '$collect_other_params_as', $ClassMethods_collect_other_params_as$34 = function $$collect_other_params_as(name) { + var $$35, self = this; - return $send(self.$validator(), 'all_other_params', [name], (TMP_34 = function(){var self = TMP_34.$$s || this; + return $send(self.$validator(), 'all_other_params', [name], ($$35 = function(){var self = $$35.$$s == null ? this : $$35.$$s; - return self.$props()}, TMP_34.$$s = self, TMP_34.$$arity = 0, TMP_34)) - }, TMP_ClassMethods_collect_other_params_as_35.$$arity = 1); - Opal.alias(self, "other_params", "collect_other_params_as"); - Opal.alias(self, "others", "collect_other_params_as"); - Opal.alias(self, "other", "collect_other_params_as"); - Opal.alias(self, "opts", "collect_other_params_as"); + return self.$props()}, $$35.$$s = self, $$35.$$arity = 0, $$35)) + }, $ClassMethods_collect_other_params_as$34.$$arity = 1); + $alias(self, "other_params", "collect_other_params_as"); + $alias(self, "others", "collect_other_params_as"); + $alias(self, "other", "collect_other_params_as"); + $alias(self, "opts", "collect_other_params_as"); - Opal.defn(self, '$fires', TMP_ClassMethods_fires_37 = function $$fires(name, opts) { - var $a, TMP_36, self = this, aka = nil; + Opal.def(self, '$fires', $ClassMethods_fires$36 = function $$fires(name, opts) { + var $$37, self = this, aka = nil, $ret_or_8 = nil; + + if (opts == null) { opts = $hash2([], {}); - } - - aka = ($truthy($a = opts['$[]']("alias")) ? $a : "" + (name) + "!"); + }; + aka = (function() {if ($truthy(($ret_or_8 = opts['$[]']("alias")))) { + return $ret_or_8 + } else { + return "" + (name) + "!" + }; return nil; })(); name = (function() {if ($truthy(name['$=~'](/^<(.+)>$/))) { return name.$gsub(/^<(.+)>$/, "\\1") - } else if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Event'), 'BUILT_IN_EVENTS')['$include?']("" + "on" + (name.$event_camelize())))) { + } else if ($truthy($$$($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Event'), 'BUILT_IN_EVENTS')['$include?']("" + "on" + (name.$event_camelize())))) { return "" + "on" + (name.$event_camelize()) - } else { + } else { return "" + "on_" + (name) }; return nil; })(); self.$validator().$event(name); - return $send(self, 'define_method', [aka], (TMP_36 = function($b_rest){var self = TMP_36.$$s || this, args, $c; + return $send(self, 'define_method', [aka], ($$37 = function($a){var self = $$37.$$s == null ? this : $$37.$$s, $post_args, args, $b; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return ($c = self.$props()['$[]'](name), ($c === nil || $c == null) ? nil : $send($c, 'call', Opal.to_a(args)))}, TMP_36.$$s = self, TMP_36.$$arity = -1, TMP_36)); - }, TMP_ClassMethods_fires_37.$$arity = -2); - Opal.alias(self, "triggers", "fires"); - - Opal.defn(self, '$define_state', TMP_ClassMethods_define_state_38 = function $$define_state($a_rest) { - var $b, TMP_39, TMP_40, self = this, states, $iter = TMP_ClassMethods_define_state_38.$$p, block = $iter || nil, default_initial_value = nil, states_hash = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - states = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - states[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_define_state_38.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return ($b = self.$props()['$[]'](name), ($b === nil || $b == null) ? nil : $send($b, 'call', Opal.to_a(args)));}, $$37.$$s = self, $$37.$$arity = -1, $$37)); + }, $ClassMethods_fires$36.$$arity = -2); + $alias(self, "triggers", "fires"); + + Opal.def(self, '$define_state', $ClassMethods_define_state$38 = function $$define_state($a) { + var $iter = $ClassMethods_define_state$38.$$p, block = $iter || nil, $post_args, states, $$39, $$40, self = this, default_initial_value = nil, $ret_or_9 = nil, states_hash = nil; + + if ($iter) $ClassMethods_define_state$38.$$p = null; + + if ($iter) $ClassMethods_define_state$38.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + states = $post_args;; self.$deprecation_warning("'define_state' is deprecated. Use the 'state' macro to declare states."); - default_initial_value = (function() {if ($truthy(($truthy($b = block) ? block.$arity()['$=='](0) : $b))) { + default_initial_value = (function() {if ($truthy((function() {if ($truthy(($ret_or_9 = block))) { + return block.$arity()['$=='](0) + } else { + return $ret_or_9 + }; return nil; })())) { return Opal.yieldX(block, []); - } else { + } else { return nil }; return nil; })(); - states_hash = (function() {if ($truthy(states.$last()['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + states_hash = (function() {if ($truthy(states.$last()['$is_a?']($$($nesting, 'Hash')))) { return states.$pop() - } else { + } else { return $hash2([], {}) }; return nil; })(); - $send(states, 'each', [], (TMP_39 = function(name){var self = TMP_39.$$s || this; -if (name == null) name = nil; - return self.$state($hash(name, default_initial_value))}, TMP_39.$$s = self, TMP_39.$$arity = 1, TMP_39)); - return $send(states_hash, 'each', [], (TMP_40 = function(name, value){var self = TMP_40.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return self.$state($hash(name, value))}, TMP_40.$$s = self, TMP_40.$$arity = 2, TMP_40)); - }, TMP_ClassMethods_define_state_38.$$arity = -1); - - Opal.defn(self, '$export_state', TMP_ClassMethods_export_state_41 = function $$export_state($a_rest) { - var $b, TMP_42, TMP_43, self = this, states, $iter = TMP_ClassMethods_export_state_41.$$p, block = $iter || nil, default_initial_value = nil, states_hash = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - states = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - states[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_export_state_41.$$p = null; + $send(states, 'each', [], ($$39 = function(name){var self = $$39.$$s == null ? this : $$39.$$s; + + + + if (name == null) { + name = nil; + }; + return self.$state($hash(name, default_initial_value));}, $$39.$$s = self, $$39.$$arity = 1, $$39)); + return $send(states_hash, 'each', [], ($$40 = function(name, value){var self = $$40.$$s == null ? this : $$40.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return self.$state($hash(name, value));}, $$40.$$s = self, $$40.$$arity = 2, $$40)); + }, $ClassMethods_define_state$38.$$arity = -1); + + Opal.def(self, '$export_state', $ClassMethods_export_state$41 = function $$export_state($a) { + var $iter = $ClassMethods_export_state$41.$$p, block = $iter || nil, $post_args, states, $$42, $$43, self = this, default_initial_value = nil, $ret_or_10 = nil, states_hash = nil; + + if ($iter) $ClassMethods_export_state$41.$$p = null; + + + if ($iter) $ClassMethods_export_state$41.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + states = $post_args;; self.$deprecation_warning("'export_state' is deprecated. Use the 'state' macro to declare states."); - default_initial_value = (function() {if ($truthy(($truthy($b = block) ? block.$arity()['$=='](0) : $b))) { + default_initial_value = (function() {if ($truthy((function() {if ($truthy(($ret_or_10 = block))) { + return block.$arity()['$=='](0) + } else { + return $ret_or_10 + }; return nil; })())) { return Opal.yieldX(block, []); - } else { + } else { return nil }; return nil; })(); - states_hash = (function() {if ($truthy(states.$last()['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + states_hash = (function() {if ($truthy(states.$last()['$is_a?']($$($nesting, 'Hash')))) { return states.$pop() - } else { + } else { return $hash2([], {}) }; return nil; })(); - $send(states, 'each', [], (TMP_42 = function(name){var self = TMP_42.$$s || this, $writer = nil; -if (name == null) name = nil; - + $send(states, 'each', [], ($$42 = function(name){var self = $$42.$$s == null ? this : $$42.$$s, $writer = nil; + + + + if (name == null) { + name = nil; + }; $writer = [name, default_initial_value]; $send(states_hash, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_42.$$s = self, TMP_42.$$arity = 1, TMP_42)); - return $send(states_hash, 'each', [], (TMP_43 = function(name, value){var self = TMP_43.$$s || this, TMP_44; -if (name == null) name = nil;if (value == null) value = nil; - + return $writer[$rb_minus($writer["length"], 1)];}, $$42.$$s = self, $$42.$$arity = 1, $$42)); + return $send(states_hash, 'each', [], ($$43 = function(name, value){var self = $$43.$$s == null ? this : $$43.$$s, $$44; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; self.$state($hash(name, value, "scope", "class", "reader", true)); - return $send(self.$singleton_class(), 'define_method', ["" + (name) + "!"], (TMP_44 = function($a_rest){var self = TMP_44.$$s || this, args; + return $send(self.$singleton_class(), 'define_method', ["" + (name) + "!"], ($$44 = function($b){var self = $$44.$$s == null ? this : $$44.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$mutate(), '__send__', [name].concat(Opal.to_a(args)))}, TMP_44.$$s = self, TMP_44.$$arity = -1, TMP_44));}, TMP_43.$$s = self, TMP_43.$$arity = 2, TMP_43)); - }, TMP_ClassMethods_export_state_41.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$mutate(), '__send__', [name].concat(Opal.to_a(args)));}, $$44.$$s = self, $$44.$$arity = -1, $$44));}, $$43.$$s = self, $$43.$$arity = 2, $$43)); + }, $ClassMethods_export_state$41.$$arity = -1); - Opal.defn(self, '$native_mixin', TMP_ClassMethods_native_mixin_45 = function $$native_mixin(item) { + Opal.def(self, '$native_mixin', $ClassMethods_native_mixin$45 = function $$native_mixin(item) { var self = this; return self.$native_mixins()['$<<'](item) - }, TMP_ClassMethods_native_mixin_45.$$arity = 1); + }, $ClassMethods_native_mixin$45.$$arity = 1); - Opal.defn(self, '$native_mixins', TMP_ClassMethods_native_mixins_46 = function $$native_mixins() { - var $a, self = this; + Opal.def(self, '$native_mixins', $ClassMethods_native_mixins$46 = function $$native_mixins() { + var self = this, $ret_or_11 = nil; if (self.__hyperstack_component_native_mixins == null) self.__hyperstack_component_native_mixins = nil; - return (self.__hyperstack_component_native_mixins = ($truthy($a = self.__hyperstack_component_native_mixins) ? $a : [])) - }, TMP_ClassMethods_native_mixins_46.$$arity = 0); + return (self.__hyperstack_component_native_mixins = (function() {if ($truthy(($ret_or_11 = self.__hyperstack_component_native_mixins))) { + return $ret_or_11 + } else { + return [] + }; return nil; })()) + }, $ClassMethods_native_mixins$46.$$arity = 0); - Opal.defn(self, '$static_call_back', TMP_ClassMethods_static_call_back_47 = function $$static_call_back(name) { - var self = this, $iter = TMP_ClassMethods_static_call_back_47.$$p, block = $iter || nil, $writer = nil; + Opal.def(self, '$static_call_back', $ClassMethods_static_call_back$47 = function $$static_call_back(name) { + var $iter = $ClassMethods_static_call_back$47.$$p, block = $iter || nil, self = this, $writer = nil; - if ($iter) TMP_ClassMethods_static_call_back_47.$$p = null; + if ($iter) $ClassMethods_static_call_back$47.$$p = null; + + if ($iter) $ClassMethods_static_call_back$47.$$p = null;; $writer = [name, block]; $send(self.$static_call_backs(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_ClassMethods_static_call_back_47.$$arity = 1); + }, $ClassMethods_static_call_back$47.$$arity = 1); - Opal.defn(self, '$static_call_backs', TMP_ClassMethods_static_call_backs_48 = function $$static_call_backs() { - var $a, self = this; + Opal.def(self, '$static_call_backs', $ClassMethods_static_call_backs$48 = function $$static_call_backs() { + var self = this, $ret_or_12 = nil; if (self.__hyperstack_component_static_call_backs == null) self.__hyperstack_component_static_call_backs = nil; - return (self.__hyperstack_component_static_call_backs = ($truthy($a = self.__hyperstack_component_static_call_backs) ? $a : $hash2([], {}))) - }, TMP_ClassMethods_static_call_backs_48.$$arity = 0); + return (self.__hyperstack_component_static_call_backs = (function() {if ($truthy(($ret_or_12 = self.__hyperstack_component_static_call_backs))) { + return $ret_or_12 + } else { + return $hash2([], {}) + }; return nil; })()) + }, $ClassMethods_static_call_backs$48.$$arity = 0); - Opal.defn(self, '$export_component', TMP_ClassMethods_export_component_49 = function $$export_component(opts) { - var $a, self = this, export_name = nil, first_name = nil, $writer = nil; + Opal.def(self, '$export_component', $ClassMethods_export_component$49 = function $$export_component(opts) { + var self = this, export_name = nil, $ret_or_13 = nil, first_name = nil, $writer = nil; + + if (opts == null) { opts = $hash2([], {}); - } - - export_name = ($truthy($a = opts['$[]']("as")) ? $a : self.$name()).$split("::"); + }; + export_name = (function() {if ($truthy(($ret_or_13 = opts['$[]']("as")))) { + return $ret_or_13 + } else { + return self.$name() + }; return nil; })().$split("::"); first_name = export_name.$first(); - $writer = [first_name, self.$add_item_to_tree(self.$Native(Opal.global)['$[]'](first_name), $rb_plus([Opal.const_get_relative($nesting, 'ReactWrapper').$create_native_react_class(self)], export_name['$[]']($range(1, -1, false)).$reverse())).$to_n()]; + $writer = [first_name, self.$add_item_to_tree(self.$Native(Opal.global)['$[]'](first_name), $rb_plus([$$($nesting, 'ReactWrapper').$create_native_react_class(self)], export_name['$[]']($range(1, -1, false)).$reverse())).$to_n()]; $send(self.$Native(Opal.global), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_ClassMethods_export_component_49.$$arity = -1); + }, $ClassMethods_export_component$49.$$arity = -1); - Opal.defn(self, '$imports', TMP_ClassMethods_imports_51 = function $$imports(component_name) { - var TMP_50, self = this, e = nil; + Opal.def(self, '$imports', $ClassMethods_imports$50 = function $$imports(component_name) { + var $$51, self = this, e = nil; return (function() { try { try { - Opal.const_get_relative($nesting, 'ReactWrapper').$import_native_component(self, Opal.const_get_relative($nesting, 'ReactWrapper').$eval_native_react_component(component_name)); - return $send(self, 'render', [], (TMP_50 = function(){var self = TMP_50.$$s || this; + $$($nesting, 'ReactWrapper').$import_native_component(self, $$($nesting, 'ReactWrapper').$eval_native_react_component(component_name)); + return $send(self, 'render', [], ($$51 = function(){var self = $$51.$$s == null ? this : $$51.$$s; - return nil}, TMP_50.$$s = self, TMP_50.$$arity = 0, TMP_50)); + return nil}, $$51.$$s = self, $$51.$$arity = 0, $$51)); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { return self.$raise("" + (self) + " cannot import '" + (component_name) + "': " + (e.$message()) + ".") - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } } finally { self }; })() - }, TMP_ClassMethods_imports_51.$$arity = 1); + }, $ClassMethods_imports$50.$$arity = 1); - Opal.defn(self, '$add_item_to_tree', TMP_ClassMethods_add_item_to_tree_53 = function $$add_item_to_tree(current_tree, new_item) { - var $a, TMP_52, self = this, $writer = nil; + Opal.def(self, '$add_item_to_tree', $ClassMethods_add_item_to_tree$52 = function $$add_item_to_tree(current_tree, new_item) { + var $$53, self = this, $ret_or_14 = nil, $writer = nil; - if ($truthy(($truthy($a = self.$Native(current_tree).$class()['$!='](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Object'))) ? $a : new_item.$length()['$=='](1)))) { - return $send(new_item, 'inject', [], (TMP_52 = function(a, e){var self = TMP_52.$$s || this; -if (a == null) a = nil;if (e == null) e = nil; - return $hash(e, a)}, TMP_52.$$s = self, TMP_52.$$arity = 2, TMP_52)) - } else { + if ($truthy((function() {if ($truthy(($ret_or_14 = self.$Native(current_tree).$class()['$!=']($$$($$($nesting, 'Native'), 'Object'))))) { + return $ret_or_14 + } else { + return new_item.$length()['$=='](1) + }; return nil; })())) { + return $send(new_item, 'inject', [], ($$53 = function(a, e){var self = $$53.$$s == null ? this : $$53.$$s; + + + + if (a == null) { + a = nil; + }; + + if (e == null) { + e = nil; + }; + return $hash(e, a);}, $$53.$$s = self, $$53.$$arity = 2, $$53)) + } else { $writer = [new_item.$last(), self.$add_item_to_tree(self.$Native(current_tree)['$[]'](new_item.$last()), new_item['$[]']($range(0, -2, false)))]; @@ -4278,61 +5417,66 @@ if (a == null) a = nil;if (e == null) e = nil; $writer[$rb_minus($writer["length"], 1)];; return current_tree; } - }, TMP_ClassMethods_add_item_to_tree_53.$$arity = 2); - - Opal.defn(self, '$to_n', TMP_ClassMethods_to_n_54 = function $$to_n() { + }, $ClassMethods_add_item_to_tree$52.$$arity = 2); + return (Opal.def(self, '$to_n', $ClassMethods_to_n$54 = function $$to_n() { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$create_native_react_class(self) - }, TMP_ClassMethods_to_n_54.$$arity = 0); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$create_native_react_class(self) + }, $ClassMethods_to_n$54.$$arity = 0), nil) && 'to_n'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/string/filters"] = function(Opal) { +Opal.modules["active_support/core_ext/string/filters"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$>', '$length', '$dup', '$[]', '$-', '$rindex']); return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_truncate_1; + var $nesting = [self].concat($parent_nesting), $String_truncate$1; - return (Opal.defn(self, '$truncate', TMP_String_truncate_1 = function $$truncate(truncate_at, options) { - var $a, self = this, omission = nil, length_with_room_for_omission = nil, stop = nil; + return (Opal.def(self, '$truncate', $String_truncate$1 = function $$truncate(truncate_at, options) { + var self = this, omission = nil, $ret_or_1 = nil, length_with_room_for_omission = nil, stop = nil, $ret_or_2 = nil; + + if (options == null) { options = $hash2([], {}); - } - + }; if ($truthy($rb_gt(self.$length(), truncate_at))) { - } else { + } else { return self.$dup() }; - omission = ($truthy($a = options['$[]']("omission")) ? $a : "..."); + omission = (function() {if ($truthy(($ret_or_1 = options['$[]']("omission")))) { + return $ret_or_1 + } else { + return "..." + }; return nil; })(); length_with_room_for_omission = $rb_minus(truncate_at, omission.$length()); stop = (function() {if ($truthy(options['$[]']("separator"))) { - return ($truthy($a = self.$rindex(options['$[]']("separator"), length_with_room_for_omission)) ? $a : length_with_room_for_omission) + if ($truthy(($ret_or_2 = self.$rindex(options['$[]']("separator"), length_with_room_for_omission)))) { + return $ret_or_2 } else { + return length_with_room_for_omission + } + } else { return length_with_room_for_omission }; return nil; })(); return "" + (self['$[]'](0, stop)) + (omission); - }, TMP_String_truncate_1.$$arity = -2), nil) && 'truncate' + }, $String_truncate$1.$$arity = -2), nil) && 'truncate' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["set"] = function(Opal) { +Opal.modules["set"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } @@ -4342,99 +5486,114 @@ Opal.modules["set"] = function(Opal) { function $rb_le(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $module = Opal.module; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; - Opal.add_stubs(['$include', '$new', '$nil?', '$===', '$raise', '$each', '$add', '$call', '$merge', '$class', '$respond_to?', '$subtract', '$dup', '$join', '$to_a', '$equal?', '$instance_of?', '$==', '$instance_variable_get', '$is_a?', '$size', '$all?', '$include?', '$[]=', '$-', '$enum_for', '$[]', '$<<', '$replace', '$delete', '$select', '$each_key', '$to_proc', '$empty?', '$eql?', '$instance_eval', '$clear', '$<', '$<=', '$keys']); + Opal.add_stubs(['$include', '$new', '$nil?', '$===', '$raise', '$each', '$add', '$merge', '$class', '$respond_to?', '$subtract', '$dup', '$join', '$to_a', '$equal?', '$instance_of?', '$==', '$instance_variable_get', '$is_a?', '$size', '$all?', '$include?', '$[]=', '$-', '$enum_for', '$[]', '$<<', '$replace', '$delete', '$select', '$reject', '$delete_if', '$to_proc', '$keep_if', '$each_key', '$empty?', '$eql?', '$instance_eval', '$clear', '$<', '$<=', '$any?', '$!', '$intersect?', '$keys']); (function($base, $super, $parent_nesting) { - function $Set(){}; - var self = $Set = $klass($base, $super, 'Set', $Set); + var self = $klass($base, $super, 'Set'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Set_$$_1, TMP_Set_initialize_2, TMP_Set_dup_4, TMP_Set_$_5, TMP_Set_inspect_6, TMP_Set_$eq$eq_8, TMP_Set_add_9, TMP_Set_classify_10, TMP_Set_collect$B_13, TMP_Set_delete_15, TMP_Set_delete$q_16, TMP_Set_delete_if_17, TMP_Set_add$q_20, TMP_Set_each_21, TMP_Set_empty$q_22, TMP_Set_eql$q_24, TMP_Set_clear_25, TMP_Set_include$q_26, TMP_Set_merge_28, TMP_Set_replace_29, TMP_Set_size_30, TMP_Set_subtract_32, TMP_Set_$_33, TMP_Set_superset$q_35, TMP_Set_proper_superset$q_37, TMP_Set_subset$q_39, TMP_Set_proper_subset$q_41, TMP_Set_to_a_42; + var $nesting = [self].concat($parent_nesting), $Set_$$$1, $Set_initialize$2, $Set_dup$4, $Set_$minus$5, $Set_inspect$6, $Set_$eq_eq$7, $Set_add$9, $Set_classify$10, $Set_collect$excl$13, $Set_delete$15, $Set_delete$ques$16, $Set_delete_if$17, $Set_keep_if$20, $Set_reject$excl$23, $Set_select$excl$24, $Set_add$ques$25, $Set_each$26, $Set_empty$ques$27, $Set_eql$ques$28, $Set_clear$30, $Set_include$ques$31, $Set_merge$32, $Set_replace$34, $Set_size$35, $Set_subtract$36, $Set_$$38, $Set_superset$ques$39, $Set_proper_superset$ques$41, $Set_subset$ques$43, $Set_proper_subset$ques$45, $Set_intersect$ques$47, $Set_disjoint$ques$50, $Set_to_a$51; - def.hash = nil; + self.$$prototype.hash = nil; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); - Opal.defs(self, '$[]', TMP_Set_$$_1 = function($a_rest) { - var self = this, ary; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - ary = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - ary[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$new(ary) - }, TMP_Set_$$_1.$$arity = -1); + self.$include($$($nesting, 'Enumerable')); + Opal.defs(self, '$[]', $Set_$$$1 = function($a) { + var $post_args, ary, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + ary = $post_args;; + return self.$new(ary); + }, $Set_$$$1.$$arity = -1); - Opal.defn(self, '$initialize', TMP_Set_initialize_2 = function $$initialize(enum$) { - var TMP_3, self = this, $iter = TMP_Set_initialize_2.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Set_initialize$2 = function $$initialize(enum$) { + var $iter = $Set_initialize$2.$$p, block = $iter || nil, $$3, self = this; + if ($iter) $Set_initialize$2.$$p = null; + + + if ($iter) $Set_initialize$2.$$p = null;; + if (enum$ == null) { enum$ = nil; - } - if ($iter) TMP_Set_initialize_2.$$p = null; - - self.hash = Opal.const_get_relative($nesting, 'Hash').$new(); + }; + self.hash = $hash2([], {}); if ($truthy(enum$['$nil?']())) { return nil}; - if ($truthy(Opal.const_get_relative($nesting, 'Enumerable')['$==='](enum$))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be enumerable") + if ($truthy($$($nesting, 'Enumerable')['$==='](enum$))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") }; if ($truthy(block)) { - return $send(enum$, 'each', [], (TMP_3 = function(item){var self = TMP_3.$$s || this; -if (item == null) item = nil; - return self.$add(block.$call(item))}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)) - } else { + return $send(enum$, 'each', [], ($$3 = function(item){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (item == null) { + item = nil; + }; + return self.$add(Opal.yield1(block, item));}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + } else { return self.$merge(enum$) }; - }, TMP_Set_initialize_2.$$arity = -1); + }, $Set_initialize$2.$$arity = -1); - Opal.defn(self, '$dup', TMP_Set_dup_4 = function $$dup() { + Opal.def(self, '$dup', $Set_dup$4 = function $$dup() { var self = this, result = nil; result = self.$class().$new(); return result.$merge(self); - }, TMP_Set_dup_4.$$arity = 0); + }, $Set_dup$4.$$arity = 0); - Opal.defn(self, '$-', TMP_Set_$_5 = function(enum$) { + Opal.def(self, '$-', $Set_$minus$5 = function(enum$) { var self = this; if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be enumerable") + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") }; return self.$dup().$subtract(enum$); - }, TMP_Set_$_5.$$arity = 1); - Opal.alias(self, "difference", "-"); + }, $Set_$minus$5.$$arity = 1); + $alias(self, "difference", "-"); - Opal.defn(self, '$inspect', TMP_Set_inspect_6 = function $$inspect() { + Opal.def(self, '$inspect', $Set_inspect$6 = function $$inspect() { var self = this; return "" + "#" - }, TMP_Set_inspect_6.$$arity = 0); + }, $Set_inspect$6.$$arity = 0); - Opal.defn(self, '$==', TMP_Set_$eq$eq_8 = function(other) { - var $a, TMP_7, self = this; + Opal.def(self, '$==', $Set_$eq_eq$7 = function(other) { + var $$8, self = this, $ret_or_1 = nil; if ($truthy(self['$equal?'](other))) { return true } else if ($truthy(other['$instance_of?'](self.$class()))) { return self.hash['$=='](other.$instance_variable_get("@hash")) - } else if ($truthy(($truthy($a = other['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? self.$size()['$=='](other.$size()) : $a))) { - return $send(other, 'all?', [], (TMP_7 = function(o){var self = TMP_7.$$s || this; + } else if ($truthy((function() {if ($truthy(($ret_or_1 = other['$is_a?']($$($nesting, 'Set'))))) { + return self.$size()['$=='](other.$size()) + } else { + return $ret_or_1 + }; return nil; })())) { + return $send(other, 'all?', [], ($$8 = function(o){var self = $$8.$$s == null ? this : $$8.$$s; if (self.hash == null) self.hash = nil; -if (o == null) o = nil; - return self.hash['$include?'](o)}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)) - } else { + + + + if (o == null) { + o = nil; + }; + return self.hash['$include?'](o);}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + } else { return false } - }, TMP_Set_$eq$eq_8.$$arity = 1); + }, $Set_$eq_eq$7.$$arity = 1); - Opal.defn(self, '$add', TMP_Set_add_9 = function $$add(o) { + Opal.def(self, '$add', $Set_add$9 = function $$add(o) { var self = this, $writer = nil; @@ -4443,405 +5602,602 @@ if (o == null) o = nil; $send(self.hash, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self; - }, TMP_Set_add_9.$$arity = 1); - Opal.alias(self, "<<", "add"); + }, $Set_add$9.$$arity = 1); + $alias(self, "<<", "add"); - Opal.defn(self, '$classify', TMP_Set_classify_10 = function $$classify() { - var TMP_11, TMP_12, self = this, $iter = TMP_Set_classify_10.$$p, block = $iter || nil, result = nil; + Opal.def(self, '$classify', $Set_classify$10 = function $$classify() { + var $iter = $Set_classify$10.$$p, block = $iter || nil, $$11, $$12, self = this, result = nil; - if ($iter) TMP_Set_classify_10.$$p = null; + if ($iter) $Set_classify$10.$$p = null; + + if ($iter) $Set_classify$10.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("classify") }; - result = $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_11 = function(h, k){var self = TMP_11.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - + result = $send($$($nesting, 'Hash'), 'new', [], ($$11 = function(h, k){var self = $$11.$$s == null ? this : $$11.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; $writer = [k, self.$class().$new()]; $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11)); - $send(self, 'each', [], (TMP_12 = function(item){var self = TMP_12.$$s || this; -if (item == null) item = nil; - return result['$[]'](Opal.yield1(block, item)).$add(item)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)); + return $writer[$rb_minus($writer["length"], 1)];}, $$11.$$s = self, $$11.$$arity = 2, $$11)); + $send(self, 'each', [], ($$12 = function(item){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (item == null) { + item = nil; + }; + return result['$[]'](Opal.yield1(block, item)).$add(item);}, $$12.$$s = self, $$12.$$arity = 1, $$12)); return result; - }, TMP_Set_classify_10.$$arity = 0); + }, $Set_classify$10.$$arity = 0); - Opal.defn(self, '$collect!', TMP_Set_collect$B_13 = function() { - var TMP_14, self = this, $iter = TMP_Set_collect$B_13.$$p, block = $iter || nil, result = nil; + Opal.def(self, '$collect!', $Set_collect$excl$13 = function() { + var $iter = $Set_collect$excl$13.$$p, block = $iter || nil, $$14, self = this, result = nil; - if ($iter) TMP_Set_collect$B_13.$$p = null; + if ($iter) $Set_collect$excl$13.$$p = null; + + if ($iter) $Set_collect$excl$13.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("collect!") }; result = self.$class().$new(); - $send(self, 'each', [], (TMP_14 = function(item){var self = TMP_14.$$s || this; -if (item == null) item = nil; - return result['$<<'](Opal.yield1(block, item))}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)); + $send(self, 'each', [], ($$14 = function(item){var self = $$14.$$s == null ? this : $$14.$$s; + + + + if (item == null) { + item = nil; + }; + return result['$<<'](Opal.yield1(block, item));}, $$14.$$s = self, $$14.$$arity = 1, $$14)); return self.$replace(result); - }, TMP_Set_collect$B_13.$$arity = 0); - Opal.alias(self, "map!", "collect!"); + }, $Set_collect$excl$13.$$arity = 0); + $alias(self, "map!", "collect!"); - Opal.defn(self, '$delete', TMP_Set_delete_15 = function(o) { + Opal.def(self, '$delete', $Set_delete$15 = function(o) { var self = this; self.hash.$delete(o); return self; - }, TMP_Set_delete_15.$$arity = 1); + }, $Set_delete$15.$$arity = 1); - Opal.defn(self, '$delete?', TMP_Set_delete$q_16 = function(o) { + Opal.def(self, '$delete?', $Set_delete$ques$16 = function(o) { var self = this; if ($truthy(self['$include?'](o))) { self.$delete(o); return self; - } else { + } else { return nil } - }, TMP_Set_delete$q_16.$$arity = 1); + }, $Set_delete$ques$16.$$arity = 1); - Opal.defn(self, '$delete_if', TMP_Set_delete_if_17 = function $$delete_if() {try { + Opal.def(self, '$delete_if', $Set_delete_if$17 = function $$delete_if() { + var $$18, $$19, $iter = $Set_delete_if$17.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Set_delete_if$17.$$p = null; + + if (($yield !== nil)) { + } else { + return self.$enum_for("delete_if") + }; + $send($send(self, 'select', [], ($$18 = function(o){var self = $$18.$$s == null ? this : $$18.$$s; + + + + if (o == null) { + o = nil; + }; + return Opal.yield1($yield, o);;}, $$18.$$s = self, $$18.$$arity = 1, $$18)), 'each', [], ($$19 = function(o){var self = $$19.$$s == null ? this : $$19.$$s; + if (self.hash == null) self.hash = nil; - var $a, TMP_18, TMP_19, self = this, $iter = TMP_Set_delete_if_17.$$p, $yield = $iter || nil; + + + if (o == null) { + o = nil; + }; + return self.hash.$delete(o);}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + return self; + }, $Set_delete_if$17.$$arity = 0); + + Opal.def(self, '$keep_if', $Set_keep_if$20 = function $$keep_if() { + var $$21, $$22, $iter = $Set_keep_if$20.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Set_delete_if_17.$$p = null; + if ($iter) $Set_keep_if$20.$$p = null; - ($truthy($a = ($yield !== nil)) ? $a : Opal.ret(self.$enum_for("delete_if"))); - $send($send(self, 'select', [], (TMP_18 = function(o){var self = TMP_18.$$s || this; -if (o == null) o = nil; - return Opal.yield1($yield, o);}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)), 'each', [], (TMP_19 = function(o){var self = TMP_19.$$s || this; + if (($yield !== nil)) { + } else { + return self.$enum_for("keep_if") + }; + $send($send(self, 'reject', [], ($$21 = function(o){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (o == null) { + o = nil; + }; + return Opal.yield1($yield, o);;}, $$21.$$s = self, $$21.$$arity = 1, $$21)), 'each', [], ($$22 = function(o){var self = $$22.$$s == null ? this : $$22.$$s; if (self.hash == null) self.hash = nil; -if (o == null) o = nil; - return self.hash.$delete(o)}, TMP_19.$$s = self, TMP_19.$$arity = 1, TMP_19)); + + + + if (o == null) { + o = nil; + }; + return self.hash.$delete(o);}, $$22.$$s = self, $$22.$$arity = 1, $$22)); return self; - } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Set_delete_if_17.$$arity = 0); + }, $Set_keep_if$20.$$arity = 0); + + Opal.def(self, '$reject!', $Set_reject$excl$23 = function() { + var $iter = $Set_reject$excl$23.$$p, block = $iter || nil, self = this, before = nil; + + if ($iter) $Set_reject$excl$23.$$p = null; + + + if ($iter) $Set_reject$excl$23.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("reject!") + }; + before = self.$size(); + $send(self, 'delete_if', [], block.$to_proc()); + if (self.$size()['$=='](before)) { + return nil + } else { + return self + }; + }, $Set_reject$excl$23.$$arity = 0); + + Opal.def(self, '$select!', $Set_select$excl$24 = function() { + var $iter = $Set_select$excl$24.$$p, block = $iter || nil, self = this, before = nil; + + if ($iter) $Set_select$excl$24.$$p = null; + + + if ($iter) $Set_select$excl$24.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("select!") + }; + before = self.$size(); + $send(self, 'keep_if', [], block.$to_proc()); + if (self.$size()['$=='](before)) { + return nil + } else { + return self + }; + }, $Set_select$excl$24.$$arity = 0); + $alias(self, "filter!", "select!"); - Opal.defn(self, '$add?', TMP_Set_add$q_20 = function(o) { + Opal.def(self, '$add?', $Set_add$ques$25 = function(o) { var self = this; if ($truthy(self['$include?'](o))) { return nil - } else { + } else { return self.$add(o) } - }, TMP_Set_add$q_20.$$arity = 1); + }, $Set_add$ques$25.$$arity = 1); - Opal.defn(self, '$each', TMP_Set_each_21 = function $$each() { - var self = this, $iter = TMP_Set_each_21.$$p, block = $iter || nil; + Opal.def(self, '$each', $Set_each$26 = function $$each() { + var $iter = $Set_each$26.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Set_each_21.$$p = null; + if ($iter) $Set_each$26.$$p = null; + + if ($iter) $Set_each$26.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("each") }; $send(self.hash, 'each_key', [], block.$to_proc()); return self; - }, TMP_Set_each_21.$$arity = 0); + }, $Set_each$26.$$arity = 0); - Opal.defn(self, '$empty?', TMP_Set_empty$q_22 = function() { + Opal.def(self, '$empty?', $Set_empty$ques$27 = function() { var self = this; return self.hash['$empty?']() - }, TMP_Set_empty$q_22.$$arity = 0); + }, $Set_empty$ques$27.$$arity = 0); - Opal.defn(self, '$eql?', TMP_Set_eql$q_24 = function(other) { - var TMP_23, self = this; + Opal.def(self, '$eql?', $Set_eql$ques$28 = function(other) { + var $$29, self = this; - return self.hash['$eql?']($send(other, 'instance_eval', [], (TMP_23 = function(){var self = TMP_23.$$s || this; + return self.hash['$eql?']($send(other, 'instance_eval', [], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; if (self.hash == null) self.hash = nil; - return self.hash}, TMP_23.$$s = self, TMP_23.$$arity = 0, TMP_23))) - }, TMP_Set_eql$q_24.$$arity = 1); + return self.hash}, $$29.$$s = self, $$29.$$arity = 0, $$29))) + }, $Set_eql$ques$28.$$arity = 1); - Opal.defn(self, '$clear', TMP_Set_clear_25 = function $$clear() { + Opal.def(self, '$clear', $Set_clear$30 = function $$clear() { var self = this; self.hash.$clear(); return self; - }, TMP_Set_clear_25.$$arity = 0); + }, $Set_clear$30.$$arity = 0); - Opal.defn(self, '$include?', TMP_Set_include$q_26 = function(o) { + Opal.def(self, '$include?', $Set_include$ques$31 = function(o) { var self = this; return self.hash['$include?'](o) - }, TMP_Set_include$q_26.$$arity = 1); - Opal.alias(self, "member?", "include?"); + }, $Set_include$ques$31.$$arity = 1); + $alias(self, "member?", "include?"); - Opal.defn(self, '$merge', TMP_Set_merge_28 = function $$merge(enum$) { - var TMP_27, self = this; + Opal.def(self, '$merge', $Set_merge$32 = function $$merge(enum$) { + var $$33, self = this; - $send(enum$, 'each', [], (TMP_27 = function(item){var self = TMP_27.$$s || this; -if (item == null) item = nil; - return self.$add(item)}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)); + $send(enum$, 'each', [], ($$33 = function(item){var self = $$33.$$s == null ? this : $$33.$$s; + + + + if (item == null) { + item = nil; + }; + return self.$add(item);}, $$33.$$s = self, $$33.$$arity = 1, $$33)); return self; - }, TMP_Set_merge_28.$$arity = 1); + }, $Set_merge$32.$$arity = 1); - Opal.defn(self, '$replace', TMP_Set_replace_29 = function $$replace(enum$) { + Opal.def(self, '$replace', $Set_replace$34 = function $$replace(enum$) { var self = this; self.$clear(); self.$merge(enum$); return self; - }, TMP_Set_replace_29.$$arity = 1); + }, $Set_replace$34.$$arity = 1); - Opal.defn(self, '$size', TMP_Set_size_30 = function $$size() { + Opal.def(self, '$size', $Set_size$35 = function $$size() { var self = this; return self.hash.$size() - }, TMP_Set_size_30.$$arity = 0); - Opal.alias(self, "length", "size"); + }, $Set_size$35.$$arity = 0); + $alias(self, "length", "size"); - Opal.defn(self, '$subtract', TMP_Set_subtract_32 = function $$subtract(enum$) { - var TMP_31, self = this; + Opal.def(self, '$subtract', $Set_subtract$36 = function $$subtract(enum$) { + var $$37, self = this; - $send(enum$, 'each', [], (TMP_31 = function(item){var self = TMP_31.$$s || this; -if (item == null) item = nil; - return self.$delete(item)}, TMP_31.$$s = self, TMP_31.$$arity = 1, TMP_31)); + $send(enum$, 'each', [], ($$37 = function(item){var self = $$37.$$s == null ? this : $$37.$$s; + + + + if (item == null) { + item = nil; + }; + return self.$delete(item);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); return self; - }, TMP_Set_subtract_32.$$arity = 1); + }, $Set_subtract$36.$$arity = 1); - Opal.defn(self, '$|', TMP_Set_$_33 = function(enum$) { + Opal.def(self, '$|', $Set_$$38 = function(enum$) { var self = this; if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be enumerable") + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") }; return self.$dup().$merge(enum$); - }, TMP_Set_$_33.$$arity = 1); + }, $Set_$$38.$$arity = 1); - Opal.defn(self, '$superset?', TMP_Set_superset$q_35 = function(set) { - var $a, TMP_34, self = this; + Opal.def(self, '$superset?', $Set_superset$ques$39 = function(set) { + var $$40, self = this, $ret_or_2 = nil; - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); + if ($truthy(($ret_or_2 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_2 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; if ($truthy($rb_lt(self.$size(), set.$size()))) { return false}; - return $send(set, 'all?', [], (TMP_34 = function(o){var self = TMP_34.$$s || this; -if (o == null) o = nil; - return self['$include?'](o)}, TMP_34.$$s = self, TMP_34.$$arity = 1, TMP_34)); - }, TMP_Set_superset$q_35.$$arity = 1); - Opal.alias(self, ">=", "superset?"); + return $send(set, 'all?', [], ($$40 = function(o){var self = $$40.$$s == null ? this : $$40.$$s; + + + + if (o == null) { + o = nil; + }; + return self['$include?'](o);}, $$40.$$s = self, $$40.$$arity = 1, $$40)); + }, $Set_superset$ques$39.$$arity = 1); + $alias(self, ">=", "superset?"); - Opal.defn(self, '$proper_superset?', TMP_Set_proper_superset$q_37 = function(set) { - var $a, TMP_36, self = this; + Opal.def(self, '$proper_superset?', $Set_proper_superset$ques$41 = function(set) { + var $$42, self = this, $ret_or_3 = nil; - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); + if ($truthy(($ret_or_3 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_3 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; if ($truthy($rb_le(self.$size(), set.$size()))) { return false}; - return $send(set, 'all?', [], (TMP_36 = function(o){var self = TMP_36.$$s || this; -if (o == null) o = nil; - return self['$include?'](o)}, TMP_36.$$s = self, TMP_36.$$arity = 1, TMP_36)); - }, TMP_Set_proper_superset$q_37.$$arity = 1); - Opal.alias(self, ">", "proper_superset?"); + return $send(set, 'all?', [], ($$42 = function(o){var self = $$42.$$s == null ? this : $$42.$$s; + + + + if (o == null) { + o = nil; + }; + return self['$include?'](o);}, $$42.$$s = self, $$42.$$arity = 1, $$42)); + }, $Set_proper_superset$ques$41.$$arity = 1); + $alias(self, ">", "proper_superset?"); - Opal.defn(self, '$subset?', TMP_Set_subset$q_39 = function(set) { - var $a, TMP_38, self = this; + Opal.def(self, '$subset?', $Set_subset$ques$43 = function(set) { + var $$44, self = this, $ret_or_4 = nil; - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); + if ($truthy(($ret_or_4 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_4 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; if ($truthy($rb_lt(set.$size(), self.$size()))) { return false}; - return $send(self, 'all?', [], (TMP_38 = function(o){var self = TMP_38.$$s || this; -if (o == null) o = nil; - return set['$include?'](o)}, TMP_38.$$s = self, TMP_38.$$arity = 1, TMP_38)); - }, TMP_Set_subset$q_39.$$arity = 1); - Opal.alias(self, "<=", "subset?"); + return $send(self, 'all?', [], ($$44 = function(o){var self = $$44.$$s == null ? this : $$44.$$s; + + + + if (o == null) { + o = nil; + }; + return set['$include?'](o);}, $$44.$$s = self, $$44.$$arity = 1, $$44)); + }, $Set_subset$ques$43.$$arity = 1); + $alias(self, "<=", "subset?"); - Opal.defn(self, '$proper_subset?', TMP_Set_proper_subset$q_41 = function(set) { - var $a, TMP_40, self = this; + Opal.def(self, '$proper_subset?', $Set_proper_subset$ques$45 = function(set) { + var $$46, self = this, $ret_or_5 = nil; - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); + if ($truthy(($ret_or_5 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_5 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; if ($truthy($rb_le(set.$size(), self.$size()))) { return false}; - return $send(self, 'all?', [], (TMP_40 = function(o){var self = TMP_40.$$s || this; -if (o == null) o = nil; - return set['$include?'](o)}, TMP_40.$$s = self, TMP_40.$$arity = 1, TMP_40)); - }, TMP_Set_proper_subset$q_41.$$arity = 1); - Opal.alias(self, "<", "proper_subset?"); - Opal.alias(self, "+", "|"); - Opal.alias(self, "union", "|"); - return (Opal.defn(self, '$to_a', TMP_Set_to_a_42 = function $$to_a() { + return $send(self, 'all?', [], ($$46 = function(o){var self = $$46.$$s == null ? this : $$46.$$s; + + + + if (o == null) { + o = nil; + }; + return set['$include?'](o);}, $$46.$$s = self, $$46.$$arity = 1, $$46)); + }, $Set_proper_subset$ques$45.$$arity = 1); + $alias(self, "<", "proper_subset?"); + + Opal.def(self, '$intersect?', $Set_intersect$ques$47 = function(set) { + var $$48, $$49, self = this; + + + if ($truthy(set['$is_a?']($$($nesting, 'Set')))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; + if ($truthy($rb_lt(self.$size(), set.$size()))) { + return $send(self, 'any?', [], ($$48 = function(o){var self = $$48.$$s == null ? this : $$48.$$s; + + + + if (o == null) { + o = nil; + }; + return set['$include?'](o);}, $$48.$$s = self, $$48.$$arity = 1, $$48)) + } else { + return $send(set, 'any?', [], ($$49 = function(o){var self = $$49.$$s == null ? this : $$49.$$s; + + + + if (o == null) { + o = nil; + }; + return self['$include?'](o);}, $$49.$$s = self, $$49.$$arity = 1, $$49)) + }; + }, $Set_intersect$ques$47.$$arity = 1); + + Opal.def(self, '$disjoint?', $Set_disjoint$ques$50 = function(set) { + var self = this; + + return self['$intersect?'](set)['$!']() + }, $Set_disjoint$ques$50.$$arity = 1); + $alias(self, "+", "|"); + $alias(self, "union", "|"); + return (Opal.def(self, '$to_a', $Set_to_a$51 = function $$to_a() { var self = this; return self.hash.$keys() - }, TMP_Set_to_a_42.$$arity = 0), nil) && 'to_a'; + }, $Set_to_a$51.$$arity = 0), nil) && 'to_a'; })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { - var $Enumerable, self = $Enumerable = $module($base, 'Enumerable'); + var self = $module($base, 'Enumerable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerable_to_set_43; + var $nesting = [self].concat($parent_nesting), $Enumerable_to_set$52; - - Opal.defn(self, '$to_set', TMP_Enumerable_to_set_43 = function $$to_set(klass, $a_rest) { - var self = this, args, $iter = TMP_Enumerable_to_set_43.$$p, block = $iter || nil; + return (Opal.def(self, '$to_set', $Enumerable_to_set$52 = function $$to_set($a, $b) { + var $iter = $Enumerable_to_set$52.$$p, block = $iter || nil, $post_args, klass, args, self = this; - if (klass == null) { - klass = Opal.const_get_relative($nesting, 'Set'); - } - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; + if ($iter) $Enumerable_to_set$52.$$p = null; + + + if ($iter) $Enumerable_to_set$52.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + if ($post_args.length > 0) { + klass = $post_args[0]; + $post_args.splice(0, 1); } - if ($iter) TMP_Enumerable_to_set_43.$$p = null; - return $send(klass, 'new', [self].concat(Opal.to_a(args)), block.$to_proc()) - }, TMP_Enumerable_to_set_43.$$arity = -1) + if (klass == null) { + klass = $$($nesting, 'Set'); + }; + + args = $post_args;; + return $send(klass, 'new', [self].concat(Opal.to_a(args)), block.$to_proc()); + }, $Enumerable_to_set$52.$$arity = -1), nil) && 'to_set' })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/inflector/inflections"] = function(Opal) { +Opal.modules["active_support/inflector/inflections"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; Opal.add_stubs(['$require', '$extend', '$add', '$map', '$flatten', '$to_proc', '$concat', '$include?', '$downcase', '$new', '$[]', '$[]=', '$-', '$attr_reader', '$each', '$instance_variable_set', '$dup', '$send', '$is_a?', '$delete', '$unshift', '$==', '$upcase', '$plural', '$+', '$singular', '$===', '$instance']); self.$require("set"); return (function($base, $parent_nesting) { - var $ActiveSupport, self = $ActiveSupport = $module($base, 'ActiveSupport'); + var self = $module($base, 'ActiveSupport'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Inflector, self = $Inflector = $module($base, 'Inflector'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Inflector'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Inflector_inflections_15; + var $nesting = [self].concat($parent_nesting), $Inflector_inflections$15; self.$extend(self); (function($base, $super, $parent_nesting) { - function $Inflections(){}; - var self = $Inflections = $klass($base, $super, 'Inflections', $Inflections); + var self = $klass($base, $super, 'Inflections'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Inflections_instance_5, TMP_Inflections_initialize_6, TMP_Inflections_initialize_dup_8, TMP_Inflections_plural_9, TMP_Inflections_singular_10, TMP_Inflections_uncountable_11, TMP_Inflections_human_12, TMP_Inflections_irregular_13, TMP_Inflections_clear_14; + var $nesting = [self].concat($parent_nesting), $Inflections_instance$5, $Inflections_initialize$6, $Inflections_initialize_dup$7, $Inflections_plural$9, $Inflections_singular$10, $Inflections_uncountable$11, $Inflections_human$12, $Inflections_irregular$13, $Inflections_clear$14; - def.uncountables = def.plurals = def.singulars = def.humans = nil; + self.$$prototype.uncountables = self.$$prototype.plurals = self.$$prototype.singulars = self.$$prototype.humans = nil; self.__instance__ = $hash2([], {}); (function($base, $super, $parent_nesting) { - function $Uncountables(){}; - var self = $Uncountables = $klass($base, $super, 'Uncountables', $Uncountables); + var self = $klass($base, $super, 'Uncountables'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Uncountables_$lt$lt_1, TMP_Uncountables_add_2, TMP_Uncountables_uncountable$q_3, TMP_Uncountables_dup_4; + var $nesting = [self].concat($parent_nesting), $Uncountables_$lt$lt$1, $Uncountables_add$2, $Uncountables_uncountable$ques$3, $Uncountables_dup$4; - Opal.defn(self, '$<<', TMP_Uncountables_$lt$lt_1 = function($a_rest) { - var self = this, word; + Opal.def(self, '$<<', $Uncountables_$lt$lt$1 = function($a) { + var $post_args, word, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - word = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - word[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$add(word) - }, TMP_Uncountables_$lt$lt_1.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + word = $post_args;; + return self.$add(word); + }, $Uncountables_$lt$lt$1.$$arity = -1); - Opal.defn(self, '$add', TMP_Uncountables_add_2 = function $$add(words) { + Opal.def(self, '$add', $Uncountables_add$2 = function $$add(words) { var self = this; words = $send(words.$flatten(), 'map', [], "downcase".$to_proc()); self.$concat(words); return self; - }, TMP_Uncountables_add_2.$$arity = 1); + }, $Uncountables_add$2.$$arity = 1); - Opal.defn(self, '$uncountable?', TMP_Uncountables_uncountable$q_3 = function(str) { + Opal.def(self, '$uncountable?', $Uncountables_uncountable$ques$3 = function(str) { var self = this; return self['$include?'](str.$downcase()) - }, TMP_Uncountables_uncountable$q_3.$$arity = 1); - return (Opal.defn(self, '$dup', TMP_Uncountables_dup_4 = function $$dup() { + }, $Uncountables_uncountable$ques$3.$$arity = 1); + return (Opal.def(self, '$dup', $Uncountables_dup$4 = function $$dup() { var self = this, copy = nil; - copy = Opal.const_get_relative($nesting, 'Uncountables').$new(); + copy = $$($nesting, 'Uncountables').$new(); copy.$add(self); return copy; - }, TMP_Uncountables_dup_4.$$arity = 0), nil) && 'dup'; - })($nesting[0], Opal.const_get_relative($nesting, 'Array'), $nesting); - Opal.defs(self, '$instance', TMP_Inflections_instance_5 = function $$instance(locale) { - var $a, self = this, $writer = nil; + }, $Uncountables_dup$4.$$arity = 0), nil) && 'dup'; + })($nesting[0], $$($nesting, 'Array'), $nesting); + Opal.defs(self, '$instance', $Inflections_instance$5 = function $$instance(locale) { + var self = this, $ret_or_1 = nil, $writer = nil; if (self.__instance__ == null) self.__instance__ = nil; - return ($truthy($a = self.__instance__['$[]'](locale)) ? $a : (($writer = [locale, self.$new()]), $send(self.__instance__, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) - }, TMP_Inflections_instance_5.$$arity = 1); + if ($truthy(($ret_or_1 = self.__instance__['$[]'](locale)))) { + return $ret_or_1 + } else { + + $writer = [locale, self.$new()]; + $send(self.__instance__, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } + }, $Inflections_instance$5.$$arity = 1); self.$attr_reader("plurals", "singulars", "uncountables", "humans"); - Opal.defn(self, '$initialize', TMP_Inflections_initialize_6 = function $$initialize() { + Opal.def(self, '$initialize', $Inflections_initialize$6 = function $$initialize() { var $a, self = this; - return $a = [[], [], Opal.const_get_relative($nesting, 'Uncountables').$new(), []], (self.plurals = $a[0]), (self.singulars = $a[1]), (self.uncountables = $a[2]), (self.humans = $a[3]), $a - }, TMP_Inflections_initialize_6.$$arity = 0); + return $a = [[], [], $$($nesting, 'Uncountables').$new(), []], (self.plurals = $a[0]), (self.singulars = $a[1]), (self.uncountables = $a[2]), (self.humans = $a[3]), $a + }, $Inflections_initialize$6.$$arity = 0); - Opal.defn(self, '$initialize_dup', TMP_Inflections_initialize_dup_8 = function $$initialize_dup(orig) { - var TMP_7, self = this; + Opal.def(self, '$initialize_dup', $Inflections_initialize_dup$7 = function $$initialize_dup(orig) { + var $$8, self = this; + + return $send(["plurals", "singulars", "uncountables", "humans"], 'each', [], ($$8 = function(scope){var self = $$8.$$s == null ? this : $$8.$$s; - return $send(["plurals", "singulars", "uncountables", "humans"], 'each', [], (TMP_7 = function(scope){var self = TMP_7.$$s || this; -if (scope == null) scope = nil; - return self.$instance_variable_set("" + "@" + (scope), orig.$send(scope).$dup())}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)) - }, TMP_Inflections_initialize_dup_8.$$arity = 1); + + + if (scope == null) { + scope = nil; + }; + return self.$instance_variable_set("" + "@" + (scope), orig.$send(scope).$dup());}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + }, $Inflections_initialize_dup$7.$$arity = 1); - Opal.defn(self, '$plural', TMP_Inflections_plural_9 = function $$plural(rule, replacement) { + Opal.def(self, '$plural', $Inflections_plural$9 = function $$plural(rule, replacement) { var self = this; - if ($truthy(rule['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + if ($truthy(rule['$is_a?']($$($nesting, 'String')))) { self.uncountables.$delete(rule)}; self.uncountables.$delete(replacement); return self.plurals.$unshift([rule, replacement]); - }, TMP_Inflections_plural_9.$$arity = 2); + }, $Inflections_plural$9.$$arity = 2); - Opal.defn(self, '$singular', TMP_Inflections_singular_10 = function $$singular(rule, replacement) { + Opal.def(self, '$singular', $Inflections_singular$10 = function $$singular(rule, replacement) { var self = this; - if ($truthy(rule['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + if ($truthy(rule['$is_a?']($$($nesting, 'String')))) { self.uncountables.$delete(rule)}; self.uncountables.$delete(replacement); return self.singulars.$unshift([rule, replacement]); - }, TMP_Inflections_singular_10.$$arity = 2); + }, $Inflections_singular$10.$$arity = 2); - Opal.defn(self, '$uncountable', TMP_Inflections_uncountable_11 = function $$uncountable($a_rest) { - var self = this, words; + Opal.def(self, '$uncountable', $Inflections_uncountable$11 = function $$uncountable($a) { + var $post_args, words, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - words = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - words[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.uncountables.$add(words) - }, TMP_Inflections_uncountable_11.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + words = $post_args;; + return self.uncountables.$add(words); + }, $Inflections_uncountable$11.$$arity = -1); - Opal.defn(self, '$human', TMP_Inflections_human_12 = function $$human(rule, replacement) { + Opal.def(self, '$human', $Inflections_human$12 = function $$human(rule, replacement) { var self = this; return self.humans.$unshift([rule, replacement]) - }, TMP_Inflections_human_12.$$arity = 2); + }, $Inflections_human$12.$$arity = 2); - Opal.defn(self, '$irregular', TMP_Inflections_irregular_13 = function $$irregular(singular, plural) { + Opal.def(self, '$irregular', $Inflections_irregular$13 = function $$irregular(singular, plural) { var self = this, s0 = nil, srest = nil, p0 = nil, prest = nil; @@ -4853,66 +6209,72 @@ if (scope == null) scope = nil; prest = plural['$[]']($range(1, -1, false)); if (s0.$upcase()['$=='](p0.$upcase())) { - self.$plural(new RegExp("" + "(" + (s0) + ")" + (srest) + "$", 'i'), $rb_plus("\\1", prest)); - self.$plural(new RegExp("" + "(" + (p0) + ")" + (prest) + "$", 'i'), $rb_plus("\\1", prest)); - self.$singular(new RegExp("" + "(" + (s0) + ")" + (srest) + "$", 'i'), $rb_plus("\\1", srest)); - return self.$singular(new RegExp("" + "(" + (p0) + ")" + (prest) + "$", 'i'), $rb_plus("\\1", srest)); - } else { + self.$plural(Opal.regexp(["(", s0, ")", srest, "$"], 'i'), $rb_plus("\\1", prest)); + self.$plural(Opal.regexp(["(", p0, ")", prest, "$"], 'i'), $rb_plus("\\1", prest)); + self.$singular(Opal.regexp(["(", s0, ")", srest, "$"], 'i'), $rb_plus("\\1", srest)); + return self.$singular(Opal.regexp(["(", p0, ")", prest, "$"], 'i'), $rb_plus("\\1", srest)); + } else { - self.$plural(new RegExp("" + (s0.$upcase()) + (srest) + "$", 'i'), $rb_plus(p0.$upcase(), prest)); - self.$plural(new RegExp("" + (s0.$downcase()) + (srest) + "$", 'i'), $rb_plus(p0.$downcase(), prest)); - self.$plural(new RegExp("" + (p0.$upcase()) + (prest) + "$", 'i'), $rb_plus(p0.$upcase(), prest)); - self.$plural(new RegExp("" + (p0.$downcase()) + (prest) + "$", 'i'), $rb_plus(p0.$downcase(), prest)); - self.$singular(new RegExp("" + (s0.$upcase()) + (srest) + "$", 'i'), $rb_plus(s0.$upcase(), srest)); - self.$singular(new RegExp("" + (s0.$downcase()) + (srest) + "$", 'i'), $rb_plus(s0.$downcase(), srest)); - self.$singular(new RegExp("" + (p0.$upcase()) + (prest) + "$", 'i'), $rb_plus(s0.$upcase(), srest)); - return self.$singular(new RegExp("" + (p0.$downcase()) + (prest) + "$", 'i'), $rb_plus(s0.$downcase(), srest)); + self.$plural(Opal.regexp([s0.$upcase(), srest, "$"], 'i'), $rb_plus(p0.$upcase(), prest)); + self.$plural(Opal.regexp([s0.$downcase(), srest, "$"], 'i'), $rb_plus(p0.$downcase(), prest)); + self.$plural(Opal.regexp([p0.$upcase(), prest, "$"], 'i'), $rb_plus(p0.$upcase(), prest)); + self.$plural(Opal.regexp([p0.$downcase(), prest, "$"], 'i'), $rb_plus(p0.$downcase(), prest)); + self.$singular(Opal.regexp([s0.$upcase(), srest, "$"], 'i'), $rb_plus(s0.$upcase(), srest)); + self.$singular(Opal.regexp([s0.$downcase(), srest, "$"], 'i'), $rb_plus(s0.$downcase(), srest)); + self.$singular(Opal.regexp([p0.$upcase(), prest, "$"], 'i'), $rb_plus(s0.$upcase(), srest)); + return self.$singular(Opal.regexp([p0.$downcase(), prest, "$"], 'i'), $rb_plus(s0.$downcase(), srest)); }; - }, TMP_Inflections_irregular_13.$$arity = 2); - return (Opal.defn(self, '$clear', TMP_Inflections_clear_14 = function $$clear(scope) { + }, $Inflections_irregular$13.$$arity = 2); + return (Opal.def(self, '$clear', $Inflections_clear$14 = function $$clear(scope) { var $a, self = this, $case = nil; + + if (scope == null) { scope = "all"; - } + }; return (function() {$case = scope; - if ("all"['$===']($case)) {return $a = [[], [], Opal.const_get_relative($nesting, 'Uncountables').$new(), []], (self.plurals = $a[0]), (self.singulars = $a[1]), (self.uncountables = $a[2]), (self.humans = $a[3]), $a} - else {return self.$instance_variable_set("" + "@" + (scope), [])}})() - }, TMP_Inflections_clear_14.$$arity = -1), nil) && 'clear'; + if ("all"['$===']($case)) {return $a = [[], [], $$($nesting, 'Uncountables').$new(), []], (self.plurals = $a[0]), (self.singulars = $a[1]), (self.uncountables = $a[2]), (self.humans = $a[3]), $a} + else {return self.$instance_variable_set("" + "@" + (scope), [])}})(); + }, $Inflections_clear$14.$$arity = -1), nil) && 'clear'; })($nesting[0], null, $nesting); - - Opal.defn(self, '$inflections', TMP_Inflector_inflections_15 = function $$inflections(locale) { - var self = this, $iter = TMP_Inflector_inflections_15.$$p, $yield = $iter || nil; + return (Opal.def(self, '$inflections', $Inflector_inflections$15 = function $$inflections(locale) { + var $iter = $Inflector_inflections$15.$$p, $yield = $iter || nil, self = this; + if ($iter) $Inflector_inflections$15.$$p = null; + + if (locale == null) { locale = "en"; - } - if ($iter) TMP_Inflector_inflections_15.$$p = null; + }; if (($yield !== nil)) { - return Opal.yield1($yield, Opal.const_get_relative($nesting, 'Inflections').$instance(locale)); - } else { - return Opal.const_get_relative($nesting, 'Inflections').$instance(locale) - } - }, TMP_Inflector_inflections_15.$$arity = -1); + return Opal.yield1($yield, $$($nesting, 'Inflections').$instance(locale)); + } else { + return $$($nesting, 'Inflections').$instance(locale) + }; + }, $Inflector_inflections$15.$$arity = -1), nil) && 'inflections'; })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/inflections"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send; +Opal.modules["active_support/inflections"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send; Opal.add_stubs(['$require', '$inflections', '$plural', '$singular', '$irregular', '$uncountable']); self.$require("active_support/inflector/inflections"); return (function($base, $parent_nesting) { - var $ActiveSupport, self = $ActiveSupport = $module($base, 'ActiveSupport'); + var self = $module($base, 'ActiveSupport'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ActiveSupport_1; + var $nesting = [self].concat($parent_nesting), $ActiveSupport$1; - $send(Opal.const_get_relative($nesting, 'Inflector'), 'inflections', ["en"], (TMP_ActiveSupport_1 = function(inflect){var self = TMP_ActiveSupport_1.$$s || this; -if (inflect == null) inflect = nil; - + return $send($$($nesting, 'Inflector'), 'inflections', ["en"], ($ActiveSupport$1 = function(inflect){var self = $ActiveSupport$1.$$s == null ? this : $ActiveSupport$1.$$s; + + + + if (inflect == null) { + inflect = nil; + }; inflect.$plural(/$/, "s"); inflect.$plural(/s$/i, "s"); inflect.$plural(/^(ax|test)is$/i, "\\1es"); @@ -4967,82 +6329,91 @@ if (inflect == null) inflect = nil; inflect.$irregular("sex", "sexes"); inflect.$irregular("move", "moves"); inflect.$irregular("zombie", "zombies"); - return inflect.$uncountable(["equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "jeans", "police"]);}, TMP_ActiveSupport_1.$$s = self, TMP_ActiveSupport_1.$$arity = 1, TMP_ActiveSupport_1)) + return inflect.$uncountable(["equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "jeans", "police"]);}, $ActiveSupport$1.$$s = self, $ActiveSupport$1.$$arity = 1, $ActiveSupport$1)) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/inflector/methods"] = function(Opal) { +Opal.modules["active_support/inflector/methods"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars, $hash2 = Opal.hash2, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars, $hash2 = Opal.hash2, $range = Opal.range; Opal.add_stubs(['$require', '$extend', '$apply_inflections', '$plurals', '$inflections', '$singulars', '$to_s', '$sub', '$capitalize', '$downcase', '$gsub', '$freeze', '$match?', '$tr', '$dup', '$each', '$humans', '$is_a?', '$=~', '$==', '$upcase', '$>', '$length', '$+', '$[]', '$humanize', '$underscore', '$pluralize', '$camelize', '$singularize', '$rindex', '$demodulize', '$split', '$empty?', '$raise', '$size', '$first', '$shift', '$inject', '$const_get', '$const_defined?', '$ancestors', '$constantize', '$name', '$!', '$include?', '$const_regexp', '$message', '$abs', '$to_i', '$%', '$===', '$ordinal', '$private', '$blank?', '$escape', '$pop', '$reverse', '$uncountable?', '$uncountables']); self.$require("active_support/inflections"); return (function($base, $parent_nesting) { - var $ActiveSupport, self = $ActiveSupport = $module($base, 'ActiveSupport'); + var self = $module($base, 'ActiveSupport'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Inflector, self = $Inflector = $module($base, 'Inflector'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Inflector'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Inflector_pluralize_1, TMP_Inflector_singularize_2, TMP_Inflector_camelize_5, TMP_Inflector_underscore_6, TMP_Inflector_humanize_10, TMP_Inflector_upcase_first_11, TMP_Inflector_titleize_13, TMP_Inflector_tableize_14, TMP_Inflector_classify_15, TMP_Inflector_dasherize_16, TMP_Inflector_demodulize_17, TMP_Inflector_deconstantize_18, TMP_Inflector_foreign_key_19, TMP_Inflector_constantize_22, TMP_Inflector_safe_constantize_23, TMP_Inflector_ordinal_24, TMP_Inflector_ordinalize_25, TMP_Inflector_const_regexp_27, TMP_Inflector_apply_inflections_29; + var $nesting = [self].concat($parent_nesting), $Inflector_pluralize$1, $Inflector_singularize$2, $Inflector_camelize$3, $Inflector_underscore$6, $Inflector_humanize$7, $Inflector_upcase_first$11, $Inflector_titleize$12, $Inflector_tableize$14, $Inflector_classify$15, $Inflector_dasherize$16, $Inflector_demodulize$17, $Inflector_deconstantize$18, $Inflector_foreign_key$19, $Inflector_constantize$20, $Inflector_safe_constantize$23, $Inflector_ordinal$24, $Inflector_ordinalize$25, $Inflector_const_regexp$26, $Inflector_apply_inflections$28; self.$extend(self); - Opal.defn(self, '$pluralize', TMP_Inflector_pluralize_1 = function $$pluralize(word, locale) { + Opal.def(self, '$pluralize', $Inflector_pluralize$1 = function $$pluralize(word, locale) { var self = this; + + if (locale == null) { locale = "en"; - } - return self.$apply_inflections(word, self.$inflections(locale).$plurals(), locale) - }, TMP_Inflector_pluralize_1.$$arity = -2); + }; + return self.$apply_inflections(word, self.$inflections(locale).$plurals(), locale); + }, $Inflector_pluralize$1.$$arity = -2); - Opal.defn(self, '$singularize', TMP_Inflector_singularize_2 = function $$singularize(word, locale) { + Opal.def(self, '$singularize', $Inflector_singularize$2 = function $$singularize(word, locale) { var self = this; + + if (locale == null) { locale = "en"; - } - return self.$apply_inflections(word, self.$inflections(locale).$singulars(), locale) - }, TMP_Inflector_singularize_2.$$arity = -2); + }; + return self.$apply_inflections(word, self.$inflections(locale).$singulars(), locale); + }, $Inflector_singularize$2.$$arity = -2); - Opal.defn(self, '$camelize', TMP_Inflector_camelize_5 = function $$camelize(term, uppercase_first_letter) { - var TMP_3, TMP_4, self = this, string = nil; + Opal.def(self, '$camelize', $Inflector_camelize$3 = function $$camelize(term, uppercase_first_letter) { + var $$4, $$5, self = this, string = nil; + + if (uppercase_first_letter == null) { uppercase_first_letter = true; - } - + }; string = term.$to_s(); if ($truthy(uppercase_first_letter)) { - string = $send(string, 'sub', [/^[a-z\d]*/], (TMP_3 = function(match){var self = TMP_3.$$s || this; -if (match == null) match = nil; - return match.$capitalize()}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)) - } else { + string = $send(string, 'sub', [/^[a-z\d]*/], ($$4 = function(match){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (match == null) { + match = nil; + }; + return match.$capitalize();}, $$4.$$s = self, $$4.$$arity = 1, $$4)) + } else { string = string.$downcase() }; - string = $send(string, 'gsub', [/(?:_|(\/))([a-z\d]*)/i], (TMP_4 = function(){var self = TMP_4.$$s || this, $a; + string = $send(string, 'gsub', [/(?:_|(\/))([a-z\d]*)/i], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s, $a; - return "" + ((($a = $gvars['~']) === nil ? nil : $a['$[]'](1))) + ((($a = $gvars['~']) === nil ? nil : $a['$[]'](2)).$capitalize())}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)); + return "" + ((($a = $gvars['~']) === nil ? nil : $a['$[]'](1))) + ((($a = $gvars['~']) === nil ? nil : $a['$[]'](2)).$capitalize())}, $$5.$$s = self, $$5.$$arity = 0, $$5)); string = string.$gsub("/".$freeze(), "::".$freeze()); return string; - }, TMP_Inflector_camelize_5.$$arity = -2); + }, $Inflector_camelize$3.$$arity = -2); - Opal.defn(self, '$underscore', TMP_Inflector_underscore_6 = function $$underscore(camel_cased_word) { + Opal.def(self, '$underscore', $Inflector_underscore$6 = function $$underscore(camel_cased_word) { var self = this, word = nil; if ($truthy(/[A-Z-]|::/['$match?'](camel_cased_word))) { - } else { + } else { return camel_cased_word }; word = camel_cased_word.$to_s().$gsub("::".$freeze(), "/".$freeze()); @@ -5051,297 +6422,373 @@ if (match == null) match = nil; word = word.$tr("-".$freeze(), "_".$freeze()); word = word.$downcase(); return word; - }, TMP_Inflector_underscore_6.$$arity = 1); + }, $Inflector_underscore$6.$$arity = 1); - Opal.defn(self, '$humanize', TMP_Inflector_humanize_10 = function $$humanize(lower_case_and_underscored_word, $kwargs) { - var TMP_7, TMP_8, TMP_9, self = this, capitalize, keep_id_suffix, result = nil; + Opal.def(self, '$humanize', $Inflector_humanize$7 = function $$humanize(lower_case_and_underscored_word, $kwargs) { + var capitalize, keep_id_suffix, $$8, $$9, $$10, self = this, result = nil; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + capitalize = $kwargs.$$smap["capitalize"]; if (capitalize == null) { capitalize = true - } + }; + keep_id_suffix = $kwargs.$$smap["keep_id_suffix"]; if (keep_id_suffix == null) { keep_id_suffix = false - } - + }; result = lower_case_and_underscored_word.$to_s().$dup(); - (function(){var $brk = Opal.new_brk(); try {return $send(self.$inflections().$humans(), 'each', [], (TMP_7 = function($a){var self = TMP_7.$$s || this, $a_args, rule, replacement, $b, $c; + (function(){var $brk = Opal.new_brk(); try {return $send(self.$inflections().$humans(), 'each', [], ($$8 = function($mlhs_tmp1){var self = $$8.$$s == null ? this : $$8.$$s, $a, $b, rule = nil, replacement = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($a == null) { - $a = nil; - } - $a = Opal.to_ary($a); - $a_args = Opal.slice.call($a, 0, $a.length); - rule = $a_args.splice(0,1)[0]; - if (rule == null) { - rule = nil; - } - replacement = $a_args.splice(0,1)[0]; - if (replacement == null) { - replacement = nil; - } - if ($truthy(($truthy($b = ($truthy($c = rule['$is_a?'](Opal.const_get_relative($nesting, 'Regexp'))) ? result['$=~'](rule) : $c)) ? $b : ($truthy($c = rule['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? result['$=='](rule) : $c)))) { + + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; + }; + $b = $mlhs_tmp1, $a = Opal.to_ary($b), (rule = ($a[0] == null ? nil : $a[0])), (replacement = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = rule['$is_a?']($$($nesting, 'Regexp'))))) { + return result['$=~'](rule) + } else { + return $ret_or_2 + }; return nil; })()))) { + return $ret_or_1 + } else { + + if ($truthy(($ret_or_3 = rule['$is_a?']($$($nesting, 'String'))))) { + return result['$=='](rule) + } else { + return $ret_or_3 + }; + }; return nil; })())) { result = result.$sub(rule, replacement); Opal.brk(nil, $brk); - } else { + } else { return nil - }}, TMP_7.$$s = self, TMP_7.$$brk = $brk, TMP_7.$$arity = 1, TMP_7.$$has_top_level_mlhs_arg = true, TMP_7)) + };}, $$8.$$s = self, $$8.$$brk = $brk, $$8.$$arity = 1, $$8.$$has_top_level_mlhs_arg = true, $$8)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); result = result.$sub(/^_+/, "".$freeze()); if ($truthy(keep_id_suffix)) { - } else { + } else { result = result.$sub(/_id$/, "".$freeze()) }; result = result.$tr("_".$freeze(), " ".$freeze()); - result = $send(result, 'gsub', [/([a-z\d]*)/i], (TMP_8 = function(match){var self = TMP_8.$$s || this; -if (match == null) match = nil; - return "" + (match.$downcase())}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)); + result = $send(result, 'gsub', [/([a-z\d]*)/i], ($$9 = function(match){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (match == null) { + match = nil; + }; + return "" + (match.$downcase());}, $$9.$$s = self, $$9.$$arity = 1, $$9)); if ($truthy(capitalize)) { - result = $send(result, 'sub', [/^\w/], (TMP_9 = function(match){var self = TMP_9.$$s || this; -if (match == null) match = nil; - return match.$upcase()}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9))}; + result = $send(result, 'sub', [/^\w/], ($$10 = function(match){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (match == null) { + match = nil; + }; + return match.$upcase();}, $$10.$$s = self, $$10.$$arity = 1, $$10))}; return result; - }, TMP_Inflector_humanize_10.$$arity = -2); + }, $Inflector_humanize$7.$$arity = -2); - Opal.defn(self, '$upcase_first', TMP_Inflector_upcase_first_11 = function $$upcase_first(string) { + Opal.def(self, '$upcase_first', $Inflector_upcase_first$11 = function $$upcase_first(string) { var self = this; if ($truthy($rb_gt(string.$length(), 0))) { return $rb_plus(string['$[]'](0).$upcase(), string['$[]']($range(1, -1, false))) - } else { + } else { return "" } - }, TMP_Inflector_upcase_first_11.$$arity = 1); + }, $Inflector_upcase_first$11.$$arity = 1); - Opal.defn(self, '$titleize', TMP_Inflector_titleize_13 = function $$titleize(word, $kwargs) { - var TMP_12, self = this, keep_id_suffix; + Opal.def(self, '$titleize', $Inflector_titleize$12 = function $$titleize(word, $kwargs) { + var keep_id_suffix, $$13, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + keep_id_suffix = $kwargs.$$smap["keep_id_suffix"]; if (keep_id_suffix == null) { keep_id_suffix = false - } - return $send(self.$humanize(self.$underscore(word), $hash2(["keep_id_suffix"], {"keep_id_suffix": keep_id_suffix})), 'gsub', [/([a-zA-Z'’`])[a-z]*/], (TMP_12 = function(match){var self = TMP_12.$$s || this; -if (match == null) match = nil; - return match.$capitalize()}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)) - }, TMP_Inflector_titleize_13.$$arity = -2); + }; + return $send(self.$humanize(self.$underscore(word), $hash2(["keep_id_suffix"], {"keep_id_suffix": keep_id_suffix})), 'gsub', [/([a-zA-Z'’`])[a-z]*/], ($$13 = function(match){var self = $$13.$$s == null ? this : $$13.$$s; + + + + if (match == null) { + match = nil; + }; + return match.$capitalize();}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + }, $Inflector_titleize$12.$$arity = -2); - Opal.defn(self, '$tableize', TMP_Inflector_tableize_14 = function $$tableize(class_name) { + Opal.def(self, '$tableize', $Inflector_tableize$14 = function $$tableize(class_name) { var self = this; return self.$pluralize(self.$underscore(class_name)) - }, TMP_Inflector_tableize_14.$$arity = 1); + }, $Inflector_tableize$14.$$arity = 1); - Opal.defn(self, '$classify', TMP_Inflector_classify_15 = function $$classify(table_name) { + Opal.def(self, '$classify', $Inflector_classify$15 = function $$classify(table_name) { var self = this; return self.$camelize(self.$singularize(table_name.$to_s().$sub(/.*\./, "".$freeze()))) - }, TMP_Inflector_classify_15.$$arity = 1); + }, $Inflector_classify$15.$$arity = 1); - Opal.defn(self, '$dasherize', TMP_Inflector_dasherize_16 = function $$dasherize(underscored_word) { + Opal.def(self, '$dasherize', $Inflector_dasherize$16 = function $$dasherize(underscored_word) { var self = this; return underscored_word.$tr("_".$freeze(), "-".$freeze()) - }, TMP_Inflector_dasherize_16.$$arity = 1); + }, $Inflector_dasherize$16.$$arity = 1); - Opal.defn(self, '$demodulize', TMP_Inflector_demodulize_17 = function $$demodulize(path) { + Opal.def(self, '$demodulize', $Inflector_demodulize$17 = function $$demodulize(path) { var self = this, i = nil; path = path.$to_s(); if ($truthy((i = path.$rindex("::")))) { return path['$[]'](Opal.Range.$new($rb_plus(i, 2), -1, false)) - } else { + } else { return path }; - }, TMP_Inflector_demodulize_17.$$arity = 1); + }, $Inflector_demodulize$17.$$arity = 1); - Opal.defn(self, '$deconstantize', TMP_Inflector_deconstantize_18 = function $$deconstantize(path) { - var $a, self = this; + Opal.def(self, '$deconstantize', $Inflector_deconstantize$18 = function $$deconstantize(path) { + var self = this, $ret_or_4 = nil; - return path.$to_s()['$[]'](0, ($truthy($a = path.$rindex("::")) ? $a : 0)) - }, TMP_Inflector_deconstantize_18.$$arity = 1); + return path.$to_s()['$[]'](0, (function() {if ($truthy(($ret_or_4 = path.$rindex("::")))) { + return $ret_or_4 + } else { + return 0 + }; return nil; })()) + }, $Inflector_deconstantize$18.$$arity = 1); - Opal.defn(self, '$foreign_key', TMP_Inflector_foreign_key_19 = function $$foreign_key(class_name, separate_class_name_and_id_with_underscore) { + Opal.def(self, '$foreign_key', $Inflector_foreign_key$19 = function $$foreign_key(class_name, separate_class_name_and_id_with_underscore) { var self = this; + + if (separate_class_name_and_id_with_underscore == null) { separate_class_name_and_id_with_underscore = true; - } + }; return $rb_plus(self.$underscore(self.$demodulize(class_name)), (function() {if ($truthy(separate_class_name_and_id_with_underscore)) { return "_id" - } else { + } else { return "id" - }; return nil; })()) - }, TMP_Inflector_foreign_key_19.$$arity = -2); + }; return nil; })()); + }, $Inflector_foreign_key$19.$$arity = -2); - Opal.defn(self, '$constantize', TMP_Inflector_constantize_22 = function $$constantize(camel_cased_word) { - var $a, TMP_20, self = this, names = nil; + Opal.def(self, '$constantize', $Inflector_constantize$20 = function $$constantize(camel_cased_word) { + var $$21, self = this, names = nil, $ret_or_5 = nil; names = camel_cased_word.$split("::"); if ($truthy(names['$empty?']())) { - self.$raise(Opal.const_get_relative($nesting, 'NameError'), "wrong constant name ")}; - if ($truthy(($truthy($a = $rb_gt(names.$size(), 1)) ? names.$first()['$empty?']() : $a))) { + self.$raise($$($nesting, 'NameError'), "wrong constant name ")}; + if ($truthy((function() {if ($truthy(($ret_or_5 = $rb_gt(names.$size(), 1)))) { + return names.$first()['$empty?']() + } else { + return $ret_or_5 + }; return nil; })())) { names.$shift()}; - return (function(){var $brk = Opal.new_brk(); try {return $send(names, 'inject', [Opal.const_get_relative($nesting, 'Object')], (TMP_20 = function(constant, name){var self = TMP_20.$$s || this, TMP_21, candidate = nil; -if (constant == null) constant = nil;if (name == null) name = nil; - if (constant['$=='](Opal.const_get_relative($nesting, 'Object'))) { + return (function(){var $brk = Opal.new_brk(); try {return $send(names, 'inject', [$$($nesting, 'Object')], ($$21 = function(constant, name){var self = $$21.$$s == null ? this : $$21.$$s, $$22, candidate = nil; + + + + if (constant == null) { + constant = nil; + }; + + if (name == null) { + name = nil; + }; + if (constant['$==']($$($nesting, 'Object'))) { return constant.$const_get(name) - } else { + } else { candidate = constant.$const_get(name); if ($truthy(constant['$const_defined?'](name, false))) { return candidate;}; - if ($truthy(Opal.const_get_relative($nesting, 'Object')['$const_defined?'](name))) { - } else { + if ($truthy($$($nesting, 'Object')['$const_defined?'](name))) { + } else { return candidate; }; - constant = (function(){var $brk = Opal.new_brk(); try {return $send(constant.$ancestors(), 'inject', [constant], (TMP_21 = function(const$, ancestor){var self = TMP_21.$$s || this; -if (const$ == null) const$ = nil;if (ancestor == null) ancestor = nil; - - if (ancestor['$=='](Opal.const_get_relative($nesting, 'Object'))) { + constant = (function(){var $brk = Opal.new_brk(); try {return $send(constant.$ancestors(), 'inject', [constant], ($$22 = function(const$, ancestor){var self = $$22.$$s == null ? this : $$22.$$s; + + + + if (const$ == null) { + const$ = nil; + }; + + if (ancestor == null) { + ancestor = nil; + }; + if (ancestor['$==']($$($nesting, 'Object'))) { Opal.brk(const$, $brk)}; if ($truthy(ancestor['$const_defined?'](name, false))) { Opal.brk(ancestor, $brk)}; - return const$;}, TMP_21.$$s = self, TMP_21.$$brk = $brk, TMP_21.$$arity = 2, TMP_21)) + return const$;}, $$22.$$s = self, $$22.$$brk = $brk, $$22.$$arity = 2, $$22)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return constant.$const_get(name, false); - }}, TMP_20.$$s = self, TMP_20.$$brk = $brk, TMP_20.$$arity = 2, TMP_20)) + };}, $$21.$$s = self, $$21.$$brk = $brk, $$21.$$arity = 2, $$21)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); - }, TMP_Inflector_constantize_22.$$arity = 1); + }, $Inflector_constantize$20.$$arity = 1); - Opal.defn(self, '$safe_constantize', TMP_Inflector_safe_constantize_23 = function $$safe_constantize(camel_cased_word) { - var $a, $b, self = this, e = nil; + Opal.def(self, '$safe_constantize', $Inflector_safe_constantize$23 = function $$safe_constantize(camel_cased_word) { + var self = this, e = nil, $ret_or_6 = nil, $ret_or_7 = nil; try { return self.$constantize(camel_cased_word) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'NameError')])) {(e = $err) try { - if ($truthy(($truthy($a = e.$name()) ? ($truthy($b = camel_cased_word.$to_s().$split("::")['$include?'](e.$name().$to_s())) ? $b : e.$name().$to_s()['$=='](camel_cased_word.$to_s()))['$!']() : $a))) { - return self.$raise() + if ($truthy((function() {if ($truthy(($ret_or_6 = e.$name()))) { + return (function() {if ($truthy(($ret_or_7 = camel_cased_word.$to_s().$split("::")['$include?'](e.$name().$to_s())))) { + return $ret_or_7 } else { + return e.$name().$to_s()['$=='](camel_cased_word.$to_s()) + }; return nil; })()['$!']() + } else { + return $ret_or_6 + }; return nil; })())) { + return self.$raise() + } else { return nil } - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'ArgumentError')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) {(e = $err) try { - if ($truthy(new RegExp("" + "not missing constant " + (self.$const_regexp(camel_cased_word)) + "!$")['$match?'](e.$message()))) { + if ($truthy(Opal.regexp(["not missing constant ", self.$const_regexp(camel_cased_word), "!$"])['$match?'](e.$message()))) { return nil - } else { + } else { return self.$raise() } - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Inflector_safe_constantize_23.$$arity = 1); + }, $Inflector_safe_constantize$23.$$arity = 1); - Opal.defn(self, '$ordinal', TMP_Inflector_ordinal_24 = function $$ordinal(number) { + Opal.def(self, '$ordinal', $Inflector_ordinal$24 = function $$ordinal(number) { var self = this, abs_number = nil, $case = nil; abs_number = number.$to_i().$abs(); if ($truthy($range(11, 13, false)['$include?'](abs_number['$%'](100)))) { return "th" - } else { + } else { return (function() {$case = abs_number['$%'](10); if ((1)['$===']($case)) {return "st"} else if ((2)['$===']($case)) {return "nd"} else if ((3)['$===']($case)) {return "rd"} else {return "th"}})() }; - }, TMP_Inflector_ordinal_24.$$arity = 1); + }, $Inflector_ordinal$24.$$arity = 1); - Opal.defn(self, '$ordinalize', TMP_Inflector_ordinalize_25 = function $$ordinalize(number) { + Opal.def(self, '$ordinalize', $Inflector_ordinalize$25 = function $$ordinalize(number) { var self = this; return "" + (number) + (self.$ordinal(number)) - }, TMP_Inflector_ordinalize_25.$$arity = 1); + }, $Inflector_ordinalize$25.$$arity = 1); self.$private(); - Opal.defn(self, '$const_regexp', TMP_Inflector_const_regexp_27 = function $$const_regexp(camel_cased_word) { - var TMP_26, self = this, parts = nil, last = nil; + Opal.def(self, '$const_regexp', $Inflector_const_regexp$26 = function $$const_regexp(camel_cased_word) { + var $$27, self = this, parts = nil, last = nil; parts = camel_cased_word.$split("::".$freeze()); if ($truthy(parts['$blank?']())) { - return Opal.const_get_relative($nesting, 'Regexp').$escape(camel_cased_word)}; + return $$($nesting, 'Regexp').$escape(camel_cased_word)}; last = parts.$pop(); - return $send(parts.$reverse(), 'inject', [last], (TMP_26 = function(acc, part){var self = TMP_26.$$s || this; -if (acc == null) acc = nil;if (part == null) part = nil; - if ($truthy(part['$empty?']())) { + return $send(parts.$reverse(), 'inject', [last], ($$27 = function(acc, part){var self = $$27.$$s == null ? this : $$27.$$s; + + + + if (acc == null) { + acc = nil; + }; + + if (part == null) { + part = nil; + }; + if ($truthy(part['$empty?']())) { return acc - } else { + } else { return "" + (part) + "(::" + (acc) + ")?" - }}, TMP_26.$$s = self, TMP_26.$$arity = 2, TMP_26)); - }, TMP_Inflector_const_regexp_27.$$arity = 1); - - Opal.defn(self, '$apply_inflections', TMP_Inflector_apply_inflections_29 = function $$apply_inflections(word, rules, locale) { - var $a, TMP_28, self = this, result = nil; + };}, $$27.$$s = self, $$27.$$arity = 2, $$27)); + }, $Inflector_const_regexp$26.$$arity = 1); + return (Opal.def(self, '$apply_inflections', $Inflector_apply_inflections$28 = function $$apply_inflections(word, rules, locale) { + var $$29, self = this, result = nil, $ret_or_8 = nil; + + if (locale == null) { locale = "en"; - } - + }; result = word.$to_s().$dup(); - if ($truthy(($truthy($a = word['$empty?']()) ? $a : self.$inflections(locale).$uncountables()['$uncountable?'](result)))) { + if ($truthy((function() {if ($truthy(($ret_or_8 = word['$empty?']()))) { + return $ret_or_8 + } else { + return self.$inflections(locale).$uncountables()['$uncountable?'](result) + }; return nil; })())) { return result - } else { + } else { - (function(){var $brk = Opal.new_brk(); try {return $send(rules, 'each', [], (TMP_28 = function($b){var self = TMP_28.$$s || this, $b_args, rule, replacement, $c, $d; + (function(){var $brk = Opal.new_brk(); try {return $send(rules, 'each', [], ($$29 = function($mlhs_tmp1){var self = $$29.$$s == null ? this : $$29.$$s, $a, $b, rule = nil, replacement = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil; - if ($b == null) { - $b = nil; - } - $b = Opal.to_ary($b); - $b_args = Opal.slice.call($b, 0, $b.length); - rule = $b_args.splice(0,1)[0]; - if (rule == null) { - rule = nil; - } - replacement = $b_args.splice(0,1)[0]; - if (replacement == null) { - replacement = nil; - } - if ($truthy(($truthy($c = ($truthy($d = rule['$is_a?'](Opal.const_get_relative($nesting, 'Regexp'))) ? result['$=~'](rule) : $d)) ? $c : ($truthy($d = rule['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? result['$=='](rule) : $d)))) { + + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; + }; + $b = $mlhs_tmp1, $a = Opal.to_ary($b), (rule = ($a[0] == null ? nil : $a[0])), (replacement = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy((function() {if ($truthy(($ret_or_9 = (function() {if ($truthy(($ret_or_10 = rule['$is_a?']($$($nesting, 'Regexp'))))) { + return result['$=~'](rule) + } else { + return $ret_or_10 + }; return nil; })()))) { + return $ret_or_9 + } else { + + if ($truthy(($ret_or_11 = rule['$is_a?']($$($nesting, 'String'))))) { + return result['$=='](rule) + } else { + return $ret_or_11 + }; + }; return nil; })())) { result = result.$sub(rule, replacement); Opal.brk(nil, $brk); - } else { + } else { return nil - }}, TMP_28.$$s = self, TMP_28.$$brk = $brk, TMP_28.$$arity = 1, TMP_28.$$has_top_level_mlhs_arg = true, TMP_28)) + };}, $$29.$$s = self, $$29.$$brk = $brk, $$29.$$arity = 1, $$29.$$has_top_level_mlhs_arg = true, $$29)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return result; }; - }, TMP_Inflector_apply_inflections_29.$$arity = -3); + }, $Inflector_apply_inflections$28.$$arity = -3), nil) && 'apply_inflections'; })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/inflector"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/inflector"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -5351,520 +6798,672 @@ Opal.modules["active_support/inflector"] = function(Opal) { return self.$require("active_support/core_ext/string/inflections"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/string/inflections"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["active_support/core_ext/string/inflections"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; Opal.add_stubs(['$require', '$is_a?', '$==', '$dup', '$pluralize', '$singularize', '$constantize', '$safe_constantize', '$===', '$camelize', '$raise', '$alias_method', '$titleize', '$underscore', '$dasherize', '$demodulize', '$deconstantize', '$tableize', '$classify', '$humanize', '$upcase_first', '$foreign_key']); self.$require("active_support/inflector"); return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_pluralize_1, TMP_String_singularize_2, TMP_String_constantize_3, TMP_String_safe_constantize_4, TMP_String_camelize_5, TMP_String_titleize_6, TMP_String_underscore_7, TMP_String_dasherize_8, TMP_String_demodulize_9, TMP_String_deconstantize_10, TMP_String_tableize_11, TMP_String_classify_12, TMP_String_humanize_13, TMP_String_upcase_first_14, TMP_String_foreign_key_15; + var $nesting = [self].concat($parent_nesting), $String_pluralize$1, $String_singularize$2, $String_constantize$3, $String_safe_constantize$4, $String_camelize$5, $String_titleize$6, $String_underscore$7, $String_dasherize$8, $String_demodulize$9, $String_deconstantize$10, $String_tableize$11, $String_classify$12, $String_humanize$13, $String_upcase_first$14, $String_foreign_key$15; - Opal.defn(self, '$pluralize', TMP_String_pluralize_1 = function $$pluralize(count, locale) { + Opal.def(self, '$pluralize', $String_pluralize$1 = function $$pluralize(count, locale) { var self = this; + + if (count == null) { count = nil; - } + }; + if (locale == null) { locale = "en"; - } - - if ($truthy(count['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { + }; + if ($truthy(count['$is_a?']($$($nesting, 'Symbol')))) { locale = count}; if (count['$=='](1)) { return self.$dup() - } else { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$pluralize(self, locale) + } else { + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$pluralize(self, locale) }; - }, TMP_String_pluralize_1.$$arity = -1); + }, $String_pluralize$1.$$arity = -1); - Opal.defn(self, '$singularize', TMP_String_singularize_2 = function $$singularize(locale) { + Opal.def(self, '$singularize', $String_singularize$2 = function $$singularize(locale) { var self = this; + + if (locale == null) { locale = "en"; - } - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$singularize(self, locale) - }, TMP_String_singularize_2.$$arity = -1); + }; + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$singularize(self, locale); + }, $String_singularize$2.$$arity = -1); - Opal.defn(self, '$constantize', TMP_String_constantize_3 = function $$constantize() { + Opal.def(self, '$constantize', $String_constantize$3 = function $$constantize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$constantize(self) - }, TMP_String_constantize_3.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$constantize(self) + }, $String_constantize$3.$$arity = 0); - Opal.defn(self, '$safe_constantize', TMP_String_safe_constantize_4 = function $$safe_constantize() { + Opal.def(self, '$safe_constantize', $String_safe_constantize$4 = function $$safe_constantize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$safe_constantize(self) - }, TMP_String_safe_constantize_4.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$safe_constantize(self) + }, $String_safe_constantize$4.$$arity = 0); - Opal.defn(self, '$camelize', TMP_String_camelize_5 = function $$camelize(first_letter) { + Opal.def(self, '$camelize', $String_camelize$5 = function $$camelize(first_letter) { var self = this, $case = nil; + + if (first_letter == null) { first_letter = "upper"; - } + }; return (function() {$case = first_letter; - if ("upper"['$===']($case)) {return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$camelize(self, true)} - else if ("lower"['$===']($case)) {return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$camelize(self, false)} - else {return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Invalid option, use either :upper or :lower.")}})() - }, TMP_String_camelize_5.$$arity = -1); + if ("upper"['$===']($case)) {return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$camelize(self, true)} + else if ("lower"['$===']($case)) {return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$camelize(self, false)} + else {return self.$raise($$($nesting, 'ArgumentError'), "Invalid option, use either :upper or :lower.")}})(); + }, $String_camelize$5.$$arity = -1); self.$alias_method("camelcase", "camelize"); - Opal.defn(self, '$titleize', TMP_String_titleize_6 = function $$titleize($kwargs) { - var self = this, keep_id_suffix; + Opal.def(self, '$titleize', $String_titleize$6 = function $$titleize($kwargs) { + var keep_id_suffix, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + keep_id_suffix = $kwargs.$$smap["keep_id_suffix"]; if (keep_id_suffix == null) { keep_id_suffix = false - } - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$titleize(self, $hash2(["keep_id_suffix"], {"keep_id_suffix": keep_id_suffix})) - }, TMP_String_titleize_6.$$arity = -1); + }; + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$titleize(self, $hash2(["keep_id_suffix"], {"keep_id_suffix": keep_id_suffix})); + }, $String_titleize$6.$$arity = -1); self.$alias_method("titlecase", "titleize"); - Opal.defn(self, '$underscore', TMP_String_underscore_7 = function $$underscore() { + Opal.def(self, '$underscore', $String_underscore$7 = function $$underscore() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$underscore(self) - }, TMP_String_underscore_7.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$underscore(self) + }, $String_underscore$7.$$arity = 0); - Opal.defn(self, '$dasherize', TMP_String_dasherize_8 = function $$dasherize() { + Opal.def(self, '$dasherize', $String_dasherize$8 = function $$dasherize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$dasherize(self) - }, TMP_String_dasherize_8.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$dasherize(self) + }, $String_dasherize$8.$$arity = 0); - Opal.defn(self, '$demodulize', TMP_String_demodulize_9 = function $$demodulize() { + Opal.def(self, '$demodulize', $String_demodulize$9 = function $$demodulize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$demodulize(self) - }, TMP_String_demodulize_9.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$demodulize(self) + }, $String_demodulize$9.$$arity = 0); - Opal.defn(self, '$deconstantize', TMP_String_deconstantize_10 = function $$deconstantize() { + Opal.def(self, '$deconstantize', $String_deconstantize$10 = function $$deconstantize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$deconstantize(self) - }, TMP_String_deconstantize_10.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$deconstantize(self) + }, $String_deconstantize$10.$$arity = 0); - Opal.defn(self, '$tableize', TMP_String_tableize_11 = function $$tableize() { + Opal.def(self, '$tableize', $String_tableize$11 = function $$tableize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$tableize(self) - }, TMP_String_tableize_11.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$tableize(self) + }, $String_tableize$11.$$arity = 0); - Opal.defn(self, '$classify', TMP_String_classify_12 = function $$classify() { + Opal.def(self, '$classify', $String_classify$12 = function $$classify() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$classify(self) - }, TMP_String_classify_12.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$classify(self) + }, $String_classify$12.$$arity = 0); - Opal.defn(self, '$humanize', TMP_String_humanize_13 = function $$humanize($kwargs) { - var self = this, capitalize, keep_id_suffix; + Opal.def(self, '$humanize', $String_humanize$13 = function $$humanize($kwargs) { + var capitalize, keep_id_suffix, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + capitalize = $kwargs.$$smap["capitalize"]; if (capitalize == null) { capitalize = true - } + }; + keep_id_suffix = $kwargs.$$smap["keep_id_suffix"]; if (keep_id_suffix == null) { keep_id_suffix = false - } - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$humanize(self, $hash2(["capitalize", "keep_id_suffix"], {"capitalize": capitalize, "keep_id_suffix": keep_id_suffix})) - }, TMP_String_humanize_13.$$arity = -1); + }; + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$humanize(self, $hash2(["capitalize", "keep_id_suffix"], {"capitalize": capitalize, "keep_id_suffix": keep_id_suffix})); + }, $String_humanize$13.$$arity = -1); - Opal.defn(self, '$upcase_first', TMP_String_upcase_first_14 = function $$upcase_first() { + Opal.def(self, '$upcase_first', $String_upcase_first$14 = function $$upcase_first() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$upcase_first(self) - }, TMP_String_upcase_first_14.$$arity = 0); - return (Opal.defn(self, '$foreign_key', TMP_String_foreign_key_15 = function $$foreign_key(separate_class_name_and_id_with_underscore) { + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$upcase_first(self) + }, $String_upcase_first$14.$$arity = 0); + return (Opal.def(self, '$foreign_key', $String_foreign_key$15 = function $$foreign_key(separate_class_name_and_id_with_underscore) { var self = this; + + if (separate_class_name_and_id_with_underscore == null) { separate_class_name_and_id_with_underscore = true; - } - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$foreign_key(self, separate_class_name_and_id_with_underscore) - }, TMP_String_foreign_key_15.$$arity = -1), nil) && 'foreign_key'; + }; + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$foreign_key(self, separate_class_name_and_id_with_underscore); + }, $String_foreign_key$15.$$arity = -1), nil) && 'foreign_key'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/string"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["active_support/core_ext/string"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; Opal.add_stubs(['$require', '$gsub', '$strip', '$downcase']); self.$require("active_support/core_ext/string/filters"); self.$require("active_support/core_ext/string/inflections"); return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_parameterize_1; + var $nesting = [self].concat($parent_nesting), $String_parameterize$1; - return (Opal.defn(self, '$parameterize', TMP_String_parameterize_1 = function $$parameterize() { + return (Opal.def(self, '$parameterize', $String_parameterize$1 = function $$parameterize() { var self = this; return self.$downcase().$strip().$gsub(/\W+/, "-") - }, TMP_String_parameterize_1.$$arity = 0), nil) && 'parameterize' + }, $String_parameterize$1.$$arity = 0), nil) && 'parameterize' })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/props_wrapper"] = function(Opal) { +Opal.modules["hyperstack/internal/component/props_wrapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send; Opal.add_stubs(['$require', '$attr_reader', '$naming_convention', '$===', '$fix_suffix', '$camelize', '$=~', '$+', '$[]', '$respond_to?', '$superclass', '$param_accessor_style', '$dup', '$param_definitions', '$new', '$!=', '$instance_var_name_for', '$lambda', '$instance_variable_set', '$fetch_from_cache', '$==', '$[]=', '$-', '$include?', '$define_method', '$to_sym', '$props', '$call', '$to_proc', '$class', '$each_value', '$instance_exec', '$initialize', '$private', '$cache', '$equal?', '$tap', '$convert_param', '$_react_param_conversion', '$is_a?', '$collect', '$component', '$instance_variable_get']); self.$require("active_support/core_ext/string"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $PropsWrapper(){}; - var self = $PropsWrapper = $klass($base, $super, 'PropsWrapper', $PropsWrapper); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'PropsWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_PropsWrapper_param_accessor_style_12, TMP_PropsWrapper_initialize_14, TMP_PropsWrapper_reload_15, TMP_PropsWrapper_$$_16, TMP_PropsWrapper_fetch_from_cache_18, TMP_PropsWrapper_convert_param_20, TMP_PropsWrapper_cache_22, TMP_PropsWrapper_props_23, TMP_PropsWrapper_value_for_24; + var $nesting = [self].concat($parent_nesting), $PropsWrapper_param_accessor_style$12, $PropsWrapper_initialize$13, $PropsWrapper_reload$15, $PropsWrapper_$$$16, $PropsWrapper_fetch_from_cache$17, $PropsWrapper_convert_param$19, $PropsWrapper_cache$21, $PropsWrapper_props$23, $PropsWrapper_value_for$24; - def.component = def.cache = nil; + self.$$prototype.component = self.$$prototype.cache = nil; self.$attr_reader("component"); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_instance_var_name_for_1, TMP_fix_suffix_2, TMP_param_accessor_style_3, TMP_param_definitions_4, TMP_define_param_8, TMP_define_all_others_10; + var $nesting = [self].concat($parent_nesting), $instance_var_name_for$1, $fix_suffix$2, $param_accessor_style$3, $param_definitions$4, $define_param$5, $define_all_others$9; - Opal.defn(self, '$instance_var_name_for', TMP_instance_var_name_for_1 = function $$instance_var_name_for(name) { + Opal.def(self, '$instance_var_name_for', $instance_var_name_for$1 = function $$instance_var_name_for(name) { var self = this, $case = nil; - return (function() {$case = Opal.const_get_relative($nesting, 'Hyperstack').$naming_convention(); + return (function() {$case = $$($nesting, 'Hyperstack').$naming_convention(); if ("camelize_params"['$===']($case)) {return self.$fix_suffix(name.$camelize())} else if ("prefix_params"['$===']($case)) {return "" + "_" + (name)} else {return name}})() - }, TMP_instance_var_name_for_1.$$arity = 1); + }, $instance_var_name_for$1.$$arity = 1); - Opal.defn(self, '$fix_suffix', TMP_fix_suffix_2 = function $$fix_suffix(name) { + Opal.def(self, '$fix_suffix', $fix_suffix$2 = function $$fix_suffix(name) { var self = this; if ($truthy(name)) { - } else { + } else { return nil }; if ($truthy(name['$=~'](/\?$/))) { return $rb_plus(name['$[]']($range(0, -2, false)), "_q") } else if ($truthy(name['$=~'](/\!$/))) { return $rb_plus(name['$[]']($range(0, -2, false)), "_b") - } else { + } else { return name }; - }, TMP_fix_suffix_2.$$arity = 1); + }, $fix_suffix$2.$$arity = 1); - Opal.defn(self, '$param_accessor_style', TMP_param_accessor_style_3 = function $$param_accessor_style(style) { - var $a, self = this; + Opal.def(self, '$param_accessor_style', $param_accessor_style$3 = function $$param_accessor_style(style) { + var self = this, $ret_or_1 = nil; if (self.param_accessor_style == null) self.param_accessor_style = nil; + + if (style == null) { style = nil; - } - + }; if ($truthy(style)) { self.param_accessor_style = style}; - return (self.param_accessor_style = ($truthy($a = self.param_accessor_style) ? $a : (function() {if ($truthy(self.$superclass()['$respond_to?']("param_accessor_style"))) { + return (self.param_accessor_style = (function() {if ($truthy(($ret_or_1 = self.param_accessor_style))) { + return $ret_or_1 + } else if ($truthy(self.$superclass()['$respond_to?']("param_accessor_style"))) { return self.$superclass().$param_accessor_style() - } else { + } else { return "hyperstack" - }; return nil; })())); - }, TMP_param_accessor_style_3.$$arity = -1); + }; return nil; })()); + }, $param_accessor_style$3.$$arity = -1); - Opal.defn(self, '$param_definitions', TMP_param_definitions_4 = function $$param_definitions() { - var $a, self = this; + Opal.def(self, '$param_definitions', $param_definitions$4 = function $$param_definitions() { + var self = this, $ret_or_2 = nil; if (self.param_definitions == null) self.param_definitions = nil; - return (self.param_definitions = ($truthy($a = self.param_definitions) ? $a : (function() {if ($truthy(self.$superclass()['$respond_to?']("param_definitions"))) { + return (self.param_definitions = (function() {if ($truthy(($ret_or_2 = self.param_definitions))) { + return $ret_or_2 + } else if ($truthy(self.$superclass()['$respond_to?']("param_definitions"))) { return self.$superclass().$param_definitions().$dup() - } else { - return Opal.const_get_relative($nesting, 'Hash').$new() - }; return nil; })())) - }, TMP_param_definitions_4.$$arity = 0); + } else { + return $$($nesting, 'Hash').$new() + }; return nil; })()) + }, $param_definitions$4.$$arity = 0); - Opal.defn(self, '$define_param', TMP_define_param_8 = function $$define_param(name, param_type, aka) { - var $a, TMP_5, TMP_6, TMP_7, self = this, meth_name = nil, var_name = nil, $writer = nil; + Opal.def(self, '$define_param', $define_param$5 = function $$define_param(name, param_type, aka) { + var $$6, $$7, $$8, $iter = $define_param$5.$$p, $yield = $iter || nil, self = this, $ret_or_3 = nil, meth_name = nil, $ret_or_4 = nil, var_name = nil, $ret_or_5 = nil, $writer = nil; + if ($iter) $define_param$5.$$p = null; + + if (aka == null) { aka = nil; - } - - if ($truthy(($truthy($a = self.$param_accessor_style()['$!=']("legacy")) ? $a : aka))) { + }; + if ($truthy((function() {if ($truthy(($ret_or_3 = self.$param_accessor_style()['$!=']("legacy")))) { + return $ret_or_3 + } else { + return aka + }; return nil; })())) { - meth_name = ($truthy($a = aka) ? $a : name); - var_name = ($truthy($a = self.$fix_suffix(aka)) ? $a : self.$instance_var_name_for(name)); + meth_name = (function() {if ($truthy(($ret_or_4 = aka))) { + return $ret_or_4 + } else { + return name + }; return nil; })(); + var_name = (function() {if ($truthy(($ret_or_5 = self.$fix_suffix(aka)))) { + return $ret_or_5 + } else { + return self.$instance_var_name_for(name) + }; return nil; })(); - $writer = [name, $send(self, 'lambda', [], (TMP_5 = function(props){var self = TMP_5.$$s || this, val = nil; + $writer = [name, $send(self, 'lambda', [], ($$6 = function(props){var self = $$6.$$s == null ? this : $$6.$$s, val = nil; if (self.component == null) self.component = nil; -if (props == null) props = nil; - + + + + if (props == null) { + props = nil; + }; self.component.$instance_variable_set("" + "@" + (var_name), (val = self.$fetch_from_cache(name, param_type, props))); if (self.$param_accessor_style()['$==']("accessors")) { - } else { + } else { return nil; }; - return self.component["" + "$" + (meth_name)] = function() { return val };}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5))]; + return self.component["" + "$" + (meth_name)] = function() { return val };}, $$6.$$s = self, $$6.$$arity = 1, $$6))]; $send(self.$param_definitions(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(["hyperstack", "accessors"]['$include?'](self.$param_accessor_style()))) { return nil};}; - if (param_type['$=='](Opal.const_get_relative($nesting, 'Proc'))) { - return $send(self, 'define_method', [name.$to_sym()], (TMP_6 = function($b_rest){var self = TMP_6.$$s || this, block, args; - - block = TMP_6.$$p || nil; - if (block) TMP_6.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(self.$props()['$[]'](name))) { + if (param_type['$==']($$($nesting, 'Proc'))) { + return $send(self, 'define_method', [name.$to_sym()], ($$7 = function($a){var self = $$7.$$s == null ? this : $$7.$$s, $iter = $$7.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$7.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(self.$props()['$[]'](name))) { return $send(self.$props()['$[]'](name), 'call', Opal.to_a(args), block.$to_proc()) - } else { + } else { return nil - }}, TMP_6.$$s = self, TMP_6.$$arity = -1, TMP_6)) - } else { - return $send(self, 'define_method', [name.$to_sym()], (TMP_7 = function(){var self = TMP_7.$$s || this; + };}, $$7.$$s = self, $$7.$$arity = -1, $$7)) + } else { + return $send(self, 'define_method', [name.$to_sym()], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; - return self.$fetch_from_cache(name, param_type, self.$props())}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7)) + return self.$fetch_from_cache(name, param_type, self.$props())}, $$8.$$s = self, $$8.$$arity = 0, $$8)) }; - }, TMP_define_param_8.$$arity = -3); - return (Opal.defn(self, '$define_all_others', TMP_define_all_others_10 = function $$define_all_others(name) { - var TMP_9, TMP_11, self = this, $iter = TMP_define_all_others_10.$$p, $yield = $iter || nil, var_name = nil, $writer = nil; + }, $define_param$5.$$arity = -3); + return (Opal.def(self, '$define_all_others', $define_all_others$9 = function $$define_all_others(name) { + var $$10, $$11, $iter = $define_all_others$9.$$p, $yield = $iter || nil, self = this, var_name = nil, $writer = nil; - if ($iter) TMP_define_all_others_10.$$p = null; + if ($iter) $define_all_others$9.$$p = null; var_name = self.$instance_var_name_for(name); - $writer = [name, $send(self, 'lambda', [], (TMP_9 = function(props){var self = TMP_9.$$s || this, val = nil; + $writer = [name, $send(self, 'lambda', [], ($$10 = function(props){var self = $$10.$$s == null ? this : $$10.$$s, val = nil; if (self.component == null) self.component = nil; -if (props == null) props = nil; - + + + + if (props == null) { + props = nil; + }; self.component.$instance_variable_set("" + "@" + (var_name), (val = Opal.yield1($yield, props))); if (self.$param_accessor_style()['$==']("accessors")) { - } else { + } else { return nil; }; - return self.component["" + "$" + (name)] = function() { return val };}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9))]; + return self.component["" + "$" + (name)] = function() { return val };}, $$10.$$s = self, $$10.$$arity = 1, $$10))]; $send(self.$param_definitions(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(self, 'define_method', [name.$to_sym()], (TMP_11 = function(){var self = TMP_11.$$s || this, $a; + return $send(self, 'define_method', [name.$to_sym()], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s, $ret_or_6 = nil; if (self._all_others_cache == null) self._all_others_cache = nil; - return (self._all_others_cache = ($truthy($a = self._all_others_cache) ? $a : Opal.yield1($yield, self.$props())))}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11)); - }, TMP_define_all_others_10.$$arity = 1), nil) && 'define_all_others'; + return (self._all_others_cache = (function() {if ($truthy(($ret_or_6 = self._all_others_cache))) { + return $ret_or_6 + } else { + return Opal.yield1($yield, self.$props()); + }; return nil; })())}, $$11.$$s = self, $$11.$$arity = 0, $$11)); + }, $define_all_others$9.$$arity = 1), nil) && 'define_all_others'; })(Opal.get_singleton_class(self), $nesting); - Opal.defn(self, '$param_accessor_style', TMP_PropsWrapper_param_accessor_style_12 = function $$param_accessor_style() { + Opal.def(self, '$param_accessor_style', $PropsWrapper_param_accessor_style$12 = function $$param_accessor_style() { var self = this; return self.$class().$param_accessor_style() - }, TMP_PropsWrapper_param_accessor_style_12.$$arity = 0); + }, $PropsWrapper_param_accessor_style$12.$$arity = 0); - Opal.defn(self, '$initialize', TMP_PropsWrapper_initialize_14 = function $$initialize(component, incoming) { - var TMP_13, self = this; + Opal.def(self, '$initialize', $PropsWrapper_initialize$13 = function $$initialize(component, incoming) { + var $$14, self = this; + + if (incoming == null) { incoming = nil; - } - + }; self.component = component; - return $send(self.$class().$param_definitions(), 'each_value', [], (TMP_13 = function(initializer){var self = TMP_13.$$s || this, $a; -if (initializer == null) initializer = nil; - return $send(self, 'instance_exec', [($truthy($a = incoming) ? $a : self.$props())], initializer.$to_proc())}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13)); - }, TMP_PropsWrapper_initialize_14.$$arity = -2); + return $send(self.$class().$param_definitions(), 'each_value', [], ($$14 = function(initializer){var self = $$14.$$s == null ? this : $$14.$$s, $ret_or_7 = nil; + + + + if (initializer == null) { + initializer = nil; + }; + return $send(self, 'instance_exec', [(function() {if ($truthy(($ret_or_7 = incoming))) { + return $ret_or_7 + } else { + return self.$props() + }; return nil; })()], initializer.$to_proc());}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + }, $PropsWrapper_initialize$13.$$arity = -2); - Opal.defn(self, '$reload', TMP_PropsWrapper_reload_15 = function $$reload(next_props) { + Opal.def(self, '$reload', $PropsWrapper_reload$15 = function $$reload(next_props) { var self = this; self._all_others_cache = nil; return self.$initialize(self.component, next_props); - }, TMP_PropsWrapper_reload_15.$$arity = 1); + }, $PropsWrapper_reload$15.$$arity = 1); - Opal.defn(self, '$[]', TMP_PropsWrapper_$$_16 = function(prop) { + Opal.def(self, '$[]', $PropsWrapper_$$$16 = function(prop) { var self = this; return self.$props()['$[]'](prop) - }, TMP_PropsWrapper_$$_16.$$arity = 1); + }, $PropsWrapper_$$$16.$$arity = 1); self.$private(); - Opal.defn(self, '$fetch_from_cache', TMP_PropsWrapper_fetch_from_cache_18 = function $$fetch_from_cache(name, param_type, props) { - var $a, $b, TMP_17, self = this, last = nil, cached_value = nil; + Opal.def(self, '$fetch_from_cache', $PropsWrapper_fetch_from_cache$17 = function $$fetch_from_cache(name, param_type, props) { + var $a, $b, $$18, self = this, last = nil, cached_value = nil; $b = self.$cache()['$[]'](name), $a = Opal.to_ary($b), (last = ($a[0] == null ? nil : $a[0])), (cached_value = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(last['$equal?'](props['$[]'](name)))) { return cached_value}; - return $send(self.$convert_param(name, param_type, props), 'tap', [], (TMP_17 = function(value){var self = TMP_17.$$s || this, $writer = nil; -if (value == null) value = nil; - + return $send(self.$convert_param(name, param_type, props), 'tap', [], ($$18 = function(value){var self = $$18.$$s == null ? this : $$18.$$s, $writer = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, [props['$[]'](name), value]]; $send(self.$cache(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_17.$$s = self, TMP_17.$$arity = 1, TMP_17)); - }, TMP_PropsWrapper_fetch_from_cache_18.$$arity = 3); + return $writer[$rb_minus($writer["length"], 1)];}, $$18.$$s = self, $$18.$$arity = 1, $$18)); + }, $PropsWrapper_fetch_from_cache$17.$$arity = 3); - Opal.defn(self, '$convert_param', TMP_PropsWrapper_convert_param_20 = function $$convert_param(name, param_type, props) { - var $a, TMP_19, self = this; + Opal.def(self, '$convert_param', $PropsWrapper_convert_param$19 = function $$convert_param(name, param_type, props) { + var $$20, self = this, $ret_or_8 = nil; if ($truthy(param_type['$respond_to?']("_react_param_conversion"))) { return param_type.$_react_param_conversion(props['$[]'](name), nil) - } else if ($truthy(($truthy($a = param_type['$is_a?'](Opal.const_get_relative($nesting, 'Array'))) ? param_type['$[]'](0)['$respond_to?']("_react_param_conversion") : $a))) { - return $send(props['$[]'](name), 'collect', [], (TMP_19 = function(param){var self = TMP_19.$$s || this; -if (param == null) param = nil; - return param_type['$[]'](0).$_react_param_conversion(param, nil)}, TMP_19.$$s = self, TMP_19.$$arity = 1, TMP_19)) - } else { + } else if ($truthy((function() {if ($truthy(($ret_or_8 = param_type['$is_a?']($$($nesting, 'Array'))))) { + return param_type['$[]'](0)['$respond_to?']("_react_param_conversion") + } else { + return $ret_or_8 + }; return nil; })())) { + return $send(props['$[]'](name), 'collect', [], ($$20 = function(param){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (param == null) { + param = nil; + }; + return param_type['$[]'](0).$_react_param_conversion(param, nil);}, $$20.$$s = self, $$20.$$arity = 1, $$20)) + } else { return props['$[]'](name) } - }, TMP_PropsWrapper_convert_param_20.$$arity = 3); + }, $PropsWrapper_convert_param$19.$$arity = 3); - Opal.defn(self, '$cache', TMP_PropsWrapper_cache_22 = function $$cache() { - var $a, TMP_21, self = this; + Opal.def(self, '$cache', $PropsWrapper_cache$21 = function $$cache() { + var $$22, self = this, $ret_or_9 = nil; - return (self.cache = ($truthy($a = self.cache) ? $a : $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_21 = function(h, k){var self = TMP_21.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - - $writer = [k, []]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_21.$$s = self, TMP_21.$$arity = 2, TMP_21)))) - }, TMP_PropsWrapper_cache_22.$$arity = 0); + return (self.cache = (function() {if ($truthy(($ret_or_9 = self.cache))) { + return $ret_or_9 + } else { + return $send($$($nesting, 'Hash'), 'new', [], ($$22 = function(h, k){var self = $$22.$$s == null ? this : $$22.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, []]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$22.$$s = self, $$22.$$arity = 2, $$22)) + }; return nil; })()) + }, $PropsWrapper_cache$21.$$arity = 0); - Opal.defn(self, '$props', TMP_PropsWrapper_props_23 = function $$props() { + Opal.def(self, '$props', $PropsWrapper_props$23 = function $$props() { var self = this; return self.$component().$props() - }, TMP_PropsWrapper_props_23.$$arity = 0); - return (Opal.defn(self, '$value_for', TMP_PropsWrapper_value_for_24 = function $$value_for(name) { + }, $PropsWrapper_props$23.$$arity = 0); + return (Opal.def(self, '$value_for', $PropsWrapper_value_for$24 = function $$value_for(name) { var self = this; if ($truthy(self['$[]'](name))) { return self['$[]'](name).$instance_variable_get("@value") - } else { + } else { return nil } - }, TMP_PropsWrapper_value_for_24.$$arity = 1), nil) && 'value_for'; + }, $PropsWrapper_value_for$24.$$arity = 1), nil) && 'value_for'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component"] = function(Opal) { +Opal.modules["hyperstack/component"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $hash = Opal.hash; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $lambda = Opal.lambda, $hash = Opal.hash; - Opal.add_stubs(['$require', '$include', '$class_eval', '$class_attribute', '$define_callback', '$add_after_error_hook', '$extend', '$respond_to?', '$!', '$<', '$allow_deprecated_render_definition?', '$deprecation_warning', '$new', '$to_a', '$mounted_components', '$each', '$include?', '$force_update!', '$name', '$class', '$event_camelize', '$to_s', '$call', '$[]', '$params', '$props_wrapper', '$on_opal_client?', '$load_context', '$observing', '$<<', '$run_callback', '$props', '$quiet_test', '$reload', '$unmount', '$remove', '$delete', '$set_state', '$==', '$method_defined?', '$raise', '$first', '$render', '$waiting_on_resources']); + Opal.add_stubs(['$require', '$include', '$class_eval', '$class_attribute', '$lambda', '$zero?', '$arity', '$deprecation_warning', '$instance_exec', '$to_proc', '$define_callback', '$add_after_error_hook', '$extend', '$respond_to?', '$!', '$<', '$allow_deprecated_render_definition?', '$new', '$to_a', '$mounted_components', '$each', '$include?', '$force_update!', '$name', '$class', '$event_camelize', '$to_s', '$call', '$[]', '$params', '$props_wrapper', '$on_opal_client?', '$load_context', '$observing', '$<<', '$run_callback', '$props', '$quiet_test', '$reload', '$unmount', '$remove', '$delete', '$set_state', '$==', '$method_defined?', '$raise', '$first', '$component_will_mount', '$_run_before_render_callbacks', '$render', '$waiting_on_resources']); self.$require("hyperstack/ext/component/string"); self.$require("hyperstack/ext/component/hash"); self.$require("active_support/core_ext/class/attribute"); - self.$require("hyperstack/internal/auto_unmount"); self.$require("hyperstack/internal/component/rendering_context"); self.$require("hyperstack/internal/component"); self.$require("hyperstack/internal/component/instance_methods"); self.$require("hyperstack/internal/component/class_methods"); self.$require("hyperstack/internal/component/props_wrapper"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Component_included_3, TMP_Component_mounted_components_4, TMP_Component_force_update$B_6, TMP_Component_deprecation_warning_7, TMP_Component_deprecation_warning_8, TMP_Component_initialize_9, TMP_Component_emit_10, TMP_Component_component_will_mount_12, TMP_Component_component_did_mount_14, TMP_Component_component_will_receive_props_16, TMP_Component_component_will_update_18, TMP_Component_component_did_update_20, TMP_Component_component_will_unmount_22, TMP_Component_component_did_catch_24, TMP_Component_mutations_25, TMP_Component_update_react_js_state_26, TMP_Component_render_27, TMP_Component_waiting_on_resources_28, TMP_Component___hyperstack_component_run_post_render_hooks_30, TMP_Component__render_wrapper_33; + var $nesting = [self].concat($parent_nesting), $Component_included$1, $Component_mounted_components$8, $Component_force_update$excl$9, $Component_deprecation_warning$11, $Component_deprecation_warning$12, $Component_initialize$13, $Component_emit$14, $Component_component_will_mount$15, $Component_component_did_mount$17, $Component_component_will_receive_props$19, $Component_component_will_update$21, $Component_component_did_update$23, $Component_component_will_unmount$25, $Component_component_did_catch$27, $Component_mutations$29, $Component_update_react_js_state$30, $Component_render$31, $Component_waiting_on_resources$32, $Component___hyperstack_component_run_post_render_hooks$33, $Component__run_before_render_callbacks$34, $Component__render_wrapper$35; - Opal.defs(self, '$included', TMP_Component_included_3 = function $$included(base) { - var TMP_1, $a, self = this; + Opal.defs(self, '$included', $Component_included$1 = function $$included(base) { + var $$2, self = this, $ret_or_1 = nil, $ret_or_2 = nil; - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'State'), 'Observer')); - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'InstanceMethods')); - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'AutoUnmount')); - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags')); - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ShouldComponentUpdate')); - $send(base, 'class_eval', [], (TMP_1 = function(){var self = TMP_1.$$s || this, TMP_2; + base.$include($$$($$$($$($nesting, 'Hyperstack'), 'State'), 'Observer')); + base.$include($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'InstanceMethods')); + base.$include($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'AutoUnmount')); + base.$include($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags')); + base.$include($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ShouldComponentUpdate')); + $send(base, 'class_eval', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $$4, $$5, $$6, $$7, method_args_deprecation_check = nil; - + self.$class_attribute("initial_state"); - self.$define_callback("before_mount"); + method_args_deprecation_check = $send(self, 'lambda', [], ($$3 = function(name, sself, proc, $a){var self = $$3.$$s == null ? this : $$3.$$s, $post_args, args; + + + + if (name == null) { + name = nil; + }; + + if (sself == null) { + sself = nil; + }; + + if (proc == null) { + proc = nil; + }; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + if ($truthy(proc.$arity()['$zero?']())) { + args = [] + } else { + self.$deprecation_warning("" + "In the future " + (name) + " callbacks will not receive any parameters.") + }; + $send(sself, 'instance_exec', Opal.to_a(args), proc.$to_proc()); + return args;}, $$3.$$s = self, $$3.$$arity = -4, $$3)); + self.$define_callback("before_mount", $hash2(["before_call_hook"], {"before_call_hook": method_args_deprecation_check})); self.$define_callback("after_mount"); - self.$define_callback("before_new_params"); - self.$define_callback("before_update"); + self.$define_callback("before_new_params", $hash2(["after_define_hook"], {"after_define_hook": $send(self, 'lambda', [], ($$4 = function(klass){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (klass == null) { + klass = nil; + }; + return klass.$deprecation_warning("" + "`before_new_params` has been deprecated. The base " + "method componentWillReceiveProps is deprecated in React without replacement");}, $$4.$$s = self, $$4.$$arity = 1, $$4))})); + self.$define_callback("before_update", $hash2(["before_call_hook"], {"before_call_hook": method_args_deprecation_check})); self.$define_callback("after_update"); - self.$define_callback("__hyperstack_component_after_render_hook"); - self.$define_callback("__hyperstack_component_rescue_hook"); - return $send(self, 'define_callback', ["after_error"], (TMP_2 = function(){var self = TMP_2.$$s || this; + self.$define_callback("__hyperstack_component_after_render_hook", $hash2(["before_call_hook"], {"before_call_hook": $lambda(($$5 = function(_, sself, proc, $a){var self = $$5.$$s == null ? this : $$5.$$s, $post_args, args; + + + + if (_ == null) { + _ = nil; + }; + + if (sself == null) { + sself = nil; + }; + + if (proc == null) { + proc = nil; + }; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + return [].concat(Opal.to_a($send(sself, 'instance_exec', Opal.to_a(args), proc.$to_proc())));}, $$5.$$s = self, $$5.$$arity = -4, $$5))})); + self.$define_callback("__hyperstack_component_rescue_hook", $hash2(["before_call_hook"], {"before_call_hook": $lambda(($$6 = function(_, sself, proc, $a){var self = $$6.$$s == null ? this : $$6.$$s, $post_args, args; + + + + if (_ == null) { + _ = nil; + }; + + if (sself == null) { + sself = nil; + }; + + if (proc == null) { + proc = nil; + }; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + return $send(sself, 'instance_exec', Opal.to_a(args), proc.$to_proc());}, $$6.$$s = self, $$6.$$arity = -4, $$6))})); + return self.$define_callback("after_error", $hash2(["after_define_hook"], {"after_define_hook": $lambda(($$7 = function(klass){var self = $$7.$$s == null ? this : $$7.$$s; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$add_after_error_hook(base)}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2));}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); - base.$extend(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ClassMethods')); + + + if (klass == null) { + klass = nil; + }; + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$add_after_error_hook(klass);}, $$7.$$s = self, $$7.$$arity = 1, $$7))}));}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + base.$extend($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ClassMethods')); if ($truthy(Opal.__hyperstack_component_original_defn)) { return nil - } else { + } else { Opal.__hyperstack_component_original_defn = Opal.defn Opal.defn = function(klass, name, fn) { - (function() {if ($truthy(($truthy($a = (klass)['$respond_to?']("hyper_component?")) ? $rb_lt(klass, Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'))['$!']() : $a))) { - if ($truthy(($truthy($a = name == '$render') ? (klass)['$allow_deprecated_render_definition?']()['$!']() : $a))) { - return Opal.const_get_relative($nesting, 'Hyperstack').$deprecation_warning(klass, "Do not directly define the render method. Use the render macro instead.") + (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = (klass)['$respond_to?']("hyper_component?")))) { + return $rb_lt(klass, $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'))['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { + if ($truthy((function() {if ($truthy(($ret_or_2 = name == '$render'))) { + return (klass)['$allow_deprecated_render_definition?']()['$!']() + } else { + return $ret_or_2 + }; return nil; })())) { + return $$($nesting, 'Hyperstack').$deprecation_warning(klass, "Do not directly define the render method. Use the render macro instead.") } else if ($truthy(name == '$__hyperstack_component_render')) { - return name = '$render' - } else { + return name = '$render'; + } else { return nil } - } else { + } else { return nil }; return nil; })() Opal.__hyperstack_component_original_defn(klass, name, fn) @@ -5872,480 +7471,543 @@ Opal.modules["hyperstack/component"] = function(Opal) { ; return nil; }; - }, TMP_Component_included_3.$$arity = 1); - Opal.defs(self, '$mounted_components', TMP_Component_mounted_components_4 = function $$mounted_components() { - var $a, self = this; + }, $Component_included$1.$$arity = 1); + Opal.defs(self, '$mounted_components', $Component_mounted_components$8 = function $$mounted_components() { + var self = this, $ret_or_3 = nil; if (self.__hyperstack_component_mounted_components == null) self.__hyperstack_component_mounted_components = nil; - return (self.__hyperstack_component_mounted_components = ($truthy($a = self.__hyperstack_component_mounted_components) ? $a : Opal.const_get_relative($nesting, 'Set').$new())) - }, TMP_Component_mounted_components_4.$$arity = 0); - Opal.defs(self, '$force_update!', TMP_Component_force_update$B_6 = function() { - var TMP_5, self = this, components = nil; + return (self.__hyperstack_component_mounted_components = (function() {if ($truthy(($ret_or_3 = self.__hyperstack_component_mounted_components))) { + return $ret_or_3 + } else { + return $$($nesting, 'Set').$new() + }; return nil; })()) + }, $Component_mounted_components$8.$$arity = 0); + Opal.defs(self, '$force_update!', $Component_force_update$excl$9 = function() { + var $$10, self = this, components = nil; components = self.$mounted_components().$to_a(); - return $send(components, 'each', [], (TMP_5 = function(comp){var self = TMP_5.$$s || this; -if (comp == null) comp = nil; - + return $send(components, 'each', [], ($$10 = function(comp){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (comp == null) { + comp = nil; + }; if ($truthy(self.$mounted_components()['$include?'](comp))) { - } else { + } else { return nil; }; - return comp['$force_update!']();}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); - }, TMP_Component_force_update$B_6.$$arity = 0); - Opal.defs(self, '$deprecation_warning', TMP_Component_deprecation_warning_7 = function $$deprecation_warning(message) { + return comp['$force_update!']();}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + }, $Component_force_update$excl$9.$$arity = 0); + Opal.defs(self, '$deprecation_warning', $Component_deprecation_warning$11 = function $$deprecation_warning(message) { var self = this; - return Opal.const_get_relative($nesting, 'Hyperstack').$deprecation_warning(self.$name(), message) - }, TMP_Component_deprecation_warning_7.$$arity = 1); + return $$($nesting, 'Hyperstack').$deprecation_warning(self.$name(), message) + }, $Component_deprecation_warning$11.$$arity = 1); - Opal.defn(self, '$deprecation_warning', TMP_Component_deprecation_warning_8 = function $$deprecation_warning(message) { + Opal.def(self, '$deprecation_warning', $Component_deprecation_warning$12 = function $$deprecation_warning(message) { var self = this; - return Opal.const_get_relative($nesting, 'Hyperstack').$deprecation_warning(self.$class().$name(), message) - }, TMP_Component_deprecation_warning_8.$$arity = 1); + return $$($nesting, 'Hyperstack').$deprecation_warning(self.$class().$name(), message) + }, $Component_deprecation_warning$12.$$arity = 1); - Opal.defn(self, '$initialize', TMP_Component_initialize_9 = function $$initialize(native_element) { + Opal.def(self, '$initialize', $Component_initialize$13 = function $$initialize(native_element) { var self = this; return (self.__hyperstack_component_native = native_element) - }, TMP_Component_initialize_9.$$arity = 1); + }, $Component_initialize$13.$$arity = 1); - Opal.defn(self, '$emit', TMP_Component_emit_10 = function $$emit(event_name, $a_rest) { - var self = this, args, built_in_event_name = nil; + Opal.def(self, '$emit', $Component_emit$14 = function $$emit(event_name, $a) { + var $post_args, args, self = this, built_in_event_name = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Event'), 'BUILT_IN_EVENTS')['$include?']((built_in_event_name = "" + "on" + (event_name.$to_s().$event_camelize()))))) { + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy($$$($$($nesting, 'Event'), 'BUILT_IN_EVENTS')['$include?']((built_in_event_name = "" + "on" + (event_name.$to_s().$event_camelize()))))) { return $send(self.$params()['$[]'](built_in_event_name), 'call', Opal.to_a(args)) - } else { + } else { return $send(self.$params()['$[]']("" + "on_" + (event_name)), 'call', Opal.to_a(args)) - } - }, TMP_Component_emit_10.$$arity = -2); + }; + }, $Component_emit$14.$$arity = -2); - Opal.defn(self, '$component_will_mount', TMP_Component_component_will_mount_12 = function $$component_will_mount() { - var TMP_11, self = this; + Opal.def(self, '$component_will_mount', $Component_component_will_mount$15 = function $$component_will_mount() { + var $$16, self = this; self.__hyperstack_component_params_wrapper = self.$class().$props_wrapper().$new(self); - if ($truthy(Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_client?']())) { - Opal.const_get_relative($nesting, 'IsomorphicHelpers').$load_context(true)}; - return $send(self, 'observing', [$hash2(["immediate_update"], {"immediate_update": true})], (TMP_11 = function(){var self = TMP_11.$$s || this; + if ($truthy($$($nesting, 'IsomorphicHelpers')['$on_opal_client?']())) { + $$($nesting, 'IsomorphicHelpers').$load_context(true)}; + return $send(self, 'observing', [$hash2(["immediate_update"], {"immediate_update": true})], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - - Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component').$mounted_components()['$<<'](self); - return self.$run_callback("before_mount", self.$props());}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11)); - }, TMP_Component_component_will_mount_12.$$arity = 0); + + $$$($$($nesting, 'Hyperstack'), 'Component').$mounted_components()['$<<'](self); + return self.$run_callback("before_mount", self.$props());}, $$16.$$s = self, $$16.$$arity = 0, $$16)); + }, $Component_component_will_mount$15.$$arity = 0); - Opal.defn(self, '$component_did_mount', TMP_Component_component_did_mount_14 = function $$component_did_mount() { - var TMP_13, self = this; + Opal.def(self, '$component_did_mount', $Component_component_did_mount$17 = function $$component_did_mount() { + var $$18, self = this; - return $send(self, 'observing', [$hash2(["update_objects"], {"update_objects": true})], (TMP_13 = function(){var self = TMP_13.$$s || this; + return $send(self, 'observing', [$hash2(["update_objects"], {"update_objects": true})], ($$18 = function(){var self = $$18.$$s == null ? this : $$18.$$s; - + self.$run_callback("after_mount"); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$quiet_test(self);}, TMP_13.$$s = self, TMP_13.$$arity = 0, TMP_13)) - }, TMP_Component_component_did_mount_14.$$arity = 0); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$quiet_test(self);}, $$18.$$s = self, $$18.$$arity = 0, $$18)) + }, $Component_component_did_mount$17.$$arity = 0); - Opal.defn(self, '$component_will_receive_props', TMP_Component_component_will_receive_props_16 = function $$component_will_receive_props(next_props) { - var TMP_15, self = this; + Opal.def(self, '$component_will_receive_props', $Component_component_will_receive_props$19 = function $$component_will_receive_props(next_props) { + var $$20, self = this; - $send(self, 'observing', [$hash2(["immediate_update"], {"immediate_update": true})], (TMP_15 = function(){var self = TMP_15.$$s || this; + $send(self, 'observing', [$hash2(["immediate_update"], {"immediate_update": true})], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s; - return self.$run_callback("before_new_params", next_props)}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)); + return self.$run_callback("before_new_params", next_props)}, $$20.$$s = self, $$20.$$arity = 0, $$20)); return (self.__hyperstack_component_receiving_props = true); - }, TMP_Component_component_will_receive_props_16.$$arity = 1); + }, $Component_component_will_receive_props$19.$$arity = 1); - Opal.defn(self, '$component_will_update', TMP_Component_component_will_update_18 = function $$component_will_update(next_props, next_state) { - var TMP_17, self = this; + Opal.def(self, '$component_will_update', $Component_component_will_update$21 = function $$component_will_update(next_props, next_state) { + var $$22, self = this; if (self.__hyperstack_component_receiving_props == null) self.__hyperstack_component_receiving_props = nil; if (self.__hyperstack_component_params_wrapper == null) self.__hyperstack_component_params_wrapper = nil; - $send(self, 'observing', [], (TMP_17 = function(){var self = TMP_17.$$s || this; + $send(self, 'observing', [], ($$22 = function(){var self = $$22.$$s == null ? this : $$22.$$s; - return self.$run_callback("before_update", next_props, next_state)}, TMP_17.$$s = self, TMP_17.$$arity = 0, TMP_17)); + return self.$run_callback("before_update", next_props, next_state)}, $$22.$$s = self, $$22.$$arity = 0, $$22)); if ($truthy(self.__hyperstack_component_receiving_props)) { self.__hyperstack_component_params_wrapper.$reload(next_props)}; return (self.__hyperstack_component_receiving_props = false); - }, TMP_Component_component_will_update_18.$$arity = 2); + }, $Component_component_will_update$21.$$arity = 2); - Opal.defn(self, '$component_did_update', TMP_Component_component_did_update_20 = function $$component_did_update(prev_props, prev_state) { - var TMP_19, self = this; + Opal.def(self, '$component_did_update', $Component_component_did_update$23 = function $$component_did_update(prev_props, prev_state) { + var $$24, self = this; - return $send(self, 'observing', [$hash2(["update_objects"], {"update_objects": true})], (TMP_19 = function(){var self = TMP_19.$$s || this; + return $send(self, 'observing', [$hash2(["update_objects"], {"update_objects": true})], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s; - + self.$run_callback("after_update", prev_props, prev_state); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$quiet_test(self);}, TMP_19.$$s = self, TMP_19.$$arity = 0, TMP_19)) - }, TMP_Component_component_did_update_20.$$arity = 2); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$quiet_test(self);}, $$24.$$s = self, $$24.$$arity = 0, $$24)) + }, $Component_component_did_update$23.$$arity = 2); - Opal.defn(self, '$component_will_unmount', TMP_Component_component_will_unmount_22 = function $$component_will_unmount() { - var TMP_21, self = this; + Opal.def(self, '$component_will_unmount', $Component_component_will_unmount$25 = function $$component_will_unmount() { + var $$26, self = this; - return $send(self, 'observing', [], (TMP_21 = function(){var self = TMP_21.$$s || this; + return $send(self, 'observing', [], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s; - + self.$unmount(); self.$remove(); - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component').$mounted_components().$delete(self);}, TMP_21.$$s = self, TMP_21.$$arity = 0, TMP_21)) - }, TMP_Component_component_will_unmount_22.$$arity = 0); + return $$$($$($nesting, 'Hyperstack'), 'Component').$mounted_components().$delete(self);}, $$26.$$s = self, $$26.$$arity = 0, $$26)) + }, $Component_component_will_unmount$25.$$arity = 0); - Opal.defn(self, '$component_did_catch', TMP_Component_component_did_catch_24 = function $$component_did_catch(error, info) { - var TMP_23, self = this; + Opal.def(self, '$component_did_catch', $Component_component_did_catch$27 = function $$component_did_catch(error, info) { + var $$28, self = this; - return $send(self, 'observing', [], (TMP_23 = function(){var self = TMP_23.$$s || this; + return $send(self, 'observing', [], ($$28 = function(){var self = $$28.$$s == null ? this : $$28.$$s; - return self.$run_callback("after_error", error, info)}, TMP_23.$$s = self, TMP_23.$$arity = 0, TMP_23)) - }, TMP_Component_component_did_catch_24.$$arity = 2); + return self.$run_callback("after_error", error, info)}, $$28.$$s = self, $$28.$$arity = 0, $$28)) + }, $Component_component_did_catch$27.$$arity = 2); - Opal.defn(self, '$mutations', TMP_Component_mutations_25 = function $$mutations(_objects) { + Opal.def(self, '$mutations', $Component_mutations$29 = function $$mutations(_objects) { var self = this; return self.$set_state($hash2(["***_state_updated_at-***"], {"***_state_updated_at-***": Date.now() + Math.random()})) - }, TMP_Component_mutations_25.$$arity = 1); + }, $Component_mutations$29.$$arity = 1); - Opal.defn(self, '$update_react_js_state', TMP_Component_update_react_js_state_26 = function $$update_react_js_state(object, name, value) { + Opal.def(self, '$update_react_js_state', $Component_update_react_js_state$30 = function $$update_react_js_state(object, name, value) { var self = this; if ($truthy(object)) { if (object['$=='](self)) { - } else { + } else { name = "" + (object.$class()) + "." + (name) }; return self.$set_state($hash("***_state_updated_at-***", Date.now() + Math.random(), name, value)); - } else { + } else { return self.$set_state($hash(name, value)) } - }, TMP_Component_update_react_js_state_26.$$arity = 3); + }, $Component_update_react_js_state$30.$$arity = 3); if ($truthy(self['$method_defined?']("render"))) { - } else { + } else { - Opal.defn(self, '$render', TMP_Component_render_27 = function $$render() { + Opal.def(self, '$render', $Component_render$31 = function $$render() { var self = this; return self.$raise("no render defined") - }, TMP_Component_render_27.$$arity = 0) + }, $Component_render$31.$$arity = 0) }; - Opal.defn(self, '$waiting_on_resources', TMP_Component_waiting_on_resources_28 = function $$waiting_on_resources() { + Opal.def(self, '$waiting_on_resources', $Component_waiting_on_resources$32 = function $$waiting_on_resources() { var self = this; if (self.__hyperstack_component_waiting_on_resources == null) self.__hyperstack_component_waiting_on_resources = nil; return self.__hyperstack_component_waiting_on_resources - }, TMP_Component_waiting_on_resources_28.$$arity = 0); + }, $Component_waiting_on_resources$32.$$arity = 0); - Opal.defn(self, '$__hyperstack_component_run_post_render_hooks', TMP_Component___hyperstack_component_run_post_render_hooks_30 = function $$__hyperstack_component_run_post_render_hooks(element) { - var TMP_29, self = this; - - return $send(self, 'run_callback', ["__hyperstack_component_after_render_hook", element], (TMP_29 = function($a_rest){var self = TMP_29.$$s || this, args; + Opal.def(self, '$__hyperstack_component_run_post_render_hooks', $Component___hyperstack_component_run_post_render_hooks$33 = function $$__hyperstack_component_run_post_render_hooks(element) { + var self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return args}, TMP_29.$$s = self, TMP_29.$$arity = -1, TMP_29)).$first() - }, TMP_Component___hyperstack_component_run_post_render_hooks_30.$$arity = 1); + return self.$run_callback("__hyperstack_component_after_render_hook", element).$first() + }, $Component___hyperstack_component_run_post_render_hooks$33.$$arity = 1); - Opal.defn(self, '$_render_wrapper', TMP_Component__render_wrapper_33 = function $$_render_wrapper() { - var TMP_31, self = this; + Opal.def(self, '$_run_before_render_callbacks', $Component__run_before_render_callbacks$34 = function $$_run_before_render_callbacks() { + var self = this; + if (self.__component_mounted == null) self.__component_mounted = nil; - return $send(self, 'observing', [$hash2(["rendering"], {"rendering": true})], (TMP_31 = function(){var self = TMP_31.$$s || this, TMP_32, element = nil; + + if ($truthy(self.__component_mounted)) { + } else { + self.$component_will_mount() + }; + return (self.__component_mounted = true); + }, $Component__run_before_render_callbacks$34.$$arity = 0); + return (Opal.def(self, '$_render_wrapper', $Component__render_wrapper$35 = function $$_render_wrapper() { + var $$36, self = this; - element = $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [nil], (TMP_32 = function(){var self = TMP_32.$$s || this, $a; + self.$_run_before_render_callbacks(); + return $send(self, 'observing', [$hash2(["rendering"], {"rendering": true})], ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s, $$37, element = nil; + + + element = $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [nil], ($$37 = function(){var self = $$37.$$s == null ? this : $$37.$$s, $ret_or_4 = nil; - return ($truthy($a = self.$render()) ? $a : "")}, TMP_32.$$s = self, TMP_32.$$arity = 0, TMP_32)); + if ($truthy(($ret_or_4 = self.$render()))) { + return $ret_or_4 + } else { + return "" + }}, $$37.$$s = self, $$37.$$arity = 0, $$37)); if ($truthy(element['$respond_to?']("waiting_on_resources"))) { self.__hyperstack_component_waiting_on_resources = element.$waiting_on_resources()}; - return element;}, TMP_31.$$s = self, TMP_31.$$arity = 0, TMP_31)) - }, TMP_Component__render_wrapper_33.$$arity = 0); + return element;}, $$36.$$s = self, $$36.$$arity = 0, $$36)); + }, $Component__render_wrapper$35.$$arity = 0), nil) && '_render_wrapper'; })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/should_component_update"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["hyperstack/internal/component/should_component_update"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$observing', '$respond_to?', '$!', '$call_needs_update', '$props_changed?', '$native_state_changed?', '$define_singleton_method', '$needs_update?', '$new', '$!=']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $ShouldComponentUpdate, self = $ShouldComponentUpdate = $module($base, 'ShouldComponentUpdate'); + return (function($base, $parent_nesting) { + var self = $module($base, 'ShouldComponentUpdate'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ShouldComponentUpdate_should_component_update$q_2, TMP_ShouldComponentUpdate_call_needs_update_5, TMP_ShouldComponentUpdate_native_state_changed$q_6, TMP_ShouldComponentUpdate_props_changed$q_7; + var $nesting = [self].concat($parent_nesting), $ShouldComponentUpdate_should_component_update$ques$1, $ShouldComponentUpdate_call_needs_update$3, $ShouldComponentUpdate_native_state_changed$ques$6, $ShouldComponentUpdate_props_changed$ques$7; - Opal.defn(self, '$should_component_update?', TMP_ShouldComponentUpdate_should_component_update$q_2 = function(next_props, next_state) { - var TMP_1, self = this; + Opal.def(self, '$should_component_update?', $ShouldComponentUpdate_should_component_update$ques$1 = function(next_props, next_state) { + var $$2, self = this; - return $send(self, 'observing', [], (TMP_1 = function(){var self = TMP_1.$$s || this, $a; + return $send(self, 'observing', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $ret_or_1 = nil; - if ($truthy(self['$respond_to?']("needs_update?"))) { + if ($truthy(self['$respond_to?']("needs_update?"))) { return self.$call_needs_update(next_props, next_state)['$!']()['$!']() - } else { - return ($truthy($a = self['$props_changed?'](next_props)) ? $a : self['$native_state_changed?'](next_state)) - }}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)) - }, TMP_ShouldComponentUpdate_should_component_update$q_2.$$arity = 2); + } else if ($truthy(($ret_or_1 = self['$props_changed?'](next_props)))) { + return $ret_or_1 + } else { + return self['$native_state_changed?'](next_state) + }}, $$2.$$s = self, $$2.$$arity = 0, $$2)) + }, $ShouldComponentUpdate_should_component_update$ques$1.$$arity = 2); - Opal.defn(self, '$call_needs_update', TMP_ShouldComponentUpdate_call_needs_update_5 = function $$call_needs_update(next_params, next_state) { - var TMP_3, TMP_4, self = this, component = nil; + Opal.def(self, '$call_needs_update', $ShouldComponentUpdate_call_needs_update$3 = function $$call_needs_update(next_params, next_state) { + var $$4, $$5, self = this, component = nil; component = self; - $send(next_params, 'define_singleton_method', ["changed?"], (TMP_3 = function(){var self = TMP_3.$$s || this; + $send(next_params, 'define_singleton_method', ["changed?"], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - return component['$props_changed?'](self)}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)); - $send(next_state, 'define_singleton_method', ["changed?"], (TMP_4 = function(){var self = TMP_4.$$s || this; + return component['$props_changed?'](self)}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + $send(next_state, 'define_singleton_method', ["changed?"], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; - return component['$native_state_changed?'](next_state)}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)); + return component['$native_state_changed?'](next_state)}, $$5.$$s = self, $$5.$$arity = 0, $$5)); return self['$needs_update?'](next_params, next_state); - }, TMP_ShouldComponentUpdate_call_needs_update_5.$$arity = 2); + }, $ShouldComponentUpdate_call_needs_update$3.$$arity = 2); - Opal.defn(self, '$native_state_changed?', TMP_ShouldComponentUpdate_native_state_changed$q_6 = function(next_state_hash) { + Opal.def(self, '$native_state_changed?', $ShouldComponentUpdate_native_state_changed$ques$6 = function(next_state_hash) { var self = this, state_hash = nil; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - state_hash = Opal.const_get_relative($nesting, 'Hash').$new(self.__hyperstack_component_native.state); + state_hash = $$($nesting, 'Hash').$new(self.__hyperstack_component_native.state); return next_state_hash['$!='](state_hash); - }, TMP_ShouldComponentUpdate_native_state_changed$q_6.$$arity = 1); - - Opal.defn(self, '$props_changed?', TMP_ShouldComponentUpdate_props_changed$q_7 = function(next_props) { + }, $ShouldComponentUpdate_native_state_changed$ques$6.$$arity = 1); + return (Opal.def(self, '$props_changed?', $ShouldComponentUpdate_props_changed$ques$7 = function(next_props) { var self = this, props = nil; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - props = Opal.const_get_relative($nesting, 'Hash').$new(self.__hyperstack_component_native.props); + props = $$($nesting, 'Hash').$new(self.__hyperstack_component_native.props); return next_props['$!='](props); - }, TMP_ShouldComponentUpdate_props_changed$q_7.$$arity = 1); + }, $ShouldComponentUpdate_props_changed$ques$7.$$arity = 1), nil) && 'props_changed?'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/tags"] = function(Opal) { +Opal.modules["hyperstack/internal/component/tags"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $klass = Opal.klass; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $klass = Opal.klass; - Opal.add_stubs(['$+', '$each', '$define_method', '$upcase', '$render', '$to_proc', '$const_set', '$downcase', '$=~', '$include?', '$create_element', '$find_component', '$find_name_and_parent', '$new', '$extend', '$private', '$name', '$split', '$>', '$length', '$last', '$[]', '$inject', '$const_get', '$lookup_const', '$!', '$method_defined?', '$raise', '$_reactrb_import_component_class', '$reverse', '$to_s', '$class', '$detect', '$const_defined?', '$respond_to?']); + Opal.add_stubs(['$+', '$each', '$define_method', '$upcase', '$render', '$to_proc', '$const_set', '$new', '$include', '$import_native_component', '$downcase', '$=~', '$include?', '$create_element', '$find_component', '$find_name_and_parent', '$extend', '$private', '$name', '$split', '$>', '$length', '$last', '$[]', '$inject', '$const_get', '$lookup_const', '$!', '$method_defined?', '$raise', '$_reactrb_import_component_class', '$==', '$reverse', '$to_s', '$class', '$detect', '$const_defined?', '$respond_to?']); (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $Component$3; - (function($base, $parent_nesting) { - var $Tags, self = $Tags = $module($base, 'Tags'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Tags'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Tags_1, TMP_Tags_html_tag_class_for_3, TMP_Tags_method_missing_4, TMP_Tags_find_component_10, TMP_Tags_lookup_const_13; + var $nesting = [self].concat($parent_nesting), $Tags$1, $Tags$4, $Tags_html_tag_class_for$6, $Tags_method_missing$7, $Tags_find_component$13, $Tags_lookup_const$14; Opal.const_set($nesting[0], 'HTML_TAGS', $rb_plus(["a", "abbr", "address", "area", "article", "aside", "audio", "b", "base", "bdi", "bdo", "big", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "menu", "menuitem", "meta", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "script", "section", "select", "small", "source", "span", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "u", "ul", "var", "video", "wbr"], ["circle", "clipPath", "defs", "ellipse", "g", "line", "linearGradient", "mask", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "svg", "text", "tspan"])); - $send(Opal.const_get_relative($nesting, 'HTML_TAGS'), 'each', [], (TMP_Tags_1 = function(tag){var self = TMP_Tags_1.$$s || this, TMP_2; -if (tag == null) tag = nil; - - $send(self, 'define_method', [tag.$upcase()], (TMP_2 = function($a_rest){var self = TMP_2.$$s || this, children, params; - - children = TMP_2.$$p || nil; - if (children) TMP_2.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [tag].concat(Opal.to_a(params)), children.$to_proc())}, TMP_2.$$s = self, TMP_2.$$arity = -1, TMP_2)); - return self.$const_set(tag.$upcase(), tag);}, TMP_Tags_1.$$s = self, TMP_Tags_1.$$arity = 1, TMP_Tags_1)); - Opal.defs(self, '$html_tag_class_for', TMP_Tags_html_tag_class_for_3 = function $$html_tag_class_for(tag) { - var $a, self = this, downcased_tag = nil; + $send($$($nesting, 'HTML_TAGS'), 'each', [], ($Tags$1 = function(tag){var self = $Tags$1.$$s == null ? this : $Tags$1.$$s, $$2; + + + + if (tag == null) { + tag = nil; + }; + $send(self, 'define_method', [tag.$upcase()], ($$2 = function($a){var self = $$2.$$s == null ? this : $$2.$$s, $iter = $$2.$$p, children = $iter || nil, $post_args, params; + + + + if ($iter) $$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + params = $post_args;; + return $send($$($nesting, 'RenderingContext'), 'render', [tag].concat(Opal.to_a(params)), children.$to_proc());}, $$2.$$s = self, $$2.$$arity = -1, $$2)); + return self.$const_set(tag.$upcase(), tag);}, $Tags$1.$$s = self, $Tags$1.$$arity = 1, $Tags$1)); + self.$const_set("FRAGMENT", $send($$($nesting, 'Class'), 'new', [], ($Tags$4 = function(){var self = $Tags$4.$$s == null ? this : $Tags$4.$$s, $$5; + + + self.$include($$$($$($nesting, 'Hyperstack'), 'Component')); + $send(self, 'render', [], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; + + return nil}, $$5.$$s = self, $$5.$$arity = 0, $$5)); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$import_native_component(self, React.Fragment);}, $Tags$4.$$s = self, $Tags$4.$$arity = 0, $Tags$4))); + Opal.defs(self, '$html_tag_class_for', $Tags_html_tag_class_for$6 = function $$html_tag_class_for(tag) { + var self = this, downcased_tag = nil, $ret_or_1 = nil; downcased_tag = tag.$downcase(); - if ($truthy(($truthy($a = tag['$=~'](/^[A-Z]+$/)) ? Opal.const_get_relative($nesting, 'HTML_TAGS')['$include?'](downcased_tag) : $a))) { - return Opal.const_get_relative($nesting, 'Object').$const_set(tag, Opal.const_get_relative($nesting, 'ReactWrapper').$create_element(downcased_tag)) - } else { + if ($truthy((function() {if ($truthy(($ret_or_1 = tag['$=~'](/^[A-Z]+$/)))) { + return $$($nesting, 'HTML_TAGS')['$include?'](downcased_tag) + } else { + return $ret_or_1 + }; return nil; })())) { + return $$($nesting, 'Object').$const_set(tag, $$($nesting, 'ReactWrapper').$create_element(downcased_tag)) + } else { return nil }; - }, TMP_Tags_html_tag_class_for_3.$$arity = 1); + }, $Tags_html_tag_class_for$6.$$arity = 1); - Opal.defn(self, '$method_missing', TMP_Tags_method_missing_4 = function $$method_missing(name, $a_rest) { - var self = this, params, $iter = TMP_Tags_method_missing_4.$$p, children = $iter || nil, component = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$method_missing', $Tags_method_missing$7 = function $$method_missing(name, $a) { + var $iter = $Tags_method_missing$7.$$p, children = $iter || nil, $post_args, params, self = this, component = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Tags_method_missing_4.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Tags_method_missing$7.$$p = null; + + if ($iter) $Tags_method_missing$7.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + params = $post_args;; component = self.$find_component(name); if ($truthy(component)) { - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [component].concat(Opal.to_a(params)), children.$to_proc())}; - return $send(self, Opal.find_super_dispatcher(self, 'method_missing', TMP_Tags_method_missing_4, false), $zuper, $iter); - }, TMP_Tags_method_missing_4.$$arity = -2); + return $send($$($nesting, 'RenderingContext'), 'render', [component].concat(Opal.to_a(params)), children.$to_proc())}; + return $send2(self, $find_super(self, 'method_missing', $Tags_method_missing$7, false, true), 'method_missing', [name].concat(Opal.to_a(params)), $iter); + }, $Tags_method_missing$7.$$arity = -2); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_included_7, TMP_find_name_and_parent_9; + var $nesting = [self].concat($parent_nesting), $included$8, $find_name_and_parent$11; - Opal.defn(self, '$included', TMP_included_7 = function $$included(component) { - var $a, $b, TMP_5, self = this, name = nil, parent = nil, tag_names_module = nil; + Opal.def(self, '$included', $included$8 = function $$included(component) { + var $a, $b, $$9, $iter = $included$8.$$p, $yield = $iter || nil, self = this, name = nil, parent = nil, tag_names_module = nil; + if ($iter) $included$8.$$p = null; $b = self.$find_name_and_parent(component), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (parent = ($a[1] == null ? nil : $a[1])), $b; - tag_names_module = $send(Opal.const_get_relative($nesting, 'Module'), 'new', [], (TMP_5 = function(){var self = TMP_5.$$s || this, TMP_6; + tag_names_module = $send($$($nesting, 'Module'), 'new', [], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s, $$10; - return $send(self, 'define_method', [name], (TMP_6 = function($c_rest){var self = TMP_6.$$s || this, children, params; + return $send(self, 'define_method', [name], ($$10 = function($c){var self = $$10.$$s == null ? this : $$10.$$s, $iter = $$10.$$p, children = $iter || nil, $post_args, params; - children = TMP_6.$$p || nil; - if (children) TMP_6.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [component].concat(Opal.to_a(params)), children.$to_proc())}, TMP_6.$$s = self, TMP_6.$$arity = -1, TMP_6))}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5)); + + + if ($iter) $$10.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + params = $post_args;; + return $send($$($nesting, 'RenderingContext'), 'render', [component].concat(Opal.to_a(params)), children.$to_proc());}, $$10.$$s = self, $$10.$$arity = -1, $$10))}, $$9.$$s = self, $$9.$$arity = 0, $$9)); return parent.$extend(tag_names_module); - }, TMP_included_7.$$arity = 1); + }, $included$8.$$arity = 1); self.$private(); - return (Opal.defn(self, '$find_name_and_parent', TMP_find_name_and_parent_9 = function $$find_name_and_parent(component) { - var $a, TMP_8, self = this, split_name = nil; + return (Opal.def(self, '$find_name_and_parent', $find_name_and_parent$11 = function $$find_name_and_parent(component) { + var $$12, self = this, split_name = nil, $ret_or_2 = nil, $ret_or_3 = nil; - split_name = ($truthy($a = component.$name()) ? component.$name().$split("::") : $a); - if ($truthy(($truthy($a = split_name) ? $rb_gt(split_name.$length(), 1) : $a))) { - return [split_name.$last(), $send(split_name, 'inject', [[Opal.const_get_relative($nesting, 'Module')]], (TMP_8 = function(a, e){var self = TMP_8.$$s || this; -if (a == null) a = nil;if (e == null) e = nil; - return $rb_plus(a, [a.$last().$const_get(e)])}, TMP_8.$$s = self, TMP_8.$$arity = 2, TMP_8))['$[]'](-2)] - } else { + split_name = (function() {if ($truthy(($ret_or_2 = component.$name()))) { + return component.$name().$split("::") + } else { + return $ret_or_2 + }; return nil; })(); + if ($truthy((function() {if ($truthy(($ret_or_3 = split_name))) { + return $rb_gt(split_name.$length(), 1) + } else { + return $ret_or_3 + }; return nil; })())) { + return [split_name.$last(), $send(split_name, 'inject', [[$$($nesting, 'Module')]], ($$12 = function(a, e){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (a == null) { + a = nil; + }; + + if (e == null) { + e = nil; + }; + return $rb_plus(a, [a.$last().$const_get(e)]);}, $$12.$$s = self, $$12.$$arity = 2, $$12))['$[]'](-2)] + } else { return nil }; - }, TMP_find_name_and_parent_9.$$arity = 1), nil) && 'find_name_and_parent'; + }, $find_name_and_parent$11.$$arity = 1), nil) && 'find_name_and_parent'; })(Opal.get_singleton_class(self), $nesting); self.$private(); - Opal.defn(self, '$find_component', TMP_Tags_find_component_10 = function $$find_component(name) { - var $a, self = this, component = nil; + Opal.def(self, '$find_component', $Tags_find_component$13 = function $$find_component(name) { + var self = this, component = nil, $ret_or_4 = nil, $ret_or_5 = nil; component = self.$lookup_const(name); - if ($truthy(($truthy($a = component) ? component['$method_defined?']("render")['$!']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = component))) { + return component['$method_defined?']("render")['$!']() + } else { + return $ret_or_4 + }; return nil; })())) { self.$raise("" + (name) + " does not appear to be a react component.")}; - return ($truthy($a = component) ? $a : Opal.const_get_relative($nesting, 'Object').$_reactrb_import_component_class(name)); - }, TMP_Tags_find_component_10.$$arity = 1); - - Opal.defn(self, '$lookup_const', TMP_Tags_lookup_const_13 = function $$lookup_const(name) { - var TMP_11, TMP_12, self = this, scopes = nil, scope = nil; + if ($truthy(($ret_or_5 = component))) { + return $ret_or_5 + } else { + return $$($nesting, 'Object').$_reactrb_import_component_class(name) + }; + }, $Tags_find_component$13.$$arity = 1); + return (Opal.def(self, '$lookup_const', $Tags_lookup_const$14 = function $$lookup_const(name) { + var $$15, $$16, self = this, scopes = nil, scope = nil; if ($truthy(name['$=~'](/^[A-Z]/))) { - } else { + } else { return nil }; - scopes = $send(self.$class().$name().$to_s().$split("::"), 'inject', [[Opal.const_get_relative($nesting, 'Object')]], (TMP_11 = function(nesting, next_const){var self = TMP_11.$$s || this; -if (nesting == null) nesting = nil;if (next_const == null) next_const = nil; - return $rb_plus(nesting, [nesting.$last().$const_get(next_const)])}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11)).$reverse(); - scope = $send(scopes, 'detect', [], (TMP_12 = function(s){var self = TMP_12.$$s || this; -if (s == null) s = nil; - return s['$const_defined?'](name, false)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)); + if (name['$==']("FRAGMENT")) { + return $$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'FRAGMENT')}; + scopes = $send(self.$class().$name().$to_s().$split("::"), 'inject', [[$$($nesting, 'Object')]], ($$15 = function(nesting, next_const){var self = $$15.$$s == null ? this : $$15.$$s; + + + + if (nesting == null) { + nesting = nil; + }; + + if (next_const == null) { + next_const = nil; + }; + return $rb_plus(nesting, [nesting.$last().$const_get(next_const)]);}, $$15.$$s = self, $$15.$$arity = 2, $$15)).$reverse(); + scope = $send(scopes, 'detect', [], ($$16 = function(s){var self = $$16.$$s == null ? this : $$16.$$s; + + + + if (s == null) { + s = nil; + }; + return s['$const_defined?'](name, false);}, $$16.$$s = self, $$16.$$arity = 1, $$16)); if ($truthy(scope)) { return scope.$const_get(name, false) - } else { + } else { return nil }; - }, TMP_Tags_lookup_const_13.$$arity = 1); + }, $Tags_lookup_const$14.$$arity = 1), nil) && 'lookup_const'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); - if ($truthy(Opal.const_get_relative($nesting, 'Object')['$respond_to?']("_reactrb_import_component_class"))) { + if ($truthy($$($nesting, 'Object')['$respond_to?']("_reactrb_import_component_class"))) { return nil - } else { + } else { return (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object__reactrb_import_component_class_14; + var $nesting = [self].concat($parent_nesting), $Object__reactrb_import_component_class$17; - return Opal.defs(self, '$_reactrb_import_component_class', TMP_Object__reactrb_import_component_class_14 = function $$_reactrb_import_component_class(_name) { + return (Opal.defs(self, '$_reactrb_import_component_class', $Object__reactrb_import_component_class$17 = function $$_reactrb_import_component_class(_name) { var self = this; return nil - }, TMP_Object__reactrb_import_component_class_14.$$arity = 1) + }, $Object__reactrb_import_component_class$17.$$arity = 1), nil) && '_reactrb_import_component_class' })($nesting[0], null, $nesting) }; }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/event"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["hyperstack/component/event"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$include', '$alias_native']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Event_initialize_1; + var $nesting = [self].concat($parent_nesting), $Event_initialize$1; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); self.$alias_native("bubbles", "bubbles"); self.$alias_native("cancelable", "cancelable"); self.$alias_native("current_target", "currentTarget"); @@ -6391,1051 +8053,821 @@ Opal.modules["hyperstack/component/event"] = function(Opal) { self.$alias_native("delta_y", "deltaY"); self.$alias_native("delta_z", "deltaZ"); Opal.const_set($nesting[0], 'BUILT_IN_EVENTS', ["onCopy", "onCut", "onPaste", "onKeyDown", "onKeyPress", "onKeyUp", "onFocus", "onBlur", "onChange", "onInput", "onSubmit", "onClick", "onContextMenu", "onDoubleClick", "onDrag", "onDragEnd", "onDragEnter", "onDragExit", "onDragLeave", "onDragOver", "onDragStart", "onDrop", "onMouseDown", "onMouseEnter", "onMouseLeave", "onMouseMove", "onMouseOut", "onMouseOver", "onMouseUp", "onSelect", "onTouchCancel", "onTouchEnd", "onTouchMove", "onTouchStart", "onScroll", "onWheel"]); - return (Opal.defn(self, '$initialize', TMP_Event_initialize_1 = function $$initialize(native_event) { + return (Opal.def(self, '$initialize', $Event_initialize$1 = function $$initialize(native_event) { var self = this; return (self["native"] = native_event) - }, TMP_Event_initialize_1.$$arity = 1), nil) && 'initialize'; + }, $Event_initialize$1.$$arity = 1), nil) && 'initialize'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/object"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["hyperstack/ext/component/object"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy; Opal.add_stubs(['$_reactrb_tag_original_const_missing', '$html_tag_class_for', '$raise', '$object_id']); return (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_to_key_2; + var $nesting = [self].concat($parent_nesting), $Object_to_key$2; (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_const_missing_1; + var $nesting = [self].concat($parent_nesting), $const_missing$1; - Opal.alias(self, "_reactrb_tag_original_const_missing", "const_missing"); - return (Opal.defn(self, '$const_missing', TMP_const_missing_1 = function $$const_missing(const_name) { - var $a, self = this, e = nil; + $alias(self, "_reactrb_tag_original_const_missing", "const_missing"); + return (Opal.def(self, '$const_missing', $const_missing$1 = function $$const_missing(const_name) { + var self = this, e = nil, $ret_or_1 = nil; try { return self.$_reactrb_tag_original_const_missing(const_name) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) {(e = $err) try { - return ($truthy($a = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags').$html_tag_class_for(const_name)) ? $a : self.$raise(e)) - } finally { Opal.pop_exception() } + if ($truthy(($ret_or_1 = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags').$html_tag_class_for(const_name)))) { + return $ret_or_1 + } else { + return self.$raise(e) + } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_const_missing_1.$$arity = 1), nil) && 'const_missing'; + }, $const_missing$1.$$arity = 1), nil) && 'const_missing'; })(Opal.get_singleton_class(self), $nesting) })($nesting[0], null, $nesting); - return (Opal.defn(self, '$to_key', TMP_Object_to_key_2 = function $$to_key() { + return (Opal.def(self, '$to_key', $Object_to_key$2 = function $$to_key() { var self = this; return self.$object_id() - }, TMP_Object_to_key_2.$$arity = 0), nil) && 'to_key'; + }, $Object_to_key$2.$$arity = 0), nil) && 'to_key'; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/kernel"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["hyperstack/ext/component/kernel"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $alias = Opal.alias; Opal.add_stubs(['$tap', '$new', '$after', '$resolve', '$call']); return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_pause_1; + var $nesting = [self].concat($parent_nesting), $Kernel_pause$1; - Opal.defn(self, '$pause', TMP_Kernel_pause_1 = function $$pause(s) { - var TMP_2, self = this, $iter = TMP_Kernel_pause_1.$$p, block = $iter || nil; - - if ($iter) TMP_Kernel_pause_1.$$p = null; - return $send(Opal.const_get_relative($nesting, 'Promise').$new(), 'tap', [], (TMP_2 = function(p){var self = TMP_2.$$s || this, TMP_3; -if (p == null) p = nil; - return $send(self, 'after', [s], (TMP_3 = function(){var self = TMP_3.$$s || this, $a; - - return $send(p, 'resolve', Opal.to_a(($truthy($a = block) ? [block.$call()] : $a)))}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3))}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)) - }, TMP_Kernel_pause_1.$$arity = 1); - Opal.alias(self, "busy_sleep", "sleep"); - Opal.alias(self, "sleep", "pause"); + Opal.def(self, '$pause', $Kernel_pause$1 = function $$pause(s) { + var $iter = $Kernel_pause$1.$$p, block = $iter || nil, $$2, self = this; + + if ($iter) $Kernel_pause$1.$$p = null; + + + if ($iter) $Kernel_pause$1.$$p = null;; + return $send($$($nesting, 'Promise').$new(), 'tap', [], ($$2 = function(p){var self = $$2.$$s == null ? this : $$2.$$s, $$3; + + + + if (p == null) { + p = nil; + }; + return $send(self, 'after', [s], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil; + + return $send(p, 'resolve', Opal.to_a((function() {if ($truthy(($ret_or_1 = block))) { + return [block.$call()] + } else { + return $ret_or_1 + }; return nil; })()))}, $$3.$$s = self, $$3.$$arity = 0, $$3));}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $Kernel_pause$1.$$arity = 1); + $alias(self, "busy_sleep", "sleep"); + return $alias(self, "sleep", "pause"); })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/number"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["hyperstack/ext/component/number"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; return (function($base, $super, $parent_nesting) { - function $Number(){}; - var self = $Number = $klass($base, $super, 'Number', $Number); + var self = $klass($base, $super, 'Number'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Number_to_key_1; + var $nesting = [self].concat($parent_nesting), $Number_to_key$1; - return (Opal.defn(self, '$to_key', TMP_Number_to_key_1 = function $$to_key() { + return (Opal.def(self, '$to_key', $Number_to_key$1 = function $$to_key() { var self = this; return self - }, TMP_Number_to_key_1.$$arity = 0), nil) && 'to_key' + }, $Number_to_key$1.$$arity = 0), nil) && 'to_key' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/boolean"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["hyperstack/ext/component/boolean"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; return (function($base, $super, $parent_nesting) { - function $Boolean(){}; - var self = $Boolean = $klass($base, $super, 'Boolean', $Boolean); + var self = $klass($base, $super, 'Boolean'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Boolean_to_key_1; + var $nesting = [self].concat($parent_nesting), $Boolean_to_key$1; - return (Opal.defn(self, '$to_key', TMP_Boolean_to_key_1 = function $$to_key() { + return (Opal.def(self, '$to_key', $Boolean_to_key$1 = function $$to_key() { var self = this; return self - }, TMP_Boolean_to_key_1.$$arity = 0), nil) && 'to_key' + }, $Boolean_to_key$1.$$arity = 0), nil) && 'to_key' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/array"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["hyperstack/ext/component/array"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$to_enum', '$size', '$reject!', '$<<']); return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_extract$B_1; + var $nesting = [self].concat($parent_nesting), $Array_extract$excl$1; - return (Opal.defn(self, '$extract!', TMP_Array_extract$B_1 = function() { - var TMP_2, TMP_3, self = this, $iter = TMP_Array_extract$B_1.$$p, $yield = $iter || nil, extracted_elements = nil; + return (Opal.def(self, '$extract!', $Array_extract$excl$1 = function() { + var $$2, $$3, $iter = $Array_extract$excl$1.$$p, $yield = $iter || nil, self = this, extracted_elements = nil; - if ($iter) TMP_Array_extract$B_1.$$p = null; + if ($iter) $Array_extract$excl$1.$$p = null; if (($yield !== nil)) { - } else { - return $send(self, 'to_enum', ["extract!"], (TMP_2 = function(){var self = TMP_2.$$s || this; + } else { + return $send(self, 'to_enum', ["extract!"], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - return self.$size()}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)) + return self.$size()}, $$2.$$s = self, $$2.$$arity = 0, $$2)) }; extracted_elements = []; - $send(self, 'reject!', [], (TMP_3 = function(element){var self = TMP_3.$$s || this; -if (element == null) element = nil; - if ($truthy(Opal.yield1($yield, element))) { + $send(self, 'reject!', [], ($$3 = function(element){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (element == null) { + element = nil; + }; + if ($truthy(Opal.yield1($yield, element))) { return extracted_elements['$<<'](element) - } else { + } else { return nil - }}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); + };}, $$3.$$s = self, $$3.$$arity = 1, $$3)); return extracted_elements; - }, TMP_Array_extract$B_1.$$arity = 0), nil) && 'extract!' + }, $Array_extract$excl$1.$$arity = 0), nil) && 'extract!' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/enumerable"] = function(Opal) { +Opal.modules["hyperstack/ext/component/enumerable"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$new', '$private_constant', '$each', '$[]=', '$-', '$!=', '$to_enum', '$respond_to?', '$size']); return (function($base, $parent_nesting) { - var $Enumerable, self = $Enumerable = $module($base, 'Enumerable'); + var self = $module($base, 'Enumerable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerable_index_with_1; + var $nesting = [self].concat($parent_nesting), $Enumerable_index_with$1; - Opal.const_set($nesting[0], 'INDEX_WITH_DEFAULT', Opal.const_get_relative($nesting, 'Object').$new()); + Opal.const_set($nesting[0], 'INDEX_WITH_DEFAULT', $$($nesting, 'Object').$new()); self.$private_constant("INDEX_WITH_DEFAULT"); - - Opal.defn(self, '$index_with', TMP_Enumerable_index_with_1 = function $$index_with(default$) { - var TMP_2, TMP_3, TMP_4, self = this, $iter = TMP_Enumerable_index_with_1.$$p, $yield = $iter || nil, result = nil; - - if (default$ == null) { - default$ = Opal.const_get_relative($nesting, 'INDEX_WITH_DEFAULT'); - } - if ($iter) TMP_Enumerable_index_with_1.$$p = null; - if (($yield !== nil)) { - - result = $hash2([], {}); - $send(self, 'each', [], (TMP_2 = function(elem){var self = TMP_2.$$s || this, $writer = nil; -if (elem == null) elem = nil; - - $writer = [elem, Opal.yield1($yield, elem)]; - $send(result, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - return result; - } else if ($truthy(default$['$!='](Opal.const_get_relative($nesting, 'INDEX_WITH_DEFAULT')))) { - - result = $hash2([], {}); - $send(self, 'each', [], (TMP_3 = function(elem){var self = TMP_3.$$s || this, $writer = nil; -if (elem == null) elem = nil; - - $writer = [elem, default$]; - $send(result, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); - return result; - } else { - return $send(self, 'to_enum', ["index_with"], (TMP_4 = function(){var self = TMP_4.$$s || this; - - if ($truthy(self['$respond_to?']("size"))) { - return self.$size() - } else { - return nil - }}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)) - } - }, TMP_Enumerable_index_with_1.$$arity = -1); - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["json"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; - - Opal.add_stubs(['$raise', '$new', '$push', '$[]=', '$-', '$[]', '$create_id', '$json_create', '$const_get', '$attr_accessor', '$create_id=', '$===', '$parse', '$generate', '$from_object', '$merge', '$to_json', '$responds_to?', '$to_io', '$write', '$to_s', '$to_a', '$strftime']); - - (function($base, $parent_nesting) { - var $JSON, self = $JSON = $module($base, 'JSON'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_JSON_$$_1, TMP_JSON_parse_2, TMP_JSON_parse$B_3, TMP_JSON_load_4, TMP_JSON_from_object_5, TMP_JSON_generate_6, TMP_JSON_dump_7, $writer = nil; - - - (function($base, $super, $parent_nesting) { - function $JSONError(){}; - var self = $JSONError = $klass($base, $super, 'JSONError', $JSONError); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - function $ParserError(){}; - var self = $ParserError = $klass($base, $super, 'ParserError', $ParserError); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], Opal.const_get_relative($nesting, 'JSONError'), $nesting); - - var $hasOwn = Opal.hasOwnProperty; - - function $parse(source) { - try { - return JSON.parse(source); - } catch (e) { - self.$raise(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'JSON'), 'ParserError'), e.message); - } - }; - - function to_opal(value, options) { - var klass, arr, hash, i, ii, k; - - switch (typeof value) { - case 'string': - return value; - - case 'number': - return value; - - case 'boolean': - return !!value; - - case 'null': - return nil; - - case 'object': - if (!value) return nil; - - if (value.$$is_array) { - arr = (options.array_class).$new(); - - for (i = 0, ii = value.length; i < ii; i++) { - (arr).$push(to_opal(value[i], options)); - } - - return arr; - } - else { - hash = (options.object_class).$new(); - - for (k in value) { - if ($hasOwn.call(value, k)) { - (($writer = [k, to_opal(value[k], options)]), $send((hash), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); - } - } - - if (!options.parse && (klass = (hash)['$[]'](Opal.const_get_relative($nesting, 'JSON').$create_id())) != nil) { - return Opal.const_get_qualified('::', 'Object').$const_get(klass).$json_create(hash); - } - else { - return hash; - } - } - } - }; - ; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - return self.$attr_accessor("create_id") - })(Opal.get_singleton_class(self), $nesting); - - $writer = ["json_class"]; - $send(self, 'create_id=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - Opal.defs(self, '$[]', TMP_JSON_$$_1 = function(value, options) { - var self = this; - - if (options == null) { - options = $hash2([], {}); - } - if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](value))) { - return self.$parse(value, options) - } else { - return self.$generate(value, options) - } - }, TMP_JSON_$$_1.$$arity = -2); - Opal.defs(self, '$parse', TMP_JSON_parse_2 = function $$parse(source, options) { - var self = this; - - if (options == null) { - options = $hash2([], {}); - } - return self.$from_object($parse(source), options.$merge($hash2(["parse"], {"parse": true}))) - }, TMP_JSON_parse_2.$$arity = -2); - Opal.defs(self, '$parse!', TMP_JSON_parse$B_3 = function(source, options) { - var self = this; - - if (options == null) { - options = $hash2([], {}); - } - return self.$parse(source, options) - }, TMP_JSON_parse$B_3.$$arity = -2); - Opal.defs(self, '$load', TMP_JSON_load_4 = function $$load(source, options) { - var self = this; - - if (options == null) { - options = $hash2([], {}); - } - return self.$from_object($parse(source), options) - }, TMP_JSON_load_4.$$arity = -2); - Opal.defs(self, '$from_object', TMP_JSON_from_object_5 = function $$from_object(js_object, options) { - var $a, self = this, $writer = nil; - - if (options == null) { - options = $hash2([], {}); - } - - ($truthy($a = options['$[]']("object_class")) ? $a : (($writer = ["object_class", Opal.const_get_relative($nesting, 'Hash')]), $send(options, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); - ($truthy($a = options['$[]']("array_class")) ? $a : (($writer = ["array_class", Opal.const_get_relative($nesting, 'Array')]), $send(options, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); - return to_opal(js_object, options.$$smap); - }, TMP_JSON_from_object_5.$$arity = -2); - Opal.defs(self, '$generate', TMP_JSON_generate_6 = function $$generate(obj, options) { - var self = this; - - if (options == null) { - options = $hash2([], {}); - } - return obj.$to_json(options) - }, TMP_JSON_generate_6.$$arity = -2); - Opal.defs(self, '$dump', TMP_JSON_dump_7 = function $$dump(obj, io, limit) { - var self = this, string = nil; - - if (io == null) { - io = nil; - } - if (limit == null) { - limit = nil; - } - - string = self.$generate(obj); - if ($truthy(io)) { - - if ($truthy(io['$responds_to?']("to_io"))) { - io = io.$to_io()}; - io.$write(string); - return io; - } else { - return string - }; - }, TMP_JSON_dump_7.$$arity = -2); - })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_to_json_8; - - return (Opal.defn(self, '$to_json', TMP_Object_to_json_8 = function $$to_json() { - var self = this; - - return self.$to_s().$to_json() - }, TMP_Object_to_json_8.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $parent_nesting) { - var $Enumerable, self = $Enumerable = $module($base, 'Enumerable'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerable_to_json_9; - - - Opal.defn(self, '$to_json', TMP_Enumerable_to_json_9 = function $$to_json() { - var self = this; - - return self.$to_a().$to_json() - }, TMP_Enumerable_to_json_9.$$arity = 0) - })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_to_json_10; - - return (Opal.defn(self, '$to_json', TMP_Array_to_json_10 = function $$to_json() { - var self = this; + return (Opal.def(self, '$index_with', $Enumerable_index_with$1 = function $$index_with(default$) { + var $$2, $$3, $$4, $iter = $Enumerable_index_with$1.$$p, $yield = $iter || nil, self = this, result = nil; + if ($iter) $Enumerable_index_with$1.$$p = null; - var result = []; - - for (var i = 0, length = self.length; i < length; i++) { - result.push((self[i]).$to_json()); - } - - return '[' + result.join(', ') + ']'; - - }, TMP_Array_to_json_10.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Boolean(){}; - var self = $Boolean = $klass($base, $super, 'Boolean', $Boolean); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Boolean_to_json_11; - - return (Opal.defn(self, '$to_json', TMP_Boolean_to_json_11 = function $$to_json() { - var self = this; - - return (self == true) ? 'true' : 'false' - }, TMP_Boolean_to_json_11.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_to_json_12; - - return (Opal.defn(self, '$to_json', TMP_Hash_to_json_12 = function $$to_json() { - var self = this; - - var result = []; - - for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { - key = keys[i]; - - if (key.$$is_string) { - value = self.$$smap[key]; - } else { - value = key.value; - key = key.key; - } - - result.push((key).$to_s().$to_json() + ':' + (value).$to_json()); - } - - return '{' + result.join(', ') + '}'; - - }, TMP_Hash_to_json_12.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $NilClass(){}; - var self = $NilClass = $klass($base, $super, 'NilClass', $NilClass); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NilClass_to_json_13; - - return (Opal.defn(self, '$to_json', TMP_NilClass_to_json_13 = function $$to_json() { - var self = this; - - return "null" - }, TMP_NilClass_to_json_13.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Numeric(){}; - var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Numeric_to_json_14; - - return (Opal.defn(self, '$to_json', TMP_Numeric_to_json_14 = function $$to_json() { - var self = this; - - return self.toString() - }, TMP_Numeric_to_json_14.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + if (default$ == null) { + default$ = $$($nesting, 'INDEX_WITH_DEFAULT'); + }; + if (($yield !== nil)) { + + result = $hash2([], {}); + $send(self, 'each', [], ($$2 = function(elem){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (elem == null) { + elem = nil; + }; + $writer = [elem, Opal.yield1($yield, elem)]; + $send(result, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + return result; + } else if ($truthy(default$['$!=']($$($nesting, 'INDEX_WITH_DEFAULT')))) { + + result = $hash2([], {}); + $send(self, 'each', [], ($$3 = function(elem){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; - return Opal.alias(self, "to_json", "inspect") - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Time(){}; - var self = $Time = $klass($base, $super, 'Time', $Time); + + + if (elem == null) { + elem = nil; + }; + $writer = [elem, default$]; + $send(result, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + return result; + } else { + return $send(self, 'to_enum', ["index_with"], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Time_to_json_15; + if ($truthy(self['$respond_to?']("size"))) { + return self.$size() + } else { + return nil + }}, $$4.$$s = self, $$4.$$arity = 0, $$4)) + }; + }, $Enumerable_index_with$1.$$arity = -1), nil) && 'index_with'; + })($nesting[0], $nesting) +}; - return (Opal.defn(self, '$to_json', TMP_Time_to_json_15 = function $$to_json() { - var self = this; +Opal.modules["hyperstack/ext/component/time"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; - return self.$strftime("%FT%T%z").$to_json() - }, TMP_Time_to_json_15.$$arity = 0), nil) && 'to_json' - })($nesting[0], null, $nesting); + Opal.add_stubs(['$to_json', '$strftime']); return (function($base, $super, $parent_nesting) { - function $Date(){}; - var self = $Date = $klass($base, $super, 'Date', $Date); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Date_to_json_16, TMP_Date_as_json_17; + var self = $klass($base, $super, 'Time'); - - - Opal.defn(self, '$to_json', TMP_Date_to_json_16 = function $$to_json() { - var self = this; + var $nesting = [self].concat($parent_nesting), $Time_to_json$1; - return self.$to_s().$to_json() - }, TMP_Date_to_json_16.$$arity = 0); - return (Opal.defn(self, '$as_json', TMP_Date_as_json_17 = function $$as_json() { + return (Opal.def(self, '$to_json', $Time_to_json$1 = function $$to_json() { var self = this; - return self.$to_s() - }, TMP_Date_as_json_17.$$arity = 0), nil) && 'as_json'; - })($nesting[0], null, $nesting); + return self.$strftime("%FT%T.%3N%z").$to_json() + }, $Time_to_json$1.$$arity = 0), nil) && 'to_json' + })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/isomorphic_helpers"] = function(Opal) { +Opal.modules["hyperstack/component/isomorphic_helpers"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send, $klass = Opal.klass, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $class_variable_get = Opal.class_variable_get, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$extend', '$!=', '$!', '$unique_id', '$on_opal_server?', '$log', '$new', '$is_a?', '$==', '$production?', '$env', '$+', '$[]', '$class', '$on_opal_client?', '$join', '$collect', '$prerender_footer_blocks', '$call', '$attr_reader', '$[]=', '$-', '$run', '$each', '$before_first_mount_blocks', '$send_to_opal', '$eval', '$length', '$load!', '$tr', '$<<', '$first', '$send_to_server', '$to_json', '$parse', '$controller', '$context', '$register_before_first_mount_block', '$to_proc', '$register_prerender_footer_block', '$send', '$result']); + Opal.add_stubs(['$require', '$extend', '$!', '$!=', '$unique_id', '$on_opal_server?', '$log', '$new', '$is_a?', '$==', '$production?', '$env', '$+', '$[]', '$class', '$on_opal_client?', '$join', '$collect', '$prerender_footer_blocks', '$call', '$attr_reader', '$[]=', '$-', '$run', '$each', '$before_first_mount_blocks', '$send_to_opal', '$eval', '$load!', '$tr', '$<<', '$first', '$send_to_server', '$to_json', '$parse', '$controller', '$context', '$register_before_first_mount_block', '$to_proc', '$register_prerender_footer_block', '$send', '$result']); self.$require("hyperstack/internal/component"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $IsomorphicHelpers, self = $IsomorphicHelpers = $module($base, 'IsomorphicHelpers'); + return (function($base, $parent_nesting) { + var self = $module($base, 'IsomorphicHelpers'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IsomorphicHelpers_included_1, TMP_IsomorphicHelpers_load_context_2, TMP_IsomorphicHelpers_context_3, TMP_IsomorphicHelpers_log_4, TMP_IsomorphicHelpers_on_opal_server$q_5, TMP_IsomorphicHelpers_on_opal_client$q_6, TMP_IsomorphicHelpers_log_7, TMP_IsomorphicHelpers_on_opal_server$q_8, TMP_IsomorphicHelpers_on_opal_client$q_9, TMP_IsomorphicHelpers_prerender_footers_11; + var $nesting = [self].concat($parent_nesting), $IsomorphicHelpers_included$1, $IsomorphicHelpers_load_context$2, $IsomorphicHelpers_context$3, $IsomorphicHelpers_log$4, $IsomorphicHelpers_on_opal_server$ques$5, $IsomorphicHelpers_on_opal_client$ques$6, $IsomorphicHelpers_log$7, $IsomorphicHelpers_on_opal_server$ques$8, $IsomorphicHelpers_on_opal_client$ques$9, $IsomorphicHelpers_prerender_footers$10; - Opal.defs(self, '$included', TMP_IsomorphicHelpers_included_1 = function $$included(base) { + Opal.defs(self, '$included', $IsomorphicHelpers_included$1 = function $$included(base) { var self = this; - return base.$extend(Opal.const_get_relative($nesting, 'ClassMethods')) - }, TMP_IsomorphicHelpers_included_1.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil - } else { - Opal.defs(self, '$load_context', TMP_IsomorphicHelpers_load_context_2 = function $$load_context(unique_id, name) { - var $a, $b, self = this, message = nil; - if (self.context == null) self.context = nil; + return base.$extend($$($nesting, 'ClassMethods')) + }, $IsomorphicHelpers_included$1.$$arity = 1); + Opal.defs(self, '$load_context', $IsomorphicHelpers_load_context$2 = function $$load_context(unique_id, name) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, message = nil; + if (self.context == null) self.context = nil; - if (unique_id == null) { - unique_id = nil; - } - if (name == null) { - name = nil; - } + + + if (unique_id == null) { + unique_id = nil; + }; + + if (name == null) { + name = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = unique_id['$!']()))) { + return $ret_or_2 + } else { + return self.context['$!']() + }; return nil; })()))) { + return $ret_or_1 + } else { + return self.context.$unique_id()['$!='](unique_id) + }; return nil; })())) { - if ($truthy(($truthy($a = ($truthy($b = unique_id['$!']()) ? $b : self.context['$!']())) ? $a : self.context.$unique_id()['$!='](unique_id)))) { + message = (function() {if ($truthy(self['$on_opal_server?']())) { - message = (function() {if ($truthy(self['$on_opal_server?']())) { - - try { - console.history = [] - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { - try { - nil - } finally { Opal.pop_exception() } - } else { throw $err; } - }; - return "" + "************************ React Prerendering Context Initialized " + (name) + " ***********************"; - } else { - return "************************ React Browser Context Initialized ****************************" - }; return nil; })(); - self.$log(message); - self.context = Opal.const_get_relative($nesting, 'Context').$new(unique_id);}; - return true; - }, TMP_IsomorphicHelpers_load_context_2.$$arity = -1) - }; - Opal.defs(self, '$context', TMP_IsomorphicHelpers_context_3 = function $$context() { + try { + console.history = [] + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { + try { + nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + return "" + "************************ React Prerendering Context Initialized " + (name) + " ***********************"; + } else { + return "************************ React Browser Context Initialized ****************************" + }; return nil; })(); + self.$log(message); + self.context = $$($nesting, 'Context').$new(unique_id);}; + return true; + }, $IsomorphicHelpers_load_context$2.$$arity = -1); + Opal.defs(self, '$context', $IsomorphicHelpers_context$3 = function $$context() { var self = this; if (self.context == null) self.context = nil; return self.context - }, TMP_IsomorphicHelpers_context_3.$$arity = 0); - Opal.defs(self, '$log', TMP_IsomorphicHelpers_log_4 = function $$log(message, message_type) { - var $a, $b, self = this, style = nil; + }, $IsomorphicHelpers_context$3.$$arity = 0); + Opal.defs(self, '$log', $IsomorphicHelpers_log$4 = function $$log(message, message_type) { + var self = this, $ret_or_3 = nil, $ret_or_4 = nil, style = nil; + + if (message_type == null) { message_type = "info"; - } - - if ($truthy(message['$is_a?'](Opal.const_get_relative($nesting, 'Array')))) { - } else { + }; + if ($truthy(message['$is_a?']($$($nesting, 'Array')))) { + } else { message = [message] }; - if ($truthy(($truthy($a = ($truthy($b = message_type['$==']("info")) ? $b : message_type['$==']("warning"))) ? Opal.const_get_relative($nesting, 'Hyperstack').$env()['$production?']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = message_type['$==']("info")))) { + return $ret_or_4 + } else { + return message_type['$==']("warning") + }; return nil; })()))) { + return $$($nesting, 'Hyperstack').$env()['$production?']() + } else { + return $ret_or_3 + }; return nil; })())) { return nil}; if (message_type['$==']("info")) { if ($truthy(self['$on_opal_server?']())) { style = "background: #00FFFF; color: red" - } else { + } else { style = "background: #222; color: #bada55" }; message = $rb_plus([$rb_plus("%c", message['$[]'](0)), style], message['$[]']($range(1, -1, false))); - return console.log.apply(console, message); + return console.log.apply(console, message);; } else if (message_type['$==']("warning")) { - return console.warn.apply(console, message) - } else { - return console.error.apply(console, message) - }; - }, TMP_IsomorphicHelpers_log_4.$$arity = -2); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil + return console.warn.apply(console, message); } else { - - Opal.defs(self, '$on_opal_server?', TMP_IsomorphicHelpers_on_opal_server$q_5 = function() { - var self = this; + return console.error.apply(console, message); + }; + }, $IsomorphicHelpers_log$4.$$arity = -2); + + Opal.defs(self, '$on_opal_server?', $IsomorphicHelpers_on_opal_server$ques$5 = function() { + var self = this; - return typeof Opal.global.document === 'undefined' - }, TMP_IsomorphicHelpers_on_opal_server$q_5.$$arity = 0); - Opal.defs(self, '$on_opal_client?', TMP_IsomorphicHelpers_on_opal_client$q_6 = function() { - var self = this; + return typeof Opal.global.document === 'undefined'; + }, $IsomorphicHelpers_on_opal_server$ques$5.$$arity = 0); + Opal.defs(self, '$on_opal_client?', $IsomorphicHelpers_on_opal_client$ques$6 = function() { + var self = this; - return self['$on_opal_server?']()['$!']() - }, TMP_IsomorphicHelpers_on_opal_client$q_6.$$arity = 0); - }; + return self['$on_opal_server?']()['$!']() + }, $IsomorphicHelpers_on_opal_client$ques$6.$$arity = 0);; - Opal.defn(self, '$log', TMP_IsomorphicHelpers_log_7 = function $$log($a_rest) { - var self = this, args; + Opal.def(self, '$log', $IsomorphicHelpers_log$7 = function $$log($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'log', Opal.to_a(args)) - }, TMP_IsomorphicHelpers_log_7.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'IsomorphicHelpers'), 'log', Opal.to_a(args)); + }, $IsomorphicHelpers_log$7.$$arity = -1); - Opal.defn(self, '$on_opal_server?', TMP_IsomorphicHelpers_on_opal_server$q_8 = function() { + Opal.def(self, '$on_opal_server?', $IsomorphicHelpers_on_opal_server$ques$8 = function() { var self = this; return self.$class()['$on_opal_server?']() - }, TMP_IsomorphicHelpers_on_opal_server$q_8.$$arity = 0); + }, $IsomorphicHelpers_on_opal_server$ques$8.$$arity = 0); - Opal.defn(self, '$on_opal_client?', TMP_IsomorphicHelpers_on_opal_client$q_9 = function() { + Opal.def(self, '$on_opal_client?', $IsomorphicHelpers_on_opal_client$ques$9 = function() { var self = this; return self.$class()['$on_opal_client?']() - }, TMP_IsomorphicHelpers_on_opal_client$q_9.$$arity = 0); - Opal.defs(self, '$prerender_footers', TMP_IsomorphicHelpers_prerender_footers_11 = function $$prerender_footers(controller) { - var TMP_10, self = this, footer = nil; + }, $IsomorphicHelpers_on_opal_client$ques$9.$$arity = 0); + Opal.defs(self, '$prerender_footers', $IsomorphicHelpers_prerender_footers$10 = function $$prerender_footers(controller) { + var $$11, self = this, footer = nil; + + if (controller == null) { controller = nil; - } - - footer = $send(Opal.const_get_relative($nesting, 'Context').$prerender_footer_blocks(), 'collect', [], (TMP_10 = function(block){var self = TMP_10.$$s || this; -if (block == null) block = nil; - return block.$call(controller)}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)).$join("\n"); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; + }; + footer = $send($$($nesting, 'Context').$prerender_footer_blocks(), 'collect', [], ($$11 = function(block){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (block == null) { + block = nil; + }; + return block.$call(controller);}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$join("\n"); + nil; return footer; - }, TMP_IsomorphicHelpers_prerender_footers_11.$$arity = -1); + }, $IsomorphicHelpers_prerender_footers$10.$$arity = -1); (function($base, $super, $parent_nesting) { - function $Context(){}; - var self = $Context = $klass($base, $super, 'Context', $Context); + var self = $klass($base, $super, 'Context'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Context_define_isomorphic_method_12, TMP_Context_before_first_mount_blocks_13, TMP_Context_prerender_footer_blocks_14, TMP_Context_initialize_16, TMP_Context_load_opal_context_17, TMP_Context_eval_18, TMP_Context_send_to_opal_20, TMP_Context_register_before_first_mount_block_21, TMP_Context_register_prerender_footer_block_22; + var $nesting = [self].concat($parent_nesting), $Context_define_isomorphic_method$12, $Context_before_first_mount_blocks$13, $Context_prerender_footer_blocks$14, $Context_initialize$15, $Context_load_opal_context$17, $Context_eval$18, $Context_send_to_opal$19, $Context_register_before_first_mount_block$21, $Context_register_prerender_footer_block$22; - def.unique_id = def.cname = def.ctx = nil; + self.$$prototype.unique_id = self.$$prototype.cname = self.$$prototype.ctx = nil; self.$attr_reader("controller"); self.$attr_reader("unique_id"); - Opal.defs(self, '$define_isomorphic_method', TMP_Context_define_isomorphic_method_12 = function $$define_isomorphic_method(method_name) { - var $a, $b, self = this, $iter = TMP_Context_define_isomorphic_method_12.$$p, block = $iter || nil, $writer = nil; + Opal.defs(self, '$define_isomorphic_method', $Context_define_isomorphic_method$12 = function $$define_isomorphic_method(method_name) { + var $iter = $Context_define_isomorphic_method$12.$$p, block = $iter || nil, $a, self = this, $ret_or_5 = nil, $writer = nil; - if ($iter) TMP_Context_define_isomorphic_method_12.$$p = null; + if ($iter) $Context_define_isomorphic_method$12.$$p = null; + - (Opal.class_variable_set($Context, '@@ctx_methods', ($truthy($a = (($b = $Context.$$cvars['@@ctx_methods']) == null ? nil : $b)) ? $a : $hash2([], {})))); + if ($iter) $Context_define_isomorphic_method$12.$$p = null;; + $class_variable_set($nesting[0], '@@ctx_methods', (function() {if ($truthy((($a = $nesting[0].$$cvars['@@ctx_methods'], $a != null) ? 'class variable' : nil))) { + + if ($truthy(($ret_or_5 = $class_variable_get($nesting[0], '@@ctx_methods', false)))) { + return $ret_or_5 + } else { + return $hash2([], {}) + }; + } else { + return $hash2([], {}) + }; return nil; })()); $writer = [method_name, block]; - $send((($a = $Context.$$cvars['@@ctx_methods']) == null ? nil : $a), '[]=', Opal.to_a($writer)); + $send($class_variable_get($nesting[0], '@@ctx_methods', false), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_Context_define_isomorphic_method_12.$$arity = 1); - Opal.defs(self, '$before_first_mount_blocks', TMP_Context_before_first_mount_blocks_13 = function $$before_first_mount_blocks() { - var $a, self = this; + }, $Context_define_isomorphic_method$12.$$arity = 1); + Opal.defs(self, '$before_first_mount_blocks', $Context_before_first_mount_blocks$13 = function $$before_first_mount_blocks() { + var self = this, $ret_or_6 = nil; if (self.before_first_mount_blocks == null) self.before_first_mount_blocks = nil; - return (self.before_first_mount_blocks = ($truthy($a = self.before_first_mount_blocks) ? $a : [])) - }, TMP_Context_before_first_mount_blocks_13.$$arity = 0); - Opal.defs(self, '$prerender_footer_blocks', TMP_Context_prerender_footer_blocks_14 = function $$prerender_footer_blocks() { - var $a, self = this; + return (self.before_first_mount_blocks = (function() {if ($truthy(($ret_or_6 = self.before_first_mount_blocks))) { + return $ret_or_6 + } else { + return [] + }; return nil; })()) + }, $Context_before_first_mount_blocks$13.$$arity = 0); + Opal.defs(self, '$prerender_footer_blocks', $Context_prerender_footer_blocks$14 = function $$prerender_footer_blocks() { + var self = this, $ret_or_7 = nil; if (self.prerender_footer_blocks == null) self.prerender_footer_blocks = nil; - return (self.prerender_footer_blocks = ($truthy($a = self.prerender_footer_blocks) ? $a : [])) - }, TMP_Context_prerender_footer_blocks_14.$$arity = 0); + return (self.prerender_footer_blocks = (function() {if ($truthy(($ret_or_7 = self.prerender_footer_blocks))) { + return $ret_or_7 + } else { + return [] + }; return nil; })()) + }, $Context_prerender_footer_blocks$14.$$arity = 0); - Opal.defn(self, '$initialize', TMP_Context_initialize_16 = function $$initialize(unique_id, ctx, controller, cname) { - var TMP_15, self = this; + Opal.def(self, '$initialize', $Context_initialize$15 = function $$initialize(unique_id, ctx, controller, cname) { + var $$16, self = this; + + if (ctx == null) { ctx = nil; - } + }; + if (controller == null) { controller = nil; - } + }; + if (cname == null) { cname = nil; - } - + }; self.unique_id = unique_id; self.cname = cname; - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Application'), 'Boot').$run($hash2(["context"], {"context": self})); - return $send(self.$class().$before_first_mount_blocks(), 'each', [], (TMP_15 = function(block){var self = TMP_15.$$s || this; -if (block == null) block = nil; - return block.$call(self)}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)); - }, TMP_Context_initialize_16.$$arity = -2); - - Opal.defn(self, '$load_opal_context', TMP_Context_load_opal_context_17 = function $$load_opal_context() { + nil; + $$$($$$($$($nesting, 'Hyperstack'), 'Application'), 'Boot').$run($hash2(["context"], {"context": self})); + return $send(self.$class().$before_first_mount_blocks(), 'each', [], ($$16 = function(block){var self = $$16.$$s == null ? this : $$16.$$s; + + + + if (block == null) { + block = nil; + }; + return block.$call(self);}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + }, $Context_initialize$15.$$arity = -2); + + Opal.def(self, '$load_opal_context', $Context_load_opal_context$17 = function $$load_opal_context() { var self = this; return self.$send_to_opal("load_context", self.unique_id, self.cname) - }, TMP_Context_load_opal_context_17.$$arity = 0); + }, $Context_load_opal_context$17.$$arity = 0); - Opal.defn(self, '$eval', TMP_Context_eval_18 = function(js) { + Opal.def(self, '$eval', $Context_eval$18 = function(js) { var self = this; if ($truthy(self.ctx)) { return self.ctx.$eval(js) - } else { + } else { return nil } - }, TMP_Context_eval_18.$$arity = 1); + }, $Context_eval$18.$$arity = 1); - Opal.defn(self, '$send_to_opal', TMP_Context_send_to_opal_20 = function $$send_to_opal(method_name, $a_rest) { - var TMP_19, self = this, args, method_args = nil; + Opal.def(self, '$send_to_opal', $Context_send_to_opal$19 = function $$send_to_opal(method_name, $a) { + var $post_args, args, $$20, self = this, method_args = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(self.ctx)) { - } else { + } else { return nil }; - if (args.$length()['$=='](0)) { - args = [1]}; - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Rails'), 'ComponentLoader').$new(self.ctx)['$load!'](); - method_args = $send(args, 'collect', [], (TMP_19 = function(arg){var self = TMP_19.$$s || this, quarg = nil; -if (arg == null) arg = nil; - + $$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Rails'), 'ComponentLoader').$new(self.ctx)['$load!'](); + method_args = $send(args, 'collect', [], ($$20 = function(arg){var self = $$20.$$s == null ? this : $$20.$$s, quarg = nil; + + + + if (arg == null) { + arg = nil; + }; quarg = ("" + (arg)).$tr("\"", "'"); - return "" + "\"" + (quarg) + "\"";}, TMP_19.$$s = self, TMP_19.$$arity = 1, TMP_19)).$join(", "); + return "" + "\"" + (quarg) + "\"";}, $$20.$$s = self, $$20.$$arity = 1, $$20)).$join(", "); return self.ctx.$eval("" + "Opal.Hyperstack.$const_get('Component').$const_get('IsomorphicHelpers').$" + (method_name) + "(" + (method_args) + ")"); - }, TMP_Context_send_to_opal_20.$$arity = -2); - Opal.defs(self, '$register_before_first_mount_block', TMP_Context_register_before_first_mount_block_21 = function $$register_before_first_mount_block() { - var self = this, $iter = TMP_Context_register_before_first_mount_block_21.$$p, block = $iter || nil; - - if ($iter) TMP_Context_register_before_first_mount_block_21.$$p = null; - return self.$before_first_mount_blocks()['$<<'](block) - }, TMP_Context_register_before_first_mount_block_21.$$arity = 0); - return Opal.defs(self, '$register_prerender_footer_block', TMP_Context_register_prerender_footer_block_22 = function $$register_prerender_footer_block() { - var self = this, $iter = TMP_Context_register_prerender_footer_block_22.$$p, block = $iter || nil; - - if ($iter) TMP_Context_register_prerender_footer_block_22.$$p = null; - return self.$prerender_footer_blocks()['$<<'](block) - }, TMP_Context_register_prerender_footer_block_22.$$arity = 0); + }, $Context_send_to_opal$19.$$arity = -2); + Opal.defs(self, '$register_before_first_mount_block', $Context_register_before_first_mount_block$21 = function $$register_before_first_mount_block() { + var $iter = $Context_register_before_first_mount_block$21.$$p, block = $iter || nil, self = this; + + if ($iter) $Context_register_before_first_mount_block$21.$$p = null; + + + if ($iter) $Context_register_before_first_mount_block$21.$$p = null;; + return self.$before_first_mount_blocks()['$<<'](block); + }, $Context_register_before_first_mount_block$21.$$arity = 0); + return (Opal.defs(self, '$register_prerender_footer_block', $Context_register_prerender_footer_block$22 = function $$register_prerender_footer_block() { + var $iter = $Context_register_prerender_footer_block$22.$$p, block = $iter || nil, self = this; + + if ($iter) $Context_register_prerender_footer_block$22.$$p = null; + + + if ($iter) $Context_register_prerender_footer_block$22.$$p = null;; + return self.$prerender_footer_blocks()['$<<'](block); + }, $Context_register_prerender_footer_block$22.$$arity = 0), nil) && 'register_prerender_footer_block'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $IsomorphicProcCall(){}; - var self = $IsomorphicProcCall = $klass($base, $super, 'IsomorphicProcCall', $IsomorphicProcCall); + var self = $klass($base, $super, 'IsomorphicProcCall'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IsomorphicProcCall_result_23, TMP_IsomorphicProcCall_initialize_24, TMP_IsomorphicProcCall_when_on_client_25, TMP_IsomorphicProcCall_send_to_server_26, TMP_IsomorphicProcCall_when_on_server_27; + var $nesting = [self].concat($parent_nesting), $IsomorphicProcCall_result$23, $IsomorphicProcCall_initialize$24, $IsomorphicProcCall_when_on_client$25, $IsomorphicProcCall_send_to_server$26, $IsomorphicProcCall_when_on_server$27; - def.result = def.name = nil; + self.$$prototype.result = self.$$prototype.name = nil; self.$attr_reader("context"); - Opal.defn(self, '$result', TMP_IsomorphicProcCall_result_23 = function $$result() { + Opal.def(self, '$result', $IsomorphicProcCall_result$23 = function $$result() { var self = this; if ($truthy(self.result)) { return self.result.$first() - } else { + } else { return nil } - }, TMP_IsomorphicProcCall_result_23.$$arity = 0); + }, $IsomorphicProcCall_result$23.$$arity = 0); - Opal.defn(self, '$initialize', TMP_IsomorphicProcCall_initialize_24 = function $$initialize(name, block, context, $a_rest) { - var $b, self = this, args; + Opal.def(self, '$initialize', $IsomorphicProcCall_initialize$24 = function $$initialize(name, block, context, $a) { + var $post_args, args, self = this, $ret_or_8 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 3; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 3; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 3] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; self.name = name; self.context = context; $send(block, 'call', [self].concat(Opal.to_a(args))); - return (self.result = ($truthy($b = self.result) ? $b : $send(self, 'send_to_server', Opal.to_a(args)))); - }, TMP_IsomorphicProcCall_initialize_24.$$arity = -4); + return (self.result = (function() {if ($truthy(($ret_or_8 = self.result))) { + return $ret_or_8 + } else { + return $send(self, 'send_to_server', Opal.to_a(args)) + }; return nil; })()); + }, $IsomorphicProcCall_initialize$24.$$arity = -4); - Opal.defn(self, '$when_on_client', TMP_IsomorphicProcCall_when_on_client_25 = function $$when_on_client() { - var self = this, $iter = TMP_IsomorphicProcCall_when_on_client_25.$$p, block = $iter || nil; + Opal.def(self, '$when_on_client', $IsomorphicProcCall_when_on_client$25 = function $$when_on_client() { + var $iter = $IsomorphicProcCall_when_on_client$25.$$p, block = $iter || nil, self = this; - if ($iter) TMP_IsomorphicProcCall_when_on_client_25.$$p = null; - if ($truthy(Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_client?']())) { + if ($iter) $IsomorphicProcCall_when_on_client$25.$$p = null; + + + if ($iter) $IsomorphicProcCall_when_on_client$25.$$p = null;; + if ($truthy($$($nesting, 'IsomorphicHelpers')['$on_opal_client?']())) { return (self.result = [block.$call()]) - } else { + } else { return nil - } - }, TMP_IsomorphicProcCall_when_on_client_25.$$arity = 0); + }; + }, $IsomorphicProcCall_when_on_client$25.$$arity = 0); - Opal.defn(self, '$send_to_server', TMP_IsomorphicProcCall_send_to_server_26 = function $$send_to_server($a_rest) { - var self = this, args, method_string = nil; + Opal.def(self, '$send_to_server', $IsomorphicProcCall_send_to_server$26 = function $$send_to_server($a) { + var $post_args, args, self = this, method_string = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_server?']())) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy($$($nesting, 'IsomorphicHelpers')['$on_opal_server?']())) { method_string = $rb_plus($rb_plus($rb_plus($rb_plus("ServerSideIsomorphicMethod.", self.name), "("), args.$to_json()), ")"); - return (self.result = [Opal.const_get_relative($nesting, 'JSON').$parse(eval(method_string))]); - } else { + return (self.result = [$$($nesting, 'JSON').$parse(eval(method_string))]); + } else { return nil - } - }, TMP_IsomorphicProcCall_send_to_server_26.$$arity = -1); - return (Opal.defn(self, '$when_on_server', TMP_IsomorphicProcCall_when_on_server_27 = function $$when_on_server() { - var $a, self = this, $iter = TMP_IsomorphicProcCall_when_on_server_27.$$p, block = $iter || nil; + }; + }, $IsomorphicProcCall_send_to_server$26.$$arity = -1); + return (Opal.def(self, '$when_on_server', $IsomorphicProcCall_when_on_server$27 = function $$when_on_server() { + var $iter = $IsomorphicProcCall_when_on_server$27.$$p, block = $iter || nil, self = this, $ret_or_9 = nil; - if ($iter) TMP_IsomorphicProcCall_when_on_server_27.$$p = null; - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_client?']()) ? $a : Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_server?']()))) { + if ($iter) $IsomorphicProcCall_when_on_server$27.$$p = null; + + + if ($iter) $IsomorphicProcCall_when_on_server$27.$$p = null;; + if ($truthy((function() {if ($truthy(($ret_or_9 = $$($nesting, 'IsomorphicHelpers')['$on_opal_client?']()))) { + return $ret_or_9 + } else { + return $$($nesting, 'IsomorphicHelpers')['$on_opal_server?']() + }; return nil; })())) { return nil - } else { + } else { return (self.result = [block.$call().$to_json()]) - } - }, TMP_IsomorphicProcCall_when_on_server_27.$$arity = 0), nil) && 'when_on_server'; + }; + }, $IsomorphicProcCall_when_on_server$27.$$arity = 0), nil) && 'when_on_server'; })($nesting[0], null, $nesting); - (function($base, $parent_nesting) { - var $ClassMethods, self = $ClassMethods = $module($base, 'ClassMethods'); + return (function($base, $parent_nesting) { + var self = $module($base, 'ClassMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassMethods_on_opal_server$q_28, TMP_ClassMethods_on_opal_client$q_29, TMP_ClassMethods_log_30, TMP_ClassMethods_controller_31, TMP_ClassMethods_before_first_mount_32, TMP_ClassMethods_prerender_footer_33, TMP_ClassMethods_isomorphic_method_34; + var $nesting = [self].concat($parent_nesting), $ClassMethods_on_opal_server$ques$28, $ClassMethods_on_opal_client$ques$29, $ClassMethods_log$30, $ClassMethods_controller$31, $ClassMethods_before_first_mount$32, $ClassMethods_prerender_footer$33, $ClassMethods_isomorphic_method$34; - Opal.defn(self, '$on_opal_server?', TMP_ClassMethods_on_opal_server$q_28 = function() { + Opal.def(self, '$on_opal_server?', $ClassMethods_on_opal_server$ques$28 = function() { var self = this; - return Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_server?']() - }, TMP_ClassMethods_on_opal_server$q_28.$$arity = 0); + return $$($nesting, 'IsomorphicHelpers')['$on_opal_server?']() + }, $ClassMethods_on_opal_server$ques$28.$$arity = 0); - Opal.defn(self, '$on_opal_client?', TMP_ClassMethods_on_opal_client$q_29 = function() { + Opal.def(self, '$on_opal_client?', $ClassMethods_on_opal_client$ques$29 = function() { var self = this; - return Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_client?']() - }, TMP_ClassMethods_on_opal_client$q_29.$$arity = 0); + return $$($nesting, 'IsomorphicHelpers')['$on_opal_client?']() + }, $ClassMethods_on_opal_client$ques$29.$$arity = 0); - Opal.defn(self, '$log', TMP_ClassMethods_log_30 = function $$log($a_rest) { - var self = this, args; + Opal.def(self, '$log', $ClassMethods_log$30 = function $$log($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'log', Opal.to_a(args)) - }, TMP_ClassMethods_log_30.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'IsomorphicHelpers'), 'log', Opal.to_a(args)); + }, $ClassMethods_log$30.$$arity = -1); - Opal.defn(self, '$controller', TMP_ClassMethods_controller_31 = function $$controller() { + Opal.def(self, '$controller', $ClassMethods_controller$31 = function $$controller() { var self = this; - return Opal.const_get_relative($nesting, 'IsomorphicHelpers').$context().$controller() - }, TMP_ClassMethods_controller_31.$$arity = 0); + return $$($nesting, 'IsomorphicHelpers').$context().$controller() + }, $ClassMethods_controller$31.$$arity = 0); - Opal.defn(self, '$before_first_mount', TMP_ClassMethods_before_first_mount_32 = function $$before_first_mount() { - var self = this, $iter = TMP_ClassMethods_before_first_mount_32.$$p, block = $iter || nil; + Opal.def(self, '$before_first_mount', $ClassMethods_before_first_mount$32 = function $$before_first_mount() { + var $iter = $ClassMethods_before_first_mount$32.$$p, block = $iter || nil, self = this; - if ($iter) TMP_ClassMethods_before_first_mount_32.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'Context'), 'register_before_first_mount_block', [], block.$to_proc()) - }, TMP_ClassMethods_before_first_mount_32.$$arity = 0); + if ($iter) $ClassMethods_before_first_mount$32.$$p = null; + + + if ($iter) $ClassMethods_before_first_mount$32.$$p = null;; + return $send($$$($$($nesting, 'IsomorphicHelpers'), 'Context'), 'register_before_first_mount_block', [], block.$to_proc()); + }, $ClassMethods_before_first_mount$32.$$arity = 0); - Opal.defn(self, '$prerender_footer', TMP_ClassMethods_prerender_footer_33 = function $$prerender_footer() { - var self = this, $iter = TMP_ClassMethods_prerender_footer_33.$$p, block = $iter || nil; + Opal.def(self, '$prerender_footer', $ClassMethods_prerender_footer$33 = function $$prerender_footer() { + var $iter = $ClassMethods_prerender_footer$33.$$p, block = $iter || nil, self = this; - if ($iter) TMP_ClassMethods_prerender_footer_33.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'Context'), 'register_prerender_footer_block', [], block.$to_proc()) - }, TMP_ClassMethods_prerender_footer_33.$$arity = 0); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil - } else { + if ($iter) $ClassMethods_prerender_footer$33.$$p = null; - self.$require("json"); - Opal.defn(self, '$isomorphic_method', TMP_ClassMethods_isomorphic_method_34 = function $$isomorphic_method(name) { - var TMP_35, self = this, $iter = TMP_ClassMethods_isomorphic_method_34.$$p, block = $iter || nil; + if ($iter) $ClassMethods_prerender_footer$33.$$p = null;; + return $send($$$($$($nesting, 'IsomorphicHelpers'), 'Context'), 'register_prerender_footer_block', [], block.$to_proc()); + }, $ClassMethods_prerender_footer$33.$$arity = 0); + return (Opal.def(self, '$isomorphic_method', $ClassMethods_isomorphic_method$34 = function $$isomorphic_method(name) { + var $iter = $ClassMethods_isomorphic_method$34.$$p, block = $iter || nil, $$35, self = this; - if ($iter) TMP_ClassMethods_isomorphic_method_34.$$p = null; - return $send(self.$class(), 'send', ["define_method", name], (TMP_35 = function($a_rest){var self = TMP_35.$$s || this, args; + if ($iter) $ClassMethods_isomorphic_method$34.$$p = null; + + + if ($iter) $ClassMethods_isomorphic_method$34.$$p = null;; + return $send(self.$class(), 'send', ["define_method", name], ($$35 = function($a){var self = $$35.$$s == null ? this : $$35.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'IsomorphicProcCall'), 'new', [name, block, self].concat(Opal.to_a(args))).$result()}, TMP_35.$$s = self, TMP_35.$$arity = -1, TMP_35)) - }, TMP_ClassMethods_isomorphic_method_34.$$arity = 1); - }; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$$($$($nesting, 'IsomorphicHelpers'), 'IsomorphicProcCall'), 'new', [name, block, self].concat(Opal.to_a(args))).$result();}, $$35.$$s = self, $$35.$$arity = -1, $$35)); + }, $ClassMethods_isomorphic_method$34.$$arity = 1), nil) && 'isomorphic_method'; })($nesting[0], $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/object/try"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["active_support/core_ext/object/try"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$empty?', '$respond_to?', '$first', '$try!', '$to_proc', '$zero?', '$arity', '$instance_eval', '$public_send']); (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_try_1, TMP_Object_try$B_2; + var $nesting = [self].concat($parent_nesting), $Object_try$1, $Object_try$excl$2; - Opal.defn(self, '$try', TMP_Object_try_1 = function($a_rest) { - var $b, self = this, a, $iter = TMP_Object_try_1.$$p, b = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - a = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - a[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_try_1.$$p = null; - if ($truthy(($truthy($b = a['$empty?']()) ? $b : self['$respond_to?'](a.$first())))) { + Opal.def(self, '$try', $Object_try$1 = function($a) { + var $iter = $Object_try$1.$$p, b = $iter || nil, $post_args, a, self = this, $ret_or_1 = nil; + + if ($iter) $Object_try$1.$$p = null; + + + if ($iter) $Object_try$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + a = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_1 = a['$empty?']()))) { + return $ret_or_1 + } else { + return self['$respond_to?'](a.$first()) + }; return nil; })())) { return $send(self, 'try!', Opal.to_a(a), b.$to_proc()) - } else { + } else { return nil - } - }, TMP_Object_try_1.$$arity = -1); - return (Opal.defn(self, '$try!', TMP_Object_try$B_2 = function($a_rest) { - var $b, self = this, a, $iter = TMP_Object_try$B_2.$$p, b = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - a = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - a[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_try$B_2.$$p = null; - if ($truthy(($truthy($b = a['$empty?']()) ? (b !== nil) : $b))) { + }; + }, $Object_try$1.$$arity = -1); + return (Opal.def(self, '$try!', $Object_try$excl$2 = function($a) { + var $iter = $Object_try$excl$2.$$p, b = $iter || nil, $post_args, a, self = this, $ret_or_2 = nil; + + if ($iter) $Object_try$excl$2.$$p = null; + + + if ($iter) $Object_try$excl$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + a = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_2 = a['$empty?']()))) { + return (b !== nil) + } else { + return $ret_or_2 + }; return nil; })())) { if ($truthy(b.$arity()['$zero?']())) { return $send(self, 'instance_eval', [], b.$to_proc()) - } else { + } else { return Opal.yield1(b, self); } - } else { + } else { return $send(self, 'public_send', Opal.to_a(a), b.$to_proc()) - } - }, TMP_Object_try$B_2.$$arity = -1), nil) && 'try!'; + }; + }, $Object_try$excl$2.$$arity = -1), nil) && 'try!'; })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $NilClass(){}; - var self = $NilClass = $klass($base, $super, 'NilClass', $NilClass); + var self = $klass($base, $super, 'NilClass'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NilClass_try_3, TMP_NilClass_try$B_4; + var $nesting = [self].concat($parent_nesting), $NilClass_try$3, $NilClass_try$excl$4; - Opal.defn(self, '$try', TMP_NilClass_try_3 = function($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_NilClass_try_3.$$arity = -1); - return (Opal.defn(self, '$try!', TMP_NilClass_try$B_4 = function($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_NilClass_try$B_4.$$arity = -1), nil) && 'try!'; + Opal.def(self, '$try', $NilClass_try$3 = function($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $NilClass_try$3.$$arity = -1); + return (Opal.def(self, '$try!', $NilClass_try$excl$4 = function($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $NilClass_try$excl$4.$$arity = -1), nil) && 'try!'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/react_api"] = function(Opal) { +Opal.modules["hyperstack/component/react_api"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$require', '$+', '$create_element', '$to_proc', '$raise', '$to_n', '$kind_of?', '$!', '$build']); @@ -7443,29 +8875,29 @@ Opal.modules["hyperstack/component/react_api"] = function(Opal) { self.$require("active_support/core_ext/object/try"); self.$require("hyperstack/internal/component/tags"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $ReactAPI, self = $ReactAPI = $module($base, 'ReactAPI'); + return (function($base, $parent_nesting) { + var self = $module($base, 'ReactAPI'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ReactAPI_html_tag$q_1, TMP_ReactAPI_html_attr$q_2, TMP_ReactAPI_create_element_3, TMP_ReactAPI_render_4, TMP_ReactAPI_is_valid_element_5, TMP_ReactAPI_is_valid_element$q_6, TMP_ReactAPI_render_to_string_8, TMP_ReactAPI_render_to_static_markup_10, TMP_ReactAPI_unmount_component_at_node_11; + var $nesting = [self].concat($parent_nesting), $ReactAPI_html_tag$ques$1, $ReactAPI_html_attr$ques$2, $ReactAPI_create_element$3, $ReactAPI_render$4, $ReactAPI_is_valid_element$5, $ReactAPI_is_valid_element$ques$6, $ReactAPI_render_to_string$7, $ReactAPI_render_to_static_markup$9, $ReactAPI_unmount_component_at_node$11; Opal.const_set($nesting[0], 'ATTRIBUTES', $rb_plus(["accept", "acceptCharset", "accessKey", "action", "allowFullScreen", "allowTransparency", "alt", "async", "autoComplete", "autoPlay", "cellPadding", "cellSpacing", "charSet", "checked", "classID", "className", "cols", "colSpan", "content", "contentEditable", "contextMenu", "controls", "coords", "crossOrigin", "data", "dateTime", "defer", "dir", "disabled", "download", "draggable", "encType", "form", "formAction", "formEncType", "formMethod", "formNoValidate", "formTarget", "frameBorder", "height", "hidden", "href", "hrefLang", "htmlFor", "httpEquiv", "icon", "id", "label", "lang", "list", "loop", "manifest", "marginHeight", "marginWidth", "max", "maxLength", "media", "mediaGroup", "method", "min", "multiple", "muted", "name", "noValidate", "open", "pattern", "placeholder", "poster", "preload", "radioGroup", "readOnly", "rel", "required", "role", "rows", "rowSpan", "sandbox", "scope", "scrolling", "seamless", "selected", "shape", "size", "sizes", "span", "spellCheck", "src", "srcDoc", "srcSet", "start", "step", "style", "tabIndex", "target", "title", "type", "useMap", "value", "width", "wmode", "dangerouslySetInnerHTML"], ["clipPath", "cx", "cy", "d", "dx", "dy", "fill", "fillOpacity", "fontFamily", "fontSize", "fx", "fy", "gradientTransform", "gradientUnits", "markerEnd", "markerMid", "markerStart", "offset", "opacity", "patternContentUnits", "patternUnits", "points", "preserveAspectRatio", "r", "rx", "ry", "spreadMethod", "stopColor", "stopOpacity", "stroke", "strokeDasharray", "strokeLinecap", "strokeOpacity", "strokeWidth", "textAnchor", "transform", "version", "viewBox", "x1", "x2", "x", "xlinkActuate", "xlinkArcrole", "xlinkHref", "xlinkRole", "xlinkShow", "xlinkTitle", "xlinkType", "xmlBase", "xmlLang", "xmlSpace", "y1", "y2", "y"])); Opal.const_set($nesting[0], 'HASH_ATTRIBUTES', ["data", "aria"]); - Opal.const_set($nesting[0], 'HTML_TAGS', Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'HTML_TAGS')); - Opal.defs(self, '$html_tag?', TMP_ReactAPI_html_tag$q_1 = function(name) { + Opal.const_set($nesting[0], 'HTML_TAGS', $$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'HTML_TAGS')); + Opal.defs(self, '$html_tag?', $ReactAPI_html_tag$ques$1 = function(name) { var self = this, tags = nil; - tags = Opal.const_get_relative($nesting, 'HTML_TAGS'); + tags = $$($nesting, 'HTML_TAGS'); for(var i = 0; i < tags.length; i++) { if(tags[i] === name) @@ -7473,12 +8905,12 @@ Opal.modules["hyperstack/component/react_api"] = function(Opal) { } return false; ; - }, TMP_ReactAPI_html_tag$q_1.$$arity = 1); - Opal.defs(self, '$html_attr?', TMP_ReactAPI_html_attr$q_2 = function(name) { + }, $ReactAPI_html_tag$ques$1.$$arity = 1); + Opal.defs(self, '$html_attr?', $ReactAPI_html_attr$ques$2 = function(name) { var self = this, attrs = nil; - attrs = Opal.const_get_relative($nesting, 'ATTRIBUTES'); + attrs = $$($nesting, 'ATTRIBUTES'); for(var i = 0; i < attrs.length; i++) { if(attrs[i] === name) @@ -7486,23 +8918,24 @@ Opal.modules["hyperstack/component/react_api"] = function(Opal) { } return false; ; - }, TMP_ReactAPI_html_attr$q_2.$$arity = 1); - Opal.defs(self, '$create_element', TMP_ReactAPI_create_element_3 = function $$create_element(type, $a_rest) { - var self = this, properties, $iter = TMP_ReactAPI_create_element_3.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - properties = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - properties[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_ReactAPI_create_element_3.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper'), 'create_element', [type].concat(Opal.to_a(properties)), block.$to_proc()) - }, TMP_ReactAPI_create_element_3.$$arity = -2); - Opal.defs(self, '$render', TMP_ReactAPI_render_4 = function $$render(element, container) { - var self = this, $iter = TMP_ReactAPI_render_4.$$p, $yield = $iter || nil, cb = nil, native$ = nil; + }, $ReactAPI_html_attr$ques$2.$$arity = 1); + Opal.defs(self, '$create_element', $ReactAPI_create_element$3 = function $$create_element(type, $a) { + var $iter = $ReactAPI_create_element$3.$$p, block = $iter || nil, $post_args, properties, self = this; + + if ($iter) $ReactAPI_create_element$3.$$p = null; + + + if ($iter) $ReactAPI_create_element$3.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + properties = $post_args;; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper'), 'create_element', [type].concat(Opal.to_a(properties)), block.$to_proc()); + }, $ReactAPI_create_element$3.$$arity = -2); + Opal.defs(self, '$render', $ReactAPI_render$4 = function $$render(element, container) { + var $iter = $ReactAPI_render$4.$$p, $yield = $iter || nil, self = this, cb = nil, native$ = nil; - if ($iter) TMP_ReactAPI_render_4.$$p = null; + if ($iter) $ReactAPI_render$4.$$p = null; if ($truthy(typeof ReactDOM === 'undefined')) { self.$raise("ReactDOM.render is not defined. In React >= v15 you must import it with ReactDOM")}; @@ -7517,130 +8950,140 @@ Opal.modules["hyperstack/component/react_api"] = function(Opal) { } ; native$ = ReactDOM.render(element.$to_n(), container, cb); - } else { + } else { native$ = ReactDOM.render(element.$to_n(), container) }; if ($truthy(native$ !== null)) { - } else { + } else { return nil }; if ($truthy(native$.__opalInstance !== undefined && native$.__opalInstance !== null)) { return native$.__opalInstance } else if ($truthy(ReactDOM.findDOMNode !== undefined && native$.nodeType === undefined)) { return ReactDOM.findDOMNode(native$) - } else { + } else { return native$ }; - }, TMP_ReactAPI_render_4.$$arity = 2); - Opal.defs(self, '$is_valid_element', TMP_ReactAPI_is_valid_element_5 = function $$is_valid_element(element) { - var $a, self = this; + }, $ReactAPI_render$4.$$arity = 2); + Opal.defs(self, '$is_valid_element', $ReactAPI_is_valid_element$5 = function $$is_valid_element(element) { + var self = this, $ret_or_1 = nil; - console.error("Warning: `is_valid_element` is deprecated in favor of `is_valid_element?`."); ; - return ($truthy($a = element['$kind_of?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element'))) ? React.isValidElement(element.$to_n()) : $a); - }, TMP_ReactAPI_is_valid_element_5.$$arity = 1); - Opal.defs(self, '$is_valid_element?', TMP_ReactAPI_is_valid_element$q_6 = function(element) { - var $a, self = this; + console.error("Warning: `is_valid_element` is deprecated in favor of `is_valid_element?`.");; + if ($truthy(($ret_or_1 = element['$kind_of?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element'))))) { + return React.isValidElement(element.$to_n()) + } else { + return $ret_or_1 + }; + }, $ReactAPI_is_valid_element$5.$$arity = 1); + Opal.defs(self, '$is_valid_element?', $ReactAPI_is_valid_element$ques$6 = function(element) { + var self = this, $ret_or_2 = nil; - return ($truthy($a = element['$kind_of?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element'))) ? React.isValidElement(element.$to_n()) : $a) - }, TMP_ReactAPI_is_valid_element$q_6.$$arity = 1); - Opal.defs(self, '$render_to_string', TMP_ReactAPI_render_to_string_8 = function $$render_to_string(element) { - var TMP_7, self = this; + if ($truthy(($ret_or_2 = element['$kind_of?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element'))))) { + return React.isValidElement(element.$to_n()) + } else { + return $ret_or_2 + } + }, $ReactAPI_is_valid_element$ques$6.$$arity = 1); + Opal.defs(self, '$render_to_string', $ReactAPI_render_to_string$7 = function $$render_to_string(element) { + var $$8, self = this; - console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_string` is deprecated in favor of `React::Server.render_to_string`."); ; + console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_string` is deprecated in favor of `React::Server.render_to_string`.");; if ($truthy((typeof ReactDOMServer === 'undefined')['$!']())) { - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'build', [], (TMP_7 = function(){var self = TMP_7.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'build', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; - return ReactDOMServer.renderToString(element.$to_n())}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7)) - } else { + return ReactDOMServer.renderToString(element.$to_n())}, $$8.$$s = self, $$8.$$arity = 0, $$8)) + } else { return self.$raise("renderToString is not defined. In React >= v15 you must import it with ReactDOMServer") }; - }, TMP_ReactAPI_render_to_string_8.$$arity = 1); - Opal.defs(self, '$render_to_static_markup', TMP_ReactAPI_render_to_static_markup_10 = function $$render_to_static_markup(element) { - var TMP_9, self = this; + }, $ReactAPI_render_to_string$7.$$arity = 1); + Opal.defs(self, '$render_to_static_markup', $ReactAPI_render_to_static_markup$9 = function $$render_to_static_markup(element) { + var $$10, self = this; - console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_static_markup` is deprecated in favor of `React::Server.render_to_static_markup`."); ; + console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_static_markup` is deprecated in favor of `React::Server.render_to_static_markup`.");; if ($truthy((typeof ReactDOMServer === 'undefined')['$!']())) { - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'build', [], (TMP_9 = function(){var self = TMP_9.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'build', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - return ReactDOMServer.renderToStaticMarkup(element.$to_n())}, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)) - } else { + return ReactDOMServer.renderToStaticMarkup(element.$to_n())}, $$10.$$s = self, $$10.$$arity = 0, $$10)) + } else { return self.$raise("renderToStaticMarkup is not defined. In React >= v15 you must import it with ReactDOMServer") }; - }, TMP_ReactAPI_render_to_static_markup_10.$$arity = 1); - Opal.defs(self, '$unmount_component_at_node', TMP_ReactAPI_unmount_component_at_node_11 = function $$unmount_component_at_node(node) { + }, $ReactAPI_render_to_static_markup$9.$$arity = 1); + return (Opal.defs(self, '$unmount_component_at_node', $ReactAPI_unmount_component_at_node$11 = function $$unmount_component_at_node(node) { var self = this; if ($truthy((typeof ReactDOM === 'undefined')['$!']())) { - return ReactDOM.unmountComponentAtNode(node.$$class ? node[0] : node) - } else { + return ReactDOM.unmountComponentAtNode(node.$$class ? node[0] : node); + } else { return self.$raise("unmountComponentAtNode is not defined. In React >= v15 you must import it with ReactDOM") } - }, TMP_ReactAPI_unmount_component_at_node_11.$$arity = 1); + }, $ReactAPI_unmount_component_at_node$11.$$arity = 1), nil) && 'unmount_component_at_node'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/top_level_rails_component"] = function(Opal) { +Opal.modules["hyperstack/internal/component/top_level_rails_component"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$include', '$export_component', '$param', '$backtrace', '$top_level_render', '$start_with?', '$<<', '$const_get', '$each', '$search_path', '$class', '$name', '$!=', '$method_defined?', '$render', '$raise', '$join', '$search_path=', '$-', '$!', '$include?', '$add_to_react_search_path']); (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $TopLevelRailsComponent(){}; - var self = $TopLevelRailsComponent = $klass($base, $super, 'TopLevelRailsComponent', $TopLevelRailsComponent); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'TopLevelRailsComponent'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_TopLevelRailsComponent_search_path_1, TMP_TopLevelRailsComponent_allow_deprecated_render_definition$q_2, TMP_TopLevelRailsComponent_render_3, TMP_TopLevelRailsComponent_top_level_render_6; + var $nesting = [self].concat($parent_nesting), $TopLevelRailsComponent_search_path$1, $TopLevelRailsComponent_allow_deprecated_render_definition$ques$2, $TopLevelRailsComponent_render$3, $TopLevelRailsComponent_top_level_render$4; - def.ComponentName = def.RenderParams = def.Controller = nil; + self.$$prototype.ComponentName = self.$$prototype.RenderParams = self.$$prototype.Controller = nil; - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component')); - Opal.defs(self, '$search_path', TMP_TopLevelRailsComponent_search_path_1 = function $$search_path() { - var $a, self = this; + self.$include($$$($$($nesting, 'Hyperstack'), 'Component')); + Opal.defs(self, '$search_path', $TopLevelRailsComponent_search_path$1 = function $$search_path() { + var self = this, $ret_or_1 = nil; if (self.search_path == null) self.search_path = nil; - return (self.search_path = ($truthy($a = self.search_path) ? $a : [Opal.const_get_relative($nesting, 'Object')])) - }, TMP_TopLevelRailsComponent_search_path_1.$$arity = 0); + return (self.search_path = (function() {if ($truthy(($ret_or_1 = self.search_path))) { + return $ret_or_1 + } else { + return [$$($nesting, 'Object')] + }; return nil; })()) + }, $TopLevelRailsComponent_search_path$1.$$arity = 0); self.$export_component(); self.$param("component_name"); self.$param("controller"); self.$param("render_params"); self.$backtrace("off"); - Opal.defs(self, '$allow_deprecated_render_definition?', TMP_TopLevelRailsComponent_allow_deprecated_render_definition$q_2 = function() { + Opal.defs(self, '$allow_deprecated_render_definition?', $TopLevelRailsComponent_allow_deprecated_render_definition$ques$2 = function() { var self = this; return true - }, TMP_TopLevelRailsComponent_allow_deprecated_render_definition$q_2.$$arity = 0); + }, $TopLevelRailsComponent_allow_deprecated_render_definition$ques$2.$$arity = 0); - Opal.defn(self, '$render', TMP_TopLevelRailsComponent_render_3 = function $$render() { + Opal.def(self, '$render', $TopLevelRailsComponent_render$3 = function $$render() { var self = this; return self.$top_level_render() - }, TMP_TopLevelRailsComponent_render_3.$$arity = 0); - return (Opal.defn(self, '$top_level_render', TMP_TopLevelRailsComponent_top_level_render_6 = function $$top_level_render() { - var TMP_4, TMP_5, $a, self = this, paths_searched = nil, component = nil; + }, $TopLevelRailsComponent_render$3.$$arity = 0); + return (Opal.def(self, '$top_level_render', $TopLevelRailsComponent_top_level_render$4 = function $$top_level_render() { + var $$5, $$6, self = this, paths_searched = nil, component = nil, $ret_or_2 = nil; paths_searched = []; @@ -7649,518 +9092,548 @@ Opal.modules["hyperstack/internal/component/top_level_rails_component"] = functi paths_searched['$<<'](self.ComponentName); component = (function() { try { - return Opal.const_get_relative($nesting, 'Object').$const_get(self.ComponentName) + return $$($nesting, 'Object').$const_get(self.ComponentName) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$($nesting, 'NameError')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }})(); - } else { + } else { - (function(){var $brk = Opal.new_brk(); try {return $send(self.$class().$search_path(), 'each', [], (TMP_4 = function(scope){var self = TMP_4.$$s || this; + (function(){var $brk = Opal.new_brk(); try {return $send(self.$class().$search_path(), 'each', [], ($$5 = function(scope){var self = $$5.$$s == null ? this : $$5.$$s; if (self.Controller == null) self.Controller = nil; if (self.ComponentName == null) self.ComponentName = nil; -if (scope == null) scope = nil; - + + + + if (scope == null) { + scope = nil; + }; paths_searched['$<<']("" + (scope.$name()) + "::" + (self.Controller) + "::" + (self.ComponentName)); component = (function() { try { return scope.$const_get(self.Controller, false).$const_get(self.ComponentName, false) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$($nesting, 'NameError')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }})(); if ($truthy(component['$!='](nil))) { Opal.brk(nil, $brk) - } else { + } else { return nil - };}, TMP_4.$$s = self, TMP_4.$$brk = $brk, TMP_4.$$arity = 1, TMP_4)) + };}, $$5.$$s = self, $$5.$$brk = $brk, $$5.$$arity = 1, $$5)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); if ($truthy(component)) { - } else { - (function(){var $brk = Opal.new_brk(); try {return $send(self.$class().$search_path(), 'each', [], (TMP_5 = function(scope){var self = TMP_5.$$s || this; + } else { + (function(){var $brk = Opal.new_brk(); try {return $send(self.$class().$search_path(), 'each', [], ($$6 = function(scope){var self = $$6.$$s == null ? this : $$6.$$s; if (self.ComponentName == null) self.ComponentName = nil; -if (scope == null) scope = nil; - + + + + if (scope == null) { + scope = nil; + }; paths_searched['$<<']("" + (scope.$name()) + "::" + (self.ComponentName)); component = (function() { try { return scope.$const_get(self.ComponentName, false) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$($nesting, 'NameError')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }})(); if ($truthy(component['$!='](nil))) { Opal.brk(nil, $brk) - } else { + } else { return nil - };}, TMP_5.$$s = self, TMP_5.$$brk = $brk, TMP_5.$$arity = 1, TMP_5)) + };}, $$6.$$s = self, $$6.$$brk = $brk, $$6.$$arity = 1, $$6)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})() }; }; - if ($truthy(($truthy($a = component) ? component['$method_defined?']("render") : $a))) { - return Opal.const_get_relative($nesting, 'RenderingContext').$render(component, self.RenderParams)}; + if ($truthy((function() {if ($truthy(($ret_or_2 = component))) { + return component['$method_defined?']("render") + } else { + return $ret_or_2 + }; return nil; })())) { + return $$($nesting, 'RenderingContext').$render(component, self.RenderParams)}; return self.$raise("" + "Could not find component class '" + (self.ComponentName) + "' for @Controller '" + (self.Controller) + "' in any component directory. Tried [" + (paths_searched.$join(", ")) + "]"); - }, TMP_TopLevelRailsComponent_top_level_render_6.$$arity = 0), nil) && 'top_level_render'; + }, $TopLevelRailsComponent_top_level_render$4.$$arity = 0), nil) && 'top_level_render'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); (function($base, $super, $parent_nesting) { - function $Module(){}; - var self = $Module = $klass($base, $super, 'Module', $Module); + var self = $klass($base, $super, 'Module'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Module_add_to_react_search_path_7; + var $nesting = [self].concat($parent_nesting), $Module_add_to_react_search_path$7; - return (Opal.defn(self, '$add_to_react_search_path', TMP_Module_add_to_react_search_path_7 = function $$add_to_react_search_path(replace_search_path) { + return (Opal.def(self, '$add_to_react_search_path', $Module_add_to_react_search_path$7 = function $$add_to_react_search_path(replace_search_path) { var self = this, $writer = nil; + + if (replace_search_path == null) { replace_search_path = nil; - } + }; if ($truthy(replace_search_path)) { $writer = [[self]]; - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent'), 'search_path=', Opal.to_a($writer)); + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent'), 'search_path=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent').$search_path()['$include?'](self)['$!']())) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent').$search_path()['$<<'](self) - } else { + } else if ($truthy($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent').$search_path()['$include?'](self)['$!']())) { + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent').$search_path()['$<<'](self) + } else { return nil - } - }, TMP_Module_add_to_react_search_path_7.$$arity = -1), nil) && 'add_to_react_search_path' + }; + }, $Module_add_to_react_search_path$7.$$arity = -1), nil) && 'add_to_react_search_path' })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { - var $Components, self = $Components = $module($base, 'Components'); + var self = $module($base, 'Components'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - self.$add_to_react_search_path() + return self.$add_to_react_search_path() })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/while_loading"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["hyperstack/component/while_loading"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$WhileLoadingWrapper', '$!', '$on_opal_client?']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $WhileLoading, self = $WhileLoading = $module($base, 'WhileLoading'); + return (function($base, $parent_nesting) { + var self = $module($base, 'WhileLoading'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_WhileLoading___hyperstack_component_rescue_wrapper_1, TMP_WhileLoading_resources_loading$q_2, TMP_WhileLoading_resources_loaded$q_3; + var $nesting = [self].concat($parent_nesting), $WhileLoading___hyperstack_component_rescue_wrapper$1, $WhileLoading_resources_loading$ques$2, $WhileLoading_resources_loaded$ques$3; - Opal.defn(self, '$__hyperstack_component_rescue_wrapper', TMP_WhileLoading___hyperstack_component_rescue_wrapper_1 = function $$__hyperstack_component_rescue_wrapper(child) { + Opal.def(self, '$__hyperstack_component_rescue_wrapper', $WhileLoading___hyperstack_component_rescue_wrapper$1 = function $$__hyperstack_component_rescue_wrapper(child) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component').$WhileLoadingWrapper($hash2(["child", "children_elements"], {"child": self, "children_elements": child})) - }, TMP_WhileLoading___hyperstack_component_rescue_wrapper_1.$$arity = 1); + return $$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component').$WhileLoadingWrapper($hash2(["child", "children_elements"], {"child": self, "children_elements": child})) + }, $WhileLoading___hyperstack_component_rescue_wrapper$1.$$arity = 1); - Opal.defn(self, '$resources_loading?', TMP_WhileLoading_resources_loading$q_2 = function() { + Opal.def(self, '$resources_loading?', $WhileLoading_resources_loading$ques$2 = function() { var self = this; if (self.__hyperstack_while_loading_waiting_on_resources == null) self.__hyperstack_while_loading_waiting_on_resources = nil; return self.__hyperstack_while_loading_waiting_on_resources - }, TMP_WhileLoading_resources_loading$q_2.$$arity = 0); + }, $WhileLoading_resources_loading$ques$2.$$arity = 0); - Opal.defn(self, '$resources_loaded?', TMP_WhileLoading_resources_loaded$q_3 = function() { + Opal.def(self, '$resources_loaded?', $WhileLoading_resources_loaded$ques$3 = function() { var self = this; if (self.__hyperstack_while_loading_waiting_on_resources == null) self.__hyperstack_while_loading_waiting_on_resources = nil; return self.__hyperstack_while_loading_waiting_on_resources['$!']() - }, TMP_WhileLoading_resources_loaded$q_3.$$arity = 0); - if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')['$on_opal_client?']())) { + }, $WhileLoading_resources_loaded$ques$3.$$arity = 0); + if ($truthy($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')['$on_opal_client?']())) { function onError(event) { if (event.message.match(/^Uncaught NotQuiet: /)) event.preventDefault(); } window.addEventListener('error', onError); - }; + + } else { + return nil + }; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/free_render"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["hyperstack/component/free_render"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $alias = Opal.alias, $truthy = Opal.truthy; Opal.add_stubs(['$instance_eval', '$const_defined?', '$const_get', '$is_a?', '$method_defined?', '$include?', '$render', '$to_proc', '$hyperstack_component_original_meth_missing']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $FreeRender, self = $FreeRender = $module($base, 'FreeRender'); + return (function($base, $parent_nesting) { + var self = $module($base, 'FreeRender'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_FreeRender_included_3; + var $nesting = [self].concat($parent_nesting), $FreeRender_included$1; - Opal.defs(self, '$included', TMP_FreeRender_included_3 = function $$included(base) { - var TMP_1, self = this; + return (Opal.defs(self, '$included', $FreeRender_included$1 = function $$included(base) { + var $$2, self = this; - return $send(base, 'instance_eval', [], (TMP_1 = function(){var self = TMP_1.$$s || this, TMP_method_missing_2; + return $send(base, 'instance_eval', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $method_missing$3; - - Opal.alias(self, "hyperstack_component_original_meth_missing", "method_missing"); - return (Opal.def(self, '$method_missing', TMP_method_missing_2 = function $$method_missing(name, $a_rest) { - var $b, $c, $d, self = this, args, $iter = TMP_method_missing_2.$$p, block = $iter || nil, klass = nil; + + $alias(self, "hyperstack_component_original_meth_missing", "method_missing"); + return (Opal.def(self, '$method_missing', $method_missing$3 = function $$method_missing(name, $a) { + var $iter = $method_missing$3.$$p, block = $iter || nil, $post_args, args, self = this, $ret_or_1 = nil, $ret_or_2 = nil, klass = nil, $ret_or_3 = nil, $ret_or_4 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_method_missing_2.$$p = null; - if ($truthy(($truthy($b = ($truthy($c = self['$const_defined?'](name)) ? (klass = self.$const_get(name)) : $c)) ? ($truthy($c = ($truthy($d = klass['$is_a?'](Opal.const_get_relative($nesting, 'Class'))) ? klass['$method_defined?']("render") : $d)) ? $c : Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'HTML_TAGS')['$include?'](klass)) : $b))) { - return $send(self, 'render', [klass].concat(Opal.to_a(args)), block.$to_proc()) + if ($iter) $method_missing$3.$$p = null; + + + if ($iter) $method_missing$3.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self['$const_defined?'](name)))) { + + return (klass = self.$const_get(name)); + } else { + return $ret_or_2 + }; return nil; })()))) { + + if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = klass['$is_a?']($$($nesting, 'Class'))))) { + return klass['$method_defined?']("render") } else { + return $ret_or_4 + }; return nil; })()))) { + return $ret_or_3 + } else { + return $$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'HTML_TAGS')['$include?'](klass) + }; + } else { + return $ret_or_1 + }; return nil; })())) { + return $send(self, 'render', [klass].concat(Opal.to_a(args)), block.$to_proc()) + } else { return $send(self, 'hyperstack_component_original_meth_missing', [name].concat(Opal.to_a(args)), block.$to_proc()) - } - }, TMP_method_missing_2.$$arity = -2), nil) && 'method_missing';}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)) - }, TMP_FreeRender_included_3.$$arity = 1) + }; + }, $method_missing$3.$$arity = -2), nil) && 'method_missing';}, $$2.$$s = self, $$2.$$arity = 0, $$2)) + }, $FreeRender_included$1.$$arity = 1), nil) && 'included' })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/rescue_wrapper"] = function(Opal) { +Opal.modules["hyperstack/internal/component/rescue_wrapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$include', '$param', '$render', '$call', '$attr_accessor', '$RescueMetaWrapper', '$after_error', '$after_error_args', '$run_callback', '$after_error_args=', '$-', '$raise', '$force_update!']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $RescueMetaWrapper(){}; - var self = $RescueMetaWrapper = $klass($base, $super, 'RescueMetaWrapper', $RescueMetaWrapper); + var self = $klass($base, $super, 'RescueMetaWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RescueMetaWrapper_1; + var $nesting = [self].concat($parent_nesting), $RescueMetaWrapper$1; - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component')); + self.$include($$$($$($nesting, 'Hyperstack'), 'Component')); self.$param("children_elements"); - return $send(self, 'render', [], (TMP_RescueMetaWrapper_1 = function(){var self = TMP_RescueMetaWrapper_1.$$s || this; + return $send(self, 'render', [], ($RescueMetaWrapper$1 = function(){var self = $RescueMetaWrapper$1.$$s == null ? this : $RescueMetaWrapper$1.$$s; if (self.ChildrenElements == null) self.ChildrenElements = nil; - return self.ChildrenElements.$call()}, TMP_RescueMetaWrapper_1.$$s = self, TMP_RescueMetaWrapper_1.$$arity = 0, TMP_RescueMetaWrapper_1)); + return self.ChildrenElements.$call()}, $RescueMetaWrapper$1.$$s = self, $RescueMetaWrapper$1.$$arity = 0, $RescueMetaWrapper$1)); })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $RescueWrapper(){}; - var self = $RescueWrapper = $klass($base, $super, 'RescueWrapper', $RescueWrapper); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RescueWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RescueWrapper_2, TMP_RescueWrapper_3; + var $nesting = [self].concat($parent_nesting), $RescueWrapper$2, $RescueWrapper$3; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$attr_accessor("after_error_args") })(Opal.get_singleton_class(self), $nesting); - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component')); + self.$include($$$($$($nesting, 'Hyperstack'), 'Component')); self.$param("child"); self.$param("children_elements"); - $send(self, 'render', [], (TMP_RescueWrapper_2 = function(){var self = TMP_RescueWrapper_2.$$s || this; + $send(self, 'render', [], ($RescueWrapper$2 = function(){var self = $RescueWrapper$2.$$s == null ? this : $RescueWrapper$2.$$s; if (self.ChildrenElements == null) self.ChildrenElements = nil; - return self.$RescueMetaWrapper($hash2(["children_elements"], {"children_elements": self.ChildrenElements}))}, TMP_RescueWrapper_2.$$s = self, TMP_RescueWrapper_2.$$arity = 0, TMP_RescueWrapper_2)); - return $send(self, 'after_error', [], (TMP_RescueWrapper_3 = function(error, info){var self = TMP_RescueWrapper_3.$$s || this, $a, $b, TMP_4, args = nil, found = nil, $writer = nil; + return self.$RescueMetaWrapper($hash2(["children_elements"], {"children_elements": self.ChildrenElements}))}, $RescueWrapper$2.$$s = self, $RescueWrapper$2.$$arity = 0, $RescueWrapper$2)); + return $send(self, 'after_error', [], ($RescueWrapper$3 = function(error, info){var self = $RescueWrapper$3.$$s == null ? this : $RescueWrapper$3.$$s, $a, $b, args = nil, $ret_or_1 = nil, found = nil, $writer = nil; if (self.Child == null) self.Child = nil; -if (error == null) error = nil;if (info == null) info = nil; - - args = ($truthy($a = Opal.const_get_relative($nesting, 'RescueWrapper').$after_error_args()) ? $a : [error, info]); - $b = $send(self.Child, 'run_callback', ["__hyperstack_component_rescue_hook", found].concat(Opal.to_a(args)), (TMP_4 = function(a){var self = TMP_4.$$s || this; -if (a == null) a = nil; - return a}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)), $a = Opal.to_ary($b), (found = ($a[0] == null ? nil : $a[0])), $b; + + + + if (error == null) { + error = nil; + }; + + if (info == null) { + info = nil; + }; + args = (function() {if ($truthy(($ret_or_1 = $$($nesting, 'RescueWrapper').$after_error_args()))) { + return $ret_or_1 + } else { + return [error, info] + }; return nil; })(); + $b = $send(self.Child, 'run_callback', ["__hyperstack_component_rescue_hook", found].concat(Opal.to_a(args))), $a = Opal.to_ary($b), (found = ($a[0] == null ? nil : $a[0])), $b; if ($truthy(found)) { - } else { + } else { $writer = [args]; - $send(Opal.const_get_relative($nesting, 'RescueWrapper'), 'after_error_args=', Opal.to_a($writer)); + $send($$($nesting, 'RescueWrapper'), 'after_error_args=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.$raise(error); }; - return self.Child['$force_update!']();}, TMP_RescueWrapper_3.$$s = self, TMP_RescueWrapper_3.$$arity = 2, TMP_RescueWrapper_3)); + return self.Child['$force_update!']();}, $RescueWrapper$3.$$s = self, $RescueWrapper$3.$$arity = 2, $RescueWrapper$3)); })($nesting[0], null, $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/while_loading_wrapper"] = function(Opal) { +Opal.modules["hyperstack/internal/component/while_loading_wrapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; Opal.add_stubs(['$render', '$!', '$quiet?', '$raise_if_not_quiet=', '$-', '$instance_eval', '$mutate', '$RescueMetaWrapper', '$before_mount', '$rescues', '$class', '$instance_variable_set']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $WhileLoadingWrapper(){}; - var self = $WhileLoadingWrapper = $klass($base, $super, 'WhileLoadingWrapper', $WhileLoadingWrapper); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'WhileLoadingWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_WhileLoadingWrapper_1, TMP_WhileLoadingWrapper_3; + var $nesting = [self].concat($parent_nesting), $WhileLoadingWrapper$1, $WhileLoadingWrapper$3; - $send(self, 'render', [], (TMP_WhileLoadingWrapper_1 = function(){var self = TMP_WhileLoadingWrapper_1.$$s || this, $a, TMP_2, $writer = nil; + $send(self, 'render', [], ($WhileLoadingWrapper$1 = function(){var self = $WhileLoadingWrapper$1.$$s == null ? this : $WhileLoadingWrapper$1.$$s, $$2, $ret_or_1 = nil, $writer = nil; if (self.waiting_on_resources == null) self.waiting_on_resources = nil; if (self.Child == null) self.Child = nil; if (self.ChildrenElements == null) self.ChildrenElements = nil; - - if ($truthy(($truthy($a = self.waiting_on_resources) ? self['$quiet?']()['$!']() : $a))) { + + if ($truthy((function() {if ($truthy(($ret_or_1 = self.waiting_on_resources))) { + return self['$quiet?']()['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { $writer = [false]; - $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'raise_if_not_quiet=', Opal.to_a($writer)); + $send($$($nesting, 'RenderingContext'), 'raise_if_not_quiet=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { self.waiting_on_resources = false; - $send(self.Child, 'instance_eval', [], (TMP_2 = function(){var self = TMP_2.$$s || this; + $send(self.Child, 'instance_eval', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; if (self.__hyperstack_while_loading_waiting_on_resources == null) self.__hyperstack_while_loading_waiting_on_resources = nil; - + if ($truthy(self.__hyperstack_while_loading_waiting_on_resources)) { self.$mutate()}; - return (self.__hyperstack_while_loading_waiting_on_resources = false);}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); + return (self.__hyperstack_while_loading_waiting_on_resources = false);}, $$2.$$s = self, $$2.$$arity = 0, $$2)); $writer = [true]; - $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'raise_if_not_quiet=', Opal.to_a($writer)); + $send($$($nesting, 'RenderingContext'), 'raise_if_not_quiet=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; }; - return self.$RescueMetaWrapper($hash2(["children_elements"], {"children_elements": self.ChildrenElements}));}, TMP_WhileLoadingWrapper_1.$$s = self, TMP_WhileLoadingWrapper_1.$$arity = 0, TMP_WhileLoadingWrapper_1)); - return $send(self, 'before_mount', [], (TMP_WhileLoadingWrapper_3 = function(){var self = TMP_WhileLoadingWrapper_3.$$s || this, TMP_4, wrapper = nil; + return self.$RescueMetaWrapper($hash2(["children_elements"], {"children_elements": self.ChildrenElements}));}, $WhileLoadingWrapper$1.$$s = self, $WhileLoadingWrapper$1.$$arity = 0, $WhileLoadingWrapper$1)); + return $send(self, 'before_mount', [], ($WhileLoadingWrapper$3 = function(){var self = $WhileLoadingWrapper$3.$$s == null ? this : $WhileLoadingWrapper$3.$$s, $$4, wrapper = nil; if (self.Child == null) self.Child = nil; - + wrapper = self; - return $send(self.Child.$class(), 'rescues', [Opal.const_get_qualified(Opal.const_get_relative($nesting, 'RenderingContext'), 'NotQuiet')], (TMP_4 = function(){var self = TMP_4.$$s || this; + return $send(self.Child.$class(), 'rescues', [$$$($$($nesting, 'RenderingContext'), 'NotQuiet')], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - + wrapper.$instance_variable_set("@waiting_on_resources", true); - return (self.__hyperstack_while_loading_waiting_on_resources = true);}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4));}, TMP_WhileLoadingWrapper_3.$$s = self, TMP_WhileLoadingWrapper_3.$$arity = 0, TMP_WhileLoadingWrapper_3)); - })($nesting[0], Opal.const_get_relative($nesting, 'RescueWrapper'), $nesting) + return (self.__hyperstack_while_loading_waiting_on_resources = true);}, $$4.$$s = self, $$4.$$arity = 0, $$4));}, $WhileLoadingWrapper$3.$$s = self, $WhileLoadingWrapper$3.$$arity = 0, $WhileLoadingWrapper$3)); + })($nesting[0], $$($nesting, 'RescueWrapper'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack/component/version"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - Opal.const_set($nesting[0], 'VERSION', "1.0.alpha1.5") + return Opal.const_set($nesting[0], 'VERSION', "1.0.alpha1.8") })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-component"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $hash2 = Opal.hash2; +Opal.modules["hyper-component"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$import', '$js_import', '$==']); + Opal.add_stubs(['$require', '$js_import', '$import']); self.$require("hyperstack/internal/component"); - Opal.const_get_relative($nesting, 'Hyperstack').$import("hyper-state"); - Opal.const_get_relative($nesting, 'Hyperstack').$js_import("react/react-source-browser", $hash2(["client_only", "defines"], {"client_only": true, "defines": ["ReactDOM", "React"]})); - Opal.const_get_relative($nesting, 'Hyperstack').$js_import("react/react-source-server", $hash2(["server_only", "defines"], {"server_only": true, "defines": "React"})); - Opal.const_get_relative($nesting, 'Hyperstack').$import("browser/delay", $hash2(["client_only"], {"client_only": true})); - Opal.const_get_relative($nesting, 'Hyperstack').$js_import("react_ujs", $hash2(["defines"], {"defines": "ReactRailsUJS"})); - Opal.const_get_relative($nesting, 'Hyperstack').$import("hyper-component"); - Opal.const_get_relative($nesting, 'Hyperstack').$import("hyperstack/component/auto-import"); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - - self.$require("hyperstack/internal/callbacks"); - self.$require("hyperstack/internal/auto_unmount"); - self.$require("native"); - self.$require("hyperstack/state/observer"); - self.$require("hyperstack/internal/component/validator"); - self.$require("hyperstack/component/element"); - self.$require("hyperstack/internal/component/react_wrapper"); - self.$require("hyperstack/component"); - self.$require("hyperstack/internal/component/should_component_update"); - self.$require("hyperstack/internal/component/tags"); - self.$require("hyperstack/component/event"); - self.$require("hyperstack/internal/component/rendering_context"); - self.$require("hyperstack/ext/component/object"); - self.$require("hyperstack/ext/component/kernel"); - self.$require("hyperstack/ext/component/number"); - self.$require("hyperstack/ext/component/boolean"); - self.$require("hyperstack/ext/component/array"); - self.$require("hyperstack/ext/component/enumerable"); - self.$require("hyperstack/component/isomorphic_helpers"); - self.$require("hyperstack/component/react_api"); - self.$require("hyperstack/internal/component/top_level_rails_component"); - self.$require("hyperstack/component/while_loading"); - self.$require("hyperstack/component/free_render"); - self.$require("hyperstack/internal/component/rescue_wrapper"); - self.$require("hyperstack/internal/component/while_loading_wrapper"); - return self.$require("hyperstack/component/version"); - } else { - return nil - }; + $$($nesting, 'Hyperstack').$js_import("react/react-source-browser", $hash2(["client_only", "defines"], {"client_only": true, "defines": ["ReactDOM", "React"]})); + $$($nesting, 'Hyperstack').$js_import("react/react-source-server", $hash2(["server_only", "defines"], {"server_only": true, "defines": "React"})); + $$($nesting, 'Hyperstack').$import("browser/delay", $hash2(["client_only"], {"client_only": true})); + $$($nesting, 'Hyperstack').$import("browser/interval", $hash2(["client_only"], {"client_only": true})); + $$($nesting, 'Hyperstack').$js_import("react_ujs", $hash2(["defines"], {"defines": "ReactRailsUJS"})); + $$($nesting, 'Hyperstack').$import("hyper-component"); + $$($nesting, 'Hyperstack').$import("hyperstack/component/auto-import"); + + self.$require("hyperstack/internal/callbacks"); + self.$require("hyperstack/internal/auto_unmount"); + self.$require("native"); + self.$require("json"); + self.$require("hyperstack/state/observer"); + self.$require("hyperstack/internal/component/validator"); + self.$require("hyperstack/component/element"); + self.$require("hyperstack/internal/component/react_wrapper"); + self.$require("hyperstack/component"); + self.$require("hyperstack/internal/component/should_component_update"); + self.$require("hyperstack/internal/component/tags"); + self.$require("hyperstack/component/event"); + self.$require("hyperstack/internal/component/rendering_context"); + self.$require("hyperstack/ext/component/object"); + self.$require("hyperstack/ext/component/kernel"); + self.$require("hyperstack/ext/component/number"); + self.$require("hyperstack/ext/component/boolean"); + self.$require("hyperstack/ext/component/array"); + self.$require("hyperstack/ext/component/enumerable"); + self.$require("hyperstack/ext/component/time"); + self.$require("hyperstack/component/isomorphic_helpers"); + self.$require("hyperstack/component/react_api"); + self.$require("hyperstack/internal/component/top_level_rails_component"); + self.$require("hyperstack/component/while_loading"); + self.$require("hyperstack/component/free_render"); + self.$require("hyperstack/internal/component/rescue_wrapper"); + self.$require("hyperstack/internal/component/while_loading_wrapper"); + return self.$require("hyperstack/component/version");; }; -/* Generated by Opal 0.11.4 */ -Opal.modules["react/router"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["react/router"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$imports']); return (function($base, $parent_nesting) { - var $React, self = $React = $module($base, 'React'); + var self = $module($base, 'React'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Router(){}; - var self = $Router = $klass($base, $super, 'Router', $Router); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$imports("ReactRouter") - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'), $nesting) + })($nesting[0], $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["react/router/dom"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["react/router/dom"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$imports']); return (function($base, $parent_nesting) { - var $React, self = $React = $module($base, 'React'); + var self = $module($base, 'React'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Router(){}; - var self = $Router = $klass($base, $super, 'Router', $Router); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $DOM(){}; - var self = $DOM = $klass($base, $super, 'DOM', $DOM); + var self = $klass($base, $super, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$imports("ReactRouterDOM") - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'), $nesting) + })($nesting[0], $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["react/router/history"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["react/router/history"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$include', '$new', '$alias_native']); return (function($base, $parent_nesting) { - var $React, self = $React = $module($base, 'React'); + var self = $module($base, 'React'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Router(){}; - var self = $Router = $klass($base, $super, 'Router', $Router); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $History(){}; - var self = $History = $klass($base, $super, 'History', $History); + var self = $klass($base, $super, 'History'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_History_current_1, TMP_History_initialize_2, TMP_History_to_n_3; + var $nesting = [self].concat($parent_nesting), $History_current$1, $History_initialize$2, $History_to_n$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - Opal.defs(self, '$current', TMP_History_current_1 = function $$current() { + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); + Opal.defs(self, '$current', $History_current$1 = function $$current() { var self = this; return self.$new(History) - }, TMP_History_current_1.$$arity = 0); + }, $History_current$1.$$arity = 0); - Opal.defn(self, '$initialize', TMP_History_initialize_2 = function $$initialize(native$) { + Opal.def(self, '$initialize', $History_initialize$2 = function $$initialize(native$) { var self = this; return (self["native"] = native$) - }, TMP_History_initialize_2.$$arity = 1); + }, $History_initialize$2.$$arity = 1); - Opal.defn(self, '$to_n', TMP_History_to_n_3 = function $$to_n() { + Opal.def(self, '$to_n', $History_to_n$3 = function $$to_n() { var self = this; return self["native"] - }, TMP_History_to_n_3.$$arity = 0); + }, $History_to_n$3.$$arity = 0); self.$alias_native("create_browser_history", "createBrowserHistory"); self.$alias_native("create_hash_history", "createHashHistory"); self.$alias_native("create_location", "createLocation"); @@ -8171,138 +9644,166 @@ Opal.modules["react/router/history"] = function(Opal) { })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/router/isomorphic_methods"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["hyperstack/internal/router/isomorphic_methods"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$include', '$prerender_footer', '$on_opal_server?', '$new', '$[]', '$raise', '$isomorphic_method', '$when_on_client', '$send_to_server', '$when_on_server', '$fullpath', '$request', '$controller', '$context']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Router, self = $Router = $module($base, 'Router'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $IsomorphicMethods(){}; - var self = $IsomorphicMethods = $klass($base, $super, 'IsomorphicMethods', $IsomorphicMethods); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'IsomorphicMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IsomorphicMethods_ctx_1, TMP_IsomorphicMethods_2, TMP_IsomorphicMethods_3; + var $nesting = [self].concat($parent_nesting), $IsomorphicMethods_ctx$1, $IsomorphicMethods$2, $IsomorphicMethods$3; - self.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')); - Opal.defs(self, '$ctx', TMP_IsomorphicMethods_ctx_1 = function $$ctx() { - var $a, self = this; + self.$include($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')); + Opal.defs(self, '$ctx', $IsomorphicMethods_ctx$1 = function $$ctx() { + var self = this, $ret_or_1 = nil; if (self.ctx == null) self.ctx = nil; - return (self.ctx = ($truthy($a = self.ctx) ? $a : {})) - }, TMP_IsomorphicMethods_ctx_1.$$arity = 0); - $send(self, 'prerender_footer', [], (TMP_IsomorphicMethods_2 = function(_controller){var self = TMP_IsomorphicMethods_2.$$s || this, ctx_as_hash = nil; + return (self.ctx = (function() {if ($truthy(($ret_or_1 = self.ctx))) { + return $ret_or_1 + } else { + return {}; + }; return nil; })()) + }, $IsomorphicMethods_ctx$1.$$arity = 0); + $send(self, 'prerender_footer', [], ($IsomorphicMethods$2 = function(_controller){var self = $IsomorphicMethods$2.$$s == null ? this : $IsomorphicMethods$2.$$s, ctx_as_hash = nil; if (self.ctx == null) self.ctx = nil; -if (_controller == null) _controller = nil; - + + + + if (_controller == null) { + _controller = nil; + }; if ($truthy(self['$on_opal_server?']())) { - } else { + } else { return nil; }; - ctx_as_hash = Opal.const_get_relative($nesting, 'Hash').$new(self.ctx); + ctx_as_hash = $$($nesting, 'Hash').$new(self.ctx); self.ctx = {}; if ($truthy(ctx_as_hash['$[]']("url"))) { return self.$raise("" + "Hyperstack::Internal::Component::Redirect " + (ctx_as_hash['$[]']("url")) + " status: " + (ctx_as_hash['$[]']("status"))) - } else { + } else { return nil - };}, TMP_IsomorphicMethods_2.$$s = self, TMP_IsomorphicMethods_2.$$arity = 1, TMP_IsomorphicMethods_2)); - return $send(self, 'isomorphic_method', ["request_fullpath"], (TMP_IsomorphicMethods_3 = function(f){var self = TMP_IsomorphicMethods_3.$$s || this, TMP_4, TMP_5; -if (f == null) f = nil; - - $send(f, 'when_on_client', [], (TMP_4 = function(){var self = TMP_4.$$s || this; + };}, $IsomorphicMethods$2.$$s = self, $IsomorphicMethods$2.$$arity = 1, $IsomorphicMethods$2)); + return $send(self, 'isomorphic_method', ["request_fullpath"], ($IsomorphicMethods$3 = function(f){var self = $IsomorphicMethods$3.$$s == null ? this : $IsomorphicMethods$3.$$s, $$4, $$5; + + + + if (f == null) { + f = nil; + }; + $send(f, 'when_on_client', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - return window.location.pathname}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)); + return window.location.pathname;}, $$4.$$s = self, $$4.$$arity = 0, $$4)); f.$send_to_server(); - return $send(f, 'when_on_server', [], (TMP_5 = function(){var self = TMP_5.$$s || this; + return $send(f, 'when_on_server', [], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; - return f.$context().$controller().$request().$fullpath()}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5));}, TMP_IsomorphicMethods_3.$$s = self, TMP_IsomorphicMethods_3.$$arity = 1, TMP_IsomorphicMethods_3)); + return f.$context().$controller().$request().$fullpath()}, $$5.$$s = self, $$5.$$arity = 0, $$5));}, $IsomorphicMethods$3.$$s = self, $IsomorphicMethods$3.$$arity = 1, $IsomorphicMethods$3)); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/router/history"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["hyperstack/router/history"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$include', '$new', '$native_block', '$to_n', '$native_listen', '$alias_native']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Router, self = $Router = $module($base, 'Router'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $History(){}; - var self = $History = $klass($base, $super, 'History', $History); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'History'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_History_initialize_1, TMP_History_to_n_2, TMP_History_location_3, TMP_History_block_5, TMP_History_listen_7; + var $nesting = [self].concat($parent_nesting), $History_initialize$1, $History_to_n$2, $History_location$3, $History_block$4, $History_listen$6; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); - Opal.defn(self, '$initialize', TMP_History_initialize_1 = function $$initialize(native$) { + Opal.def(self, '$initialize', $History_initialize$1 = function $$initialize(native$) { var self = this; return (self["native"] = native$) - }, TMP_History_initialize_1.$$arity = 1); + }, $History_initialize$1.$$arity = 1); - Opal.defn(self, '$to_n', TMP_History_to_n_2 = function $$to_n() { + Opal.def(self, '$to_n', $History_to_n$2 = function $$to_n() { var self = this; return self["native"] - }, TMP_History_to_n_2.$$arity = 0); + }, $History_to_n$2.$$arity = 0); - Opal.defn(self, '$location', TMP_History_location_3 = function $$location() { + Opal.def(self, '$location', $History_location$3 = function $$location() { var self = this; - return Opal.const_get_relative($nesting, 'Location').$new(self["native"].location) - }, TMP_History_location_3.$$arity = 0); + return $$($nesting, 'Location').$new(self["native"].location) + }, $History_location$3.$$arity = 0); - Opal.defn(self, '$block', TMP_History_block_5 = function $$block(message) { - var TMP_4, self = this, $iter = TMP_History_block_5.$$p, $yield = $iter || nil; + Opal.def(self, '$block', $History_block$4 = function $$block(message) { + var $$5, $iter = $History_block$4.$$p, $yield = $iter || nil, self = this; + if ($iter) $History_block$4.$$p = null; + + if (message == null) { message = nil; - } - if ($iter) TMP_History_block_5.$$p = null; + }; if ($truthy(message)) { return self.$native_block(message.$to_n()) - } else { - return $send(self, 'native_block', [], (TMP_4 = function(location, action){var self = TMP_4.$$s || this; -if (location == null) location = nil;if (action == null) action = nil; - return Opal.yieldX($yield, [Opal.const_get_relative($nesting, 'Location').$new(location), action]);}, TMP_4.$$s = self, TMP_4.$$arity = 2, TMP_4)) - } - }, TMP_History_block_5.$$arity = -1); + } else { + return $send(self, 'native_block', [], ($$5 = function(location, action){var self = $$5.$$s == null ? this : $$5.$$s; + + + + if (location == null) { + location = nil; + }; + + if (action == null) { + action = nil; + }; + return Opal.yieldX($yield, [$$($nesting, 'Location').$new(location), action]);;}, $$5.$$s = self, $$5.$$arity = 2, $$5)) + }; + }, $History_block$4.$$arity = -1); - Opal.defn(self, '$listen', TMP_History_listen_7 = function $$listen() { - var TMP_6, self = this, $iter = TMP_History_listen_7.$$p, $yield = $iter || nil; + Opal.def(self, '$listen', $History_listen$6 = function $$listen() { + var $$7, $iter = $History_listen$6.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_History_listen_7.$$p = null; - return $send(self, 'native_listen', [], (TMP_6 = function(location, action){var self = TMP_6.$$s || this; -if (location == null) location = nil;if (action == null) action = nil; - return Opal.yieldX($yield, [Opal.const_get_relative($nesting, 'Location').$new(location), action]);}, TMP_6.$$s = self, TMP_6.$$arity = 2, TMP_6)) - }, TMP_History_listen_7.$$arity = 0); + if ($iter) $History_listen$6.$$p = null; + return $send(self, 'native_listen', [], ($$7 = function(location, action){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (location == null) { + location = nil; + }; + + if (action == null) { + action = nil; + }; + return Opal.yieldX($yield, [$$($nesting, 'Location').$new(location), action]);;}, $$7.$$s = self, $$7.$$arity = 2, $$7)) + }, $History_listen$6.$$arity = 0); self.$alias_native("action"); self.$alias_native("native_block", "block"); self.$alias_native("create_href", "createHref"); @@ -8320,55 +9821,57 @@ if (location == null) location = nil;if (action == null) action = nil; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/router/location"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $range = Opal.range; +Opal.modules["hyperstack/router/location"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $range = Opal.range; Opal.add_stubs(['$include', '$blank?', '$search', '$[]', '$map', '$split', '$alias_native']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Router, self = $Router = $module($base, 'Router'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Location(){}; - var self = $Location = $klass($base, $super, 'Location', $Location); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Location'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Location_initialize_1, TMP_Location_to_n_2, TMP_Location_query_4; + var $nesting = [self].concat($parent_nesting), $Location_initialize$1, $Location_to_n$2, $Location_query$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); - Opal.defn(self, '$initialize', TMP_Location_initialize_1 = function $$initialize(native$) { + Opal.def(self, '$initialize', $Location_initialize$1 = function $$initialize(native$) { var self = this; return (self["native"] = native$) - }, TMP_Location_initialize_1.$$arity = 1); + }, $Location_initialize$1.$$arity = 1); - Opal.defn(self, '$to_n', TMP_Location_to_n_2 = function $$to_n() { + Opal.def(self, '$to_n', $Location_to_n$2 = function $$to_n() { var self = this; return self["native"] - }, TMP_Location_to_n_2.$$arity = 0); + }, $Location_to_n$2.$$arity = 0); - Opal.defn(self, '$query', TMP_Location_query_4 = function $$query() { - var TMP_3, self = this; + Opal.def(self, '$query', $Location_query$3 = function $$query() { + var $$4, self = this; if ($truthy(self.$search()['$blank?']())) { return $hash2([], {})}; - return Opal.const_get_relative($nesting, 'Hash')['$[]']($send(self.$search()['$[]']($range(1, -1, false)).$split("&"), 'map', [], (TMP_3 = function(part){var self = TMP_3.$$s || this, $a, $b, name = nil, value = nil; -if (part == null) part = nil; - + return $$($nesting, 'Hash')['$[]']($send(self.$search()['$[]']($range(1, -1, false)).$split("&"), 'map', [], ($$4 = function(part){var self = $$4.$$s == null ? this : $$4.$$s, $a, $b, name = nil, value = nil; + + + + if (part == null) { + part = nil; + }; $b = part.$split("="), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $b; - return [decodeURIComponent(name), decodeURIComponent(value)];}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3))); - }, TMP_Location_query_4.$$arity = 0); + return [decodeURIComponent(name), decodeURIComponent(value)];}, $$4.$$s = self, $$4.$$arity = 1, $$4))); + }, $Location_query$3.$$arity = 0); self.$alias_native("pathname"); self.$alias_native("search"); self.$alias_native("hash"); @@ -8379,42 +9882,40 @@ if (part == null) part = nil; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/router/match"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["hyperstack/router/match"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$include', '$alias_native']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Router, self = $Router = $module($base, 'Router'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Match(){}; - var self = $Match = $klass($base, $super, 'Match', $Match); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Match'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Match_initialize_1, TMP_Match_to_n_2; + var $nesting = [self].concat($parent_nesting), $Match_initialize$1, $Match_to_n$2; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); - Opal.defn(self, '$initialize', TMP_Match_initialize_1 = function $$initialize(native$) { + Opal.def(self, '$initialize', $Match_initialize$1 = function $$initialize(native$) { var self = this; return (self["native"] = native$) - }, TMP_Match_initialize_1.$$arity = 1); + }, $Match_initialize$1.$$arity = 1); - Opal.defn(self, '$to_n', TMP_Match_to_n_2 = function $$to_n() { + Opal.def(self, '$to_n', $Match_to_n$2 = function $$to_n() { var self = this; return self["native"] - }, TMP_Match_to_n_2.$$arity = 0); + }, $Match_to_n$2.$$arity = 0); self.$alias_native("params"); self.$alias_native("is_exact", "isExact"); self.$alias_native("path"); @@ -8424,140 +9925,157 @@ Opal.modules["hyperstack/router/match"] = function(Opal) { })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/router/class_methods"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["hyperstack/internal/router/class_methods"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$positive?', '$count', '$first', '$send', '$new', '$to_n', '$history', '$private', '$create_browser_history', '$current', '$create_hash_history', '$create_memory_history']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Router, self = $Router = $module($base, 'Router'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $ClassMethods, self = $ClassMethods = $module($base, 'ClassMethods'); + return (function($base, $parent_nesting) { + var self = $module($base, 'ClassMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassMethods_history_1, TMP_ClassMethods_location_2, TMP_ClassMethods_browser_history_3, TMP_ClassMethods_hash_history_4, TMP_ClassMethods_memory_history_5; + var $nesting = [self].concat($parent_nesting), $ClassMethods_history$1, $ClassMethods_location$2, $ClassMethods_browser_history$3, $ClassMethods_hash_history$4, $ClassMethods_memory_history$5; - Opal.defn(self, '$history', TMP_ClassMethods_history_1 = function $$history($a_rest) { - var $b, self = this, args; + Opal.def(self, '$history', $ClassMethods_history$1 = function $$history($a) { + var $post_args, args, self = this, $ret_or_1 = nil; if (self.__history_type == null) self.__history_type = nil; if (self.__history == null) self.__history = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ($truthy(args.$count()['$positive?']())) { return (self.__history_type = args.$first()) } else if ($truthy(self.__history_type)) { - return (self.__history = ($truthy($b = self.__history) ? $b : self.$send("" + (self.__history_type) + "_history"))) + return (self.__history = (function() {if ($truthy(($ret_or_1 = self.__history))) { + return $ret_or_1 } else { + return self.$send("" + (self.__history_type) + "_history") + }; return nil; })()) + } else { return nil - } - }, TMP_ClassMethods_history_1.$$arity = -1); + }; + }, $ClassMethods_history$1.$$arity = -1); - Opal.defn(self, '$location', TMP_ClassMethods_location_2 = function $$location() { + Opal.def(self, '$location', $ClassMethods_location$2 = function $$location() { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Router'), 'Location').$new(self.$history().$to_n().location) - }, TMP_ClassMethods_location_2.$$arity = 0); + return $$$($$$($$($nesting, 'Hyperstack'), 'Router'), 'Location').$new(self.$history().$to_n().location) + }, $ClassMethods_location$2.$$arity = 0); self.$private(); - Opal.defn(self, '$browser_history', TMP_ClassMethods_browser_history_3 = function $$browser_history() { - var $a, self = this; + Opal.def(self, '$browser_history', $ClassMethods_browser_history$3 = function $$browser_history() { + var self = this, $ret_or_2 = nil; if (self.__browser_history == null) self.__browser_history = nil; - return (self.__browser_history = ($truthy($a = self.__browser_history) ? $a : Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router'), 'History').$current().$create_browser_history())) - }, TMP_ClassMethods_browser_history_3.$$arity = 0); + return (self.__browser_history = (function() {if ($truthy(($ret_or_2 = self.__browser_history))) { + return $ret_or_2 + } else { + return $$$($$$($$($nesting, 'React'), 'Router'), 'History').$current().$create_browser_history() + }; return nil; })()) + }, $ClassMethods_browser_history$3.$$arity = 0); - Opal.defn(self, '$hash_history', TMP_ClassMethods_hash_history_4 = function $$hash_history($a_rest) { - var $b, self = this, args; + Opal.def(self, '$hash_history', $ClassMethods_hash_history$4 = function $$hash_history($a) { + var $post_args, args, self = this, $ret_or_3 = nil; if (self.__hash_history == null) self.__hash_history = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return (self.__hash_history = ($truthy($b = self.__hash_history) ? $b : $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router'), 'History').$current(), 'create_hash_history', Opal.to_a(args)))) - }, TMP_ClassMethods_hash_history_4.$$arity = -1); - - Opal.defn(self, '$memory_history', TMP_ClassMethods_memory_history_5 = function $$memory_history($a_rest) { - var $b, self = this, args; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return (self.__hash_history = (function() {if ($truthy(($ret_or_3 = self.__hash_history))) { + return $ret_or_3 + } else { + return $send($$$($$$($$($nesting, 'React'), 'Router'), 'History').$current(), 'create_hash_history', Opal.to_a(args)) + }; return nil; })()); + }, $ClassMethods_hash_history$4.$$arity = -1); + return (Opal.def(self, '$memory_history', $ClassMethods_memory_history$5 = function $$memory_history($a) { + var $post_args, args, self = this, $ret_or_4 = nil; if (self.__memory_history == null) self.__memory_history = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return (self.__memory_history = ($truthy($b = self.__memory_history) ? $b : $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router'), 'History').$current(), 'create_memory_history', Opal.to_a(args)))) - }, TMP_ClassMethods_memory_history_5.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return (self.__memory_history = (function() {if ($truthy(($ret_or_4 = self.__memory_history))) { + return $ret_or_4 + } else { + return $send($$$($$$($$($nesting, 'React'), 'Router'), 'History').$current(), 'create_memory_history', Opal.to_a(args)) + }; return nil; })()); + }, $ClassMethods_memory_history$5.$$arity = -1), nil) && 'memory_history'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/router/helpers"] = function(Opal) { +Opal.modules["hyperstack/internal/router/helpers"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$to_n', '$tap', '$[]=', '$-', '$[]', '$delete', '$Link', '$to_proc', '$any?', '$&', '$keys', '$observed!', '$NavLink', '$ctx', '$Redirect', '$new', '$lambda', '$format_params', '$create_element', '$values', '$Route', '$Switch']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Router, self = $Router = $module($base, 'Router'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Helpers, self = $Helpers = $module($base, 'Helpers'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Helpers'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Helpers_Link_1, TMP_Helpers_NavLink_3, TMP_Helpers_Redirect_4, TMP_Helpers_format_params_5, TMP_Helpers_Route_6, TMP_Helpers_Switch_9; + var $nesting = [self].concat($parent_nesting), $Helpers_Link$1, $Helpers_NavLink$3, $Helpers_Redirect$4, $Helpers_format_params$5, $Helpers_Route$6, $Helpers_Switch$9; - Opal.defn(self, '$Link', TMP_Helpers_Link_1 = function $$Link(to, opts) { - var TMP_2, self = this, $iter = TMP_Helpers_Link_1.$$p, children = $iter || nil, $writer = nil; + Opal.def(self, '$Link', $Helpers_Link$1 = function $$Link(to, opts) { + var $iter = $Helpers_Link$1.$$p, children = $iter || nil, $$2, self = this, $writer = nil; - if (opts == null) { - opts = $hash2([], {}); - } - if ($iter) TMP_Helpers_Link_1.$$p = null; + if ($iter) $Helpers_Link$1.$$p = null; + + if ($iter) $Helpers_Link$1.$$p = null;; - $writer = ["to", $send($hash2([], {}), 'tap', [], (TMP_2 = function(hash){var self = TMP_2.$$s || this; -if (hash == null) hash = nil; + if (opts == null) { + opts = $hash2([], {}); + }; + $writer = ["to", $send($hash2([], {}), 'tap', [], ($$2 = function(hash){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (hash == null) { + hash = nil; + }; $writer = ["pathname", to]; $send(hash, '[]=', Opal.to_a($writer)); @@ -8572,22 +10090,25 @@ if (hash == null) hash = nil; $writer = ["hash", opts.$delete("hash")]; $send(hash, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { return nil - };}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)).$to_n()]; + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)).$to_n()]; $send(opts, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router'), 'DOM'), 'Link', [opts], children.$to_proc()); - }, TMP_Helpers_Link_1.$$arity = -2); + return $send($$$($$$($$($nesting, 'React'), 'Router'), 'DOM'), 'Link', [opts], children.$to_proc()); + }, $Helpers_Link$1.$$arity = -2); - Opal.defn(self, '$NavLink', TMP_Helpers_NavLink_3 = function $$NavLink(to, opts) { - var self = this, $iter = TMP_Helpers_NavLink_3.$$p, children = $iter || nil, $writer = nil; + Opal.def(self, '$NavLink', $Helpers_NavLink$3 = function $$NavLink(to, opts) { + var $iter = $Helpers_NavLink$3.$$p, children = $iter || nil, self = this, $writer = nil; + if ($iter) $Helpers_NavLink$3.$$p = null; + + + if ($iter) $Helpers_NavLink$3.$$p = null;; + if (opts == null) { opts = $hash2([], {}); - } - if ($iter) TMP_Helpers_NavLink_3.$$p = null; - + }; $writer = ["to", to.$to_n()]; $send(opts, '[]=', Opal.to_a($writer)); @@ -8609,42 +10130,55 @@ if (hash == null) hash = nil; $writer = ["isActive", opts.$delete("active").$to_n()]; $send(opts, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];}; - Opal.const_get_qualified(Opal.const_get_relative($nesting, 'State'), 'Mapper')['$observed!'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Router'), 'Location'));}; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router'), 'DOM'), 'NavLink', [opts], children.$to_proc()); - }, TMP_Helpers_NavLink_3.$$arity = -2); + $$$($$($nesting, 'State'), 'Mapper')['$observed!']($$$($$$($$($nesting, 'Hyperstack'), 'Router'), 'Location'));}; + return $send($$$($$$($$($nesting, 'React'), 'Router'), 'DOM'), 'NavLink', [opts], children.$to_proc()); + }, $Helpers_NavLink$3.$$arity = -2); - Opal.defn(self, '$Redirect', TMP_Helpers_Redirect_4 = function $$Redirect(to, opts) { - var $a, self = this, $writer = nil, status = nil; + Opal.def(self, '$Redirect', $Helpers_Redirect$4 = function $$Redirect(to, opts) { + var self = this, $writer = nil, status = nil, $ret_or_1 = nil; + + if (opts == null) { opts = $hash2([], {}); - } - + }; $writer = ["to", to.$to_n()]; $send(opts, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; status = opts.$delete("status"); - status = ($truthy($a = status) ? $a : 302); - Opal.const_get_relative($nesting, 'IsomorphicMethods').$ctx().status = status; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router').$Redirect(opts); - }, TMP_Helpers_Redirect_4.$$arity = -2); + status = (function() {if ($truthy(($ret_or_1 = status))) { + return $ret_or_1 + } else { + return 302 + }; return nil; })(); + $$($nesting, 'IsomorphicMethods').$ctx().status = status; + return $$$($$($nesting, 'React'), 'Router').$Redirect(opts); + }, $Helpers_Redirect$4.$$arity = -2); - Opal.defn(self, '$format_params', TMP_Helpers_format_params_5 = function $$format_params(e) { - var self = this; + Opal.def(self, '$format_params', $Helpers_format_params$5 = function $$format_params(e, $a) { + var $post_args, $rest_arg, self = this; - return $hash2(["match", "location", "history"], {"match": Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Router'), 'Match').$new(e.match), "location": Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Router'), 'Location').$new(e.location), "history": Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Router'), 'History').$new(e.history)}) - }, TMP_Helpers_format_params_5.$$arity = 1); + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + $rest_arg = $post_args;; + return $hash2(["match", "location", "history"], {"match": $$$($$$($$($nesting, 'Hyperstack'), 'Router'), 'Match').$new(e.match), "location": $$$($$$($$($nesting, 'Hyperstack'), 'Router'), 'Location').$new(e.location), "history": $$$($$$($$($nesting, 'Hyperstack'), 'Router'), 'History').$new(e.history)}); + }, $Helpers_format_params$5.$$arity = -2); - Opal.defn(self, '$Route', TMP_Helpers_Route_6 = function $$Route(to, opts) { - var TMP_7, TMP_8, self = this, $iter = TMP_Helpers_Route_6.$$p, block = $iter || nil, $writer = nil, component = nil; + Opal.def(self, '$Route', $Helpers_Route$6 = function $$Route(to, opts) { + var $iter = $Helpers_Route$6.$$p, block = $iter || nil, $$7, $$8, self = this, $writer = nil, component = nil; + if ($iter) $Helpers_Route$6.$$p = null; + + + if ($iter) $Helpers_Route$6.$$p = null;; + if (opts == null) { opts = $hash2([], {}); - } - if ($iter) TMP_Helpers_Route_6.$$p = null; - - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$observed!'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Router'), 'Location')); + }; + $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$observed!']($$$($$$($$($nesting, 'Hyperstack'), 'Router'), 'Location')); $writer = ["path", to.$to_n()]; $send(opts, '[]=', Opal.to_a($writer)); @@ -8653,288 +10187,315 @@ if (hash == null) hash = nil; component = opts.$delete("mounts"); - $writer = ["component", $send(self, 'lambda', [], (TMP_7 = function(e){var self = TMP_7.$$s || this, route_params = nil; -if (e == null) e = nil; - - route_params = self.$format_params(e); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'ReactAPI').$create_element(component, route_params).$to_n();}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7))]; + $writer = ["component", $send(self, 'lambda', [], ($$7 = function($a){var self = $$7.$$s == null ? this : $$7.$$s, $post_args, e, route_params = nil; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + e = $post_args;; + route_params = $send(self, 'format_params', Opal.to_a(e)); + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'ReactAPI').$create_element(component, route_params).$to_n();}, $$7.$$s = self, $$7.$$arity = -1, $$7))]; $send(opts, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];;}; if ($truthy(block)) { - $writer = ["render", $send(self, 'lambda', [], (TMP_8 = function(e){var self = TMP_8.$$s || this, route_params = nil; -if (e == null) e = nil; - - route_params = self.$format_params(e); - return Opal.yieldX(block, Opal.to_a(route_params.$values())).$to_n();}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8))]; + $writer = ["render", $send(self, 'lambda', [], ($$8 = function($a){var self = $$8.$$s == null ? this : $$8.$$s, $post_args, e, route_params = nil; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + e = $post_args;; + route_params = $send(self, 'format_params', Opal.to_a(e)); + return Opal.yieldX(block, Opal.to_a(route_params.$values())).$to_n();}, $$8.$$s = self, $$8.$$arity = -1, $$8))]; $send(opts, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];}; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router').$Route(opts); - }, TMP_Helpers_Route_6.$$arity = -2); - - Opal.defn(self, '$Switch', TMP_Helpers_Switch_9 = function $$Switch() { - var self = this, $iter = TMP_Helpers_Switch_9.$$p, children = $iter || nil; + return $$$($$($nesting, 'React'), 'Router').$Route(opts); + }, $Helpers_Route$6.$$arity = -2); + return (Opal.def(self, '$Switch', $Helpers_Switch$9 = function $$Switch() { + var $iter = $Helpers_Switch$9.$$p, children = $iter || nil, self = this; - if ($iter) TMP_Helpers_Switch_9.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router'), 'Switch', [], children.$to_proc()) - }, TMP_Helpers_Switch_9.$$arity = 0); + if ($iter) $Helpers_Switch$9.$$p = null; + + + if ($iter) $Helpers_Switch$9.$$p = null;; + return $send($$$($$($nesting, 'React'), 'Router'), 'Switch', [], children.$to_proc()); + }, $Helpers_Switch$9.$$arity = 0), nil) && 'Switch'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/router/instance_methods"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack/internal/router/instance_methods"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; Opal.add_stubs(['$history', '$class', '$location']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Router, self = $Router = $module($base, 'Router'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $InstanceMethods, self = $InstanceMethods = $module($base, 'InstanceMethods'); + return (function($base, $parent_nesting) { + var self = $module($base, 'InstanceMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_InstanceMethods_history_1, TMP_InstanceMethods_location_2; + var $nesting = [self].concat($parent_nesting), $InstanceMethods_history$1, $InstanceMethods_location$2; - Opal.defn(self, '$history', TMP_InstanceMethods_history_1 = function $$history() { + Opal.def(self, '$history', $InstanceMethods_history$1 = function $$history() { var self = this; return self.$class().$history() - }, TMP_InstanceMethods_history_1.$$arity = 0); - - Opal.defn(self, '$location', TMP_InstanceMethods_location_2 = function $$location() { + }, $InstanceMethods_history$1.$$arity = 0); + return (Opal.def(self, '$location', $InstanceMethods_location$2 = function $$location() { var self = this; return self.$class().$location() - }, TMP_InstanceMethods_location_2.$$arity = 0); + }, $InstanceMethods_location$2.$$arity = 0), nil) && 'location'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/router/helpers"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["hyperstack/router/helpers"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$include', '$class_eval', '$param']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Router, self = $Router = $module($base, 'Router'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Helpers, self = $Helpers = $module($base, 'Helpers'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Helpers'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Helpers_match_1, TMP_Helpers_location_2, TMP_Helpers_history_3, TMP_Helpers_included_5; + var $nesting = [self].concat($parent_nesting), $Helpers_match$1, $Helpers_location$2, $Helpers_history$3, $Helpers_included$4; - Opal.defn(self, '$match', TMP_Helpers_match_1 = function $$match() { + Opal.def(self, '$match', $Helpers_match$1 = function $$match() { var self = this; if (self._match_param == null) self._match_param = nil; return self._match_param - }, TMP_Helpers_match_1.$$arity = 0); + }, $Helpers_match$1.$$arity = 0); - Opal.defn(self, '$location', TMP_Helpers_location_2 = function $$location() { + Opal.def(self, '$location', $Helpers_location$2 = function $$location() { var self = this; if (self._location_param == null) self._location_param = nil; return self._location_param - }, TMP_Helpers_location_2.$$arity = 0); + }, $Helpers_location$2.$$arity = 0); - Opal.defn(self, '$history', TMP_Helpers_history_3 = function $$history() { + Opal.def(self, '$history', $Helpers_history$3 = function $$history() { var self = this; if (self._history_param == null) self._history_param = nil; return self._history_param - }, TMP_Helpers_history_3.$$arity = 0); - Opal.defs(self, '$included', TMP_Helpers_included_5 = function $$included(base) { - var TMP_4, self = this; + }, $Helpers_history$3.$$arity = 0); + return (Opal.defs(self, '$included', $Helpers_included$4 = function $$included(base) { + var $$5, self = this; - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'Helpers')); - return $send(base, 'class_eval', [], (TMP_4 = function(){var self = TMP_4.$$s || this; + base.$include($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'Helpers')); + return $send(base, 'class_eval', [], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; - + self.$param("match", $hash2(["default", "alias"], {"default": nil, "alias": "_match_param"})); self.$param("location", $hash2(["default", "alias"], {"default": nil, "alias": "_location_param"})); - return self.$param("history", $hash2(["default", "alias"], {"default": nil, "alias": "_history_param"}));}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)); - }, TMP_Helpers_included_5.$$arity = 1); + return self.$param("history", $hash2(["default", "alias"], {"default": nil, "alias": "_history_param"}));}, $$5.$$s = self, $$5.$$arity = 0, $$5)); + }, $Helpers_included$4.$$arity = 1), nil) && 'included'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/router"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["hyperstack/router"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $lambda = Opal.lambda, $send = Opal.send, $hash2 = Opal.hash2; - Opal.add_stubs(['$on_opal_server?', '$lambda', '$__hyperstack_prerender_router', '$to_proc', '$__hyperstack_render_router', '$instance_eval', '$is_a?', '$respond_to?', '$acts_as_string?', '$render', '$to_s', '$history', '$class', '$Router', '$to_n', '$__eval_block', '$split', '$request_fullpath', '$StaticRouter', '$ctx', '$extend', '$include', '$class_eval', '$location', '$after_mount', '$listen', '$mutated!', '$before_unmount', '$call']); + Opal.add_stubs(['$on_opal_server?', '$__hyperstack_prerender_router', '$to_proc', '$__hyperstack_render_router', '$instance_eval', '$is_a?', '$respond_to?', '$acts_as_string?', '$render', '$to_s', '$history', '$class', '$Router', '$to_n', '$__eval_block', '$split', '$request_fullpath', '$StaticRouter', '$ctx', '$extend', '$include', '$class_eval', '$location', '$after_mount', '$listen', '$mutated!', '$before_unmount', '$call']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Router, self = $Router = $module($base, 'Router'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Router'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Router___hyperstack_router_wrapper_1, TMP_Router___eval_block_5, TMP_Router___hyperstack_render_router_6, TMP_Router___hyperstack_prerender_router_9, TMP_Router_included_18; + var $nesting = [self].concat($parent_nesting), $Router___hyperstack_router_wrapper$1, $Router___eval_block$4, $Router___hyperstack_render_router$6, $Router___hyperstack_prerender_router$9, $Router_included$12; (function($base, $super, $parent_nesting) { - function $NoHistoryError(){}; - var self = $NoHistoryError = $klass($base, $super, 'NoHistoryError', $NoHistoryError); + var self = $klass($base, $super, 'NoHistoryError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); - Opal.defn(self, '$__hyperstack_router_wrapper', TMP_Router___hyperstack_router_wrapper_1 = function $$__hyperstack_router_wrapper() { - var TMP_2, TMP_3, self = this, $iter = TMP_Router___hyperstack_router_wrapper_1.$$p, block = $iter || nil; + Opal.def(self, '$__hyperstack_router_wrapper', $Router___hyperstack_router_wrapper$1 = function $$__hyperstack_router_wrapper() { + var $iter = $Router___hyperstack_router_wrapper$1.$$p, block = $iter || nil, $$2, $$3, self = this; - if ($iter) TMP_Router___hyperstack_router_wrapper_1.$$p = null; - if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')['$on_opal_server?']())) { - return $send(self, 'lambda', [], (TMP_2 = function(){var self = TMP_2.$$s || this; + if ($iter) $Router___hyperstack_router_wrapper$1.$$p = null; + + + if ($iter) $Router___hyperstack_router_wrapper$1.$$p = null;; + if ($truthy($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')['$on_opal_server?']())) { + return $lambda(($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - return $send(self, '__hyperstack_prerender_router', [], block.$to_proc())}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)) - } else { - return $send(self, 'lambda', [], (TMP_3 = function(){var self = TMP_3.$$s || this; + return $send(self, '__hyperstack_prerender_router', [], block.$to_proc())}, $$2.$$s = self, $$2.$$arity = 0, $$2)) + } else { + return $lambda(($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; - return $send(self, '__hyperstack_render_router', [], block.$to_proc())}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)) - } - }, TMP_Router___hyperstack_router_wrapper_1.$$arity = 0); + return $send(self, '__hyperstack_render_router', [], block.$to_proc())}, $$3.$$s = self, $$3.$$arity = 0, $$3)) + }; + }, $Router___hyperstack_router_wrapper$1.$$arity = 0); - Opal.defn(self, '$__eval_block', TMP_Router___eval_block_5 = function $$__eval_block(block) { - var $a, $b, TMP_4, self = this, result = nil; + Opal.def(self, '$__eval_block', $Router___eval_block$4 = function $$__eval_block(block) { + var $$5, self = this, result = nil, $ret_or_1 = nil, $ret_or_2 = nil; result = $send(self, 'instance_eval', [], block.$to_proc()); - if ($truthy(($truthy($a = result['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? $a : ($truthy($b = result['$respond_to?']("acts_as_string?")) ? result['$acts_as_string?']() : $b)))) { - result = $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', ["span"], (TMP_4 = function(){var self = TMP_4.$$s || this; + if ($truthy((function() {if ($truthy(($ret_or_1 = result['$is_a?']($$($nesting, 'String'))))) { + return $ret_or_1 + } else { + + if ($truthy(($ret_or_2 = result['$respond_to?']("acts_as_string?")))) { + return result['$acts_as_string?']() + } else { + return $ret_or_2 + }; + }; return nil; })())) { + result = $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', ["span"], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; - return result.$to_s()}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4))}; + return result.$to_s()}, $$5.$$s = self, $$5.$$arity = 0, $$5))}; return result; - }, TMP_Router___eval_block_5.$$arity = 1); + }, $Router___eval_block$4.$$arity = 1); - Opal.defn(self, '$__hyperstack_render_router', TMP_Router___hyperstack_render_router_6 = function $$__hyperstack_render_router() { - var TMP_7, self = this, $iter = TMP_Router___hyperstack_render_router_6.$$p, block = $iter || nil; - - if ($iter) TMP_Router___hyperstack_render_router_6.$$p = null; - return $send(self, 'instance_eval', [], (TMP_7 = function(){var self = TMP_7.$$s || this, TMP_8; + Opal.def(self, '$__hyperstack_render_router', $Router___hyperstack_render_router$6 = function $$__hyperstack_render_router() { + var $iter = $Router___hyperstack_render_router$6.$$p, block = $iter || nil, $$7, self = this; + if ($iter) $Router___hyperstack_render_router$6.$$p = null; + + if ($iter) $Router___hyperstack_render_router$6.$$p = null;; + return $send(self, 'instance_eval', [], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s, $$8; + + if ($truthy(self.$history())) { - } else { + } else { self.$class().$history("browser") }; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router'), 'Router', [$hash2(["history"], {"history": self.$history().$to_n()})], (TMP_8 = function(){var self = TMP_8.$$s || this; + return $send($$$($$($nesting, 'React'), 'Router'), 'Router', [$hash2(["history"], {"history": self.$history().$to_n()})], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; - return self.$__eval_block(block)}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8));}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7)) - }, TMP_Router___hyperstack_render_router_6.$$arity = 0); + return self.$__eval_block(block)}, $$8.$$s = self, $$8.$$arity = 0, $$8));}, $$7.$$s = self, $$7.$$arity = 0, $$7)); + }, $Router___hyperstack_render_router$6.$$arity = 0); - Opal.defn(self, '$__hyperstack_prerender_router', TMP_Router___hyperstack_prerender_router_9 = function $$__hyperstack_prerender_router() { - var TMP_10, self = this, $iter = TMP_Router___hyperstack_prerender_router_9.$$p, block = $iter || nil; - - if ($iter) TMP_Router___hyperstack_prerender_router_9.$$p = null; - return $send(self, 'instance_eval', [], (TMP_10 = function(){var self = TMP_10.$$s || this, $a, $b, TMP_11, pathname = nil, search = nil, location = nil; + Opal.def(self, '$__hyperstack_prerender_router', $Router___hyperstack_prerender_router$9 = function $$__hyperstack_prerender_router() { + var $iter = $Router___hyperstack_prerender_router$9.$$p, block = $iter || nil, $$10, self = this; + if ($iter) $Router___hyperstack_prerender_router$9.$$p = null; - $b = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'IsomorphicMethods').$request_fullpath().$split("?", 2), $a = Opal.to_ary($b), (pathname = ($a[0] == null ? nil : $a[0])), (search = ($a[1] == null ? nil : $a[1])), $b; + + if ($iter) $Router___hyperstack_prerender_router$9.$$p = null;; + return $send(self, 'instance_eval', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, $a, $b, $$11, pathname = nil, search = nil, location = nil; + + + $b = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'IsomorphicMethods').$request_fullpath().$split("?", 2), $a = Opal.to_ary($b), (pathname = ($a[0] == null ? nil : $a[0])), (search = ($a[1] == null ? nil : $a[1])), $b; location = $hash2(["pathname", "search"], {"pathname": pathname, "search": (function() {if ($truthy(search)) { return "" + "?" + (search) - } else { + } else { return "" }; return nil; })()}).$to_n(); - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'React'), 'Router'), 'StaticRouter', [$hash2(["location", "context"], {"location": location, "context": Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'IsomorphicMethods').$ctx()})], (TMP_11 = function(){var self = TMP_11.$$s || this; + return $send($$$($$($nesting, 'React'), 'Router'), 'StaticRouter', [$hash2(["location", "context"], {"location": location, "context": $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'IsomorphicMethods').$ctx()})], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; - return self.$__eval_block(block)}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11));}, TMP_10.$$s = self, TMP_10.$$arity = 0, TMP_10)) - }, TMP_Router___hyperstack_prerender_router_9.$$arity = 0); - Opal.defs(self, '$included', TMP_Router_included_18 = function $$included(base) { - var TMP_12, self = this; + return self.$__eval_block(block)}, $$11.$$s = self, $$11.$$arity = 0, $$11));}, $$10.$$s = self, $$10.$$arity = 0, $$10)); + }, $Router___hyperstack_prerender_router$9.$$arity = 0); + return (Opal.defs(self, '$included', $Router_included$12 = function $$included(base) { + var $$13, self = this; - base.$extend(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'ClassMethods')); - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'Helpers')); - return $send(base, 'class_eval', [], (TMP_12 = function(){var self = TMP_12.$$s || this, TMP_history_13, TMP_location_14, TMP_15, TMP_17; + base.$extend($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'ClassMethods')); + base.$include($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Router'), 'Helpers')); + return $send(base, 'class_eval', [], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s, $history$14, $location$15, $$16, $$18; - - Opal.def(self, '$history', TMP_history_13 = function $$history() { + + Opal.def(self, '$history', $history$14 = function $$history() { var self = this; return self.$class().$history() - }, TMP_history_13.$$arity = 0); + }, $history$14.$$arity = 0); - Opal.def(self, '$location', TMP_location_14 = function $$location() { + Opal.def(self, '$location', $location$15 = function $$location() { var self = this; return self.$class().$location() - }, TMP_location_14.$$arity = 0); - $send(self, 'after_mount', [], (TMP_15 = function(){var self = TMP_15.$$s || this, TMP_16; + }, $location$15.$$arity = 0); + $send(self, 'after_mount', [], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + + return (self._react_router_unlisten = $send(self.$history(), 'listen', [], ($$17 = function(location, _action){var self = $$17.$$s == null ? this : $$17.$$s; - return (self._react_router_unlisten = $send(self.$history(), 'listen', [], (TMP_16 = function(location, _action){var self = TMP_16.$$s || this; -if (location == null) location = nil;if (_action == null) _action = nil; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$mutated!'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Router'), 'Location'))}, TMP_16.$$s = self, TMP_16.$$arity = 2, TMP_16)))}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)); - return $send(self, 'before_unmount', [], (TMP_17 = function(){var self = TMP_17.$$s || this; + + + if (location == null) { + location = nil; + }; + + if (_action == null) { + _action = nil; + }; + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$mutated!']($$$($$$($$($nesting, 'Hyperstack'), 'Router'), 'Location'));}, $$17.$$s = self, $$17.$$arity = 2, $$17)))}, $$16.$$s = self, $$16.$$arity = 0, $$16)); + return $send(self, 'before_unmount', [], ($$18 = function(){var self = $$18.$$s == null ? this : $$18.$$s; if (self._react_router_unlisten == null) self._react_router_unlisten = nil; - if ($truthy(self._react_router_unlisten)) { + if ($truthy(self._react_router_unlisten)) { return self._react_router_unlisten.$call() - } else { + } else { return nil - }}, TMP_17.$$s = self, TMP_17.$$arity = 0, TMP_17));}, TMP_12.$$s = self, TMP_12.$$arity = 0, TMP_12)); - }, TMP_Router_included_18.$$arity = 1); + }}, $$18.$$s = self, $$18.$$arity = 0, $$18));}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + }, $Router_included$12.$$arity = 1), nil) && 'included'; })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -(function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $hash2 = Opal.hash2; +Opal.queue(function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$js_import', '$import', '$==']); + Opal.add_stubs(['$require', '$js_import', '$import']); self.$require("hyper-component"); - Opal.const_get_relative($nesting, 'Hyperstack').$js_import("hyperstack/router/react-router-source", $hash2(["defines"], {"defines": ["ReactRouter", "ReactRouterDOM", "History"]})); - Opal.const_get_relative($nesting, 'Hyperstack').$import("hyper-router"); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - - self.$require("react/router"); - self.$require("react/router/dom"); - self.$require("react/router/history"); - self.$require("hyperstack/internal/router/isomorphic_methods"); - self.$require("hyperstack/router/history"); - self.$require("hyperstack/router/location"); - self.$require("hyperstack/router/match"); - self.$require("hyperstack/internal/router/class_methods"); - self.$require("hyperstack/internal/router/helpers"); - self.$require("hyperstack/internal/router/instance_methods"); - self.$require("hyperstack/router/helpers"); - return self.$require("hyperstack/router"); - } else { - return nil - }; -})(Opal); + $$($nesting, 'Hyperstack').$js_import("hyperstack/router/react-router-source", $hash2(["defines"], {"defines": ["ReactRouter", "ReactRouterDOM", "History"]})); + $$($nesting, 'Hyperstack').$import("hyper-router"); + + self.$require("react/router"); + self.$require("react/router/dom"); + self.$require("react/router/history"); + self.$require("hyperstack/internal/router/isomorphic_methods"); + self.$require("hyperstack/router/history"); + self.$require("hyperstack/router/location"); + self.$require("hyperstack/router/match"); + self.$require("hyperstack/internal/router/class_methods"); + self.$require("hyperstack/internal/router/helpers"); + self.$require("hyperstack/internal/router/instance_methods"); + self.$require("hyperstack/router/helpers"); + return self.$require("hyperstack/router");; +}); diff --git a/dist/hyper-router.min.js b/dist/hyper-router.min.js index 96eeaae..b2f51fc 100644 --- a/dist/hyper-router.min.js +++ b/dist/hyper-router.min.js @@ -1,7 +1,7 @@ -Opal.modules["hyperstack/boot"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.truthy,o=e.klass,i=e.send,$=e.hash2;return e.add_stubs(["$attr_reader","$<<","$receivers","$set_var","$new","$each","$call"]),function(t,s){var c=r(t,"Hyperstack"),_=(c.$$proto,[c].concat(s));a(e.const_get_relative(_,"Operation","skip_raise")?"constant":n)||(function(e,$super,t){function n(){}var r=n=o(e,null,"Operation",n);r.$$proto,[r].concat(t)}(_[0],0,_),function(t,$super,r){function a(){}var s=a=o(t,null,"Application",a),c=(s.$$proto,[s].concat(r));(function(t,$super,r){function a(){}var s=a=o(t,$super,"Boot",a),c=(s.$$proto,[s].concat(r));(function(t,$super,n){function r(){}var a,i=r=o(t,null,"ReactDummyParams",r);i.$$proto,[i].concat(n);i.$attr_reader("context"),e.defn(i,"$initialize",a=function(e){return this.context=e},a.$$arity=1)})(c[0],0,c),function(t,r){t.$$proto;var a,o,s,c=[t].concat(r);e.defn(t,"$on_dispatch",a=function(){var e=this,t=a.$$p,r=t||n;return t&&(a.$$p=null),e.$receivers()["$<<"](r)},a.$$arity=0),e.defn(t,"$receivers",o=function(){var t,n=this;return i(e.const_get_qualified(e.const_get_relative(c,"Hyperstack"),"Context"),"set_var",[n,"@receivers",$(["force"],{force:!0})],((t=function(){t.$$s;return[]}).$$s=n,t.$$arity=0,t))},o.$$arity=0),e.defn(t,"$run",s=function(t){var r,a,o=this,s=n;if(null==t||!t.$$is_hash){if(null!=t)throw e.ArgumentError.$new("expected kwargs");t=$([],{})}return null==(a=t.$$smap.context)&&(a=n),s=e.const_get_relative(c,"ReactDummyParams").$new(a),i(o.$receivers(),"each",[],((r=function(e){r.$$s;return null==e&&(e=n),e.$call(s)}).$$s=o,r.$$arity=1,r))},s.$$arity=-1)}(e.get_singleton_class(s),c)})(c[0],e.const_get_relative(c,"Operation"),c)}(_[0],0,_))}(t[0],t)},Opal.modules["hyperstack/deprecation_warning"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.truthy;return e.add_stubs(["$production?","$env","$include?","$<<"]),function(t,o){var i,$=r(t,"Hyperstack");$.$$proto,[$].concat(o);e.defs($,"$deprecation_warning",i=function(e,t){var r,o=this;return null==o.deprecation_messages&&(o.deprecation_messages=n),a(o.$env()["$production?"]())?n:(o.deprecation_messages=a(r=o.deprecation_messages)?r:[],t="Warning: Deprecated feature used in "+e+". "+t,a(o.deprecation_messages["$include?"](t))?n:(o.deprecation_messages["$<<"](t),console.warn.apply(console,[t])))},i.$$arity=2)}(t[0],t)},Opal.modules["hyperstack/string"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.klass);return function(t,$super,a){function o(){}var i,$=o=r(t,null,"String",o);$.$$proto,[$].concat(a);return e.defn($,"$to_json",i=function(){var e=this;return JSON.stringify(e)},i.$$arity=0),n&&"to_json"}(t[0],0,t)},Opal.modules["hyperstack/client_stubs"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module);return function(t,a){var o=r(t,"Hyperstack"),i=(o.$$proto,[o].concat(a));!function(t,r){var a,o,i;t.$$proto,[t].concat(r);e.defn(t,"$import",a=function(){var e,t=arguments.length,r=t-0;r<0&&(r=0),e=new Array(r);for(var a=0;a=t:e["$>="](t)}var r=e.top,a=[],o=e.nil,i=(e.breaker,e.slice,e.module),$=e.truthy,s=e.send,c=e.range,_=e.hash2,l=e.klass,u=e.gvars;return e.add_stubs(["$try_convert","$native?","$respond_to?","$to_n","$raise","$inspect","$Native","$proc","$map!","$end_with?","$define_method","$[]","$convert","$call","$to_proc","$new","$each","$native_reader","$native_writer","$extend","$is_a?","$map","$alias_method","$to_a","$_Array","$include","$method_missing","$bind","$instance_method","$slice","$-","$length","$[]=","$enum_for","$===","$>=","$<<","$each_pair","$_initialize","$name","$exiting_mid","$native_module"]),function(t,n){var r,a,l,u,p,f,d,h,v=i(t,"Native"),m=(v.$$proto,[v].concat(n));e.defs(v,"$is_a?",r=function(e,t){var n=this;try{return e instanceof n.$try_convert(t)}catch(r){return!1}},r.$$arity=2),e.defs(v,"$try_convert",a=function(e,t){return null==t&&(t=o),this["$native?"](e)?e:e["$respond_to?"]("to_n")?e.$to_n():t},a.$$arity=-2),e.defs(v,"$convert",l=function(t){var n=this;return n["$native?"](t)?t:t["$respond_to?"]("to_n")?t.$to_n():void n.$raise(e.const_get_relative(m,"ArgumentError"),t.$inspect()+" isn't native")},l.$$arity=1),e.defs(v,"$call",u=function(e,t){var n,r=this,a=u.$$p,i=a||o,$=arguments.length,s=$-2;s<0&&(s=0),n=new Array(s);for(var c=2;c<$;c++)n[c-2]=arguments[c];a&&(u.$$p=null);var _=e[t];if(_ instanceof Function){for(var l=new Array(n.length),p=0,f=n.length;p"},q.$$arity=0)}(e.const_get_relative(a,"Native"),e.const_get_relative(a,"BasicObject"),a),function(r,$super,a){function i(){}var c,u,p,f,d,h,v,m=i=l(r,null,"Array",i),y=m.$$proto,g=[m].concat(a);y.named=y.native=y.get=y.block=y.set=y.length=o,m.$include(e.const_get_relative(g,"Native")),m.$include(e.const_get_relative(g,"Enumerable")),e.defn(m,"$initialize",c=function(t,n){var r,a=this,i=c.$$p,l=i||o;return null==n&&(n=_([],{})),i&&(c.$$p=null),s(a,e.find_super_dispatcher(a,"initialize",c,!1),[t],null),a.get=$(r=n["$[]"]("get"))?r:n["$[]"]("access"),a.named=n["$[]"]("named"),a.set=$(r=n["$[]"]("set"))?r:n["$[]"]("access"),a.length=$(r=n["$[]"]("length"))?r:"length",a.block=l,$(null==a.$length())?a.$raise(e.const_get_relative(g,"ArgumentError"),"no length found on the array-like object"):o},c.$$arity=-2),e.defn(m,"$each",u=function(){var t=this,n=u.$$p,r=n||o;if(n&&(u.$$p=null),!$(r))return t.$enum_for("each");for(var a=0,i=t.$length();at:e["$>"](t)}e.top;var r=[],a=e.nil,o=(e.breaker,e.slice,e.module),i=e.klass,$=e.send,s=e.hash2,c=e.truthy -;return e.add_stubs(["$attr_accessor","$attr_reader","$private","$tap","$new","$each","$instance_variable_set","$dup","$instance_variable_get","$build","$to_proc","$instance_eval","$[]=","$-","$define_rule","$coerce_native_hash_values","$rules","$define_all_others","$props_wrapper","$reject","$[]","$errors=","$allow_undefined_props?","$validate_undefined","$defined_props","$validate_required","$validate_types","$validate_allowed","$errors","$inject","$select","$include?","$keys","$!","$define_param","$is_a?","$type_check","$>","$length","$validate_value_array","$nil?","$respond_to?","$_react_param_conversion","$<<","$each_with_index","$Native"]),function(r,_){var l=o(r,"Hyperstack"),u=(l.$$proto,[l].concat(_));!function(r,_){var l=o(r,"Internal"),u=(l.$$proto,[l].concat(_));!function(r,_){var l=o(r,"Component"),u=(l.$$proto,[l].concat(_));!function(r,$super,o){function _(){}var l,u,p,f,d,h,v,m,y,g,b,k,w,q,O,x,H,I,R,C,M,T,A=_=i(r,null,"Validator",_),S=A.$$proto,z=[A].concat(o);S.allow_undefined_props=S.rules=S.errors=a,A.$attr_accessor("errors"),A.$attr_reader("props_wrapper"),A.$private("errors","props_wrapper"),e.defn(A,"$copy",l=function(t){var n,r=this;return $(e.const_get_relative(z,"Validator").$new(t),"tap",[],((n=function(e){var t,r=n.$$s||this;return null==e&&(e=a),$(["@allow_undefined_props","@rules","@errors"],"each",[],((t=function(n){var r=t.$$s||this;return null==n&&(n=a),e.$instance_variable_set(n,r.$instance_variable_get(n).$dup())}).$$s=r,t.$$arity=1,t))}).$$s=r,n.$$arity=1,n))},l.$$arity=1),e.defn(A,"$initialize",u=function(t){var n=this;return null==t&&(t=e.const_get_relative(z,"Class").$new(e.const_get_relative(z,"PropsWrapper"))),n.props_wrapper=t},u.$$arity=-1),e.defs(A,"$build",p=function(){var e=this,t=p.$$p,n=t||a;return t&&(p.$$p=null),$(e.$new(),"build",[],n.$to_proc())},p.$$arity=0),e.defn(A,"$build",f=function(){var e=this,t=f.$$p,n=t||a;return t&&(f.$$p=null),$(e,"instance_eval",[],n.$to_proc()),e},f.$$arity=0),e.defn(A,"$requires",d=function(n,r){var o=this,i=a;return null==r&&(r=s([],{})),i=["required",!0],$(r,"[]=",e.to_a(i)),i[t(i.length,1)],o.$define_rule(n,r)},d.$$arity=-2),e.defn(A,"$optional",h=function(n,r){var o=this,i=a;return null==r&&(r=s([],{})),i=["required",!1],$(r,"[]=",e.to_a(i)),i[t(i.length,1)],o.$define_rule(n,r)},h.$$arity=-2),e.defn(A,"$event",v=function(n){var r=this,o=a;return o=[n,r.$coerce_native_hash_values(s(["default","type","allow_nil"],{"default":a,type:e.const_get_relative(z,"Proc"),allow_nil:!0}))],$(r.$rules(),"[]=",e.to_a(o)),o[t(o.length,1)]},v.$$arity=1),e.defn(A,"$all_other_params",m=function(e){var t,n=this;return n.allow_undefined_props=!0,$(n.$props_wrapper(),"define_all_others",[e],((t=function(e){var n,r=t.$$s||this;return null==e&&(e=a),$(e,"reject",[],((n=function(e,t){var r=n.$$s||this;return null==e&&(e=a),null==t&&(t=a),r.$rules()["$[]"](e)}).$$s=r,n.$$arity=2,n))}).$$s=n,t.$$arity=1,t))},m.$$arity=1),e.defn(A,"$validate",y=function(n){var r,o=this,i=a;return i=[[]],$(o,"errors=",e.to_a(i)),i[t(i.length,1)],c(o["$allow_undefined_props?"]())||o.$validate_undefined(n),n=o.$coerce_native_hash_values(o.$defined_props(n)),o.$validate_required(n),$(n,"each",[],((r=function(e,t){var n=r.$$s||this;return null==e&&(e=a),null==t&&(t=a),n.$validate_types(e,t),n.$validate_allowed(e,t)}).$$s=o,r.$$arity=2,r)),o.$errors()},y.$$arity=1),e.defn(A,"$default_props",g=function(){var n,r,o=this;return $($(o.$rules(),"select",[],((n=function(e,t){n.$$s;return null==e&&(e=a),null==t&&(t=a),t.$keys()["$include?"]("default")}).$$s=o,n.$$arity=2,n)),"inject",[s([],{})],((r=function(n,o){r.$$s;var i,s,c,_=a;return null==o&&(o=a),o=e.to_ary(o),null==(s=(i=e.slice.call(o,0,o.length)).splice(0,1)[0])&&(s=a),null==(c=i.splice(0,1)[0])&&(c=a),null==n&&(n=a),_=[s,c["$[]"]("default")],$(n,"[]=",e.to_a(_)),_[t(_.length,1)],n}).$$s=o,r.$$arity=2,r.$$has_top_level_mlhs_arg=!0,r))},g.$$arity=0),A.$private(),e.defn(A,"$defined_props",b=function(e){var t,n=this;return $(e,"select",[],((t=function(e){var n=t.$$s||this;return null==e&&(e=a),n.$rules().$keys()["$include?"](e)}).$$s=n,t.$$arity=1,t))},b.$$arity=1),e.defn(A,"$allow_undefined_props?",k=function(){return this.allow_undefined_props["$!"]()["$!"]()},k.$$arity=0),e.defn(A,"$rules",w=function(){var e,t=this;return t.rules=c(e=t.rules)?e:s(["children"],{children:s(["required"],{required:!1})})},w.$$arity=0),e.defn(A,"$define_rule",q=function(n,r){var o=this,i=a;return null==r&&(r=s([],{})),i=[n,o.$coerce_native_hash_values(r)],$(o.$rules(),"[]=",e.to_a(i)),i[t(i.length,1)],o.$props_wrapper().$define_param(n,r["$[]"]("type"),r["$[]"]("alias"))},q.$$arity=-2),e.defn(A,"$errors",O=function(){var e,t=this;return t.errors=c(e=t.errors)?e:[]},O.$$arity=0),e.defn(A,"$validate_types",x=function(t,r){var o=this,i=a,$=a;return c(i=o.$rules()["$[]"](t)["$[]"]("type"))?c(i["$is_a?"](e.const_get_relative(z,"Array"))["$!"]())?($=o.$rules()["$[]"](t)["$[]"]("allow_nil")["$!"]()["$!"](),o.$type_check("`"+t+"`",r,i,$)):c(n(i.$length(),0))?o.$validate_value_array(t,r):($=o.$rules()["$[]"](t)["$[]"]("allow_nil")["$!"]()["$!"](),o.$type_check("`"+t+"`",r,e.const_get_relative(z,"Array"),$)):a},x.$$arity=2),e.defn(A,"$type_check",H=function(e,t,n,r){var o,i=this;return c(c(o=r)?t["$nil?"]():o)?a:c(t["$is_a?"](n))?a:c(c(o=n["$respond_to?"]("_react_param_conversion"))?n.$_react_param_conversion(t,"validate_only"):o)?a:i.$errors()["$<<"]("Provided prop "+e+" could not be converted to "+n)},H.$$arity=4),e.defn(A,"$validate_allowed",I=function(e,t){var n=this,r=a;return c(r=n.$rules()["$[]"](e)["$[]"]("values"))?c(r["$include?"](t))?a:n.$errors()["$<<"]("Value `"+t+"` for prop `"+e+"` is not an allowed value"):a},I.$$arity=2),e.defn(A,"$validate_required",R=function(e){var n,r=this;return $(t(r.$rules().$keys(),e.$keys()),"each",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=a),c(t.$rules()["$[]"](e)["$[]"]("required"))?t.$errors()["$<<"]("Required prop `"+e+"` was not specified"):a}).$$s=r,n.$$arity=1,n))},R.$$arity=1),e.defn(A,"$validate_undefined",C=function(e){var n,r=this;return $(t(e.$keys(),r.$rules().$keys()),"each",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=a),t.$errors()["$<<"]("Provided prop `"+e+"` not specified in spec")}).$$s=r,n.$$arity=1,n))},C.$$arity=1),e.defn(A,"$validate_value_array",M=function(t,n){var r,o=this,i=a,s=a;try{return i=o.$rules()["$[]"](t)["$[]"]("type"),s=o.$rules()["$[]"](t)["$[]"]("allow_nil")["$!"]()["$!"](),$(n,"each_with_index",[],((r=function(e,n){var o=r.$$s||this;return null==e&&(e=a),null==n&&(n=a),o.$type_check("`"+t+"`["+n+"]",o.$Native(e),i["$[]"](0),s)}).$$s=o,r.$$arity=2,r))}catch(c){if(!e.rescue(c,[e.const_get_relative(z,"NoMethodError")]))throw c;try{return o.$errors()["$<<"]("Provided prop `"+t+"` was not an Array")}finally{e.pop_exception()}}},M.$$arity=2),e.defn(A,"$coerce_native_hash_values",T=function(n){var r,o=this;return $(n,"each",[],((r=function(o,i){var s=r.$$s||this,c=a;return null==o&&(o=a),null==i&&(i=a),c=[o,s.$Native(i)],$(n,"[]=",e.to_a(c)),c[t(c.length,1)]}).$$s=o,r.$$arity=2,r))},T.$$arity=1)}(u[0],0,u)}(u[0],u)}(u[0],u)}(r[0],r)},Opal.modules["hyperstack/ext/component/string"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.klass);return function(t,$super,a){function o(){}var i,$=o=r(t,null,"String",o);$.$$proto,[$].concat(a);return e.defn($,"$event_camelize",i=function(){return this.replace(/(^|_)([^_]+)/g,function(e,t,n){return!0?n.substr(0,1).toUpperCase()+n.substr(1):n})},i.$$arity=0),n&&"event_camelize"}(t[0],0,t)},Opal.modules["hyperstack/component/element"]=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.module),o=e.klass,i=e.truthy,$=e.hash2,s=e.send,c=e.hash;return e.add_stubs(["$require","$include","$alias_native","$attr_reader","$attr_accessor","$_update_ref","$[]","$properties","$raise","$type","$ref","$dom_node","$each","$!=","$strip","$merge_event_prop!","$to_proc","$shallow_to_n","$empty?","$render","$convert_props","$new","$block","$delete","$private","$=~","$merge_component_event_prop!","$gsub","$include?","$event_camelize","$merge_built_in_event_prop!","$==","$key_code","$instance_variable_get","$merge!","$Array","$ignore_bulk_updates"]),t.$require("hyperstack/ext/component/string"),function(t,n){var _=a(t,"Hyperstack"),l=(_.$$proto,[_].concat(n));!function(t,n){var _=a(t,"Component"),l=(_.$$proto,[_].concat(n));!function(t,$super,n){function a(){}var _,l,u,p,f,d,h,v,m,y,g=a=o(t,null,"Element",a),b=g.$$proto,k=[g].concat(n);b._child_element=b.ref=b.native=b.properties=b.type=r,g.$include(e.const_get_relative(k,"Native")),g.$alias_native("element_type","type"),g.$alias_native("props","props"),g.$attr_reader("type"),g.$attr_reader("properties"),g.$attr_reader("block"),g.$attr_accessor("waiting_on_resources"),e.defn(g,"$initialize",_=function(e,t,n,a){var o,s=this;return null==t&&(t=r),null==n&&(n=$([],{})),null==a&&(a=r),s.type=t,s.properties=i(o=i(void 0===n)?r:n)?o:$([],{}),s.block=a,s.native=e},_.$$arity=-2),e.defn(g,"$_update_ref",l=function(e){var t=this;return t.ref=e,i(t._child_element)?t._child_element.$_update_ref(e):r},l.$$arity=1),e.defn(g,"$ref",u=function(){var e=this;return i(e.ref)?e.ref:(i(e.$properties()["$[]"]("ref"))&&e.$raise("The instance of "+e.$type()+" has not been mounted yet"),e.$raise("Attempt to get a ref on "+e.$type()+" which is a static component."))},u.$$arity=0),e.defn(g,"$dom_node",p=function(){var e=this;return i("function"==typeof e.$ref().$dom_node)?e.$ref().$dom_node():e.$ref()},p.$$arity=0),e.defn(g,"$on",f=function(){var e,t,n=this,a=f.$$p,o=a||r,$=r,c=arguments.length,_=c-0;_<0&&(_=0),t=new Array(_);for(var l=0;l$/))?s(a,"merge_component_event_prop!",[t.$gsub(/^<(.+)>$/,"\\1")],$.$to_proc()):i(e.const_get_qualified(e.const_get_relative(k,"Event"),"BUILT_IN_EVENTS")["$include?"](c="on"+t.$event_camelize()))?s(a,"merge_built_in_event_prop!",[c],$.$to_proc()):t["$=="]("enter")?s(a,"merge_built_in_event_prop!",["onKeyDown"],((n=function(t){n.$$s;return null==t&&(t=r),t.$key_code()["$=="](13)?e.yield1($,t):r}).$$s=a,n.$$arity=1,n)):i(a.type.$instance_variable_get("@native_import"))?s(a,"merge_component_event_prop!",[c],$.$to_proc()):s(a,"merge_component_event_prop!",["on_"+t],$.$to_proc())},v.$$arity=1),e.defn(g,"$merge_built_in_event_prop!",m=function(t){var n=this,a=m.$$p,o=a||r;return a&&(m.$$p=null),n.properties["$merge!"](c(t,function(){var t,r=arguments[0];return 0!=arguments.length&&r.nativeEvent?arguments.length>1?(t=Array.prototype.slice.call(arguments).slice(1,arguments.length),s(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(k,"Internal"),"State"),"Mapper"),"ignore_bulk_updates",[e.const_get_relative(k,"Event").$new(r)].concat(e.to_a(t)),o.$to_proc())):s(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(k,"Internal"),"State"),"Mapper"),"ignore_bulk_updates",[e.const_get_relative(k,"Event").$new(r)],o.$to_proc()):e.yieldX(o,e.to_a(n.$Array(arguments)))}))},m.$$arity=1),e.defn(g,"$merge_component_event_prop!",y=function(t){var n=this,a=y.$$p,o=a||r;return a&&(y.$$p=null),n.properties["$merge!"](c(t,function(){return e.yieldX(o,e.to_a(n.$Array(arguments)))}))},y.$$arity=1)}(l[0],0,l)}(l[0],l)}(n[0],n)},Opal.modules["hyperstack/component/native_library"]=function(Opal){function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$breaker=Opal.breaker,$slice=Opal.slice,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range;return Opal.add_stubs(["$each","$lookup_native_name","$create_component_wrapper","$create_library_wrapper","$raise","$name","$scope_native_name","$+","$downcase","$[]","$import_const_from_native","$const_defined?","$const_get","$render","$to_proc","$private","$native_react_component?","$const_set","$imports","$new","$class_eval","$include"]),function($base,$parent_nesting){var $Hyperstack,self=$Hyperstack=$module($base,"Hyperstack"),def=self.$$proto,$nesting=[self].concat($parent_nesting);!function($base,$parent_nesting){var $Component,self=$Component=$module($base,"Component"),def=self.$$proto,$nesting=[self].concat($parent_nesting);!function($base,$super,$parent_nesting){function $NativeLibrary(){}var self=$NativeLibrary=$klass($base,$super,"NativeLibrary",$NativeLibrary),def=self.$$proto,$nesting=[self].concat($parent_nesting);(function(self,$parent_nesting){var def=self.$$proto,$nesting=[self].concat($parent_nesting),TMP_imports_1,TMP_rename_3,TMP_import_const_from_native_4,TMP_const_missing_5,TMP_method_missing_6,TMP_lookup_native_name_7,TMP_scope_native_name_8,TMP_create_component_wrapper_10,TMP_create_library_wrapper_11;Opal.defn(self,"$imports",TMP_imports_1=function(e){var t=this;return t.__hyperstack_component_native_prefix=e+".",t},TMP_imports_1.$$arity=1),Opal.defn(self,"$rename",TMP_rename_3=function(e){var t,n=this;return $send(e,"each",[],((t=function(e,n){var r,a=t.$$s||this,o=nil;return null==e&&(e=nil),null==n&&(n=nil),o=a.$lookup_native_name(e),$truthy(a.$lookup_native_name(e))?$truthy(r=a.$create_component_wrapper(a,o,n))?r:a.$create_library_wrapper(a,o,n):a.$raise("class "+a.$name()+" < Hyperstack::Component::NativeLibrary could not import "+e+". Native value "+a.$scope_native_name(e)+" is undefined.")}).$$s=n,t.$$arity=2,t))},TMP_rename_3.$$arity=1),Opal.defn(self,"$import_const_from_native",TMP_import_const_from_native_4=function(e,t,n){var r,a,o,i=this,$=nil;return $=$truthy(r=i.$lookup_native_name(t))?r:i.$lookup_native_name($rb_plus(t["$[]"](0).$downcase(),t["$[]"]($range(1,-1,!1)))),$truthy(r=$)?$truthy(a=i.$create_component_wrapper(e,$,t))?a:$truthy(o=n)?i.$create_library_wrapper(e,$,t):o:r},TMP_import_const_from_native_4.$$arity=3),Opal.defn(self,"$const_missing",TMP_const_missing_5=function(e){var t,n=this,r=TMP_const_missing_5.$$p,a=nil,o=nil,i=nil;for(r&&(TMP_const_missing_5.$$p=null),o=0,i=arguments.length,a=new Array(i);ot:e["$>"](t)}e.top;var r=[],a=e.nil,o=(e.breaker,e.slice,e.module),i=e.klass,$=e.truthy,s=e.send;return e.add_stubs(["$attr_accessor","$waiting_on_resources","$raise_if_not_quiet?","$raise","$new","$!","$remove_nodes_from_args","$build","$waiting_on_resources=","$-","$run_child_block","$nil?","$to_proc","$dup","$tap","$create_element","$detect","$respond_to?","$is_a?","$last","$to_s","$render","$<<","$delete","$include?","$index","$[]=","$[]","$each","$acts_as_string?","$empty?","$!=","$raise_render_error","$==","$count","$improper_render","$>","$try","$class","$define_method","$unshift","$hyper_component?","$send"]),function(r,c){var _=o(r,"Hyperstack"),l=(_.$$proto,[_].concat(c));!function(r,c){var _=o(r,"Internal"),l=(_.$$proto,[_].concat(c));!function(r,c){var _=o(r,"Component"),l=(_.$$proto,[_].concat(c));!function(r,$super,o){function c(){}var _=c=i(r,null,"RenderingContext",c),l=(_.$$proto,[_].concat(o));(function(e,$super,t){function n(){}var r=n=i(e,$super,"NotQuiet",n);r.$$proto,[r].concat(t)})(l[0],e.const_get_relative(l,"Exception"),l),function(r,o){r.$$proto;var i,c,_,l,u,p,f,d,h,v,m,y,g=[r].concat(o);r.$attr_accessor("waiting_on_resources"),e.defn(r,"$raise_if_not_quiet?",i=function(){var e=this;return null==e.raise_if_not_quiet&&(e.raise_if_not_quiet=a),e.raise_if_not_quiet},i.$$arity=0),e.defn(r,"$raise_if_not_quiet=",c=function(e){return this.raise_if_not_quiet=e},c.$$arity=1),e.defn(r,"$quiet_test",_=function(t){var n,r=this;return $($(n=t.$waiting_on_resources())?r["$raise_if_not_quiet?"]():n)?r.$raise(e.const_get_relative(g,"NotQuiet").$new(t+" is waiting on resources")):a},_.$$arity=1),e.defn(r,"$render",l=function(n){var r,o,i,c=this,_=l.$$p,u=_||a,p=a,f=a,d=a;null==c.not_outer_most&&(c.not_outer_most=a),null==c.buffer&&(c.buffer=a);var h=arguments.length,v=h-1;v<0&&(v=0),i=new Array(v);for(var m=1;mt:e["$>"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),o=e.klass,i=e.send,$=e.truthy;return e.add_stubs(["$include","$each","$to_proc","$lambda","$render","$to_enum","$length","$>","$new","$call","$<<","$alias_method"]),function(n,s){var c=a(n,"Hyperstack"),_=(c.$$proto,[c].concat(s));!function(n,s){var c=a(n,"Component"),_=(c.$$proto,[c].concat(s));!function(n,$super,a){function s(){}var c,_,l,u,p,f=s=o(n,null,"Children",s),d=f.$$proto,h=[f].concat(a);d.children=d.length=r,f.$include(e.const_get_relative(h,"Enumerable")),e.defn(f,"$initialize",c=function(e){return this.children=e},c.$$arity=1),e.defn(f,"$render",_=function(){return i(this,"each",[],"render".$to_proc())},_.$$arity=0),e.defn(f,"$to_proc",l=function(){var e,t=this;return i(t,"lambda",[],((e=function(){return(e.$$s||this).$render()}).$$s=t,e.$$arity=0,e))},l.$$arity=0),e.defn(f,"$each",u=function(){var n,a=this,o=u.$$p,s=o||r,c=r,_=r;return o&&(u.$$p=null),s===r?i(a,"to_enum",["each"],((n=function(){return(n.$$s||this).$length()}).$$s=a,n.$$arity=0,n)):$(t(a.$length(),0))?(c=[],React.Children.forEach(a.children,function(t){_=e.const_get_relative(h,"Element").$new(t),s.$call(_),c["$<<"](_)}),c):[]},u.$$arity=0),e.defn(f,"$length",p=function(){var e,t=this;return t.length=$(e=t.length)?e:React.Children.count(t.children)},p.$$arity=0),f.$alias_method("size","length")}(_[0],0,_)}(_[0],_)}(n[0],n)},Opal.modules["hyperstack/internal/component/instance_methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var n=e.top,r=[],a=e.nil,o=(e.breaker,e.slice,e.module),i=e.truthy,$=e.send,s=e.hash2;return e.add_stubs(["$require","$new","$include?","$param_accessor_style","$raise","$[]","$dom_node","$==","$=~","$pluralize","$set_or_replace_state_or_prop","$to_proc","$private","$lambda","$instance_eval","$callbacks?","$class","$RescueWrapper","$call","$after_error_args=","$-","$__hyperstack_component_run_post_render_hooks","$__hyperstack_component_rescue_wrapper","$__hyperstack_router_wrapper","$shallow_to_n"]),n.$require("hyperstack/component/children"),function(n,r){var c=o(n,"Hyperstack"),_=(c.$$proto,[c].concat(r));!function(n,r){var c=o(n,"Internal"),_=(c.$$proto,[c].concat(r));!function(n,r){var c=o(n,"Component"),_=(c.$$proto,[c].concat(r));!function(n,r){var c,_,l,u,p,f,d,h,v,m,y,g,b,k,w=o(n,"InstanceMethods"),q=(w.$$proto,[w].concat(r));e.defn(w,"$children",c=function(){var t=this;return null==t.__hyperstack_component_native&&(t.__hyperstack_component_native=a),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(q,"Hyperstack"),"Component"),"Children").$new(t.__hyperstack_component_native.props.children)},c.$$arity=0),e.defn(w,"$params",_=function(){var e=this;return null==e.__hyperstack_component_params_wrapper&&(e.__hyperstack_component_params_wrapper=a),i(["hyperstack","accessors"]["$include?"](e.__hyperstack_component_params_wrapper.$param_accessor_style()))&&e.$raise("params are now directly accessible via instance variables.\n to access the legacy behavior add `param_accessor_style = :legacy` to your component class\n to access both behaviors add `param_accessor_style = :both` to your component class"),e.__hyperstack_component_params_wrapper},_.$$arity=0),e.defn(w,"$props",l=function(){var t=this;return null==t.__hyperstack_component_native&&(t.__hyperstack_component_native=a),e.const_get_relative(q,"Hash").$new(t.__hyperstack_component_native.props)},l.$$arity=0),e.defn(w,"$dom_node",u=function(){var e=this;return ReactDOM.findDOMNode(e.__hyperstack_component_native)},u.$$arity=0),e.defn(w,"$jq_node",p=function(){var t=this;return e.const_get_qualified("::","Element")["$[]"](t.$dom_node())},p.$$arity=0),e.defn(w,"$mounted?",f=function(){var e=this;return e.__hyperstack_component_is_mounted!==undefined&&e.__hyperstack_component_is_mounted},f.$$arity=0),e.defn(w,"$pluralize",d=function(e,t,n){var r,o=a;return null==n&&(n=a),o=i(i(r=e["$=="](1))?r:e["$=~"](/^1(\.0+)?$/))?t:i(r=n)?r:t.$pluralize(),(i(r=e)?r:0)+" "+o},d.$$arity=-3),e.defn(w,"$force_update!",h=function(){var e=this;return e.__hyperstack_component_native.forceUpdate(),e},h.$$arity=0),e.defn(w,"$set_state",v=function(e){var t=this,n=v.$$p,r=n||a;return n&&(v.$$p=null),$(t,"set_or_replace_state_or_prop",[e,"setState"],r.$to_proc())},v.$$arity=1),e.defn(w,"$set_state!",m=function(e){var t=this,n=m.$$p,r=n||a;return n&&(m.$$p=null),$(t,"set_or_replace_state_or_prop",[e,"setState"],r.$to_proc()),t.__hyperstack_component_native.forceUpdate()},m.$$arity=1),w.$private(),e.defn(w,"$__hyperstack_router_wrapper",y=function(){var e,t=this,n=y.$$p,r=n||a;return n&&(y.$$p=null),$(t,"lambda",[],((e=function(){var t=e.$$s||this;return $(t,"instance_eval",[],r.$to_proc())}).$$s=t,e.$$arity=0,e))},y.$$arity=0),e.defn(w,"$__hyperstack_component_rescue_wrapper",g=function(t){var n=this;return i(n.$class()["$callbacks?"]("__hyperstack_component_rescue_hook"))?e.const_get_qualified(e.const_get_qualified(e.const_get_relative(q,"Hyperstack"),"Internal"),"Component").$RescueWrapper(s(["child","children_elements"],{child:n,children_elements:t})):t.$call()},g.$$arity=1),e.defn(w,"$__hyperstack_component_select_wrappers",b=function(){var n=this,r=b.$$p,o=r||a,i=a;return r&&(b.$$p=null),i=[a],$(e.const_get_relative(q,"RescueWrapper"),"after_error_args=",e.to_a(i)),i[t(i.length,1)],n.$__hyperstack_component_run_post_render_hooks(n.$__hyperstack_component_rescue_wrapper($(n,"__hyperstack_router_wrapper",[],o.$to_proc())))},b.$$arity=0),e.defn(w,"$set_or_replace_state_or_prop",k=function(e,t){var n=this,r=k.$$p,o=r||a;null==n.__hyperstack_component_native&&(n.__hyperstack_component_native=a),r&&(k.$$p=null),i(n.__hyperstack_component_native)||n.$raise("No native ReactComponent associated");var $=e.$shallow_to_n();if(i(o))if(!0===n.__hyperstack_component_native.__opalInstanceInitializedState)n.__hyperstack_component_native[t]($,function(){o.$call()});else for(var s in $)$.hasOwnProperty(s)&&(n.__hyperstack_component_native.state[s]=$[s]);else if(!0===n.__hyperstack_component_native.__opalInstanceInitializedState)n.__hyperstack_component_native[t]($);else for(var s in $)$.hasOwnProperty(s)&&(n.__hyperstack_component_native.state[s]=$[s])},k.$$arity=2)}(_[0],_)}(_[0],_)}(_[0],_)}(r[0],r)},Opal.modules["hyperstack/internal/component/class_methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var o=[],i=e.nil,$=(e.breaker,e.slice,e.module),s=e.send,c=e.truthy,_=e.range,l=e.hash2,u=e.hash;return e.add_stubs(["$create_element","$to_proc","$render","$deprecation_warning","$select","$mounted_components","$<=","$class","$param_accessor_style","$props_wrapper","$==","$[]","$<<","$each","$before_new_params","$included","$is_a?","$type","$define_method","$__hyperstack_component_select_wrappers","$instance_eval","$__hyperstack_component_after_render_hook","$on","$instance_exec","$empty?","$__hyperstack_component_rescue_hook","$!","$detect","$before_mount","$before_update","$after_mount","$after_update","$any?","$respond_to?","$haml_class_name","$superclass","$copy","$validator","$new","$validate","$>","$count","$+","$name","$join","$default_props","$build","$first","$delete","$merge!","$[]=","$-","$key?","$optional","$requires","$all_other_params","$props","$=~","$gsub","$include?","$event_camelize","$event","$call","$arity","$last","$pop","$state","$singleton_class","$__send__","$mutate","$native_mixins","$static_call_backs","$split","$to_n","$add_item_to_tree","$Native","$create_native_react_class","$reverse","$import_native_component","$eval_native_react_component","$raise","$message","$!=","$length","$inject"]),function(o,p){var f=$(o,"Hyperstack"),d=(f.$$proto,[f].concat(p));!function(o,p){var f=$(o,"Internal"),d=(f.$$proto,[f].concat(p));!function(o,p){var f=$(o,"Component"),d=(f.$$proto,[f].concat(p));!function(o,p){var f,d,h,v,m,y,g,b,k,w,q,O,x,H,I,R,C,M,T,A,S,z,P,E,N,j,W,D,L,U,B,G,F,X,Y=$(o,"ClassMethods"),V=(Y.$$proto,[Y].concat(p));e.defn(Y,"$create_element",f=function(){var t,n=this,r=f.$$p,a=r||i,o=arguments.length,$=o-0;$<0&&($=0),t=new Array($);for(var c=0;c$/))?t.$gsub(/^<(.+)>$/,"\\1"):c(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(V,"Hyperstack"),"Component"),"Event"),"BUILT_IN_EVENTS")["$include?"]("on"+t.$event_camelize()))?"on"+t.$event_camelize():"on_"+t,o.$validator().$event(t),s(o,"define_method",[$],((a=function(){var n,r,o=a.$$s||this,$=arguments.length,c=$-0;c<0&&(c=0),n=new Array(c);for(var _=0;_<$;_++)n[_-0]=arguments[_];return(r=o.$props()["$[]"](t))===i||null==r?i:s(r,"call",e.to_a(n))}).$$s=o,a.$$arity=-1,a))},E.$$arity=-2),e.alias(Y,"triggers","fires"),e.defn(Y,"$define_state",N=function(){var t,n,r,a,o=this,$=N.$$p,_=$||i,p=i,f=i,d=arguments.length,h=d-0;h<0&&(h=0),a=new Array(h);for(var v=0;vt:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],a=e.nil,o=(e.breaker,e.slice,e.klass),i=e.truthy,$=e.hash2;return e.add_stubs(["$>","$length","$dup","$[]","$-","$rindex"]),function(r,$super,s){function c(){}var _,l=c=o(r,null,"String",c);l.$$proto,[l].concat(s);return e.defn(l,"$truncate",_=function(e,r){var o,s=this,c=a,_=a,l=a;return null==r&&(r=$([],{})),i(t(s.$length(),e))?(c=i(o=r["$[]"]("omission"))?o:"...",_=n(e,c.$length()),l=i(r["$[]"]("separator"))&&i(o=s.$rindex(r["$[]"]("separator"),_))?o:_,""+s["$[]"](0,l)+c):s.$dup()},_.$$arity=-2),a&&"truncate"}(r[0],0,r)},Opal.modules.set=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e"},d.$$arity=0),e.defn(j,"$==",h=function(t){var n,r,a=this;return!!$(a["$equal?"](t))||($(t["$instance_of?"](a.$class()))?a.hash["$=="](t.$instance_variable_get("@hash")):!!$($(n=t["$is_a?"](e.const_get_relative(D,"Set")))?a.$size()["$=="](t.$size()):n)&&s(t,"all?",[],((r=function(e){var t=r.$$s||this;return null==t.hash&&(t.hash=o),null==e&&(e=o),t.hash["$include?"](e)}).$$s=a,r.$$arity=1,r)))},h.$$arity=1),e.defn(j,"$add",v=function(n){var r=this,a=o;return a=[n,!0],s(r.hash,"[]=",e.to_a(a)),a[t(a.length,1)],r},v.$$arity=1),e.alias(j,"<<","add"),e.defn(j,"$classify",m=function(){var n,r,a=this,i=m.$$p,$=i||o,c=o;return i&&(m.$$p=null),$===o?a.$enum_for("classify"):(c=s(e.const_get_relative(D,"Hash"),"new",[],((n=function(r,a){var i=n.$$s||this,$=o;return null==r&&(r=o),null==a&&(a=o),$=[a,i.$class().$new()],s(r,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=a,n.$$arity=2,n)),s(a,"each",[],((r=function(t){r.$$s;return null==t&&(t=o),c["$[]"](e.yield1($,t)).$add(t)}).$$s=a,r.$$arity=1,r)),c)},m.$$arity=0),e.defn(j,"$collect!",y=function(){var t,n=this,r=y.$$p,a=r||o,i=o;return r&&(y.$$p=null),a===o?n.$enum_for("collect!"):(i=n.$class().$new(),s(n,"each",[],((t=function(n){t.$$s;return null==n&&(n=o),i["$<<"](e.yield1(a,n))}).$$s=n,t.$$arity=1,t)),n.$replace(i))},y.$$arity=0),e.alias(j,"map!","collect!"),e.defn(j,"$delete",g=function(e){var t=this;return t.hash.$delete(e),t},g.$$arity=1),e.defn(j,"$delete?",b=function(e){var t=this;return $(t["$include?"](e))?(t.$delete(e),t):o},b.$$arity=1),e.defn(j,"$delete_if",k=function(){try{var t,n,r=this,a=k.$$p,i=a||o;return a&&(k.$$p=null),$(i!==o)||e.ret(r.$enum_for("delete_if")),s(s(r,"select",[],((t=function(n){t.$$s;return null==n&&(n=o),e.yield1(i,n)}).$$s=r,t.$$arity=1,t)),"each",[],((n=function(e){var t=n.$$s||this;return null==t.hash&&(t.hash=o),null==e&&(e=o),t.hash.$delete(e)}).$$s=r,n.$$arity=1,n)),r}catch(c){if(c===e.returner)return c.$v;throw c}},k.$$arity=0),e.defn(j,"$add?",w=function(e){var t=this;return $(t["$include?"](e))?o:t.$add(e)},w.$$arity=1),e.defn(j,"$each",q=function(){var e=this,t=q.$$p,n=t||o;return t&&(q.$$p=null),n===o?e.$enum_for("each"):(s(e.hash,"each_key",[],n.$to_proc()),e)},q.$$arity=0),e.defn(j,"$empty?",O=function(){return this.hash["$empty?"]()},O.$$arity=0),e.defn(j,"$eql?",x=function(e){var t,n=this;return n.hash["$eql?"](s(e,"instance_eval",[],((t=function(){var e=t.$$s||this;return null==e.hash&&(e.hash=o),e.hash}).$$s=n,t.$$arity=0,t)))},x.$$arity=1),e.defn(j,"$clear",H=function(){var e=this;return e.hash.$clear(),e},H.$$arity=0),e.defn(j,"$include?",I=function(e){return this.hash["$include?"](e)},I.$$arity=1),e.alias(j,"member?","include?"),e.defn(j,"$merge",R=function(e){var t,n=this;return s(e,"each",[],((t=function(e){var n=t.$$s||this;return null==e&&(e=o),n.$add(e)}).$$s=n,t.$$arity=1,t)),n},R.$$arity=1),e.defn(j,"$replace",C=function(e){var t=this;return t.$clear(),t.$merge(e),t},C.$$arity=1),e.defn(j,"$size",M=function(){return this.hash.$size()},M.$$arity=0),e.alias(j,"length","size"),e.defn(j,"$subtract",T=function(e){var t,n=this;return s(e,"each",[],((t=function(e){var n=t.$$s||this;return null==e&&(e=o),n.$delete(e)}).$$s=n,t.$$arity=1,t)),n},T.$$arity=1),e.defn(j,"$|",A=function(t){var n=this;return $(t["$respond_to?"]("each"))||n.$raise(e.const_get_relative(D,"ArgumentError"),"value must be enumerable"),n.$dup().$merge(t)},A.$$arity=1),e.defn(j,"$superset?",S=function(t){var r,a=this;return $(t["$is_a?"](e.const_get_relative(D,"Set")))||a.$raise(e.const_get_relative(D,"ArgumentError"),"value must be a set"),!$(n(a.$size(),t.$size()))&&s(t,"all?",[],((r=function(e){var t=r.$$s||this;return null==e&&(e=o),t["$include?"](e)}).$$s=a,r.$$arity=1,r))},S.$$arity=1),e.alias(j,">=","superset?"),e.defn(j,"$proper_superset?",z=function(t){var n,a=this;return $(t["$is_a?"](e.const_get_relative(D,"Set")))||a.$raise(e.const_get_relative(D,"ArgumentError"),"value must be a set"),!$(r(a.$size(),t.$size()))&&s(t,"all?",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=o),t["$include?"](e)}).$$s=a,n.$$arity=1,n))},z.$$arity=1),e.alias(j,">","proper_superset?"),e.defn(j,"$subset?",P=function(t){var r,a=this;return $(t["$is_a?"](e.const_get_relative(D,"Set")))||a.$raise(e.const_get_relative(D,"ArgumentError"),"value must be a set"),!$(n(t.$size(),a.$size()))&&s(a,"all?",[],((r=function(e){r.$$s;return null==e&&(e=o),t["$include?"](e)}).$$s=a,r.$$arity=1,r))},P.$$arity=1),e.alias(j,"<=","subset?"),e.defn(j,"$proper_subset?",E=function(t){var n,a=this;return $(t["$is_a?"](e.const_get_relative(D,"Set")))||a.$raise(e.const_get_relative(D,"ArgumentError"),"value must be a set"),!$(r(t.$size(),a.$size()))&&s(a,"all?",[],((n=function(e){n.$$s;return null==e&&(e=o),t["$include?"](e)}).$$s=a,n.$$arity=1,n))},E.$$arity=1),e.alias(j,"<","proper_subset?"),e.alias(j,"+","|"),e.alias(j,"union","|"),e.defn(j,"$to_a",N=function(){return this.hash.$keys()},N.$$arity=0)}(a[0],0,a),function(t,n){var r,a=c(t,"Enumerable"),i=(a.$$proto,[a].concat(n));e.defn(a,"$to_set",r=function(t){var n,a=this,$=r.$$p,c=$||o;null==t&&(t=e.const_get_relative(i,"Set"));var _=arguments.length,l=_-1;l<0&&(l=0),n=new Array(l);for(var u=1;u<_;u++)n[u-1]=arguments[u];return $&&(r.$$p=null),s(t,"new",[a].concat(e.to_a(n)),c.$to_proc())},r.$$arity=-1)}(a[0],a)},Opal.modules["active_support/inflector/inflections"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,a=[],o=e.nil,i=(e.breaker,e.slice,e.module),$=e.klass,s=e.hash2,c=e.send,_=e.truthy,l=e.range;return e.add_stubs(["$require","$extend","$add","$map","$flatten","$to_proc","$concat","$include?","$downcase","$new","$[]","$[]=","$-","$attr_reader","$each","$instance_variable_set","$dup","$send","$is_a?","$delete","$unshift","$==","$upcase","$plural","$+","$singular","$===","$instance"]),r.$require("set"),function(r,a){var u=i(r,"ActiveSupport"),p=(u.$$proto,[u].concat(a));!function(r,a){var u,p=i(r,"Inflector"),f=(p.$$proto,[p].concat(a));p.$extend(p),function(r,$super,a){function i(){}var u,p,f,d,h,v,m,y,g,b=i=$(r,null,"Inflections",i),k=b.$$proto,w=[b].concat(a);k.uncountables=k.plurals=k.singulars=k.humans=o,b.__instance__=s([],{}),function(t,$super,n){function r(){}var a,i,s,_,l=r=$(t,$super,"Uncountables",r),u=(l.$$proto,[l].concat(n));e.defn(l,"$<<",a=function(){var e,t=this,n=arguments.length,r=n-0;r<0&&(r=0),e=new Array(r);for(var a=0;at:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,a=[],o=e.nil,i=(e.breaker,e.slice,e.module),$=e.truthy,s=e.send,c=e.gvars,_=e.hash2,l=e.range;return e.add_stubs(["$require","$extend","$apply_inflections","$plurals","$inflections","$singulars","$to_s","$sub","$capitalize","$downcase","$gsub","$freeze","$match?","$tr","$dup","$each","$humans","$is_a?","$=~","$==","$upcase","$>","$length","$+","$[]","$humanize","$underscore","$pluralize","$camelize","$singularize","$rindex","$demodulize","$split","$empty?","$raise","$size","$first","$shift","$inject","$const_get","$const_defined?","$ancestors","$constantize","$name","$!","$include?","$const_regexp","$message","$abs","$to_i","$%","$===","$ordinal","$private","$blank?","$escape","$pop","$reverse","$uncountable?","$uncountables"]),r.$require("active_support/inflections"),function(r,a){var u=i(r,"ActiveSupport"),p=(u.$$proto,[u].concat(a));!function(r,a){var u,p,f,d,h,v,m,y,g,b,k,w,q,O,x,H,I,R,C,M=i(r,"Inflector"),T=(M.$$proto,[M].concat(a));M.$extend(M),e.defn(M,"$pluralize",u=function(e,t){var n=this;return null==t&&(t="en"),n.$apply_inflections(e,n.$inflections(t).$plurals(),t)},u.$$arity=-2),e.defn(M,"$singularize",p=function(e,t){var n=this;return null==t&&(t="en"),n.$apply_inflections(e,n.$inflections(t).$singulars(),t)},p.$$arity=-2),e.defn(M,"$camelize",f=function(e,t){var n,r,a=this,i=o;return null==t&&(t=!0),i=e.$to_s(),i=$(t)?s(i,"sub",[/^[a-z\d]*/],((n=function(e){n.$$s;return null==e&&(e=o),e.$capitalize()}).$$s=a,n.$$arity=1,n)):i.$downcase(),i=(i=s(i,"gsub",[/(?:_|(\/))([a-z\d]*)/i],((r=function(){var e;r.$$s;return""+((e=c["~"])===o?o:e["$[]"](1))+((e=c["~"])===o?o:e["$[]"](2)).$capitalize()}).$$s=a,r.$$arity=0,r))).$gsub("/".$freeze(),"::".$freeze())},f.$$arity=-2),e.defn(M,"$underscore",d=function(e){return $(/[A-Z-]|::/["$match?"](e))?e.$to_s().$gsub("::".$freeze(),"/".$freeze()).$gsub(/([A-Z\d]+)([A-Z][a-z])/,"\\1_\\2".$freeze()).$gsub(/([a-z\d])([A-Z])/,"\\1_\\2".$freeze()).$tr("-".$freeze(),"_".$freeze()).$downcase():e},d.$$arity=1),e.defn(M,"$humanize",h=function(t,n){var r,a,i,c,l,u=this,p=o;if(null==n||!n.$$is_hash){if(null!=n)throw e.ArgumentError.$new("expected kwargs");n=_([],{})}return null==(c=n.$$smap.capitalize)&&(c=!0),null==(l=n.$$smap.keep_id_suffix)&&(l=!1),p=t.$to_s().$dup(),function(){var t=e.new_brk();try{s(u.$inflections().$humans(),"each",[],((r=function(n){var a,i,s,c,_;r.$$s;if(null==n&&(n=o),n=e.to_ary(n),null==(i=(a=e.slice.call(n,0,n.length)).splice(0,1)[0])&&(i=o),null==(s=a.splice(0,1)[0])&&(s=o),!$($(c=$(_=i["$is_a?"](e.const_get_relative(T,"Regexp")))?p["$=~"](i):_)?c:$(_=i["$is_a?"](e.const_get_relative(T,"String")))?p["$=="](i):_))return o;p=p.$sub(i,s),e.brk(o,t)}).$$s=u,r.$$brk=t,r.$$arity=1,r.$$has_top_level_mlhs_arg=!0,r))}catch(n){if(n===t)return n.$v;throw n}}(),p=p.$sub(/^_+/,"".$freeze()),$(l)||(p=p.$sub(/_id$/,"".$freeze())),p=p.$tr("_".$freeze()," ".$freeze()),p=s(p,"gsub",[/([a-z\d]*)/i],((a=function(e){a.$$s;return null==e&&(e=o),""+e.$downcase()}).$$s=u,a.$$arity=1,a)),$(c)&&(p=s(p,"sub",[/^\w/],((i=function(e){i.$$s;return null==e&&(e=o),e.$upcase()}).$$s=u,i.$$arity=1,i))),p},h.$$arity=-2),e.defn(M,"$upcase_first",v=function(e){return $(t(e.$length(),0))?n(e["$[]"](0).$upcase(),e["$[]"](l(1,-1,!1))):""},v.$$arity=1),e.defn(M,"$titleize",m=function(t,n){var r,a,i=this;if(null==n||!n.$$is_hash){if(null!=n)throw e.ArgumentError.$new("expected kwargs");n=_([],{})}return null==(a=n.$$smap.keep_id_suffix)&&(a=!1),s(i.$humanize(i.$underscore(t),_(["keep_id_suffix"],{keep_id_suffix:a})),"gsub",[/([a-zA-Z'\u2019`])[a-z]*/],((r=function(e){r.$$s;return null==e&&(e=o),e.$capitalize()}).$$s=i,r.$$arity=1,r))},m.$$arity=-2),e.defn(M,"$tableize",y=function(e){var t=this;return t.$pluralize(t.$underscore(e))},y.$$arity=1),e.defn(M,"$classify",g=function(e){var t=this;return t.$camelize(t.$singularize(e.$to_s().$sub(/.*\./,"".$freeze())))},g.$$arity=1),e.defn(M,"$dasherize",b=function(e){return e.$tr("_".$freeze(),"-".$freeze())},b.$$arity=1),e.defn(M,"$demodulize",k=function(t){var r=o;return t=t.$to_s(),$(r=t.$rindex("::"))?t["$[]"](e.Range.$new(n(r,2),-1,!1)):t},k.$$arity=1),e.defn(M,"$deconstantize",w=function(e){var t;return e.$to_s()["$[]"](0,$(t=e.$rindex("::"))?t:0)},w.$$arity=1),e.defn(M,"$foreign_key",q=function(e,t){var r=this;return null==t&&(t=!0),n(r.$underscore(r.$demodulize(e)),$(t)?"_id":"id")},q.$$arity=-2),e.defn(M,"$constantize",O=function(n){var r,a,i=this,c=o;return c=n.$split("::"),$(c["$empty?"]())&&i.$raise(e.const_get_relative(T,"NameError"),"wrong constant name "),$($(r=t(c.$size(),1))?c.$first()["$empty?"]():r)&&c.$shift(),function(){var t=e.new_brk();try{return s(c,"inject",[e.const_get_relative(T,"Object")],((a=function(t,n){var r,i=a.$$s||this,c=o;return null==t&&(t=o),null==n&&(n=o),t["$=="](e.const_get_relative(T,"Object"))?t.$const_get(n):(c=t.$const_get(n),$(t["$const_defined?"](n,!1))?c:$(e.const_get_relative(T,"Object")["$const_defined?"](n))?(t=function(){var a=e.new_brk();try{return s(t.$ancestors(),"inject",[t],((r=function(t,i){r.$$s;return null==t&&(t=o),null==i&&(i=o),i["$=="](e.const_get_relative(T,"Object"))&&e.brk(t,a),$(i["$const_defined?"](n,!1))&&e.brk(i,a),t}).$$s=i,r.$$brk=a,r.$$arity=2,r))}catch(c){if(c===a)return c.$v;throw c}}()).$const_get(n,!1):c)}).$$s=i,a.$$brk=t,a.$$arity=2,a))}catch(n){if(n===t)return n.$v;throw n}}()},O.$$arity=1),e.defn(M,"$safe_constantize",x=function(t){var n,r,a=this,i=o;try{return a.$constantize(t)}catch(s){if(e.rescue(s,[e.const_get_relative(T,"NameError")])){i=s;try{return $($(n=i.$name())?($(r=t.$to_s().$split("::")["$include?"](i.$name().$to_s()))?r:i.$name().$to_s()["$=="](t.$to_s()))["$!"]():n)?a.$raise():o}finally{e.pop_exception()}}else{if(!e.rescue(s,[e.const_get_relative(T,"ArgumentError")]))throw s;i=s;try{return $(new RegExp("not missing constant "+a.$const_regexp(t)+"!$")["$match?"](i.$message()))?o:a.$raise()}finally{e.pop_exception()}}}},x.$$arity=1),e.defn(M,"$ordinal",H=function(e){var t=o,n=o;return t=e.$to_i().$abs(),$(l(11,13,!1)["$include?"](t["$%"](100)))?"th":(n=t["$%"](10),1["$==="](n)?"st":2["$==="](n)?"nd":3["$==="](n)?"rd":"th")},H.$$arity=1),e.defn(M,"$ordinalize",I=function(e){return""+e+this.$ordinal(e)},I.$$arity=1),M.$private(),e.defn(M,"$const_regexp",R=function(t){var n,r=this,a=o,i=o;return a=t.$split("::".$freeze()),$(a["$blank?"]())?e.const_get_relative(T,"Regexp").$escape(t):(i=a.$pop(),s(a.$reverse(),"inject",[i],((n=function(e,t){n.$$s;return null==e&&(e=o),null==t&&(t=o),$(t["$empty?"]())?e:t+"(::"+e+")?"}).$$s=r,n.$$arity=2,n)))},R.$$arity=1),e.defn(M,"$apply_inflections",C=function(t,n,r){var a,i,c=this,_=o;return null==r&&(r="en"),_=t.$to_s().$dup(),$($(a=t["$empty?"]())?a:c.$inflections(r).$uncountables()["$uncountable?"](_))?_:(function(){var t=e.new_brk();try{s(n,"each",[],((i=function(n){var r,a,s,c,l;i.$$s;if(null==n&&(n=o),n=e.to_ary(n),null==(a=(r=e.slice.call(n,0,n.length)).splice(0,1)[0])&&(a=o),null==(s=r.splice(0,1)[0])&&(s=o),!$($(c=$(l=a["$is_a?"](e.const_get_relative(T,"Regexp")))?_["$=~"](a):l)?c:$(l=a["$is_a?"](e.const_get_relative(T,"String")))?_["$=="](a):l))return o;_=_.$sub(a,s),e.brk(o,t)}).$$s=c,i.$$brk=t,i.$$arity=1,i.$$has_top_level_mlhs_arg=!0,i))}catch(r){if(r===t)return r.$v;throw r}}(),_)},C.$$arity=-3)}(p[0],p)}(a[0],a)},Opal.modules["active_support/inflector"]=function(e){var t=e.top;e.nil,e.breaker,e.slice;return e.add_stubs(["$require"]),t.$require("active_support/inflector/inflections"),t.$require("active_support/inflector/methods"),t.$require("active_support/inflections"),t.$require("active_support/core_ext/string/inflections")},Opal.modules["active_support/core_ext/string/inflections"]=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.klass),o=e.truthy,i=e.hash2;return e.add_stubs(["$require","$is_a?","$==","$dup","$pluralize","$singularize","$constantize","$safe_constantize","$===","$camelize","$raise","$alias_method","$titleize","$underscore","$dasherize","$demodulize","$deconstantize","$tableize","$classify","$humanize","$upcase_first","$foreign_key"]),t.$require("active_support/inflector"),function(t,$super,n){function $(){}var s,c,_,l,u,p,f,d,h,v,m,y,g,b,k,w=$=a(t,null,"String",$),q=(w.$$proto,[w].concat(n));return e.defn(w,"$pluralize",s=function(t,n){var a=this;return null==t&&(t=r),null==n&&(n="en"),o(t["$is_a?"](e.const_get_relative(q,"Symbol")))&&(n=t),t["$=="](1)?a.$dup():e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$pluralize(a,n)},s.$$arity=-1),e.defn(w,"$singularize",c=function(t){var n=this;return null==t&&(t="en"),e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$singularize(n,t)},c.$$arity=-1),e.defn(w,"$constantize",_=function(){var t=this;return e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$constantize(t)},_.$$arity=0),e.defn(w,"$safe_constantize",l=function(){var t=this;return e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$safe_constantize(t)},l.$$arity=0),e.defn(w,"$camelize",u=function(t){var n=this,a=r;return null==t&&(t="upper"),a=t,"upper"["$==="](a)?e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$camelize(n,!0):"lower"["$==="](a)?e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$camelize(n,!1):n.$raise(e.const_get_relative(q,"ArgumentError"),"Invalid option, use either :upper or :lower.")},u.$$arity=-1),w.$alias_method("camelcase","camelize"),e.defn(w,"$titleize",p=function(t){var n,r=this;if(null==t||!t.$$is_hash){if(null!=t)throw e.ArgumentError.$new("expected kwargs");t=i([],{})}return null==(n=t.$$smap.keep_id_suffix)&&(n=!1),e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$titleize(r,i(["keep_id_suffix"],{keep_id_suffix:n}))},p.$$arity=-1),w.$alias_method("titlecase","titleize"),e.defn(w,"$underscore",f=function(){var t=this;return e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$underscore(t)},f.$$arity=0),e.defn(w,"$dasherize",d=function(){var t=this;return e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$dasherize(t)},d.$$arity=0),e.defn(w,"$demodulize",h=function(){var t=this;return e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$demodulize(t)},h.$$arity=0),e.defn(w,"$deconstantize",v=function(){var t=this;return e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$deconstantize(t)},v.$$arity=0),e.defn(w,"$tableize",m=function(){var t=this;return e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$tableize(t)},m.$$arity=0),e.defn(w,"$classify",y=function(){var t=this;return e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$classify(t)},y.$$arity=0),e.defn(w,"$humanize",g=function(t){var n,r,a=this;if(null==t||!t.$$is_hash){if(null!=t)throw e.ArgumentError.$new("expected kwargs");t=i([],{})}return null==(n=t.$$smap.capitalize)&&(n=!0),null==(r=t.$$smap.keep_id_suffix)&&(r=!1),e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$humanize(a,i(["capitalize","keep_id_suffix"],{capitalize:n,keep_id_suffix:r}))},g.$$arity=-1),e.defn(w,"$upcase_first",b=function(){var t=this;return e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$upcase_first(t)},b.$$arity=0),e.defn(w,"$foreign_key",k=function(t){var n=this;return null==t&&(t=!0),e.const_get_qualified(e.const_get_relative(q,"ActiveSupport"),"Inflector").$foreign_key(n,t)},k.$$arity=-1),r&&"foreign_key"}(n[0],0,n)},Opal.modules["active_support/core_ext/string"]=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.klass);return e.add_stubs(["$require","$gsub","$strip","$downcase"]),t.$require("active_support/core_ext/string/filters"),t.$require("active_support/core_ext/string/inflections"),function(t,$super,n){function o(){}var i,$=o=a(t,null,"String",o);$.$$proto,[$].concat(n);return e.defn($,"$parameterize",i=function(){return this.$downcase().$strip().$gsub(/\W+/,"-")},i.$$arity=0),r&&"parameterize"}(n[0],0,n)},Opal.modules["hyperstack/internal/component/props_wrapper"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,a=[],o=e.nil,i=(e.breaker,e.slice, -e.module),$=e.klass,s=e.truthy,c=e.range,_=e.send;return e.add_stubs(["$require","$attr_reader","$naming_convention","$===","$fix_suffix","$camelize","$=~","$+","$[]","$respond_to?","$superclass","$param_accessor_style","$dup","$param_definitions","$new","$!=","$instance_var_name_for","$lambda","$instance_variable_set","$fetch_from_cache","$==","$[]=","$-","$include?","$define_method","$to_sym","$props","$call","$to_proc","$class","$each_value","$instance_exec","$initialize","$private","$cache","$equal?","$tap","$convert_param","$_react_param_conversion","$is_a?","$collect","$component","$instance_variable_get"]),r.$require("active_support/core_ext/string"),function(r,a){var l=i(r,"Hyperstack"),u=(l.$$proto,[l].concat(a));!function(r,a){var l=i(r,"Internal"),u=(l.$$proto,[l].concat(a));!function(r,a){var l=i(r,"Component"),u=(l.$$proto,[l].concat(a));!function(r,$super,a){function i(){}var l,u,p,f,d,h,v,m,y,g=i=$(r,null,"PropsWrapper",i),b=g.$$proto,k=[g].concat(a);b.component=b.cache=o,g.$attr_reader("component"),function(r,a){r.$$proto;var i,$,l,u,p,f,d=[r].concat(a);e.defn(r,"$instance_var_name_for",i=function(t){var n=this,r=o;return r=e.const_get_relative(d,"Hyperstack").$naming_convention(),"camelize_params"["$==="](r)?n.$fix_suffix(t.$camelize()):"prefix_params"["$==="](r)?"_"+t:t},i.$$arity=1),e.defn(r,"$fix_suffix",$=function(e){return s(e)?s(e["$=~"](/\?$/))?t(e["$[]"](c(0,-2,!1)),"_q"):s(e["$=~"](/\!$/))?t(e["$[]"](c(0,-2,!1)),"_b"):e:o},$.$$arity=1),e.defn(r,"$param_accessor_style",l=function(e){var t,n=this;return null==n.param_accessor_style&&(n.param_accessor_style=o),null==e&&(e=o),s(e)&&(n.param_accessor_style=e),n.param_accessor_style=s(t=n.param_accessor_style)?t:s(n.$superclass()["$respond_to?"]("param_accessor_style"))?n.$superclass().$param_accessor_style():"hyperstack"},l.$$arity=-1),e.defn(r,"$param_definitions",u=function(){var t,n=this;return null==n.param_definitions&&(n.param_definitions=o),n.param_definitions=s(t=n.param_definitions)?t:s(n.$superclass()["$respond_to?"]("param_definitions"))?n.$superclass().$param_definitions().$dup():e.const_get_relative(d,"Hash").$new()},u.$$arity=0),e.defn(r,"$define_param",p=function(t,r,a){var i,$,c,l,u=this,p=o,f=o,h=o;return null==a&&(a=o),s(s(i=u.$param_accessor_style()["$!="]("legacy"))?i:a)&&(p=s(i=a)?i:t,f=s(i=u.$fix_suffix(a))?i:u.$instance_var_name_for(t),h=[t,_(u,"lambda",[],($=function(e){var n=$.$$s||this,a=o;return null==n.component&&(n.component=o),null==e&&(e=o),n.component.$instance_variable_set("@"+f,a=n.$fetch_from_cache(t,r,e)),n.$param_accessor_style()["$=="]("accessors")?n.component["$"+p]=function(){return a}:o},$.$$s=u,$.$$arity=1,$))],_(u.$param_definitions(),"[]=",e.to_a(h)),h[n(h.length,1)],s(["hyperstack","accessors"]["$include?"](u.$param_accessor_style())))?o:r["$=="](e.const_get_relative(d,"Proc"))?_(u,"define_method",[t.$to_sym()],((c=function(){var n,r,a=c.$$s||this;(n=c.$$p||o)&&(c.$$p=null);var i=arguments.length,$=i-0;$<0&&($=0),r=new Array($);for(var l=0;lt:e["$>"](t)}e.top;var r=[],a=e.nil,o=(e.breaker,e.slice,e.module),i=e.send,$=e.truthy,s=e.klass;return e.add_stubs(["$+","$each","$define_method","$upcase","$render","$to_proc","$const_set","$downcase","$=~","$include?","$create_element","$find_component","$find_name_and_parent","$new","$extend","$private","$name","$split","$>","$length","$last","$[]","$inject","$const_get","$lookup_const","$!","$method_defined?","$raise","$_reactrb_import_component_class","$reverse","$to_s","$class","$detect","$const_defined?","$respond_to?"]),function(r,s){var c=o(r,"Hyperstack"),_=(c.$$proto,[c].concat(s));!function(r,s){var c=o(r,"Internal"),_=(c.$$proto,[c].concat(s));!function(r,s){var c=o(r,"Component"),_=(c.$$proto,[c].concat(s));!function(r,s){var c,_,l,u,p,f=o(r,"Tags"),d=(f.$$proto,[f].concat(s));e.const_set(d[0],"HTML_TAGS",t(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],["circle","clipPath","defs","ellipse","g","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"])),i(e.const_get_relative(d,"HTML_TAGS"),"each",[],((c=function(t){var n,r=c.$$s||this;return null==t&&(t=a),i(r,"define_method",[t.$upcase()],((n=function(){var r,o;n.$$s;(r=n.$$p||a)&&(n.$$p=null);var $=arguments.length,s=$-0;s<0&&(s=0),o=new Array(s);for(var c=0;c<$;c++)o[c-0]=arguments[c];return i(e.const_get_relative(d,"RenderingContext"),"render",[t].concat(e.to_a(o)),r.$to_proc())}).$$s=r,n.$$arity=-1,n)),r.$const_set(t.$upcase(),t)}).$$s=f,c.$$arity=1,c)),e.defs(f,"$html_tag_class_for",_=function(t){var n,r=a;return r=t.$downcase(),$($(n=t["$=~"](/^[A-Z]+$/))?e.const_get_relative(d,"HTML_TAGS")["$include?"](r):n)?e.const_get_relative(d,"Object").$const_set(t,e.const_get_relative(d,"ReactWrapper").$create_element(r)):a},_.$$arity=1),e.defn(f,"$method_missing",l=function(t){var n,r=this,o=l.$$p,s=o||a,c=a,_=a,u=a,p=a,f=arguments.length,h=f-1;h<0&&(h=0),n=new Array(h);for(var v=1;v= v15 you must import it with ReactDOM"),n=n.$$class?n[0]:n,i!==a?(s=function(){setTimeout(function(){e.yieldX(i,[])},0)},c=ReactDOM.render(t.$to_n(),n,s)):c=ReactDOM.render(t.$to_n(),n),$(null!==c)?$(c.__opalInstance!==undefined&&null!==c.__opalInstance)?c.__opalInstance:$(ReactDOM.findDOMNode!==undefined&&c.nodeType===undefined)?ReactDOM.findDOMNode(c):c:a},l.$$arity=2),e.defs(v,"$is_valid_element",u=function(t){var n;return console.error("Warning: `is_valid_element` is deprecated in favor of `is_valid_element?`."),$(n=t["$kind_of?"](e.const_get_qualified(e.const_get_qualified(e.const_get_relative(m,"Hyperstack"),"Component"),"Element")))?React.isValidElement(t.$to_n()):n},u.$$arity=1),e.defs(v,"$is_valid_element?",p=function(t){var n;return $(n=t["$kind_of?"](e.const_get_qualified(e.const_get_qualified(e.const_get_relative(m,"Hyperstack"),"Component"),"Element")))?React.isValidElement(t.$to_n()):n},p.$$arity=1),e.defs(v,"$render_to_string",f=function(t){var n,r=this;return console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_string` is deprecated in favor of `React::Server.render_to_string`."),$(("undefined"==typeof ReactDOMServer)["$!"]())?i(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(m,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"build",[],((n=function(){n.$$s;return ReactDOMServer.renderToString(t.$to_n())}).$$s=r,n.$$arity=0,n)):r.$raise("renderToString is not defined. In React >= v15 you must import it with ReactDOMServer")},f.$$arity=1),e.defs(v,"$render_to_static_markup",d=function(t){var n,r=this;return console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_static_markup` is deprecated in favor of `React::Server.render_to_static_markup`."),$(("undefined"==typeof ReactDOMServer)["$!"]())?i(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(m,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"build",[],((n=function(){n.$$s;return ReactDOMServer.renderToStaticMarkup(t.$to_n())}).$$s=r,n.$$arity=0,n)):r.$raise("renderToStaticMarkup is not defined. In React >= v15 you must import it with ReactDOMServer")},d.$$arity=1),e.defs(v,"$unmount_component_at_node",h=function(e){var t=this;return $(("undefined"==typeof ReactDOM)["$!"]())?ReactDOM.unmountComponentAtNode(e.$$class?e[0]:e):t.$raise("unmountComponentAtNode is not defined. In React >= v15 you must import it with ReactDOM")},h.$$arity=1)}(c[0],c)}(c[0],c)}(r[0],r)},Opal.modules["hyperstack/internal/component/top_level_rails_component"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),o=e.klass,i=e.truthy,$=e.send;return e.add_stubs(["$include","$export_component","$param","$backtrace","$top_level_render","$start_with?","$<<","$const_get","$each","$search_path","$class","$name","$!=","$method_defined?","$render","$raise","$join","$search_path=","$-","$!","$include?","$add_to_react_search_path"]),function(t,n){var s=a(t,"Hyperstack"),c=(s.$$proto,[s].concat(n));!function(t,n){var s=a(t,"Internal"),c=(s.$$proto,[s].concat(n));!function(t,n){var s=a(t,"Component"),c=(s.$$proto,[s].concat(n));!function(t,$super,n){function a(){}var s,c,_,l,u=a=o(t,null,"TopLevelRailsComponent",a),p=u.$$proto,f=[u].concat(n);p.ComponentName=p.RenderParams=p.Controller=r,u.$include(e.const_get_qualified(e.const_get_relative(f,"Hyperstack"),"Component")),e.defs(u,"$search_path",s=function(){var t,n=this;return null==n.search_path&&(n.search_path=r),n.search_path=i(t=n.search_path)?t:[e.const_get_relative(f,"Object")]},s.$$arity=0),u.$export_component(),u.$param("component_name"),u.$param("controller"),u.$param("render_params"),u.$backtrace("off"),e.defs(u,"$allow_deprecated_render_definition?",c=function(){return!0},c.$$arity=0),e.defn(u,"$render",_=function(){return this.$top_level_render()},_.$$arity=0),e.defn(u,"$top_level_render",l=function(){var t,n,a,o=this,s=r,c=r;return s=[],c=r,i(o.ComponentName["$start_with?"]("::"))?(s["$<<"](o.ComponentName),c=function(){try{return e.const_get_relative(f,"Object").$const_get(o.ComponentName)}catch(t){if(!e.rescue(t,[e.const_get_relative(f,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}()):(function(){var n=e.new_brk();try{$(o.$class().$search_path(),"each",[],((t=function(a){var o=t.$$s||this;if(null==o.Controller&&(o.Controller=r),null==o.ComponentName&&(o.ComponentName=r),null==a&&(a=r),s["$<<"](a.$name()+"::"+o.Controller+"::"+o.ComponentName),c=function(){try{return a.$const_get(o.Controller,!1).$const_get(o.ComponentName,!1)}catch(t){if(!e.rescue(t,[e.const_get_relative(f,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}(),!i(c["$!="](r)))return r;e.brk(r,n)}).$$s=o,t.$$brk=n,t.$$arity=1,t))}catch(a){if(a===n)return a.$v;throw a}}(),i(c)||function(){var t=e.new_brk();try{$(o.$class().$search_path(),"each",[],((n=function(a){var o=n.$$s||this;if(null==o.ComponentName&&(o.ComponentName=r),null==a&&(a=r),s["$<<"](a.$name()+"::"+o.ComponentName),c=function(){try{return a.$const_get(o.ComponentName,!1)}catch(t){if(!e.rescue(t,[e.const_get_relative(f,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}(),!i(c["$!="](r)))return r;e.brk(r,t)}).$$s=o,n.$$brk=t,n.$$arity=1,n))}catch(a){if(a===t)return a.$v;throw a}}()),i(i(a=c)?c["$method_defined?"]("render"):a)?e.const_get_relative(f,"RenderingContext").$render(c,o.RenderParams):o.$raise("Could not find component class '"+o.ComponentName+"' for @Controller '"+o.Controller+"' in any component directory. Tried ["+s.$join(", ")+"]")},l.$$arity=0)}(c[0],0,c)}(c[0],c)}(c[0],c)}(n[0],n),function(n,$super,a){function s(){}var c,_=s=o(n,null,"Module",s),l=(_.$$proto,[_].concat(a));e.defn(_,"$add_to_react_search_path",c=function(n){var a=this,o=r;return null==n&&(n=r),i(n)?(o=[[a]],$(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(l,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent"),"search_path=",e.to_a(o)),o[t(o.length,1)]):i(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(l,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent").$search_path()["$include?"](a)["$!"]())?e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(l,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent").$search_path()["$<<"](a):r},c.$$arity=-1)}(n[0],0,n),function(e,t){var n=a(e,"Components");n.$$proto,[n].concat(t);n.$add_to_react_search_path()}(n[0],n)},Opal.modules["hyperstack/component/while_loading"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.hash2,o=e.truthy;return e.add_stubs(["$WhileLoadingWrapper","$!","$on_opal_client?"]),function(t,i){var $=r(t,"Hyperstack"),s=($.$$proto,[$].concat(i));!function(t,i){var $=r(t,"Component"),s=($.$$proto,[$].concat(i));!function(t,i){var $,s,c,_=r(t,"WhileLoading"),l=(_.$$proto,[_].concat(i));if(e.defn(_,"$__hyperstack_component_rescue_wrapper",$=function(t){var n=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(l,"Hyperstack"),"Internal"),"Component").$WhileLoadingWrapper(a(["child","children_elements"],{child:n,children_elements:t}))},$.$$arity=1),e.defn(_,"$resources_loading?",s=function(){var e=this;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=n),e.__hyperstack_while_loading_waiting_on_resources},s.$$arity=0),e.defn(_,"$resources_loaded?",c=function(){var e=this;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=n),e.__hyperstack_while_loading_waiting_on_resources["$!"]()},c.$$arity=0),o(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(l,"Hyperstack"),"Component"),"IsomorphicHelpers")["$on_opal_client?"]())){function u(e){e.message.match(/^Uncaught NotQuiet: /)&&e.preventDefault()}window.addEventListener("error",u)}}(s[0],s)}(s[0],s)}(t[0],t)},Opal.modules["hyperstack/component/free_render"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.send,o=e.truthy;return e.add_stubs(["$instance_eval","$const_defined?","$const_get","$is_a?","$method_defined?","$include?","$render","$to_proc","$hyperstack_component_original_meth_missing"]),function(t,i){var $=r(t,"Hyperstack"),s=($.$$proto,[$].concat(i));!function(t,i){var $=r(t,"Component"),s=($.$$proto,[$].concat(i));!function(t,i){var $,s=r(t,"FreeRender"),c=(s.$$proto,[s].concat(i));e.defs(s,"$included",$=function(t){var r,i=this;return a(t,"instance_eval",[],((r=function(){var t,i=r.$$s||this;return e.alias(i,"hyperstack_component_original_meth_missing","method_missing"),e.def(i,"$method_missing",t=function(r){var i,$,s,_,l=this,u=t.$$p,p=u||n,f=n,d=arguments.length,h=d-1;h<0&&(h=0),_=new Array(h);for(var v=1;v=t:e["$>="](t)}var r=e.top,$=[],a=e.nil,o=e.$$$,i=e.$$,s=e.module,l=e.truthy,c=e.send,u=e.hash2,_=e.range,p=e.alias,d=e.klass,f=e.send2,h=e.find_super,m=e.gvars;return e.add_stubs(["$try_convert","$native?","$respond_to?","$to_n","$raise","$inspect","$Native","$proc","$map!","$end_with?","$define_method","$[]","$convert","$call","$to_proc","$new","$each","$native_reader","$native_writer","$extend","$warn","$include","$is_a?","$map","$to_a","$_Array","$method_missing","$bind","$instance_method","$slice","$-","$length","$[]=","$enum_for","$===","$>=","$<<","$each_pair","$method_defined?","$_initialize","$name","$native_module"]),function(t,n){var r,$,p,d,f,h,m=s(t,"Native"),y=[m].concat(n);e.defs(m,"$is_a?",r=function(e,t){var n=this;try{return e instanceof n.$try_convert(t)}catch(r){return!1}},r.$$arity=2),e.defs(m,"$try_convert",$=function(e,t){return null==t&&(t=a),this["$native?"](e)?e:e["$respond_to?"]("to_n")?e.$to_n():t},$.$$arity=-2),e.defs(m,"$convert",p=function(e){var t=this;return t["$native?"](e)?e:e["$respond_to?"]("to_n")?e.$to_n():void t.$raise(i(y,"ArgumentError"),e.$inspect()+" isn't native")},p.$$arity=1),e.defs(m,"$call",d=function(t,n){var r,$=d.$$p,o=$||a,i=this;$&&(d.$$p=null),$&&(d.$$p=null),r=e.slice.call(arguments,2,arguments.length);var s=t[n];if(s instanceof Function){for(var l=new Array(r.length),c=0,u=r.length;c0&&(o=n[0],n.splice(0,1)),null==o&&(o=t),null==(s=$.$$smap.as)&&(s=a),l(o["$end_with?"]("="))?c(y,"define_method",[t],((p=function(e){var t=null==p.$$s?this:p.$$s;return null==t.native&&(t.native=a),null==e&&(e=a),t.native[o["$[]"](_(0,-2,!1))]=i(f,"Native").$convert(e),e}).$$s=y,p.$$arity=1,p)):l(s)?c(y,"define_method",[t],((d=function(){var t,n=null==d.$$s?this:d.$$s,r=d.$$p,$=r||a,u=a;return null==n.native&&(n.native=a),r&&(d.$$p=null),t=e.slice.call(arguments,0,arguments.length),u=c(i(f,"Native"),"call",[n.native,o].concat(e.to_a(t)),$.$to_proc()),l(u)?s.$new(u.$to_n()):a}).$$s=y,d.$$arity=-1,d)):c(y,"define_method",[t],((h=function(){var t,n=null==h.$$s?this:h.$$s,r=h.$$p,$=r||a;return null==n.native&&(n.native=a),r&&(h.$$p=null),t=e.slice.call(arguments,0,arguments.length),c(i(f,"Native"),"call",[n.native,o].concat(e.to_a(t)),$.$to_proc())}).$$s=y,h.$$arity=-1,h))},r.$$arity=-2),e.def(d,"$native_reader",$=function(){var t,n,r=this;return t=e.slice.call(arguments,0,arguments.length),c(t,"each",[],((n=function(e){var t,r=null==n.$$s?this:n.$$s;return null==e&&(e=a),c(r,"define_method",[e],((t=function(){var n=null==t.$$s?this:t.$$s;return null==n.native&&(n.native=a),n.$Native(n.native[e])}).$$s=r,t.$$arity=0,t))}).$$s=r,n.$$arity=1,n))},$.$$arity=-1),e.def(d,"$native_writer",o=function(){var t,n,r=this;return t=e.slice.call(arguments,0,arguments.length),c(t,"each",[],((n=function(e){var t,r=null==n.$$s?this:n.$$s;return null==e&&(e=a),c(r,"define_method",[e+"="],((t=function(n){var r=null==t.$$s?this:t.$$s;return null==r.native&&(r.native=a),null==n&&(n=a),r.$Native(r.native[e]=n)}).$$s=r,t.$$arity=1,t))}).$$s=r,n.$$arity=1,n))},o.$$arity=-1),e.def(d,"$native_accessor",p=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),c(n,"native_reader",e.to_a(t)),c(n,"native_writer",e.to_a(t))},p.$$arity=-1)}(y[0],y),function(t,n){var r,$,c,u=s(t,"Wrapper"),_=[u].concat(n);e.def(u,"$initialize",r=function(e){var t=this;return l(o("::","Kernel")["$native?"](e))||o("::","Kernel").$raise(i(_,"ArgumentError"),e.$inspect()+" isn't native"),t.native=e},r.$$arity=1),e.def(u,"$to_n",$=function(){var e=this;return null==e.native&&(e.native=a),e.native},$.$$arity=0),e.defs(u,"$included",c=function(e){return e.$extend(i(_,"Helpers"))},c.$$arity=1)}(y[0],y),e.defs(m,"$included",h=function(e){return this.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),e.$include(i(y,"Wrapper"))},h.$$arity=1)}($[0],$),function(t,n){var r,$,u,_=s(t,"Kernel"),d=[_].concat(n);e.def(_,"$native?",r=function(e){return null==e||!e.$$class},r.$$arity=1),e.def(_,"$Native",$=function(t){var n,r,s=$.$$p,u=this;return s&&($.$$p=null),l(null==t)?a:l(u["$native?"](t))?o(i(d,"Native"),"Object").$new(t):l(t["$is_a?"](i(d,"Array")))?c(t,"map",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=a),t.$Native(e)}).$$s=u,n.$$arity=1,n)):l(t["$is_a?"](i(d,"Proc")))?c(u,"proc",[],((r=function(){var n,$=null==r.$$s?this:r.$$s,o=r.$$p,i=o||a;return o&&(r.$$p=null),n=e.slice.call(arguments,0,arguments.length),$.$Native(c(t,"call",e.to_a(n),i.$to_proc()))}).$$s=u,r.$$arity=-1,r)):t},$.$$arity=1),p(_,"_Array","Array"),e.def(_,"$Array",u=function(t){var n,r=u.$$p,$=r||a,s=this;return r&&(u.$$p=null),r&&(u.$$p=null),n=e.slice.call(arguments,1,arguments.length),l(s["$native?"](t))?c(o(i(d,"Native"),"Array"),"new",[t].concat(e.to_a(n)),$.$to_proc()).$to_a():s.$_Array(t)},u.$$arity=-2)}($[0],$),function(n,$super,r){var $,i,s,_,f,h,m,y,v,g,b,k,w,x,O,H=d(n,$super,"Object");[H].concat(r);H.$$prototype.native=a,H.$include(o(o("::","Native"),"Wrapper")),e.def(H,"$==",$=function(e){return this.native===o("::","Native").$try_convert(e)},$.$$arity=1),e.def(H,"$has_key?",i=function(t){var n=this;return e.hasOwnProperty.call(n.native,t)},i.$$arity=1),p(H,"key?","has_key?"),p(H,"include?","has_key?"),p(H,"member?","has_key?"),e.def(H,"$each",s=function(){var t,n=s.$$p,r=n||a,$=this;if(n&&(s.$$p=null),t=e.slice.call(arguments,0,arguments.length),r!==a){for(var o in $.native)e.yieldX(r,[o,$.native[o]]);return $}return c($,"method_missing",["each"].concat(e.to_a(t)))},s.$$arity=-1),e.def(H,"$[]",_=function(e){var t=this,n=t.native[e];return n instanceof Function?n:o("::","Native").$call(t.native,e)},_.$$arity=1),e.def(H,"$[]=",f=function(e,t){var n=this,r=a;return r=o("::","Native").$try_convert(t),l(r===a)?n.native[e]=t:n.native[e]=r},f.$$arity=2),e.def(H,"$merge!",h=function(e){var t=this;for(var n in e=o("::","Native").$convert(e))t.native[n]=e[n];return t},h.$$arity=1),e.def(H,"$respond_to?",m=function(e,t){var n=this;return null==t&&(t=!1),o("::","Kernel").$instance_method("respond_to?").$bind(n).$call(e,t)},m.$$arity=-2),e.def(H,"$respond_to_missing?",y=function(t,n){var r=this;return null==n&&(n=!1),e.hasOwnProperty.call(r.native,t)},y.$$arity=-2),e.def(H,"$method_missing",v=function(n){var r,$=v.$$p,i=$||a,s=this,l=a;return $&&(v.$$p=null),$&&(v.$$p=null),r=e.slice.call(arguments,1,arguments.length),"="===n.charAt(n.length-1)?(l=[n.$slice(0,t(n.$length(),1)),r["$[]"](0)],c(s,"[]=",e.to_a(l)),l[t(l.length,1)]):c(o("::","Native"),"call",[s.native,n].concat(e.to_a(r)),i.$to_proc())},v.$$arity=-2),e.def(H,"$nil?",g=function(){return!1},g.$$arity=0),e.def(H,"$is_a?",b=function(t){var n=this;return e.is_a(n,t)},b.$$arity=1),p(H,"kind_of?","is_a?"),e.def(H,"$instance_of?",k=function(e){return this.$$class===e},k.$$arity=1),e.def(H,"$class",w=function(){return this.$$class},w.$$arity=0),e.def(H,"$to_a",x=function(e){var t=x.$$p,n=t||a,r=this;return t&&(x.$$p=null),t&&(x.$$p=null),null==e&&(e=u([],{})),c(o(o("::","Native"),"Array"),"new",[r.native,e],n.$to_proc()).$to_a()},x.$$arity=-1),e.def(H,"$inspect",O=function(){return"#"},O.$$arity=0)}(i($,"Native"),i($,"BasicObject"),$),function(r,$super,$){var s,c,_,m,y,v,g,b=d(r,null,"Array"),k=[b].concat($);b.$$prototype.named=b.$$prototype.native=b.$$prototype.get=b.$$prototype.block=b.$$prototype.set=b.$$prototype.length=a,b.$include(o(i(k,"Native"),"Wrapper")),b.$include(i(k,"Enumerable")),e.def(b,"$initialize",s=function(e,t){var n=s.$$p,r=n||a,$=this,o=a,c=a,_=a;return n&&(s.$$p=null),n&&(s.$$p=null),null==t&&(t=u([],{})),f($,h($,"initialize",s,!1,!0),"initialize",[e],null),$.get=l(o=t["$[]"]("get"))?o:t["$[]"]("access"),$.named=t["$[]"]("named"),$.set=l(c=t["$[]"]("set"))?c:t["$[]"]("access"),$.length=l(_=t["$[]"]("length"))?_:"length",$.block=r,l(null==$.$length())?$.$raise(i(k,"ArgumentError"),"no length found on the array-like object"):a},s.$$arity=-2),e.def(b,"$each",c=function(){var t=c.$$p,n=t||a,r=this;if(t&&(c.$$p=null),t&&(c.$$p=null),!l(n))return r.$enum_for("each");for(var $=0,o=r.$length();$t:e["$>"](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$),o=e.module,i=e.klass,s=e.send,l=e.hash2,c=e.truthy;return e.add_stubs(["$attr_accessor","$attr_reader","$private","$tap","$new","$each","$instance_variable_set","$dup","$instance_variable_get","$build","$to_proc","$instance_eval","$[]=","$-","$define_rule","$coerce_native_hash_values","$rules","$define_all_others","$props_wrapper","$reject","$[]","$errors=","$allow_undefined_props?","$validate_undefined","$defined_props","$validate_required","$validate_types","$validate_allowed","$errors","$inject","$select","$include?","$keys","$!","$define_param","$is_a?","$type_check","$>","$length","$validate_value_array","$nil?","$respond_to?","$_react_param_conversion","$<<","$each_with_index","$Native"]),function(r,u){var _=[o(r,"Hyperstack")].concat(u);return function(r,u){var _=[o(r,"Internal")].concat(u);return function(r,u){var _=[o(r,"Component")].concat(u);return function(r,$super,o){var u,_,p,d,f,h,m,y,v,g,b,k,w,x,O,H,I,C,R,S,z,q,N=i(r,null,"Validator"),j=[N].concat(o);return N.$$prototype.allow_undefined_props=N.$$prototype.rules=N.$$prototype.errors=$,N.$attr_accessor("errors"),N.$attr_reader("props_wrapper"),N.$private("errors","props_wrapper"),e.def(N,"$copy",u=function(e){var t,n=this;return s(a(j,"Validator").$new(e),"tap",[],((t=function(e){var n,r=null==t.$$s?this:t.$$s;return null==e&&(e=$),s(["@allow_undefined_props","@rules","@errors"],"each",[],((n=function(t){var r=null==n.$$s?this:n.$$s;return null==t&&(t=$),e.$instance_variable_set(t,r.$instance_variable_get(t).$dup())}).$$s=r,n.$$arity=1,n))}).$$s=n,t.$$arity=1,t))},u.$$arity=1),e.def(N,"$initialize",_=function(e){var t=this;return null==e&&(e=a(j,"Class").$new(a(j,"PropsWrapper"))),t.props_wrapper=e},_.$$arity=-1),e.defs(N,"$build",p=function(){var e=p.$$p,t=e||$,n=this;return e&&(p.$$p=null),e&&(p.$$p=null),s(n.$new(),"build",[],t.$to_proc())},p.$$arity=0),e.def(N,"$build",d=function(){var e=d.$$p,t=e||$,n=this;return e&&(d.$$p=null),e&&(d.$$p=null),s(n,"instance_eval",[],t.$to_proc()),n},d.$$arity=0),e.def(N,"$requires",f=function(n,r){var a=this,o=$;return null==r&&(r=l([],{})),o=["required",!0],s(r,"[]=",e.to_a(o)),o[t(o.length,1)],a.$define_rule(n,r)},f.$$arity=-2),e.def(N,"$optional",h=function(n,r){var a=this,o=$;return null==r&&(r=l([],{})),o=["required",!1],s(r,"[]=",e.to_a(o)),o[t(o.length,1)],a.$define_rule(n,r)},h.$$arity=-2),e.def(N,"$event",m=function(n){var r=this,o=$;return o=[n,r.$coerce_native_hash_values(l(["default","type","allow_nil"],{"default":$,type:a(j,"Proc"),allow_nil:!0}))],s(r.$rules(),"[]=",e.to_a(o)),o[t(o.length,1)]},m.$$arity=1),e.def(N,"$all_other_params",y=function(e){var t,n=this;return n.allow_undefined_props=!0,s(n.$props_wrapper(),"define_all_others",[e],((t=function(e){var n,r=null==t.$$s?this:t.$$s;return null==e&&(e=$),s(e,"reject",[],((n=function(e,t){var r=null==n.$$s?this:n.$$s;return null==e&&(e=$),null==t&&(t=$),r.$rules()["$[]"](e)}).$$s=r,n.$$arity=2,n))}).$$s=n,t.$$arity=1,t))},y.$$arity=1),e.def(N,"$validate",v=function(n){var r,a=this,o=$;return o=[[]],s(a,"errors=",e.to_a(o)),o[t(o.length,1)],c(a["$allow_undefined_props?"]())||a.$validate_undefined(n),n=a.$coerce_native_hash_values(a.$defined_props(n)),a.$validate_required(n),s(n,"each",[],((r=function(e,t){var n=null==r.$$s?this:r.$$s;return null==e&&(e=$),null==t&&(t=$),n.$validate_types(e,t),n.$validate_allowed(e,t)}).$$s=a,r.$$arity=2,r)),a.$errors()},v.$$arity=1),e.def(N,"$default_props",g=function(){var n,r,a=this;return s(s(a.$rules(),"select",[],((n=function(e,t){null==n.$$s||n.$$s;return null==e&&(e=$),null==t&&(t=$),t.$keys()["$include?"]("default")}).$$s=a,n.$$arity=2,n)),"inject",[l([],{})],((r=function(n,a){null==r.$$s||r.$$s;var o,i,l=$;return null==n&&(n=$),null==a&&(a=$),i=a,l=[null==(o=e.to_ary(i))[0]?$:o[0],(null==o[1]?$:o[1])["$[]"]("default")],s(n,"[]=",e.to_a(l)),l[t(l.length,1)],n}).$$s=a,r.$$arity=2,r.$$has_top_level_mlhs_arg=!0,r))},g.$$arity=0),N.$private(),e.def(N,"$defined_props",b=function(e){var t,n=this;return s(e,"select",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=$),n.$rules().$keys()["$include?"](e)}).$$s=n,t.$$arity=1,t))},b.$$arity=1),e.def(N,"$allow_undefined_props?",k=function(){return this.allow_undefined_props["$!"]()["$!"]()},k.$$arity=0),e.def(N,"$rules",w=function(){var e=this,t=$;return e.rules=c(t=e.rules)?t:l(["children"],{children:l(["required"],{required:!1})})},w.$$arity=0),e.def(N,"$define_rule",x=function(n,r){var a=this,o=$;return null==r&&(r=l([],{})),o=[n,a.$coerce_native_hash_values(r)],s(a.$rules(),"[]=",e.to_a(o)),o[t(o.length,1)],a.$props_wrapper().$define_param(n,r["$[]"]("type"),r["$[]"]("alias"))},x.$$arity=-2),e.def(N,"$errors",O=function(){var e=this,t=$;return e.errors=c(t=e.errors)?t:[]},O.$$arity=0),e.def(N,"$validate_types",H=function(e,t){var r=this,o=$,i=$;return c(o=r.$rules()["$[]"](e)["$[]"]("type"))?c(o["$is_a?"](a(j,"Array"))["$!"]())?(i=r.$rules()["$[]"](e)["$[]"]("allow_nil")["$!"]()["$!"](),r.$type_check("`"+e+"`",t,o,i)):c(n(o.$length(),0))?r.$validate_value_array(e,t):(i=r.$rules()["$[]"](e)["$[]"]("allow_nil")["$!"]()["$!"](),r.$type_check("`"+e+"`",t,a(j,"Array"),i)):$},H.$$arity=2),e.def(N,"$type_check",I=function(e,t,n,r){var a=this,o=$,i=$;return c(c(o=r)?t["$nil?"]():o)?$:c(t["$is_a?"](n))?$:c(c(i=n["$respond_to?"]("_react_param_conversion"))?n.$_react_param_conversion(t,"validate_only"):i)?$:a.$errors()["$<<"]("Provided prop "+e+" could not be converted to "+n)},I.$$arity=4),e.def(N,"$validate_allowed",C=function(e,t){var n=this,r=$;return c(r=n.$rules()["$[]"](e)["$[]"]("values"))?c(r["$include?"](t))?$:n.$errors()["$<<"]("Value `"+t+"` for prop `"+e+"` is not an allowed value"):$},C.$$arity=2),e.def(N,"$validate_required",R=function(e){var n,r=this;return s(t(r.$rules().$keys(),e.$keys()),"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=$),c(t.$rules()["$[]"](e)["$[]"]("required"))?t.$errors()["$<<"]("Required prop `"+e+"` was not specified"):$}).$$s=r,n.$$arity=1,n))},R.$$arity=1),e.def(N,"$validate_undefined",S=function(e){var n,r=this;return s(t(e.$keys(),r.$rules().$keys()),"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=$),t.$errors()["$<<"]("Provided prop `"+e+"` not specified in spec")}).$$s=r,n.$$arity=1,n))},S.$$arity=1),e.def(N,"$validate_value_array",z=function(t,n){var r,o=this,i=$,l=$;try{return i=o.$rules()["$[]"](t)["$[]"]("type"),l=o.$rules()["$[]"](t)["$[]"]("allow_nil")["$!"]()["$!"](),s(n,"each_with_index",[],((r=function(e,n){var a=null==r.$$s?this:r.$$s;return null==e&&(e=$),null==n&&(n=$),a.$type_check("`"+t+"`["+n+"]",a.$Native(e),i["$[]"](0),l)}).$$s=o,r.$$arity=2,r))}catch(c){if(!e.rescue(c,[a(j,"NoMethodError")]))throw c;try{return o.$errors()["$<<"]("Provided prop `"+t+"` was not an Array")}finally{e.pop_exception()}}},z.$$arity=2),e.def(N,"$coerce_native_hash_values",q=function(n){var r,a=this;return s(n,"each",[],((r=function(a,o){var i=null==r.$$s?this:r.$$s,l=$;return null==a&&(a=$),null==o&&(o=$),l=[a,i.$Native(o)],s(n,"[]=",e.to_a(l)),l[t(l.length,1)]}).$$s=a,r.$$arity=2,r))},q.$$arity=1),$&&"coerce_native_hash_values"}(_[0],0,_)}(_[0],_)}(_[0],_)}(r[0],r)},Opal.modules["hyperstack/ext/component/string"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass);return function(t,$super,$){var a,o=r(t,null,"String");[o].concat($);return e.def(o,"$event_camelize",a=function(){return this.replace(/(^|_)([^_]+)/g,function(e,t,n){return!0?n.substr(0,1).toUpperCase()+n.substr(1):n})},a.$$arity=0),n&&"event_camelize"}(t[0],0,t)},Opal.modules["hyperstack/component/element"]=function(e){var t=e.top,n=[],r=e.nil,$=e.$$$,a=e.$$,o=e.module,i=e.klass,s=e.truthy,l=e.hash2,c=e.send,u=e.alias,_=e.hash;return e.add_stubs(["$require","$attr_reader","$attr_accessor","$new","$is_a?","$!","$empty?","$raise","$==","$convert_string","$set_native_attributes","$_update_ref","$[]","$properties","$element_type","$ref","$dom_node","$each","$!=","$strip","$merge_event_prop!","$to_proc","$shallow_to_n","$render","$convert_props","$block","$delete","$private","$=~","$merge_component_event_prop!","$gsub","$include?","$event_camelize","$merge_built_in_event_prop!","$key_code","$instance_variable_get","$merge!","$Array","$ignore_bulk_updates"]),t.$require("hyperstack/ext/component/string"),function(t,n){var p=[o(t,"Hyperstack")].concat(n);return function(t,n){var p=[o(t,"Component")].concat(n);return function(t,$super,n){var o,p,d,f,h,m,y,v,g,b,k,w,x,O,H=i(t,null,"Element"),I=[H].concat(n);return H.$$prototype.props=H.$$prototype._props_as_hash=H.$$prototype._child_element=H.$$prototype._ref=H.$$prototype.properties=r,H.$attr_reader("type"),H.$attr_reader("element_type"),H.$attr_reader("properties"),H.$attr_reader("block"),H.$attr_reader("to_n"),H.$attr_accessor("waiting_on_resources"),e.def(H,"$set_native_attributes",o=function(e){var t=this;return t.key=e.key,t.props=e.props,t.ref=e.ref,t.type=e.type,t._owner=e._owner,t._props_as_hash=a(I,"Hash").$new(t.props)},o.$$arity=1),e.def(H,"$props",p=function(){return this._props_as_hash},p.$$arity=0),e.def(H,"$convert_string",d=function(e,t,n,$){var o=this,i=r;return s(e["$is_a?"])&&s(e["$is_a?"](a(I,"String")))?(s(s(i=n["$empty?"]()["$!"]())?i:$)&&o.$raise("Internal Error Element.new called with string, but non-nil props or block"),t["$=="]("wrap_child")?React.createElement(React.Fragment,null,[e]):React.createElement(e,null)):e},d.$$arity=4),e.def(H,"$initialize",f=function(t,n,$,o){var i=this,c=r;null==n&&(n=r),null==$&&($=l([],{})),null==o&&(o=r);try{return t=i.$convert_string(t,n,$,o),n["$=="]("wrap_child")||(i.element_type=n),i.properties=s(c=s(void 0===$)?r:$)?c:l([],{}),i.block=o,i.$$typeof=t.$$typeof,i.to_n=i,i.$set_native_attributes(t)}catch(u){if(!e.rescue(u,[a(I,"Exception")]))throw u;try{return r}finally{e.pop_exception()}}},f.$$arity=-2),e.def(H,"$children",h=function(){return this.props.children},h.$$arity=0),e.def(H,"$_update_ref",m=function(e){var t=this;return t._ref=e,s(t._child_element)?t._child_element.$_update_ref(e):r},m.$$arity=1),e.def(H,"$ref",y=function(){var e=this;return s(e._ref)?e._ref:(s(e.$properties()["$[]"]("ref"))&&e.$raise("The instance of "+e.$element_type()+" has not been mounted yet"),e.$raise("Attempt to get a ref on "+e.$element_type()+" which is a static component."))},y.$$arity=0),e.def(H,"$dom_node",v=function(){var e=this;return s("function"==typeof e.$ref().$dom_node)?e.$ref().$dom_node():e.$ref()},v.$$arity=0),e.def(H,"$on",g=function(){var t,n,$=g.$$p,a=$||r,o=this,i=r;return $&&(g.$$p=null),$&&(g.$$p=null),t=e.slice.call(arguments,0,arguments.length),i=!1,c(t,"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s,$=r;return null==e&&(e=r),s(s($=e)?e.$strip()["$!="](""):$)?(c(t,"merge_event_prop!",[e],a.$to_proc()),i=!0):r}).$$s=o,n.$$arity=1,n)),s(i)&&o.$set_native_attributes(React.cloneElement(o,o.properties.$shallow_to_n())),o},g.$$arity=-1),e.def(H,"$render",b=function(){var t,n,r=this;return t=e.slice.call(arguments,0,arguments.length),s((n=t)["$empty?"]())?$($($(a(I,"Hyperstack"),"Internal"),"Component"),"RenderingContext").$render(r):(n=c($($($(a(I,"Hyperstack"),"Internal"),"Component"),"ReactWrapper"),"convert_props",[r.$element_type(),r.properties].concat(e.to_a(n))),r._child_element=$($($(a(I,"Hyperstack"),"Internal"),"Component"),"RenderingContext").$render(a(I,"Element").$new(React.cloneElement(r,n.$shallow_to_n()),r.$element_type(),n,r.$block())))},b.$$arity=-1),e.def(H,"$~",k=function(){var e=this;return $($($(a(I,"Hyperstack"),"Internal"),"Component"),"RenderingContext").$delete(e)},k.$$arity=0),u(H,"as_node","~"),u(H,"delete","~"),H.$private(),e.def(H,"$merge_event_prop!",w=function(t){var n,o=w.$$p,i=o||r,l=this,u=r;return o&&(w.$$p=null),o&&(w.$$p=null),s(t["$=~"](/^<(.+)>$/))?c(l,"merge_component_event_prop!",[t.$gsub(/^<(.+)>$/,"\\1")],i.$to_proc()):s($(a(I,"Event"),"BUILT_IN_EVENTS")["$include?"](u="on"+t.$event_camelize()))?c(l,"merge_built_in_event_prop!",[u],i.$to_proc()):t["$=="]("enter")?c(l,"merge_built_in_event_prop!",["onKeyDown"],((n=function(t){null==n.$$s||n.$$s;return null==t&&(t=r),t.$key_code()["$=="](13)?e.yield1(i,t):r}).$$s=l,n.$$arity=1,n)):s(l.$element_type().$instance_variable_get("@native_import"))?c(l,"merge_component_event_prop!",[u],i.$to_proc()):c(l,"merge_component_event_prop!",["on_"+t],i.$to_proc())},w.$$arity=1),e.def(H,"$merge_built_in_event_prop!",x=function(t){var n=x.$$p,o=n||r,i=this;return n&&(x.$$p=null),n&&(x.$$p=null),i.properties["$merge!"](_(t,function(){var t,n=arguments[0];return 0!=arguments.length&&n.nativeEvent?arguments.length>1?(t=Array.prototype.slice.call(arguments).slice(1,arguments.length),c($($(a(I,"Internal"),"State"),"Mapper"),"ignore_bulk_updates",[a(I,"Event").$new(n)].concat(e.to_a(t)),o.$to_proc())):c($($(a(I,"Internal"),"State"),"Mapper"),"ignore_bulk_updates",[a(I,"Event").$new(n)],o.$to_proc()):e.yieldX(o,e.to_a(i.$Array(arguments)))}))},x.$$arity=1),e.def(H,"$merge_component_event_prop!",O=function(t){var n=O.$$p,$=n||r,a=this;return n&&(O.$$p=null),a.properties["$merge!"](_(t,function(){return e.yieldX($,e.to_a(a.$Array(arguments)))}))},O.$$arity=1),r&&"merge_component_event_prop!"}(p[0],0,p)}(p[0],p)}(n[0],n)},Opal.modules["hyperstack/component/native_library"]=function(Opal){function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$each","$lookup_native_name","$create_component_wrapper","$create_library_wrapper","$raise","$name","$scope_native_name","$+","$downcase","$[]","$import_const_from_native","$const_defined?","$const_get","$render","$to_proc","$private","$native_react_component?","$const_set","$imports","$new","$class_eval","$include"]),function($base,$parent_nesting){var self=$module($base,"Hyperstack"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Component"),$nesting=[self].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"NativeLibrary"),$nesting=[self].concat($parent_nesting);return function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$imports$1,$rename$2,$import_const_from_native$4,$const_missing$5,$method_missing$6,$lookup_native_name$7,$scope_native_name$8,$create_component_wrapper$9,$create_library_wrapper$11;Opal.def(self,"$imports",$imports$1=function(e){var t=this;return t.__hyperstack_component_native_prefix=e+".",t},$imports$1.$$arity=1),Opal.def(self,"$rename",$rename$2=function(e){var t,n=this;return $send(e,"each",[],((t=function(e,n){var r=null==t.$$s?this:t.$$s,$=nil,a=nil;return null==e&&(e=nil),null==n&&(n=nil),$=r.$lookup_native_name(e),$truthy(r.$lookup_native_name(e))?$truthy(a=r.$create_component_wrapper(r,$,n))?a:r.$create_library_wrapper(r,$,n):r.$raise("class "+r.$name()+" < Hyperstack::Component::NativeLibrary could not import "+e+". Native value "+r.$scope_native_name(e)+" is undefined.")}).$$s=n,t.$$arity=2,t))},$rename$2.$$arity=1),Opal.def(self,"$import_const_from_native",$import_const_from_native$4=function(e,t,n){var r=this,$=nil,a=nil,o=nil,i=nil,s=nil;return $=$truthy(a=r.$lookup_native_name(t))?a:r.$lookup_native_name($rb_plus(t["$[]"](0).$downcase(),t["$[]"]($range(1,-1,!1)))),$truthy(o=$)?$truthy(i=r.$create_component_wrapper(e,$,t))?i:$truthy(s=n)?r.$create_library_wrapper(e,$,t):s:o},$import_const_from_native$4.$$arity=3),Opal.def(self,"$const_missing",$const_missing$5=function(e){var t=$const_missing$5.$$p,n=this,r=nil;return t&&($const_missing$5.$$p=null),$truthy(r=n.$import_const_from_native(n,e,!0))?r:$send2(n,$find_super(n,"const_missing",$const_missing$5,!1,!0),"const_missing",[e],t)},$const_missing$5.$$arity=1),Opal.def(self,"$method_missing",$method_missing$6=function(e){var t,n=$method_missing$6.$$p,r=n||nil,$=this,a=nil,o=nil;return n&&($method_missing$6.$$p=null),n&&($method_missing$6.$$p=null),t=Opal.slice.call(arguments,1,arguments.length),$truthy($["$const_defined?"](e,!1))&&(a=$.$const_get(e)),a=$truthy(o=a)?o:$.$import_const_from_native($,e,!1),$truthy(a)||$.$raise("could not import a react component named: "+$.$scope_native_name(e)),$send($$$($$$($$$($$($nesting,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",[a].concat(Opal.to_a(t)),r.$to_proc())},$method_missing$6.$$arity=-2),self.$private(),Opal.def(self,"$lookup_native_name",$lookup_native_name$7=function $$lookup_native_name(js_name){var self=this,native_name=nil;try{return native_name=self.$scope_native_name(js_name),eval(native_name)!==undefined&&native_name}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;try{return nil}finally{Opal.pop_exception()}}},$lookup_native_name$7.$$arity=1),Opal.def(self,"$scope_native_name",$scope_native_name$8=function(e){var t=this;return null==t.__hyperstack_component_native_prefix&&(t.__hyperstack_component_native_prefix=nil),""+t.__hyperstack_component_native_prefix+e},$scope_native_name$8.$$arity=1),Opal.def(self,"$create_component_wrapper",$create_component_wrapper$9=function(e,t,n){var r,$=this,a=nil;return $truthy($$$($$$($$$($$($nesting,"Hyperstack"),"Internal"),"Component"),"ReactWrapper")["$native_react_component?"](t))?(a=e.$const_set(n,$$($nesting,"Class").$new($$($nesting,"NativeLibrary")).$imports(t)),$send(a,"class_eval",[],((r=function(){var e=null==r.$$s?this:r.$$s;return e.$include($$($nesting,"Component")),e.$imports(t)}).$$s=$,r.$$arity=0,r)),a):nil},$create_component_wrapper$9.$$arity=3),Opal.def(self,"$create_library_wrapper",$create_library_wrapper$11=function(e,t,n){return e.$const_set(n,$$($nesting,"Class").$new($$($nesting,"NativeLibrary")).$imports(t))},$create_library_wrapper$11.$$arity=3)}(Opal.get_singleton_class(self),$nesting),self.$imports("NativeLibrary")}($nesting[0],null,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["hyperstack/internal/component/react_wrapper"]=function(Opal){function $rb_minus(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$hash2=Opal.hash2,$send=Opal.send,$class_variable_get=Opal.class_variable_get,$truthy=Opal.truthy,$lambda=Opal.lambda,$range=Opal.range;return Opal.add_stubs(["$require","$instance_variable_set","$[]=","$-","$raise","$stateless?","$eval_native_react_component","$add_after_error_hook_to_native","$[]","$!","$method_defined?","$respond_to?","$native_mixins","$to_n","$static_call_backs","$new","$name","$default_props","$prop_types","$callbacks?","$<<","$is_a?","$create_native_react_class","$include?","$_update_ref","$convert_props","$shallow_to_n","$flatten","$call","$each","$split","$==","$merge","$lower_camelize","$join","$to_key","$ignore_mutations","$const_defined?","$gsub","$html_attr?","$private","$first","$concat","$map","$+","$upcase"]),self.$require("hyperstack/component/native_library"),function($base,$parent_nesting){var self=$module($base,"Hyperstack"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Internal"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Component"),$nesting=[self].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ReactWrapper"),$nesting=[self].concat($parent_nesting),$ReactWrapper_stateless$ques$1,$ReactWrapper_import_native_component$2,$ReactWrapper_eval_native_react_component$3,$ReactWrapper_native_react_component$ques$4,$ReactWrapper_add_after_error_hook$5,$ReactWrapper_add_after_error_hook_to_native$6,$ReactWrapper_create_native_react_class$7,$ReactWrapper_create_element$8,$ReactWrapper_clear_component_class_cache$10,$ReactWrapper_convert_props$11,$ReactWrapper_lower_camelize$22;return $class_variable_set($nesting[0],"@@component_classes",$hash2([],{})),Opal.defs(self,"$stateless?",$ReactWrapper_stateless$ques$1=function(e){return"symbol"==typeof e||"function"==typeof e&&!(e.prototype&&e.prototype.isReactComponent)},$ReactWrapper_stateless$ques$1.$$arity=1),Opal.defs(self,"$import_native_component",$ReactWrapper_import_native_component$2=function(e,t){var n=nil;return e.$instance_variable_set("@native_import",!0),n=[e,t],$send($class_variable_get($nesting[0],"@@component_classes",!1),"[]=",Opal.to_a(n)),n[$rb_minus(n.length,1)]},$ReactWrapper_import_native_component$2.$$arity=2),Opal.defs(self,"$eval_native_react_component",$ReactWrapper_eval_native_react_component$3=function $$eval_native_react_component(name){var self=this,component=nil,is_component_class=nil,$ret_or_1=nil,$ret_or_2=nil,has_render_method=nil,$ret_or_3=nil,$ret_or_4=nil;return component=eval(name),$truthy(component===undefined)&&self.$raise(name+" is not defined"),$truthy(component.__esModule)&&(component=component["default"]),is_component_class=$truthy($ret_or_1=component.prototype!==undefined)?$truthy($ret_or_2=!!component.prototype.isReactComponent)?$ret_or_2:!!component.prototype.render:$ret_or_1,has_render_method="function"==typeof component.render,$truthy($truthy($ret_or_3=$truthy($ret_or_4=is_component_class)?$ret_or_4:self["$stateless?"](component))?$ret_or_3:has_render_method)||self.$raise("does not appear to be a native react component"),component},$ReactWrapper_eval_native_react_component$3.$$arity=1),Opal.defs(self,"$native_react_component?",$ReactWrapper_native_react_component$ques$4=function(e){var t=this;null==e&&(e=nil);try{return!!$truthy(e)&&(t.$eval_native_react_component(e),!0)}catch(n){if(!Opal.rescue(n,[$$($nesting,"Exception")]))throw n;try{return!1}finally{Opal.pop_exception()}}},$ReactWrapper_native_react_component$ques$4.$$arity=-1),Opal.defs(self,"$add_after_error_hook",$ReactWrapper_add_after_error_hook$5=function(e){return this.$add_after_error_hook_to_native($class_variable_get($nesting[0],"@@component_classes",!1)["$[]"](e))},$ReactWrapper_add_after_error_hook$5.$$arity=1),Opal.defs(self,"$add_after_error_hook_to_native",$ReactWrapper_add_after_error_hook_to_native$6=function(e){if(!$truthy(e))return nil;e.prototype.componentDidCatch=function(e,t){this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_did_catch(e,Opal.Hash.$new(t))}},$ReactWrapper_add_after_error_hook_to_native$6.$$arity=1),Opal.defs(self,"$create_native_react_class",$ReactWrapper_create_native_react_class$7=function(e){var t=this,n=nil,r=nil,$=nil,a=nil,o=nil,i=nil;return $truthy("undefined"==typeof createReactClass)&&t.$raise("createReactClass is undefined. Add the 'react-create-class' npm module, and import it as 'createReactClass'"),$truthy(e["$method_defined?"]("render")["$!"]())&&t.$raise("Provided class should define `render` method"),n=e["$method_defined?"]("_render_wrapper")["$!"](),r=$truthy(n)?"render":"_render_wrapper",$truthy($=$class_variable_get($nesting[0],"@@component_classes",!1)["$[]"](e))?$:(a=[e,(o=createReactClass({getInitialState:function(){return this.mixins=$truthy(e["$respond_to?"]("native_mixins"))?e.$native_mixins():[],this.statics=$truthy(e["$respond_to?"]("static_call_backs"))?e.$static_call_backs().$to_n():{},this.__opalInstanceInitializedState=!1,this.__opalInstanceSyncSetState=!0,this.__opalInstance=e.$new(this),this.__opalInstanceInitializedState=!0,this.__opalInstanceSyncSetState=!1,this.__name=e.$name(),{}},displayName:e.$name(),getDefaultProps:function(){return $truthy(e["$respond_to?"]("default_props"))?e.$default_props().$to_n():{}},propTypes:$truthy(e["$respond_to?"]("prop_types"))?e.$prop_types().$to_n():{},componentWillMount:n&&function(){e["$method_defined?"]("component_will_mount")&&(this.__opalInstanceSyncSetState=!0,this.__opalInstance.$component_will_mount(),this.__opalInstanceSyncSetState=!1)},componentDidMount:function(){this.__opalInstance.__hyperstack_component_is_mounted=!0,e["$method_defined?"]("component_did_mount")&&(this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_did_mount())},UNSAFE_componentWillReceiveProps:function(t){e["$method_defined?"]("component_will_receive_props")&&(this.__opalInstanceSyncSetState=!0,this.__opalInstance.$component_will_receive_props(Opal.Hash.$new(t)),this.__opalInstanceSyncSetState=!1)},shouldComponentUpdate:function(t,n){return!e["$method_defined?"]("should_component_update?")||(this.__opalInstanceSyncSetState=!1,this.__opalInstance["$should_component_update?"](Opal.Hash.$new(t),Opal.Hash.$new(n)))},UNSAFE_componentWillUpdate:function(t,n){e["$method_defined?"]("component_will_update")&&(this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_will_update(Opal.Hash.$new(t),Opal.Hash.$new(n)))},componentDidUpdate:function(t,n){e["$method_defined?"]("component_did_update")&&(this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_did_update(Opal.Hash.$new(t),Opal.Hash.$new(n)))},componentWillUnmount:function(){e["$method_defined?"]("component_will_unmount")&&(this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_will_unmount()),this.__opalInstance.__hyperstack_component_is_mounted=!1},render:function(){return this.__opalInstanceSyncSetState=!1,this.__opalInstance.$send(r).$to_n()}}),$truthy($truthy(i=e["$respond_to?"]("callbacks?"))?e["$callbacks?"]("after_error"):i)&&t.$add_after_error_hook_to_native(o),o)],$send($class_variable_get($nesting[0],"@@component_classes",!1),"[]=",Opal.to_a(a)),a[$rb_minus(a.length,1)])},$ReactWrapper_create_native_react_class$7.$$arity=1),Opal.defs(self,"$create_element",$ReactWrapper_create_element$8=function(e){var t,n,r=$ReactWrapper_create_element$8.$$p,$=r||nil,a=this,o=nil,i=nil,s=nil,l=nil,c=nil,u=nil,_=nil;if(r&&($ReactWrapper_create_element$8.$$p=null),r&&($ReactWrapper_create_element$8.$$p=null),t=Opal.slice.call(arguments,1,arguments.length),o=[],i=$class_variable_get($nesting[0],"@@component_classes",!1)["$[]"](e),$truthy(i))o["$<<"](i);else if($truthy(e["$is_a?"]($$($nesting,"Class"))))o["$<<"](a.$create_native_react_class(e));else if($truthy($truthy(s=$!==nil)?s:$$$($$($nesting,"Tags"),"HTML_TAGS")["$include?"](e)))o["$<<"](e);else{if($truthy(e["$is_a?"]($$($nesting,"String"))))return $$$($$$($$($nesting,"Hyperstack"),"Component"),"Element").$new(e);a.$raise(e+" not implemented")}if(l=nil,$truthy(a["$stateless?"](i))||(c=$lambda(((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=nil),l.$_update_ref(e)}).$$s=a,n.$$arity=1,n))),u=$send(a,"convert_props",[e,$hash2(["ref"],{ref:c})].concat(Opal.to_a(t))),o["$<<"](u.$shallow_to_n()),$truthy($))for(var p=0,d=(_=[$.$call()].$flatten()).length;pt:e["$>"](t)}e.top;var r=[],$=e.nil,a=e.$$$,o=e.$$,i=e.module,s=e.klass,l=e.truthy,c=e.send,u=e.alias;return e.add_stubs(["$attr_accessor","$waiting_on_resources","$raise_if_not_quiet?","$raise","$new","$<<","$!","$remove_nodes_from_args","$build","$waiting_on_resources=","$-","$run_child_block","$to_proc","$dup","$tap","$create_element","$detect","$respond_to?","$is_a?","$last","$collect","$render","$to_s","$>","$length","$first","$delete","$include?","$index","$[]=","$[]","$each","$check_for_component_return","$dummy_value?","$==","$empty?","$pushable_string?","$try","$log","$loading?","$define_method","$unshift","$hyper_component?","$send"]),function(r,_){var p=[i(r,"Hyperstack")].concat(_);(function(r,_){var p=[i(r,"Internal")].concat(_);(function(r,_){var p=[i(r,"Component")].concat(_);(function(r,$super,i){var _=s(r,null,"RenderingContext"),p=[_].concat(i);(function(e,$super,t){[s(e,$super,"NotQuiet")].concat(t)})(p[0],o(p,"Exception"),p),function(r,i){var s,_,p,d,f,h,m,y,v,g,b,k,w,x,O,H=[r].concat(i);r.$attr_accessor("waiting_on_resources"),e.def(r,"$raise_if_not_quiet?",s=function(){var e=this;return null==e.raise_if_not_quiet&&(e.raise_if_not_quiet=$),e.raise_if_not_quiet},s.$$arity=0),e.def(r,"$raise_if_not_quiet=",_=function(e){return this.raise_if_not_quiet=e},_.$$arity=1),e.def(r,"$quiet_test",p=function(e){var t=this,n=$;return l(l(n=e.$waiting_on_resources())?t["$raise_if_not_quiet?"]():n)?t.$raise(o(H,"NotQuiet").$new(e+" is waiting on resources")):$},p.$$arity=1),e.def(r,"$render_string",d=function(e){var t=this,n=$;return null==t.buffer&&(t.buffer=$),t.buffer=l(n=t.buffer)?n:[],t.buffer["$<<"](e)},d.$$arity=1),e.def(r,"$render",f=function(r){var i,s,u,_=f.$$p,p=_||$,d=this,h=$,m=$,y=$,v=$;return null==d.not_outer_most&&(d.not_outer_most=$),null==d.buffer&&(d.buffer=$),_&&(f.$$p=null),_&&(f.$$p=null),i=e.slice.call(arguments,1,arguments.length),s=i,function(){try{return h=d.not_outer_most["$!"](),d.not_outer_most=!0,d.$remove_nodes_from_args(s),d.buffer=l(m=d.buffer)?m:[],l(p)?y=c(d,"build",[],((u=function(){var i,_,d,f=null==u.$$s?this:u.$$s,h=$,m=$,y=$;return null==f.buffer&&(f.buffer=$),h=$,m=[$],c(f,"waiting_on_resources=",e.to_a(m)),m[t(m.length,1)],c(f,"run_child_block",[],p.$to_proc()),l(r)?(y=f.buffer.$dup(),c(c(o(H,"ReactWrapper"),"create_element",[r].concat(e.to_a(s)),((i=function(){null==i.$$s||i.$$s;return y}).$$s=f,i.$$arity=0,i)),"tap",[],((_=function(n){var r,a=null==_.$$s?this:_.$$s,i=$,s=$;return null==n&&(n=$),m=[l(i=h)?i:c(y,"detect",[],(r=function(e){return null==r.$$s||r.$$s,null==e&&(e=$),l(e["$respond_to?"]("waiting_on_resources"))?e.$waiting_on_resources():$},r.$$s=a,r.$$arity=1,r))["$!"]()["$!"]()],c(n,"waiting_on_resources=",e.to_a(m)),m[t(m.length,1)],l(y.$last()["$is_a?"](o(H,"String")))?l(s=n.$waiting_on_resources())?s:(m=[a.$waiting_on_resources()],c(n,"waiting_on_resources=",e.to_a(m)),m[t(m.length,1)]):$}).$$s=f,_.$$arity=1,_))):(y=c(f.buffer,"collect",[],((d=function(n){var r,i,s=null==d.$$s?this:d.$$s;return null==n&&(n=$),l(n["$is_a?"](a(a(o(H,"Hyperstack"),"Component"),"Element")))?(l(n.$waiting_on_resources())||(m=[h],c(n,"waiting_on_resources=",e.to_a(m)),m[t(m.length,1)]),n):c(c(o(H,"RenderingContext"),"render",["span"],((r=function(){null==r.$$s||r.$$s;return n.$to_s()}).$$s=s,r.$$arity=0,r)),"tap",[],((i=function(n){null==i.$$s||i.$$s;return null==n&&(n=$),m=[h],c(n,"waiting_on_resources=",e.to_a(m)),m[t(m.length,1)]}).$$s=s,i.$$arity=1,i))}).$$s=f,d.$$arity=1,d)),l(n(y.$length(),1))?y:y.$first())}).$$s=d,u.$$arity=0,u)):l(r["$is_a?"](a(a(o(H,"Hyperstack"),"Component"),"Element")))?y=r:(y=c(o(H,"ReactWrapper"),"create_element",[r].concat(e.to_a(s))),v=[d.$waiting_on_resources()],c(y,"waiting_on_resources=",e.to_a(v)),v[t(v.length,1)]),d.buffer["$<<"](y),v=[$],c(d,"waiting_on_resources=",e.to_a(v)),v[t(v.length,1)],y}finally{l(h)&&(d.not_outer_most=d.buffer=$)}}()},f.$$arity=-2),e.def(r,"$build",h=function(){var t=h.$$p,n=t||$,r=this,a=$,o=$;return null==r.buffer&&(r.buffer=$),t&&(h.$$p=null),a=r.buffer,r.buffer=[],o=e.yield1(n,r.buffer),r.buffer=a,o},h.$$arity=0),e.def(r,"$delete",m=function(e){var t=this;return null==t.buffer&&(t.buffer=$),t.buffer.$delete(e),t.last_deleted=e,e},m.$$arity=1),u(r,"as_node","delete"),e.def(r,"$rendered?",y=function(e){var t=this;return null==t.buffer&&(t.buffer=$),t.buffer["$include?"](e)},y.$$arity=1),e.def(r,"$replace",v=function(n,r){var a=this,o=$;return null==a.buffer&&(a.buffer=$),o=[a.buffer.$index(n),r],c(a.buffer,"[]=",e.to_a(o)),o[t(o.length,1)]},v.$$arity=2),e.def(r,"$remove_nodes_from_args",g=function(t){var n,r=this,i=$;return l(l(i=t["$[]"](0))?t["$[]"](0)["$is_a?"](o(H,"Hash")):i)?c(t["$[]"](0),"each",[],((n=function(t,r){null==n.$$s||n.$$s;null==t&&(t=$),null==r&&(r=$);try{return l(r["$is_a?"](a(a(o(H,"Hyperstack"),"Component"),"Element")))?r.$delete():$}catch(i){if(!e.rescue(i,[o(H,"Exception")]))throw i;try{return $}finally{e.pop_exception()}}}).$$s=r,n.$$arity=2,n)):$},g.$$arity=1),e.def(r,"$run_child_block",b=function(){var t,n=b.$$p,r=n||$,i=this,s=$;return null==i.last_deleted&&(i.last_deleted=$),null==i.buffer&&(i.buffer=$),n&&(b.$$p=null),s=e.yieldX(r,[]),i.$check_for_component_return(s),l(i["$dummy_value?"](s))?c(o(H,"RenderingContext"),"render",["span"],((t=function(){null==t.$$s||t.$$s;return s.$to_s()}).$$s=i,t.$$arity=0,t)):l(s["$is_a?"](a(a(o(H,"Hyperstack"),"Component"),"Element")))?i.last_deleted["$=="](s)||l(i.buffer["$empty?"]())&&i.buffer["$<<"](s):l(i["$pushable_string?"](s))&&i.buffer["$<<"](s.$to_s()),i.last_deleted=$},b.$$arity=0),e.def(r,"$check_for_component_return",k=function(e){return l(e.$try("hyper_component?"))?a(a(o(H,"Hyperstack"),"Component"),"IsomorphicHelpers").$log("a component's render method returned the component class "+e+", did you mean to say "+e+"()","warning"):$},k.$$arity=1),e.def(r,"$dummy_value?",w=function(e){var t=$;return l(t=e["$respond_to?"]("loading?"))?e["$loading?"]():t},w.$$arity=1),e.def(r,"$pushable_string?",x=function(e){var t=this,n=$,r=$;return null==t.buffer&&(t.buffer=$),l(t.buffer["$empty?"]())?l(n=l(r=e)?e["$respond_to?"]("to_n"):r)?e["$is_a?"](o(H,"Array"))["$!"]():n:e["$is_a?"](o(H,"String"))},x.$$arity=1),e.def(r,"$improper_render",O=function(){return $},O.$$arity=2)}(e.get_singleton_class(_),p)})(p[0],0,p)})(p[0],p)})(p[0],p)}(r[0],r),function(t,$super,n){var r,i,u,_=s(t,null,"Object"),p=[_].concat(n);return c(["span","td","th"],"each",[],((r=function(t){var n,i=null==r.$$s?this:r.$$s;return null==t&&(t=$),c(i,"define_method",[t],((n=function(){var r,i,s=null==n.$$s?this:n.$$s,u=n.$$p,_=u||$,d=$;return u&&(n.$$p=null),(r=e.slice.call(arguments,0,arguments.length)).$unshift(t),l(l(d=s["$respond_to?"]("hyper_component?"))?s["$hyper_component?"]():d)?c(s,"send",e.to_a(r),_.$to_proc()):c(a(a(a(o(p,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",e.to_a(r),((i=function(){return(null==i.$$s?this:i.$$s).$to_s()}).$$s=s,i.$$arity=0,i))}).$$s=i,n.$$arity=-1,n))}).$$s=_,r.$$arity=1,r)),e.def(_,"$para",i=function(){var t,n,r=i.$$p,s=r||$,u=this,_=$;return r&&(i.$$p=null),r&&(i.$$p=null),(t=e.slice.call(arguments,0,arguments.length)).$unshift("p"),l(l(_=u["$respond_to?"]("hyper_component?"))?u["$hyper_component?"]():_)?c(u,"send",e.to_a(t),s.$to_proc()):c(a(a(a(o(p,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",e.to_a(t),((n=function(){return(null==n.$$s?this:n.$$s).$to_s()}).$$s=u,n.$$arity=0,n))},i.$$arity=-1),e.def(_,"$br",u=function(){var e,t=this,n=$;return l(l(n=t["$respond_to?"]("hyper_component?"))?t["$hyper_component?"]():n)?t.$send("br"):c(a(a(a(o(p,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",[a(a(a(a(o(p,"Hyperstack"),"Internal"),"Component"),"Tags"),"FRAGMENT")],((e=function(){var t,n=null==e.$$s?this:e.$$s;return c(a(a(a(o(p,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",[a(a(a(a(o(p,"Hyperstack"),"Internal"),"Component"),"Tags"),"FRAGMENT")],((t=function(){return(null==t.$$s?this:t.$$s).$to_s()}).$$s=n,t.$$arity=0,t)),a(a(a(o(p,"Hyperstack"),"Internal"),"Component"),"RenderingContext").$render(a(a(a(a(o(p,"Hyperstack"),"Internal"),"Component"),"Tags"),"BR"))}).$$s=t,e.$$arity=0,e))},u.$$arity=0),$&&"br"}(r[0],0,r)},Opal.modules["hyperstack/component/children"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,o=e.klass,i=e.send,s=e.lambda,l=e.truthy;return e.add_stubs(["$include","$each","$to_proc","$render","$to_enum","$length","$>","$new","$call","$<<","$alias_method"]),function(n,c){var u=[a(n,"Hyperstack")].concat(c);return function(n,c){var u=[a(n,"Component")].concat(c);return function(n,$super,a){var c,u,_,p,d,f=o(n,null,"Children"),h=[f].concat(a);return f.$$prototype.children=f.$$prototype.length=r,f.$include($(h,"Enumerable")),e.def(f,"$initialize",c=function(e){return this.children=e},c.$$arity=1),e.def(f,"$render",u=function(){return i(this,"each",[],"render".$to_proc())},u.$$arity=0),e.def(f,"$to_proc",_=function(){var e,t=this;return s(((e=function(){return(null==e.$$s?this:e.$$s).$render()}).$$s=t,e.$$arity=0,e))},_.$$arity=0),e.def(f,"$each",p=function(){var e,n=p.$$p,a=n||r,o=this,s=r,c=r;return n&&(p.$$p=null),n&&(p.$$p=null),a===r?i(o,"to_enum",["each"],((e=function(){return(null==e.$$s?this:e.$$s).$length()}).$$s=o,e.$$arity=0,e)):l(t(o.$length(),0))?(s=[],React.Children.forEach(o.children,function(e){c=$(h,"Element").$new(e,"wrap_child"),a.$call(c),s["$<<"](c)}),s):[]},p.$$arity=0),e.def(f,"$length",d=function(){var e=this,t=r;return e.length=l(t=e.length)?t:React.Children.count(e.children)},d.$$arity=0),f.$alias_method("size","length")}(u[0],0,u)}(u[0],u)}(n[0],n)},Opal.modules["hyperstack/internal/component/instance_methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var n=e.top,r=[],$=e.nil,a=e.$$$,o=e.$$,i=e.module,s=e.truthy,l=e.send,c=e.lambda,u=e.hash2;return e.add_stubs(["$require","$new","$include?","$param_accessor_style","$raise","$[]","$dom_node","$==","$=~","$pluralize","$set_or_replace_state_or_prop","$to_proc","$private","$instance_eval","$callbacks?","$class","$RescueWrapper","$call","$after_error_args=","$-","$__hyperstack_component_run_post_render_hooks","$__hyperstack_component_rescue_wrapper","$__hyperstack_router_wrapper","$shallow_to_n"]),n.$require("hyperstack/component/children"),function(n,r){var _=[i(n,"Hyperstack")].concat(r);return function(n,r){var _=[i(n,"Internal")].concat(r);return function(n,r){var _=[i(n,"Component")].concat(r);return function(n,r){var _,p,d,f,h,m,y,v,g,b,k,w,x,O,H=i(n,"InstanceMethods"),I=[H].concat(r);return e.def(H,"$children",_=function(){var e=this;return null==e.__hyperstack_component_native&&(e.__hyperstack_component_native=$),a(a(o(I,"Hyperstack"),"Component"),"Children").$new(e.__hyperstack_component_native.props.children)},_.$$arity=0),e.def(H,"$params",p=function(){var e=this;return null==e.__hyperstack_component_params_wrapper&&(e.__hyperstack_component_params_wrapper=$),s(["hyperstack","accessors"]["$include?"](e.__hyperstack_component_params_wrapper.$param_accessor_style()))&&e.$raise("params are now directly accessible via instance variables.\n to access the legacy behavior add `param_accessor_style = :legacy` to your component class\n to access both behaviors add `param_accessor_style = :both` to your component class"),e.__hyperstack_component_params_wrapper},p.$$arity=0),e.def(H,"$props",d=function(){var e=this;return null==e.__hyperstack_component_native&&(e.__hyperstack_component_native=$),o(I,"Hash").$new(e.__hyperstack_component_native.props)},d.$$arity=0),e.def(H,"$dom_node",f=function(){var e=this;return ReactDOM.findDOMNode(e.__hyperstack_component_native)},f.$$arity=0),e.def(H,"$jq_node",h=function(){var e=this;return a("::","Element")["$[]"](e.$dom_node())},h.$$arity=0),e.def(H,"$mounted?",m=function(){var e=this;return e.__hyperstack_component_is_mounted!==undefined&&e.__hyperstack_component_is_mounted},m.$$arity=0),e.def(H,"$pluralize",y=function(e,t,n){var r=$,a=$,o=$,i=$;return null==n&&(n=$),r=s(s(a=e["$=="](1))?a:e["$=~"](/^1(\.0+)?$/))?t:s(o=n)?o:t.$pluralize(),(s(i=e)?i:0)+" "+r},y.$$arity=-3),e.def(H,"$force_update!",v=function(){var e=this;return e.__hyperstack_component_native.forceUpdate(),e},v.$$arity=0),e.def(H,"$set_state",g=function(e){var t=g.$$p,n=t||$,r=this;return t&&(g.$$p=null),t&&(g.$$p=null),l(r,"set_or_replace_state_or_prop",[e,"setState"],n.$to_proc())},g.$$arity=1),e.def(H,"$set_state!",b=function(e){var t=b.$$p,n=t||$,r=this;return t&&(b.$$p=null),t&&(b.$$p=null),l(r,"set_or_replace_state_or_prop",[e,"setState"],n.$to_proc()),r.__hyperstack_component_native.forceUpdate()},b.$$arity=1),H.$private(),e.def(H,"$__hyperstack_router_wrapper",k=function(){var e,t=k.$$p,n=t||$,r=this;return t&&(k.$$p=null),t&&(k.$$p=null),c(((e=function(){var t=null==e.$$s?this:e.$$s;return l(t,"instance_eval",[],n.$to_proc())}).$$s=r,e.$$arity=0,e))},k.$$arity=0),e.def(H,"$__hyperstack_component_rescue_wrapper",w=function(e){var t=this;return s(t.$class()["$callbacks?"]("__hyperstack_component_rescue_hook"))?a(a(o(I,"Hyperstack"),"Internal"),"Component").$RescueWrapper(u(["child","children_elements"],{child:t,children_elements:e})):e.$call()},w.$$arity=1),e.def(H,"$__hyperstack_component_select_wrappers",x=function(){var n=x.$$p,r=n||$,a=this,i=$;return n&&(x.$$p=null),n&&(x.$$p=null),i=[$],l(o(I,"RescueWrapper"),"after_error_args=",e.to_a(i)),i[t(i.length,1)],a.$__hyperstack_component_run_post_render_hooks(a.$__hyperstack_component_rescue_wrapper(l(a,"__hyperstack_router_wrapper",[],r.$to_proc())))},x.$$arity=0),e.def(H,"$set_or_replace_state_or_prop",O=function(e,t){var n=O.$$p,r=n||$,a=this;null==a.__hyperstack_component_native&&(a.__hyperstack_component_native=$),n&&(O.$$p=null),n&&(O.$$p=null),s(a.__hyperstack_component_native)||a.$raise("No native ReactComponent associated");var o=e.$shallow_to_n();if(s(r))if(!0===a.__hyperstack_component_native.__opalInstanceInitializedState)a.__hyperstack_component_native[t](o,function(){r.$call()});else for(var i in o)o.hasOwnProperty(i)&&(a.__hyperstack_component_native.state[i]=o[i]);else if(!0===a.__hyperstack_component_native.__opalInstanceInitializedState)a.__hyperstack_component_native[t](o);else for(var i in o)o.hasOwnProperty(i)&&(a.__hyperstack_component_native.state[i]=o[i])},O.$$arity=2),$&&"set_or_replace_state_or_prop"}(_[0],_)}(_[0],_)}(_[0],_)}(r[0],r)},Opal.modules["hyperstack/internal/component/class_methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var a=[],o=e.nil,i=e.$$$,s=e.$$,l=e.module,c=e.send,u=e.truthy,_=e.range,p=e.hash2,d=e.send2,f=e.find_super,h=e.alias,m=e.hash;return e.add_stubs(["$create_element","$to_proc","$render","$deprecation_warning","$select","$mounted_components","$<=","$class","$param_accessor_style","$props_wrapper","$==","$[]","$<<","$each","$before_new_params","$included","$is_a?","$element_type","$define_method","$__hyperstack_component_select_wrappers","$instance_eval","$__hyperstack_component_after_render_hook","$on","$instance_exec","$empty?","$__hyperstack_component_rescue_hook","$!","$detect","$before_mount","$before_update","$after_mount","$after_update","$any?","$respond_to?","$haml_class_name","$superclass","$copy","$validator","$new","$validate","$>","$count","$+","$name","$join","$default_props","$build","$first","$delete","$merge!","$[]=","$-","$key?","$optional","$requires","$all_other_params","$props","$=~","$gsub","$include?","$event_camelize","$event","$call","$arity","$last","$pop","$state","$singleton_class","$__send__","$mutate","$native_mixins","$static_call_backs","$split","$to_n","$add_item_to_tree","$Native","$create_native_react_class","$reverse","$import_native_component","$eval_native_react_component","$raise","$message","$!=","$length","$inject"]),function(a,y){var v=[l(a,"Hyperstack")].concat(y);return function(a,y){var v=[l(a,"Internal")].concat(y);return function(a,y){var v=[l(a,"Component")].concat(y);return function(a,y){var v,g,b,k,w,x,O,H,I,C,R,S,z,q,N,j,E,A,M,T,W,D,P,L,U,F,B,X,G,V,K,J,Z,Q,Y=l(a,"ClassMethods"),ee=[Y].concat(y);return e.def(Y,"$create_element",v=function(){var t,n=v.$$p,r=n||o,$=this;return n&&(v.$$p=null),n&&(v.$$p=null),t=e.slice.call(arguments,0,arguments.length),c(s(ee,"ReactWrapper"),"create_element",[$].concat(e.to_a(t)),r.$to_proc())},v.$$arity=-1),e.def(Y,"$insert_element",g=function(){var t,n=g.$$p,r=n||o,$=this;return n&&(g.$$p=null),n&&(g.$$p=null),t=e.slice.call(arguments,0,arguments.length),c(s(ee,"RenderingContext"),"render",[$].concat(e.to_a(t)),r.$to_proc())},g.$$arity=-1),e.def(Y,"$deprecation_warning",b=function(e){var t=this;return s(ee,"Hyperstack").$deprecation_warning(t,e)},b.$$arity=1),e.def(Y,"$hyper_component?",k=function(){return!0},k.$$arity=0),e.def(Y,"$allow_deprecated_render_definition?",w=function(){return!1},w.$$arity=0),e.def(Y,"$mounted_components",x=function(){var e,n=this;return c(i(s(ee,"Hyperstack"),"Component").$mounted_components(),"select",[],((e=function(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=o),t(n.$class(),r)}).$$s=n,e.$$arity=1,e))},x.$$arity=0),e.def(Y,"$param_accessor_style",O=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),c(n.$props_wrapper(),"param_accessor_style",e.to_a(t))},O.$$arity=-1),e.def(Y,"$backtrace",H=function(){var t,n,r=this,$=o;return null==r.__hyperstack_component_dont_catch_exceptions&&(r.__hyperstack_component_dont_catch_exceptions=o),t=e.slice.call(arguments,0,arguments.length),n=t,r.__hyperstack_component_dont_catch_exceptions=n["$[]"](0)["$=="]("none"),r.__hyperstack_component_backtrace_off=u($=r.__hyperstack_component_dont_catch_exceptions)?$:n["$[]"](0)["$=="]("off")},H.$$arity=-1),e.def(Y,"$append_backtrace",I=function(e,t){var n,r=this;return e["$<<"](" "+t["$[]"](0)),c(t["$[]"](_(1,-1,!1)),"each",[],((n=function(t){null==n.$$s||n.$$s;return null==t&&(t=o),e["$<<"](t)}).$$s=r,n.$$arity=1,n))},I.$$arity=2),e.def(Y,"$before_receive_props",C=function(){var t,n=C.$$p,r=n||o,$=this;return n&&(C.$$p=null),n&&(C.$$p=null),t=e.slice.call(arguments,0,arguments.length),$.$deprecation_warning("'before_receive_props' is deprecated. Use the 'before_new_params' macro instead."),c($,"before_new_params",e.to_a(t),r.$to_proc())},C.$$arity=-1),e.def(Y,"$render",R=function(e,t){var n,r,$=R.$$p,a=$||o,l=this;return $&&(R.$$p=null),$&&(R.$$p=null),null==e&&(e=o),null==t&&(t=p([],{})),s(ee,"Tags").$included(l),u(e)?(u(e["$is_a?"](i(i(s(ee,"Hyperstack"),"Component"),"Element")))&&(e=e.$element_type()),c(l,"define_method",["__hyperstack_component_render"],((n=function(){var r,$=null==n.$$s?this:n.$$s;return c($,"__hyperstack_component_select_wrappers",[],((r=function(){var n,$=null==r.$$s?this:r.$$s;return c(s(ee,"RenderingContext"),"render",[e,t],((n=function(){var e=null==n.$$s?this:n.$$s;return u(a)?c(e,"instance_eval",[],a.$to_proc()):o}).$$s=$,n.$$arity=0,n))}).$$s=$,r.$$arity=0,r))}).$$s=l,n.$$arity=0,n))):c(l,"define_method",["__hyperstack_component_render"],((r=function(){var e,t=null==r.$$s?this:r.$$s;return c(t,"__hyperstack_component_select_wrappers",[],((e=function(){var t=null==e.$$s?this:e.$$s;return c(t,"instance_eval",[],a.$to_proc())}).$$s=t,e.$$arity=0,e))}).$$s=l,r.$$arity=0,r))},R.$$arity=-1),e.def(Y,"$on",S=function(){var t,n,r,$=S.$$p,a=$||o,i=this;return $&&(S.$$p=null),$&&(S.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,c(i,"__hyperstack_component_after_render_hook",[],((r=function(t){var $,i=null==r.$$s?this:r.$$s;return null==t&&(t=o),c(t,"on",e.to_a(n),(($=function(){var t,n=null==$.$$s?this:$.$$s;return t=e.slice.call(arguments,0,arguments.length),c(n,"instance_exec",e.to_a(t),a.$to_proc())}).$$s=i,$.$$arity=-1,$))}).$$s=i,r.$$arity=1,r))},S.$$arity=-1),e.def(Y,"$rescues",z=function(){var t,n,r,$=z.$$p,a=$||o,i=this;return $&&(z.$$p=null),$&&(z.$$p=null),t=e.slice.call(arguments,0,arguments.length),u((n=t)["$empty?"]())&&(n=[s(ee,"StandardError")]),c(i,"__hyperstack_component_rescue_hook",[],((r=function(t){var $,i,s,l=null==r.$$s?this:r.$$s,_=o;return null==t&&(t=o),$=e.slice.call(arguments,1,arguments.length),i=$,u(u(_=t)?_:c(n,"detect",[],(s=function(e){return null==s.$$s||s.$$s,null==e&&(e=o),i["$[]"](0)["$is_a?"](e)},s.$$s=l,s.$$arity=1,s))["$!"]())?[t].concat(e.to_a(i)):(c(l,"instance_exec",e.to_a(i),a.$to_proc()),[!0].concat(e.to_a(i)))}).$$s=i,r.$$arity=-2,r))},z.$$arity=-1),e.def(Y,"$before_render",q=function(){var t,n=q.$$p,r=n||o,$=this;return n&&(q.$$p=null),n&&(q.$$p=null),t=e.slice.call(arguments,0,arguments.length),c($,"before_mount",e.to_a(t),r.$to_proc()),c($,"before_update",e.to_a(t),r.$to_proc())},q.$$arity=-1),e.def(Y,"$after_render",N=function(){var t,n=N.$$p,r=n||o,$=this;return n&&(N.$$p=null),n&&(N.$$p=null),t=e.slice.call(arguments,0,arguments.length),c($,"after_mount",e.to_a(t),r.$to_proc()),c($,"after_update",e.to_a(t),r.$to_proc())},N.$$arity=-1),e.def(Y,"$method_missing",j=function(t){var n,r,$=j.$$p,a=$||o,l=this,_=o;return $&&(j.$$p=null),$&&(j.$$p=null),n=e.slice.call(arguments,1,arguments.length),u(u(_=(r=n)["$any?"]())?_:i(i(s(ee,"Hyperstack"),"Component"),"Element")["$respond_to?"]("haml_class_name")["$!"]())?d(l,f(l,"method_missing",j,!1,!0),"method_missing",[t].concat(e.to_a(r)),$):c(s(ee,"RenderingContext"),"render",[l,p(["class"],{"class":i(i(s(ee,"Hyperstack"),"Component"),"Element").$haml_class_name(t)})],a.$to_proc())},j.$$arity=-2),e.def(Y,"$validator",E=function(){var e=this;return null==e.__hyperstack_component_validator&&(e.__hyperstack_component_validator=o),u(e.__hyperstack_component_validator)?e.__hyperstack_component_validator:u(e.$superclass()["$respond_to?"]("validator"))?e.__hyperstack_component_validator=e.$superclass().$validator().$copy(e.$props_wrapper()):e.__hyperstack_component_validator=s(ee,"Validator").$new(e.$props_wrapper())},E.$$arity=0),e.def(Y,"$prop_types",A=function(){var e=this;return u(e.$validator())?p(["_componentValidator"],{_componentValidator:function(t){var $=e.$validator().$validate(s(ee,"Hash").$new(t));return u(n($.$count(),0))?new Error(r("In component `"+e.$name()+"`\n",$.$join("\n"))):undefined}}):p([],{})},A.$$arity=0),e.def(Y,"$default_props",M=function(){return this.$validator().$default_props()},M.$$arity=0),e.def(Y,"$params",T=function(){var e=T.$$p,t=e||o,n=this;return e&&(T.$$p=null),e&&(T.$$p=null),c(n.$validator(),"build",[],t.$to_proc())},T.$$arity=0),e.def(Y,"$props_wrapper",W=function(){var e=this,t=o;return null==e.__hyperstack_component_props_wrapper&&(e.__hyperstack_component_props_wrapper=o),u(e.__hyperstack_component_props_wrapper)?e.__hyperstack_component_props_wrapper:u(e.$superclass()["$respond_to?"]("props_wrapper"))?e.__hyperstack_component_props_wrapper=s(ee,"Class").$new(e.$superclass().$props_wrapper()):e.__hyperstack_component_props_wrapper=u(t=e.__hyperstack_component_props_wrapper)?t:s(ee,"Class").$new(s(ee,"PropsWrapper"))},W.$$arity=0),e.def(Y,"$param",D=function(){var t,n,r=this,a=o,i=o,l=o,_=o,d=o;return t=e.slice.call(arguments,0,arguments.length),u((n=t)["$[]"](0)["$is_a?"](s(ee,"Hash")))?(i=(a=n["$[]"](0)).$first()["$[]"](0),l=a.$first()["$[]"](1),a.$delete(i),a["$merge!"](p(["default"],{"default":l}))):(i=n["$[]"](0),a=u(_=n["$[]"](1))?_:p([],{})),a["$[]"]("type")["$=="](s(ee,"Proc"))&&(u(a["$[]"]("default"))||(d=["default",o],c(a,"[]=",e.to_a(d)),d[$(d.length,1)]),u(a["$key?"]("allow_nil"))||(d=["allow_nil",!0],c(a,"[]=",e.to_a(d)),d[$(d.length,1)])),i["$=="]("class")&&(i="className",u(a["$[]"]("alias"))||(d=["alias","Class"],c(a,"[]=",e.to_a(d)),d[$(d.length,1)])),u(a["$[]"]("default"))?r.$validator().$optional(i,a):r.$validator().$requires(i,a)},D.$$arity=-1),e.def(Y,"$collect_other_params_as",P=function(e){var t,n=this;return c(n.$validator(),"all_other_params",[e],((t=function(){return(null==t.$$s?this:t.$$s).$props()}).$$s=n,t.$$arity=0,t))},P.$$arity=1),h(Y,"other_params","collect_other_params_as"),h(Y,"others","collect_other_params_as"),h(Y,"other","collect_other_params_as"),h(Y,"opts","collect_other_params_as"),e.def(Y,"$fires",L=function(t,n){var r,$=this,a=o,l=o;return null==n&&(n=p([],{})),a=u(l=n["$[]"]("alias"))?l:t+"!",t=u(t["$=~"](/^<(.+)>$/))?t.$gsub(/^<(.+)>$/,"\\1"):u(i(i(i(s(ee,"Hyperstack"),"Component"),"Event"),"BUILT_IN_EVENTS")["$include?"]("on"+t.$event_camelize()))?"on"+t.$event_camelize():"on_"+t,$.$validator().$event(t),c($,"define_method",[a],((r=function(){ +var n,$,a=null==r.$$s?this:r.$$s;return n=e.slice.call(arguments,0,arguments.length),($=a.$props()["$[]"](t))===o||null==$?o:c($,"call",e.to_a(n))}).$$s=$,r.$$arity=-1,r))},L.$$arity=-2),h(Y,"triggers","fires"),e.def(Y,"$define_state",U=function(){var t,n,r,$,a=U.$$p,i=a||o,l=this,_=o,d=o,f=o;return a&&(U.$$p=null),a&&(U.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,l.$deprecation_warning("'define_state' is deprecated. Use the 'state' macro to declare states."),_=u(u(d=i)?i.$arity()["$=="](0):d)?e.yieldX(i,[]):o,f=u(n.$last()["$is_a?"](s(ee,"Hash")))?n.$pop():p([],{}),c(n,"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==e&&(e=o),t.$state(m(e,_))}).$$s=l,r.$$arity=1,r)),c(f,"each",[],(($=function(e,t){var n=null==$.$$s?this:$.$$s;return null==e&&(e=o),null==t&&(t=o),n.$state(m(e,t))}).$$s=l,$.$$arity=2,$))},U.$$arity=-1),e.def(Y,"$export_state",F=function(){var t,n,r,a,i=F.$$p,l=i||o,_=this,d=o,f=o,h=o;return i&&(F.$$p=null),i&&(F.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,_.$deprecation_warning("'export_state' is deprecated. Use the 'state' macro to declare states."),d=u(u(f=l)?l.$arity()["$=="](0):f)?e.yieldX(l,[]):o,h=u(n.$last()["$is_a?"](s(ee,"Hash")))?n.$pop():p([],{}),c(n,"each",[],((r=function(t){null==r.$$s||r.$$s;var n=o;return null==t&&(t=o),n=[t,d],c(h,"[]=",e.to_a(n)),n[$(n.length,1)]}).$$s=_,r.$$arity=1,r)),c(h,"each",[],((a=function(t,n){var r,$=null==a.$$s?this:a.$$s;return null==t&&(t=o),null==n&&(n=o),$.$state(m(t,n,"scope","class","reader",!0)),c($.$singleton_class(),"define_method",[t+"!"],((r=function(){var n,$=null==r.$$s?this:r.$$s;return n=e.slice.call(arguments,0,arguments.length),c($.$mutate(),"__send__",[t].concat(e.to_a(n)))}).$$s=$,r.$$arity=-1,r))}).$$s=_,a.$$arity=2,a))},F.$$arity=-1),e.def(Y,"$native_mixin",B=function(e){return this.$native_mixins()["$<<"](e)},B.$$arity=1),e.def(Y,"$native_mixins",X=function(){var e=this,t=o;return null==e.__hyperstack_component_native_mixins&&(e.__hyperstack_component_native_mixins=o),e.__hyperstack_component_native_mixins=u(t=e.__hyperstack_component_native_mixins)?t:[]},X.$$arity=0),e.def(Y,"$static_call_back",G=function(t){var n=G.$$p,r=n||o,a=this,i=o;return n&&(G.$$p=null),n&&(G.$$p=null),i=[t,r],c(a.$static_call_backs(),"[]=",e.to_a(i)),i[$(i.length,1)]},G.$$arity=1),e.def(Y,"$static_call_backs",V=function(){var e=this,t=o;return null==e.__hyperstack_component_static_call_backs&&(e.__hyperstack_component_static_call_backs=o),e.__hyperstack_component_static_call_backs=u(t=e.__hyperstack_component_static_call_backs)?t:p([],{})},V.$$arity=0),e.def(Y,"$export_component",K=function(t){var n=this,a=o,i=o,l=o,d=o;return null==t&&(t=p([],{})),d=[l=(a=(u(i=t["$[]"]("as"))?i:n.$name()).$split("::")).$first(),n.$add_item_to_tree(n.$Native(e.global)["$[]"](l),r([s(ee,"ReactWrapper").$create_native_react_class(n)],a["$[]"](_(1,-1,!1)).$reverse())).$to_n()],c(n.$Native(e.global),"[]=",e.to_a(d)),d[$(d.length,1)]},K.$$arity=-1),e.def(Y,"$imports",J=function(t){var n,r=this,$=o;return function(){try{try{return s(ee,"ReactWrapper").$import_native_component(r,s(ee,"ReactWrapper").$eval_native_react_component(t)),c(r,"render",[],((n=function(){null==n.$$s||n.$$s;return o}).$$s=r,n.$$arity=0,n))}catch(a){if(!e.rescue(a,[s(ee,"Exception")]))throw a;$=a;try{return r.$raise(r+" cannot import '"+t+"': "+$.$message()+".")}finally{e.pop_exception()}}}finally{}}()},J.$$arity=1),e.def(Y,"$add_item_to_tree",Z=function(t,n){var r,a=this,l=o,p=o;return u(u(l=a.$Native(t).$class()["$!="](i(s(ee,"Native"),"Object")))?l:n.$length()["$=="](1))?c(n,"inject",[],((r=function(e,t){null==r.$$s||r.$$s;return null==e&&(e=o),null==t&&(t=o),m(t,e)}).$$s=a,r.$$arity=2,r)):(p=[n.$last(),a.$add_item_to_tree(a.$Native(t)["$[]"](n.$last()),n["$[]"](_(0,-2,!1)))],c(a.$Native(t),"[]=",e.to_a(p)),p[$(p.length,1)],t)},Z.$$arity=2),e.def(Y,"$to_n",Q=function(){var e=this;return i(i(i(s(ee,"Hyperstack"),"Internal"),"Component"),"ReactWrapper").$create_native_react_class(e)},Q.$$arity=0),o&&"to_n"}(v[0],v)}(v[0],v)}(v[0],v)}(a[0],a)},Opal.modules["active_support/core_ext/string/filters"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$,e.klass),o=e.hash2,i=e.truthy;return e.add_stubs(["$>","$length","$dup","$[]","$-","$rindex"]),function(r,$super,s){var l,c=a(r,null,"String");[c].concat(s);return e.def(c,"$truncate",l=function(e,r){var a=this,s=$,l=$,c=$,u=$,_=$;return null==r&&(r=o([],{})),i(t(a.$length(),e))?(s=i(l=r["$[]"]("omission"))?l:"...",c=n(e,s.$length()),u=i(r["$[]"]("separator"))&&i(_=a.$rindex(r["$[]"]("separator"),c))?_:c,""+a["$[]"](0,u)+s):a.$dup()},l.$$arity=-2),$&&"truncate"}(r[0],0,r)},Opal.modules.set=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e"},m.$$arity=0),e.def(X,"$==",y=function(e){var t,n=this,r=a;return!!l(n["$equal?"](e))||(l(e["$instance_of?"](n.$class()))?n.hash["$=="](e.$instance_variable_get("@hash")):!!l(l(r=e["$is_a?"](o(G,"Set")))?n.$size()["$=="](e.$size()):r)&&c(e,"all?",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==n.hash&&(n.hash=a),null==e&&(e=a),n.hash["$include?"](e)}).$$s=n,t.$$arity=1,t)))},y.$$arity=1),e.def(X,"$add",v=function(n){var r=this,$=a;return $=[n,!0],c(r.hash,"[]=",e.to_a($)),$[t($.length,1)],r},v.$$arity=1),u(X,"<<","add"),e.def(X,"$classify",g=function(){var n,r,$=g.$$p,i=$||a,s=this,l=a;return $&&(g.$$p=null),$&&(g.$$p=null),i===a?s.$enum_for("classify"):(l=c(o(G,"Hash"),"new",[],((n=function(r,$){var o=null==n.$$s?this:n.$$s,i=a;return null==r&&(r=a),null==$&&($=a),i=[$,o.$class().$new()],c(r,"[]=",e.to_a(i)),i[t(i.length,1)]}).$$s=s,n.$$arity=2,n)),c(s,"each",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=a),l["$[]"](e.yield1(i,t)).$add(t)}).$$s=s,r.$$arity=1,r)),l)},g.$$arity=0),e.def(X,"$collect!",b=function(){var t,n=b.$$p,r=n||a,$=this,o=a;return n&&(b.$$p=null),n&&(b.$$p=null),r===a?$.$enum_for("collect!"):(o=$.$class().$new(),c($,"each",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),o["$<<"](e.yield1(r,n))}).$$s=$,t.$$arity=1,t)),$.$replace(o))},b.$$arity=0),u(X,"map!","collect!"),e.def(X,"$delete",k=function(e){var t=this;return t.hash.$delete(e),t},k.$$arity=1),e.def(X,"$delete?",w=function(e){var t=this;return l(t["$include?"](e))?(t.$delete(e),t):a},w.$$arity=1),e.def(X,"$delete_if",x=function(){var t,n,r=x.$$p,$=r||a,o=this;return r&&(x.$$p=null),$===a?o.$enum_for("delete_if"):(c(c(o,"select",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e.yield1($,n)}).$$s=o,t.$$arity=1,t)),"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==t.hash&&(t.hash=a),null==e&&(e=a),t.hash.$delete(e)}).$$s=o,n.$$arity=1,n)),o)},x.$$arity=0),e.def(X,"$keep_if",O=function(){var t,n,r=O.$$p,$=r||a,o=this;return r&&(O.$$p=null),$===a?o.$enum_for("keep_if"):(c(c(o,"reject",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e.yield1($,n)}).$$s=o,t.$$arity=1,t)),"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==t.hash&&(t.hash=a),null==e&&(e=a),t.hash.$delete(e)}).$$s=o,n.$$arity=1,n)),o)},O.$$arity=0),e.def(X,"$reject!",H=function(){var e=H.$$p,t=e||a,n=this,r=a;return e&&(H.$$p=null),e&&(H.$$p=null),t===a?n.$enum_for("reject!"):(r=n.$size(),c(n,"delete_if",[],t.$to_proc()),n.$size()["$=="](r)?a:n)},H.$$arity=0),e.def(X,"$select!",I=function(){var e=I.$$p,t=e||a,n=this,r=a;return e&&(I.$$p=null),e&&(I.$$p=null),t===a?n.$enum_for("select!"):(r=n.$size(),c(n,"keep_if",[],t.$to_proc()),n.$size()["$=="](r)?a:n)},I.$$arity=0),u(X,"filter!","select!"),e.def(X,"$add?",C=function(e){var t=this;return l(t["$include?"](e))?a:t.$add(e)},C.$$arity=1),e.def(X,"$each",R=function(){var e=R.$$p,t=e||a,n=this;return e&&(R.$$p=null),e&&(R.$$p=null),t===a?n.$enum_for("each"):(c(n.hash,"each_key",[],t.$to_proc()),n)},R.$$arity=0),e.def(X,"$empty?",S=function(){return this.hash["$empty?"]()},S.$$arity=0),e.def(X,"$eql?",z=function(e){var t,n=this;return n.hash["$eql?"](c(e,"instance_eval",[],((t=function(){var e=null==t.$$s?this:t.$$s;return null==e.hash&&(e.hash=a),e.hash}).$$s=n,t.$$arity=0,t)))},z.$$arity=1),e.def(X,"$clear",q=function(){var e=this;return e.hash.$clear(),e},q.$$arity=0),e.def(X,"$include?",N=function(e){return this.hash["$include?"](e)},N.$$arity=1),u(X,"member?","include?"),e.def(X,"$merge",j=function(e){var t,n=this;return c(e,"each",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n.$add(e)}).$$s=n,t.$$arity=1,t)),n},j.$$arity=1),e.def(X,"$replace",E=function(e){var t=this;return t.$clear(),t.$merge(e),t},E.$$arity=1),e.def(X,"$size",A=function(){return this.hash.$size()},A.$$arity=0),u(X,"length","size"),e.def(X,"$subtract",M=function(e){var t,n=this;return c(e,"each",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n.$delete(e)}).$$s=n,t.$$arity=1,t)),n},M.$$arity=1),e.def(X,"$|",T=function(e){var t=this;return l(e["$respond_to?"]("each"))||t.$raise(o(G,"ArgumentError"),"value must be enumerable"),t.$dup().$merge(e)},T.$$arity=1),e.def(X,"$superset?",W=function(e){var t,r=this;return l(e["$is_a?"](o(G,"Set")))||r.$raise(o(G,"ArgumentError"),"value must be a set"),!l(n(r.$size(),e.$size()))&&c(e,"all?",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n["$include?"](e)}).$$s=r,t.$$arity=1,t))},W.$$arity=1),u(X,">=","superset?"),e.def(X,"$proper_superset?",D=function(e){var t,n=this;return l(e["$is_a?"](o(G,"Set")))||n.$raise(o(G,"ArgumentError"),"value must be a set"),!l(r(n.$size(),e.$size()))&&c(e,"all?",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n["$include?"](e)}).$$s=n,t.$$arity=1,t))},D.$$arity=1),u(X,">","proper_superset?"),e.def(X,"$subset?",P=function(e){var t,r=this;return l(e["$is_a?"](o(G,"Set")))||r.$raise(o(G,"ArgumentError"),"value must be a set"),!l(n(e.$size(),r.$size()))&&c(r,"all?",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e["$include?"](n)}).$$s=r,t.$$arity=1,t))},P.$$arity=1),u(X,"<=","subset?"),e.def(X,"$proper_subset?",L=function(e){var t,n=this;return l(e["$is_a?"](o(G,"Set")))||n.$raise(o(G,"ArgumentError"),"value must be a set"),!l(r(e.$size(),n.$size()))&&c(n,"all?",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e["$include?"](n)}).$$s=n,t.$$arity=1,t))},L.$$arity=1),u(X,"<","proper_subset?"),e.def(X,"$intersect?",U=function(e){var t,r,$=this;return l(e["$is_a?"](o(G,"Set")))||$.$raise(o(G,"ArgumentError"),"value must be a set"),l(n($.$size(),e.$size()))?c($,"any?",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e["$include?"](n)}).$$s=$,t.$$arity=1,t)):c(e,"any?",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==e&&(e=a),t["$include?"](e)}).$$s=$,r.$$arity=1,r))},U.$$arity=1),e.def(X,"$disjoint?",F=function(e){return this["$intersect?"](e)["$!"]()},F.$$arity=1),u(X,"+","|"),u(X,"union","|"),e.def(X,"$to_a",B=function(){return this.hash.$keys()},B.$$arity=0)}($[0],0,$),function(t,n){var r,$=_(t,"Enumerable"),i=[$].concat(n);return e.def($,"$to_set",r=function(){var t,n,$,s=r.$$p,l=s||a,u=this;return s&&(r.$$p=null),s&&(r.$$p=null),(t=e.slice.call(arguments,0,arguments.length)).length>0&&(n=t[0],t.splice(0,1)),null==n&&(n=o(i,"Set")),$=t,c(n,"new",[u].concat(e.to_a($)),l.$to_proc())},r.$$arity=-1),a&&"to_set"}($[0],$)},Opal.modules["active_support/inflector/inflections"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],a=e.nil,o=(e.$$$,e.$$),i=e.module,s=e.klass,l=e.hash2,c=e.send,u=e.truthy,_=e.range;return e.add_stubs(["$require","$extend","$add","$map","$flatten","$to_proc","$concat","$include?","$downcase","$new","$[]","$[]=","$-","$attr_reader","$each","$instance_variable_set","$dup","$send","$is_a?","$delete","$unshift","$==","$upcase","$plural","$+","$singular","$===","$instance"]),r.$require("set"),function(r,$){var p=[i(r,"ActiveSupport")].concat($);return function(r,$){var p,d=i(r,"Inflector"),f=[d].concat($);return d.$extend(d),function(r,$super,$){var i,p,d,f,h,m,y,v,g,b=s(r,null,"Inflections"),k=[b].concat($);b.$$prototype.uncountables=b.$$prototype.plurals=b.$$prototype.singulars=b.$$prototype.humans=a,b.__instance__=l([],{}),function(t,$super,n){var r,$,i,l,u=s(t,$super,"Uncountables"),_=[u].concat(n);e.def(u,"$<<",r=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),n.$add(t)},r.$$arity=-1),e.def(u,"$add",$=function(e){var t=this;return e=c(e.$flatten(),"map",[],"downcase".$to_proc()),t.$concat(e),t},$.$$arity=1),e.def(u,"$uncountable?",i=function(e){return this["$include?"](e.$downcase())},i.$$arity=1),e.def(u,"$dup",l=function(){var e=this,t=a;return(t=o(_,"Uncountables").$new()).$add(e),t},l.$$arity=0)}(k[0],o(k,"Array"),k),e.defs(b,"$instance",i=function(n){var r=this,$=a,o=a;return null==r.__instance__&&(r.__instance__=a),u($=r.__instance__["$[]"](n))?$:(o=[n,r.$new()],c(r.__instance__,"[]=",e.to_a(o)),o[t(o.length,1)])},i.$$arity=1),b.$attr_reader("plurals","singulars","uncountables","humans"),e.def(b,"$initialize",p=function(){var e,t=this;return e=[[],[],o(k,"Uncountables").$new(),[]],t.plurals=e[0],t.singulars=e[1],t.uncountables=e[2],t.humans=e[3],e},p.$$arity=0),e.def(b,"$initialize_dup",d=function(e){var t,n=this;return c(["plurals","singulars","uncountables","humans"],"each",[],((t=function(n){var r=null==t.$$s?this:t.$$s;return null==n&&(n=a),r.$instance_variable_set("@"+n,e.$send(n).$dup())}).$$s=n,t.$$arity=1,t))},d.$$arity=1),e.def(b,"$plural",f=function(e,t){var n=this;return u(e["$is_a?"](o(k,"String")))&&n.uncountables.$delete(e),n.uncountables.$delete(t),n.plurals.$unshift([e,t])},f.$$arity=2),e.def(b,"$singular",h=function(e,t){var n=this;return u(e["$is_a?"](o(k,"String")))&&n.uncountables.$delete(e),n.uncountables.$delete(t),n.singulars.$unshift([e,t])},h.$$arity=2),e.def(b,"$uncountable",m=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),n.uncountables.$add(t)},m.$$arity=-1),e.def(b,"$human",y=function(e,t){return this.humans.$unshift([e,t])},y.$$arity=2),e.def(b,"$irregular",v=function(t,r){var $=this,o=a,i=a,s=a,l=a;return $.uncountables.$delete(t),$.uncountables.$delete(r),o=t["$[]"](0),i=t["$[]"](_(1,-1,!1)),s=r["$[]"](0),l=r["$[]"](_(1,-1,!1)),o.$upcase()["$=="](s.$upcase())?($.$plural(e.regexp(["(",o,")",i,"$"],"i"),n("\\1",l)),$.$plural(e.regexp(["(",s,")",l,"$"],"i"),n("\\1",l)),$.$singular(e.regexp(["(",o,")",i,"$"],"i"),n("\\1",i)),$.$singular(e.regexp(["(",s,")",l,"$"],"i"),n("\\1",i))):($.$plural(e.regexp([o.$upcase(),i,"$"],"i"),n(s.$upcase(),l)),$.$plural(e.regexp([o.$downcase(),i,"$"],"i"),n(s.$downcase(),l)),$.$plural(e.regexp([s.$upcase(),l,"$"],"i"),n(s.$upcase(),l)),$.$plural(e.regexp([s.$downcase(),l,"$"],"i"),n(s.$downcase(),l)),$.$singular(e.regexp([o.$upcase(),i,"$"],"i"),n(o.$upcase(),i)),$.$singular(e.regexp([o.$downcase(),i,"$"],"i"),n(o.$downcase(),i)),$.$singular(e.regexp([s.$upcase(),l,"$"],"i"),n(o.$upcase(),i)),$.$singular(e.regexp([s.$downcase(),l,"$"],"i"),n(o.$downcase(),i)))},v.$$arity=2),e.def(b,"$clear",g=function(e){var t,n=this,r=a;return null==e&&(e="all"),r=e,"all"["$==="](r)?(t=[[],[],o(k,"Uncountables").$new(),[]],n.plurals=t[0],n.singulars=t[1],n.uncountables=t[2],n.humans=t[3],t):n.$instance_variable_set("@"+e,[])},g.$$arity=-1)}(f[0],0,f),e.def(d,"$inflections",p=function(t){var n=p.$$p,r=n||a;return n&&(p.$$p=null),null==t&&(t="en"),r!==a?e.yield1(r,o(f,"Inflections").$instance(t)):o(f,"Inflections").$instance(t)},p.$$arity=-1),a&&"inflections"}(p[0],p)}($[0],$)},Opal.modules["active_support/inflections"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,o=e.send;return e.add_stubs(["$require","$inflections","$plural","$singular","$irregular","$uncountable"]),t.$require("active_support/inflector/inflections"),function(e,t){var n,i=a(e,"ActiveSupport"),s=[i].concat(t);return o($(s,"Inflector"),"inflections",["en"],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=r),e.$plural(/$/,"s"),e.$plural(/s$/i,"s"),e.$plural(/^(ax|test)is$/i,"\\1es"),e.$plural(/(octop|vir)us$/i,"\\1i"),e.$plural(/(octop|vir)i$/i,"\\1i"),e.$plural(/(alias|status)$/i,"\\1es"),e.$plural(/(bu)s$/i,"\\1ses"),e.$plural(/(buffal|tomat)o$/i,"\\1oes"),e.$plural(/([ti])um$/i,"\\1a"),e.$plural(/([ti])a$/i,"\\1a"),e.$plural(/sis$/i,"ses"),e.$plural(/(?:([^f])fe|([lr])f)$/i,"\\1\\2ves"),e.$plural(/(hive)$/i,"\\1s"),e.$plural(/([^aeiouy]|qu)y$/i,"\\1ies"),e.$plural(/(x|ch|ss|sh)$/i,"\\1es"),e.$plural(/(matr|vert|ind)(?:ix|ex)$/i,"\\1ices"),e.$plural(/^(m|l)ouse$/i,"\\1ice"),e.$plural(/^(m|l)ice$/i,"\\1ice"),e.$plural(/^(ox)$/i,"\\1en"),e.$plural(/^(oxen)$/i,"\\1"),e.$plural(/(quiz)$/i,"\\1zes"),e.$singular(/s$/i,""),e.$singular(/(ss)$/i,"\\1"),e.$singular(/(n)ews$/i,"\\1ews"),e.$singular(/([ti])a$/i,"\\1um"),e.$singular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i,"\\1sis"),e.$singular(/(^analy)(sis|ses)$/i,"\\1sis"),e.$singular(/([^f])ves$/i,"\\1fe"),e.$singular(/(hive)s$/i,"\\1"),e.$singular(/(tive)s$/i,"\\1"),e.$singular(/([lr])ves$/i,"\\1f"),e.$singular(/([^aeiouy]|qu)ies$/i,"\\1y"),e.$singular(/(s)eries$/i,"\\1eries"),e.$singular(/(m)ovies$/i,"\\1ovie"),e.$singular(/(x|ch|ss|sh)es$/i,"\\1"),e.$singular(/^(m|l)ice$/i,"\\1ouse"),e.$singular(/(bus)(es)?$/i,"\\1"),e.$singular(/(o)es$/i,"\\1"),e.$singular(/(shoe)s$/i,"\\1"),e.$singular(/(cris|test)(is|es)$/i,"\\1is"),e.$singular(/^(a)x[ie]s$/i,"\\1xis"),e.$singular(/(octop|vir)(us|i)$/i,"\\1us"),e.$singular(/(alias|status)(es)?$/i,"\\1"),e.$singular(/^(ox)en/i,"\\1"),e.$singular(/(vert|ind)ices$/i,"\\1ex"),e.$singular(/(matr)ices$/i,"\\1ix"),e.$singular(/(quiz)zes$/i,"\\1"),e.$singular(/(database)s$/i,"\\1"),e.$irregular("person","people"),e.$irregular("man","men"),e.$irregular("child","children"),e.$irregular("sex","sexes"),e.$irregular("move","moves"),e.$irregular("zombie","zombies"),e.$uncountable(["equipment","information","rice","money","species","series","fish","sheep","jeans","police"])}).$$s=i,n.$$arity=1,n))}(n[0],n)},Opal.modules["active_support/inflector/methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],a=e.nil,o=(e.$$$,e.$$),i=e.module,s=e.truthy,l=e.send,c=e.gvars,u=e.hash2,_=e.range;return e.add_stubs(["$require","$extend","$apply_inflections","$plurals","$inflections","$singulars","$to_s","$sub","$capitalize","$downcase","$gsub","$freeze","$match?","$tr","$dup","$each","$humans","$is_a?","$=~","$==","$upcase","$>","$length","$+","$[]","$humanize","$underscore","$pluralize","$camelize","$singularize","$rindex","$demodulize","$split","$empty?","$raise","$size","$first","$shift","$inject","$const_get","$const_defined?","$ancestors","$constantize","$name","$!","$include?","$const_regexp","$message","$abs","$to_i","$%","$===","$ordinal","$private","$blank?","$escape","$pop","$reverse","$uncountable?","$uncountables"]),r.$require("active_support/inflections"),function(r,$){var p=[i(r,"ActiveSupport")].concat($);return function(r,$){var p,d,f,h,m,y,v,g,b,k,w,x,O,H,I,C,R,S,z,q=i(r,"Inflector"),N=[q].concat($);return q.$extend(q),e.def(q,"$pluralize",p=function(e,t){var n=this;return null==t&&(t="en"),n.$apply_inflections(e,n.$inflections(t).$plurals(),t)},p.$$arity=-2),e.def(q,"$singularize",d=function(e,t){var n=this;return null==t&&(t="en"),n.$apply_inflections(e,n.$inflections(t).$singulars(),t)},d.$$arity=-2),e.def(q,"$camelize",f=function(e,t){var n,r,$=this,o=a;return null==t&&(t=!0),o=e.$to_s(),o=s(t)?l(o,"sub",[/^[a-z\d]*/],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=a),e.$capitalize()}).$$s=$,n.$$arity=1,n)):o.$downcase(),o=(o=l(o,"gsub",[/(?:_|(\/))([a-z\d]*)/i],((r=function(){var e;null==r.$$s||r.$$s;return""+((e=c["~"])===a?a:e["$[]"](1))+((e=c["~"])===a?a:e["$[]"](2)).$capitalize()}).$$s=$,r.$$arity=0,r))).$gsub("/".$freeze(),"::".$freeze())},f.$$arity=-2),e.def(q,"$underscore",h=function(e){return s(/[A-Z-]|::/["$match?"](e))?e.$to_s().$gsub("::".$freeze(),"/".$freeze()).$gsub(/([A-Z\d]+)([A-Z][a-z])/,"\\1_\\2".$freeze()).$gsub(/([a-z\d])([A-Z])/,"\\1_\\2".$freeze()).$tr("-".$freeze(),"_".$freeze()).$downcase():e},h.$$arity=1),e.def(q,"$humanize",m=function(t,n){var r,$,i,c,_,p=this,d=a;if(null==n)n=u([],{});else if(!n.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(r=n.$$smap.capitalize)&&(r=!0),null==($=n.$$smap.keep_id_suffix)&&($=!1),d=t.$to_s().$dup(),function(){var t=e.new_brk();try{l(p.$inflections().$humans(),"each",[],((i=function(n){null==i.$$s||i.$$s;var r,$,l=a,c=a,u=a,_=a,p=a;if(null==n&&(n=a),$=n,r=e.to_ary($),l=null==r[0]?a:r[0],c=null==r[1]?a:r[1],!s(s(u=s(_=l["$is_a?"](o(N,"Regexp")))?d["$=~"](l):_)?u:s(p=l["$is_a?"](o(N,"String")))?d["$=="](l):p))return a;d=d.$sub(l,c),e.brk(a,t)}).$$s=p,i.$$brk=t,i.$$arity=1,i.$$has_top_level_mlhs_arg=!0,i))}catch(n){if(n===t)return n.$v;throw n}}(),d=d.$sub(/^_+/,"".$freeze()),s($)||(d=d.$sub(/_id$/,"".$freeze())),d=d.$tr("_".$freeze()," ".$freeze()),d=l(d,"gsub",[/([a-z\d]*)/i],((c=function(e){null==c.$$s||c.$$s;return null==e&&(e=a),""+e.$downcase()}).$$s=p,c.$$arity=1,c)),s(r)&&(d=l(d,"sub",[/^\w/],((_=function(e){null==_.$$s||_.$$s;return null==e&&(e=a),e.$upcase()}).$$s=p,_.$$arity=1,_))),d},m.$$arity=-2),e.def(q,"$upcase_first",y=function(e){return s(t(e.$length(),0))?n(e["$[]"](0).$upcase(),e["$[]"](_(1,-1,!1))):""},y.$$arity=1),e.def(q,"$titleize",v=function(t,n){var r,$,o=this;if(null==n)n=u([],{});else if(!n.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(r=n.$$smap.keep_id_suffix)&&(r=!1),l(o.$humanize(o.$underscore(t),u(["keep_id_suffix"],{keep_id_suffix:r})),"gsub",[/([a-zA-Z'\u2019`])[a-z]*/],(($=function(e){null==$.$$s||$.$$s;return null==e&&(e=a),e.$capitalize()}).$$s=o,$.$$arity=1,$))},v.$$arity=-2),e.def(q,"$tableize",g=function(e){var t=this;return t.$pluralize(t.$underscore(e))},g.$$arity=1),e.def(q,"$classify",b=function(e){var t=this;return t.$camelize(t.$singularize(e.$to_s().$sub(/.*\./,"".$freeze())))},b.$$arity=1),e.def(q,"$dasherize",k=function(e){return e.$tr("_".$freeze(),"-".$freeze())},k.$$arity=1),e.def(q,"$demodulize",w=function(t){var r=a;return t=t.$to_s(),s(r=t.$rindex("::"))?t["$[]"](e.Range.$new(n(r,2),-1,!1)):t},w.$$arity=1),e.def(q,"$deconstantize",x=function(e){var t=a;return e.$to_s()["$[]"](0,s(t=e.$rindex("::"))?t:0)},x.$$arity=1),e.def(q,"$foreign_key",O=function(e,t){var r=this;return null==t&&(t=!0),n(r.$underscore(r.$demodulize(e)),s(t)?"_id":"id")},O.$$arity=-2),e.def(q,"$constantize",H=function(n){var r,$=this,i=a,c=a;return i=n.$split("::"),s(i["$empty?"]())&&$.$raise(o(N,"NameError"),"wrong constant name "),s(s(c=t(i.$size(),1))?i.$first()["$empty?"]():c)&&i.$shift(),function(){var t=e.new_brk();try{return l(i,"inject",[o(N,"Object")],((r=function(t,n){var $,i=null==r.$$s?this:r.$$s,c=a;return null==t&&(t=a),null==n&&(n=a),t["$=="](o(N,"Object"))?t.$const_get(n):(c=t.$const_get(n),s(t["$const_defined?"](n,!1))?c:s(o(N,"Object")["$const_defined?"](n))?(t=function(){var r=e.new_brk();try{return l(t.$ancestors(),"inject",[t],(($=function(t,i){null==$.$$s||$.$$s;return null==t&&(t=a),null==i&&(i=a),i["$=="](o(N,"Object"))&&e.brk(t,r),s(i["$const_defined?"](n,!1))&&e.brk(i,r),t}).$$s=i,$.$$brk=r,$.$$arity=2,$))}catch(c){if(c===r)return c.$v;throw c}}()).$const_get(n,!1):c)}).$$s=$,r.$$brk=t,r.$$arity=2,r))}catch(n){if(n===t)return n.$v;throw n}}()},H.$$arity=1),e.def(q,"$safe_constantize",I=function(t){var n=this,r=a,$=a,i=a;try{return n.$constantize(t)}catch(l){if(e.rescue(l,[o(N,"NameError")])){r=l;try{return s(s($=r.$name())?(s(i=t.$to_s().$split("::")["$include?"](r.$name().$to_s()))?i:r.$name().$to_s()["$=="](t.$to_s()))["$!"]():$)?n.$raise():a}finally{e.pop_exception()}}else{if(!e.rescue(l,[o(N,"ArgumentError")]))throw l;r=l;try{return s(e.regexp(["not missing constant ",n.$const_regexp(t),"!$"])["$match?"](r.$message()))?a:n.$raise()}finally{e.pop_exception()}}}},I.$$arity=1),e.def(q,"$ordinal",C=function(e){var t=a,n=a;return t=e.$to_i().$abs(),s(_(11,13,!1)["$include?"](t["$%"](100)))?"th":(n=t["$%"](10),1["$==="](n)?"st":2["$==="](n)?"nd":3["$==="](n)?"rd":"th")},C.$$arity=1),e.def(q,"$ordinalize",R=function(e){return""+e+this.$ordinal(e)},R.$$arity=1),q.$private(),e.def(q,"$const_regexp",S=function(e){var t,n=this,r=a,$=a;return r=e.$split("::".$freeze()),s(r["$blank?"]())?o(N,"Regexp").$escape(e):($=r.$pop(),l(r.$reverse(),"inject",[$],((t=function(e,n){null==t.$$s||t.$$s;return null==e&&(e=a),null==n&&(n=a),s(n["$empty?"]())?e:n+"(::"+e+")?"}).$$s=n,t.$$arity=2,t)))},S.$$arity=1),e.def(q,"$apply_inflections",z=function(t,n,r){var $,i=this,c=a,u=a;return null==r&&(r="en"),c=t.$to_s().$dup(),s(s(u=t["$empty?"]())?u:i.$inflections(r).$uncountables()["$uncountable?"](c))?c:(function(){var t=e.new_brk();try{l(n,"each",[],(($=function(n){null==$.$$s||$.$$s;var r,i,l=a,u=a,_=a,p=a,d=a;if(null==n&&(n=a),i=n,r=e.to_ary(i),l=null==r[0]?a:r[0],u=null==r[1]?a:r[1],!s(s(_=s(p=l["$is_a?"](o(N,"Regexp")))?c["$=~"](l):p)?_:s(d=l["$is_a?"](o(N,"String")))?c["$=="](l):d))return a;c=c.$sub(l,u),e.brk(a,t)}).$$s=i,$.$$brk=t,$.$$arity=1,$.$$has_top_level_mlhs_arg=!0,$))}catch(r){if(r===t)return r.$v;throw r}}(),c)},z.$$arity=-3),a&&"apply_inflections"}(p[0],p)}($[0],$)},Opal.modules["active_support/inflector"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/inflector/inflections"),t.$require("active_support/inflector/methods"),t.$require("active_support/inflections"),t.$require("active_support/core_ext/string/inflections")},Opal.modules["active_support/core_ext/string/inflections"]=function(e){var t=e.top,n=[],r=e.nil,$=e.$$$,a=e.$$,o=e.klass,i=e.truthy,s=e.hash2;return e.add_stubs(["$require","$is_a?","$==","$dup","$pluralize","$singularize","$constantize","$safe_constantize","$===","$camelize","$raise","$alias_method","$titleize","$underscore","$dasherize","$demodulize","$deconstantize","$tableize","$classify","$humanize","$upcase_first","$foreign_key"]),t.$require("active_support/inflector"),function(t,$super,n){var l,c,u,_,p,d,f,h,m,y,v,g,b,k,w,x=o(t,null,"String"),O=[x].concat(n);return e.def(x,"$pluralize",l=function(e,t){var n=this;return null==e&&(e=r),null==t&&(t="en"),i(e["$is_a?"](a(O,"Symbol")))&&(t=e),e["$=="](1)?n.$dup():$(a(O,"ActiveSupport"),"Inflector").$pluralize(n,t)},l.$$arity=-1),e.def(x,"$singularize",c=function(e){var t=this;return null==e&&(e="en"),$(a(O,"ActiveSupport"),"Inflector").$singularize(t,e)},c.$$arity=-1),e.def(x,"$constantize",u=function(){var e=this;return $(a(O,"ActiveSupport"),"Inflector").$constantize(e)},u.$$arity=0),e.def(x,"$safe_constantize",_=function(){var e=this;return $(a(O,"ActiveSupport"),"Inflector").$safe_constantize(e)},_.$$arity=0),e.def(x,"$camelize",p=function(e){var t=this,n=r;return null==e&&(e="upper"),n=e,"upper"["$==="](n)?$(a(O,"ActiveSupport"),"Inflector").$camelize(t,!0):"lower"["$==="](n)?$(a(O,"ActiveSupport"),"Inflector").$camelize(t,!1):t.$raise(a(O,"ArgumentError"),"Invalid option, use either :upper or :lower.")},p.$$arity=-1),x.$alias_method("camelcase","camelize"),e.def(x,"$titleize",d=function(t){var n,r=this;if(null==t)t=s([],{});else if(!t.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(n=t.$$smap.keep_id_suffix)&&(n=!1),$(a(O,"ActiveSupport"),"Inflector").$titleize(r,s(["keep_id_suffix"],{keep_id_suffix:n}))},d.$$arity=-1),x.$alias_method("titlecase","titleize"),e.def(x,"$underscore",f=function(){var e=this;return $(a(O,"ActiveSupport"),"Inflector").$underscore(e)},f.$$arity=0),e.def(x,"$dasherize",h=function(){var e=this;return $(a(O,"ActiveSupport"),"Inflector").$dasherize(e)},h.$$arity=0),e.def(x,"$demodulize",m=function(){var e=this;return $(a(O,"ActiveSupport"),"Inflector").$demodulize(e)},m.$$arity=0),e.def(x,"$deconstantize",y=function(){var e=this;return $(a(O,"ActiveSupport"),"Inflector").$deconstantize(e)},y.$$arity=0),e.def(x,"$tableize",v=function(){var e=this;return $(a(O,"ActiveSupport"),"Inflector").$tableize(e)},v.$$arity=0),e.def(x,"$classify",g=function(){var e=this;return $(a(O,"ActiveSupport"),"Inflector").$classify(e)},g.$$arity=0),e.def(x,"$humanize",b=function(t){var n,r,o=this;if(null==t)t=s([],{});else if(!t.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(n=t.$$smap.capitalize)&&(n=!0),null==(r=t.$$smap.keep_id_suffix)&&(r=!1),$(a(O,"ActiveSupport"),"Inflector").$humanize(o,s(["capitalize","keep_id_suffix"],{capitalize:n,keep_id_suffix:r}))},b.$$arity=-1),e.def(x,"$upcase_first",k=function(){var e=this;return $(a(O,"ActiveSupport"),"Inflector").$upcase_first(e)},k.$$arity=0),e.def(x,"$foreign_key",w=function(e){var t=this;return null==e&&(e=!0),$(a(O,"ActiveSupport"),"Inflector").$foreign_key(t,e)},w.$$arity=-1),r&&"foreign_key"}(n[0],0,n)},Opal.modules["active_support/core_ext/string"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.$$$,e.$$,e.klass);return e.add_stubs(["$require","$gsub","$strip","$downcase"]),t.$require("active_support/core_ext/string/filters"),t.$require("active_support/core_ext/string/inflections"),function(t,$super,n){var a,o=$(t,null,"String");[o].concat(n);return e.def(o,"$parameterize",a=function(){return this.$downcase().$strip().$gsub(/\W+/,"-")},a.$$arity=0),r&&"parameterize"}(n[0],0,n)},Opal.modules["hyperstack/internal/component/props_wrapper"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],a=e.nil,o=(e.$$$,e.$$),i=e.module,s=e.klass,l=e.truthy,c=e.range,u=e.send;return e.add_stubs(["$require","$attr_reader","$naming_convention","$===","$fix_suffix","$camelize","$=~","$+","$[]","$respond_to?","$superclass","$param_accessor_style","$dup","$param_definitions","$new","$!=","$instance_var_name_for","$lambda","$instance_variable_set","$fetch_from_cache","$==","$[]=","$-","$include?","$define_method","$to_sym","$props","$call","$to_proc","$class","$each_value","$instance_exec","$initialize","$private","$cache","$equal?","$tap","$convert_param","$_react_param_conversion","$is_a?","$collect","$component","$instance_variable_get"]),r.$require("active_support/core_ext/string"),function(r,$){var _=[i(r,"Hyperstack")].concat($);return function(r,$){var _=[i(r,"Internal")].concat($);return function(r,$){var _=[i(r,"Component")].concat($);return function(r,$super,$){var i,_,p,d,f,h,m,y,v,g=s(r,null,"PropsWrapper"),b=[g].concat($);return g.$$prototype.component=g.$$prototype.cache=a,g.$attr_reader("component"),function(r,$){var i,s,_,p,d,f,h=[r].concat($);e.def(r,"$instance_var_name_for",i=function(e){var t=this,n=a;return n=o(h,"Hyperstack").$naming_convention(),"camelize_params"["$==="](n)?t.$fix_suffix(e.$camelize()):"prefix_params"["$==="](n)?"_"+e:e},i.$$arity=1), +e.def(r,"$fix_suffix",s=function(e){return l(e)?l(e["$=~"](/\?$/))?t(e["$[]"](c(0,-2,!1)),"_q"):l(e["$=~"](/\!$/))?t(e["$[]"](c(0,-2,!1)),"_b"):e:a},s.$$arity=1),e.def(r,"$param_accessor_style",_=function(e){var t=this,n=a;return null==t.param_accessor_style&&(t.param_accessor_style=a),null==e&&(e=a),l(e)&&(t.param_accessor_style=e),t.param_accessor_style=l(n=t.param_accessor_style)?n:l(t.$superclass()["$respond_to?"]("param_accessor_style"))?t.$superclass().$param_accessor_style():"hyperstack"},_.$$arity=-1),e.def(r,"$param_definitions",p=function(){var e=this,t=a;return null==e.param_definitions&&(e.param_definitions=a),e.param_definitions=l(t=e.param_definitions)?t:l(e.$superclass()["$respond_to?"]("param_definitions"))?e.$superclass().$param_definitions().$dup():o(h,"Hash").$new()},p.$$arity=0),e.def(r,"$define_param",d=function(t,r,$){var i,s,c,_=d.$$p,p=this,f=a,m=a,y=a,v=a,g=a,b=a;return _&&(d.$$p=null),null==$&&($=a),l(l(f=p.$param_accessor_style()["$!="]("legacy"))?f:$)&&(m=l(y=$)?y:t,v=l(g=p.$fix_suffix($))?g:p.$instance_var_name_for(t),b=[t,u(p,"lambda",[],(i=function(e){var n=null==i.$$s?this:i.$$s,$=a;return null==n.component&&(n.component=a),null==e&&(e=a),n.component.$instance_variable_set("@"+v,$=n.$fetch_from_cache(t,r,e)),n.$param_accessor_style()["$=="]("accessors")?n.component["$"+m]=function(){return $}:a},i.$$s=p,i.$$arity=1,i))],u(p.$param_definitions(),"[]=",e.to_a(b)),b[n(b.length,1)],l(["hyperstack","accessors"]["$include?"](p.$param_accessor_style())))?a:r["$=="](o(h,"Proc"))?u(p,"define_method",[t.$to_sym()],((s=function(){var n,r=null==s.$$s?this:s.$$s,$=s.$$p,o=$||a;return $&&(s.$$p=null),n=e.slice.call(arguments,0,arguments.length),l(r.$props()["$[]"](t))?u(r.$props()["$[]"](t),"call",e.to_a(n),o.$to_proc()):a}).$$s=p,s.$$arity=-1,s)):u(p,"define_method",[t.$to_sym()],((c=function(){var e=null==c.$$s?this:c.$$s;return e.$fetch_from_cache(t,r,e.$props())}).$$s=p,c.$$arity=0,c))},d.$$arity=-3),e.def(r,"$define_all_others",f=function(t){var r,$,o=f.$$p,i=o||a,s=this,c=a,_=a;return o&&(f.$$p=null),c=s.$instance_var_name_for(t),_=[t,u(s,"lambda",[],(r=function(n){var $=null==r.$$s?this:r.$$s,o=a;return null==$.component&&($.component=a),null==n&&(n=a),$.component.$instance_variable_set("@"+c,o=e.yield1(i,n)),$.$param_accessor_style()["$=="]("accessors")?$.component["$"+t]=function(){return o}:a},r.$$s=s,r.$$arity=1,r))],u(s.$param_definitions(),"[]=",e.to_a(_)),_[n(_.length,1)],u(s,"define_method",[t.$to_sym()],(($=function(){var t=null==$.$$s?this:$.$$s,n=a;return null==t._all_others_cache&&(t._all_others_cache=a),t._all_others_cache=l(n=t._all_others_cache)?n:e.yield1(i,t.$props())}).$$s=s,$.$$arity=0,$))},f.$$arity=1)}(e.get_singleton_class(g),b),e.def(g,"$param_accessor_style",i=function(){return this.$class().$param_accessor_style()},i.$$arity=0),e.def(g,"$initialize",_=function(e,t){var n,r=this;return null==t&&(t=a),r.component=e,u(r.$class().$param_definitions(),"each_value",[],((n=function(e){var r=null==n.$$s?this:n.$$s,$=a;return null==e&&(e=a),u(r,"instance_exec",[l($=t)?$:r.$props()],e.$to_proc())}).$$s=r,n.$$arity=1,n))},_.$$arity=-2),e.def(g,"$reload",p=function(e){var t=this;return t._all_others_cache=a,t.$initialize(t.component,e)},p.$$arity=1),e.def(g,"$[]",d=function(e){return this.$props()["$[]"](e)},d.$$arity=1),g.$private(),e.def(g,"$fetch_from_cache",f=function(t,r,$){var o,i,s,c=this,_=a,p=a;return i=c.$cache()["$[]"](t),_=null==(o=e.to_ary(i))[0]?a:o[0],p=null==o[1]?a:o[1],l(_["$equal?"]($["$[]"](t)))?p:u(c.$convert_param(t,r,$),"tap",[],((s=function(r){var o=null==s.$$s?this:s.$$s,i=a;return null==r&&(r=a),i=[t,[$["$[]"](t),r]],u(o.$cache(),"[]=",e.to_a(i)),i[n(i.length,1)]}).$$s=c,s.$$arity=1,s))},f.$$arity=3),e.def(g,"$convert_param",h=function(e,t,n){var r,$=this,i=a;return l(t["$respond_to?"]("_react_param_conversion"))?t.$_react_param_conversion(n["$[]"](e),a):l(l(i=t["$is_a?"](o(b,"Array")))?t["$[]"](0)["$respond_to?"]("_react_param_conversion"):i)?u(n["$[]"](e),"collect",[],((r=function(e){null==r.$$s||r.$$s;return null==e&&(e=a),t["$[]"](0).$_react_param_conversion(e,a)}).$$s=$,r.$$arity=1,r)):n["$[]"](e)},h.$$arity=3),e.def(g,"$cache",m=function(){var t,r=this,$=a;return r.cache=l($=r.cache)?$:u(o(b,"Hash"),"new",[],((t=function(r,$){null==t.$$s||t.$$s;var o=a;return null==r&&(r=a),null==$&&($=a),o=[$,[]],u(r,"[]=",e.to_a(o)),o[n(o.length,1)]}).$$s=r,t.$$arity=2,t))},m.$$arity=0),e.def(g,"$props",y=function(){return this.$component().$props()},y.$$arity=0),e.def(g,"$value_for",v=function(e){var t=this;return l(t["$[]"](e))?t["$[]"](e).$instance_variable_get("@value"):a},v.$$arity=1),a&&"value_for"}(_[0],0,_)}(_[0],_)}(_[0],_)}($[0],$)},Opal.modules["hyperstack/component"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}e.top;var r=[],$=e.nil,a=e.$$$,o=e.$$,i=e.module,s=e.send,l=e.truthy,c=e.send2,u=e.find_super,_=e.klass;return e.add_stubs(["$+","$each","$define_method","$upcase","$render","$to_proc","$const_set","$new","$include","$import_native_component","$downcase","$=~","$include?","$create_element","$find_component","$find_name_and_parent","$extend","$private","$name","$split","$>","$length","$last","$[]","$inject","$const_get","$lookup_const","$!","$method_defined?","$raise","$_reactrb_import_component_class","$==","$reverse","$to_s","$class","$detect","$const_defined?","$respond_to?"]),function(r,_){var p=[i(r,"Hyperstack")].concat(_);(function(r,_){var p=[i(r,"Internal")].concat(_);(function(r,_){var p=[i(r,"Component")].concat(_);(function(r,_){var p,d,f,h,m,y,v=i(r,"Tags"),g=[v].concat(_);e.const_set(g[0],"HTML_TAGS",t(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],["circle","clipPath","defs","ellipse","g","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"])),s(o(g,"HTML_TAGS"),"each",[],((p=function(t){var n,r=null==p.$$s?this:p.$$s;return null==t&&(t=$),s(r,"define_method",[t.$upcase()],((n=function(){null==n.$$s||n.$$s;var r,a=n.$$p,i=a||$;return a&&(n.$$p=null),r=e.slice.call(arguments,0,arguments.length),s(o(g,"RenderingContext"),"render",[t].concat(e.to_a(r)),i.$to_proc())}).$$s=r,n.$$arity=-1,n)),r.$const_set(t.$upcase(),t)}).$$s=v,p.$$arity=1,p)),v.$const_set("FRAGMENT",s(o(g,"Class"),"new",[],((d=function(){var e,t=null==d.$$s?this:d.$$s;return t.$include(a(o(g,"Hyperstack"),"Component")),s(t,"render",[],((e=function(){null==e.$$s||e.$$s;return $}).$$s=t,e.$$arity=0,e)),a(a(a(o(g,"Hyperstack"),"Internal"),"Component"),"ReactWrapper").$import_native_component(t,React.Fragment)}).$$s=v,d.$$arity=0,d))),e.defs(v,"$html_tag_class_for",f=function(e){var t=$,n=$;return t=e.$downcase(),l(l(n=e["$=~"](/^[A-Z]+$/))?o(g,"HTML_TAGS")["$include?"](t):n)?o(g,"Object").$const_set(e,o(g,"ReactWrapper").$create_element(t)):$},f.$$arity=1),e.def(v,"$method_missing",h=function(t){var n,r=h.$$p,a=r||$,i=this,_=$;return r&&(h.$$p=null),r&&(h.$$p=null),n=e.slice.call(arguments,1,arguments.length),_=i.$find_component(t),l(_)?s(o(g,"RenderingContext"),"render",[_].concat(e.to_a(n)),a.$to_proc()):c(i,u(i,"method_missing",h,!1,!0),"method_missing",[t].concat(e.to_a(n)),r)},h.$$arity=-2),function(r,a){var i,c,u=[r].concat(a);e.def(r,"$included",i=function(t){var n,r,a,l=i.$$p,c=this,_=$,p=$,d=$;return l&&(i.$$p=null),r=c.$find_name_and_parent(t),n=e.to_ary(r),_=null==n[0]?$:n[0],p=null==n[1]?$:n[1],d=s(o(u,"Module"),"new",[],((a=function(){var n,r=null==a.$$s?this:a.$$s;return s(r,"define_method",[_],((n=function(){null==n.$$s||n.$$s;var r,a=n.$$p,i=a||$;return a&&(n.$$p=null),r=e.slice.call(arguments,0,arguments.length),s(o(u,"RenderingContext"),"render",[t].concat(e.to_a(r)),i.$to_proc())}).$$s=r,n.$$arity=-1,n))}).$$s=c,a.$$arity=0,a)),p.$extend(d)},i.$$arity=1),r.$private(),e.def(r,"$find_name_and_parent",c=function(e){var r,a=this,i=$,c=$,_=$;return i=l(c=e.$name())?e.$name().$split("::"):c,l(l(_=i)?n(i.$length(),1):_)?[i.$last(),s(i,"inject",[[o(u,"Module")]],(r=function(e,n){null==r.$$s||r.$$s;return null==e&&(e=$),null==n&&(n=$),t(e,[e.$last().$const_get(n)])},r.$$s=a,r.$$arity=2,r))["$[]"](-2)]:$},c.$$arity=1)}(e.get_singleton_class(v),g),v.$private(),e.def(v,"$find_component",m=function(e){var t=this,n=$,r=$,a=$;return n=t.$lookup_const(e),l(l(r=n)?n["$method_defined?"]("render")["$!"]():r)&&t.$raise(e+" does not appear to be a react component."),l(a=n)?a:o(g,"Object").$_reactrb_import_component_class(e)},m.$$arity=1),e.def(v,"$lookup_const",y=function(e){var n,r,i=this,c=$,u=$;return l(e["$=~"](/^[A-Z]/))?e["$=="]("FRAGMENT")?a(a(a(a(o(g,"Hyperstack"),"Internal"),"Component"),"Tags"),"FRAGMENT"):(c=s(i.$class().$name().$to_s().$split("::"),"inject",[[o(g,"Object")]],(n=function(e,r){null==n.$$s||n.$$s;return null==e&&(e=$),null==r&&(r=$),t(e,[e.$last().$const_get(r)])},n.$$s=i,n.$$arity=2,n)).$reverse(),u=s(c,"detect",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=$),t["$const_defined?"](e,!1)}).$$s=i,r.$$arity=1,r)),l(u)?u.$const_get(e,!1):$):$},y.$$arity=1)})(p[0],p)})(p[0],p)})(p[0],p)}(r[0],r),l(o(r,"Object")["$respond_to?"]("_reactrb_import_component_class"))?$:function(t,$super,n){var r,a=_(t,null,"Object");[a].concat(n);return e.defs(a,"$_reactrb_import_component_class",r=function(){return $},r.$$arity=1),$&&"_reactrb_import_component_class"}(r[0],0,r)},Opal.modules["hyperstack/component/event"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.klass;return e.add_stubs(["$include","$alias_native"]),function(t,i){var s=[a(t,"Hyperstack")].concat(i);return function(t,i){var s=[a(t,"Component")].concat(i);return function(t,$super,a){var i,s=o(t,null,"Event"),l=[s].concat(a);return s.$include(r($(l,"Native"),"Wrapper")),s.$alias_native("bubbles","bubbles"),s.$alias_native("cancelable","cancelable"),s.$alias_native("current_target","currentTarget"),s.$alias_native("default_prevented","defaultPrevented"),s.$alias_native("event_phase","eventPhase"),s.$alias_native("is_trusted?","isTrusted"),s.$alias_native("native_event","nativeEvent"),s.$alias_native("target","target"),s.$alias_native("timestamp","timeStamp"),s.$alias_native("event_type","type"),s.$alias_native("prevent_default","preventDefault"),s.$alias_native("stop_propagation","stopPropagation"),s.$alias_native("clipboard_data","clipboardData"),s.$alias_native("alt_key","altKey"),s.$alias_native("char_code","charCode"),s.$alias_native("ctrl_key","ctrlKey"),s.$alias_native("get_modifier_state","getModifierState"),s.$alias_native("key","key"),s.$alias_native("key_code","keyCode"),s.$alias_native("locale","locale"),s.$alias_native("location","location"),s.$alias_native("meta_key","metaKey"),s.$alias_native("repeat","repeat"),s.$alias_native("shift_key","shiftKey"),s.$alias_native("which","which"),s.$alias_native("related_target","relatedTarget"),s.$alias_native("button","button"),s.$alias_native("buttons","buttons"),s.$alias_native("client_x","clientX"),s.$alias_native("client_y","clientY"),s.$alias_native("get_modifier_state","getModifierState"),s.$alias_native("page_x","pageX"),s.$alias_native("page_y","pageY"),s.$alias_native("screen_x","screen_x"),s.$alias_native("screen_y","screen_y"),s.$alias_native("changed_touches","changedTouches"),s.$alias_native("target_touches","targetTouches"),s.$alias_native("touches","touches"),s.$alias_native("detail","detail"),s.$alias_native("view","view"),s.$alias_native("delta_mode","deltaMode"),s.$alias_native("delta_x","deltaX"),s.$alias_native("delta_y","deltaY"),s.$alias_native("delta_z","deltaZ"),e.const_set(l[0],"BUILT_IN_EVENTS",["onCopy","onCut","onPaste","onKeyDown","onKeyPress","onKeyUp","onFocus","onBlur","onChange","onInput","onSubmit","onClick","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onScroll","onWheel"]),e.def(s,"$initialize",i=function(e){return this.native=e},i.$$arity=1),n&&"initialize"}(s[0],0,s)}(s[0],s)}(t[0],t)},Opal.modules["hyperstack/ext/component/object"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.klass,o=e.alias,i=e.truthy;return e.add_stubs(["$_reactrb_tag_original_const_missing","$html_tag_class_for","$raise","$object_id"]),function(t,$super,s){var l,c=a(t,null,"Object"),u=[c].concat(s);return function(t,$super,s){var l=a(t,null,"Object"),c=[l].concat(s);(function(t,a){var s,l=[t].concat(a);o(t,"_reactrb_tag_original_const_missing","const_missing"),e.def(t,"$const_missing",s=function(t){var a=this,o=n,s=n;try{return a.$_reactrb_tag_original_const_missing(t)}catch(c){if(!e.rescue(c,[$(l,"StandardError")]))throw c;o=c;try{return i(s=r(r(r($(l,"Hyperstack"),"Internal"),"Component"),"Tags").$html_tag_class_for(t))?s:a.$raise(o)}finally{e.pop_exception()}}},s.$$arity=1)})(e.get_singleton_class(l),c)}(u[0],0,u),e.def(c,"$to_key",l=function(){return this.$object_id()},l.$$arity=0),n&&"to_key"}(t[0],0,t)},Opal.modules["hyperstack/ext/component/kernel"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.send,o=e.truthy,i=e.alias;return e.add_stubs(["$tap","$new","$after","$resolve","$call"]),function(t,s){var l,c=$(t,"Kernel"),u=[c].concat(s);return e.def(c,"$pause",l=function(t){var $,i=l.$$p,s=i||n,c=this;return i&&(l.$$p=null),i&&(l.$$p=null),a(r(u,"Promise").$new(),"tap",[],(($=function(r){var i,l=null==$.$$s?this:$.$$s;return null==r&&(r=n),a(l,"after",[t],((i=function(){null==i.$$s||i.$$s;var t=n;return a(r,"resolve",e.to_a(o(t=s)?[s.$call()]:t))}).$$s=l,i.$$arity=0,i))}).$$s=c,$.$$arity=1,$))},l.$$arity=1),i(c,"busy_sleep","sleep"),i(c,"sleep","pause")}(t[0],t)},Opal.modules["hyperstack/ext/component/number"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass);return function(t,$super,$){var a,o=r(t,null,"Number");[o].concat($);return e.def(o,"$to_key",a=function(){return this},a.$$arity=0),n&&"to_key"}(t[0],0,t)},Opal.modules["hyperstack/ext/component/boolean"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass);return function(t,$super,$){var a,o=r(t,null,"Boolean");[o].concat($);return e.def(o,"$to_key",a=function(){return this},a.$$arity=0),n&&"to_key"}(t[0],0,t)},Opal.modules["hyperstack/ext/component/array"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass),$=e.send,a=e.truthy;return e.add_stubs(["$to_enum","$size","$reject!","$<<"]),function(t,$super,o){var i,s=r(t,null,"Array");[s].concat(o);return e.def(s,"$extract!",i=function(){var t,r,o=i.$$p,s=o||n,l=this,c=n;return o&&(i.$$p=null),s===n?$(l,"to_enum",["extract!"],((t=function(){return(null==t.$$s?this:t.$$s).$size()}).$$s=l,t.$$arity=0,t)):(c=[],$(l,"reject!",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=n),a(e.yield1(s,t))?c["$<<"](t):n}).$$s=l,r.$$arity=1,r)),c)},i.$$arity=0),n&&"extract!"}(t[0],0,t)},Opal.modules["hyperstack/ext/component/enumerable"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,o=e.hash2,i=e.send,s=e.truthy;return e.add_stubs(["$new","$private_constant","$each","$[]=","$-","$!=","$to_enum","$respond_to?","$size"]),function(n,l){var c,u=a(n,"Enumerable"),_=[u].concat(l);return e.const_set(_[0],"INDEX_WITH_DEFAULT",$(_,"Object").$new()),u.$private_constant("INDEX_WITH_DEFAULT"),e.def(u,"$index_with",c=function(n){var a,l,u,p=c.$$p,d=p||r,f=this,h=r;return p&&(c.$$p=null),null==n&&(n=$(_,"INDEX_WITH_DEFAULT")),d!==r?(h=o([],{}),i(f,"each",[],((a=function(n){null==a.$$s||a.$$s;var $=r;return null==n&&(n=r),$=[n,e.yield1(d,n)],i(h,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=f,a.$$arity=1,a)),h):s(n["$!="]($(_,"INDEX_WITH_DEFAULT")))?(h=o([],{}),i(f,"each",[],((l=function($){null==l.$$s||l.$$s;var a=r;return null==$&&($=r),a=[$,n],i(h,"[]=",e.to_a(a)),a[t(a.length,1)]}).$$s=f,l.$$arity=1,l)),h):i(f,"to_enum",["index_with"],((u=function(){var e=null==u.$$s?this:u.$$s;return s(e["$respond_to?"]("size"))?e.$size():r}).$$s=f,u.$$arity=0,u))},c.$$arity=-1),r&&"index_with"}(n[0],n)},Opal.modules["hyperstack/ext/component/time"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass);return e.add_stubs(["$to_json","$strftime"]),function(t,$super,$){var a,o=r(t,null,"Time");[o].concat($);return e.def(o,"$to_json",a=function(){return this.$strftime("%FT%T.%3N%z").$to_json()},a.$$arity=0),n&&"to_json"}(t[0],0,t)},Opal.modules["hyperstack/component/isomorphic_helpers"]=function(Opal){function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $rb_minus(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$truthy=Opal.truthy,$range=Opal.range,$send=Opal.send,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$class_variable_get=Opal.class_variable_get,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$extend","$!","$!=","$unique_id","$on_opal_server?","$log","$new","$is_a?","$==","$production?","$env","$+","$[]","$class","$on_opal_client?","$join","$collect","$prerender_footer_blocks","$call","$attr_reader","$[]=","$-","$run","$each","$before_first_mount_blocks","$send_to_opal","$eval","$load!","$tr","$<<","$first","$send_to_server","$to_json","$parse","$controller","$context","$register_before_first_mount_block","$to_proc","$register_prerender_footer_block","$send","$result"]),self.$require("hyperstack/internal/component"),function($base,$parent_nesting){var self=$module($base,"Hyperstack"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Component"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"IsomorphicHelpers"),$nesting=[self].concat($parent_nesting),$IsomorphicHelpers_included$1,$IsomorphicHelpers_load_context$2,$IsomorphicHelpers_context$3,$IsomorphicHelpers_log$4,$IsomorphicHelpers_on_opal_server$ques$5,$IsomorphicHelpers_on_opal_client$ques$6,$IsomorphicHelpers_log$7,$IsomorphicHelpers_on_opal_server$ques$8,$IsomorphicHelpers_on_opal_client$ques$9,$IsomorphicHelpers_prerender_footers$10;return Opal.defs(self,"$included",$IsomorphicHelpers_included$1=function(e){return e.$extend($$($nesting,"ClassMethods"))},$IsomorphicHelpers_included$1.$$arity=1),Opal.defs(self,"$load_context",$IsomorphicHelpers_load_context$2=function(e,t){var n=this,r=nil,$=nil,a=nil;return null==n.context&&(n.context=nil),null==e&&(e=nil),null==t&&(t=nil),$truthy($truthy(r=$truthy($=e["$!"]())?$:n.context["$!"]())?r:n.context.$unique_id()["$!="](e))&&(a=function(){if($truthy(n["$on_opal_server?"]())){try{console.history=[]}catch(e){if(!Opal.rescue(e,[$$($nesting,"StandardError")]))throw e;Opal.pop_exception()}return"************************ React Prerendering Context Initialized "+t+" ***********************"}return"************************ React Browser Context Initialized ****************************"}(),n.$log(a),n.context=$$($nesting,"Context").$new(e)),!0},$IsomorphicHelpers_load_context$2.$$arity=-1),Opal.defs(self,"$context",$IsomorphicHelpers_context$3=function(){var e=this;return null==e.context&&(e.context=nil),e.context},$IsomorphicHelpers_context$3.$$arity=0),Opal.defs(self,"$log",$IsomorphicHelpers_log$4=function(e,t){var n=this,r=nil,$=nil,a=nil;return null==t&&(t="info"),$truthy(e["$is_a?"]($$($nesting,"Array")))||(e=[e]),$truthy($truthy(r=$truthy($=t["$=="]("info"))?$:t["$=="]("warning"))?$$($nesting,"Hyperstack").$env()["$production?"]():r)?nil:t["$=="]("info")?(a=$truthy(n["$on_opal_server?"]())?"background: #00FFFF; color: red":"background: #222; color: #bada55",e=$rb_plus([$rb_plus("%c",e["$[]"](0)),a],e["$[]"]($range(1,-1,!1))),console.log.apply(console,e)):t["$=="]("warning")?console.warn.apply(console,e):console.error.apply(console,e)},$IsomorphicHelpers_log$4.$$arity=-2),Opal.defs(self,"$on_opal_server?",$IsomorphicHelpers_on_opal_server$ques$5=function(){return"undefined"==typeof Opal.global.document},$IsomorphicHelpers_on_opal_server$ques$5.$$arity=0),Opal.defs(self,"$on_opal_client?",$IsomorphicHelpers_on_opal_client$ques$6=function(){return this["$on_opal_server?"]()["$!"]() +},$IsomorphicHelpers_on_opal_client$ques$6.$$arity=0),Opal.def(self,"$log",$IsomorphicHelpers_log$7=function(){var e;return e=Opal.slice.call(arguments,0,arguments.length),$send($$($nesting,"IsomorphicHelpers"),"log",Opal.to_a(e))},$IsomorphicHelpers_log$7.$$arity=-1),Opal.def(self,"$on_opal_server?",$IsomorphicHelpers_on_opal_server$ques$8=function(){return this.$class()["$on_opal_server?"]()},$IsomorphicHelpers_on_opal_server$ques$8.$$arity=0),Opal.def(self,"$on_opal_client?",$IsomorphicHelpers_on_opal_client$ques$9=function(){return this.$class()["$on_opal_client?"]()},$IsomorphicHelpers_on_opal_client$ques$9.$$arity=0),Opal.defs(self,"$prerender_footers",$IsomorphicHelpers_prerender_footers$10=function(e){var t,n=this;return null==e&&(e=nil),$send($$($nesting,"Context").$prerender_footer_blocks(),"collect",[],(t=function(n){null==t.$$s||t.$$s;return null==n&&(n=nil),n.$call(e)},t.$$s=n,t.$$arity=1,t)).$join("\n")},$IsomorphicHelpers_prerender_footers$10.$$arity=-1),function(e,$super,t){var n,r,$,a,o,i,s,l,c,u=$klass(e,null,"Context"),_=[u].concat(t);u.$$prototype.unique_id=u.$$prototype.cname=u.$$prototype.ctx=nil,u.$attr_reader("controller"),u.$attr_reader("unique_id"),Opal.defs(u,"$define_isomorphic_method",n=function(e){var t=n.$$p,r=t||nil,$=nil,a=nil;return t&&(n.$$p=null),t&&(n.$$p=null),$class_variable_set(_[0],"@@ctx_methods",$truthy(null!=_[0].$$cvars["@@ctx_methods"]?"class variable":nil)&&$truthy($=$class_variable_get(_[0],"@@ctx_methods",!1))?$:$hash2([],{})),a=[e,r],$send($class_variable_get(_[0],"@@ctx_methods",!1),"[]=",Opal.to_a(a)),a[$rb_minus(a.length,1)]},n.$$arity=1),Opal.defs(u,"$before_first_mount_blocks",r=function(){var e=this,t=nil;return null==e.before_first_mount_blocks&&(e.before_first_mount_blocks=nil),e.before_first_mount_blocks=$truthy(t=e.before_first_mount_blocks)?t:[]},r.$$arity=0),Opal.defs(u,"$prerender_footer_blocks",$=function(){var e=this,t=nil;return null==e.prerender_footer_blocks&&(e.prerender_footer_blocks=nil),e.prerender_footer_blocks=$truthy(t=e.prerender_footer_blocks)?t:[]},$.$$arity=0),Opal.def(u,"$initialize",a=function(e,t,n,r){var $,a=this;return null==t&&(t=nil),null==n&&(n=nil),null==r&&(r=nil),a.unique_id=e,a.cname=r,$$$($$$($$(_,"Hyperstack"),"Application"),"Boot").$run($hash2(["context"],{context:a})),$send(a.$class().$before_first_mount_blocks(),"each",[],(($=function(e){var t=null==$.$$s?this:$.$$s;return null==e&&(e=nil),e.$call(t)}).$$s=a,$.$$arity=1,$))},a.$$arity=-2),Opal.def(u,"$load_opal_context",o=function(){var e=this;return e.$send_to_opal("load_context",e.unique_id,e.cname)},o.$$arity=0),Opal.def(u,"$eval",i=function(e){var t=this;return $truthy(t.ctx)?t.ctx.$eval(e):nil},i.$$arity=1),Opal.def(u,"$send_to_opal",s=function(e){var t,n,r=this,$=nil;return t=Opal.slice.call(arguments,1,arguments.length),$truthy(r.ctx)?($$$($$$($$$($$$($$(_,"Hyperstack"),"Internal"),"Component"),"Rails"),"ComponentLoader").$new(r.ctx)["$load!"](),$=$send(t,"collect",[],(n=function(e){null==n.$$s||n.$$s;return null==e&&(e=nil),'"'+(""+e).$tr('"',"'")+'"'},n.$$s=r,n.$$arity=1,n)).$join(", "),r.ctx.$eval("Opal.Hyperstack.$const_get('Component').$const_get('IsomorphicHelpers').$"+e+"("+$+")")):nil},s.$$arity=-2),Opal.defs(u,"$register_before_first_mount_block",l=function(){var e=l.$$p,t=e||nil,n=this;return e&&(l.$$p=null),e&&(l.$$p=null),n.$before_first_mount_blocks()["$<<"](t)},l.$$arity=0),Opal.defs(u,"$register_prerender_footer_block",c=function(){var e=c.$$p,t=e||nil,n=this;return e&&(c.$$p=null),e&&(c.$$p=null),n.$prerender_footer_blocks()["$<<"](t)},c.$$arity=0)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"IsomorphicProcCall"),$nesting=[self].concat($parent_nesting),$IsomorphicProcCall_result$23,$IsomorphicProcCall_initialize$24,$IsomorphicProcCall_when_on_client$25,$IsomorphicProcCall_send_to_server$26,$IsomorphicProcCall_when_on_server$27;self.$$prototype.result=self.$$prototype.name=nil,self.$attr_reader("context"),Opal.def(self,"$result",$IsomorphicProcCall_result$23=function(){var e=this;return $truthy(e.result)?e.result.$first():nil},$IsomorphicProcCall_result$23.$$arity=0),Opal.def(self,"$initialize",$IsomorphicProcCall_initialize$24=function(e,t,n){var r,$,a=this,o=nil;return r=Opal.slice.call(arguments,3,arguments.length),$=r,a.name=e,a.context=n,$send(t,"call",[a].concat(Opal.to_a($))),a.result=$truthy(o=a.result)?o:$send(a,"send_to_server",Opal.to_a($))},$IsomorphicProcCall_initialize$24.$$arity=-4),Opal.def(self,"$when_on_client",$IsomorphicProcCall_when_on_client$25=function(){var e=$IsomorphicProcCall_when_on_client$25.$$p,t=e||nil,n=this;return e&&($IsomorphicProcCall_when_on_client$25.$$p=null),e&&($IsomorphicProcCall_when_on_client$25.$$p=null),$truthy($$($nesting,"IsomorphicHelpers")["$on_opal_client?"]())?n.result=[t.$call()]:nil},$IsomorphicProcCall_when_on_client$25.$$arity=0),Opal.def(self,"$send_to_server",$IsomorphicProcCall_send_to_server$26=function $$send_to_server($a){var $post_args,args,self=this,method_string=nil;return $post_args=Opal.slice.call(arguments,0,arguments.length),args=$post_args,$truthy($$($nesting,"IsomorphicHelpers")["$on_opal_server?"]())?(method_string=$rb_plus($rb_plus($rb_plus($rb_plus("ServerSideIsomorphicMethod.",self.name),"("),args.$to_json()),")"),self.result=[$$($nesting,"JSON").$parse(eval(method_string))]):nil},$IsomorphicProcCall_send_to_server$26.$$arity=-1),Opal.def(self,"$when_on_server",$IsomorphicProcCall_when_on_server$27=function(){var e=$IsomorphicProcCall_when_on_server$27.$$p,t=e||nil,n=this,r=nil;return e&&($IsomorphicProcCall_when_on_server$27.$$p=null),e&&($IsomorphicProcCall_when_on_server$27.$$p=null),$truthy($truthy(r=$$($nesting,"IsomorphicHelpers")["$on_opal_client?"]())?r:$$($nesting,"IsomorphicHelpers")["$on_opal_server?"]())?nil:n.result=[t.$call().$to_json()]},$IsomorphicProcCall_when_on_server$27.$$arity=0)}($nesting[0],null,$nesting),function(e,t){var n,r,$,a,o,i,s,l=$module(e,"ClassMethods"),c=[l].concat(t);return Opal.def(l,"$on_opal_server?",n=function(){return $$(c,"IsomorphicHelpers")["$on_opal_server?"]()},n.$$arity=0),Opal.def(l,"$on_opal_client?",r=function(){return $$(c,"IsomorphicHelpers")["$on_opal_client?"]()},r.$$arity=0),Opal.def(l,"$log",$=function(){var e;return e=Opal.slice.call(arguments,0,arguments.length),$send($$(c,"IsomorphicHelpers"),"log",Opal.to_a(e))},$.$$arity=-1),Opal.def(l,"$controller",a=function(){return $$(c,"IsomorphicHelpers").$context().$controller()},a.$$arity=0),Opal.def(l,"$before_first_mount",o=function(){var e=o.$$p,t=e||nil;return e&&(o.$$p=null),e&&(o.$$p=null),$send($$$($$(c,"IsomorphicHelpers"),"Context"),"register_before_first_mount_block",[],t.$to_proc())},o.$$arity=0),Opal.def(l,"$prerender_footer",i=function(){var e=i.$$p,t=e||nil;return e&&(i.$$p=null),e&&(i.$$p=null),$send($$$($$(c,"IsomorphicHelpers"),"Context"),"register_prerender_footer_block",[],t.$to_proc())},i.$$arity=0),Opal.def(l,"$isomorphic_method",s=function(e){var t,n=s.$$p,r=n||nil,$=this;return n&&(s.$$p=null),n&&(s.$$p=null),$send($.$class(),"send",["define_method",e],((t=function(){var n,$=null==t.$$s?this:t.$$s;return n=Opal.slice.call(arguments,0,arguments.length),$send($$$($$(c,"IsomorphicHelpers"),"IsomorphicProcCall"),"new",[e,r,$].concat(Opal.to_a(n))).$result()}).$$s=$,t.$$arity=-1,t))},s.$$arity=1),nil&&"isomorphic_method"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["active_support/core_ext/object/try"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass),$=e.truthy,a=e.send;return e.add_stubs(["$empty?","$respond_to?","$first","$try!","$to_proc","$zero?","$arity","$instance_eval","$public_send"]),function(t,$super,o){var i,s,l=r(t,null,"Object");[l].concat(o);e.def(l,"$try",i=function(){var t,r,o=i.$$p,s=o||n,l=this,c=n;return o&&(i.$$p=null),o&&(i.$$p=null),t=e.slice.call(arguments,0,arguments.length),$($(c=(r=t)["$empty?"]())?c:l["$respond_to?"](r.$first()))?a(l,"try!",e.to_a(r),s.$to_proc()):n},i.$$arity=-1),e.def(l,"$try!",s=function(){var t,r,o=s.$$p,i=o||n,l=this,c=n;return o&&(s.$$p=null),o&&(s.$$p=null),t=e.slice.call(arguments,0,arguments.length),$($(c=(r=t)["$empty?"]())?i!==n:c)?$(i.$arity()["$zero?"]())?a(l,"instance_eval",[],i.$to_proc()):e.yield1(i,l):a(l,"public_send",e.to_a(r),i.$to_proc())},s.$$arity=-1)}(t[0],0,t),function(t,$super,$){var a,o,i=r(t,null,"NilClass");[i].concat($);return e.def(i,"$try",a=function(){return e.slice.call(arguments,0,arguments.length),n},a.$$arity=-1),e.def(i,"$try!",o=function(){return e.slice.call(arguments,0,arguments.length),n},o.$$arity=-1),n&&"try!"}(t[0],0,t)},Opal.modules["hyperstack/component/react_api"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var n=e.top,r=[],$=e.nil,a=e.$$$,o=e.$$,i=e.module,s=e.send,l=e.truthy;return e.add_stubs(["$require","$+","$create_element","$to_proc","$raise","$to_n","$kind_of?","$!","$build"]),n.$require("native"),n.$require("active_support/core_ext/object/try"),n.$require("hyperstack/internal/component/tags"),function(n,r){var c=[i(n,"Hyperstack")].concat(r);return function(n,r){var c=[i(n,"Component")].concat(r);return function(n,r){var c,u,_,p,d,f,h,m,y,v=i(n,"ReactAPI"),g=[v].concat(r);return e.const_set(g[0],"ATTRIBUTES",t(["accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","alt","async","autoComplete","autoPlay","cellPadding","cellSpacing","charSet","checked","classID","className","cols","colSpan","content","contentEditable","contextMenu","controls","coords","crossOrigin","data","dateTime","defer","dir","disabled","download","draggable","encType","form","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","height","hidden","href","hrefLang","htmlFor","httpEquiv","icon","id","label","lang","list","loop","manifest","marginHeight","marginWidth","max","maxLength","media","mediaGroup","method","min","multiple","muted","name","noValidate","open","pattern","placeholder","poster","preload","radioGroup","readOnly","rel","required","role","rows","rowSpan","sandbox","scope","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","src","srcDoc","srcSet","start","step","style","tabIndex","target","title","type","useMap","value","width","wmode","dangerouslySetInnerHTML"],["clipPath","cx","cy","d","dx","dy","fill","fillOpacity","fontFamily","fontSize","fx","fy","gradientTransform","gradientUnits","markerEnd","markerMid","markerStart","offset","opacity","patternContentUnits","patternUnits","points","preserveAspectRatio","r","rx","ry","spreadMethod","stopColor","stopOpacity","stroke","strokeDasharray","strokeLinecap","strokeOpacity","strokeWidth","textAnchor","transform","version","viewBox","x1","x2","x","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlSpace","y1","y2","y"])),e.const_set(g[0],"HASH_ATTRIBUTES",["data","aria"]),e.const_set(g[0],"HTML_TAGS",a(a(a(a(o(g,"Hyperstack"),"Internal"),"Component"),"Tags"),"HTML_TAGS")),e.defs(v,"$html_tag?",c=function(e){var t=$;t=o(g,"HTML_TAGS");for(var n=0;n= v15 you must import it with ReactDOM"),n=n.$$class?n[0]:n,a!==$?(i=function(){setTimeout(function(){e.yieldX(a,[])},0)},s=ReactDOM.render(t.$to_n(),n,i)):s=ReactDOM.render(t.$to_n(),n),l(null!==s)?l(s.__opalInstance!==undefined&&null!==s.__opalInstance)?s.__opalInstance:l(ReactDOM.findDOMNode!==undefined&&s.nodeType===undefined)?ReactDOM.findDOMNode(s):s:$},p.$$arity=2),e.defs(v,"$is_valid_element",d=function(e){var t=$;return console.error("Warning: `is_valid_element` is deprecated in favor of `is_valid_element?`."),l(t=e["$kind_of?"](a(a(o(g,"Hyperstack"),"Component"),"Element")))?React.isValidElement(e.$to_n()):t},d.$$arity=1),e.defs(v,"$is_valid_element?",f=function(e){var t=$;return l(t=e["$kind_of?"](a(a(o(g,"Hyperstack"),"Component"),"Element")))?React.isValidElement(e.$to_n()):t},f.$$arity=1),e.defs(v,"$render_to_string",h=function(e){var t,n=this;return console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_string` is deprecated in favor of `React::Server.render_to_string`."),l(("undefined"==typeof ReactDOMServer)["$!"]())?s(a(a(a(o(g,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"build",[],((t=function(){null==t.$$s||t.$$s;return ReactDOMServer.renderToString(e.$to_n())}).$$s=n,t.$$arity=0,t)):n.$raise("renderToString is not defined. In React >= v15 you must import it with ReactDOMServer")},h.$$arity=1),e.defs(v,"$render_to_static_markup",m=function(e){var t,n=this;return console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_static_markup` is deprecated in favor of `React::Server.render_to_static_markup`."),l(("undefined"==typeof ReactDOMServer)["$!"]())?s(a(a(a(o(g,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"build",[],((t=function(){null==t.$$s||t.$$s;return ReactDOMServer.renderToStaticMarkup(e.$to_n())}).$$s=n,t.$$arity=0,t)):n.$raise("renderToStaticMarkup is not defined. In React >= v15 you must import it with ReactDOMServer")},m.$$arity=1),e.defs(v,"$unmount_component_at_node",y=function(e){var t=this;return l(("undefined"==typeof ReactDOM)["$!"]())?ReactDOM.unmountComponentAtNode(e.$$class?e[0]:e):t.$raise("unmountComponentAtNode is not defined. In React >= v15 you must import it with ReactDOM")},y.$$arity=1),$&&"unmount_component_at_node"}(c[0],c)}(c[0],c)}(r[0],r)},Opal.modules["hyperstack/internal/component/top_level_rails_component"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,o=e.module,i=e.klass,s=e.truthy,l=e.send;return e.add_stubs(["$include","$export_component","$param","$backtrace","$top_level_render","$start_with?","$<<","$const_get","$each","$search_path","$class","$name","$!=","$method_defined?","$render","$raise","$join","$search_path=","$-","$!","$include?","$add_to_react_search_path"]),function(t,n){var c=[o(t,"Hyperstack")].concat(n);(function(t,n){var c=[o(t,"Internal")].concat(n);(function(t,n){var c=[o(t,"Component")].concat(n);(function(t,$super,n){var o,c,u,_,p=i(t,null,"TopLevelRailsComponent"),d=[p].concat(n);p.$$prototype.ComponentName=p.$$prototype.RenderParams=p.$$prototype.Controller=r,p.$include($(a(d,"Hyperstack"),"Component")),e.defs(p,"$search_path",o=function(){var e=this,t=r;return null==e.search_path&&(e.search_path=r),e.search_path=s(t=e.search_path)?t:[a(d,"Object")]},o.$$arity=0),p.$export_component(),p.$param("component_name"),p.$param("controller"),p.$param("render_params"),p.$backtrace("off"),e.defs(p,"$allow_deprecated_render_definition?",c=function(){return!0},c.$$arity=0),e.def(p,"$render",u=function(){return this.$top_level_render()},u.$$arity=0),e.def(p,"$top_level_render",_=function(){var t,n,$=this,o=r,i=r,c=r;return o=[],i=r,s($.ComponentName["$start_with?"]("::"))?(o["$<<"]($.ComponentName),i=function(){try{return a(d,"Object").$const_get($.ComponentName)}catch(t){if(!e.rescue(t,[a(d,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}()):(function(){var n=e.new_brk();try{l($.$class().$search_path(),"each",[],((t=function($){var l=null==t.$$s?this:t.$$s;if(null==l.Controller&&(l.Controller=r),null==l.ComponentName&&(l.ComponentName=r),null==$&&($=r),o["$<<"]($.$name()+"::"+l.Controller+"::"+l.ComponentName),i=function(){try{return $.$const_get(l.Controller,!1).$const_get(l.ComponentName,!1)}catch(t){if(!e.rescue(t,[a(d,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}(),!s(i["$!="](r)))return r;e.brk(r,n)}).$$s=$,t.$$brk=n,t.$$arity=1,t))}catch(c){if(c===n)return c.$v;throw c}}(),s(i)||function(){var t=e.new_brk();try{l($.$class().$search_path(),"each",[],((n=function($){var l=null==n.$$s?this:n.$$s;if(null==l.ComponentName&&(l.ComponentName=r),null==$&&($=r),o["$<<"]($.$name()+"::"+l.ComponentName),i=function(){try{return $.$const_get(l.ComponentName,!1)}catch(t){if(!e.rescue(t,[a(d,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}(),!s(i["$!="](r)))return r;e.brk(r,t)}).$$s=$,n.$$brk=t,n.$$arity=1,n))}catch(c){if(c===t)return c.$v;throw c}}()),s(s(c=i)?i["$method_defined?"]("render"):c)?a(d,"RenderingContext").$render(i,$.RenderParams):$.$raise("Could not find component class '"+$.ComponentName+"' for @Controller '"+$.Controller+"' in any component directory. Tried ["+o.$join(", ")+"]")},_.$$arity=0)})(c[0],0,c)})(c[0],c)})(c[0],c)}(n[0],n),function(n,$super,o){var c,u=i(n,null,"Module"),_=[u].concat(o);e.def(u,"$add_to_react_search_path",c=function(n){var o=this,i=r;return null==n&&(n=r),s(n)?(i=[[o]],l($($($(a(_,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent"),"search_path=",e.to_a(i)),i[t(i.length,1)]):s($($($(a(_,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent").$search_path()["$include?"](o)["$!"]())?$($($(a(_,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent").$search_path()["$<<"](o):r},c.$$arity=-1)}(n[0],0,n),function(e,t){var n=o(e,"Components");[n].concat(t);return n.$add_to_react_search_path()}(n[0],n)},Opal.modules["hyperstack/component/while_loading"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.hash2,i=e.truthy;return e.add_stubs(["$WhileLoadingWrapper","$!","$on_opal_client?"]),function(t,s){var l=[a(t,"Hyperstack")].concat(s);return function(t,s){var l=[a(t,"Component")].concat(s);return function(t,s){var l,c,u,_=a(t,"WhileLoading"),p=[_].concat(s);if(e.def(_,"$__hyperstack_component_rescue_wrapper",l=function(e){var t=this;return r(r($(p,"Hyperstack"),"Internal"),"Component").$WhileLoadingWrapper(o(["child","children_elements"],{child:t,children_elements:e}))},l.$$arity=1),e.def(_,"$resources_loading?",c=function(){var e=this;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=n),e.__hyperstack_while_loading_waiting_on_resources},c.$$arity=0),e.def(_,"$resources_loaded?",u=function(){var e=this;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=n),e.__hyperstack_while_loading_waiting_on_resources["$!"]()},u.$$arity=0),!i(r(r($(p,"Hyperstack"),"Component"),"IsomorphicHelpers")["$on_opal_client?"]()))return n;{function d(e){e.message.match(/^Uncaught NotQuiet: /)&&e.preventDefault()}window.addEventListener("error",d)}}(l[0],l)}(l[0],l)}(t[0],t)},Opal.modules["hyperstack/component/free_render"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.send,i=e.alias,s=e.truthy;return e.add_stubs(["$instance_eval","$const_defined?","$const_get","$is_a?","$method_defined?","$include?","$render","$to_proc","$hyperstack_component_original_meth_missing"]),function(t,l){var c=[a(t,"Hyperstack")].concat(l);return function(t,l){var c=[a(t,"Component")].concat(l);return function(t,l){var c,u=a(t,"FreeRender"),_=[u].concat(l);return e.defs(u,"$included",c=function(t){var a,l=this;return o(t,"instance_eval",[],((a=function(){var t,l=null==a.$$s?this:a.$$s;return i(l,"hyperstack_component_original_meth_missing","method_missing"),e.def(l,"$method_missing",t=function(a){var i,l=t.$$p,c=l||n,u=this,p=n,d=n,f=n,h=n,m=n;return l&&(t.$$p=null),l&&(t.$$p=null),i=e.slice.call(arguments,1,arguments.length),s(s(p=s(d=u["$const_defined?"](a))?f=u.$const_get(a):d)?s(h=s(m=f["$is_a?"]($(_,"Class")))?f["$method_defined?"]("render"):m)?h:r(r(r(r($(_,"Hyperstack"),"Internal"),"Component"),"Tags"),"HTML_TAGS")["$include?"](f):p)?o(u,"render",[f].concat(e.to_a(i)),c.$to_proc()):o(u,"hyperstack_component_original_meth_missing",[a].concat(e.to_a(i)),c.$to_proc())},t.$$arity=-2),n&&"method_missing"}).$$s=l,a.$$arity=0,a))},c.$$arity=1),n&&"included"}(c[0],c)}(c[0],c)}(t[0],t)},Opal.modules["hyperstack/internal/component/rescue_wrapper"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,o=e.module,i=e.klass,s=e.send,l=e.hash2,c=e.truthy;return e.add_stubs(["$include","$param","$render","$call","$attr_accessor","$RescueMetaWrapper","$after_error","$after_error_args","$run_callback","$after_error_args=","$-","$raise","$force_update!"]),function(n,u){var _=[o(n,"Hyperstack")].concat(u);return function(n,u){var _=[o(n,"Internal")].concat(u);return function(n,u){var _=[o(n,"Component")].concat(u);return function(e,$super,t){var n,o=i(e,null,"RescueMetaWrapper"),l=[o].concat(t);o.$include($(a(l,"Hyperstack"),"Component")),o.$param("children_elements"),s(o,"render",[],((n=function(){var e=null==n.$$s?this:n.$$s;return null==e.ChildrenElements&&(e.ChildrenElements=r),e.ChildrenElements.$call()}).$$s=o,n.$$arity=0,n))}(_[0],0,_),function(n,$super,o){var u,_,p=i(n,null,"RescueWrapper"),d=[p].concat(o);return function(e,t){[e].concat(t);e.$attr_accessor("after_error_args")}(e.get_singleton_class(p),d),p.$include($(a(d,"Hyperstack"),"Component")),p.$param("child"),p.$param("children_elements"),s(p,"render",[],((u=function(){var e=null==u.$$s?this:u.$$s;return null==e.ChildrenElements&&(e.ChildrenElements=r),e.$RescueMetaWrapper(l(["children_elements"],{children_elements:e.ChildrenElements}))}).$$s=p,u.$$arity=0,u)),s(p,"after_error",[],((_=function(n,$){var o,i,l=null==_.$$s?this:_.$$s,u=r,p=r,f=r,h=r;return null==l.Child&&(l.Child=r),null==n&&(n=r),null==$&&($=r),u=c(p=a(d,"RescueWrapper").$after_error_args())?p:[n,$],i=s(l.Child,"run_callback",["__hyperstack_component_rescue_hook",f].concat(e.to_a(u))),f=null==(o=e.to_ary(i))[0]?r:o[0],c(f)||(h=[u],s(a(d,"RescueWrapper"),"after_error_args=",e.to_a(h)),h[t(h.length,1)],l.$raise(n)),l.Child["$force_update!"]()}).$$s=p,_.$$arity=2,_))}(_[0],0,_)}(_[0],_)}(_[0],_)}(n[0],n)},Opal.modules["hyperstack/internal/component/while_loading_wrapper"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,o=e.module,i=e.klass,s=e.send,l=e.truthy,c=e.hash2;return e.add_stubs(["$render","$!","$quiet?","$raise_if_not_quiet=","$-","$instance_eval","$mutate","$RescueMetaWrapper","$before_mount","$rescues","$class","$instance_variable_set"]),function(n,u){var _=[o(n,"Hyperstack")].concat(u);return function(n,u){var _=[o(n,"Internal")].concat(u);return function(n,u){var _=[o(n,"Component")].concat(u);return function(n,$super,o){var u,_,p=i(n,$super,"WhileLoadingWrapper"),d=[p].concat(o);return s(p,"render",[],((u=function(){var n,$=null==u.$$s?this:u.$$s,o=r,i=r;return null==$.waiting_on_resources&&($.waiting_on_resources=r),null==$.Child&&($.Child=r),null==$.ChildrenElements&&($.ChildrenElements=r),l(l(o=$.waiting_on_resources)?$["$quiet?"]()["$!"]():o)?(i=[!1],s(a(d,"RenderingContext"),"raise_if_not_quiet=",e.to_a(i)),i[t(i.length,1)]):($.waiting_on_resources=!1,s($.Child,"instance_eval",[],((n=function(){var e=null==n.$$s?this:n.$$s;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=r),l(e.__hyperstack_while_loading_waiting_on_resources)&&e.$mutate(),e.__hyperstack_while_loading_waiting_on_resources=!1}).$$s=$,n.$$arity=0,n)),i=[!0],s(a(d,"RenderingContext"),"raise_if_not_quiet=",e.to_a(i)),i[t(i.length,1)]),$.$RescueMetaWrapper(c(["children_elements"],{children_elements:$.ChildrenElements}))}).$$s=p,u.$$arity=0,u)),s(p,"before_mount",[],((_=function(){var e,t=null==_.$$s?this:_.$$s,n=r;return null==t.Child&&(t.Child=r),n=t,s(t.Child.$class(),"rescues",[$(a(d,"RenderingContext"),"NotQuiet")],((e=function(){var t=null==e.$$s?this:e.$$s;return n.$instance_variable_set("@waiting_on_resources",!0),t.__hyperstack_while_loading_waiting_on_resources=!0}).$$s=t,e.$$arity=0,e))}).$$s=p,_.$$arity=0,_))}(_[0],a(_,"RescueWrapper"),_)}(_[0],_)}(_[0],_)}(n[0],n)},Opal.modules["hyperstack/component/version"]=function(e){e.top;var t=[],n=(e.nil,e.$$$,e.$$,e.module);return function(t,r){var $=[n(t,"Hyperstack")].concat(r);return function(t,r){var $=[n(t,"Component")].concat(r);return e.const_set($[0],"VERSION","1.0.alpha1.8")}($[0],$)}(t[0],t)},Opal.modules["hyper-component"]=function(e){var t=e.top,n=[],r=(e.nil,e.$$$,e.$$),$=e.hash2;return e.add_stubs(["$require","$js_import","$import"]),t.$require("hyperstack/internal/component"),r(n,"Hyperstack").$js_import("react/react-source-browser",$(["client_only","defines"],{client_only:!0,defines:["ReactDOM","React"]})),r(n,"Hyperstack").$js_import("react/react-source-server",$(["server_only","defines"],{server_only:!0,defines:"React"})),r(n,"Hyperstack").$import("browser/delay",$(["client_only"],{client_only:!0})),r(n,"Hyperstack").$import("browser/interval",$(["client_only"],{client_only:!0})),r(n,"Hyperstack").$js_import("react_ujs",$(["defines"],{defines:"ReactRailsUJS"})),r(n,"Hyperstack").$import("hyper-component"),r(n,"Hyperstack").$import("hyperstack/component/auto-import"),t.$require("hyperstack/internal/callbacks"),t.$require("hyperstack/internal/auto_unmount"),t.$require("native"),t.$require("json"),t.$require("hyperstack/state/observer"),t.$require("hyperstack/internal/component/validator"),t.$require("hyperstack/component/element"),t.$require("hyperstack/internal/component/react_wrapper"),t.$require("hyperstack/component"),t.$require("hyperstack/internal/component/should_component_update"),t.$require("hyperstack/internal/component/tags"),t.$require("hyperstack/component/event"),t.$require("hyperstack/internal/component/rendering_context"),t.$require("hyperstack/ext/component/object"),t.$require("hyperstack/ext/component/kernel"),t.$require("hyperstack/ext/component/number"),t.$require("hyperstack/ext/component/boolean"),t.$require("hyperstack/ext/component/array"),t.$require("hyperstack/ext/component/enumerable"),t.$require("hyperstack/ext/component/time"),t.$require("hyperstack/component/isomorphic_helpers"),t.$require("hyperstack/component/react_api"),t.$require("hyperstack/internal/component/top_level_rails_component"),t.$require("hyperstack/component/while_loading"),t.$require("hyperstack/component/free_render"),t.$require("hyperstack/internal/component/rescue_wrapper"),t.$require("hyperstack/internal/component/while_loading_wrapper"),t.$require("hyperstack/component/version")},Opal.modules["react/router"]=function(e){e.top;var t=[],n=(e.nil,e.$$$),r=e.$$,$=e.module,a=e.klass;return e.add_stubs(["$imports"]),function(e,t){var o=[$(e,"React")].concat(t);return function(e,$super,t){var n=a(e,$super,"Router");[n].concat(t);return n.$imports("ReactRouter")}(o[0],n(n(r(o,"Hyperstack"),"Component"),"NativeLibrary"),o)}(t[0],t)},Opal.modules["react/router/dom"]=function(e){e.top;var t=[],n=(e.nil,e.$$$),r=e.$$,$=e.module,a=e.klass;return e.add_stubs(["$imports"]),function(e,t){var o=[$(e,"React")].concat(t);return function(e,$super,t){var $=[a(e,null,"Router")].concat(t);return function(e,$super,t){var n=a(e,$super,"DOM");[n].concat(t);return n.$imports("ReactRouterDOM")}($[0],n(n(r($,"Hyperstack"),"Component"),"NativeLibrary"),$)}(o[0],0,o)}(t[0],t)},Opal.modules["react/router/history"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.klass;return e.add_stubs(["$include","$new","$alias_native"]),function(t,i){var s=[a(t,"React")].concat(i);return function(t,$super,a){var i=[o(t,null,"Router")].concat(a);return function(t,$super,a){var i,s,l,c=o(t,null,"History"),u=[c].concat(a);return c.$$prototype.native=n,c.$include(r($(u,"Native"),"Wrapper")),e.defs(c,"$current",i=function(){return this.$new(History)},i.$$arity=0),e.def(c,"$initialize",s=function(e){return this.native=e},s.$$arity=1),e.def(c,"$to_n",l=function(){return this.native},l.$$arity=0),c.$alias_native("create_browser_history","createBrowserHistory"),c.$alias_native("create_hash_history","createHashHistory"),c.$alias_native("create_location","createLocation"),c.$alias_native("create_memory_history","createMemoryHistory"),c.$alias_native("create_path","createPath")}(i[0],0,i)}(s[0],0,s)}(t[0],t)},Opal.modules["hyperstack/internal/router/isomorphic_methods"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.klass,i=e.truthy,s=e.send;return e.add_stubs(["$include","$prerender_footer","$on_opal_server?","$new","$[]","$raise","$isomorphic_method","$when_on_client","$send_to_server","$when_on_server","$fullpath","$request","$controller","$context"]),function(t,l){var c=[a(t,"Hyperstack")].concat(l);return function(t,l){var c=[a(t,"Internal")].concat(l);return function(t,l){var c=[a(t,"Router")].concat(l);return function(t,$super,a){var l,c,u,_=o(t,null,"IsomorphicMethods"),p=[_].concat(a);return _.$include(r(r($(p,"Hyperstack"),"Component"),"IsomorphicHelpers")),e.defs(_,"$ctx",l=function(){var e=this,t=n;return null==e.ctx&&(e.ctx=n),e.ctx=i(t=e.ctx)?t:{}},l.$$arity=0),s(_,"prerender_footer",[],((c=function(e){var t=null==c.$$s?this:c.$$s,r=n;return null==t.ctx&&(t.ctx=n),null==e&&(e=n),i(t["$on_opal_server?"]())?(r=$(p,"Hash").$new(t.ctx),t.ctx={},i(r["$[]"]("url"))?t.$raise("Hyperstack::Internal::Component::Redirect "+r["$[]"]("url")+" status: "+r["$[]"]("status")):n):n}).$$s=_,c.$$arity=1,c)),s(_,"isomorphic_method",["request_fullpath"],((u=function(e){var t,r,$=null==u.$$s?this:u.$$s;return null==e&&(e=n),s(e,"when_on_client",[],((t=function(){null==t.$$s||t.$$s;return window.location.pathname}).$$s=$,t.$$arity=0,t)),e.$send_to_server(),s(e,"when_on_server",[],((r=function(){null==r.$$s||r.$$s;return e.$context().$controller().$request().$fullpath()}).$$s=$,r.$$arity=0,r))}).$$s=_,u.$$arity=1,u))}(c[0],0,c)}(c[0],c)}(c[0],c)}(t[0],t)},Opal.modules["hyperstack/router/history"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.klass,i=e.truthy,s=e.send;return e.add_stubs(["$include","$new","$native_block","$to_n","$native_listen","$alias_native"]),function(t,l){var c=[a(t,"Hyperstack")].concat(l);return function(t,l){var c=[a(t,"Router")].concat(l);return function(t,$super,a){var l,c,u,_,p,d=o(t,null,"History"),f=[d].concat(a);return d.$$prototype.native=n,d.$include(r($(f,"Native"),"Wrapper")),e.def(d,"$initialize",l=function(e){return this.native=e},l.$$arity=1),e.def(d,"$to_n",c=function(){return this.native},c.$$arity=0),e.def(d,"$location",u=function(){var e=this;return $(f,"Location").$new(e.native.location)},u.$$arity=0),e.def(d,"$block",_=function(t){var r,a=_.$$p,o=a||n,l=this;return a&&(_.$$p=null),null==t&&(t=n),i(t)?l.$native_block(t.$to_n()):s(l,"native_block",[],((r=function(t,a){null==r.$$s||r.$$s;return null==t&&(t=n),null==a&&(a=n),e.yieldX(o,[$(f,"Location").$new(t),a])}).$$s=l,r.$$arity=2,r))},_.$$arity=-1),e.def(d,"$listen",p=function(){var t,r=p.$$p,a=r||n,o=this;return r&&(p.$$p=null),s(o,"native_listen",[],((t=function(r,o){null==t.$$s||t.$$s;return null==r&&(r=n),null==o&&(o=n),e.yieldX(a,[$(f,"Location").$new(r),o])}).$$s=o,t.$$arity=2,t))},p.$$arity=0),d.$alias_native("action"),d.$alias_native("native_block","block"),d.$alias_native("create_href","createHref"),d.$alias_native("entries"),d.$alias_native("go"),d.$alias_native("go_back","goBack"),d.$alias_native("go_forward","goForward"),d.$alias_native("index"),d.$alias_native("length"),d.$alias_native("native_listen","listen"),d.$alias_native("push","push"),d.$alias_native("replace","replace")}(c[0],0,c)}(c[0],c)}(t[0],t)},Opal.modules["hyperstack/router/location"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.klass,i=e.truthy,s=e.hash2,l=e.send,c=e.range;return e.add_stubs(["$include","$blank?","$search","$[]","$map","$split","$alias_native"]),function(t,u){var _=[a(t,"Hyperstack")].concat(u);return function(t,u){var _=[a(t,"Router")].concat(u);return function(t,$super,a){var u,_,p,d=o(t,null,"Location"),f=[d].concat(a);return d.$$prototype.native=n,d.$include(r($(f,"Native"),"Wrapper")),e.def(d,"$initialize",u=function(e){return this.native=e},u.$$arity=1),e.def(d,"$to_n",_=function(){return this.native},_.$$arity=0),e.def(d,"$query",p=function(){var t,r=this;return i(r.$search()["$blank?"]())?s([],{}):$(f,"Hash")["$[]"](l(r.$search()["$[]"](c(1,-1,!1)).$split("&"),"map",[],((t=function(r){null==t.$$s||t.$$s;var $,a,o=n,i=n;return null==r&&(r=n),a=r.$split("="),o=null==($=e.to_ary(a))[0]?n:$[0],i=null==$[1]?n:$[1],[decodeURIComponent(o),decodeURIComponent(i)]}).$$s=r, +t.$$arity=1,t)))},p.$$arity=0),d.$alias_native("pathname"),d.$alias_native("search"),d.$alias_native("hash"),d.$alias_native("state"),d.$alias_native("key")}(_[0],0,_)}(_[0],_)}(t[0],t)},Opal.modules["hyperstack/router/match"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.klass;return e.add_stubs(["$include","$alias_native"]),function(t,i){var s=[a(t,"Hyperstack")].concat(i);return function(t,i){var s=[a(t,"Router")].concat(i);return function(t,$super,a){var i,s,l=o(t,null,"Match"),c=[l].concat(a);return l.$$prototype.native=n,l.$include(r($(c,"Native"),"Wrapper")),e.def(l,"$initialize",i=function(e){return this.native=e},i.$$arity=1),e.def(l,"$to_n",s=function(){return this.native},s.$$arity=0),l.$alias_native("params"),l.$alias_native("is_exact","isExact"),l.$alias_native("path"),l.$alias_native("url")}(s[0],0,s)}(s[0],s)}(t[0],t)},Opal.modules["hyperstack/internal/router/class_methods"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.truthy,i=e.send;return e.add_stubs(["$positive?","$count","$first","$send","$new","$to_n","$history","$private","$create_browser_history","$current","$create_hash_history","$create_memory_history"]),function(t,s){var l=[a(t,"Hyperstack")].concat(s);return function(t,s){var l=[a(t,"Internal")].concat(s);return function(t,s){var l=[a(t,"Router")].concat(s);return function(t,s){var l,c,u,_,p,d=a(t,"ClassMethods"),f=[d].concat(s);return e.def(d,"$history",l=function(){var t,r,$=this,a=n;return null==$.__history_type&&($.__history_type=n),null==$.__history&&($.__history=n),t=e.slice.call(arguments,0,arguments.length),o((r=t).$count()["$positive?"]())?$.__history_type=r.$first():o($.__history_type)?$.__history=o(a=$.__history)?a:$.$send($.__history_type+"_history"):n},l.$$arity=-1),e.def(d,"$location",c=function(){var e=this;return r(r($(f,"Hyperstack"),"Router"),"Location").$new(e.$history().$to_n().location)},c.$$arity=0),d.$private(),e.def(d,"$browser_history",u=function(){var e=this,t=n;return null==e.__browser_history&&(e.__browser_history=n),e.__browser_history=o(t=e.__browser_history)?t:r(r($(f,"React"),"Router"),"History").$current().$create_browser_history()},u.$$arity=0),e.def(d,"$hash_history",_=function(){var t,a,s=this,l=n;return null==s.__hash_history&&(s.__hash_history=n),t=e.slice.call(arguments,0,arguments.length),a=t,s.__hash_history=o(l=s.__hash_history)?l:i(r(r($(f,"React"),"Router"),"History").$current(),"create_hash_history",e.to_a(a))},_.$$arity=-1),e.def(d,"$memory_history",p=function(){var t,a,s=this,l=n;return null==s.__memory_history&&(s.__memory_history=n),t=e.slice.call(arguments,0,arguments.length),a=t,s.__memory_history=o(l=s.__memory_history)?l:i(r(r($(f,"React"),"Router"),"History").$current(),"create_memory_history",e.to_a(a))},p.$$arity=-1),n&&"memory_history"}(l[0],l)}(l[0],l)}(l[0],l)}(t[0],t)},Opal.modules["hyperstack/internal/router/helpers"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,o=e.module,i=e.hash2,s=e.send,l=e.truthy;return e.add_stubs(["$to_n","$tap","$[]=","$-","$[]","$delete","$Link","$to_proc","$any?","$&","$keys","$observed!","$NavLink","$ctx","$Redirect","$new","$lambda","$format_params","$create_element","$values","$Route","$Switch"]),function(n,c){var u=[o(n,"Hyperstack")].concat(c);return function(n,c){var u=[o(n,"Internal")].concat(c);return function(n,c){var u=[o(n,"Router")].concat(c);return function(n,c){var u,_,p,d,f,h,m=o(n,"Helpers"),y=[m].concat(c);return e.def(m,"$Link",u=function(n,o){var c,_=u.$$p,p=_||r,d=this,f=r;return _&&(u.$$p=null),_&&(u.$$p=null),null==o&&(o=i([],{})),f=["to",s(i([],{}),"tap",[],(c=function($){null==c.$$s||c.$$s;return null==$&&($=r),f=["pathname",n],s($,"[]=",e.to_a(f)),f[t(f.length,1)],l(o["$[]"]("search"))&&(f=["search",o.$delete("search")],s($,"[]=",e.to_a(f)),f[t(f.length,1)]),l(o["$[]"]("hash"))?(f=["hash",o.$delete("hash")],s($,"[]=",e.to_a(f)),f[t(f.length,1)]):r},c.$$s=d,c.$$arity=1,c)).$to_n()],s(o,"[]=",e.to_a(f)),f[t(f.length,1)],s($($(a(y,"React"),"Router"),"DOM"),"Link",[o],p.$to_proc())},u.$$arity=-2),e.def(m,"$NavLink",_=function(n,o){var c=_.$$p,u=c||r,p=r;return c&&(_.$$p=null),c&&(_.$$p=null),null==o&&(o=i([],{})),p=["to",n.$to_n()],s(o,"[]=",e.to_a(p)),p[t(p.length,1)],l(["active_class","active_style","active"]["$&"](o.$keys())["$any?"]())&&(l(o["$[]"]("active_class"))&&(p=["activeClassName",o.$delete("active_class").$to_n()],s(o,"[]=",e.to_a(p)),p[t(p.length,1)]),l(o["$[]"]("active_style"))&&(p=["activeStyle",o.$delete("active_style").$to_n()],s(o,"[]=",e.to_a(p)),p[t(p.length,1)]),l(o["$[]"]("active"))&&(p=["isActive",o.$delete("active").$to_n()],s(o,"[]=",e.to_a(p)),p[t(p.length,1)]),$(a(y,"State"),"Mapper")["$observed!"]($($(a(y,"Hyperstack"),"Router"),"Location"))),s($($(a(y,"React"),"Router"),"DOM"),"NavLink",[o],u.$to_proc())},_.$$arity=-2),e.def(m,"$Redirect",p=function(n,o){var c=r,u=r,_=r;return null==o&&(o=i([],{})),c=["to",n.$to_n()],s(o,"[]=",e.to_a(c)),c[t(c.length,1)],u=o.$delete("status"),u=l(_=u)?_:302,a(y,"IsomorphicMethods").$ctx().status=u,$(a(y,"React"),"Router").$Redirect(o)},p.$$arity=-2),e.def(m,"$format_params",d=function(t){return e.slice.call(arguments,1,arguments.length),i(["match","location","history"],{match:$($(a(y,"Hyperstack"),"Router"),"Match").$new(t.match),location:$($(a(y,"Hyperstack"),"Router"),"Location").$new(t.location),history:$($(a(y,"Hyperstack"),"Router"),"History").$new(t.history)})},d.$$arity=-2),e.def(m,"$Route",f=function(n,o){var c,u,_=f.$$p,p=_||r,d=this,h=r,m=r;return _&&(f.$$p=null),_&&(f.$$p=null),null==o&&(o=i([],{})),$($($(a(y,"Hyperstack"),"Internal"),"State"),"Mapper")["$observed!"]($($(a(y,"Hyperstack"),"Router"),"Location")),h=["path",n.$to_n()],s(o,"[]=",e.to_a(h)),h[t(h.length,1)],l(o["$[]"]("mounts"))&&(m=o.$delete("mounts"),h=["component",s(d,"lambda",[],(c=function(){var t,n=null==c.$$s?this:c.$$s,o=r;return t=e.slice.call(arguments,0,arguments.length),o=s(n,"format_params",e.to_a(t)),$($(a(y,"Hyperstack"),"Component"),"ReactAPI").$create_element(m,o).$to_n()},c.$$s=d,c.$$arity=-1,c))],s(o,"[]=",e.to_a(h)),h[t(h.length,1)]),l(p)&&(h=["render",s(d,"lambda",[],(u=function(){var t,n=null==u.$$s?this:u.$$s,$=r;return t=e.slice.call(arguments,0,arguments.length),$=s(n,"format_params",e.to_a(t)),e.yieldX(p,e.to_a($.$values())).$to_n()},u.$$s=d,u.$$arity=-1,u))],s(o,"[]=",e.to_a(h)),h[t(h.length,1)]),$(a(y,"React"),"Router").$Route(o)},f.$$arity=-2),e.def(m,"$Switch",h=function(){var e=h.$$p,t=e||r;return e&&(h.$$p=null),e&&(h.$$p=null),s($(a(y,"React"),"Router"),"Switch",[],t.$to_proc())},h.$$arity=0),r&&"Switch"}(u[0],u)}(u[0],u)}(u[0],u)}(n[0],n)},Opal.modules["hyperstack/internal/router/instance_methods"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.module);return e.add_stubs(["$history","$class","$location"]),function(t,$){var a=[r(t,"Hyperstack")].concat($);return function(t,$){var a=[r(t,"Internal")].concat($);return function(t,$){var a=[r(t,"Router")].concat($);return function(t,$){var a,o,i=r(t,"InstanceMethods");[i].concat($);return e.def(i,"$history",a=function(){return this.$class().$history()},a.$$arity=0),e.def(i,"$location",o=function(){return this.$class().$location()},o.$$arity=0),n&&"location"}(a[0],a)}(a[0],a)}(a[0],a)}(t[0],t)},Opal.modules["hyperstack/router/helpers"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.send,i=e.hash2;return e.add_stubs(["$include","$class_eval","$param"]),function(t,s){var l=[a(t,"Hyperstack")].concat(s);return function(t,s){var l=[a(t,"Router")].concat(s);return function(t,s){var l,c,u,_,p=a(t,"Helpers"),d=[p].concat(s);return e.def(p,"$match",l=function(){var e=this;return null==e._match_param&&(e._match_param=n),e._match_param},l.$$arity=0),e.def(p,"$location",c=function(){var e=this;return null==e._location_param&&(e._location_param=n),e._location_param},c.$$arity=0),e.def(p,"$history",u=function(){var e=this;return null==e._history_param&&(e._history_param=n),e._history_param},u.$$arity=0),e.defs(p,"$included",_=function(e){var t,a=this;return e.$include(r(r(r($(d,"Hyperstack"),"Internal"),"Router"),"Helpers")),o(e,"class_eval",[],((t=function(){var e=null==t.$$s?this:t.$$s;return e.$param("match",i(["default","alias"],{"default":n,alias:"_match_param"})),e.$param("location",i(["default","alias"],{"default":n,alias:"_location_param"})),e.$param("history",i(["default","alias"],{"default":n,alias:"_history_param"}))}).$$s=a,t.$$arity=0,t))},_.$$arity=1),n&&"included"}(l[0],l)}(l[0],l)}(t[0],t)},Opal.modules["hyperstack/router"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,o=e.klass,i=e.truthy,s=e.lambda,l=e.send,c=e.hash2;return e.add_stubs(["$on_opal_server?","$__hyperstack_prerender_router","$to_proc","$__hyperstack_render_router","$instance_eval","$is_a?","$respond_to?","$acts_as_string?","$render","$to_s","$history","$class","$Router","$to_n","$__eval_block","$split","$request_fullpath","$StaticRouter","$ctx","$extend","$include","$class_eval","$location","$after_mount","$listen","$mutated!","$before_unmount","$call"]),function(t,u){var _=[a(t,"Hyperstack")].concat(u);return function(t,u){var _,p,d,f,h,m=a(t,"Router"),y=[m].concat(u);return function(e,$super,t){[o(e,$super,"NoHistoryError")].concat(t)}(y[0],$(y,"StandardError"),y),e.def(m,"$__hyperstack_router_wrapper",_=function(){var e,t,a=_.$$p,o=a||n,c=this;return a&&(_.$$p=null),a&&(_.$$p=null),i(r(r($(y,"Hyperstack"),"Component"),"IsomorphicHelpers")["$on_opal_server?"]())?s(((e=function(){var t=null==e.$$s?this:e.$$s;return l(t,"__hyperstack_prerender_router",[],o.$to_proc())}).$$s=c,e.$$arity=0,e)):s(((t=function(){var e=null==t.$$s?this:t.$$s;return l(e,"__hyperstack_render_router",[],o.$to_proc())}).$$s=c,t.$$arity=0,t))},_.$$arity=0),e.def(m,"$__eval_block",p=function(e){var t,a=this,o=n,s=n,c=n;return o=l(a,"instance_eval",[],e.$to_proc()),i(i(s=o["$is_a?"]($(y,"String")))?s:i(c=o["$respond_to?"]("acts_as_string?"))?o["$acts_as_string?"]():c)&&(o=l(r(r(r($(y,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",["span"],((t=function(){null==t.$$s||t.$$s;return o.$to_s()}).$$s=a,t.$$arity=0,t))),o},p.$$arity=1),e.def(m,"$__hyperstack_render_router",d=function(){var e,t=d.$$p,a=t||n,o=this;return t&&(d.$$p=null),t&&(d.$$p=null),l(o,"instance_eval",[],((e=function(){var t,n=null==e.$$s?this:e.$$s;return i(n.$history())||n.$class().$history("browser"),l(r($(y,"React"),"Router"),"Router",[c(["history"],{history:n.$history().$to_n()})],((t=function(){return(null==t.$$s?this:t.$$s).$__eval_block(a)}).$$s=n,t.$$arity=0,t))}).$$s=o,e.$$arity=0,e))},d.$$arity=0),e.def(m,"$__hyperstack_prerender_router",f=function(){var t,a=f.$$p,o=a||n,s=this;return a&&(f.$$p=null),a&&(f.$$p=null),l(s,"instance_eval",[],((t=function(){var a,s,u,_=null==t.$$s?this:t.$$s,p=n,d=n,f=n;return s=r(r(r($(y,"Hyperstack"),"Internal"),"Router"),"IsomorphicMethods").$request_fullpath().$split("?",2),p=null==(a=e.to_ary(s))[0]?n:a[0],d=null==a[1]?n:a[1],f=c(["pathname","search"],{pathname:p,search:i(d)?"?"+d:""}).$to_n(),l(r($(y,"React"),"Router"),"StaticRouter",[c(["location","context"],{location:f,context:r(r(r($(y,"Hyperstack"),"Internal"),"Router"),"IsomorphicMethods").$ctx()})],((u=function(){return(null==u.$$s?this:u.$$s).$__eval_block(o)}).$$s=_,u.$$arity=0,u))}).$$s=s,t.$$arity=0,t))},f.$$arity=0),e.defs(m,"$included",h=function(t){var a,o=this;return t.$extend(r(r(r($(y,"Hyperstack"),"Internal"),"Router"),"ClassMethods")),t.$include(r(r(r($(y,"Hyperstack"),"Internal"),"Router"),"Helpers")),l(t,"class_eval",[],((a=function(){var t,o,s,c,u=null==a.$$s?this:a.$$s;return e.def(u,"$history",t=function(){return this.$class().$history()},t.$$arity=0),e.def(u,"$location",o=function(){return this.$class().$location()},o.$$arity=0),l(u,"after_mount",[],((s=function(){var e,t=null==s.$$s?this:s.$$s;return t._react_router_unlisten=l(t.$history(),"listen",[],((e=function(t,a){null==e.$$s||e.$$s;return null==t&&(t=n),null==a&&(a=n),r(r(r($(y,"Hyperstack"),"Internal"),"State"),"Mapper")["$mutated!"](r(r($(y,"Hyperstack"),"Router"),"Location"))}).$$s=t,e.$$arity=2,e))}).$$s=u,s.$$arity=0,s)),l(u,"before_unmount",[],((c=function(){var e=null==c.$$s?this:c.$$s;return null==e._react_router_unlisten&&(e._react_router_unlisten=n),i(e._react_router_unlisten)?e._react_router_unlisten.$call():n}).$$s=u,c.$$arity=0,c))}).$$s=o,a.$$arity=0,a))},h.$$arity=1),n&&"included"}(_[0],_)}(t[0],t)},Opal.queue(function(e){var t=e.top,n=[],r=(e.nil,e.$$$,e.$$),$=e.hash2;return e.add_stubs(["$require","$js_import","$import"]),t.$require("hyper-component"),r(n,"Hyperstack").$js_import("hyperstack/router/react-router-source",$(["defines"],{defines:["ReactRouter","ReactRouterDOM","History"]})),r(n,"Hyperstack").$import("hyper-router"),t.$require("react/router"),t.$require("react/router/dom"),t.$require("react/router/history"),t.$require("hyperstack/internal/router/isomorphic_methods"),t.$require("hyperstack/router/history"),t.$require("hyperstack/router/location"),t.$require("hyperstack/router/match"),t.$require("hyperstack/internal/router/class_methods"),t.$require("hyperstack/internal/router/helpers"),t.$require("hyperstack/internal/router/instance_methods"),t.$require("hyperstack/router/helpers"),t.$require("hyperstack/router")}); \ No newline at end of file diff --git a/dist/hyperstack-compiler.js b/dist/hyperstack-compiler.js index ef00a7a..8a489d0 100644 --- a/dist/hyperstack-compiler.js +++ b/dist/hyperstack-compiler.js @@ -1,1930 +1,2118 @@ -/* Generated by Opal 0.11.4 */ -Opal.modules["set"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $module = Opal.module; +Opal.modules["base64"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; - Opal.add_stubs(['$include', '$new', '$nil?', '$===', '$raise', '$each', '$add', '$call', '$merge', '$class', '$respond_to?', '$subtract', '$dup', '$join', '$to_a', '$equal?', '$instance_of?', '$==', '$instance_variable_get', '$is_a?', '$size', '$all?', '$include?', '$[]=', '$-', '$enum_for', '$[]', '$<<', '$replace', '$delete', '$select', '$each_key', '$to_proc', '$empty?', '$eql?', '$instance_eval', '$clear', '$<', '$<=', '$keys']); - - (function($base, $super, $parent_nesting) { - function $Set(){}; - var self = $Set = $klass($base, $super, 'Set', $Set); + Opal.add_stubs(['$raise', '$delete']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Base64'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Set_$$_1, TMP_Set_initialize_2, TMP_Set_dup_4, TMP_Set_$_5, TMP_Set_inspect_6, TMP_Set_$eq$eq_8, TMP_Set_add_9, TMP_Set_classify_10, TMP_Set_collect$B_13, TMP_Set_delete_15, TMP_Set_delete$q_16, TMP_Set_delete_if_17, TMP_Set_add$q_20, TMP_Set_each_21, TMP_Set_empty$q_22, TMP_Set_eql$q_24, TMP_Set_clear_25, TMP_Set_include$q_26, TMP_Set_merge_28, TMP_Set_replace_29, TMP_Set_size_30, TMP_Set_subtract_32, TMP_Set_$_33, TMP_Set_superset$q_35, TMP_Set_proper_superset$q_37, TMP_Set_subset$q_39, TMP_Set_proper_subset$q_41, TMP_Set_to_a_42; + var $nesting = [self].concat($parent_nesting), $Base64_decode64$1, $Base64_encode64$2, $Base64_strict_decode64$3, $Base64_strict_encode64$4, $Base64_urlsafe_decode64$5, $Base64_urlsafe_encode64$6; - def.hash = nil; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); - Opal.defs(self, '$[]', TMP_Set_$$_1 = function($a_rest) { - var self = this, ary; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - ary = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - ary[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$new(ary) - }, TMP_Set_$$_1.$$arity = -1); - Opal.defn(self, '$initialize', TMP_Set_initialize_2 = function $$initialize(enum$) { - var TMP_3, self = this, $iter = TMP_Set_initialize_2.$$p, block = $iter || nil; + var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + var encode, decode; + + // encoder + // [https://gist.github.com/999166] by [https://github.com/nignag] + encode = function (input) { + var str = String(input); + /* eslint-disable */ + for ( + // initialize result and counter + var block, charCode, idx = 0, map = chars, output = ''; + // if the next str index does not exist: + // change the mapping table to "=" + // check if d has no fractional digits + str.charAt(idx | 0) || (map = '=', idx % 1); + // "8 - idx % 1 * 8" generates the sequence 2, 4, 6, 8 + output += map.charAt(63 & block >> 8 - idx % 1 * 8) + ) { + charCode = str.charCodeAt(idx += 3/4); + if (charCode > 0xFF) { + self.$raise($$($nesting, 'ArgumentError'), "invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"); + } + block = block << 8 | charCode; + } + return output; + /* eslint-enable */ + }; - if (enum$ == null) { - enum$ = nil; + // decoder + // [https://gist.github.com/1020396] by [https://github.com/atk] + decode = function (input) { + var str = String(input).replace(/=+$/, ''); + if (str.length % 4 == 1) { + self.$raise($$($nesting, 'ArgumentError'), "invalid base64 (failed: The string to be decoded is not correctly encoded.)"); } - if ($iter) TMP_Set_initialize_2.$$p = null; - - self.hash = Opal.const_get_relative($nesting, 'Hash').$new(); - if ($truthy(enum$['$nil?']())) { - return nil}; - if ($truthy(Opal.const_get_relative($nesting, 'Enumerable')['$==='](enum$))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be enumerable") - }; - if ($truthy(block)) { - return $send(enum$, 'each', [], (TMP_3 = function(item){var self = TMP_3.$$s || this; -if (item == null) item = nil; - return self.$add(block.$call(item))}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)) - } else { - return self.$merge(enum$) - }; - }, TMP_Set_initialize_2.$$arity = -1); - - Opal.defn(self, '$dup', TMP_Set_dup_4 = function $$dup() { - var self = this, result = nil; + /* eslint-disable */ + for ( + // initialize result and counters + var bc = 0, bs, buffer, idx = 0, output = ''; + // get next character + buffer = str.charAt(idx++); + // character found in table? initialize bit storage and add its ascii value; + ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, + // and if not first of each 4 characters, + // convert the first 8 bits to one ascii character + bc++ % 4) ? output += String.fromCharCode(255 & bs >> (-2 * bc & 6)) : 0 + ) { + // try to find character in table (0-63, not found => -1) + buffer = chars.indexOf(buffer); + } + return output; + /* eslint-enable */ + }; + ; + Opal.defs(self, '$decode64', $Base64_decode64$1 = function $$decode64(string) { + var self = this; - - result = self.$class().$new(); - return result.$merge(self); - }, TMP_Set_dup_4.$$arity = 0); - - Opal.defn(self, '$-', TMP_Set_$_5 = function(enum$) { + return decode(string.replace(/\r?\n/g, '')); + }, $Base64_decode64$1.$$arity = 1); + Opal.defs(self, '$encode64', $Base64_encode64$2 = function $$encode64(string) { var self = this; - - if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be enumerable") - }; - return self.$dup().$subtract(enum$); - }, TMP_Set_$_5.$$arity = 1); - Opal.alias(self, "difference", "-"); - - Opal.defn(self, '$inspect', TMP_Set_inspect_6 = function $$inspect() { + return encode(string).replace(/(.{60})/g, "$1\n").replace(/([^\n])$/g, "$1\n"); + }, $Base64_encode64$2.$$arity = 1); + Opal.defs(self, '$strict_decode64', $Base64_strict_decode64$3 = function $$strict_decode64(string) { var self = this; - return "" + "#" - }, TMP_Set_inspect_6.$$arity = 0); - - Opal.defn(self, '$==', TMP_Set_$eq$eq_8 = function(other) { - var $a, TMP_7, self = this; + return decode(string); + }, $Base64_strict_decode64$3.$$arity = 1); + Opal.defs(self, '$strict_encode64', $Base64_strict_encode64$4 = function $$strict_encode64(string) { + var self = this; - if ($truthy(self['$equal?'](other))) { - return true - } else if ($truthy(other['$instance_of?'](self.$class()))) { - return self.hash['$=='](other.$instance_variable_get("@hash")) - } else if ($truthy(($truthy($a = other['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? self.$size()['$=='](other.$size()) : $a))) { - return $send(other, 'all?', [], (TMP_7 = function(o){var self = TMP_7.$$s || this; - if (self.hash == null) self.hash = nil; -if (o == null) o = nil; - return self.hash['$include?'](o)}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)) - } else { - return false - } - }, TMP_Set_$eq$eq_8.$$arity = 1); - - Opal.defn(self, '$add', TMP_Set_add_9 = function $$add(o) { - var self = this, $writer = nil; + return encode(string); + }, $Base64_strict_encode64$4.$$arity = 1); + Opal.defs(self, '$urlsafe_decode64', $Base64_urlsafe_decode64$5 = function $$urlsafe_decode64(string) { + var self = this; - - - $writer = [o, true]; - $send(self.hash, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return self; - }, TMP_Set_add_9.$$arity = 1); - Opal.alias(self, "<<", "add"); - - Opal.defn(self, '$classify', TMP_Set_classify_10 = function $$classify() { - var TMP_11, TMP_12, self = this, $iter = TMP_Set_classify_10.$$p, block = $iter || nil, result = nil; + return decode(string.replace(/\-/g, '+').replace(/_/g, '/')); + }, $Base64_urlsafe_decode64$5.$$arity = 1); + return (Opal.defs(self, '$urlsafe_encode64', $Base64_urlsafe_encode64$6 = function $$urlsafe_encode64(string, $kwargs) { + var padding, self = this, str = nil; - if ($iter) TMP_Set_classify_10.$$p = null; - if ((block !== nil)) { - } else { - return self.$enum_for("classify") - }; - result = $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_11 = function(h, k){var self = TMP_11.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - $writer = [k, self.$class().$new()]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11)); - $send(self, 'each', [], (TMP_12 = function(item){var self = TMP_12.$$s || this; -if (item == null) item = nil; - return result['$[]'](Opal.yield1(block, item)).$add(item)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)); - return result; - }, TMP_Set_classify_10.$$arity = 0); - - Opal.defn(self, '$collect!', TMP_Set_collect$B_13 = function() { - var TMP_14, self = this, $iter = TMP_Set_collect$B_13.$$p, block = $iter || nil, result = nil; - - if ($iter) TMP_Set_collect$B_13.$$p = null; + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; - if ((block !== nil)) { - } else { - return self.$enum_for("collect!") + padding = $kwargs.$$smap["padding"]; + if (padding == null) { + padding = true }; - result = self.$class().$new(); - $send(self, 'each', [], (TMP_14 = function(item){var self = TMP_14.$$s || this; -if (item == null) item = nil; - return result['$<<'](Opal.yield1(block, item))}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)); - return self.$replace(result); - }, TMP_Set_collect$B_13.$$arity = 0); - Opal.alias(self, "map!", "collect!"); - - Opal.defn(self, '$delete', TMP_Set_delete_15 = function(o) { - var self = this; + str = encode(string).replace(/\+/g, '-').replace(/\//g, '_'); + if ($truthy(padding)) { + } else { + str = str.$delete("=") + }; + return str; + }, $Base64_urlsafe_encode64$6.$$arity = -2), nil) && 'urlsafe_encode64'; + })($nesting[0], $nesting) +}; - - self.hash.$delete(o); - return self; - }, TMP_Set_delete_15.$$arity = 1); - - Opal.defn(self, '$delete?', TMP_Set_delete$q_16 = function(o) { - var self = this; +Opal.modules["corelib/pack_unpack/format_string_parser"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - if ($truthy(self['$include?'](o))) { - - self.$delete(o); - return self; - } else { - return nil - } - }, TMP_Set_delete$q_16.$$arity = 1); - - Opal.defn(self, '$delete_if', TMP_Set_delete_if_17 = function $$delete_if() {try { + Opal.add_stubs(['$raise']); + return (function($base, $parent_nesting) { + var self = $module($base, 'PackUnpack'); - var $a, TMP_18, TMP_19, self = this, $iter = TMP_Set_delete_if_17.$$p, $yield = $iter || nil; + var $nesting = [self].concat($parent_nesting); - if ($iter) TMP_Set_delete_if_17.$$p = null; - - ($truthy($a = ($yield !== nil)) ? $a : Opal.ret(self.$enum_for("delete_if"))); - $send($send(self, 'select', [], (TMP_18 = function(o){var self = TMP_18.$$s || this; -if (o == null) o = nil; - return Opal.yield1($yield, o);}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)), 'each', [], (TMP_19 = function(o){var self = TMP_19.$$s || this; - if (self.hash == null) self.hash = nil; -if (o == null) o = nil; - return self.hash.$delete(o)}, TMP_19.$$s = self, TMP_19.$$arity = 1, TMP_19)); - return self; - } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Set_delete_if_17.$$arity = 0); - Opal.defn(self, '$add?', TMP_Set_add$q_20 = function(o) { - var self = this; + var directives = [ + // Integer + 'C', + 'S', + 'L', + 'Q', + 'J', + + 'c', + 's', + 'l', + 'q', + 'j', + + 'n', + 'N', + 'v', + 'V', + + 'U', + 'w', + + // Float + 'D', + 'd', + 'F', + 'f', + 'E', + 'e', + 'G', + 'g', + + // String + 'A', + 'a', + 'Z', + 'B', + 'b', + 'H', + 'h', + 'u', + 'M', + 'm', + + 'P', + 'p', + + // Misc + '@', + 'X', + 'x' + ]; + + var modifiers = [ + '!', // ignored + '_', // ignored + '>', // big endian + '<' // little endian + ]; + + self.eachDirectiveAndCount = function(format, callback) { + var currentDirective, + currentCount, + currentModifiers, + countSpecified; + + function reset() { + currentDirective = null; + currentCount = 0; + currentModifiers = []; + countSpecified = false; + } - if ($truthy(self['$include?'](o))) { - return nil - } else { - return self.$add(o) + reset(); + + function yieldAndReset() { + if (currentDirective == null) { + reset(); + return; + } + + var directiveSupportsModifiers = /[sSiIlLqQjJ]/.test(currentDirective); + + if (!directiveSupportsModifiers && currentModifiers.length > 0) { + self.$raise($$($nesting, 'ArgumentError'), "" + "'" + (currentModifiers[0]) + "' allowed only after types sSiIlLqQjJ") + } + + if (currentModifiers.indexOf('<') !== -1 && currentModifiers.indexOf('>') !== -1) { + self.$raise($$($nesting, 'RangeError'), "Can't use both '<' and '>'") + } + + if (!countSpecified) { + currentCount = 1; + } + + if (currentModifiers.indexOf('>') !== -1) { + currentDirective = currentDirective + '>'; + } + + callback(currentDirective, currentCount); + + reset(); } - }, TMP_Set_add$q_20.$$arity = 1); - - Opal.defn(self, '$each', TMP_Set_each_21 = function $$each() { - var self = this, $iter = TMP_Set_each_21.$$p, block = $iter || nil; - if ($iter) TMP_Set_each_21.$$p = null; - - if ((block !== nil)) { - } else { - return self.$enum_for("each") - }; - $send(self.hash, 'each_key', [], block.$to_proc()); - return self; - }, TMP_Set_each_21.$$arity = 0); - - Opal.defn(self, '$empty?', TMP_Set_empty$q_22 = function() { - var self = this; + for (var i = 0; i < format.length; i++) { + var currentChar = format[i]; + + if (directives.indexOf(currentChar) !== -1) { + // Directive char always resets current state + yieldAndReset(); + currentDirective = currentChar; + } else if (currentDirective) { + if (/\d/.test(currentChar)) { + // Count can be represented as a sequence of digits + currentCount = currentCount * 10 + parseInt(currentChar, 10); + countSpecified = true; + } else if (currentChar === '*' && countSpecified === false) { + // Count can be represented by a star character + currentCount = Infinity; + countSpecified = true; + } else if (modifiers.indexOf(currentChar) !== -1 && countSpecified === false) { + // Directives can be specified only after directive and before count + currentModifiers.push(currentChar); + } else { + yieldAndReset(); + } + } + } - return self.hash['$empty?']() - }, TMP_Set_empty$q_22.$$arity = 0); - - Opal.defn(self, '$eql?', TMP_Set_eql$q_24 = function(other) { - var TMP_23, self = this; + yieldAndReset(); + } + + })($nesting[0], $nesting) +}; - return self.hash['$eql?']($send(other, 'instance_eval', [], (TMP_23 = function(){var self = TMP_23.$$s || this; - if (self.hash == null) self.hash = nil; +Opal.modules["corelib/string/unpack"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; - return self.hash}, TMP_23.$$s = self, TMP_23.$$arity = 0, TMP_23))) - }, TMP_Set_eql$q_24.$$arity = 1); - - Opal.defn(self, '$clear', TMP_Set_clear_25 = function $$clear() { - var self = this; + Opal.add_stubs(['$require', '$flatten', '$decode64', '$raise', '$delete', '$gsub', '$coerce_to!', '$inspect', '$[]', '$unpack']); + + self.$require("base64"); + self.$require("corelib/pack_unpack/format_string_parser"); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'String'); - - self.hash.$clear(); - return self; - }, TMP_Set_clear_25.$$arity = 0); - - Opal.defn(self, '$include?', TMP_Set_include$q_26 = function(o) { - var self = this; + var $nesting = [self].concat($parent_nesting), $String_unpack$1, $String_unpack1$2, expected = nil, given = nil; - return self.hash['$include?'](o) - }, TMP_Set_include$q_26.$$arity = 1); - Opal.alias(self, "member?", "include?"); - Opal.defn(self, '$merge', TMP_Set_merge_28 = function $$merge(enum$) { - var TMP_27, self = this; - - - $send(enum$, 'each', [], (TMP_27 = function(item){var self = TMP_27.$$s || this; -if (item == null) item = nil; - return self.$add(item)}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)); - return self; - }, TMP_Set_merge_28.$$arity = 1); - Opal.defn(self, '$replace', TMP_Set_replace_29 = function $$replace(enum$) { - var self = this; + // Format Parser + var eachDirectiveAndCount = Opal.PackUnpack.eachDirectiveAndCount; - - self.$clear(); - self.$merge(enum$); - return self; - }, TMP_Set_replace_29.$$arity = 1); - - Opal.defn(self, '$size', TMP_Set_size_30 = function $$size() { - var self = this; + function flattenArray(callback) { + return function(data) { + var array = callback(data); + return (array).$flatten(); + } + } - return self.hash.$size() - }, TMP_Set_size_30.$$arity = 0); - Opal.alias(self, "length", "size"); - - Opal.defn(self, '$subtract', TMP_Set_subtract_32 = function $$subtract(enum$) { - var TMP_31, self = this; + function mapChunksToWords(callback) { + return function(data) { + var chunks = callback(data); - - $send(enum$, 'each', [], (TMP_31 = function(item){var self = TMP_31.$$s || this; -if (item == null) item = nil; - return self.$delete(item)}, TMP_31.$$s = self, TMP_31.$$arity = 1, TMP_31)); - return self; - }, TMP_Set_subtract_32.$$arity = 1); - - Opal.defn(self, '$|', TMP_Set_$_33 = function(enum$) { - var self = this; + return chunks.map(function(chunk) { + return chunk.reverse().reduce(function(result, singleByte) { + return result * 256 + singleByte; + }, 0); + }); + } + } + + function chunkBy(chunkSize, callback) { + return function(data) { + var array = callback(data), + chunks = [], + chunksCount = (array.length / chunkSize); + + for (var i = 0; i < chunksCount; i++) { + var chunk = array.splice(0, chunkSize); + if (chunk.length === chunkSize) { + chunks.push(chunk); + } + } - - if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be enumerable") - }; - return self.$dup().$merge(enum$); - }, TMP_Set_$_33.$$arity = 1); - - Opal.defn(self, '$superset?', TMP_Set_superset$q_35 = function(set) { - var $a, TMP_34, self = this; + return chunks; + } + } - - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); - if ($truthy($rb_lt(self.$size(), set.$size()))) { - return false}; - return $send(set, 'all?', [], (TMP_34 = function(o){var self = TMP_34.$$s || this; -if (o == null) o = nil; - return self['$include?'](o)}, TMP_34.$$s = self, TMP_34.$$arity = 1, TMP_34)); - }, TMP_Set_superset$q_35.$$arity = 1); - Opal.alias(self, ">=", "superset?"); - - Opal.defn(self, '$proper_superset?', TMP_Set_proper_superset$q_37 = function(set) { - var $a, TMP_36, self = this; + function toNByteSigned(bytesCount, callback) { + return function(data) { + var unsignedBits = callback(data), + bitsCount = bytesCount * 8, + limit = Math.pow(2, bitsCount); - - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); - if ($truthy($rb_le(self.$size(), set.$size()))) { - return false}; - return $send(set, 'all?', [], (TMP_36 = function(o){var self = TMP_36.$$s || this; -if (o == null) o = nil; - return self['$include?'](o)}, TMP_36.$$s = self, TMP_36.$$arity = 1, TMP_36)); - }, TMP_Set_proper_superset$q_37.$$arity = 1); - Opal.alias(self, ">", "proper_superset?"); - - Opal.defn(self, '$subset?', TMP_Set_subset$q_39 = function(set) { - var $a, TMP_38, self = this; + return unsignedBits.map(function(n) { + if (n >= limit / 2) { + n -= limit; + } - - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); - if ($truthy($rb_lt(set.$size(), self.$size()))) { - return false}; - return $send(self, 'all?', [], (TMP_38 = function(o){var self = TMP_38.$$s || this; -if (o == null) o = nil; - return set['$include?'](o)}, TMP_38.$$s = self, TMP_38.$$arity = 1, TMP_38)); - }, TMP_Set_subset$q_39.$$arity = 1); - Opal.alias(self, "<=", "subset?"); - - Opal.defn(self, '$proper_subset?', TMP_Set_proper_subset$q_41 = function(set) { - var $a, TMP_40, self = this; + return n; + }); + } + } - - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); - if ($truthy($rb_le(set.$size(), self.$size()))) { - return false}; - return $send(self, 'all?', [], (TMP_40 = function(o){var self = TMP_40.$$s || this; -if (o == null) o = nil; - return set['$include?'](o)}, TMP_40.$$s = self, TMP_40.$$arity = 1, TMP_40)); - }, TMP_Set_proper_subset$q_41.$$arity = 1); - Opal.alias(self, "<", "proper_subset?"); - Opal.alias(self, "+", "|"); - Opal.alias(self, "union", "|"); - return (Opal.defn(self, '$to_a', TMP_Set_to_a_42 = function $$to_a() { - var self = this; + function bytesToAsciiChars(callback) { + return function(data) { + var bytes = callback(data); - return self.hash.$keys() - }, TMP_Set_to_a_42.$$arity = 0), nil) && 'to_a'; - })($nesting[0], null, $nesting); - return (function($base, $parent_nesting) { - var $Enumerable, self = $Enumerable = $module($base, 'Enumerable'); + return bytes.map(function(singleByte) { + return String.fromCharCode(singleByte); + }); + } + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerable_to_set_43; + function joinChars(callback) { + return function(data) { + var chars = callback(data); + return chars.join(''); + } + } - - Opal.defn(self, '$to_set', TMP_Enumerable_to_set_43 = function $$to_set(klass, $a_rest) { - var self = this, args, $iter = TMP_Enumerable_to_set_43.$$p, block = $iter || nil; + function wrapIntoArray(callback) { + return function(data) { + var object = callback(data); + return [object]; + } + } - if (klass == null) { - klass = Opal.const_get_relative($nesting, 'Set'); + function filterTrailingChars(chars) { + var charCodesToFilter = chars.map(function(s) { return s.charCodeAt(0); }); + + return function(callback) { + return function(data) { + var charCodes = callback(data); + + while (charCodesToFilter.indexOf(charCodes[charCodes.length - 1]) !== -1) { + charCodes = charCodes.slice(0, charCodes.length - 1); + } + + return charCodes; + } } - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; + } + + var filterTrailingZerosAndSpaces = filterTrailingChars(["\u0000", " "]); + + function invertChunks(callback) { + return function(data) { + var chunks = callback(data); + + return chunks.map(function(chunk) { + return chunk.reverse(); + }); } - if ($iter) TMP_Enumerable_to_set_43.$$p = null; - return $send(klass, 'new', [self].concat(Opal.to_a(args)), block.$to_proc()) - }, TMP_Enumerable_to_set_43.$$arity = -1) - })($nesting[0], $nesting); -}; + } -/* Generated by Opal 0.11.4 */ -Opal.modules["ast/node"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; + function uudecode(callback) { + return function(data) { + var bytes = callback(data); - Opal.add_stubs(['$attr_reader', '$to_sym', '$freeze', '$to_a', '$assign_properties', '$hash', '$class', '$eql?', '$type', '$children', '$each', '$instance_variable_set', '$protected', '$private', '$==', '$nil?', '$send', '$original_dup', '$equal?', '$respond_to?', '$to_ast', '$updated', '$+', '$*', '$fancy_type', '$is_a?', '$to_sexp', '$inspect', '$map', '$to_sexp_array', '$gsub', '$to_s']); - return (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); + var stop = false; + var i = 0, length = 0; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var result = []; - (function($base, $super, $parent_nesting) { - function $Node(){}; - var self = $Node = $klass($base, $super, 'Node', $Node); + do { + if (i < bytes.length) { + var n = bytes[i] - 32 & 0x3F; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Node_initialize_1, TMP_Node_eql$q_2, TMP_Node_assign_properties_4, TMP_Node_dup_5, TMP_Node_updated_6, TMP_Node_$eq$eq_7, TMP_Node_concat_8, TMP_Node_append_9, TMP_Node_to_sexp_11, TMP_Node_inspect_13, TMP_Node_to_ast_14, TMP_Node_to_sexp_array_16, TMP_Node_fancy_type_17; + ++i; - def.type = def.children = nil; - - self.$attr_reader("type"); - self.$attr_reader("children"); - Opal.alias(self, "to_a", "children"); - self.$attr_reader("hash"); - - Opal.defn(self, '$initialize', TMP_Node_initialize_1 = function $$initialize(type, children, properties) { - var $a, self = this; + if (bytes[i] === 10) { + continue; + } - if (children == null) { - children = []; - } - if (properties == null) { - properties = $hash2([], {}); - } - - $a = [type.$to_sym(), children.$to_a().$freeze()], (self.type = $a[0]), (self.children = $a[1]), $a; - self.$assign_properties(properties); - self.hash = [self.type, self.children, self.$class()].$hash(); - return self.$freeze(); - }, TMP_Node_initialize_1.$$arity = -2); - - Opal.defn(self, '$eql?', TMP_Node_eql$q_2 = function(other) { - var $a, $b, self = this; + if (n > 45) { + return ''; + } - return ($truthy($a = ($truthy($b = self.$class()['$eql?'](other.$class())) ? self.type['$eql?'](other.$type()) : $b)) ? self.children['$eql?'](other.$children()) : $a) - }, TMP_Node_eql$q_2.$$arity = 1); - - Opal.defn(self, '$assign_properties', TMP_Node_assign_properties_4 = function $$assign_properties(properties) { - var TMP_3, self = this; + length += n; - - $send(properties, 'each', [], (TMP_3 = function(name, value){var self = TMP_3.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return self.$instance_variable_set("" + "@" + (name), value)}, TMP_3.$$s = self, TMP_3.$$arity = 2, TMP_3)); - return nil; - }, TMP_Node_assign_properties_4.$$arity = 1); - self.$protected("assign_properties"); - Opal.alias(self, "original_dup", "dup"); - self.$private("original_dup"); - - Opal.defn(self, '$dup', TMP_Node_dup_5 = function $$dup() { - var self = this; + while (n > 0) { + var c1 = bytes[i]; + var c2 = bytes[i + 1]; + var c3 = bytes[i + 2]; + var c4 = bytes[i + 3]; - return self - }, TMP_Node_dup_5.$$arity = 0); - Opal.alias(self, "clone", "dup"); - - Opal.defn(self, '$updated', TMP_Node_updated_6 = function $$updated(type, children, properties) { - var $a, $b, self = this, new_type = nil, new_children = nil, new_properties = nil; + var b1 = (c1 - 32 & 0x3F) << 2 | (c2 - 32 & 0x3F) >> 4; + var b2 = (c2 - 32 & 0x3F) << 4 | (c3 - 32 & 0x3F) >> 2; + var b3 = (c3 - 32 & 0x3F) << 6 | c4 - 32 & 0x3F; - if (type == null) { - type = nil; - } - if (children == null) { - children = nil; - } - if (properties == null) { - properties = nil; - } - - new_type = ($truthy($a = type) ? $a : self.type); - new_children = ($truthy($a = children) ? $a : self.children); - new_properties = ($truthy($a = properties) ? $a : $hash2([], {})); - if ($truthy(($truthy($a = (($b = self.type['$=='](new_type)) ? self.children['$=='](new_children) : self.type['$=='](new_type))) ? properties['$nil?']() : $a))) { - return self - } else { - return self.$original_dup().$send("initialize", new_type, new_children, new_properties) - }; - }, TMP_Node_updated_6.$$arity = -1); - - Opal.defn(self, '$==', TMP_Node_$eq$eq_7 = function(other) { - var $a, self = this; + result.push(b1 & 0xFF); + result.push(b2 & 0xFF); + result.push(b3 & 0xFF); - if ($truthy(self['$equal?'](other))) { - return true - } else if ($truthy(other['$respond_to?']("to_ast"))) { - - other = other.$to_ast(); - return (($a = other.$type()['$=='](self.$type())) ? other.$children()['$=='](self.$children()) : other.$type()['$=='](self.$type())); + i += 4; + n -= 3; + } + + ++i; } else { - return false - } - }, TMP_Node_$eq$eq_7.$$arity = 1); - - Opal.defn(self, '$concat', TMP_Node_concat_8 = function $$concat(array) { - var self = this; + break; + } + } while (true); - return self.$updated(nil, $rb_plus(self.children, array.$to_a())) - }, TMP_Node_concat_8.$$arity = 1); - Opal.alias(self, "+", "concat"); - - Opal.defn(self, '$append', TMP_Node_append_9 = function $$append(element) { - var self = this; + return result.slice(0, length); + } + } - return self.$updated(nil, $rb_plus(self.children, [element])) - }, TMP_Node_append_9.$$arity = 1); - Opal.alias(self, "<<", "append"); - - Opal.defn(self, '$to_sexp', TMP_Node_to_sexp_11 = function $$to_sexp(indent) { - var TMP_10, self = this, indented = nil, sexp = nil; + function toBits(callback) { + return function(data) { + var bytes = callback(data); - if (indent == null) { - indent = 0; - } - - indented = $rb_times(" ", indent); - sexp = "" + (indented) + "(" + (self.$fancy_type()); - $send(self.$children(), 'each', [], (TMP_10 = function(child){var self = TMP_10.$$s || this; -if (child == null) child = nil; - if ($truthy(child['$is_a?'](Opal.const_get_relative($nesting, 'Node')))) { - return (sexp = $rb_plus(sexp, "" + "\n" + (child.$to_sexp($rb_plus(indent, 1))))) - } else { - return (sexp = $rb_plus(sexp, "" + " " + (child.$inspect()))) - }}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)); - sexp = $rb_plus(sexp, ")"); - return sexp; - }, TMP_Node_to_sexp_11.$$arity = -1); - Opal.alias(self, "to_s", "to_sexp"); - - Opal.defn(self, '$inspect', TMP_Node_inspect_13 = function $$inspect(indent) { - var TMP_12, self = this, indented = nil, sexp = nil; + var bits = bytes.map(function(singleByte) { + return singleByte.toString(2); + }); - if (indent == null) { - indent = 0; - } - - indented = $rb_times(" ", indent); - sexp = "" + (indented) + "s(:" + (self.type); - $send(self.$children(), 'each', [], (TMP_12 = function(child){var self = TMP_12.$$s || this; -if (child == null) child = nil; - if ($truthy(child['$is_a?'](Opal.const_get_relative($nesting, 'Node')))) { - return (sexp = $rb_plus(sexp, "" + ",\n" + (child.$inspect($rb_plus(indent, 1))))) - } else { - return (sexp = $rb_plus(sexp, "" + ", " + (child.$inspect()))) - }}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)); - sexp = $rb_plus(sexp, ")"); - return sexp; - }, TMP_Node_inspect_13.$$arity = -1); - - Opal.defn(self, '$to_ast', TMP_Node_to_ast_14 = function $$to_ast() { - var self = this; + return bits; + } + } - return self - }, TMP_Node_to_ast_14.$$arity = 0); - - Opal.defn(self, '$to_sexp_array', TMP_Node_to_sexp_array_16 = function $$to_sexp_array() { - var TMP_15, self = this, children_sexp_arrs = nil; + function decodeBERCompressedIntegers(callback) { + return function(data) { + var bytes = callback(data), result = [], buffer = ''; - - children_sexp_arrs = $send(self.$children(), 'map', [], (TMP_15 = function(child){var self = TMP_15.$$s || this; -if (child == null) child = nil; - if ($truthy(child['$is_a?'](Opal.const_get_relative($nesting, 'Node')))) { - return child.$to_sexp_array() - } else { - return child - }}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)); - return [self.$type()].concat(Opal.to_a(children_sexp_arrs)); - }, TMP_Node_to_sexp_array_16.$$arity = 0); - self.$protected(); - return (Opal.defn(self, '$fancy_type', TMP_Node_fancy_type_17 = function $$fancy_type() { - var self = this; + for (var i = 0; i < bytes.length; i++) { + var singleByte = bytes[i], + bits = singleByte.toString(2); - return self.type.$to_s().$gsub("_", "-") - }, TMP_Node_fancy_type_17.$$arity = 0), nil) && 'fancy_type'; - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) -}; + bits = Array(8 - bits.length + 1).join('0').concat(bits); -/* Generated by Opal 0.11.4 */ -Opal.modules["ast/processor/mixin"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var firstBit = bits[0]; + bits = bits.slice(1, bits.length); - Opal.add_stubs(['$nil?', '$to_ast', '$type', '$respond_to?', '$send', '$handler_missing', '$map', '$to_a', '$process']); - return (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); + buffer = buffer.concat(bits); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if (firstBit === '0') { + var decoded = parseInt(buffer, 2); + result.push(decoded); + buffer = '' + } + } - (function($base, $super, $parent_nesting) { - function $Processor(){}; - var self = $Processor = $klass($base, $super, 'Processor', $Processor); + return result; + } + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + function base64Decode(callback) { + return function(data) { + return $$($nesting, 'Base64').$decode64(callback(data)); + } + } + + // quoted-printable decode + function qpdecode(callback) { + return function(data) { + var string = callback(data); + + return string + .replace(/[\t\x20]$/gm, '') + .replace(/=(?:\r\n?|\n|$)/g, '') + .replace(/=([a-fA-F0-9]{2})/g, function($0, $1) { + var codePoint = parseInt($1, 16); + return String.fromCharCode(codePoint); + }); + } + } + + function identityFunction(value) { return value; } + + var handlers = { + // Integer + 'C': identityFunction, + 'S': mapChunksToWords(chunkBy(2, identityFunction)), + 'L': mapChunksToWords(chunkBy(4, identityFunction)), + 'Q': mapChunksToWords(chunkBy(8, identityFunction)), + 'J': null, + + 'S>': mapChunksToWords(invertChunks(chunkBy(2, identityFunction))), + 'L>': mapChunksToWords(invertChunks(chunkBy(4, identityFunction))), + 'Q>': mapChunksToWords(invertChunks(chunkBy(8, identityFunction))), + + 'c': toNByteSigned(1, identityFunction), + 's': toNByteSigned(2, mapChunksToWords(chunkBy(2, identityFunction))), + 'l': toNByteSigned(4, mapChunksToWords(chunkBy(4, identityFunction))), + 'q': toNByteSigned(8, mapChunksToWords(chunkBy(8, identityFunction))), + 'j': null, + + 's>': toNByteSigned(2, mapChunksToWords(invertChunks(chunkBy(2, identityFunction)))), + 'l>': toNByteSigned(4, mapChunksToWords(invertChunks(chunkBy(4, identityFunction)))), + 'q>': toNByteSigned(8, mapChunksToWords(invertChunks(chunkBy(8, identityFunction)))), + + 'n': null, // aliased later + 'N': null, // aliased later + 'v': null, // aliased later + 'V': null, // aliased later + + 'U': identityFunction, + 'w': decodeBERCompressedIntegers(identityFunction), + + // Float + 'D': null, + 'd': null, + 'F': null, + 'f': null, + 'E': null, + 'e': null, + 'G': null, + 'g': null, + + // String + 'A': wrapIntoArray(joinChars(bytesToAsciiChars(filterTrailingZerosAndSpaces(identityFunction)))), + 'a': wrapIntoArray(joinChars(bytesToAsciiChars(identityFunction))), + 'Z': joinChars(bytesToAsciiChars(identityFunction)), + 'B': joinChars(identityFunction), + 'b': joinChars(identityFunction), + 'H': joinChars(identityFunction), + 'h': joinChars(identityFunction), + 'u': joinChars(bytesToAsciiChars(uudecode(identityFunction))), + 'M': qpdecode(joinChars(bytesToAsciiChars(identityFunction))), + 'm': base64Decode(joinChars(bytesToAsciiChars(identityFunction))), + + 'P': null, + 'p': null + }; - return (function($base, $parent_nesting) { - var $Mixin, self = $Mixin = $module($base, 'Mixin'); + function readBytes(n) { + return function(bytes) { + var chunk = bytes.slice(0, n); + bytes = bytes.slice(n, bytes.length); + return { chunk: chunk, rest: bytes }; + } + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Mixin_process_1, TMP_Mixin_process_all_3, TMP_Mixin_handler_missing_4; + function readUnicodeCharChunk(bytes) { + var currentByteIndex = 0; + var bytesLength = bytes.length; + function readByte() { + var result = bytes[currentByteIndex++]; + bytesLength = bytes.length - currentByteIndex; + return result; + } - - - Opal.defn(self, '$process', TMP_Mixin_process_1 = function $$process(node) { - var self = this, on_handler = nil, new_node = nil; + var c = readByte(), extraLength; - - if ($truthy(node['$nil?']())) { - return nil}; - node = node.$to_ast(); - on_handler = "" + "on_" + (node.$type()); - if ($truthy(self['$respond_to?'](on_handler))) { - new_node = self.$send(on_handler, node) - } else { - new_node = self.$handler_missing(node) - }; - if ($truthy(new_node)) { - node = new_node}; - return node; - }, TMP_Mixin_process_1.$$arity = 1); - - Opal.defn(self, '$process_all', TMP_Mixin_process_all_3 = function $$process_all(nodes) { - var TMP_2, self = this; + if (c >> 7 == 0) { + // 0xxx xxxx + return { chunk: [c], rest: bytes.slice(currentByteIndex) }; + } - return $send(nodes.$to_a(), 'map', [], (TMP_2 = function(node){var self = TMP_2.$$s || this; -if (node == null) node = nil; - return self.$process(node)}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)) - }, TMP_Mixin_process_all_3.$$arity = 1); - - Opal.defn(self, '$handler_missing', TMP_Mixin_handler_missing_4 = function $$handler_missing(node) { - var self = this; + if (c >> 6 == 0x02) { + self.$raise($$($nesting, 'ArgumentError'), "malformed UTF-8 character") + } - return nil - }, TMP_Mixin_handler_missing_4.$$arity = 1); - })($nesting[0], $nesting) - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) -}; + if (c >> 5 == 0x06) { + // 110x xxxx (two bytes) + extraLength = 1; + } else if (c >> 4 == 0x0e) { + // 1110 xxxx (three bytes) + extraLength = 2; + } else if (c >> 3 == 0x1e) { + // 1111 0xxx (four bytes) + extraLength = 3; + } else if (c >> 2 == 0x3e) { + // 1111 10xx (five bytes) + extraLength = 4; + } else if (c >> 1 == 0x7e) { + // 1111 110x (six bytes) + extraLength = 5; + } else { + self.$raise("malformed UTF-8 character") + } -/* Generated by Opal 0.11.4 */ -Opal.modules["ast/processor"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; + if (extraLength > bytesLength) { + ((expected = extraLength + 1), (given = bytesLength + 1), self.$raise($$($nesting, 'ArgumentError'), "" + "malformed UTF-8 character (expected " + (expected) + " bytes, given " + (given) + " bytes)")) + } - Opal.add_stubs(['$require', '$include']); - return (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); + // Remove the UTF-8 prefix from the char + var mask = (1 << (8 - extraLength - 1)) - 1, + result = c & mask; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + for (var i = 0; i < extraLength; i++) { + c = readByte(); - (function($base, $super, $parent_nesting) { - function $Processor(){}; - var self = $Processor = $klass($base, $super, 'Processor', $Processor); + if (c >> 6 != 0x02) { + self.$raise("Invalid multibyte sequence") + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + result = (result << 6) | (c & 0x3f); + } - - self.$require("ast/processor/mixin"); - return self.$include(Opal.const_get_relative($nesting, 'Mixin')); - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) -}; + if (result <= 0xffff) { + return { chunk: [result], rest: bytes.slice(currentByteIndex) }; + } else { + result -= 0x10000; + var high = ((result >> 10) & 0x3ff) + 0xd800, + low = (result & 0x3ff) + 0xdc00; + return { chunk: [high, low], rest: bytes.slice(currentByteIndex) }; + } + } -/* Generated by Opal 0.11.4 */ -Opal.modules["ast/sexp"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; + function readUuencodingChunk(buffer) { + var length = buffer.indexOf(32); // 32 = space - Opal.add_stubs(['$new']); - return (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); + if (length === -1) { + return { chunk: buffer, rest: [] }; + } else { + return { chunk: buffer.slice(0, length), rest: buffer.slice(length, buffer.length) }; + } + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + function readNBitsLSBFirst(buffer, count) { + var result = ''; - (function($base, $parent_nesting) { - var $Sexp, self = $Sexp = $module($base, 'Sexp'); + while (count > 0 && buffer.length > 0) { + var singleByte = buffer[0], + bitsToTake = Math.min(count, 8), + bytesToTake = Math.ceil(bitsToTake / 8); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Sexp_s_1; + buffer = buffer.slice(1, buffer.length); - - Opal.defn(self, '$s', TMP_Sexp_s_1 = function $$s(type, $a_rest) { - var self = this, children; + if (singleByte != null) { + var bits = singleByte.toString(2); + bits = Array(8 - bits.length + 1).join('0').concat(bits).split('').reverse().join(''); - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - children = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - children[$arg_idx - 1] = arguments[$arg_idx]; + for (var j = 0; j < bitsToTake; j++) { + result += bits[j] || '0'; + count--; + } } - return Opal.const_get_relative($nesting, 'Node').$new(type, children) - }, TMP_Sexp_s_1.$$arity = -2) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; + } -/* Generated by Opal 0.11.4 */ -Opal.modules["ast"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; + return { chunk: [result], rest: buffer }; + } - Opal.add_stubs(['$require']); - return (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); + function readNBitsMSBFirst(buffer, count) { + var result = ''; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + while (count > 0 && buffer.length > 0) { + var singleByte = buffer[0], + bitsToTake = Math.min(count, 8), + bytesToTake = Math.ceil(bitsToTake / 8); - - self.$require("ast/node"); - self.$require("ast/processor"); - self.$require("ast/sexp"); - })($nesting[0], $nesting) -}; + buffer = buffer.slice(1, buffer.length); -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/ast/node"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + if (singleByte != null) { + var bits = singleByte.toString(2); + bits = Array(8 - bits.length + 1).join('0').concat(bits); - Opal.add_stubs(['$attr_reader', '$[]', '$frozen?', '$dup', '$node=', '$-']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + for (var j = 0; j < bitsToTake; j++) { + result += bits[j] || '0'; + count--; + } + } + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return { chunk: [result], rest: buffer }; + } - (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); + function readWhileFirstBitIsOne(buffer) { + var result = []; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + for (var i = 0; i < buffer.length; i++) { + var singleByte = buffer[i]; - (function($base, $super, $parent_nesting) { - function $Node(){}; - var self = $Node = $klass($base, $super, 'Node', $Node); + result.push(singleByte); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Node_assign_properties_1; + if ((singleByte & 128) === 0) { + break; + } + } - - self.$attr_reader("location"); - Opal.alias(self, "loc", "location"); - return (Opal.defn(self, '$assign_properties', TMP_Node_assign_properties_1 = function $$assign_properties(properties) { - var self = this, location = nil, $writer = nil; + return { chunk: result, rest: buffer.slice(result.length, buffer.length) }; + } - if ($truthy((location = properties['$[]']("location")))) { - - if ($truthy(location['$frozen?']())) { - location = location.$dup()}; - - $writer = [self]; - $send(location, 'node=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return (self.location = location); - } else { - return nil - } - }, TMP_Node_assign_properties_1.$$arity = 1), nil) && 'assign_properties'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified('::', 'AST'), 'Node'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; + function readTillNullCharacter(buffer, count) { + var result = []; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/ast/node"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + for (var i = 0; i < count && i < buffer.length; i++) { + var singleByte = buffer[i]; - Opal.add_stubs(['$require', '$attr_reader', '$[]', '$frozen?', '$dup', '$merge!', '$loc', '$line', '$column']); - - self.$require("ast"); - self.$require("parser/ast/node"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + if (singleByte === 0) { + break; + } else { + result.push(singleByte); + } + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if (count === Infinity) { + count = result.length; + } - (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); + if (buffer[count] === 0) { + count++; + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + buffer = buffer.slice(count, buffer.length); - (function($base, $super, $parent_nesting) { - function $Node(){}; - var self = $Node = $klass($base, $super, 'Node', $Node); + return { chunk: result, rest: buffer }; + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Node_assign_properties_1, TMP_Node_line_2, TMP_Node_column_3; + function readHexCharsHighNibbleFirst(buffer, count) { + var result = []; - def.meta = nil; - - self.$attr_reader("meta"); - - Opal.defn(self, '$assign_properties', TMP_Node_assign_properties_1 = function $$assign_properties(properties) { - var $a, self = this, $iter = TMP_Node_assign_properties_1.$$p, $yield = $iter || nil, meta = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + while (count > 0 && buffer.length > 0) { + var singleByte = buffer[0], + hex = singleByte.toString(16); - if ($iter) TMP_Node_assign_properties_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - - if ($truthy((meta = properties['$[]']("meta")))) { - - if ($truthy(meta['$frozen?']())) { - meta = meta.$dup()}; - self.meta['$merge!'](meta); - } else { - self.meta = ($truthy($a = self.meta) ? $a : $hash2([], {})) - }; - return $send(self, Opal.find_super_dispatcher(self, 'assign_properties', TMP_Node_assign_properties_1, false), $zuper, $iter); - }, TMP_Node_assign_properties_1.$$arity = 1); - - Opal.defn(self, '$line', TMP_Node_line_2 = function $$line() { - var self = this; + buffer = buffer.slice(1, buffer.length); + hex = Array(2 - hex.length + 1).join('0').concat(hex); - if ($truthy(self.$loc())) { - return self.$loc().$line() - } else { - return nil - } - }, TMP_Node_line_2.$$arity = 0); - return (Opal.defn(self, '$column', TMP_Node_column_3 = function $$column() { - var self = this; + if (count === 1) { + result.push(hex[0]); + count--; + } else { + result.push(hex[0], hex[1]); + count -= 2; + } + } - if ($truthy(self.$loc())) { - return self.$loc().$column() - } else { - return nil - } - }, TMP_Node_column_3.$$arity = 0), nil) && 'column'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Parser'), 'AST'), 'Node'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; + return { chunk: result, rest: buffer }; + } -/* Generated by Opal 0.11.4 */ -Opal.modules["racc/parser"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - var $a, self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars, $send = Opal.send; + function readHexCharsLowNibbleFirst(buffer, count) { + var result = []; - Opal.add_stubs(['$[]', '$class', '$<', '$size', '$[]=', '$-', '$__send__', '$_racc_setup', '$raise', '$_racc_init_sysvars', '$catch', '$!=', '$next_token', '$racc_read_token', '$+', '$>=', '$==', '$_racc_evalact', '$!', '$>', '$push', '$racc_shift', '$-@', '$_racc_do_reduce', '$===', '$racc_accept', '$throw', '$on_error', '$<=', '$pop', '$racc_e_pop', '$inspect', '$racc_next_state', '$*', '$racc_reduce', '$sprintf', '$token_to_str', '$print', '$racc_token2str', '$puts', '$racc_print_stacks', '$empty?', '$each', '$racc_print_states', '$each_index']); - - (function($base, $parent_nesting) { - var $Racc, self = $Racc = $module($base, 'Racc'); + while (count > 0 && buffer.length > 0) { + var singleByte = buffer[0], + hex = singleByte.toString(16); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + buffer = buffer.slice(1, buffer.length); + hex = Array(2 - hex.length + 1).join('0').concat(hex); - (function($base, $super, $parent_nesting) { - function $ParseError(){}; - var self = $ParseError = $klass($base, $super, 'ParseError', $ParseError); + if (count === 1) { + result.push(hex[1]); + count--; + } else { + result.push(hex[1], hex[0]); + count -= 2; + } + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return { chunk: result, rest: buffer }; + } - return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting) - })($nesting[0], $nesting); - if ($truthy((($a = Opal.const_get_qualified('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'ParseError', Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Racc'), 'ParseError')) - }; - return (function($base, $parent_nesting) { - var $Racc, self = $Racc = $module($base, 'Racc'); + function readNTimesAndMerge(callback) { + return function(buffer, count) { + var chunk = [], chunkData; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), $a; + if (count === Infinity) { + while (buffer.length > 0) { + chunkData = callback(buffer); + buffer = chunkData.rest; + chunk = chunk.concat(chunkData.chunk); + } + } else { + for (var i = 0; i < count; i++) { + chunkData = callback(buffer); + buffer = chunkData.rest; + chunk = chunk.concat(chunkData.chunk); + } + } + return { chunk: chunk, rest: buffer }; + } + } + + function readAll(buffer, count) { + return { chunk: buffer, rest: [] }; + } + + var readChunk = { + // Integer + 'C': readNTimesAndMerge(readBytes(1)), + 'S': readNTimesAndMerge(readBytes(2)), + 'L': readNTimesAndMerge(readBytes(4)), + 'Q': readNTimesAndMerge(readBytes(8)), + 'J': null, + + 'S>': readNTimesAndMerge(readBytes(2)), + 'L>': readNTimesAndMerge(readBytes(4)), + 'Q>': readNTimesAndMerge(readBytes(8)), + + 'c': readNTimesAndMerge(readBytes(1)), + 's': readNTimesAndMerge(readBytes(2)), + 'l': readNTimesAndMerge(readBytes(4)), + 'q': readNTimesAndMerge(readBytes(8)), + 'j': null, + + 's>': readNTimesAndMerge(readBytes(2)), + 'l>': readNTimesAndMerge(readBytes(4)), + 'q>': readNTimesAndMerge(readBytes(8)), + + 'n': null, // aliased later + 'N': null, // aliased later + 'v': null, // aliased later + 'V': null, // aliased later + + 'U': readNTimesAndMerge(readUnicodeCharChunk), + 'w': readNTimesAndMerge(readWhileFirstBitIsOne), + + // Float + 'D': null, + 'd': null, + 'F': null, + 'f': null, + 'E': null, + 'e': null, + 'G': null, + 'g': null, + + // String + 'A': readNTimesAndMerge(readBytes(1)), + 'a': readNTimesAndMerge(readBytes(1)), + 'Z': readTillNullCharacter, + 'B': readNBitsMSBFirst, + 'b': readNBitsLSBFirst, + 'H': readHexCharsHighNibbleFirst, + 'h': readHexCharsLowNibbleFirst, + 'u': readNTimesAndMerge(readUuencodingChunk), + 'M': readAll, + 'm': readAll, + + 'P': null, + 'p': null + } + + var autocompletion = { + // Integer + 'C': true, + 'S': true, + 'L': true, + 'Q': true, + 'J': null, + + 'S>': true, + 'L>': true, + 'Q>': true, + + 'c': true, + 's': true, + 'l': true, + 'q': true, + 'j': null, + + 's>': true, + 'l>': true, + 'q>': true, + + 'n': null, // aliased later + 'N': null, // aliased later + 'v': null, // aliased later + 'V': null, // aliased later + + 'U': false, + 'w': false, + + // Float + 'D': null, + 'd': null, + 'F': null, + 'f': null, + 'E': null, + 'e': null, + 'G': null, + 'g': null, + + // String + 'A': false, + 'a': false, + 'Z': false, + 'B': false, + 'b': false, + 'H': false, + 'h': false, + 'u': false, + 'M': false, + 'm': false, + + 'P': null, + 'p': null + } + + var optimized = { + 'C*': handlers['C'], + 'c*': handlers['c'], + 'A*': handlers['A'], + 'a*': handlers['a'], + 'M*': wrapIntoArray(handlers['M']), + 'm*': wrapIntoArray(handlers['m']), + 'S*': handlers['S'], + 's*': handlers['s'], + 'L*': handlers['L'], + 'l*': handlers['l'], + 'Q*': handlers['Q'], + 'q*': handlers['q'], + 'S>*': handlers['S>'], + 's>*': handlers['s>'], + 'L>*': handlers['L>'], + 'l>*': handlers['l>'], + 'Q>*': handlers['Q>'], + 'q>*': handlers['q>'] + } + + function alias(existingDirective, newDirective) { + readChunk[newDirective] = readChunk[existingDirective]; + handlers[newDirective] = handlers[existingDirective]; + autocompletion[newDirective] = autocompletion[existingDirective]; + } + + alias('S>', 'n'); + alias('L>', 'N'); + + alias('S', 'v'); + alias('L', 'V'); + ; - if ($truthy((($a = Opal.const_get_relative($nesting, 'Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { - } else { - Opal.const_set($nesting[0], 'Racc_No_Extensions', false) - }; - (function($base, $super, $parent_nesting) { - function $Parser(){}; - var self = $Parser = $klass($base, $super, 'Parser', $Parser); + Opal.def(self, '$unpack', $String_unpack$1 = function $$unpack(format) { + var self = this; + + + format = $$($nesting, 'Opal')['$coerce_to!'](format, $$($nesting, 'String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); + + var output = []; + + // A very optimized handler for U*. + if (format == "U*" && + self.internal_encoding.name === "UTF-8" && + typeof self.codePointAt === "function") { + + var cp, j = 0; + + output = new Array(self.length); + for (var i = 0; i < self.length; i++) { + cp = output[j++] = self.codePointAt(i); + if (cp > 0xffff) i++; + } + return output.slice(0, j); + } + + var buffer = self.$bytes(); + + + // optimization + var optimizedHandler = optimized[format]; + if (optimizedHandler) { + return optimizedHandler(buffer); + } + + function autocomplete(array, size) { + while (array.length < size) { + array.push(nil); + } + + return array; + } + + function processChunk(directive, count) { + var chunk, + chunkReader = readChunk[directive]; + + if (chunkReader == null) { + self.$raise("" + "Unsupported unpack directive " + ((directive).$inspect()) + " (no chunk reader defined)") + } + + var chunkData = chunkReader(buffer, count); + chunk = chunkData.chunk; + buffer = chunkData.rest; + + var handler = handlers[directive]; + + if (handler == null) { + self.$raise("" + "Unsupported unpack directive " + ((directive).$inspect()) + " (no handler defined)") + } + + return handler(chunk); + } + + eachDirectiveAndCount(format, function(directive, count) { + var part = processChunk(directive, count); + + if (count !== Infinity) { + var shouldAutocomplete = autocompletion[directive]; + + if (shouldAutocomplete == null) { + self.$raise("" + "Unsupported unpack directive " + ((directive).$inspect()) + " (no autocompletion rule defined)") + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Parser_racc_runtime_type_1, TMP_Parser__racc_setup_2, TMP_Parser__racc_init_sysvars_3, TMP_Parser_do_parse_4, TMP_Parser_next_token_5, TMP_Parser__racc_do_parse_rb_7, TMP_Parser_yyparse_8, TMP_Parser__racc_yyparse_rb_11, TMP_Parser__racc_evalact_13, TMP_Parser__racc_do_reduce_14, TMP_Parser_on_error_15, TMP_Parser_yyerror_16, TMP_Parser_yyaccept_17, TMP_Parser_yyerrok_18, TMP_Parser_racc_read_token_19, TMP_Parser_racc_shift_20, TMP_Parser_racc_reduce_22, TMP_Parser_racc_accept_23, TMP_Parser_racc_e_pop_24, TMP_Parser_racc_next_state_25, TMP_Parser_racc_print_stacks_27, TMP_Parser_racc_print_states_29, TMP_Parser_racc_token2str_30, TMP_Parser_token_to_str_31; + if (shouldAutocomplete) { + autocomplete(part, count); + } + } + + output = output.concat(part); + }); + + return output; + ; + }, $String_unpack$1.$$arity = 1); + return (Opal.def(self, '$unpack1', $String_unpack1$2 = function $$unpack1(format) { + var self = this; - def.yydebug = def.racc_debug_out = def.racc_error_status = def.racc_t = def.racc_vstack = def.racc_val = def.racc_state = def.racc_tstack = nil; - Opal.const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); - Opal.const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); - Opal.const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version', Opal.const_get_relative($nesting, 'Racc_Runtime_Core_Version_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision', Opal.const_get_relative($nesting, 'Racc_Runtime_Core_Revision_R')); - Opal.const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); - Opal.defs(Opal.const_get_relative($nesting, 'Parser'), '$racc_runtime_type', TMP_Parser_racc_runtime_type_1 = function $$racc_runtime_type() { - var self = this; + format = $$($nesting, 'Opal')['$coerce_to!'](format, $$($nesting, 'String'), "to_str").$gsub(/\s/, "").$delete("\u0000"); + return self.$unpack(format['$[]'](0))['$[]'](0); + }, $String_unpack1$2.$$arity = 1), nil) && 'unpack1'; + })($nesting[0], null, $nesting); +}; + +Opal.modules["set"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; + + Opal.add_stubs(['$include', '$new', '$nil?', '$===', '$raise', '$each', '$add', '$merge', '$class', '$respond_to?', '$subtract', '$dup', '$join', '$to_a', '$equal?', '$instance_of?', '$==', '$instance_variable_get', '$is_a?', '$size', '$all?', '$include?', '$[]=', '$-', '$enum_for', '$[]', '$<<', '$replace', '$delete', '$select', '$reject', '$delete_if', '$to_proc', '$keep_if', '$each_key', '$empty?', '$eql?', '$instance_eval', '$clear', '$<', '$<=', '$any?', '$!', '$intersect?', '$keys']); + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Set'); + + var $nesting = [self].concat($parent_nesting), $Set_$$$1, $Set_initialize$2, $Set_dup$4, $Set_$minus$5, $Set_inspect$6, $Set_$eq_eq$7, $Set_add$9, $Set_classify$10, $Set_collect$excl$13, $Set_delete$15, $Set_delete$ques$16, $Set_delete_if$17, $Set_keep_if$20, $Set_reject$excl$23, $Set_select$excl$24, $Set_add$ques$25, $Set_each$26, $Set_empty$ques$27, $Set_eql$ques$28, $Set_clear$30, $Set_include$ques$31, $Set_merge$32, $Set_replace$34, $Set_size$35, $Set_subtract$36, $Set_$$38, $Set_superset$ques$39, $Set_proper_superset$ques$41, $Set_subset$ques$43, $Set_proper_subset$ques$45, $Set_intersect$ques$47, $Set_disjoint$ques$50, $Set_to_a$51; + + self.$$prototype.hash = nil; + + self.$include($$($nesting, 'Enumerable')); + Opal.defs(self, '$[]', $Set_$$$1 = function($a) { + var $post_args, ary, self = this; - return Opal.const_get_relative($nesting, 'Racc_Runtime_Type') - }, TMP_Parser_racc_runtime_type_1.$$arity = 0); - Opal.defn(self, '$_racc_setup', TMP_Parser__racc_setup_2 = function $$_racc_setup() { - var $a, $b, $c, self = this, arg = nil, $writer = nil; - if ($gvars.stderr == null) $gvars.stderr = nil; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + ary = $post_args;; + return self.$new(ary); + }, $Set_$$$1.$$arity = -1); + + Opal.def(self, '$initialize', $Set_initialize$2 = function $$initialize(enum$) { + var $iter = $Set_initialize$2.$$p, block = $iter || nil, $$3, self = this; + + if ($iter) $Set_initialize$2.$$p = null; + + + if ($iter) $Set_initialize$2.$$p = null;; + + if (enum$ == null) { + enum$ = nil; + }; + self.hash = $hash2([], {}); + if ($truthy(enum$['$nil?']())) { + return nil}; + if ($truthy($$($nesting, 'Enumerable')['$==='](enum$))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + }; + if ($truthy(block)) { + return $send(enum$, 'each', [], ($$3 = function(item){var self = $$3.$$s == null ? this : $$3.$$s; - - if ($truthy(Opal.const_get_qualified(self.$class(), 'Racc_debug_parser'))) { - } else { - self.yydebug = false - }; - if ($truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - } else { - self.yydebug = false - }; - if ($truthy(self.yydebug)) { - if ($truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { - } else { - self.racc_debug_out = $gvars.stderr - }; - self.racc_debug_out = ($truthy($c = self.racc_debug_out) ? $c : $gvars.stderr);}; - arg = Opal.const_get_qualified(self.$class(), 'Racc_arg'); - if ($truthy($rb_lt(arg.$size(), 14))) { - $writer = [13, true]; - $send(arg, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; - return arg; - }, TMP_Parser__racc_setup_2.$$arity = 0); + if (item == null) { + item = nil; + }; + return self.$add(Opal.yield1(block, item));}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + } else { + return self.$merge(enum$) + }; + }, $Set_initialize$2.$$arity = -1); + + Opal.def(self, '$dup', $Set_dup$4 = function $$dup() { + var self = this, result = nil; + - Opal.defn(self, '$_racc_init_sysvars', TMP_Parser__racc_init_sysvars_3 = function $$_racc_init_sysvars() { - var self = this; + result = self.$class().$new(); + return result.$merge(self); + }, $Set_dup$4.$$arity = 0); + + Opal.def(self, '$-', $Set_$minus$5 = function(enum$) { + var self = this; - - self.racc_state = [0]; - self.racc_tstack = []; - self.racc_vstack = []; - self.racc_t = nil; - self.racc_val = nil; - self.racc_read_next = true; - self.racc_user_yyerror = false; - return (self.racc_error_status = 0); - }, TMP_Parser__racc_init_sysvars_3.$$arity = 0); - Opal.defn(self, '$do_parse', TMP_Parser_do_parse_4 = function $$do_parse() { - var self = this; + if ($truthy(enum$['$respond_to?']("each"))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + }; + return self.$dup().$subtract(enum$); + }, $Set_$minus$5.$$arity = 1); + $alias(self, "difference", "-"); + + Opal.def(self, '$inspect', $Set_inspect$6 = function $$inspect() { + var self = this; + + return "" + "#" + }, $Set_inspect$6.$$arity = 0); + + Opal.def(self, '$==', $Set_$eq_eq$7 = function(other) { + var $$8, self = this, $ret_or_1 = nil; + + if ($truthy(self['$equal?'](other))) { + return true + } else if ($truthy(other['$instance_of?'](self.$class()))) { + return self.hash['$=='](other.$instance_variable_get("@hash")) + } else if ($truthy((function() {if ($truthy(($ret_or_1 = other['$is_a?']($$($nesting, 'Set'))))) { + return self.$size()['$=='](other.$size()) + } else { + return $ret_or_1 + }; return nil; })())) { + return $send(other, 'all?', [], ($$8 = function(o){var self = $$8.$$s == null ? this : $$8.$$s; + if (self.hash == null) self.hash = nil; + + + + if (o == null) { + o = nil; + }; + return self.hash['$include?'](o);}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + } else { + return false + } + }, $Set_$eq_eq$7.$$arity = 1); + + Opal.def(self, '$add', $Set_add$9 = function $$add(o) { + var self = this, $writer = nil; - return self.$__send__(Opal.const_get_relative($nesting, 'Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) - }, TMP_Parser_do_parse_4.$$arity = 0); - Opal.defn(self, '$next_token', TMP_Parser_next_token_5 = function $$next_token() { - var self = this; + + $writer = [o, true]; + $send(self.hash, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self; + }, $Set_add$9.$$arity = 1); + $alias(self, "<<", "add"); + + Opal.def(self, '$classify', $Set_classify$10 = function $$classify() { + var $iter = $Set_classify$10.$$p, block = $iter || nil, $$11, $$12, self = this, result = nil; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") - }, TMP_Parser_next_token_5.$$arity = 0); + if ($iter) $Set_classify$10.$$p = null; - Opal.defn(self, '$_racc_do_parse_rb', TMP_Parser__racc_do_parse_rb_7 = function $$_racc_do_parse_rb(arg, in_debug) { - var $a, $b, TMP_6, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; + + if ($iter) $Set_classify$10.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("classify") + }; + result = $send($$($nesting, 'Hash'), 'new', [], ($$11 = function(h, k){var self = $$11.$$s == null ? this : $$11.$$s, $writer = nil; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; - self.$_racc_init_sysvars(); - tok = (act = (i = nil)); - return $send(self, 'catch', ["racc_end_parse"], (TMP_6 = function(){var self = TMP_6.$$s || this, $c, $d, $e; - if (self.racc_state == null) self.racc_state = nil; - if (self.racc_read_next == null) self.racc_read_next = nil; - if (self.racc_t == null) self.racc_t = nil; - if (self.yydebug == null) self.yydebug = nil; - if (self.racc_val == null) self.racc_val = nil; + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, self.$class().$new()]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$11.$$s = self, $$11.$$arity = 2, $$11)); + $send(self, 'each', [], ($$12 = function(item){var self = $$12.$$s == null ? this : $$12.$$s; - while ($truthy(true)) { - - if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { - - if ($truthy(self.racc_read_next)) { - if ($truthy(self.racc_t['$!='](0))) { - - $e = self.$next_token(), $d = Opal.to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; - if ($truthy(tok)) { - self.racc_t = ($truthy($d = token_table['$[]'](tok)) ? $d : 1) - } else { - self.racc_t = 0 - }; - if ($truthy(self.yydebug)) { - self.$racc_read_token(self.racc_t, tok, self.racc_val)}; - self.racc_read_next = false;}}; - i = $rb_plus(i, self.racc_t); - if ($truthy(($truthy($d = ($truthy($e = $rb_ge(i, 0)) ? (act = action_table['$[]'](i)) : $e)) ? action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) : $d))) { - } else { - act = action_default['$[]'](self.racc_state['$[]'](-1)) - }; - } else { - act = action_default['$[]'](self.racc_state['$[]'](-1)) - }; - while ($truthy((act = self.$_racc_evalact(act, arg)))) { - - }; - }}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6)); - }, TMP_Parser__racc_do_parse_rb_7.$$arity = 2); - - Opal.defn(self, '$yyparse', TMP_Parser_yyparse_8 = function $$yyparse(recv, mid) { - var self = this; + + + if (item == null) { + item = nil; + }; + return result['$[]'](Opal.yield1(block, item)).$add(item);}, $$12.$$s = self, $$12.$$arity = 1, $$12)); + return result; + }, $Set_classify$10.$$arity = 0); + + Opal.def(self, '$collect!', $Set_collect$excl$13 = function() { + var $iter = $Set_collect$excl$13.$$p, block = $iter || nil, $$14, self = this, result = nil; - return self.$__send__(Opal.const_get_relative($nesting, 'Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) - }, TMP_Parser_yyparse_8.$$arity = 2); + if ($iter) $Set_collect$excl$13.$$p = null; - Opal.defn(self, '$_racc_yyparse_rb', TMP_Parser__racc_yyparse_rb_11 = function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { - var $a, $b, TMP_9, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; + + if ($iter) $Set_collect$excl$13.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("collect!") + }; + result = self.$class().$new(); + $send(self, 'each', [], ($$14 = function(item){var self = $$14.$$s == null ? this : $$14.$$s; - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; - self.$_racc_init_sysvars(); - act = nil; - i = nil; - return $send(self, 'catch', ["racc_end_parse"], (TMP_9 = function(){var self = TMP_9.$$s || this, $c, $d, TMP_10; - if (self.racc_state == null) self.racc_state = nil; - - while (!($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1)))))) { - while ($truthy((act = self.$_racc_evalact(action_default['$[]'](self.racc_state['$[]'](-1)), arg)))) { - - } - }; - return $send(recv, '__send__', [mid], (TMP_10 = function(tok, val){var self = TMP_10.$$s || this, $e, $f, $g, $h, $i; - if (self.racc_t == null) self.racc_t = nil; - if (self.racc_state == null) self.racc_state = nil; - if (self.racc_read_next == null) self.racc_read_next = nil; -if (tok == null) tok = nil;if (val == null) val = nil; - - if ($truthy(tok)) { - self.racc_t = ($truthy($e = token_table['$[]'](tok)) ? $e : 1) - } else { - self.racc_t = 0 - }; - self.racc_val = val; - self.racc_read_next = false; - i = $rb_plus(i, self.racc_t); - if ($truthy(($truthy($e = ($truthy($f = $rb_ge(i, 0)) ? (act = action_table['$[]'](i)) : $f)) ? action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) : $e))) { - } else { - act = action_default['$[]'](self.racc_state['$[]'](-1)) - }; - while ($truthy((act = self.$_racc_evalact(act, arg)))) { - - }; - while ($truthy(($truthy($f = ($truthy($g = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']()) ? $g : self.racc_read_next['$!']())) ? $f : self.racc_t['$=='](0)))) { - - if ($truthy(($truthy($f = ($truthy($g = ($truthy($h = ($truthy($i = i) ? (i = $rb_plus(i, self.racc_t)) : $i)) ? $rb_ge(i, 0) : $h)) ? (act = action_table['$[]'](i)) : $g)) ? action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) : $f))) { - } else { - act = action_default['$[]'](self.racc_state['$[]'](-1)) - }; - while ($truthy((act = self.$_racc_evalact(act, arg)))) { - - }; - };}, TMP_10.$$s = self, TMP_10.$$arity = 2, TMP_10));}, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)); - }, TMP_Parser__racc_yyparse_rb_11.$$arity = 4); + if (item == null) { + item = nil; + }; + return result['$<<'](Opal.yield1(block, item));}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + return self.$replace(result); + }, $Set_collect$excl$13.$$arity = 0); + $alias(self, "map!", "collect!"); + + Opal.def(self, '$delete', $Set_delete$15 = function(o) { + var self = this; + - Opal.defn(self, '$_racc_evalact', TMP_Parser__racc_evalact_13 = function $$_racc_evalact(act, arg) { - var $a, $b, TMP_12, $c, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, code = nil, $case = nil, i = nil; + self.hash.$delete(o); + return self; + }, $Set_delete$15.$$arity = 1); + + Opal.def(self, '$delete?', $Set_delete$ques$16 = function(o) { + var self = this; + if ($truthy(self['$include?'](o))) { - $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; - if ($truthy(($truthy($a = $rb_gt(act, 0)) ? $rb_lt(act, shift_n) : $a))) { - - if ($truthy($rb_gt(self.racc_error_status, 0))) { - if (self.racc_t['$=='](1)) { - } else { - self.racc_error_status = $rb_minus(self.racc_error_status, 1) - }}; - self.racc_vstack.$push(self.racc_val); - self.racc_state.$push(act); - self.racc_read_next = true; - if ($truthy(self.yydebug)) { - - self.racc_tstack.$push(self.racc_t); - self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack);}; - } else if ($truthy(($truthy($a = $rb_lt(act, 0)) ? $rb_gt(act, reduce_n['$-@']()) : $a))) { - - code = $send(self, 'catch', ["racc_jump"], (TMP_12 = function(){var self = TMP_12.$$s || this; - if (self.racc_state == null) self.racc_state = nil; + self.$delete(o); + return self; + } else { + return nil + } + }, $Set_delete$ques$16.$$arity = 1); + + Opal.def(self, '$delete_if', $Set_delete_if$17 = function $$delete_if() { + var $$18, $$19, $iter = $Set_delete_if$17.$$p, $yield = $iter || nil, self = this; - - self.racc_state.$push(self.$_racc_do_reduce(arg, act)); - return false;}, TMP_12.$$s = self, TMP_12.$$arity = 0, TMP_12)); - if ($truthy(code)) { - $case = code; - if ((1)['$===']($case)) { - self.racc_user_yyerror = true; - return reduce_n['$-@']();} - else if ((2)['$===']($case)) {return shift_n} - else {self.$raise("[Racc Bug] unknown jump code")}}; - } else if (act['$=='](shift_n)) { - - if ($truthy(self.yydebug)) { - self.$racc_accept()}; - self.$throw("racc_end_parse", self.racc_vstack['$[]'](0)); - } else if (act['$=='](reduce_n['$-@']())) { - - $case = self.racc_error_status; - if ((0)['$===']($case)) {if ($truthy(arg['$[]'](21))) { - } else { - self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) - }} - else if ((3)['$===']($case)) { - if (self.racc_t['$=='](0)) { - self.$throw("racc_end_parse", nil)}; - self.racc_read_next = true;}; - self.racc_user_yyerror = false; - self.racc_error_status = 3; - while ($truthy(true)) { - - if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { - - i = $rb_plus(i, 1); - if ($truthy(($truthy($b = ($truthy($c = $rb_ge(i, 0)) ? (act = action_table['$[]'](i)) : $c)) ? action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) : $b))) { - break;};}; - if ($truthy($rb_le(self.racc_state.$size(), 1))) { - self.$throw("racc_end_parse", nil)}; - self.racc_state.$pop(); - self.racc_vstack.$pop(); - if ($truthy(self.yydebug)) { - - self.racc_tstack.$pop(); - self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack);}; - }; - return act; - } else { - self.$raise("" + "[Racc Bug] unknown action " + (act.$inspect())) - }; - if ($truthy(self.yydebug)) { - self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state)}; - return nil; - }, TMP_Parser__racc_evalact_13.$$arity = 2); + if ($iter) $Set_delete_if$17.$$p = null; - Opal.defn(self, '$_racc_do_reduce', TMP_Parser__racc_do_reduce_14 = function $$_racc_do_reduce(arg, act) { - var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, curstate = nil; + if (($yield !== nil)) { + } else { + return self.$enum_for("delete_if") + }; + $send($send(self, 'select', [], ($$18 = function(o){var self = $$18.$$s == null ? this : $$18.$$s; - $b = arg, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; - state = self.racc_state; - vstack = self.racc_vstack; - tstack = self.racc_tstack; - i = $rb_times(act, -3); - len = reduce_table['$[]'](i); - reduce_to = reduce_table['$[]']($rb_plus(i, 1)); - method_id = reduce_table['$[]']($rb_plus(i, 2)); - void_array = []; - if ($truthy(self.yydebug)) { - tmp_t = tstack['$[]'](len['$-@'](), len)}; - tmp_v = vstack['$[]'](len['$-@'](), len); - if ($truthy(self.yydebug)) { - - $writer = [len['$-@'](), len, void_array]; - $send(tstack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; - $writer = [len['$-@'](), len, void_array]; - $send(vstack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; + if (o == null) { + o = nil; + }; + return Opal.yield1($yield, o);;}, $$18.$$s = self, $$18.$$arity = 1, $$18)), 'each', [], ($$19 = function(o){var self = $$19.$$s == null ? this : $$19.$$s; + if (self.hash == null) self.hash = nil; + - $writer = [len['$-@'](), len, void_array]; - $send(state, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(use_result)) { - vstack.$push(self.$__send__(method_id, tmp_v, vstack, tmp_v['$[]'](0))) - } else { - vstack.$push(self.$__send__(method_id, tmp_v, vstack)) + + if (o == null) { + o = nil; }; - tstack.$push(reduce_to); - if ($truthy(self.yydebug)) { - self.$racc_reduce(tmp_t, reduce_to, tstack, vstack)}; - k1 = $rb_minus(reduce_to, nt_base); - if ($truthy((i = goto_pointer['$[]'](k1)))) { - - i = $rb_plus(i, state['$[]'](-1)); - if ($truthy(($truthy($a = ($truthy($b = $rb_ge(i, 0)) ? (curstate = goto_table['$[]'](i)) : $b)) ? goto_check['$[]'](i)['$=='](k1) : $a))) { - return curstate};}; - return goto_default['$[]'](k1); - }, TMP_Parser__racc_do_reduce_14.$$arity = 2); - - Opal.defn(self, '$on_error', TMP_Parser_on_error_15 = function $$on_error(t, val, vstack) { - var $a, self = this; + return self.hash.$delete(o);}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + return self; + }, $Set_delete_if$17.$$arity = 0); + + Opal.def(self, '$keep_if', $Set_keep_if$20 = function $$keep_if() { + var $$21, $$22, $iter = $Set_keep_if$20.$$p, $yield = $iter || nil, self = this; - return self.$raise(Opal.const_get_relative($nesting, 'ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), ($truthy($a = self.$token_to_str(t)) ? $a : "?"))) - }, TMP_Parser_on_error_15.$$arity = 3); + if ($iter) $Set_keep_if$20.$$p = null; - Opal.defn(self, '$yyerror', TMP_Parser_yyerror_16 = function $$yyerror() { - var self = this; + if (($yield !== nil)) { + } else { + return self.$enum_for("keep_if") + }; + $send($send(self, 'reject', [], ($$21 = function(o){var self = $$21.$$s == null ? this : $$21.$$s; - return self.$throw("racc_jump", 1) - }, TMP_Parser_yyerror_16.$$arity = 0); + + + if (o == null) { + o = nil; + }; + return Opal.yield1($yield, o);;}, $$21.$$s = self, $$21.$$arity = 1, $$21)), 'each', [], ($$22 = function(o){var self = $$22.$$s == null ? this : $$22.$$s; + if (self.hash == null) self.hash = nil; + + + + if (o == null) { + o = nil; + }; + return self.hash.$delete(o);}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + return self; + }, $Set_keep_if$20.$$arity = 0); + + Opal.def(self, '$reject!', $Set_reject$excl$23 = function() { + var $iter = $Set_reject$excl$23.$$p, block = $iter || nil, self = this, before = nil; + + if ($iter) $Set_reject$excl$23.$$p = null; - Opal.defn(self, '$yyaccept', TMP_Parser_yyaccept_17 = function $$yyaccept() { - var self = this; + + if ($iter) $Set_reject$excl$23.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("reject!") + }; + before = self.$size(); + $send(self, 'delete_if', [], block.$to_proc()); + if (self.$size()['$=='](before)) { + return nil + } else { + return self + }; + }, $Set_reject$excl$23.$$arity = 0); + + Opal.def(self, '$select!', $Set_select$excl$24 = function() { + var $iter = $Set_select$excl$24.$$p, block = $iter || nil, self = this, before = nil; - return self.$throw("racc_jump", 2) - }, TMP_Parser_yyaccept_17.$$arity = 0); + if ($iter) $Set_select$excl$24.$$p = null; - Opal.defn(self, '$yyerrok', TMP_Parser_yyerrok_18 = function $$yyerrok() { - var self = this; + + if ($iter) $Set_select$excl$24.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("select!") + }; + before = self.$size(); + $send(self, 'keep_if', [], block.$to_proc()); + if (self.$size()['$=='](before)) { + return nil + } else { + return self + }; + }, $Set_select$excl$24.$$arity = 0); + $alias(self, "filter!", "select!"); + + Opal.def(self, '$add?', $Set_add$ques$25 = function(o) { + var self = this; - return (self.racc_error_status = 0) - }, TMP_Parser_yyerrok_18.$$arity = 0); + if ($truthy(self['$include?'](o))) { + return nil + } else { + return self.$add(o) + } + }, $Set_add$ques$25.$$arity = 1); + + Opal.def(self, '$each', $Set_each$26 = function $$each() { + var $iter = $Set_each$26.$$p, block = $iter || nil, self = this; + + if ($iter) $Set_each$26.$$p = null; - Opal.defn(self, '$racc_read_token', TMP_Parser_racc_read_token_19 = function $$racc_read_token(t, tok, val) { - var self = this; + + if ($iter) $Set_each$26.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("each") + }; + $send(self.hash, 'each_key', [], block.$to_proc()); + return self; + }, $Set_each$26.$$arity = 0); + + Opal.def(self, '$empty?', $Set_empty$ques$27 = function() { + var self = this; + + return self.hash['$empty?']() + }, $Set_empty$ques$27.$$arity = 0); + + Opal.def(self, '$eql?', $Set_eql$ques$28 = function(other) { + var $$29, self = this; + + return self.hash['$eql?']($send(other, 'instance_eval', [], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; + if (self.hash == null) self.hash = nil; + + return self.hash}, $$29.$$s = self, $$29.$$arity = 0, $$29))) + }, $Set_eql$ques$28.$$arity = 1); + + Opal.def(self, '$clear', $Set_clear$30 = function $$clear() { + var self = this; - - self.racc_debug_out.$print("read "); - self.racc_debug_out.$print(tok.$inspect(), "(", self.$racc_token2str(t), ") "); - self.racc_debug_out.$puts(val.$inspect()); - return self.racc_debug_out.$puts(); - }, TMP_Parser_racc_read_token_19.$$arity = 3); - Opal.defn(self, '$racc_shift', TMP_Parser_racc_shift_20 = function $$racc_shift(tok, tstack, vstack) { - var self = this; + self.hash.$clear(); + return self; + }, $Set_clear$30.$$arity = 0); + + Opal.def(self, '$include?', $Set_include$ques$31 = function(o) { + var self = this; + + return self.hash['$include?'](o) + }, $Set_include$ques$31.$$arity = 1); + $alias(self, "member?", "include?"); + + Opal.def(self, '$merge', $Set_merge$32 = function $$merge(enum$) { + var $$33, self = this; - - self.racc_debug_out.$puts("" + "shift " + (self.$racc_token2str(tok))); - self.$racc_print_stacks(tstack, vstack); - return self.racc_debug_out.$puts(); - }, TMP_Parser_racc_shift_20.$$arity = 3); - Opal.defn(self, '$racc_reduce', TMP_Parser_racc_reduce_22 = function $$racc_reduce(toks, sim, tstack, vstack) { - var TMP_21, self = this, out = nil; + $send(enum$, 'each', [], ($$33 = function(item){var self = $$33.$$s == null ? this : $$33.$$s; - out = self.racc_debug_out; - out.$print("reduce "); - if ($truthy(toks['$empty?']())) { - out.$print(" ") - } else { - $send(toks, 'each', [], (TMP_21 = function(t){var self = TMP_21.$$s || this; -if (t == null) t = nil; - return out.$print(" ", self.$racc_token2str(t))}, TMP_21.$$s = self, TMP_21.$$arity = 1, TMP_21)) + + if (item == null) { + item = nil; }; - out.$puts("" + " --> " + (self.$racc_token2str(sim))); - self.$racc_print_stacks(tstack, vstack); - return self.racc_debug_out.$puts(); - }, TMP_Parser_racc_reduce_22.$$arity = 4); + return self.$add(item);}, $$33.$$s = self, $$33.$$arity = 1, $$33)); + return self; + }, $Set_merge$32.$$arity = 1); + + Opal.def(self, '$replace', $Set_replace$34 = function $$replace(enum$) { + var self = this; + - Opal.defn(self, '$racc_accept', TMP_Parser_racc_accept_23 = function $$racc_accept() { - var self = this; + self.$clear(); + self.$merge(enum$); + return self; + }, $Set_replace$34.$$arity = 1); + + Opal.def(self, '$size', $Set_size$35 = function $$size() { + var self = this; + + return self.hash.$size() + }, $Set_size$35.$$arity = 0); + $alias(self, "length", "size"); + + Opal.def(self, '$subtract', $Set_subtract$36 = function $$subtract(enum$) { + var $$37, self = this; - - self.racc_debug_out.$puts("accept"); - return self.racc_debug_out.$puts(); - }, TMP_Parser_racc_accept_23.$$arity = 0); - Opal.defn(self, '$racc_e_pop', TMP_Parser_racc_e_pop_24 = function $$racc_e_pop(state, tstack, vstack) { - var self = this; + $send(enum$, 'each', [], ($$37 = function(item){var self = $$37.$$s == null ? this : $$37.$$s; - self.racc_debug_out.$puts("error recovering mode: pop token"); - self.$racc_print_states(state); - self.$racc_print_stacks(tstack, vstack); - return self.racc_debug_out.$puts(); - }, TMP_Parser_racc_e_pop_24.$$arity = 3); + + if (item == null) { + item = nil; + }; + return self.$delete(item);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); + return self; + }, $Set_subtract$36.$$arity = 1); + + Opal.def(self, '$|', $Set_$$38 = function(enum$) { + var self = this; + - Opal.defn(self, '$racc_next_state', TMP_Parser_racc_next_state_25 = function $$racc_next_state(curstate, state) { - var self = this; + if ($truthy(enum$['$respond_to?']("each"))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") + }; + return self.$dup().$merge(enum$); + }, $Set_$$38.$$arity = 1); + + Opal.def(self, '$superset?', $Set_superset$ques$39 = function(set) { + var $$40, self = this, $ret_or_2 = nil; - - self.racc_debug_out.$puts("" + "goto " + (curstate)); - self.$racc_print_states(state); - return self.racc_debug_out.$puts(); - }, TMP_Parser_racc_next_state_25.$$arity = 2); - Opal.defn(self, '$racc_print_stacks', TMP_Parser_racc_print_stacks_27 = function $$racc_print_stacks(t, v) { - var TMP_26, self = this, out = nil; + if ($truthy(($ret_or_2 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_2 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; + if ($truthy($rb_lt(self.$size(), set.$size()))) { + return false}; + return $send(set, 'all?', [], ($$40 = function(o){var self = $$40.$$s == null ? this : $$40.$$s; - out = self.racc_debug_out; - out.$print(" ["); - $send(t, 'each_index', [], (TMP_26 = function(i){var self = TMP_26.$$s || this; -if (i == null) i = nil; - return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")")}, TMP_26.$$s = self, TMP_26.$$arity = 1, TMP_26)); - return out.$puts(" ]"); - }, TMP_Parser_racc_print_stacks_27.$$arity = 2); + + if (o == null) { + o = nil; + }; + return self['$include?'](o);}, $$40.$$s = self, $$40.$$arity = 1, $$40)); + }, $Set_superset$ques$39.$$arity = 1); + $alias(self, ">=", "superset?"); + + Opal.def(self, '$proper_superset?', $Set_proper_superset$ques$41 = function(set) { + var $$42, self = this, $ret_or_3 = nil; + - Opal.defn(self, '$racc_print_states', TMP_Parser_racc_print_states_29 = function $$racc_print_states(s) { - var TMP_28, self = this, out = nil; + if ($truthy(($ret_or_3 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_3 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; + if ($truthy($rb_le(self.$size(), set.$size()))) { + return false}; + return $send(set, 'all?', [], ($$42 = function(o){var self = $$42.$$s == null ? this : $$42.$$s; - out = self.racc_debug_out; - out.$print(" ["); - $send(s, 'each', [], (TMP_28 = function(st){var self = TMP_28.$$s || this; -if (st == null) st = nil; - return out.$print(" ", st)}, TMP_28.$$s = self, TMP_28.$$arity = 1, TMP_28)); - return out.$puts(" ]"); - }, TMP_Parser_racc_print_states_29.$$arity = 1); + + if (o == null) { + o = nil; + }; + return self['$include?'](o);}, $$42.$$s = self, $$42.$$arity = 1, $$42)); + }, $Set_proper_superset$ques$41.$$arity = 1); + $alias(self, ">", "proper_superset?"); + + Opal.def(self, '$subset?', $Set_subset$ques$43 = function(set) { + var $$44, self = this, $ret_or_4 = nil; + - Opal.defn(self, '$racc_token2str', TMP_Parser_racc_token2str_30 = function $$racc_token2str(tok) { - var $a, self = this; + if ($truthy(($ret_or_4 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_4 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; + if ($truthy($rb_lt(set.$size(), self.$size()))) { + return false}; + return $send(self, 'all?', [], ($$44 = function(o){var self = $$44.$$s == null ? this : $$44.$$s; - return ($truthy($a = Opal.const_get_qualified(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)) ? $a : self.$raise("" + "[Racc Bug] can't convert token " + (tok) + " to string")) - }, TMP_Parser_racc_token2str_30.$$arity = 1); - return (Opal.defn(self, '$token_to_str', TMP_Parser_token_to_str_31 = function $$token_to_str(t) { - var self = this; + + + if (o == null) { + o = nil; + }; + return set['$include?'](o);}, $$44.$$s = self, $$44.$$arity = 1, $$44)); + }, $Set_subset$ques$43.$$arity = 1); + $alias(self, "<=", "subset?"); + + Opal.def(self, '$proper_subset?', $Set_proper_subset$ques$45 = function(set) { + var $$46, self = this, $ret_or_5 = nil; - return Opal.const_get_qualified(self.$class(), 'Racc_token_to_s_table')['$[]'](t) - }, TMP_Parser_token_to_str_31.$$arity = 1), nil) && 'token_to_str'; - })($nesting[0], null, $nesting); - })($nesting[0], $nesting); -}; + + if ($truthy(($ret_or_5 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_5 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; + if ($truthy($rb_le(set.$size(), self.$size()))) { + return false}; + return $send(self, 'all?', [], ($$46 = function(o){var self = $$46.$$s == null ? this : $$46.$$s; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/compatibility/ruby1_8"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; + + + if (o == null) { + o = nil; + }; + return set['$include?'](o);}, $$46.$$s = self, $$46.$$arity = 1, $$46)); + }, $Set_proper_subset$ques$45.$$arity = 1); + $alias(self, "<", "proper_subset?"); + + Opal.def(self, '$intersect?', $Set_intersect$ques$47 = function(set) { + var $$48, $$49, self = this; - Opal.add_stubs(['$is_a?', '$gsub', '$[]', '$to_sym', '$original_percent']); - return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + + if ($truthy(set['$is_a?']($$($nesting, 'Set')))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; + if ($truthy($rb_lt(self.$size(), set.$size()))) { + return $send(self, 'any?', [], ($$48 = function(o){var self = $$48.$$s == null ? this : $$48.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_$_2; + + + if (o == null) { + o = nil; + }; + return set['$include?'](o);}, $$48.$$s = self, $$48.$$arity = 1, $$48)) + } else { + return $send(set, 'any?', [], ($$49 = function(o){var self = $$49.$$s == null ? this : $$49.$$s; + + + if (o == null) { + o = nil; + }; + return self['$include?'](o);}, $$49.$$s = self, $$49.$$arity = 1, $$49)) + }; + }, $Set_intersect$ques$47.$$arity = 1); - Opal.alias(self, "original_percent", "%"); - return (Opal.defn(self, '$%', TMP_String_$_2 = function(arg, $a_rest) { - var TMP_1, self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($truthy(arg['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { - return $send(self, 'gsub', [/%\{(\w+)\}/], (TMP_1 = function(){var self = TMP_1.$$s || this, $a; + Opal.def(self, '$disjoint?', $Set_disjoint$ques$50 = function(set) { + var self = this; - return arg['$[]']((($a = $gvars['~']) === nil ? nil : $a['$[]'](1)).$to_sym())}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)) - } else { - return $send(self, 'original_percent', [arg].concat(Opal.to_a(args))) + return self['$intersect?'](set)['$!']() + }, $Set_disjoint$ques$50.$$arity = 1); + $alias(self, "+", "|"); + $alias(self, "union", "|"); + return (Opal.def(self, '$to_a', $Set_to_a$51 = function $$to_a() { + var self = this; + + return self.hash.$keys() + }, $Set_to_a$51.$$arity = 0), nil) && 'to_a'; + })($nesting[0], null, $nesting); + return (function($base, $parent_nesting) { + var self = $module($base, 'Enumerable'); + + var $nesting = [self].concat($parent_nesting), $Enumerable_to_set$52; + + return (Opal.def(self, '$to_set', $Enumerable_to_set$52 = function $$to_set($a, $b) { + var $iter = $Enumerable_to_set$52.$$p, block = $iter || nil, $post_args, klass, args, self = this; + + if ($iter) $Enumerable_to_set$52.$$p = null; + + + if ($iter) $Enumerable_to_set$52.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + if ($post_args.length > 0) { + klass = $post_args[0]; + $post_args.splice(0, 1); } - }, TMP_String_$_2.$$arity = -2), nil) && '%'; - })($nesting[0], null, $nesting) + if (klass == null) { + klass = $$($nesting, 'Set'); + }; + + args = $post_args;; + return $send(klass, 'new', [self].concat(Opal.to_a(args)), block.$to_proc()); + }, $Enumerable_to_set$52.$$arity = -1), nil) && 'to_set' + })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/compatibility/ruby1_9"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } +Opal.modules["ast/node"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + function $rb_times(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $truthy = Opal.truthy, $klass = Opal.klass; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; + + Opal.add_stubs(['$attr_reader', '$to_sym', '$freeze', '$to_a', '$assign_properties', '$hash', '$class', '$eql?', '$type', '$children', '$each', '$instance_variable_set', '$protected', '$private', '$==', '$nil?', '$original_dup', '$send', '$equal?', '$respond_to?', '$to_ast', '$updated', '$+', '$*', '$fancy_type', '$is_a?', '$to_sexp', '$inspect', '$map', '$to_sexp_array', '$gsub', '$to_s']); + return (function($base, $parent_nesting) { + var self = $module($base, 'AST'); + + var $nesting = [self].concat($parent_nesting); - Opal.add_stubs(['$method_defined?', '$to_enum', '$-', '$size', '$<=', '$div', '$+', '$[]', '$===', '$==', '$<', '$fail', '$class']); - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$method_defined?']("bsearch"))) { - return nil - } else { return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Node'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_bsearch_1; + var $nesting = [self].concat($parent_nesting), $Node_initialize$1, $Node_eql$ques$2, $Node_assign_properties$3, $Node_dup$5, $Node_updated$6, $Node_$eq_eq$7, $Node_concat$8, $Node_append$9, $Node_to_sexp$10, $Node_inspect$12, $Node_to_ast$14, $Node_to_sexp_array$15, $Node_deconstruct$17, $Node_fancy_type$18; - return (Opal.defn(self, '$bsearch', TMP_Array_bsearch_1 = function $$bsearch() { - var $a, self = this, $iter = TMP_Array_bsearch_1.$$p, $yield = $iter || nil, from = nil, to = nil, satisfied = nil, midpoint = nil, result = nil, cur = nil, $case = nil; + self.$$prototype.type = self.$$prototype.children = nil; + + self.$attr_reader("type"); + self.$attr_reader("children"); + $alias(self, "to_a", "children"); + self.$attr_reader("hash"); + + Opal.def(self, '$initialize', $Node_initialize$1 = function $$initialize(type, children, properties) { + var $a, self = this; - if ($iter) TMP_Array_bsearch_1.$$p = null; - if (($yield !== nil)) { - } else { - return self.$to_enum("bsearch") + + if (children == null) { + children = []; }; - from = 0; - to = $rb_minus(self.$size(), 1); - satisfied = nil; - while ($truthy($rb_le(from, to))) { - - midpoint = $rb_plus(from, to).$div(2); - result = Opal.yield1($yield, (cur = self['$[]'](midpoint))); - $case = result; - if (Opal.const_get_relative($nesting, 'Numeric')['$===']($case)) { - if (result['$=='](0)) { - return cur}; - result = $rb_lt(result, 0);} - else if (true['$===']($case)) {satisfied = cur} - else if (nil['$===']($case) || false['$===']($case)) {nil} - else {self.$fail(Opal.const_get_relative($nesting, 'TypeError'), "" + "wrong argument type " + (result.$class()) + " (must be numeric, true, false or nil)")}; - if ($truthy(result)) { - to = $rb_minus(midpoint, 1) - } else { - from = $rb_plus(midpoint, 1) - }; + + if (properties == null) { + properties = $hash2([], {}); }; - return satisfied; - }, TMP_Array_bsearch_1.$$arity = 0), nil) && 'bsearch' - })($nesting[0], null, $nesting) - } -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; - - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - Opal.const_set($nesting[0], 'VERSION', "2.3.3.1") - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/messages"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $hash2 = Opal.hash2; - - Opal.add_stubs(['$freeze']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - Opal.const_set($nesting[0], 'MESSAGES', $hash2(["unicode_point_too_large", "invalid_escape", "incomplete_escape", "invalid_hex_escape", "invalid_unicode_escape", "unterminated_unicode", "escape_eof", "string_eof", "regexp_options", "cvar_name", "ivar_name", "trailing_in_number", "empty_numeric", "invalid_octal", "no_dot_digit_literal", "bare_backslash", "unexpected", "embedded_document", "invalid_escape_use", "ambiguous_literal", "ambiguous_prefix", "nth_ref_alias", "begin_in_method", "backref_assignment", "invalid_assignment", "module_name_const", "unexpected_token", "argument_const", "argument_ivar", "argument_gvar", "argument_cvar", "duplicate_argument", "empty_symbol", "odd_hash", "singleton_literal", "dynamic_const", "const_reassignment", "module_in_def", "class_in_def", "unexpected_percent_str", "block_and_blockarg", "masgn_as_condition", "block_given_to_yield", "invalid_regexp", "useless_else", "invalid_encoding", "invalid_action", "clobbered"], {"unicode_point_too_large": "invalid Unicode codepoint (too large)", "invalid_escape": "invalid escape character syntax", "incomplete_escape": "incomplete character syntax", "invalid_hex_escape": "invalid hex escape", "invalid_unicode_escape": "invalid Unicode escape", "unterminated_unicode": "unterminated Unicode escape", "escape_eof": "escape sequence meets end of file", "string_eof": "unterminated string meets end of file", "regexp_options": "unknown regexp options: %{options}", "cvar_name": "`%{name}' is not allowed as a class variable name", "ivar_name": "`%{name}' is not allowed as an instance variable name", "trailing_in_number": "trailing `%{character}' in number", "empty_numeric": "numeric literal without digits", "invalid_octal": "invalid octal digit", "no_dot_digit_literal": "no . floating literal anymore; put 0 before dot", "bare_backslash": "bare backslash only allowed before newline", "unexpected": "unexpected `%{character}'", "embedded_document": "embedded document meets end of file (and they embark on a romantic journey)", "invalid_escape_use": "invalid character syntax; use ?%{escape}", "ambiguous_literal": "ambiguous first argument; put parentheses or a space even after the operator", "ambiguous_prefix": "`%{prefix}' interpreted as argument prefix", "nth_ref_alias": "cannot define an alias for a back-reference variable", "begin_in_method": "BEGIN in method", "backref_assignment": "cannot assign to a back-reference variable", "invalid_assignment": "cannot assign to a keyword", "module_name_const": "class or module name must be a constant literal", "unexpected_token": "unexpected token %{token}", "argument_const": "formal argument cannot be a constant", "argument_ivar": "formal argument cannot be an instance variable", "argument_gvar": "formal argument cannot be a global variable", "argument_cvar": "formal argument cannot be a class variable", "duplicate_argument": "duplicate argument name", "empty_symbol": "empty symbol literal", "odd_hash": "odd number of entries for a hash", "singleton_literal": "cannot define a singleton method for a literal", "dynamic_const": "dynamic constant assignment", "const_reassignment": "constant re-assignment", "module_in_def": "module definition in method body", "class_in_def": "class definition in method body", "unexpected_percent_str": "%{type}: unknown type of percent-literal", "block_and_blockarg": "both block argument and literal block are passed", "masgn_as_condition": "multiple assignment in conditional context", "block_given_to_yield": "block given to yield", "invalid_regexp": "%{message}", "useless_else": "else without rescue is useless", "invalid_encoding": "literal contains escape sequences incompatible with UTF-8", "invalid_action": "cannot %{action}", "clobbered": "clobbered by: %{action}"}).$freeze()) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/ast/processor"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; - - Opal.add_stubs(['$updated', '$process_all', '$on_var', '$!', '$nil?', '$process', '$on_vasgn', '$on_argument', '$warn']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + $a = [type.$to_sym(), children.$to_a().$freeze()], (self.type = $a[0]), (self.children = $a[1]), $a; + self.$assign_properties(properties); + self.hash = [self.type, self.children, self.$class()].$hash(); + return self.$freeze(); + }, $Node_initialize$1.$$arity = -2); + + Opal.def(self, '$eql?', $Node_eql$ques$2 = function(other) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); + if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.$class()['$eql?'](other.$class())))) { + return self.type['$eql?'](other.$type()) + } else { + return $ret_or_2 + }; return nil; })()))) { + return self.children['$eql?'](other.$children()) + } else { + return $ret_or_1 + } + }, $Node_eql$ques$2.$$arity = 1); + + Opal.def(self, '$assign_properties', $Node_assign_properties$3 = function $$assign_properties(properties) { + var $$4, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + $send(properties, 'each', [], ($$4 = function(name, value){var self = $$4.$$s == null ? this : $$4.$$s; - (function($base, $super, $parent_nesting) { - function $Processor(){}; - var self = $Processor = $klass($base, $super, 'Processor', $Processor); + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return self.$instance_variable_set("" + "@" + (name), value);}, $$4.$$s = self, $$4.$$arity = 2, $$4)); + return nil; + }, $Node_assign_properties$3.$$arity = 1); + self.$protected("assign_properties"); + $alias(self, "original_dup", "dup"); + self.$private("original_dup"); + + Opal.def(self, '$dup', $Node_dup$5 = function $$dup() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Processor_process_regular_node_1, TMP_Processor_on_var_2, TMP_Processor_process_variable_node_3, TMP_Processor_on_vasgn_4, TMP_Processor_process_var_asgn_node_5, TMP_Processor_on_op_asgn_6, TMP_Processor_on_const_7, TMP_Processor_on_casgn_8, TMP_Processor_on_argument_9, TMP_Processor_process_argument_node_10, TMP_Processor_on_def_11, TMP_Processor_on_defs_12, TMP_Processor_on_send_13, TMP_Processor_process_variable_node_14, TMP_Processor_process_var_asgn_node_15, TMP_Processor_process_argument_node_16; + return self + }, $Node_dup$5.$$arity = 0); + $alias(self, "clone", "dup"); + + Opal.def(self, '$updated', $Node_updated$6 = function $$updated(type, children, properties) { + var self = this, new_type = nil, $ret_or_3 = nil, new_children = nil, $ret_or_4 = nil, new_properties = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, copy = nil; - Opal.defn(self, '$process_regular_node', TMP_Processor_process_regular_node_1 = function $$process_regular_node(node) { - var self = this; - - return node.$updated(nil, self.$process_all(node)) - }, TMP_Processor_process_regular_node_1.$$arity = 1); - Opal.alias(self, "on_dstr", "process_regular_node"); - Opal.alias(self, "on_dsym", "process_regular_node"); - Opal.alias(self, "on_regexp", "process_regular_node"); - Opal.alias(self, "on_xstr", "process_regular_node"); - Opal.alias(self, "on_splat", "process_regular_node"); - Opal.alias(self, "on_array", "process_regular_node"); - Opal.alias(self, "on_pair", "process_regular_node"); - Opal.alias(self, "on_hash", "process_regular_node"); - Opal.alias(self, "on_irange", "process_regular_node"); - Opal.alias(self, "on_erange", "process_regular_node"); + if (type == null) { + type = nil; + }; - Opal.defn(self, '$on_var', TMP_Processor_on_var_2 = function $$on_var(node) { - var self = this; - - return node - }, TMP_Processor_on_var_2.$$arity = 1); + if (children == null) { + children = nil; + }; - Opal.defn(self, '$process_variable_node', TMP_Processor_process_variable_node_3 = function $$process_variable_node(node) { - var self = this; - - return self.$on_var(node) - }, TMP_Processor_process_variable_node_3.$$arity = 1); - Opal.alias(self, "on_lvar", "process_variable_node"); - Opal.alias(self, "on_ivar", "process_variable_node"); - Opal.alias(self, "on_gvar", "process_variable_node"); - Opal.alias(self, "on_cvar", "process_variable_node"); - Opal.alias(self, "on_back_ref", "process_variable_node"); - Opal.alias(self, "on_nth_ref", "process_variable_node"); - - Opal.defn(self, '$on_vasgn', TMP_Processor_on_vasgn_4 = function $$on_vasgn(node) { - var $a, self = this, name = nil, value_node = nil; + if (properties == null) { + properties = nil; + }; + new_type = (function() {if ($truthy(($ret_or_3 = type))) { + return $ret_or_3 + } else { + return self.type + }; return nil; })(); + new_children = (function() {if ($truthy(($ret_or_4 = children))) { + return $ret_or_4 + } else { + return self.children + }; return nil; })(); + new_properties = (function() {if ($truthy(($ret_or_5 = properties))) { + return $ret_or_5 + } else { + return $hash2([], {}) + }; return nil; })(); + if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = self.type['$=='](new_type)))) { + return self.children['$=='](new_children) + } else { + return $ret_or_7 + }; return nil; })()))) { + return properties['$nil?']() + } else { + return $ret_or_6 + }; return nil; })())) { + return self + } else { + + copy = self.$original_dup(); + copy.$send("initialize", new_type, new_children, new_properties); + return copy; + }; + }, $Node_updated$6.$$arity = -1); + + Opal.def(self, '$==', $Node_$eq_eq$7 = function(other) { + var self = this, $ret_or_8 = nil; + if ($truthy(self['$equal?'](other))) { + return true + } else if ($truthy(other['$respond_to?']("to_ast"))) { - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(value_node['$nil?']()['$!']())) { - return node.$updated(nil, [name, self.$process(value_node)]) - } else { - return node + other = other.$to_ast(); + if ($truthy(($ret_or_8 = other.$type()['$=='](self.$type())))) { + return other.$children()['$=='](self.$children()) + } else { + return $ret_or_8 }; - }, TMP_Processor_on_vasgn_4.$$arity = 1); - - Opal.defn(self, '$process_var_asgn_node', TMP_Processor_process_var_asgn_node_5 = function $$process_var_asgn_node(node) { - var self = this; + } else { + return false + } + }, $Node_$eq_eq$7.$$arity = 1); + + Opal.def(self, '$concat', $Node_concat$8 = function $$concat(array) { + var self = this; - return self.$on_vasgn(node) - }, TMP_Processor_process_var_asgn_node_5.$$arity = 1); - Opal.alias(self, "on_lvasgn", "process_var_asgn_node"); - Opal.alias(self, "on_ivasgn", "process_var_asgn_node"); - Opal.alias(self, "on_gvasgn", "process_var_asgn_node"); - Opal.alias(self, "on_cvasgn", "process_var_asgn_node"); - Opal.alias(self, "on_and_asgn", "process_regular_node"); - Opal.alias(self, "on_or_asgn", "process_regular_node"); - - Opal.defn(self, '$on_op_asgn', TMP_Processor_on_op_asgn_6 = function $$on_op_asgn(node) { - var $a, self = this, var_node = nil, method_name = nil, value_node = nil; + return self.$updated(nil, $rb_plus(self.children, array.$to_a())) + }, $Node_concat$8.$$arity = 1); + $alias(self, "+", "concat"); + + Opal.def(self, '$append', $Node_append$9 = function $$append(element) { + var self = this; - - $a = [].concat(Opal.to_a(node)), (var_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; - return node.$updated(nil, [self.$process(var_node), method_name, self.$process(value_node)]); - }, TMP_Processor_on_op_asgn_6.$$arity = 1); - Opal.alias(self, "on_mlhs", "process_regular_node"); - Opal.alias(self, "on_masgn", "process_regular_node"); - - Opal.defn(self, '$on_const', TMP_Processor_on_const_7 = function $$on_const(node) { - var $a, self = this, scope_node = nil, name = nil; + return self.$updated(nil, $rb_plus(self.children, [element])) + }, $Node_append$9.$$arity = 1); + $alias(self, "<<", "append"); + + Opal.def(self, '$to_sexp', $Node_to_sexp$10 = function $$to_sexp(indent) { + var $$11, self = this, indented = nil, sexp = nil; - - $a = [].concat(Opal.to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $a; - return node.$updated(nil, [self.$process(scope_node), name]); - }, TMP_Processor_on_const_7.$$arity = 1); - Opal.defn(self, '$on_casgn', TMP_Processor_on_casgn_8 = function $$on_casgn(node) { - var $a, self = this, scope_node = nil, name = nil, value_node = nil; + + if (indent == null) { + indent = 0; + }; + indented = $rb_times(" ", indent); + sexp = "" + (indented) + "(" + (self.$fancy_type()); + $send(self.$children(), 'each', [], ($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s; - $a = [].concat(Opal.to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; - if ($truthy(value_node['$nil?']()['$!']())) { - return node.$updated(nil, [self.$process(scope_node), name, self.$process(value_node)]) - } else { - return node.$updated(nil, [self.$process(scope_node), name]) + + if (child == null) { + child = nil; }; - }, TMP_Processor_on_casgn_8.$$arity = 1); - Opal.alias(self, "on_args", "process_regular_node"); + if ($truthy(child['$is_a?']($$($nesting, 'Node')))) { + return (sexp = $rb_plus(sexp, "" + "\n" + (child.$to_sexp($rb_plus(indent, 1))))) + } else { + return (sexp = $rb_plus(sexp, "" + " " + (child.$inspect()))) + };}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + sexp = $rb_plus(sexp, ")"); + return sexp; + }, $Node_to_sexp$10.$$arity = -1); + $alias(self, "to_s", "to_sexp"); + + Opal.def(self, '$inspect', $Node_inspect$12 = function $$inspect(indent) { + var $$13, self = this, indented = nil, sexp = nil; + - Opal.defn(self, '$on_argument', TMP_Processor_on_argument_9 = function $$on_argument(node) { - var $a, self = this, arg_name = nil, value_node = nil; + + if (indent == null) { + indent = 0; + }; + indented = $rb_times(" ", indent); + sexp = "" + (indented) + "s(:" + (self.type); + $send(self.$children(), 'each', [], ($$13 = function(child){var self = $$13.$$s == null ? this : $$13.$$s; - $a = [].concat(Opal.to_a(node)), (arg_name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(value_node['$nil?']()['$!']())) { - return node.$updated(nil, [arg_name, self.$process(value_node)]) - } else { - return node + + if (child == null) { + child = nil; }; - }, TMP_Processor_on_argument_9.$$arity = 1); - - Opal.defn(self, '$process_argument_node', TMP_Processor_process_argument_node_10 = function $$process_argument_node(node) { - var self = this; + if ($truthy(child['$is_a?']($$($nesting, 'Node')))) { + return (sexp = $rb_plus(sexp, "" + ",\n" + (child.$inspect($rb_plus(indent, 1))))) + } else { + return (sexp = $rb_plus(sexp, "" + ", " + (child.$inspect()))) + };}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + sexp = $rb_plus(sexp, ")"); + return sexp; + }, $Node_inspect$12.$$arity = -1); + + Opal.def(self, '$to_ast', $Node_to_ast$14 = function $$to_ast() { + var self = this; - return self.$on_argument(node) - }, TMP_Processor_process_argument_node_10.$$arity = 1); - Opal.alias(self, "on_arg", "process_argument_node"); - Opal.alias(self, "on_optarg", "process_argument_node"); - Opal.alias(self, "on_restarg", "process_argument_node"); - Opal.alias(self, "on_blockarg", "process_argument_node"); - Opal.alias(self, "on_shadowarg", "process_argument_node"); - Opal.alias(self, "on_kwarg", "process_argument_node"); - Opal.alias(self, "on_kwoptarg", "process_argument_node"); - Opal.alias(self, "on_kwrestarg", "process_argument_node"); - Opal.alias(self, "on_procarg0", "process_argument_node"); - Opal.alias(self, "on_arg_expr", "process_regular_node"); - Opal.alias(self, "on_restarg_expr", "process_regular_node"); - Opal.alias(self, "on_blockarg_expr", "process_regular_node"); - Opal.alias(self, "on_block_pass", "process_regular_node"); - Opal.alias(self, "on_module", "process_regular_node"); - Opal.alias(self, "on_class", "process_regular_node"); - Opal.alias(self, "on_sclass", "process_regular_node"); - - Opal.defn(self, '$on_def', TMP_Processor_on_def_11 = function $$on_def(node) { - var $a, self = this, name = nil, args_node = nil, body_node = nil; + return self + }, $Node_to_ast$14.$$arity = 0); + + Opal.def(self, '$to_sexp_array', $Node_to_sexp_array$15 = function $$to_sexp_array() { + var $$16, self = this, children_sexp_arrs = nil; - - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (args_node = ($a[1] == null ? nil : $a[1])), (body_node = ($a[2] == null ? nil : $a[2])), $a; - return node.$updated(nil, [name, self.$process(args_node), self.$process(body_node)]); - }, TMP_Processor_on_def_11.$$arity = 1); - Opal.defn(self, '$on_defs', TMP_Processor_on_defs_12 = function $$on_defs(node) { - var $a, self = this, definee_node = nil, name = nil, args_node = nil, body_node = nil; + children_sexp_arrs = $send(self.$children(), 'map', [], ($$16 = function(child){var self = $$16.$$s == null ? this : $$16.$$s; - $a = [].concat(Opal.to_a(node)), (definee_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (args_node = ($a[2] == null ? nil : $a[2])), (body_node = ($a[3] == null ? nil : $a[3])), $a; - return node.$updated(nil, [self.$process(definee_node), name, self.$process(args_node), self.$process(body_node)]); - }, TMP_Processor_on_defs_12.$$arity = 1); - Opal.alias(self, "on_undef", "process_regular_node"); - Opal.alias(self, "on_alias", "process_regular_node"); - - Opal.defn(self, '$on_send', TMP_Processor_on_send_13 = function $$on_send(node) { - var $a, self = this, receiver_node = nil, method_name = nil, arg_nodes = nil; - - $a = [].concat(Opal.to_a(node)), (receiver_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (arg_nodes = $slice.call($a, 2)), $a; - if ($truthy(receiver_node)) { - receiver_node = self.$process(receiver_node)}; - return node.$updated(nil, [receiver_node, method_name].concat(Opal.to_a(self.$process_all(arg_nodes)))); - }, TMP_Processor_on_send_13.$$arity = 1); - Opal.alias(self, "on_csend", "on_send"); - Opal.alias(self, "on_block", "process_regular_node"); - Opal.alias(self, "on_while", "process_regular_node"); - Opal.alias(self, "on_while_post", "process_regular_node"); - Opal.alias(self, "on_until", "process_regular_node"); - Opal.alias(self, "on_until_post", "process_regular_node"); - Opal.alias(self, "on_for", "process_regular_node"); - Opal.alias(self, "on_return", "process_regular_node"); - Opal.alias(self, "on_break", "process_regular_node"); - Opal.alias(self, "on_next", "process_regular_node"); - Opal.alias(self, "on_redo", "process_regular_node"); - Opal.alias(self, "on_retry", "process_regular_node"); - Opal.alias(self, "on_super", "process_regular_node"); - Opal.alias(self, "on_yield", "process_regular_node"); - Opal.alias(self, "on_defined?", "process_regular_node"); - Opal.alias(self, "on_not", "process_regular_node"); - Opal.alias(self, "on_and", "process_regular_node"); - Opal.alias(self, "on_or", "process_regular_node"); - Opal.alias(self, "on_if", "process_regular_node"); - Opal.alias(self, "on_when", "process_regular_node"); - Opal.alias(self, "on_case", "process_regular_node"); - Opal.alias(self, "on_iflipflop", "process_regular_node"); - Opal.alias(self, "on_eflipflop", "process_regular_node"); - Opal.alias(self, "on_match_current_line", "process_regular_node"); - Opal.alias(self, "on_match_with_lvasgn", "process_regular_node"); - Opal.alias(self, "on_resbody", "process_regular_node"); - Opal.alias(self, "on_rescue", "process_regular_node"); - Opal.alias(self, "on_ensure", "process_regular_node"); - Opal.alias(self, "on_begin", "process_regular_node"); - Opal.alias(self, "on_kwbegin", "process_regular_node"); - Opal.alias(self, "on_preexe", "process_regular_node"); - Opal.alias(self, "on_postexe", "process_regular_node"); - - Opal.defn(self, '$process_variable_node', TMP_Processor_process_variable_node_14 = function $$process_variable_node(node) { - var self = this; + if (child == null) { + child = nil; + }; + if ($truthy(child['$is_a?']($$($nesting, 'Node')))) { + return child.$to_sexp_array() + } else { + return child + };}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + return [self.$type()].concat(Opal.to_a(children_sexp_arrs)); + }, $Node_to_sexp_array$15.$$arity = 0); + + Opal.def(self, '$deconstruct', $Node_deconstruct$17 = function $$deconstruct() { + var self = this; + + return [self.$type()].concat(Opal.to_a(self.$children())) + }, $Node_deconstruct$17.$$arity = 0); + self.$protected(); + return (Opal.def(self, '$fancy_type', $Node_fancy_type$18 = function $$fancy_type() { + var self = this; + + return self.type.$to_s().$gsub("_", "-") + }, $Node_fancy_type$18.$$arity = 0), nil) && 'fancy_type'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["ast/processor/mixin"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + + Opal.add_stubs(['$nil?', '$to_ast', '$type', '$respond_to?', '$send', '$handler_missing', '$map', '$to_a', '$process']); + return (function($base, $parent_nesting) { + var self = $module($base, 'AST'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Processor'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Mixin'); + + var $nesting = [self].concat($parent_nesting), $Mixin_process$1, $Mixin_process_all$2, $Mixin_handler_missing$4; - - self.$warn("" + "Parser::AST::Processor#process_variable_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_var instead."); - return self.$on_var(node); - }, TMP_Processor_process_variable_node_14.$$arity = 1); - Opal.defn(self, '$process_var_asgn_node', TMP_Processor_process_var_asgn_node_15 = function $$process_var_asgn_node(node) { - var self = this; + + Opal.def(self, '$process', $Mixin_process$1 = function $$process(node) { + var self = this, on_handler = nil, new_node = nil; - self.$warn("" + "Parser::AST::Processor#process_var_asgn_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_vasgn instead."); - return self.$on_vasgn(node); - }, TMP_Processor_process_var_asgn_node_15.$$arity = 1); - return (Opal.defn(self, '$process_argument_node', TMP_Processor_process_argument_node_16 = function $$process_argument_node(node) { + if ($truthy(node['$nil?']())) { + return nil}; + node = node.$to_ast(); + on_handler = "" + "on_" + (node.$type()); + if ($truthy(self['$respond_to?'](on_handler))) { + new_node = self.$send(on_handler, node) + } else { + new_node = self.$handler_missing(node) + }; + if ($truthy(new_node)) { + node = new_node}; + return node; + }, $Mixin_process$1.$$arity = 1); + + Opal.def(self, '$process_all', $Mixin_process_all$2 = function $$process_all(nodes) { + var $$3, self = this; + + return $send(nodes.$to_a(), 'map', [], ($$3 = function(node){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (node == null) { + node = nil; + }; + return self.$process(node);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + }, $Mixin_process_all$2.$$arity = 1); + return (Opal.def(self, '$handler_missing', $Mixin_handler_missing$4 = function $$handler_missing(node) { var self = this; - - self.$warn("" + "Parser::AST::Processor#process_argument_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_argument instead."); - return self.$on_argument(node); - }, TMP_Processor_process_argument_node_16.$$arity = 1), nil) && 'process_argument_node'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified('::', 'AST'), 'Processor'), $nesting) - })($nesting[0], $nesting) + return nil + }, $Mixin_handler_missing$4.$$arity = 1), nil) && 'handler_missing'; + })($nesting[0], $nesting) + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["ast/processor"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; + + Opal.add_stubs(['$require', '$include']); + return (function($base, $parent_nesting) { + var self = $module($base, 'AST'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Processor'); + + var $nesting = [self].concat($parent_nesting); + + + self.$require("ast/processor/mixin"); + return self.$include($$($nesting, 'Mixin')); + })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/meta"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send; +Opal.modules["ast/sexp"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - Opal.add_stubs(['$freeze', '$to_set', '$map', '$to_proc']); + Opal.add_stubs(['$new']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + var self = $module($base, 'AST'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Meta, self = $Meta = $module($base, 'Meta'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Sexp'); + + var $nesting = [self].concat($parent_nesting), $Sexp_s$1; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (Opal.def(self, '$s', $Sexp_s$1 = function $$s(type, $a) { + var $post_args, children, self = this; - Opal.const_set($nesting[0], 'NODE_TYPES', $send(["true", "false", "nil", "int", "float", "str", "dstr", "sym", "dsym", "xstr", "regopt", "regexp", "array", "splat", "array", "pair", "kwsplat", "hash", "irange", "erange", "self", "lvar", "ivar", "cvar", "gvar", "const", "defined?", "lvasgn", "ivasgn", "cvasgn", "gvasgn", "casgn", "mlhs", "masgn", "op_asgn", "op_asgn", "and_asgn", "ensure", "rescue", "arg_expr", "or_asgn", "and_asgn", "or_asgn", "back_ref", "nth_ref", "match_with_lvasgn", "match_current_line", "module", "class", "sclass", "def", "defs", "undef", "alias", "args", "cbase", "arg", "optarg", "restarg", "blockarg", "block_pass", "args", "def", "kwarg", "kwoptarg", "kwrestarg", "send", "csend", "super", "zsuper", "yield", "block", "and", "not", "or", "if", "when", "case", "while", "until", "while_post", "until_post", "for", "break", "next", "redo", "return", "resbody", "kwbegin", "begin", "retry", "preexe", "postexe", "iflipflop", "eflipflop", "shadowarg", "complex", "rational", "__FILE__", "__LINE__"], 'map', [], "to_sym".$to_proc()).$to_set().$freeze()) + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + children = $post_args;; + return $$($nesting, 'Node').$new(type, children); + }, $Sexp_s$1.$$arity = -2), nil) && 's' })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/buffer"] = function(Opal) { +Opal.modules["ast"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; + + Opal.add_stubs(['$require']); + return (function($base, $parent_nesting) { + var self = $module($base, 'AST'); + + var $nesting = [self].concat($parent_nesting); + + + self.$require("ast/node"); + self.$require("ast/processor"); + return self.$require("ast/sexp"); + })($nesting[0], $nesting) +}; + +Opal.modules["parser/ast/node"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars, $hash2 = Opal.hash2, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$empty?', '$=~', '$==', '$[]', '$freeze', '$match', '$find', '$encoding', '$recognize_encoding', '$force_encoding', '$nil?', '$encode', '$open', '$read', '$source=', '$-', '$raise', '$frozen?', '$dup', '$reencode_string', '$class', '$valid_encoding?', '$name', '$raw_source=', '$gsub', '$!', '$ascii_only?', '$!=', '$line_for', '$+', '$[]=', '$to_a', '$lines', '$end_with?', '$<<', '$each', '$chomp!', '$fetch', '$source_lines', '$<=', '$>', '$size', '$line_begins', '$new', '$-@', '$private', '$index', '$unshift', '$length', '$respond_to?', '$bsearch']); + Opal.add_stubs(['$attr_reader', '$[]', '$frozen?', '$dup', '$node=', '$-']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return (function($base, $parent_nesting) { + var self = $module($base, 'AST'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Buffer(){}; - var self = $Buffer = $klass($base, $super, 'Buffer', $Buffer); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Node'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Buffer_recognize_encoding_1, TMP_Buffer_reencode_string_2, TMP_Buffer_initialize_3, TMP_Buffer_read_5, TMP_Buffer_source_6, TMP_Buffer_source$eq_7, TMP_Buffer_raw_source$eq_8, TMP_Buffer_slice_9, TMP_Buffer_decompose_position_10, TMP_Buffer_line_for_position_11, TMP_Buffer_column_for_position_12, TMP_Buffer_source_lines_14, TMP_Buffer_source_line_15, TMP_Buffer_line_range_16, TMP_Buffer_last_line_17, TMP_Buffer_line_begins_18, TMP_Buffer_line_for_20, TMP_Buffer_line_for_22; + var $nesting = [self].concat($parent_nesting), $Node_assign_properties$1; - def.name = def.source = def.slice_source = def.first_line = def.line_for_position = def.column_for_position = def.lines = def.line_begins = nil; - self.$attr_reader("name", "first_line"); - Opal.const_set($nesting[0], 'ENCODING_RE', new RegExp("" + "\\#.*coding\\s*[:=]\\s*" + "(" + "" + "(utf8-mac)" + "|" + "" + "([A-Za-z0-9_-]+?)(-unix|-dos|-mac)" + "|" + "([A-Za-z0-9_-]+)" + ")" + "")); - Opal.defs(self, '$recognize_encoding', TMP_Buffer_recognize_encoding_1 = function $$recognize_encoding(string) { - var $a, $b, self = this, first_line = nil, second_line = nil, encoding_line = nil, result = nil; + self.$attr_reader("location"); + $alias(self, "loc", "location"); + return (Opal.def(self, '$assign_properties', $Node_assign_properties$1 = function $$assign_properties(properties) { + var self = this, location = nil, $writer = nil; - - if ($truthy(string['$empty?']())) { - return nil}; - string['$=~'](/^(.*)\n?(.*\n)?/); - $a = [(($b = $gvars['~']) === nil ? nil : $b['$[]'](1)), (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))], (first_line = $a[0]), (second_line = $a[1]), $a; - if ($truthy(first_line['$=~'](/^\xef\xbb\xbf/))) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8') - } else if (first_line['$[]'](0, 2)['$==']("#!".$force_encoding("ASCII-8BIT").$freeze())) { - encoding_line = second_line - } else { - encoding_line = first_line - }; - if ($truthy((result = Opal.const_get_relative($nesting, 'ENCODING_RE').$match(encoding_line)))) { - return Opal.const_get_relative($nesting, 'Encoding').$find(($truthy($a = ($truthy($b = result['$[]'](2)) ? $b : result['$[]'](3))) ? $a : result['$[]'](5))) - } else { + if ($truthy((location = properties['$[]']("location")))) { + + if ($truthy(location['$frozen?']())) { + location = location.$dup()}; + + $writer = [self]; + $send(location, 'node=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return (self.location = location); + } else { return nil - }; - }, TMP_Buffer_recognize_encoding_1.$$arity = 1); - Opal.defs(self, '$reencode_string', TMP_Buffer_reencode_string_2 = function $$reencode_string(input) { - var self = this, original_encoding = nil, detected_encoding = nil; - - - original_encoding = input.$encoding(); - detected_encoding = self.$recognize_encoding(input.$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))); - if ($truthy(detected_encoding['$nil?']())) { - return input.$force_encoding(original_encoding) - } else if (detected_encoding['$=='](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))) { - return input - } else { - return input.$force_encoding(detected_encoding).$encode(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8')) - }; - }, TMP_Buffer_reencode_string_2.$$arity = 1); - - Opal.defn(self, '$initialize', TMP_Buffer_initialize_3 = function $$initialize(name, first_line) { - var self = this; - - if (first_line == null) { - first_line = 1; } - - self.name = name; - self.source = nil; - self.first_line = first_line; - self.lines = nil; - self.line_begins = nil; - self.slice_source = nil; - self.line_for_position = $hash2([], {}); - return (self.column_for_position = $hash2([], {})); - }, TMP_Buffer_initialize_3.$$arity = -2); - - Opal.defn(self, '$read', TMP_Buffer_read_5 = function $$read() { - var TMP_4, self = this; - - - $send(Opal.const_get_relative($nesting, 'File'), 'open', [self.name, "rb".$force_encoding("ASCII-8BIT")], (TMP_4 = function(io){var self = TMP_4.$$s || this, $writer = nil; -if (io == null) io = nil; - - $writer = [io.$read()]; - $send(self, 'source=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); - return self; - }, TMP_Buffer_read_5.$$arity = 0); - - Opal.defn(self, '$source', TMP_Buffer_source_6 = function $$source() { - var self = this; + }, $Node_assign_properties$1.$$arity = 1), nil) && 'assign_properties'; + })($nesting[0], $$$($$$('::', 'AST'), 'Node'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; - - if ($truthy(self.source['$nil?']())) { - self.$raise(Opal.const_get_relative($nesting, 'RuntimeError'), "Cannot extract source from uninitialized Source::Buffer".$force_encoding("ASCII-8BIT"))}; - return self.source; - }, TMP_Buffer_source_6.$$arity = 0); - - Opal.defn(self, '$source=', TMP_Buffer_source$eq_7 = function(input) { - var $a, self = this, $writer = nil; +Opal.modules["opal/ast/node"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super; - - if ($truthy((($a = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - - if ($truthy(input['$frozen?']())) { - input = input.$dup()}; - input = self.$class().$reencode_string(input); - if ($truthy(input['$valid_encoding?']())) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'EncodingError'), "" + "invalid byte sequence in " + (input.$encoding().$name())) - };}; - - $writer = [input]; - $send(self, 'raw_source=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_Buffer_source$eq_7.$$arity = 1); - - Opal.defn(self, '$raw_source=', TMP_Buffer_raw_source$eq_8 = function(input) { - var $a, $b, $c, $d, self = this; + Opal.add_stubs(['$require', '$attr_reader', '$[]', '$frozen?', '$dup', '$merge!', '$loc', '$line', '$column']); + + self.$require("ast"); + self.$require("parser/ast/node"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - if ($truthy(self.source)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Source::Buffer is immutable".$force_encoding("ASCII-8BIT"))}; - self.source = input.$gsub("\r\n".$force_encoding("ASCII-8BIT").$freeze(), "\n".$force_encoding("ASCII-8BIT").$freeze()).$freeze(); - if ($truthy(($truthy($a = ($truthy($b = ($truthy($c = (($d = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil)) ? self.source['$ascii_only?']()['$!']() : $c)) ? self.source.$encoding()['$!='](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_32LE')) : $b)) ? self.source.$encoding()['$!='](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY')) : $a))) { - return (self.slice_source = self.source.$encode(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_32LE'))) - } else { - return nil - }; - }, TMP_Buffer_raw_source$eq_8.$$arity = 1); - - Opal.defn(self, '$slice', TMP_Buffer_slice_9 = function $$slice(range) { - var self = this; + var $nesting = [self].concat($parent_nesting); - if ($truthy(self.slice_source['$nil?']())) { - return self.source['$[]'](range) - } else { - return self.slice_source['$[]'](range).$encode(self.source.$encoding()) - } - }, TMP_Buffer_slice_9.$$arity = 1); - - Opal.defn(self, '$decompose_position', TMP_Buffer_decompose_position_10 = function $$decompose_position(position) { - var $a, $b, self = this, line_no = nil, line_begin = nil; + return (function($base, $parent_nesting) { + var self = $module($base, 'AST'); - - $b = self.$line_for(position), $a = Opal.to_ary($b), (line_no = ($a[0] == null ? nil : $a[0])), (line_begin = ($a[1] == null ? nil : $a[1])), $b; - return [$rb_plus(self.first_line, line_no), $rb_minus(position, line_begin)]; - }, TMP_Buffer_decompose_position_10.$$arity = 1); - - Opal.defn(self, '$line_for_position', TMP_Buffer_line_for_position_11 = function $$line_for_position(position) { - var $a, $b, $c, self = this, $writer = nil, line_no = nil, _ = nil; + var $nesting = [self].concat($parent_nesting); - return ($truthy($a = self.line_for_position['$[]'](position)) ? $a : (($writer = [position, ($c = self.$line_for(position), $b = Opal.to_ary($c), (line_no = ($b[0] == null ? nil : $b[0])), (_ = ($b[1] == null ? nil : $b[1])), $c, $rb_plus(self.first_line, line_no))]), $send(self.line_for_position, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) - }, TMP_Buffer_line_for_position_11.$$arity = 1); - - Opal.defn(self, '$column_for_position', TMP_Buffer_column_for_position_12 = function $$column_for_position(position) { - var $a, $b, $c, self = this, $writer = nil, _ = nil, line_begin = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Node'); - return ($truthy($a = self.column_for_position['$[]'](position)) ? $a : (($writer = [position, ($c = self.$line_for(position), $b = Opal.to_ary($c), (_ = ($b[0] == null ? nil : $b[0])), (line_begin = ($b[1] == null ? nil : $b[1])), $c, $rb_minus(position, line_begin))]), $send(self.column_for_position, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) - }, TMP_Buffer_column_for_position_12.$$arity = 1); - - Opal.defn(self, '$source_lines', TMP_Buffer_source_lines_14 = function $$source_lines() { - var $a, TMP_13, self = this, lines = nil; + var $nesting = [self].concat($parent_nesting), $Node_assign_properties$1, $Node_line$2, $Node_column$3; - return (self.lines = ($truthy($a = self.lines) ? $a : ((lines = self.source.$lines().$to_a()), (function() {if ($truthy(self.source['$end_with?']("\n".$force_encoding("ASCII-8BIT").$freeze()))) { - return lines['$<<']("".$force_encoding("ASCII-8BIT")) - } else { - return nil - }; return nil; })(), $send(lines, 'each', [], (TMP_13 = function(line){var self = TMP_13.$$s || this; -if (line == null) line = nil; - - line['$chomp!']("\n".$force_encoding("ASCII-8BIT").$freeze()); - return line.$freeze();}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13)), lines.$freeze()))) - }, TMP_Buffer_source_lines_14.$$arity = 0); + self.$$prototype.meta = nil; - Opal.defn(self, '$source_line', TMP_Buffer_source_line_15 = function $$source_line(lineno) { - var self = this; - - return self.$source_lines().$fetch($rb_minus(lineno, self.first_line)).$dup() - }, TMP_Buffer_source_line_15.$$arity = 1); + self.$attr_reader("meta"); - Opal.defn(self, '$line_range', TMP_Buffer_line_range_16 = function $$line_range(lineno) { - var $a, self = this, index = nil; + Opal.def(self, '$assign_properties', $Node_assign_properties$1 = function $$assign_properties(properties) { + var $iter = $Node_assign_properties$1.$$p, $yield = $iter || nil, self = this, meta = nil, $ret_or_1 = nil; + if ($iter) $Node_assign_properties$1.$$p = null; - index = $rb_plus($rb_minus(lineno, self.first_line), 1); - if ($truthy(($truthy($a = $rb_le(index, 0)) ? $a : $rb_gt(index, self.$line_begins().$size())))) { - return self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "Parser::Source::Buffer: range for line " + ("" + (lineno) + " requested, valid line numbers are " + (self.first_line) + "..") + ("" + ($rb_minus($rb_plus(self.first_line, self.$line_begins().$size()), 1)))) - } else if (index['$=='](self.$line_begins().$size())) { - return Opal.const_get_relative($nesting, 'Range').$new(self, self.$line_begins()['$[]'](index['$-@']())['$[]'](1), self.source.$size()) + if ($truthy((meta = properties['$[]']("meta")))) { + + if ($truthy(meta['$frozen?']())) { + meta = meta.$dup()}; + self.meta['$merge!'](meta); + } else { + self.meta = (function() {if ($truthy(($ret_or_1 = self.meta))) { + return $ret_or_1 } else { - return Opal.const_get_relative($nesting, 'Range').$new(self, self.$line_begins()['$[]'](index['$-@']())['$[]'](1), $rb_minus(self.$line_begins()['$[]']($rb_minus(index['$-@'](), 1))['$[]'](1), 1)) + return $hash2([], {}) + }; return nil; })() }; - }, TMP_Buffer_line_range_16.$$arity = 1); + return $send2(self, $find_super(self, 'assign_properties', $Node_assign_properties$1, false, true), 'assign_properties', [properties], $iter); + }, $Node_assign_properties$1.$$arity = 1); - Opal.defn(self, '$last_line', TMP_Buffer_last_line_17 = function $$last_line() { + Opal.def(self, '$line', $Node_line$2 = function $$line() { var self = this; - return $rb_minus($rb_plus(self.$line_begins().$size(), self.first_line), 1) - }, TMP_Buffer_last_line_17.$$arity = 0); - self.$private(); - - Opal.defn(self, '$line_begins', TMP_Buffer_line_begins_18 = function $$line_begins() { - var $a, self = this, index = nil; + if ($truthy(self.$loc())) { + return self.$loc().$line() + } else { + return nil + } + }, $Node_line$2.$$arity = 0); + return (Opal.def(self, '$column', $Node_column$3 = function $$column() { + var self = this; - - if ($truthy(self.line_begins)) { - } else { - - $a = [[[0, 0]], 0], (self.line_begins = $a[0]), (index = $a[1]), $a; - while ($truthy((index = self.source.$index("\n".$force_encoding("ASCII-8BIT").$freeze(), index)))) { - - index = $rb_plus(index, 1); - self.line_begins.$unshift([self.line_begins.$length(), index]); - }; - }; - return self.line_begins; - }, TMP_Buffer_line_begins_18.$$arity = 0); - if ($truthy([]['$respond_to?']("bsearch"))) { - return (Opal.defn(self, '$line_for', TMP_Buffer_line_for_20 = function $$line_for(position) { - var TMP_19, self = this; - - return $send(self.$line_begins(), 'bsearch', [], (TMP_19 = function(line, line_begin){var self = TMP_19.$$s || this; -if (line == null) line = nil;if (line_begin == null) line_begin = nil; - return $rb_le(line_begin, position)}, TMP_19.$$s = self, TMP_19.$$arity = 2, TMP_19)) - }, TMP_Buffer_line_for_20.$$arity = 1), nil) && 'line_for' - } else { - return (Opal.defn(self, '$line_for', TMP_Buffer_line_for_22 = function $$line_for(position) { - var TMP_21, self = this; - - return $send(self.$line_begins(), 'find', [], (TMP_21 = function(line, line_begin){var self = TMP_21.$$s || this; -if (line == null) line = nil;if (line_begin == null) line_begin = nil; - return $rb_le(line_begin, position)}, TMP_21.$$s = self, TMP_21.$$arity = 2, TMP_21)) - }, TMP_Buffer_line_for_22.$$arity = 1), nil) && 'line_for' - }; - })($nesting[0], null, $nesting) + if ($truthy(self.$loc())) { + return self.$loc().$column() + } else { + return nil + } + }, $Node_column$3.$$arity = 0), nil) && 'column'; + })($nesting[0], $$$($$$($$$('::', 'Parser'), 'AST'), 'Node'), $nesting) })($nesting[0], $nesting) - })($nesting[0], $nesting) + })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/range"] = function(Opal) { +Opal.modules["racc/parser"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } @@ -1937,3383 +2125,7209 @@ Opal.modules["parser/source/range"] = function(Opal) { function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_times(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); + } + var $a, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$<', '$raise', '$nil?', '$freeze', '$new', '$-', '$line_for_position', '$alias_method', '$column_for_position', '$!=', '$line', '$begin', '$end', '$inspect', '$column', '$source_line', '$slice', '$begin_pos', '$end_pos', '$include?', '$source', '$to_a', '$decompose_position', '$join', '$name', '$+', '$min', '$max', '$disjoint?', '$>=', '$==', '$is_a?', '$source_buffer']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + Opal.add_stubs(['$[]', '$class', '$<', '$size', '$[]=', '$-', '$__send__', '$_racc_setup', '$raise', '$_racc_init_sysvars', '$catch', '$!=', '$next_token', '$racc_read_token', '$+', '$>=', '$==', '$_racc_evalact', '$!', '$>', '$push', '$racc_shift', '$-@', '$_racc_do_reduce', '$===', '$racc_accept', '$throw', '$on_error', '$<=', '$pop', '$racc_e_pop', '$inspect', '$racc_next_state', '$*', '$racc_reduce', '$sprintf', '$token_to_str', '$print', '$racc_token2str', '$puts', '$racc_print_stacks', '$empty?', '$each', '$racc_print_states', '$each_index']); + + (function($base, $parent_nesting) { + var self = $module($base, 'Racc'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ParseError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Range(){}; - var self = $Range = $klass($base, $super, 'Range', $Range); + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting) + })($nesting[0], $nesting); + if ($truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { + } else { + Opal.const_set($nesting[0], 'ParseError', $$$($$($nesting, 'Racc'), 'ParseError')) + }; + return (function($base, $parent_nesting) { + var self = $module($base, 'Racc'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Range_initialize_1, TMP_Range_begin_2, TMP_Range_end_3, TMP_Range_size_4, TMP_Range_line_5, TMP_Range_column_6, TMP_Range_last_line_7, TMP_Range_last_column_8, TMP_Range_column_range_9, TMP_Range_source_line_10, TMP_Range_source_11, TMP_Range_is$q_12, TMP_Range_to_a_13, TMP_Range_to_s_14, TMP_Range_resize_15, TMP_Range_join_16, TMP_Range_intersect_17, TMP_Range_disjoint$q_18, TMP_Range_overlaps$q_19, TMP_Range_empty$q_20, TMP_Range_$eq$eq_21, TMP_Range_inspect_22; + var $nesting = [self].concat($parent_nesting), $a; - def.source_buffer = def.begin_pos = def.end_pos = nil; - - self.$attr_reader("source_buffer"); - self.$attr_reader("begin_pos", "end_pos"); - - Opal.defn(self, '$initialize', TMP_Range_initialize_1 = function $$initialize(source_buffer, begin_pos, end_pos) { - var $a, self = this; - - - if ($truthy($rb_lt(end_pos, begin_pos))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Parser::Source::Range: end_pos must not be less than begin_pos")}; - if ($truthy(source_buffer['$nil?']())) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Parser::Source::Range: source_buffer must not be nil")}; - self.source_buffer = source_buffer; - $a = [begin_pos, end_pos], (self.begin_pos = $a[0]), (self.end_pos = $a[1]), $a; - return self.$freeze(); - }, TMP_Range_initialize_1.$$arity = 3); - - Opal.defn(self, '$begin', TMP_Range_begin_2 = function $$begin() { - var self = this; - - return Opal.const_get_relative($nesting, 'Range').$new(self.source_buffer, self.begin_pos, self.begin_pos) - }, TMP_Range_begin_2.$$arity = 0); - - Opal.defn(self, '$end', TMP_Range_end_3 = function $$end() { - var self = this; - - return Opal.const_get_relative($nesting, 'Range').$new(self.source_buffer, self.end_pos, self.end_pos) - }, TMP_Range_end_3.$$arity = 0); - - Opal.defn(self, '$size', TMP_Range_size_4 = function $$size() { - var self = this; - - return $rb_minus(self.end_pos, self.begin_pos) - }, TMP_Range_size_4.$$arity = 0); - Opal.alias(self, "length", "size"); - - Opal.defn(self, '$line', TMP_Range_line_5 = function $$line() { - var self = this; + + if ($truthy((($a = $$($nesting, 'Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { + } else { + Opal.const_set($nesting[0], 'Racc_No_Extensions', false) + }; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Parser'); - return self.source_buffer.$line_for_position(self.begin_pos) - }, TMP_Range_line_5.$$arity = 0); - self.$alias_method("first_line", "line"); - - Opal.defn(self, '$column', TMP_Range_column_6 = function $$column() { - var self = this; + var $nesting = [self].concat($parent_nesting), $Parser_racc_runtime_type$1, $Parser__racc_setup$2, $Parser__racc_init_sysvars$3, $Parser_do_parse$4, $Parser_next_token$5, $Parser__racc_do_parse_rb$6, $Parser_yyparse$8, $Parser__racc_yyparse_rb$9, $Parser__racc_evalact$12, $Parser__racc_do_reduce$14, $Parser_on_error$15, $Parser_yyerror$16, $Parser_yyaccept$17, $Parser_yyerrok$18, $Parser_racc_read_token$19, $Parser_racc_shift$20, $Parser_racc_reduce$21, $Parser_racc_accept$23, $Parser_racc_e_pop$24, $Parser_racc_next_state$25, $Parser_racc_print_stacks$26, $Parser_racc_print_states$28, $Parser_racc_token2str$30, $Parser_token_to_str$31; - return self.source_buffer.$column_for_position(self.begin_pos) - }, TMP_Range_column_6.$$arity = 0); - - Opal.defn(self, '$last_line', TMP_Range_last_line_7 = function $$last_line() { - var self = this; + self.$$prototype.yydebug = self.$$prototype.racc_debug_out = self.$$prototype.racc_error_status = self.$$prototype.racc_t = self.$$prototype.racc_vstack = self.$$prototype.racc_val = self.$$prototype.racc_state = self.$$prototype.racc_tstack = nil; + + Opal.const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); + Opal.const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); + Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); + Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); + Opal.const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); + Opal.const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); + Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version', $$($nesting, 'Racc_Runtime_Core_Version_R')); + Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$($nesting, 'Racc_Runtime_Core_Revision_R')); + Opal.const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); + Opal.defs($$($nesting, 'Parser'), '$racc_runtime_type', $Parser_racc_runtime_type$1 = function $$racc_runtime_type() { + var self = this; - return self.source_buffer.$line_for_position(self.end_pos) - }, TMP_Range_last_line_7.$$arity = 0); - - Opal.defn(self, '$last_column', TMP_Range_last_column_8 = function $$last_column() { - var self = this; + return $$($nesting, 'Racc_Runtime_Type') + }, $Parser_racc_runtime_type$1.$$arity = 0); + + Opal.def(self, '$_racc_setup', $Parser__racc_setup$2 = function $$_racc_setup() { + var $a, $b, self = this, $ret_or_1 = nil, arg = nil, $writer = nil; + if ($gvars.stderr == null) $gvars.stderr = nil; - return self.source_buffer.$column_for_position(self.end_pos) - }, TMP_Range_last_column_8.$$arity = 0); - Opal.defn(self, '$column_range', TMP_Range_column_range_9 = function $$column_range() { - var self = this; - + if ($truthy($$$(self.$class(), 'Racc_debug_parser'))) { + } else { + self.yydebug = false + }; + if ($truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { + } else { + self.yydebug = false + }; + if ($truthy(self.yydebug)) { - if ($truthy(self.$begin().$line()['$!='](self.$end().$line()))) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "" + (self.$inspect()) + " spans more than one line")}; - return Opal.Range.$new(self.$begin().$column(),self.$end().$column(), true); - }, TMP_Range_column_range_9.$$arity = 0); - - Opal.defn(self, '$source_line', TMP_Range_source_line_10 = function $$source_line() { - var self = this; - - return self.source_buffer.$source_line(self.$line()) - }, TMP_Range_source_line_10.$$arity = 0); - - Opal.defn(self, '$source', TMP_Range_source_11 = function $$source() { - var self = this; - - return self.source_buffer.$slice(Opal.Range.$new(self.$begin_pos(),self.$end_pos(), true)) - }, TMP_Range_source_11.$$arity = 0); - - Opal.defn(self, '$is?', TMP_Range_is$q_12 = function($a_rest) { - var self = this, what; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - what = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - what[$arg_idx - 0] = arguments[$arg_idx]; - } - return what['$include?'](self.$source()) - }, TMP_Range_is$q_12.$$arity = -1); - - Opal.defn(self, '$to_a', TMP_Range_to_a_13 = function $$to_a() { - var self = this; + if ($truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { + } else { + self.racc_debug_out = $gvars.stderr + }; + self.racc_debug_out = (function() {if ($truthy(($ret_or_1 = self.racc_debug_out))) { + return $ret_or_1 + } else { + return $gvars.stderr + }; return nil; })();}; + arg = $$$(self.$class(), 'Racc_arg'); + if ($truthy($rb_lt(arg.$size(), 14))) { + + $writer = [13, true]; + $send(arg, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];}; + return arg; + }, $Parser__racc_setup$2.$$arity = 0); + + Opal.def(self, '$_racc_init_sysvars', $Parser__racc_init_sysvars$3 = function $$_racc_init_sysvars() { + var self = this; - return Opal.Range.$new(self.begin_pos,self.end_pos, true).$to_a() - }, TMP_Range_to_a_13.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Range_to_s_14 = function $$to_s() { - var $a, $b, self = this, line = nil, column = nil; + self.racc_state = [0]; + self.racc_tstack = []; + self.racc_vstack = []; + self.racc_t = nil; + self.racc_val = nil; + self.racc_read_next = true; + self.racc_user_yyerror = false; + return (self.racc_error_status = 0); + }, $Parser__racc_init_sysvars$3.$$arity = 0); + + Opal.def(self, '$do_parse', $Parser_do_parse$4 = function $$do_parse() { + var self = this; - - $b = self.source_buffer.$decompose_position(self.begin_pos), $a = Opal.to_ary($b), (line = ($a[0] == null ? nil : $a[0])), (column = ($a[1] == null ? nil : $a[1])), $b; - return [self.source_buffer.$name(), line, $rb_plus(column, 1)].$join(":"); - }, TMP_Range_to_s_14.$$arity = 0); - - Opal.defn(self, '$resize', TMP_Range_resize_15 = function $$resize(new_size) { - var self = this; + return self.$__send__($$($nesting, 'Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) + }, $Parser_do_parse$4.$$arity = 0); + + Opal.def(self, '$next_token', $Parser_next_token$5 = function $$next_token() { + var self = this; - return Opal.const_get_relative($nesting, 'Range').$new(self.source_buffer, self.begin_pos, $rb_plus(self.begin_pos, new_size)) - }, TMP_Range_resize_15.$$arity = 1); - - Opal.defn(self, '$join', TMP_Range_join_16 = function $$join(other) { - var self = this; + return self.$raise($$($nesting, 'NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") + }, $Parser_next_token$5.$$arity = 0); + + Opal.def(self, '$_racc_do_parse_rb', $Parser__racc_do_parse_rb$6 = function $$_racc_do_parse_rb(arg, in_debug) { + var $a, $b, $$7, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; - return Opal.const_get_relative($nesting, 'Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$min(), [self.end_pos, other.$end_pos()].$max()) - }, TMP_Range_join_16.$$arity = 1); - Opal.defn(self, '$intersect', TMP_Range_intersect_17 = function $$intersect(other) { - var self = this; + $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + self.$_racc_init_sysvars(); + tok = (act = (i = nil)); + return $send(self, 'catch', ["racc_end_parse"], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s, $c, $d, $e, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; + if (self.racc_state == null) self.racc_state = nil; + if (self.racc_read_next == null) self.racc_read_next = nil; + if (self.racc_t == null) self.racc_t = nil; + if (self.yydebug == null) self.yydebug = nil; + if (self.racc_val == null) self.racc_val = nil; - if ($truthy(self['$disjoint?'](other))) { - return nil + while ($truthy(true)) { + + if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { + + if ($truthy(self.racc_read_next)) { + if ($truthy(self.racc_t['$!='](0))) { + + $e = self.$next_token(), $d = Opal.to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; + if ($truthy(tok)) { + self.racc_t = (function() {if ($truthy(($ret_or_2 = token_table['$[]'](tok)))) { + return $ret_or_2 + } else { + return 1 + }; return nil; })() + } else { + self.racc_t = 0 + }; + if ($truthy(self.yydebug)) { + self.$racc_read_token(self.racc_t, tok, self.racc_val)}; + self.racc_read_next = false;}}; + i = $rb_plus(i, self.racc_t); + if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = $rb_ge(i, 0)))) { + return (act = action_table['$[]'](i)) + } else { + return $ret_or_4 + }; return nil; })()))) { + return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) + } else { + return $ret_or_3 + }; return nil; })())) { + } else { + act = action_default['$[]'](self.racc_state['$[]'](-1)) + }; } else { - return Opal.const_get_relative($nesting, 'Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$max(), [self.end_pos, other.$end_pos()].$min()) - } - }, TMP_Range_intersect_17.$$arity = 1); - - Opal.defn(self, '$disjoint?', TMP_Range_disjoint$q_18 = function(other) { - var $a, self = this; - - return ($truthy($a = $rb_ge(self.begin_pos, other.$end_pos())) ? $a : $rb_ge(other.$begin_pos(), self.end_pos)) - }, TMP_Range_disjoint$q_18.$$arity = 1); - - Opal.defn(self, '$overlaps?', TMP_Range_overlaps$q_19 = function(other) { - var $a, self = this; + act = action_default['$[]'](self.racc_state['$[]'](-1)) + }; + while ($truthy((act = self.$_racc_evalact(act, arg)))) { + + }; + }}, $$7.$$s = self, $$7.$$arity = 0, $$7)); + }, $Parser__racc_do_parse_rb$6.$$arity = 2); + + Opal.def(self, '$yyparse', $Parser_yyparse$8 = function $$yyparse(recv, mid) { + var self = this; - return ($truthy($a = $rb_lt(self.begin_pos, other.$end_pos())) ? $rb_lt(other.$begin_pos(), self.end_pos) : $a) - }, TMP_Range_overlaps$q_19.$$arity = 1); - - Opal.defn(self, '$empty?', TMP_Range_empty$q_20 = function() { - var self = this; + return self.$__send__($$($nesting, 'Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) + }, $Parser_yyparse$8.$$arity = 2); + + Opal.def(self, '$_racc_yyparse_rb', $Parser__racc_yyparse_rb$9 = function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { + var $a, $b, $$10, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; - return self.begin_pos['$=='](self.end_pos) - }, TMP_Range_empty$q_20.$$arity = 0); - Opal.defn(self, '$==', TMP_Range_$eq$eq_21 = function(other) { - var $a, $b, $c, self = this; - - return ($truthy($a = ($truthy($b = ($truthy($c = other['$is_a?'](Opal.const_get_relative($nesting, 'Range'))) ? self.source_buffer['$=='](other.$source_buffer()) : $c)) ? self.begin_pos['$=='](other.$begin_pos()) : $b)) ? self.end_pos['$=='](other.$end_pos()) : $a) - }, TMP_Range_$eq$eq_21.$$arity = 1); - return (Opal.defn(self, '$inspect', TMP_Range_inspect_22 = function $$inspect() { - var self = this; - - return "" + "#" - }, TMP_Range_inspect_22.$$arity = 0), nil) && 'inspect'; - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/comment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; - - Opal.add_stubs(['$attr_reader', '$alias_method', '$new', '$associate', '$associate_locations', '$freeze', '$source', '$text', '$===', '$==', '$type', '$is_a?', '$location', '$to_s', '$expression', '$inspect']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + self.$_racc_init_sysvars(); + act = nil; + i = nil; + return $send(self, 'catch', ["racc_end_parse"], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, $c, $d, $$11; + if (self.racc_state == null) self.racc_state = nil; - (function($base, $super, $parent_nesting) { - function $Comment(){}; - var self = $Comment = $klass($base, $super, 'Comment', $Comment); + + while (!($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1)))))) { + while ($truthy((act = self.$_racc_evalact(action_default['$[]'](self.racc_state['$[]'](-1)), arg)))) { + + } + }; + return $send(recv, '__send__', [mid], ($$11 = function(tok, val){var self = $$11.$$s == null ? this : $$11.$$s, $e, $f, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + if (self.racc_t == null) self.racc_t = nil; + if (self.racc_state == null) self.racc_state = nil; + if (self.racc_read_next == null) self.racc_read_next = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Comment_associate_1, TMP_Comment_associate_locations_2, TMP_Comment_initialize_3, TMP_Comment_type_4, TMP_Comment_inline$q_5, TMP_Comment_document$q_6, TMP_Comment_$eq$eq_7, TMP_Comment_inspect_8; + + + if (tok == null) { + tok = nil; + }; + + if (val == null) { + val = nil; + }; + if ($truthy(tok)) { + self.racc_t = (function() {if ($truthy(($ret_or_5 = token_table['$[]'](tok)))) { + return $ret_or_5 + } else { + return 1 + }; return nil; })() + } else { + self.racc_t = 0 + }; + self.racc_val = val; + self.racc_read_next = false; + i = $rb_plus(i, self.racc_t); + if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = $rb_ge(i, 0)))) { + return (act = action_table['$[]'](i)) + } else { + return $ret_or_7 + }; return nil; })()))) { + return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) + } else { + return $ret_or_6 + }; return nil; })())) { + } else { + act = action_default['$[]'](self.racc_state['$[]'](-1)) + }; + while ($truthy((act = self.$_racc_evalact(act, arg)))) { + + }; + while ($truthy((function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']()))) { + return $ret_or_9 + } else { + return self.racc_read_next['$!']() + }; return nil; })()))) { + return $ret_or_8 + } else { + return self.racc_t['$=='](0) + }; return nil; })())) { + + if ($truthy((function() {if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = i))) { + return (i = $rb_plus(i, self.racc_t)) + } else { + return $ret_or_13 + }; return nil; })()))) { + return $rb_ge(i, 0) + } else { + return $ret_or_12 + }; return nil; })()))) { + return (act = action_table['$[]'](i)) + } else { + return $ret_or_11 + }; return nil; })()))) { + return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) + } else { + return $ret_or_10 + }; return nil; })())) { + } else { + act = action_default['$[]'](self.racc_state['$[]'](-1)) + }; + while ($truthy((act = self.$_racc_evalact(act, arg)))) { + + }; + };}, $$11.$$s = self, $$11.$$arity = 2, $$11));}, $$10.$$s = self, $$10.$$arity = 0, $$10)); + }, $Parser__racc_yyparse_rb$9.$$arity = 4); + + Opal.def(self, '$_racc_evalact', $Parser__racc_evalact$12 = function $$_racc_evalact(act, arg) { + var $a, $b, $$13, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, $ret_or_14 = nil, $ret_or_15 = nil, code = nil, $case = nil, i = nil, $ret_or_16 = nil, $ret_or_17 = nil; - def.location = nil; - self.$attr_reader("text"); - self.$attr_reader("location"); - self.$alias_method("loc", "location"); - Opal.defs(self, '$associate', TMP_Comment_associate_1 = function $$associate(ast, comments) { - var self = this, associator = nil; - - - associator = Opal.const_get_relative($nesting, 'Associator').$new(ast, comments); - return associator.$associate(); - }, TMP_Comment_associate_1.$$arity = 2); - Opal.defs(self, '$associate_locations', TMP_Comment_associate_locations_2 = function $$associate_locations(ast, comments) { - var self = this, associator = nil; - + $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; + if ($truthy((function() {if ($truthy(($ret_or_14 = $rb_gt(act, 0)))) { + return $rb_lt(act, shift_n) + } else { + return $ret_or_14 + }; return nil; })())) { - associator = Opal.const_get_relative($nesting, 'Associator').$new(ast, comments); - return associator.$associate_locations(); - }, TMP_Comment_associate_locations_2.$$arity = 2); - - Opal.defn(self, '$initialize', TMP_Comment_initialize_3 = function $$initialize(range) { - var self = this; - + if ($truthy($rb_gt(self.racc_error_status, 0))) { + if (self.racc_t['$=='](1)) { + } else { + self.racc_error_status = $rb_minus(self.racc_error_status, 1) + }}; + self.racc_vstack.$push(self.racc_val); + self.racc_state.$push(act); + self.racc_read_next = true; + if ($truthy(self.yydebug)) { + + self.racc_tstack.$push(self.racc_t); + self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack);}; + } else if ($truthy((function() {if ($truthy(($ret_or_15 = $rb_lt(act, 0)))) { + return $rb_gt(act, reduce_n['$-@']()) + } else { + return $ret_or_15 + }; return nil; })())) { - self.location = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'Source'), 'Map').$new(range); - self.text = range.$source().$freeze(); - return self.$freeze(); - }, TMP_Comment_initialize_3.$$arity = 1); - - Opal.defn(self, '$type', TMP_Comment_type_4 = function $$type() { - var self = this, $case = nil; + code = $send(self, 'catch', ["racc_jump"], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + if (self.racc_state == null) self.racc_state = nil; - return (function() {$case = self.$text(); - if (/^#/['$===']($case)) {return "inline"} - else if (/^=begin/['$===']($case)) {return "document"} - else { return nil }})() - }, TMP_Comment_type_4.$$arity = 0); - - Opal.defn(self, '$inline?', TMP_Comment_inline$q_5 = function() { - var self = this; + + self.racc_state.$push(self.$_racc_do_reduce(arg, act)); + return false;}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + if ($truthy(code)) { + $case = code; + if ((1)['$===']($case)) { + self.racc_user_yyerror = true; + return reduce_n['$-@']();} + else if ((2)['$===']($case)) {return shift_n} + else {self.$raise("[Racc Bug] unknown jump code")}}; + } else if (act['$=='](shift_n)) { + + if ($truthy(self.yydebug)) { + self.$racc_accept()}; + self.$throw("racc_end_parse", self.racc_vstack['$[]'](0)); + } else if (act['$=='](reduce_n['$-@']())) { + + $case = self.racc_error_status; + if ((0)['$===']($case)) {if ($truthy(arg['$[]'](21))) { + } else { + self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) + }} + else if ((3)['$===']($case)) { + if (self.racc_t['$=='](0)) { + self.$throw("racc_end_parse", nil)}; + self.racc_read_next = true;}; + self.racc_user_yyerror = false; + self.racc_error_status = 3; + while ($truthy(true)) { + + if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { + + i = $rb_plus(i, 1); + if ($truthy((function() {if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = $rb_ge(i, 0)))) { + + return (act = action_table['$[]'](i)); + } else { + return $ret_or_17 + }; return nil; })()))) { + return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) + } else { + return $ret_or_16 + }; return nil; })())) { + break;};}; + if ($truthy($rb_le(self.racc_state.$size(), 1))) { + self.$throw("racc_end_parse", nil)}; + self.racc_state.$pop(); + self.racc_vstack.$pop(); + if ($truthy(self.yydebug)) { + + self.racc_tstack.$pop(); + self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack);}; + }; + return act; + } else { + self.$raise("" + "[Racc Bug] unknown action " + (act.$inspect())) + }; + if ($truthy(self.yydebug)) { + self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state)}; + return nil; + }, $Parser__racc_evalact$12.$$arity = 2); + + Opal.def(self, '$_racc_do_reduce', $Parser__racc_do_reduce$14 = function $$_racc_do_reduce(arg, act) { + var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, $ret_or_18 = nil, $ret_or_19 = nil, curstate = nil; - return self.$type()['$==']("inline") - }, TMP_Comment_inline$q_5.$$arity = 0); - Opal.defn(self, '$document?', TMP_Comment_document$q_6 = function() { - var self = this; - - return self.$type()['$==']("document") - }, TMP_Comment_document$q_6.$$arity = 0); + $b = arg, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; + state = self.racc_state; + vstack = self.racc_vstack; + tstack = self.racc_tstack; + i = $rb_times(act, -3); + len = reduce_table['$[]'](i); + reduce_to = reduce_table['$[]']($rb_plus(i, 1)); + method_id = reduce_table['$[]']($rb_plus(i, 2)); + void_array = []; + if ($truthy(self.yydebug)) { + tmp_t = tstack['$[]'](len['$-@'](), len)}; + tmp_v = vstack['$[]'](len['$-@'](), len); + if ($truthy(self.yydebug)) { + + $writer = [len['$-@'](), len, void_array]; + $send(tstack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];}; - Opal.defn(self, '$==', TMP_Comment_$eq$eq_7 = function(other) { - var $a, self = this; - - return ($truthy($a = other['$is_a?'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Comment'))) ? self.location['$=='](other.$location()) : $a) - }, TMP_Comment_$eq$eq_7.$$arity = 1); - return (Opal.defn(self, '$inspect', TMP_Comment_inspect_8 = function $$inspect() { - var self = this; + $writer = [len['$-@'](), len, void_array]; + $send(vstack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [len['$-@'](), len, void_array]; + $send(state, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(use_result)) { + vstack.$push(self.$__send__(method_id, tmp_v, vstack, tmp_v['$[]'](0))) + } else { + vstack.$push(self.$__send__(method_id, tmp_v, vstack)) + }; + tstack.$push(reduce_to); + if ($truthy(self.yydebug)) { + self.$racc_reduce(tmp_t, reduce_to, tstack, vstack)}; + k1 = $rb_minus(reduce_to, nt_base); + if ($truthy((i = goto_pointer['$[]'](k1)))) { + + i = $rb_plus(i, state['$[]'](-1)); + if ($truthy((function() {if ($truthy(($ret_or_18 = (function() {if ($truthy(($ret_or_19 = $rb_ge(i, 0)))) { + + return (curstate = goto_table['$[]'](i)); + } else { + return $ret_or_19 + }; return nil; })()))) { + return goto_check['$[]'](i)['$=='](k1) + } else { + return $ret_or_18 + }; return nil; })())) { + return curstate};}; + return goto_default['$[]'](k1); + }, $Parser__racc_do_reduce$14.$$arity = 2); + + Opal.def(self, '$on_error', $Parser_on_error$15 = function $$on_error(t, val, vstack) { + var self = this, $ret_or_20 = nil; - return "" + "#" - }, TMP_Comment_inspect_8.$$arity = 0), nil) && 'inspect'; - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; + return self.$raise($$($nesting, 'ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), (function() {if ($truthy(($ret_or_20 = self.$token_to_str(t)))) { + return $ret_or_20 + } else { + return "?" + }; return nil; })())) + }, $Parser_on_error$15.$$arity = 3); + + Opal.def(self, '$yyerror', $Parser_yyerror$16 = function $$yyerror() { + var self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/comment/associator"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + return self.$throw("racc_jump", 1) + }, $Parser_yyerror$16.$$arity = 0); + + Opal.def(self, '$yyaccept', $Parser_yyaccept$17 = function $$yyaccept() { + var self = this; - Opal.add_stubs(['$attr_accessor', '$do_associate', '$private', '$new', '$[]=', '$-', '$advance_comment', '$advance_through_directives', '$visit', '$process_leading_comments', '$location', '$<=', '$line', '$last_line', '$is_a?', '$each', '$children', '$loc', '$expression', '$process_trailing_comments', '$==', '$type', '$current_comment_before?', '$associate_and_advance_comment', '$current_comment_before_end?', '$current_comment_decorates?', '$+', '$[]', '$!', '$end_pos', '$begin_pos', '$<<', '$=~', '$text']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + return self.$throw("racc_jump", 2) + }, $Parser_yyaccept$17.$$arity = 0); + + Opal.def(self, '$yyerrok', $Parser_yyerrok$18 = function $$yyerrok() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (self.racc_error_status = 0) + }, $Parser_yyerrok$18.$$arity = 0); + + Opal.def(self, '$racc_read_token', $Parser_racc_read_token$19 = function $$racc_read_token(t, tok, val) { + var self = this; - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + + self.racc_debug_out.$print("read "); + self.racc_debug_out.$print(tok.$inspect(), "(", self.$racc_token2str(t), ") "); + self.racc_debug_out.$puts(val.$inspect()); + return self.racc_debug_out.$puts(); + }, $Parser_racc_read_token$19.$$arity = 3); + + Opal.def(self, '$racc_shift', $Parser_racc_shift$20 = function $$racc_shift(tok, tstack, vstack) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + self.racc_debug_out.$puts("" + "shift " + (self.$racc_token2str(tok))); + self.$racc_print_stacks(tstack, vstack); + return self.racc_debug_out.$puts(); + }, $Parser_racc_shift$20.$$arity = 3); + + Opal.def(self, '$racc_reduce', $Parser_racc_reduce$21 = function $$racc_reduce(toks, sim, tstack, vstack) { + var $$22, self = this, out = nil; - (function($base, $super, $parent_nesting) { - function $Associator(){}; - var self = $Associator = $klass($base, $super, 'Associator', $Associator); + + out = self.racc_debug_out; + out.$print("reduce "); + if ($truthy(toks['$empty?']())) { + out.$print(" ") + } else { + $send(toks, 'each', [], ($$22 = function(t){var self = $$22.$$s == null ? this : $$22.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Associator_initialize_1, TMP_Associator_associate_2, TMP_Associator_associate_locations_3, TMP_Associator_do_associate_5, TMP_Associator_visit_7, TMP_Associator_process_leading_comments_8, TMP_Associator_process_trailing_comments_9, TMP_Associator_advance_comment_10, TMP_Associator_current_comment_before$q_11, TMP_Associator_current_comment_before_end$q_12, TMP_Associator_current_comment_decorates$q_13, TMP_Associator_associate_and_advance_comment_14, TMP_Associator_advance_through_directives_15; + + + if (t == null) { + t = nil; + }; + return out.$print(" ", self.$racc_token2str(t));}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + }; + out.$puts("" + " --> " + (self.$racc_token2str(sim))); + self.$racc_print_stacks(tstack, vstack); + return self.racc_debug_out.$puts(); + }, $Parser_racc_reduce$21.$$arity = 4); + + Opal.def(self, '$racc_accept', $Parser_racc_accept$23 = function $$racc_accept() { + var self = this; - def.skip_directives = def.ast = def.mapping = def.current_comment = def.comment_num = def.comments = def.map_using_locations = nil; - self.$attr_accessor("skip_directives"); - - Opal.defn(self, '$initialize', TMP_Associator_initialize_1 = function $$initialize(ast, comments) { - var self = this; + self.racc_debug_out.$puts("accept"); + return self.racc_debug_out.$puts(); + }, $Parser_racc_accept$23.$$arity = 0); + + Opal.def(self, '$racc_e_pop', $Parser_racc_e_pop$24 = function $$racc_e_pop(state, tstack, vstack) { + var self = this; - - self.ast = ast; - self.comments = comments; - return (self.skip_directives = true); - }, TMP_Associator_initialize_1.$$arity = 2); - Opal.defn(self, '$associate', TMP_Associator_associate_2 = function $$associate() { - var self = this; + self.racc_debug_out.$puts("error recovering mode: pop token"); + self.$racc_print_states(state); + self.$racc_print_stacks(tstack, vstack); + return self.racc_debug_out.$puts(); + }, $Parser_racc_e_pop$24.$$arity = 3); + + Opal.def(self, '$racc_next_state', $Parser_racc_next_state$25 = function $$racc_next_state(curstate, state) { + var self = this; - - self.map_using_locations = false; - return self.$do_associate(); - }, TMP_Associator_associate_2.$$arity = 0); - Opal.defn(self, '$associate_locations', TMP_Associator_associate_locations_3 = function $$associate_locations() { - var self = this; + self.racc_debug_out.$puts("" + "goto " + (curstate)); + self.$racc_print_states(state); + return self.racc_debug_out.$puts(); + }, $Parser_racc_next_state$25.$$arity = 2); + + Opal.def(self, '$racc_print_stacks', $Parser_racc_print_stacks$26 = function $$racc_print_stacks(t, v) { + var $$27, self = this, out = nil; - - self.map_using_locations = true; - return self.$do_associate(); - }, TMP_Associator_associate_locations_3.$$arity = 0); - self.$private(); - Opal.defn(self, '$do_associate', TMP_Associator_do_associate_5 = function $$do_associate() { - var TMP_4, self = this; + out = self.racc_debug_out; + out.$print(" ["); + $send(t, 'each_index', [], ($$27 = function(i){var self = $$27.$$s == null ? this : $$27.$$s; - self.mapping = $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_4 = function(h, k){var self = TMP_4.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - - $writer = [k, []]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_4.$$s = self, TMP_4.$$arity = 2, TMP_4)); - self.comment_num = -1; - self.$advance_comment(); - if ($truthy(self.skip_directives)) { - self.$advance_through_directives()}; - if ($truthy(self.ast)) { - self.$visit(self.ast)}; - return self.mapping; - }, TMP_Associator_do_associate_5.$$arity = 0); - - Opal.defn(self, '$visit', TMP_Associator_visit_7 = function $$visit(node) { - var $a, TMP_6, self = this, node_loc = nil; - - self.$process_leading_comments(node); - if ($truthy(self.current_comment)) { - } else { - return nil - }; - node_loc = node.$location(); - if ($truthy(($truthy($a = $rb_le(self.current_comment.$location().$line(), node_loc.$last_line())) ? $a : node_loc['$is_a?'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Map'), 'Heredoc'))))) { - - $send(node.$children(), 'each', [], (TMP_6 = function(child){var self = TMP_6.$$s || this, $b, $c; -if (child == null) child = nil; - - if ($truthy(($truthy($b = ($truthy($c = child['$is_a?'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'AST'), 'Node'))) ? child.$loc() : $c)) ? child.$loc().$expression() : $b))) { - } else { - return nil; - }; - return self.$visit(child);}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); - return self.$process_trailing_comments(node); - } else { - return nil + if (i == null) { + i = nil; }; - }, TMP_Associator_visit_7.$$arity = 1); - - Opal.defn(self, '$process_leading_comments', TMP_Associator_process_leading_comments_8 = function $$process_leading_comments(node) { - var $a, self = this; + return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, $$27.$$s = self, $$27.$$arity = 1, $$27)); + return out.$puts(" ]"); + }, $Parser_racc_print_stacks$26.$$arity = 2); + + Opal.def(self, '$racc_print_states', $Parser_racc_print_states$28 = function $$racc_print_states(s) { + var $$29, self = this, out = nil; - - if (node.$type()['$==']("begin")) { - return nil}; - while ($truthy(self['$current_comment_before?'](node))) { - self.$associate_and_advance_comment(node) - }; - }, TMP_Associator_process_leading_comments_8.$$arity = 1); - Opal.defn(self, '$process_trailing_comments', TMP_Associator_process_trailing_comments_9 = function $$process_trailing_comments(node) { - var $a, self = this; + out = self.racc_debug_out; + out.$print(" ["); + $send(s, 'each', [], ($$29 = function(st){var self = $$29.$$s == null ? this : $$29.$$s; - while ($truthy(self['$current_comment_before_end?'](node))) { - self.$associate_and_advance_comment(node) - }; - while ($truthy(self['$current_comment_decorates?'](node))) { - self.$associate_and_advance_comment(node) - }; - }, TMP_Associator_process_trailing_comments_9.$$arity = 1); - - Opal.defn(self, '$advance_comment', TMP_Associator_advance_comment_10 = function $$advance_comment() { - var self = this; - - self.comment_num = $rb_plus(self.comment_num, 1); - return (self.current_comment = self.comments['$[]'](self.comment_num)); - }, TMP_Associator_advance_comment_10.$$arity = 0); - - Opal.defn(self, '$current_comment_before?', TMP_Associator_current_comment_before$q_11 = function(node) { - var self = this, comment_loc = nil, node_loc = nil; + if (st == null) { + st = nil; + }; + return out.$print(" ", st);}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + return out.$puts(" ]"); + }, $Parser_racc_print_states$28.$$arity = 1); + + Opal.def(self, '$racc_token2str', $Parser_racc_token2str$30 = function $$racc_token2str(tok) { + var self = this, $ret_or_21 = nil; - - if ($truthy(self.current_comment['$!']())) { - return false}; - comment_loc = self.current_comment.$location().$expression(); - node_loc = node.$location().$expression(); - return $rb_le(comment_loc.$end_pos(), node_loc.$begin_pos()); - }, TMP_Associator_current_comment_before$q_11.$$arity = 1); - - Opal.defn(self, '$current_comment_before_end?', TMP_Associator_current_comment_before_end$q_12 = function(node) { - var self = this, comment_loc = nil, node_loc = nil; + if ($truthy(($ret_or_21 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { + return $ret_or_21 + } else { + return self.$raise("" + "[Racc Bug] can't convert token " + (tok) + " to string") + } + }, $Parser_racc_token2str$30.$$arity = 1); + return (Opal.def(self, '$token_to_str', $Parser_token_to_str$31 = function $$token_to_str(t) { + var self = this; - - if ($truthy(self.current_comment['$!']())) { - return false}; - comment_loc = self.current_comment.$location().$expression(); - node_loc = node.$location().$expression(); - return $rb_le(comment_loc.$end_pos(), node_loc.$end_pos()); - }, TMP_Associator_current_comment_before_end$q_12.$$arity = 1); - - Opal.defn(self, '$current_comment_decorates?', TMP_Associator_current_comment_decorates$q_13 = function(node) { - var self = this; + return $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](t) + }, $Parser_token_to_str$31.$$arity = 1), nil) && 'token_to_str'; + })($nesting[0], null, $nesting); + })($nesting[0], $nesting); +}; - - if ($truthy(self.current_comment['$!']())) { - return false}; - return self.current_comment.$location().$line()['$=='](node.$location().$last_line()); - }, TMP_Associator_current_comment_decorates$q_13.$$arity = 1); - - Opal.defn(self, '$associate_and_advance_comment', TMP_Associator_associate_and_advance_comment_14 = function $$associate_and_advance_comment(node) { - var self = this, key = nil; +Opal.modules["parser/version"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - - key = (function() {if ($truthy(self.map_using_locations)) { - return node.$location() - } else { - return node - }; return nil; })(); - self.mapping['$[]'](key)['$<<'](self.current_comment); - return self.$advance_comment(); - }, TMP_Associator_associate_and_advance_comment_14.$$arity = 1); - return (Opal.defn(self, '$advance_through_directives', TMP_Associator_advance_through_directives_15 = function $$advance_through_directives() { - var $a, self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); - - if ($truthy(($truthy($a = self.current_comment) ? self.current_comment.$text()['$=~'](/^#!/) : $a))) { - self.$advance_comment()}; - if ($truthy(($truthy($a = self.current_comment) ? self.current_comment.$text()['$=~'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Buffer'), 'ENCODING_RE')) : $a))) { - return self.$advance_comment() - } else { - return nil - }; - }, TMP_Associator_advance_through_directives_15.$$arity = 0), nil) && 'advance_through_directives'; - })(Opal.const_get_relative($nesting, 'Comment'), null, $nesting) - })($nesting[0], $nesting) + var $nesting = [self].concat($parent_nesting); + + return Opal.const_set($nesting[0], 'VERSION', "3.0.2.0") })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/rewriter"] = function(Opal) { +Opal.modules["racc/parser"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $hash2 = Opal.hash2; - - Opal.add_stubs(['$attr_reader', '$new', '$lambda', '$puts', '$render', '$consumer=', '$-', '$append', '$freeze', '$begin', '$end', '$+', '$in_transaction?', '$raise', '$class', '$dup', '$source', '$each', '$sort', '$begin_pos', '$range', '$length', '$replacement', '$[]=', '$private', '$empty?', '$!', '$allow_multiple_insertions?', '$clobbered_insertion?', '$raise_clobber_error', '$record_insertion', '$adjacent_updates?', '$find', '$overlaps?', '$replace_compatible_with_insertion?', '$merge_actions!', '$<<', '$active_queue', '$adjacent_insertions?', '$merge_actions', '$delete', '$can_merge?', '$record_replace', '$|', '$active_insertions', '$active_insertions=', '$active_clobber', '$clobbered_position_mask', '$active_clobber=', '$size', '$!=', '$&', '$<=', '$end_pos', '$adjacent_insertion_mask', '$select', '$adjacent?', '$adjacent_position_mask', '$>=', '$==', '$[]', '$all?', '$intersect', '$nil?', '$max', '$sort_by', '$push', '$join', '$first', '$max_by', '$merge_replacements', '$replace_actions', '$disjoint?', '$<', '$process']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_times(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); + } + var $a, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars, $send = Opal.send; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + Opal.add_stubs(['$[]', '$class', '$<', '$size', '$[]=', '$-', '$__send__', '$_racc_setup', '$raise', '$_racc_init_sysvars', '$catch', '$!=', '$next_token', '$racc_read_token', '$+', '$>=', '$==', '$_racc_evalact', '$!', '$>', '$push', '$racc_shift', '$-@', '$_racc_do_reduce', '$===', '$racc_accept', '$throw', '$on_error', '$<=', '$pop', '$racc_e_pop', '$inspect', '$racc_next_state', '$*', '$racc_reduce', '$sprintf', '$token_to_str', '$print', '$racc_token2str', '$puts', '$racc_print_stacks', '$empty?', '$each', '$racc_print_states', '$each_index']); + + (function($base, $parent_nesting) { + var self = $module($base, 'Racc'); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + var $nesting = [self].concat($parent_nesting); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ParseError'); - (function($base, $super, $parent_nesting) { - function $Rewriter(){}; - var self = $Rewriter = $klass($base, $super, 'Rewriter', $Rewriter); + var $nesting = [self].concat($parent_nesting); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Rewriter_initialize_2, TMP_Rewriter_remove_3, TMP_Rewriter_insert_before_4, TMP_Rewriter_insert_before_multi_5, TMP_Rewriter_insert_after_6, TMP_Rewriter_insert_after_multi_7, TMP_Rewriter_replace_8, TMP_Rewriter_process_10, TMP_Rewriter_transaction_11, TMP_Rewriter_append_14, TMP_Rewriter_record_insertion_15, TMP_Rewriter_record_replace_16, TMP_Rewriter_clobbered_position_mask_17, TMP_Rewriter_adjacent_position_mask_18, TMP_Rewriter_adjacent_insertion_mask_19, TMP_Rewriter_clobbered_insertion$q_21, TMP_Rewriter_adjacent_insertions$q_23, TMP_Rewriter_adjacent_updates$q_25, TMP_Rewriter_replace_compatible_with_insertion$q_26, TMP_Rewriter_can_merge$q_28, TMP_Rewriter_merge_actions_31, TMP_Rewriter_merge_actions$B_32, TMP_Rewriter_merge_replacements_34, TMP_Rewriter_replace_actions_36, TMP_Rewriter_raise_clobber_error_37, TMP_Rewriter_in_transaction$q_38, TMP_Rewriter_active_queue_39, TMP_Rewriter_active_clobber_40, TMP_Rewriter_active_insertions_41, TMP_Rewriter_active_clobber$eq_42, TMP_Rewriter_active_insertions$eq_43, TMP_Rewriter_adjacent$q_44; + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting) + })($nesting[0], $nesting); + if ($truthy((($a = $$$('::', 'ParseError', 'skip_raise')) ? 'constant' : nil))) { + } else { + Opal.const_set($nesting[0], 'ParseError', $$$($$($nesting, 'Racc'), 'ParseError')) + }; + return (function($base, $parent_nesting) { + var self = $module($base, 'Racc'); - def.diagnostics = def.insert_before_multi_order = def.insert_after_multi_order = def.source_buffer = def.queue = def.clobber = def.insertions = def.pending_queue = def.pending_clobber = def.pending_insertions = nil; - - self.$attr_reader("source_buffer"); - self.$attr_reader("diagnostics"); - - Opal.defn(self, '$initialize', TMP_Rewriter_initialize_2 = function $$initialize(source_buffer) { - var TMP_1, self = this, $writer = nil; + var $nesting = [self].concat($parent_nesting), $a; - - self.diagnostics = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Diagnostic'), 'Engine').$new(); - - $writer = [$send(self, 'lambda', [], (TMP_1 = function(diag){var self = TMP_1.$$s || this; - if ($gvars.stderr == null) $gvars.stderr = nil; -if (diag == null) diag = nil; - return $gvars.stderr.$puts(diag.$render())}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1))]; - $send(self.diagnostics, 'consumer=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.source_buffer = source_buffer; - self.queue = []; - self.clobber = 0; - self.insertions = 0; - self.insert_before_multi_order = 0; - return (self.insert_after_multi_order = 0); - }, TMP_Rewriter_initialize_2.$$arity = 1); - - Opal.defn(self, '$remove', TMP_Rewriter_remove_3 = function $$remove(range) { - var self = this; + + if ($truthy((($a = $$($nesting, 'Racc_No_Extensions', 'skip_raise')) ? 'constant' : nil))) { + } else { + Opal.const_set($nesting[0], 'Racc_No_Extensions', false) + }; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Parser'); - return self.$append(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriter'), 'Action').$new(range, "".$freeze())) - }, TMP_Rewriter_remove_3.$$arity = 1); - - Opal.defn(self, '$insert_before', TMP_Rewriter_insert_before_4 = function $$insert_before(range, content) { - var self = this; + var $nesting = [self].concat($parent_nesting), $Parser_racc_runtime_type$1, $Parser__racc_setup$2, $Parser__racc_init_sysvars$3, $Parser_do_parse$4, $Parser_next_token$5, $Parser__racc_do_parse_rb$6, $Parser_yyparse$8, $Parser__racc_yyparse_rb$9, $Parser__racc_evalact$12, $Parser__racc_do_reduce$14, $Parser_on_error$15, $Parser_yyerror$16, $Parser_yyaccept$17, $Parser_yyerrok$18, $Parser_racc_read_token$19, $Parser_racc_shift$20, $Parser_racc_reduce$21, $Parser_racc_accept$23, $Parser_racc_e_pop$24, $Parser_racc_next_state$25, $Parser_racc_print_stacks$26, $Parser_racc_print_states$28, $Parser_racc_token2str$30, $Parser_token_to_str$31; - return self.$append(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriter'), 'Action').$new(range.$begin(), content)) - }, TMP_Rewriter_insert_before_4.$$arity = 2); - - Opal.defn(self, '$insert_before_multi', TMP_Rewriter_insert_before_multi_5 = function $$insert_before_multi(range, content) { - var self = this; + self.$$prototype.yydebug = self.$$prototype.racc_debug_out = self.$$prototype.racc_error_status = self.$$prototype.racc_t = self.$$prototype.racc_vstack = self.$$prototype.racc_val = self.$$prototype.racc_state = self.$$prototype.racc_tstack = nil; + + Opal.const_set($nesting[0], 'Racc_Runtime_Version', "1.4.6"); + Opal.const_set($nesting[0], 'Racc_Runtime_Revision', ["originalRevision:", "1.8"]['$[]'](1)); + Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version_R', "1.4.6"); + Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision_R', ["originalRevision:", "1.8"]['$[]'](1)); + Opal.const_set($nesting[0], 'Racc_Main_Parsing_Routine', "_racc_do_parse_rb"); + Opal.const_set($nesting[0], 'Racc_YY_Parse_Method', "_racc_yyparse_rb"); + Opal.const_set($nesting[0], 'Racc_Runtime_Core_Version', $$($nesting, 'Racc_Runtime_Core_Version_R')); + Opal.const_set($nesting[0], 'Racc_Runtime_Core_Revision', $$($nesting, 'Racc_Runtime_Core_Revision_R')); + Opal.const_set($nesting[0], 'Racc_Runtime_Type', "ruby"); + Opal.defs($$($nesting, 'Parser'), '$racc_runtime_type', $Parser_racc_runtime_type$1 = function $$racc_runtime_type() { + var self = this; - - self.insert_before_multi_order = $rb_minus(self.insert_before_multi_order, 1); - return self.$append(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriter'), 'Action').$new(range.$begin(), content, true, self.insert_before_multi_order)); - }, TMP_Rewriter_insert_before_multi_5.$$arity = 2); - - Opal.defn(self, '$insert_after', TMP_Rewriter_insert_after_6 = function $$insert_after(range, content) { - var self = this; + return $$($nesting, 'Racc_Runtime_Type') + }, $Parser_racc_runtime_type$1.$$arity = 0); + + Opal.def(self, '$_racc_setup', $Parser__racc_setup$2 = function $$_racc_setup() { + var $a, $b, self = this, $ret_or_1 = nil, arg = nil, $writer = nil; + if ($gvars.stderr == null) $gvars.stderr = nil; - return self.$append(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriter'), 'Action').$new(range.$end(), content)) - }, TMP_Rewriter_insert_after_6.$$arity = 2); - Opal.defn(self, '$insert_after_multi', TMP_Rewriter_insert_after_multi_7 = function $$insert_after_multi(range, content) { - var self = this; - + if ($truthy($$$(self.$class(), 'Racc_debug_parser'))) { + } else { + self.yydebug = false + }; + if ($truthy((($a = self['yydebug'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { + } else { + self.yydebug = false + }; + if ($truthy(self.yydebug)) { - self.insert_after_multi_order = $rb_plus(self.insert_after_multi_order, 1); - return self.$append(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriter'), 'Action').$new(range.$end(), content, true, self.insert_after_multi_order)); - }, TMP_Rewriter_insert_after_multi_7.$$arity = 2); - - Opal.defn(self, '$replace', TMP_Rewriter_replace_8 = function $$replace(range, content) { - var self = this; + if ($truthy((($b = self['racc_debug_out'], $b != null && $b !== nil) ? 'instance-variable' : nil))) { + } else { + self.racc_debug_out = $gvars.stderr + }; + self.racc_debug_out = (function() {if ($truthy(($ret_or_1 = self.racc_debug_out))) { + return $ret_or_1 + } else { + return $gvars.stderr + }; return nil; })();}; + arg = $$$(self.$class(), 'Racc_arg'); + if ($truthy($rb_lt(arg.$size(), 14))) { + + $writer = [13, true]; + $send(arg, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];}; + return arg; + }, $Parser__racc_setup$2.$$arity = 0); + + Opal.def(self, '$_racc_init_sysvars', $Parser__racc_init_sysvars$3 = function $$_racc_init_sysvars() { + var self = this; - return self.$append(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriter'), 'Action').$new(range, content)) - }, TMP_Rewriter_replace_8.$$arity = 2); - Opal.defn(self, '$process', TMP_Rewriter_process_10 = function $$process() { - var TMP_9, self = this, adjustment = nil, source = nil; + self.racc_state = [0]; + self.racc_tstack = []; + self.racc_vstack = []; + self.racc_t = nil; + self.racc_val = nil; + self.racc_read_next = true; + self.racc_user_yyerror = false; + return (self.racc_error_status = 0); + }, $Parser__racc_init_sysvars$3.$$arity = 0); + + Opal.def(self, '$do_parse', $Parser_do_parse$4 = function $$do_parse() { + var self = this; - - if ($truthy(self['$in_transaction?']())) { - self.$raise("" + "Do not call " + (self.$class()) + "#" + ("process") + " inside a transaction")}; - adjustment = 0; - source = self.source_buffer.$source().$dup(); - $send(self.queue.$sort(), 'each', [], (TMP_9 = function(action){var self = TMP_9.$$s || this, begin_pos = nil, end_pos = nil, $writer = nil; -if (action == null) action = nil; - - begin_pos = $rb_plus(action.$range().$begin_pos(), adjustment); - end_pos = $rb_plus(begin_pos, action.$range().$length()); - - $writer = [Opal.Range.$new(begin_pos,end_pos, true), action.$replacement()]; - $send(source, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return (adjustment = $rb_plus(adjustment, $rb_minus(action.$replacement().$length(), action.$range().$length())));}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)); - return source; - }, TMP_Rewriter_process_10.$$arity = 0); - - Opal.defn(self, '$transaction', TMP_Rewriter_transaction_11 = function $$transaction() { - var self = this, $iter = TMP_Rewriter_transaction_11.$$p, $yield = $iter || nil; + return self.$__send__($$($nesting, 'Racc_Main_Parsing_Routine'), self.$_racc_setup(), false) + }, $Parser_do_parse$4.$$arity = 0); + + Opal.def(self, '$next_token', $Parser_next_token$5 = function $$next_token() { + var self = this; + + return self.$raise($$($nesting, 'NotImplementedError'), "" + (self.$class()) + "#next_token is not defined") + }, $Parser_next_token$5.$$arity = 0); + + Opal.def(self, '$_racc_do_parse_rb', $Parser__racc_do_parse_rb$6 = function $$_racc_do_parse_rb(arg, in_debug) { + var $a, $b, $$7, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, tok = nil, act = nil, i = nil; - if ($iter) TMP_Rewriter_transaction_11.$$p = null; - return (function() { try { - - if (($yield !== nil)) { - } else { - self.$raise("" + (self.$class()) + "#" + ("transaction") + " requires block") - }; - if ($truthy(self['$in_transaction?']())) { - self.$raise("Nested transaction is not supported")}; - self.pending_queue = self.queue.$dup(); - self.pending_clobber = self.clobber; - self.pending_insertions = self.insertions; - Opal.yieldX($yield, []); - self.queue = self.pending_queue; - self.clobber = self.pending_clobber; - self.insertions = self.pending_insertions; - return self; - } finally { - ((self.pending_queue = nil), (self.pending_clobber = nil), (self.pending_insertions = nil)) - }; })() - }, TMP_Rewriter_transaction_11.$$arity = 0); - self.$private(); - Opal.defn(self, '$append', TMP_Rewriter_append_14 = function $$append(action) { - var $a, TMP_12, TMP_13, self = this, range = nil, conflicting = nil, adjacent = nil, insertions = nil; + $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + self.$_racc_init_sysvars(); + tok = (act = (i = nil)); + return $send(self, 'catch', ["racc_end_parse"], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s, $c, $d, $e, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; + if (self.racc_state == null) self.racc_state = nil; + if (self.racc_read_next == null) self.racc_read_next = nil; + if (self.racc_t == null) self.racc_t = nil; + if (self.yydebug == null) self.yydebug = nil; + if (self.racc_val == null) self.racc_val = nil; - - range = action.$range(); - if ($truthy(range['$empty?']())) { + while ($truthy(true)) { - if ($truthy(action.$replacement()['$empty?']())) { - return self}; - if ($truthy(($truthy($a = action['$allow_multiple_insertions?']()['$!']()) ? (conflicting = self['$clobbered_insertion?'](range)) : $a))) { - self.$raise_clobber_error(action, [conflicting])}; - self.$record_insertion(range); - if ($truthy((adjacent = self['$adjacent_updates?'](range)))) { + if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { - conflicting = $send(adjacent, 'find', [], (TMP_12 = function(a){var self = TMP_12.$$s || this, $b; -if (a == null) a = nil; - return ($truthy($b = a.$range()['$overlaps?'](range)) ? self['$replace_compatible_with_insertion?'](a, action)['$!']() : $b)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)); - if ($truthy(conflicting)) { - self.$raise_clobber_error(action, [conflicting])}; - self['$merge_actions!'](action, adjacent); - } else { - self.$active_queue()['$<<'](action) - }; - } else { - - if ($truthy((insertions = self['$adjacent_insertions?'](range)))) { - $send(insertions, 'each', [], (TMP_13 = function(insertion){var self = TMP_13.$$s || this, $b; -if (insertion == null) insertion = nil; - if ($truthy(($truthy($b = range['$overlaps?'](insertion.$range())) ? self['$replace_compatible_with_insertion?'](action, insertion)['$!']() : $b))) { - return self.$raise_clobber_error(action, [insertion]) - } else { + if ($truthy(self.racc_read_next)) { + if ($truthy(self.racc_t['$!='](0))) { - action = self.$merge_actions(action, [insertion]); - return self.$active_queue().$delete(insertion); - }}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13))}; - if ($truthy((adjacent = self['$adjacent_updates?'](range)))) { - if ($truthy(self['$can_merge?'](action, adjacent))) { - - self.$record_replace(range); - self['$merge_actions!'](action, adjacent); - } else { - self.$raise_clobber_error(action, adjacent) - } + $e = self.$next_token(), $d = Opal.to_ary($e), (tok = ($d[0] == null ? nil : $d[0])), (self.racc_val = ($d[1] == null ? nil : $d[1])), $e; + if ($truthy(tok)) { + self.racc_t = (function() {if ($truthy(($ret_or_2 = token_table['$[]'](tok)))) { + return $ret_or_2 + } else { + return 1 + }; return nil; })() + } else { + self.racc_t = 0 + }; + if ($truthy(self.yydebug)) { + self.$racc_read_token(self.racc_t, tok, self.racc_val)}; + self.racc_read_next = false;}}; + i = $rb_plus(i, self.racc_t); + if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = $rb_ge(i, 0)))) { + return (act = action_table['$[]'](i)) + } else { + return $ret_or_4 + }; return nil; })()))) { + return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) } else { + return $ret_or_3 + }; return nil; })())) { + } else { + act = action_default['$[]'](self.racc_state['$[]'](-1)) + }; + } else { + act = action_default['$[]'](self.racc_state['$[]'](-1)) + }; + while ($truthy((act = self.$_racc_evalact(act, arg)))) { - self.$record_replace(range); - self.$active_queue()['$<<'](action); }; - }; - return self; - }, TMP_Rewriter_append_14.$$arity = 1); - - Opal.defn(self, '$record_insertion', TMP_Rewriter_record_insertion_15 = function $$record_insertion(range) { - var self = this, $writer = nil; + }}, $$7.$$s = self, $$7.$$arity = 0, $$7)); + }, $Parser__racc_do_parse_rb$6.$$arity = 2); + + Opal.def(self, '$yyparse', $Parser_yyparse$8 = function $$yyparse(recv, mid) { + var self = this; + + return self.$__send__($$($nesting, 'Racc_YY_Parse_Method'), recv, mid, self.$_racc_setup(), true) + }, $Parser_yyparse$8.$$arity = 2); + + Opal.def(self, '$_racc_yyparse_rb', $Parser__racc_yyparse_rb$9 = function $$_racc_yyparse_rb(recv, mid, arg, c_debug) { + var $a, $b, $$10, self = this, action_table = nil, action_check = nil, action_default = nil, action_pointer = nil, _ = nil, token_table = nil, act = nil, i = nil; - - $writer = [self.$active_insertions()['$|']((1)['$<<'](range.$begin_pos()))]; - $send(self, 'active_insertions=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_Rewriter_record_insertion_15.$$arity = 1); - Opal.defn(self, '$record_replace', TMP_Rewriter_record_replace_16 = function $$record_replace(range) { - var self = this, $writer = nil; + $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (action_default = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (token_table = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), $b; + self.$_racc_init_sysvars(); + act = nil; + i = nil; + return $send(self, 'catch', ["racc_end_parse"], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s, $c, $d, $$11; + if (self.racc_state == null) self.racc_state = nil; - $writer = [self.$active_clobber()['$|'](self.$clobbered_position_mask(range))]; - $send(self, 'active_clobber=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_Rewriter_record_replace_16.$$arity = 1); - - Opal.defn(self, '$clobbered_position_mask', TMP_Rewriter_clobbered_position_mask_17 = function $$clobbered_position_mask(range) { - var self = this; - - return $rb_minus((1)['$<<'](range.$size()), 1)['$<<'](range.$begin_pos()) - }, TMP_Rewriter_clobbered_position_mask_17.$$arity = 1); - - Opal.defn(self, '$adjacent_position_mask', TMP_Rewriter_adjacent_position_mask_18 = function $$adjacent_position_mask(range) { - var self = this; - - return $rb_minus((1)['$<<']($rb_plus(range.$size(), 2)), 1)['$<<']($rb_minus(range.$begin_pos(), 1)) - }, TMP_Rewriter_adjacent_position_mask_18.$$arity = 1); - - Opal.defn(self, '$adjacent_insertion_mask', TMP_Rewriter_adjacent_insertion_mask_19 = function $$adjacent_insertion_mask(range) { - var self = this; - - return $rb_minus((1)['$<<']($rb_plus(range.$size(), 1)), 1)['$<<'](range.$begin_pos()) - }, TMP_Rewriter_adjacent_insertion_mask_19.$$arity = 1); - - Opal.defn(self, '$clobbered_insertion?', TMP_Rewriter_clobbered_insertion$q_21 = function(insertion) { - var TMP_20, self = this, insertion_pos = nil; - - - insertion_pos = insertion.$begin_pos(); - if ($truthy(self.$active_insertions()['$&']((1)['$<<'](insertion_pos))['$!='](0))) { - return $send(self.$active_queue(), 'find', [], (TMP_20 = function(a){var self = TMP_20.$$s || this, $a; -if (a == null) a = nil; - return ($truthy($a = $rb_le(a.$range().$begin_pos(), insertion_pos)) ? $rb_le(insertion_pos, a.$range().$end_pos()) : $a)}, TMP_20.$$s = self, TMP_20.$$arity = 1, TMP_20)) - } else { - return nil + while (!($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1)))))) { + while ($truthy((act = self.$_racc_evalact(action_default['$[]'](self.racc_state['$[]'](-1)), arg)))) { + + } }; - }, TMP_Rewriter_clobbered_insertion$q_21.$$arity = 1); - - Opal.defn(self, '$adjacent_insertions?', TMP_Rewriter_adjacent_insertions$q_23 = function(range) { - var TMP_22, self = this, result = nil; + return $send(recv, '__send__', [mid], ($$11 = function(tok, val){var self = $$11.$$s == null ? this : $$11.$$s, $e, $f, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + if (self.racc_t == null) self.racc_t = nil; + if (self.racc_state == null) self.racc_state = nil; + if (self.racc_read_next == null) self.racc_read_next = nil; - if ($truthy(self.$active_insertions()['$&'](self.$adjacent_insertion_mask(range))['$!='](0))) { - result = $send(self.$active_queue(), 'select', [], (TMP_22 = function(a){var self = TMP_22.$$s || this, $a; -if (a == null) a = nil; - return ($truthy($a = a.$range()['$empty?']()) ? self['$adjacent?'](range, a.$range()) : $a)}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22)); - if ($truthy(result['$empty?']())) { - return nil + + if (tok == null) { + tok = nil; + }; + + if (val == null) { + val = nil; + }; + if ($truthy(tok)) { + self.racc_t = (function() {if ($truthy(($ret_or_5 = token_table['$[]'](tok)))) { + return $ret_or_5 } else { - return result + return 1 + }; return nil; })() + } else { + self.racc_t = 0 }; + self.racc_val = val; + self.racc_read_next = false; + i = $rb_plus(i, self.racc_t); + if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = $rb_ge(i, 0)))) { + return (act = action_table['$[]'](i)) } else { - return nil - } - }, TMP_Rewriter_adjacent_insertions$q_23.$$arity = 1); - - Opal.defn(self, '$adjacent_updates?', TMP_Rewriter_adjacent_updates$q_25 = function(range) { - var TMP_24, self = this; - - if ($truthy(self.$active_clobber()['$&'](self.$adjacent_position_mask(range))['$!='](0))) { - return $send(self.$active_queue(), 'select', [], (TMP_24 = function(a){var self = TMP_24.$$s || this; -if (a == null) a = nil; - return self['$adjacent?'](range, a.$range())}, TMP_24.$$s = self, TMP_24.$$arity = 1, TMP_24)) + return $ret_or_7 + }; return nil; })()))) { + return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) } else { - return nil - } - }, TMP_Rewriter_adjacent_updates$q_25.$$arity = 1); - - Opal.defn(self, '$replace_compatible_with_insertion?', TMP_Rewriter_replace_compatible_with_insertion$q_26 = function(replace, insertion) { - var $a, $b, self = this, offset = nil; - - return ($truthy($a = ($truthy($b = $rb_ge($rb_minus(replace.$replacement().$length(), replace.$range().$size()), insertion.$range().$size())) ? (offset = $rb_minus(insertion.$range().$begin_pos(), replace.$range().$begin_pos())) : $b)) ? replace.$replacement()['$[]'](offset, insertion.$replacement().$length())['$=='](insertion.$replacement()) : $a) - }, TMP_Rewriter_replace_compatible_with_insertion$q_26.$$arity = 2); - - Opal.defn(self, '$can_merge?', TMP_Rewriter_can_merge$q_28 = function(action, existing) { - var TMP_27, self = this, range = nil; + return $ret_or_6 + }; return nil; })())) { + } else { + act = action_default['$[]'](self.racc_state['$[]'](-1)) + }; + while ($truthy((act = self.$_racc_evalact(act, arg)))) { + + }; + while ($truthy((function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = (i = action_pointer['$[]'](self.racc_state['$[]'](-1)))['$!']()))) { + return $ret_or_9 + } else { + return self.racc_read_next['$!']() + }; return nil; })()))) { + return $ret_or_8 + } else { + return self.racc_t['$=='](0) + }; return nil; })())) { + + if ($truthy((function() {if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = i))) { + return (i = $rb_plus(i, self.racc_t)) + } else { + return $ret_or_13 + }; return nil; })()))) { + return $rb_ge(i, 0) + } else { + return $ret_or_12 + }; return nil; })()))) { + return (act = action_table['$[]'](i)) + } else { + return $ret_or_11 + }; return nil; })()))) { + return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) + } else { + return $ret_or_10 + }; return nil; })())) { + } else { + act = action_default['$[]'](self.racc_state['$[]'](-1)) + }; + while ($truthy((act = self.$_racc_evalact(act, arg)))) { + + }; + };}, $$11.$$s = self, $$11.$$arity = 2, $$11));}, $$10.$$s = self, $$10.$$arity = 0, $$10)); + }, $Parser__racc_yyparse_rb$9.$$arity = 4); + + Opal.def(self, '$_racc_evalact', $Parser__racc_evalact$12 = function $$_racc_evalact(act, arg) { + var $a, $b, $$13, self = this, action_table = nil, action_check = nil, _ = nil, action_pointer = nil, shift_n = nil, reduce_n = nil, $ret_or_14 = nil, $ret_or_15 = nil, code = nil, $case = nil, i = nil, $ret_or_16 = nil, $ret_or_17 = nil; - - range = action.$range(); - return $send(existing, 'all?', [], (TMP_27 = function(other){var self = TMP_27.$$s || this, $a, overlap = nil, repl1_offset = nil, repl2_offset = nil, repl1_length = nil, repl2_length = nil, replacement1 = nil, replacement2 = nil; -if (other == null) other = nil; - - overlap = range.$intersect(other.$range()); - if ($truthy(overlap['$nil?']())) { - return true;}; - repl1_offset = $rb_minus(overlap.$begin_pos(), range.$begin_pos()); - repl2_offset = $rb_minus(overlap.$begin_pos(), other.$range().$begin_pos()); - repl1_length = [$rb_minus(other.$range().$length(), repl2_offset), $rb_minus(other.$replacement().$length(), repl2_offset)].$max(); - repl2_length = [$rb_minus(range.$length(), repl1_offset), $rb_minus(action.$replacement().$length(), repl1_offset)].$max(); - replacement1 = ($truthy($a = action.$replacement()['$[]'](repl1_offset, repl1_length)) ? $a : "".$freeze()); - replacement2 = ($truthy($a = other.$replacement()['$[]'](repl2_offset, repl2_length)) ? $a : "".$freeze()); - return replacement1['$=='](replacement2);}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)); - }, TMP_Rewriter_can_merge$q_28.$$arity = 2); - Opal.defn(self, '$merge_actions', TMP_Rewriter_merge_actions_31 = function $$merge_actions(action, existing) { - var TMP_29, TMP_30, self = this, actions = nil, range = nil; - + $b = arg, $a = Opal.to_ary($b), (action_table = ($a[0] == null ? nil : $a[0])), (action_check = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (action_pointer = ($a[3] == null ? nil : $a[3])), (_ = ($a[4] == null ? nil : $a[4])), (_ = ($a[5] == null ? nil : $a[5])), (_ = ($a[6] == null ? nil : $a[6])), (_ = ($a[7] == null ? nil : $a[7])), (_ = ($a[8] == null ? nil : $a[8])), (_ = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (shift_n = ($a[11] == null ? nil : $a[11])), (reduce_n = ($a[12] == null ? nil : $a[12])), (_ = ($a[13] == null ? nil : $a[13])), (_ = ($a[14] == null ? nil : $a[14])), $b; + if ($truthy((function() {if ($truthy(($ret_or_14 = $rb_gt(act, 0)))) { + return $rb_lt(act, shift_n) + } else { + return $ret_or_14 + }; return nil; })())) { - actions = $send(existing.$push(action), 'sort_by', [], (TMP_29 = function(a){var self = TMP_29.$$s || this; -if (a == null) a = nil; - return [a.$range().$begin_pos(), a.$range().$end_pos()]}, TMP_29.$$s = self, TMP_29.$$arity = 1, TMP_29)); - range = actions.$first().$range().$join($send(actions, 'max_by', [], (TMP_30 = function(a){var self = TMP_30.$$s || this; -if (a == null) a = nil; - return a.$range().$end_pos()}, TMP_30.$$s = self, TMP_30.$$arity = 1, TMP_30)).$range()); - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriter'), 'Action').$new(range, self.$merge_replacements(actions)); - }, TMP_Rewriter_merge_actions_31.$$arity = 2); - - Opal.defn(self, '$merge_actions!', TMP_Rewriter_merge_actions$B_32 = function(action, existing) { - var self = this, new_action = nil; - + if ($truthy($rb_gt(self.racc_error_status, 0))) { + if (self.racc_t['$=='](1)) { + } else { + self.racc_error_status = $rb_minus(self.racc_error_status, 1) + }}; + self.racc_vstack.$push(self.racc_val); + self.racc_state.$push(act); + self.racc_read_next = true; + if ($truthy(self.yydebug)) { + + self.racc_tstack.$push(self.racc_t); + self.$racc_shift(self.racc_t, self.racc_tstack, self.racc_vstack);}; + } else if ($truthy((function() {if ($truthy(($ret_or_15 = $rb_lt(act, 0)))) { + return $rb_gt(act, reduce_n['$-@']()) + } else { + return $ret_or_15 + }; return nil; })())) { - new_action = self.$merge_actions(action, existing); - self.$active_queue().$delete(action); - return self.$replace_actions(existing, new_action); - }, TMP_Rewriter_merge_actions$B_32.$$arity = 2); - - Opal.defn(self, '$merge_replacements', TMP_Rewriter_merge_replacements_34 = function $$merge_replacements(actions) { - var TMP_33, self = this, result = nil, prev_act = nil; + code = $send(self, 'catch', ["racc_jump"], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; + if (self.racc_state == null) self.racc_state = nil; + + self.racc_state.$push(self.$_racc_do_reduce(arg, act)); + return false;}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + if ($truthy(code)) { + $case = code; + if ((1)['$===']($case)) { + self.racc_user_yyerror = true; + return reduce_n['$-@']();} + else if ((2)['$===']($case)) {return shift_n} + else {self.$raise("[Racc Bug] unknown jump code")}}; + } else if (act['$=='](shift_n)) { - result = ""; - prev_act = nil; - $send(actions, 'each', [], (TMP_33 = function(act){var self = TMP_33.$$s || this, $a, prev_end = nil, offset = nil; -if (act == null) act = nil; + if ($truthy(self.yydebug)) { + self.$racc_accept()}; + self.$throw("racc_end_parse", self.racc_vstack['$[]'](0)); + } else if (act['$=='](reduce_n['$-@']())) { - if ($truthy(($truthy($a = prev_act['$!']()) ? $a : act.$range()['$disjoint?'](prev_act.$range())))) { - result['$<<'](act.$replacement()) + $case = self.racc_error_status; + if ((0)['$===']($case)) {if ($truthy(arg['$[]'](21))) { + } else { + self.$on_error(self.racc_t, self.racc_val, self.racc_vstack) + }} + else if ((3)['$===']($case)) { + if (self.racc_t['$=='](0)) { + self.$throw("racc_end_parse", nil)}; + self.racc_read_next = true;}; + self.racc_user_yyerror = false; + self.racc_error_status = 3; + while ($truthy(true)) { + + if ($truthy((i = action_pointer['$[]'](self.racc_state['$[]'](-1))))) { + + i = $rb_plus(i, 1); + if ($truthy((function() {if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = $rb_ge(i, 0)))) { + + return (act = action_table['$[]'](i)); } else { + return $ret_or_17 + }; return nil; })()))) { + return action_check['$[]'](i)['$=='](self.racc_state['$[]'](-1)) + } else { + return $ret_or_16 + }; return nil; })())) { + break;};}; + if ($truthy($rb_le(self.racc_state.$size(), 1))) { + self.$throw("racc_end_parse", nil)}; + self.racc_state.$pop(); + self.racc_vstack.$pop(); + if ($truthy(self.yydebug)) { - prev_end = [$rb_plus(prev_act.$range().$begin_pos(), prev_act.$replacement().$length()), prev_act.$range().$end_pos()].$max(); - offset = $rb_minus(prev_end, act.$range().$begin_pos()); - if ($truthy($rb_lt(offset, act.$replacement().$size()))) { - result['$<<'](act.$replacement()['$[]'](Opal.Range.$new(offset, -1, false)))}; - }; - return (prev_act = act);}, TMP_33.$$s = self, TMP_33.$$arity = 1, TMP_33)); - return result; - }, TMP_Rewriter_merge_replacements_34.$$arity = 1); - - Opal.defn(self, '$replace_actions', TMP_Rewriter_replace_actions_36 = function $$replace_actions(old, updated) { - var TMP_35, self = this; + self.racc_tstack.$pop(); + self.$racc_e_pop(self.racc_state, self.racc_tstack, self.racc_vstack);}; + }; + return act; + } else { + self.$raise("" + "[Racc Bug] unknown action " + (act.$inspect())) + }; + if ($truthy(self.yydebug)) { + self.$racc_next_state(self.racc_state['$[]'](-1), self.racc_state)}; + return nil; + }, $Parser__racc_evalact$12.$$arity = 2); + + Opal.def(self, '$_racc_do_reduce', $Parser__racc_do_reduce$14 = function $$_racc_do_reduce(arg, act) { + var $a, $b, self = this, _ = nil, goto_table = nil, goto_check = nil, goto_default = nil, goto_pointer = nil, nt_base = nil, reduce_table = nil, use_result = nil, state = nil, vstack = nil, tstack = nil, i = nil, len = nil, reduce_to = nil, method_id = nil, void_array = nil, tmp_t = nil, tmp_v = nil, $writer = nil, k1 = nil, $ret_or_18 = nil, $ret_or_19 = nil, curstate = nil; - - $send(old, 'each', [], (TMP_35 = function(act){var self = TMP_35.$$s || this; -if (act == null) act = nil; - return self.$active_queue().$delete(act)}, TMP_35.$$s = self, TMP_35.$$arity = 1, TMP_35)); - return self.$active_queue()['$<<'](updated); - }, TMP_Rewriter_replace_actions_36.$$arity = 2); - Opal.defn(self, '$raise_clobber_error', TMP_Rewriter_raise_clobber_error_37 = function $$raise_clobber_error(action, existing) { - var self = this, diagnostic = nil; - + $b = arg, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), (_ = ($a[3] == null ? nil : $a[3])), (goto_table = ($a[4] == null ? nil : $a[4])), (goto_check = ($a[5] == null ? nil : $a[5])), (goto_default = ($a[6] == null ? nil : $a[6])), (goto_pointer = ($a[7] == null ? nil : $a[7])), (nt_base = ($a[8] == null ? nil : $a[8])), (reduce_table = ($a[9] == null ? nil : $a[9])), (_ = ($a[10] == null ? nil : $a[10])), (_ = ($a[11] == null ? nil : $a[11])), (_ = ($a[12] == null ? nil : $a[12])), (use_result = ($a[13] == null ? nil : $a[13])), $b; + state = self.racc_state; + vstack = self.racc_vstack; + tstack = self.racc_tstack; + i = $rb_times(act, -3); + len = reduce_table['$[]'](i); + reduce_to = reduce_table['$[]']($rb_plus(i, 1)); + method_id = reduce_table['$[]']($rb_plus(i, 2)); + void_array = []; + if ($truthy(self.yydebug)) { + tmp_t = tstack['$[]'](len['$-@'](), len)}; + tmp_v = vstack['$[]'](len['$-@'](), len); + if ($truthy(self.yydebug)) { - diagnostic = Opal.const_get_relative($nesting, 'Diagnostic').$new("error", "invalid_action", $hash2(["action"], {"action": action}), action.$range()); - self.diagnostics.$process(diagnostic); - diagnostic = Opal.const_get_relative($nesting, 'Diagnostic').$new("note", "clobbered", $hash2(["action"], {"action": existing['$[]'](0)}), existing['$[]'](0).$range()); - self.diagnostics.$process(diagnostic); - return self.$raise(Opal.const_get_relative($nesting, 'ClobberingError'), "Parser::Source::Rewriter detected clobbering"); - }, TMP_Rewriter_raise_clobber_error_37.$$arity = 2); + $writer = [len['$-@'](), len, void_array]; + $send(tstack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];}; - Opal.defn(self, '$in_transaction?', TMP_Rewriter_in_transaction$q_38 = function() { - var self = this; - - return self.pending_queue['$nil?']()['$!']() - }, TMP_Rewriter_in_transaction$q_38.$$arity = 0); + $writer = [len['$-@'](), len, void_array]; + $send(vstack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; - Opal.defn(self, '$active_queue', TMP_Rewriter_active_queue_39 = function $$active_queue() { - var $a, self = this; + $writer = [len['$-@'](), len, void_array]; + $send(state, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(use_result)) { + vstack.$push(self.$__send__(method_id, tmp_v, vstack, tmp_v['$[]'](0))) + } else { + vstack.$push(self.$__send__(method_id, tmp_v, vstack)) + }; + tstack.$push(reduce_to); + if ($truthy(self.yydebug)) { + self.$racc_reduce(tmp_t, reduce_to, tstack, vstack)}; + k1 = $rb_minus(reduce_to, nt_base); + if ($truthy((i = goto_pointer['$[]'](k1)))) { + + i = $rb_plus(i, state['$[]'](-1)); + if ($truthy((function() {if ($truthy(($ret_or_18 = (function() {if ($truthy(($ret_or_19 = $rb_ge(i, 0)))) { + + return (curstate = goto_table['$[]'](i)); + } else { + return $ret_or_19 + }; return nil; })()))) { + return goto_check['$[]'](i)['$=='](k1) + } else { + return $ret_or_18 + }; return nil; })())) { + return curstate};}; + return goto_default['$[]'](k1); + }, $Parser__racc_do_reduce$14.$$arity = 2); + + Opal.def(self, '$on_error', $Parser_on_error$15 = function $$on_error(t, val, vstack) { + var self = this, $ret_or_20 = nil; - return ($truthy($a = self.pending_queue) ? $a : self.queue) - }, TMP_Rewriter_active_queue_39.$$arity = 0); - - Opal.defn(self, '$active_clobber', TMP_Rewriter_active_clobber_40 = function $$active_clobber() { - var $a, self = this; + return self.$raise($$($nesting, 'ParseError'), self.$sprintf("\nparse error on value %s (%s)", val.$inspect(), (function() {if ($truthy(($ret_or_20 = self.$token_to_str(t)))) { + return $ret_or_20 + } else { + return "?" + }; return nil; })())) + }, $Parser_on_error$15.$$arity = 3); + + Opal.def(self, '$yyerror', $Parser_yyerror$16 = function $$yyerror() { + var self = this; + + return self.$throw("racc_jump", 1) + }, $Parser_yyerror$16.$$arity = 0); + + Opal.def(self, '$yyaccept', $Parser_yyaccept$17 = function $$yyaccept() { + var self = this; + + return self.$throw("racc_jump", 2) + }, $Parser_yyaccept$17.$$arity = 0); + + Opal.def(self, '$yyerrok', $Parser_yyerrok$18 = function $$yyerrok() { + var self = this; + + return (self.racc_error_status = 0) + }, $Parser_yyerrok$18.$$arity = 0); + + Opal.def(self, '$racc_read_token', $Parser_racc_read_token$19 = function $$racc_read_token(t, tok, val) { + var self = this; - return ($truthy($a = self.pending_clobber) ? $a : self.clobber) - }, TMP_Rewriter_active_clobber_40.$$arity = 0); - Opal.defn(self, '$active_insertions', TMP_Rewriter_active_insertions_41 = function $$active_insertions() { - var $a, self = this; + self.racc_debug_out.$print("read "); + self.racc_debug_out.$print(tok.$inspect(), "(", self.$racc_token2str(t), ") "); + self.racc_debug_out.$puts(val.$inspect()); + return self.racc_debug_out.$puts(); + }, $Parser_racc_read_token$19.$$arity = 3); + + Opal.def(self, '$racc_shift', $Parser_racc_shift$20 = function $$racc_shift(tok, tstack, vstack) { + var self = this; - return ($truthy($a = self.pending_insertions) ? $a : self.insertions) - }, TMP_Rewriter_active_insertions_41.$$arity = 0); - Opal.defn(self, '$active_clobber=', TMP_Rewriter_active_clobber$eq_42 = function(value) { - var self = this; + self.racc_debug_out.$puts("" + "shift " + (self.$racc_token2str(tok))); + self.$racc_print_stacks(tstack, vstack); + return self.racc_debug_out.$puts(); + }, $Parser_racc_shift$20.$$arity = 3); + + Opal.def(self, '$racc_reduce', $Parser_racc_reduce$21 = function $$racc_reduce(toks, sim, tstack, vstack) { + var $$22, self = this, out = nil; - if ($truthy(self.pending_clobber)) { - return (self.pending_clobber = value) - } else { - return (self.clobber = value) - } - }, TMP_Rewriter_active_clobber$eq_42.$$arity = 1); - Opal.defn(self, '$active_insertions=', TMP_Rewriter_active_insertions$eq_43 = function(value) { - var self = this; + out = self.racc_debug_out; + out.$print("reduce "); + if ($truthy(toks['$empty?']())) { + out.$print(" ") + } else { + $send(toks, 'each', [], ($$22 = function(t){var self = $$22.$$s == null ? this : $$22.$$s; - if ($truthy(self.pending_insertions)) { - return (self.pending_insertions = value) - } else { - return (self.insertions = value) - } - }, TMP_Rewriter_active_insertions$eq_43.$$arity = 1); - return (Opal.defn(self, '$adjacent?', TMP_Rewriter_adjacent$q_44 = function(range1, range2) { - var $a, self = this; + + + if (t == null) { + t = nil; + }; + return out.$print(" ", self.$racc_token2str(t));}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + }; + out.$puts("" + " --> " + (self.$racc_token2str(sim))); + self.$racc_print_stacks(tstack, vstack); + return self.racc_debug_out.$puts(); + }, $Parser_racc_reduce$21.$$arity = 4); + + Opal.def(self, '$racc_accept', $Parser_racc_accept$23 = function $$racc_accept() { + var self = this; - return ($truthy($a = $rb_le(range1.$begin_pos(), range2.$end_pos())) ? $rb_le(range2.$begin_pos(), range1.$end_pos()) : $a) - }, TMP_Rewriter_adjacent$q_44.$$arity = 2), nil) && 'adjacent?'; - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) + + self.racc_debug_out.$puts("accept"); + return self.racc_debug_out.$puts(); + }, $Parser_racc_accept$23.$$arity = 0); + + Opal.def(self, '$racc_e_pop', $Parser_racc_e_pop$24 = function $$racc_e_pop(state, tstack, vstack) { + var self = this; + + + self.racc_debug_out.$puts("error recovering mode: pop token"); + self.$racc_print_states(state); + self.$racc_print_stacks(tstack, vstack); + return self.racc_debug_out.$puts(); + }, $Parser_racc_e_pop$24.$$arity = 3); + + Opal.def(self, '$racc_next_state', $Parser_racc_next_state$25 = function $$racc_next_state(curstate, state) { + var self = this; + + + self.racc_debug_out.$puts("" + "goto " + (curstate)); + self.$racc_print_states(state); + return self.racc_debug_out.$puts(); + }, $Parser_racc_next_state$25.$$arity = 2); + + Opal.def(self, '$racc_print_stacks', $Parser_racc_print_stacks$26 = function $$racc_print_stacks(t, v) { + var $$27, self = this, out = nil; + + + out = self.racc_debug_out; + out.$print(" ["); + $send(t, 'each_index', [], ($$27 = function(i){var self = $$27.$$s == null ? this : $$27.$$s; + + + + if (i == null) { + i = nil; + }; + return out.$print(" (", self.$racc_token2str(t['$[]'](i)), " ", v['$[]'](i).$inspect(), ")");}, $$27.$$s = self, $$27.$$arity = 1, $$27)); + return out.$puts(" ]"); + }, $Parser_racc_print_stacks$26.$$arity = 2); + + Opal.def(self, '$racc_print_states', $Parser_racc_print_states$28 = function $$racc_print_states(s) { + var $$29, self = this, out = nil; + + + out = self.racc_debug_out; + out.$print(" ["); + $send(s, 'each', [], ($$29 = function(st){var self = $$29.$$s == null ? this : $$29.$$s; + + + + if (st == null) { + st = nil; + }; + return out.$print(" ", st);}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + return out.$puts(" ]"); + }, $Parser_racc_print_states$28.$$arity = 1); + + Opal.def(self, '$racc_token2str', $Parser_racc_token2str$30 = function $$racc_token2str(tok) { + var self = this, $ret_or_21 = nil; + + if ($truthy(($ret_or_21 = $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](tok)))) { + return $ret_or_21 + } else { + return self.$raise("" + "[Racc Bug] can't convert token " + (tok) + " to string") + } + }, $Parser_racc_token2str$30.$$arity = 1); + return (Opal.def(self, '$token_to_str', $Parser_token_to_str$31 = function $$token_to_str(t) { + var self = this; + + return $$$(self.$class(), 'Racc_token_to_s_table')['$[]'](t) + }, $Parser_token_to_str$31.$$arity = 1), nil) && 'token_to_str'; + })($nesting[0], null, $nesting); + })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/rewriter/action"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["parser/messages"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; - Opal.add_stubs(['$include', '$attr_reader', '$alias_method', '$freeze', '$<=>', '$begin_pos', '$range', '$zero?', '$order', '$==', '$length', '$empty?', '$inspect']); + Opal.add_stubs(['$freeze', '$[]', '$===', '$empty?', '$format']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + Opal.const_set($nesting[0], 'MESSAGES', $hash2(["unicode_point_too_large", "invalid_escape", "incomplete_escape", "invalid_hex_escape", "invalid_unicode_escape", "unterminated_unicode", "escape_eof", "string_eof", "regexp_options", "cvar_name", "ivar_name", "trailing_in_number", "empty_numeric", "invalid_octal", "no_dot_digit_literal", "bare_backslash", "unexpected", "embedded_document", "heredoc_id_has_newline", "heredoc_id_ends_with_nl", "unterminated_heredoc_id", "invalid_escape_use", "ambiguous_literal", "ambiguous_regexp", "ambiguous_prefix", "triple_dot_at_eol", "nth_ref_alias", "begin_in_method", "backref_assignment", "invalid_assignment", "module_name_const", "unexpected_token", "argument_const", "argument_ivar", "argument_gvar", "argument_cvar", "duplicate_argument", "empty_symbol", "odd_hash", "singleton_literal", "dynamic_const", "const_reassignment", "module_in_def", "class_in_def", "unexpected_percent_str", "block_and_blockarg", "masgn_as_condition", "block_given_to_yield", "invalid_regexp", "invalid_return", "csend_in_lhs_of_masgn", "cant_assign_to_numparam", "reserved_for_numparam", "ordinary_param_defined", "numparam_used_in_outer_scope", "circular_argument_reference", "pm_interp_in_var_name", "lvar_name", "undefined_lvar", "duplicate_variable_name", "duplicate_pattern_key", "endless_setter", "useless_else", "invalid_encoding", "invalid_action", "clobbered", "different_replacements", "swallowed_insertions", "swallowed_insertions_conflict", "crossing_deletions", "crossing_deletions_conflict", "crossing_insertions", "crossing_insertions_conflict"], {"unicode_point_too_large": "invalid Unicode codepoint (too large)", "invalid_escape": "invalid escape character syntax", "incomplete_escape": "incomplete character syntax", "invalid_hex_escape": "invalid hex escape", "invalid_unicode_escape": "invalid Unicode escape", "unterminated_unicode": "unterminated Unicode escape", "escape_eof": "escape sequence meets end of file", "string_eof": "unterminated string meets end of file", "regexp_options": "unknown regexp options: %{options}", "cvar_name": "`%{name}' is not allowed as a class variable name", "ivar_name": "`%{name}' is not allowed as an instance variable name", "trailing_in_number": "trailing `%{character}' in number", "empty_numeric": "numeric literal without digits", "invalid_octal": "invalid octal digit", "no_dot_digit_literal": "no . floating literal anymore; put 0 before dot", "bare_backslash": "bare backslash only allowed before newline", "unexpected": "unexpected `%{character}'", "embedded_document": "embedded document meets end of file (and they embark on a romantic journey)", "heredoc_id_has_newline": "here document identifier across newlines, never match", "heredoc_id_ends_with_nl": "here document identifier ends with a newline", "unterminated_heredoc_id": "unterminated heredoc id", "invalid_escape_use": "invalid character syntax; use ?%{escape}", "ambiguous_literal": "ambiguous first argument; put parentheses or a space even after the operator", "ambiguous_regexp": "ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator", "ambiguous_prefix": "`%{prefix}' interpreted as argument prefix", "triple_dot_at_eol": "... at EOL, should be parenthesized", "nth_ref_alias": "cannot define an alias for a back-reference variable", "begin_in_method": "BEGIN in method", "backref_assignment": "cannot assign to a back-reference variable", "invalid_assignment": "cannot assign to a keyword", "module_name_const": "class or module name must be a constant literal", "unexpected_token": "unexpected token %{token}", "argument_const": "formal argument cannot be a constant", "argument_ivar": "formal argument cannot be an instance variable", "argument_gvar": "formal argument cannot be a global variable", "argument_cvar": "formal argument cannot be a class variable", "duplicate_argument": "duplicate argument name", "empty_symbol": "empty symbol literal", "odd_hash": "odd number of entries for a hash", "singleton_literal": "cannot define a singleton method for a literal", "dynamic_const": "dynamic constant assignment", "const_reassignment": "constant re-assignment", "module_in_def": "module definition in method body", "class_in_def": "class definition in method body", "unexpected_percent_str": "%{type}: unknown type of percent-literal", "block_and_blockarg": "both block argument and literal block are passed", "masgn_as_condition": "multiple assignment in conditional context", "block_given_to_yield": "block given to yield", "invalid_regexp": "%{message}", "invalid_return": "Invalid return in class/module body", "csend_in_lhs_of_masgn": "&. inside multiple assignment destination", "cant_assign_to_numparam": "cannot assign to numbered parameter %{name}", "reserved_for_numparam": "%{name} is reserved for numbered parameter", "ordinary_param_defined": "ordinary parameter is defined", "numparam_used_in_outer_scope": "numbered parameter is already used in an outer scope", "circular_argument_reference": "circular argument reference %{var_name}", "pm_interp_in_var_name": "symbol literal with interpolation is not allowed", "lvar_name": "`%{name}' is not allowed as a local variable name", "undefined_lvar": "no such local variable: `%{name}'", "duplicate_variable_name": "duplicate variable name %{name}", "duplicate_pattern_key": "duplicate hash pattern key %{name}", "endless_setter": "setter method cannot be defined in an endless method definition", "useless_else": "else without rescue is useless", "invalid_encoding": "literal contains escape sequences incompatible with UTF-8", "invalid_action": "cannot %{action}", "clobbered": "clobbered by: %{action}", "different_replacements": "different replacements: %{replacement} vs %{other_replacement}", "swallowed_insertions": "this replacement:", "swallowed_insertions_conflict": "swallows some inner rewriting actions:", "crossing_deletions": "the deletion of:", "crossing_deletions_conflict": "is crossing:", "crossing_insertions": "the rewriting action on:", "crossing_insertions_conflict": "is crossing that on:"}).$freeze()); + return (function($base, $parent_nesting) { + var self = $module($base, 'Messages'); - (function($base, $super, $parent_nesting) { - function $Action(){}; - var self = $Action = $klass($base, $super, 'Action', $Action); + var $nesting = [self].concat($parent_nesting), $Messages_compile$1; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Action_initialize_1, TMP_Action_$lt$eq$gt_2, TMP_Action_to_s_3; + return (Opal.defs(self, '$compile', $Messages_compile$1 = function $$compile(reason, arguments$) { + var self = this, template = nil, $ret_or_1 = nil; - def.range = def.replacement = nil; - self.$include(Opal.const_get_relative($nesting, 'Comparable')); - self.$attr_reader("range", "replacement", "allow_multiple_insertions", "order"); - self.$alias_method("allow_multiple_insertions?", "allow_multiple_insertions"); - - Opal.defn(self, '$initialize', TMP_Action_initialize_1 = function $$initialize(range, replacement, allow_multiple_insertions, order) { - var self = this; + template = $$($nesting, 'MESSAGES')['$[]'](reason); + if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'Hash')['$==='](arguments$)))) { + return arguments$['$empty?']() + } else { + return $ret_or_1 + }; return nil; })())) { + return template}; + return self.$format(template, arguments$); + }, $Messages_compile$1.$$arity = 2), nil) && 'compile' + })($nesting[0], $nesting); + })($nesting[0], $nesting) +}; - if (replacement == null) { - replacement = ""; - } - if (allow_multiple_insertions == null) { - allow_multiple_insertions = false; - } - if (order == null) { - order = 0; - } - - self.range = range; - self.replacement = replacement; - self.allow_multiple_insertions = allow_multiple_insertions; - self.order = order; - return self.$freeze(); - }, TMP_Action_initialize_1.$$arity = -2); - - Opal.defn(self, '$<=>', TMP_Action_$lt$eq$gt_2 = function(other) { - var self = this, result = nil; +Opal.modules["parser/deprecation"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; - - result = self.$range().$begin_pos()['$<=>'](other.$range().$begin_pos()); - if ($truthy(result['$zero?']())) { - } else { - return result - }; - return self.$order()['$<=>'](other.$order()); - }, TMP_Action_$lt$eq$gt_2.$$arity = 1); - return (Opal.defn(self, '$to_s', TMP_Action_to_s_3 = function $$to_s() { - var $a, self = this; + Opal.add_stubs(['$attr_writer', '$warn']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); - if ($truthy((($a = self.range.$length()['$=='](0)) ? self.replacement['$empty?']() : self.range.$length()['$=='](0)))) { - return "do nothing" - } else if (self.range.$length()['$=='](0)) { - return "" + "insert " + (self.replacement.$inspect()) - } else if ($truthy(self.replacement['$empty?']())) { - return "" + "remove " + (self.range.$length()) + " character(s)" - } else { - return "" + "replace " + (self.range.$length()) + " character(s) with " + (self.replacement.$inspect()) - } - }, TMP_Action_to_s_3.$$arity = 0), nil) && 'to_s'; - })(Opal.const_get_relative($nesting, 'Rewriter'), null, $nesting) + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Deprecation'); + + var $nesting = [self].concat($parent_nesting), $Deprecation_warn_of_deprecation$1; + + + self.$attr_writer("warned_of_deprecation"); + return (Opal.def(self, '$warn_of_deprecation', $Deprecation_warn_of_deprecation$1 = function $$warn_of_deprecation() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + if (self.warned_of_deprecation == null) self.warned_of_deprecation = nil; + + return (self.warned_of_deprecation = (function() {if ($truthy(($ret_or_1 = self.warned_of_deprecation))) { + return $ret_or_1 + } else if ($truthy(($ret_or_2 = self.$warn($$$(self, 'DEPRECATION_WARNING'))))) { + return $ret_or_2 + } else { + return true + }; return nil; })()) + }, $Deprecation_warn_of_deprecation$1.$$arity = 0), nil) && 'warn_of_deprecation'; })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $range = Opal.range; +Opal.modules["parser/ast/processor"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $slice = Opal.slice; - Opal.add_stubs(['$attr_reader', '$freeze', '$line', '$alias_method', '$column', '$last_line', '$last_column', '$with', '$update_expression', '$==', '$class', '$reduce', '$map', '$instance_variables', '$instance_variable_get', '$send', '$inject', '$to_sym', '$[]', '$[]=', '$-', '$protected', '$tap', '$dup', '$to_proc']); + Opal.add_stubs(['$updated', '$process_all', '$on_var', '$!', '$nil?', '$process', '$on_vasgn', '$on_argument', '$is_a?', '$[]', '$children', '$process_regular_node', '$warn']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return (function($base, $parent_nesting) { + var self = $module($base, 'AST'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Map(){}; - var self = $Map = $klass($base, $super, 'Map', $Map); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Processor'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Map_initialize_1, TMP_Map_initialize_copy_2, TMP_Map_node$eq_3, TMP_Map_line_4, TMP_Map_column_5, TMP_Map_last_line_6, TMP_Map_last_column_7, TMP_Map_with_expression_9, TMP_Map_$eq$eq_11, TMP_Map_to_hash_13, TMP_Map_with_14, TMP_Map_update_expression_15; + var $nesting = [self].concat($parent_nesting), $Processor_process_regular_node$1, $Processor_on_var$2, $Processor_process_variable_node$3, $Processor_on_vasgn$4, $Processor_process_var_asgn_node$5, $Processor_on_op_asgn$6, $Processor_on_const$7, $Processor_on_casgn$8, $Processor_on_argument$9, $Processor_process_argument_node$10, $Processor_on_procarg0$11, $Processor_on_def$12, $Processor_on_defs$13, $Processor_on_send$14, $Processor_on_numblock$15, $Processor_process_variable_node$16, $Processor_process_var_asgn_node$17, $Processor_process_argument_node$18, $Processor_on_empty_else$19; - def.node = def.expression = nil; - self.$attr_reader("node"); - self.$attr_reader("expression"); - Opal.defn(self, '$initialize', TMP_Map_initialize_1 = function $$initialize(expression) { + Opal.def(self, '$process_regular_node', $Processor_process_regular_node$1 = function $$process_regular_node(node) { var self = this; - return (self.expression = expression) - }, TMP_Map_initialize_1.$$arity = 1); + return node.$updated(nil, self.$process_all(node)) + }, $Processor_process_regular_node$1.$$arity = 1); + $alias(self, "on_dstr", "process_regular_node"); + $alias(self, "on_dsym", "process_regular_node"); + $alias(self, "on_regexp", "process_regular_node"); + $alias(self, "on_xstr", "process_regular_node"); + $alias(self, "on_splat", "process_regular_node"); + $alias(self, "on_kwsplat", "process_regular_node"); + $alias(self, "on_array", "process_regular_node"); + $alias(self, "on_pair", "process_regular_node"); + $alias(self, "on_hash", "process_regular_node"); + $alias(self, "on_kwargs", "process_regular_node"); + $alias(self, "on_irange", "process_regular_node"); + $alias(self, "on_erange", "process_regular_node"); + + Opal.def(self, '$on_var', $Processor_on_var$2 = function $$on_var(node) { + var self = this; + + return node + }, $Processor_on_var$2.$$arity = 1); - Opal.defn(self, '$initialize_copy', TMP_Map_initialize_copy_2 = function $$initialize_copy(other) { - var self = this, $iter = TMP_Map_initialize_copy_2.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$process_variable_node', $Processor_process_variable_node$3 = function $$process_variable_node(node) { + var self = this; + + return self.$on_var(node) + }, $Processor_process_variable_node$3.$$arity = 1); + $alias(self, "on_lvar", "process_variable_node"); + $alias(self, "on_ivar", "process_variable_node"); + $alias(self, "on_gvar", "process_variable_node"); + $alias(self, "on_cvar", "process_variable_node"); + $alias(self, "on_back_ref", "process_variable_node"); + $alias(self, "on_nth_ref", "process_variable_node"); + + Opal.def(self, '$on_vasgn', $Processor_on_vasgn$4 = function $$on_vasgn(node) { + var $a, self = this, name = nil, value_node = nil; - if ($iter) TMP_Map_initialize_copy_2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - $send(self, Opal.find_super_dispatcher(self, 'initialize_copy', TMP_Map_initialize_copy_2, false), $zuper, $iter); - return (self.node = nil); - }, TMP_Map_initialize_copy_2.$$arity = 1); + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(value_node['$nil?']()['$!']())) { + return node.$updated(nil, [name, self.$process(value_node)]) + } else { + return node + }; + }, $Processor_on_vasgn$4.$$arity = 1); - Opal.defn(self, '$node=', TMP_Map_node$eq_3 = function(node) { + Opal.def(self, '$process_var_asgn_node', $Processor_process_var_asgn_node$5 = function $$process_var_asgn_node(node) { var self = this; + return self.$on_vasgn(node) + }, $Processor_process_var_asgn_node$5.$$arity = 1); + $alias(self, "on_lvasgn", "process_var_asgn_node"); + $alias(self, "on_ivasgn", "process_var_asgn_node"); + $alias(self, "on_gvasgn", "process_var_asgn_node"); + $alias(self, "on_cvasgn", "process_var_asgn_node"); + $alias(self, "on_and_asgn", "process_regular_node"); + $alias(self, "on_or_asgn", "process_regular_node"); + + Opal.def(self, '$on_op_asgn', $Processor_on_op_asgn$6 = function $$on_op_asgn(node) { + var $a, self = this, var_node = nil, method_name = nil, value_node = nil; + - self.node = node; - self.$freeze(); - return self.node; - }, TMP_Map_node$eq_3.$$arity = 1); + $a = [].concat(Opal.to_a(node)), (var_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; + return node.$updated(nil, [self.$process(var_node), method_name, self.$process(value_node)]); + }, $Processor_on_op_asgn$6.$$arity = 1); + $alias(self, "on_mlhs", "process_regular_node"); + $alias(self, "on_masgn", "process_regular_node"); - Opal.defn(self, '$line', TMP_Map_line_4 = function $$line() { - var self = this; + Opal.def(self, '$on_const', $Processor_on_const$7 = function $$on_const(node) { + var $a, self = this, scope_node = nil, name = nil; - return self.expression.$line() - }, TMP_Map_line_4.$$arity = 0); - self.$alias_method("first_line", "line"); + + $a = [].concat(Opal.to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $a; + return node.$updated(nil, [self.$process(scope_node), name]); + }, $Processor_on_const$7.$$arity = 1); - Opal.defn(self, '$column', TMP_Map_column_5 = function $$column() { - var self = this; + Opal.def(self, '$on_casgn', $Processor_on_casgn$8 = function $$on_casgn(node) { + var $a, self = this, scope_node = nil, name = nil, value_node = nil; - return self.expression.$column() - }, TMP_Map_column_5.$$arity = 0); + + $a = [].concat(Opal.to_a(node)), (scope_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (value_node = ($a[2] == null ? nil : $a[2])), $a; + if ($truthy(value_node['$nil?']()['$!']())) { + return node.$updated(nil, [self.$process(scope_node), name, self.$process(value_node)]) + } else { + return node.$updated(nil, [self.$process(scope_node), name]) + }; + }, $Processor_on_casgn$8.$$arity = 1); + $alias(self, "on_args", "process_regular_node"); - Opal.defn(self, '$last_line', TMP_Map_last_line_6 = function $$last_line() { - var self = this; + Opal.def(self, '$on_argument', $Processor_on_argument$9 = function $$on_argument(node) { + var $a, self = this, arg_name = nil, value_node = nil; - return self.expression.$last_line() - }, TMP_Map_last_line_6.$$arity = 0); + + $a = [].concat(Opal.to_a(node)), (arg_name = ($a[0] == null ? nil : $a[0])), (value_node = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(value_node['$nil?']()['$!']())) { + return node.$updated(nil, [arg_name, self.$process(value_node)]) + } else { + return node + }; + }, $Processor_on_argument$9.$$arity = 1); - Opal.defn(self, '$last_column', TMP_Map_last_column_7 = function $$last_column() { + Opal.def(self, '$process_argument_node', $Processor_process_argument_node$10 = function $$process_argument_node(node) { var self = this; - return self.expression.$last_column() - }, TMP_Map_last_column_7.$$arity = 0); + return self.$on_argument(node) + }, $Processor_process_argument_node$10.$$arity = 1); + $alias(self, "on_arg", "process_argument_node"); + $alias(self, "on_optarg", "process_argument_node"); + $alias(self, "on_restarg", "process_argument_node"); + $alias(self, "on_blockarg", "process_argument_node"); + $alias(self, "on_shadowarg", "process_argument_node"); + $alias(self, "on_kwarg", "process_argument_node"); + $alias(self, "on_kwoptarg", "process_argument_node"); + $alias(self, "on_kwrestarg", "process_argument_node"); + $alias(self, "on_forward_arg", "process_argument_node"); + + Opal.def(self, '$on_procarg0', $Processor_on_procarg0$11 = function $$on_procarg0(node) { + var self = this; + + if ($truthy(node.$children()['$[]'](0)['$is_a?']($$($nesting, 'Symbol')))) { + return self.$on_argument(node) + } else { + return self.$process_regular_node(node) + } + }, $Processor_on_procarg0$11.$$arity = 1); + $alias(self, "on_arg_expr", "process_regular_node"); + $alias(self, "on_restarg_expr", "process_regular_node"); + $alias(self, "on_blockarg_expr", "process_regular_node"); + $alias(self, "on_block_pass", "process_regular_node"); + $alias(self, "on_module", "process_regular_node"); + $alias(self, "on_class", "process_regular_node"); + $alias(self, "on_sclass", "process_regular_node"); + + Opal.def(self, '$on_def', $Processor_on_def$12 = function $$on_def(node) { + var $a, self = this, name = nil, args_node = nil, body_node = nil; + + + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (args_node = ($a[1] == null ? nil : $a[1])), (body_node = ($a[2] == null ? nil : $a[2])), $a; + return node.$updated(nil, [name, self.$process(args_node), self.$process(body_node)]); + }, $Processor_on_def$12.$$arity = 1); - Opal.defn(self, '$with_expression', TMP_Map_with_expression_9 = function $$with_expression(expression_l) { - var TMP_8, self = this; + Opal.def(self, '$on_defs', $Processor_on_defs$13 = function $$on_defs(node) { + var $a, self = this, definee_node = nil, name = nil, args_node = nil, body_node = nil; - return $send(self, 'with', [], (TMP_8 = function(map){var self = TMP_8.$$s || this; -if (map == null) map = nil; - return map.$update_expression(expression_l)}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)) - }, TMP_Map_with_expression_9.$$arity = 1); + + $a = [].concat(Opal.to_a(node)), (definee_node = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), (args_node = ($a[2] == null ? nil : $a[2])), (body_node = ($a[3] == null ? nil : $a[3])), $a; + return node.$updated(nil, [self.$process(definee_node), name, self.$process(args_node), self.$process(body_node)]); + }, $Processor_on_defs$13.$$arity = 1); + $alias(self, "on_undef", "process_regular_node"); + $alias(self, "on_alias", "process_regular_node"); - Opal.defn(self, '$==', TMP_Map_$eq$eq_11 = function(other) { - var $a, TMP_10, self = this; + Opal.def(self, '$on_send', $Processor_on_send$14 = function $$on_send(node) { + var $a, self = this, receiver_node = nil, method_name = nil, arg_nodes = nil; + + + $a = [].concat(Opal.to_a(node)), (receiver_node = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (arg_nodes = $slice.call($a, 2)), $a; + if ($truthy(receiver_node)) { + receiver_node = self.$process(receiver_node)}; + return node.$updated(nil, [receiver_node, method_name].concat(Opal.to_a(self.$process_all(arg_nodes)))); + }, $Processor_on_send$14.$$arity = 1); + $alias(self, "on_csend", "on_send"); + $alias(self, "on_index", "process_regular_node"); + $alias(self, "on_indexasgn", "process_regular_node"); + $alias(self, "on_block", "process_regular_node"); + $alias(self, "on_lambda", "process_regular_node"); + + Opal.def(self, '$on_numblock', $Processor_on_numblock$15 = function $$on_numblock(node) { + var $a, self = this, method_call = nil, max_numparam = nil, body = nil; + + + $a = [].concat(Opal.to_a(node)), (method_call = ($a[0] == null ? nil : $a[0])), (max_numparam = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + return node.$updated(nil, [self.$process(method_call), max_numparam, self.$process(body)]); + }, $Processor_on_numblock$15.$$arity = 1); + $alias(self, "on_while", "process_regular_node"); + $alias(self, "on_while_post", "process_regular_node"); + $alias(self, "on_until", "process_regular_node"); + $alias(self, "on_until_post", "process_regular_node"); + $alias(self, "on_for", "process_regular_node"); + $alias(self, "on_return", "process_regular_node"); + $alias(self, "on_break", "process_regular_node"); + $alias(self, "on_next", "process_regular_node"); + $alias(self, "on_redo", "process_regular_node"); + $alias(self, "on_retry", "process_regular_node"); + $alias(self, "on_super", "process_regular_node"); + $alias(self, "on_yield", "process_regular_node"); + $alias(self, "on_defined?", "process_regular_node"); + $alias(self, "on_not", "process_regular_node"); + $alias(self, "on_and", "process_regular_node"); + $alias(self, "on_or", "process_regular_node"); + $alias(self, "on_if", "process_regular_node"); + $alias(self, "on_when", "process_regular_node"); + $alias(self, "on_case", "process_regular_node"); + $alias(self, "on_iflipflop", "process_regular_node"); + $alias(self, "on_eflipflop", "process_regular_node"); + $alias(self, "on_match_current_line", "process_regular_node"); + $alias(self, "on_match_with_lvasgn", "process_regular_node"); + $alias(self, "on_resbody", "process_regular_node"); + $alias(self, "on_rescue", "process_regular_node"); + $alias(self, "on_ensure", "process_regular_node"); + $alias(self, "on_begin", "process_regular_node"); + $alias(self, "on_kwbegin", "process_regular_node"); + $alias(self, "on_preexe", "process_regular_node"); + $alias(self, "on_postexe", "process_regular_node"); + $alias(self, "on_case_match", "process_regular_node"); + $alias(self, "on_in_match", "process_regular_node"); + $alias(self, "on_match_pattern", "process_regular_node"); + $alias(self, "on_match_pattern_p", "process_regular_node"); + $alias(self, "on_in_pattern", "process_regular_node"); + $alias(self, "on_if_guard", "process_regular_node"); + $alias(self, "on_unless_guard", "process_regular_node"); + $alias(self, "on_match_var", "process_variable_node"); + $alias(self, "on_match_rest", "process_regular_node"); + $alias(self, "on_pin", "process_regular_node"); + $alias(self, "on_match_alt", "process_regular_node"); + $alias(self, "on_match_as", "process_regular_node"); + $alias(self, "on_array_pattern", "process_regular_node"); + $alias(self, "on_array_pattern_with_tail", "process_regular_node"); + $alias(self, "on_hash_pattern", "process_regular_node"); + $alias(self, "on_const_pattern", "process_regular_node"); + $alias(self, "on_find_pattern", "process_regular_node"); + + Opal.def(self, '$process_variable_node', $Processor_process_variable_node$16 = function $$process_variable_node(node) { + var self = this; - return (($a = other.$class()['$=='](self.$class())) ? $send(self.$instance_variables(), 'map', [], (TMP_10 = function(ivar){var self = TMP_10.$$s || this; -if (ivar == null) ivar = nil; - return self.$instance_variable_get(ivar)['$=='](other.$send("instance_variable_get", ivar))}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)).$reduce("&") : other.$class()['$=='](self.$class())) - }, TMP_Map_$eq$eq_11.$$arity = 1); + + self.$warn("" + "Parser::AST::Processor#process_variable_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_var instead."); + return self.$on_var(node); + }, $Processor_process_variable_node$16.$$arity = 1); - Opal.defn(self, '$to_hash', TMP_Map_to_hash_13 = function $$to_hash() { - var TMP_12, self = this; + Opal.def(self, '$process_var_asgn_node', $Processor_process_var_asgn_node$17 = function $$process_var_asgn_node(node) { + var self = this; - return $send(self.$instance_variables(), 'inject', [$hash2([], {})], (TMP_12 = function(hash, ivar){var self = TMP_12.$$s || this, $writer = nil; -if (hash == null) hash = nil;if (ivar == null) ivar = nil; - if (ivar.$to_sym()['$==']("@node")) { - return hash;}; - - $writer = [ivar['$[]']($range(1, -1, false)).$to_sym(), self.$instance_variable_get(ivar)]; - $send(hash, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return hash;}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12)) - }, TMP_Map_to_hash_13.$$arity = 0); - self.$protected(); + self.$warn("" + "Parser::AST::Processor#process_var_asgn_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_vasgn instead."); + return self.$on_vasgn(node); + }, $Processor_process_var_asgn_node$17.$$arity = 1); - Opal.defn(self, '$with', TMP_Map_with_14 = function() { - var self = this, $iter = TMP_Map_with_14.$$p, block = $iter || nil; + Opal.def(self, '$process_argument_node', $Processor_process_argument_node$18 = function $$process_argument_node(node) { + var self = this; - if ($iter) TMP_Map_with_14.$$p = null; - return $send(self.$dup(), 'tap', [], block.$to_proc()) - }, TMP_Map_with_14.$$arity = 0); - return (Opal.defn(self, '$update_expression', TMP_Map_update_expression_15 = function $$update_expression(expression_l) { + + self.$warn("" + "Parser::AST::Processor#process_argument_node is deprecated as a" + " public API and will be removed. Please use " + "Parser::AST::Processor#on_argument instead."); + return self.$on_argument(node); + }, $Processor_process_argument_node$18.$$arity = 1); + return (Opal.def(self, '$on_empty_else', $Processor_on_empty_else$19 = function $$on_empty_else(node) { var self = this; - return (self.expression = expression_l) - }, TMP_Map_update_expression_15.$$arity = 1), nil) && 'update_expression'; - })($nesting[0], null, $nesting) + return node + }, $Processor_on_empty_else$19.$$arity = 1), nil) && 'on_empty_else'; + })($nesting[0], $$$($$$('::', 'AST'), 'Processor'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/operator"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["parser/meta"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs(['$freeze', '$to_set']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Operator(){}; - var self = $Operator = $klass($base, $super, 'Operator', $Operator); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Operator_initialize_1; + return (function($base, $parent_nesting) { + var self = $module($base, 'Meta'); - - self.$attr_reader("operator"); - return (Opal.defn(self, '$initialize', TMP_Operator_initialize_1 = function $$initialize(operator, expression) { - var self = this, $iter = TMP_Operator_initialize_1.$$p, $yield = $iter || nil; + var $nesting = [self].concat($parent_nesting); - if ($iter) TMP_Operator_initialize_1.$$p = null; - - self.operator = operator; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Operator_initialize_1, false), [expression], null); - }, TMP_Operator_initialize_1.$$arity = 2), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) + return Opal.const_set($nesting[0], 'NODE_TYPES', ["true", "false", "nil", "int", "float", "str", "dstr", "sym", "dsym", "xstr", "regopt", "regexp", "array", "splat", "pair", "kwsplat", "hash", "irange", "erange", "self", "lvar", "ivar", "cvar", "gvar", "const", "defined?", "lvasgn", "ivasgn", "cvasgn", "gvasgn", "casgn", "mlhs", "masgn", "op_asgn", "and_asgn", "ensure", "rescue", "arg_expr", "or_asgn", "back_ref", "nth_ref", "match_with_lvasgn", "match_current_line", "module", "class", "sclass", "def", "defs", "undef", "alias", "args", "cbase", "arg", "optarg", "restarg", "blockarg", "block_pass", "kwarg", "kwoptarg", "kwrestarg", "kwnilarg", "send", "csend", "super", "zsuper", "yield", "block", "and", "not", "or", "if", "when", "case", "while", "until", "while_post", "until_post", "for", "break", "next", "redo", "return", "resbody", "kwbegin", "begin", "retry", "preexe", "postexe", "iflipflop", "eflipflop", "shadowarg", "complex", "rational", "__FILE__", "__LINE__", "__ENCODING__", "ident", "lambda", "indexasgn", "index", "procarg0", "restarg_expr", "blockarg_expr", "objc_kwarg", "objc_restarg", "objc_varargs", "numargs", "numblock", "forward_args", "forwarded_args", "forward_arg", "case_match", "in_match", "in_pattern", "match_var", "pin", "match_alt", "match_as", "match_rest", "array_pattern", "match_with_trailing_comma", "array_pattern_with_tail", "hash_pattern", "const_pattern", "if_guard", "unless_guard", "match_nil_pattern", "empty_else", "find_pattern", "kwargs", "match_pattern_p", "match_pattern"].$to_set().$freeze()) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/collection"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["parser/source/buffer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + function $rb_ge(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $enc = Opal.enc, $truthy = Opal.truthy, $gvars = Opal.gvars, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs(['$attr_reader', '$empty?', '$=~', '$start_with?', '$freeze', '$==', '$[]', '$nil?', '$!=', '$match', '$find', '$encoding', '$recognize_encoding', '$force_encoding', '$encode', '$to_s', '$source=', '$-', '$open', '$read', '$raise', '$frozen?', '$dup', '$reencode_string', '$class', '$valid_encoding?', '$name', '$raw_source=', '$gsub', '$!', '$ascii_only?', '$line_index_for_position', '$line_begins', '$+', '$to_a', '$lines', '$end_with?', '$<<', '$each', '$chomp!', '$fetch', '$source_lines', '$<', '$>=', '$size', '$new', '$source', '$source_range', '$private', '$index', '$bsearch', '$[]=', '$method_defined?', '$bsearch_index']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Collection(){}; - var self = $Collection = $klass($base, $super, 'Collection', $Collection); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Buffer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Collection_initialize_1; + var $nesting = [self].concat($parent_nesting), $Buffer_recognize_encoding$1, $Buffer_reencode_string$2, $Buffer_initialize$3, $Buffer_read$4, $Buffer_source$6, $Buffer_source$eq$7, $Buffer_raw_source$eq$8, $Buffer_slice$9, $Buffer_decompose_position$10, $Buffer_line_for_position$11, $Buffer_column_for_position$12, $Buffer_source_lines$13, $Buffer_source_line$15, $Buffer_line_range$16, $Buffer_source_range$17, $Buffer_last_line$18, $Buffer_freeze$19, $Buffer_inspect$20, $Buffer_line_begins$21, $Buffer_line_index_for_position$22, $Buffer_bsearch$23, $Buffer_bsearch$25; + self.$$prototype.name = self.$$prototype.source = self.$$prototype.slice_source = self.$$prototype.first_line = self.$$prototype.lines = self.$$prototype.source_range = self.$$prototype.line_begins = self.$$prototype.line_index_for_position = self.$$prototype.line_range = nil; - self.$attr_reader("begin"); - self.$attr_reader("end"); - return (Opal.defn(self, '$initialize', TMP_Collection_initialize_1 = function $$initialize(begin_l, end_l, expression_l) { - var $a, self = this, $iter = TMP_Collection_initialize_1.$$p, $yield = $iter || nil; + self.$attr_reader("name", "first_line"); + Opal.const_set($nesting[0], 'ENCODING_RE', Opal.regexp([$enc("[\\s#](en)?coding\\s*[:=]\\s*", "ASCII-8BIT"), $enc("(", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("(utf8-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)", "ASCII-8BIT"), $enc("|", "ASCII-8BIT"), $enc("([A-Za-z0-9_-]+)", "ASCII-8BIT"), $enc(")", "ASCII-8BIT"), $enc("", "ASCII-8BIT")])); + Opal.defs(self, '$recognize_encoding', $Buffer_recognize_encoding$1 = function $$recognize_encoding(string) { + var $a, $b, self = this, first_line = nil, second_line = nil, encoding_line = nil, $ret_or_1 = nil, result = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($iter) TMP_Collection_initialize_1.$$p = null; - $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Collection_initialize_1, false), [expression_l], null); - }, TMP_Collection_initialize_1.$$arity = 3), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/constant"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + if ($truthy(string['$empty?']())) { + return nil}; + string['$=~'](/^(.*)\n?(.*\n)?/); + $a = [(($b = $gvars['~']) === nil ? nil : $b['$[]'](1)), (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))], (first_line = $a[0]), (second_line = $a[1]), $a; + if ($truthy(first_line['$start_with?']($enc("\xEF\xBB\xBF", "ASCII-8BIT").$freeze()))) { + return $$$($$($nesting, 'Encoding'), 'UTF_8') + } else if (first_line['$[]'](0, 2)['$==']($enc("#!", "ASCII-8BIT").$freeze())) { + encoding_line = second_line + } else { + encoding_line = first_line + }; + if ($truthy((function() {if ($truthy(($ret_or_1 = encoding_line['$nil?']()))) { + return $ret_or_1 + } else { + return encoding_line['$[]'](0)['$!=']($enc("#", "ASCII-8BIT")) + }; return nil; })())) { + return nil}; + if ($truthy((result = $$($nesting, 'ENCODING_RE').$match(encoding_line)))) { + return $$($nesting, 'Encoding').$find((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = result['$[]'](3)))) { + return $ret_or_3 + } else { + return result['$[]'](4) + }; return nil; })()))) { + return $ret_or_2 + } else { + return result['$[]'](6) + }; return nil; })()) + } else { + return nil + }; + }, $Buffer_recognize_encoding$1.$$arity = 1); + Opal.defs(self, '$reencode_string', $Buffer_reencode_string$2 = function $$reencode_string(input) { + var self = this, original_encoding = nil, detected_encoding = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + original_encoding = input.$encoding(); + detected_encoding = self.$recognize_encoding(input.$force_encoding($$$($$($nesting, 'Encoding'), 'BINARY'))); + if ($truthy(detected_encoding['$nil?']())) { + return input.$force_encoding(original_encoding) + } else if (detected_encoding['$==']($$$($$($nesting, 'Encoding'), 'BINARY'))) { + return input + } else { + return input.$force_encoding(detected_encoding).$encode($$$($$($nesting, 'Encoding'), 'UTF_8')) + }; + }, $Buffer_reencode_string$2.$$arity = 1); + + Opal.def(self, '$initialize', $Buffer_initialize$3 = function $$initialize(name, $a, $b) { + var $post_args, $kwargs, first_line, source, self = this, $writer = nil; - (function($base, $super, $parent_nesting) { - function $Constant(){}; - var self = $Constant = $klass($base, $super, 'Constant', $Constant); + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) { + first_line = $post_args[0]; + $post_args.splice(0, 1); + } + if (first_line == null) { + first_line = 1; + }; + + source = $kwargs.$$smap["source"]; + if (source == null) { + source = nil + }; + self.name = name.$to_s(); + self.source = nil; + self.first_line = first_line; + self.lines = nil; + self.line_begins = nil; + self.slice_source = nil; + self.line_index_for_position = $hash2([], {}); + if ($truthy(source)) { + + $writer = [source]; + $send(self, 'source=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } else { + return nil + }; + }, $Buffer_initialize$3.$$arity = -2); + + Opal.def(self, '$read', $Buffer_read$4 = function $$read() { + var $$5, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Constant_initialize_1, TMP_Constant_with_operator_3, TMP_Constant_update_operator_4; + + $send($$($nesting, 'File'), 'open', [self.name, $enc("rb", "ASCII-8BIT")], ($$5 = function(io){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; + + + if (io == null) { + io = nil; + }; + $writer = [io.$read()]; + $send(self, 'source=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + return self; + }, $Buffer_read$4.$$arity = 0); - self.$attr_reader("double_colon"); - self.$attr_reader("name"); - self.$attr_reader("operator"); + Opal.def(self, '$source', $Buffer_source$6 = function $$source() { + var self = this; + + + if ($truthy(self.source['$nil?']())) { + self.$raise($$($nesting, 'RuntimeError'), $enc("Cannot extract source from uninitialized Source::Buffer", "ASCII-8BIT"))}; + return self.source; + }, $Buffer_source$6.$$arity = 0); - Opal.defn(self, '$initialize', TMP_Constant_initialize_1 = function $$initialize(double_colon, name, expression) { - var $a, self = this, $iter = TMP_Constant_initialize_1.$$p, $yield = $iter || nil; + Opal.def(self, '$source=', $Buffer_source$eq$7 = function(input) { + var self = this, $writer = nil; - if ($iter) TMP_Constant_initialize_1.$$p = null; - $a = [double_colon, name], (self.double_colon = $a[0]), (self.name = $a[1]), $a; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Constant_initialize_1, false), [expression], null); - }, TMP_Constant_initialize_1.$$arity = 3); + if ($truthy(input['$frozen?']())) { + input = input.$dup()}; + input = self.$class().$reencode_string(input); + if ($truthy(input['$valid_encoding?']())) { + } else { + self.$raise($$($nesting, 'EncodingError'), "" + $enc("invalid byte sequence in ", "ASCII-8BIT") + (input.$encoding().$name())) + }; + + $writer = [input]; + $send(self, 'raw_source=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; + }, $Buffer_source$eq$7.$$arity = 1); - Opal.defn(self, '$with_operator', TMP_Constant_with_operator_3 = function $$with_operator(operator_l) { - var TMP_2, self = this; + Opal.def(self, '$raw_source=', $Buffer_raw_source$eq$8 = function(input) { + var self = this, $ret_or_4 = nil, $ret_or_5 = nil; - return $send(self, 'with', [], (TMP_2 = function(map){var self = TMP_2.$$s || this; -if (map == null) map = nil; - return map.$update_operator(operator_l)}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)) - }, TMP_Constant_with_operator_3.$$arity = 1); - self.$protected(); - return (Opal.defn(self, '$update_operator', TMP_Constant_update_operator_4 = function $$update_operator(operator_l) { + + if ($truthy(self.source)) { + self.$raise($$($nesting, 'ArgumentError'), $enc("Source::Buffer is immutable", "ASCII-8BIT"))}; + self.source = input.$gsub($enc("\r\n", "ASCII-8BIT").$freeze(), $enc("\n", "ASCII-8BIT").$freeze()).$freeze(); + if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.source['$ascii_only?']()['$!']()))) { + return self.source.$encoding()['$!=']($$$($$($nesting, 'Encoding'), 'UTF_32LE')) + } else { + return $ret_or_5 + }; return nil; })()))) { + return self.source.$encoding()['$!=']($$$($$($nesting, 'Encoding'), 'BINARY')) + } else { + return $ret_or_4 + }; return nil; })())) { + return (self.slice_source = self.source.$encode($$$($$($nesting, 'Encoding'), 'UTF_32LE'))) + } else { + return nil + }; + }, $Buffer_raw_source$eq$8.$$arity = 1); + + Opal.def(self, '$slice', $Buffer_slice$9 = function $$slice(range) { var self = this; - return (self.operator = operator_l) - }, TMP_Constant_update_operator_4.$$arity = 1), nil) && 'update_operator'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/variable"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(self.slice_source['$nil?']())) { + return self.source['$[]'](range) + } else { + return self.slice_source['$[]'](range).$encode(self.source.$encoding()) + } + }, $Buffer_slice$9.$$arity = 1); + + Opal.def(self, '$decompose_position', $Buffer_decompose_position$10 = function $$decompose_position(position) { + var self = this, line_index = nil, line_begin = nil; - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + + line_index = self.$line_index_for_position(position); + line_begin = self.$line_begins()['$[]'](line_index); + return [$rb_plus(self.first_line, line_index), $rb_minus(position, line_begin)]; + }, $Buffer_decompose_position$10.$$arity = 1); + + Opal.def(self, '$line_for_position', $Buffer_line_for_position$11 = function $$line_for_position(position) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return $rb_plus(self.$line_index_for_position(position), self.first_line) + }, $Buffer_line_for_position$11.$$arity = 1); + + Opal.def(self, '$column_for_position', $Buffer_column_for_position$12 = function $$column_for_position(position) { + var self = this, line_index = nil; - (function($base, $super, $parent_nesting) { - function $Variable(){}; - var self = $Variable = $klass($base, $super, 'Variable', $Variable); + + line_index = self.$line_index_for_position(position); + return $rb_minus(position, self.$line_begins()['$[]'](line_index)); + }, $Buffer_column_for_position$12.$$arity = 1); + + Opal.def(self, '$source_lines', $Buffer_source_lines$13 = function $$source_lines() { + var $$14, self = this, $ret_or_6 = nil, lines = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Variable_initialize_1, TMP_Variable_with_operator_3, TMP_Variable_update_operator_4; + return (self.lines = (function() {if ($truthy(($ret_or_6 = self.lines))) { + return $ret_or_6 + } else { + + lines = self.source.$lines().$to_a(); + if ($truthy(self.source['$end_with?']($enc("\n", "ASCII-8BIT").$freeze()))) { + lines['$<<']($enc("", "ASCII-8BIT").$dup())}; + $send(lines, 'each', [], ($$14 = function(line){var self = $$14.$$s == null ? this : $$14.$$s; + + + if (line == null) { + line = nil; + }; + line['$chomp!']($enc("\n", "ASCII-8BIT").$freeze()); + return line.$freeze();}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + return lines.$freeze(); + }; return nil; })()) + }, $Buffer_source_lines$13.$$arity = 0); - self.$attr_reader("name"); - self.$attr_reader("operator"); + Opal.def(self, '$source_line', $Buffer_source_line$15 = function $$source_line(lineno) { + var self = this; + + return self.$source_lines().$fetch($rb_minus(lineno, self.first_line)).$dup() + }, $Buffer_source_line$15.$$arity = 1); - Opal.defn(self, '$initialize', TMP_Variable_initialize_1 = function $$initialize(name_l, expression_l) { - var self = this, $iter = TMP_Variable_initialize_1.$$p, $yield = $iter || nil; + Opal.def(self, '$line_range', $Buffer_line_range$16 = function $$line_range(lineno) { + var self = this, index = nil, $ret_or_7 = nil; - if (expression_l == null) { - expression_l = name_l; - } - if ($iter) TMP_Variable_initialize_1.$$p = null; - self.name = name_l; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Variable_initialize_1, false), [expression_l], null); - }, TMP_Variable_initialize_1.$$arity = -2); + index = $rb_minus(lineno, self.first_line); + if ($truthy((function() {if ($truthy(($ret_or_7 = $rb_lt(index, 0)))) { + return $ret_or_7 + } else { + return $rb_ge($rb_plus(index, 1), self.$line_begins().$size()) + }; return nil; })())) { + return self.$raise($$($nesting, 'IndexError'), "" + $enc("Parser::Source::Buffer: range for line ", "ASCII-8BIT") + ("" + (lineno) + $enc(" requested, valid line numbers are ", "ASCII-8BIT") + (self.first_line) + $enc("..", "ASCII-8BIT")) + ("" + ($rb_minus($rb_plus(self.first_line, self.$line_begins().$size()), 2)))) + } else { + return $$($nesting, 'Range').$new(self, self.$line_begins()['$[]'](index), $rb_minus(self.$line_begins()['$[]']($rb_plus(index, 1)), 1)) + }; + }, $Buffer_line_range$16.$$arity = 1); - Opal.defn(self, '$with_operator', TMP_Variable_with_operator_3 = function $$with_operator(operator_l) { - var TMP_2, self = this; + Opal.def(self, '$source_range', $Buffer_source_range$17 = function $$source_range() { + var self = this, $ret_or_8 = nil; - return $send(self, 'with', [], (TMP_2 = function(map){var self = TMP_2.$$s || this; -if (map == null) map = nil; - return map.$update_operator(operator_l)}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)) - }, TMP_Variable_with_operator_3.$$arity = 1); - self.$protected(); - return (Opal.defn(self, '$update_operator', TMP_Variable_update_operator_4 = function $$update_operator(operator_l) { + return (self.source_range = (function() {if ($truthy(($ret_or_8 = self.source_range))) { + return $ret_or_8 + } else { + return $$($nesting, 'Range').$new(self, 0, self.$source().$size()) + }; return nil; })()) + }, $Buffer_source_range$17.$$arity = 0); + + Opal.def(self, '$last_line', $Buffer_last_line$18 = function $$last_line() { var self = this; - return (self.operator = operator_l) - }, TMP_Variable_update_operator_4.$$arity = 1), nil) && 'update_operator'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/keyword"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; + return $rb_minus($rb_plus(self.$line_begins().$size(), self.first_line), 2) + }, $Buffer_last_line$18.$$arity = 0); + + Opal.def(self, '$freeze', $Buffer_freeze$19 = function $$freeze() { + var $iter = $Buffer_freeze$19.$$p, $yield = $iter || nil, self = this; - Opal.add_stubs(['$attr_reader']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + if ($iter) $Buffer_freeze$19.$$p = null; + + self.$source_lines(); + self.$line_begins(); + self.$source_range(); + return $send2(self, $find_super(self, 'freeze', $Buffer_freeze$19, false, true), 'freeze', [], $iter); + }, $Buffer_freeze$19.$$arity = 0); + + Opal.def(self, '$inspect', $Buffer_inspect$20 = function $$inspect() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return "" + $enc("#<", "ASCII-8BIT") + (self.$class()) + $enc(" ", "ASCII-8BIT") + (self.$name()) + $enc(">", "ASCII-8BIT") + }, $Buffer_inspect$20.$$arity = 0); + self.$private(); + + Opal.def(self, '$line_begins', $Buffer_line_begins$21 = function $$line_begins() { + var $a, self = this, $ret_or_9 = nil, begins = nil, index = nil; - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return (self.line_begins = (function() {if ($truthy(($ret_or_9 = self.line_begins))) { + return $ret_or_9 + } else { + + begins = [0]; + index = 0; + while ($truthy((index = self.source.$index($enc("\n", "ASCII-8BIT").$freeze(), index)))) { + + index = $rb_plus(index, 1); + begins['$<<'](index); + }; + begins['$<<']($rb_plus(self.source.$size(), 1)); + return begins; + }; return nil; })()) + }, $Buffer_line_begins$21.$$arity = 0); + + Opal.def(self, '$line_index_for_position', $Buffer_line_index_for_position$22 = function $$line_index_for_position(position) { + var self = this, $ret_or_10 = nil, index = nil, $writer = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(($ret_or_10 = self.line_index_for_position['$[]'](position)))) { + return $ret_or_10 + } else { + + index = $rb_minus(self.$bsearch(self.$line_begins(), position), 1); + if ($truthy(self.line_index_for_position['$frozen?']())) { + } else { + + $writer = [position, index]; + $send(self.line_index_for_position, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return index; + } + }, $Buffer_line_index_for_position$22.$$arity = 1); + if ($truthy($$($nesting, 'Array')['$method_defined?']("bsearch_index"))) { + return (Opal.def(self, '$bsearch', $Buffer_bsearch$23 = function $$bsearch(line_begins, position) { + var $$24, self = this, $ret_or_11 = nil; - (function($base, $super, $parent_nesting) { - function $Keyword(){}; - var self = $Keyword = $klass($base, $super, 'Keyword', $Keyword); + if ($truthy(($ret_or_11 = $send(line_begins, 'bsearch_index', [], ($$24 = function(line_begin){var self = $$24.$$s == null ? this : $$24.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Keyword_initialize_1; + + + if (line_begin == null) { + line_begin = nil; + }; + return $rb_lt(position, line_begin);}, $$24.$$s = self, $$24.$$arity = 1, $$24))))) { + return $ret_or_11 + } else { + return $rb_minus(line_begins.$size(), 1) + } + }, $Buffer_bsearch$23.$$arity = 2), nil) && 'bsearch' + } else { + return (Opal.def(self, '$bsearch', $Buffer_bsearch$25 = function $$bsearch(line_begins, position) { + var $$26, self = this, $ret_or_12 = nil, $ret_or_13 = nil; - - self.$attr_reader("keyword"); - self.$attr_reader("begin"); - self.$attr_reader("end"); - return (Opal.defn(self, '$initialize', TMP_Keyword_initialize_1 = function $$initialize(keyword_l, begin_l, end_l, expression_l) { - var $a, self = this, $iter = TMP_Keyword_initialize_1.$$p, $yield = $iter || nil; + + self.line_range = (function() {if ($truthy(($ret_or_12 = self.line_range))) { + return $ret_or_12 + } else { + return Opal.Range.$new(0,line_begins.$size(), true) + }; return nil; })(); + if ($truthy(($ret_or_13 = $send(self.line_range, 'bsearch', [], ($$26 = function(i){var self = $$26.$$s == null ? this : $$26.$$s; - if ($iter) TMP_Keyword_initialize_1.$$p = null; - - self.keyword = keyword_l; - $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Keyword_initialize_1, false), [expression_l], null); - }, TMP_Keyword_initialize_1.$$arity = 4), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) + + + if (i == null) { + i = nil; + }; + return $rb_lt(position, line_begins['$[]'](i));}, $$26.$$s = self, $$26.$$arity = 1, $$26))))) { + return $ret_or_13 + } else { + return $rb_minus(line_begins.$size(), 1) + }; + }, $Buffer_bsearch$25.$$arity = 2), nil) && 'bsearch' + }; + })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/definition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["parser/source/range"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_ge(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); + } + function $rb_times(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $alias = Opal.alias; - Opal.add_stubs(['$attr_reader', '$join']); + Opal.add_stubs(['$include', '$attr_reader', '$<', '$raise', '$nil?', '$freeze', '$with', '$-', '$line_for_position', '$alias_method', '$column_for_position', '$!=', '$line', '$last_line', '$inspect', '$column', '$last_column', '$source_line', '$slice', '$begin_pos', '$end_pos', '$include?', '$source', '$to_a', '$decompose_position', '$join', '$name', '$+', '$new', '$min', '$max', '$disjoint?', '$empty?', '$>=', '$!', '$<=>', '$contains?', '$overlaps?', '$==', '$*', '$is_a?', '$source_buffer', '$nonzero?', '$hash']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Range'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_initialize_1; + var $nesting = [self].concat($parent_nesting), $Range_initialize$1, $Range_begin$2, $Range_end$3, $Range_size$4, $Range_line$5, $Range_column$6, $Range_last_line$7, $Range_last_column$8, $Range_column_range$9, $Range_source_line$10, $Range_source$11, $Range_is$ques$12, $Range_to_a$13, $Range_to_range$14, $Range_to_s$15, $Range_with$16, $Range_adjust$17, $Range_resize$18, $Range_join$19, $Range_intersect$20, $Range_disjoint$ques$21, $Range_overlaps$ques$22, $Range_contains$ques$23, $Range_contained$ques$24, $Range_crossing$ques$25, $Range_empty$ques$26, $Range_$lt_eq_gt$27, $Range_hash$28, $Range_inspect$29; - def.keyword = def.end = nil; + self.$$prototype.begin_pos = self.$$prototype.end_pos = self.$$prototype.source_buffer = nil; - self.$attr_reader("keyword"); - self.$attr_reader("operator"); - self.$attr_reader("name"); - self.$attr_reader("end"); - return (Opal.defn(self, '$initialize', TMP_Definition_initialize_1 = function $$initialize(keyword_l, operator_l, name_l, end_l) { - var self = this, $iter = TMP_Definition_initialize_1.$$p, $yield = $iter || nil; + self.$include($$($nesting, 'Comparable')); + self.$attr_reader("source_buffer"); + self.$attr_reader("begin_pos", "end_pos"); + + Opal.def(self, '$initialize', $Range_initialize$1 = function $$initialize(source_buffer, begin_pos, end_pos) { + var $a, self = this; - if ($iter) TMP_Definition_initialize_1.$$p = null; - self.keyword = keyword_l; - self.operator = operator_l; - self.name = name_l; - self.end = end_l; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Definition_initialize_1, false), [self.keyword.$join(self.end)], null); - }, TMP_Definition_initialize_1.$$arity = 4), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/send"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - - Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + if ($truthy($rb_lt(end_pos, begin_pos))) { + self.$raise($$($nesting, 'ArgumentError'), "Parser::Source::Range: end_pos must not be less than begin_pos")}; + if ($truthy(source_buffer['$nil?']())) { + self.$raise($$($nesting, 'ArgumentError'), "Parser::Source::Range: source_buffer must not be nil")}; + self.source_buffer = source_buffer; + $a = [begin_pos, end_pos], (self.begin_pos = $a[0]), (self.end_pos = $a[1]), $a; + return self.$freeze(); + }, $Range_initialize$1.$$arity = 3); + + Opal.def(self, '$begin', $Range_begin$2 = function $$begin() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.$with($hash2(["end_pos"], {"end_pos": self.begin_pos})) + }, $Range_begin$2.$$arity = 0); + + Opal.def(self, '$end', $Range_end$3 = function $$end() { + var self = this; - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return self.$with($hash2(["begin_pos"], {"begin_pos": self.end_pos})) + }, $Range_end$3.$$arity = 0); + + Opal.def(self, '$size', $Range_size$4 = function $$size() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return $rb_minus(self.end_pos, self.begin_pos) + }, $Range_size$4.$$arity = 0); + $alias(self, "length", "size"); + + Opal.def(self, '$line', $Range_line$5 = function $$line() { + var self = this; - (function($base, $super, $parent_nesting) { - function $Send(){}; - var self = $Send = $klass($base, $super, 'Send', $Send); + return self.source_buffer.$line_for_position(self.begin_pos) + }, $Range_line$5.$$arity = 0); + self.$alias_method("first_line", "line"); + + Opal.def(self, '$column', $Range_column$6 = function $$column() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Send_initialize_1, TMP_Send_with_operator_3, TMP_Send_update_operator_4; + return self.source_buffer.$column_for_position(self.begin_pos) + }, $Range_column$6.$$arity = 0); + + Opal.def(self, '$last_line', $Range_last_line$7 = function $$last_line() { + var self = this; + return self.source_buffer.$line_for_position(self.end_pos) + }, $Range_last_line$7.$$arity = 0); - self.$attr_reader("dot"); - self.$attr_reader("selector"); - self.$attr_reader("operator"); - self.$attr_reader("begin"); - self.$attr_reader("end"); + Opal.def(self, '$last_column', $Range_last_column$8 = function $$last_column() { + var self = this; + + return self.source_buffer.$column_for_position(self.end_pos) + }, $Range_last_column$8.$$arity = 0); - Opal.defn(self, '$initialize', TMP_Send_initialize_1 = function $$initialize(dot_l, selector_l, begin_l, end_l, expression_l) { - var $a, self = this, $iter = TMP_Send_initialize_1.$$p, $yield = $iter || nil; + Opal.def(self, '$column_range', $Range_column_range$9 = function $$column_range() { + var self = this; - if ($iter) TMP_Send_initialize_1.$$p = null; - self.dot = dot_l; - self.selector = selector_l; - $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Send_initialize_1, false), [expression_l], null); - }, TMP_Send_initialize_1.$$arity = 5); + if ($truthy(self.$line()['$!='](self.$last_line()))) { + self.$raise($$($nesting, 'RangeError'), "" + (self.$inspect()) + " spans more than one line")}; + return Opal.Range.$new(self.$column(),self.$last_column(), true); + }, $Range_column_range$9.$$arity = 0); - Opal.defn(self, '$with_operator', TMP_Send_with_operator_3 = function $$with_operator(operator_l) { - var TMP_2, self = this; + Opal.def(self, '$source_line', $Range_source_line$10 = function $$source_line() { + var self = this; - return $send(self, 'with', [], (TMP_2 = function(map){var self = TMP_2.$$s || this; -if (map == null) map = nil; - return map.$update_operator(operator_l)}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)) - }, TMP_Send_with_operator_3.$$arity = 1); - self.$protected(); - return (Opal.defn(self, '$update_operator', TMP_Send_update_operator_4 = function $$update_operator(operator_l) { + return self.source_buffer.$source_line(self.$line()) + }, $Range_source_line$10.$$arity = 0); + + Opal.def(self, '$source', $Range_source$11 = function $$source() { var self = this; - return (self.operator = operator_l) - }, TMP_Send_update_operator_4.$$arity = 1), nil) && 'update_operator'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/condition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - - Opal.add_stubs(['$attr_reader']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return self.source_buffer.$slice(Opal.Range.$new(self.$begin_pos(),self.$end_pos(), true)) + }, $Range_source$11.$$arity = 0); + + Opal.def(self, '$is?', $Range_is$ques$12 = function($a) { + var $post_args, what, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + what = $post_args;; + return what['$include?'](self.$source()); + }, $Range_is$ques$12.$$arity = -1); + + Opal.def(self, '$to_a', $Range_to_a$13 = function $$to_a() { + var self = this; - (function($base, $super, $parent_nesting) { - function $Condition(){}; - var self = $Condition = $klass($base, $super, 'Condition', $Condition); + return Opal.Range.$new(self.begin_pos,self.end_pos, true).$to_a() + }, $Range_to_a$13.$$arity = 0); + + Opal.def(self, '$to_range', $Range_to_range$14 = function $$to_range() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Condition_initialize_1; + return Opal.Range.$new(self.$begin_pos(),self.$end_pos(), true) + }, $Range_to_range$14.$$arity = 0); + + Opal.def(self, '$to_s', $Range_to_s$15 = function $$to_s() { + var $a, $b, self = this, line = nil, column = nil; + + $b = self.source_buffer.$decompose_position(self.begin_pos), $a = Opal.to_ary($b), (line = ($a[0] == null ? nil : $a[0])), (column = ($a[1] == null ? nil : $a[1])), $b; + return [self.source_buffer.$name(), line, $rb_plus(column, 1)].$join(":"); + }, $Range_to_s$15.$$arity = 0); - self.$attr_reader("keyword"); - self.$attr_reader("begin"); - self.$attr_reader("else"); - self.$attr_reader("end"); - return (Opal.defn(self, '$initialize', TMP_Condition_initialize_1 = function $$initialize(keyword_l, begin_l, else_l, end_l, expression_l) { - var $a, self = this, $iter = TMP_Condition_initialize_1.$$p, $yield = $iter || nil; + Opal.def(self, '$with', $Range_with$16 = function($kwargs) { + var begin_pos, end_pos, self = this; - if ($iter) TMP_Condition_initialize_1.$$p = null; - self.keyword = keyword_l; - $a = [begin_l, else_l, end_l], (self.begin = $a[0]), (self["else"] = $a[1]), (self.end = $a[2]), $a; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Condition_initialize_1, false), [expression_l], null); - }, TMP_Condition_initialize_1.$$arity = 5), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + begin_pos = $kwargs.$$smap["begin_pos"]; + if (begin_pos == null) { + begin_pos = self.begin_pos + }; + + end_pos = $kwargs.$$smap["end_pos"]; + if (end_pos == null) { + end_pos = self.end_pos + }; + return $$($nesting, 'Range').$new(self.source_buffer, begin_pos, end_pos); + }, $Range_with$16.$$arity = -1); + + Opal.def(self, '$adjust', $Range_adjust$17 = function $$adjust($kwargs) { + var begin_pos, end_pos, self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/ternary"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + begin_pos = $kwargs.$$smap["begin_pos"]; + if (begin_pos == null) { + begin_pos = 0 + }; + + end_pos = $kwargs.$$smap["end_pos"]; + if (end_pos == null) { + end_pos = 0 + }; + return $$($nesting, 'Range').$new(self.source_buffer, $rb_plus(self.begin_pos, begin_pos), $rb_plus(self.end_pos, end_pos)); + }, $Range_adjust$17.$$arity = -1); + + Opal.def(self, '$resize', $Range_resize$18 = function $$resize(new_size) { + var self = this; - Opal.add_stubs(['$attr_reader']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + return self.$with($hash2(["end_pos"], {"end_pos": $rb_plus(self.begin_pos, new_size)})) + }, $Range_resize$18.$$arity = 1); + + Opal.def(self, '$join', $Range_join$19 = function $$join(other) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return $$($nesting, 'Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$min(), [self.end_pos, other.$end_pos()].$max()) + }, $Range_join$19.$$arity = 1); + + Opal.def(self, '$intersect', $Range_intersect$20 = function $$intersect(other) { + var self = this; - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + if ($truthy(self['$disjoint?'](other))) { + return nil + } else { + return $$($nesting, 'Range').$new(self.source_buffer, [self.begin_pos, other.$begin_pos()].$max(), [self.end_pos, other.$end_pos()].$min()) + } + }, $Range_intersect$20.$$arity = 1); + + Opal.def(self, '$disjoint?', $Range_disjoint$ques$21 = function(other) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy((function() {if ($truthy(($ret_or_1 = self['$empty?']()))) { + return other['$empty?']() + } else { + return $ret_or_1 + }; return nil; })())) { + return self.begin_pos['$!='](other.$begin_pos()) + } else if ($truthy(($ret_or_2 = $rb_ge(self.begin_pos, other.$end_pos())))) { + return $ret_or_2 + } else { + return $rb_ge(other.$begin_pos(), self.end_pos) + } + }, $Range_disjoint$ques$21.$$arity = 1); + + Opal.def(self, '$overlaps?', $Range_overlaps$ques$22 = function(other) { + var self = this; - (function($base, $super, $parent_nesting) { - function $Ternary(){}; - var self = $Ternary = $klass($base, $super, 'Ternary', $Ternary); + return self['$disjoint?'](other)['$!']() + }, $Range_overlaps$ques$22.$$arity = 1); + + Opal.def(self, '$contains?', $Range_contains$ques$23 = function(other) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Ternary_initialize_1; + return $rb_ge($rb_plus(other.$begin_pos()['$<=>'](self.begin_pos), self.end_pos['$<=>'](other.$end_pos())), (function() {if ($truthy(other['$empty?']())) { + return 2 + } else { + return 1 + }; return nil; })()) + }, $Range_contains$ques$23.$$arity = 1); + + Opal.def(self, '$contained?', $Range_contained$ques$24 = function(other) { + var self = this; + return other['$contains?'](self) + }, $Range_contained$ques$24.$$arity = 1); - self.$attr_reader("question"); - self.$attr_reader("colon"); - return (Opal.defn(self, '$initialize', TMP_Ternary_initialize_1 = function $$initialize(question_l, colon_l, expression_l) { - var $a, self = this, $iter = TMP_Ternary_initialize_1.$$p, $yield = $iter || nil; + Opal.def(self, '$crossing?', $Range_crossing$ques$25 = function(other) { + var self = this; - if ($iter) TMP_Ternary_initialize_1.$$p = null; - $a = [question_l, colon_l], (self.question = $a[0]), (self.colon = $a[1]), $a; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Ternary_initialize_1, false), [expression_l], null); - }, TMP_Ternary_initialize_1.$$arity = 3), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/for"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - - Opal.add_stubs(['$attr_reader']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $super, $parent_nesting) { - function $For(){}; - var self = $For = $klass($base, $super, 'For', $For); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_For_initialize_1; + if ($truthy(self['$overlaps?'](other))) { + } else { + return false + }; + return $rb_times(self.begin_pos['$<=>'](other.$begin_pos()), self.end_pos['$<=>'](other.$end_pos()))['$=='](1); + }, $Range_crossing$ques$25.$$arity = 1); + + Opal.def(self, '$empty?', $Range_empty$ques$26 = function() { + var self = this; + return self.begin_pos['$=='](self.end_pos) + }, $Range_empty$ques$26.$$arity = 0); - self.$attr_reader("keyword", "in"); - self.$attr_reader("begin", "end"); - return (Opal.defn(self, '$initialize', TMP_For_initialize_1 = function $$initialize(keyword_l, in_l, begin_l, end_l, expression_l) { - var $a, self = this, $iter = TMP_For_initialize_1.$$p, $yield = $iter || nil; + Opal.def(self, '$<=>', $Range_$lt_eq_gt$27 = function(other) { + var self = this, $ret_or_3 = nil, $ret_or_4 = nil; - if ($iter) TMP_For_initialize_1.$$p = null; - $a = [keyword_l, in_l], (self.keyword = $a[0]), (self["in"] = $a[1]), $a; - $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_For_initialize_1, false), [expression_l], null); - }, TMP_For_initialize_1.$$arity = 5), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) + if ($truthy((function() {if ($truthy(($ret_or_3 = other['$is_a?']($$$($$$($$$('::', 'Parser'), 'Source'), 'Range'))))) { + return self.source_buffer['$=='](other.$source_buffer()) + } else { + return $ret_or_3 + }; return nil; })())) { + } else { + return nil + }; + if ($truthy(($ret_or_4 = self.begin_pos['$<=>'](other.$begin_pos())['$nonzero?']()))) { + return $ret_or_4 + } else { + + return self.end_pos['$<=>'](other.$end_pos()); + }; + }, $Range_$lt_eq_gt$27.$$arity = 1); + self.$alias_method("eql?", "=="); + + Opal.def(self, '$hash', $Range_hash$28 = function $$hash() { + var self = this; + + return [self.source_buffer, self.begin_pos, self.end_pos].$hash() + }, $Range_hash$28.$$arity = 0); + return (Opal.def(self, '$inspect', $Range_inspect$29 = function $$inspect() { + var self = this; + + return "" + "#" + }, $Range_inspect$29.$$arity = 0), nil) && 'inspect'; + })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/rescue_body"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["parser/source/comment"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs(['$attr_reader', '$alias_method', '$new', '$associate', '$associate_locations', '$associate_by_identity', '$freeze', '$source', '$start_with?', '$text', '$==', '$type', '$is_a?', '$location', '$to_s', '$expression', '$inspect']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $RescueBody(){}; - var self = $RescueBody = $klass($base, $super, 'RescueBody', $RescueBody); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Comment'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RescueBody_initialize_1; + var $nesting = [self].concat($parent_nesting), $Comment_associate$1, $Comment_associate_locations$2, $Comment_associate_by_identity$3, $Comment_initialize$4, $Comment_type$5, $Comment_inline$ques$6, $Comment_document$ques$7, $Comment_$eq_eq$8, $Comment_inspect$9; + self.$$prototype.location = nil; - self.$attr_reader("keyword"); - self.$attr_reader("assoc"); - self.$attr_reader("begin"); - return (Opal.defn(self, '$initialize', TMP_RescueBody_initialize_1 = function $$initialize(keyword_l, assoc_l, begin_l, expression_l) { - var self = this, $iter = TMP_RescueBody_initialize_1.$$p, $yield = $iter || nil; + self.$attr_reader("text"); + self.$attr_reader("location"); + self.$alias_method("loc", "location"); + Opal.defs(self, '$associate', $Comment_associate$1 = function $$associate(ast, comments) { + var self = this, associator = nil; - if ($iter) TMP_RescueBody_initialize_1.$$p = null; - self.keyword = keyword_l; - self.assoc = assoc_l; - self.begin = begin_l; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_RescueBody_initialize_1, false), [expression_l], null); - }, TMP_RescueBody_initialize_1.$$arity = 4), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/heredoc"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - - Opal.add_stubs(['$attr_reader']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + associator = $$($nesting, 'Associator').$new(ast, comments); + return associator.$associate(); + }, $Comment_associate$1.$$arity = 2); + Opal.defs(self, '$associate_locations', $Comment_associate_locations$2 = function $$associate_locations(ast, comments) { + var self = this, associator = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + associator = $$($nesting, 'Associator').$new(ast, comments); + return associator.$associate_locations(); + }, $Comment_associate_locations$2.$$arity = 2); + Opal.defs(self, '$associate_by_identity', $Comment_associate_by_identity$3 = function $$associate_by_identity(ast, comments) { + var self = this, associator = nil; - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + + associator = $$($nesting, 'Associator').$new(ast, comments); + return associator.$associate_by_identity(); + }, $Comment_associate_by_identity$3.$$arity = 2); + + Opal.def(self, '$initialize', $Comment_initialize$4 = function $$initialize(range) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + self.location = $$$($$$($$($nesting, 'Parser'), 'Source'), 'Map').$new(range); + self.text = range.$source().$freeze(); + return self.$freeze(); + }, $Comment_initialize$4.$$arity = 1); + + Opal.def(self, '$type', $Comment_type$5 = function $$type() { + var self = this; - (function($base, $super, $parent_nesting) { - function $Heredoc(){}; - var self = $Heredoc = $klass($base, $super, 'Heredoc', $Heredoc); + if ($truthy(self.$text()['$start_with?']("#".$freeze()))) { + return "inline" + } else if ($truthy(self.$text()['$start_with?']("=begin".$freeze()))) { + return "document" + } else { + return nil + } + }, $Comment_type$5.$$arity = 0); + + Opal.def(self, '$inline?', $Comment_inline$ques$6 = function() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Heredoc_initialize_1; + return self.$type()['$==']("inline") + }, $Comment_inline$ques$6.$$arity = 0); + + Opal.def(self, '$document?', $Comment_document$ques$7 = function() { + var self = this; + return self.$type()['$==']("document") + }, $Comment_document$ques$7.$$arity = 0); - self.$attr_reader("heredoc_body"); - self.$attr_reader("heredoc_end"); - return (Opal.defn(self, '$initialize', TMP_Heredoc_initialize_1 = function $$initialize(begin_l, body_l, end_l) { - var self = this, $iter = TMP_Heredoc_initialize_1.$$p, $yield = $iter || nil; + Opal.def(self, '$==', $Comment_$eq_eq$8 = function(other) { + var self = this, $ret_or_1 = nil; - if ($iter) TMP_Heredoc_initialize_1.$$p = null; - - self.heredoc_body = body_l; - self.heredoc_end = end_l; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Heredoc_initialize_1, false), [begin_l], null); - }, TMP_Heredoc_initialize_1.$$arity = 3), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) + if ($truthy(($ret_or_1 = other['$is_a?']($$$($$($nesting, 'Source'), 'Comment'))))) { + return self.location['$=='](other.$location()) + } else { + return $ret_or_1 + } + }, $Comment_$eq_eq$8.$$arity = 1); + return (Opal.def(self, '$inspect', $Comment_inspect$9 = function $$inspect() { + var self = this; + + return "" + "#" + }, $Comment_inspect$9.$$arity = 0), nil) && 'inspect'; + })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/source/map/objc_kwarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["parser/source/comment/associator"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$attr_reader']); + Opal.add_stubs(['$attr_accessor', '$do_associate', '$private', '$freeze', '$[]', '$include?', '$type', '$sort_by', '$compact', '$children', '$begin_pos', '$expression', '$loc', '$select', '$is_a?', '$new', '$[]=', '$-', '$==', '$compare_by_identity', '$advance_comment', '$advance_through_directives', '$visit', '$process_leading_comments', '$location', '$<=', '$line', '$last_line', '$each', '$children_in_source_order', '$process_trailing_comments', '$current_comment_before?', '$associate_and_advance_comment', '$current_comment_before_end?', '$current_comment_decorates?', '$+', '$!', '$end_pos', '$<<', '$start_with?', '$text', '$=~']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ObjcKwarg(){}; - var self = $ObjcKwarg = $klass($base, $super, 'ObjcKwarg', $ObjcKwarg); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Associator'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ObjcKwarg_initialize_1; + var $nesting = [self].concat($parent_nesting), $Associator_initialize$1, $Associator_associate$2, $Associator_associate_locations$3, $Associator_associate_by_identity$4, $Associator_children_in_source_order$5, $Associator_do_associate$8, $Associator_visit$10, $Associator_process_leading_comments$12, $Associator_process_trailing_comments$13, $Associator_advance_comment$14, $Associator_current_comment_before$ques$15, $Associator_current_comment_before_end$ques$16, $Associator_current_comment_decorates$ques$17, $Associator_associate_and_advance_comment$18, $Associator_advance_through_directives$19; + self.$$prototype.map_using = self.$$prototype.mapping = self.$$prototype.skip_directives = self.$$prototype.ast = self.$$prototype.current_comment = self.$$prototype.comment_num = self.$$prototype.comments = nil; - self.$attr_reader("keyword"); - self.$attr_reader("operator"); - self.$attr_reader("argument"); - return (Opal.defn(self, '$initialize', TMP_ObjcKwarg_initialize_1 = function $$initialize(keyword_l, operator_l, argument_l, expression_l) { - var $a, self = this, $iter = TMP_ObjcKwarg_initialize_1.$$p, $yield = $iter || nil; + self.$attr_accessor("skip_directives"); + + Opal.def(self, '$initialize', $Associator_initialize$1 = function $$initialize(ast, comments) { + var self = this; - if ($iter) TMP_ObjcKwarg_initialize_1.$$p = null; - $a = [keyword_l, operator_l, argument_l], (self.keyword = $a[0]), (self.operator = $a[1]), (self.argument = $a[2]), $a; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_ObjcKwarg_initialize_1, false), [expression_l], null); - }, TMP_ObjcKwarg_initialize_1.$$arity = 4), nil) && 'initialize'; - })(Opal.const_get_relative($nesting, 'Map'), Opal.const_get_relative($nesting, 'Map'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/syntax_error"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; + self.ast = ast; + self.comments = comments; + return (self.skip_directives = true); + }, $Associator_initialize$1.$$arity = 2); + + Opal.def(self, '$associate', $Associator_associate$2 = function $$associate() { + var self = this; - Opal.add_stubs(['$attr_reader', '$message']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + + self.map_using = "eql"; + return self.$do_associate(); + }, $Associator_associate$2.$$arity = 0); + + Opal.def(self, '$associate_locations', $Associator_associate_locations$3 = function $$associate_locations() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + self.map_using = "location"; + return self.$do_associate(); + }, $Associator_associate_locations$3.$$arity = 0); + + Opal.def(self, '$associate_by_identity', $Associator_associate_by_identity$4 = function $$associate_by_identity() { + var self = this; - (function($base, $super, $parent_nesting) { - function $SyntaxError(){}; - var self = $SyntaxError = $klass($base, $super, 'SyntaxError', $SyntaxError); + + self.map_using = "identity"; + return self.$do_associate(); + }, $Associator_associate_by_identity$4.$$arity = 0); + self.$private(); + Opal.const_set($nesting[0], 'POSTFIX_TYPES', $$($nesting, 'Set')['$[]']("if", "while", "while_post", "until", "until_post", "masgn").$freeze()); + + Opal.def(self, '$children_in_source_order', $Associator_children_in_source_order$5 = function $$children_in_source_order(node) { + var $$6, $$7, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_SyntaxError_initialize_1; + if ($truthy($$($nesting, 'POSTFIX_TYPES')['$include?'](node.$type()))) { + return $send(node.$children().$compact(), 'sort_by', [], ($$6 = function(child){var self = $$6.$$s == null ? this : $$6.$$s; - - self.$attr_reader("diagnostic"); - return (Opal.defn(self, '$initialize', TMP_SyntaxError_initialize_1 = function $$initialize(diagnostic) { - var self = this, $iter = TMP_SyntaxError_initialize_1.$$p, $yield = $iter || nil; + + + if (child == null) { + child = nil; + }; + return child.$loc().$expression().$begin_pos();}, $$6.$$s = self, $$6.$$arity = 1, $$6)) + } else { + return $send(node.$children(), 'select', [], ($$7 = function(child){var self = $$7.$$s == null ? this : $$7.$$s, $ret_or_1 = nil, $ret_or_2 = nil; - if ($iter) TMP_SyntaxError_initialize_1.$$p = null; + + + if (child == null) { + child = nil; + }; + if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = child['$is_a?']($$$($$($nesting, 'AST'), 'Node'))))) { + return child.$loc() + } else { + return $ret_or_2 + }; return nil; })()))) { + return child.$loc().$expression() + } else { + return $ret_or_1 + };}, $$7.$$s = self, $$7.$$arity = 1, $$7)) + } + }, $Associator_children_in_source_order$5.$$arity = 1); - self.diagnostic = diagnostic; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_SyntaxError_initialize_1, false), [diagnostic.$message()], null); - }, TMP_SyntaxError_initialize_1.$$arity = 1), nil) && 'initialize'; - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting) - })($nesting[0], $nesting) -}; + Opal.def(self, '$do_associate', $Associator_do_associate$8 = function $$do_associate() { + var $$9, self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/clobbering_error"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; - - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + + self.mapping = $send($$($nesting, 'Hash'), 'new', [], ($$9 = function(h, k){var self = $$9.$$s == null ? this : $$9.$$s, $writer = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, []]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$9.$$s = self, $$9.$$arity = 2, $$9)); + if (self.map_using['$==']("identity")) { + self.mapping.$compare_by_identity()}; + self.comment_num = -1; + self.$advance_comment(); + if ($truthy(self.skip_directives)) { + self.$advance_through_directives()}; + if ($truthy(self.ast)) { + self.$visit(self.ast)}; + return self.mapping; + }, $Associator_do_associate$8.$$arity = 0); + + Opal.def(self, '$visit', $Associator_visit$10 = function $$visit(node) { + var $$11, self = this, node_loc = nil, $ret_or_3 = nil; - (function($base, $super, $parent_nesting) { - function $ClobberingError(){}; - var self = $ClobberingError = $klass($base, $super, 'ClobberingError', $ClobberingError); + + self.$process_leading_comments(node); + if ($truthy(self.current_comment)) { + } else { + return nil + }; + node_loc = node.$location(); + if ($truthy((function() {if ($truthy(($ret_or_3 = $rb_le(self.current_comment.$location().$line(), node_loc.$last_line())))) { + return $ret_or_3 + } else { + return node_loc['$is_a?']($$$($$($nesting, 'Map'), 'Heredoc')) + }; return nil; })())) { + + $send(self.$children_in_source_order(node), 'each', [], ($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - return nil - })($nesting[0], Opal.const_get_relative($nesting, 'RuntimeError'), $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/diagnostic"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; - - Opal.add_stubs(['$freeze', '$attr_reader', '$include?', '$raise', '$join', '$inspect', '$dup', '$%', '$[]', '$==', '$line', '$last_line', '$is?', '$+', '$message', '$render_line', '$first_line_only', '$last_line_only', '$-', '$source_buffer', '$decompose_position', '$end_pos', '$>', '$private', '$source_line', '$*', '$length', '$each', '$line_range', '$intersect', '$column_range', '$size', '$[]=', '$!', '$>=', '$map', '$name', '$!=', '$resize', '$=~', '$source', '$new', '$begin_pos']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $super, $parent_nesting) { - function $Diagnostic(){}; - var self = $Diagnostic = $klass($base, $super, 'Diagnostic', $Diagnostic); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Diagnostic_initialize_1, TMP_Diagnostic_message_2, TMP_Diagnostic_render_3, TMP_Diagnostic_render_line_6, TMP_Diagnostic_first_line_only_7, TMP_Diagnostic_last_line_only_8; + + + if (child == null) { + child = nil; + }; + return self.$visit(child);}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + return self.$process_trailing_comments(node); + } else { + return nil + }; + }, $Associator_visit$10.$$arity = 1); + + Opal.def(self, '$process_leading_comments', $Associator_process_leading_comments$12 = function $$process_leading_comments(node) { + var $a, self = this; - def.reason = def["arguments"] = def.location = def.level = def.highlights = nil; - - Opal.const_set($nesting[0], 'LEVELS', ["note", "warning", "error", "fatal"].$freeze()); - self.$attr_reader("level", "reason", "arguments"); - self.$attr_reader("location", "highlights"); - - Opal.defn(self, '$initialize', TMP_Diagnostic_initialize_1 = function $$initialize(level, reason, arguments$, location, highlights) { - var $a, self = this; + + if (node.$type()['$==']("begin")) { + return nil}; + while ($truthy(self['$current_comment_before?'](node))) { + self.$associate_and_advance_comment(node) + }; + }, $Associator_process_leading_comments$12.$$arity = 1); + + Opal.def(self, '$process_trailing_comments', $Associator_process_trailing_comments$13 = function $$process_trailing_comments(node) { + var $a, self = this; - if (highlights == null) { - highlights = []; - } + + while ($truthy(self['$current_comment_before_end?'](node))) { + self.$associate_and_advance_comment(node) + }; + while ($truthy(self['$current_comment_decorates?'](node))) { + self.$associate_and_advance_comment(node) + }; + }, $Associator_process_trailing_comments$13.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'LEVELS')['$include?'](level))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + ("" + "Diagnostic#level must be one of " + (Opal.const_get_relative($nesting, 'LEVELS').$join(", ")) + "; ") + ("" + (level.$inspect()) + " provided.")) - }; - if ($truthy(location)) { - } else { - self.$raise("Expected a location") - }; - self.level = level; - self.reason = reason; - self["arguments"] = ($truthy($a = arguments$) ? $a : $hash2([], {})).$dup().$freeze(); - self.location = location; - self.highlights = highlights.$dup().$freeze(); - return self.$freeze(); - }, TMP_Diagnostic_initialize_1.$$arity = -5); - - Opal.defn(self, '$message', TMP_Diagnostic_message_2 = function $$message() { - var self = this; + Opal.def(self, '$advance_comment', $Associator_advance_comment$14 = function $$advance_comment() { + var self = this; - return Opal.const_get_relative($nesting, 'MESSAGES')['$[]'](self.reason)['$%'](self["arguments"]) - }, TMP_Diagnostic_message_2.$$arity = 0); - - Opal.defn(self, '$render', TMP_Diagnostic_render_3 = function $$render() { - var $a, $b, self = this, first_line = nil, last_line = nil, num_lines = nil, buffer = nil, last_lineno = nil, last_column = nil; + + self.comment_num = $rb_plus(self.comment_num, 1); + return (self.current_comment = self.comments['$[]'](self.comment_num)); + }, $Associator_advance_comment$14.$$arity = 0); + + Opal.def(self, '$current_comment_before?', $Associator_current_comment_before$ques$15 = function(node) { + var self = this, comment_loc = nil, node_loc = nil; - if ($truthy(($truthy($a = self.location.$line()['$=='](self.location.$last_line())) ? $a : self.location['$is?']("\n")))) { - return $rb_plus(["" + (self.location) + ": " + (self.level) + ": " + (self.$message())], self.$render_line(self.location)) - } else { - first_line = self.$first_line_only(self.location); - last_line = self.$last_line_only(self.location); - num_lines = $rb_plus($rb_minus(self.location.$last_line(), self.location.$line()), 1); - buffer = self.location.$source_buffer(); - $b = buffer.$decompose_position(self.location.$end_pos()), $a = Opal.to_ary($b), (last_lineno = ($a[0] == null ? nil : $a[0])), (last_column = ($a[1] == null ? nil : $a[1])), $b; - return $rb_plus($rb_plus(["" + (self.location) + "-" + (last_lineno) + ":" + (last_column) + ": " + (self.level) + ": " + (self.$message())], self.$render_line(first_line, $rb_gt(num_lines, 2), false)), self.$render_line(last_line, false, true)); - } - }, TMP_Diagnostic_render_3.$$arity = 0); - self.$private(); - - Opal.defn(self, '$render_line', TMP_Diagnostic_render_line_6 = function $$render_line(range, ellipsis, range_end) { - var TMP_4, $a, TMP_5, self = this, source_line = nil, highlight_line = nil, $writer = nil; + if ($truthy(self.current_comment['$!']())) { + return false}; + comment_loc = self.current_comment.$location().$expression(); + node_loc = node.$location().$expression(); + return $rb_le(comment_loc.$end_pos(), node_loc.$begin_pos()); + }, $Associator_current_comment_before$ques$15.$$arity = 1); + + Opal.def(self, '$current_comment_before_end?', $Associator_current_comment_before_end$ques$16 = function(node) { + var self = this, comment_loc = nil, node_loc = nil; - if (ellipsis == null) { - ellipsis = false; - } - if (range_end == null) { - range_end = false; - } + + if ($truthy(self.current_comment['$!']())) { + return false}; + comment_loc = self.current_comment.$location().$expression(); + node_loc = node.$location().$expression(); + return $rb_le(comment_loc.$end_pos(), node_loc.$end_pos()); + }, $Associator_current_comment_before_end$ques$16.$$arity = 1); - source_line = range.$source_line(); - highlight_line = $rb_times(" ", source_line.$length()); - $send(self.highlights, 'each', [], (TMP_4 = function(highlight){var self = TMP_4.$$s || this, line_range = nil, $writer = nil; -if (highlight == null) highlight = nil; + Opal.def(self, '$current_comment_decorates?', $Associator_current_comment_decorates$ques$17 = function(node) { + var self = this; + + + if ($truthy(self.current_comment['$!']())) { + return false}; + return self.current_comment.$location().$line()['$=='](node.$location().$last_line()); + }, $Associator_current_comment_decorates$ques$17.$$arity = 1); - line_range = range.$source_buffer().$line_range(range.$line()); - if ($truthy((highlight = highlight.$intersect(line_range)))) { - - $writer = [highlight.$column_range(), $rb_times("~", highlight.$size())]; - $send(highlight_line, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - } else { - return nil - };}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); - if ($truthy(range['$is?']("\n"))) { - highlight_line = $rb_plus(highlight_line, "^") - } else if ($truthy(($truthy($a = range_end['$!']()) ? $rb_ge(range.$size(), 1) : $a))) { + Opal.def(self, '$associate_and_advance_comment', $Associator_associate_and_advance_comment$18 = function $$associate_and_advance_comment(node) { + var self = this, key = nil; + - $writer = [range.$column_range(), $rb_plus("^", $rb_times("~", $rb_minus(range.$size(), 1)))]; - $send(highlight_line, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)]; + key = (function() {if (self.map_using['$==']("location")) { + return node.$location() } else { - - $writer = [range.$column_range(), $rb_times("~", range.$size())]; - $send(highlight_line, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)]; - }; - if ($truthy(ellipsis)) { - highlight_line = $rb_plus(highlight_line, "...")}; - return $send([source_line, highlight_line], 'map', [], (TMP_5 = function(line){var self = TMP_5.$$s || this; -if (line == null) line = nil; - return "" + (range.$source_buffer().$name()) + ":" + (range.$line()) + ": " + (line)}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); - }, TMP_Diagnostic_render_line_6.$$arity = -2); - - Opal.defn(self, '$first_line_only', TMP_Diagnostic_first_line_only_7 = function $$first_line_only(range) { - var self = this; + return node + }; return nil; })(); + self.mapping['$[]'](key)['$<<'](self.current_comment); + return self.$advance_comment(); + }, $Associator_associate_and_advance_comment$18.$$arity = 1); + Opal.const_set($nesting[0], 'MAGIC_COMMENT_RE', /^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/); + return (Opal.def(self, '$advance_through_directives', $Associator_advance_through_directives$19 = function $$advance_through_directives() { + var self = this, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil; - if ($truthy(range.$line()['$!='](range.$last_line()))) { - return range.$resize(range.$source()['$=~'](/\n/)) + + if ($truthy((function() {if ($truthy(($ret_or_4 = self.current_comment))) { + return self.current_comment.$text()['$start_with?']("#!".$freeze()) } else { - return range - } - }, TMP_Diagnostic_first_line_only_7.$$arity = 1); - return (Opal.defn(self, '$last_line_only', TMP_Diagnostic_last_line_only_8 = function $$last_line_only(range) { - var self = this; - - if ($truthy(range.$line()['$!='](range.$last_line()))) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Range').$new(range.$source_buffer(), $rb_plus(range.$begin_pos(), range.$source()['$=~'](/[^\n]*$/)), range.$end_pos()) + return $ret_or_4 + }; return nil; })())) { + self.$advance_comment()}; + if ($truthy((function() {if ($truthy(($ret_or_5 = self.current_comment))) { + return self.current_comment.$text()['$=~']($$($nesting, 'MAGIC_COMMENT_RE')) } else { - return range - } - }, TMP_Diagnostic_last_line_only_8.$$arity = 1), nil) && 'last_line_only'; - })($nesting[0], null, $nesting) + return $ret_or_5 + }; return nil; })())) { + self.$advance_comment()}; + if ($truthy((function() {if ($truthy(($ret_or_6 = self.current_comment))) { + return self.current_comment.$text()['$=~']($$$($$($nesting, 'Buffer'), 'ENCODING_RE')) + } else { + return $ret_or_6 + }; return nil; })())) { + return self.$advance_comment() + } else { + return nil + }; + }, $Associator_advance_through_directives$19.$$arity = 0), nil) && 'advance_through_directives'; + })($$($nesting, 'Comment'), null, $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/diagnostic/engine"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["parser/source/rewriter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_ge(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); + } + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $hash2 = Opal.hash2; - Opal.add_stubs(['$attr_accessor', '$ignore?', '$call', '$raise?', '$raise', '$protected', '$==', '$level']); + Opal.add_stubs(['$attr_reader', '$warn_of_deprecation', '$class', '$new', '$lambda', '$puts', '$render', '$consumer=', '$-', '$append', '$freeze', '$begin', '$end', '$+', '$in_transaction?', '$raise', '$dup', '$source', '$each', '$sort', '$begin_pos', '$range', '$length', '$replacement', '$[]=', '$private', '$empty?', '$!', '$allow_multiple_insertions?', '$clobbered_insertion?', '$raise_clobber_error', '$record_insertion', '$adjacent_updates?', '$find', '$overlaps?', '$replace_compatible_with_insertion?', '$merge_actions!', '$<<', '$active_queue', '$adjacent_insertions?', '$merge_actions', '$delete', '$can_merge?', '$record_replace', '$|', '$active_insertions', '$active_insertions=', '$active_clobber', '$clobbered_position_mask', '$active_clobber=', '$size', '$!=', '$&', '$<=', '$end_pos', '$adjacent_insertion_mask', '$select', '$adjacent?', '$adjacent_position_mask', '$>=', '$==', '$[]', '$all?', '$intersect', '$nil?', '$max', '$sort_by', '$push', '$join', '$first', '$max_by', '$merge_replacements', '$replace_actions', '$disjoint?', '$<', '$process', '$extend']); return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Engine(){}; - var self = $Engine = $klass($base, $super, 'Engine', $Engine); + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Engine_initialize_1, TMP_Engine_process_2, TMP_Engine_ignore$q_3, TMP_Engine_raise$q_4; + var $nesting = [self].concat($parent_nesting); - def.consumer = def.ignore_warnings = def.all_errors_are_fatal = nil; - - self.$attr_accessor("consumer"); - self.$attr_accessor("all_errors_are_fatal"); - self.$attr_accessor("ignore_warnings"); - - Opal.defn(self, '$initialize', TMP_Engine_initialize_1 = function $$initialize(consumer) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Rewriter'); - if (consumer == null) { - consumer = nil; - } - - self.consumer = consumer; - self.all_errors_are_fatal = false; - return (self.ignore_warnings = false); - }, TMP_Engine_initialize_1.$$arity = -1); - - Opal.defn(self, '$process', TMP_Engine_process_2 = function $$process(diagnostic) { - var self = this; + var $nesting = [self].concat($parent_nesting), $Rewriter_initialize$1, $Rewriter_remove$3, $Rewriter_insert_before$4, $Rewriter_wrap$5, $Rewriter_insert_before_multi$6, $Rewriter_insert_after$7, $Rewriter_insert_after_multi$8, $Rewriter_replace$9, $Rewriter_process$10, $Rewriter_transaction$12, $Rewriter_append$13, $Rewriter_record_insertion$16, $Rewriter_record_replace$17, $Rewriter_clobbered_position_mask$18, $Rewriter_adjacent_position_mask$19, $Rewriter_adjacent_insertion_mask$20, $Rewriter_clobbered_insertion$ques$21, $Rewriter_adjacent_insertions$ques$23, $Rewriter_adjacent_updates$ques$25, $Rewriter_replace_compatible_with_insertion$ques$27, $Rewriter_can_merge$ques$28, $Rewriter_merge_actions$30, $Rewriter_merge_actions$excl$33, $Rewriter_merge_replacements$34, $Rewriter_replace_actions$36, $Rewriter_raise_clobber_error$38, $Rewriter_in_transaction$ques$39, $Rewriter_active_queue$40, $Rewriter_active_clobber$41, $Rewriter_active_insertions$42, $Rewriter_active_clobber$eq$43, $Rewriter_active_insertions$eq$44, $Rewriter_adjacent$ques$45; + self.$$prototype.diagnostics = self.$$prototype.insert_before_multi_order = self.$$prototype.insert_after_multi_order = self.$$prototype.source_buffer = self.$$prototype.queue = self.$$prototype.clobber = self.$$prototype.insertions = self.$$prototype.pending_queue = self.$$prototype.pending_clobber = self.$$prototype.pending_insertions = nil; - if ($truthy(self['$ignore?'](diagnostic))) { - } else if ($truthy(self.consumer)) { - self.consumer.$call(diagnostic)}; - if ($truthy(self['$raise?'](diagnostic))) { - self.$raise(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'SyntaxError'), diagnostic)}; - return self; - }, TMP_Engine_process_2.$$arity = 1); - self.$protected(); - - Opal.defn(self, '$ignore?', TMP_Engine_ignore$q_3 = function(diagnostic) { - var $a, self = this; - - return ($truthy($a = self.ignore_warnings) ? diagnostic.$level()['$==']("warning") : $a) - }, TMP_Engine_ignore$q_3.$$arity = 1); - return (Opal.defn(self, '$raise?', TMP_Engine_raise$q_4 = function(diagnostic) { - var $a, $b, self = this; - - return ($truthy($a = ($truthy($b = self.all_errors_are_fatal) ? diagnostic.$level()['$==']("error") : $b)) ? $a : diagnostic.$level()['$==']("fatal")) - }, TMP_Engine_raise$q_4.$$arity = 1), nil) && 'raise?'; - })(Opal.const_get_relative($nesting, 'Diagnostic'), null, $nesting) - })($nesting[0], $nesting) -}; + self.$attr_reader("source_buffer"); + self.$attr_reader("diagnostics"); + + Opal.def(self, '$initialize', $Rewriter_initialize$1 = function $$initialize(source_buffer) { + var $$2, self = this, $writer = nil; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/static_environment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; + + self.$class().$warn_of_deprecation(); + self.diagnostics = $$$($$($nesting, 'Diagnostic'), 'Engine').$new(); + + $writer = [$send(self, 'lambda', [], ($$2 = function(diag){var self = $$2.$$s == null ? this : $$2.$$s; + if ($gvars.stderr == null) $gvars.stderr = nil; - Opal.add_stubs(['$reset', '$[]', '$push', '$dup', '$pop', '$add', '$to_sym', '$include?']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + + + if (diag == null) { + diag = nil; + }; + return $gvars.stderr.$puts(diag.$render());}, $$2.$$s = self, $$2.$$arity = 1, $$2))]; + $send(self.diagnostics, 'consumer=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.source_buffer = source_buffer; + self.queue = []; + self.clobber = 0; + self.insertions = 0; + self.insert_before_multi_order = 0; + self.insert_after_multi_order = 0; + self.pending_queue = nil; + self.pending_clobber = nil; + return (self.pending_insertions = nil); + }, $Rewriter_initialize$1.$$arity = 1); + + Opal.def(self, '$remove', $Rewriter_remove$3 = function $$remove(range) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range, "".$freeze())) + }, $Rewriter_remove$3.$$arity = 1); + + Opal.def(self, '$insert_before', $Rewriter_insert_before$4 = function $$insert_before(range, content) { + var self = this; - (function($base, $super, $parent_nesting) { - function $StaticEnvironment(){}; - var self = $StaticEnvironment = $klass($base, $super, 'StaticEnvironment', $StaticEnvironment); + return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$begin(), content)) + }, $Rewriter_insert_before$4.$$arity = 2); + + Opal.def(self, '$wrap', $Rewriter_wrap$5 = function $$wrap(range, before, after) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_StaticEnvironment_initialize_1, TMP_StaticEnvironment_reset_2, TMP_StaticEnvironment_extend_static_3, TMP_StaticEnvironment_extend_dynamic_4, TMP_StaticEnvironment_unextend_5, TMP_StaticEnvironment_declare_6, TMP_StaticEnvironment_declared$q_7; + + self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$begin(), before)); + return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$end(), after)); + }, $Rewriter_wrap$5.$$arity = 3); + + Opal.def(self, '$insert_before_multi', $Rewriter_insert_before_multi$6 = function $$insert_before_multi(range, content) { + var self = this; - def.stack = def.variables = nil; - - - Opal.defn(self, '$initialize', TMP_StaticEnvironment_initialize_1 = function $$initialize() { - var self = this; + + self.insert_before_multi_order = $rb_minus(self.insert_before_multi_order, 1); + return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$begin(), content, true, self.insert_before_multi_order)); + }, $Rewriter_insert_before_multi$6.$$arity = 2); + + Opal.def(self, '$insert_after', $Rewriter_insert_after$7 = function $$insert_after(range, content) { + var self = this; - return self.$reset() - }, TMP_StaticEnvironment_initialize_1.$$arity = 0); - - Opal.defn(self, '$reset', TMP_StaticEnvironment_reset_2 = function $$reset() { - var self = this; + return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$end(), content)) + }, $Rewriter_insert_after$7.$$arity = 2); + + Opal.def(self, '$insert_after_multi', $Rewriter_insert_after_multi$8 = function $$insert_after_multi(range, content) { + var self = this; + + self.insert_after_multi_order = $rb_plus(self.insert_after_multi_order, 1); + return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range.$end(), content, true, self.insert_after_multi_order)); + }, $Rewriter_insert_after_multi$8.$$arity = 2); - self.variables = Opal.const_get_relative($nesting, 'Set')['$[]'](); - return (self.stack = []); - }, TMP_StaticEnvironment_reset_2.$$arity = 0); - - Opal.defn(self, '$extend_static', TMP_StaticEnvironment_extend_static_3 = function $$extend_static() { - var self = this; + Opal.def(self, '$replace', $Rewriter_replace$9 = function $$replace(range, content) { + var self = this; + return self.$append($$$($$($nesting, 'Rewriter'), 'Action').$new(range, content)) + }, $Rewriter_replace$9.$$arity = 2); - self.stack.$push(self.variables); - self.variables = Opal.const_get_relative($nesting, 'Set')['$[]'](); - return self; - }, TMP_StaticEnvironment_extend_static_3.$$arity = 0); - - Opal.defn(self, '$extend_dynamic', TMP_StaticEnvironment_extend_dynamic_4 = function $$extend_dynamic() { - var self = this; + Opal.def(self, '$process', $Rewriter_process$10 = function $$process() { + var $$11, self = this, adjustment = nil, source = nil; - - self.stack.$push(self.variables); - self.variables = self.variables.$dup(); - return self; - }, TMP_StaticEnvironment_extend_dynamic_4.$$arity = 0); - - Opal.defn(self, '$unextend', TMP_StaticEnvironment_unextend_5 = function $$unextend() { - var self = this; + + if ($truthy(self['$in_transaction?']())) { + self.$raise("" + "Do not call " + (self.$class()) + "#" + ("process") + " inside a transaction")}; + adjustment = 0; + source = self.source_buffer.$source().$dup(); + $send(self.queue.$sort(), 'each', [], ($$11 = function(action){var self = $$11.$$s == null ? this : $$11.$$s, begin_pos = nil, end_pos = nil, $writer = nil; + + + if (action == null) { + action = nil; + }; + begin_pos = $rb_plus(action.$range().$begin_pos(), adjustment); + end_pos = $rb_plus(begin_pos, action.$range().$length()); + + $writer = [Opal.Range.$new(begin_pos,end_pos, true), action.$replacement()]; + $send(source, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return (adjustment = $rb_plus(adjustment, $rb_minus(action.$replacement().$length(), action.$range().$length())));}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + return source; + }, $Rewriter_process$10.$$arity = 0); - self.variables = self.stack.$pop(); - return self; - }, TMP_StaticEnvironment_unextend_5.$$arity = 0); - - Opal.defn(self, '$declare', TMP_StaticEnvironment_declare_6 = function $$declare(name) { - var self = this; + Opal.def(self, '$transaction', $Rewriter_transaction$12 = function $$transaction() { + var $iter = $Rewriter_transaction$12.$$p, $yield = $iter || nil, self = this; + if ($iter) $Rewriter_transaction$12.$$p = null; + return (function() { try { + + if (($yield !== nil)) { + } else { + self.$raise("" + (self.$class()) + "#" + ("transaction") + " requires block") + }; + if ($truthy(self['$in_transaction?']())) { + self.$raise("Nested transaction is not supported")}; + self.pending_queue = self.queue.$dup(); + self.pending_clobber = self.clobber; + self.pending_insertions = self.insertions; + Opal.yieldX($yield, []); + self.queue = self.pending_queue; + self.clobber = self.pending_clobber; + self.insertions = self.pending_insertions; + return self; + } finally { + ((self.pending_queue = nil), (self.pending_clobber = nil), (self.pending_insertions = nil)) + }; })() + }, $Rewriter_transaction$12.$$arity = 0); + self.$private(); - self.variables.$add(name.$to_sym()); - return self; - }, TMP_StaticEnvironment_declare_6.$$arity = 1); - return (Opal.defn(self, '$declared?', TMP_StaticEnvironment_declared$q_7 = function(name) { - var self = this; + Opal.def(self, '$append', $Rewriter_append$13 = function $$append(action) { + var $$14, $$15, self = this, range = nil, $ret_or_1 = nil, conflicting = nil, adjacent = nil, insertions = nil; - return self.variables['$include?'](name.$to_sym()) - }, TMP_StaticEnvironment_declared$q_7.$$arity = 1), nil) && 'declared?'; - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) -}; + + range = action.$range(); + if ($truthy(range['$empty?']())) { + + if ($truthy(action.$replacement()['$empty?']())) { + return self}; + if ($truthy((function() {if ($truthy(($ret_or_1 = action['$allow_multiple_insertions?']()['$!']()))) { + + return (conflicting = self['$clobbered_insertion?'](range)); + } else { + return $ret_or_1 + }; return nil; })())) { + self.$raise_clobber_error(action, [conflicting])}; + self.$record_insertion(range); + if ($truthy((adjacent = self['$adjacent_updates?'](range)))) { + + conflicting = $send(adjacent, 'find', [], ($$14 = function(a){var self = $$14.$$s == null ? this : $$14.$$s, $ret_or_2 = nil; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/lexer"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash = Opal.hash, $truthy = Opal.truthy, $hash2 = Opal.hash2, $range = Opal.range, $gvars = Opal.gvars; + + + if (a == null) { + a = nil; + }; + if ($truthy(($ret_or_2 = a.$range()['$overlaps?'](range)))) { + return self['$replace_compatible_with_insertion?'](a, action)['$!']() + } else { + return $ret_or_2 + };}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + if ($truthy(conflicting)) { + self.$raise_clobber_error(action, [conflicting])}; + self['$merge_actions!'](action, adjacent); + } else { + self.$active_queue()['$<<'](action) + }; + } else { + + if ($truthy((insertions = self['$adjacent_insertions?'](range)))) { + $send(insertions, 'each', [], ($$15 = function(insertion){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_3 = nil; - Opal.add_stubs(['$attr_accessor', '$private', '$_lex_trans_keys=', '$-', '$_lex_key_spans=', '$_lex_index_offsets=', '$_lex_indicies=', '$_lex_trans_targs=', '$_lex_trans_actions=', '$_lex_to_state_actions=', '$_lex_from_state_actions=', '$_lex_eof_trans=', '$lex_start=', '$lex_error=', '$lex_en_interp_words=', '$lex_en_interp_string=', '$lex_en_plain_words=', '$lex_en_plain_string=', '$lex_en_interp_backslash_delimited=', '$lex_en_plain_backslash_delimited=', '$lex_en_interp_backslash_delimited_words=', '$lex_en_plain_backslash_delimited_words=', '$lex_en_regexp_modifiers=', '$lex_en_expr_variable=', '$lex_en_expr_fname=', '$lex_en_expr_endfn=', '$lex_en_expr_dot=', '$lex_en_expr_arg=', '$lex_en_expr_cmdarg=', '$lex_en_expr_endarg=', '$lex_en_expr_mid=', '$lex_en_expr_beg=', '$lex_en_expr_labelarg=', '$lex_en_expr_value=', '$lex_en_expr_end=', '$lex_en_leading_dot=', '$lex_en_line_comment=', '$lex_en_line_begin=', '$freeze', '$ord', '$union', '$chars', '$attr_reader', '$reset', '$lex_en_line_begin', '$class', '$new', '$source', '$==', '$encoding', '$unpack', '$[]', '$lex_en_expr_dot', '$lex_en_expr_fname', '$lex_en_expr_value', '$lex_en_expr_beg', '$lex_en_expr_mid', '$lex_en_expr_arg', '$lex_en_expr_cmdarg', '$lex_en_expr_end', '$lex_en_expr_endarg', '$lex_en_expr_endfn', '$lex_en_expr_labelarg', '$lex_en_interp_string', '$lex_en_interp_words', '$lex_en_plain_string', '$fetch', '$invert', '$push', '$count', '$pop', '$any?', '$shift', '$send', '$+', '$size', '$<=', '$===', '$<<', '$>', '$!=', '$emit_comment', '$literal', '$flush_string', '$extend_content', '$emit', '$heredoc?', '$saved_herebody_s=', '$start_interp_brace', '$[]=', '$diagnostic', '$range', '$str_s', '$gsub', '$tok', '$version?', '$nest_and_try_closing', '$heredoc_e', '$pop_literal', '$infer_indent_level', '$words?', '$!', '$eof_codepoint?', '$extend_space', '$extend_string', '$>=', '$active?', '$slice', '$chr', '$munge_escape?', '$regexp?', '$match', '$scan', '$join', '$=~', '$to_i', '$stack_pop', '$emit_table', '$push_literal', '$arg_or_cmdarg', '$emit_do', '$start_with?', '$nil?', '$declared?', '$force_encoding', '$dup', '$lexpop', '$include?', '$inspect', '$last', '$end_with?', '$empty?', '$index', '$call', '$to_f', '$Float', '$length', '$lambda', '$Rational', '$Complex', '$each', '$split', '$encode_escape', '$%', '$end_interp_brace_and_try_closing', '$saved_herebody_s', '$&', '$|', '$lex_error', '$protected', '$process', '$backslash_delimited?', '$interpolate?', '$lex_en_interp_backslash_delimited_words', '$lex_en_plain_backslash_delimited_words', '$lex_en_plain_words', '$lex_en_interp_backslash_delimited', '$lex_en_plain_backslash_delimited', '$dedent_level', '$type', '$lex_en_regexp_modifiers', '$upcase']); - return (function($base, $super, $parent_nesting) { - function $Lexer(){}; - var self = $Lexer = $klass($base, $super, 'Lexer', $Lexer); + + + if (insertion == null) { + insertion = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_3 = range['$overlaps?'](insertion.$range())))) { + return self['$replace_compatible_with_insertion?'](action, insertion)['$!']() + } else { + return $ret_or_3 + }; return nil; })())) { + return self.$raise_clobber_error(action, [insertion]) + } else { + + action = self.$merge_actions(action, [insertion]); + return self.$active_queue().$delete(insertion); + };}, $$15.$$s = self, $$15.$$arity = 1, $$15))}; + if ($truthy((adjacent = self['$adjacent_updates?'](range)))) { + if ($truthy(self['$can_merge?'](action, adjacent))) { + + self.$record_replace(range); + self['$merge_actions!'](action, adjacent); + } else { + self.$raise_clobber_error(action, adjacent) + } + } else { + + self.$record_replace(range); + self.$active_queue()['$<<'](action); + }; + }; + return self; + }, $Rewriter_append$13.$$arity = 1); + + Opal.def(self, '$record_insertion', $Rewriter_record_insertion$16 = function $$record_insertion(range) { + var self = this, $writer = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Lexer_initialize_1, TMP_Lexer_reset_2, TMP_Lexer_source_buffer$eq_3, TMP_Lexer_encoding_4, TMP_Lexer_state_5, TMP_Lexer_state$eq_6, TMP_Lexer_push_cmdarg_7, TMP_Lexer_pop_cmdarg_8, TMP_Lexer_push_cond_9, TMP_Lexer_pop_cond_10, TMP_Lexer_dedent_level_11, TMP_Lexer_advance_36, TMP_Lexer_eof_codepoint$q_37, TMP_Lexer_version$q_38, TMP_Lexer_stack_pop_39, $a, TMP_Lexer_encode_escape_40, TMP_Lexer_encode_escape_41, TMP_Lexer_tok_42, TMP_Lexer_range_43, TMP_Lexer_emit_44, TMP_Lexer_emit_table_45, TMP_Lexer_emit_do_46, TMP_Lexer_arg_or_cmdarg_47, TMP_Lexer_emit_comment_48, TMP_Lexer_diagnostic_49, TMP_Lexer_push_literal_50, TMP_Lexer_literal_51, TMP_Lexer_pop_literal_52, TMP_Lexer_53, $writer = nil; + + $writer = [self.$active_insertions()['$|']((1)['$<<'](range.$begin_pos()))]; + $send(self, 'active_insertions=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }, $Rewriter_record_insertion$16.$$arity = 1); + + Opal.def(self, '$record_replace', $Rewriter_record_replace$17 = function $$record_replace(range) { + var self = this, $writer = nil; - def.source_buffer = def.source_pts = def.cs = def.cmdarg_stack = def.cmdarg = def.cond_stack = def.cond = def.dedent_level = def.token_queue = def.p = def.herebody_s = def.sharp_s = def.ts = def.top = def.stack = def.te = def.version = def.escape_s = def.escape = def.act = def.static_env = def.lambda_stack = def.paren_nest = def.num_digits_s = def.num_suffix_s = def.num_base = def.num_xfrm = def.newline_s = def.eq_begin_s = def.in_kwarg = def.tokens = def.command_state = def.comments = def.diagnostics = def.literal_stack = nil; - - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + $writer = [self.$active_clobber()['$|'](self.$clobbered_position_mask(range))]; + $send(self, 'active_clobber=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }, $Rewriter_record_replace$17.$$arity = 1); + + Opal.def(self, '$clobbered_position_mask', $Rewriter_clobbered_position_mask$18 = function $$clobbered_position_mask(range) { + var self = this; - - self.$attr_accessor("_lex_trans_keys"); - return self.$private("_lex_trans_keys", "_lex_trans_keys="); - })(Opal.get_singleton_class(self), $nesting); - - $writer = [[0, 0, 101, 101, 103, 103, 105, 105, 110, 110, 69, 69, 78, 78, 68, 68, 95, 95, 95, 95, 0, 26, 0, 127, 0, 127, 0, 127, 0, 127, 0, 45, 0, 77, 0, 77, 0, 92, 0, 26, 0, 26, 0, 45, 0, 99, 0, 26, 67, 99, 45, 45, 0, 92, 0, 77, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 45, 0, 77, 0, 77, 0, 92, 0, 26, 0, 26, 0, 45, 0, 99, 0, 26, 67, 99, 45, 45, 0, 92, 0, 77, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 26, 0, 127, 58, 58, 58, 58, 0, 127, 58, 58, 60, 60, 62, 62, 10, 10, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 115, 115, 99, 99, 117, 117, 101, 101, 108, 116, 101, 101, 115, 115, 115, 115, 105, 105, 108, 108, 105, 105, 108, 108, 58, 58, 0, 127, 10, 10, 0, 127, 58, 58, 98, 98, 101, 101, 103, 103, 105, 105, 110, 110, 0, 122, 61, 61, 0, 127, 0, 127, 61, 126, 0, 127, 0, 127, 93, 93, 0, 127, 0, 127, 10, 10, 10, 34, 10, 10, 10, 39, 0, 127, 10, 96, 0, 45, 0, 77, 0, 77, 0, 92, 0, 26, 0, 26, 0, 45, 0, 99, 0, 26, 67, 99, 45, 45, 0, 92, 0, 77, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 58, 58, 58, 0, 127, 43, 57, 48, 57, 48, 57, 48, 57, 48, 57, 0, 127, 58, 58, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 60, 60, 10, 10, 9, 46, 46, 46, 0, 95, 9, 32, 0, 0, 10, 10, 10, 10, 98, 98, 9, 32, 10, 10, 95, 95, 0, 92, 9, 32, 36, 123, 0, 127, 48, 57, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 0, 45, 10, 10, 0, 92, 0, 123, 0, 26, 0, 26, 0, 26, 0, 0, 0, 102, 0, 102, 0, 102, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 26, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 48, 102, 0, 0, 0, 92, 36, 123, 0, 127, 48, 57, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 0, 45, 10, 10, 0, 92, 0, 123, 0, 26, 0, 26, 0, 26, 0, 0, 0, 102, 0, 102, 0, 102, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 26, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 48, 102, 0, 0, 0, 92, 9, 32, 0, 26, 0, 92, 0, 26, 0, 35, 36, 123, 0, 127, 48, 57, 0, 26, 0, 35, 9, 32, 36, 123, 0, 127, 48, 57, 0, 32, 9, 32, 65, 122, 65, 122, 36, 64, 0, 127, 48, 57, 0, 127, 0, 127, 0, 127, 0, 127, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 0, 127, 0, 127, 48, 57, 115, 115, 38, 38, 42, 42, 64, 64, 58, 58, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 93, 93, 10, 10, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 124, 124, 0, 127, 0, 127, 9, 32, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 61, 61, 0, 0, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 38, 38, 42, 42, 64, 64, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 93, 93, 10, 10, 124, 124, 0, 126, 0, 127, 0, 61, 9, 61, 9, 61, 0, 0, 9, 61, 9, 62, 46, 46, 46, 46, 58, 58, 9, 32, 0, 0, 0, 127, 0, 0, 9, 124, 0, 0, 10, 10, 10, 10, 0, 0, 9, 61, 58, 58, 60, 60, 62, 62, 9, 32, 10, 10, 0, 127, 102, 102, 101, 101, 110, 110, 104, 104, 0, 127, 0, 127, 0, 127, 0, 0, 0, 127, 10, 10, 0, 123, 9, 32, 10, 10, 10, 10, 10, 10, 0, 0, 111, 111, 0, 0, 0, 127, 0, 127, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 61, 0, 0, 61, 126, 61, 61, 0, 0, 0, 0, 0, 0, 9, 32, 61, 61, 9, 32, 61, 126, 10, 10, 10, 10, 65, 122, 0, 122, 38, 61, 0, 0, 42, 61, 61, 61, 48, 61, 48, 62, 46, 46, 46, 46, 0, 26, 0, 127, 0, 127, 61, 61, 0, 0, 61, 126, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 61, 126, 0, 127, 48, 57, 38, 38, 42, 42, 64, 64, 60, 61, 62, 62, 61, 61, 61, 62, 124, 124, 60, 61, 0, 0, 62, 62, 61, 126, 61, 62, 0, 122, 0, 0, 0, 127, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 0, 45, 10, 10, 0, 92, 0, 123, 0, 26, 0, 26, 0, 26, 0, 0, 0, 102, 0, 102, 0, 102, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 26, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 127, 0, 127, 0, 127, 0, 0, 10, 10, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 61, 126, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 61, 124, 0, 92, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 61, 61, 0, 0, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 0, 127, 0, 127, 48, 57, 61, 61, 38, 61, 0, 0, 0, 0, 42, 61, 61, 62, 46, 57, 46, 46, 48, 101, 48, 95, 46, 120, 48, 114, 43, 57, 48, 105, 0, 0, 105, 105, 0, 0, 48, 114, 48, 114, 48, 114, 48, 114, 105, 114, 0, 0, 105, 105, 0, 0, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 46, 114, 48, 114, 46, 114, 48, 114, 58, 58, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 0, 127, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 10, 10, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 9, 92, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 61, 124, 0, 0, 9, 46, 9, 46, 46, 46, 10, 61, 10, 10, 10, 101, 10, 110, 10, 100, 10, 10, 0]]; - $send(self, '_lex_trans_keys=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return $rb_minus((1)['$<<'](range.$size()), 1)['$<<'](range.$begin_pos()) + }, $Rewriter_clobbered_position_mask$18.$$arity = 1); + + Opal.def(self, '$adjacent_position_mask', $Rewriter_adjacent_position_mask$19 = function $$adjacent_position_mask(range) { + var self = this; - - self.$attr_accessor("_lex_key_spans"); - return self.$private("_lex_key_spans", "_lex_key_spans="); - })(Opal.get_singleton_class(self), $nesting); - - $writer = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27, 128, 128, 128, 128, 46, 78, 78, 93, 27, 27, 46, 100, 27, 33, 1, 93, 78, 103, 128, 128, 128, 128, 46, 78, 78, 93, 27, 27, 46, 100, 27, 33, 1, 93, 78, 103, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 27, 128, 1, 1, 128, 1, 1, 1, 1, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 128, 1, 128, 1, 1, 1, 1, 1, 1, 123, 1, 128, 128, 66, 128, 128, 1, 128, 128, 1, 25, 1, 30, 128, 87, 46, 78, 78, 93, 27, 27, 46, 100, 27, 33, 1, 93, 78, 103, 128, 128, 128, 128, 128, 128, 1, 1, 128, 15, 10, 10, 10, 10, 128, 1, 84, 84, 84, 84, 84, 84, 1, 1, 38, 1, 96, 24, 0, 1, 1, 1, 24, 1, 1, 93, 24, 88, 128, 10, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 46, 93, 93, 0, 0, 93, 46, 1, 93, 124, 27, 27, 27, 0, 103, 103, 103, 0, 126, 126, 126, 126, 126, 0, 126, 126, 0, 126, 27, 126, 126, 126, 126, 126, 126, 126, 126, 126, 0, 126, 0, 55, 0, 93, 88, 128, 10, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 46, 93, 93, 0, 0, 93, 46, 1, 93, 124, 27, 27, 27, 0, 103, 103, 103, 0, 126, 126, 126, 126, 126, 0, 126, 126, 0, 126, 27, 126, 126, 126, 126, 126, 126, 126, 126, 126, 0, 126, 0, 55, 0, 93, 24, 27, 93, 27, 36, 88, 128, 10, 27, 36, 24, 88, 128, 10, 33, 24, 58, 58, 29, 128, 10, 128, 128, 128, 128, 24, 0, 66, 1, 1, 128, 128, 10, 1, 1, 1, 1, 1, 2, 1, 66, 1, 2, 128, 128, 128, 128, 128, 128, 128, 1, 1, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 1, 128, 128, 24, 1, 1, 1, 0, 128, 128, 1, 0, 24, 0, 66, 1, 1, 1, 1, 1, 2, 1, 66, 1, 2, 128, 1, 1, 1, 127, 128, 62, 53, 53, 0, 53, 54, 1, 1, 1, 24, 0, 128, 0, 116, 0, 1, 1, 0, 53, 1, 1, 1, 24, 1, 128, 1, 1, 1, 1, 128, 128, 128, 0, 128, 1, 124, 24, 1, 1, 1, 0, 1, 0, 128, 128, 24, 0, 1, 1, 1, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 4, 0, 66, 1, 0, 0, 0, 24, 1, 24, 66, 1, 1, 58, 123, 24, 0, 20, 1, 14, 15, 1, 1, 27, 128, 128, 1, 0, 66, 2, 0, 0, 0, 0, 66, 128, 10, 1, 1, 1, 2, 1, 1, 2, 1, 2, 0, 1, 66, 2, 123, 0, 128, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 46, 93, 93, 0, 0, 93, 46, 1, 93, 124, 27, 27, 27, 0, 103, 103, 103, 0, 126, 126, 126, 126, 126, 0, 126, 126, 0, 126, 27, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 128, 128, 128, 0, 1, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 66, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 64, 93, 24, 0, 1, 1, 1, 0, 128, 128, 24, 0, 1, 1, 1, 0, 128, 128, 1, 0, 24, 0, 66, 1, 1, 128, 128, 10, 1, 24, 0, 0, 20, 2, 12, 1, 54, 48, 75, 67, 15, 58, 0, 1, 0, 67, 67, 67, 67, 10, 0, 1, 0, 67, 67, 67, 67, 67, 67, 67, 67, 69, 67, 69, 67, 1, 2, 1, 66, 1, 2, 128, 128, 0, 128, 128, 128, 128, 128, 128, 0, 1, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 84, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 64, 0, 38, 38, 1, 52, 1, 92, 101, 91, 1]]; - $send(self, '_lex_key_spans=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return $rb_minus((1)['$<<']($rb_plus(range.$size(), 2)), 1)['$<<']($rb_minus(range.$begin_pos(), 1)) + }, $Rewriter_adjacent_position_mask$19.$$arity = 1); + + Opal.def(self, '$adjacent_insertion_mask', $Rewriter_adjacent_insertion_mask$20 = function $$adjacent_insertion_mask(range) { + var self = this; - - self.$attr_accessor("_lex_index_offsets"); - return self.$private("_lex_index_offsets", "_lex_index_offsets="); - })(Opal.get_singleton_class(self), $nesting); - - $writer = [[0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 46, 175, 304, 433, 562, 609, 688, 767, 861, 889, 917, 964, 1065, 1093, 1127, 1129, 1223, 1302, 1406, 1535, 1664, 1793, 1922, 1969, 2048, 2127, 2221, 2249, 2277, 2324, 2425, 2453, 2487, 2489, 2583, 2662, 2766, 2895, 3024, 3153, 3282, 3411, 3540, 3669, 3798, 3927, 4056, 4185, 4314, 4443, 4471, 4600, 4602, 4604, 4733, 4735, 4737, 4739, 4741, 4870, 4999, 5128, 5257, 5386, 5515, 5644, 5773, 5902, 6031, 6160, 6289, 6418, 6547, 6676, 6805, 6934, 7063, 7065, 7067, 7069, 7071, 7081, 7083, 7085, 7087, 7089, 7091, 7093, 7095, 7097, 7226, 7228, 7357, 7359, 7361, 7363, 7365, 7367, 7369, 7493, 7495, 7624, 7753, 7820, 7949, 8078, 8080, 8209, 8338, 8340, 8366, 8368, 8399, 8528, 8616, 8663, 8742, 8821, 8915, 8943, 8971, 9018, 9119, 9147, 9181, 9183, 9277, 9356, 9460, 9589, 9718, 9847, 9976, 10105, 10234, 10236, 10238, 10367, 10383, 10394, 10405, 10416, 10427, 10556, 10558, 10643, 10728, 10813, 10898, 10983, 11068, 11070, 11072, 11111, 11113, 11210, 11235, 11236, 11238, 11240, 11242, 11267, 11269, 11271, 11365, 11390, 11479, 11608, 11619, 11741, 11742, 11743, 11752, 11761, 11762, 11763, 11857, 11858, 11859, 11860, 11954, 11956, 11957, 11958, 11959, 12053, 12100, 12194, 12288, 12289, 12290, 12384, 12431, 12433, 12527, 12652, 12680, 12708, 12736, 12737, 12841, 12945, 13049, 13050, 13177, 13304, 13431, 13558, 13685, 13686, 13813, 13940, 13941, 14068, 14096, 14223, 14350, 14477, 14604, 14731, 14858, 14985, 15112, 15239, 15240, 15367, 15368, 15424, 15425, 15519, 15608, 15737, 15748, 15870, 15871, 15872, 15881, 15890, 15891, 15892, 15986, 15987, 15988, 15989, 16083, 16085, 16086, 16087, 16088, 16182, 16229, 16323, 16417, 16418, 16419, 16513, 16560, 16562, 16656, 16781, 16809, 16837, 16865, 16866, 16970, 17074, 17178, 17179, 17306, 17433, 17560, 17687, 17814, 17815, 17942, 18069, 18070, 18197, 18225, 18352, 18479, 18606, 18733, 18860, 18987, 19114, 19241, 19368, 19369, 19496, 19497, 19553, 19554, 19648, 19673, 19701, 19795, 19823, 19860, 19949, 20078, 20089, 20117, 20154, 20179, 20268, 20397, 20408, 20442, 20467, 20526, 20585, 20615, 20744, 20755, 20884, 21013, 21142, 21271, 21296, 21297, 21364, 21366, 21368, 21497, 21626, 21637, 21639, 21641, 21643, 21645, 21647, 21650, 21652, 21719, 21721, 21724, 21853, 21982, 22111, 22240, 22369, 22498, 22627, 22629, 22631, 22760, 22889, 23018, 23147, 23276, 23405, 23534, 23663, 23792, 23921, 24050, 24179, 24308, 24437, 24566, 24695, 24824, 24953, 25082, 25211, 25340, 25469, 25598, 25727, 25856, 25985, 26114, 26243, 26372, 26501, 26630, 26759, 26888, 27017, 27146, 27275, 27404, 27533, 27662, 27791, 27920, 28049, 28178, 28307, 28436, 28565, 28694, 28823, 28952, 29081, 29210, 29339, 29468, 29597, 29726, 29855, 29984, 30113, 30242, 30371, 30500, 30629, 30758, 30887, 31016, 31145, 31274, 31403, 31532, 31661, 31790, 31919, 32048, 32177, 32306, 32435, 32564, 32693, 32822, 32951, 33080, 33209, 33338, 33340, 33469, 33598, 33623, 33625, 33627, 33629, 33630, 33759, 33888, 33890, 33891, 33916, 33917, 33984, 33986, 33988, 33990, 33992, 33994, 33997, 33999, 34066, 34068, 34071, 34200, 34202, 34204, 34206, 34334, 34463, 34526, 34580, 34634, 34635, 34689, 34744, 34746, 34748, 34750, 34775, 34776, 34905, 34906, 35023, 35024, 35026, 35028, 35029, 35083, 35085, 35087, 35089, 35114, 35116, 35245, 35247, 35249, 35251, 35253, 35382, 35511, 35640, 35641, 35770, 35772, 35897, 35922, 35924, 35926, 35928, 35929, 35931, 35932, 36061, 36190, 36215, 36216, 36218, 36220, 36222, 36223, 36352, 36481, 36610, 36739, 36868, 36997, 37126, 37255, 37384, 37513, 37642, 37771, 37900, 38029, 38158, 38287, 38416, 38545, 38550, 38551, 38618, 38620, 38621, 38622, 38623, 38648, 38650, 38675, 38742, 38744, 38746, 38805, 38929, 38954, 38955, 38976, 38978, 38993, 39009, 39011, 39013, 39041, 39170, 39299, 39301, 39302, 39369, 39372, 39373, 39374, 39375, 39376, 39443, 39572, 39583, 39585, 39587, 39589, 39592, 39594, 39596, 39599, 39601, 39604, 39605, 39607, 39674, 39677, 39801, 39802, 39931, 40060, 40182, 40183, 40184, 40193, 40202, 40203, 40204, 40298, 40299, 40300, 40301, 40395, 40397, 40398, 40399, 40400, 40494, 40541, 40635, 40729, 40730, 40731, 40825, 40872, 40874, 40968, 41093, 41121, 41149, 41177, 41178, 41282, 41386, 41490, 41491, 41618, 41745, 41872, 41999, 42126, 42127, 42254, 42381, 42382, 42509, 42537, 42664, 42791, 42918, 43045, 43172, 43299, 43426, 43553, 43680, 43807, 43934, 44061, 44188, 44315, 44316, 44317, 44373, 44374, 44503, 44632, 44761, 44762, 44764, 44765, 44894, 45023, 45152, 45281, 45410, 45539, 45668, 45797, 45926, 46055, 46184, 46313, 46442, 46571, 46700, 46829, 46958, 47087, 47216, 47345, 47474, 47603, 47732, 47861, 47990, 48119, 48248, 48377, 48506, 48635, 48764, 48893, 49022, 49151, 49280, 49409, 49538, 49667, 49796, 49925, 50054, 50183, 50312, 50441, 50570, 50699, 50828, 50957, 51086, 51215, 51344, 51473, 51602, 51731, 51860, 51989, 52118, 52247, 52376, 52505, 52572, 52701, 52830, 52959, 53088, 53217, 53346, 53475, 53604, 53733, 53862, 53991, 54120, 54249, 54378, 54507, 54636, 54765, 54894, 55023, 55152, 55281, 55410, 55539, 55668, 55797, 55798, 55863, 55957, 55982, 55983, 55985, 55987, 55989, 55990, 56119, 56248, 56273, 56274, 56276, 56278, 56280, 56281, 56410, 56539, 56541, 56542, 56567, 56568, 56635, 56637, 56639, 56768, 56897, 56908, 56910, 56935, 56936, 56937, 56958, 56961, 56974, 56976, 57031, 57080, 57156, 57224, 57240, 57299, 57300, 57302, 57303, 57371, 57439, 57507, 57575, 57586, 57587, 57589, 57590, 57658, 57726, 57794, 57862, 57930, 57998, 58066, 58134, 58204, 58272, 58342, 58410, 58412, 58415, 58417, 58484, 58486, 58489, 58618, 58747, 58748, 58877, 59006, 59135, 59264, 59393, 59522, 59523, 59525, 59526, 59655, 59784, 59913, 60042, 60171, 60300, 60429, 60558, 60687, 60816, 60945, 61074, 61203, 61332, 61461, 61590, 61719, 61848, 61977, 62106, 62235, 62364, 62493, 62622, 62751, 62880, 63009, 63138, 63267, 63396, 63525, 63654, 63783, 63912, 64041, 64170, 64299, 64384, 64513, 64642, 64771, 64900, 65029, 65158, 65287, 65416, 65545, 65674, 65803, 65932, 66061, 66190, 66319, 66448, 66577, 66706, 66835, 66964, 67093, 67222, 67351, 67480, 67609, 67738, 67867, 67996, 68125, 68254, 68383, 68512, 68641, 68770, 68899, 69028, 69157, 69286, 69415, 69544, 69673, 69802, 69931, 70060, 70189, 70318, 70447, 70576, 70705, 70834, 70963, 71092, 71221, 71350, 71479, 71608, 71737, 71866, 71995, 72124, 72253, 72382, 72511, 72640, 72769, 72770, 72835, 72836, 72875, 72914, 72916, 72969, 72971, 73064, 73166, 73258]]; - $send(self, '_lex_index_offsets=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return $rb_minus((1)['$<<']($rb_plus(range.$size(), 1)), 1)['$<<'](range.$begin_pos()) + }, $Rewriter_adjacent_insertion_mask$20.$$arity = 1); + + Opal.def(self, '$clobbered_insertion?', $Rewriter_clobbered_insertion$ques$21 = function(insertion) { + var $$22, self = this, insertion_pos = nil; - - self.$attr_accessor("_lex_indicies"); - return self.$private("_lex_indicies", "_lex_indicies="); - })(Opal.get_singleton_class(self), $nesting); - - $writer = [[1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 14, 12, 14, 12, 14, 14, 12, 12, 14, 14, 14, 15, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 14, 12, 12, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 14, 12, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 14, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 12, 14, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 17, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 13, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 13, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 13, 18, 19, 19, 19, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 19, 18, 21, 21, 21, 18, 21, 21, 21, 21, 21, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 18, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 23, 21, 18, 21, 21, 21, 18, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 18, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 24, 21, 18, 25, 25, 25, 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 18, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 27, 25, 18, 28, 28, 28, 18, 28, 28, 28, 28, 28, 29, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 18, 28, 18, 28, 28, 28, 18, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 18, 28, 18, 19, 19, 19, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 18, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 30, 19, 18, 31, 31, 31, 18, 31, 31, 31, 31, 31, 32, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 18, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 33, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 34, 31, 31, 31, 31, 31, 31, 35, 31, 18, 31, 31, 31, 18, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 18, 31, 36, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 37, 18, 37, 18, 18, 38, 38, 38, 18, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 18, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 40, 38, 18, 21, 21, 21, 18, 21, 21, 21, 21, 21, 22, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 18, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 24, 21, 18, 41, 41, 41, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 18, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, 42, 42, 42, 41, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 45, 45, 43, 45, 43, 45, 45, 43, 43, 45, 45, 45, 46, 45, 45, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 45, 45, 45, 45, 45, 45, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 45, 43, 43, 44, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 45, 43, 44, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 43, 43, 43, 43, 43, 43, 43, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 43, 43, 43, 43, 45, 43, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 43, 43, 43, 43, 43, 45, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 43, 43, 48, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 44, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 43, 44, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 43, 43, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 44, 43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 43, 43, 43, 43, 43, 44, 49, 50, 50, 50, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 50, 49, 52, 52, 52, 49, 52, 52, 52, 52, 52, 53, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 49, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 54, 52, 49, 52, 52, 52, 49, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 49, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 55, 52, 49, 56, 56, 56, 49, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 49, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 58, 56, 49, 59, 59, 59, 49, 59, 59, 59, 59, 59, 60, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 49, 59, 49, 59, 59, 59, 49, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 49, 59, 49, 50, 50, 50, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 49, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 61, 50, 49, 62, 62, 62, 49, 62, 62, 62, 62, 62, 63, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 49, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 64, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 65, 62, 62, 62, 62, 62, 62, 66, 62, 49, 62, 62, 62, 49, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 49, 62, 67, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 68, 49, 68, 49, 49, 69, 69, 69, 49, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 49, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 71, 69, 49, 52, 52, 52, 49, 52, 52, 52, 52, 52, 53, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 49, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 55, 52, 49, 72, 72, 72, 49, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 49, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 72, 73, 73, 73, 73, 73, 73, 72, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 76, 76, 74, 76, 74, 76, 76, 74, 74, 76, 76, 76, 77, 76, 76, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 76, 76, 76, 76, 76, 76, 76, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 74, 76, 74, 74, 75, 76, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 74, 74, 74, 76, 74, 75, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 74, 74, 74, 74, 74, 74, 74, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 74, 74, 74, 74, 76, 74, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 74, 74, 74, 74, 74, 76, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 79, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 75, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 75, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 75, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 75, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 82, 82, 80, 82, 80, 82, 82, 80, 80, 82, 82, 82, 83, 82, 82, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 82, 82, 82, 82, 82, 82, 82, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 82, 80, 80, 81, 82, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 82, 80, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 80, 80, 80, 80, 80, 80, 80, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 80, 80, 80, 80, 82, 80, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 82, 80, 80, 80, 80, 80, 82, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 85, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 81, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 81, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 80, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 81, 80, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 80, 80, 80, 80, 80, 81, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 87, 87, 88, 87, 88, 87, 87, 88, 88, 87, 87, 87, 89, 87, 87, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 87, 87, 87, 87, 87, 87, 87, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 88, 87, 88, 88, 86, 87, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 88, 88, 88, 87, 88, 86, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 88, 88, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 87, 88, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 88, 88, 88, 88, 88, 87, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 88, 88, 88, 88, 88, 88, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 88, 88, 88, 88, 91, 88, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 88, 88, 88, 88, 88, 91, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 88, 88, 88, 88, 88, 88, 88, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 88, 88, 88, 88, 93, 88, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 88, 88, 88, 88, 88, 93, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 94, 94, 94, 94, 94, 94, 94, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 94, 94, 94, 94, 95, 94, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 94, 94, 94, 94, 94, 95, 96, 97, 97, 97, 96, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 96, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 100, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 101, 98, 98, 98, 98, 100, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 99, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98, 99, 101, 98, 98, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 105, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 103, 103, 103, 103, 105, 103, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 103, 103, 103, 103, 104, 103, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 103, 103, 103, 103, 103, 104, 106, 103, 108, 107, 109, 107, 110, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 112, 107, 112, 112, 112, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 112, 107, 107, 107, 107, 113, 114, 107, 115, 107, 116, 117, 118, 119, 120, 113, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 121, 107, 122, 118, 123, 124, 107, 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, 125, 126, 118, 127, 111, 107, 111, 111, 111, 111, 111, 111, 111, 111, 128, 111, 111, 111, 111, 111, 111, 111, 111, 129, 111, 111, 130, 111, 131, 111, 111, 111, 132, 133, 107, 127, 107, 111, 107, 107, 107, 107, 107, 107, 107, 107, 107, 134, 107, 134, 134, 134, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 134, 107, 107, 107, 107, 135, 136, 107, 137, 107, 138, 139, 140, 141, 142, 135, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 143, 107, 144, 140, 145, 146, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 147, 148, 140, 109, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 149, 104, 104, 104, 104, 104, 104, 104, 104, 150, 104, 104, 151, 104, 152, 104, 104, 104, 153, 154, 107, 109, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 155, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 156, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 157, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 158, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 159, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 155, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 160, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 161, 104, 104, 104, 104, 104, 104, 104, 162, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 163, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 164, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 155, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 165, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 155, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 166, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 167, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 105, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 107, 107, 107, 107, 105, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 104, 107, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 159, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 107, 107, 107, 107, 107, 104, 169, 168, 170, 168, 171, 168, 140, 168, 172, 168, 168, 168, 168, 168, 168, 168, 173, 168, 174, 168, 175, 168, 140, 168, 176, 168, 140, 168, 177, 168, 171, 168, 179, 178, 180, 180, 180, 180, 180, 180, 180, 180, 180, 182, 180, 182, 182, 182, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 182, 180, 180, 180, 180, 180, 180, 180, 183, 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, 180, 184, 180, 180, 181, 180, 181, 181, 181, 185, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 180, 180, 180, 180, 180, 181, 186, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 188, 180, 188, 188, 188, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 188, 180, 180, 180, 180, 180, 180, 180, 189, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 180, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 180, 190, 180, 180, 187, 180, 187, 187, 187, 191, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 187, 180, 180, 180, 180, 180, 187, 192, 193, 195, 194, 196, 194, 197, 194, 198, 194, 199, 194, 200, 201, 201, 201, 200, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 200, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 201, 203, 192, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 206, 206, 204, 206, 204, 206, 206, 204, 204, 206, 206, 206, 207, 206, 206, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 206, 206, 206, 206, 206, 206, 206, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 204, 206, 204, 204, 205, 206, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 204, 204, 204, 206, 204, 205, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 204, 204, 204, 204, 204, 204, 204, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 204, 204, 204, 204, 206, 204, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 206, 204, 204, 204, 204, 204, 206, 209, 206, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 206, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 210, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 204, 204, 204, 204, 205, 204, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 204, 204, 204, 204, 204, 205, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 204, 204, 204, 204, 205, 204, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 204, 204, 204, 204, 204, 205, 209, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 212, 204, 204, 204, 204, 213, 204, 204, 204, 204, 204, 214, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 203, 204, 204, 204, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 204, 204, 204, 204, 211, 215, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 204, 204, 204, 214, 204, 211, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 218, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 216, 217, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, 217, 217, 217, 217, 217, 216, 220, 219, 204, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, 221, 212, 218, 217, 204, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 221, 213, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 212, 204, 204, 204, 204, 213, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 204, 204, 204, 204, 211, 215, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, 204, 204, 204, 204, 204, 211, 204, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 221, 215, 222, 223, 223, 223, 222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 224, 223, 222, 225, 225, 225, 222, 225, 225, 225, 225, 225, 226, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 222, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 227, 225, 222, 225, 225, 225, 222, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 222, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 228, 225, 222, 229, 229, 229, 222, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 222, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 231, 229, 222, 232, 232, 232, 222, 232, 232, 232, 232, 232, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 222, 232, 222, 232, 232, 232, 222, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 222, 232, 222, 223, 223, 223, 222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 222, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 234, 223, 222, 235, 235, 235, 222, 235, 235, 235, 235, 235, 236, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 222, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 237, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 238, 235, 235, 235, 235, 235, 235, 239, 235, 222, 235, 235, 235, 222, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 235, 222, 235, 240, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 222, 241, 222, 241, 222, 222, 242, 242, 242, 222, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 222, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 244, 242, 222, 225, 225, 225, 222, 225, 225, 225, 225, 225, 226, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 222, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 225, 228, 225, 222, 245, 245, 245, 222, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 222, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 246, 246, 246, 246, 246, 246, 245, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 248, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 192, 192, 250, 192, 248, 192, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 192, 192, 192, 192, 247, 192, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 192, 192, 192, 192, 192, 247, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 248, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 204, 204, 250, 204, 248, 204, 247, 247, 247, 247, 247, 247, 251, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 204, 204, 204, 204, 247, 204, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 204, 204, 204, 204, 204, 247, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 248, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 204, 204, 250, 204, 248, 204, 247, 247, 247, 247, 247, 247, 247, 247, 252, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 204, 204, 204, 204, 247, 204, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 204, 204, 204, 204, 204, 247, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 248, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 204, 204, 250, 204, 248, 204, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 253, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 204, 204, 204, 204, 247, 204, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 204, 204, 204, 204, 204, 247, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 248, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 204, 204, 250, 204, 248, 204, 247, 247, 247, 253, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 204, 204, 204, 204, 247, 204, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 204, 204, 204, 204, 204, 247, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 256, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 257, 254, 254, 254, 254, 256, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 254, 254, 254, 254, 255, 257, 254, 254, 258, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 259, 259, 259, 259, 259, 259, 259, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 259, 259, 259, 259, 260, 259, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 260, 259, 259, 259, 259, 259, 260, 262, 261, 262, 261, 261, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 261, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 261, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 261, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 265, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 265, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 259, 259, 259, 259, 259, 259, 259, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 259, 259, 259, 259, 268, 259, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 259, 259, 259, 259, 259, 268, 269, 265, 270, 271, 270, 270, 270, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 270, 265, 265, 272, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 273, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 274, 265, 275, 276, 275, 275, 275, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 275, 265, 265, 277, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 278, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 279, 265, 281, 282, 281, 281, 281, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 281, 280, 280, 283, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 284, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 285, 280, 287, 288, 287, 287, 287, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, 286, 286, 289, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 290, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 291, 286, 287, 288, 287, 287, 287, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, 286, 286, 289, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 292, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 291, 286, 287, 293, 287, 287, 287, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, 286, 286, 289, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 290, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 291, 286, 294, 265, 271, 265, 296, 295, 296, 296, 296, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 295, 296, 295, 295, 295, 295, 295, 297, 295, 295, 295, 295, 295, 295, 295, 298, 295, 299, 295, 301, 300, 300, 300, 301, 300, 300, 300, 300, 302, 303, 302, 302, 302, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 301, 300, 300, 300, 300, 300, 302, 300, 300, 304, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 305, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 300, 306, 300, 300, 307, 300, 302, 308, 302, 302, 302, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 308, 302, 308, 309, 310, 311, 312, 313, 315, 314, 317, 318, 317, 317, 317, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 317, 316, 303, 314, 319, 314, 321, 320, 320, 320, 321, 320, 320, 320, 320, 322, 323, 322, 322, 322, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 321, 320, 320, 320, 320, 320, 322, 320, 320, 324, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 320, 325, 320, 322, 326, 322, 322, 322, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 326, 322, 326, 328, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 329, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 327, 330, 327, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 331, 331, 331, 331, 331, 331, 331, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 331, 331, 331, 331, 13, 331, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 331, 331, 331, 331, 331, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 331, 334, 333, 333, 333, 334, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 334, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 335, 335, 335, 335, 335, 335, 335, 335, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 336, 333, 333, 333, 333, 333, 333, 333, 333, 333, 337, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 338, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 333, 339, 333, 333, 340, 333, 341, 342, 344, 344, 344, 344, 344, 344, 344, 344, 343, 345, 345, 345, 345, 345, 345, 345, 345, 343, 343, 346, 346, 38, 38, 38, 346, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 346, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 347, 38, 348, 349, 350, 350, 38, 38, 38, 350, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 350, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 351, 38, 37, 350, 352, 353, 354, 354, 25, 25, 25, 354, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 354, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 355, 25, 350, 19, 19, 19, 350, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 350, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 356, 19, 346, 25, 25, 25, 346, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 346, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 27, 25, 346, 357, 357, 357, 346, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 346, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 358, 357, 359, 360, 360, 357, 357, 357, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 360, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 357, 361, 357, 360, 19, 19, 19, 360, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 360, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 356, 19, 362, 360, 360, 25, 25, 25, 360, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 360, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 26, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 27, 25, 363, 364, 364, 364, 363, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 363, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 365, 365, 365, 365, 365, 365, 365, 365, 365, 365, 364, 364, 364, 364, 364, 364, 364, 365, 365, 365, 365, 365, 365, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 365, 365, 365, 365, 365, 365, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 364, 366, 364, 363, 367, 367, 367, 363, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 363, 367, 363, 368, 368, 368, 363, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 363, 368, 363, 369, 369, 369, 363, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 363, 369, 363, 363, 367, 367, 367, 363, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 363, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 370, 370, 370, 370, 370, 370, 370, 370, 370, 370, 367, 367, 367, 367, 367, 367, 367, 370, 370, 370, 370, 370, 370, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, 370, 370, 370, 370, 370, 370, 367, 363, 368, 368, 368, 363, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 363, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 371, 371, 371, 371, 371, 371, 371, 371, 371, 371, 368, 368, 368, 368, 368, 368, 368, 371, 371, 371, 371, 371, 371, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 371, 371, 371, 371, 371, 371, 368, 363, 369, 369, 369, 363, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 363, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 372, 372, 372, 372, 372, 372, 372, 372, 372, 372, 369, 369, 369, 369, 369, 369, 369, 372, 372, 372, 372, 372, 372, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 372, 372, 372, 372, 372, 372, 369, 373, 376, 375, 375, 375, 376, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 376, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 375, 375, 375, 375, 375, 375, 375, 377, 377, 377, 377, 377, 377, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 377, 377, 377, 377, 377, 377, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 367, 375, 376, 378, 378, 378, 376, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 376, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 379, 379, 379, 379, 379, 379, 379, 379, 379, 379, 378, 378, 378, 378, 378, 378, 378, 379, 379, 379, 379, 379, 379, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 379, 379, 379, 379, 379, 379, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 380, 378, 376, 381, 381, 381, 376, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 376, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 381, 381, 381, 381, 381, 381, 381, 382, 382, 382, 382, 382, 382, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 382, 382, 382, 382, 382, 382, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 383, 381, 376, 384, 384, 384, 376, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 376, 384, 384, 384, 376, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 385, 385, 385, 385, 385, 385, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 386, 376, 385, 385, 385, 376, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 376, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 386, 385, 376, 385, 385, 385, 376, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 376, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 385, 374, 385, 374, 376, 382, 382, 382, 376, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 376, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 382, 369, 382, 374, 369, 369, 369, 374, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 369, 374, 369, 376, 378, 378, 378, 376, 378, 378, 378, 378, 387, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 376, 378, 378, 378, 378, 378, 387, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 388, 388, 388, 388, 388, 388, 388, 388, 388, 388, 378, 378, 378, 378, 378, 378, 378, 388, 388, 388, 388, 388, 388, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 388, 388, 388, 388, 388, 388, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 378, 389, 378, 376, 384, 384, 384, 376, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 390, 390, 390, 390, 390, 390, 390, 390, 390, 390, 384, 384, 384, 384, 384, 384, 384, 390, 390, 390, 390, 390, 390, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 390, 390, 390, 390, 390, 390, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 376, 384, 384, 384, 376, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 384, 384, 384, 384, 384, 384, 384, 391, 391, 391, 391, 391, 391, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 391, 391, 391, 391, 391, 391, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 389, 384, 376, 384, 384, 384, 376, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 384, 384, 384, 384, 384, 384, 384, 392, 392, 392, 392, 392, 392, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 392, 392, 392, 392, 392, 392, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 389, 384, 376, 384, 384, 384, 376, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 393, 393, 393, 393, 393, 393, 393, 393, 393, 393, 384, 384, 384, 384, 384, 384, 384, 393, 393, 393, 393, 393, 393, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 393, 393, 393, 393, 393, 393, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 389, 384, 376, 384, 384, 384, 376, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 384, 384, 384, 384, 384, 384, 384, 394, 394, 394, 394, 394, 394, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 394, 394, 394, 394, 394, 394, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 389, 384, 376, 384, 384, 384, 376, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 395, 395, 395, 395, 395, 395, 395, 395, 395, 395, 384, 384, 384, 384, 384, 384, 384, 395, 395, 395, 395, 395, 395, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 395, 395, 395, 395, 395, 395, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 389, 384, 376, 384, 384, 384, 376, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 387, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 384, 384, 384, 384, 384, 384, 384, 396, 396, 396, 396, 396, 396, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 396, 396, 396, 396, 396, 396, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 389, 384, 376, 384, 384, 384, 376, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 376, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 396, 396, 396, 396, 396, 396, 396, 396, 396, 396, 384, 384, 384, 384, 384, 384, 384, 396, 396, 396, 396, 396, 396, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 396, 396, 396, 396, 396, 396, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 384, 386, 384, 397, 376, 381, 381, 381, 376, 381, 381, 381, 381, 387, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 376, 381, 381, 381, 381, 381, 387, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 381, 381, 381, 381, 381, 381, 381, 392, 392, 392, 392, 392, 392, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 392, 392, 392, 392, 392, 392, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 381, 389, 381, 398, 400, 400, 400, 400, 400, 400, 400, 400, 400, 400, 399, 399, 399, 399, 399, 399, 399, 400, 400, 400, 400, 400, 400, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 399, 400, 400, 400, 400, 400, 400, 399, 399, 402, 401, 401, 401, 402, 401, 401, 401, 401, 401, 403, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 402, 401, 401, 401, 401, 401, 401, 401, 401, 404, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 401, 405, 401, 407, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 408, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 406, 409, 406, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 410, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 410, 410, 410, 410, 410, 410, 410, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 410, 410, 410, 410, 44, 410, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 410, 410, 410, 410, 410, 44, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 410, 413, 412, 412, 412, 413, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 413, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 414, 414, 414, 414, 414, 414, 414, 414, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 415, 412, 412, 412, 412, 412, 412, 412, 412, 412, 416, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 417, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 412, 418, 412, 412, 419, 412, 420, 421, 423, 423, 423, 423, 423, 423, 423, 423, 422, 424, 424, 424, 424, 424, 424, 424, 424, 422, 422, 425, 425, 69, 69, 69, 425, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 425, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 426, 69, 427, 428, 429, 429, 69, 69, 69, 429, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 429, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 70, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 69, 430, 69, 68, 429, 431, 432, 433, 433, 56, 56, 56, 433, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 433, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 434, 56, 429, 50, 50, 50, 429, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 429, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 435, 50, 425, 56, 56, 56, 425, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 425, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 58, 56, 425, 436, 436, 436, 425, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 425, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 437, 436, 438, 439, 439, 436, 436, 436, 439, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 439, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 436, 440, 436, 439, 50, 50, 50, 439, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 439, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 435, 50, 441, 439, 439, 56, 56, 56, 439, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 439, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 58, 56, 442, 443, 443, 443, 442, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 442, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 444, 444, 444, 444, 444, 444, 444, 444, 444, 444, 443, 443, 443, 443, 443, 443, 443, 444, 444, 444, 444, 444, 444, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 444, 444, 444, 444, 444, 444, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 443, 445, 443, 442, 446, 446, 446, 442, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 442, 446, 442, 447, 447, 447, 442, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 442, 447, 442, 448, 448, 448, 442, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 442, 448, 442, 442, 446, 446, 446, 442, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 442, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 446, 446, 446, 446, 446, 446, 446, 449, 449, 449, 449, 449, 449, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 449, 449, 449, 449, 449, 449, 446, 442, 447, 447, 447, 442, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 442, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 450, 450, 450, 450, 450, 450, 450, 450, 450, 450, 447, 447, 447, 447, 447, 447, 447, 450, 450, 450, 450, 450, 450, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 450, 450, 450, 450, 450, 450, 447, 442, 448, 448, 448, 442, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 442, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, 448, 448, 448, 448, 448, 448, 448, 451, 451, 451, 451, 451, 451, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 451, 451, 451, 451, 451, 451, 448, 452, 455, 454, 454, 454, 455, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 455, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 456, 456, 456, 456, 456, 456, 456, 456, 456, 456, 454, 454, 454, 454, 454, 454, 454, 456, 456, 456, 456, 456, 456, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 456, 456, 456, 456, 456, 456, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 446, 454, 455, 457, 457, 457, 455, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 455, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 458, 458, 458, 458, 458, 458, 458, 458, 458, 458, 457, 457, 457, 457, 457, 457, 457, 458, 458, 458, 458, 458, 458, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 458, 458, 458, 458, 458, 458, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 459, 457, 455, 460, 460, 460, 455, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 455, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 460, 460, 460, 460, 460, 460, 460, 461, 461, 461, 461, 461, 461, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 461, 461, 461, 461, 461, 461, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 462, 460, 455, 463, 463, 463, 455, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 463, 463, 463, 463, 463, 463, 463, 464, 464, 464, 464, 464, 464, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 464, 464, 464, 464, 464, 464, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 455, 463, 463, 463, 455, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 463, 463, 463, 463, 463, 463, 463, 464, 464, 464, 464, 464, 464, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 464, 464, 464, 464, 464, 464, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 465, 455, 464, 464, 464, 455, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 455, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 465, 464, 455, 464, 464, 464, 455, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 455, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 453, 464, 453, 455, 461, 461, 461, 455, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 455, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 461, 448, 461, 453, 448, 448, 448, 453, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 453, 448, 455, 457, 457, 457, 455, 457, 457, 457, 457, 466, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 455, 457, 457, 457, 457, 457, 466, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 467, 467, 467, 467, 467, 467, 467, 467, 467, 467, 457, 457, 457, 457, 457, 457, 457, 467, 467, 467, 467, 467, 467, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 467, 467, 467, 467, 467, 467, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, 468, 457, 455, 463, 463, 463, 455, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 469, 469, 469, 469, 469, 469, 469, 469, 469, 469, 463, 463, 463, 463, 463, 463, 463, 469, 469, 469, 469, 469, 469, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 469, 469, 469, 469, 469, 469, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 455, 463, 463, 463, 455, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 470, 470, 470, 470, 470, 470, 470, 470, 470, 470, 463, 463, 463, 463, 463, 463, 463, 470, 470, 470, 470, 470, 470, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 470, 470, 470, 470, 470, 470, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 468, 463, 455, 463, 463, 463, 455, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 463, 463, 463, 463, 463, 463, 463, 471, 471, 471, 471, 471, 471, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 471, 471, 471, 471, 471, 471, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 468, 463, 455, 463, 463, 463, 455, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 472, 472, 472, 472, 472, 472, 472, 472, 472, 472, 463, 463, 463, 463, 463, 463, 463, 472, 472, 472, 472, 472, 472, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 472, 472, 472, 472, 472, 472, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 468, 463, 455, 463, 463, 463, 455, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 473, 473, 473, 473, 473, 473, 473, 473, 473, 473, 463, 463, 463, 463, 463, 463, 463, 473, 473, 473, 473, 473, 473, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 473, 473, 473, 473, 473, 473, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 468, 463, 455, 463, 463, 463, 455, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 474, 474, 474, 474, 474, 474, 474, 474, 474, 474, 463, 463, 463, 463, 463, 463, 463, 474, 474, 474, 474, 474, 474, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 474, 474, 474, 474, 474, 474, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 468, 463, 455, 463, 463, 463, 455, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 466, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 463, 463, 463, 463, 463, 463, 463, 475, 475, 475, 475, 475, 475, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 475, 475, 475, 475, 475, 475, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 468, 463, 455, 463, 463, 463, 455, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 455, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 475, 475, 475, 475, 475, 475, 475, 475, 475, 475, 463, 463, 463, 463, 463, 463, 463, 475, 475, 475, 475, 475, 475, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 475, 475, 475, 475, 475, 475, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 465, 463, 476, 455, 460, 460, 460, 455, 460, 460, 460, 460, 466, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 455, 460, 460, 460, 460, 460, 466, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 471, 471, 471, 471, 471, 471, 471, 471, 471, 471, 460, 460, 460, 460, 460, 460, 460, 471, 471, 471, 471, 471, 471, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 471, 471, 471, 471, 471, 471, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, 468, 460, 477, 479, 479, 479, 479, 479, 479, 479, 479, 479, 479, 478, 478, 478, 478, 478, 478, 478, 479, 479, 479, 479, 479, 479, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 478, 479, 479, 479, 479, 479, 479, 478, 478, 481, 480, 480, 480, 481, 480, 480, 480, 480, 482, 483, 482, 482, 482, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 481, 480, 480, 480, 480, 480, 482, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 484, 480, 482, 485, 482, 482, 482, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 485, 482, 485, 486, 487, 487, 487, 486, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 487, 486, 487, 489, 488, 488, 488, 489, 488, 488, 488, 488, 488, 490, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 489, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 488, 491, 488, 492, 493, 493, 493, 492, 493, 493, 493, 493, 493, 494, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 493, 492, 493, 496, 495, 495, 495, 496, 495, 495, 495, 495, 495, 497, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 495, 496, 495, 495, 495, 495, 495, 495, 495, 495, 498, 495, 500, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 501, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 502, 499, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 503, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 503, 503, 503, 503, 503, 503, 503, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 503, 503, 503, 503, 75, 503, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 503, 503, 503, 503, 503, 75, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 503, 505, 504, 504, 504, 505, 504, 504, 504, 504, 504, 506, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 505, 504, 508, 507, 507, 507, 508, 507, 507, 507, 507, 509, 510, 509, 509, 509, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 508, 507, 507, 507, 507, 507, 509, 507, 507, 511, 507, 509, 512, 509, 509, 509, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 509, 512, 514, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 515, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 513, 516, 513, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 517, 517, 517, 517, 517, 517, 517, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 517, 517, 517, 517, 81, 517, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 517, 517, 517, 517, 517, 81, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 517, 519, 518, 518, 518, 519, 518, 518, 518, 518, 520, 521, 520, 520, 520, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 519, 518, 518, 518, 518, 518, 520, 518, 520, 522, 520, 520, 520, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 522, 520, 522, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 523, 523, 523, 523, 523, 523, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 523, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 525, 525, 525, 525, 525, 525, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 525, 526, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 527, 88, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 528, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 528, 528, 528, 528, 528, 528, 528, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 528, 528, 528, 528, 86, 528, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, 528, 528, 528, 528, 528, 86, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 528, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 529, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 529, 529, 529, 529, 529, 529, 529, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 529, 529, 529, 529, 91, 529, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 529, 529, 529, 529, 529, 91, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 530, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 530, 530, 530, 530, 530, 530, 530, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 530, 530, 530, 530, 93, 530, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 93, 530, 530, 530, 530, 530, 93, 532, 533, 533, 533, 532, 533, 533, 533, 533, 534, 535, 534, 534, 534, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 532, 533, 533, 533, 533, 533, 534, 536, 533, 537, 538, 539, 540, 533, 533, 533, 541, 542, 533, 542, 533, 543, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 544, 533, 545, 546, 547, 533, 533, 548, 549, 548, 548, 550, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 551, 552, 533, 543, 553, 543, 554, 555, 556, 557, 558, 559, 531, 531, 560, 531, 531, 531, 561, 562, 563, 531, 531, 564, 565, 566, 567, 531, 568, 531, 569, 531, 533, 570, 533, 542, 533, 531, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 571, 571, 571, 572, 571, 572, 571, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 571, 571, 571, 571, 531, 571, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 571, 571, 571, 571, 571, 531, 534, 573, 534, 534, 534, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 573, 534, 573, 574, 543, 575, 575, 543, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 575, 543, 575, 576, 577, 578, 579, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 95, 95, 580, 95, 580, 95, 95, 580, 580, 95, 95, 95, 582, 95, 95, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 95, 95, 95, 95, 95, 95, 95, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 95, 580, 580, 581, 95, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 580, 580, 95, 580, 581, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 584, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 584, 584, 584, 584, 584, 584, 584, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 584, 584, 584, 584, 581, 584, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 584, 584, 584, 584, 584, 581, 583, 583, 583, 583, 583, 583, 583, 583, 583, 583, 584, 585, 575, 543, 575, 543, 575, 543, 575, 587, 586, 543, 588, 575, 543, 575, 589, 543, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 580, 543, 580, 543, 575, 543, 543, 575, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 572, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 571, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 571, 571, 571, 572, 571, 572, 571, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 571, 571, 571, 571, 548, 571, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 571, 571, 571, 571, 571, 548, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 572, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 572, 590, 572, 590, 548, 548, 548, 548, 591, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 548, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 590, 548, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 572, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 572, 590, 572, 590, 548, 548, 548, 548, 548, 548, 592, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 548, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 590, 548, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 572, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 572, 590, 572, 590, 548, 548, 548, 548, 548, 548, 548, 548, 593, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 548, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 590, 548, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 572, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 572, 590, 572, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 594, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 548, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 590, 548, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 572, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 572, 590, 572, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 595, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 548, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 590, 548, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 572, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 572, 590, 572, 590, 548, 548, 548, 594, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 548, 590, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 548, 590, 590, 590, 590, 590, 548, 589, 580, 535, 580, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 597, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 598, 599, 531, 531, 531, 531, 531, 600, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 601, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 602, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 603, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 604, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 605, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 606, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 607, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 608, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 609, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 610, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 611, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 607, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 612, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 611, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 613, 531, 614, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 615, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 616, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 617, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 618, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 619, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 620, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 621, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 622, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 623, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 624, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 625, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 626, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 616, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 627, 531, 531, 531, 531, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 628, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 572, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 629, 629, 629, 572, 629, 572, 629, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 629, 629, 629, 629, 531, 629, 531, 531, 531, 531, 531, 531, 531, 531, 630, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 629, 629, 629, 629, 629, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 631, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 632, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 633, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 634, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 635, 531, 636, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 637, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 609, 531, 531, 531, 638, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 639, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 640, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 625, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 641, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 563, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 623, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 642, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 643, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 644, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 625, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 645, 531, 531, 531, 646, 531, 531, 531, 531, 531, 647, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 647, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 648, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 649, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 650, 651, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 609, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 652, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 625, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 653, 531, 531, 654, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 609, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 620, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 655, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 656, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 638, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 657, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 563, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 658, 531, 531, 531, 531, 531, 531, 531, 531, 531, 652, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 620, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 659, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 660, 531, 531, 531, 531, 531, 531, 531, 661, 531, 531, 531, 531, 531, 531, 531, 662, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 638, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 626, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 646, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 663, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 620, 531, 531, 531, 644, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 664, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 665, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 572, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 572, 596, 572, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 531, 596, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 614, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 596, 596, 596, 596, 596, 531, 543, 575, 667, 668, 668, 668, 667, 668, 668, 668, 668, 669, 668, 669, 669, 669, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 667, 668, 668, 668, 668, 668, 669, 668, 668, 670, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 668, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 668, 671, 668, 668, 666, 668, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 666, 668, 668, 668, 668, 668, 666, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 100, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 672, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 101, 672, 672, 672, 672, 100, 672, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 672, 672, 672, 672, 99, 672, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 672, 672, 672, 672, 672, 99, 669, 673, 669, 669, 669, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, 669, 673, 674, 675, 676, 677, 678, 672, 679, 681, 682, 682, 682, 681, 682, 682, 682, 682, 683, 684, 683, 683, 683, 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, 681, 682, 682, 682, 682, 682, 683, 685, 682, 686, 682, 687, 688, 682, 682, 682, 689, 690, 682, 690, 682, 687, 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, 682, 691, 692, 693, 682, 682, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 695, 696, 682, 687, 680, 687, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 682, 697, 682, 690, 682, 680, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 699, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 698, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 698, 698, 698, 698, 698, 699, 698, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 698, 698, 698, 698, 680, 698, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 680, 698, 698, 698, 698, 698, 680, 701, 700, 702, 683, 703, 683, 683, 683, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 703, 683, 703, 704, 687, 705, 705, 687, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 705, 687, 705, 706, 707, 708, 709, 687, 705, 687, 705, 687, 705, 687, 710, 705, 687, 705, 712, 687, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 711, 687, 711, 687, 705, 687, 687, 705, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 699, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 713, 713, 713, 713, 713, 699, 713, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 713, 713, 713, 713, 694, 713, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 694, 713, 713, 713, 713, 713, 694, 712, 711, 684, 711, 687, 705, 715, 714, 714, 714, 715, 714, 714, 714, 714, 716, 717, 716, 716, 716, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 715, 714, 714, 714, 714, 714, 716, 714, 714, 718, 714, 109, 719, 714, 720, 714, 721, 109, 140, 722, 142, 109, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 723, 714, 724, 140, 725, 726, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 140, 727, 140, 109, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 728, 714, 714, 714, 714, 714, 714, 714, 714, 729, 714, 714, 730, 714, 731, 714, 714, 714, 153, 154, 714, 109, 714, 732, 732, 732, 732, 732, 732, 732, 732, 732, 716, 732, 716, 716, 716, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 716, 732, 732, 732, 732, 135, 136, 732, 137, 732, 138, 139, 140, 141, 142, 135, 732, 732, 732, 732, 732, 732, 732, 732, 732, 732, 143, 732, 144, 140, 145, 146, 732, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 147, 148, 140, 109, 104, 732, 104, 104, 104, 104, 104, 104, 104, 104, 149, 104, 104, 104, 104, 104, 104, 104, 104, 150, 104, 104, 151, 104, 152, 104, 104, 104, 153, 154, 732, 109, 732, 104, 733, 734, 734, 734, 733, 734, 734, 734, 734, 140, 735, 140, 140, 140, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 733, 734, 734, 734, 734, 734, 140, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 734, 140, 734, 140, 735, 140, 140, 140, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 140, 103, 103, 103, 103, 103, 109, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 140, 103, 140, 735, 140, 140, 140, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 140, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 140, 103, 736, 140, 735, 140, 140, 140, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 140, 737, 737, 737, 737, 737, 737, 737, 737, 737, 738, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 737, 140, 737, 140, 735, 140, 140, 140, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 140, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 140, 140, 103, 739, 733, 140, 733, 741, 740, 743, 744, 743, 743, 743, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 743, 742, 745, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 105, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 106, 733, 733, 733, 733, 105, 733, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 733, 733, 733, 733, 104, 733, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 104, 733, 733, 733, 733, 733, 104, 746, 140, 735, 140, 140, 140, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 140, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 140, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 109, 733, 747, 748, 749, 750, 751, 752, 140, 735, 140, 140, 140, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 140, 733, 733, 733, 733, 733, 733, 733, 733, 733, 109, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 733, 140, 733, 140, 740, 109, 753, 109, 753, 754, 755, 754, 754, 754, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 754, 742, 756, 753, 757, 757, 757, 757, 757, 757, 757, 757, 757, 112, 757, 112, 112, 112, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 112, 757, 757, 757, 757, 113, 114, 757, 115, 757, 116, 117, 118, 119, 120, 113, 757, 757, 757, 757, 757, 757, 757, 757, 757, 757, 121, 757, 122, 118, 123, 124, 757, 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, 125, 126, 118, 127, 111, 757, 111, 111, 111, 111, 111, 111, 111, 111, 128, 111, 111, 111, 111, 111, 111, 111, 111, 129, 111, 111, 130, 111, 131, 111, 111, 111, 132, 133, 757, 127, 757, 111, 140, 753, 758, 753, 759, 753, 760, 753, 761, 179, 179, 179, 761, 179, 179, 179, 179, 762, 179, 762, 762, 762, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 179, 761, 179, 179, 179, 179, 179, 762, 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, 179, 179, 179, 179, 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, 179, 763, 179, 179, 181, 179, 181, 181, 181, 185, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 179, 179, 179, 179, 179, 181, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 764, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 178, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 179, 178, 178, 178, 178, 764, 178, 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, 178, 178, 178, 178, 181, 178, 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, 178, 178, 178, 178, 178, 181, 765, 765, 765, 765, 765, 765, 765, 765, 765, 182, 765, 182, 182, 182, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 182, 765, 765, 765, 765, 765, 765, 765, 183, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 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, 765, 184, 765, 765, 181, 765, 181, 181, 181, 185, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 765, 765, 765, 765, 765, 181, 766, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 764, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 179, 765, 765, 765, 765, 764, 765, 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, 765, 765, 765, 765, 181, 765, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 767, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 181, 765, 765, 765, 765, 765, 181, 186, 765, 769, 768, 768, 768, 769, 768, 768, 768, 768, 770, 768, 770, 770, 770, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 769, 768, 768, 768, 768, 768, 770, 768, 768, 771, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 772, 768, 768, 768, 768, 768, 768, 768, 773, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 768, 774, 768, 770, 775, 770, 770, 770, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 775, 770, 775, 776, 777, 778, 779, 781, 780, 782, 783, 780, 784, 786, 787, 787, 787, 786, 787, 787, 787, 787, 788, 789, 788, 788, 788, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 786, 787, 787, 787, 787, 787, 788, 787, 787, 790, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 787, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 787, 791, 787, 787, 785, 787, 785, 785, 785, 785, 785, 785, 785, 785, 792, 785, 785, 785, 785, 785, 785, 785, 785, 793, 785, 785, 794, 785, 795, 785, 785, 785, 787, 787, 787, 787, 787, 785, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 796, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 796, 796, 796, 796, 796, 796, 796, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 796, 796, 796, 796, 785, 796, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 796, 796, 796, 796, 796, 785, 788, 797, 788, 788, 788, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 797, 788, 797, 798, 799, 800, 801, 802, 804, 803, 805, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 807, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 808, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 809, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 810, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 811, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 807, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 812, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 813, 785, 785, 785, 785, 785, 785, 785, 814, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 815, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 816, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 807, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 817, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 807, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 818, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 819, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 806, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 785, 806, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 811, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 806, 806, 806, 806, 806, 785, 821, 203, 203, 203, 821, 203, 203, 203, 203, 822, 823, 822, 822, 822, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 821, 203, 203, 203, 203, 203, 822, 824, 203, 825, 203, 826, 827, 203, 828, 203, 829, 830, 203, 831, 832, 833, 203, 203, 203, 203, 203, 203, 203, 203, 203, 203, 834, 203, 835, 836, 837, 838, 203, 839, 840, 839, 839, 841, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 839, 842, 843, 203, 844, 845, 203, 846, 847, 848, 849, 850, 851, 820, 820, 852, 820, 820, 820, 853, 854, 855, 820, 820, 856, 857, 858, 859, 820, 860, 820, 861, 820, 862, 863, 203, 844, 203, 820, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 248, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 192, 192, 250, 192, 248, 192, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 192, 192, 192, 192, 820, 192, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 192, 192, 192, 192, 192, 820, 865, 864, 864, 866, 864, 867, 869, 870, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 871, 868, 873, 872, 874, 875, 876, 822, 877, 822, 822, 822, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 877, 822, 877, 879, 878, 881, 882, 881, 881, 881, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 880, 881, 880, 203, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 203, 883, 884, 885, 886, 887, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 889, 889, 889, 889, 889, 889, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 890, 889, 891, 201, 201, 201, 891, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 891, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 201, 201, 201, 201, 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 202, 201, 893, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 892, 203, 892, 894, 896, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 895, 203, 895, 203, 192, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 892, 892, 892, 203, 892, 897, 897, 897, 897, 897, 897, 897, 897, 897, 897, 892, 892, 892, 203, 203, 892, 898, 883, 203, 883, 883, 899, 899, 899, 883, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 899, 883, 899, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 901, 902, 883, 903, 206, 904, 902, 883, 883, 905, 906, 883, 906, 883, 206, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 907, 883, 908, 909, 910, 883, 911, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 912, 883, 883, 206, 900, 206, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 883, 913, 883, 906, 883, 900, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 915, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 914, 914, 914, 916, 914, 915, 914, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 914, 914, 914, 914, 900, 914, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 900, 914, 914, 914, 914, 914, 900, 918, 917, 919, 921, 922, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 920, 923, 920, 925, 926, 924, 927, 928, 929, 930, 206, 914, 914, 206, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 206, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 914, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 914, 914, 914, 914, 914, 914, 914, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 914, 914, 914, 914, 205, 914, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 914, 914, 914, 914, 914, 205, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 914, 206, 914, 206, 914, 206, 914, 206, 931, 914, 206, 914, 206, 914, 206, 206, 914, 206, 914, 932, 933, 883, 934, 203, 883, 844, 203, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 203, 883, 203, 893, 883, 937, 936, 936, 936, 937, 936, 936, 936, 936, 938, 939, 938, 938, 938, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 937, 936, 936, 936, 936, 936, 938, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 936, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 936, 941, 936, 936, 940, 936, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 940, 936, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 942, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 942, 942, 942, 942, 943, 942, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 942, 942, 942, 942, 942, 943, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 944, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 944, 944, 944, 944, 944, 944, 944, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 944, 944, 944, 944, 945, 944, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 945, 944, 944, 944, 944, 944, 945, 948, 947, 947, 947, 948, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 948, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 949, 949, 949, 949, 949, 949, 949, 949, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 950, 947, 947, 947, 947, 947, 947, 947, 947, 947, 951, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 952, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 947, 953, 947, 947, 954, 947, 955, 956, 958, 958, 958, 958, 958, 958, 958, 958, 957, 959, 959, 959, 959, 959, 959, 959, 959, 957, 957, 960, 960, 242, 242, 242, 960, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 960, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 961, 242, 962, 963, 964, 964, 242, 242, 242, 964, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 964, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 243, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 242, 965, 242, 241, 964, 966, 967, 968, 968, 229, 229, 229, 968, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 968, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 969, 229, 964, 223, 223, 223, 964, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 964, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 970, 223, 960, 229, 229, 229, 960, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 960, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 231, 229, 960, 971, 971, 971, 960, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 960, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 972, 971, 973, 974, 974, 971, 971, 971, 974, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 974, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 971, 975, 971, 974, 223, 223, 223, 974, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 974, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 970, 223, 976, 974, 974, 229, 229, 229, 974, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 974, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 230, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 229, 231, 229, 977, 978, 978, 978, 977, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 977, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 979, 979, 979, 979, 979, 979, 979, 979, 979, 979, 978, 978, 978, 978, 978, 978, 978, 979, 979, 979, 979, 979, 979, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 979, 979, 979, 979, 979, 979, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 978, 980, 978, 977, 981, 981, 981, 977, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 977, 981, 977, 982, 982, 982, 977, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 977, 982, 977, 983, 983, 983, 977, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 977, 983, 977, 977, 981, 981, 981, 977, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 977, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 984, 984, 984, 984, 984, 984, 984, 984, 984, 984, 981, 981, 981, 981, 981, 981, 981, 984, 984, 984, 984, 984, 984, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 981, 984, 984, 984, 984, 984, 984, 981, 977, 982, 982, 982, 977, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 977, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 985, 985, 985, 985, 985, 985, 985, 985, 985, 985, 982, 982, 982, 982, 982, 982, 982, 985, 985, 985, 985, 985, 985, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 982, 985, 985, 985, 985, 985, 985, 982, 977, 983, 983, 983, 977, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 977, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 986, 986, 986, 986, 986, 986, 986, 986, 986, 986, 983, 983, 983, 983, 983, 983, 983, 986, 986, 986, 986, 986, 986, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 986, 986, 986, 986, 986, 986, 983, 987, 990, 989, 989, 989, 990, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 990, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 991, 991, 991, 991, 991, 991, 991, 991, 991, 991, 989, 989, 989, 989, 989, 989, 989, 991, 991, 991, 991, 991, 991, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 991, 991, 991, 991, 991, 991, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 981, 989, 990, 992, 992, 992, 990, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 990, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 993, 993, 993, 993, 993, 993, 993, 993, 993, 993, 992, 992, 992, 992, 992, 992, 992, 993, 993, 993, 993, 993, 993, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 993, 993, 993, 993, 993, 993, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 994, 992, 990, 995, 995, 995, 990, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 990, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 995, 995, 995, 995, 995, 995, 995, 996, 996, 996, 996, 996, 996, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 996, 996, 996, 996, 996, 996, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 997, 995, 990, 998, 998, 998, 990, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 998, 998, 998, 998, 998, 998, 998, 999, 999, 999, 999, 999, 999, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 999, 999, 999, 999, 999, 999, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 998, 998, 998, 998, 998, 998, 998, 999, 999, 999, 999, 999, 999, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 999, 999, 999, 999, 999, 999, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 1000, 990, 999, 999, 999, 990, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 990, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 1000, 999, 990, 999, 999, 999, 990, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 990, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 999, 988, 999, 988, 990, 996, 996, 996, 990, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 990, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 983, 996, 988, 983, 983, 983, 988, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 983, 988, 983, 990, 992, 992, 992, 990, 992, 992, 992, 992, 1001, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 990, 992, 992, 992, 992, 992, 1001, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 992, 992, 992, 992, 992, 992, 992, 1002, 1002, 1002, 1002, 1002, 1002, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 1002, 1002, 1002, 1002, 1002, 1002, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 992, 1003, 992, 990, 998, 998, 998, 990, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 1004, 998, 998, 998, 998, 998, 998, 998, 1004, 1004, 1004, 1004, 1004, 1004, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1004, 1004, 1004, 1004, 1004, 1004, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 1005, 998, 998, 998, 998, 998, 998, 998, 1005, 1005, 1005, 1005, 1005, 1005, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1005, 1005, 1005, 1005, 1005, 1005, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1000, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 998, 998, 998, 998, 998, 998, 998, 1006, 1006, 1006, 1006, 1006, 1006, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1006, 1006, 1006, 1006, 1006, 1006, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1000, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 1007, 998, 998, 998, 998, 998, 998, 998, 1007, 1007, 1007, 1007, 1007, 1007, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1007, 1007, 1007, 1007, 1007, 1007, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1000, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 998, 998, 998, 998, 998, 998, 998, 1008, 1008, 1008, 1008, 1008, 1008, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1008, 1008, 1008, 1008, 1008, 1008, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1000, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 998, 998, 998, 998, 998, 998, 998, 1009, 1009, 1009, 1009, 1009, 1009, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1009, 1009, 1009, 1009, 1009, 1009, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1000, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 998, 998, 998, 998, 998, 998, 998, 1010, 1010, 1010, 1010, 1010, 1010, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1010, 1010, 1010, 1010, 1010, 1010, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1000, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 998, 998, 998, 998, 998, 998, 998, 1010, 1010, 1010, 1010, 1010, 1010, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1010, 1010, 1010, 1010, 1010, 1010, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1000, 998, 990, 995, 995, 995, 990, 995, 995, 995, 995, 1001, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 990, 995, 995, 995, 995, 995, 1001, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 995, 995, 995, 995, 995, 995, 995, 1011, 1011, 1011, 1011, 1011, 1011, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 1011, 1011, 1011, 1011, 1011, 1011, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 1003, 995, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 1012, 998, 998, 998, 998, 998, 998, 998, 1012, 1012, 1012, 1012, 1012, 1012, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1012, 1012, 1012, 1012, 1012, 1012, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1003, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 998, 998, 998, 998, 998, 998, 998, 1013, 1013, 1013, 1013, 1013, 1013, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1013, 1013, 1013, 1013, 1013, 1013, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1003, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 1014, 998, 998, 998, 998, 998, 998, 998, 1014, 1014, 1014, 1014, 1014, 1014, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1014, 1014, 1014, 1014, 1014, 1014, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1003, 998, 990, 998, 998, 998, 990, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 990, 998, 998, 998, 998, 998, 1001, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 998, 998, 998, 998, 998, 998, 998, 1010, 1010, 1010, 1010, 1010, 1010, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1010, 1010, 1010, 1010, 1010, 1010, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 998, 1003, 998, 1015, 1016, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1018, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1018, 1018, 1018, 1018, 1018, 1018, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1017, 1018, 1018, 1018, 1018, 1018, 1018, 1017, 1017, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 248, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 192, 192, 250, 192, 248, 192, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 192, 192, 192, 192, 247, 192, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 192, 192, 192, 192, 192, 247, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 248, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 883, 883, 250, 883, 248, 883, 247, 247, 247, 247, 1019, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 883, 883, 883, 883, 247, 883, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 883, 883, 883, 883, 883, 247, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 248, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 249, 883, 883, 250, 883, 248, 883, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 1020, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 883, 883, 883, 883, 247, 883, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 883, 883, 883, 883, 883, 247, 1021, 1022, 883, 878, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1024, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 1025, 1026, 820, 820, 820, 820, 820, 1027, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1028, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 1029, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1030, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 1031, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 1032, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1033, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 1034, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1035, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1036, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 1037, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1038, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 1034, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 1039, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1038, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1040, 820, 1041, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 1042, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 1043, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1044, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1045, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 1046, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 1047, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1048, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 1049, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 1050, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1051, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1052, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 1053, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1043, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1054, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1055, 820, 1056, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1057, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1036, 820, 820, 820, 1054, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1058, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1059, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1052, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 1060, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 855, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1050, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 1061, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1062, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 1063, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1064, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1052, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1065, 820, 820, 820, 1066, 820, 820, 820, 820, 820, 1067, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1067, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1068, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 1069, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1070, 1071, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 1072, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1073, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1074, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1077, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1078, 1075, 1075, 1079, 1075, 1077, 1075, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1075, 1075, 1075, 1075, 1076, 1075, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1075, 1075, 1075, 1075, 1075, 1076, 869, 1080, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 871, 868, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1081, 820, 820, 1082, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1036, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1047, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1083, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1084, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1054, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1085, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 855, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 1086, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1087, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1047, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1052, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1088, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 1089, 820, 820, 820, 820, 820, 820, 820, 1090, 820, 820, 820, 820, 820, 820, 820, 1091, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1054, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1092, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1093, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1061, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 1094, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1061, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 1095, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1047, 820, 820, 820, 1096, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1097, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1061, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 1098, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 1099, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 248, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 249, 1023, 1023, 250, 1023, 248, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 820, 1023, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1041, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 820, 1023, 1023, 1023, 1023, 1023, 820, 1100, 203, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 883, 893, 883, 1102, 1101, 1101, 1101, 1102, 1101, 1101, 1101, 1101, 1103, 1104, 1103, 1103, 1103, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1102, 1101, 1101, 1101, 1101, 1101, 1103, 1101, 1101, 1105, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1101, 1106, 1101, 1103, 1107, 1103, 1103, 1103, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1107, 1103, 1107, 1108, 1109, 1110, 1111, 1112, 1114, 1113, 1115, 1117, 1118, 1118, 1118, 1117, 1118, 1118, 1118, 1118, 1119, 1120, 1119, 1119, 1119, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1117, 1118, 1118, 1118, 1118, 1118, 1119, 1118, 1121, 1122, 1118, 1118, 1118, 1121, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1118, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1118, 1123, 1118, 1118, 1116, 1118, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1116, 1118, 1118, 1118, 1118, 1118, 1116, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 256, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 1124, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 257, 1124, 1124, 1124, 1124, 256, 1124, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1124, 1124, 1124, 1124, 255, 1124, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 1124, 1124, 1124, 1124, 1124, 255, 1119, 1125, 1119, 1119, 1119, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1125, 1119, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1124, 1132, 1134, 1135, 1135, 1135, 1134, 1135, 1135, 1135, 1135, 1136, 1137, 1136, 1136, 1136, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1135, 1134, 1135, 1135, 1135, 1135, 1135, 1136, 1138, 1139, 1140, 1141, 1142, 1143, 1139, 1144, 1145, 1146, 1142, 1147, 1148, 1149, 1142, 1150, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1159, 1159, 1161, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1162, 1163, 1164, 1142, 1165, 1139, 1166, 1167, 1168, 1169, 1170, 1171, 1133, 1133, 1172, 1133, 1133, 1133, 1173, 1174, 1175, 1133, 1133, 1176, 1177, 1178, 1179, 1133, 1180, 1133, 1181, 1133, 1182, 1183, 1184, 1142, 1135, 1133, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 1185, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 265, 265, 265, 265, 265, 1185, 265, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 265, 265, 265, 265, 1133, 265, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 265, 265, 265, 265, 265, 1133, 1187, 1186, 1188, 1136, 1189, 1136, 1136, 1136, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1189, 1136, 1189, 1190, 1192, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1192, 1191, 1193, 1194, 1195, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 260, 260, 1197, 260, 1197, 260, 260, 1197, 1197, 260, 260, 260, 1198, 260, 260, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 260, 260, 260, 260, 260, 260, 260, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1197, 260, 1197, 1197, 268, 260, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1197, 1197, 1197, 260, 1197, 268, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1200, 1200, 1200, 1200, 268, 1200, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1200, 1200, 1200, 1200, 1200, 268, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1199, 1200, 1201, 1191, 1142, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1202, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1201, 1191, 1203, 1204, 1142, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1201, 1191, 1201, 1205, 1191, 1207, 1206, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 1206, 1147, 1208, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1210, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1211, 1209, 1209, 1209, 1209, 1209, 1210, 1209, 263, 263, 263, 263, 263, 263, 263, 263, 263, 263, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 1209, 262, 1209, 1213, 1212, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1215, 1212, 1216, 1217, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1218, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1219, 1212, 1212, 1212, 1212, 1212, 1212, 1220, 1212, 1212, 1215, 1212, 1216, 1217, 1212, 1212, 1212, 1221, 1212, 1212, 1212, 1212, 1212, 1218, 1212, 1212, 1222, 1212, 1212, 1212, 1212, 1212, 1219, 1212, 266, 266, 266, 266, 266, 266, 266, 266, 266, 266, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1224, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1225, 1223, 1223, 1223, 1223, 1223, 1224, 1223, 1223, 1223, 1226, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1223, 1227, 1223, 1228, 265, 1228, 265, 265, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 265, 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1228, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1229, 1230, 1229, 1231, 1233, 1232, 1234, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1214, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1220, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1221, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1222, 1212, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1235, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1236, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1221, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1212, 1222, 1212, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1239, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1240, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1241, 1237, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1238, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1242, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1240, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1241, 1237, 1240, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1241, 1237, 1243, 1245, 1244, 1246, 1248, 1248, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1249, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1250, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1247, 1251, 1247, 1252, 1252, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1253, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1240, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1241, 1237, 1252, 1252, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1242, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1240, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1241, 1237, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1255, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1256, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1257, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1254, 1258, 1254, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1260, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1261, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1262, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1263, 1259, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1265, 1265, 1265, 1265, 1265, 1265, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1266, 1264, 1265, 1265, 1265, 1265, 1265, 1265, 1264, 1264, 1267, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1264, 1268, 1264, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1269, 1269, 1269, 1269, 1269, 1269, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1270, 1237, 1269, 1269, 1269, 1269, 1269, 1269, 1237, 1237, 1240, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1241, 1237, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1269, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1269, 1269, 1269, 1269, 1269, 1269, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1242, 1237, 1269, 1269, 1269, 1269, 1269, 1269, 1237, 1237, 1240, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1241, 1237, 1272, 1271, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1274, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1275, 1271, 1271, 1271, 1271, 1271, 1274, 1271, 1271, 1271, 1276, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1277, 1271, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1279, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1276, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1271, 1277, 1271, 1280, 1237, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1282, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1283, 1237, 1237, 1237, 1237, 1237, 1282, 1237, 1237, 1237, 1240, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1241, 1237, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1242, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1240, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1237, 1241, 1237, 1202, 1208, 1142, 1284, 1191, 1192, 1191, 1285, 1192, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1208, 1192, 1208, 1192, 1191, 1192, 1142, 1191, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 1197, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1197, 1197, 1197, 1197, 1197, 1197, 1286, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1197, 1197, 1197, 1197, 268, 1197, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1197, 1197, 1197, 1197, 1197, 268, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 1185, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 265, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1287, 265, 265, 265, 265, 1185, 265, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 265, 265, 265, 265, 1159, 265, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 265, 265, 265, 265, 265, 1159, 1288, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1185, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1287, 1289, 1289, 1289, 1289, 1185, 1289, 1159, 1159, 1159, 1159, 1290, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1159, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1289, 1159, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1185, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1287, 1289, 1289, 1289, 1289, 1185, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1291, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1159, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1289, 1159, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1185, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1287, 1289, 1289, 1289, 1289, 1185, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1292, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1159, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1289, 1159, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1185, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1287, 1289, 1289, 1289, 1289, 1185, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1293, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1159, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1289, 1159, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1185, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1287, 1289, 1289, 1289, 1289, 1185, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1294, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1159, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1289, 1159, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1185, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1287, 1289, 1289, 1289, 1289, 1185, 1289, 1159, 1159, 1159, 1293, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1159, 1289, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1289, 1289, 1289, 1289, 1289, 1159, 1295, 1297, 1296, 1298, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1300, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1301, 1302, 1133, 1133, 1133, 1133, 1133, 1303, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1304, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1305, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1306, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1307, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1308, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1309, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1310, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1311, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1312, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1313, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1314, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1315, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1316, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1317, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1318, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1314, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1319, 1133, 1320, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1321, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1322, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1323, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1324, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1325, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1326, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1327, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1328, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1324, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1329, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1330, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1331, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1332, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1333, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1334, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1324, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1335, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1336, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1337, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 270, 271, 270, 270, 270, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 270, 1185, 1338, 272, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1338, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1338, 1338, 273, 1338, 1338, 1185, 1338, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1338, 274, 1338, 1338, 1133, 1338, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1338, 1338, 1338, 1338, 1338, 1133, 287, 288, 287, 287, 287, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 287, 286, 286, 289, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 292, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 291, 286, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1340, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1341, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1342, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1185, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1343, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1343, 1343, 1343, 1343, 1343, 1185, 1343, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1343, 1343, 1343, 1343, 1133, 1343, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1344, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1343, 1343, 1343, 1343, 1343, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1345, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1346, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1347, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1348, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1349, 1133, 1350, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1351, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1324, 1133, 1133, 1133, 1352, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1324, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1317, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1353, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1354, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1334, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1355, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1175, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1356, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1357, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1317, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1324, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1358, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1324, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1359, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1360, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1361, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1334, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1362, 1133, 1133, 1133, 1363, 1133, 1133, 1133, 1133, 1133, 1364, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1365, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1331, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1317, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1366, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1367, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1368, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1369, 1370, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1317, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1371, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1372, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1358, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1373, 1133, 1133, 1374, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1317, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1375, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1331, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1376, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1377, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1378, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1317, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1379, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1380, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1366, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1381, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1382, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1328, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1357, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1383, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1384, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1385, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1386, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1387, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1323, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1388, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1389, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1358, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1390, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1358, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1391, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1328, 1133, 1133, 1133, 1392, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1393, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1358, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1394, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1395, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1396, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1185, 1299, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1133, 1299, 1133, 1133, 1133, 1366, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1133, 1299, 1299, 1299, 1299, 1299, 1133, 1397, 1201, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1142, 1191, 1398, 1400, 1399, 1400, 1400, 1400, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 1400, 1399, 1399, 1399, 1399, 1399, 1401, 1399, 1399, 1399, 1399, 1399, 1399, 1399, 298, 1399, 296, 1402, 296, 296, 296, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 296, 1402, 1402, 1402, 1402, 1402, 297, 1402, 1402, 1402, 1402, 1402, 1402, 1402, 298, 1402, 299, 1402, 1404, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1405, 1403, 1404, 1403, 1404, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1407, 1403, 1404, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1408, 1403, 1404, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1403, 1409, 1403, 1411, 1409, 0]]; - $send(self, '_lex_indicies=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + insertion_pos = insertion.$begin_pos(); + if ($truthy(self.$active_insertions()['$&']((1)['$<<'](insertion_pos))['$!='](0))) { + return $send(self.$active_queue(), 'find', [], ($$22 = function(a){var self = $$22.$$s == null ? this : $$22.$$s, $ret_or_4 = nil; - - self.$attr_accessor("_lex_trans_targs"); - return self.$private("_lex_trans_targs", "_lex_trans_targs="); - })(Opal.get_singleton_class(self), $nesting); - - $writer = [[165, 2, 3, 4, 171, 6, 7, 8, 9, 10, 165, 165, 174, 177, 174, 12, 178, 14, 174, 185, 186, 189, 190, 196, 191, 192, 193, 19, 194, 195, 198, 200, 201, 202, 203, 204, 25, 18, 187, 188, 27, 236, 237, 239, 241, 239, 30, 242, 32, 239, 249, 250, 253, 254, 260, 255, 256, 257, 37, 258, 259, 262, 264, 265, 266, 267, 268, 43, 36, 251, 252, 45, 300, 301, 308, 310, 308, 48, 311, 50, 313, 316, 313, 52, 317, 54, 323, 322, 0, 56, 324, 325, 58, 326, 327, 327, 327, 327, 440, 61, 62, 63, 440, 468, 64, 65, 468, 468, 472, 472, 69, 64, 70, 470, 471, 473, 474, 472, 468, 475, 476, 478, 66, 67, 479, 480, 68, 472, 71, 72, 77, 84, 482, 483, 70, 470, 471, 473, 474, 472, 468, 475, 476, 478, 66, 67, 479, 480, 68, 71, 72, 77, 84, 482, 483, 481, 73, 74, 75, 76, 78, 79, 82, 80, 81, 83, 85, 86, 468, 88, 89, 90, 92, 95, 93, 94, 96, 98, 499, 499, 499, 500, 100, 502, 101, 503, 102, 500, 100, 502, 101, 503, 537, 537, 537, 105, 106, 107, 108, 548, 537, 537, 553, 537, 537, 574, 537, 112, 575, 581, 115, 118, 120, 122, 123, 124, 118, 119, 585, 119, 585, 121, 537, 599, 600, 603, 604, 610, 605, 606, 607, 129, 608, 609, 612, 614, 615, 616, 617, 618, 135, 128, 601, 602, 137, 654, 655, 139, 539, 103, 541, 141, 142, 657, 758, 144, 145, 146, 758, 766, 766, 766, 149, 787, 786, 766, 789, 791, 776, 823, 155, 156, 157, 161, 162, 155, 156, 157, 161, 162, 158, 158, 156, 157, 159, 160, 158, 158, 156, 157, 159, 160, 870, 156, 766, 939, 163, 164, 939, 939, 165, 165, 166, 167, 168, 170, 172, 173, 165, 165, 165, 169, 165, 169, 165, 1, 165, 165, 165, 5, 174, 174, 175, 174, 176, 179, 174, 174, 11, 13, 174, 174, 174, 180, 181, 182, 15, 21, 26, 205, 28, 174, 174, 174, 183, 184, 174, 16, 174, 174, 174, 17, 174, 174, 174, 20, 197, 199, 22, 174, 174, 23, 24, 174, 206, 210, 214, 207, 208, 209, 211, 212, 213, 174, 174, 215, 219, 225, 216, 223, 224, 217, 221, 222, 218, 220, 174, 226, 235, 234, 227, 228, 229, 230, 231, 232, 233, 174, 174, 174, 238, 239, 239, 239, 240, 243, 239, 29, 31, 239, 239, 239, 244, 245, 246, 33, 39, 44, 269, 46, 239, 239, 239, 247, 248, 239, 34, 239, 239, 239, 35, 239, 239, 239, 38, 261, 263, 40, 239, 239, 41, 42, 239, 270, 274, 278, 271, 272, 273, 275, 276, 277, 239, 239, 279, 283, 289, 280, 287, 288, 281, 285, 286, 282, 284, 239, 290, 299, 298, 291, 292, 293, 294, 295, 296, 297, 239, 239, 239, 302, 303, 303, 304, 303, 305, 303, 303, 303, 306, 306, 306, 307, 306, 306, 306, 308, 308, 308, 309, 308, 47, 49, 308, 308, 312, 312, 312, 313, 313, 314, 313, 315, 313, 313, 51, 53, 313, 313, 318, 318, 319, 318, 318, 320, 321, 320, 55, 57, 322, 322, 322, 328, 327, 327, 329, 330, 331, 332, 334, 337, 338, 339, 340, 327, 341, 342, 344, 346, 347, 348, 352, 354, 355, 356, 372, 377, 384, 389, 396, 403, 406, 407, 411, 405, 415, 423, 427, 429, 434, 436, 439, 327, 327, 327, 327, 327, 327, 333, 327, 333, 327, 335, 59, 336, 327, 60, 327, 327, 343, 345, 327, 349, 350, 351, 347, 353, 327, 357, 358, 367, 370, 359, 360, 361, 362, 363, 364, 365, 366, 328, 368, 369, 371, 373, 376, 374, 375, 378, 381, 379, 380, 382, 383, 385, 387, 386, 388, 390, 391, 327, 392, 393, 394, 395, 327, 397, 400, 398, 399, 401, 402, 404, 408, 409, 410, 412, 414, 413, 416, 417, 418, 420, 419, 421, 422, 424, 425, 426, 428, 430, 431, 432, 433, 435, 437, 438, 441, 440, 440, 442, 443, 445, 440, 440, 440, 444, 440, 444, 446, 440, 448, 447, 447, 451, 452, 453, 454, 447, 456, 457, 458, 459, 461, 463, 464, 465, 466, 467, 447, 449, 447, 450, 447, 447, 447, 447, 447, 455, 447, 455, 460, 447, 462, 447, 468, 468, 469, 484, 485, 471, 487, 488, 475, 489, 490, 491, 492, 493, 495, 496, 497, 498, 468, 468, 468, 468, 468, 468, 472, 477, 468, 468, 468, 468, 468, 468, 468, 468, 468, 486, 468, 486, 468, 468, 468, 468, 494, 468, 87, 91, 97, 499, 501, 504, 99, 499, 499, 500, 505, 505, 506, 507, 509, 511, 512, 505, 505, 508, 505, 508, 505, 510, 505, 505, 505, 514, 513, 513, 515, 516, 517, 519, 521, 522, 527, 534, 513, 513, 513, 513, 518, 513, 518, 513, 520, 513, 513, 514, 523, 524, 525, 526, 528, 529, 532, 530, 531, 533, 535, 536, 538, 537, 546, 547, 549, 550, 552, 554, 555, 556, 558, 559, 560, 562, 563, 584, 587, 588, 589, 657, 658, 659, 660, 661, 557, 663, 679, 684, 691, 696, 698, 704, 707, 708, 712, 706, 716, 727, 731, 734, 742, 746, 749, 750, 537, 103, 540, 537, 537, 542, 544, 545, 537, 543, 537, 537, 537, 537, 537, 104, 537, 537, 537, 537, 537, 551, 537, 551, 537, 537, 109, 537, 537, 110, 537, 537, 557, 537, 561, 537, 564, 573, 537, 111, 576, 577, 578, 537, 579, 113, 582, 114, 116, 583, 537, 565, 567, 537, 566, 537, 537, 568, 571, 572, 537, 569, 570, 537, 537, 537, 537, 580, 117, 586, 537, 537, 590, 537, 537, 537, 591, 593, 537, 592, 537, 592, 537, 594, 595, 596, 125, 131, 136, 619, 138, 537, 537, 537, 597, 598, 537, 126, 537, 537, 537, 127, 537, 537, 537, 130, 611, 613, 132, 537, 537, 133, 134, 537, 620, 624, 628, 621, 622, 623, 625, 626, 627, 537, 537, 629, 633, 639, 630, 637, 638, 631, 635, 636, 632, 634, 537, 640, 648, 653, 641, 642, 643, 644, 645, 646, 647, 649, 650, 651, 652, 537, 537, 537, 656, 140, 143, 537, 662, 537, 664, 665, 674, 677, 666, 667, 668, 669, 670, 671, 672, 673, 538, 675, 676, 678, 680, 683, 681, 682, 685, 688, 686, 687, 689, 690, 692, 694, 693, 695, 697, 699, 701, 700, 702, 703, 705, 538, 709, 710, 711, 713, 715, 714, 717, 718, 719, 724, 720, 721, 722, 537, 538, 539, 103, 723, 544, 725, 726, 728, 729, 730, 732, 733, 735, 736, 737, 740, 738, 739, 741, 743, 744, 745, 747, 748, 537, 751, 751, 752, 753, 754, 756, 751, 751, 751, 755, 751, 755, 751, 757, 751, 759, 758, 758, 760, 761, 758, 762, 764, 758, 758, 758, 758, 763, 758, 763, 765, 758, 767, 766, 766, 770, 771, 772, 766, 773, 775, 778, 779, 780, 781, 782, 766, 783, 784, 788, 811, 815, 766, 816, 818, 820, 766, 821, 822, 824, 828, 830, 831, 766, 833, 851, 856, 863, 871, 878, 885, 890, 891, 895, 889, 900, 910, 916, 919, 928, 932, 936, 937, 938, 768, 766, 769, 766, 766, 766, 766, 766, 766, 774, 766, 774, 766, 147, 777, 766, 766, 766, 766, 766, 766, 766, 785, 766, 766, 148, 150, 766, 151, 795, 803, 806, 790, 807, 808, 796, 800, 801, 766, 790, 151, 792, 793, 152, 766, 792, 766, 766, 794, 766, 797, 799, 766, 797, 798, 800, 801, 799, 766, 766, 802, 766, 766, 804, 799, 800, 801, 804, 805, 766, 797, 799, 800, 801, 766, 797, 799, 800, 801, 766, 809, 799, 800, 801, 809, 810, 766, 151, 811, 790, 812, 800, 801, 813, 799, 151, 813, 790, 814, 817, 819, 153, 154, 766, 766, 825, 826, 827, 822, 829, 766, 766, 832, 766, 766, 834, 835, 844, 849, 836, 837, 838, 839, 840, 841, 842, 843, 767, 845, 846, 847, 848, 767, 850, 852, 855, 853, 854, 767, 767, 857, 860, 858, 859, 861, 862, 767, 864, 866, 865, 867, 868, 869, 766, 766, 872, 767, 873, 766, 874, 875, 876, 877, 768, 879, 882, 880, 881, 883, 884, 886, 887, 888, 767, 892, 893, 894, 896, 898, 899, 897, 767, 901, 902, 903, 906, 904, 905, 907, 908, 909, 911, 913, 912, 914, 915, 917, 918, 920, 921, 923, 926, 922, 924, 925, 927, 929, 930, 931, 933, 934, 935, 766, 766, 939, 940, 941, 939, 943, 942, 944, 942, 945, 946, 947, 942, 942]]; - $send(self, '_lex_trans_targs=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (a == null) { + a = nil; + }; + if ($truthy(($ret_or_4 = $rb_le(a.$range().$begin_pos(), insertion_pos)))) { + return $rb_le(insertion_pos, a.$range().$end_pos()) + } else { + return $ret_or_4 + };}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + } else { + return nil + }; + }, $Rewriter_clobbered_insertion$ques$21.$$arity = 1); + + Opal.def(self, '$adjacent_insertions?', $Rewriter_adjacent_insertions$ques$23 = function(range) { + var $$24, self = this, result = nil; - - self.$attr_accessor("_lex_trans_actions"); - return self.$private("_lex_trans_actions", "_lex_trans_actions="); - })(Opal.get_singleton_class(self), $nesting); - - $writer = [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 0, 0, 0, 6, 0, 7, 0, 8, 0, 7, 0, 0, 0, 0, 8, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 9, 0, 10, 0, 0, 0, 11, 0, 7, 0, 8, 0, 7, 0, 0, 0, 0, 8, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 14, 0, 15, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, 0, 0, 0, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 29, 30, 31, 29, 32, 31, 33, 31, 29, 29, 30, 29, 34, 29, 29, 35, 29, 29, 29, 29, 29, 29, 0, 36, 37, 0, 38, 37, 39, 37, 0, 0, 36, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 43, 44, 45, 0, 0, 0, 45, 28, 46, 29, 29, 29, 46, 47, 48, 49, 0, 0, 0, 0, 0, 50, 51, 0, 52, 53, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 55, 55, 56, 0, 28, 0, 57, 0, 7, 0, 8, 0, 7, 0, 0, 0, 0, 8, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0, 58, 59, 0, 0, 0, 60, 61, 62, 63, 0, 7, 7, 64, 65, 65, 0, 0, 0, 28, 0, 0, 0, 29, 66, 29, 29, 29, 67, 68, 69, 68, 68, 68, 0, 70, 71, 70, 70, 70, 72, 73, 74, 75, 0, 76, 77, 78, 81, 82, 0, 28, 0, 7, 0, 7, 83, 84, 85, 67, 86, 0, 87, 0, 88, 89, 90, 0, 91, 92, 0, 93, 7, 7, 94, 95, 0, 0, 96, 97, 98, 99, 99, 99, 99, 99, 99, 99, 99, 100, 101, 102, 0, 0, 103, 0, 104, 105, 106, 0, 107, 108, 109, 0, 7, 0, 0, 110, 111, 0, 28, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 113, 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 116, 117, 118, 0, 119, 120, 121, 7, 7, 122, 0, 0, 123, 124, 125, 99, 99, 99, 99, 99, 99, 99, 99, 126, 127, 128, 0, 0, 129, 0, 130, 131, 132, 0, 133, 134, 135, 0, 7, 0, 0, 136, 137, 0, 28, 138, 0, 0, 0, 0, 0, 0, 0, 0, 0, 139, 140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 142, 143, 144, 0, 145, 146, 0, 147, 0, 148, 149, 150, 151, 152, 153, 0, 154, 155, 156, 157, 158, 159, 7, 160, 0, 0, 161, 162, 163, 164, 165, 166, 167, 0, 168, 7, 169, 170, 0, 0, 171, 172, 173, 174, 0, 175, 176, 177, 0, 178, 0, 0, 179, 180, 181, 182, 183, 184, 0, 28, 0, 0, 7, 7, 0, 0, 0, 185, 0, 0, 0, 0, 186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, 188, 189, 190, 191, 192, 67, 193, 0, 194, 0, 0, 0, 195, 0, 196, 197, 0, 0, 198, 0, 0, 0, 199, 0, 200, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 201, 0, 0, 0, 0, 202, 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, 7, 203, 204, 0, 0, 0, 205, 206, 207, 67, 208, 0, 28, 209, 0, 210, 211, 0, 28, 0, 0, 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 213, 0, 214, 0, 215, 216, 217, 218, 219, 67, 220, 0, 0, 221, 0, 222, 223, 224, 225, 28, 0, 27, 0, 0, 27, 0, 0, 0, 0, 0, 0, 7, 7, 7, 226, 227, 228, 229, 230, 231, 232, 0, 233, 234, 235, 236, 237, 238, 239, 240, 241, 67, 242, 0, 243, 244, 245, 246, 247, 248, 0, 0, 0, 249, 7, 7, 0, 250, 251, 252, 253, 254, 0, 0, 0, 0, 0, 255, 256, 67, 257, 0, 258, 28, 259, 260, 261, 262, 263, 264, 0, 28, 0, 0, 0, 0, 0, 0, 265, 266, 267, 268, 67, 269, 0, 270, 28, 271, 272, 273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 274, 275, 0, 8, 0, 0, 7, 276, 0, 0, 0, 0, 0, 0, 7, 7, 0, 277, 0, 277, 277, 277, 0, 0, 277, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 0, 277, 278, 279, 0, 280, 281, 0, 58, 0, 282, 0, 283, 284, 285, 286, 287, 29, 288, 289, 290, 291, 292, 67, 293, 0, 294, 295, 0, 296, 297, 0, 298, 299, 276, 300, 0, 301, 0, 0, 302, 0, 0, 0, 0, 303, 0, 0, 0, 0, 0, 0, 304, 0, 0, 305, 0, 306, 307, 0, 0, 0, 308, 0, 0, 309, 310, 311, 312, 0, 0, 0, 313, 314, 0, 315, 316, 317, 0, 7, 318, 319, 320, 0, 321, 99, 99, 99, 99, 99, 99, 99, 99, 322, 323, 324, 0, 0, 325, 0, 326, 327, 328, 0, 329, 330, 331, 0, 7, 0, 0, 332, 333, 0, 28, 334, 0, 0, 0, 0, 0, 0, 0, 0, 0, 335, 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 338, 339, 340, 0, 0, 0, 341, 28, 342, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 58, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 343, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 344, 345, 346, 347, 348, 348, 344, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 349, 350, 351, 0, 28, 0, 0, 352, 353, 354, 67, 355, 0, 356, 28, 357, 7, 358, 359, 0, 28, 360, 0, 0, 361, 362, 363, 364, 67, 365, 0, 28, 366, 367, 368, 369, 0, 28, 0, 370, 0, 7, 0, 0, 0, 0, 0, 371, 0, 0, 372, 372, 0, 373, 0, 0, 0, 374, 7, 375, 375, 375, 0, 0, 376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 377, 378, 0, 379, 380, 381, 382, 383, 384, 67, 385, 0, 386, 0, 0, 387, 388, 389, 390, 391, 392, 393, 0, 394, 395, 0, 0, 396, 397, 398, 0, 0, 399, 0, 0, 398, 400, 400, 401, 402, 0, 403, 403, 0, 404, 405, 406, 407, 0, 408, 398, 398, 409, 0, 0, 410, 410, 0, 411, 412, 0, 413, 414, 415, 415, 416, 416, 0, 0, 417, 418, 418, 419, 419, 420, 421, 421, 422, 422, 423, 424, 424, 425, 425, 0, 0, 426, 427, 428, 429, 430, 431, 431, 428, 430, 432, 372, 433, 0, 0, 0, 0, 0, 434, 435, 375, 375, 375, 436, 375, 437, 438, 28, 439, 440, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 441, 0, 0, 0, 0, 436, 0, 0, 0, 0, 0, 442, 443, 0, 0, 0, 0, 0, 0, 444, 0, 0, 0, 0, 0, 443, 445, 446, 0, 447, 0, 448, 0, 0, 0, 0, 449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 450, 0, 0, 0, 0, 0, 0, 0, 449, 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, 451, 452, 453, 7, 76, 454, 0, 455, 0, 456, 0, 0, 0, 457, 458]]; - $send(self, '_lex_trans_actions=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(self.$active_insertions()['$&'](self.$adjacent_insertion_mask(range))['$!='](0))) { + + result = $send(self.$active_queue(), 'select', [], ($$24 = function(a){var self = $$24.$$s == null ? this : $$24.$$s, $ret_or_5 = nil; - - self.$attr_accessor("_lex_to_state_actions"); - return self.$private("_lex_to_state_actions", "_lex_to_state_actions="); - })(Opal.get_singleton_class(self), $nesting); - - $writer = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 79, 0, 79, 0, 0, 0, 79, 79, 0, 0, 0, 0, 79, 0, 79, 0, 79, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 79, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 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, 79, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 0, 0, 79, 0, 0, 0, 0, 0]]; - $send(self, '_lex_to_state_actions=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (a == null) { + a = nil; + }; + if ($truthy(($ret_or_5 = a.$range()['$empty?']()))) { + return self['$adjacent?'](range, a.$range()) + } else { + return $ret_or_5 + };}, $$24.$$s = self, $$24.$$arity = 1, $$24)); + if ($truthy(result['$empty?']())) { + return nil + } else { + return result + }; + } else { + return nil + } + }, $Rewriter_adjacent_insertions$ques$23.$$arity = 1); + + Opal.def(self, '$adjacent_updates?', $Rewriter_adjacent_updates$ques$25 = function(range) { + var $$26, self = this; - - self.$attr_accessor("_lex_from_state_actions"); - return self.$private("_lex_from_state_actions", "_lex_from_state_actions="); - })(Opal.get_singleton_class(self), $nesting); - - $writer = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 80, 0, 80, 0, 0, 0, 80, 80, 0, 0, 0, 0, 80, 0, 80, 0, 80, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 80, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 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, 80, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 80, 0, 0, 80, 0, 0, 0, 0, 0]]; - $send(self, '_lex_from_state_actions=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(self.$active_clobber()['$&'](self.$adjacent_position_mask(range))['$!='](0))) { + return $send(self.$active_queue(), 'select', [], ($$26 = function(a){var self = $$26.$$s == null ? this : $$26.$$s; - - self.$attr_accessor("_lex_eof_trans"); - return self.$private("_lex_eof_trans", "_lex_eof_trans="); - })(Opal.get_singleton_class(self), $nesting); - - $writer = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 44, 44, 44, 44, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 75, 75, 75, 75, 81, 81, 81, 81, 0, 0, 0, 0, 95, 97, 99, 99, 99, 104, 104, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 169, 179, 181, 181, 181, 193, 195, 195, 195, 195, 195, 201, 193, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 205, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 223, 193, 205, 205, 205, 205, 255, 255, 255, 260, 262, 262, 262, 266, 266, 260, 266, 266, 266, 266, 266, 266, 266, 266, 266, 296, 296, 0, 309, 310, 311, 313, 315, 317, 315, 315, 0, 327, 328, 332, 332, 333, 342, 343, 344, 344, 344, 347, 347, 349, 350, 351, 351, 351, 353, 354, 355, 355, 351, 347, 347, 360, 361, 361, 361, 361, 361, 364, 364, 364, 364, 364, 364, 364, 364, 374, 375, 375, 375, 375, 387, 387, 387, 375, 375, 375, 375, 387, 387, 387, 387, 387, 387, 387, 387, 387, 398, 387, 399, 400, 400, 0, 407, 411, 411, 412, 421, 422, 423, 423, 423, 426, 426, 428, 429, 430, 430, 430, 432, 433, 434, 434, 430, 426, 426, 439, 440, 440, 440, 440, 440, 443, 443, 443, 443, 443, 443, 443, 443, 453, 454, 454, 454, 454, 466, 466, 466, 454, 454, 454, 454, 466, 466, 466, 466, 466, 466, 466, 466, 466, 477, 466, 478, 479, 479, 0, 486, 487, 0, 493, 0, 500, 504, 504, 0, 0, 513, 514, 518, 518, 0, 523, 0, 526, 0, 529, 529, 530, 531, 0, 572, 574, 575, 576, 577, 579, 581, 585, 585, 576, 576, 576, 576, 587, 576, 576, 581, 576, 576, 572, 591, 591, 591, 591, 591, 591, 581, 581, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 630, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 597, 576, 0, 673, 674, 675, 677, 673, 680, 0, 699, 701, 703, 704, 705, 706, 707, 709, 706, 706, 706, 706, 706, 712, 706, 706, 714, 712, 712, 706, 0, 733, 734, 104, 104, 737, 738, 104, 734, 734, 741, 743, 746, 734, 747, 734, 748, 749, 751, 753, 734, 741, 754, 754, 743, 754, 758, 754, 754, 754, 754, 0, 179, 766, 767, 766, 766, 0, 776, 777, 779, 781, 783, 781, 785, 0, 797, 798, 799, 800, 802, 804, 806, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 807, 0, 193, 865, 868, 869, 873, 875, 876, 877, 878, 879, 881, 884, 885, 887, 889, 892, 893, 895, 896, 193, 893, 893, 884, 884, 884, 884, 915, 918, 920, 921, 925, 928, 929, 930, 931, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 915, 884, 935, 884, 884, 884, 936, 943, 943, 945, 947, 956, 957, 958, 958, 958, 961, 961, 963, 964, 965, 965, 965, 967, 968, 969, 969, 965, 961, 961, 974, 975, 975, 975, 975, 975, 978, 978, 978, 978, 978, 978, 978, 978, 988, 989, 989, 989, 989, 1001, 1001, 1001, 989, 989, 989, 989, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1016, 1017, 1018, 1018, 193, 884, 884, 1022, 884, 879, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1076, 869, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1101, 884, 0, 1108, 1109, 1110, 1112, 1114, 1116, 0, 1125, 1126, 1127, 1128, 1130, 1125, 1133, 0, 266, 1187, 1189, 1190, 1191, 1192, 1194, 1196, 1198, 1201, 1201, 1192, 1192, 1204, 1205, 1192, 1192, 1207, 1209, 1210, 1210, 1213, 1224, 266, 1230, 1232, 1233, 1235, 1213, 1213, 1238, 1238, 1238, 1244, 1245, 1247, 1248, 1238, 1238, 1255, 1260, 1265, 1238, 1238, 1272, 1272, 1238, 1238, 1209, 1192, 1192, 1209, 1192, 1192, 1198, 266, 1289, 1290, 1290, 1290, 1290, 1290, 1290, 1296, 1198, 1299, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1339, 1340, 1300, 1300, 1344, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1300, 1398, 1192, 1399, 0, 1403, 1403, 0, 1407, 1407, 1407, 1407, 1411]]; - $send(self, '_lex_eof_trans=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (a == null) { + a = nil; + }; + return self['$adjacent?'](range, a.$range());}, $$26.$$s = self, $$26.$$arity = 1, $$26)) + } else { + return nil + } + }, $Rewriter_adjacent_updates$ques$25.$$arity = 1); + + Opal.def(self, '$replace_compatible_with_insertion?', $Rewriter_replace_compatible_with_insertion$ques$27 = function(replace, insertion) { + var self = this, $ret_or_6 = nil, $ret_or_7 = nil, offset = nil; - return self.$attr_accessor("lex_start") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [165]; - $send(self, 'lex_start=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = $rb_ge($rb_minus(replace.$replacement().$length(), replace.$range().$size()), insertion.$range().$size())))) { + + return (offset = $rb_minus(insertion.$range().$begin_pos(), replace.$range().$begin_pos())); + } else { + return $ret_or_7 + }; return nil; })()))) { + return replace.$replacement()['$[]'](offset, insertion.$replacement().$length())['$=='](insertion.$replacement()) + } else { + return $ret_or_6 + } + }, $Rewriter_replace_compatible_with_insertion$ques$27.$$arity = 2); + + Opal.def(self, '$can_merge?', $Rewriter_can_merge$ques$28 = function(action, existing) { + var $$29, self = this, range = nil; - return self.$attr_accessor("lex_error") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [0]; - $send(self, 'lex_error=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + range = action.$range(); + return $send(existing, 'all?', [], ($$29 = function(other){var self = $$29.$$s == null ? this : $$29.$$s, overlap = nil, repl1_offset = nil, repl2_offset = nil, repl1_length = nil, repl2_length = nil, replacement1 = nil, $ret_or_8 = nil, replacement2 = nil, $ret_or_9 = nil; - return self.$attr_accessor("lex_en_interp_words") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [174]; - $send(self, 'lex_en_interp_words=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (other == null) { + other = nil; + }; + overlap = range.$intersect(other.$range()); + if ($truthy(overlap['$nil?']())) { + return true;}; + repl1_offset = $rb_minus(overlap.$begin_pos(), range.$begin_pos()); + repl2_offset = $rb_minus(overlap.$begin_pos(), other.$range().$begin_pos()); + repl1_length = [$rb_minus(other.$range().$length(), repl2_offset), $rb_minus(other.$replacement().$length(), repl2_offset)].$max(); + repl2_length = [$rb_minus(range.$length(), repl1_offset), $rb_minus(action.$replacement().$length(), repl1_offset)].$max(); + replacement1 = (function() {if ($truthy(($ret_or_8 = action.$replacement()['$[]'](repl1_offset, repl1_length)))) { + return $ret_or_8 + } else { + return "".$freeze() + }; return nil; })(); + replacement2 = (function() {if ($truthy(($ret_or_9 = other.$replacement()['$[]'](repl2_offset, repl2_length)))) { + return $ret_or_9 + } else { + return "".$freeze() + }; return nil; })(); + return replacement1['$=='](replacement2);}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + }, $Rewriter_can_merge$ques$28.$$arity = 2); + + Opal.def(self, '$merge_actions', $Rewriter_merge_actions$30 = function $$merge_actions(action, existing) { + var $$31, $$32, self = this, actions = nil, range = nil; - return self.$attr_accessor("lex_en_interp_string") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [239]; - $send(self, 'lex_en_interp_string=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + actions = $send(existing.$push(action), 'sort_by', [], ($$31 = function(a){var self = $$31.$$s == null ? this : $$31.$$s; - return self.$attr_accessor("lex_en_plain_words") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [303]; - $send(self, 'lex_en_plain_words=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (a == null) { + a = nil; + }; + return [a.$range().$begin_pos(), a.$range().$end_pos()];}, $$31.$$s = self, $$31.$$arity = 1, $$31)); + range = actions.$first().$range().$join($send(actions, 'max_by', [], ($$32 = function(a){var self = $$32.$$s == null ? this : $$32.$$s; - return self.$attr_accessor("lex_en_plain_string") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [306]; - $send(self, 'lex_en_plain_string=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (a == null) { + a = nil; + }; + return a.$range().$end_pos();}, $$32.$$s = self, $$32.$$arity = 1, $$32)).$range()); + return $$$($$($nesting, 'Rewriter'), 'Action').$new(range, self.$merge_replacements(actions)); + }, $Rewriter_merge_actions$30.$$arity = 2); + + Opal.def(self, '$merge_actions!', $Rewriter_merge_actions$excl$33 = function(action, existing) { + var self = this, new_action = nil; - return self.$attr_accessor("lex_en_interp_backslash_delimited") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [308]; - $send(self, 'lex_en_interp_backslash_delimited=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + new_action = self.$merge_actions(action, existing); + self.$active_queue().$delete(action); + return self.$replace_actions(existing, new_action); + }, $Rewriter_merge_actions$excl$33.$$arity = 2); + + Opal.def(self, '$merge_replacements', $Rewriter_merge_replacements$34 = function $$merge_replacements(actions) { + var $$35, self = this, result = nil, prev_act = nil; - return self.$attr_accessor("lex_en_plain_backslash_delimited") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [312]; - $send(self, 'lex_en_plain_backslash_delimited=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + result = "".$dup(); + prev_act = nil; + $send(actions, 'each', [], ($$35 = function(act){var self = $$35.$$s == null ? this : $$35.$$s, $ret_or_10 = nil, prev_end = nil, offset = nil; - return self.$attr_accessor("lex_en_interp_backslash_delimited_words") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [313]; - $send(self, 'lex_en_interp_backslash_delimited_words=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (act == null) { + act = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_10 = prev_act['$!']()))) { + return $ret_or_10 + } else { + return act.$range()['$disjoint?'](prev_act.$range()) + }; return nil; })())) { + result['$<<'](act.$replacement()) + } else { + + prev_end = [$rb_plus(prev_act.$range().$begin_pos(), prev_act.$replacement().$length()), prev_act.$range().$end_pos()].$max(); + offset = $rb_minus(prev_end, act.$range().$begin_pos()); + if ($truthy($rb_lt(offset, act.$replacement().$size()))) { + result['$<<'](act.$replacement()['$[]'](Opal.Range.$new(offset, -1, false)))}; + }; + return (prev_act = act);}, $$35.$$s = self, $$35.$$arity = 1, $$35)); + return result; + }, $Rewriter_merge_replacements$34.$$arity = 1); + + Opal.def(self, '$replace_actions', $Rewriter_replace_actions$36 = function $$replace_actions(old, updated) { + var $$37, self = this; - return self.$attr_accessor("lex_en_plain_backslash_delimited_words") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [318]; - $send(self, 'lex_en_plain_backslash_delimited_words=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + $send(old, 'each', [], ($$37 = function(act){var self = $$37.$$s == null ? this : $$37.$$s; - return self.$attr_accessor("lex_en_regexp_modifiers") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [320]; - $send(self, 'lex_en_regexp_modifiers=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (act == null) { + act = nil; + }; + return self.$active_queue().$delete(act);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); + return self.$active_queue()['$<<'](updated); + }, $Rewriter_replace_actions$36.$$arity = 2); + + Opal.def(self, '$raise_clobber_error', $Rewriter_raise_clobber_error$38 = function $$raise_clobber_error(action, existing) { + var self = this, diagnostic = nil; - return self.$attr_accessor("lex_en_expr_variable") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [322]; - $send(self, 'lex_en_expr_variable=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + diagnostic = $$($nesting, 'Diagnostic').$new("error", "invalid_action", $hash2(["action"], {"action": action}), action.$range()); + self.diagnostics.$process(diagnostic); + diagnostic = $$($nesting, 'Diagnostic').$new("note", "clobbered", $hash2(["action"], {"action": existing['$[]'](0)}), existing['$[]'](0).$range()); + self.diagnostics.$process(diagnostic); + return self.$raise($$($nesting, 'ClobberingError'), "Parser::Source::Rewriter detected clobbering"); + }, $Rewriter_raise_clobber_error$38.$$arity = 2); + + Opal.def(self, '$in_transaction?', $Rewriter_in_transaction$ques$39 = function() { + var self = this; - return self.$attr_accessor("lex_en_expr_fname") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [327]; - $send(self, 'lex_en_expr_fname=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.pending_queue['$nil?']()['$!']() + }, $Rewriter_in_transaction$ques$39.$$arity = 0); + + Opal.def(self, '$active_queue', $Rewriter_active_queue$40 = function $$active_queue() { + var self = this, $ret_or_11 = nil; - return self.$attr_accessor("lex_en_expr_endfn") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [440]; - $send(self, 'lex_en_expr_endfn=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(($ret_or_11 = self.pending_queue))) { + return $ret_or_11 + } else { + return self.queue + } + }, $Rewriter_active_queue$40.$$arity = 0); + + Opal.def(self, '$active_clobber', $Rewriter_active_clobber$41 = function $$active_clobber() { + var self = this, $ret_or_12 = nil; - return self.$attr_accessor("lex_en_expr_dot") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [447]; - $send(self, 'lex_en_expr_dot=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(($ret_or_12 = self.pending_clobber))) { + return $ret_or_12 + } else { + return self.clobber + } + }, $Rewriter_active_clobber$41.$$arity = 0); + + Opal.def(self, '$active_insertions', $Rewriter_active_insertions$42 = function $$active_insertions() { + var self = this, $ret_or_13 = nil; - return self.$attr_accessor("lex_en_expr_arg") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [468]; - $send(self, 'lex_en_expr_arg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(($ret_or_13 = self.pending_insertions))) { + return $ret_or_13 + } else { + return self.insertions + } + }, $Rewriter_active_insertions$42.$$arity = 0); + + Opal.def(self, '$active_clobber=', $Rewriter_active_clobber$eq$43 = function(value) { + var self = this; - return self.$attr_accessor("lex_en_expr_cmdarg") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [499]; - $send(self, 'lex_en_expr_cmdarg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(self.pending_clobber)) { + return (self.pending_clobber = value) + } else { + return (self.clobber = value) + } + }, $Rewriter_active_clobber$eq$43.$$arity = 1); + + Opal.def(self, '$active_insertions=', $Rewriter_active_insertions$eq$44 = function(value) { + var self = this; - return self.$attr_accessor("lex_en_expr_endarg") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [505]; - $send(self, 'lex_en_expr_endarg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(self.pending_insertions)) { + return (self.pending_insertions = value) + } else { + return (self.insertions = value) + } + }, $Rewriter_active_insertions$eq$44.$$arity = 1); + + Opal.def(self, '$adjacent?', $Rewriter_adjacent$ques$45 = function(range1, range2) { + var self = this, $ret_or_14 = nil; - return self.$attr_accessor("lex_en_expr_mid") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [513]; - $send(self, 'lex_en_expr_mid=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(($ret_or_14 = $rb_le(range1.$begin_pos(), range2.$end_pos())))) { + return $rb_le(range2.$begin_pos(), range1.$end_pos()) + } else { + return $ret_or_14 + } + }, $Rewriter_adjacent$ques$45.$$arity = 2); + Opal.const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Source::Rewriter is deprecated.", "Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()); + return self.$extend($$($nesting, 'Deprecation')); + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; - return self.$attr_accessor("lex_en_expr_beg") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [537]; - $send(self, 'lex_en_expr_beg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); +Opal.modules["parser/source/rewriter/action"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; - return self.$attr_accessor("lex_en_expr_labelarg") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [751]; - $send(self, 'lex_en_expr_labelarg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + Opal.add_stubs(['$include', '$attr_reader', '$alias_method', '$freeze', '$<=>', '$begin_pos', '$range', '$zero?', '$order', '$==', '$length', '$empty?', '$inspect']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); - return self.$attr_accessor("lex_en_expr_value") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [758]; - $send(self, 'lex_en_expr_value=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - return self.$attr_accessor("lex_en_expr_end") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [766]; - $send(self, 'lex_en_expr_end=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); - return self.$attr_accessor("lex_en_leading_dot") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [939]; - $send(self, 'lex_en_leading_dot=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - return self.$attr_accessor("lex_en_line_comment") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [942]; - $send(self, 'lex_en_line_comment=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Action'); - return self.$attr_accessor("lex_en_line_begin") - })(Opal.get_singleton_class(self), $nesting); - - $writer = [165]; - $send(self, 'lex_en_line_begin=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - Opal.const_set($nesting[0], 'ESCAPES', $hash("a".$ord(), "\u0007", "b".$ord(), "\b", "e".$ord(), "\u001b", "f".$ord(), "\f", "n".$ord(), "\n", "r".$ord(), "\r", "s".$ord(), " ", "t".$ord(), "\t", "v".$ord(), "\v", "\\".$ord(), "\\").$freeze()); - Opal.const_set($nesting[0], 'REGEXP_META_CHARACTERS', $send(Opal.const_get_relative($nesting, 'Regexp'), 'union', Opal.to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()); - Opal.const_set($nesting[0], 'RBRACE_OR_RBRACK', ["}", "]"].$freeze()); - self.$attr_reader("source_buffer"); - self.$attr_accessor("diagnostics"); - self.$attr_accessor("static_env"); - self.$attr_accessor("force_utf32"); - self.$attr_accessor("cond", "cmdarg", "in_kwarg"); - self.$attr_accessor("tokens", "comments"); - - Opal.defn(self, '$initialize', TMP_Lexer_initialize_1 = function $$initialize(version) { - var self = this; - - - self.version = version; - self.static_env = nil; - self.tokens = nil; - self.comments = nil; - return self.$reset(); - }, TMP_Lexer_initialize_1.$$arity = 1); - - Opal.defn(self, '$reset', TMP_Lexer_reset_2 = function $$reset(reset_state) { - var self = this; + var $nesting = [self].concat($parent_nesting), $Action_initialize$1, $Action_$lt_eq_gt$2, $Action_to_s$3; - if (reset_state == null) { - reset_state = true; - } - - if ($truthy(reset_state)) { + self.$$prototype.range = self.$$prototype.replacement = nil; - self.cs = self.$class().$lex_en_line_begin(); - self.cond = Opal.const_get_relative($nesting, 'StackState').$new("cond"); - self.cmdarg = Opal.const_get_relative($nesting, 'StackState').$new("cmdarg"); - self.cond_stack = []; - self.cmdarg_stack = [];}; - self.force_utf32 = false; - self.source_pts = nil; - self.p = 0; - self.ts = nil; - self.te = nil; - self.act = 0; - self.stack = []; - self.top = 0; - self.token_queue = []; - self.literal_stack = []; - self.eq_begin_s = nil; - self.sharp_s = nil; - self.newline_s = nil; - self.num_base = nil; - self.num_digits_s = nil; - self.num_suffix_s = nil; - self.num_xfrm = nil; - self.escape_s = nil; - self.escape = nil; - self.herebody_s = nil; - self.paren_nest = 0; - self.lambda_stack = []; - self.dedent_level = nil; - self.command_state = false; - return (self.in_kwarg = false); - }, TMP_Lexer_reset_2.$$arity = -1); - - Opal.defn(self, '$source_buffer=', TMP_Lexer_source_buffer$eq_3 = function(source_buffer) { - var $a, $b, self = this, source = nil; + self.$include($$($nesting, 'Comparable')); + self.$attr_reader("range", "replacement", "allow_multiple_insertions", "order"); + self.$alias_method("allow_multiple_insertions?", "allow_multiple_insertions"); + + Opal.def(self, '$initialize', $Action_initialize$1 = function $$initialize(range, replacement, allow_multiple_insertions, order) { + var self = this; - - self.source_buffer = source_buffer; - if ($truthy(self.source_buffer)) { + + + if (replacement == null) { + replacement = ""; + }; + + if (allow_multiple_insertions == null) { + allow_multiple_insertions = false; + }; + + if (order == null) { + order = 0; + }; + self.range = range; + self.replacement = replacement; + self.allow_multiple_insertions = allow_multiple_insertions; + self.order = order; + return self.$freeze(); + }, $Action_initialize$1.$$arity = -2); - source = self.source_buffer.$source(); - if ($truthy(($truthy($a = (($b = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil)) ? source.$encoding()['$=='](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8')) : $a))) { - self.source_pts = source.$unpack("U*") - } else { - self.source_pts = source.$unpack("C*") - }; - if (self.source_pts['$[]'](0)['$=='](65279)) { - return (self.p = 1) + Opal.def(self, '$<=>', $Action_$lt_eq_gt$2 = function(other) { + var self = this, result = nil; + + + result = self.$range().$begin_pos()['$<=>'](other.$range().$begin_pos()); + if ($truthy(result['$zero?']())) { } else { - return nil - }; - } else { - return (self.source_pts = nil) - }; - }, TMP_Lexer_source_buffer$eq_3.$$arity = 1); - - Opal.defn(self, '$encoding', TMP_Lexer_encoding_4 = function $$encoding() { - var self = this; + return result + }; + return self.$order()['$<=>'](other.$order()); + }, $Action_$lt_eq_gt$2.$$arity = 1); + return (Opal.def(self, '$to_s', $Action_to_s$3 = function $$to_s() { + var self = this, $ret_or_1 = nil; - return self.source_buffer.$source().$encoding() - }, TMP_Lexer_encoding_4.$$arity = 0); - Opal.const_set($nesting[0], 'LEX_STATES', $hash2(["line_begin", "expr_dot", "expr_fname", "expr_value", "expr_beg", "expr_mid", "expr_arg", "expr_cmdarg", "expr_end", "expr_endarg", "expr_endfn", "expr_labelarg", "interp_string", "interp_words", "plain_string", "plain_words"], {"line_begin": self.$lex_en_line_begin(), "expr_dot": self.$lex_en_expr_dot(), "expr_fname": self.$lex_en_expr_fname(), "expr_value": self.$lex_en_expr_value(), "expr_beg": self.$lex_en_expr_beg(), "expr_mid": self.$lex_en_expr_mid(), "expr_arg": self.$lex_en_expr_arg(), "expr_cmdarg": self.$lex_en_expr_cmdarg(), "expr_end": self.$lex_en_expr_end(), "expr_endarg": self.$lex_en_expr_endarg(), "expr_endfn": self.$lex_en_expr_endfn(), "expr_labelarg": self.$lex_en_expr_labelarg(), "interp_string": self.$lex_en_interp_string(), "interp_words": self.$lex_en_interp_words(), "plain_string": self.$lex_en_plain_string(), "plain_words": self.$lex_en_plain_string()})); - - Opal.defn(self, '$state', TMP_Lexer_state_5 = function $$state() { - var self = this; + if ($truthy((function() {if ($truthy(($ret_or_1 = self.range.$length()['$=='](0)))) { + return self.replacement['$empty?']() + } else { + return $ret_or_1 + }; return nil; })())) { + return "do nothing" + } else if (self.range.$length()['$=='](0)) { + return "" + "insert " + (self.replacement.$inspect()) + } else if ($truthy(self.replacement['$empty?']())) { + return "" + "remove " + (self.range.$length()) + " character(s)" + } else { + return "" + "replace " + (self.range.$length()) + " character(s) with " + (self.replacement.$inspect()) + } + }, $Action_to_s$3.$$arity = 0), nil) && 'to_s'; + })($$($nesting, 'Rewriter'), null, $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; - return Opal.const_get_relative($nesting, 'LEX_STATES').$invert().$fetch(self.cs, self.cs) - }, TMP_Lexer_state_5.$$arity = 0); - - Opal.defn(self, '$state=', TMP_Lexer_state$eq_6 = function(state) { - var self = this; +Opal.modules["parser/source/tree_rewriter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $lambda = Opal.lambda, $gvars = Opal.gvars, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range, $hash = Opal.hash, $slice = Opal.slice; - return (self.cs = Opal.const_get_relative($nesting, 'LEX_STATES').$fetch(state)) - }, TMP_Lexer_state$eq_6.$$arity = 1); - - Opal.defn(self, '$push_cmdarg', TMP_Lexer_push_cmdarg_7 = function $$push_cmdarg() { - var self = this; + Opal.add_stubs(['$attr_reader', '$new', '$puts', '$render', '$consumer=', '$-', '$freeze', '$check_policy_validity', '$method', '$adjust', '$source_range', '$empty?', '$==', '$source_buffer', '$raise', '$combine', '$action_root', '$merge!', '$dup', '$contract', '$+', '$begin_pos', '$range', '$end_pos', '$check_range_validity', '$moved', '$to_s', '$replace', '$wrap', '$source', '$each', '$ordered_replacements', '$<<', '$[]', '$length', '$join', '$nested_actions', '$class', '$name', '$action_summary', '$warn_of_deprecation', '$insert_before', '$insert_after', '$extend', '$protected', '$private', '$as_replacements', '$size', '$===', '$first', '$map', '$to_range', '$inspect', '$values', '$<', '$>', '$trigger_policy', '$process']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); - - self.cmdarg_stack.$push(self.cmdarg); - return (self.cmdarg = Opal.const_get_relative($nesting, 'StackState').$new("" + "cmdarg." + (self.cmdarg_stack.$count()))); - }, TMP_Lexer_push_cmdarg_7.$$arity = 0); - - Opal.defn(self, '$pop_cmdarg', TMP_Lexer_pop_cmdarg_8 = function $$pop_cmdarg() { - var self = this; + var $nesting = [self].concat($parent_nesting); - return (self.cmdarg = self.cmdarg_stack.$pop()) - }, TMP_Lexer_pop_cmdarg_8.$$arity = 0); - - Opal.defn(self, '$push_cond', TMP_Lexer_push_cond_9 = function $$push_cond() { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); - - self.cond_stack.$push(self.cond); - return (self.cond = Opal.const_get_relative($nesting, 'StackState').$new("" + "cond." + (self.cond_stack.$count()))); - }, TMP_Lexer_push_cond_9.$$arity = 0); - - Opal.defn(self, '$pop_cond', TMP_Lexer_pop_cond_10 = function $$pop_cond() { - var self = this; + var $nesting = [self].concat($parent_nesting); - return (self.cond = self.cond_stack.$pop()) - }, TMP_Lexer_pop_cond_10.$$arity = 0); - - Opal.defn(self, '$dedent_level', TMP_Lexer_dedent_level_11 = function $$dedent_level() { - var $a, self = this, dedent_level = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'TreeRewriter'); - - $a = [self.dedent_level, nil], (dedent_level = $a[0]), (self.dedent_level = $a[1]), $a; - return dedent_level; - }, TMP_Lexer_dedent_level_11.$$arity = 0); - - Opal.defn(self, '$advance', TMP_Lexer_advance_36 = function $$advance() { - var $a, $b, $c, $d, TMP_12, TMP_13, TMP_14, TMP_15, TMP_16, TMP_17, TMP_18, TMP_19, TMP_20, $e, $f, $g, $h, $i, $j, $k, $l, $m, $n, $o, TMP_21, $p, $q, $r, $s, $t, $u, TMP_22, TMP_23, TMP_24, $v, $w, TMP_25, TMP_26, TMP_27, $x, $y, TMP_28, TMP_29, TMP_30, TMP_31, TMP_32, TMP_33, TMP_34, TMP_35, self = this, klass = nil, _lex_trans_keys = nil, _lex_key_spans = nil, _lex_index_offsets = nil, _lex_indicies = nil, _lex_trans_targs = nil, _lex_trans_actions = nil, _lex_to_state_actions = nil, _lex_from_state_actions = nil, _lex_eof_trans = nil, pe = nil, p = nil, eof = nil, testEof = nil, _slen = nil, _trans = nil, _keys = nil, _inds = nil, _acts = nil, _nacts = nil, _goto_level = nil, _resume = nil, _eof_trans = nil, _again = nil, _test_eof = nil, _out = nil, $case = nil, _wide = nil, tm = nil, heredoc_e = nil, current_literal = nil, $writer = nil, line = nil, string = nil, lookahead = nil, token = nil, escaped_char = nil, unknown_options = nil, type = nil, delimiter = nil, escape = nil, ident = nil, value = nil, digits = nil, invalid_idx = nil, invalid_s = nil, codepoints = nil, codepoint_s = nil, codepoint = nil, new_herebody_s = nil, indent = nil, dedent_body = nil; + var $nesting = [self].concat($parent_nesting), $TreeRewriter_initialize$1, $TreeRewriter_empty$ques$3, $TreeRewriter_merge$excl$4, $TreeRewriter_merge$5, $TreeRewriter_import$excl$6, $TreeRewriter_replace$7, $TreeRewriter_wrap$8, $TreeRewriter_remove$9, $TreeRewriter_insert_before$10, $TreeRewriter_insert_after$11, $TreeRewriter_process$12, $TreeRewriter_as_replacements$14, $TreeRewriter_as_nested_actions$15, $TreeRewriter_transaction$16, $TreeRewriter_in_transaction$ques$17, $TreeRewriter_inspect$18, $TreeRewriter_insert_before_multi$19, $TreeRewriter_insert_after_multi$20, $TreeRewriter_action_summary$21, $TreeRewriter_check_policy_validity$23, $TreeRewriter_combine$24, $TreeRewriter_check_range_validity$25, $TreeRewriter_enforce_policy$26, $TreeRewriter_trigger_policy$27; - - if ($truthy(self.token_queue['$any?']())) { - return self.token_queue.$shift()}; - klass = self.$class(); - _lex_trans_keys = klass.$send("_lex_trans_keys"); - _lex_key_spans = klass.$send("_lex_key_spans"); - _lex_index_offsets = klass.$send("_lex_index_offsets"); - _lex_indicies = klass.$send("_lex_indicies"); - _lex_trans_targs = klass.$send("_lex_trans_targs"); - _lex_trans_actions = klass.$send("_lex_trans_actions"); - _lex_to_state_actions = klass.$send("_lex_to_state_actions"); - _lex_from_state_actions = klass.$send("_lex_from_state_actions"); - _lex_eof_trans = klass.$send("_lex_eof_trans"); - pe = $rb_plus(self.source_pts.$size(), 2); - $a = [self.p, pe], (p = $a[0]), (eof = $a[1]), $a; - self.command_state = ($truthy($a = self.cs['$=='](klass.$lex_en_expr_value())) ? $a : self.cs['$=='](klass.$lex_en_line_begin())); - - testEof = false; - $b = nil, $a = Opal.to_ary($b), (_slen = ($a[0] == null ? nil : $a[0])), (_trans = ($a[1] == null ? nil : $a[1])), (_keys = ($a[2] == null ? nil : $a[2])), (_inds = ($a[3] == null ? nil : $a[3])), (_acts = ($a[4] == null ? nil : $a[4])), (_nacts = ($a[5] == null ? nil : $a[5])), $b; - _goto_level = 0; - _resume = 10; - _eof_trans = 15; - _again = 20; - _test_eof = 30; - _out = 40; - while ($truthy(true)) { + self.$$prototype.diagnostics = self.$$prototype.source_buffer = self.$$prototype.enforcer = self.$$prototype.action_root = self.$$prototype.in_transaction = self.$$prototype.policy = nil; - if ($truthy($rb_le(_goto_level, 0))) { + self.$attr_reader("source_buffer"); + self.$attr_reader("diagnostics"); + + Opal.def(self, '$initialize', $TreeRewriter_initialize$1 = function $$initialize(source_buffer, $kwargs) { + var crossing_deletions, different_replacements, swallowed_insertions, $$2, self = this, $writer = nil, all_encompassing_range = nil; + - if (p['$=='](pe)) { + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + crossing_deletions = $kwargs.$$smap["crossing_deletions"]; + if (crossing_deletions == null) { + crossing_deletions = "accept" + }; + + different_replacements = $kwargs.$$smap["different_replacements"]; + if (different_replacements == null) { + different_replacements = "accept" + }; + + swallowed_insertions = $kwargs.$$smap["swallowed_insertions"]; + if (swallowed_insertions == null) { + swallowed_insertions = "accept" + }; + self.diagnostics = $$$($$($nesting, 'Diagnostic'), 'Engine').$new(); + + $writer = [$lambda(($$2 = function(diag){var self = $$2.$$s == null ? this : $$2.$$s; + if ($gvars.stderr == null) $gvars.stderr = nil; + - _goto_level = _test_eof; - continue;;}; - if (self.cs['$=='](0)) { - _goto_level = _out; - continue;;};}; - if ($truthy($rb_le(_goto_level, _resume))) { + if (diag == null) { + diag = nil; + }; + return $gvars.stderr.$puts(diag.$render());}, $$2.$$s = self, $$2.$$arity = 1, $$2))]; + $send(self.diagnostics, 'consumer=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.source_buffer = source_buffer; + self.in_transaction = false; + self.policy = $hash2(["crossing_deletions", "different_replacements", "swallowed_insertions"], {"crossing_deletions": crossing_deletions, "different_replacements": different_replacements, "swallowed_insertions": swallowed_insertions}).$freeze(); + self.$check_policy_validity(); + self.enforcer = self.$method("enforce_policy"); + all_encompassing_range = self.source_buffer.$source_range().$adjust($hash2(["begin_pos", "end_pos"], {"begin_pos": -1, "end_pos": 1})); + return (self.action_root = $$$($$($nesting, 'TreeRewriter'), 'Action').$new(all_encompassing_range, self.enforcer)); + }, $TreeRewriter_initialize$1.$$arity = -2); + + Opal.def(self, '$empty?', $TreeRewriter_empty$ques$3 = function() { + var self = this; + + return self.action_root['$empty?']() + }, $TreeRewriter_empty$ques$3.$$arity = 0); + + Opal.def(self, '$merge!', $TreeRewriter_merge$excl$4 = function(with$) { + var self = this; + - $case = _lex_from_state_actions['$[]'](self.cs); - if ((80)['$===']($case)) { - self.ts = p;}; - _keys = self.cs['$<<'](1); - _inds = _lex_index_offsets['$[]'](self.cs); - _slen = _lex_key_spans['$[]'](self.cs); - _wide = ($truthy($b = self.source_pts['$[]'](p)) ? $b : 0); - _trans = (function() {if ($truthy(($truthy($b = ($truthy($c = $rb_gt(_slen, 0)) ? $rb_le(_lex_trans_keys['$[]'](_keys), _wide) : $c)) ? $rb_le(_wide, _lex_trans_keys['$[]']($rb_plus(_keys, 1))) : $b))) { - return _lex_indicies['$[]']($rb_minus($rb_plus(_inds, _wide), _lex_trans_keys['$[]'](_keys))) - } else { - return _lex_indicies['$[]']($rb_plus(_inds, _slen)) - }; return nil; })();}; - if ($truthy($rb_le(_goto_level, _eof_trans))) { + if (self.$source_buffer()['$=='](with$.$source_buffer())) { + } else { + self.$raise("TreeRewriter are not for the same source_buffer") + }; + self.action_root = self.action_root.$combine(with$.$action_root()); + return self; + }, $TreeRewriter_merge$excl$4.$$arity = 1); + + Opal.def(self, '$merge', $TreeRewriter_merge$5 = function $$merge(with$) { + var self = this; + + return self.$dup()['$merge!'](with$) + }, $TreeRewriter_merge$5.$$arity = 1); + + Opal.def(self, '$import!', $TreeRewriter_import$excl$6 = function(foreign_rewriter, $kwargs) { + var offset, self = this, contracted = nil, merge_effective_range = nil, merge_with = nil; + - self.cs = _lex_trans_targs['$[]'](_trans); - if ($truthy(_lex_trans_actions['$[]'](_trans)['$!='](0))) { - $case = _lex_trans_actions['$[]'](_trans); - if ((28)['$===']($case)) { - self.newline_s = p;} - else if ((99)['$===']($case)) { - self.escape_s = p; - self.escape = nil;} - else if ((29)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};} - else if ((67)['$===']($case)) { - self.sharp_s = $rb_minus(p, 1);} - else if ((70)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());} - else if ((279)['$===']($case)) { - tm = p;} - else if ((36)['$===']($case)) { - tm = p;} - else if ((38)['$===']($case)) { - tm = p;} - else if ((40)['$===']($case)) { - tm = p;} - else if ((55)['$===']($case)) { - heredoc_e = p;} - else if ((319)['$===']($case)) { - self.escape = nil;} - else if ((348)['$===']($case)) { - tm = p;} - else if ((424)['$===']($case)) { - self.num_base = 16; - self.num_digits_s = p;} - else if ((418)['$===']($case)) { - self.num_base = 10; - self.num_digits_s = p;} - else if ((421)['$===']($case)) { - self.num_base = 8; - self.num_digits_s = p;} - else if ((415)['$===']($case)) { - self.num_base = 2; - self.num_digits_s = p;} - else if ((430)['$===']($case)) { - self.num_base = 10; - self.num_digits_s = self.ts;} - else if ((398)['$===']($case)) { - self.num_base = 8; - self.num_digits_s = self.ts;} - else if ((410)['$===']($case)) { - self.num_suffix_s = p;} - else if ((405)['$===']($case)) { - self.num_suffix_s = p;} - else if ((403)['$===']($case)) { - self.num_suffix_s = p;} - else if ((76)['$===']($case)) { - tm = p;} - else if ((7)['$===']($case)) { - self.te = $rb_plus(p, 1);} - else if ((96)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { - - - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + offset = $kwargs.$$smap["offset"]; + if (offset == null) { + offset = 0 + }; + if ($truthy(foreign_rewriter['$empty?']())) { + return self}; + contracted = foreign_rewriter.$action_root().$contract(); + merge_effective_range = $$$($$$($$$('::', 'Parser'), 'Source'), 'Range').$new(self.source_buffer, $rb_plus(contracted.$range().$begin_pos(), offset), $rb_plus(contracted.$range().$end_pos(), offset)); + self.$check_range_validity(merge_effective_range); + merge_with = contracted.$moved(self.source_buffer, offset); + self.action_root = self.action_root.$combine(merge_with); + return self; + }, $TreeRewriter_import$excl$6.$$arity = -2); + + Opal.def(self, '$replace', $TreeRewriter_replace$7 = function $$replace(range, content) { + var self = this; + + return self.$combine(range, $hash2(["replacement"], {"replacement": content})) + }, $TreeRewriter_replace$7.$$arity = 2); + + Opal.def(self, '$wrap', $TreeRewriter_wrap$8 = function $$wrap(range, insert_before, insert_after) { + var self = this; + + return self.$combine(range, $hash2(["insert_before", "insert_after"], {"insert_before": insert_before.$to_s(), "insert_after": insert_after.$to_s()})) + }, $TreeRewriter_wrap$8.$$arity = 3); + + Opal.def(self, '$remove', $TreeRewriter_remove$9 = function $$remove(range) { + var self = this; + + return self.$replace(range, "".$freeze()) + }, $TreeRewriter_remove$9.$$arity = 1); + + Opal.def(self, '$insert_before', $TreeRewriter_insert_before$10 = function $$insert_before(range, content) { + var self = this; + + return self.$wrap(range, content, nil) + }, $TreeRewriter_insert_before$10.$$arity = 2); + + Opal.def(self, '$insert_after', $TreeRewriter_insert_after$11 = function $$insert_after(range, content) { + var self = this; + + return self.$wrap(range, nil, content) + }, $TreeRewriter_insert_after$11.$$arity = 2); + + Opal.def(self, '$process', $TreeRewriter_process$12 = function $$process() { + var $$13, self = this, source = nil, chunks = nil, last_end = nil; + + + source = self.source_buffer.$source(); + chunks = []; + last_end = 0; + $send(self.action_root.$ordered_replacements(), 'each', [], ($$13 = function(range, replacement){var self = $$13.$$s == null ? this : $$13.$$s; + - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 758; - _goto_level = _again; - continue;;;;} - else if ((5)['$===']($case)) { - self.te = $rb_plus(p, 1); + if (range == null) { + range = nil; + }; - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; + if (replacement == null) { + replacement = nil; + }; + chunks['$<<'](source['$[]'](Opal.Range.$new(last_end,range.$begin_pos(), true)))['$<<'](replacement); + return (last_end = range.$end_pos());}, $$13.$$s = self, $$13.$$arity = 2, $$13)); + chunks['$<<'](source['$[]'](Opal.Range.$new(last_end,source.$length(), true))); + return chunks.$join(); + }, $TreeRewriter_process$12.$$arity = 0); + + Opal.def(self, '$as_replacements', $TreeRewriter_as_replacements$14 = function $$as_replacements() { + var self = this; + + return self.action_root.$ordered_replacements() + }, $TreeRewriter_as_replacements$14.$$arity = 0); + + Opal.def(self, '$as_nested_actions', $TreeRewriter_as_nested_actions$15 = function $$as_nested_actions() { + var self = this; + + return self.action_root.$nested_actions() + }, $TreeRewriter_as_nested_actions$15.$$arity = 0); + + Opal.def(self, '$transaction', $TreeRewriter_transaction$16 = function $$transaction() { + var $iter = $TreeRewriter_transaction$16.$$p, $yield = $iter || nil, self = this, previous = nil, restore_root = nil; + + if ($iter) $TreeRewriter_transaction$16.$$p = null; + return (function() { try { + + if (($yield !== nil)) { + } else { + self.$raise("" + (self.$class()) + "#" + ("transaction") + " requires block") + }; + previous = self.in_transaction; + self.in_transaction = true; + restore_root = self.action_root; + Opal.yieldX($yield, []); + restore_root = nil; + return self; + } finally { + ((function() {if ($truthy(restore_root)) { + return (self.action_root = restore_root) + } else { + return nil + }; return nil; })(), (self.in_transaction = previous)) + }; })() + }, $TreeRewriter_transaction$16.$$arity = 0); + + Opal.def(self, '$in_transaction?', $TreeRewriter_in_transaction$ques$17 = function() { + var self = this; + + return self.in_transaction + }, $TreeRewriter_in_transaction$ques$17.$$arity = 0); + + Opal.def(self, '$inspect', $TreeRewriter_inspect$18 = function $$inspect() { + var self = this; + + return "" + "#<" + (self.$class()) + " " + (self.$source_buffer().$name()) + ": " + (self.$action_summary()) + ">" + }, $TreeRewriter_inspect$18.$$arity = 0); + + Opal.def(self, '$insert_before_multi', $TreeRewriter_insert_before_multi$19 = function $$insert_before_multi(range, text) { + var self = this; + + + self.$class().$warn_of_deprecation(); + return self.$insert_before(range, text); + }, $TreeRewriter_insert_before_multi$19.$$arity = 2); + + Opal.def(self, '$insert_after_multi', $TreeRewriter_insert_after_multi$20 = function $$insert_after_multi(range, text) { + var self = this; + + + self.$class().$warn_of_deprecation(); + return self.$insert_after(range, text); + }, $TreeRewriter_insert_after_multi$20.$$arity = 2); + Opal.const_set($nesting[0], 'DEPRECATION_WARNING', ["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.", "Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()); + self.$extend($$($nesting, 'Deprecation')); + self.$protected(); + self.$attr_reader("action_root"); + self.$private(); + + Opal.def(self, '$action_summary', $TreeRewriter_action_summary$21 = function $$action_summary() { + var $$22, self = this, replacements = nil, $case = nil, suffix = nil, parts = nil; + + + replacements = self.$as_replacements(); + $case = replacements.$size(); + if ((0)['$===']($case)) {return "empty"} + else if ($range(1, 3, false)['$===']($case)) {nil} + else { + replacements = replacements.$first(3); + suffix = "…";}; + parts = $send(replacements, 'map', [], ($$22 = function($mlhs_tmp1){var self = $$22.$$s == null ? this : $$22.$$s, $a, $b, range = nil, str = nil; + - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; - _goto_level = _again; - continue;;;;} - else if ((92)['$===']($case)) { - self.te = $rb_plus(p, 1); + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; + }; + $b = $mlhs_tmp1, $a = Opal.to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (str = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy(str['$empty?']())) { + return "" + "-" + (range.$to_range()) + } else if (range.$size()['$=='](0)) { + return "" + "+" + (str.$inspect()) + "@" + (range.$begin_pos()) + } else { + return "" + "^" + (str.$inspect()) + "@" + (range.$to_range()) + };}, $$22.$$s = self, $$22.$$arity = 1, $$22.$$has_top_level_mlhs_arg = true, $$22)); + if ($truthy(suffix)) { + parts['$<<'](suffix)}; + return parts.$join(", "); + }, $TreeRewriter_action_summary$21.$$arity = 0); + Opal.const_set($nesting[0], 'ACTIONS', ["accept", "warn", "raise"].$freeze()); + + Opal.def(self, '$check_policy_validity', $TreeRewriter_check_policy_validity$23 = function $$check_policy_validity() { + var self = this, invalid = nil; + + + invalid = $rb_minus(self.policy.$values(), $$($nesting, 'ACTIONS')); + if ($truthy(invalid['$empty?']())) { + return nil + } else { + return self.$raise($$($nesting, 'ArgumentError'), "" + "Invalid policy: " + (invalid.$join(", "))) + }; + }, $TreeRewriter_check_policy_validity$23.$$arity = 0); + + Opal.def(self, '$combine', $TreeRewriter_combine$24 = function $$combine(range, attributes) { + var self = this, action = nil; + + + range = self.$check_range_validity(range); + action = $$$($$($nesting, 'TreeRewriter'), 'Action').$new(range, self.enforcer, Opal.to_hash(attributes)); + self.action_root = self.action_root.$combine(action); + return self; + }, $TreeRewriter_combine$24.$$arity = 2); + + Opal.def(self, '$check_range_validity', $TreeRewriter_check_range_validity$25 = function $$check_range_validity(range) { + var self = this, $ret_or_1 = nil; + + + if ($truthy((function() {if ($truthy(($ret_or_1 = $rb_lt(range.$begin_pos(), 0)))) { + return $ret_or_1 + } else { + return $rb_gt(range.$end_pos(), self.source_buffer.$source().$size()) + }; return nil; })())) { + self.$raise($$($nesting, 'IndexError'), "" + "The range " + (range.$to_range()) + " is outside the bounds of the source")}; + return range; + }, $TreeRewriter_check_range_validity$25.$$arity = 1); + + Opal.def(self, '$enforce_policy', $TreeRewriter_enforce_policy$26 = function $$enforce_policy(event) { + var $iter = $TreeRewriter_enforce_policy$26.$$p, $yield = $iter || nil, self = this, values = nil; + + if ($iter) $TreeRewriter_enforce_policy$26.$$p = null; + + if (self.policy['$[]'](event)['$==']("accept")) { + return nil}; + if ($truthy((values = Opal.yieldX($yield, [])))) { + } else { + return nil + }; + return self.$trigger_policy(event, Opal.to_hash(values)); + }, $TreeRewriter_enforce_policy$26.$$arity = 1); + Opal.const_set($nesting[0], 'POLICY_TO_LEVEL', $hash2(["warn", "raise"], {"warn": "warning", "raise": "error"}).$freeze()); + return (Opal.def(self, '$trigger_policy', $TreeRewriter_trigger_policy$27 = function $$trigger_policy(event, $kwargs) { + var range, conflict, arguments$, $a, $b, self = this, action = nil, $ret_or_2 = nil, diag = nil, highlights = nil; + + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + range = $kwargs.$$smap["range"]; + if (range == null) { + range = self.$raise() + }; + + conflict = $kwargs.$$smap["conflict"]; + if (conflict == null) { + conflict = nil + }; + + arguments$ = Opal.kwrestargs($kwargs, {'range': true,'conflict': true});; + action = (function() {if ($truthy(($ret_or_2 = self.policy['$[]'](event)))) { + return $ret_or_2 + } else { + return "raise" + }; return nil; })(); + diag = $$$($$($nesting, 'Parser'), 'Diagnostic').$new($$($nesting, 'POLICY_TO_LEVEL')['$[]'](action), event, arguments$, range); + self.diagnostics.$process(diag); + if ($truthy(conflict)) { + + $b = conflict, $a = Opal.to_ary($b), (range = ($a[0] == null ? nil : $a[0])), (highlights = $slice.call($a, 1)), $b; + diag = $$$($$($nesting, 'Parser'), 'Diagnostic').$new($$($nesting, 'POLICY_TO_LEVEL')['$[]'](action), "" + (event) + "_conflict", arguments$, range, highlights); + self.diagnostics.$process(diag);}; + if (action['$==']("raise")) { + return self.$raise($$$($$($nesting, 'Parser'), 'ClobberingError'), "Parser::Source::TreeRewriter detected clobbering") + } else { + return nil + }; + }, $TreeRewriter_trigger_policy$27.$$arity = -2), nil) && 'trigger_policy'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/tree_rewriter/action"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_ge(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); + } + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; + + Opal.add_stubs(['$attr_reader', '$freeze', '$empty?', '$do_combine', '$==', '$<<', '$begin', '$concat', '$flat_map', '$to_proc', '$end', '$!', '$insert_before', '$insert_after', '$replacement', '$raise', '$insertion?', '$with', '$begin_pos', '$range', '$first', '$children', '$end_pos', '$last', '$new', '$+', '$map', '$moved', '$protected', '$swallow', '$class', '$merge', '$place_in_hierarchy', '$analyse_hierarchy', '$[]', '$fuse_deletions', '$combine_children', '$inject', '$size', '$bsearch', '$bsearch_child_index', '$>', '$-', '$>=', '$===', '$<=>', '$<=', '$check_fusible', '$<', '$shift', '$pop', '$compact!', '$each', '$call', '$call_enforcer_for_merge', '$!=', '$select']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Action'); + + var $nesting = [self].concat($parent_nesting), $Action_initialize$1, $Action_combine$2, $Action_empty$ques$3, $Action_ordered_replacements$4, $Action_nested_actions$5, $Action_insertion$ques$6, $Action_contract$7, $Action_moved$8, $Action_with$10, $Action_do_combine$11, $Action_place_in_hierarchy$12, $Action_combine_children$13, $Action_fuse_deletions$15, $Action_bsearch_child_index$16, $Action_analyse_hierarchy$18, $Action_check_fusible$21, $Action_merge$24, $Action_call_enforcer_for_merge$25, $Action_swallow$27; + + self.$$prototype.insert_before = self.$$prototype.insert_after = self.$$prototype.children = self.$$prototype.replacement = self.$$prototype.range = self.$$prototype.enforcer = nil; + + self.$attr_reader("range", "replacement", "insert_before", "insert_after"); + + Opal.def(self, '$initialize', $Action_initialize$1 = function $$initialize(range, enforcer, $kwargs) { + var insert_before, replacement, insert_after, children, $a, self = this; + + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + insert_before = $kwargs.$$smap["insert_before"]; + if (insert_before == null) { + insert_before = "" + }; + + replacement = $kwargs.$$smap["replacement"]; + if (replacement == null) { + replacement = nil + }; + + insert_after = $kwargs.$$smap["insert_after"]; + if (insert_after == null) { + insert_after = "" + }; + + children = $kwargs.$$smap["children"]; + if (children == null) { + children = [] + }; + $a = [range, enforcer, children.$freeze(), insert_before.$freeze(), replacement, insert_after.$freeze()], (self.range = $a[0]), (self.enforcer = $a[1]), (self.children = $a[2]), (self.insert_before = $a[3]), (self.replacement = $a[4]), (self.insert_after = $a[5]), $a; + return self.$freeze(); + }, $Action_initialize$1.$$arity = -3); + + Opal.def(self, '$combine', $Action_combine$2 = function $$combine(action) { + var self = this; + + + if ($truthy(action['$empty?']())) { + return self}; + return self.$do_combine(action); + }, $Action_combine$2.$$arity = 1); + + Opal.def(self, '$empty?', $Action_empty$ques$3 = function() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + + if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.insert_before['$empty?']()))) { + return self.insert_after['$empty?']() + } else { + return $ret_or_3 + }; return nil; })()))) { + return self.children['$empty?']() + } else { + return $ret_or_2 + }; return nil; })()))) { - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + if ($truthy(($ret_or_4 = self.replacement['$=='](nil)))) { + return $ret_or_4 + } else { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; + if ($truthy(($ret_or_5 = self.replacement['$empty?']()))) { + return self.range['$empty?']() } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; + return $ret_or_5 + }; }; - if ($truthy(($truthy($b = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $b))) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((91)['$===']($case)) { - self.te = $rb_plus(p, 1); + } else { + return $ret_or_1 + } + }, $Action_empty$ques$3.$$arity = 0); + + Opal.def(self, '$ordered_replacements', $Action_ordered_replacements$4 = function $$ordered_replacements() { + var self = this, reps = nil; + + + reps = []; + if ($truthy(self.insert_before['$empty?']())) { + } else { + reps['$<<']([self.range.$begin(), self.insert_before]) + }; + if ($truthy(self.replacement)) { + reps['$<<']([self.range, self.replacement])}; + reps.$concat($send(self.children, 'flat_map', [], "ordered_replacements".$to_proc())); + if ($truthy(self.insert_after['$empty?']())) { + } else { + reps['$<<']([self.range.$end(), self.insert_after]) + }; + return reps; + }, $Action_ordered_replacements$4.$$arity = 0); + + Opal.def(self, '$nested_actions', $Action_nested_actions$5 = function $$nested_actions() { + var self = this, actions = nil, $ret_or_6 = nil; + + + actions = []; + if ($truthy((function() {if ($truthy(($ret_or_6 = self.insert_before['$empty?']()['$!']()))) { + return $ret_or_6 + } else { + return self.insert_after['$empty?']()['$!']() + }; return nil; })())) { + actions['$<<'](["wrap", self.range, self.insert_before, self.insert_after])}; + if ($truthy(self.replacement)) { + actions['$<<'](["replace", self.range, self.replacement])}; + return actions.$concat($send(self.children, 'flat_map', [], "nested_actions".$to_proc())); + }, $Action_nested_actions$5.$$arity = 0); + + Opal.def(self, '$insertion?', $Action_insertion$ques$6 = function() { + var self = this, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil; + + if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = self.$insert_before()['$empty?']()['$!']()))) { + return $ret_or_8 + } else { + return self.$insert_after()['$empty?']()['$!']() + }; return nil; })()))) { + return $ret_or_7 + } else { - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((97)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + if ($truthy(($ret_or_9 = self.$replacement()))) { + return self.$replacement()['$empty?']()['$!']() + } else { + return $ret_or_9 + }; + } + }, $Action_insertion$ques$6.$$arity = 0); + + Opal.def(self, '$contract', $Action_contract$7 = function $$contract() { + var self = this, range = nil; + + + if ($truthy(self['$empty?']())) { + self.$raise("Empty actions can not be contracted")}; + if ($truthy(self['$insertion?']())) { + return self}; + range = self.range.$with($hash2(["begin_pos", "end_pos"], {"begin_pos": self.$children().$first().$range().$begin_pos(), "end_pos": self.$children().$last().$range().$end_pos()})); + return self.$with($hash2(["range"], {"range": range})); + }, $Action_contract$7.$$arity = 0); + + Opal.def(self, '$moved', $Action_moved$8 = function $$moved(source_buffer, offset) { + var $$9, self = this, moved_range = nil; + + + moved_range = $$$($$$($$$('::', 'Parser'), 'Source'), 'Range').$new(source_buffer, $rb_plus(self.range.$begin_pos(), offset), $rb_plus(self.range.$end_pos(), offset)); + return self.$with($hash2(["range", "children"], {"range": moved_range, "children": $send(self.$children(), 'map', [], ($$9 = function(child){var self = $$9.$$s == null ? this : $$9.$$s; + - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; + if (child == null) { + child = nil; + }; + return child.$moved(source_buffer, offset);}, $$9.$$s = self, $$9.$$arity = 1, $$9))})); + }, $Action_moved$8.$$arity = 2); + self.$protected(); + self.$attr_reader("children"); + + Opal.def(self, '$with', $Action_with$10 = function($kwargs) { + var range, enforcer, children, insert_before, replacement, insert_after, self = this; + + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + range = $kwargs.$$smap["range"]; + if (range == null) { + range = self.range + }; + + enforcer = $kwargs.$$smap["enforcer"]; + if (enforcer == null) { + enforcer = self.enforcer + }; + + children = $kwargs.$$smap["children"]; + if (children == null) { + children = self.children + }; + + insert_before = $kwargs.$$smap["insert_before"]; + if (insert_before == null) { + insert_before = self.insert_before + }; + + replacement = $kwargs.$$smap["replacement"]; + if (replacement == null) { + replacement = self.replacement + }; + + insert_after = $kwargs.$$smap["insert_after"]; + if (insert_after == null) { + insert_after = self.insert_after + }; + if ($truthy(replacement)) { + children = self.$swallow(children)}; + return self.$class().$new(range, enforcer, $hash2(["children", "insert_before", "replacement", "insert_after"], {"children": children, "insert_before": insert_before, "replacement": replacement, "insert_after": insert_after})); + }, $Action_with$10.$$arity = -1); + + Opal.def(self, '$do_combine', $Action_do_combine$11 = function $$do_combine(action) { + var self = this; + + if (action.$range()['$=='](self.range)) { + return self.$merge(action) + } else { + return self.$place_in_hierarchy(action) + } + }, $Action_do_combine$11.$$arity = 1); + + Opal.def(self, '$place_in_hierarchy', $Action_place_in_hierarchy$12 = function $$place_in_hierarchy(action) { + var self = this, family = nil, extra_sibbling = nil; + + + family = self.$analyse_hierarchy(action); + if ($truthy(family['$[]']("fusible"))) { + return self.$fuse_deletions(action, family['$[]']("fusible"), [].concat(Opal.to_a(family['$[]']("sibbling_left"))).concat(Opal.to_a(family['$[]']("child"))).concat(Opal.to_a(family['$[]']("sibbling_right")))) + } else { - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; - _goto_level = _again; - continue;;;;} - else if ((94)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + extra_sibbling = (function() {if ($truthy(family['$[]']("parent"))) { + return family['$[]']("parent").$do_combine(action) + } else if ($truthy(family['$[]']("child"))) { + return action.$with($hash2(["children", "enforcer"], {"children": family['$[]']("child"), "enforcer": self.enforcer})).$combine_children(action.$children()) + } else { + return action + }; return nil; })(); + return self.$with($hash2(["children"], {"children": [].concat(Opal.to_a(family['$[]']("sibbling_left"))).concat([extra_sibbling]).concat(Opal.to_a(family['$[]']("sibbling_right")))})); + }; + }, $Action_place_in_hierarchy$12.$$arity = 1); + + Opal.def(self, '$combine_children', $Action_combine_children$13 = function $$combine_children(more_children) { + var $$14, self = this; + + return $send(more_children, 'inject', [self], ($$14 = function(parent, new_child){var self = $$14.$$s == null ? this : $$14.$$s; + - self.$literal().$extend_space(self.ts, self.te);;} - else if ((95)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((6)['$===']($case)) { + if (parent == null) { + parent = nil; + }; - p = $rb_minus(self.te, 1);; + if (new_child == null) { + new_child = nil; + }; + return parent.$place_in_hierarchy(new_child);}, $$14.$$s = self, $$14.$$arity = 2, $$14)) + }, $Action_combine_children$13.$$arity = 1); + + Opal.def(self, '$fuse_deletions', $Action_fuse_deletions$15 = function $$fuse_deletions(action, fusible, other_sibblings) { + var self = this, without_fusible = nil, fused_range = nil, fused_deletion = nil; + + + without_fusible = self.$with($hash2(["children"], {"children": other_sibblings})); + fused_range = $send([action].concat(Opal.to_a(fusible)), 'map', [], "range".$to_proc()).$inject("join"); + fused_deletion = action.$with($hash2(["range"], {"range": fused_range})); + return without_fusible.$do_combine(fused_deletion); + }, $Action_fuse_deletions$15.$$arity = 3); + + Opal.def(self, '$bsearch_child_index', $Action_bsearch_child_index$16 = function $$bsearch_child_index(from) { + var $$17, $iter = $Action_bsearch_child_index$16.$$p, $yield = $iter || nil, self = this, size = nil, $ret_or_10 = nil; + + if ($iter) $Action_bsearch_child_index$16.$$p = null; + + + if (from == null) { + from = 0; + }; + size = self.children.$size(); + if ($truthy(($ret_or_10 = $send(Opal.Range.$new(from,size, true), 'bsearch', [], ($$17 = function(i){var self = $$17.$$s == null ? this : $$17.$$s; + if (self.children == null) self.children = nil; + - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($b = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $b))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($b = self.escape) ? $b : self.$tok()), self.ts, self.te) - };;} - else if ((4)['$===']($case)) { - p = $rb_minus(self.te, 1);; + if (i == null) { + i = nil; + }; + return Opal.yield1($yield, self.children['$[]'](i));;}, $$17.$$s = self, $$17.$$arity = 1, $$17))))) { + return $ret_or_10 + } else { + return size + }; + }, $Action_bsearch_child_index$16.$$arity = -1); + + Opal.def(self, '$analyse_hierarchy', $Action_analyse_hierarchy$18 = function $$analyse_hierarchy(action) { + var $$19, $$20, self = this, r = nil, left_index = nil, start = nil, right_index = nil, center = nil, $case = nil, parent = nil, overlap_left = nil, overlap_right = nil, $ret_or_11 = nil, $ret_or_12 = nil, contained = nil, fusible = nil; + + + r = action.$range(); + left_index = $send(self, 'bsearch_child_index', [], ($$19 = function(child){var self = $$19.$$s == null ? this : $$19.$$s; + - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((123)['$===']($case)) { - self.te = $rb_plus(p, 1); - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { - - - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); + if (child == null) { + child = nil; + }; + return $rb_gt(child.$range().$end_pos(), r.$begin_pos());}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + start = (function() {if (left_index['$=='](0)) { + return 0 + } else { + return $rb_minus(left_index, 1) + }; return nil; })(); + right_index = $send(self, 'bsearch_child_index', [start], ($$20 = function(child){var self = $$20.$$s == null ? this : $$20.$$s; + - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 758; - _goto_level = _again; - continue;;;;} - else if ((10)['$===']($case)) { - self.te = $rb_plus(p, 1); + if (child == null) { + child = nil; + }; + return $rb_ge(child.$range().$begin_pos(), r.$end_pos());}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + center = $rb_minus(right_index, left_index); + $case = center; + if ((0)['$===']($case)) {nil} + else if ((-1)['$===']($case)) { + left_index = $rb_minus(left_index, 1); + right_index = $rb_plus(right_index, 1); + parent = self.children['$[]'](left_index);} + else { + overlap_left = self.children['$[]'](left_index).$range().$begin_pos()['$<=>'](r.$begin_pos()); + overlap_right = self.children['$[]']($rb_minus(right_index, 1)).$range().$end_pos()['$<=>'](r.$end_pos()); + if ($truthy((function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = center['$=='](1)))) { + return $rb_le(overlap_left, 0) + } else { + return $ret_or_12 + }; return nil; })()))) { + return $rb_ge(overlap_right, 0) + } else { + return $ret_or_11 + }; return nil; })())) { + parent = self.children['$[]'](left_index) + } else { - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; + contained = self.children['$[]'](Opal.Range.$new(left_index,right_index, true)); + fusible = self.$check_fusible(action, (function() {if ($truthy($rb_lt(overlap_left, 0))) { + return contained.$shift() + } else { + return nil + }; return nil; })(), (function() {if ($truthy($rb_gt(overlap_right, 0))) { + return contained.$pop() + } else { + return nil + }; return nil; })()); + };}; + return $hash2(["parent", "sibbling_left", "sibbling_right", "fusible", "child"], {"parent": parent, "sibbling_left": self.children['$[]'](Opal.Range.$new(0,left_index, true)), "sibbling_right": self.children['$[]'](Opal.Range.$new(right_index,self.children.$size(), true)), "fusible": fusible, "child": contained}); + }, $Action_analyse_hierarchy$18.$$arity = 1); + + Opal.def(self, '$check_fusible', $Action_check_fusible$21 = function $$check_fusible(action, $a) { + var $post_args, fusible, $$22, self = this; + + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + fusible = $post_args;; + fusible['$compact!'](); + if ($truthy(fusible['$empty?']())) { + return nil}; + $send(fusible, 'each', [], ($$22 = function(child){var self = $$22.$$s == null ? this : $$22.$$s, $$23, kind = nil, $ret_or_13 = nil; + if (self.enforcer == null) self.enforcer = nil; + - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; - _goto_level = _again; - continue;;;;} - else if ((120)['$===']($case)) { - self.te = $rb_plus(p, 1); + if (child == null) { + child = nil; + }; + kind = (function() {if ($truthy((function() {if ($truthy(($ret_or_13 = action['$insertion?']()))) { + return $ret_or_13 + } else { + return child['$insertion?']() + }; return nil; })())) { + return "crossing_insertions" + } else { + return "crossing_deletions" + }; return nil; })(); + return $send(self.enforcer, 'call', [kind], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s; + + return $hash2(["range", "conflict"], {"range": action.$range(), "conflict": child.$range()})}, $$23.$$s = self, $$23.$$arity = 0, $$23));}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + return fusible; + }, $Action_check_fusible$21.$$arity = -2); + + Opal.def(self, '$merge', $Action_merge$24 = function $$merge(action) { + var self = this, $ret_or_14 = nil; + + + self.$call_enforcer_for_merge(action); + return self.$with($hash2(["insert_before", "replacement", "insert_after"], {"insert_before": "" + (action.$insert_before()) + (self.$insert_before()), "replacement": (function() {if ($truthy(($ret_or_14 = action.$replacement()))) { + return $ret_or_14 + } else { + return self.replacement + }; return nil; })(), "insert_after": "" + (self.$insert_after()) + (action.$insert_after())})).$combine_children(action.$children()); + }, $Action_merge$24.$$arity = 1); + + Opal.def(self, '$call_enforcer_for_merge', $Action_call_enforcer_for_merge$25 = function $$call_enforcer_for_merge(action) { + var $$26, self = this; + + return $send(self.enforcer, 'call', ["different_replacements"], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s, $ret_or_15 = nil, $ret_or_16 = nil; + if (self.replacement == null) self.replacement = nil; + if (self.range == null) self.range = nil; + + if ($truthy((function() {if ($truthy(($ret_or_15 = (function() {if ($truthy(($ret_or_16 = self.replacement))) { + return action.$replacement() + } else { + return $ret_or_16 + }; return nil; })()))) { + return self.replacement['$!='](action.$replacement()) + } else { + return $ret_or_15 + }; return nil; })())) { + return $hash2(["range", "replacement", "other_replacement"], {"range": self.range, "replacement": action.$replacement(), "other_replacement": self.replacement}) + } else { + return nil + }}, $$26.$$s = self, $$26.$$arity = 0, $$26)) + }, $Action_call_enforcer_for_merge$25.$$arity = 1); + return (Opal.def(self, '$swallow', $Action_swallow$27 = function $$swallow(children) { + var $$28, self = this; + + + $send(self.enforcer, 'call', ["swallowed_insertions"], ($$28 = function(){var self = $$28.$$s == null ? this : $$28.$$s, insertions = nil; + if (self.range == null) self.range = nil; + - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; + insertions = $send(children, 'select', [], "insertion?".$to_proc()); + if ($truthy(insertions['$empty?']())) { + return nil + } else { + return $hash2(["range", "conflict"], {"range": self.range, "conflict": $send(insertions, 'map', [], "range".$to_proc())}) + };}, $$28.$$s = self, $$28.$$arity = 0, $$28)); + return []; + }, $Action_swallow$27.$$arity = 1), nil) && 'swallow'; + })($$($nesting, 'TreeRewriter'), null, $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $range = Opal.range; + + Opal.add_stubs(['$attr_reader', '$freeze', '$line', '$alias_method', '$column', '$last_line', '$last_column', '$with', '$update_expression', '$==', '$class', '$reduce', '$map', '$instance_variables', '$instance_variable_get', '$send', '$inject', '$to_sym', '$[]', '$[]=', '$-', '$protected', '$tap', '$dup', '$to_proc']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Map'); + + var $nesting = [self].concat($parent_nesting), $Map_initialize$1, $Map_initialize_copy$2, $Map_node$eq$3, $Map_line$4, $Map_column$5, $Map_last_line$6, $Map_last_column$7, $Map_with_expression$8, $Map_$eq_eq$10, $Map_to_hash$12, $Map_with$14, $Map_update_expression$15; + + self.$$prototype.node = self.$$prototype.expression = nil; + + self.$attr_reader("node"); + self.$attr_reader("expression"); + + Opal.def(self, '$initialize', $Map_initialize$1 = function $$initialize(expression) { + var self = this; + + return (self.expression = expression) + }, $Map_initialize$1.$$arity = 1); + + Opal.def(self, '$initialize_copy', $Map_initialize_copy$2 = function $$initialize_copy(other) { + var $iter = $Map_initialize_copy$2.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Map_initialize_copy$2.$$p = null; + + $send2(self, $find_super(self, 'initialize_copy', $Map_initialize_copy$2, false, true), 'initialize_copy', [other], $iter); + return (self.node = nil); + }, $Map_initialize_copy$2.$$arity = 1); + + Opal.def(self, '$node=', $Map_node$eq$3 = function(node) { + var self = this; + + + self.node = node; + self.$freeze(); + return self.node; + }, $Map_node$eq$3.$$arity = 1); + + Opal.def(self, '$line', $Map_line$4 = function $$line() { + var self = this; + + return self.expression.$line() + }, $Map_line$4.$$arity = 0); + self.$alias_method("first_line", "line"); + + Opal.def(self, '$column', $Map_column$5 = function $$column() { + var self = this; + + return self.expression.$column() + }, $Map_column$5.$$arity = 0); + + Opal.def(self, '$last_line', $Map_last_line$6 = function $$last_line() { + var self = this; + + return self.expression.$last_line() + }, $Map_last_line$6.$$arity = 0); + + Opal.def(self, '$last_column', $Map_last_column$7 = function $$last_column() { + var self = this; + + return self.expression.$last_column() + }, $Map_last_column$7.$$arity = 0); + + Opal.def(self, '$with_expression', $Map_with_expression$8 = function $$with_expression(expression_l) { + var $$9, self = this; + + return $send(self, 'with', [], ($$9 = function(map){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (map == null) { + map = nil; }; - if ($truthy(($truthy($b = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $b))) { - current_literal.$extend_space(self.ts, self.te) - } else { + return map.$update_expression(expression_l);}, $$9.$$s = self, $$9.$$arity = 1, $$9)) + }, $Map_with_expression$8.$$arity = 1); + + Opal.def(self, '$==', $Map_$eq_eq$10 = function(other) { + var $$11, self = this, $ret_or_1 = nil; + + if ($truthy(($ret_or_1 = other.$class()['$=='](self.$class())))) { + return $send(self.$instance_variables(), 'map', [], ($$11 = function(ivar){var self = $$11.$$s == null ? this : $$11.$$s; + - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((119)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() + if (ivar == null) { + ivar = nil; }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((124)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - + return self.$instance_variable_get(ivar)['$=='](other.$send("instance_variable_get", ivar));}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$reduce("&") + } else { + return $ret_or_1 + } + }, $Map_$eq_eq$10.$$arity = 1); + + Opal.def(self, '$to_hash', $Map_to_hash$12 = function $$to_hash() { + var $$13, self = this; + + return $send(self.$instance_variables(), 'inject', [$hash2([], {})], ($$13 = function(hash, ivar){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; - _goto_level = _again; - continue;;;;} - else if ((122)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((11)['$===']($case)) { + if (hash == null) { + hash = nil; + }; - p = $rb_minus(self.te, 1);; + if (ivar == null) { + ivar = nil; + }; + if (ivar.$to_sym()['$==']("@node")) { + return hash;}; - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($b = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $b))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($b = self.escape) ? $b : self.$tok()), self.ts, self.te) - };;} - else if ((9)['$===']($case)) { + $writer = [ivar['$[]']($range(1, -1, false)).$to_sym(), self.$instance_variable_get(ivar)]; + $send(hash, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return hash;}, $$13.$$s = self, $$13.$$arity = 2, $$13)) + }, $Map_to_hash$12.$$arity = 0); + self.$protected(); + + Opal.def(self, '$with', $Map_with$14 = function() { + var $iter = $Map_with$14.$$p, block = $iter || nil, self = this; + + if ($iter) $Map_with$14.$$p = null; + + + if ($iter) $Map_with$14.$$p = null;; + return $send(self.$dup(), 'tap', [], block.$to_proc()); + }, $Map_with$14.$$arity = 0); + return (Opal.def(self, '$update_expression', $Map_update_expression$15 = function $$update_expression(expression_l) { + var self = this; + + return (self.expression = expression_l) + }, $Map_update_expression$15.$$arity = 1), nil) && 'update_expression'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/operator"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Operator'); + + var $nesting = [self].concat($parent_nesting), $Operator_initialize$1; + + + self.$attr_reader("operator"); + return (Opal.def(self, '$initialize', $Operator_initialize$1 = function $$initialize(operator, expression) { + var $iter = $Operator_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Operator_initialize$1.$$p = null; + + self.operator = operator; + return $send2(self, $find_super(self, 'initialize', $Operator_initialize$1, false, true), 'initialize', [expression], null); + }, $Operator_initialize$1.$$arity = 2), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/collection"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Collection'); + + var $nesting = [self].concat($parent_nesting), $Collection_initialize$1; + + + self.$attr_reader("begin"); + self.$attr_reader("end"); + return (Opal.def(self, '$initialize', $Collection_initialize$1 = function $$initialize(begin_l, end_l, expression_l) { + var $a, $iter = $Collection_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Collection_initialize$1.$$p = null; + + $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; + return $send2(self, $find_super(self, 'initialize', $Collection_initialize$1, false, true), 'initialize', [expression_l], null); + }, $Collection_initialize$1.$$arity = 3), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/constant"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; + + Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Constant'); + + var $nesting = [self].concat($parent_nesting), $Constant_initialize$1, $Constant_with_operator$2, $Constant_update_operator$4; + + + self.$attr_reader("double_colon"); + self.$attr_reader("name"); + self.$attr_reader("operator"); + + Opal.def(self, '$initialize', $Constant_initialize$1 = function $$initialize(double_colon, name, expression) { + var $a, $iter = $Constant_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Constant_initialize$1.$$p = null; + + $a = [double_colon, name], (self.double_colon = $a[0]), (self.name = $a[1]), $a; + return $send2(self, $find_super(self, 'initialize', $Constant_initialize$1, false, true), 'initialize', [expression], null); + }, $Constant_initialize$1.$$arity = 3); + + Opal.def(self, '$with_operator', $Constant_with_operator$2 = function $$with_operator(operator_l) { + var $$3, self = this; + + return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + - p = $rb_minus(self.te, 1);; - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((146)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; + if (map == null) { + map = nil; }; - if ($truthy(($truthy($b = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $b))) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((145)['$===']($case)) { - self.te = $rb_plus(p, 1); + return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + }, $Constant_with_operator$2.$$arity = 1); + self.$protected(); + return (Opal.def(self, '$update_operator', $Constant_update_operator$4 = function $$update_operator(operator_l) { + var self = this; + + return (self.operator = operator_l) + }, $Constant_update_operator$4.$$arity = 1), nil) && 'update_operator'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/variable"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; + + Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Variable'); + + var $nesting = [self].concat($parent_nesting), $Variable_initialize$1, $Variable_with_operator$2, $Variable_update_operator$4; + + + self.$attr_reader("name"); + self.$attr_reader("operator"); + + Opal.def(self, '$initialize', $Variable_initialize$1 = function $$initialize(name_l, expression_l) { + var $iter = $Variable_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Variable_initialize$1.$$p = null; + + + if (expression_l == null) { + expression_l = name_l; + }; + self.name = name_l; + return $send2(self, $find_super(self, 'initialize', $Variable_initialize$1, false, true), 'initialize', [expression_l], null); + }, $Variable_initialize$1.$$arity = -2); + + Opal.def(self, '$with_operator', $Variable_with_operator$2 = function $$with_operator(operator_l) { + var $$3, self = this; + + return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((148)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - self.$literal().$extend_space(self.ts, self.te);;} - else if ((149)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + if (map == null) { + map = nil; + }; + return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + }, $Variable_with_operator$2.$$arity = 1); + self.$protected(); + return (Opal.def(self, '$update_operator', $Variable_update_operator$4 = function $$update_operator(operator_l) { + var self = this; + + return (self.operator = operator_l) + }, $Variable_update_operator$4.$$arity = 1), nil) && 'update_operator'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/keyword"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Keyword'); + + var $nesting = [self].concat($parent_nesting), $Keyword_initialize$1; + + + self.$attr_reader("keyword"); + self.$attr_reader("begin"); + self.$attr_reader("end"); + return (Opal.def(self, '$initialize', $Keyword_initialize$1 = function $$initialize(keyword_l, begin_l, end_l, expression_l) { + var $a, $iter = $Keyword_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Keyword_initialize$1.$$p = null; + + self.keyword = keyword_l; + $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; + return $send2(self, $find_super(self, 'initialize', $Keyword_initialize$1, false, true), 'initialize', [expression_l], null); + }, $Keyword_initialize$1.$$arity = 4), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/definition"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader', '$join']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Definition'); + + var $nesting = [self].concat($parent_nesting), $Definition_initialize$1; + + self.$$prototype.keyword = self.$$prototype.end = nil; + + self.$attr_reader("keyword"); + self.$attr_reader("operator"); + self.$attr_reader("name"); + self.$attr_reader("end"); + return (Opal.def(self, '$initialize', $Definition_initialize$1 = function $$initialize(keyword_l, operator_l, name_l, end_l) { + var $iter = $Definition_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Definition_initialize$1.$$p = null; + + self.keyword = keyword_l; + self.operator = operator_l; + self.name = name_l; + self.end = end_l; + return $send2(self, $find_super(self, 'initialize', $Definition_initialize$1, false, true), 'initialize', [self.keyword.$join(self.end)], null); + }, $Definition_initialize$1.$$arity = 4), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/method_definition"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; + + Opal.add_stubs(['$attr_reader', '$join']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'MethodDefinition'); + + var $nesting = [self].concat($parent_nesting), $MethodDefinition_initialize$1; + + self.$$prototype.keyword = nil; + + self.$attr_reader("keyword"); + self.$attr_reader("operator"); + self.$attr_reader("name"); + self.$attr_reader("end"); + self.$attr_reader("assignment"); + return (Opal.def(self, '$initialize', $MethodDefinition_initialize$1 = function $$initialize(keyword_l, operator_l, name_l, end_l, assignment_l, body_l) { + var $iter = $MethodDefinition_initialize$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil; + + if ($iter) $MethodDefinition_initialize$1.$$p = null; + + self.keyword = keyword_l; + self.operator = operator_l; + self.name = name_l; + self.end = end_l; + self.assignment = assignment_l; + return $send2(self, $find_super(self, 'initialize', $MethodDefinition_initialize$1, false, true), 'initialize', [self.keyword.$join((function() {if ($truthy(($ret_or_1 = end_l))) { + return $ret_or_1 + } else { + return body_l + }; return nil; })())], null); + }, $MethodDefinition_initialize$1.$$arity = 6), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/send"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; + + Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Send'); + + var $nesting = [self].concat($parent_nesting), $Send_initialize$1, $Send_with_operator$2, $Send_update_operator$4; + + + self.$attr_reader("dot"); + self.$attr_reader("selector"); + self.$attr_reader("operator"); + self.$attr_reader("begin"); + self.$attr_reader("end"); + + Opal.def(self, '$initialize', $Send_initialize$1 = function $$initialize(dot_l, selector_l, begin_l, end_l, expression_l) { + var $a, $iter = $Send_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Send_initialize$1.$$p = null; + + self.dot = dot_l; + self.selector = selector_l; + $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; + return $send2(self, $find_super(self, 'initialize', $Send_initialize$1, false, true), 'initialize', [expression_l], null); + }, $Send_initialize$1.$$arity = 5); + + Opal.def(self, '$with_operator', $Send_with_operator$2 = function $$with_operator(operator_l) { + var $$3, self = this; + + return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((152)['$===']($case)) { - self.te = $rb_plus(p, 1); - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; + if (map == null) { + map = nil; }; - if ($truthy(($truthy($b = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $b))) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((151)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((154)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((161)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { - - - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 758; - _goto_level = _again; - continue;;;;} - else if ((13)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - + return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + }, $Send_with_operator$2.$$arity = 1); + self.$protected(); + return (Opal.def(self, '$update_operator', $Send_update_operator$4 = function $$update_operator(operator_l) { + var self = this; + + return (self.operator = operator_l) + }, $Send_update_operator$4.$$arity = 1), nil) && 'update_operator'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/index"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; + + Opal.add_stubs(['$attr_reader', '$with', '$update_operator', '$protected']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Index'); + + var $nesting = [self].concat($parent_nesting), $Index_initialize$1, $Index_with_operator$2, $Index_update_operator$4; + + + self.$attr_reader("begin"); + self.$attr_reader("end"); + self.$attr_reader("operator"); + + Opal.def(self, '$initialize', $Index_initialize$1 = function $$initialize(begin_l, end_l, expression_l) { + var $a, $iter = $Index_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Index_initialize$1.$$p = null; + + $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; + self.operator = nil; + return $send2(self, $find_super(self, 'initialize', $Index_initialize$1, false, true), 'initialize', [expression_l], null); + }, $Index_initialize$1.$$arity = 3); + + Opal.def(self, '$with_operator', $Index_with_operator$2 = function $$with_operator(operator_l) { + var $$3, self = this; + + return $send(self, 'with', [], ($$3 = function(map){var self = $$3.$$s == null ? this : $$3.$$s; + - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; - _goto_level = _again; - continue;;;;} - else if ((158)['$===']($case)) { - self.te = $rb_plus(p, 1); - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; + if (map == null) { + map = nil; }; - if ($truthy(($truthy($b = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $b))) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((157)['$===']($case)) { - self.te = $rb_plus(p, 1); - - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((162)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; - - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; - _goto_level = _again; - continue;;;;} - else if ((160)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((12)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((164)['$===']($case)) { - self.te = $rb_plus(p, 1); - - current_literal = self.$literal(); - if (self.te['$=='](pe)) { + return map.$update_operator(operator_l);}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + }, $Index_with_operator$2.$$arity = 1); + self.$protected(); + return (Opal.def(self, '$update_operator', $Index_update_operator$4 = function $$update_operator(operator_l) { + var self = this; + + return (self.operator = operator_l) + }, $Index_update_operator$4.$$arity = 1), nil) && 'update_operator'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/condition"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Condition'); + + var $nesting = [self].concat($parent_nesting), $Condition_initialize$1; + + + self.$attr_reader("keyword"); + self.$attr_reader("begin"); + self.$attr_reader("else"); + self.$attr_reader("end"); + return (Opal.def(self, '$initialize', $Condition_initialize$1 = function $$initialize(keyword_l, begin_l, else_l, end_l, expression_l) { + var $a, $iter = $Condition_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Condition_initialize$1.$$p = null; + + self.keyword = keyword_l; + $a = [begin_l, else_l, end_l], (self.begin = $a[0]), (self["else"] = $a[1]), (self.end = $a[2]), $a; + return $send2(self, $find_super(self, 'initialize', $Condition_initialize$1, false, true), 'initialize', [expression_l], null); + }, $Condition_initialize$1.$$arity = 5), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/ternary"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Ternary'); + + var $nesting = [self].concat($parent_nesting), $Ternary_initialize$1; + + + self.$attr_reader("question"); + self.$attr_reader("colon"); + return (Opal.def(self, '$initialize', $Ternary_initialize$1 = function $$initialize(question_l, colon_l, expression_l) { + var $a, $iter = $Ternary_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Ternary_initialize$1.$$p = null; + + $a = [question_l, colon_l], (self.question = $a[0]), (self.colon = $a[1]), $a; + return $send2(self, $find_super(self, 'initialize', $Ternary_initialize$1, false, true), 'initialize', [expression_l], null); + }, $Ternary_initialize$1.$$arity = 3), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/for"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'For'); + + var $nesting = [self].concat($parent_nesting), $For_initialize$1; + + + self.$attr_reader("keyword", "in"); + self.$attr_reader("begin", "end"); + return (Opal.def(self, '$initialize', $For_initialize$1 = function $$initialize(keyword_l, in_l, begin_l, end_l, expression_l) { + var $a, $iter = $For_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $For_initialize$1.$$p = null; + + $a = [keyword_l, in_l], (self.keyword = $a[0]), (self["in"] = $a[1]), $a; + $a = [begin_l, end_l], (self.begin = $a[0]), (self.end = $a[1]), $a; + return $send2(self, $find_super(self, 'initialize', $For_initialize$1, false, true), 'initialize', [expression_l], null); + }, $For_initialize$1.$$arity = 5), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/rescue_body"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RescueBody'); + + var $nesting = [self].concat($parent_nesting), $RescueBody_initialize$1; + + + self.$attr_reader("keyword"); + self.$attr_reader("assoc"); + self.$attr_reader("begin"); + return (Opal.def(self, '$initialize', $RescueBody_initialize$1 = function $$initialize(keyword_l, assoc_l, begin_l, expression_l) { + var $iter = $RescueBody_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $RescueBody_initialize$1.$$p = null; + + self.keyword = keyword_l; + self.assoc = assoc_l; + self.begin = begin_l; + return $send2(self, $find_super(self, 'initialize', $RescueBody_initialize$1, false, true), 'initialize', [expression_l], null); + }, $RescueBody_initialize$1.$$arity = 4), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/heredoc"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Heredoc'); + + var $nesting = [self].concat($parent_nesting), $Heredoc_initialize$1; + + + self.$attr_reader("heredoc_body"); + self.$attr_reader("heredoc_end"); + return (Opal.def(self, '$initialize', $Heredoc_initialize$1 = function $$initialize(begin_l, body_l, end_l) { + var $iter = $Heredoc_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Heredoc_initialize$1.$$p = null; + + self.heredoc_body = body_l; + self.heredoc_end = end_l; + return $send2(self, $find_super(self, 'initialize', $Heredoc_initialize$1, false, true), 'initialize', [begin_l], null); + }, $Heredoc_initialize$1.$$arity = 3), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/source/map/objc_kwarg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ObjcKwarg'); + + var $nesting = [self].concat($parent_nesting), $ObjcKwarg_initialize$1; + + + self.$attr_reader("keyword"); + self.$attr_reader("operator"); + self.$attr_reader("argument"); + return (Opal.def(self, '$initialize', $ObjcKwarg_initialize$1 = function $$initialize(keyword_l, operator_l, argument_l, expression_l) { + var $a, $iter = $ObjcKwarg_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $ObjcKwarg_initialize$1.$$p = null; + + $a = [keyword_l, operator_l, argument_l], (self.keyword = $a[0]), (self.operator = $a[1]), (self.argument = $a[2]), $a; + return $send2(self, $find_super(self, 'initialize', $ObjcKwarg_initialize$1, false, true), 'initialize', [expression_l], null); + }, $ObjcKwarg_initialize$1.$$arity = 4), nil) && 'initialize'; + })($$($nesting, 'Map'), $$($nesting, 'Map'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/syntax_error"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$attr_reader', '$message']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SyntaxError'); + + var $nesting = [self].concat($parent_nesting), $SyntaxError_initialize$1; + + + self.$attr_reader("diagnostic"); + return (Opal.def(self, '$initialize', $SyntaxError_initialize$1 = function $$initialize(diagnostic) { + var $iter = $SyntaxError_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $SyntaxError_initialize$1.$$p = null; + + self.diagnostic = diagnostic; + return $send2(self, $find_super(self, 'initialize', $SyntaxError_initialize$1, false, true), 'initialize', [diagnostic.$message()], null); + }, $SyntaxError_initialize$1.$$arity = 1), nil) && 'initialize'; + })($nesting[0], $$($nesting, 'StandardError'), $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/clobbering_error"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; + + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ClobberingError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'RuntimeError'), $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/diagnostic"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_times(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); + } + function $rb_ge(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + + Opal.add_stubs(['$freeze', '$attr_reader', '$include?', '$raise', '$join', '$inspect', '$dup', '$compile', '$==', '$line', '$last_line', '$is?', '$+', '$message', '$render_line', '$first_line_only', '$last_line_only', '$-', '$source_buffer', '$decompose_position', '$end_pos', '$>', '$private', '$source_line', '$*', '$length', '$each', '$line_range', '$intersect', '$column_range', '$size', '$[]=', '$!', '$>=', '$map', '$name', '$!=', '$resize', '$=~', '$source', '$adjust']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Diagnostic'); + + var $nesting = [self].concat($parent_nesting), $Diagnostic_initialize$1, $Diagnostic_message$2, $Diagnostic_render$3, $Diagnostic_render_line$4, $Diagnostic_first_line_only$7, $Diagnostic_last_line_only$8; + + self.$$prototype.reason = self.$$prototype["arguments"] = self.$$prototype.location = self.$$prototype.level = self.$$prototype.highlights = nil; + + Opal.const_set($nesting[0], 'LEVELS', ["note", "warning", "error", "fatal"].$freeze()); + self.$attr_reader("level", "reason", "arguments"); + self.$attr_reader("location", "highlights"); + + Opal.def(self, '$initialize', $Diagnostic_initialize$1 = function $$initialize(level, reason, arguments$, location, highlights) { + var self = this, $ret_or_1 = nil; + + + + if (highlights == null) { + highlights = []; + }; + if ($truthy($$($nesting, 'LEVELS')['$include?'](level))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "" + ("" + "Diagnostic#level must be one of " + ($$($nesting, 'LEVELS').$join(", ")) + "; ") + ("" + (level.$inspect()) + " provided.")) + }; + if ($truthy(location)) { + } else { + self.$raise("Expected a location") + }; + self.level = level; + self.reason = reason; + self["arguments"] = (function() {if ($truthy(($ret_or_1 = arguments$))) { + return $ret_or_1 + } else { + return $hash2([], {}) + }; return nil; })().$dup().$freeze(); + self.location = location; + self.highlights = highlights.$dup().$freeze(); + return self.$freeze(); + }, $Diagnostic_initialize$1.$$arity = -5); + + Opal.def(self, '$message', $Diagnostic_message$2 = function $$message() { + var self = this; + + return $$($nesting, 'Messages').$compile(self.reason, self["arguments"]) + }, $Diagnostic_message$2.$$arity = 0); + + Opal.def(self, '$render', $Diagnostic_render$3 = function $$render() { + var $a, $b, self = this, $ret_or_2 = nil, first_line = nil, last_line = nil, num_lines = nil, buffer = nil, last_lineno = nil, last_column = nil; + + if ($truthy((function() {if ($truthy(($ret_or_2 = self.location.$line()['$=='](self.location.$last_line())))) { + return $ret_or_2 + } else { + return self.location['$is?']("\n") + }; return nil; })())) { + return $rb_plus(["" + (self.location) + ": " + (self.level) + ": " + (self.$message())], self.$render_line(self.location)) + } else { + + first_line = self.$first_line_only(self.location); + last_line = self.$last_line_only(self.location); + num_lines = $rb_plus($rb_minus(self.location.$last_line(), self.location.$line()), 1); + buffer = self.location.$source_buffer(); + $b = buffer.$decompose_position(self.location.$end_pos()), $a = Opal.to_ary($b), (last_lineno = ($a[0] == null ? nil : $a[0])), (last_column = ($a[1] == null ? nil : $a[1])), $b; + return $rb_plus($rb_plus(["" + (self.location) + "-" + (last_lineno) + ":" + (last_column) + ": " + (self.level) + ": " + (self.$message())], self.$render_line(first_line, $rb_gt(num_lines, 2), false)), self.$render_line(last_line, false, true)); + } + }, $Diagnostic_render$3.$$arity = 0); + self.$private(); + + Opal.def(self, '$render_line', $Diagnostic_render_line$4 = function $$render_line(range, ellipsis, range_end) { + var $$5, $$6, self = this, source_line = nil, highlight_line = nil, $ret_or_3 = nil, $writer = nil; + + + + if (ellipsis == null) { + ellipsis = false; + }; + + if (range_end == null) { + range_end = false; + }; + source_line = range.$source_line(); + highlight_line = $rb_times(" ", source_line.$length()); + $send(self.highlights, 'each', [], ($$5 = function(highlight){var self = $$5.$$s == null ? this : $$5.$$s, line_range = nil, $writer = nil; + + + + if (highlight == null) { + highlight = nil; + }; + line_range = range.$source_buffer().$line_range(range.$line()); + if ($truthy((highlight = highlight.$intersect(line_range)))) { + + $writer = [highlight.$column_range(), $rb_times("~", highlight.$size())]; + $send(highlight_line, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } else { + return nil + };}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + if ($truthy(range['$is?']("\n"))) { + highlight_line = $rb_plus(highlight_line, "^") + } else if ($truthy((function() {if ($truthy(($ret_or_3 = range_end['$!']()))) { + return $rb_ge(range.$size(), 1) + } else { + return $ret_or_3 + }; return nil; })())) { + + $writer = [range.$column_range(), $rb_plus("^", $rb_times("~", $rb_minus(range.$size(), 1)))]; + $send(highlight_line, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + } else { + + $writer = [range.$column_range(), $rb_times("~", range.$size())]; + $send(highlight_line, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + if ($truthy(ellipsis)) { + highlight_line = $rb_plus(highlight_line, "...")}; + return $send([source_line, highlight_line], 'map', [], ($$6 = function(line){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (line == null) { + line = nil; + }; + return "" + (range.$source_buffer().$name()) + ":" + (range.$line()) + ": " + (line);}, $$6.$$s = self, $$6.$$arity = 1, $$6)); + }, $Diagnostic_render_line$4.$$arity = -2); + + Opal.def(self, '$first_line_only', $Diagnostic_first_line_only$7 = function $$first_line_only(range) { + var self = this; + + if ($truthy(range.$line()['$!='](range.$last_line()))) { + return range.$resize(range.$source()['$=~'](/\n/)) + } else { + return range + } + }, $Diagnostic_first_line_only$7.$$arity = 1); + return (Opal.def(self, '$last_line_only', $Diagnostic_last_line_only$8 = function $$last_line_only(range) { + var self = this; + + if ($truthy(range.$line()['$!='](range.$last_line()))) { + return range.$adjust($hash2(["begin_pos"], {"begin_pos": range.$source()['$=~'](/[^\n]*$/)})) + } else { + return range + } + }, $Diagnostic_last_line_only$8.$$arity = 1), nil) && 'last_line_only'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/diagnostic/engine"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; + + Opal.add_stubs(['$attr_accessor', '$ignore?', '$call', '$raise?', '$raise', '$protected', '$==', '$level']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Engine'); + + var $nesting = [self].concat($parent_nesting), $Engine_initialize$1, $Engine_process$2, $Engine_ignore$ques$3, $Engine_raise$ques$4; + + self.$$prototype.consumer = self.$$prototype.ignore_warnings = self.$$prototype.all_errors_are_fatal = nil; + + self.$attr_accessor("consumer"); + self.$attr_accessor("all_errors_are_fatal"); + self.$attr_accessor("ignore_warnings"); + + Opal.def(self, '$initialize', $Engine_initialize$1 = function $$initialize(consumer) { + var self = this; + + + + if (consumer == null) { + consumer = nil; + }; + self.consumer = consumer; + self.all_errors_are_fatal = false; + return (self.ignore_warnings = false); + }, $Engine_initialize$1.$$arity = -1); + + Opal.def(self, '$process', $Engine_process$2 = function $$process(diagnostic) { + var self = this; + + + if ($truthy(self['$ignore?'](diagnostic))) { + } else if ($truthy(self.consumer)) { + self.consumer.$call(diagnostic)}; + if ($truthy(self['$raise?'](diagnostic))) { + self.$raise($$$($$($nesting, 'Parser'), 'SyntaxError'), diagnostic)}; + return self; + }, $Engine_process$2.$$arity = 1); + self.$protected(); + + Opal.def(self, '$ignore?', $Engine_ignore$ques$3 = function(diagnostic) { + var self = this, $ret_or_1 = nil; + + if ($truthy(($ret_or_1 = self.ignore_warnings))) { + return diagnostic.$level()['$==']("warning") + } else { + return $ret_or_1 + } + }, $Engine_ignore$ques$3.$$arity = 1); + return (Opal.def(self, '$raise?', $Engine_raise$ques$4 = function(diagnostic) { + var self = this, $ret_or_2 = nil, $ret_or_3 = nil; + + if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.all_errors_are_fatal))) { + return diagnostic.$level()['$==']("error") + } else { + return $ret_or_3 + }; return nil; })()))) { + return $ret_or_2 + } else { + return diagnostic.$level()['$==']("fatal") + } + }, $Engine_raise$ques$4.$$arity = 1), nil) && 'raise?'; + })($$($nesting, 'Diagnostic'), null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/static_environment"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; + + Opal.add_stubs(['$reset', '$[]', '$push', '$dup', '$pop', '$add', '$to_sym', '$include?', '$declare', '$declared?', '$empty?']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'StaticEnvironment'); + + var $nesting = [self].concat($parent_nesting), $StaticEnvironment_initialize$1, $StaticEnvironment_reset$2, $StaticEnvironment_extend_static$3, $StaticEnvironment_extend_dynamic$4, $StaticEnvironment_unextend$5, $StaticEnvironment_declare$6, $StaticEnvironment_declared$ques$7, $StaticEnvironment_declare_forward_args$8, $StaticEnvironment_declared_forward_args$ques$9, $StaticEnvironment_empty$ques$10; + + self.$$prototype.stack = self.$$prototype.variables = nil; + + Opal.const_set($nesting[0], 'FORWARD_ARGS', "FORWARD_ARGS"); + + Opal.def(self, '$initialize', $StaticEnvironment_initialize$1 = function $$initialize() { + var self = this; + + return self.$reset() + }, $StaticEnvironment_initialize$1.$$arity = 0); + + Opal.def(self, '$reset', $StaticEnvironment_reset$2 = function $$reset() { + var self = this; + + + self.variables = $$($nesting, 'Set')['$[]'](); + return (self.stack = []); + }, $StaticEnvironment_reset$2.$$arity = 0); + + Opal.def(self, '$extend_static', $StaticEnvironment_extend_static$3 = function $$extend_static() { + var self = this; + + + self.stack.$push(self.variables); + self.variables = $$($nesting, 'Set')['$[]'](); + return self; + }, $StaticEnvironment_extend_static$3.$$arity = 0); + + Opal.def(self, '$extend_dynamic', $StaticEnvironment_extend_dynamic$4 = function $$extend_dynamic() { + var self = this; + + + self.stack.$push(self.variables); + self.variables = self.variables.$dup(); + return self; + }, $StaticEnvironment_extend_dynamic$4.$$arity = 0); + + Opal.def(self, '$unextend', $StaticEnvironment_unextend$5 = function $$unextend() { + var self = this; + + + self.variables = self.stack.$pop(); + return self; + }, $StaticEnvironment_unextend$5.$$arity = 0); + + Opal.def(self, '$declare', $StaticEnvironment_declare$6 = function $$declare(name) { + var self = this; + + + self.variables.$add(name.$to_sym()); + return self; + }, $StaticEnvironment_declare$6.$$arity = 1); + + Opal.def(self, '$declared?', $StaticEnvironment_declared$ques$7 = function(name) { + var self = this; + + return self.variables['$include?'](name.$to_sym()) + }, $StaticEnvironment_declared$ques$7.$$arity = 1); + + Opal.def(self, '$declare_forward_args', $StaticEnvironment_declare_forward_args$8 = function $$declare_forward_args() { + var self = this; + + return self.$declare($$($nesting, 'FORWARD_ARGS')) + }, $StaticEnvironment_declare_forward_args$8.$$arity = 0); + + Opal.def(self, '$declared_forward_args?', $StaticEnvironment_declared_forward_args$ques$9 = function() { + var self = this; + + return self['$declared?']($$($nesting, 'FORWARD_ARGS')) + }, $StaticEnvironment_declared_forward_args$ques$9.$$arity = 0); + return (Opal.def(self, '$empty?', $StaticEnvironment_empty$ques$10 = function() { + var self = this; + + return self.stack['$empty?']() + }, $StaticEnvironment_empty$ques$10.$$arity = 0), nil) && 'empty?'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/lexer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_ge(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); + } + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash = Opal.hash, $truthy = Opal.truthy, $hash2 = Opal.hash2, $range = Opal.range, $gvars = Opal.gvars; + + Opal.add_stubs(['$attr_accessor', '$private', '$_lex_trans_keys=', '$-', '$_lex_key_spans=', '$_lex_index_offsets=', '$_lex_indicies=', '$_lex_trans_targs=', '$_lex_trans_actions=', '$_lex_to_state_actions=', '$_lex_from_state_actions=', '$_lex_eof_trans=', '$lex_start=', '$lex_error=', '$lex_en_interp_words=', '$lex_en_interp_string=', '$lex_en_plain_words=', '$lex_en_plain_string=', '$lex_en_interp_backslash_delimited=', '$lex_en_plain_backslash_delimited=', '$lex_en_interp_backslash_delimited_words=', '$lex_en_plain_backslash_delimited_words=', '$lex_en_regexp_modifiers=', '$lex_en_expr_variable=', '$lex_en_expr_fname=', '$lex_en_expr_endfn=', '$lex_en_expr_dot=', '$lex_en_expr_arg=', '$lex_en_expr_cmdarg=', '$lex_en_expr_endarg=', '$lex_en_expr_mid=', '$lex_en_expr_beg=', '$lex_en_expr_labelarg=', '$lex_en_expr_value=', '$lex_en_expr_end=', '$lex_en_leading_dot=', '$lex_en_line_comment=', '$lex_en_line_begin=', '$freeze', '$ord', '$union', '$chars', '$attr_reader', '$reset', '$lex_en_line_begin', '$class', '$new', '$source', '$==', '$encoding', '$unpack', '$[]', '$lex_en_expr_dot', '$lex_en_expr_fname', '$lex_en_expr_value', '$lex_en_expr_beg', '$lex_en_expr_mid', '$lex_en_expr_arg', '$lex_en_expr_cmdarg', '$lex_en_expr_end', '$lex_en_expr_endarg', '$lex_en_expr_endfn', '$lex_en_expr_labelarg', '$lex_en_interp_string', '$lex_en_interp_words', '$lex_en_plain_string', '$fetch', '$invert', '$push', '$count', '$pop', '$any?', '$shift', '$send', '$+', '$size', '$<=', '$===', '$<<', '$>', '$!=', '$emit_comment', '$tok', '$literal', '$flush_string', '$extend_content', '$emit', '$heredoc?', '$saved_herebody_s=', '$start_interp_brace', '$[]=', '$diagnostic', '$range', '$str_s', '$gsub', '$version?', '$nest_and_try_closing', '$heredoc_e', '$pop_literal', '$infer_indent_level', '$words?', '$!', '$eof_codepoint?', '$extend_space', '$extend_string', '$>=', '$active?', '$slice', '$start_with?', '$chr', '$munge_escape?', '$regexp?', '$match', '$squiggly_heredoc?', '$supports_line_continuation_via_slash?', '$scan', '$join', '$=~', '$to_i', '$stack_pop', '$emit_table', '$push_literal', '$arg_or_cmdarg', '$<', '$emit_do', '$nil?', '$declared?', '$last', '$getbyte', '$inspect', '$end_with?', '$empty?', '$index', '$call', '$Float', '$to_f', '$length', '$lambda', '$Rational', '$Complex', '$each', '$encode_escape', '$%', '$end_interp_brace_and_try_closing', '$lexpop', '$saved_herebody_s', '$next_state_for_literal', '$rstrip', '$&', '$|', '$include?', '$lex_error', '$protected', '$force_encoding', '$process', '$backslash_delimited?', '$interpolate?', '$lex_en_interp_backslash_delimited_words', '$lex_en_plain_backslash_delimited_words', '$lex_en_plain_words', '$lex_en_interp_backslash_delimited', '$lex_en_plain_backslash_delimited', '$dedent_level', '$type', '$lex_en_regexp_modifiers', '$upcase']); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Lexer'); + + var $nesting = [self].concat($parent_nesting), $Lexer_initialize$1, $Lexer_reset$2, $Lexer_source_buffer$eq$3, $Lexer_encoding$4, $Lexer_state$5, $Lexer_state$eq$6, $Lexer_push_cmdarg$7, $Lexer_pop_cmdarg$8, $Lexer_push_cond$9, $Lexer_pop_cond$10, $Lexer_dedent_level$11, $Lexer_advance$12, $Lexer_eof_codepoint$ques$42, $Lexer_version$ques$43, $Lexer_stack_pop$44, $Lexer_encode_escape$45, $Lexer_tok$46, $Lexer_range$47, $Lexer_emit$48, $Lexer_emit_table$49, $Lexer_emit_do$50, $Lexer_arg_or_cmdarg$51, $Lexer_emit_comment$52, $Lexer_diagnostic$53, $Lexer_push_literal$54, $Lexer_next_state_for_literal$55, $Lexer_literal$56, $Lexer_pop_literal$57, $Lexer$58, $writer = nil; + + self.$$prototype.source_buffer = self.$$prototype.source_pts = self.$$prototype.cs = self.$$prototype.cmdarg_stack = self.$$prototype.cmdarg = self.$$prototype.cond_stack = self.$$prototype.cond = self.$$prototype.dedent_level = self.$$prototype.token_queue = self.$$prototype.p = self.$$prototype.command_start = self.$$prototype.herebody_s = self.$$prototype.sharp_s = self.$$prototype.ts = self.$$prototype.te = self.$$prototype.top = self.$$prototype.stack = self.$$prototype.version = self.$$prototype.escape_s = self.$$prototype.escape = self.$$prototype.act = self.$$prototype.static_env = self.$$prototype.lambda_stack = self.$$prototype.paren_nest = self.$$prototype.num_digits_s = self.$$prototype.num_suffix_s = self.$$prototype.num_base = self.$$prototype.num_xfrm = self.$$prototype.newline_s = self.$$prototype.eq_begin_s = self.$$prototype.cs_before_block_comment = self.$$prototype.in_kwarg = self.$$prototype.tokens = self.$$prototype.comments = self.$$prototype.diagnostics = self.$$prototype.literal_stack = nil; + + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + + self.$attr_accessor("_lex_trans_keys"); + return self.$private("_lex_trans_keys", "_lex_trans_keys="); + })(Opal.get_singleton_class(self), $nesting); + + $writer = [[0, 0, 101, 101, 103, 103, 105, 105, 110, 110, 69, 69, 78, 78, 68, 68, 95, 95, 95, 95, 0, 26, 0, 127, 0, 127, 0, 127, 0, 127, 0, 45, 0, 77, 0, 77, 0, 92, 0, 26, 0, 26, 0, 45, 0, 99, 0, 26, 67, 99, 45, 45, 0, 92, 0, 77, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 45, 0, 77, 0, 77, 0, 92, 0, 26, 0, 26, 0, 45, 0, 99, 0, 26, 67, 99, 45, 45, 0, 92, 0, 77, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 26, 0, 127, 58, 58, 58, 58, 0, 127, 58, 58, 60, 60, 62, 62, 10, 10, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 115, 115, 99, 99, 117, 117, 101, 101, 108, 116, 101, 101, 115, 115, 115, 115, 105, 105, 108, 108, 105, 105, 108, 108, 58, 58, 0, 127, 10, 10, 0, 127, 9, 92, 10, 10, 9, 92, 58, 58, 98, 98, 101, 101, 103, 103, 105, 105, 110, 110, 0, 122, 61, 61, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 10, 10, 0, 127, 0, 127, 61, 126, 93, 93, 0, 127, 0, 127, 10, 10, 34, 34, 10, 10, 39, 39, 0, 127, 10, 96, 96, 96, 0, 45, 0, 77, 0, 77, 0, 92, 0, 26, 0, 26, 0, 45, 0, 99, 0, 26, 67, 99, 45, 45, 0, 92, 0, 77, 0, 102, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 58, 58, 58, 0, 127, 43, 57, 48, 57, 48, 57, 48, 57, 48, 57, 115, 115, 99, 99, 117, 117, 101, 101, 99, 99, 117, 117, 101, 101, 0, 127, 58, 58, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 9, 92, 60, 60, 10, 10, 9, 92, 9, 92, 10, 10, 10, 10, 10, 10, 10, 10, 46, 46, 0, 95, 9, 32, 0, 0, 10, 10, 10, 10, 98, 98, 9, 32, 10, 10, 95, 95, 0, 92, 9, 32, 36, 123, 0, 127, 48, 57, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 0, 45, 10, 10, 0, 92, 48, 123, 48, 102, 48, 102, 48, 102, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 92, 36, 123, 0, 127, 48, 57, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 0, 45, 10, 10, 0, 92, 48, 123, 48, 102, 48, 102, 48, 102, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 92, 9, 32, 0, 26, 0, 92, 0, 26, 0, 35, 36, 123, 0, 127, 48, 57, 0, 127, 0, 26, 0, 35, 9, 32, 36, 123, 0, 127, 48, 57, 0, 127, 0, 32, 9, 32, 65, 122, 65, 122, 36, 64, 0, 127, 48, 57, 0, 127, 0, 127, 0, 127, 0, 127, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 0, 127, 0, 127, 48, 57, 115, 115, 38, 38, 42, 42, 64, 64, 58, 58, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 93, 93, 10, 10, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 124, 124, 0, 127, 0, 127, 9, 32, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 61, 61, 0, 0, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 38, 38, 42, 42, 64, 64, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 93, 93, 10, 10, 124, 124, 0, 126, 0, 127, 0, 61, 9, 61, 9, 61, 0, 0, 9, 61, 9, 62, 46, 46, 46, 46, 58, 58, 9, 32, 0, 0, 0, 127, 0, 0, 9, 124, 0, 0, 10, 10, 10, 10, 0, 0, 9, 61, 58, 58, 60, 60, 62, 62, 9, 32, 10, 10, 0, 127, 102, 102, 101, 101, 110, 110, 104, 104, 0, 127, 0, 127, 0, 127, 0, 0, 0, 127, 10, 10, 0, 123, 9, 32, 10, 10, 10, 10, 10, 10, 0, 0, 111, 111, 0, 0, 0, 127, 0, 127, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 58, 61, 0, 0, 61, 126, 61, 61, 0, 0, 0, 0, 0, 0, 9, 32, 61, 61, 9, 32, 61, 126, 10, 10, 10, 10, 65, 122, 0, 122, 38, 61, 0, 0, 42, 61, 61, 61, 9, 92, 9, 92, 9, 92, 46, 46, 46, 46, 0, 26, 0, 127, 0, 127, 61, 61, 0, 0, 61, 126, 61, 62, 0, 0, 0, 0, 0, 0, 0, 0, 61, 126, 0, 127, 48, 57, 38, 38, 42, 42, 64, 64, 60, 61, 62, 62, 61, 61, 61, 62, 0, 127, 48, 57, 0, 127, 124, 124, 64, 64, 60, 61, 0, 0, 10, 34, 10, 39, 96, 96, 62, 62, 61, 126, 61, 62, 0, 122, 0, 0, 0, 127, 0, 127, 0, 120, 0, 0, 0, 0, 48, 55, 48, 55, 0, 0, 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0, 92, 45, 45, 0, 0, 0, 0, 0, 0, 0, 92, 0, 45, 0, 92, 0, 92, 0, 0, 0, 0, 0, 92, 0, 45, 10, 10, 0, 92, 48, 123, 48, 102, 48, 102, 48, 102, 0, 0, 0, 125, 0, 125, 0, 0, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 125, 0, 0, 0, 0, 48, 102, 0, 0, 0, 127, 0, 127, 0, 127, 0, 0, 10, 10, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 61, 126, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 61, 124, 0, 92, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 9, 32, 0, 0, 10, 10, 10, 10, 10, 10, 0, 0, 0, 127, 0, 127, 61, 61, 0, 0, 9, 32, 0, 0, 61, 126, 10, 10, 10, 10, 0, 127, 0, 127, 48, 57, 61, 61, 38, 61, 0, 0, 0, 0, 42, 61, 61, 62, 46, 57, 46, 46, 10, 10, 48, 101, 48, 95, 46, 120, 48, 114, 43, 57, 48, 105, 102, 102, 0, 0, 101, 105, 0, 0, 0, 0, 48, 114, 48, 114, 48, 114, 48, 114, 105, 114, 102, 102, 0, 0, 101, 105, 115, 115, 0, 0, 0, 0, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 48, 114, 46, 114, 48, 114, 46, 114, 48, 114, 58, 58, 60, 61, 62, 62, 61, 126, 61, 61, 61, 62, 0, 127, 0, 127, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 10, 10, 0, 0, 0, 0, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 9, 92, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 127, 0, 0, 61, 124, 0, 0, 9, 92, 9, 92, 9, 92, 10, 10, 46, 46, 10, 10, 10, 61, 10, 10, 10, 101, 10, 110, 10, 100, 10, 10, 0]]; + $send(self, '_lex_trans_keys=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + + self.$attr_accessor("_lex_key_spans"); + return self.$private("_lex_key_spans", "_lex_key_spans="); + })(Opal.get_singleton_class(self), $nesting); + + $writer = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 27, 128, 128, 128, 128, 46, 78, 78, 93, 27, 27, 46, 100, 27, 33, 1, 93, 78, 103, 128, 128, 128, 128, 46, 78, 78, 93, 27, 27, 46, 100, 27, 33, 1, 93, 78, 103, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 27, 128, 1, 1, 128, 1, 1, 1, 1, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 1, 1, 1, 1, 9, 1, 1, 1, 1, 1, 1, 1, 1, 128, 1, 128, 84, 1, 84, 1, 1, 1, 1, 1, 1, 123, 1, 84, 84, 84, 84, 84, 1, 128, 128, 66, 1, 128, 128, 1, 1, 1, 1, 128, 87, 1, 46, 78, 78, 93, 27, 27, 46, 100, 27, 33, 1, 93, 78, 103, 128, 128, 128, 128, 128, 128, 1, 1, 128, 15, 10, 10, 10, 10, 1, 1, 1, 1, 1, 1, 1, 128, 1, 84, 84, 84, 84, 84, 84, 1, 1, 84, 84, 1, 1, 1, 1, 1, 96, 24, 0, 1, 1, 1, 24, 1, 1, 93, 24, 88, 128, 10, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 46, 93, 93, 0, 0, 93, 46, 1, 93, 76, 55, 55, 55, 0, 126, 126, 0, 126, 0, 126, 126, 126, 126, 0, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 93, 88, 128, 10, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 46, 93, 93, 0, 0, 93, 46, 1, 93, 76, 55, 55, 55, 0, 126, 126, 0, 126, 0, 126, 126, 126, 126, 0, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 93, 24, 27, 93, 27, 36, 88, 128, 10, 128, 27, 36, 24, 88, 128, 10, 128, 33, 24, 58, 58, 29, 128, 10, 128, 128, 128, 128, 24, 0, 66, 1, 1, 128, 128, 10, 1, 1, 1, 1, 1, 2, 1, 66, 1, 2, 128, 128, 128, 128, 128, 128, 128, 1, 1, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 1, 128, 128, 24, 1, 1, 1, 0, 128, 128, 1, 0, 24, 0, 66, 1, 1, 1, 1, 1, 2, 1, 66, 1, 2, 128, 1, 1, 1, 127, 128, 62, 53, 53, 0, 53, 54, 1, 1, 1, 24, 0, 128, 0, 116, 0, 1, 1, 0, 53, 1, 1, 1, 24, 1, 128, 1, 1, 1, 1, 128, 128, 128, 0, 128, 1, 124, 24, 1, 1, 1, 0, 1, 0, 128, 128, 24, 0, 1, 1, 1, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 4, 0, 66, 1, 0, 0, 0, 24, 1, 24, 66, 1, 1, 58, 123, 24, 0, 20, 1, 84, 84, 84, 1, 1, 27, 128, 128, 1, 0, 66, 2, 0, 0, 0, 0, 66, 128, 10, 1, 1, 1, 2, 1, 1, 2, 128, 10, 128, 1, 1, 2, 0, 25, 30, 1, 1, 66, 2, 123, 0, 128, 128, 121, 0, 0, 8, 8, 0, 0, 93, 0, 0, 0, 93, 1, 0, 0, 0, 93, 46, 93, 93, 0, 0, 93, 46, 1, 93, 76, 55, 55, 55, 0, 126, 126, 0, 126, 0, 126, 126, 126, 126, 0, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 126, 0, 0, 55, 0, 128, 128, 128, 0, 1, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 66, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 64, 93, 24, 0, 1, 1, 1, 0, 128, 128, 24, 0, 1, 1, 1, 0, 128, 128, 1, 0, 24, 0, 66, 1, 1, 128, 128, 10, 1, 24, 0, 0, 20, 2, 12, 1, 1, 54, 48, 75, 67, 15, 58, 1, 0, 5, 0, 0, 67, 67, 67, 67, 10, 1, 0, 5, 1, 0, 0, 67, 67, 67, 67, 67, 67, 67, 67, 69, 67, 69, 67, 1, 2, 1, 66, 1, 2, 128, 128, 0, 128, 128, 128, 128, 128, 128, 0, 1, 0, 0, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 84, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0, 64, 0, 84, 84, 84, 1, 1, 1, 52, 1, 92, 101, 91, 1]]; + $send(self, '_lex_key_spans=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + + self.$attr_accessor("_lex_index_offsets"); + return self.$private("_lex_index_offsets", "_lex_index_offsets="); + })(Opal.get_singleton_class(self), $nesting); + + $writer = [[0, 0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 46, 175, 304, 433, 562, 609, 688, 767, 861, 889, 917, 964, 1065, 1093, 1127, 1129, 1223, 1302, 1406, 1535, 1664, 1793, 1922, 1969, 2048, 2127, 2221, 2249, 2277, 2324, 2425, 2453, 2487, 2489, 2583, 2662, 2766, 2895, 3024, 3153, 3282, 3411, 3540, 3669, 3798, 3927, 4056, 4185, 4314, 4443, 4471, 4600, 4602, 4604, 4733, 4735, 4737, 4739, 4741, 4870, 4999, 5128, 5257, 5386, 5515, 5644, 5773, 5902, 6031, 6160, 6289, 6418, 6547, 6676, 6805, 6934, 7063, 7065, 7067, 7069, 7071, 7081, 7083, 7085, 7087, 7089, 7091, 7093, 7095, 7097, 7226, 7228, 7357, 7442, 7444, 7529, 7531, 7533, 7535, 7537, 7539, 7541, 7665, 7667, 7752, 7837, 7922, 8007, 8092, 8094, 8223, 8352, 8419, 8421, 8550, 8679, 8681, 8683, 8685, 8687, 8816, 8904, 8906, 8953, 9032, 9111, 9205, 9233, 9261, 9308, 9409, 9437, 9471, 9473, 9567, 9646, 9750, 9879, 10008, 10137, 10266, 10395, 10524, 10526, 10528, 10657, 10673, 10684, 10695, 10706, 10717, 10719, 10721, 10723, 10725, 10727, 10729, 10731, 10860, 10862, 10947, 11032, 11117, 11202, 11287, 11372, 11374, 11376, 11461, 11546, 11548, 11550, 11552, 11554, 11556, 11653, 11678, 11679, 11681, 11683, 11685, 11710, 11712, 11714, 11808, 11833, 11922, 12051, 12062, 12191, 12313, 12314, 12315, 12324, 12333, 12334, 12335, 12429, 12430, 12431, 12432, 12526, 12528, 12529, 12530, 12531, 12625, 12672, 12766, 12860, 12861, 12862, 12956, 13003, 13005, 13099, 13176, 13232, 13288, 13344, 13345, 13472, 13599, 13600, 13727, 13728, 13855, 13982, 14109, 14236, 14237, 14364, 14491, 14618, 14745, 14872, 14999, 15000, 15001, 15057, 15058, 15152, 15241, 15370, 15381, 15510, 15632, 15633, 15634, 15643, 15652, 15653, 15654, 15748, 15749, 15750, 15751, 15845, 15847, 15848, 15849, 15850, 15944, 15991, 16085, 16179, 16180, 16181, 16275, 16322, 16324, 16418, 16495, 16551, 16607, 16663, 16664, 16791, 16918, 16919, 17046, 17047, 17174, 17301, 17428, 17555, 17556, 17683, 17810, 17937, 18064, 18191, 18318, 18319, 18320, 18376, 18377, 18471, 18496, 18524, 18618, 18646, 18683, 18772, 18901, 18912, 19041, 19069, 19106, 19131, 19220, 19349, 19360, 19489, 19523, 19548, 19607, 19666, 19696, 19825, 19836, 19965, 20094, 20223, 20352, 20377, 20378, 20445, 20447, 20449, 20578, 20707, 20718, 20720, 20722, 20724, 20726, 20728, 20731, 20733, 20800, 20802, 20805, 20934, 21063, 21192, 21321, 21450, 21579, 21708, 21710, 21712, 21841, 21970, 22099, 22228, 22357, 22486, 22615, 22744, 22873, 23002, 23131, 23260, 23389, 23518, 23647, 23776, 23905, 24034, 24163, 24292, 24421, 24550, 24679, 24808, 24937, 25066, 25195, 25324, 25453, 25582, 25711, 25840, 25969, 26098, 26227, 26356, 26485, 26614, 26743, 26872, 27001, 27130, 27259, 27388, 27517, 27646, 27775, 27904, 28033, 28162, 28291, 28420, 28549, 28678, 28807, 28936, 29065, 29194, 29323, 29452, 29581, 29710, 29839, 29968, 30097, 30226, 30355, 30484, 30613, 30742, 30871, 31000, 31129, 31258, 31387, 31516, 31645, 31774, 31903, 32032, 32161, 32290, 32419, 32421, 32550, 32679, 32704, 32706, 32708, 32710, 32711, 32840, 32969, 32971, 32972, 32997, 32998, 33065, 33067, 33069, 33071, 33073, 33075, 33078, 33080, 33147, 33149, 33152, 33281, 33283, 33285, 33287, 33415, 33544, 33607, 33661, 33715, 33716, 33770, 33825, 33827, 33829, 33831, 33856, 33857, 33986, 33987, 34104, 34105, 34107, 34109, 34110, 34164, 34166, 34168, 34170, 34195, 34197, 34326, 34328, 34330, 34332, 34334, 34463, 34592, 34721, 34722, 34851, 34853, 34978, 35003, 35005, 35007, 35009, 35010, 35012, 35013, 35142, 35271, 35296, 35297, 35299, 35301, 35303, 35304, 35433, 35562, 35691, 35820, 35949, 36078, 36207, 36336, 36465, 36594, 36723, 36852, 36981, 37110, 37239, 37368, 37497, 37626, 37631, 37632, 37699, 37701, 37702, 37703, 37704, 37729, 37731, 37756, 37823, 37825, 37827, 37886, 38010, 38035, 38036, 38057, 38059, 38144, 38229, 38314, 38316, 38318, 38346, 38475, 38604, 38606, 38607, 38674, 38677, 38678, 38679, 38680, 38681, 38748, 38877, 38888, 38890, 38892, 38894, 38897, 38899, 38901, 38904, 39033, 39044, 39173, 39175, 39177, 39180, 39181, 39207, 39238, 39240, 39242, 39309, 39312, 39436, 39437, 39566, 39695, 39817, 39818, 39819, 39828, 39837, 39838, 39839, 39933, 39934, 39935, 39936, 40030, 40032, 40033, 40034, 40035, 40129, 40176, 40270, 40364, 40365, 40366, 40460, 40507, 40509, 40603, 40680, 40736, 40792, 40848, 40849, 40976, 41103, 41104, 41231, 41232, 41359, 41486, 41613, 41740, 41741, 41868, 41995, 42122, 42249, 42376, 42503, 42630, 42757, 42884, 43011, 43138, 43265, 43392, 43519, 43646, 43773, 43900, 44027, 44154, 44155, 44156, 44212, 44213, 44342, 44471, 44600, 44601, 44603, 44604, 44733, 44862, 44991, 45120, 45249, 45378, 45507, 45636, 45765, 45894, 46023, 46152, 46281, 46410, 46539, 46668, 46797, 46926, 47055, 47184, 47313, 47442, 47571, 47700, 47829, 47958, 48087, 48216, 48345, 48474, 48603, 48732, 48861, 48990, 49119, 49248, 49377, 49506, 49635, 49764, 49893, 50022, 50151, 50280, 50409, 50538, 50667, 50796, 50925, 51054, 51183, 51312, 51441, 51570, 51699, 51828, 51957, 52086, 52215, 52344, 52473, 52540, 52669, 52798, 52927, 53056, 53185, 53314, 53443, 53572, 53701, 53830, 53959, 54088, 54217, 54346, 54475, 54604, 54733, 54862, 54991, 55120, 55249, 55378, 55507, 55636, 55765, 55766, 55831, 55925, 55950, 55951, 55953, 55955, 55957, 55958, 56087, 56216, 56241, 56242, 56244, 56246, 56248, 56249, 56378, 56507, 56509, 56510, 56535, 56536, 56603, 56605, 56607, 56736, 56865, 56876, 56878, 56903, 56904, 56905, 56926, 56929, 56942, 56944, 56946, 57001, 57050, 57126, 57194, 57210, 57269, 57271, 57272, 57278, 57279, 57280, 57348, 57416, 57484, 57552, 57563, 57565, 57566, 57572, 57574, 57575, 57576, 57644, 57712, 57780, 57848, 57916, 57984, 58052, 58120, 58190, 58258, 58328, 58396, 58398, 58401, 58403, 58470, 58472, 58475, 58604, 58733, 58734, 58863, 58992, 59121, 59250, 59379, 59508, 59509, 59511, 59512, 59513, 59642, 59771, 59900, 60029, 60158, 60287, 60416, 60545, 60674, 60803, 60932, 61061, 61190, 61319, 61448, 61577, 61706, 61835, 61964, 62093, 62222, 62351, 62480, 62609, 62738, 62867, 62996, 63125, 63254, 63383, 63512, 63641, 63770, 63899, 64028, 64157, 64286, 64371, 64500, 64629, 64758, 64887, 65016, 65145, 65274, 65403, 65532, 65661, 65790, 65919, 66048, 66177, 66306, 66435, 66564, 66693, 66822, 66951, 67080, 67209, 67338, 67467, 67596, 67725, 67854, 67983, 68112, 68241, 68370, 68499, 68628, 68757, 68886, 69015, 69144, 69273, 69402, 69531, 69660, 69789, 69918, 70047, 70176, 70305, 70434, 70563, 70692, 70821, 70950, 71079, 71208, 71337, 71466, 71595, 71724, 71853, 71982, 72111, 72240, 72369, 72498, 72627, 72756, 72757, 72822, 72823, 72908, 72993, 73078, 73080, 73082, 73084, 73137, 73139, 73232, 73334, 73426]]; + $send(self, '_lex_index_offsets=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + + self.$attr_accessor("_lex_indicies"); + return self.$private("_lex_indicies", "_lex_indicies="); + })(Opal.get_singleton_class(self), $nesting); + + $writer = [[1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 0, 0, 10, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 14, 12, 14, 12, 14, 14, 12, 12, 14, 14, 14, 15, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 14, 14, 14, 14, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 14, 12, 12, 13, 14, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 14, 12, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 12, 12, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 14, 12, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 12, 12, 12, 12, 12, 14, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 12, 12, 12, 12, 12, 12, 18, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 13, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 13, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 13, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 12, 12, 12, 12, 13, 19, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 20, 19, 22, 22, 22, 19, 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 19, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 24, 22, 19, 22, 22, 22, 19, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 19, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 25, 22, 19, 26, 26, 26, 19, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 19, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 28, 26, 19, 29, 29, 29, 19, 29, 29, 29, 29, 29, 30, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 19, 29, 19, 29, 29, 29, 19, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 19, 29, 19, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 31, 20, 19, 32, 32, 32, 19, 32, 32, 32, 32, 32, 33, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 19, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 34, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 35, 32, 32, 32, 32, 32, 32, 36, 32, 19, 32, 32, 32, 19, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 19, 32, 37, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 38, 19, 38, 19, 19, 39, 39, 39, 19, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 19, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 41, 39, 19, 22, 22, 22, 19, 22, 22, 22, 22, 22, 23, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 19, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 25, 22, 19, 42, 42, 42, 19, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 19, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 43, 43, 43, 43, 43, 43, 42, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 46, 46, 44, 46, 44, 46, 46, 44, 44, 46, 46, 46, 47, 46, 46, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 46, 46, 46, 46, 46, 46, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 44, 46, 44, 44, 45, 46, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 44, 44, 44, 46, 44, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 44, 44, 44, 44, 44, 44, 44, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 44, 44, 44, 44, 46, 44, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 44, 44, 44, 44, 44, 46, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 44, 44, 44, 44, 44, 44, 50, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 44, 44, 44, 44, 45, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 44, 44, 44, 44, 44, 45, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 44, 44, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 44, 44, 44, 44, 45, 44, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 44, 44, 44, 44, 44, 45, 51, 52, 52, 52, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 52, 51, 54, 54, 54, 51, 54, 54, 54, 54, 54, 55, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 51, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 56, 54, 51, 54, 54, 54, 51, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 51, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 57, 54, 51, 58, 58, 58, 51, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 51, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 60, 58, 51, 61, 61, 61, 51, 61, 61, 61, 61, 61, 62, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 51, 61, 51, 61, 61, 61, 51, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 61, 51, 61, 51, 52, 52, 52, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 63, 52, 51, 64, 64, 64, 51, 64, 64, 64, 64, 64, 65, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 51, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 66, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 67, 64, 64, 64, 64, 64, 64, 68, 64, 51, 64, 64, 64, 51, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 51, 64, 69, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 70, 51, 70, 51, 51, 71, 71, 71, 51, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 51, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 72, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 73, 71, 51, 54, 54, 54, 51, 54, 54, 54, 54, 54, 55, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 51, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 57, 54, 51, 74, 74, 74, 51, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 51, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 75, 75, 75, 75, 75, 75, 74, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 78, 78, 76, 78, 76, 78, 78, 76, 76, 78, 78, 78, 79, 78, 78, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 78, 78, 78, 78, 78, 78, 78, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 76, 78, 76, 76, 77, 78, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 76, 76, 76, 78, 76, 77, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 76, 76, 76, 76, 76, 76, 76, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 76, 76, 76, 76, 78, 76, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 78, 76, 76, 76, 76, 76, 78, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 76, 76, 76, 76, 76, 76, 82, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 76, 76, 76, 76, 77, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 76, 76, 76, 76, 76, 77, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 76, 76, 76, 76, 77, 76, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 76, 76, 76, 76, 76, 77, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 85, 85, 83, 85, 83, 85, 85, 83, 83, 85, 85, 85, 86, 85, 85, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 85, 85, 85, 85, 85, 85, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83, 85, 83, 83, 84, 85, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83, 83, 83, 85, 83, 84, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 83, 83, 83, 83, 83, 83, 83, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 83, 83, 83, 83, 85, 83, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, 83, 83, 83, 83, 83, 85, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 83, 83, 83, 83, 83, 83, 89, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83, 83, 83, 83, 84, 83, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83, 83, 83, 83, 83, 84, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 83, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 83, 83, 83, 83, 83, 83, 83, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83, 83, 83, 83, 84, 83, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 83, 83, 83, 83, 83, 84, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 91, 91, 92, 91, 92, 91, 91, 92, 92, 91, 91, 91, 93, 91, 91, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 91, 91, 91, 91, 91, 91, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 92, 91, 92, 92, 90, 91, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 92, 92, 92, 91, 92, 90, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 92, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 91, 92, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 91, 92, 92, 92, 92, 92, 91, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 92, 92, 92, 92, 92, 92, 96, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 92, 92, 92, 92, 95, 92, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 92, 92, 92, 92, 92, 95, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 92, 92, 92, 92, 92, 92, 92, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 92, 92, 92, 92, 97, 92, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 92, 92, 92, 92, 92, 97, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98, 98, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 99, 98, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 98, 98, 98, 98, 98, 99, 100, 101, 101, 101, 100, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 101, 100, 101, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 104, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 105, 102, 102, 102, 102, 104, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 102, 102, 102, 102, 103, 102, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 102, 102, 102, 102, 102, 103, 105, 102, 102, 106, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 109, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 107, 107, 107, 107, 109, 107, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 107, 107, 107, 107, 108, 107, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 107, 107, 107, 107, 107, 108, 110, 107, 112, 111, 113, 111, 114, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 116, 111, 116, 116, 116, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 116, 111, 111, 111, 111, 117, 118, 111, 119, 111, 120, 121, 122, 123, 124, 117, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 125, 111, 126, 122, 127, 128, 111, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 129, 130, 122, 131, 115, 111, 115, 115, 115, 115, 115, 115, 115, 115, 132, 115, 115, 115, 115, 115, 115, 115, 115, 133, 115, 115, 134, 115, 135, 115, 115, 115, 136, 137, 111, 131, 111, 115, 111, 111, 111, 111, 111, 111, 111, 111, 111, 138, 111, 138, 138, 138, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 138, 111, 111, 111, 111, 139, 140, 111, 141, 111, 142, 143, 144, 145, 146, 139, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 147, 111, 148, 144, 149, 150, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 151, 152, 144, 113, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 153, 108, 108, 108, 108, 108, 108, 108, 108, 154, 108, 108, 155, 108, 156, 108, 108, 108, 157, 158, 111, 113, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 159, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 160, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 161, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 162, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 163, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 159, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 164, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 165, 108, 108, 108, 108, 108, 108, 108, 166, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 167, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 168, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 159, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 169, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 159, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 170, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 171, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 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, 111, 111, 111, 111, 111, 111, 111, 109, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 111, 111, 111, 111, 109, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 108, 111, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 163, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 111, 111, 111, 111, 111, 108, 173, 172, 174, 172, 175, 172, 144, 172, 176, 172, 172, 172, 172, 172, 172, 172, 177, 172, 178, 172, 179, 172, 144, 172, 180, 172, 144, 172, 181, 172, 175, 172, 183, 182, 184, 184, 184, 184, 184, 184, 184, 184, 184, 186, 184, 186, 186, 186, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 186, 184, 184, 184, 184, 184, 184, 184, 187, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 184, 188, 184, 184, 185, 184, 185, 185, 185, 189, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 184, 184, 184, 184, 184, 185, 190, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 192, 184, 192, 192, 192, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 192, 184, 184, 184, 184, 184, 184, 184, 193, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 184, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 184, 194, 184, 184, 191, 184, 191, 191, 191, 195, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, 184, 184, 184, 184, 184, 191, 197, 196, 197, 197, 197, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 197, 196, 196, 196, 196, 196, 196, 196, 198, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 199, 196, 200, 196, 201, 196, 201, 201, 201, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 201, 196, 196, 196, 196, 196, 196, 196, 202, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 203, 196, 204, 205, 207, 206, 208, 206, 209, 206, 210, 206, 211, 206, 212, 213, 213, 213, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 212, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 213, 215, 204, 216, 217, 216, 216, 216, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 216, 204, 204, 218, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 220, 204, 221, 222, 221, 221, 221, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 221, 204, 204, 223, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 225, 204, 227, 228, 227, 227, 227, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 227, 226, 226, 229, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 226, 231, 226, 233, 234, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, 232, 232, 235, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 237, 232, 233, 238, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, 232, 232, 235, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 237, 232, 217, 204, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 241, 241, 239, 241, 239, 241, 241, 239, 239, 241, 241, 241, 242, 241, 241, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 241, 241, 241, 241, 241, 241, 241, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 239, 241, 239, 239, 240, 241, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 239, 239, 239, 241, 239, 240, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 239, 239, 239, 239, 239, 239, 239, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 239, 239, 239, 239, 241, 239, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 239, 239, 239, 239, 239, 241, 244, 241, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 241, 239, 244, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 246, 239, 239, 239, 239, 247, 239, 239, 239, 239, 239, 248, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 215, 239, 239, 239, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 239, 239, 239, 239, 245, 249, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 239, 239, 239, 248, 239, 245, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 252, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 251, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 250, 251, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 250, 251, 251, 251, 251, 251, 250, 254, 253, 257, 256, 252, 251, 257, 258, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 246, 239, 239, 239, 239, 247, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 239, 239, 239, 239, 245, 249, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 245, 239, 239, 239, 239, 239, 245, 260, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, 257, 259, 257, 260, 261, 262, 262, 262, 261, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 261, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 263, 262, 261, 264, 264, 264, 261, 264, 264, 264, 264, 264, 265, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 261, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 266, 264, 261, 264, 264, 264, 261, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 261, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 267, 264, 261, 268, 268, 268, 261, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 261, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 269, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 270, 268, 261, 271, 271, 271, 261, 271, 271, 271, 271, 271, 272, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 261, 271, 261, 271, 271, 271, 261, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, 261, 271, 261, 262, 262, 262, 261, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 261, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 273, 262, 261, 274, 274, 274, 261, 274, 274, 274, 274, 274, 275, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 261, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 276, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 277, 274, 274, 274, 274, 274, 274, 278, 274, 261, 274, 274, 274, 261, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 274, 261, 274, 279, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 261, 280, 261, 280, 261, 261, 281, 281, 281, 261, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 261, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 282, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 283, 281, 261, 264, 264, 264, 261, 264, 264, 264, 264, 264, 265, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 261, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, 267, 264, 261, 284, 284, 284, 261, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 261, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 285, 285, 285, 285, 285, 285, 285, 285, 285, 285, 284, 284, 284, 284, 284, 284, 284, 285, 285, 285, 285, 285, 285, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 285, 285, 285, 285, 285, 285, 284, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 287, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 288, 204, 204, 289, 204, 287, 204, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 204, 204, 204, 204, 286, 204, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 204, 204, 204, 204, 204, 286, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 287, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 288, 239, 239, 289, 239, 287, 239, 286, 286, 286, 286, 286, 286, 290, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 239, 239, 239, 239, 286, 239, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 239, 239, 239, 239, 239, 286, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 287, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 288, 239, 239, 289, 239, 287, 239, 286, 286, 286, 286, 286, 286, 286, 286, 291, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 239, 239, 239, 239, 286, 239, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 239, 239, 239, 239, 239, 286, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 287, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 288, 239, 239, 289, 239, 287, 239, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 292, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 239, 239, 239, 239, 286, 239, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 239, 239, 239, 239, 239, 286, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 287, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 288, 239, 239, 289, 239, 287, 239, 286, 286, 286, 292, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 239, 239, 239, 239, 286, 239, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 239, 239, 239, 239, 239, 286, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 295, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 293, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 296, 293, 293, 293, 293, 295, 293, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 293, 293, 293, 293, 294, 293, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 293, 293, 293, 293, 293, 294, 296, 293, 293, 297, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 298, 298, 298, 298, 298, 298, 298, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 298, 298, 298, 298, 299, 298, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 299, 298, 298, 298, 298, 298, 299, 301, 300, 301, 300, 300, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 300, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 300, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 300, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 304, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 304, 308, 307, 309, 307, 310, 307, 311, 307, 313, 312, 314, 312, 315, 312, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 298, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 298, 298, 298, 298, 298, 298, 298, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 298, 298, 298, 298, 316, 298, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 298, 298, 298, 298, 298, 316, 317, 304, 318, 319, 318, 318, 318, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 318, 304, 304, 320, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 321, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 322, 304, 323, 324, 323, 323, 323, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 323, 304, 304, 325, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 326, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 327, 304, 329, 330, 329, 329, 329, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 329, 328, 328, 331, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 332, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 328, 333, 328, 335, 336, 335, 335, 335, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 335, 334, 334, 337, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 338, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 339, 334, 335, 336, 335, 335, 335, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 335, 334, 334, 337, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 340, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 339, 334, 335, 341, 335, 335, 335, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 335, 334, 334, 337, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 338, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 339, 334, 342, 304, 319, 304, 344, 345, 344, 344, 344, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 344, 343, 343, 346, 343, 343, 347, 343, 343, 343, 343, 343, 343, 343, 348, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 343, 349, 343, 351, 345, 351, 351, 351, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 351, 350, 350, 346, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 350, 349, 350, 354, 353, 356, 355, 357, 352, 358, 352, 359, 343, 361, 360, 360, 360, 361, 360, 360, 360, 360, 362, 363, 362, 362, 362, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 361, 360, 360, 360, 360, 360, 362, 360, 360, 364, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 365, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 360, 366, 360, 360, 367, 360, 362, 368, 362, 362, 362, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 368, 362, 368, 369, 370, 371, 372, 373, 375, 374, 377, 378, 377, 377, 377, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 376, 377, 376, 363, 374, 379, 374, 381, 380, 380, 380, 381, 380, 380, 380, 380, 382, 383, 382, 382, 382, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 381, 380, 380, 380, 380, 380, 382, 380, 380, 384, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 380, 385, 380, 382, 386, 382, 382, 382, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 386, 382, 386, 388, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 389, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 387, 390, 387, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 391, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 391, 391, 391, 391, 391, 391, 391, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 391, 391, 391, 391, 13, 391, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 391, 391, 391, 391, 391, 13, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 391, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 392, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 392, 392, 392, 392, 392, 392, 392, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 392, 392, 392, 392, 17, 392, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 392, 392, 392, 392, 392, 17, 395, 394, 394, 394, 395, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 395, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 396, 396, 396, 396, 396, 396, 396, 396, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 397, 394, 394, 394, 394, 394, 394, 394, 394, 394, 398, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 399, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 394, 400, 394, 394, 401, 394, 402, 403, 405, 405, 405, 405, 405, 405, 405, 405, 404, 406, 406, 406, 406, 406, 406, 406, 406, 404, 404, 407, 407, 39, 39, 39, 407, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 407, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 408, 39, 409, 410, 411, 411, 39, 39, 39, 411, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 411, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 40, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 39, 412, 39, 38, 411, 413, 414, 415, 415, 26, 26, 26, 415, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 415, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 416, 26, 411, 20, 20, 20, 411, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 411, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 417, 20, 407, 26, 26, 26, 407, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 407, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 28, 26, 407, 418, 418, 418, 407, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 407, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 419, 418, 420, 421, 421, 418, 418, 418, 421, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 421, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 418, 422, 418, 421, 20, 20, 20, 421, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 421, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 417, 20, 423, 421, 421, 26, 26, 26, 421, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 421, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 27, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 28, 26, 425, 425, 425, 425, 425, 425, 425, 425, 425, 425, 424, 424, 424, 424, 424, 424, 424, 425, 425, 425, 425, 425, 425, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 425, 425, 425, 425, 425, 425, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 426, 424, 427, 427, 427, 427, 427, 427, 427, 427, 427, 427, 424, 424, 424, 424, 424, 424, 424, 427, 427, 427, 427, 427, 427, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 427, 427, 427, 427, 427, 427, 424, 428, 428, 428, 428, 428, 428, 428, 428, 428, 428, 424, 424, 424, 424, 424, 424, 424, 428, 428, 428, 428, 428, 428, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 428, 428, 428, 428, 428, 428, 424, 429, 429, 429, 429, 429, 429, 429, 429, 429, 429, 424, 424, 424, 424, 424, 424, 424, 429, 429, 429, 429, 429, 429, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 424, 429, 429, 429, 429, 429, 429, 424, 430, 433, 432, 432, 432, 433, 432, 432, 432, 432, 434, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 433, 432, 432, 432, 432, 432, 434, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 432, 432, 432, 432, 432, 432, 432, 435, 435, 435, 435, 435, 435, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 435, 435, 435, 435, 435, 435, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 436, 432, 433, 432, 432, 432, 433, 432, 432, 432, 432, 431, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 433, 432, 432, 432, 432, 432, 431, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 432, 432, 432, 432, 432, 432, 432, 437, 437, 437, 437, 437, 437, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 437, 437, 437, 437, 437, 437, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 432, 438, 432, 431, 433, 437, 437, 437, 433, 437, 437, 437, 437, 431, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 433, 437, 437, 437, 437, 437, 431, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 431, 437, 439, 433, 440, 440, 440, 433, 440, 440, 440, 440, 434, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 434, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 440, 440, 440, 440, 440, 440, 440, 435, 435, 435, 435, 435, 435, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 435, 435, 435, 435, 435, 435, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 431, 440, 433, 440, 440, 440, 433, 440, 440, 440, 440, 431, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 431, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 437, 437, 437, 437, 437, 437, 437, 437, 437, 437, 440, 440, 440, 440, 440, 440, 440, 437, 437, 437, 437, 437, 437, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 437, 437, 437, 437, 437, 437, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 433, 440, 440, 440, 433, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 442, 442, 442, 442, 442, 442, 442, 442, 442, 442, 440, 440, 440, 440, 440, 440, 440, 442, 442, 442, 442, 442, 442, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 442, 442, 442, 442, 442, 442, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 443, 440, 433, 440, 440, 440, 433, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 435, 435, 435, 435, 435, 435, 435, 435, 435, 435, 440, 440, 440, 440, 440, 440, 440, 435, 435, 435, 435, 435, 435, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 435, 435, 435, 435, 435, 435, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 443, 440, 444, 433, 440, 440, 440, 433, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 445, 445, 445, 445, 445, 445, 445, 445, 445, 445, 440, 440, 440, 440, 440, 440, 440, 445, 445, 445, 445, 445, 445, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 445, 445, 445, 445, 445, 445, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 443, 440, 433, 440, 440, 440, 433, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 446, 446, 446, 446, 446, 446, 446, 446, 446, 446, 440, 440, 440, 440, 440, 440, 440, 446, 446, 446, 446, 446, 446, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 446, 446, 446, 446, 446, 446, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 443, 440, 433, 440, 440, 440, 433, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 447, 447, 447, 447, 447, 447, 447, 447, 447, 447, 440, 440, 440, 440, 440, 440, 440, 447, 447, 447, 447, 447, 447, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 447, 447, 447, 447, 447, 447, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 443, 440, 433, 440, 440, 440, 433, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 448, 448, 448, 448, 448, 448, 448, 448, 448, 448, 440, 440, 440, 440, 440, 440, 440, 448, 448, 448, 448, 448, 448, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 448, 448, 448, 448, 448, 448, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 443, 440, 433, 440, 440, 440, 433, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 441, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 440, 440, 440, 440, 440, 440, 440, 449, 449, 449, 449, 449, 449, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 449, 449, 449, 449, 449, 449, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 443, 440, 433, 440, 440, 440, 433, 440, 440, 440, 440, 431, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 433, 440, 440, 440, 440, 440, 431, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 449, 449, 449, 449, 449, 449, 449, 449, 449, 449, 440, 440, 440, 440, 440, 440, 440, 449, 449, 449, 449, 449, 449, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 449, 449, 449, 449, 449, 449, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 440, 431, 440, 450, 451, 453, 453, 453, 453, 453, 453, 453, 453, 453, 453, 452, 452, 452, 452, 452, 452, 452, 453, 453, 453, 453, 453, 453, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 452, 453, 453, 453, 453, 453, 453, 452, 452, 455, 454, 454, 454, 455, 454, 454, 454, 454, 454, 456, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 455, 454, 454, 454, 454, 454, 454, 454, 454, 457, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 458, 454, 460, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 461, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 459, 462, 459, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 463, 463, 463, 463, 463, 463, 463, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 463, 463, 463, 463, 45, 463, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 463, 463, 463, 463, 463, 45, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 463, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 464, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 464, 464, 464, 464, 464, 464, 464, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 464, 464, 464, 464, 49, 464, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 464, 464, 464, 464, 464, 49, 467, 466, 466, 466, 467, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 467, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 468, 468, 468, 468, 468, 468, 468, 468, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 469, 466, 466, 466, 466, 466, 466, 466, 466, 466, 470, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 471, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 466, 472, 466, 466, 473, 466, 474, 475, 477, 477, 477, 477, 477, 477, 477, 477, 476, 478, 478, 478, 478, 478, 478, 478, 478, 476, 476, 479, 479, 71, 71, 71, 479, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 479, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 72, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 480, 71, 481, 482, 483, 483, 71, 71, 71, 483, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 483, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 72, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 71, 484, 71, 70, 483, 485, 486, 487, 487, 58, 58, 58, 487, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 487, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 488, 58, 483, 52, 52, 52, 483, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 483, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 489, 52, 479, 58, 58, 58, 479, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 479, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 60, 58, 479, 490, 490, 490, 479, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 479, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 491, 490, 492, 493, 493, 490, 490, 490, 493, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 493, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 490, 494, 490, 493, 52, 52, 52, 493, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 493, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 489, 52, 495, 493, 493, 58, 58, 58, 493, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 493, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 59, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 60, 58, 497, 497, 497, 497, 497, 497, 497, 497, 497, 497, 496, 496, 496, 496, 496, 496, 496, 497, 497, 497, 497, 497, 497, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 497, 497, 497, 497, 497, 497, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 498, 496, 499, 499, 499, 499, 499, 499, 499, 499, 499, 499, 496, 496, 496, 496, 496, 496, 496, 499, 499, 499, 499, 499, 499, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 499, 499, 499, 499, 499, 499, 496, 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, 496, 496, 496, 496, 496, 496, 496, 500, 500, 500, 500, 500, 500, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 500, 500, 500, 500, 500, 500, 496, 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, 496, 496, 496, 496, 496, 496, 496, 501, 501, 501, 501, 501, 501, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 496, 501, 501, 501, 501, 501, 501, 496, 502, 505, 504, 504, 504, 505, 504, 504, 504, 504, 506, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 505, 504, 504, 504, 504, 504, 506, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 504, 504, 504, 504, 504, 504, 504, 507, 507, 507, 507, 507, 507, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 507, 507, 507, 507, 507, 507, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 508, 504, 505, 504, 504, 504, 505, 504, 504, 504, 504, 503, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 505, 504, 504, 504, 504, 504, 503, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 504, 504, 504, 504, 504, 504, 504, 509, 509, 509, 509, 509, 509, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 509, 509, 509, 509, 509, 509, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 504, 510, 504, 503, 505, 509, 509, 509, 505, 509, 509, 509, 509, 503, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 505, 509, 509, 509, 509, 509, 503, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 503, 509, 511, 505, 512, 512, 512, 505, 512, 512, 512, 512, 506, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 506, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 512, 512, 512, 512, 512, 512, 512, 507, 507, 507, 507, 507, 507, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 507, 507, 507, 507, 507, 507, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 503, 512, 505, 512, 512, 512, 505, 512, 512, 512, 512, 503, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 503, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 509, 509, 509, 509, 509, 509, 509, 509, 509, 509, 512, 512, 512, 512, 512, 512, 512, 509, 509, 509, 509, 509, 509, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 509, 509, 509, 509, 509, 509, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 505, 512, 512, 512, 505, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 514, 514, 514, 514, 514, 514, 514, 514, 514, 514, 512, 512, 512, 512, 512, 512, 512, 514, 514, 514, 514, 514, 514, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 514, 514, 514, 514, 514, 514, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 515, 512, 505, 512, 512, 512, 505, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 507, 507, 507, 507, 507, 507, 507, 507, 507, 507, 512, 512, 512, 512, 512, 512, 512, 507, 507, 507, 507, 507, 507, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 507, 507, 507, 507, 507, 507, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 515, 512, 516, 505, 512, 512, 512, 505, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 517, 517, 517, 517, 517, 517, 517, 517, 517, 517, 512, 512, 512, 512, 512, 512, 512, 517, 517, 517, 517, 517, 517, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 517, 517, 517, 517, 517, 517, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 515, 512, 505, 512, 512, 512, 505, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 518, 518, 518, 518, 518, 518, 518, 518, 518, 518, 512, 512, 512, 512, 512, 512, 512, 518, 518, 518, 518, 518, 518, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 518, 518, 518, 518, 518, 518, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 515, 512, 505, 512, 512, 512, 505, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 519, 519, 519, 519, 519, 519, 519, 519, 519, 519, 512, 512, 512, 512, 512, 512, 512, 519, 519, 519, 519, 519, 519, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 519, 519, 519, 519, 519, 519, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 515, 512, 505, 512, 512, 512, 505, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 520, 520, 520, 520, 520, 520, 520, 520, 520, 520, 512, 512, 512, 512, 512, 512, 512, 520, 520, 520, 520, 520, 520, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 520, 520, 520, 520, 520, 520, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 515, 512, 505, 512, 512, 512, 505, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 513, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 512, 512, 512, 512, 512, 512, 512, 521, 521, 521, 521, 521, 521, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 521, 521, 521, 521, 521, 521, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 515, 512, 505, 512, 512, 512, 505, 512, 512, 512, 512, 503, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 505, 512, 512, 512, 512, 512, 503, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 521, 521, 521, 521, 521, 521, 521, 521, 521, 521, 512, 512, 512, 512, 512, 512, 512, 521, 521, 521, 521, 521, 521, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 521, 521, 521, 521, 521, 521, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 512, 503, 512, 522, 523, 525, 525, 525, 525, 525, 525, 525, 525, 525, 525, 524, 524, 524, 524, 524, 524, 524, 525, 525, 525, 525, 525, 525, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 524, 525, 525, 525, 525, 525, 525, 524, 524, 527, 526, 526, 526, 527, 526, 526, 526, 526, 528, 529, 528, 528, 528, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 527, 526, 526, 526, 526, 526, 528, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 526, 530, 526, 528, 531, 528, 528, 528, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 531, 528, 531, 532, 533, 533, 533, 532, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 533, 532, 533, 535, 534, 534, 534, 535, 534, 534, 534, 534, 534, 536, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 535, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 534, 537, 534, 538, 539, 539, 539, 538, 539, 539, 539, 539, 539, 540, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 539, 538, 539, 542, 541, 541, 541, 542, 541, 541, 541, 541, 541, 543, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 541, 542, 541, 541, 541, 541, 541, 541, 541, 541, 544, 541, 546, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 547, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 545, 548, 545, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 549, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 549, 549, 549, 549, 549, 549, 549, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 549, 549, 549, 549, 77, 549, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 549, 549, 549, 549, 549, 77, 80, 80, 80, 80, 80, 80, 80, 80, 80, 80, 549, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 550, 77, 77, 77, 77, 77, 77, 77, 77, 77, 77, 550, 550, 550, 550, 550, 550, 550, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 550, 550, 550, 550, 81, 550, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 81, 550, 550, 550, 550, 550, 81, 552, 551, 551, 551, 552, 551, 551, 551, 551, 551, 553, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 551, 552, 551, 555, 554, 554, 554, 555, 554, 554, 554, 554, 556, 557, 556, 556, 556, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 554, 555, 554, 554, 554, 554, 554, 556, 554, 554, 558, 554, 556, 559, 556, 556, 556, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 559, 556, 559, 561, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 562, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 560, 563, 560, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 564, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 564, 564, 564, 564, 564, 564, 564, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 564, 564, 564, 564, 84, 564, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 564, 564, 564, 564, 564, 84, 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, 564, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, 84, 84, 84, 84, 84, 84, 84, 84, 84, 84, 565, 565, 565, 565, 565, 565, 565, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 565, 565, 565, 565, 88, 565, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, 565, 565, 565, 565, 565, 88, 567, 566, 566, 566, 567, 566, 566, 566, 566, 568, 569, 568, 568, 568, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 566, 567, 566, 566, 566, 566, 566, 568, 566, 568, 570, 568, 568, 568, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 570, 568, 570, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 571, 571, 571, 571, 571, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 571, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 573, 573, 573, 573, 573, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 572, 573, 574, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 92, 575, 92, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 576, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 576, 576, 576, 576, 576, 576, 576, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 576, 576, 576, 576, 90, 576, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 90, 576, 576, 576, 576, 576, 90, 94, 94, 94, 94, 94, 94, 94, 94, 94, 94, 576, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 577, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 577, 577, 577, 577, 577, 577, 577, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 577, 577, 577, 577, 95, 577, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 95, 577, 577, 577, 577, 577, 95, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 578, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 578, 578, 578, 578, 578, 578, 578, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 578, 578, 578, 578, 97, 578, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 578, 578, 578, 578, 578, 97, 580, 581, 581, 581, 580, 581, 581, 581, 581, 582, 583, 582, 582, 582, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 580, 581, 581, 581, 581, 581, 582, 584, 581, 585, 586, 587, 588, 581, 581, 581, 589, 590, 581, 590, 581, 591, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 592, 581, 593, 594, 595, 581, 581, 596, 597, 596, 596, 598, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 599, 600, 581, 591, 601, 591, 602, 603, 604, 605, 606, 607, 579, 579, 608, 579, 579, 579, 609, 610, 611, 579, 579, 612, 613, 614, 615, 579, 616, 579, 617, 579, 581, 618, 581, 590, 581, 579, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 620, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 619, 619, 619, 620, 619, 620, 619, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 619, 619, 619, 619, 579, 619, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 619, 619, 619, 619, 619, 579, 582, 621, 582, 582, 582, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 621, 582, 621, 622, 591, 623, 623, 591, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 623, 591, 623, 624, 625, 626, 627, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 99, 99, 628, 99, 628, 99, 99, 628, 628, 99, 99, 99, 630, 99, 99, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 99, 99, 99, 99, 99, 99, 99, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 628, 99, 628, 628, 629, 99, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 628, 628, 628, 99, 628, 629, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 632, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 632, 632, 632, 632, 632, 632, 632, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 632, 632, 632, 632, 629, 632, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 629, 632, 632, 632, 632, 632, 629, 631, 631, 631, 631, 631, 631, 631, 631, 631, 631, 632, 633, 623, 591, 623, 591, 623, 591, 623, 635, 634, 591, 636, 623, 591, 623, 637, 591, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 628, 591, 628, 591, 623, 591, 591, 623, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 620, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 619, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 619, 619, 619, 620, 619, 620, 619, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 619, 619, 619, 619, 596, 619, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 619, 619, 619, 619, 619, 596, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 620, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 620, 638, 620, 638, 596, 596, 596, 596, 639, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 596, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 638, 596, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 620, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 620, 638, 620, 638, 596, 596, 596, 596, 596, 596, 640, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 596, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 638, 596, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 620, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 620, 638, 620, 638, 596, 596, 596, 596, 596, 596, 596, 596, 641, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 596, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 638, 596, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 620, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 620, 638, 620, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 642, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 596, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 638, 596, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 620, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 620, 638, 620, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 643, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 596, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 638, 596, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 620, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 620, 638, 620, 638, 596, 596, 596, 642, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 596, 638, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 638, 638, 638, 638, 638, 596, 637, 628, 583, 628, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 645, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 646, 647, 579, 579, 579, 579, 579, 648, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 649, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 650, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 651, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 652, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 653, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 654, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 655, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 656, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 657, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 658, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 659, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 655, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 660, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 659, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 661, 579, 662, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 663, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 664, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 665, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 666, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 667, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 668, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 669, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 670, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 671, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 672, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 673, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 674, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 664, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 675, 579, 579, 579, 579, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 676, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 620, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 677, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 677, 677, 677, 620, 677, 620, 677, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 677, 677, 677, 677, 579, 677, 579, 579, 579, 579, 579, 579, 579, 579, 678, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 677, 677, 677, 677, 677, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 679, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 680, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 681, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 682, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 683, 579, 684, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 685, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 657, 579, 579, 579, 686, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 687, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 688, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 673, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 689, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 611, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 671, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 690, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 691, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 692, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 673, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 693, 579, 579, 579, 694, 579, 579, 579, 579, 579, 695, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 695, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 696, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 697, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 698, 699, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 657, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 700, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 673, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 701, 579, 579, 702, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 657, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 668, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 703, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 704, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 686, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 705, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 611, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 706, 579, 579, 579, 579, 579, 579, 579, 579, 579, 700, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 668, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 707, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 708, 579, 579, 579, 579, 579, 579, 579, 709, 579, 579, 579, 579, 579, 579, 579, 710, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 686, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 674, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 694, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 711, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 668, 579, 579, 579, 692, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 712, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 713, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 620, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 620, 644, 620, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 579, 644, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 662, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 579, 644, 644, 644, 644, 644, 579, 591, 623, 715, 716, 716, 716, 715, 716, 716, 716, 716, 717, 716, 717, 717, 717, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 715, 716, 716, 716, 716, 716, 717, 716, 716, 718, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 716, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 716, 719, 716, 716, 714, 716, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 714, 716, 716, 716, 716, 716, 714, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 104, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 720, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 105, 720, 720, 720, 720, 104, 720, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 720, 720, 720, 720, 103, 720, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, 720, 720, 720, 720, 720, 103, 717, 721, 717, 717, 717, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 721, 717, 721, 722, 723, 724, 725, 726, 720, 727, 729, 730, 730, 730, 729, 730, 730, 730, 730, 731, 732, 731, 731, 731, 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, 729, 730, 730, 730, 730, 730, 731, 733, 730, 734, 730, 735, 736, 730, 730, 730, 737, 738, 730, 738, 730, 735, 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, 730, 739, 740, 741, 730, 730, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 743, 744, 730, 735, 728, 735, 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, 730, 745, 730, 738, 730, 728, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 747, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 746, 728, 728, 728, 728, 728, 728, 728, 728, 728, 728, 746, 746, 746, 746, 746, 747, 746, 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, 746, 746, 746, 746, 728, 746, 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, 746, 746, 746, 746, 746, 728, 749, 748, 750, 731, 751, 731, 731, 731, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 751, 731, 751, 752, 735, 753, 753, 735, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 753, 735, 753, 754, 755, 756, 757, 735, 753, 735, 753, 735, 753, 735, 758, 753, 735, 753, 760, 735, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 759, 735, 759, 735, 753, 735, 735, 753, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 747, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 761, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 761, 761, 761, 761, 761, 747, 761, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 761, 761, 761, 761, 742, 761, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 742, 761, 761, 761, 761, 761, 742, 760, 759, 732, 759, 735, 753, 763, 762, 762, 762, 763, 762, 762, 762, 762, 764, 765, 764, 764, 764, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 763, 762, 762, 762, 762, 762, 764, 762, 762, 766, 762, 113, 767, 762, 768, 762, 769, 113, 144, 770, 146, 113, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 771, 762, 772, 144, 773, 774, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 144, 775, 144, 113, 762, 762, 762, 762, 762, 762, 762, 762, 762, 762, 776, 762, 762, 762, 762, 762, 762, 762, 762, 777, 762, 762, 778, 762, 779, 762, 762, 762, 157, 158, 762, 113, 762, 780, 780, 780, 780, 780, 780, 780, 780, 780, 764, 780, 764, 764, 764, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 764, 780, 780, 780, 780, 139, 140, 780, 141, 780, 142, 143, 144, 145, 146, 139, 780, 780, 780, 780, 780, 780, 780, 780, 780, 780, 147, 780, 148, 144, 149, 150, 780, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 151, 152, 144, 113, 108, 780, 108, 108, 108, 108, 108, 108, 108, 108, 153, 108, 108, 108, 108, 108, 108, 108, 108, 154, 108, 108, 155, 108, 156, 108, 108, 108, 157, 158, 780, 113, 780, 108, 781, 782, 782, 782, 781, 782, 782, 782, 782, 144, 783, 144, 144, 144, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 781, 782, 782, 782, 782, 782, 144, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 782, 144, 782, 144, 783, 144, 144, 144, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 144, 107, 107, 107, 107, 107, 113, 107, 107, 107, 107, 107, 107, 107, 144, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 144, 107, 144, 783, 144, 144, 144, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 144, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 144, 107, 784, 144, 783, 144, 144, 144, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 144, 785, 785, 785, 785, 785, 785, 785, 785, 785, 786, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 785, 144, 785, 144, 783, 144, 144, 144, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 144, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 144, 144, 107, 787, 781, 144, 781, 789, 788, 791, 792, 791, 791, 791, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 791, 790, 793, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 109, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 110, 781, 781, 781, 781, 109, 781, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 781, 781, 781, 781, 108, 781, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 108, 781, 781, 781, 781, 781, 108, 794, 144, 783, 144, 144, 144, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 144, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 144, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 113, 781, 795, 796, 797, 798, 799, 800, 144, 783, 144, 144, 144, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 144, 781, 781, 781, 781, 781, 781, 781, 781, 781, 113, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 781, 144, 781, 144, 788, 113, 801, 113, 801, 802, 803, 802, 802, 802, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 790, 802, 790, 804, 801, 805, 805, 805, 805, 805, 805, 805, 805, 805, 116, 805, 116, 116, 116, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 116, 805, 805, 805, 805, 117, 118, 805, 119, 805, 120, 121, 122, 123, 124, 117, 805, 805, 805, 805, 805, 805, 805, 805, 805, 805, 125, 805, 126, 122, 127, 128, 805, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 115, 129, 130, 122, 131, 115, 805, 115, 115, 115, 115, 115, 115, 115, 115, 132, 115, 115, 115, 115, 115, 115, 115, 115, 133, 115, 115, 134, 115, 135, 115, 115, 115, 136, 137, 805, 131, 805, 115, 144, 801, 806, 801, 807, 801, 808, 801, 809, 183, 183, 183, 809, 183, 183, 183, 183, 810, 183, 810, 810, 810, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 809, 183, 183, 183, 183, 183, 810, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 183, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 183, 811, 183, 183, 185, 183, 185, 185, 185, 189, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 183, 183, 183, 183, 183, 185, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 812, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 182, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 183, 182, 182, 182, 182, 812, 182, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 182, 182, 182, 182, 185, 182, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 182, 182, 182, 182, 182, 185, 813, 813, 813, 813, 813, 813, 813, 813, 813, 186, 813, 186, 186, 186, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 186, 813, 813, 813, 813, 813, 813, 813, 187, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 813, 188, 813, 813, 185, 813, 185, 185, 185, 189, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 813, 813, 813, 813, 813, 185, 814, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 812, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 813, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 183, 813, 813, 813, 813, 812, 813, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 813, 813, 813, 813, 185, 813, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 815, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 185, 813, 813, 813, 813, 813, 185, 190, 813, 817, 816, 816, 816, 817, 816, 816, 816, 816, 818, 816, 818, 818, 818, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 817, 816, 816, 816, 816, 816, 818, 816, 816, 819, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 820, 816, 816, 816, 816, 816, 816, 816, 821, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 816, 822, 816, 818, 823, 818, 818, 818, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 823, 818, 823, 824, 825, 826, 827, 829, 828, 830, 831, 828, 832, 834, 835, 835, 835, 834, 835, 835, 835, 835, 836, 837, 836, 836, 836, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 834, 835, 835, 835, 835, 835, 836, 835, 835, 838, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 835, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 835, 839, 835, 835, 833, 835, 833, 833, 833, 833, 833, 833, 833, 833, 840, 833, 833, 833, 833, 833, 833, 833, 833, 841, 833, 833, 842, 833, 843, 833, 833, 833, 835, 835, 835, 835, 835, 833, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 844, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 844, 844, 844, 844, 844, 844, 844, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 844, 844, 844, 844, 833, 844, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 844, 844, 844, 844, 844, 833, 836, 845, 836, 836, 836, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 845, 836, 845, 846, 847, 848, 849, 850, 852, 851, 853, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 855, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 856, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 857, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 858, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 859, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 855, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 860, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 861, 833, 833, 833, 833, 833, 833, 833, 862, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 863, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 864, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 855, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 865, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 855, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 866, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 867, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 854, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 833, 854, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 859, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 833, 854, 854, 854, 854, 854, 833, 869, 215, 215, 215, 869, 215, 215, 215, 215, 870, 871, 870, 870, 870, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 869, 215, 215, 215, 215, 215, 870, 872, 215, 873, 215, 874, 875, 215, 876, 215, 877, 878, 215, 879, 880, 881, 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, 882, 215, 883, 884, 885, 886, 215, 887, 888, 887, 887, 889, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 887, 890, 891, 215, 892, 893, 215, 894, 895, 896, 897, 898, 899, 868, 868, 900, 868, 868, 868, 901, 902, 903, 868, 868, 904, 905, 906, 907, 868, 908, 868, 909, 868, 910, 911, 215, 892, 215, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 916, 915, 915, 917, 915, 918, 920, 921, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 922, 919, 924, 923, 925, 926, 927, 870, 928, 870, 870, 870, 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, 928, 870, 928, 930, 929, 932, 933, 932, 932, 932, 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, 931, 932, 931, 215, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 215, 934, 935, 936, 937, 938, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 940, 940, 940, 940, 940, 940, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 941, 940, 942, 213, 213, 213, 942, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 942, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 213, 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, 213, 944, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 215, 943, 945, 947, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 946, 215, 946, 215, 204, 216, 217, 216, 216, 216, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 216, 943, 943, 218, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 943, 943, 943, 215, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 220, 943, 233, 234, 233, 233, 233, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 233, 232, 232, 235, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 236, 236, 236, 236, 236, 236, 236, 236, 236, 236, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 232, 237, 232, 216, 217, 216, 216, 216, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 216, 943, 943, 218, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 219, 219, 219, 219, 219, 219, 219, 219, 219, 219, 943, 943, 943, 215, 215, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 943, 220, 943, 949, 934, 951, 950, 934, 952, 952, 952, 934, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 952, 934, 952, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 954, 955, 934, 956, 241, 957, 955, 934, 934, 958, 959, 934, 959, 934, 241, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 960, 934, 961, 962, 963, 934, 964, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 965, 934, 934, 241, 953, 241, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 934, 966, 934, 967, 934, 953, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 969, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 968, 968, 968, 970, 968, 969, 968, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 968, 968, 968, 968, 953, 968, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 953, 968, 968, 968, 968, 968, 953, 972, 971, 973, 975, 976, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 974, 977, 974, 979, 980, 978, 981, 982, 983, 984, 241, 968, 968, 985, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 241, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 968, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 968, 968, 968, 968, 968, 968, 968, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 968, 968, 968, 968, 240, 968, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 240, 968, 968, 968, 968, 968, 240, 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, 968, 986, 968, 241, 968, 241, 968, 241, 987, 968, 241, 968, 241, 968, 241, 241, 968, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 990, 990, 990, 990, 990, 990, 990, 990, 990, 990, 988, 988, 988, 988, 988, 988, 991, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 988, 988, 988, 988, 989, 988, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 989, 988, 988, 988, 988, 988, 989, 993, 993, 993, 993, 993, 993, 993, 993, 993, 993, 992, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 994, 996, 996, 996, 996, 996, 996, 996, 996, 996, 996, 994, 994, 994, 994, 994, 994, 994, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 994, 994, 994, 994, 995, 994, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 995, 994, 994, 994, 994, 994, 995, 986, 968, 985, 968, 997, 998, 934, 999, 256, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 246, 257, 246, 258, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 247, 257, 247, 257, 260, 215, 934, 892, 215, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 215, 934, 215, 944, 934, 1003, 1002, 1002, 1002, 1003, 1002, 1002, 1002, 1002, 1004, 1005, 1004, 1004, 1004, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1003, 1002, 1002, 1002, 1002, 1002, 1004, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1002, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1002, 1007, 1002, 1002, 1006, 1002, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1006, 1002, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1008, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1008, 1008, 1008, 1008, 1009, 1008, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1009, 1008, 1008, 1008, 1008, 1008, 1009, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1010, 1010, 1010, 1010, 1010, 1010, 1010, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1010, 1010, 1010, 1010, 1011, 1010, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1010, 1010, 1010, 1010, 1010, 1011, 1014, 1013, 1013, 1013, 1014, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1014, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1015, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1016, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1017, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1018, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1013, 1019, 1013, 1013, 1020, 1013, 1021, 1022, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1024, 1023, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1023, 1023, 1026, 1026, 281, 281, 281, 1026, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 1026, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 282, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 1027, 281, 1028, 1029, 1030, 1030, 281, 281, 281, 1030, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 1030, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 282, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 1031, 281, 280, 1030, 1032, 1033, 1034, 1034, 268, 268, 268, 1034, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1034, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 269, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1035, 268, 1030, 262, 262, 262, 1030, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 1030, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 1036, 262, 1026, 268, 268, 268, 1026, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1026, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 269, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 270, 268, 1026, 1037, 1037, 1037, 1026, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1026, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1038, 1037, 1039, 1040, 1040, 1037, 1037, 1037, 1040, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1040, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1037, 1041, 1037, 1040, 262, 262, 262, 1040, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 1040, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 1036, 262, 1042, 1040, 1040, 268, 268, 268, 1040, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 1040, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 269, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, 270, 268, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1044, 1044, 1044, 1044, 1044, 1044, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1044, 1044, 1044, 1044, 1044, 1044, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1045, 1043, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1046, 1046, 1046, 1046, 1046, 1046, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1046, 1046, 1046, 1046, 1046, 1046, 1043, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1047, 1047, 1047, 1047, 1047, 1047, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1047, 1047, 1047, 1047, 1047, 1047, 1043, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1048, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1048, 1048, 1048, 1048, 1048, 1048, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1048, 1048, 1048, 1048, 1048, 1048, 1043, 1049, 1052, 1051, 1051, 1051, 1052, 1051, 1051, 1051, 1051, 1053, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1052, 1051, 1051, 1051, 1051, 1051, 1053, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1054, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1054, 1054, 1054, 1054, 1054, 1054, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1054, 1054, 1054, 1054, 1054, 1054, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1055, 1051, 1052, 1051, 1051, 1051, 1052, 1051, 1051, 1051, 1051, 1050, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1052, 1051, 1051, 1051, 1051, 1051, 1050, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1056, 1056, 1056, 1056, 1056, 1056, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1056, 1056, 1056, 1056, 1056, 1056, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1057, 1051, 1050, 1052, 1056, 1056, 1056, 1052, 1056, 1056, 1056, 1056, 1050, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1052, 1056, 1056, 1056, 1056, 1056, 1050, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1050, 1056, 1058, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1053, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1053, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1060, 1060, 1060, 1060, 1060, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1060, 1060, 1060, 1060, 1060, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1050, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1056, 1056, 1056, 1056, 1056, 1056, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1056, 1056, 1056, 1056, 1056, 1056, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1062, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1062, 1062, 1062, 1062, 1062, 1062, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1062, 1062, 1062, 1062, 1062, 1062, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1060, 1060, 1060, 1060, 1060, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1060, 1060, 1060, 1060, 1060, 1060, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1064, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1065, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1065, 1065, 1065, 1065, 1065, 1065, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1065, 1065, 1065, 1065, 1065, 1065, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1066, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1066, 1066, 1066, 1066, 1066, 1066, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1066, 1066, 1066, 1066, 1066, 1066, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1067, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1067, 1067, 1067, 1067, 1067, 1067, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1067, 1067, 1067, 1067, 1067, 1067, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1068, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1068, 1068, 1068, 1068, 1068, 1068, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1068, 1068, 1068, 1068, 1068, 1068, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1061, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1050, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1071, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1071, 1071, 1071, 1071, 1071, 1071, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1071, 1071, 1071, 1071, 1071, 1071, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1072, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1072, 1072, 1072, 1072, 1072, 1072, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1072, 1072, 1072, 1072, 1072, 1072, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1073, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1073, 1073, 1073, 1073, 1073, 1073, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1073, 1073, 1073, 1073, 1073, 1073, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1074, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1074, 1074, 1074, 1074, 1074, 1074, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1074, 1074, 1074, 1074, 1074, 1074, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1075, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1075, 1075, 1075, 1075, 1075, 1075, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1075, 1075, 1075, 1075, 1075, 1075, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1076, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1076, 1076, 1076, 1076, 1076, 1076, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1076, 1076, 1076, 1076, 1076, 1076, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1077, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1077, 1077, 1077, 1077, 1077, 1077, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1077, 1077, 1077, 1077, 1077, 1077, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1050, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1078, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1078, 1078, 1078, 1078, 1078, 1078, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1078, 1078, 1078, 1078, 1078, 1078, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1079, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1079, 1079, 1079, 1079, 1079, 1079, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1079, 1079, 1079, 1079, 1079, 1079, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1080, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1080, 1080, 1080, 1080, 1080, 1080, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1080, 1080, 1080, 1080, 1080, 1080, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1081, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1081, 1081, 1081, 1081, 1081, 1081, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1081, 1081, 1081, 1081, 1081, 1081, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1052, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1052, 1059, 1059, 1059, 1059, 1059, 1070, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1069, 1069, 1069, 1069, 1069, 1069, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1059, 1063, 1059, 1082, 1083, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1085, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1085, 1085, 1085, 1085, 1085, 1085, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1084, 1085, 1085, 1085, 1085, 1085, 1085, 1084, 1084, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 287, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 288, 204, 204, 289, 204, 287, 204, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 204, 204, 204, 204, 286, 204, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 204, 204, 204, 204, 204, 286, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 287, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 288, 934, 934, 289, 934, 287, 934, 286, 286, 286, 286, 1086, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 934, 934, 934, 934, 286, 934, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 934, 934, 934, 934, 934, 286, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 287, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 288, 934, 934, 289, 934, 287, 934, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 1087, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 934, 934, 934, 934, 286, 934, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 286, 934, 934, 934, 934, 934, 286, 1088, 1089, 934, 929, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 1090, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 1091, 1092, 868, 868, 868, 868, 868, 1093, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1094, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 1095, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1096, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 1097, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 1098, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1099, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 1100, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 1101, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 1102, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 287, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 204, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 204, 204, 289, 204, 287, 204, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 204, 204, 204, 204, 868, 204, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 204, 204, 204, 204, 204, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 1103, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1104, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 1100, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 1105, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1104, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1106, 868, 1107, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 1108, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 1109, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1110, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1111, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 1112, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 1113, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1114, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 1115, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 1116, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1117, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1118, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 1119, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1109, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1120, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1121, 868, 1122, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1123, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1102, 868, 868, 868, 1120, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1124, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1125, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1118, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 1126, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 903, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1116, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 1127, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1128, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 1129, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1130, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1118, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1131, 868, 868, 868, 1132, 868, 868, 868, 868, 868, 1133, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1133, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1134, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 1135, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1136, 1137, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 1138, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1139, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1140, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1143, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1144, 1141, 1141, 1145, 1141, 1143, 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1141, 1141, 1141, 1141, 1142, 1141, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1142, 1141, 1141, 1141, 1141, 1141, 1142, 920, 1146, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 922, 919, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1147, 868, 868, 1148, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1102, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1113, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1149, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1150, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1120, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1151, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 903, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 1152, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1153, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1113, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1118, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1154, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 1155, 868, 868, 868, 868, 868, 868, 868, 1156, 868, 868, 868, 868, 868, 868, 868, 1157, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1120, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1158, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1159, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1127, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 1160, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1127, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 1161, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1113, 868, 868, 868, 1162, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1163, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1127, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 1164, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 1165, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 912, 913, 913, 913, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 913, 287, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 288, 912, 912, 289, 912, 287, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 914, 912, 912, 868, 912, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 1107, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 868, 912, 912, 912, 912, 912, 868, 1166, 215, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 934, 1167, 934, 1169, 1168, 1168, 1168, 1169, 1168, 1168, 1168, 1168, 1170, 1171, 1170, 1170, 1170, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1169, 1168, 1168, 1168, 1168, 1168, 1170, 1168, 1168, 1172, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1173, 1168, 1170, 1174, 1170, 1170, 1170, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1174, 1170, 1174, 1175, 1176, 1177, 1178, 1179, 1181, 1180, 1182, 1184, 1185, 1185, 1185, 1184, 1185, 1185, 1185, 1185, 1186, 1187, 1186, 1186, 1186, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1184, 1185, 1185, 1185, 1185, 1185, 1186, 1185, 1188, 1189, 1185, 1185, 1185, 1188, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1185, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1185, 1190, 1185, 1185, 1183, 1185, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1183, 1185, 1185, 1185, 1185, 1185, 1183, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 295, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 1191, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 296, 1191, 1191, 1191, 1191, 295, 1191, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 1191, 1191, 1191, 1191, 294, 1191, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 294, 1191, 1191, 1191, 1191, 1191, 294, 1186, 1192, 1186, 1186, 1186, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1192, 1186, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1191, 1199, 1201, 1202, 1202, 1202, 1201, 1202, 1202, 1202, 1202, 1203, 1204, 1203, 1203, 1203, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1202, 1201, 1202, 1202, 1202, 1202, 1202, 1203, 1205, 1206, 1207, 1208, 1209, 1210, 1206, 1211, 1212, 1213, 1209, 1214, 1215, 1216, 1209, 1217, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1226, 1226, 1228, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1229, 1230, 1231, 1209, 1232, 1206, 1233, 1234, 1235, 1236, 1237, 1238, 1200, 1200, 1239, 1200, 1200, 1200, 1240, 1241, 1242, 1200, 1200, 1243, 1244, 1245, 1246, 1200, 1247, 1200, 1248, 1200, 1249, 1250, 1251, 1252, 1202, 1200, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 1253, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 304, 304, 304, 304, 304, 1253, 304, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 304, 304, 304, 304, 1200, 304, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 304, 304, 304, 304, 304, 1200, 1255, 1254, 1256, 1203, 1257, 1203, 1203, 1203, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1257, 1203, 1257, 1258, 1260, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1260, 1259, 1261, 1262, 1263, 1264, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 299, 299, 1265, 299, 1265, 299, 299, 1265, 1265, 299, 299, 299, 1266, 299, 299, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 299, 299, 299, 299, 299, 299, 299, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 1265, 299, 1265, 1265, 316, 299, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 1265, 1265, 1265, 299, 1265, 316, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 1268, 1268, 1268, 1268, 1268, 1268, 1268, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 1268, 1268, 1268, 1268, 316, 1268, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 1268, 1268, 1268, 1268, 1268, 316, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1267, 1268, 1269, 304, 1209, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1271, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1270, 1269, 1270, 1272, 1273, 1209, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1269, 1274, 1269, 1275, 1270, 1277, 1276, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 1276, 1279, 1278, 1280, 1278, 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1282, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1283, 1281, 1281, 1281, 1281, 1281, 1282, 1281, 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 1281, 301, 1281, 1285, 1284, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1287, 1284, 1288, 1289, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1290, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1291, 1284, 1284, 1284, 1284, 1284, 1284, 1292, 1284, 1284, 1287, 1284, 1288, 1289, 1284, 1284, 1284, 1293, 1284, 1284, 1284, 1284, 1284, 1290, 1284, 1284, 1294, 1284, 1284, 1284, 1284, 1284, 1291, 1284, 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1296, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1297, 1295, 1295, 1295, 1295, 1295, 1296, 1295, 1295, 1295, 1298, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1295, 1299, 1295, 1300, 304, 1300, 304, 304, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 304, 306, 306, 306, 306, 306, 306, 306, 306, 306, 306, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1300, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1301, 1302, 1301, 1304, 1303, 1305, 1307, 1306, 1306, 1306, 1308, 1306, 1309, 1310, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1286, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1292, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1293, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1294, 1284, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1311, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1312, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1293, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1294, 1284, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1315, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1316, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1317, 1313, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1314, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1318, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1316, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1317, 1313, 1316, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1317, 1313, 1320, 1319, 1321, 1323, 1322, 1322, 1322, 1324, 1322, 1326, 1325, 1327, 1328, 1330, 1330, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1331, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1332, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1329, 1333, 1329, 1334, 1334, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1335, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1316, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1317, 1313, 1334, 1334, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1318, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1316, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1317, 1313, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1337, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1338, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1339, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1336, 1340, 1336, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1342, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1343, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1344, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1345, 1341, 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1347, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1347, 1347, 1347, 1347, 1347, 1347, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1348, 1346, 1347, 1347, 1347, 1347, 1347, 1347, 1346, 1346, 1349, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1346, 1350, 1346, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1351, 1351, 1351, 1351, 1351, 1351, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1352, 1313, 1351, 1351, 1351, 1351, 1351, 1351, 1313, 1313, 1316, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1317, 1313, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1351, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1351, 1351, 1351, 1351, 1351, 1351, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1318, 1313, 1351, 1351, 1351, 1351, 1351, 1351, 1313, 1313, 1316, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1317, 1313, 1354, 1353, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1355, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1356, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1357, 1353, 1353, 1353, 1353, 1353, 1356, 1353, 1353, 1353, 1358, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1359, 1353, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1360, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1361, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1358, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1353, 1359, 1353, 1362, 1313, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1364, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1365, 1313, 1313, 1313, 1313, 1313, 1364, 1313, 1313, 1313, 1316, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1317, 1313, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1363, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1318, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1316, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1313, 1317, 1313, 1271, 1278, 1209, 1366, 1270, 1260, 1270, 1367, 1368, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1278, 1260, 1278, 1260, 1270, 1260, 1209, 1270, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 1265, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 1265, 1265, 1265, 1265, 1265, 1265, 1369, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 1265, 1265, 1265, 1265, 316, 1265, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, 1265, 1265, 1265, 1265, 1265, 316, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 1253, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 304, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1370, 304, 304, 304, 304, 1253, 304, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 304, 304, 304, 304, 1226, 304, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 304, 304, 304, 304, 304, 1226, 1371, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1253, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1370, 1372, 1372, 1372, 1372, 1253, 1372, 1226, 1226, 1226, 1226, 1373, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1226, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1372, 1226, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1253, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1370, 1372, 1372, 1372, 1372, 1253, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1374, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1226, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1372, 1226, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1253, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1370, 1372, 1372, 1372, 1372, 1253, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1375, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1226, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1372, 1226, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1253, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1370, 1372, 1372, 1372, 1372, 1253, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1376, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1226, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1372, 1226, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1253, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1370, 1372, 1372, 1372, 1372, 1253, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1377, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1226, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1372, 1226, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1253, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1370, 1372, 1372, 1372, 1372, 1253, 1372, 1226, 1226, 1226, 1376, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1226, 1372, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1226, 1372, 1372, 1372, 1372, 1372, 1226, 1378, 1380, 1379, 1381, 1382, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1384, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1385, 1386, 1200, 1200, 1200, 1200, 1200, 1387, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1388, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1389, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1390, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1391, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1392, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1393, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1394, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1395, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1396, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1397, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1398, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1399, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1400, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1401, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1402, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1398, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1403, 1200, 1404, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1405, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1406, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1407, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1408, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1409, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1410, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1411, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1412, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1408, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1413, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1414, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1415, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1416, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1417, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1418, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1408, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1419, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1420, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1421, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 318, 319, 318, 318, 318, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 318, 1253, 1422, 320, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1422, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1422, 1422, 321, 1422, 1422, 1253, 1422, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1422, 322, 1422, 1422, 1200, 1422, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1422, 1422, 1422, 1422, 1422, 1200, 335, 336, 335, 335, 335, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 335, 334, 334, 337, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 340, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 334, 339, 334, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1424, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1425, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1426, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1253, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1427, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1427, 1427, 1427, 1427, 1427, 1253, 1427, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1427, 1427, 1427, 1427, 1200, 1427, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1428, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1427, 1427, 1427, 1427, 1427, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1429, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1430, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1431, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1432, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1433, 1200, 1434, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1435, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1408, 1200, 1200, 1200, 1436, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1408, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1401, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1437, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1438, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1418, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1439, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1242, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1440, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1441, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1401, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1408, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1442, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1408, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1443, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1444, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1445, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1418, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1446, 1200, 1200, 1200, 1447, 1200, 1200, 1200, 1200, 1200, 1448, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1449, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1415, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1401, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1450, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1451, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1452, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1453, 1454, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1401, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1455, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1456, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1442, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1457, 1200, 1200, 1458, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1401, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1459, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1415, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1460, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1461, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1462, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1401, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1463, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1464, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1450, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1465, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1466, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1412, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1441, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1467, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1468, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1469, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1470, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1471, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1407, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1472, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1473, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1442, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1474, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1442, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1475, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1412, 1200, 1200, 1200, 1476, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1477, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1442, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1478, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1479, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1480, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1253, 1383, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1200, 1383, 1200, 1200, 1200, 1450, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1200, 1383, 1383, 1383, 1383, 1383, 1200, 1481, 1269, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1259, 1209, 1259, 1482, 1484, 1483, 1484, 1484, 1484, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1484, 1483, 1483, 1485, 1483, 1483, 1486, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 348, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1483, 1487, 1483, 344, 345, 344, 344, 344, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 344, 1488, 1488, 346, 1488, 1488, 347, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 348, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 1488, 349, 1488, 351, 1489, 351, 351, 351, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 351, 1489, 1489, 346, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 1489, 349, 1489, 354, 353, 359, 1488, 357, 1488, 1491, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1492, 1490, 1491, 1490, 1491, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1494, 1490, 1491, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1495, 1490, 1491, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1490, 1496, 1490, 1498, 1496, 0]]; + $send(self, '_lex_indicies=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + + self.$attr_accessor("_lex_trans_targs"); + return self.$private("_lex_trans_targs", "_lex_trans_targs="); + })(Opal.get_singleton_class(self), $nesting); + + $writer = [[185, 2, 3, 4, 191, 6, 7, 8, 9, 10, 185, 185, 194, 197, 194, 12, 198, 199, 14, 194, 206, 207, 210, 211, 217, 212, 213, 214, 19, 215, 216, 219, 221, 222, 223, 224, 225, 25, 18, 208, 209, 27, 248, 249, 251, 253, 251, 30, 254, 255, 32, 251, 262, 263, 266, 267, 273, 268, 269, 270, 37, 271, 272, 275, 277, 278, 279, 280, 281, 43, 36, 264, 265, 45, 304, 305, 312, 314, 312, 48, 315, 316, 50, 318, 321, 318, 52, 322, 323, 54, 329, 328, 0, 56, 330, 331, 58, 332, 333, 333, 333, 333, 446, 61, 62, 63, 446, 474, 64, 65, 474, 474, 478, 478, 69, 64, 70, 476, 477, 479, 480, 478, 474, 481, 482, 484, 66, 67, 485, 486, 68, 478, 71, 72, 77, 84, 488, 489, 70, 476, 477, 479, 480, 478, 474, 481, 482, 484, 66, 67, 485, 486, 68, 71, 72, 77, 84, 488, 489, 487, 73, 74, 75, 76, 78, 79, 82, 80, 81, 83, 85, 86, 474, 88, 89, 90, 92, 95, 93, 94, 96, 98, 505, 505, 505, 506, 100, 508, 101, 509, 102, 506, 100, 508, 101, 509, 543, 103, 543, 104, 105, 103, 543, 104, 543, 543, 543, 108, 109, 110, 111, 554, 543, 543, 559, 543, 114, 115, 116, 543, 119, 114, 115, 116, 543, 119, 117, 117, 115, 116, 565, 118, 117, 117, 115, 116, 565, 118, 115, 543, 581, 543, 121, 582, 588, 125, 597, 598, 130, 131, 125, 126, 596, 126, 596, 543, 127, 128, 129, 599, 132, 543, 613, 614, 617, 618, 624, 619, 620, 621, 137, 622, 623, 626, 628, 629, 630, 631, 632, 143, 136, 615, 616, 145, 668, 669, 147, 545, 106, 547, 149, 150, 671, 773, 152, 153, 154, 773, 781, 781, 781, 157, 803, 802, 781, 805, 807, 781, 162, 163, 164, 811, 781, 166, 167, 822, 791, 844, 170, 171, 172, 176, 177, 170, 171, 172, 176, 177, 173, 173, 171, 172, 174, 175, 173, 173, 171, 172, 174, 175, 892, 171, 781, 961, 178, 963, 180, 184, 961, 182, 961, 179, 961, 181, 963, 181, 963, 183, 963, 961, 185, 185, 186, 187, 188, 190, 192, 193, 185, 185, 185, 189, 185, 189, 185, 1, 185, 185, 185, 5, 194, 194, 195, 194, 196, 200, 194, 194, 11, 13, 194, 194, 194, 194, 201, 202, 203, 15, 21, 26, 226, 28, 194, 194, 194, 204, 205, 194, 16, 194, 194, 194, 17, 194, 194, 194, 20, 218, 220, 22, 194, 194, 23, 24, 194, 227, 231, 228, 229, 230, 194, 194, 232, 233, 236, 238, 247, 234, 235, 194, 237, 239, 241, 240, 194, 242, 243, 244, 245, 246, 194, 194, 194, 250, 251, 251, 251, 252, 256, 251, 29, 31, 251, 251, 251, 251, 257, 258, 259, 33, 39, 44, 282, 46, 251, 251, 251, 260, 261, 251, 34, 251, 251, 251, 35, 251, 251, 251, 38, 274, 276, 40, 251, 251, 41, 42, 251, 283, 287, 284, 285, 286, 251, 251, 288, 289, 292, 294, 303, 290, 291, 251, 293, 295, 297, 296, 251, 298, 299, 300, 301, 302, 251, 251, 251, 306, 307, 307, 308, 307, 309, 307, 307, 307, 310, 310, 310, 311, 310, 310, 310, 312, 312, 312, 313, 312, 47, 49, 312, 312, 312, 317, 317, 317, 318, 318, 319, 318, 320, 318, 318, 51, 53, 318, 318, 318, 324, 324, 325, 324, 324, 326, 327, 326, 55, 57, 328, 328, 328, 334, 333, 333, 335, 336, 337, 338, 340, 343, 344, 345, 346, 333, 347, 348, 350, 352, 353, 354, 358, 360, 361, 362, 378, 383, 390, 395, 402, 409, 412, 413, 417, 411, 421, 429, 433, 435, 440, 442, 445, 333, 333, 333, 333, 333, 333, 339, 333, 339, 333, 341, 59, 342, 333, 60, 333, 333, 349, 351, 333, 355, 356, 357, 353, 359, 333, 363, 364, 373, 376, 365, 366, 367, 368, 369, 370, 371, 372, 334, 374, 375, 377, 379, 382, 380, 381, 384, 387, 385, 386, 388, 389, 391, 393, 392, 394, 396, 397, 333, 398, 399, 400, 401, 333, 403, 406, 404, 405, 407, 408, 410, 414, 415, 416, 418, 420, 419, 422, 423, 424, 426, 425, 427, 428, 430, 431, 432, 434, 436, 437, 438, 439, 441, 443, 444, 447, 446, 446, 448, 449, 451, 446, 446, 446, 450, 446, 450, 452, 446, 454, 453, 453, 457, 458, 459, 460, 453, 462, 463, 464, 465, 467, 469, 470, 471, 472, 473, 453, 455, 453, 456, 453, 453, 453, 453, 453, 461, 453, 461, 466, 453, 468, 453, 474, 474, 475, 490, 491, 477, 493, 494, 481, 495, 496, 497, 498, 499, 501, 502, 503, 504, 474, 474, 474, 474, 474, 474, 478, 483, 474, 474, 474, 474, 474, 474, 474, 474, 474, 492, 474, 492, 474, 474, 474, 474, 500, 474, 87, 91, 97, 505, 507, 510, 99, 505, 505, 506, 511, 511, 512, 513, 515, 517, 518, 511, 511, 514, 511, 514, 511, 516, 511, 511, 511, 520, 519, 519, 521, 522, 523, 525, 527, 528, 533, 540, 519, 519, 519, 519, 524, 519, 524, 519, 526, 519, 519, 520, 529, 530, 531, 532, 534, 535, 538, 536, 537, 539, 541, 542, 544, 543, 552, 553, 555, 556, 558, 560, 561, 562, 564, 566, 567, 569, 570, 595, 601, 602, 603, 671, 672, 673, 674, 675, 563, 677, 694, 699, 706, 711, 713, 719, 722, 723, 727, 721, 731, 742, 746, 749, 757, 761, 764, 765, 543, 103, 104, 543, 106, 546, 543, 543, 548, 550, 551, 543, 549, 543, 543, 543, 543, 543, 107, 543, 543, 543, 543, 543, 557, 543, 557, 543, 543, 112, 543, 543, 113, 543, 543, 563, 543, 568, 543, 543, 543, 571, 580, 543, 120, 583, 584, 585, 543, 586, 122, 589, 590, 123, 593, 594, 543, 572, 574, 543, 573, 543, 543, 575, 578, 579, 543, 576, 577, 543, 543, 543, 543, 543, 543, 587, 543, 581, 591, 592, 543, 591, 543, 581, 591, 124, 600, 543, 543, 543, 604, 543, 543, 543, 605, 607, 543, 606, 543, 606, 543, 608, 609, 610, 133, 139, 144, 633, 146, 543, 543, 543, 611, 612, 543, 134, 543, 543, 543, 135, 543, 543, 543, 138, 625, 627, 140, 543, 543, 141, 142, 543, 634, 638, 635, 636, 637, 543, 543, 639, 640, 643, 654, 667, 641, 642, 543, 644, 645, 646, 648, 647, 543, 649, 650, 651, 652, 653, 655, 662, 656, 657, 658, 659, 660, 661, 663, 664, 665, 666, 543, 543, 543, 670, 148, 151, 543, 676, 678, 679, 689, 692, 680, 681, 682, 683, 684, 685, 686, 687, 688, 690, 691, 693, 695, 698, 696, 697, 700, 703, 701, 702, 704, 705, 707, 709, 708, 710, 712, 714, 716, 715, 717, 718, 720, 688, 724, 725, 726, 728, 730, 729, 732, 733, 734, 739, 735, 736, 737, 543, 544, 545, 106, 738, 550, 740, 741, 743, 744, 745, 747, 748, 750, 751, 752, 755, 753, 754, 756, 758, 759, 760, 762, 763, 543, 563, 766, 766, 767, 768, 769, 771, 766, 766, 766, 770, 766, 770, 766, 772, 766, 774, 773, 773, 775, 776, 773, 777, 779, 773, 773, 773, 773, 778, 773, 778, 780, 773, 782, 781, 781, 785, 786, 787, 781, 788, 790, 793, 794, 795, 796, 797, 781, 798, 799, 804, 832, 836, 781, 837, 839, 841, 781, 842, 843, 845, 849, 851, 852, 854, 855, 873, 878, 885, 893, 900, 907, 912, 913, 917, 911, 922, 932, 938, 941, 950, 954, 958, 959, 960, 793, 783, 781, 784, 781, 781, 781, 781, 781, 781, 789, 781, 789, 781, 155, 792, 781, 781, 781, 781, 781, 781, 781, 781, 781, 800, 781, 801, 781, 781, 156, 158, 781, 159, 813, 824, 827, 806, 828, 829, 814, 818, 820, 781, 806, 159, 808, 810, 160, 781, 808, 781, 809, 781, 781, 161, 812, 781, 781, 815, 817, 781, 815, 816, 818, 820, 817, 781, 819, 781, 781, 821, 823, 781, 165, 781, 781, 781, 825, 817, 818, 820, 825, 826, 781, 815, 817, 818, 820, 781, 815, 817, 818, 820, 781, 830, 817, 818, 820, 830, 831, 781, 159, 832, 806, 833, 818, 820, 834, 817, 159, 834, 806, 835, 838, 840, 781, 168, 169, 781, 781, 846, 847, 848, 843, 850, 781, 781, 853, 781, 781, 781, 856, 857, 866, 871, 858, 859, 860, 861, 862, 863, 864, 865, 782, 867, 868, 869, 870, 782, 872, 874, 877, 875, 876, 782, 782, 879, 882, 880, 881, 883, 884, 782, 886, 888, 887, 889, 890, 891, 781, 781, 894, 782, 895, 781, 896, 897, 898, 899, 783, 901, 904, 902, 903, 905, 906, 908, 909, 910, 782, 914, 915, 916, 918, 920, 921, 919, 782, 923, 924, 925, 928, 926, 927, 929, 930, 931, 933, 935, 934, 936, 937, 939, 940, 942, 943, 945, 948, 944, 946, 947, 949, 951, 952, 953, 955, 956, 957, 781, 781, 961, 962, 964, 965, 966, 961, 961, 968, 967, 969, 967, 970, 971, 972, 967, 967]]; + $send(self, '_lex_trans_targs=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + + self.$attr_accessor("_lex_trans_actions"); + return self.$private("_lex_trans_actions", "_lex_trans_actions="); + })(Opal.get_singleton_class(self), $nesting); + + $writer = [[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 4, 0, 5, 0, 0, 0, 0, 6, 0, 7, 0, 8, 0, 7, 0, 0, 0, 0, 8, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 9, 0, 10, 0, 0, 0, 0, 11, 0, 7, 0, 8, 0, 7, 0, 0, 0, 0, 8, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, 0, 0, 0, 0, 14, 0, 15, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 17, 18, 19, 20, 21, 0, 0, 0, 22, 23, 0, 0, 24, 25, 26, 27, 28, 29, 29, 30, 31, 29, 32, 31, 33, 31, 29, 29, 30, 29, 34, 29, 29, 35, 29, 29, 29, 29, 29, 29, 0, 36, 37, 0, 38, 37, 39, 37, 0, 0, 36, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 42, 43, 44, 45, 0, 0, 0, 45, 28, 46, 29, 29, 29, 46, 47, 0, 48, 0, 28, 29, 49, 29, 50, 51, 52, 0, 0, 0, 0, 0, 53, 54, 0, 55, 0, 28, 0, 56, 0, 29, 57, 29, 58, 29, 59, 60, 61, 60, 62, 60, 0, 63, 64, 63, 65, 63, 66, 67, 0, 68, 0, 0, 0, 0, 69, 69, 0, 0, 70, 70, 71, 0, 28, 72, 0, 0, 0, 69, 0, 73, 0, 7, 0, 8, 0, 7, 0, 0, 0, 0, 8, 7, 0, 8, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 74, 0, 0, 0, 0, 74, 75, 0, 0, 0, 76, 77, 78, 79, 0, 7, 7, 80, 81, 81, 82, 0, 0, 0, 0, 83, 0, 0, 0, 0, 0, 0, 28, 0, 0, 0, 29, 57, 29, 29, 29, 59, 60, 61, 60, 60, 60, 0, 63, 64, 63, 63, 63, 84, 66, 85, 86, 0, 87, 0, 88, 89, 0, 90, 0, 91, 59, 92, 0, 93, 28, 94, 95, 98, 99, 0, 28, 0, 7, 0, 7, 100, 101, 102, 59, 103, 0, 104, 0, 105, 106, 107, 0, 108, 109, 0, 110, 7, 7, 111, 112, 0, 0, 113, 114, 115, 116, 117, 117, 117, 117, 117, 117, 117, 117, 118, 119, 120, 0, 0, 121, 0, 122, 123, 124, 0, 125, 126, 127, 0, 7, 0, 0, 128, 129, 0, 28, 130, 0, 0, 0, 0, 0, 131, 132, 0, 0, 0, 0, 0, 0, 0, 133, 0, 0, 0, 0, 134, 0, 0, 0, 0, 0, 135, 136, 137, 0, 138, 139, 140, 7, 7, 141, 0, 0, 142, 143, 144, 145, 117, 117, 117, 117, 117, 117, 117, 117, 146, 147, 148, 0, 0, 149, 0, 150, 151, 152, 0, 153, 154, 155, 0, 7, 0, 0, 156, 157, 0, 28, 158, 0, 0, 0, 0, 0, 159, 160, 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, 162, 0, 0, 0, 0, 0, 163, 164, 165, 0, 166, 167, 0, 168, 0, 169, 170, 171, 172, 173, 174, 0, 175, 176, 177, 178, 179, 180, 7, 181, 0, 0, 182, 183, 184, 185, 186, 187, 188, 189, 0, 190, 7, 191, 192, 0, 0, 193, 194, 195, 196, 197, 0, 198, 199, 200, 0, 201, 0, 0, 202, 203, 204, 205, 206, 207, 0, 28, 0, 0, 7, 7, 0, 0, 0, 208, 0, 0, 0, 0, 209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 210, 211, 212, 213, 214, 215, 59, 216, 0, 217, 0, 0, 0, 218, 0, 219, 220, 0, 0, 221, 0, 0, 0, 222, 0, 223, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 225, 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, 7, 226, 227, 0, 0, 0, 228, 229, 230, 59, 231, 0, 28, 232, 0, 233, 234, 0, 28, 0, 0, 235, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 236, 0, 237, 0, 238, 239, 240, 241, 242, 59, 243, 0, 0, 244, 0, 245, 246, 247, 248, 28, 0, 27, 0, 0, 27, 0, 0, 0, 0, 0, 0, 7, 7, 7, 249, 250, 251, 252, 253, 254, 255, 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 59, 265, 0, 266, 267, 268, 269, 270, 271, 0, 0, 0, 272, 7, 7, 0, 273, 274, 275, 276, 277, 0, 0, 0, 0, 0, 278, 279, 59, 280, 0, 281, 28, 282, 283, 284, 285, 286, 287, 0, 28, 0, 0, 0, 0, 0, 0, 288, 289, 290, 291, 59, 292, 0, 293, 28, 294, 295, 296, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 297, 298, 0, 8, 0, 0, 7, 299, 0, 0, 299, 299, 0, 0, 7, 300, 0, 300, 0, 300, 300, 300, 0, 0, 300, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 0, 0, 301, 302, 302, 303, 304, 0, 305, 306, 0, 74, 0, 307, 0, 308, 309, 310, 311, 312, 29, 313, 314, 315, 316, 317, 59, 318, 0, 319, 320, 0, 321, 322, 0, 323, 324, 299, 325, 0, 326, 327, 328, 0, 0, 329, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 331, 0, 0, 332, 0, 333, 334, 0, 0, 0, 335, 0, 0, 336, 337, 338, 339, 340, 341, 0, 342, 343, 343, 0, 344, 0, 345, 346, 346, 0, 0, 347, 348, 349, 0, 350, 351, 352, 0, 7, 353, 354, 355, 0, 356, 117, 117, 117, 117, 117, 117, 117, 117, 357, 358, 359, 0, 0, 360, 0, 361, 362, 363, 0, 364, 365, 366, 0, 7, 0, 0, 367, 368, 0, 28, 369, 0, 0, 0, 0, 0, 370, 371, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 374, 375, 376, 0, 0, 0, 377, 28, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 74, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 378, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 379, 380, 381, 382, 383, 383, 379, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 297, 384, 385, 386, 387, 0, 28, 0, 0, 388, 389, 390, 59, 391, 0, 392, 28, 393, 7, 394, 395, 0, 28, 396, 0, 0, 397, 398, 399, 400, 59, 401, 0, 28, 402, 403, 404, 405, 0, 28, 0, 406, 0, 7, 407, 0, 0, 0, 0, 408, 0, 0, 409, 409, 0, 410, 0, 0, 0, 411, 7, 412, 412, 412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 413, 414, 415, 0, 416, 417, 418, 419, 420, 421, 59, 422, 0, 423, 0, 0, 424, 425, 426, 427, 428, 429, 430, 431, 432, 0, 433, 0, 434, 435, 0, 0, 436, 437, 438, 0, 0, 439, 0, 0, 438, 440, 440, 441, 442, 0, 443, 444, 0, 445, 446, 447, 0, 448, 449, 0, 0, 450, 451, 438, 438, 452, 0, 0, 453, 453, 0, 454, 0, 455, 456, 7, 0, 457, 0, 458, 459, 460, 461, 461, 462, 462, 0, 0, 463, 464, 464, 465, 465, 466, 467, 467, 468, 468, 469, 470, 470, 471, 471, 0, 0, 472, 473, 474, 475, 476, 477, 477, 474, 476, 478, 409, 479, 0, 0, 0, 480, 0, 0, 481, 482, 412, 412, 412, 483, 412, 484, 485, 28, 486, 487, 488, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 489, 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, 490, 491, 0, 0, 0, 0, 0, 0, 492, 0, 0, 0, 0, 0, 491, 493, 494, 0, 495, 0, 496, 0, 0, 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, 0, 497, 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, 499, 500, 501, 502, 502, 88, 502, 503, 504, 0, 505, 0, 506, 0, 0, 0, 507, 508]]; + $send(self, '_lex_trans_actions=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + + self.$attr_accessor("_lex_to_state_actions"); + return self.$private("_lex_to_state_actions", "_lex_to_state_actions="); + })(Opal.get_singleton_class(self), $nesting); + + $writer = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 96, 0, 96, 0, 0, 0, 0, 96, 96, 0, 0, 0, 0, 0, 96, 0, 96, 0, 96, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 96, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 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, 96, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0, 96, 0, 0, 0, 0, 0]]; + $send(self, '_lex_to_state_actions=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + + self.$attr_accessor("_lex_from_state_actions"); + return self.$private("_lex_from_state_actions", "_lex_from_state_actions="); + })(Opal.get_singleton_class(self), $nesting); + + $writer = [[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 97, 0, 97, 0, 0, 0, 0, 97, 97, 0, 0, 0, 0, 0, 97, 0, 97, 0, 97, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 97, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 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, 97, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 97, 0, 0, 0, 0, 0]]; + $send(self, '_lex_from_state_actions=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + + self.$attr_accessor("_lex_eof_trans"); + return self.$private("_lex_eof_trans", "_lex_eof_trans="); + })(Opal.get_singleton_class(self), $nesting); + + $writer = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 13, 13, 13, 13, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 45, 45, 45, 45, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 77, 77, 77, 77, 84, 84, 84, 84, 0, 0, 0, 0, 99, 101, 103, 103, 103, 108, 108, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 173, 183, 185, 185, 185, 197, 197, 197, 205, 207, 207, 207, 207, 207, 213, 205, 205, 205, 205, 205, 205, 205, 240, 240, 240, 240, 240, 240, 205, 256, 205, 256, 240, 240, 205, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 205, 240, 240, 240, 240, 294, 294, 294, 299, 301, 301, 301, 305, 305, 308, 308, 308, 308, 313, 313, 313, 299, 305, 305, 305, 305, 305, 305, 305, 305, 305, 344, 351, 353, 353, 353, 353, 344, 0, 369, 370, 371, 373, 375, 377, 375, 375, 0, 387, 388, 392, 392, 393, 394, 403, 404, 405, 405, 405, 408, 408, 410, 411, 412, 412, 412, 414, 415, 416, 416, 412, 408, 408, 421, 422, 422, 422, 422, 422, 425, 425, 425, 425, 431, 432, 432, 432, 432, 440, 432, 432, 432, 432, 445, 432, 432, 432, 432, 432, 432, 451, 452, 453, 453, 0, 460, 464, 464, 465, 466, 475, 476, 477, 477, 477, 480, 480, 482, 483, 484, 484, 484, 486, 487, 488, 488, 484, 480, 480, 493, 494, 494, 494, 494, 494, 497, 497, 497, 497, 503, 504, 504, 504, 504, 512, 504, 504, 504, 504, 517, 504, 504, 504, 504, 504, 504, 523, 524, 525, 525, 0, 532, 533, 0, 539, 0, 546, 550, 550, 551, 0, 0, 560, 561, 565, 565, 566, 0, 571, 0, 574, 0, 577, 577, 578, 579, 0, 620, 622, 623, 624, 625, 627, 629, 633, 633, 624, 624, 624, 624, 635, 624, 624, 629, 624, 624, 620, 639, 639, 639, 639, 639, 639, 629, 629, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 678, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 645, 624, 0, 721, 722, 723, 725, 721, 728, 0, 747, 749, 751, 752, 753, 754, 755, 757, 754, 754, 754, 754, 754, 760, 754, 754, 762, 760, 760, 754, 0, 781, 782, 108, 108, 785, 786, 108, 782, 782, 789, 791, 794, 782, 795, 782, 796, 797, 799, 801, 782, 789, 802, 802, 791, 802, 806, 802, 802, 802, 802, 0, 183, 814, 815, 814, 814, 0, 824, 825, 827, 829, 831, 829, 833, 0, 845, 846, 847, 848, 850, 852, 854, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 855, 0, 913, 916, 919, 920, 924, 926, 927, 928, 929, 930, 932, 935, 936, 938, 940, 943, 944, 946, 947, 205, 944, 949, 944, 935, 951, 935, 935, 969, 972, 974, 975, 979, 982, 983, 984, 985, 969, 969, 969, 969, 969, 969, 969, 969, 969, 969, 989, 993, 995, 969, 969, 935, 1000, 1001, 1001, 1001, 935, 935, 935, 1002, 1009, 1009, 1011, 1013, 1022, 1023, 1024, 1024, 1024, 1027, 1027, 1029, 1030, 1031, 1031, 1031, 1033, 1034, 1035, 1035, 1031, 1027, 1027, 1040, 1041, 1041, 1041, 1041, 1041, 1044, 1044, 1044, 1044, 1050, 1051, 1051, 1051, 1051, 1059, 1051, 1051, 1051, 1051, 1065, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1051, 1083, 1084, 1085, 1085, 205, 935, 935, 1089, 935, 930, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 205, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 1142, 920, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 913, 1167, 935, 0, 1175, 1176, 1177, 1179, 1181, 1183, 0, 1192, 1193, 1194, 1195, 1197, 1192, 1200, 0, 305, 1255, 1257, 1258, 1259, 1260, 1262, 1264, 1266, 1269, 1269, 305, 1271, 1273, 1274, 1275, 1271, 1277, 1279, 1279, 1282, 1282, 1285, 1296, 305, 1302, 1304, 1306, 1307, 1310, 1311, 1285, 1285, 1314, 1314, 1314, 1320, 1322, 1323, 1326, 1328, 1329, 1330, 1314, 1314, 1337, 1342, 1347, 1314, 1314, 1354, 1354, 1314, 1314, 1279, 1271, 1271, 1279, 1271, 1271, 1266, 305, 1372, 1373, 1373, 1373, 1373, 1373, 1373, 1379, 1266, 1382, 1383, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1423, 1424, 1384, 1384, 1428, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1384, 1482, 1260, 1483, 0, 1489, 1490, 1489, 1489, 1489, 0, 1494, 1494, 1494, 1494, 1498]]; + $send(self, '_lex_eof_trans=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_start") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [185]; + $send(self, 'lex_start=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_error") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [0]; + $send(self, 'lex_error=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_interp_words") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [194]; + $send(self, 'lex_en_interp_words=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_interp_string") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [251]; + $send(self, 'lex_en_interp_string=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_plain_words") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [307]; + $send(self, 'lex_en_plain_words=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_plain_string") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [310]; + $send(self, 'lex_en_plain_string=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_interp_backslash_delimited") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [312]; + $send(self, 'lex_en_interp_backslash_delimited=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_plain_backslash_delimited") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [317]; + $send(self, 'lex_en_plain_backslash_delimited=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_interp_backslash_delimited_words") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [318]; + $send(self, 'lex_en_interp_backslash_delimited_words=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_plain_backslash_delimited_words") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [324]; + $send(self, 'lex_en_plain_backslash_delimited_words=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_regexp_modifiers") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [326]; + $send(self, 'lex_en_regexp_modifiers=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_variable") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [328]; + $send(self, 'lex_en_expr_variable=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_fname") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [333]; + $send(self, 'lex_en_expr_fname=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_endfn") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [446]; + $send(self, 'lex_en_expr_endfn=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_dot") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [453]; + $send(self, 'lex_en_expr_dot=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_arg") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [474]; + $send(self, 'lex_en_expr_arg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_cmdarg") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [505]; + $send(self, 'lex_en_expr_cmdarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_endarg") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [511]; + $send(self, 'lex_en_expr_endarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_mid") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [519]; + $send(self, 'lex_en_expr_mid=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_beg") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [543]; + $send(self, 'lex_en_expr_beg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_labelarg") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [766]; + $send(self, 'lex_en_expr_labelarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_value") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [773]; + $send(self, 'lex_en_expr_value=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_expr_end") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [781]; + $send(self, 'lex_en_expr_end=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_leading_dot") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [961]; + $send(self, 'lex_en_leading_dot=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_line_comment") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [967]; + $send(self, 'lex_en_line_comment=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("lex_en_line_begin") + })(Opal.get_singleton_class(self), $nesting); + + $writer = [185]; + $send(self, 'lex_en_line_begin=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + Opal.const_set($nesting[0], 'ESCAPES', $hash("a".$ord(), "\u0007", "b".$ord(), "\b", "e".$ord(), "\u001b", "f".$ord(), "\f", "n".$ord(), "\n", "r".$ord(), "\r", "s".$ord(), " ", "t".$ord(), "\t", "v".$ord(), "\v", "\\".$ord(), "\\").$freeze()); + Opal.const_set($nesting[0], 'REGEXP_META_CHARACTERS', $send($$($nesting, 'Regexp'), 'union', Opal.to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()); + self.$attr_reader("source_buffer"); + self.$attr_accessor("diagnostics"); + self.$attr_accessor("static_env"); + self.$attr_accessor("force_utf32"); + self.$attr_accessor("cond", "cmdarg", "in_kwarg", "context", "command_start"); + self.$attr_accessor("tokens", "comments"); + self.$attr_reader("paren_nest", "cmdarg_stack", "cond_stack", "lambda_stack"); + + Opal.def(self, '$initialize', $Lexer_initialize$1 = function $$initialize(version) { + var self = this; + + + self.version = version; + self.static_env = nil; + self.context = nil; + self.tokens = nil; + self.comments = nil; + return self.$reset(); + }, $Lexer_initialize$1.$$arity = 1); + + Opal.def(self, '$reset', $Lexer_reset$2 = function $$reset(reset_state) { + var self = this; + + + + if (reset_state == null) { + reset_state = true; + }; + if ($truthy(reset_state)) { + + self.cs = self.$class().$lex_en_line_begin(); + self.cond = $$($nesting, 'StackState').$new("cond"); + self.cmdarg = $$($nesting, 'StackState').$new("cmdarg"); + self.cond_stack = []; + self.cmdarg_stack = [];}; + self.force_utf32 = false; + self.source_pts = nil; + self.p = 0; + self.ts = nil; + self.te = nil; + self.act = 0; + self.stack = []; + self.top = 0; + self.token_queue = []; + self.literal_stack = []; + self.eq_begin_s = nil; + self.sharp_s = nil; + self.newline_s = nil; + self.num_base = nil; + self.num_digits_s = nil; + self.num_suffix_s = nil; + self.num_xfrm = nil; + self.escape_s = nil; + self.escape = nil; + self.herebody_s = nil; + self.paren_nest = 0; + self.lambda_stack = []; + self.dedent_level = nil; + self.command_start = true; + self.in_kwarg = false; + return (self.cs_before_block_comment = self.$class().$lex_en_line_begin()); + }, $Lexer_reset$2.$$arity = -1); + + Opal.def(self, '$source_buffer=', $Lexer_source_buffer$eq$3 = function(source_buffer) { + var self = this, source = nil; + + + self.source_buffer = source_buffer; + if ($truthy(self.source_buffer)) { + + source = self.source_buffer.$source(); + if (source.$encoding()['$==']($$$($$($nesting, 'Encoding'), 'UTF_8'))) { + self.source_pts = source.$unpack("U*") + } else { + self.source_pts = source.$unpack("C*") + }; + if (self.source_pts['$[]'](0)['$=='](65279)) { + return (self.p = 1) + } else { + return nil + }; + } else { + return (self.source_pts = nil) + }; + }, $Lexer_source_buffer$eq$3.$$arity = 1); + + Opal.def(self, '$encoding', $Lexer_encoding$4 = function $$encoding() { + var self = this; + + return self.source_buffer.$source().$encoding() + }, $Lexer_encoding$4.$$arity = 0); + Opal.const_set($nesting[0], 'LEX_STATES', $hash2(["line_begin", "expr_dot", "expr_fname", "expr_value", "expr_beg", "expr_mid", "expr_arg", "expr_cmdarg", "expr_end", "expr_endarg", "expr_endfn", "expr_labelarg", "interp_string", "interp_words", "plain_string", "plain_words"], {"line_begin": self.$lex_en_line_begin(), "expr_dot": self.$lex_en_expr_dot(), "expr_fname": self.$lex_en_expr_fname(), "expr_value": self.$lex_en_expr_value(), "expr_beg": self.$lex_en_expr_beg(), "expr_mid": self.$lex_en_expr_mid(), "expr_arg": self.$lex_en_expr_arg(), "expr_cmdarg": self.$lex_en_expr_cmdarg(), "expr_end": self.$lex_en_expr_end(), "expr_endarg": self.$lex_en_expr_endarg(), "expr_endfn": self.$lex_en_expr_endfn(), "expr_labelarg": self.$lex_en_expr_labelarg(), "interp_string": self.$lex_en_interp_string(), "interp_words": self.$lex_en_interp_words(), "plain_string": self.$lex_en_plain_string(), "plain_words": self.$lex_en_plain_string()})); + + Opal.def(self, '$state', $Lexer_state$5 = function $$state() { + var self = this; + + return $$($nesting, 'LEX_STATES').$invert().$fetch(self.cs, self.cs) + }, $Lexer_state$5.$$arity = 0); + + Opal.def(self, '$state=', $Lexer_state$eq$6 = function(state) { + var self = this; + + return (self.cs = $$($nesting, 'LEX_STATES').$fetch(state)) + }, $Lexer_state$eq$6.$$arity = 1); + + Opal.def(self, '$push_cmdarg', $Lexer_push_cmdarg$7 = function $$push_cmdarg() { + var self = this; + + + self.cmdarg_stack.$push(self.cmdarg); + return (self.cmdarg = $$($nesting, 'StackState').$new("" + "cmdarg." + (self.cmdarg_stack.$count()))); + }, $Lexer_push_cmdarg$7.$$arity = 0); + + Opal.def(self, '$pop_cmdarg', $Lexer_pop_cmdarg$8 = function $$pop_cmdarg() { + var self = this; + + return (self.cmdarg = self.cmdarg_stack.$pop()) + }, $Lexer_pop_cmdarg$8.$$arity = 0); + + Opal.def(self, '$push_cond', $Lexer_push_cond$9 = function $$push_cond() { + var self = this; + + + self.cond_stack.$push(self.cond); + return (self.cond = $$($nesting, 'StackState').$new("" + "cond." + (self.cond_stack.$count()))); + }, $Lexer_push_cond$9.$$arity = 0); + + Opal.def(self, '$pop_cond', $Lexer_pop_cond$10 = function $$pop_cond() { + var self = this; + + return (self.cond = self.cond_stack.$pop()) + }, $Lexer_pop_cond$10.$$arity = 0); + + Opal.def(self, '$dedent_level', $Lexer_dedent_level$11 = function $$dedent_level() { + var $a, self = this, dedent_level = nil; + + + $a = [self.dedent_level, nil], (dedent_level = $a[0]), (self.dedent_level = $a[1]), $a; + return dedent_level; + }, $Lexer_dedent_level$11.$$arity = 0); + + Opal.def(self, '$advance', $Lexer_advance$12 = function $$advance() { + var $a, $b, $$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, self = this, klass = nil, _lex_trans_keys = nil, _lex_key_spans = nil, _lex_index_offsets = nil, _lex_indicies = nil, _lex_trans_targs = nil, _lex_trans_actions = nil, _lex_to_state_actions = nil, _lex_from_state_actions = nil, _lex_eof_trans = nil, pe = nil, p = nil, eof = nil, cmd_state = nil, testEof = nil, _slen = nil, _trans = nil, _keys = nil, _inds = nil, _acts = nil, _nacts = nil, _goto_level = nil, _resume = nil, _eof_trans = nil, _again = nil, _test_eof = nil, _out = nil, $case = nil, _wide = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, tm = nil, heredoc_e = nil, diag_msg = nil, ident_tok = nil, ident_ts = nil, ident_te = nil, current_literal = nil, $writer = nil, line = nil, $ret_or_4 = nil, string = nil, $ret_or_5 = nil, lookahead = nil, $ret_or_6 = nil, token = nil, message = nil, $ret_or_7 = nil, $ret_or_8 = nil, escaped_char = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil, $ret_or_14 = nil, $ret_or_15 = nil, $ret_or_16 = nil, $ret_or_17 = nil, $ret_or_18 = nil, $ret_or_19 = nil, $ret_or_20 = nil, $ret_or_21 = nil, $ret_or_22 = nil, $ret_or_23 = nil, $ret_or_24 = nil, $ret_or_25 = nil, $ret_or_26 = nil, $ret_or_27 = nil, $ret_or_28 = nil, $ret_or_29 = nil, $ret_or_30 = nil, $ret_or_31 = nil, $ret_or_32 = nil, $ret_or_33 = nil, $ret_or_34 = nil, $ret_or_35 = nil, $ret_or_36 = nil, $ret_or_37 = nil, $ret_or_38 = nil, $ret_or_39 = nil, $ret_or_40 = nil, $ret_or_41 = nil, $ret_or_42 = nil, $ret_or_43 = nil, $ret_or_44 = nil, $ret_or_45 = nil, $ret_or_46 = nil, $ret_or_47 = nil, $ret_or_48 = nil, $ret_or_49 = nil, $ret_or_50 = nil, $ret_or_51 = nil, $ret_or_52 = nil, $ret_or_53 = nil, $ret_or_54 = nil, $ret_or_55 = nil, unknown_options = nil, type = nil, delimiter = nil, escape = nil, ident = nil, $ret_or_56 = nil, $ret_or_57 = nil, $ret_or_58 = nil, $ret_or_59 = nil, $ret_or_60 = nil, value = nil, $ret_or_61 = nil, $ret_or_62 = nil, $ret_or_63 = nil, $ret_or_64 = nil, digits = nil, $ret_or_65 = nil, $ret_or_66 = nil, $ret_or_67 = nil, invalid_idx = nil, invalid_s = nil, $ret_or_68 = nil, $ret_or_69 = nil, $ret_or_70 = nil, $ret_or_71 = nil, $ret_or_72 = nil, $ret_or_73 = nil, $ret_or_74 = nil, $ret_or_75 = nil, $ret_or_76 = nil, $ret_or_77 = nil, $ret_or_78 = nil, $ret_or_79 = nil, $ret_or_80 = nil, $ret_or_81 = nil, $ret_or_82 = nil, $ret_or_83 = nil, $ret_or_84 = nil, $ret_or_85 = nil, $ret_or_86 = nil, $ret_or_87 = nil, $ret_or_88 = nil, $ret_or_89 = nil, $ret_or_90 = nil, $ret_or_91 = nil, $ret_or_92 = nil, $ret_or_93 = nil, $ret_or_94 = nil, $ret_or_95 = nil, $ret_or_96 = nil, $ret_or_97 = nil, $ret_or_98 = nil, $ret_or_99 = nil, codepoints = nil, codepoint_s = nil, $ret_or_100 = nil, spaces_p = nil, $ret_or_101 = nil, $ret_or_102 = nil, $ret_or_103 = nil, $ret_or_104 = nil, $ret_or_105 = nil, $ret_or_106 = nil, $ret_or_107 = nil, $ret_or_108 = nil, $ret_or_109 = nil, $ret_or_110 = nil, $ret_or_111 = nil, $ret_or_112 = nil, $ret_or_113 = nil, $ret_or_114 = nil, codepoint = nil, $ret_or_115 = nil, $ret_or_116 = nil, $ret_or_117 = nil, $ret_or_118 = nil, $ret_or_119 = nil, $ret_or_120 = nil, $ret_or_121 = nil, $ret_or_122 = nil, $ret_or_123 = nil, $ret_or_124 = nil, $ret_or_125 = nil, $ret_or_126 = nil, $ret_or_127 = nil, $ret_or_128 = nil, $ret_or_129 = nil, $ret_or_130 = nil, $ret_or_131 = nil, $ret_or_132 = nil, $ret_or_133 = nil, $ret_or_134 = nil, $ret_or_135 = nil, $ret_or_136 = nil, $ret_or_137 = nil, $ret_or_138 = nil, $ret_or_139 = nil, $ret_or_140 = nil, $ret_or_141 = nil, $ret_or_142 = nil, $ret_or_143 = nil, $ret_or_144 = nil, $ret_or_145 = nil, $ret_or_146 = nil, $ret_or_147 = nil, $ret_or_148 = nil, $ret_or_149 = nil, $ret_or_150 = nil, $ret_or_151 = nil, $ret_or_152 = nil, $ret_or_153 = nil, $ret_or_154 = nil, $ret_or_155 = nil, $ret_or_156 = nil, $ret_or_157 = nil, $ret_or_158 = nil, $ret_or_159 = nil, $ret_or_160 = nil, $ret_or_161 = nil, $ret_or_162 = nil, $ret_or_163 = nil, $ret_or_164 = nil, $ret_or_165 = nil, $ret_or_166 = nil, $ret_or_167 = nil, $ret_or_168 = nil, $ret_or_169 = nil, $ret_or_170 = nil, $ret_or_171 = nil, $ret_or_172 = nil, $ret_or_173 = nil, $ret_or_174 = nil, $ret_or_175 = nil, $ret_or_176 = nil, $ret_or_177 = nil, $ret_or_178 = nil, $ret_or_179 = nil, $ret_or_180 = nil, $ret_or_181 = nil, $ret_or_182 = nil, $ret_or_183 = nil, $ret_or_184 = nil, $ret_or_185 = nil, $ret_or_186 = nil, $ret_or_187 = nil, $ret_or_188 = nil, $ret_or_189 = nil, $ret_or_190 = nil, $ret_or_191 = nil, $ret_or_192 = nil, $ret_or_193 = nil, $ret_or_194 = nil, $ret_or_195 = nil, $ret_or_196 = nil, $ret_or_197 = nil, $ret_or_198 = nil, $ret_or_199 = nil, $ret_or_200 = nil, $ret_or_201 = nil, $ret_or_202 = nil, $ret_or_203 = nil, $ret_or_204 = nil, $ret_or_205 = nil, $ret_or_206 = nil, $ret_or_207 = nil, $ret_or_208 = nil, $ret_or_209 = nil, $ret_or_210 = nil, $ret_or_211 = nil, $ret_or_212 = nil, $ret_or_213 = nil, $ret_or_214 = nil, $ret_or_215 = nil, $ret_or_216 = nil, $ret_or_217 = nil, $ret_or_218 = nil, $ret_or_219 = nil, $ret_or_220 = nil, $ret_or_221 = nil, $ret_or_222 = nil, $ret_or_223 = nil, $ret_or_224 = nil, $ret_or_225 = nil, $ret_or_226 = nil, $ret_or_227 = nil, $ret_or_228 = nil, $ret_or_229 = nil, $ret_or_230 = nil, $ret_or_231 = nil, $ret_or_232 = nil, $ret_or_233 = nil, $ret_or_234 = nil, $ret_or_235 = nil, $ret_or_236 = nil, $ret_or_237 = nil, $ret_or_238 = nil, $ret_or_239 = nil, new_herebody_s = nil, indent = nil, $ret_or_240 = nil, dedent_body = nil, $ret_or_241 = nil, $ret_or_242 = nil, $ret_or_243 = nil, $ret_or_244 = nil, $ret_or_245 = nil, $ret_or_246 = nil, $ret_or_247 = nil, $ret_or_248 = nil, $ret_or_249 = nil, $ret_or_250 = nil, $ret_or_251 = nil, $ret_or_252 = nil, $ret_or_253 = nil, $ret_or_254 = nil, $ret_or_255 = nil, $ret_or_256 = nil, $ret_or_257 = nil, $ret_or_258 = nil, $ret_or_259 = nil, $ret_or_260 = nil, $ret_or_261 = nil, $ret_or_262 = nil, $ret_or_263 = nil, $ret_or_264 = nil, $ret_or_265 = nil, $ret_or_266 = nil, $ret_or_267 = nil, $ret_or_268 = nil, $ret_or_269 = nil, $ret_or_270 = nil, $ret_or_271 = nil, $ret_or_272 = nil, $ret_or_273 = nil, $ret_or_274 = nil, $ret_or_275 = nil, $ret_or_276 = nil, $ret_or_277 = nil, $ret_or_278 = nil, $ret_or_279 = nil, $ret_or_280 = nil, $ret_or_281 = nil, $ret_or_282 = nil, $ret_or_283 = nil, $ret_or_284 = nil, $ret_or_285 = nil, $ret_or_286 = nil, $ret_or_287 = nil, $ret_or_288 = nil, $ret_or_289 = nil, $ret_or_290 = nil, $ret_or_291 = nil, $ret_or_292 = nil, $ret_or_293 = nil, $ret_or_294 = nil, $ret_or_295 = nil, $ret_or_296 = nil, $ret_or_297 = nil, $ret_or_298 = nil, $ret_or_299 = nil, $ret_or_300 = nil, $ret_or_301 = nil, $ret_or_302 = nil, $ret_or_303 = nil, $ret_or_304 = nil, $ret_or_305 = nil, $ret_or_306 = nil, $ret_or_307 = nil, $ret_or_308 = nil, $ret_or_309 = nil, $ret_or_310 = nil, $ret_or_311 = nil, $ret_or_312 = nil, $ret_or_313 = nil, $ret_or_314 = nil, $ret_or_315 = nil, $ret_or_316 = nil, $ret_or_317 = nil, $ret_or_318 = nil, $ret_or_319 = nil, $ret_or_320 = nil, $ret_or_321 = nil, $ret_or_322 = nil, $ret_or_323 = nil, $ret_or_324 = nil, $ret_or_325 = nil, $ret_or_326 = nil, $ret_or_327 = nil, $ret_or_328 = nil, $ret_or_329 = nil, $ret_or_330 = nil, $ret_or_331 = nil, $ret_or_332 = nil, $ret_or_333 = nil, $ret_or_334 = nil, $ret_or_335 = nil, $ret_or_336 = nil, $ret_or_337 = nil, $ret_or_338 = nil, $ret_or_339 = nil, $ret_or_340 = nil, $ret_or_341 = nil, $ret_or_342 = nil, $ret_or_343 = nil, $ret_or_344 = nil, $ret_or_345 = nil, $ret_or_346 = nil, $ret_or_347 = nil, $ret_or_348 = nil, $ret_or_349 = nil, $ret_or_350 = nil, $ret_or_351 = nil, $ret_or_352 = nil, $ret_or_353 = nil, $ret_or_354 = nil, $ret_or_355 = nil, $ret_or_356 = nil, $ret_or_357 = nil, $ret_or_358 = nil, $ret_or_359 = nil, $ret_or_360 = nil, $ret_or_361 = nil, $ret_or_362 = nil, $ret_or_363 = nil, $ret_or_364 = nil, $ret_or_365 = nil, $ret_or_366 = nil, $ret_or_367 = nil, $ret_or_368 = nil, $ret_or_369 = nil, $ret_or_370 = nil, $ret_or_371 = nil, $ret_or_372 = nil, $ret_or_373 = nil, $ret_or_374 = nil, $ret_or_375 = nil, $ret_or_376 = nil, $ret_or_377 = nil, $ret_or_378 = nil, $ret_or_379 = nil, $ret_or_380 = nil, $ret_or_381 = nil, $ret_or_382 = nil, $ret_or_383 = nil; + + + if ($truthy(self.token_queue['$any?']())) { + return self.token_queue.$shift()}; + klass = self.$class(); + _lex_trans_keys = klass.$send("_lex_trans_keys"); + _lex_key_spans = klass.$send("_lex_key_spans"); + _lex_index_offsets = klass.$send("_lex_index_offsets"); + _lex_indicies = klass.$send("_lex_indicies"); + _lex_trans_targs = klass.$send("_lex_trans_targs"); + _lex_trans_actions = klass.$send("_lex_trans_actions"); + _lex_to_state_actions = klass.$send("_lex_to_state_actions"); + _lex_from_state_actions = klass.$send("_lex_from_state_actions"); + _lex_eof_trans = klass.$send("_lex_eof_trans"); + pe = $rb_plus(self.source_pts.$size(), 2); + $a = [self.p, pe], (p = $a[0]), (eof = $a[1]), $a; + cmd_state = self.command_start; + self.command_start = false; + + testEof = false; + $b = nil, $a = Opal.to_ary($b), (_slen = ($a[0] == null ? nil : $a[0])), (_trans = ($a[1] == null ? nil : $a[1])), (_keys = ($a[2] == null ? nil : $a[2])), (_inds = ($a[3] == null ? nil : $a[3])), (_acts = ($a[4] == null ? nil : $a[4])), (_nacts = ($a[5] == null ? nil : $a[5])), $b; + _goto_level = 0; + _resume = 10; + _eof_trans = 15; + _again = 20; + _test_eof = 30; + _out = 40; + while ($truthy(true)) { + + if ($truthy($rb_le(_goto_level, 0))) { + + if (p['$=='](pe)) { + + _goto_level = _test_eof; + continue;;}; + if (self.cs['$=='](0)) { + + _goto_level = _out; + continue;;};}; + if ($truthy($rb_le(_goto_level, _resume))) { + + $case = _lex_from_state_actions['$[]'](self.cs); + if ((97)['$===']($case)) { + self.ts = p;}; + _keys = self.cs['$<<'](1); + _inds = _lex_index_offsets['$[]'](self.cs); + _slen = _lex_key_spans['$[]'](self.cs); + _wide = (function() {if ($truthy(($ret_or_1 = self.source_pts['$[]'](p)))) { + return $ret_or_1 + } else { + return 0 + }; return nil; })(); + _trans = (function() {if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $rb_gt(_slen, 0)))) { + return $rb_le(_lex_trans_keys['$[]'](_keys), _wide) + } else { + return $ret_or_3 + }; return nil; })()))) { + return $rb_le(_wide, _lex_trans_keys['$[]']($rb_plus(_keys, 1))) + } else { + return $ret_or_2 + }; return nil; })())) { + return _lex_indicies['$[]']($rb_minus($rb_plus(_inds, _wide), _lex_trans_keys['$[]'](_keys))) + } else { + return _lex_indicies['$[]']($rb_plus(_inds, _slen)) + }; return nil; })();}; + if ($truthy($rb_le(_goto_level, _eof_trans))) { + + self.cs = _lex_trans_targs['$[]'](_trans); + if ($truthy(_lex_trans_actions['$[]'](_trans)['$!='](0))) { + $case = _lex_trans_actions['$[]'](_trans); + if ((28)['$===']($case)) { + self.newline_s = p;} + else if ((117)['$===']($case)) { + self.escape_s = p; + self.escape = nil;} + else if ((29)['$===']($case)) { + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};} + else if ((59)['$===']($case)) { + self.sharp_s = $rb_minus(p, 1);} + else if ((63)['$===']($case)) { + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());} + else if ((304)['$===']($case)) { + tm = p;} + else if ((36)['$===']($case)) { + tm = p;} + else if ((38)['$===']($case)) { + tm = p;} + else if ((40)['$===']($case)) { + tm = p;} + else if ((70)['$===']($case)) { + heredoc_e = p;} + else if ((343)['$===']($case)) { + tm = $rb_minus(p, 1); + diag_msg = "ivar_name";} + else if ((346)['$===']($case)) { + tm = $rb_minus(p, 2); + diag_msg = "cvar_name";} + else if ((354)['$===']($case)) { + self.escape = nil;} + else if ((383)['$===']($case)) { + tm = p;} + else if ((302)['$===']($case)) { + ident_tok = self.$tok(); + ident_ts = self.ts; + ident_te = self.te;} + else if ((470)['$===']($case)) { + self.num_base = 16; + self.num_digits_s = p;} + else if ((464)['$===']($case)) { + self.num_base = 10; + self.num_digits_s = p;} + else if ((467)['$===']($case)) { + self.num_base = 8; + self.num_digits_s = p;} + else if ((461)['$===']($case)) { + self.num_base = 2; + self.num_digits_s = p;} + else if ((476)['$===']($case)) { + self.num_base = 10; + self.num_digits_s = self.ts;} + else if ((438)['$===']($case)) { + self.num_base = 8; + self.num_digits_s = self.ts;} + else if ((453)['$===']($case)) { + self.num_suffix_s = p;} + else if ((446)['$===']($case)) { + self.num_suffix_s = p;} + else if ((443)['$===']($case)) { + self.num_suffix_s = p;} + else if ((88)['$===']($case)) { + tm = p;} + else if ((7)['$===']($case)) { + self.te = $rb_plus(p, 1);} + else if ((113)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { + + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil;}; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 773; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((5)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((109)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_4 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_4 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;} + else if ((108)['$===']($case)) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_5 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_5 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_6 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_6 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((115)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { + + message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { + return "cvar_name" + } else { + return "ivar_name" + }; return nil; })(); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };;} + else if ((114)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((111)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$literal().$extend_space(self.ts, self.te);;} + else if ((112)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_7 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_7 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_8 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_8 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((6)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_9 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_9 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_10 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_10 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_11 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_11 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_12 = self.escape))) { + return $ret_or_12 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;} + else if ((4)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_13 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_13 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_14 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_14 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((142)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { + + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil;}; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 773; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((10)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((139)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_15 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_15 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;} + else if ((138)['$===']($case)) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_16 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_16 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_17 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_17 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((144)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { + + message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { + return "cvar_name" + } else { + return "ivar_name" + }; return nil; })(); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };;} + else if ((143)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((141)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_18 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_18 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_19 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_19 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((11)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_20 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_20 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_21 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_21 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_22 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_22 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_23 = self.escape))) { + return $ret_or_23 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;} + else if ((9)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_24 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_24 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_25 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_25 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((167)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_26 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_26 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;} + else if ((166)['$===']($case)) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_27 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_27 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_28 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_28 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((169)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$literal().$extend_space(self.ts, self.te);;} + else if ((170)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_29 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_29 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_30 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_30 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((173)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_31 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_31 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;} + else if ((172)['$===']($case)) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_32 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_32 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_33 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_33 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((175)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_34 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_34 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_35 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_35 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((182)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { + + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil;}; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 773; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((13)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((179)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_36 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_36 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;} + else if ((178)['$===']($case)) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_37 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_37 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_38 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_38 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((184)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { + + message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { + return "cvar_name" + } else { + return "ivar_name" + }; return nil; })(); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };;} + else if ((183)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((181)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_39 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_39 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_40 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_40 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((12)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_41 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_41 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_42 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_42 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((186)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_43 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_43 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;} + else if ((185)['$===']($case)) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_44 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_44 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_45 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_45 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((193)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DBEG", "\#{".$freeze()); + if ($truthy(current_literal['$heredoc?']())) { + + + $writer = [self.herebody_s]; + $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.herebody_s = nil;}; + current_literal.$start_interp_brace(); + self.command_start = true; + self.cs = 773; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((15)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((189)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_46 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_46 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;} + else if ((188)['$===']($case)) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_47 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_47 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_48 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_48 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((195)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_ge(self.version, 27))) { + self.$literal().$extend_string(self.$tok(), self.ts, self.te) + } else { + + message = (function() {if ($truthy(self.$tok()['$start_with?']("\#@@"))) { + return "cvar_name" + } else { + return "ivar_name" + }; return nil; })(); + self.$diagnostic("error", message, $hash2(["name"], {"name": self.$tok($rb_plus(self.ts, 1), self.te)}), self.$range($rb_plus(self.ts, 1), self.te)); + };;} + else if ((194)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + current_literal.$flush_string(); + current_literal.$extend_content(); + self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((191)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$literal().$extend_space(self.ts, self.te);;} + else if ((192)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_49 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_49 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_50 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_50 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((14)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_51 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_51 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_52 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_52 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((197)['$===']($case)) { + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; if ($truthy(current_literal['$heredoc?']())) { @@ -5329,12 +9343,12 @@ Opal.modules["parser/lexer"] = function(Opal) { p = $rb_plus(p, 1); _goto_level = _out; continue;;; - } else { + } else { current_literal.$infer_indent_level(line); self.herebody_s = self.te; }; - } else { + } else { if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { @@ -5348,450 +9362,959 @@ Opal.modules["parser/lexer"] = function(Opal) { p = $rb_minus(self.herebody_s, 1); self.herebody_s = nil;}; }; - if ($truthy(($truthy($b = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $b))) { + if ($truthy((function() {if ($truthy(($ret_or_53 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_53 + }; return nil; })())) { current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;} + else if ((196)['$===']($case)) { + self.te = $rb_plus(p, 1); + + string = self.$tok(); + if ($truthy((function() {if ($truthy(($ret_or_54 = $rb_ge(self.version, 22)))) { + return self.cond['$active?']()['$!']() + } else { + return $ret_or_54 + }; return nil; })())) { + lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; + current_literal = self.$literal(); + if ($truthy((function() {if ($truthy(($ret_or_55 = current_literal['$heredoc?']()['$!']()))) { + + return (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)); + } else { + return $ret_or_55 + }; return nil; })())) { + + if (token['$[]'](0)['$==']("tLABEL_END")) { + + p = $rb_plus(p, 1); + self.$pop_literal(); + self.cs = 766; + } else { + self.cs = self.$pop_literal() + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + current_literal.$extend_string(string, self.ts, self.te) + };;} + else if ((199)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$literal().$extend_space(self.ts, self.te);;} + else if ((200)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$emit("tREGEXP_OPT", self.$tok(self.ts, $rb_minus(self.te, 1)), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((201)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + unknown_options = self.$tok().$scan(/[^imxouesn]/); + if ($truthy(unknown_options['$any?']())) { + self.$diagnostic("error", "regexp_options", $hash2(["options"], {"options": unknown_options.$join()}))}; + self.$emit("tREGEXP_OPT"); + self.cs = 781; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((16)['$===']($case)) { + self.te = $rb_plus(p, 1); + + if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { + self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) + } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { + self.$emit("tBACK_REF") + } else { + self.$emit("tGVAR") + }; + self.cs = self.$stack_pop(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((202)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { + self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) + } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { + self.$emit("tBACK_REF") + } else { + self.$emit("tGVAR") + }; + self.cs = self.$stack_pop(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((204)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self.$tok()['$=~'](/^@@[0-9]/))) { + self.$diagnostic("error", "cvar_name", $hash2(["name"], {"name": self.$tok()}))}; + self.$emit("tCVAR"); + self.cs = self.$stack_pop(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((203)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self.$tok()['$=~'](/^@[0-9]/))) { + self.$diagnostic("error", "ivar_name", $hash2(["name"], {"name": self.$tok()}))}; + self.$emit("tIVAR"); + self.cs = self.$stack_pop(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((225)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((211)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$emit("tIDENTIFIER"); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((18)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + self.cs = 781; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((208)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((220)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((20)['$===']($case)) { + self.te = $rb_plus(p, 1); + + if ($truthy(self['$version?'](23))) { + + $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; + continue;;; + } else { + + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; + continue;;; + };;} + else if ((207)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((206)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((224)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((221)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tCONSTANT"); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((223)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tIDENTIFIER"); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((218)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + self.cs = 781; + + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; + _goto_level = _again; + continue;;;;} + else if ((214)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((219)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((212)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);} + else if ((217)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((19)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((17)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((210)['$===']($case)) { + $case = self.act; + if ((43)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((44)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit("tCONSTANT"); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((45)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;};} + else if ((22)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + self.cs = 766; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((227)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((226)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((229)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);} + else if ((228)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((21)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((235)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 474; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((234)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((233)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((245)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((236)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tIDENTIFIER"); + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((241)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 474; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((239)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);} + else if ((244)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((268)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((251)['$===']($case)) { + self.te = $rb_plus(p, 1); + + if (self.$tok(tm, $rb_plus(tm, 1))['$==']("/".$freeze())) { + if ($truthy($rb_lt(self.version, 30))) { + self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((163)['$===']($case)) { + self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) + }}; + p = $rb_minus(tm, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((257)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + p = $rb_minus(p, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((24)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((259)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(tm, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((39)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((246)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((247)['$===']($case)) { self.te = $rb_plus(p, 1); - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((258)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((254)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); + p = $rb_minus(tm, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((256)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((250)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((249)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);} + else if ((267)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((25)['$===']($case)) { + + p = $rb_minus(self.te, 1);;} + else if ((41)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + p = $rb_minus(p, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((23)['$===']($case)) { + $case = self.act; + if ((71)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + if (self.$tok(tm, $rb_plus(tm, 1))['$==']("/".$freeze())) { + if ($truthy($rb_lt(self.version, 30))) { + self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1))) } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((171)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.$diagnostic("warning", "ambiguous_regexp", nil, self.$range(tm, $rb_plus(tm, 1))) + }}; + p = $rb_minus(tm, 1); - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DBEG", "\#{".$freeze()); - if ($truthy(current_literal['$heredoc?']())) { - - - $writer = [self.herebody_s]; - $send(current_literal, 'saved_herebody_s=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.herebody_s = nil;}; - current_literal.$start_interp_brace(); + self.cs = 543; + _goto_level = _again; + continue;;;} + else if ((72)['$===']($case)) { + p = $rb_minus(self.te, 1);; + self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); + p = $rb_minus(tm, 1); - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 758; + self.cs = 543; + _goto_level = _again; + continue;;;} + else if ((77)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;} + else { + + p = $rb_minus(self.te, 1);;};} + else if ((43)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 474; _goto_level = _again; continue;;;;} - else if ((15)['$===']($case)) { + else if ((272)['$===']($case)) { self.te = $rb_plus(p, 1); - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; + p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((273)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; + p = $rb_minus(self.ts, 1); + + self.cs = 474; _goto_level = _again; continue;;;;} - else if ((167)['$===']($case)) { - self.te = $rb_plus(p, 1); + else if ((44)['$===']($case)) { - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; + p = $rb_minus(self.te, 1);; + + p = $rb_minus(self.ts, 1); + + self.cs = 474; + _goto_level = _again; + continue;;;;} + else if ((42)['$===']($case)) { + $case = self.act; + if ((84)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + if ($truthy(self.cond['$active?']())) { + self.$emit("kDO_COND", "do".$freeze(), $rb_minus(self.te, 2), self.te) + } else { + self.$emit("kDO", "do".$freeze(), $rb_minus(self.te, 2), self.te) }; - if ($truthy(($truthy($b = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $b))) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((166)['$===']($case)) { + self.cs = 773; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((85)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 474; + _goto_level = _again; + continue;;;};} + else if ((283)['$===']($case)) { self.te = $rb_plus(p, 1); - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((172)['$===']($case)) { + self.$emit_do(true); + self.cs = 773; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((276)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((277)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((278)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);} + else if ((281)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - current_literal.$flush_string(); - current_literal.$extend_content(); - self.$emit("tSTRING_DVAR", nil, self.ts, $rb_plus(self.ts, 1)); - p = self.ts; + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((287)['$===']($case)) { + self.te = $rb_plus(p, 1); + p = $rb_minus(p, 1); - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; + self.cs = 543; _goto_level = _again; continue;;;;} - else if ((169)['$===']($case)) { + else if ((286)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((295)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - self.$literal().$extend_space(self.ts, self.te);;} - else if ((170)['$===']($case)) { + p = $rb_minus(self.ts, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((289)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);} + else if ((293)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((14)['$===']($case)) { + p = $rb_minus(p, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;;} + else if ((288)['$===']($case)) { + $case = self.act; + if ((92)['$===']($case)) { p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + self.cs = 543; - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((174)['$===']($case)) { - self.te = $rb_plus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((93)['$===']($case)) { - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; - } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy(($truthy($b = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $b))) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;} - else if ((173)['$===']($case)) { + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 543; + _goto_level = _again; + continue;;;};} + else if ((56)['$===']($case)) { self.te = $rb_plus(p, 1); - string = self.$tok(); - if ($truthy(($truthy($b = $rb_ge(self.version, 22)) ? self.cond['$active?']()['$!']() : $b))) { - lookahead = self.source_buffer.$slice(Opal.Range.$new(self.te,$rb_plus(self.te, 2), true))}; - current_literal = self.$literal(); - if ($truthy(($truthy($b = current_literal['$heredoc?']()['$!']()) ? (token = current_literal.$nest_and_try_closing(string, self.ts, self.te, lookahead)) : $b))) { - - if (token['$[]'](0)['$==']("tLABEL_END")) { - - p = $rb_plus(p, 1); - self.$pop_literal(); - self.cs = 751; - } else { - self.cs = self.$pop_literal() - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - current_literal.$extend_string(string, self.ts, self.te) - };;} - else if ((176)['$===']($case)) { - self.te = p; + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); p = $rb_minus(p, 1); + self.cs = 781; - self.$literal().$extend_space(self.ts, self.te);;} - else if ((177)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((328)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit("tREGEXP_OPT", self.$tok(self.ts, $rb_minus(self.te, 1)), self.ts, $rb_minus(self.te, 1)); + type = (delimiter = self.$tok()['$[]'](0).$chr()); p = $rb_minus(p, 1); - self.cs = 766; + self.cs = self.$push_literal(type, delimiter, self.ts); _goto_level = _again; continue;;;;} - else if ((178)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + else if ((320)['$===']($case)) { + self.te = $rb_plus(p, 1); - unknown_options = self.$tok().$scan(/[^imxouesn]/); - if ($truthy(unknown_options['$any?']())) { - self.$diagnostic("error", "regexp_options", $hash2(["options"], {"options": unknown_options.$join()}))}; - self.$emit("tREGEXP_OPT"); - self.cs = 766; + $b = [self.source_buffer.$slice(self.ts).$chr(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - p = $rb_plus(p, 1); - _goto_level = _out; + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; continue;;;;} - else if ((16)['$===']($case)) { + else if ((54)['$===']($case)) { self.te = $rb_plus(p, 1); - if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { - self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) - } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { - self.$emit("tBACK_REF") - } else { - self.$emit("tGVAR") - }; - self.cs = self.$stack_pop(); + $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - p = $rb_plus(p, 1); - _goto_level = _out; + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; continue;;;;} - else if ((179)['$===']($case)) { - self.te = p; + else if ((341)['$===']($case)) { + self.te = $rb_plus(p, 1); + + p = $rb_minus(p, 1); p = $rb_minus(p, 1); + self.$emit("tSYMBEG", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); - if ($truthy(self.$tok()['$=~'](/^\$([1-9][0-9]*)$/))) { - self.$emit("tNTH_REF", self.$tok($rb_plus(self.ts, 1)).$to_i()) - } else if ($truthy(self.$tok()['$=~'](/^\$([&`'+])$/))) { - self.$emit("tBACK_REF") - } else { - self.$emit("tGVAR") - }; - self.cs = self.$stack_pop(); + self.cs = 333; + _goto_level = _again; + continue;;;;} + else if ((329)['$===']($case)) { + self.te = $rb_plus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; + $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; continue;;;;} - else if ((181)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + else if ((340)['$===']($case)) { + self.te = $rb_plus(p, 1); - if ($truthy(self.$tok()['$=~'](/^@@[0-9]/))) { - self.$diagnostic("error", "cvar_name", $hash2(["name"], {"name": self.$tok()}))}; - self.$emit("tCVAR"); - self.cs = self.$stack_pop(); + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), $rb_plus(self.ts, 2))); + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((180)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + else if ((68)['$===']($case)) { + self.te = $rb_plus(p, 1); - if ($truthy(self.$tok()['$=~'](/^@[0-9]/))) { - self.$diagnostic("error", "ivar_name", $hash2(["name"], {"name": self.$tok()}))}; - self.$emit("tIVAR"); - self.cs = self.$stack_pop(); + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((202)['$===']($case)) { + else if ((351)['$===']($case)) { + self.te = $rb_plus(p, 1); + + escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); + self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((350)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} + else if ((330)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS_BEGIN')); - self.cs = 440; + self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((188)['$===']($case)) { + else if ((51)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit("tIDENTIFIER"); - self.cs = 440; + p = $rb_minus(p, 1); + if ($truthy(self['$version?'](18))) { + + ident = self.$tok(self.ts, $rb_minus(self.te, 2)); + self.$emit((function() {if ($truthy(self.source_buffer.$slice(self.ts)['$=~'](/[A-Z]/))) { + return "tCONSTANT" + } else { + return "tIDENTIFIER" + }; return nil; })(), ident, self.ts, $rb_minus(self.te, 2)); + p = $rb_minus(p, 1); + if ($truthy((function() {if ($truthy(($ret_or_56 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](ident) + } else { + return $ret_or_56 + }; return nil; })())) { + self.cs = 781 + } else { + self.cs = self.$arg_or_cmdarg(cmd_state) + }; + } else { + + self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); + self.cs = 766; + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((18)['$===']($case)) { + else if ((327)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(self.ts, 1); - self.cs = 766; - + if ($truthy($rb_ge(self.version, 30))) { + if ($truthy((function() {if ($truthy(($ret_or_57 = self.lambda_stack['$any?']()))) { + return $rb_plus(self.lambda_stack.$last(), 1)['$=='](self.paren_nest) + } else { + return $ret_or_57 + }; return nil; })())) { + self.$emit("tDOT3") + } else { + self.$emit("tBDOT3") + } + } else if ($truthy($rb_ge(self.version, 27))) { + self.$emit("tBDOT3") + } else { + self.$emit("tDOT3") + }; + self.cs = 543; - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((185)['$===']($case)) { + else if ((48)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 440; + self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); + p = $rb_minus(ident_te, 1); + if ($truthy((function() {if ($truthy(($ret_or_58 = (function() {if ($truthy(($ret_or_59 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](ident_tok) + } else { + return $ret_or_59 + }; return nil; })()))) { + return $rb_lt(self.version, 25) + } else { + return $ret_or_58 + }; return nil; })())) { + self.cs = 446 + } else { + self.cs = 505 + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((197)['$===']($case)) { + else if ((314)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(p, 1); - p = $rb_minus(p, 1); + p = $rb_minus(self.ts, 1); + self.cs_before_block_comment = self.cs; - self.cs = 766; + self.cs = 185; _goto_level = _again; continue;;;;} - else if ((20)['$===']($case)) { - self.te = $rb_plus(p, 1); - - if ($truthy(self['$version?'](23))) { - - $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;; - } else { - - p = $rb_minus(self.ts, 1); - - self.cs = 766; - _goto_level = _again; - continue;;; - };;} - else if ((184)['$===']($case)) { + else if ((55)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(p, 1); + p = $rb_minus(self.ts, 1); - self.cs = 766; + self.cs = 781; _goto_level = _again; continue;;;;} - else if ((183)['$===']($case)) { + else if ((298)['$===']($case)) { self.te = $rb_plus(p, 1); p = $rb_minus(p, 1); @@ -5799,304 +10322,374 @@ Opal.modules["parser/lexer"] = function(Opal) { p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((201)['$===']($case)) { + else if ((325)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS_BEGIN')); - self.cs = 440; + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((198)['$===']($case)) { + else if ((324)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - self.$emit("tCONSTANT"); - self.cs = 440; + self.$emit("tSTAR", "*".$freeze()); p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((200)['$===']($case)) { + else if ((321)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - self.$emit("tIDENTIFIER"); - self.cs = 440; + $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - p = $rb_plus(p, 1); - _goto_level = _out; + self.cs = self.$push_literal(type, delimiter, self.ts); + _goto_level = _again; continue;;;;} - else if ((195)['$===']($case)) { + else if ((319)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - p = $rb_minus(self.ts, 1); - self.cs = 766; + self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} + else if ((348)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} + else if ((331)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; - _goto_level = _again; + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); + self.cs = 781; + + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((191)['$===']($case)) { + else if ((344)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 440; + if ($truthy($rb_ge(self.version, 27))) { + self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) + } else { + + self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + }; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((196)['$===']($case)) { + else if ((349)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); + self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} + else if ((355)['$===']($case)) { + self.te = p; p = $rb_minus(p, 1); - self.cs = 537; + p = $rb_minus(self.ts, 1); + + self.cs = 781; _goto_level = _again; continue;;;;} - else if ((189)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((194)['$===']($case)) { + else if ((322)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - p = $rb_minus(p, 1); + self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - self.cs = 766; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((19)['$===']($case)) { - - p = $rb_minus(self.te, 1);; + else if ((326)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 440; + if ($truthy($rb_ge(self.version, 27))) { + self.$emit("tBDOT2") + } else { + self.$emit("tDOT2") + }; + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((17)['$===']($case)) { - - p = $rb_minus(self.te, 1);; + else if ((301)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + self.$emit("tIDENTIFIER"); + if ($truthy((function() {if ($truthy(($ret_or_60 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](self.$tok()) + } else { + return $ret_or_60 + }; return nil; })())) { + + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };;} + else if ((311)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);} + else if ((313)['$===']($case)) { + self.te = p; p = $rb_minus(p, 1); - self.cs = 766; + p = $rb_minus(self.ts, 1); + self.cs_before_block_comment = self.cs; + + self.cs = 185; _goto_level = _again; continue;;;;} - else if ((187)['$===']($case)) { - $case = self.act; - if ((39)['$===']($case)) { + else if ((316)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS_BEGIN')); - self.cs = 440; + p = $rb_minus(self.ts, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((40)['$===']($case)) { + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((53)['$===']($case)) { p = $rb_minus(self.te, 1);; - self.$emit("tCONSTANT"); - self.cs = 440; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((41)['$===']($case)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} + else if ((72)['$===']($case)) { p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - self.cs = 440; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;};} - else if ((22)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); - self.cs = 751; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((204)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} + else if ((73)['$===']($case)) { - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((203)['$===']($case)) { - self.te = $rb_plus(p, 1); + p = $rb_minus(self.te, 1);; - p = $rb_minus(p, 1); + value = (function() {if ($truthy(($ret_or_61 = self.escape))) { + return $ret_or_61 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((206)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((205)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((21)['$===']($case)) { + else if ((47)['$===']($case)) { p = $rb_minus(self.te, 1);; - p = $rb_minus(p, 1); - - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((212)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.$emit("tIDENTIFIER"); + if ($truthy((function() {if ($truthy(($ret_or_62 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](self.$tok()) + } else { + return $ret_or_62 + }; return nil; })())) { + + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };;} + else if ((52)['$===']($case)) { - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 468; + p = $rb_minus(self.te, 1);;} + else if ((67)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((211)['$===']($case)) { - self.te = $rb_plus(p, 1); + p = $rb_minus(self.te, 1);; - p = $rb_minus(p, 1); + p = $rb_minus(self.ts, 1); - self.cs = 766; + self.cs = 781; _goto_level = _again; continue;;;;} - else if ((210)['$===']($case)) { - self.te = $rb_plus(p, 1); + else if ((50)['$===']($case)) { + $case = self.act; + if ((98)['$===']($case)) { + p = $rb_minus(self.te, 1);; + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); p = $rb_minus(p, 1); + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((222)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;} + else if ((105)['$===']($case)) { - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(); + p = $rb_minus(self.te, 1);; + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));} + else if ((116)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + if ($truthy($rb_ge(self.version, 27))) { + + self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 543; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + p = $rb_minus(p, 2); + + self.cs = 781; + _goto_level = _again; + continue;;; + };} + else if ((120)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((213)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;} + else if ((121)['$===']($case)) { - self.$emit("tIDENTIFIER"); - self.cs = self.$arg_or_cmdarg(); + p = $rb_minus(self.te, 1);; + self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 519; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((218)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;} + else if ((122)['$===']($case)) { - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 468; + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); + self.command_start = true; + self.cs = 773; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((216)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((221)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;} + else if ((126)['$===']($case)) { - p = $rb_minus(p, 1); + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); - self.cs = 766; + self.cs = 781; _goto_level = _again; - continue;;;;} - else if ((245)['$===']($case)) { - self.te = $rb_plus(p, 1); + continue;;;} + else if ((127)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if ($truthy((function() {if ($truthy(($ret_or_63 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](self.$tok()) + } else { + return $ret_or_63 + }; return nil; })())) { + + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };} + else if ((131)['$===']($case)) { + p = $rb_minus(self.te, 1);; p = $rb_minus(self.ts, 1); - self.cs = 766; + self.cs = 781; _goto_level = _again; - continue;;;;} - else if ((228)['$===']($case)) { + continue;;;};} + else if ((386)['$===']($case)) { self.te = $rb_plus(p, 1); - if (self.$tok(tm, $rb_plus(tm, 1))['$==']("/".$freeze())) { - self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1)))}; - p = $rb_minus(tm, 1); + p = $rb_minus(p, 1); - self.cs = 537; + self.cs = 543; _goto_level = _again; continue;;;;} - else if ((234)['$===']($case)) { + else if ((387)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(p, 1); p = $rb_minus(p, 1); - self.cs = 537; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((24)['$===']($case)) { - self.te = $rb_plus(p, 1); + else if ((388)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);} + else if ((392)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.ts, 1); + p = $rb_minus(p, 1); - self.cs = 537; + self.cs = 543; _goto_level = _again; continue;;;;} - else if ((236)['$===']($case)) { + else if ((76)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(tm, 1); + p = $rb_minus(self.ts, 1); - self.cs = 766; + self.cs = 781; _goto_level = _again; continue;;;;} - else if ((39)['$===']($case)) { + else if ((396)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(self.ts, 1); - self.cs = 766; + self.cs = self.$push_literal(self.$tok(), self.$tok(), self.ts); _goto_level = _again; continue;;;;} - else if ((223)['$===']($case)) { + else if ((395)['$===']($case)) { self.te = $rb_plus(p, 1); p = $rb_minus(p, 1); - self.cs = 537; + self.cs = 543; _goto_level = _again; continue;;;;} - else if ((224)['$===']($case)) { + else if ((394)['$===']($case)) { self.te = $rb_plus(p, 1); p = $rb_minus(p, 1); @@ -6104,174 +10697,142 @@ Opal.modules["parser/lexer"] = function(Opal) { p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((235)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 537; - _goto_level = _again; - continue;;;;} - else if ((231)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); - p = $rb_minus(tm, 1); - - self.cs = 537; - _goto_level = _again; - continue;;;;} - else if ((233)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(p, 1); - - self.cs = 537; - _goto_level = _again; - continue;;;;} - else if ((227)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((226)['$===']($case)) { + else if ((398)['$===']($case)) { self.te = p; p = $rb_minus(p, 1);} - else if ((244)['$===']($case)) { + else if ((397)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); p = $rb_minus(p, 1); - self.cs = 537; + self.cs = 543; _goto_level = _again; continue;;;;} - else if ((25)['$===']($case)) { - - p = $rb_minus(self.te, 1);;} - else if ((41)['$===']($case)) { + else if ((75)['$===']($case)) { p = $rb_minus(self.te, 1);; p = $rb_minus(p, 1); - self.cs = 537; + self.cs = 543; _goto_level = _again; continue;;;;} - else if ((23)['$===']($case)) { - $case = self.act; - if ((67)['$===']($case)) { + else if ((431)['$===']($case)) { + self.te = $rb_plus(p, 1); - p = $rb_minus(self.te, 1);; - if (self.$tok(tm, $rb_plus(tm, 1))['$==']("/".$freeze())) { - self.$diagnostic("warning", "ambiguous_literal", nil, self.$range(tm, $rb_plus(tm, 1)))}; - p = $rb_minus(tm, 1); + self.$emit("tLAMBDA", "->".$freeze(), self.ts, $rb_plus(self.ts, 2)); + self.lambda_stack.$push(self.paren_nest); + self.cs = 446; - self.cs = 537; - _goto_level = _again; - continue;;;} - else if ((68)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((85)['$===']($case)) { + self.te = $rb_plus(p, 1); - p = $rb_minus(self.te, 1);; - self.$diagnostic("warning", "ambiguous_prefix", $hash2(["prefix"], {"prefix": self.$tok(tm, self.te)}), self.$range(tm, self.te)); - p = $rb_minus(tm, 1); + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 773; - self.cs = 537; - _goto_level = _again; - continue;;;} - else if ((73)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((406)['$===']($case)) { + self.te = $rb_plus(p, 1); - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); + $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; - self.cs = 766; + self.cs = self.$push_literal(type, delimiter, self.ts, nil, false, false, true); _goto_level = _again; - continue;;;} - else { - - p = $rb_minus(self.te, 1);;};} - else if ((43)['$===']($case)) { + continue;;;;} + else if ((78)['$===']($case)) { self.te = $rb_plus(p, 1); p = $rb_minus(self.ts, 1); - self.cs = 468; + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; _goto_level = _again; continue;;;;} - else if ((249)['$===']($case)) { + else if ((427)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(p, 1); + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 453; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((250)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + else if ((480)['$===']($case)) { + self.te = $rb_plus(p, 1); - p = $rb_minus(self.ts, 1); + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 773; - self.cs = 468; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((44)['$===']($case)) { - - p = $rb_minus(self.te, 1);; + else if ((420)['$===']($case)) { + self.te = $rb_plus(p, 1); - p = $rb_minus(self.ts, 1); + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 773; - self.cs = 468; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((42)['$===']($case)) { - $case = self.act; - if ((80)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self.cond['$active?']())) { - self.$emit("kDO_COND", "do".$freeze(), $rb_minus(self.te, 2), self.te) - } else { - self.$emit("kDO", "do".$freeze(), $rb_minus(self.te, 2), self.te) - }; - self.cs = 758; + else if ((425)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$emit("tOP_ASGN", self.$tok(self.ts, $rb_minus(self.te, 1))); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((81)['$===']($case)) { + continue;;;;} + else if ((411)['$===']($case)) { + self.te = $rb_plus(p, 1); - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); + self.$emit("tEH", "?".$freeze()); + self.cs = 773; - self.cs = 468; - _goto_level = _again; - continue;;;};} - else if ((260)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((408)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit_do(true); - self.cs = 758; + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((253)['$===']($case)) { + else if ((410)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(p, 1); + self.$emit("tSEMI", ";".$freeze()); + self.command_start = true; + self.cs = 773; - self.cs = 766; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((254)['$===']($case)) { + else if ((485)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$diagnostic("error", "bare_backslash", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + p = $rb_minus(p, 1);;} + else if ((405)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} + else if ((404)['$===']($case)) { self.te = $rb_plus(p, 1); p = $rb_minus(p, 1); @@ -6279,450 +10840,611 @@ Opal.modules["parser/lexer"] = function(Opal) { p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((255)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((258)['$===']($case)) { + else if ((496)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - p = $rb_minus(p, 1); + self.$emit_table($$($nesting, 'KEYWORDS')); + self.cs = 333; - self.cs = 766; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((264)['$===']($case)) { - self.te = $rb_plus(p, 1); - + else if ((494)['$===']($case)) { + self.te = p; p = $rb_minus(p, 1); - self.cs = 537; - _goto_level = _again; - continue;;;;} - else if ((263)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(p, 1); + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 773; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((272)['$===']($case)) { + else if ((493)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - p = $rb_minus(self.ts, 1); + self.$emit_table($$($nesting, 'KEYWORDS')); + self.command_start = true; + self.cs = 773; - self.cs = 537; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((266)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((270)['$===']($case)) { + else if ((435)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); + self.$diagnostic("error", "no_dot_digit_literal");;} + else if ((482)['$===']($case)) { + self.te = p; p = $rb_minus(p, 1); - self.cs = 537; - _goto_level = _again; - continue;;;;} - else if ((265)['$===']($case)) { - $case = self.act; - if ((88)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 537; + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((89)['$===']($case)) { + continue;;;;} + else if ((424)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.te, 1);; p = $rb_minus(self.ts, 1); - self.cs = 537; + + $writer = [self.top, self.cs]; + $send(self.stack, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.top = $rb_plus(self.top, 1); + self.cs = 328; _goto_level = _again; - continue;;;};} - else if ((300)['$===']($case)) { - self.te = $rb_plus(p, 1); + continue;;;;} + else if ((432)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 453; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;} + else if ((488)['$===']($case)) { + self.te = p; p = $rb_minus(p, 1); - if ($truthy(self.$tok()['$start_with?']("-".$freeze()))) { + + self.$emit("tIDENTIFIER"); + if ($truthy((function() {if ($truthy(($ret_or_64 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](self.$tok()) + } else { + return $ret_or_64 + }; return nil; })())) { - self.$emit("tUMINUS_NUM", "-".$freeze(), self.ts, $rb_plus(self.ts, 1)); - self.cs = 766; + self.cs = 446; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;};;} - else if ((301)['$===']($case)) { - self.te = $rb_plus(p, 1); - - type = (delimiter = self.$tok()['$[]'](0).$chr()); + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };;} + else if ((430)['$===']($case)) { + self.te = p; p = $rb_minus(p, 1); - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((295)['$===']($case)) { - self.te = $rb_plus(p, 1); - - $b = [self.source_buffer.$slice(self.ts).$chr(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 773; - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((51)['$===']($case)) { - self.te = $rb_plus(p, 1); + else if ((426)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 773; - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((302)['$===']($case)) { - self.te = $rb_plus(p, 1); + else if ((419)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - $b = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 543; - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((54)['$===']($case)) { - self.te = $rb_plus(p, 1); + else if ((433)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); - self.cs = 766; + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((316)['$===']($case)) { - self.te = $rb_plus(p, 1); - - escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); - self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); - p = $rb_minus(self.ts, 1); + else if ((417)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);} + else if ((423)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((315)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} + else if ((83)['$===']($case)) { - self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((303)['$===']($case)) { - self.te = $rb_plus(p, 1); + p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION_BEGIN')); + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_65 = (function() {if ($truthy(($ret_or_66 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_66 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_65 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_67 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_67 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((48)['$===']($case)) { - self.te = $rb_plus(p, 1); + else if ((79)['$===']($case)) { - p = $rb_minus(p, 1); - if ($truthy(self['$version?'](18))) { - - ident = self.$tok(self.ts, $rb_minus(self.te, 2)); - self.$emit((function() {if ($truthy(self.source_buffer.$slice(self.ts)['$=~'](/[A-Z]/))) { - return "tCONSTANT" - } else { - return "tIDENTIFIER" - }; return nil; })(), ident, self.ts, $rb_minus(self.te, 2)); - p = $rb_minus(p, 1); - if ($truthy(($truthy($b = self.static_env['$nil?']()['$!']()) ? self.static_env['$declared?'](ident) : $b))) { - self.cs = 766 - } else { - self.cs = self.$arg_or_cmdarg() - }; - } else { + p = $rb_minus(self.te, 1);; + + self.$diagnostic("error", "no_dot_digit_literal");;} + else if ((82)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tLABEL", self.$tok(self.ts, $rb_minus(self.te, 2)), self.ts, $rb_minus(self.te, 1)); - self.cs = 751; + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) }; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((289)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(self.ts, 1); - - self.cs = 165; - _goto_level = _again; - continue;;;;} - else if ((52)['$===']($case)) { - self.te = $rb_plus(p, 1); + else if ((77)['$===']($case)) { - p = $rb_minus(self.ts, 1); + p = $rb_minus(self.te, 1);; - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((275)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} + else if ((80)['$===']($case)) { + $case = self.act; + if ((144)['$===']($case)) { - p = $rb_minus(p, 1); + p = $rb_minus(self.te, 1);; + if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + + self.lambda_stack.$pop(); + if (self.$tok()['$==']("{".$freeze())) { + self.$emit("tLAMBEG", "{".$freeze()) + } else { + self.$emit("kDO_LAMBDA", "do".$freeze()) + }; + } else if (self.$tok()['$==']("{".$freeze())) { + self.$emit("tLCURLY", "{".$freeze()) + } else { + self.$emit_do() + }; + if (self.$tok()['$==']("{".$freeze())) { + self.paren_nest = $rb_plus(self.paren_nest, 1)}; + self.command_start = true; + self.cs = 773; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((299)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;} + else if ((145)['$===']($case)) { - self.$emit("tSTAR", "*".$freeze()); + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + self.cs = 333; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((296)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - $b = [self.$tok()['$[]']($range(0, -2, false)), self.$tok()['$[]'](-1).$chr()], (type = $b[0]), (delimiter = $b[1]), $b; + continue;;;} + else if ((146)['$===']($case)) { - self.cs = self.$push_literal(type, delimiter, self.ts); - _goto_level = _again; - continue;;;;} - else if ((294)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + p = $rb_minus(self.te, 1);; + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 773; - self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((304)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((147)['$===']($case)) { - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1)), self.ts); - self.cs = 766; + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((314)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "incomplete_escape", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((320)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;} + else if ((148)['$===']($case)) { - p = $rb_minus(self.ts, 1); + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + self.command_start = true; + self.cs = 773; - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((297)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((149)['$===']($case)) { - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION_BEGIN')); + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + self.cs = 519; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((342)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;} + else if ((150)['$===']($case)) { - self.$emit("tIDENTIFIER"); - if ($truthy(($truthy($b = self.static_env['$nil?']()['$!']()) ? self.static_env['$declared?'](self.$tok()) : $b))) { + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + if ($truthy((function() {if ($truthy(($ret_or_68 = self['$version?'](18)))) { + return self.$tok()['$==']("not".$freeze()) + } else { + return $ret_or_68 + }; return nil; })())) { - self.cs = 440; + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; continue;;; - } else { + } else { - self.cs = self.$arg_or_cmdarg(); + self.cs = 474; p = $rb_plus(p, 1); _goto_level = _out; continue;;; - };;} - else if ((286)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((288)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + };} + else if ((151)['$===']($case)) { - p = $rb_minus(self.ts, 1); + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18))) { + + self.$emit("tIDENTIFIER"); + if ($truthy((function() {if ($truthy(($ret_or_69 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](self.$tok()) + } else { + return $ret_or_69 + }; return nil; })())) { + } else { + self.cs = self.$arg_or_cmdarg(cmd_state) + }; + } else { + self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) + }; - self.cs = 165; - _goto_level = _again; - continue;;;;} - else if ((291)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((152)['$===']($case)) { - p = $rb_minus(self.ts, 1); + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((50)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((153)['$===']($case)) { p = $rb_minus(self.te, 1);; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_70 = (function() {if ($truthy(($ret_or_71 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_71 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_70 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_72 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_72 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; - self.$diagnostic("fatal", "string_eof", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));;} - else if ((57)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((155)['$===']($case)) { p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };} + else if ((156)['$===']($case)) { - value = ($truthy($b = self.escape) ? $b : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($b = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };} + else if ((157)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) }; - self.cs = 766; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((49)['$===']($case)) { + continue;;;} + else if ((159)['$===']($case)) { - p = $rb_minus(self.te, 1);;} - else if ((53)['$===']($case)) { + p = $rb_minus(self.te, 1);; + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((163)['$===']($case)) { p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if ($truthy((function() {if ($truthy(($ret_or_73 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](self.$tok()) + } else { + return $ret_or_73 + }; return nil; })())) { + + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };} + else if ((164)['$===']($case)) { - p = $rb_minus(self.ts, 1); + p = $rb_minus(self.te, 1);; + if (tm['$=='](self.te)) { + self.$emit("tFID") + } else { + + self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + }; + self.cs = 474; - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((47)['$===']($case)) { - $case = self.act; - if ((111)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((166)['$===']($case)) { p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION_BEGIN')); + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 773; p = $rb_plus(p, 1); _goto_level = _out; continue;;;} - else if ((112)['$===']($case)) { + else if ((167)['$===']($case)) { p = $rb_minus(self.te, 1);; - self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 543; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;};} + else if ((95)['$===']($case)) { + self.te = $rb_plus(p, 1); + p = $rb_minus(tm, 1); - self.cs = 513; + + self.cs = 781; + _goto_level = _again; + continue;;;;} + else if ((501)['$===']($case)) { + self.te = $rb_plus(p, 1); + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 185; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((113)['$===']($case)) { + continue;;;;} + else if ((504)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy($rb_lt(self.version, 27))) { + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 185; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;};;} + else if ((503)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS_BEGIN')); - self.cs = 758; + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 185; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((115)['$===']($case)) { + continue;;;;} + else if ((90)['$===']($case)) { p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 766; - _goto_level = _again; - continue;;;} - else if ((116)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy(($truthy($c = self.static_env['$nil?']()['$!']()) ? self.static_env['$declared?'](self.$tok()) : $c))) { - - self.cs = 440; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + if ($truthy($rb_lt(self.version, 27))) { - self.cs = self.$arg_or_cmdarg(); + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 185; p = $rb_plus(p, 1); _goto_level = _out; - continue;;; - };} - else if ((119)['$===']($case)) { + continue;;;};;} + else if ((86)['$===']($case)) { p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); - - self.cs = 766; - _goto_level = _again; - continue;;;};} - else if ((350)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); p = $rb_minus(p, 1); + self.cs = 185; - self.cs = 537; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;} - else if ((351)['$===']($case)) { - self.te = $rb_plus(p, 1); + else if ((91)['$===']($case)) { + $case = self.act; + if ((180)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + if ($truthy($rb_lt(self.version, 27))) { + + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + p = $rb_minus(p, 1); + self.cs = 185; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;};} + else if ((182)['$===']($case)) { + p = $rb_minus(self.te, 1);; + self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); p = $rb_minus(p, 1); + self.cs = 185; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((352)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((356)['$===']($case)) { + continue;;;};} + else if ((507)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - p = $rb_minus(p, 1); + self.$emit_comment(self.eq_begin_s, self.te); - self.cs = 537; + self.cs = self.cs_before_block_comment; _goto_level = _again; continue;;;;} - else if ((60)['$===']($case)) { + else if ((506)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.$diagnostic("fatal", "embedded_document", nil, self.$range(self.eq_begin_s, $rb_plus(self.eq_begin_s, "=begin".$length())));;} + else if ((106)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(self.ts, 1); + self.eq_begin_s = self.ts; - self.cs = 766; + self.cs = 967; _goto_level = _again; continue;;;;} - else if ((360)['$===']($case)) { + else if ((2)['$===']($case)) { self.te = $rb_plus(p, 1); - - self.cs = self.$push_literal(self.$tok(), self.$tok(), self.ts); - _goto_level = _again; - continue;;;;} - else if ((359)['$===']($case)) { + p = $rb_minus(pe, 3);;} + else if ((98)['$===']($case)) { self.te = $rb_plus(p, 1); + cmd_state = true; p = $rb_minus(p, 1); - self.cs = 537; + self.cs = 773; _goto_level = _again; continue;;;;} - else if ((358)['$===']($case)) { + else if ((99)['$===']($case)) { self.te = $rb_plus(p, 1); p = $rb_minus(p, 1); @@ -6730,403 +11452,613 @@ Opal.modules["parser/lexer"] = function(Opal) { p = $rb_plus(p, 1); _goto_level = _out; continue;;;;} - else if ((362)['$===']($case)) { + else if ((100)['$===']($case)) { self.te = p; p = $rb_minus(p, 1);} - else if ((361)['$===']($case)) { + else if ((105)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); + + self.eq_begin_s = self.ts; + + self.cs = 967; + _goto_level = _again; + continue;;;;} + else if ((104)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); + cmd_state = true; p = $rb_minus(p, 1); - self.cs = 537; + self.cs = 773; _goto_level = _again; continue;;;;} - else if ((59)['$===']($case)) { + else if ((1)['$===']($case)) { p = $rb_minus(self.te, 1);; - p = $rb_minus(p, 1); + cmd_state = true; + p = $rb_minus(p, 1); + + self.cs = 773; + _goto_level = _again; + continue;;;;} + else if ((66)['$===']($case)) { + + self.newline_s = p;; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());;} + else if ((110)['$===']($case)) { + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_74 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_74 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;;} + else if ((140)['$===']($case)) { + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_75 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_75 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;;} + else if ((168)['$===']($case)) { + + self.newline_s = p;; + + self.te = $rb_plus(p, 1); + + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_76 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_76 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;;} + else if ((174)['$===']($case)) { + + self.newline_s = p;; - self.cs = 537; - _goto_level = _again; - continue;;;;} - else if ((392)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit("tLAMBDA", "->".$freeze(), self.ts, $rb_plus(self.ts, 2)); - self.lambda_stack.$push(self.paren_nest); - self.cs = 440; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((74)['$===']($case)) { - self.te = $rb_plus(p, 1); + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_77 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_77 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;;} + else if ((180)['$===']($case)) { - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 758; + self.newline_s = p;; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((370)['$===']($case)) { self.te = $rb_plus(p, 1); - $c = [self.$tok(), self.$tok()['$[]'](-1).$chr()], (type = $c[0]), (delimiter = $c[1]), $c; + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_78 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_78 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;;} + else if ((187)['$===']($case)) { + + self.newline_s = p;; - self.cs = self.$push_literal(type, delimiter, self.ts, nil, false, false, true); - _goto_level = _again; - continue;;;;} - else if ((62)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(self.ts, 1); + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_79 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_79 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;;} + else if ((190)['$===']($case)) { + self.newline_s = p;; - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; - _goto_level = _again; - continue;;;;} - else if ((389)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 447; + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_80 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_80 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;;} + else if ((198)['$===']($case)) { + + self.newline_s = p;; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((383)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 537; + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_81 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_81 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;;} + else if ((269)['$===']($case)) { + + self.newline_s = p;; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((376)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - if ($truthy(Opal.const_get_relative($nesting, 'RBRACE_OR_RBRACK')['$include?'](self.$tok()))) { - self.cs = 505}; + p = $rb_minus(self.ts, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((388)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((260)['$===']($case)) { - self.$emit("tOP_ASGN", self.$tok(self.ts, $rb_minus(self.te, 1))); - self.cs = 537; + self.newline_s = p;; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((374)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit("tEH", "?".$freeze()); - self.cs = 758; + p = $rb_minus(tm, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((371)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((252)['$===']($case)) { - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 537; + self.newline_s = p;; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((373)['$===']($case)) { self.te = $rb_plus(p, 1); - self.$emit("tSEMI", ";".$freeze()); - self.cs = 758; + p = $rb_minus(self.ts, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((438)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((352)['$===']($case)) { - self.$diagnostic("error", "bare_backslash", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); - p = $rb_minus(p, 1);;} - else if ((369)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.newline_s = p;; - self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} - else if ((368)['$===']($case)) { self.te = $rb_plus(p, 1); - p = $rb_minus(p, 1); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((448)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 327; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((446)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 758; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((445)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 758; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((395)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); + self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); + p = $rb_minus(self.ts, 1); - self.$diagnostic("error", "no_dot_digit_literal");;} - else if ((435)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((315)['$===']($case)) { - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(); + self.newline_s = p;; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((387)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1); p = $rb_minus(self.ts, 1); + self.cs_before_block_comment = self.cs; - - $writer = [self.top, self.cs]; - $send(self.stack, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.top = $rb_plus(self.top, 1); - self.cs = 322; + self.cs = 185; _goto_level = _again; - continue;;;;} - else if ((393)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 447; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((440)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;;;} + else if ((434)['$===']($case)) { - self.$emit("tIDENTIFIER"); - if ($truthy(($truthy($c = self.static_env['$nil?']()['$!']()) ? self.static_env['$declared?'](self.$tok()) : $c))) { - - self.cs = 440; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - self.cs = self.$arg_or_cmdarg(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;} - else if ((382)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + self.newline_s = p;; - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 537; + self.te = $rb_plus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((394)['$===']($case)) { - self.te = p; + if (self.paren_nest['$=='](0)) { + self.$diagnostic("warning", "triple_dot_at_eol", nil, self.$range(self.ts, $rb_minus(self.te, 1)))}; + self.$emit("tDOT3", "...".$freeze(), self.ts, $rb_minus(self.te, 1)); p = $rb_minus(p, 1); - - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 537; + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((380)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((386)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); - - self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} - else if ((63)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("error", "no_dot_digit_literal");;} - else if ((61)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - - self.$diagnostic("fatal", "unexpected", $hash2(["character"], {"character": self.$tok().$inspect()['$[]']($range(1, -2, false))}));;} - else if ((64)['$===']($case)) { - $case = self.act; - if ((132)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - - self.lambda_stack.$pop(); - if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLAMBEG", "{".$freeze()) - } else { - self.$emit("kDO_LAMBDA", "do".$freeze()) - }; - } else if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLCURLY", "{".$freeze()) - } else { - self.$emit_do() - }; - self.cs = 758; + continue;;;;;} + else if ((508)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((133)['$===']($case)) { + self.newline_s = p;; - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 327; + self.te = $rb_plus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((134)['$===']($case)) { + self.$emit_comment(self.eq_begin_s, self.te); - p = $rb_minus(self.te, 1);; - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 758; + self.cs = self.cs_before_block_comment; + _goto_level = _again; + continue;;;;;} + else if ((505)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((135)['$===']($case)) { + self.newline_s = p;; - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 537; + self.te = $rb_plus(p, 1);;} + else if ((107)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((136)['$===']($case)) { + self.newline_s = p;; - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 758; + self.te = $rb_plus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((137)['$===']($case)) { + self.eq_begin_s = self.ts; - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 513; + self.cs = 967; + _goto_level = _again; + continue;;;;;} + else if ((3)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((138)['$===']($case)) { + self.newline_s = p;; - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - if ($truthy(($truthy($c = self['$version?'](18)) ? self.$tok()['$==']("not".$freeze()) : $c))) { - - self.cs = 537; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - self.cs = 468; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((139)['$===']($case)) { + self.te = $rb_plus(p, 1); - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18))) { + p = $rb_minus(pe, 3);;;} + else if ((456)['$===']($case)) { + + self.num_xfrm = $send(self, 'lambda', [], ($$13 = function(chars){var self = $$13.$$s == null ? this : $$13.$$s; + - self.$emit("tIDENTIFIER"); - if ($truthy(($truthy($c = self.static_env['$nil?']()['$!']()) ? self.static_env['$declared?'](self.$tok()) : $c))) { - } else { - self.cs = self.$arg_or_cmdarg() + + if (chars == null) { + chars = nil; }; - } else { - self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((140)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); + return self.$emit("tRATIONAL", self.$Rational(chars));}, $$13.$$s = self, $$13.$$arity = 1, $$13));; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((141)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.te, 1);; digits = self.$tok(self.num_digits_s, self.num_suffix_s); if ($truthy(digits['$end_with?']("_".$freeze()))) { self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($c = ($truthy($d = digits['$empty?']()) ? self.num_base['$=='](8) : $d)) ? self['$version?'](18) : $c))) { + } else if ($truthy((function() {if ($truthy(($ret_or_82 = (function() {if ($truthy(($ret_or_83 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_83 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_82 + }; return nil; })())) { digits = "0".$freeze() } else if ($truthy(digits['$empty?']())) { self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($c = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { + } else if ($truthy((function() {if ($truthy(($ret_or_84 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_84 + }; return nil; })())) { invalid_s = $rb_plus(self.num_digits_s, invalid_idx); self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; @@ -7134,877 +12066,1384 @@ Opal.modules["parser/lexer"] = function(Opal) { self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); p = $rb_minus(self.num_suffix_s, 1); - } else { + } else { self.num_xfrm.$call(digits.$to_i(self.num_base)) }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((143)['$===']($case)) { + continue;;;;;} + else if ((454)['$===']($case)) { - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { + self.num_xfrm = $send(self, 'lambda', [], ($$14 = function(chars){var self = $$14.$$s == null ? this : $$14.$$s; + - self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((144)['$===']($case)) { + if (chars == null) { + chars = nil; + }; + return self.$emit("tIMAGINARY", self.$Complex(0, chars));}, $$14.$$s = self, $$14.$$arity = 1, $$14));; - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_85 = (function() {if ($truthy(($ret_or_86 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_86 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_85 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_87 = self.num_base['$=='](8)))) { - self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_87 + }; return nil; })())) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((145)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.ts, self.num_suffix_s); + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((147)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((151)['$===']($case)) { + continue;;;;;} + else if ((459)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy(($truthy($c = self.static_env['$nil?']()['$!']()) ? self.static_env['$declared?'](self.$tok()) : $c))) { + self.num_xfrm = $send(self, 'lambda', [], ($$15 = function(chars){var self = $$15.$$s == null ? this : $$15.$$s; + - self.cs = 440; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { + if (chars == null) { + chars = nil; + }; + return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, $$15.$$s = self, $$15.$$arity = 1, $$15));; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_88 = (function() {if ($truthy(($ret_or_89 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_89 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_88 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_90 = self.num_base['$=='](8)))) { - self.cs = self.$arg_or_cmdarg(); + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_90 + }; return nil; })())) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((152)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if (tm['$=='](self.te)) { - self.$emit("tFID") - } else { + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) }; - self.cs = 468; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;};} - else if ((78)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 766; - _goto_level = _again; - continue;;;;} - else if ((453)['$===']($case)) { - self.te = $rb_plus(p, 1); + continue;;;;;} + else if ((457)['$===']($case)) { - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 165; + self.num_xfrm = $send(self, 'lambda', [], ($$16 = function(chars){var self = $$16.$$s == null ? this : $$16.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) { + chars = nil; + }; + self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); + return (p = $rb_minus(p, 2));}, $$16.$$s = self, $$16.$$arity = 1, $$16));; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;} - else if ((454)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); - p = $rb_minus(p, 1); - self.cs = 165; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_91 = (function() {if ($truthy(($ret_or_92 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_92 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_91 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_93 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_93 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((75)['$===']($case)) { + continue;;;;;} + else if ((455)['$===']($case)) { - p = $rb_minus(self.te, 1);; + self.num_xfrm = $send(self, 'lambda', [], ($$17 = function(chars){var self = $$17.$$s == null ? this : $$17.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) { + chars = nil; + }; + self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 2)); + return (p = $rb_minus(p, 2));}, $$17.$$s = self, $$17.$$arity = 1, $$17));; - self.$emit("tNL", nil, self.newline_s, $rb_plus(self.newline_s, 1)); + self.te = p; p = $rb_minus(p, 1); - self.cs = 165; + + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_94 = (function() {if ($truthy(($ret_or_95 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_95 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_94 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_96 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_96 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((457)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;;;} + else if ((458)['$===']($case)) { - self.$emit_comment(self.eq_begin_s, self.te); + self.num_xfrm = $send(self, 'lambda', [], ($$18 = function(chars){var self = $$18.$$s == null ? this : $$18.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) { + chars = nil; + }; + self.$emit("tINTEGER", chars, self.ts, $rb_minus(self.te, 6)); + return (p = $rb_minus(p, 6));}, $$18.$$s = self, $$18.$$arity = 1, $$18));; - self.cs = 165; - _goto_level = _again; - continue;;;;} - else if ((456)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - self.$diagnostic("fatal", "embedded_document", nil, self.$range(self.eq_begin_s, $rb_plus(self.eq_begin_s, "=begin".$length())));;} - else if ((89)['$===']($case)) { - self.te = $rb_plus(p, 1); - - self.eq_begin_s = self.ts; - - self.cs = 942; - _goto_level = _again; - continue;;;;} - else if ((2)['$===']($case)) { - self.te = $rb_plus(p, 1); - - p = $rb_minus(pe, 3);;} - else if ((81)['$===']($case)) { - self.te = $rb_plus(p, 1); + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_97 = (function() {if ($truthy(($ret_or_98 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_98 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_97 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_99 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_99 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((447)['$===']($case)) { - self.cs = 758; - _goto_level = _again; - continue;;;;} - else if ((82)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.num_xfrm = $send(self, 'lambda', [], ($$19 = function(chars){var self = $$19.$$s == null ? this : $$19.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tIMAGINARY", self.$Complex(0, self.$Float(chars)));}, $$19.$$s = self, $$19.$$arity = 1, $$19));; + self.te = p; p = $rb_minus(p, 1); + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; + p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;} - else if ((83)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);} - else if ((88)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + continue;;;;;} + else if ((448)['$===']($case)) { - self.eq_begin_s = self.ts; + self.num_xfrm = $send(self, 'lambda', [], ($$20 = function(chars){var self = $$20.$$s == null ? this : $$20.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + + + + if (chars == null) { + chars = nil; + }; + self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 2)); + return (p = $rb_minus(p, 2));}, $$20.$$s = self, $$20.$$arity = 1, $$20));; - self.cs = 942; - _goto_level = _again; - continue;;;;} - else if ((87)['$===']($case)) { self.te = p; p = $rb_minus(p, 1); - p = $rb_minus(p, 1); + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; - self.cs = 758; - _goto_level = _again; - continue;;;;} - else if ((1)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((449)['$===']($case)) { - p = $rb_minus(self.te, 1);; + self.num_xfrm = $send(self, 'lambda', [], ($$21 = function(chars){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tRATIONAL", self.$Rational(chars));}, $$21.$$s = self, $$21.$$arity = 1, $$21));; + self.te = p; p = $rb_minus(p, 1); - self.cs = 758; - _goto_level = _again; - continue;;;;} - else if ((73)['$===']($case)) { + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; - self.newline_s = p;; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((451)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());;} - else if ((93)['$===']($case)) { + self.num_xfrm = $send(self, 'lambda', [], ($$22 = function(chars){var self = $$22.$$s == null ? this : $$22.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)));}, $$22.$$s = self, $$22.$$arity = 1, $$22));; - self.newline_s = p;; + self.te = p; + p = $rb_minus(p, 1); - self.te = $rb_plus(p, 1); + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((450)['$===']($case)) { + + self.num_xfrm = $send(self, 'lambda', [], ($$23 = function(chars){var self = $$23.$$s == null ? this : $$23.$$s; + if (self.ts == null) self.ts = nil; + if (self.te == null) self.te = nil; + - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + + if (chars == null) { + chars = nil; }; - } else { + self.$emit("tFLOAT", self.$Float(chars), self.ts, $rb_minus(self.te, 6)); + return (p = $rb_minus(p, 6));}, $$23.$$s = self, $$23.$$arity = 1, $$23));; + + self.te = p; + p = $rb_minus(p, 1); + + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) }; - if ($truthy(($truthy($c = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $c))) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((121)['$===']($case)) { - - self.newline_s = p;; - self.te = $rb_plus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((134)['$===']($case)) { - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + self.escape = ""; + codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); + codepoint_s = $rb_plus(self.escape_s, 2); + if ($truthy($rb_lt(self.version, 24))) { + + if ($truthy((function() {if ($truthy(($ret_or_100 = codepoints['$start_with?'](" ")))) { + return $ret_or_100 + } else { + return codepoints['$start_with?']("\t") + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3)))}; + if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2)))}; + if ($truthy((function() {if ($truthy(($ret_or_101 = codepoints['$end_with?'](" ")))) { + return $ret_or_101 + } else { + return codepoints['$end_with?']("\t") + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p))};}; + (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], ($$24 = function($mlhs_tmp1){var self = $$24.$$s == null ? this : $$24.$$s, $c, $d, codepoint_str = nil, spaces = nil, codepoint = nil; + if (self.escape == null) self.escape = nil; + - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; }; + $d = $mlhs_tmp1, $c = Opal.to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(spaces)) { + return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy(($truthy($c = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $c))) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((147)['$===']($case)) { - - self.newline_s = p;; + codepoint = codepoint_str.$to_i(16); + if ($truthy($rb_ge(codepoint, 1114112))) { + + self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + + Opal.brk(nil, $brk);}; + self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$($nesting, 'Encoding'), 'UTF_8'))); + return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); + };}, $$24.$$s = self, $$24.$$brk = $brk, $$24.$$arity = 1, $$24.$$has_top_level_mlhs_arg = true, $$24)) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_102 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy(($truthy($c = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $c))) { - current_literal.$extend_space(self.ts, self.te) + return $ret_or_102 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_103 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_103 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_104 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_104 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_105 = self.escape))) { + return $ret_or_105 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((153)['$===']($case)) { + else if ((162)['$===']($case)) { - self.newline_s = p;; + self.escape = ""; + codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); + codepoint_s = $rb_plus(self.escape_s, 2); + if ($truthy($rb_lt(self.version, 24))) { + + if ($truthy((function() {if ($truthy(($ret_or_106 = codepoints['$start_with?'](" ")))) { + return $ret_or_106 + } else { + return codepoints['$start_with?']("\t") + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3)))}; + if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2)))}; + if ($truthy((function() {if ($truthy(($ret_or_107 = codepoints['$end_with?'](" ")))) { + return $ret_or_107 + } else { + return codepoints['$end_with?']("\t") + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p))};}; + (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], ($$25 = function($mlhs_tmp1){var self = $$25.$$s == null ? this : $$25.$$s, $c, $d, codepoint_str = nil, spaces = nil, codepoint = nil; + if (self.escape == null) self.escape = nil; + + + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; + }; + $d = $mlhs_tmp1, $c = Opal.to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(spaces)) { + return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) + } else { + + codepoint = codepoint_str.$to_i(16); + if ($truthy($rb_ge(codepoint, 1114112))) { + + self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + + Opal.brk(nil, $brk);}; + self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$($nesting, 'Encoding'), 'UTF_8'))); + return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); + };}, $$25.$$s = self, $$25.$$brk = $brk, $$25.$$arity = 1, $$25.$$has_top_level_mlhs_arg = true, $$25)) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_108 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_108 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_109 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_109 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_110 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_110 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_111 = self.escape))) { + return $ret_or_111 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((373)['$===']($case)) { + + self.escape = ""; + codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); + codepoint_s = $rb_plus(self.escape_s, 2); + if ($truthy($rb_lt(self.version, 24))) { + + if ($truthy((function() {if ($truthy(($ret_or_112 = codepoints['$start_with?'](" ")))) { + return $ret_or_112 + } else { + return codepoints['$start_with?']("\t") + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus(self.escape_s, 2), $rb_plus(self.escape_s, 3)))}; + if ($truthy((spaces_p = codepoints.$index(/[ \t]{2}/)))) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_plus($rb_plus(codepoint_s, spaces_p), 1), $rb_plus($rb_plus(codepoint_s, spaces_p), 2)))}; + if ($truthy((function() {if ($truthy(($ret_or_113 = codepoints['$end_with?'](" ")))) { + return $ret_or_113 + } else { + return codepoints['$end_with?']("\t") + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(p, 1), p))};}; + (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$scan(/([0-9a-fA-F]+)|([ \t]+)/), 'each', [], ($$26 = function($mlhs_tmp1){var self = $$26.$$s == null ? this : $$26.$$s, $c, $d, codepoint_str = nil, spaces = nil, codepoint = nil; + if (self.escape == null) self.escape = nil; + - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; }; + $d = $mlhs_tmp1, $c = Opal.to_ary($d), (codepoint_str = ($c[0] == null ? nil : $c[0])), (spaces = ($c[1] == null ? nil : $c[1])), $d; + if ($truthy(spaces)) { + return (codepoint_s = $rb_plus(codepoint_s, spaces.$length())) } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy(($truthy($c = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $c))) { - current_literal.$extend_space(self.ts, self.te) - } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;;} - else if ((159)['$===']($case)) { + codepoint = codepoint_str.$to_i(16); + if ($truthy($rb_ge(codepoint, 1114112))) { + + self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); + + Opal.brk(nil, $brk);}; + self.escape = $rb_plus(self.escape, codepoint.$chr($$$($$($nesting, 'Encoding'), 'UTF_8'))); + return (codepoint_s = $rb_plus(codepoint_s, codepoint_str.$length())); + };}, $$26.$$s = self, $$26.$$brk = $brk, $$26.$$arity = 1, $$26.$$has_top_level_mlhs_arg = true, $$26)) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; - self.newline_s = p;; + self.te = p; + p = $rb_minus(p, 1); - self.te = $rb_plus(p, 1); + value = (function() {if ($truthy(($ret_or_114 = self.escape))) { + return $ret_or_114 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; - current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((118)['$===']($case)) { + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_115 = $rb_ge(self.version, 30)))) { - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; + if ($truthy(($ret_or_116 = codepoint['$=='](117)))) { + return $ret_or_116 + } else { + return codepoint['$=='](85) }; + } else { + return $ret_or_115 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + + self.te = p; + p = $rb_minus(p, 1); + + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_117 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy(($truthy($c = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $c))) { - current_literal.$extend_space(self.ts, self.te) + return $ret_or_117 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_118 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_118 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_119 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_119 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_120 = self.escape))) { + return $ret_or_120 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((165)['$===']($case)) { + else if ((146)['$===']($case)) { - self.newline_s = p;; + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_121 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_122 = codepoint['$=='](117)))) { + return $ret_or_122 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_121 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_123 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy(($truthy($c = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $c))) { - current_literal.$extend_space(self.ts, self.te) + return $ret_or_123 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_124 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_124 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_125 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_125 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_126 = self.escape))) { + return $ret_or_126 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((168)['$===']($case)) { + else if ((357)['$===']($case)) { - self.newline_s = p;; + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_127 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_128 = codepoint['$=='](117)))) { + return $ret_or_128 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_127 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + + self.te = p; + p = $rb_minus(p, 1); + + value = (function() {if ($truthy(($ret_or_129 = self.escape))) { + return $ret_or_129 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((121)['$===']($case)) { + + self.$diagnostic("fatal", "invalid_escape");; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_130 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy(($truthy($c = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $c))) { - current_literal.$extend_space(self.ts, self.te) + return $ret_or_130 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_131 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_131 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_132 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_132 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_133 = self.escape))) { + return $ret_or_133 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((175)['$===']($case)) { + else if ((149)['$===']($case)) { - self.newline_s = p;; + self.$diagnostic("fatal", "invalid_escape");; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_134 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy(($truthy($c = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $c))) { - current_literal.$extend_space(self.ts, self.te) + return $ret_or_134 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_135 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_135 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_136 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_136 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_137 = self.escape))) { + return $ret_or_137 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((246)['$===']($case)) { + else if ((360)['$===']($case)) { - self.newline_s = p;; + self.$diagnostic("fatal", "invalid_escape");; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.ts, 1); + value = (function() {if ($truthy(($ret_or_138 = self.escape))) { + return $ret_or_138 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; - self.cs = 766; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;;} - else if ((237)['$===']($case)) { - - self.newline_s = p;; - - self.te = $rb_plus(p, 1); + else if ((123)['$===']($case)) { - p = $rb_minus(tm, 1); + self.escape = "\u007F";; - self.cs = 766; - _goto_level = _again; - continue;;;;;} - else if ((229)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - self.newline_s = p;; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_139 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_139 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_140 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_140 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_141 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_141 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_142 = self.escape))) { + return $ret_or_142 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((151)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.escape = "\u007F";; - p = $rb_minus(self.ts, 1); + self.te = p; + p = $rb_minus(p, 1); - self.cs = 766; - _goto_level = _again; - continue;;;;;} - else if ((317)['$===']($case)) { + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_143 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_143 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_144 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_144 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_145 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_145 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_146 = self.escape))) { + return $ret_or_146 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((362)['$===']($case)) { - self.newline_s = p;; + self.escape = "\u007F";; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); - escape = $hash2([" ", "\r", "\n", "\t", "\v", "\f"], {" ": "\\s", "\r": "\\r", "\n": "\\n", "\t": "\\t", "\v": "\\v", "\f": "\\f"})['$[]'](self.source_buffer.$slice($rb_plus(self.ts, 1))); - self.$diagnostic("warning", "invalid_escape_use", $hash2(["escape"], {"escape": escape}), self.$range()); - p = $rb_minus(self.ts, 1); + value = (function() {if ($truthy(($ret_or_147 = self.escape))) { + return $ret_or_147 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; - self.cs = 766; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;;} - else if ((290)['$===']($case)) { - - self.newline_s = p;; + else if ((120)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; - p = $rb_minus(self.ts, 1); + self.te = p; + p = $rb_minus(p, 1); - self.cs = 165; - _goto_level = _again; - continue;;;;;} - else if ((458)['$===']($case)) { + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_148 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_148 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_149 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_149 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_150 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_150 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_151 = self.escape))) { + return $ret_or_151 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((148)['$===']($case)) { - self.newline_s = p;; + self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); - self.$emit_comment(self.eq_begin_s, self.te); + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_152 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_152 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_153 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_153 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_154 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_154 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_155 = self.escape))) { + return $ret_or_155 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((359)['$===']($case)) { - self.cs = 165; - _goto_level = _again; - continue;;;;;} - else if ((455)['$===']($case)) { + self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; - self.newline_s = p;; + self.te = p; + p = $rb_minus(p, 1); - self.te = $rb_plus(p, 1);;} - else if ((90)['$===']($case)) { + value = (function() {if ($truthy(($ret_or_156 = self.escape))) { + return $ret_or_156 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; - self.newline_s = p;; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((137)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; - self.eq_begin_s = self.ts; + self.te = p; + p = $rb_minus(p, 1); - self.cs = 942; - _goto_level = _again; - continue;;;;;} - else if ((3)['$===']($case)) { + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_157 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_157 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_158 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_158 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_159 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_159 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_160 = self.escape))) { + return $ret_or_160 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((165)['$===']($case)) { - self.newline_s = p;; + self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(pe, 3);;;} - else if ((412)['$===']($case)) { + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_161 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_161 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_162 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_162 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_163 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_163 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_164 = self.escape))) { + return $ret_or_164 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((376)['$===']($case)) { - self.num_xfrm = $send(self, 'lambda', [], (TMP_12 = function(chars){var self = TMP_12.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tRATIONAL", self.$Rational(chars))}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12));; + self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; self.te = p; p = $rb_minus(p, 1); - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($c = ($truthy($d = digits['$empty?']()) ? self.num_base['$=='](8) : $d)) ? self['$version?'](18) : $c))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($c = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { - - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) + value = (function() {if ($truthy(($ret_or_165 = self.escape))) { + return $ret_or_165 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) }; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((411)['$===']($case)) { + else if ((136)['$===']($case)) { - self.num_xfrm = $send(self, 'lambda', [], (TMP_13 = function(chars){var self = TMP_13.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tIMAGINARY", self.$Complex(0, chars))}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13));; + self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; self.te = p; p = $rb_minus(p, 1); - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($c = ($truthy($d = digits['$empty?']()) ? self.num_base['$=='](8) : $d)) ? self['$version?'](18) : $c))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($c = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { - - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_166 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((413)['$===']($case)) { + return $ret_or_166 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_167 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_167 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_168 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_168 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_169 = self.escape))) { + return $ret_or_169 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((164)['$===']($case)) { - self.num_xfrm = $send(self, 'lambda', [], (TMP_14 = function(chars){var self = TMP_14.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)))}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14));; + self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; self.te = p; p = $rb_minus(p, 1); - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($c = ($truthy($d = digits['$empty?']()) ? self.num_base['$=='](8) : $d)) ? self['$version?'](18) : $c))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($c = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { - - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_170 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((406)['$===']($case)) { + return $ret_or_170 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_171 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_171 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_172 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_172 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_173 = self.escape))) { + return $ret_or_173 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((375)['$===']($case)) { - self.num_xfrm = $send(self, 'lambda', [], (TMP_15 = function(chars){var self = TMP_15.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tIMAGINARY", self.$Complex(0, self.$Float(chars)))}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15));; + self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; self.te = p; p = $rb_minus(p, 1); - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) + value = (function() {if ($truthy(($ret_or_174 = self.escape))) { + return $ret_or_174 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) }; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((407)['$===']($case)) { + else if ((131)['$===']($case)) { - self.num_xfrm = $send(self, 'lambda', [], (TMP_16 = function(chars){var self = TMP_16.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tRATIONAL", self.$Rational(chars))}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16));; + self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$($nesting, 'Encoding'), 'UTF_8'));; self.te = p; p = $rb_minus(p, 1); - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_175 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - self.num_xfrm.$call(digits) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((408)['$===']($case)) { + return $ret_or_175 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_176 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_176 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_177 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_177 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_178 = self.escape))) { + return $ret_or_178 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((159)['$===']($case)) { - self.num_xfrm = $send(self, 'lambda', [], (TMP_17 = function(chars){var self = TMP_17.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tIMAGINARY", self.$Complex(0, self.$Rational(chars)))}, TMP_17.$$s = self, TMP_17.$$arity = 1, TMP_17));; + self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$($nesting, 'Encoding'), 'UTF_8'));; self.te = p; p = $rb_minus(p, 1); - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_179 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - self.num_xfrm.$call(digits) + return $ret_or_179 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_180 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_180 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_181 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_181 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_182 = self.escape))) { + return $ret_or_182 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((370)['$===']($case)) { + + self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr($$$($$($nesting, 'Encoding'), 'UTF_8'));; + + self.te = p; + p = $rb_minus(p, 1); + + value = (function() {if ($truthy(($ret_or_183 = self.escape))) { + return $ret_or_183 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) }; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((116)['$===']($case)) { - - self.escape = ""; - codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); - codepoint_s = $rb_plus(self.escape_s, 2); - (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$split(/[ \t]/), 'each', [], (TMP_18 = function(codepoint_str){var self = TMP_18.$$s || this, codepoint = nil; - if (self.escape == null) self.escape = nil; -if (codepoint_str == null) codepoint_str = nil; + else if ((130)['$===']($case)) { - codepoint = codepoint_str.$to_i(16); - if ($truthy($rb_ge(codepoint, 1114112))) { - - self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); - - Opal.brk(nil, $brk);}; - self.escape = $rb_plus(self.escape, codepoint.$chr(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8'))); - return (codepoint_s = $rb_plus(codepoint_s, $rb_plus(codepoint_str.$length(), 1)));}, TMP_18.$$s = self, TMP_18.$$brk = $brk, TMP_18.$$arity = 1, TMP_18)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -8012,34 +13451,39 @@ if (codepoint_str == null) codepoint_str = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($c = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $c))) { + if ($truthy((function() {if ($truthy(($ret_or_184 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_184 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_185 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_185 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_186 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_186 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_187 = self.escape))) { + return $ret_or_187 } else { - current_literal.$extend_string(($truthy($c = self.escape) ? $c : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((142)['$===']($case)) { - - self.escape = ""; - codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); - codepoint_s = $rb_plus(self.escape_s, 2); - (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$split(/[ \t]/), 'each', [], (TMP_19 = function(codepoint_str){var self = TMP_19.$$s || this, codepoint = nil; - if (self.escape == null) self.escape = nil; -if (codepoint_str == null) codepoint_str = nil; + else if ((158)['$===']($case)) { - codepoint = codepoint_str.$to_i(16); - if ($truthy($rb_ge(codepoint, 1114112))) { - - self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); - - Opal.brk(nil, $brk);}; - self.escape = $rb_plus(self.escape, codepoint.$chr(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8'))); - return (codepoint_s = $rb_plus(codepoint_s, $rb_plus(codepoint_str.$length(), 1)));}, TMP_19.$$s = self, TMP_19.$$brk = $brk, TMP_19.$$arity = 1, TMP_19)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -8047,58 +13491,61 @@ if (codepoint_str == null) codepoint_str = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($c = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $c))) { + if ($truthy((function() {if ($truthy(($ret_or_188 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_188 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_189 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_189 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_190 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_190 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_191 = self.escape))) { + return $ret_or_191 } else { - current_literal.$extend_string(($truthy($c = self.escape) ? $c : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((338)['$===']($case)) { - - self.escape = ""; - codepoints = self.$tok($rb_plus(self.escape_s, 2), $rb_minus(p, 1)); - codepoint_s = $rb_plus(self.escape_s, 2); - (function(){var $brk = Opal.new_brk(); try {return $send(codepoints.$split(/[ \t]/), 'each', [], (TMP_20 = function(codepoint_str){var self = TMP_20.$$s || this, codepoint = nil; - if (self.escape == null) self.escape = nil; -if (codepoint_str == null) codepoint_str = nil; + else if ((369)['$===']($case)) { - codepoint = codepoint_str.$to_i(16); - if ($truthy($rb_ge(codepoint, 1114112))) { - - self.$diagnostic("error", "unicode_point_too_large", nil, self.$range(codepoint_s, $rb_plus(codepoint_s, codepoint_str.$length()))); - - Opal.brk(nil, $brk);}; - self.escape = $rb_plus(self.escape, codepoint.$chr(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8'))); - return (codepoint_s = $rb_plus(codepoint_s, $rb_plus(codepoint_str.$length(), 1)));}, TMP_20.$$s = self, TMP_20.$$brk = $brk, TMP_20.$$arity = 1, TMP_20)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})();; + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($c = self.escape) ? $c : self.$tok($rb_plus(self.ts, 1))); + value = (function() {if ($truthy(($ret_or_192 = self.escape))) { + return $ret_or_192 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); if ($truthy(self['$version?'](18))) { - if ($truthy((($c = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { self.$emit("tCHARACTER", value) }; - self.cs = 766; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((100)['$===']($case)) { + else if ((135)['$===']($case)) { - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -8106,21 +13553,39 @@ if (codepoint_str == null) codepoint_str = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($d = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $d))) { + if ($truthy((function() {if ($truthy(($ret_or_193 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_193 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_194 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_194 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_195 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_195 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_196 = self.escape))) { + return $ret_or_196 } else { - current_literal.$extend_string(($truthy($d = self.escape) ? $d : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((126)['$===']($case)) { + else if ((163)['$===']($case)) { - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -8128,43 +13593,61 @@ if (codepoint_str == null) codepoint_str = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($d = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $d))) { + if ($truthy((function() {if ($truthy(($ret_or_197 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_197 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_198 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_198 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_199 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_199 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_200 = self.escape))) { + return $ret_or_200 } else { - current_literal.$extend_string(($truthy($d = self.escape) ? $d : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((322)['$===']($case)) { + else if ((374)['$===']($case)) { - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($d = self.escape) ? $d : self.$tok($rb_plus(self.ts, 1))); + value = (function() {if ($truthy(($ret_or_201 = self.escape))) { + return $ret_or_201 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); if ($truthy(self['$version?'](18))) { - if ($truthy((($d = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { self.$emit("tCHARACTER", value) }; - self.cs = 766; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((103)['$===']($case)) { + else if ((132)['$===']($case)) { - self.$diagnostic("fatal", "invalid_escape");; + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -8172,19 +13655,39 @@ if (codepoint_str == null) codepoint_str = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($e = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $e))) { + if ($truthy((function() {if ($truthy(($ret_or_202 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_202 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_203 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_203 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_204 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_204 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_205 = self.escape))) { + return $ret_or_205 } else { - current_literal.$extend_string(($truthy($e = self.escape) ? $e : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((129)['$===']($case)) { + else if ((160)['$===']($case)) { - self.$diagnostic("fatal", "invalid_escape");; + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -8192,41 +13695,61 @@ if (codepoint_str == null) codepoint_str = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($e = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $e))) { + if ($truthy((function() {if ($truthy(($ret_or_206 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_206 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_207 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_207 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_208 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_208 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_209 = self.escape))) { + return $ret_or_209 } else { - current_literal.$extend_string(($truthy($e = self.escape) ? $e : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((325)['$===']($case)) { + else if ((371)['$===']($case)) { - self.$diagnostic("fatal", "invalid_escape");; + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($e = self.escape) ? $e : self.$tok($rb_plus(self.ts, 1))); + value = (function() {if ($truthy(($ret_or_210 = self.escape))) { + return $ret_or_210 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); if ($truthy(self['$version?'](18))) { - if ($truthy((($e = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { self.$emit("tCHARACTER", value) }; - self.cs = 766; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((105)['$===']($case)) { + else if ((119)['$===']($case)) { - self.escape = "\u007F";; + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -8234,19 +13757,39 @@ if (codepoint_str == null) codepoint_str = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($f = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $f))) { + if ($truthy((function() {if ($truthy(($ret_or_211 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_211 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_212 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_212 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_213 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_213 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_214 = self.escape))) { + return $ret_or_214 } else { - current_literal.$extend_string(($truthy($f = self.escape) ? $f : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((131)['$===']($case)) { + else if ((147)['$===']($case)) { - self.escape = "\u007F";; + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -8254,2036 +13797,2782 @@ if (codepoint_str == null) codepoint_str = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($f = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $f))) { + if ($truthy((function() {if ($truthy(($ret_or_215 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_215 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_216 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_216 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_217 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_217 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_218 = self.escape))) { + return $ret_or_218 } else { - current_literal.$extend_string(($truthy($f = self.escape) ? $f : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((327)['$===']($case)) { + else if ((358)['$===']($case)) { - self.escape = "\u007F";; + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($f = self.escape) ? $f : self.$tok($rb_plus(self.ts, 1))); + value = (function() {if ($truthy(($ret_or_219 = self.escape))) { + return $ret_or_219 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); if ($truthy(self['$version?'](18))) { - if ($truthy((($f = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { self.$emit("tCHARACTER", value) }; - self.cs = 766; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((102)['$===']($case)) { + else if ((171)['$===']($case)) { - self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; + self.escape_s = p; + self.escape = nil;; - self.te = p; - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1); current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($g = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $g))) { + if ($truthy((function() {if ($truthy(($ret_or_220 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_220 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_221 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_221 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_222 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_222 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_223 = self.escape))) { + return $ret_or_223 } else { - current_literal.$extend_string(($truthy($g = self.escape) ? $g : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((128)['$===']($case)) { + else if ((176)['$===']($case)) { - self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; + self.escape_s = p; + self.escape = nil;; - self.te = p; - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1); current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($g = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $g))) { + if ($truthy((function() {if ($truthy(($ret_or_224 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_224 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_225 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_225 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_226 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_226 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_227 = self.escape))) { + return $ret_or_227 } else { - current_literal.$extend_string(($truthy($g = self.escape) ? $g : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((324)['$===']($case)) { + else if ((57)['$===']($case)) { - self.escape = self.$encode_escape(self.$tok(self.escape_s, p).$to_i(8)['$%'](256));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; + + self.newline_s = p;;} + else if ((30)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; + + tm = p;;} + else if ((32)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; + + tm = p;;} + else if ((34)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; + + tm = p;;} + else if ((213)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; - p = $rb_minus(p, 1); + p = $rb_minus(p, 1);;} + else if ((232)['$===']($case)) { - value = ($truthy($g = self.escape) ? $g : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($g = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 766; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; - p = $rb_plus(p, 1); - _goto_level = _out; + self.te = p; + p = $rb_minus(p, 1);;} + else if ((240)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((33)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; + + self.te = $rb_plus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; continue;;;;;} - else if ((118)['$===']($case)) { + else if ((271)['$===']($case)) { - self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($h = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $h))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($h = self.escape) ? $h : self.$tok()), self.ts, self.te) - };;;} - else if ((144)['$===']($case)) { + p = $rb_minus(p, 1);;} + else if ((263)['$===']($case)) { - self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($h = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $h))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($h = self.escape) ? $h : self.$tok()), self.ts, self.te) - };;;} - else if ((340)['$===']($case)) { + p = $rb_minus(p, 1); - self.escape = self.$encode_escape(self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16));; + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((282)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; - p = $rb_minus(p, 1); + p = $rb_minus(p, 1);;} + else if ((294)['$===']($case)) { - value = ($truthy($h = self.escape) ? $h : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($h = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 766; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((113)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);;} + else if ((290)['$===']($case)) { - self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8'));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($i = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $i))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($i = self.escape) ? $i : self.$tok()), self.ts, self.te) - };;;} - else if ((139)['$===']($case)) { + p = $rb_minus(p, 1); - self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8'));; + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((58)['$===']($case)) { - self.te = p; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; + + self.te = $rb_plus(p, 1); + + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); p = $rb_minus(p, 1); + self.cs = 781; - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($i = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $i))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($i = self.escape) ? $i : self.$tok()), self.ts, self.te) - };;;} - else if ((335)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((49)['$===']($case)) { - self.escape = self.$tok($rb_plus(self.escape_s, 1), p).$to_i(16).$chr(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8'));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; - self.te = p; - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1); - value = ($truthy($i = self.escape) ? $i : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($i = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) + self.$emit("tIDENTIFIER", ident_tok, ident_ts, ident_te); + p = $rb_minus(ident_te, 1); + if ($truthy((function() {if ($truthy(($ret_or_228 = (function() {if ($truthy(($ret_or_229 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](ident_tok) + } else { + return $ret_or_229 + }; return nil; })()))) { + return $rb_lt(self.version, 25) + } else { + return $ret_or_228 + }; return nil; })())) { + self.cs = 446 + } else { + self.cs = 505 }; - self.cs = 766; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((117)['$===']($case)) { + else if ((312)['$===']($case)) { - self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; - p = $rb_minus(p, 1); + p = $rb_minus(p, 1);;} + else if ((393)['$===']($case)) { - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($j = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $j))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($j = self.escape) ? $j : self.$tok()), self.ts, self.te) - };;;} - else if ((143)['$===']($case)) { + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; - self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; + self.te = p; + p = $rb_minus(p, 1);;} + else if ((389)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($j = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $j))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($j = self.escape) ? $j : self.$tok()), self.ts, self.te) + if ($truthy(self.in_kwarg)) { + + p = $rb_minus(p, 1); + + self.cs = 781; + _goto_level = _again; + continue;;; + } else { + + self.cs = 185; + _goto_level = _again; + continue;; };;;} - else if ((339)['$===']($case)) { + else if ((402)['$===']($case)) { - self.$diagnostic("fatal", "invalid_hex_escape", nil, self.$range($rb_minus(self.escape_s, 1), $rb_plus(p, 2)));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((399)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($j = self.escape) ? $j : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($j = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 766; - p = $rb_plus(p, 1); - _goto_level = _out; + self.cs = 185; + _goto_level = _again; continue;;;;;} - else if ((112)['$===']($case)) { + else if ((486)['$===']($case)) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($k = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $k))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($k = self.escape) ? $k : self.$tok()), self.ts, self.te) - };;;} - else if ((138)['$===']($case)) { + p = $rb_minus(p, 1);;} + else if ((418)['$===']($case)) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($k = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $k))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($k = self.escape) ? $k : self.$tok()), self.ts, self.te) - };;;} - else if ((334)['$===']($case)) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + self.cs = 961; + _goto_level = _again; + continue;;;;;} + else if ((101)['$===']($case)) { + + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((262)['$===']($case)) { + + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace()};; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($k = self.escape) ? $k : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($k = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) + if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + + self.lambda_stack.$pop(); + self.$emit("tLAMBEG", "{".$freeze(), $rb_minus(self.te, 1), self.te); + } else { + self.$emit("tLCURLY", "{".$freeze(), $rb_minus(self.te, 1), self.te) }; - self.cs = 766; + self.command_start = true; + self.paren_nest = $rb_plus(self.paren_nest, 1); + self.cs = 773; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((115)['$===']($case)) { + else if ((284)['$===']($case)) { - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace()};; self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($l = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $l))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($l = self.escape) ? $l : self.$tok()), self.ts, self.te) - };;;} - else if ((141)['$===']($case)) { - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + + self.lambda_stack.$pop(); + self.$emit("tLAMBEG", "{".$freeze()); + } else { + self.$emit("tLBRACE_ARG", "{".$freeze()) + }; + self.paren_nest = $rb_plus(self.paren_nest, 1); + self.command_start = true; + self.cs = 773; - self.te = p; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((384)['$===']($case)) { + self.cond.$push(false); + self.cmdarg.$push(false); current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($l = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $l))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($l = self.escape) ? $l : self.$tok()), self.ts, self.te) - };;;} - else if ((337)['$===']($case)) { - - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + if ($truthy(current_literal)) { + current_literal.$start_interp_brace()};; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($l = self.escape) ? $l : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($l = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) + if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + + self.lambda_stack.$pop(); + self.command_start = true; + self.$emit("tLAMBEG", "{".$freeze()); + } else { + self.$emit("tLBRACE", "{".$freeze()) }; - self.cs = 766; + self.paren_nest = $rb_plus(self.paren_nest, 1); p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((101)['$===']($case)) { + else if ((499)['$===']($case)) { - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + self.cond.$push(false); + self.cmdarg.$push(false); + current_literal = self.$literal(); + if ($truthy(current_literal)) { + current_literal.$start_interp_brace()};; self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($m = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $m))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + + self.lambda_stack.$pop(); + if (self.$tok()['$==']("{".$freeze())) { + self.$emit("tLAMBEG", "{".$freeze()) } else { - current_literal.$extend_string(($truthy($m = self.escape) ? $m : self.$tok()), self.ts, self.te) - };;;} - else if ((127)['$===']($case)) { - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + self.$emit("kDO_LAMBDA", "do".$freeze()) + }; + } else if (self.$tok()['$==']("{".$freeze())) { + self.$emit("tLCURLY", "{".$freeze()) + } else { + self.$emit_do() + }; + if (self.$tok()['$==']("{".$freeze())) { + self.paren_nest = $rb_plus(self.paren_nest, 1)}; + self.command_start = true; + self.cs = 773; - self.te = p; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((500)['$===']($case)) { current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($m = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $m))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) + if ($truthy(current_literal)) { + if ($truthy(current_literal.$end_interp_brace_and_try_closing())) { + + if ($truthy(self['$version?'](18, 19))) { + + self.$emit("tRCURLY", "}".$freeze(), $rb_minus(p, 1), p); + self.cond.$lexpop(); + self.cmdarg.$lexpop(); } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($m = self.escape) ? $m : self.$tok()), self.ts, self.te) - };;;} - else if ((323)['$===']($case)) { - - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + self.$emit("tSTRING_DEND", "}".$freeze(), $rb_minus(p, 1), p) + }; + if ($truthy(current_literal.$saved_herebody_s())) { + self.herebody_s = current_literal.$saved_herebody_s()}; + p = $rb_minus(p, 1); + self.cs = self.$next_state_for_literal(current_literal); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}}; + self.paren_nest = $rb_minus(self.paren_nest, 1);; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($m = self.escape) ? $m : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($m = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) + self.$emit_table($$($nesting, 'PUNCTUATION')); + if ($truthy($rb_lt(self.version, 24))) { + + self.cond.$lexpop(); + self.cmdarg.$lexpop(); + } else { + + self.cond.$pop(); + self.cmdarg.$pop(); }; - self.cs = 766; + if ($truthy((function() {if ($truthy(($ret_or_230 = self.$tok()['$==']("}".$freeze())))) { + return $ret_or_230 + } else { + return self.$tok()['$==']("]".$freeze()) + }; return nil; })())) { + if ($truthy($rb_ge(self.version, 25))) { + self.cs = 781 + } else { + self.cs = 511 + }}; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((150)['$===']($case)) { + else if ((60)['$===']($case)) { - self.escape_s = p; - self.escape = nil;; + self.sharp_s = $rb_minus(p, 1);; - self.te = $rb_plus(p, 1); + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());;} + else if ((64)['$===']($case)) { - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($n = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $n))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($n = self.escape) ? $n : self.$tok()), self.ts, self.te) - };;;} - else if ((155)['$===']($case)) { + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - self.escape_s = p; - self.escape = nil;; + self.newline_s = p;;} + else if ((216)['$===']($case)) { - self.te = $rb_plus(p, 1); + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($n = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $n))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($n = self.escape) ? $n : self.$tok()), self.ts, self.te) - };;;} - else if ((66)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);;} + else if ((231)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - self.newline_s = p;;} - else if ((30)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);;} + else if ((243)['$===']($case)) { + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((265)['$===']($case)) { + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1); + + + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((280)['$===']($case)) { + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((292)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - tm = p;;} - else if ((32)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);;} + else if ((318)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - tm = p;;} - else if ((34)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);;} + else if ((391)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - tm = p;;} - else if ((190)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1);;} + else if ((401)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; self.te = p; p = $rb_minus(p, 1);;} - else if ((209)['$===']($case)) { + else if ((422)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; self.te = p; p = $rb_minus(p, 1);;} - else if ((217)['$===']($case)) { + else if ((103)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; self.te = p; p = $rb_minus(p, 1);;} - else if ((33)['$===']($case)) { + else if ((237)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + tm = p;; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.ts, 1); + self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); + self.cs = self.$arg_or_cmdarg(cmd_state); + p = $rb_minus(tm, 1); - self.cs = 766; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;;} - else if ((248)['$===']($case)) { + else if ((332)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + tm = p;; self.te = p; - p = $rb_minus(p, 1);;} - else if ((240)['$===']($case)) { + p = $rb_minus(p, 1); - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 781; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((303)['$===']($case)) { + + tm = p;; self.te = p; p = $rb_minus(p, 1); - p = $rb_minus(p, 1); + p = $rb_minus(self.ts, 1); - self.cs = 766; + self.cs = 781; _goto_level = _again; continue;;;;;} - else if ((259)['$===']($case)) { + else if ((415)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + tm = p;; - self.te = p; - p = $rb_minus(p, 1);;} - else if ((271)['$===']($case)) { + $case = self.act; + if ((144)['$===']($case)) { - if ($truthy(self.herebody_s)) { + p = $rb_minus(self.te, 1);; + if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - p = self.herebody_s; - self.herebody_s = nil;};; + self.lambda_stack.$pop(); + if (self.$tok()['$==']("{".$freeze())) { + self.$emit("tLAMBEG", "{".$freeze()) + } else { + self.$emit("kDO_LAMBDA", "do".$freeze()) + }; + } else if (self.$tok()['$==']("{".$freeze())) { + self.$emit("tLCURLY", "{".$freeze()) + } else { + self.$emit_do() + }; + if (self.$tok()['$==']("{".$freeze())) { + self.paren_nest = $rb_plus(self.paren_nest, 1)}; + self.command_start = true; + self.cs = 773; - self.te = p; - p = $rb_minus(p, 1);;} - else if ((267)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((145)['$===']($case)) { - if ($truthy(self.herebody_s)) { + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + self.cs = 333; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((146)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); + self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); + self.cs = 773; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((147)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + self.cs = 543; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((148)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + self.command_start = true; + self.cs = 773; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((149)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + self.cs = 519; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((150)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + if ($truthy((function() {if ($truthy(($ret_or_231 = self['$version?'](18)))) { + return self.$tok()['$==']("not".$freeze()) + } else { + return $ret_or_231 + }; return nil; })())) { - p = self.herebody_s; - self.herebody_s = nil;};; + self.cs = 543; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = 474; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };} + else if ((151)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18))) { + + self.$emit("tIDENTIFIER"); + if ($truthy((function() {if ($truthy(($ret_or_232 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](self.$tok()) + } else { + return $ret_or_232 + }; return nil; })())) { + } else { + self.cs = self.$arg_or_cmdarg(cmd_state) + }; + } else { + self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) + }; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((152)['$===']($case)) { - self.cs = 766; - _goto_level = _again; - continue;;;;;} - else if ((287)['$===']($case)) { + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS')); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((153)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_233 = (function() {if ($truthy(($ret_or_234 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_234 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_233 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_235 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_235 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((155)['$===']($case)) { - if ($truthy(self.herebody_s)) { + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };} + else if ((156)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);;} - else if ((357)['$===']($case)) { + p = $rb_minus(self.te, 1);; + if ($truthy(self['$version?'](18, 19, 20))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) + } else { + + self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); + p = $rb_minus(p, 1); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };} + else if ((157)['$===']($case)) { - if ($truthy(self.herebody_s)) { + p = $rb_minus(self.te, 1);; + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; - self.te = p; - p = $rb_minus(p, 1);;} - else if ((353)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((159)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + p = $rb_minus(self.te, 1);; + self.$emit("tCONSTANT"); + self.cs = self.$arg_or_cmdarg(cmd_state); - self.te = p; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((163)['$===']($case)) { - if ($truthy(self.in_kwarg)) { + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if ($truthy((function() {if ($truthy(($ret_or_236 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](self.$tok()) + } else { + return $ret_or_236 + }; return nil; })())) { - p = $rb_minus(p, 1); + self.cs = 446; - self.cs = 766; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;; - } else { + } else { - self.cs = 165; - _goto_level = _again; - continue;; - };;;} - else if ((366)['$===']($case)) { - - if ($truthy(self.herebody_s)) { + self.cs = self.$arg_or_cmdarg(cmd_state); - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((363)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };} + else if ((164)['$===']($case)) { - if ($truthy(self.herebody_s)) { + p = $rb_minus(self.te, 1);; + if (tm['$=='](self.te)) { + self.$emit("tFID") + } else { - p = self.herebody_s; - self.herebody_s = nil;};; + self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); + }; + self.cs = 474; - self.te = p; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((166)['$===']($case)) { + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 773; - self.cs = 165; - _goto_level = _again; - continue;;;;;} - else if ((439)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((167)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 543; - self.te = p; - p = $rb_minus(p, 1);;} - else if ((381)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;};;} + else if ((238)['$===']($case)) { - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; + tm = $rb_minus(p, 2);; self.te = p; p = $rb_minus(p, 1); + self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); + self.cs = self.$arg_or_cmdarg(cmd_state); + p = $rb_minus(tm, 1); - self.cs = 939; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;;} - else if ((84)['$===']($case)) { - - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((239)['$===']($case)) { + else if ((333)['$===']($case)) { - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; + tm = $rb_minus(p, 2);; self.te = p; p = $rb_minus(p, 1); - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - - p = $rb_minus(self.ts, 1); - - self.cs = 766; - _goto_level = _again; - continue;;; - } else { - - self.$emit("tLCURLY", "{".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 758; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;;} - else if ((261)['$===']($case)) { + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 781; - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((305)['$===']($case)) { + + tm = $rb_minus(p, 2);; self.te = p; p = $rb_minus(p, 1); - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - - self.lambda_stack.$pop(); - self.$emit("tLAMBEG", "{".$freeze()); - } else { - self.$emit("tLBRACE_ARG", "{".$freeze()) - }; - self.cs = 758;;;} - else if ((349)['$===']($case)) { + p = $rb_minus(self.ts, 1); - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((416)['$===']($case)) { + + tm = $rb_minus(p, 2);; self.te = p; p = $rb_minus(p, 1); - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { + if (tm['$=='](self.te)) { + self.$emit("tFID") + } else { - self.lambda_stack.$pop(); - self.$emit("tLAMBEG", "{".$freeze()); - } else { - self.$emit("tLBRACE", "{".$freeze()) + self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); }; + self.cs = 474; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((451)['$===']($case)) { + else if ((334)['$===']($case)) { - self.cond.$push(false); - self.cmdarg.$push(false); - current_literal = self.$literal(); - if ($truthy(current_literal)) { - current_literal.$start_interp_brace()};; + tm = p;; self.te = p; p = $rb_minus(p, 1); - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - - self.lambda_stack.$pop(); - if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLAMBEG", "{".$freeze()) - } else { - self.$emit("kDO_LAMBDA", "do".$freeze()) - }; - } else if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLCURLY", "{".$freeze()) - } else { - self.$emit_do() - }; - self.cs = 758; + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((452)['$===']($case)) { + else if ((306)['$===']($case)) { - current_literal = self.$literal(); - if ($truthy(current_literal)) { - if ($truthy(current_literal.$end_interp_brace_and_try_closing())) { - - if ($truthy(self['$version?'](18, 19))) { - self.$emit("tRCURLY", "}".$freeze(), $rb_minus(p, 1), p) - } else { - self.$emit("tSTRING_DEND", "}".$freeze(), $rb_minus(p, 1), p) - }; - if ($truthy(current_literal.$saved_herebody_s())) { - self.herebody_s = current_literal.$saved_herebody_s()}; - p = $rb_minus(p, 1); - self.cs = self.$stack_pop(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}};; + tm = p;; + + self.te = p; + p = $rb_minus(p, 1); + + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((335)['$===']($case)) { + + tm = $rb_minus(p, 2);; self.te = p; p = $rb_minus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - if ($truthy(Opal.const_get_relative($nesting, 'RBRACE_OR_RBRACK')['$include?'](self.$tok()))) { - self.cs = 505}; + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((68)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());;} - else if ((71)['$===']($case)) { + else if ((307)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + tm = $rb_minus(p, 2);; - self.newline_s = p;;} - else if ((193)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + p = $rb_minus(self.ts, 1); - self.te = p; - p = $rb_minus(p, 1);;} - else if ((208)['$===']($case)) { + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((339)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + tm = $rb_minus(p, 2);; self.te = p; - p = $rb_minus(p, 1);;} - else if ((220)['$===']($case)) { + p = $rb_minus(p, 1); - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 781; - self.te = p; - p = $rb_minus(p, 1);;} - else if ((242)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((310)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + tm = $rb_minus(p, 2);; self.te = p; p = $rb_minus(p, 1); + p = $rb_minus(self.ts, 1); - self.cs = 766; + self.cs = 781; _goto_level = _again; continue;;;;;} - else if ((257)['$===']($case)) { - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((269)['$===']($case)) { + else if ((338)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + tm = $rb_minus(p, 2);; self.te = p; - p = $rb_minus(p, 1);;} - else if ((293)['$===']($case)) { + p = $rb_minus(p, 1); - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 781; - self.te = p; - p = $rb_minus(p, 1);;} - else if ((355)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((309)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + tm = $rb_minus(p, 2);; - self.te = p; - p = $rb_minus(p, 1);;} - else if ((365)['$===']($case)) { + $case = self.act; + if ((98)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + p = $rb_minus(self.te, 1);; + self.$emit("tUNARY_NUM", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 781; - self.te = p; - p = $rb_minus(p, 1);;} - else if ((385)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((105)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + p = $rb_minus(self.te, 1);; + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)));} + else if ((116)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1);;} - else if ((86)['$===']($case)) { + p = $rb_minus(self.te, 1);; + if ($truthy($rb_ge(self.version, 27))) { + + self.$emit("tPIPE", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = $rb_minus(p, 1); + self.cs = 543; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + p = $rb_minus(p, 2); + + self.cs = 781; + _goto_level = _again; + continue;;; + };} + else if ((120)['$===']($case)) { - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'PUNCTUATION_BEGIN')); - self.te = p; - p = $rb_minus(p, 1);;} - else if ((214)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((121)['$===']($case)) { - tm = p;; + p = $rb_minus(self.te, 1);; + self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 519; - self.te = p; - p = $rb_minus(p, 1); + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;} + else if ((122)['$===']($case)) { - self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); - self.cs = self.$arg_or_cmdarg(); - p = $rb_minus(tm, 1); + p = $rb_minus(self.te, 1);; + self.$emit_table($$($nesting, 'KEYWORDS_BEGIN')); + self.command_start = true; + self.cs = 773; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;;;} - else if ((305)['$===']($case)) { + continue;;;} + else if ((126)['$===']($case)) { - tm = p;; + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;} + else if ((127)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + self.$emit("tIDENTIFIER"); + if ($truthy((function() {if ($truthy(($ret_or_237 = self.static_env['$nil?']()['$!']()))) { + return self.static_env['$declared?'](self.$tok()) + } else { + return $ret_or_237 + }; return nil; })())) { + + self.cs = 446; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$arg_or_cmdarg(cmd_state); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + };} + else if ((131)['$===']($case)) { + + p = $rb_minus(self.te, 1);; + p = $rb_minus(self.ts, 1); + + self.cs = 781; + _goto_level = _again; + continue;;;};;} + else if ((336)['$===']($case)) { + + tm = $rb_minus(p, 3);; self.te = p; p = $rb_minus(p, 1); self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); p = $rb_minus(tm, 1); - self.cs = 766; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((278)['$===']($case)) { + else if ((308)['$===']($case)) { - tm = p;; + tm = $rb_minus(p, 3);; self.te = p; p = $rb_minus(p, 1); p = $rb_minus(self.ts, 1); - self.cs = 766; + self.cs = 781; _goto_level = _again; continue;;;;;} - else if ((378)['$===']($case)) { - - tm = p;; - - $case = self.act; - if ((132)['$===']($case)) { + else if ((337)['$===']($case)) { - p = $rb_minus(self.te, 1);; - if (self.lambda_stack.$last()['$=='](self.paren_nest)) { - - self.lambda_stack.$pop(); - if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLAMBEG", "{".$freeze()) - } else { - self.$emit("kDO_LAMBDA", "do".$freeze()) - }; - } else if (self.$tok()['$==']("{".$freeze())) { - self.$emit("tLCURLY", "{".$freeze()) - } else { - self.$emit_do() - }; - self.cs = 758; + tm = $rb_minus(p, 2);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((133)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 327; + self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + p = $rb_minus(tm, 1); + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((134)['$===']($case)) { + continue;;;;;} + else if ((481)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit("kCLASS", "class".$freeze(), self.ts, $rb_plus(self.ts, 5)); - self.$emit("tLSHFT", "<<".$freeze(), $rb_minus(self.te, 2), self.te); - self.cs = 758; + tm = $rb_minus(p, 2);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((135)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 537; + self.$emit("tCONSTANT", self.$tok(self.ts, tm), self.ts, tm); + p = $rb_minus(tm, 1); p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((136)['$===']($case)) { + continue;;;;;} + else if ((261)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 758; + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((137)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - self.cs = 513; + self.$emit("tLBRACK", "[".$freeze(), $rb_minus(self.te, 1), self.te); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((138)['$===']($case)) { + continue;;;;;} + else if ((377)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); - if ($truthy(($truthy($n = self['$version?'](18)) ? self.$tok()['$==']("not".$freeze()) : $n))) { - - self.cs = 537; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - self.cs = 468; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((139)['$===']($case)) { + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1);; - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18))) { - - self.$emit("tIDENTIFIER"); - if ($truthy(($truthy($n = self.static_env['$nil?']()['$!']()) ? self.static_env['$declared?'](self.$tok()) : $n))) { - } else { - self.cs = self.$arg_or_cmdarg() - }; - } else { - self.$emit("k__ENCODING__", "__ENCODING__".$freeze()) - }; + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLBRACK", "[".$freeze()); p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((140)['$===']($case)) { + continue;;;;;} + else if ((484)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS')); + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLBRACK2", "[".$freeze()); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((141)['$===']($case)) { + continue;;;;;} + else if ((487)['$===']($case)) { - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($n = ($truthy($o = digits['$empty?']()) ? self.num_base['$=='](8) : $o)) ? self['$version?'](18) : $n))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($n = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { + self.paren_nest = $rb_minus(self.paren_nest, 1);; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit_table($$($nesting, 'PUNCTUATION')); + if ($truthy($rb_lt(self.version, 24))) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + self.cond.$lexpop(); + self.cmdarg.$lexpop(); + } else { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) + self.cond.$pop(); + self.cmdarg.$pop(); }; + if ($truthy((function() {if ($truthy(($ret_or_238 = self.$tok()['$==']("}".$freeze())))) { + return $ret_or_238 + } else { + return self.$tok()['$==']("]".$freeze()) + }; return nil; })())) { + if ($truthy($rb_ge(self.version, 25))) { + self.cs = 781 + } else { + self.cs = 511 + }}; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((143)['$===']($case)) { + continue;;;;;} + else if ((253)['$===']($case)) { - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true};; + + self.te = p; + p = $rb_minus(p, 1); + + if ($truthy(self['$version?'](18))) { - self.$emit("tINTEGER", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_i(), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); + self.$emit("tLPAREN2", "(".$freeze(), $rb_minus(self.te, 1), self.te); + self.cs = 773; p = $rb_plus(p, 1); _goto_level = _out; continue;;; - };} - else if ((144)['$===']($case)) { - - p = $rb_minus(self.te, 1);; - if ($truthy(self['$version?'](18, 19, 20))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": self.$tok($rb_minus(self.te, 1), self.te)}), self.$range($rb_minus(self.te, 1), self.te)) - } else { + } else { - self.$emit("tFLOAT", self.$tok(self.ts, $rb_minus(self.te, 1)).$to_f(), self.ts, $rb_minus(self.te, 1)); - p = $rb_minus(p, 1); + self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; continue;;; - };} - else if ((145)['$===']($case)) { + };;;} + else if ((266)['$===']($case)) { - p = $rb_minus(self.te, 1);; - digits = self.$tok(self.ts, self.num_suffix_s); - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) - }; + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true};; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((147)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - p = $rb_minus(self.te, 1);; - self.$emit("tCONSTANT"); - self.cs = self.$arg_or_cmdarg(); + self.$emit("tLPAREN2", "(".$freeze()); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; - continue;;;} - else if ((151)['$===']($case)) { + continue;;;;;} + else if ((274)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy(($truthy($n = self.static_env['$nil?']()['$!']()) ? self.static_env['$declared?'](self.$tok()) : $n))) { + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true};; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); + if ($truthy(self['$version?'](18))) { - self.cs = 440; + self.cs = 773; p = $rb_plus(p, 1); _goto_level = _out; continue;;; - } else { + } else { - self.cs = self.$arg_or_cmdarg(); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; continue;;; - };} - else if ((152)['$===']($case)) { + };;;} + else if ((323)['$===']($case)) { - p = $rb_minus(self.te, 1);; - if (tm['$=='](self.te)) { - self.$emit("tFID") - } else { - - self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); - }; - self.cs = 468; + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true};; + + self.te = p; + p = $rb_minus(p, 1); + + self.$emit("tLPAREN", "(".$freeze()); p = $rb_plus(p, 1); _goto_level = _out; - continue;;;};;} - else if ((215)['$===']($case)) { + continue;;;;;} + else if ((428)['$===']($case)) { - tm = $rb_minus(p, 2);; + self.cond.$push(false); + self.cmdarg.$push(false); + self.paren_nest = $rb_plus(self.paren_nest, 1); + if ($truthy(self['$version?'](18))) { + self.command_start = true};; self.te = p; p = $rb_minus(p, 1); - self.$emit("tFID", self.$tok(self.ts, tm), self.ts, tm); - self.cs = self.$arg_or_cmdarg(); - p = $rb_minus(tm, 1); + self.$emit_table($$($nesting, 'PUNCTUATION')); + self.cs = 543; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((306)['$===']($case)) { + else if ((429)['$===']($case)) { - tm = $rb_minus(p, 2);; + self.paren_nest = $rb_minus(self.paren_nest, 1);; self.te = p; p = $rb_minus(p, 1); - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 766; + self.$emit_table($$($nesting, 'PUNCTUATION')); + if ($truthy($rb_lt(self.version, 24))) { + + self.cond.$lexpop(); + self.cmdarg.$lexpop(); + } else { + + self.cond.$pop(); + self.cmdarg.$pop(); + }; + if ($truthy((function() {if ($truthy(($ret_or_239 = self.$tok()['$==']("}".$freeze())))) { + return $ret_or_239 + } else { + return self.$tok()['$==']("]".$freeze()) + }; return nil; })())) { + if ($truthy($rb_ge(self.version, 25))) { + self.cs = 781 + } else { + self.cs = 511 + }}; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((280)['$===']($case)) { + else if ((71)['$===']($case)) { - tm = $rb_minus(p, 2);; + heredoc_e = p;; + + self.newline_s = p;;} + else if ((347)['$===']($case)) { + + new_herebody_s = p;; self.te = p; p = $rb_minus(p, 1); - p = $rb_minus(self.ts, 1); - - self.cs = 766; - _goto_level = _again; - continue;;;;;} - else if ((379)['$===']($case)) { + self.$tok(self.ts, heredoc_e)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/m); + indent = (function() {if ($truthy(($ret_or_240 = (($b = $gvars['~']) === nil ? nil : $b['$[]'](1))['$empty?']()['$!']()))) { + return $ret_or_240 + } else { + return (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!']() + }; return nil; })(); + dedent_body = (($b = $gvars['~']) === nil ? nil : $b['$[]'](2))['$empty?']()['$!'](); + type = (function() {if ($truthy((($b = $gvars['~']) === nil ? nil : $b['$[]'](3))['$empty?']())) { + return "<<\"".$freeze() + } else { + + return $rb_plus("<<".$freeze(), (($b = $gvars['~']) === nil ? nil : $b['$[]'](3))); + }; return nil; })(); + delimiter = (($b = $gvars['~']) === nil ? nil : $b['$[]'](4)); + if ($truthy($rb_ge(self.version, 27))) { + if ($truthy((function() {if ($truthy(($ret_or_241 = $rb_gt(delimiter.$count("\n"), 0)))) { + return $ret_or_241 + } else { + return $rb_gt(delimiter.$count("\r"), 0) + }; return nil; })())) { + self.$diagnostic("error", "unterminated_heredoc_id", nil, self.$range(self.ts, $rb_plus(self.ts, 1)))} + } else if ($truthy($rb_ge(self.version, 24))) { + if ($truthy($rb_gt(delimiter.$count("\n"), 0))) { + if ($truthy(delimiter['$end_with?']("\n"))) { + + self.$diagnostic("warning", "heredoc_id_ends_with_nl", nil, self.$range(self.ts, $rb_plus(self.ts, 1))); + delimiter = delimiter.$rstrip(); + } else { + self.$diagnostic("fatal", "heredoc_id_has_newline", nil, self.$range(self.ts, $rb_plus(self.ts, 1))) + }}}; + if ($truthy((function() {if ($truthy(($ret_or_242 = dedent_body))) { + return self['$version?'](18, 19, 20, 21, 22) + } else { + return $ret_or_242 + }; return nil; })())) { + + self.$emit("tLSHFT", "<<".$freeze(), self.ts, $rb_plus(self.ts, 2)); + p = $rb_plus(self.ts, 1); + self.cs = 543; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + self.cs = self.$push_literal(type, delimiter, self.ts, heredoc_e, indent, dedent_body); + self.herebody_s = (function() {if ($truthy(($ret_or_243 = self.herebody_s))) { + return $ret_or_243 + } else { + return new_herebody_s + }; return nil; })(); + p = $rb_minus(self.herebody_s, 1); + };;;} + else if ((342)['$===']($case)) { - tm = $rb_minus(p, 2);; + tm = $rb_minus(p, 1); + diag_msg = "ivar_name";; self.te = p; p = $rb_minus(p, 1); - if (tm['$=='](self.te)) { - self.$emit("tFID") - } else { + if ($truthy($rb_ge(self.version, 27))) { + self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) + } else { - self.$emit("tIDENTIFIER", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); + self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = self.ts; }; - self.cs = 468; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((307)['$===']($case)) { + else if ((345)['$===']($case)) { - tm = p;; + tm = $rb_minus(p, 2); + diag_msg = "cvar_name";; self.te = p; p = $rb_minus(p, 1); - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 766; + if ($truthy($rb_ge(self.version, 27))) { + self.$diagnostic("error", diag_msg, $hash2(["name"], {"name": self.$tok(tm, self.te)}), self.$range(tm, self.te)) + } else { + + self.$emit("tCOLON", self.$tok(self.ts, $rb_plus(self.ts, 1)), self.ts, $rb_plus(self.ts, 1)); + p = self.ts; + }; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((281)['$===']($case)) { + else if ((353)['$===']($case)) { - tm = p;; + self.escape = nil;; self.te = p; p = $rb_minus(p, 1); - p = $rb_minus(self.ts, 1); + value = (function() {if ($truthy(($ret_or_244 = self.escape))) { + return $ret_or_244 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; - self.cs = 766; - _goto_level = _again; + p = $rb_plus(p, 1); + _goto_level = _out; continue;;;;;} - else if ((308)['$===']($case)) { + else if ((380)['$===']($case)) { - tm = $rb_minus(p, 2);; + tm = p;; self.te = p; p = $rb_minus(p, 1); - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); + self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); p = $rb_minus(tm, 1); - self.cs = 766; + self.cs = 519; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((282)['$===']($case)) { + else if ((471)['$===']($case)) { - tm = $rb_minus(p, 2);; + self.num_base = 16; + self.num_digits_s = p;; - self.te = p; - p = $rb_minus(p, 1); + self.num_suffix_s = p;;} + else if ((465)['$===']($case)) { - p = $rb_minus(self.ts, 1); + self.num_base = 10; + self.num_digits_s = p;; - self.cs = 766; - _goto_level = _again; - continue;;;;;} - else if ((312)['$===']($case)) { + self.num_suffix_s = p;;} + else if ((468)['$===']($case)) { - tm = $rb_minus(p, 2);; + self.num_base = 8; + self.num_digits_s = p;; - self.te = p; - p = $rb_minus(p, 1); + self.num_suffix_s = p;;} + else if ((462)['$===']($case)) { + + self.num_base = 2; + self.num_digits_s = p;; + + self.num_suffix_s = p;;} + else if ((477)['$===']($case)) { + + self.num_base = 10; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;;} + else if ((440)['$===']($case)) { + + self.num_base = 8; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;;} + else if ((478)['$===']($case)) { + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], ($$27 = function(chars){var self = $$27.$$s == null ? this : $$27.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$27.$$s = self, $$27.$$arity = 1, $$27));;} + else if ((89)['$===']($case)) { + + tm = p;; + + self.te = $rb_plus(p, 1); - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); p = $rb_minus(tm, 1); - self.cs = 766; - p = $rb_plus(p, 1); - _goto_level = _out; + self.cs = 781; + _goto_level = _again; continue;;;;;} + else if ((8)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.newline_s = p;;} + else if ((444)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.num_suffix_s = p;;} + else if ((222)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 43;;} + else if ((209)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 44;;} + else if ((205)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 45;;} + else if ((26)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 71;;} + else if ((255)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 72;;} + else if ((27)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 77;;} + else if ((248)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 78;;} + else if ((275)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 84;;} + else if ((45)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 85;;} + else if ((296)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 92;;} else if ((285)['$===']($case)) { - tm = $rb_minus(p, 2);; + self.te = $rb_plus(p, 1);; - self.te = p; - p = $rb_minus(p, 1); + self.act = 93;;} + else if ((69)['$===']($case)) { - p = $rb_minus(self.ts, 1); + self.te = $rb_plus(p, 1);; - self.cs = 766; - _goto_level = _again; - continue;;;;;} - else if ((311)['$===']($case)) { + self.act = 105;;} + else if ((385)['$===']($case)) { - tm = $rb_minus(p, 2);; + self.te = $rb_plus(p, 1);; - self.te = p; - p = $rb_minus(p, 1); + self.act = 116;;} + else if ((299)['$===']($case)) { - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 766; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((284)['$===']($case)) { + self.act = 120;;} + else if ((379)['$===']($case)) { - tm = $rb_minus(p, 2);; + self.te = $rb_plus(p, 1);; - $case = self.act; - if ((111)['$===']($case)) { + self.act = 121;;} + else if ((378)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION_BEGIN')); + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((112)['$===']($case)) { + self.act = 122;;} + else if ((74)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 513; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((113)['$===']($case)) { + self.act = 126;;} + else if ((297)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit_table(Opal.const_get_relative($nesting, 'KEYWORDS_BEGIN')); - self.cs = 758; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;} - else if ((115)['$===']($case)) { + self.act = 127;;} + else if ((300)['$===']($case)) { - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); + self.te = $rb_plus(p, 1);; - self.cs = 766; - _goto_level = _again; - continue;;;} - else if ((116)['$===']($case)) { + self.act = 131;;} + else if ((495)['$===']($case)) { - p = $rb_minus(self.te, 1);; - self.$emit("tIDENTIFIER"); - if ($truthy(($truthy($n = self.static_env['$nil?']()['$!']()) ? self.static_env['$declared?'](self.$tok()) : $n))) { - - self.cs = 440; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - self.cs = self.$arg_or_cmdarg(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };} - else if ((119)['$===']($case)) { + self.te = $rb_plus(p, 1);; - p = $rb_minus(self.te, 1);; - p = $rb_minus(self.ts, 1); + self.act = 144;;} + else if ((490)['$===']($case)) { - self.cs = 766; - _goto_level = _again; - continue;;;};;} - else if ((309)['$===']($case)) { + self.te = $rb_plus(p, 1);; - tm = $rb_minus(p, 3);; + self.act = 145;;} + else if ((498)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1);; + + self.act = 147;;} + else if ((491)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 148;;} + else if ((492)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 149;;} + else if ((497)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 150;;} + else if ((489)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 151;;} + else if ((483)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 152;;} + else if ((409)['$===']($case)) { + + self.te = $rb_plus(p, 1);; + + self.act = 153;;} + else if ((442)['$===']($case)) { - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 766; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((283)['$===']($case)) { + self.act = 156;;} + else if ((81)['$===']($case)) { - tm = $rb_minus(p, 3);; + self.te = $rb_plus(p, 1);; - self.te = p; - p = $rb_minus(p, 1); + self.act = 157;;} + else if ((412)['$===']($case)) { - p = $rb_minus(self.ts, 1); + self.te = $rb_plus(p, 1);; - self.cs = 766; - _goto_level = _again; - continue;;;;;} - else if ((310)['$===']($case)) { + self.act = 159;;} + else if ((403)['$===']($case)) { - tm = $rb_minus(p, 2);; + self.te = $rb_plus(p, 1);; - self.te = p; - p = $rb_minus(p, 1); + self.act = 163;;} + else if ((414)['$===']($case)) { - self.$emit("tSYMBOL", self.$tok($rb_plus(self.ts, 1), tm), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 766; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((434)['$===']($case)) { + self.act = 164;;} + else if ((407)['$===']($case)) { - tm = $rb_minus(p, 2);; + self.te = $rb_plus(p, 1);; - self.te = p; - p = $rb_minus(p, 1); + self.act = 166;;} + else if ((413)['$===']($case)) { - self.$emit("tCONSTANT", self.$tok(self.ts, tm), self.ts, tm); - p = $rb_minus(tm, 1); + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((238)['$===']($case)) { + self.act = 167;;} + else if ((87)['$===']($case)) { - self.cond.$push(false); - self.cmdarg.$push(false);; + self.te = $rb_plus(p, 1);; - self.te = p; - p = $rb_minus(p, 1); + self.act = 180;;} + else if ((502)['$===']($case)) { - self.$emit("tLBRACK", "[".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 537; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((341)['$===']($case)) { + self.act = 182;;} + else if ((177)['$===']($case)) { - self.cond.$push(false); - self.cmdarg.$push(false);; + self.newline_s = p;; - self.te = p; - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1); - self.$emit("tLBRACK", "[".$freeze()); + current_literal = self.$literal(); + if (self.te['$=='](pe)) { + self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; + if ($truthy(current_literal['$heredoc?']())) { + + line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); + if ($truthy(self['$version?'](18, 19, 20))) { + line = line.$gsub(/\r.*$/, "".$freeze())}; + if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { + + self.herebody_s = self.te; + p = $rb_minus(current_literal.$heredoc_e(), 1); + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;; + } else { + + current_literal.$infer_indent_level(line); + self.herebody_s = self.te; + }; + } else { + + if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { + + self.cs = self.$pop_literal(); + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;}; + if ($truthy(self.herebody_s)) { + + p = $rb_minus(self.herebody_s, 1); + self.herebody_s = nil;}; + }; + if ($truthy((function() {if ($truthy(($ret_or_245 = current_literal['$words?']()))) { + return self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() + } else { + return $ret_or_245 + }; return nil; })())) { + current_literal.$extend_space(self.ts, self.te) + } else { + + current_literal.$extend_string(self.$tok(), self.ts, self.te); + current_literal.$flush_string(); + };;; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((437)['$===']($case)) { + self.escape_s = p; + self.escape = nil;;} + else if ((124)['$===']($case)) { - self.cond.$push(false); - self.cmdarg.$push(false);; + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_246 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_247 = codepoint['$=='](117)))) { + return $ret_or_247 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_246 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; self.te = p; p = $rb_minus(p, 1); - self.$emit("tLBRACK2", "[".$freeze()); - self.cs = 537; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_248 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_248 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_249 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_249 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_250 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_250 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_251 = self.escape))) { + return $ret_or_251 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((152)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((230)['$===']($case)) { + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_252 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_253 = codepoint['$=='](117)))) { + return $ret_or_253 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_252 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; self.te = p; p = $rb_minus(p, 1); - if ($truthy(self['$version?'](18))) { - - self.$emit("tLPAREN2", "(".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 758; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_254 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - - self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); - self.cs = 537; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + return $ret_or_254 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_255 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_255 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_256 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_256 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_257 = self.escape))) { + return $ret_or_257 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((243)['$===']($case)) { + else if ((363)['$===']($case)) { - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_258 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_259 = codepoint['$=='](117)))) { + return $ret_or_259 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_258 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; self.te = p; p = $rb_minus(p, 1); - self.$emit("tLPAREN2", "(".$freeze()); - self.cs = 537; + value = (function() {if ($truthy(($ret_or_260 = self.escape))) { + return $ret_or_260 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((251)['$===']($case)) { - - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; - - self.te = p; - p = $rb_minus(p, 1); + else if ((129)['$===']($case)) { - self.$emit("tLPAREN_ARG", "(".$freeze(), $rb_minus(self.te, 1), self.te); - if ($truthy(self['$version?'](18))) { - - self.cs = 758; + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_261 = $rb_ge(self.version, 30)))) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + if ($truthy(($ret_or_262 = codepoint['$=='](117)))) { + return $ret_or_262 } else { - - self.cs = 537; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - };;;} - else if ((298)['$===']($case)) { + return codepoint['$=='](85) + }; + } else { + return $ret_or_261 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; self.te = p; p = $rb_minus(p, 1); - self.$emit("tLPAREN", "(".$freeze()); + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_263 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_263 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_264 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_264 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_265 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_265 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_266 = self.escape))) { + return $ret_or_266 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((157)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((390)['$===']($case)) { + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_267 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_268 = codepoint['$=='](117)))) { + return $ret_or_268 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_267 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - self.cond.$push(false); - self.cmdarg.$push(false); - self.paren_nest = $rb_plus(self.paren_nest, 1);; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; self.te = p; p = $rb_minus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cs = 537; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_269 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_269 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_270 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_270 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_271 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_271 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_272 = self.escape))) { + return $ret_or_272 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((368)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((391)['$===']($case)) { + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_273 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_274 = codepoint['$=='](117)))) { + return $ret_or_274 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_273 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - self.paren_nest = $rb_minus(self.paren_nest, 1);; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; self.te = p; p = $rb_minus(p, 1); - self.$emit_table(Opal.const_get_relative($nesting, 'PUNCTUATION')); - self.cond.$lexpop(); - self.cmdarg.$lexpop(); - if ($truthy(Opal.const_get_relative($nesting, 'RBRACE_OR_RBRACK')['$include?'](self.$tok()))) { - self.cs = 505}; + value = (function() {if ($truthy(($ret_or_275 = self.escape))) { + return $ret_or_275 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((56)['$===']($case)) { - - heredoc_e = p;; + else if ((122)['$===']($case)) { - self.newline_s = p;;} - else if ((313)['$===']($case)) { + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if ($truthy((function() {if ($truthy(($ret_or_276 = $rb_ge(self.version, 27)))) { + + if ($truthy(($ret_or_277 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { + return $ret_or_277 + } else { + return $range(14, 31, false)['$include?'](self.escape.$ord()) + }; + } else { + return $ret_or_276 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")};; - new_herebody_s = p;; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; self.te = p; p = $rb_minus(p, 1); - self.$tok(self.ts, heredoc_e)['$=~'](/^<<(-?)(~?)(["'`]?)(.*)\3$/); - indent = ($truthy($n = (($o = $gvars['~']) === nil ? nil : $o['$[]'](1))['$empty?']()['$!']()) ? $n : (($o = $gvars['~']) === nil ? nil : $o['$[]'](2))['$empty?']()['$!']()); - dedent_body = (($n = $gvars['~']) === nil ? nil : $n['$[]'](2))['$empty?']()['$!'](); - type = (function() {if ($truthy((($n = $gvars['~']) === nil ? nil : $n['$[]'](3))['$empty?']())) { - return "<<\"".$freeze() + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_278 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - - return $rb_plus("<<".$freeze(), (($n = $gvars['~']) === nil ? nil : $n['$[]'](3))); - }; return nil; })(); - delimiter = (($n = $gvars['~']) === nil ? nil : $n['$[]'](4)); - if ($truthy(($truthy($n = dedent_body) ? self['$version?'](18, 19, 20, 21, 22) : $n))) { - - self.$emit("tLSHFT", "<<".$freeze(), self.ts, $rb_plus(self.ts, 2)); - p = $rb_plus(self.ts, 1); - self.cs = 537; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; + return $ret_or_278 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) } else { - - self.cs = self.$push_literal(type, delimiter, self.ts, heredoc_e, indent, dedent_body); - self.herebody_s = ($truthy($n = self.herebody_s) ? $n : new_herebody_s); - p = $rb_minus(self.herebody_s, 1); + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_279 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_279 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_280 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_280 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_281 = self.escape))) { + return $ret_or_281 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((318)['$===']($case)) { + else if ((150)['$===']($case)) { - self.escape = nil;; + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if ($truthy((function() {if ($truthy(($ret_or_282 = $rb_ge(self.version, 27)))) { + + if ($truthy(($ret_or_283 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { + return $ret_or_283 + } else { + return $range(14, 31, false)['$include?'](self.escape.$ord()) + }; + } else { + return $ret_or_282 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")};; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($n = self.escape) ? $n : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($n = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_284 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_284 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_285 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_285 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_286 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_286 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_287 = self.escape))) { + return $ret_or_287 } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 766; + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((361)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((345)['$===']($case)) { + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if ($truthy((function() {if ($truthy(($ret_or_288 = $rb_ge(self.version, 27)))) { + + if ($truthy(($ret_or_289 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { + return $ret_or_289 + } else { + return $range(14, 31, false)['$include?'](self.escape.$ord()) + }; + } else { + return $ret_or_288 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")};; - tm = p;; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; self.te = p; p = $rb_minus(p, 1); - self.$emit("kRESCUE", "rescue".$freeze(), self.ts, tm); - p = $rb_minus(tm, 1); - self.cs = 513; + value = (function() {if ($truthy(($ret_or_290 = self.escape))) { + return $ret_or_290 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((425)['$===']($case)) { - - self.num_base = 16; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((419)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((422)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((416)['$===']($case)) { - - self.num_base = 2; - self.num_digits_s = p;; - - self.num_suffix_s = p;;} - else if ((431)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;;} - else if ((400)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;;} - else if ((432)['$===']($case)) { - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], (TMP_21 = function(chars){var self = TMP_21.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_21.$$s = self, TMP_21.$$arity = 1, TMP_21));;} - else if ((77)['$===']($case)) { - - tm = p;; - - self.te = $rb_plus(p, 1); - - p = $rb_minus(tm, 1); - - self.cs = 766; - _goto_level = _again; - continue;;;;;} - else if ((8)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.newline_s = p;;} - else if ((199)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 39;;} - else if ((186)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 40;;} - else if ((182)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 41;;} - else if ((26)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 67;;} - else if ((232)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 68;;} - else if ((27)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 73;;} - else if ((225)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 74;;} - else if ((252)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 80;;} - else if ((45)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 81;;} - else if ((273)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 88;;} - else if ((262)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 89;;} - else if ((276)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 111;;} - else if ((344)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 112;;} - else if ((343)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 113;;} - else if ((58)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.act = 115;;} - else if ((274)['$===']($case)) { - - self.te = $rb_plus(p, 1);; + else if ((128)['$===']($case)) { - self.act = 116;;} - else if ((277)['$===']($case)) { + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if ($truthy((function() {if ($truthy(($ret_or_291 = $rb_ge(self.version, 27)))) { + + if ($truthy(($ret_or_292 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { + return $ret_or_292 + } else { + return $range(14, 31, false)['$include?'](self.escape.$ord()) + }; + } else { + return $ret_or_291 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")};; - self.te = $rb_plus(p, 1);; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - self.act = 119;;} - else if ((447)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - self.te = $rb_plus(p, 1);; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_293 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_293 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_294 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_294 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_295 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_295 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_296 = self.escape))) { + return $ret_or_296 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((156)['$===']($case)) { - self.act = 132;;} - else if ((442)['$===']($case)) { + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if ($truthy((function() {if ($truthy(($ret_or_297 = $rb_ge(self.version, 27)))) { + + if ($truthy(($ret_or_298 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { + return $ret_or_298 + } else { + return $range(14, 31, false)['$include?'](self.escape.$ord()) + }; + } else { + return $ret_or_297 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")};; - self.te = $rb_plus(p, 1);; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - self.act = 133;;} - else if ((450)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - self.te = $rb_plus(p, 1);; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_299 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_299 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_300 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_300 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_301 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_301 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_302 = self.escape))) { + return $ret_or_302 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((367)['$===']($case)) { - self.act = 135;;} - else if ((443)['$===']($case)) { + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if ($truthy((function() {if ($truthy(($ret_or_303 = $rb_ge(self.version, 27)))) { + + if ($truthy(($ret_or_304 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { + return $ret_or_304 + } else { + return $range(14, 31, false)['$include?'](self.escape.$ord()) + }; + } else { + return $ret_or_303 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")};; - self.te = $rb_plus(p, 1);; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - self.act = 136;;} - else if ((444)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - self.te = $rb_plus(p, 1);; + value = (function() {if ($truthy(($ret_or_305 = self.escape))) { + return $ret_or_305 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; - self.act = 137;;} - else if ((449)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((126)['$===']($case)) { - self.te = $rb_plus(p, 1);; + self.escape = "\u007F";; - self.act = 138;;} - else if ((441)['$===']($case)) { + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - self.te = $rb_plus(p, 1);; + self.te = p; + p = $rb_minus(p, 1); - self.act = 139;;} - else if ((436)['$===']($case)) { + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_306 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_306 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_307 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_307 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_308 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_308 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_309 = self.escape))) { + return $ret_or_309 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((154)['$===']($case)) { - self.te = $rb_plus(p, 1);; + self.escape = "\u007F";; - self.act = 140;;} - else if ((372)['$===']($case)) { + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - self.te = $rb_plus(p, 1);; + self.te = p; + p = $rb_minus(p, 1); - self.act = 141;;} - else if ((402)['$===']($case)) { + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_310 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_310 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_311 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_311 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_312 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_312 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_313 = self.escape))) { + return $ret_or_313 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((365)['$===']($case)) { - self.te = $rb_plus(p, 1);; + self.escape = "\u007F";; - self.act = 144;;} - else if ((65)['$===']($case)) { + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - self.te = $rb_plus(p, 1);; + self.te = p; + p = $rb_minus(p, 1); - self.act = 145;;} - else if ((375)['$===']($case)) { + value = (function() {if ($truthy(($ret_or_314 = self.escape))) { + return $ret_or_314 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; - self.te = $rb_plus(p, 1);; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((133)['$===']($case)) { - self.act = 147;;} - else if ((367)['$===']($case)) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - self.te = $rb_plus(p, 1);; + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - self.act = 151;;} - else if ((377)['$===']($case)) { + self.te = p; + p = $rb_minus(p, 1); - self.te = $rb_plus(p, 1);; + current_literal = self.$literal(); + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_315 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_315 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else { + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_316 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_316 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_317 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_317 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_318 = self.escape))) { + return $ret_or_318 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((161)['$===']($case)) { - self.act = 152;;} - else if ((156)['$===']($case)) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - self.newline_s = p;; + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; - self.te = $rb_plus(p, 1); + self.te = p; + p = $rb_minus(p, 1); current_literal = self.$literal(); - if (self.te['$=='](pe)) { - self.$diagnostic("fatal", "string_eof", nil, self.$range(current_literal.$str_s(), $rb_plus(current_literal.$str_s(), 1)))}; - if ($truthy(current_literal['$heredoc?']())) { - - line = self.$tok(self.herebody_s, self.ts).$gsub(/\r+$/, "".$freeze()); - if ($truthy(self['$version?'](18, 19, 20))) { - line = line.$gsub(/\r.*$/, "".$freeze())}; - if ($truthy(current_literal.$nest_and_try_closing(line, self.herebody_s, self.ts))) { - - self.herebody_s = self.te; - p = $rb_minus(current_literal.$heredoc_e(), 1); - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;; - } else { - - current_literal.$infer_indent_level(line); - self.herebody_s = self.te; - }; + escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); + if ($truthy(current_literal['$munge_escape?'](escaped_char))) { + if ($truthy((function() {if ($truthy(($ret_or_319 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) } else { - - if ($truthy(current_literal.$nest_and_try_closing(self.$tok(), self.ts, self.te))) { - - self.cs = self.$pop_literal(); - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;}; - if ($truthy(self.herebody_s)) { - - p = $rb_minus(self.herebody_s, 1); - self.herebody_s = nil;}; - }; - if ($truthy(($truthy($o = current_literal['$words?']()) ? self['$eof_codepoint?'](self.source_pts['$[]'](p))['$!']() : $o))) { - current_literal.$extend_space(self.ts, self.te) + return $ret_or_319 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) } else { - - current_literal.$extend_string(self.$tok(), self.ts, self.te); - current_literal.$flush_string(); - };;; + current_literal.$extend_string(escaped_char, self.ts, self.te) + } + } else if ($truthy((function() {if ($truthy(($ret_or_320 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_320 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_321 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_321 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else if ($truthy(current_literal['$regexp?']())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_322 = self.escape))) { + return $ret_or_322 + } else { + return self.$tok() + }; return nil; })(), self.ts, self.te) + };;;} + else if ((372)['$===']($case)) { - self.escape_s = p; - self.escape = nil;;} - else if ((106)['$===']($case)) { + self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + + self.te = p; + p = $rb_minus(p, 1); + + value = (function() {if ($truthy(($ret_or_323 = self.escape))) { + return $ret_or_323 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); + if ($truthy(self['$version?'](18))) { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { + self.$emit("tCHARACTER", value) + }; + self.cs = 781; + + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((116)['$===']($case)) { + + self.escape_s = p; + self.escape = nil;; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -10291,23 +16580,42 @@ if (chars == null) chars = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($o = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $o))) { + if ($truthy((function() {if ($truthy(($ret_or_324 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_324 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_325 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_325 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_326 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_326 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_327 = self.escape))) { + return $ret_or_327 } else { - current_literal.$extend_string(($truthy($o = self.escape) ? $o : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((132)['$===']($case)) { + else if ((145)['$===']($case)) { - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.escape_s = p; + self.escape = nil;; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; self.te = p; p = $rb_minus(p, 1); @@ -10315,325 +16623,465 @@ if (chars == null) chars = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($o = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $o))) { + if ($truthy((function() {if ($truthy(($ret_or_328 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_328 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_329 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_329 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_330 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_330 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_331 = self.escape))) { + return $ret_or_331 } else { - current_literal.$extend_string(($truthy($o = self.escape) ? $o : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((328)['$===']($case)) { + else if ((356)['$===']($case)) { - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.escape_s = p; + self.escape = nil;; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($o = self.escape) ? $o : self.$tok($rb_plus(self.ts, 1))); + value = (function() {if ($truthy(($ret_or_332 = self.escape))) { + return $ret_or_332 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); if ($truthy(self['$version?'](18))) { - if ($truthy((($o = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { self.$emit("tCHARACTER", value) }; - self.cs = 766; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((111)['$===']($case)) { + else if ((61)['$===']($case)) { - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.sharp_s = $rb_minus(p, 1);; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.newline_s = p;;} + else if ((215)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((230)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((242)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((264)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($p = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $p))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($p = self.escape) ? $p : self.$tok()), self.ts, self.te) - };;;} - else if ((137)['$===']($case)) { - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.cs = 781; + _goto_level = _again; + continue;;;;;} + else if ((279)['$===']($case)) { - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((291)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((317)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((390)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((400)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((421)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((102)['$===']($case)) { + + self.sharp_s = $rb_minus(p, 1);; + + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; + + self.te = p; + p = $rb_minus(p, 1);;} + else if ((473)['$===']($case)) { + + self.num_base = 10; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], ($$28 = function(chars){var self = $$28.$$s == null ? this : $$28.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$28.$$s = self, $$28.$$arity = 1, $$28));;} + else if ((437)['$===']($case)) { + + self.num_base = 8; + self.num_digits_s = self.ts;; + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], ($$29 = function(chars){var self = $$29.$$s == null ? this : $$29.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$29.$$s = self, $$29.$$arity = 1, $$29));;} + else if ((452)['$===']($case)) { + + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], ($$30 = function(chars){var self = $$30.$$s == null ? this : $$30.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$30.$$s = self, $$30.$$arity = 1, $$30));; self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($p = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $p))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($p = self.escape) ? $p : self.$tok()), self.ts, self.te) - };;;} - else if ((333)['$===']($case)) { + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_333 = (function() {if ($truthy(($ret_or_334 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_334 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_333 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_335 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_335 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((445)['$===']($case)) { - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + self.num_suffix_s = p;; + + self.num_xfrm = $send(self, 'lambda', [], ($$31 = function(chars){var self = $$31.$$s == null ? this : $$31.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tFLOAT", self.$Float(chars));}, $$31.$$s = self, $$31.$$arity = 1, $$31));; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($p = self.escape) ? $p : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($p = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) }; - self.cs = 766; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((110)['$===']($case)) { + else if ((441)['$===']($case)) { - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr();; + self.num_suffix_s = p;; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + self.num_xfrm = $send(self, 'lambda', [], ($$32 = function(chars){var self = $$32.$$s == null ? this : $$32.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tFLOAT", self.$Float(chars));}, $$32.$$s = self, $$32.$$arity = 1, $$32));; self.te = p; p = $rb_minus(p, 1); - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($q = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $q))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($q = self.escape) ? $q : self.$tok()), self.ts, self.te) - };;;} - else if ((136)['$===']($case)) { + digits = self.$tok(self.ts, self.num_suffix_s); + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits) + }; - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr();; + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((270)['$===']($case)) { - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + self.te = $rb_plus(p, 1);; - self.te = p; - p = $rb_minus(p, 1); + self.newline_s = p;; - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($q = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $q))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($q = self.escape) ? $q : self.$tok()), self.ts, self.te) - };;;} - else if ((332)['$===']($case)) { + self.act = 78;;} + else if ((35)['$===']($case)) { - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr();; + self.te = $rb_plus(p, 1);; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; - self.te = p; - p = $rb_minus(p, 1); + self.act = 77;;} + else if ((46)['$===']($case)) { - value = ($truthy($q = self.escape) ? $q : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($q = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 766; + self.te = $rb_plus(p, 1);; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((108)['$===']($case)) { + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; - self.escape = "\u007F";; + self.act = 85;;} + else if ((94)['$===']($case)) { - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + self.te = $rb_plus(p, 1);; - self.te = p; - p = $rb_minus(p, 1); + if ($truthy(self.herebody_s)) { + + p = self.herebody_s; + self.herebody_s = nil;};; - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($r = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $r))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($r = self.escape) ? $r : self.$tok()), self.ts, self.te) - };;;} - else if ((134)['$===']($case)) { + self.act = 180;;} + else if ((65)['$===']($case)) { - self.escape = "\u007F";; + self.te = $rb_plus(p, 1);; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - self.te = p; - p = $rb_minus(p, 1); + self.act = 98;;} + else if ((84)['$===']($case)) { - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($r = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $r))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($r = self.escape) ? $r : self.$tok()), self.ts, self.te) - };;;} - else if ((330)['$===']($case)) { + self.te = $rb_plus(p, 1);; - self.escape = "\u007F";; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + self.act = 146;;} + else if ((93)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1);; - value = ($truthy($r = self.escape) ? $r : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($r = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 766; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((104)['$===']($case)) { + self.act = 180;;} + else if ((37)['$===']($case)) { - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr();; + self.te = $rb_plus(p, 1);; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + tm = p;; - self.te = p; - p = $rb_minus(p, 1); + self.act = 72;;} + else if ((382)['$===']($case)) { - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($s = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $s))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($s = self.escape) ? $s : self.$tok()), self.ts, self.te) - };;;} - else if ((130)['$===']($case)) { + self.te = $rb_plus(p, 1);; - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr();; + tm = p;; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + self.act = 126;;} + else if ((381)['$===']($case)) { - self.te = p; - p = $rb_minus(p, 1); + self.te = $rb_plus(p, 1);; - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($s = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $s))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($s = self.escape) ? $s : self.$tok()), self.ts, self.te) - };;;} - else if ((326)['$===']($case)) { + tm = p;; - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr();; + self.act = 127;;} + else if ((474)['$===']($case)) { - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + self.te = $rb_plus(p, 1);; - self.te = p; - p = $rb_minus(p, 1); + self.num_base = 10; + self.num_digits_s = self.ts;; - value = ($truthy($s = self.escape) ? $s : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($s = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) - }; - self.cs = 766; + self.act = 153;;} + else if ((127)['$===']($case)) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((114)['$===']($case)) { + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_336 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_337 = codepoint['$=='](117)))) { + return $ret_or_337 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_336 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; self.te = p; p = $rb_minus(p, 1); @@ -10641,21 +17089,56 @@ if (chars == null) chars = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($t = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $t))) { + if ($truthy((function() {if ($truthy(($ret_or_338 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_338 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_339 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_339 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_340 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_340 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_341 = self.escape))) { + return $ret_or_341 } else { - current_literal.$extend_string(($truthy($t = self.escape) ? $t : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((140)['$===']($case)) { + else if ((155)['$===']($case)) { + + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_342 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_343 = codepoint['$=='](117)))) { + return $ret_or_343 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_342 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; self.te = p; p = $rb_minus(p, 1); @@ -10663,46 +17146,93 @@ if (chars == null) chars = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($t = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $t))) { + if ($truthy((function() {if ($truthy(($ret_or_344 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_344 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_345 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_345 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_346 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_346 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_347 = self.escape))) { + return $ret_or_347 } else { - current_literal.$extend_string(($truthy($t = self.escape) ? $t : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((336)['$===']($case)) { + else if ((366)['$===']($case)) { - self.$diagnostic("fatal", "invalid_unicode_escape", nil, self.$range($rb_minus(self.escape_s, 1), p));; + codepoint = self.source_pts['$[]']($rb_minus(p, 1)); + if ($truthy((function() {if ($truthy(($ret_or_348 = $rb_ge(self.version, 30)))) { + + if ($truthy(($ret_or_349 = codepoint['$=='](117)))) { + return $ret_or_349 + } else { + return codepoint['$=='](85) + }; + } else { + return $ret_or_348 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")}; + if ($truthy((self.escape = $$($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { + self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - self.$diagnostic("fatal", "unterminated_unicode", nil, self.$range($rb_minus(p, 1), p));; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($t = self.escape) ? $t : self.$tok($rb_plus(self.ts, 1))); + value = (function() {if ($truthy(($ret_or_350 = self.escape))) { + return $ret_or_350 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); if ($truthy(self['$version?'](18))) { - if ($truthy((($t = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { self.$emit("tCHARACTER", value) }; - self.cs = 766; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((98)['$===']($case)) { + else if ((125)['$===']($case)) { - self.escape_s = p; - self.escape = nil;; + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if ($truthy((function() {if ($truthy(($ret_or_351 = $rb_ge(self.version, 27)))) { + + if ($truthy(($ret_or_352 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { + return $ret_or_352 + } else { + return $range(14, 31, false)['$include?'](self.escape.$ord()) + }; + } else { + return $ret_or_351 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")};; - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; self.te = p; p = $rb_minus(p, 1); @@ -10710,22 +17240,54 @@ if (chars == null) chars = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($u = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $u))) { + if ($truthy((function() {if ($truthy(($ret_or_353 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_353 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_354 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_354 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_355 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_355 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_356 = self.escape))) { + return $ret_or_356 } else { - current_literal.$extend_string(($truthy($u = self.escape) ? $u : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((125)['$===']($case)) { + else if ((153)['$===']($case)) { - self.escape_s = p; - self.escape = nil;; + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if ($truthy((function() {if ($truthy(($ret_or_357 = $rb_ge(self.version, 27)))) { + + if ($truthy(($ret_or_358 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { + return $ret_or_358 + } else { + return $range(14, 31, false)['$include?'](self.escape.$ord()) + }; + } else { + return $ret_or_357 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")};; - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; self.te = p; p = $rb_minus(p, 1); @@ -10733,216 +17295,196 @@ if (chars == null) chars = nil; current_literal = self.$literal(); escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($u = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $u))) { + if ($truthy((function() {if ($truthy(($ret_or_359 = current_literal['$regexp?']()))) { + return $$($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) + } else { + return $ret_or_359 + }; return nil; })())) { current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { + } else { current_literal.$extend_string(escaped_char, self.ts, self.te) } + } else if ($truthy((function() {if ($truthy(($ret_or_360 = current_literal['$squiggly_heredoc?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_360 + }; return nil; })())) { + current_literal.$extend_string(self.$tok(), self.ts, self.te) + } else if ($truthy((function() {if ($truthy(($ret_or_361 = current_literal['$supports_line_continuation_via_slash?']()))) { + return escaped_char['$==']("\n".$freeze()) + } else { + return $ret_or_361 + }; return nil; })())) { + current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) } else if ($truthy(current_literal['$regexp?']())) { current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) + } else { + current_literal.$extend_string((function() {if ($truthy(($ret_or_362 = self.escape))) { + return $ret_or_362 } else { - current_literal.$extend_string(($truthy($u = self.escape) ? $u : self.$tok()), self.ts, self.te) + return self.$tok() + }; return nil; })(), self.ts, self.te) };;;} - else if ((321)['$===']($case)) { + else if ((364)['$===']($case)) { - self.escape_s = p; - self.escape = nil;; + self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr(); + if ($truthy((function() {if ($truthy(($ret_or_363 = $rb_ge(self.version, 27)))) { + + if ($truthy(($ret_or_364 = $range(0, 8, false)['$include?'](self.escape.$ord())))) { + return $ret_or_364 + } else { + return $range(14, 31, false)['$include?'](self.escape.$ord()) + }; + } else { + return $ret_or_363 + }; return nil; })())) { + self.$diagnostic("fatal", "invalid_escape")};; - self.$diagnostic("fatal", "escape_eof", nil, self.$range($rb_minus(p, 1), p));; + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + + self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; self.te = p; p = $rb_minus(p, 1); - value = ($truthy($u = self.escape) ? $u : self.$tok($rb_plus(self.ts, 1))); + value = (function() {if ($truthy(($ret_or_365 = self.escape))) { + return $ret_or_365 + } else { + return self.$tok($rb_plus(self.ts, 1)) + }; return nil; })(); if ($truthy(self['$version?'](18))) { - if ($truthy((($u = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { + self.$emit("tINTEGER", value.$getbyte(0)) + } else { self.$emit("tCHARACTER", value) }; - self.cs = 766; + self.cs = 781; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((69)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.newline_s = p;;} - else if ((192)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((207)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((219)['$===']($case)) { + else if ((469)['$===']($case)) { - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((241)['$===']($case)) { + self.num_base = 16; + self.num_digits_s = p;; - self.sharp_s = $rb_minus(p, 1);; + self.num_suffix_s = p;; - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; + self.num_xfrm = $send(self, 'lambda', [], ($$33 = function(chars){var self = $$33.$$s == null ? this : $$33.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$33.$$s = self, $$33.$$arity = 1, $$33));; self.te = p; p = $rb_minus(p, 1); + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_366 = (function() {if ($truthy(($ret_or_367 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_367 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_366 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_368 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_368 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; - self.cs = 766; - _goto_level = _again; - continue;;;;;} - else if ((256)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((268)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((292)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((354)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((364)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((384)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((85)['$===']($case)) { - - self.sharp_s = $rb_minus(p, 1);; - - self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { - return $rb_minus(p, 2) - } else { - return p - }; return nil; })());; - - self.te = p; - p = $rb_minus(p, 1);;} - else if ((427)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((463)['$===']($case)) { self.num_base = 10; - self.num_digits_s = self.ts;; + self.num_digits_s = p;; self.num_suffix_s = p;; - self.num_xfrm = $send(self, 'lambda', [], (TMP_22 = function(chars){var self = TMP_22.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22));;} - else if ((397)['$===']($case)) { + self.num_xfrm = $send(self, 'lambda', [], ($$34 = function(chars){var self = $$34.$$s == null ? this : $$34.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$34.$$s = self, $$34.$$arity = 1, $$34));; - self.num_base = 8; - self.num_digits_s = self.ts;; + self.te = p; + p = $rb_minus(p, 1); - self.num_suffix_s = p;; + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_369 = (function() {if ($truthy(($ret_or_370 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_370 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_369 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_371 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_371 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; - self.num_xfrm = $send(self, 'lambda', [], (TMP_23 = function(chars){var self = TMP_23.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_23.$$s = self, TMP_23.$$arity = 1, TMP_23));;} - else if ((409)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((466)['$===']($case)) { + + self.num_base = 8; + self.num_digits_s = p;; self.num_suffix_s = p;; - self.num_xfrm = $send(self, 'lambda', [], (TMP_24 = function(chars){var self = TMP_24.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_24.$$s = self, TMP_24.$$arity = 1, TMP_24));; + self.num_xfrm = $send(self, 'lambda', [], ($$35 = function(chars){var self = $$35.$$s == null ? this : $$35.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$35.$$s = self, $$35.$$arity = 1, $$35));; self.te = p; p = $rb_minus(p, 1); @@ -10950,11 +17492,24 @@ if (chars == null) chars = nil; digits = self.$tok(self.num_digits_s, self.num_suffix_s); if ($truthy(digits['$end_with?']("_".$freeze()))) { self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($v = ($truthy($w = digits['$empty?']()) ? self.num_base['$=='](8) : $w)) ? self['$version?'](18) : $v))) { + } else if ($truthy((function() {if ($truthy(($ret_or_372 = (function() {if ($truthy(($ret_or_373 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_373 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_372 + }; return nil; })())) { digits = "0".$freeze() } else if ($truthy(digits['$empty?']())) { self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($v = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { + } else if ($truthy((function() {if ($truthy(($ret_or_374 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_374 + }; return nil; })())) { invalid_s = $rb_plus(self.num_digits_s, invalid_idx); self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; @@ -10962,77 +17517,176 @@ if (chars == null) chars = nil; self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); p = $rb_minus(self.num_suffix_s, 1); - } else { + } else { self.num_xfrm.$call(digits.$to_i(self.num_base)) }; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((404)['$===']($case)) { + else if ((460)['$===']($case)) { + + self.num_base = 2; + self.num_digits_s = p;; self.num_suffix_s = p;; - self.num_xfrm = $send(self, 'lambda', [], (TMP_25 = function(chars){var self = TMP_25.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tFLOAT", self.$Float(chars))}, TMP_25.$$s = self, TMP_25.$$arity = 1, TMP_25));; + self.num_xfrm = $send(self, 'lambda', [], ($$36 = function(chars){var self = $$36.$$s == null ? this : $$36.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$36.$$s = self, $$36.$$arity = 1, $$36));; self.te = p; p = $rb_minus(p, 1); - digits = self.$tok(self.ts, self.num_suffix_s); + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_375 = (function() {if ($truthy(($ret_or_376 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_376 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_375 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_377 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_377 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) }; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((401)['$===']($case)) { + else if ((472)['$===']($case)) { + + self.num_base = 10; + self.num_digits_s = self.ts;; self.num_suffix_s = p;; - self.num_xfrm = $send(self, 'lambda', [], (TMP_26 = function(chars){var self = TMP_26.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tFLOAT", self.$Float(chars))}, TMP_26.$$s = self, TMP_26.$$arity = 1, TMP_26));; + self.num_xfrm = $send(self, 'lambda', [], ($$37 = function(chars){var self = $$37.$$s == null ? this : $$37.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$37.$$s = self, $$37.$$arity = 1, $$37));; self.te = p; p = $rb_minus(p, 1); - digits = self.$tok(self.ts, self.num_suffix_s); + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_378 = (function() {if ($truthy(($ret_or_379 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_379 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_378 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_380 = self.num_base['$=='](8)))) { + + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_380 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; if ($truthy(self['$version?'](18, 19, 20))) { - self.$emit("tFLOAT", self.$Float(digits), self.ts, self.num_suffix_s); + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits) + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) }; p = $rb_plus(p, 1); _goto_level = _out; continue;;;;;} - else if ((247)['$===']($case)) { + else if ((436)['$===']($case)) { - self.te = $rb_plus(p, 1);; + self.num_base = 8; + self.num_digits_s = self.ts;; - self.newline_s = p;; + self.num_suffix_s = p;; - self.act = 74;;} - else if ((35)['$===']($case)) { + self.num_xfrm = $send(self, 'lambda', [], ($$38 = function(chars){var self = $$38.$$s == null ? this : $$38.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$38.$$s = self, $$38.$$arity = 1, $$38));; - self.te = $rb_plus(p, 1);; + self.te = p; + p = $rb_minus(p, 1); - if ($truthy(self.herebody_s)) { + digits = self.$tok(self.num_digits_s, self.num_suffix_s); + if ($truthy(digits['$end_with?']("_".$freeze()))) { + self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) + } else if ($truthy((function() {if ($truthy(($ret_or_381 = (function() {if ($truthy(($ret_or_382 = digits['$empty?']()))) { + return self.num_base['$=='](8) + } else { + return $ret_or_382 + }; return nil; })()))) { + return self['$version?'](18) + } else { + return $ret_or_381 + }; return nil; })())) { + digits = "0".$freeze() + } else if ($truthy(digits['$empty?']())) { + self.$diagnostic("error", "empty_numeric") + } else if ($truthy((function() {if ($truthy(($ret_or_383 = self.num_base['$=='](8)))) { - p = self.herebody_s; - self.herebody_s = nil;};; + return (invalid_idx = digits.$index(/[89]/)); + } else { + return $ret_or_383 + }; return nil; })())) { + + invalid_s = $rb_plus(self.num_digits_s, invalid_idx); + self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; + if ($truthy(self['$version?'](18, 19, 20))) { + + self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); + p = $rb_minus(self.num_suffix_s, 1); + } else { + self.num_xfrm.$call(digits.$to_i(self.num_base)) + }; - self.act = 73;;} - else if ((46)['$===']($case)) { + p = $rb_plus(p, 1); + _goto_level = _out; + continue;;;;;} + else if ((31)['$===']($case)) { self.te = $rb_plus(p, 1);; @@ -11041,12675 +17695,17345 @@ if (chars == null) chars = nil; p = self.herebody_s; self.herebody_s = nil;};; - self.act = 81;;} - else if ((72)['$===']($case)) { + tm = p;; + + self.act = 72;;} + else if ((62)['$===']($case)) { self.te = $rb_plus(p, 1);; + self.sharp_s = $rb_minus(p, 1);; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { return $rb_minus(p, 2) - } else { + } else { return p }; return nil; })());; - self.act = 134;;} - else if ((37)['$===']($case)) { + self.act = 98;;} + else if ((92)['$===']($case)) { self.te = $rb_plus(p, 1);; - tm = p;; - - self.act = 68;;} - else if ((347)['$===']($case)) { - - self.te = $rb_plus(p, 1);; + self.sharp_s = $rb_minus(p, 1);; - tm = p;; + self.$emit_comment(self.sharp_s, (function() {if (p['$=='](pe)) { + return $rb_minus(p, 2) + } else { + return p + }; return nil; })());; - self.act = 115;;} - else if ((346)['$===']($case)) { + self.act = 180;;} + else if ((479)['$===']($case)) { self.te = $rb_plus(p, 1);; - tm = p;; + self.num_suffix_s = p;; - self.act = 116;;} - else if ((428)['$===']($case)) { + self.num_xfrm = $send(self, 'lambda', [], ($$39 = function(chars){var self = $$39.$$s == null ? this : $$39.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$39.$$s = self, $$39.$$arity = 1, $$39));; + + self.act = 155;;} + else if ((475)['$===']($case)) { self.te = $rb_plus(p, 1);; self.num_base = 10; self.num_digits_s = self.ts;; - self.act = 141;;} - else if ((109)['$===']($case)) { - - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); + self.num_suffix_s = p;; - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($v = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $v))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($v = self.escape) ? $v : self.$tok()), self.ts, self.te) - };;;} - else if ((135)['$===']($case)) { + self.num_xfrm = $send(self, 'lambda', [], ($$40 = function(chars){var self = $$40.$$s == null ? this : $$40.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$40.$$s = self, $$40.$$arity = 1, $$40));; - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.act = 155;;} + else if ((439)['$===']($case)) { - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + self.te = $rb_plus(p, 1);; - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + self.num_base = 8; + self.num_digits_s = self.ts;; - self.te = p; - p = $rb_minus(p, 1); + self.num_suffix_s = p;; - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($v = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $v))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($v = self.escape) ? $v : self.$tok()), self.ts, self.te) - };;;} - else if ((331)['$===']($case)) { + self.num_xfrm = $send(self, 'lambda', [], ($$41 = function(chars){var self = $$41.$$s == null ? this : $$41.$$s; + + + + if (chars == null) { + chars = nil; + }; + return self.$emit("tINTEGER", chars);}, $$41.$$s = self, $$41.$$arity = 1, $$41));; - codepoint = self.source_pts['$[]']($rb_minus(p, 1)); - if ($truthy((self.escape = Opal.const_get_relative($nesting, 'ESCAPES')['$[]'](codepoint))['$nil?']())) { - self.escape = self.$encode_escape(self.source_buffer.$slice($rb_minus(p, 1)))};; + self.act = 155;;}};}; + if ($truthy($rb_le(_goto_level, _again))) { + + $case = _lex_to_state_actions['$[]'](self.cs); + if ((96)['$===']($case)) { + self.ts = nil;}; + if (self.cs['$=='](0)) { - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; + _goto_level = _out; + continue;;}; + p = $rb_plus(p, 1); + if ($truthy(p['$!='](pe))) { - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + _goto_level = _resume; + continue;;};}; + if ($truthy($rb_le(_goto_level, _test_eof))) { + if (p['$=='](eof)) { + if ($truthy($rb_gt(_lex_eof_trans['$[]'](self.cs), 0))) { + + _trans = $rb_minus(_lex_eof_trans['$[]'](self.cs), 1); + _goto_level = _eof_trans; + continue;;}}}; + if ($truthy($rb_le(_goto_level, _out))) { + break;}; + };; + if ($truthy(false)) { + testEof}; + self.p = p; + if ($truthy(self.token_queue['$any?']())) { + return self.token_queue.$shift() + } else if (self.cs['$=='](klass.$lex_error())) { + return [false, ["$error".$freeze(), self.$range($rb_minus(p, 1), p)]] + } else { + + eof = self.source_pts.$size(); + return [false, ["$eof".$freeze(), self.$range(eof, eof)]]; + }; + }, $Lexer_advance$12.$$arity = 0); + self.$protected(); + + Opal.def(self, '$eof_codepoint?', $Lexer_eof_codepoint$ques$42 = function(point) { + var self = this; + + return [4, 26, 0]['$include?'](point) + }, $Lexer_eof_codepoint$ques$42.$$arity = 1); + + Opal.def(self, '$version?', $Lexer_version$ques$43 = function($a) { + var $post_args, versions, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + versions = $post_args;; + return versions['$include?'](self.version); + }, $Lexer_version$ques$43.$$arity = -1); + + Opal.def(self, '$stack_pop', $Lexer_stack_pop$44 = function $$stack_pop() { + var self = this; + + + self.top = $rb_minus(self.top, 1); + return self.stack['$[]'](self.top); + }, $Lexer_stack_pop$44.$$arity = 0); + + Opal.def(self, '$encode_escape', $Lexer_encode_escape$45 = function $$encode_escape(ord) { + var self = this; + + return ord.$chr().$force_encoding(self.source_buffer.$source().$encoding()) + }, $Lexer_encode_escape$45.$$arity = 1); + + Opal.def(self, '$tok', $Lexer_tok$46 = function $$tok(s, e) { + var self = this; + + + + if (s == null) { + s = self.ts; + }; + + if (e == null) { + e = self.te; + }; + return self.source_buffer.$slice(Opal.Range.$new(s,e, true)); + }, $Lexer_tok$46.$$arity = -1); + + Opal.def(self, '$range', $Lexer_range$47 = function $$range(s, e) { + var self = this; + + + + if (s == null) { + s = self.ts; + }; + + if (e == null) { + e = self.te; + }; + return $$$($$$($$($nesting, 'Parser'), 'Source'), 'Range').$new(self.source_buffer, s, e); + }, $Lexer_range$47.$$arity = -1); + + Opal.def(self, '$emit', $Lexer_emit$48 = function $$emit(type, value, s, e) { + var self = this, token = nil; + + + + if (value == null) { + value = self.$tok(); + }; + + if (s == null) { + s = self.ts; + }; + + if (e == null) { + e = self.te; + }; + token = [type, [value, self.$range(s, e)]]; + self.token_queue.$push(token); + if ($truthy(self.tokens)) { + self.tokens.$push(token)}; + return token; + }, $Lexer_emit$48.$$arity = -2); + + Opal.def(self, '$emit_table', $Lexer_emit_table$49 = function $$emit_table(table, s, e) { + var self = this, value = nil; + + + + if (s == null) { + s = self.ts; + }; + + if (e == null) { + e = self.te; + }; + value = self.$tok(s, e); + return self.$emit(table['$[]'](value), value, s, e); + }, $Lexer_emit_table$49.$$arity = -2); + + Opal.def(self, '$emit_do', $Lexer_emit_do$50 = function $$emit_do(do_block) { + var self = this, $ret_or_384 = nil; + + + + if (do_block == null) { + do_block = false; + }; + if ($truthy(self.cond['$active?']())) { + return self.$emit("kDO_COND", "do".$freeze()) + } else if ($truthy((function() {if ($truthy(($ret_or_384 = self.cmdarg['$active?']()))) { + return $ret_or_384 + } else { + return do_block + }; return nil; })())) { + return self.$emit("kDO_BLOCK", "do".$freeze()) + } else { + return self.$emit("kDO", "do".$freeze()) + }; + }, $Lexer_emit_do$50.$$arity = -1); + + Opal.def(self, '$arg_or_cmdarg', $Lexer_arg_or_cmdarg$51 = function $$arg_or_cmdarg(cmd_state) { + var self = this; + + if ($truthy(cmd_state)) { + return self.$class().$lex_en_expr_cmdarg() + } else { + return self.$class().$lex_en_expr_arg() + } + }, $Lexer_arg_or_cmdarg$51.$$arity = 1); + + Opal.def(self, '$emit_comment', $Lexer_emit_comment$52 = function $$emit_comment(s, e) { + var self = this; + + + + if (s == null) { + s = self.ts; + }; + + if (e == null) { + e = self.te; + }; + if ($truthy(self.comments)) { + self.comments.$push($$$($$$($$($nesting, 'Parser'), 'Source'), 'Comment').$new(self.$range(s, e)))}; + if ($truthy(self.tokens)) { + self.tokens.$push(["tCOMMENT", [self.$tok(s, e), self.$range(s, e)]])}; + return nil; + }, $Lexer_emit_comment$52.$$arity = -1); + + Opal.def(self, '$diagnostic', $Lexer_diagnostic$53 = function $$diagnostic(type, reason, arguments$, location, highlights) { + var self = this; + + + + if (arguments$ == null) { + arguments$ = nil; + }; + + if (location == null) { + location = self.$range(); + }; + + if (highlights == null) { + highlights = []; + }; + return self.diagnostics.$process($$$($$($nesting, 'Parser'), 'Diagnostic').$new(type, reason, arguments$, location, highlights)); + }, $Lexer_diagnostic$53.$$arity = -3); + + Opal.def(self, '$push_literal', $Lexer_push_literal$54 = function $$push_literal($a) { + var $post_args, args, self = this, new_literal = nil; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + new_literal = $send($$($nesting, 'Literal'), 'new', [self].concat(Opal.to_a(args))); + self.literal_stack.$push(new_literal); + return self.$next_state_for_literal(new_literal); + }, $Lexer_push_literal$54.$$arity = -1); + + Opal.def(self, '$next_state_for_literal', $Lexer_next_state_for_literal$55 = function $$next_state_for_literal(literal) { + var self = this, $ret_or_385 = nil, $ret_or_386 = nil, $ret_or_387 = nil; + + if ($truthy((function() {if ($truthy(($ret_or_385 = literal['$words?']()))) { + return literal['$backslash_delimited?']() + } else { + return $ret_or_385 + }; return nil; })())) { + if ($truthy(literal['$interpolate?']())) { + return self.$class().$lex_en_interp_backslash_delimited_words() + } else { + return self.$class().$lex_en_plain_backslash_delimited_words() + } + } else if ($truthy((function() {if ($truthy(($ret_or_386 = literal['$words?']()))) { + return literal['$backslash_delimited?']()['$!']() + } else { + return $ret_or_386 + }; return nil; })())) { + if ($truthy(literal['$interpolate?']())) { + return self.$class().$lex_en_interp_words() + } else { + return self.$class().$lex_en_plain_words() + } + } else if ($truthy((function() {if ($truthy(($ret_or_387 = literal['$words?']()['$!']()))) { + return literal['$backslash_delimited?']() + } else { + return $ret_or_387 + }; return nil; })())) { + if ($truthy(literal['$interpolate?']())) { + return self.$class().$lex_en_interp_backslash_delimited() + } else { + return self.$class().$lex_en_plain_backslash_delimited() + } + } else if ($truthy(literal['$interpolate?']())) { + return self.$class().$lex_en_interp_string() + } else { + return self.$class().$lex_en_plain_string() + } + }, $Lexer_next_state_for_literal$55.$$arity = 1); + + Opal.def(self, '$literal', $Lexer_literal$56 = function $$literal() { + var self = this; + + return self.literal_stack.$last() + }, $Lexer_literal$56.$$arity = 0); + + Opal.def(self, '$pop_literal', $Lexer_pop_literal$57 = function $$pop_literal() { + var self = this, old_literal = nil; + + + old_literal = self.literal_stack.$pop(); + self.dedent_level = old_literal.$dedent_level(); + if (old_literal.$type()['$==']("tREGEXP_BEG")) { + return self.$class().$lex_en_regexp_modifiers() + } else { + return self.$class().$lex_en_expr_end() + }; + }, $Lexer_pop_literal$57.$$arity = 0); + Opal.const_set($nesting[0], 'PUNCTUATION', $hash2(["=", "&", "|", "!", "^", "+", "-", "*", "/", "%", "~", ",", ";", ".", "..", "...", "[", "]", "(", ")", "?", ":", "&&", "||", "-@", "+@", "~@", "**", "->", "=~", "!~", "==", "!=", ">", ">>", ">=", "<", "<<", "<=", "=>", "::", "===", "<=>", "[]", "[]=", "{", "}", "`", "!@", "&."], {"=": "tEQL", "&": "tAMPER2", "|": "tPIPE", "!": "tBANG", "^": "tCARET", "+": "tPLUS", "-": "tMINUS", "*": "tSTAR2", "/": "tDIVIDE", "%": "tPERCENT", "~": "tTILDE", ",": "tCOMMA", ";": "tSEMI", ".": "tDOT", "..": "tDOT2", "...": "tDOT3", "[": "tLBRACK2", "]": "tRBRACK", "(": "tLPAREN2", ")": "tRPAREN", "?": "tEH", ":": "tCOLON", "&&": "tANDOP", "||": "tOROP", "-@": "tUMINUS", "+@": "tUPLUS", "~@": "tTILDE", "**": "tPOW", "->": "tLAMBDA", "=~": "tMATCH", "!~": "tNMATCH", "==": "tEQ", "!=": "tNEQ", ">": "tGT", ">>": "tRSHFT", ">=": "tGEQ", "<": "tLT", "<<": "tLSHFT", "<=": "tLEQ", "=>": "tASSOC", "::": "tCOLON2", "===": "tEQQ", "<=>": "tCMP", "[]": "tAREF", "[]=": "tASET", "{": "tLCURLY", "}": "tRCURLY", "`": "tBACK_REF2", "!@": "tBANG", "&.": "tANDDOT"})); + Opal.const_set($nesting[0], 'PUNCTUATION_BEGIN', $hash2(["&", "*", "**", "+", "-", "::", "(", "{", "["], {"&": "tAMPER", "*": "tSTAR", "**": "tDSTAR", "+": "tUPLUS", "-": "tUMINUS", "::": "tCOLON3", "(": "tLPAREN", "{": "tLBRACE", "[": "tLBRACK"})); + Opal.const_set($nesting[0], 'KEYWORDS', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF_MOD", "unless": "kUNLESS_MOD", "while": "kWHILE_MOD", "until": "kUNTIL_MOD", "rescue": "kRESCUE_MOD", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); + Opal.const_set($nesting[0], 'KEYWORDS_BEGIN', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF", "unless": "kUNLESS", "while": "kWHILE", "until": "kUNTIL", "rescue": "kRESCUE", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); + return $send(["class", "module", "def", "undef", "begin", "end", "then", "elsif", "else", "ensure", "case", "when", "for", "break", "next", "redo", "retry", "in", "do", "return", "yield", "super", "self", "nil", "true", "false", "and", "or", "not", "alias", "__FILE__", "__LINE__", "__ENCODING__"], 'each', [], ($Lexer$58 = function(keyword){var self = $Lexer$58.$$s == null ? this : $Lexer$58.$$s; + + + + if (keyword == null) { + keyword = nil; + }; + $writer = [keyword, (($writer = [keyword, "" + "k" + (keyword.$upcase())]), $send($$($nesting, 'KEYWORDS'), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; + $send($$($nesting, 'KEYWORDS_BEGIN'), '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $Lexer$58.$$s = self, $Lexer$58.$$arity = 1, $Lexer$58)); + })($$($nesting, 'Parser'), null, $nesting) +}; + +Opal.modules["parser/lexer/literal"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $enc = Opal.enc, $truthy = Opal.truthy, $send = Opal.send; + + Opal.add_stubs(['$attr_reader', '$attr_accessor', '$coerce_encoding', '$include?', '$send', '$+', '$[]', '$fetch', '$==', '$!', '$heredoc?', '$start_with?', '$freeze', '$clear_buffer', '$emit_start_tok', '$type', '$words?', '$=~', '$delimiter?', '$-', '$extend_space', '$!=', '$flush_string', '$emit', '$each_char', '$===', '$%', '$nil?', '$>', '$<<', '$empty?', '$extend_content', '$protected', '$lstrip', '$b', '$dup', '$force_encoding', '$encoding', '$source', '$source_buffer', '$length']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Literal'); + + var $nesting = [self].concat($parent_nesting), $Literal_initialize$1, $Literal_interpolate$ques$2, $Literal_words$ques$3, $Literal_regexp$ques$4, $Literal_heredoc$ques$5, $Literal_plain_heredoc$ques$6, $Literal_squiggly_heredoc$ques$7, $Literal_backslash_delimited$ques$8, $Literal_type$9, $Literal_munge_escape$ques$10, $Literal_nest_and_try_closing$11, $Literal_infer_indent_level$12, $Literal_start_interp_brace$14, $Literal_end_interp_brace_and_try_closing$15, $Literal_extend_string$16, $Literal_flush_string$17, $Literal_extend_content$18, $Literal_extend_space$19, $Literal_supports_line_continuation_via_slash$ques$20, $Literal_delimiter$ques$21, $Literal_coerce_encoding$22, $Literal_clear_buffer$23, $Literal_emit_start_tok$24, $Literal_emit$25; + + self.$$prototype.lexer = self.$$prototype.start_tok = self.$$prototype.str_type = self.$$prototype.monolithic = self.$$prototype.interpolate = self.$$prototype.heredoc_e = self.$$prototype.dedent_body = self.$$prototype.end_delim = self.$$prototype.start_delim = self.$$prototype.nesting = self.$$prototype.label_allowed = self.$$prototype.buffer = self.$$prototype.str_s = self.$$prototype.interp_braces = self.$$prototype.buffer_s = self.$$prototype.buffer_e = self.$$prototype.space_emitted = self.$$prototype.indent = nil; + + Opal.const_set($nesting[0], 'DELIMITERS', $hash2(["(", "[", "{", "<"], {"(": $enc(")", "ASCII-8BIT"), "[": $enc("]", "ASCII-8BIT"), "{": $enc("}", "ASCII-8BIT"), "<": $enc(">", "ASCII-8BIT")})); + Opal.const_set($nesting[0], 'TYPES', $hash2(["'", "<<'", "%q", "\"", "<<\"", "%", "%Q", "%w", "%W", "%i", "%I", ":'", "%s", ":\"", "/", "%r", "%x", "`", "<<`"], {"'": ["tSTRING_BEG", false], "<<'": ["tSTRING_BEG", false], "%q": ["tSTRING_BEG", false], "\"": ["tSTRING_BEG", true], "<<\"": ["tSTRING_BEG", true], "%": ["tSTRING_BEG", true], "%Q": ["tSTRING_BEG", true], "%w": ["tQWORDS_BEG", false], "%W": ["tWORDS_BEG", true], "%i": ["tQSYMBOLS_BEG", false], "%I": ["tSYMBOLS_BEG", true], ":'": ["tSYMBEG", false], "%s": ["tSYMBEG", false], ":\"": ["tSYMBEG", true], "/": ["tREGEXP_BEG", true], "%r": ["tREGEXP_BEG", true], "%x": ["tXSTRING_BEG", true], "`": ["tXSTRING_BEG", true], "<<`": ["tXSTRING_BEG", true]})); + self.$attr_reader("heredoc_e", "str_s", "dedent_level"); + self.$attr_accessor("saved_herebody_s"); + + Opal.def(self, '$initialize', $Literal_initialize$1 = function $$initialize(lexer, str_type, delimiter, str_s, heredoc_e, indent, dedent_body, label_allowed) { + var $a, $b, self = this, $ret_or_1 = nil, $ret_or_2 = nil; + + + + if (heredoc_e == null) { + heredoc_e = nil; + }; + + if (indent == null) { + indent = false; + }; + + if (dedent_body == null) { + dedent_body = false; + }; + + if (label_allowed == null) { + label_allowed = false; + }; + self.lexer = lexer; + self.nesting = 1; + str_type = self.$coerce_encoding(str_type); + delimiter = self.$coerce_encoding(delimiter); + if ($truthy($$($nesting, 'TYPES')['$include?'](str_type))) { + } else { + lexer.$send("diagnostic", "error", "unexpected_percent_str", $hash2(["type"], {"type": str_type}), self.lexer.$send("range", str_s, $rb_plus(str_s, 2))) + }; + self.str_type = str_type; + self.str_s = str_s; + $b = $$($nesting, 'TYPES')['$[]'](str_type), $a = Opal.to_ary($b), (self.start_tok = ($a[0] == null ? nil : $a[0])), (self.interpolate = ($a[1] == null ? nil : $a[1])), $b; + self.start_delim = (function() {if ($truthy($$($nesting, 'DELIMITERS')['$include?'](delimiter))) { + return delimiter + } else { + return nil + }; return nil; })(); + self.end_delim = $$($nesting, 'DELIMITERS').$fetch(delimiter, delimiter); + self.heredoc_e = heredoc_e; + self.indent = indent; + self.label_allowed = label_allowed; + self.dedent_body = dedent_body; + self.dedent_level = nil; + self.interp_braces = 0; + self.space_emitted = true; + self.monolithic = (function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.start_tok['$==']("tSTRING_BEG")))) { + return [$enc("'", "ASCII-8BIT"), $enc("\"", "ASCII-8BIT")]['$include?'](str_type) + } else { + return $ret_or_2 + }; return nil; })()))) { + return self['$heredoc?']()['$!']() + } else { + return $ret_or_1 + }; return nil; })(); + if ($truthy(self.str_type['$start_with?']($enc("%", "ASCII-8BIT").$freeze()))) { + self.str_type = $rb_plus(self.str_type, delimiter)}; + self.$clear_buffer(); + if ($truthy(self.monolithic)) { + return nil + } else { + return self.$emit_start_tok() + }; + }, $Literal_initialize$1.$$arity = -5); + + Opal.def(self, '$interpolate?', $Literal_interpolate$ques$2 = function() { + var self = this; + + return self.interpolate + }, $Literal_interpolate$ques$2.$$arity = 0); + + Opal.def(self, '$words?', $Literal_words$ques$3 = function() { + var self = this, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + + if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.$type()['$==']("tWORDS_BEG")))) { + return $ret_or_5 + } else { + return self.$type()['$==']("tQWORDS_BEG") + }; return nil; })()))) { + return $ret_or_4 + } else { + return self.$type()['$==']("tSYMBOLS_BEG") + }; return nil; })()))) { + return $ret_or_3 + } else { + return self.$type()['$==']("tQSYMBOLS_BEG") + } + }, $Literal_words$ques$3.$$arity = 0); + + Opal.def(self, '$regexp?', $Literal_regexp$ques$4 = function() { + var self = this; + + return self.$type()['$==']("tREGEXP_BEG") + }, $Literal_regexp$ques$4.$$arity = 0); + + Opal.def(self, '$heredoc?', $Literal_heredoc$ques$5 = function() { + var self = this; + + return self.heredoc_e['$!']()['$!']() + }, $Literal_heredoc$ques$5.$$arity = 0); + + Opal.def(self, '$plain_heredoc?', $Literal_plain_heredoc$ques$6 = function() { + var self = this, $ret_or_6 = nil; + + if ($truthy(($ret_or_6 = self['$heredoc?']()))) { + return self.dedent_body['$!']() + } else { + return $ret_or_6 + } + }, $Literal_plain_heredoc$ques$6.$$arity = 0); + + Opal.def(self, '$squiggly_heredoc?', $Literal_squiggly_heredoc$ques$7 = function() { + var self = this, $ret_or_7 = nil; + + if ($truthy(($ret_or_7 = self['$heredoc?']()))) { + return self.dedent_body + } else { + return $ret_or_7 + } + }, $Literal_squiggly_heredoc$ques$7.$$arity = 0); + + Opal.def(self, '$backslash_delimited?', $Literal_backslash_delimited$ques$8 = function() { + var self = this; + + return self.end_delim['$==']($enc("\\", "ASCII-8BIT").$freeze()) + }, $Literal_backslash_delimited$ques$8.$$arity = 0); + + Opal.def(self, '$type', $Literal_type$9 = function $$type() { + var self = this; + + return self.start_tok + }, $Literal_type$9.$$arity = 0); + + Opal.def(self, '$munge_escape?', $Literal_munge_escape$ques$10 = function(character) { + var self = this, $ret_or_8 = nil; + + + character = self.$coerce_encoding(character); + if ($truthy((function() {if ($truthy(($ret_or_8 = self['$words?']()))) { + return character['$=~'](/[ \t\v\r\f\n]/) + } else { + return $ret_or_8 + }; return nil; })())) { + return true + } else { + return [$enc("\\", "ASCII-8BIT").$freeze(), self.start_delim, self.end_delim]['$include?'](character) + }; + }, $Literal_munge_escape$ques$10.$$arity = 1); + + Opal.def(self, '$nest_and_try_closing', $Literal_nest_and_try_closing$11 = function $$nest_and_try_closing(delimiter, ts, te, lookahead) { + var self = this, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + + + + if (lookahead == null) { + lookahead = nil; + }; + delimiter = self.$coerce_encoding(delimiter); + if ($truthy((function() {if ($truthy(($ret_or_9 = self.start_delim))) { + return self.start_delim['$=='](delimiter) + } else { + return $ret_or_9 + }; return nil; })())) { + self.nesting = $rb_plus(self.nesting, 1) + } else if ($truthy(self['$delimiter?'](delimiter))) { + self.nesting = $rb_minus(self.nesting, 1)}; + if (self.nesting['$=='](0)) { + + if ($truthy(self['$words?']())) { + self.$extend_space(ts, ts)}; + if ($truthy((function() {if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = (function() {if ($truthy(($ret_or_13 = lookahead))) { + return self.label_allowed + } else { + return $ret_or_13 + }; return nil; })()))) { + return lookahead['$[]'](0)['$==']($enc(":", "ASCII-8BIT")) + } else { + return $ret_or_12 + }; return nil; })()))) { + return lookahead['$[]'](1)['$!=']($enc(":", "ASCII-8BIT")) + } else { + return $ret_or_11 + }; return nil; })()))) { + return self.start_tok['$==']("tSTRING_BEG") + } else { + return $ret_or_10 + }; return nil; })())) { - self.te = p; - p = $rb_minus(p, 1); + self.$flush_string(); + return self.$emit("tLABEL_END", self.end_delim, ts, $rb_plus(te, 1)); + } else if ($truthy(self.monolithic)) { + return self.$emit("tSTRING", self.buffer, self.str_s, te) + } else { - value = ($truthy($v = self.escape) ? $v : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($v = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) + if ($truthy(self['$heredoc?']())) { + } else { + self.$flush_string() }; - self.cs = 766; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((107)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr();; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($w = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $w))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($w = self.escape) ? $w : self.$tok()), self.ts, self.te) - };;;} - else if ((133)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr();; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; - - self.te = p; - p = $rb_minus(p, 1); - - current_literal = self.$literal(); - escaped_char = self.source_buffer.$slice(self.escape_s).$chr(); - if ($truthy(current_literal['$munge_escape?'](escaped_char))) { - if ($truthy(($truthy($w = current_literal['$regexp?']()) ? Opal.const_get_relative($nesting, 'REGEXP_META_CHARACTERS').$match(escaped_char) : $w))) { - current_literal.$extend_string(self.$tok(), self.ts, self.te) - } else { - current_literal.$extend_string(escaped_char, self.ts, self.te) - } - } else if ($truthy(current_literal['$regexp?']())) { - current_literal.$extend_string(self.$tok().$gsub("\\\n".$freeze(), "".$freeze()), self.ts, self.te) - } else { - current_literal.$extend_string(($truthy($w = self.escape) ? $w : self.$tok()), self.ts, self.te) - };;;} - else if ((329)['$===']($case)) { - - self.escape = self.source_buffer.$slice($rb_minus(p, 1)).$chr();; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$&'](159));; - - self.escape = self.$encode_escape(self.escape['$[]'](0).$ord()['$|'](128));; + return self.$emit("tSTRING_END", self.end_delim, ts, te); + }; + } else { + return nil + }; + }, $Literal_nest_and_try_closing$11.$$arity = -4); + + Opal.def(self, '$infer_indent_level', $Literal_infer_indent_level$12 = function $$infer_indent_level(line) { + var $$13, self = this, indent_level = nil; + + + if ($truthy(self.dedent_body['$!']())) { + return nil}; + indent_level = 0; + return (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], ($$13 = function(char$){var self = $$13.$$s == null ? this : $$13.$$s, $case = nil, $ret_or_14 = nil; + if (self.dedent_level == null) self.dedent_level = nil; + + + + if (char$ == null) { + char$ = nil; + }; + return (function() {$case = char$; + if (" "['$===']($case)) {return (indent_level = $rb_plus(indent_level, 1))} + else if ("\t"['$===']($case)) {return (indent_level = $rb_plus(indent_level, $rb_minus(8, indent_level['$%'](8))))} + else { + if ($truthy((function() {if ($truthy(($ret_or_14 = self.dedent_level['$nil?']()))) { + return $ret_or_14 + } else { + return $rb_gt(self.dedent_level, indent_level) + }; return nil; })())) { + self.dedent_level = indent_level}; + + Opal.brk(nil, $brk);}})();}, $$13.$$s = self, $$13.$$brk = $brk, $$13.$$arity = 1, $$13)) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + }, $Literal_infer_indent_level$12.$$arity = 1); + + Opal.def(self, '$start_interp_brace', $Literal_start_interp_brace$14 = function $$start_interp_brace() { + var self = this; + + return (self.interp_braces = $rb_plus(self.interp_braces, 1)) + }, $Literal_start_interp_brace$14.$$arity = 0); + + Opal.def(self, '$end_interp_brace_and_try_closing', $Literal_end_interp_brace_and_try_closing$15 = function $$end_interp_brace_and_try_closing() { + var self = this; + + + self.interp_braces = $rb_minus(self.interp_braces, 1); + + return self.interp_braces['$=='](0);; + }, $Literal_end_interp_brace_and_try_closing$15.$$arity = 0); + + Opal.def(self, '$extend_string', $Literal_extend_string$16 = function $$extend_string(string, ts, te) { + var self = this, $ret_or_15 = nil; + + + self.buffer_s = (function() {if ($truthy(($ret_or_15 = self.buffer_s))) { + return $ret_or_15 + } else { + return ts + }; return nil; })(); + self.buffer_e = te; + return self.buffer['$<<'](string); + }, $Literal_extend_string$16.$$arity = 3); + + Opal.def(self, '$flush_string', $Literal_flush_string$17 = function $$flush_string() { + var self = this; + + + if ($truthy(self.monolithic)) { + + self.$emit_start_tok(); + self.monolithic = false;}; + if ($truthy(self.buffer['$empty?']())) { + return nil + } else { + + self.$emit("tSTRING_CONTENT", self.buffer, self.buffer_s, self.buffer_e); + self.$clear_buffer(); + return self.$extend_content(); + }; + }, $Literal_flush_string$17.$$arity = 0); + + Opal.def(self, '$extend_content', $Literal_extend_content$18 = function $$extend_content() { + var self = this; + + return (self.space_emitted = false) + }, $Literal_extend_content$18.$$arity = 0); + + Opal.def(self, '$extend_space', $Literal_extend_space$19 = function $$extend_space(ts, te) { + var self = this; + + + self.$flush_string(); + if ($truthy(self.space_emitted)) { + return nil + } else { + + self.$emit("tSPACE", nil, ts, te); + return (self.space_emitted = true); + }; + }, $Literal_extend_space$19.$$arity = 2); + + Opal.def(self, '$supports_line_continuation_via_slash?', $Literal_supports_line_continuation_via_slash$ques$20 = function() { + var self = this, $ret_or_16 = nil; + + if ($truthy(($ret_or_16 = self['$words?']()['$!']()))) { + return self.interpolate + } else { + return $ret_or_16 + } + }, $Literal_supports_line_continuation_via_slash$ques$20.$$arity = 0); + self.$protected(); + + Opal.def(self, '$delimiter?', $Literal_delimiter$ques$21 = function(delimiter) { + var self = this; + + if ($truthy(self.indent)) { + return self.end_delim['$=='](delimiter.$lstrip()) + } else { + return self.end_delim['$=='](delimiter) + } + }, $Literal_delimiter$ques$21.$$arity = 1); + + Opal.def(self, '$coerce_encoding', $Literal_coerce_encoding$22 = function $$coerce_encoding(string) { + var self = this; + + return string.$b() + }, $Literal_coerce_encoding$22.$$arity = 1); + + Opal.def(self, '$clear_buffer', $Literal_clear_buffer$23 = function $$clear_buffer() { + var self = this; + + + self.buffer = $enc("", "ASCII-8BIT").$dup(); + self.buffer.$force_encoding(self.lexer.$source_buffer().$source().$encoding()); + self.buffer_s = nil; + return (self.buffer_e = nil); + }, $Literal_clear_buffer$23.$$arity = 0); + + Opal.def(self, '$emit_start_tok', $Literal_emit_start_tok$24 = function $$emit_start_tok() { + var self = this, str_e = nil, $ret_or_17 = nil; + + + str_e = (function() {if ($truthy(($ret_or_17 = self.heredoc_e))) { + return $ret_or_17 + } else { + return $rb_plus(self.str_s, self.str_type.$length()) + }; return nil; })(); + return self.$emit(self.start_tok, self.str_type, self.str_s, str_e); + }, $Literal_emit_start_tok$24.$$arity = 0); + return (Opal.def(self, '$emit', $Literal_emit$25 = function $$emit(token, type, s, e) { + var self = this; + + return self.lexer.$send("emit", token, type, s, e) + }, $Literal_emit$25.$$arity = 4), nil) && 'emit'; + })($$($nesting, 'Lexer'), null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/lexer/stack_state"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias; + + Opal.add_stubs(['$freeze', '$clear', '$|', '$<<', '$&', '$>>', '$==', '$[]', '$to_s']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'StackState'); + + var $nesting = [self].concat($parent_nesting), $StackState_initialize$1, $StackState_clear$2, $StackState_push$3, $StackState_pop$4, $StackState_lexpop$5, $StackState_active$ques$6, $StackState_empty$ques$7, $StackState_to_s$8; + + self.$$prototype.stack = self.$$prototype.name = nil; + + + Opal.def(self, '$initialize', $StackState_initialize$1 = function $$initialize(name) { + var self = this; + + + self.name = name.$freeze(); + return self.$clear(); + }, $StackState_initialize$1.$$arity = 1); + + Opal.def(self, '$clear', $StackState_clear$2 = function $$clear() { + var self = this; + + return (self.stack = 0) + }, $StackState_clear$2.$$arity = 0); + + Opal.def(self, '$push', $StackState_push$3 = function $$push(bit) { + var self = this, bit_value = nil; + + + bit_value = (function() {if ($truthy(bit)) { + return 1 + } else { + return 0 + }; return nil; })(); + self.stack = self.stack['$<<'](1)['$|'](bit_value); + return bit; + }, $StackState_push$3.$$arity = 1); + + Opal.def(self, '$pop', $StackState_pop$4 = function $$pop() { + var self = this, bit_value = nil; + + + bit_value = self.stack['$&'](1); + self.stack = self.stack['$>>'](1); + return bit_value['$=='](1); + }, $StackState_pop$4.$$arity = 0); + + Opal.def(self, '$lexpop', $StackState_lexpop$5 = function $$lexpop() { + var self = this; + + + self.stack = self.stack['$>>'](1)['$|'](self.stack['$&'](1)); + return self.stack['$[]'](0)['$=='](1); + }, $StackState_lexpop$5.$$arity = 0); + + Opal.def(self, '$active?', $StackState_active$ques$6 = function() { + var self = this; + + return self.stack['$[]'](0)['$=='](1) + }, $StackState_active$ques$6.$$arity = 0); + + Opal.def(self, '$empty?', $StackState_empty$ques$7 = function() { + var self = this; + + return self.stack['$=='](0) + }, $StackState_empty$ques$7.$$arity = 0); + + Opal.def(self, '$to_s', $StackState_to_s$8 = function $$to_s() { + var self = this; + + return "" + "[" + (self.stack.$to_s(2)) + " <= " + (self.name) + "]" + }, $StackState_to_s$8.$$arity = 0); + return $alias(self, "inspect", "to_s"); + })($$($nesting, 'Lexer'), null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/lexer/dedenter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_times(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); + } + function $rb_divide(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $slice = Opal.slice; + + Opal.add_stubs(['$encoding', '$split', '$force_encoding', '$map!', '$each', '$each_char', '$<=', '$===', '$+', '$-', '$>', '$*', '$/', '$slice!', '$replace', '$join', '$end_with?']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Dedenter'); + + var $nesting = [self].concat($parent_nesting), $Dedenter_initialize$1, $Dedenter_dedent$2, $Dedenter_interrupt$6; + + self.$$prototype.at_line_begin = nil; + + Opal.const_set($nesting[0], 'TAB_WIDTH', 8); + + Opal.def(self, '$initialize', $Dedenter_initialize$1 = function $$initialize(dedent_level) { + var self = this; + + + self.dedent_level = dedent_level; + self.at_line_begin = true; + return (self.indent_level = 0); + }, $Dedenter_initialize$1.$$arity = 1); + + Opal.def(self, '$dedent', $Dedenter_dedent$2 = function $$dedent(string) { + var $$3, $a, $b, $$4, self = this, original_encoding = nil, lines = nil, lines_to_dedent = nil, _first = nil; + + + original_encoding = string.$encoding(); + lines = string.$force_encoding($$$($$($nesting, 'Encoding'), 'BINARY')).$split("\\\n"); + $send(lines, 'map!', [], ($$3 = function(s){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (s == null) { + s = nil; + }; + return s.$force_encoding(original_encoding);}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + if ($truthy(self.at_line_begin)) { + lines_to_dedent = lines + } else { + $b = lines, $a = Opal.to_ary($b), (_first = ($a[0] == null ? nil : $a[0])), (lines_to_dedent = $slice.call($a, 1)), $b + }; + (function(){var $brk = Opal.new_brk(); try {return $send(lines_to_dedent, 'each', [], ($$4 = function(line){var self = $$4.$$s == null ? this : $$4.$$s, $$5, left_to_remove = nil, remove = nil; + if (self.dedent_level == null) self.dedent_level = nil; + + + + if (line == null) { + line = nil; + }; + left_to_remove = self.dedent_level; + remove = 0; + (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], ($$5 = function(char$){var self = $$5.$$s == null ? this : $$5.$$s, $case = nil; + if (self.dedent_level == null) self.dedent_level = nil; + - self.te = p; - p = $rb_minus(p, 1); - value = ($truthy($w = self.escape) ? $w : self.$tok($rb_plus(self.ts, 1))); - if ($truthy(self['$version?'](18))) { - if ($truthy((($w = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.$emit("tINTEGER", value.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))['$[]'](0).$ord()) - } else { - self.$emit("tINTEGER", value['$[]'](0).$ord()) - } - } else { - self.$emit("tCHARACTER", value) + if (char$ == null) { + char$ = nil; }; - self.cs = 766; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((423)['$===']($case)) { - - self.num_base = 16; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], (TMP_27 = function(chars){var self = TMP_27.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($x = ($truthy($y = digits['$empty?']()) ? self.num_base['$=='](8) : $y)) ? self['$version?'](18) : $x))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($x = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { + if ($truthy($rb_le(left_to_remove, 0))) { - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + Opal.brk(nil, $brk)}; + return (function() {$case = char$; + if (" "['$===']($case)) { + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, 1));} + else if ("\t"['$===']($case)) { + if ($truthy($rb_gt($rb_times($$($nesting, 'TAB_WIDTH'), $rb_plus($rb_divide(remove, $$($nesting, 'TAB_WIDTH')), 1)), self.dedent_level))) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) - }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((417)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], (TMP_28 = function(chars){var self = TMP_28.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_28.$$s = self, TMP_28.$$arity = 1, TMP_28));; + Opal.brk(nil, $brk)}; + remove = $rb_plus(remove, 1); + return (left_to_remove = $rb_minus(left_to_remove, $$($nesting, 'TAB_WIDTH')));} + else { + Opal.brk(nil, $brk)}})();}, $$5.$$s = self, $$5.$$brk = $brk, $$5.$$arity = 1, $$5)) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + return line['$slice!'](0, remove);}, $$4.$$s = self, $$4.$$brk = $brk, $$4.$$arity = 1, $$4)) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + string.$replace(lines.$join()); + return (self.at_line_begin = string['$end_with?']("\n")); + }, $Dedenter_dedent$2.$$arity = 1); + return (Opal.def(self, '$interrupt', $Dedenter_interrupt$6 = function $$interrupt() { + var self = this; + + return (self.at_line_begin = false) + }, $Dedenter_interrupt$6.$$arity = 0), nil) && 'interrupt'; + })($$($nesting, 'Lexer'), null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/builders/default"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $slice = Opal.slice; + + Opal.add_stubs(['$attr_accessor', '$n0', '$token_map', '$numeric', '$n', '$value', '$new', '$loc', '$private', '$===', '$+@', '$-@', '$updated', '$join', '$expression', '$string_value', '$delimited_string_map', '$unquoted_map', '$collapse_string_parts?', '$nil?', '$first', '$children', '$string_map', '$prefix_string_map', '$to_sym', '$collection_map', '$==', '$version', '$empty?', '$diagnostic', '$!', '$type', '$dedent', '$map', '$interrupt', '$compact', '$uniq', '$sort', '$each_char', '$to_proc', '$static_regexp', '$message', '$<<', '$regexp_map', '$unary_op_map', '$binary_op_map', '$!=', '$%', '$size', '$last', '$each_slice', '$pair_keyword_map', '$pair_quoted_map', '$symbol_compose', '$range_map', '$variable_map', '$name', '$source_buffer', '$dup', '$line', '$emit_encoding', '$class', '$declared?', '$static_env', '$to_s', '$top', '$current_arg_stack', '$parser', '$var_send_map', '$constant_map', '$dynamic_const_definition_allowed?', '$context', '$[]', '$check_assignment_to_numparam', '$check_reserved_for_numparam', '$declare', '$with_expression', '$with_operator', '$join_exprs', '$module_definition_map', '$definition_map', '$endless_definition_map', '$validate_definee', '$keyword_map', '$check_duplicate_args', '$emit_forward_arg', '$forward_arg', '$arg_prefix_map', '$kwarg_map', '$emit_procarg0', '$emit_arg_inside_procarg0', '$location', '$resize', '$-', '$end', '$call_type_for_dot', '$emit_kwargs', '$rewrite_hash_args_to_kwargs', '$send_map', '$emit_lambda', '$expr_map', '$keyword', '$include?', '$block_map', '$array', '$+', '$emit_index', '$index_map', '$send_index_map', '$send_binary_op_map', '$static_regexp_node', '$each', '$names', '$send_unary_op_map', '$check_condition', '$condition_map', '$keyword_mod_map', '$ternary_map', '$for_map', '$>', '$count', '$rescue_body_map', '$any?', '$eh_keyword_map', '$push', '$none?', '$one?', '$begin', '$guard_map', '$check_lvar_name', '$check_duplicate_pattern_variable', '$adjust', '$length', '$match_hash_var_from_str', '$match_var', '$check_duplicate_pattern_key', '$pair_keyword', '$static_string', '$pair_quoted', '$match_hash_var', '$<=', '$check_duplicate_arg', '$is_a?', '$[]=', '$arg_name_collides?', '$<', '$in_dynamic_block?', '$=~', '$has_numparams?', '$max_numparam_stack', '$start_with?', '$pattern_variables', '$pattern_hash_keys', '$with', '$begin_pos', '$end_pos', '$encode', '$valid_encoding?', '$process', '$diagnostics', '$send', '$kwargs?']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Default'); + + var $nesting = [self].concat($parent_nesting), $Default_initialize$2, $Default_nil$3, $Default_true$4, $Default_false$5, $Default_integer$6, $Default_float$7, $Default_rational$8, $Default_complex$9, $Default_numeric$10, $Default_unary_num$11, $Default___LINE__$12, $Default_string$13, $Default_string_internal$14, $Default_string_compose$15, $Default_character$16, $Default___FILE__$17, $Default_symbol$18, $Default_symbol_internal$19, $Default_symbol_compose$20, $Default_xstring_compose$21, $Default_dedent_string$22, $Default_regexp_options$24, $Default_regexp_compose$25, $Default_array$26, $Default_splat$27, $Default_word$28, $Default_words_compose$29, $Default_symbols_compose$30, $Default_pair$32, $Default_pair_list_18$33, $Default_pair_keyword$35, $Default_pair_quoted$36, $Default_kwsplat$37, $Default_associate$38, $Default_range_inclusive$39, $Default_range_exclusive$40, $Default_self$41, $Default_ident$42, $Default_ivar$43, $Default_gvar$44, $Default_cvar$45, $Default_back_ref$46, $Default_nth_ref$47, $Default_accessible$48, $Default_const$49, $Default_const_global$50, $Default_const_fetch$51, $Default___ENCODING__$52, $Default_assignable$53, $Default_const_op_assignable$54, $Default_assign$55, $Default_op_assign$56, $Default_multi_lhs$57, $Default_multi_assign$58, $Default_def_class$59, $Default_def_sclass$60, $Default_def_module$61, $Default_def_method$62, $Default_def_endless_method$63, $Default_def_singleton$64, $Default_def_endless_singleton$65, $Default_undef_method$66, $Default_alias$67, $Default_args$68, $Default_numargs$69, $Default_forward_only_args$70, $Default_forward_arg$71, $Default_arg$72, $Default_optarg$73, $Default_restarg$74, $Default_kwarg$75, $Default_kwoptarg$76, $Default_kwrestarg$77, $Default_kwnilarg$78, $Default_shadowarg$79, $Default_blockarg$80, $Default_procarg0$81, $Default_arg_expr$82, $Default_restarg_expr$83, $Default_blockarg_expr$84, $Default_objc_kwarg$85, $Default_objc_restarg$86, $Default_call_type_for_dot$87, $Default_forwarded_args$88, $Default_call_method$89, $Default_call_lambda$90, $Default_block$91, $Default_block_pass$92, $Default_objc_varargs$93, $Default_attr_asgn$94, $Default_index$95, $Default_index_asgn$96, $Default_binary_op$97, $Default_match_op$98, $Default_unary_op$100, $Default_not_op$101, $Default_logical_op$102, $Default_condition$103, $Default_condition_mod$104, $Default_ternary$105, $Default_when$106, $Default_case$107, $Default_loop$108, $Default_loop_mod$109, $Default_for$110, $Default_keyword_cmd$111, $Default_preexe$112, $Default_postexe$113, $Default_rescue_body$114, $Default_begin_body$115, $Default_compstmt$116, $Default_begin$117, $Default_begin_keyword$118, $Default_case_match$119, $Default_in_match$120, $Default_match_pattern$121, $Default_match_pattern_p$122, $Default_in_pattern$123, $Default_if_guard$124, $Default_unless_guard$125, $Default_match_var$126, $Default_match_hash_var$127, $Default_match_hash_var_from_str$128, $Default_match_rest$129, $Default_hash_pattern$130, $Default_array_pattern$131, $Default_find_pattern$133, $Default_match_with_trailing_comma$134, $Default_const_pattern$135, $Default_pin$136, $Default_match_alt$137, $Default_match_as$138, $Default_match_nil_pattern$139, $Default_match_pair$140, $Default_match_label$141, $Default_check_condition$142, $Default_check_duplicate_args$143, $Default_check_duplicate_arg$145, $Default_check_assignment_to_numparam$146, $Default_check_reserved_for_numparam$147, $Default_arg_name_collides$ques$148, $Default_check_lvar_name$149, $Default_check_duplicate_pattern_variable$150, $Default_check_duplicate_pattern_key$151, $Default_n$152, $Default_n0$153, $Default_join_exprs$154, $Default_token_map$155, $Default_delimited_string_map$156, $Default_prefix_string_map$157, $Default_unquoted_map$158, $Default_pair_keyword_map$159, $Default_pair_quoted_map$160, $Default_expr_map$161, $Default_collection_map$162, $Default_string_map$163, $Default_regexp_map$164, $Default_constant_map$165, $Default_variable_map$166, $Default_binary_op_map$167, $Default_unary_op_map$168, $Default_range_map$169, $Default_arg_prefix_map$170, $Default_kwarg_map$171, $Default_module_definition_map$172, $Default_definition_map$173, $Default_endless_definition_map$174, $Default_send_map$175, $Default_var_send_map$176, $Default_send_binary_op_map$177, $Default_send_unary_op_map$178, $Default_index_map$179, $Default_send_index_map$180, $Default_block_map$181, $Default_keyword_map$182, $Default_keyword_mod_map$183, $Default_condition_map$184, $Default_ternary_map$185, $Default_for_map$186, $Default_rescue_body_map$187, $Default_eh_keyword_map$188, $Default_guard_map$189, $Default_static_string$190, $Default_static_regexp$192, $Default_static_regexp_node$193, $Default_collapse_string_parts$ques$194, $Default_value$195, $Default_string_value$196, $Default_loc$197, $Default_diagnostic$198, $Default_validate_definee$199, $Default_rewrite_hash_args_to_kwargs$200, $Default_kwargs$ques$201; + + self.$$prototype.parser = self.$$prototype.emit_file_line_as_literals = nil; + + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("emit_lambda") + })(Opal.get_singleton_class(self), $nesting); + self.emit_lambda = false; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("emit_procarg0") + })(Opal.get_singleton_class(self), $nesting); + self.emit_procarg0 = false; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("emit_encoding") + })(Opal.get_singleton_class(self), $nesting); + self.emit_encoding = false; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("emit_index") + })(Opal.get_singleton_class(self), $nesting); + self.emit_index = false; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("emit_arg_inside_procarg0") + })(Opal.get_singleton_class(self), $nesting); + self.emit_arg_inside_procarg0 = false; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("emit_forward_arg") + })(Opal.get_singleton_class(self), $nesting); + self.emit_forward_arg = false; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("emit_kwargs") + })(Opal.get_singleton_class(self), $nesting); + self.emit_kwargs = false; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("emit_match_pattern") + })(Opal.get_singleton_class(self), $nesting); + self.emit_match_pattern = false; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $modernize$1; + + return (Opal.def(self, '$modernize', $modernize$1 = function $$modernize() { + var self = this; + + + self.emit_lambda = true; + self.emit_procarg0 = true; + self.emit_encoding = true; + self.emit_index = true; + self.emit_arg_inside_procarg0 = true; + self.emit_forward_arg = true; + self.emit_kwargs = true; + return (self.emit_match_pattern = true); + }, $modernize$1.$$arity = 0), nil) && 'modernize' + })(Opal.get_singleton_class(self), $nesting); + self.$attr_accessor("parser"); + self.$attr_accessor("emit_file_line_as_literals"); + + Opal.def(self, '$initialize', $Default_initialize$2 = function $$initialize() { + var self = this; + + return (self.emit_file_line_as_literals = true) + }, $Default_initialize$2.$$arity = 0); + + Opal.def(self, '$nil', $Default_nil$3 = function $$nil(nil_t) { + var self = this; + + return self.$n0("nil", self.$token_map(nil_t)) + }, $Default_nil$3.$$arity = 1); + + Opal.def(self, '$true', $Default_true$4 = function(true_t) { + var self = this; + + return self.$n0("true", self.$token_map(true_t)) + }, $Default_true$4.$$arity = 1); + + Opal.def(self, '$false', $Default_false$5 = function(false_t) { + var self = this; + + return self.$n0("false", self.$token_map(false_t)) + }, $Default_false$5.$$arity = 1); + + Opal.def(self, '$integer', $Default_integer$6 = function $$integer(integer_t) { + var self = this; + + return self.$numeric("int", integer_t) + }, $Default_integer$6.$$arity = 1); + + Opal.def(self, '$float', $Default_float$7 = function(float_t) { + var self = this; + + return self.$numeric("float", float_t) + }, $Default_float$7.$$arity = 1); + + Opal.def(self, '$rational', $Default_rational$8 = function $$rational(rational_t) { + var self = this; + + return self.$numeric("rational", rational_t) + }, $Default_rational$8.$$arity = 1); + + Opal.def(self, '$complex', $Default_complex$9 = function $$complex(complex_t) { + var self = this; + + return self.$numeric("complex", complex_t) + }, $Default_complex$9.$$arity = 1); + + Opal.def(self, '$numeric', $Default_numeric$10 = function $$numeric(kind, token) { + var self = this; + + return self.$n(kind, [self.$value(token)], $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(nil, self.$loc(token))) + }, $Default_numeric$10.$$arity = 2); + self.$private("numeric"); + + Opal.def(self, '$unary_num', $Default_unary_num$11 = function $$unary_num(unary_t, numeric) { + var $a, self = this, value = nil, operator_loc = nil, $case = nil; + + + $a = [].concat(Opal.to_a(numeric)), (value = ($a[0] == null ? nil : $a[0])), $a; + operator_loc = self.$loc(unary_t); + $case = self.$value(unary_t); + if ("+"['$===']($case)) {value = value['$+@']()} + else if ("-"['$===']($case)) {value = value['$-@']()}; + return numeric.$updated(nil, [value], $hash2(["location"], {"location": $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(operator_loc, operator_loc.$join(numeric.$loc().$expression()))})); + }, $Default_unary_num$11.$$arity = 2); + + Opal.def(self, '$__LINE__', $Default___LINE__$12 = function $$__LINE__(__LINE__t) { + var self = this; + + return self.$n0("__LINE__", self.$token_map(__LINE__t)) + }, $Default___LINE__$12.$$arity = 1); + + Opal.def(self, '$string', $Default_string$13 = function $$string(string_t) { + var self = this; + + return self.$n("str", [self.$string_value(string_t)], self.$delimited_string_map(string_t)) + }, $Default_string$13.$$arity = 1); + + Opal.def(self, '$string_internal', $Default_string_internal$14 = function $$string_internal(string_t) { + var self = this; + + return self.$n("str", [self.$string_value(string_t)], self.$unquoted_map(string_t)) + }, $Default_string_internal$14.$$arity = 1); + + Opal.def(self, '$string_compose', $Default_string_compose$15 = function $$string_compose(begin_t, parts, end_t) { + var self = this, $ret_or_1 = nil; + + if ($truthy(self['$collapse_string_parts?'](parts))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = begin_t['$nil?']()))) { + return end_t['$nil?']() + } else { + return $ret_or_1 + }; return nil; })())) { + return parts.$first() + } else { + return self.$n("str", parts.$first().$children(), self.$string_map(begin_t, parts, end_t)) + } + } else { + return self.$n("dstr", [].concat(Opal.to_a(parts)), self.$string_map(begin_t, parts, end_t)) + } + }, $Default_string_compose$15.$$arity = 3); + + Opal.def(self, '$character', $Default_character$16 = function $$character(char_t) { + var self = this; + + return self.$n("str", [self.$string_value(char_t)], self.$prefix_string_map(char_t)) + }, $Default_character$16.$$arity = 1); + + Opal.def(self, '$__FILE__', $Default___FILE__$17 = function $$__FILE__(__FILE__t) { + var self = this; + + return self.$n0("__FILE__", self.$token_map(__FILE__t)) + }, $Default___FILE__$17.$$arity = 1); + + Opal.def(self, '$symbol', $Default_symbol$18 = function $$symbol(symbol_t) { + var self = this; + + return self.$n("sym", [self.$string_value(symbol_t).$to_sym()], self.$prefix_string_map(symbol_t)) + }, $Default_symbol$18.$$arity = 1); + + Opal.def(self, '$symbol_internal', $Default_symbol_internal$19 = function $$symbol_internal(symbol_t) { + var self = this; + + return self.$n("sym", [self.$string_value(symbol_t).$to_sym()], self.$unquoted_map(symbol_t)) + }, $Default_symbol_internal$19.$$arity = 1); + + Opal.def(self, '$symbol_compose', $Default_symbol_compose$20 = function $$symbol_compose(begin_t, parts, end_t) { + var self = this, str = nil, $ret_or_2 = nil; + + if ($truthy(self['$collapse_string_parts?'](parts))) { + + str = parts.$first(); + return self.$n("sym", [str.$children().$first().$to_sym()], self.$collection_map(begin_t, str.$loc().$expression(), end_t)); + } else if ($truthy((function() {if ($truthy(($ret_or_2 = self.parser.$version()['$=='](18)))) { + return parts['$empty?']() + } else { + return $ret_or_2 + }; return nil; })())) { + return self.$diagnostic("error", "empty_symbol", nil, self.$loc(begin_t).$join(self.$loc(end_t))) + } else { + return self.$n("dsym", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)) + } + }, $Default_symbol_compose$20.$$arity = 3); + + Opal.def(self, '$xstring_compose', $Default_xstring_compose$21 = function $$xstring_compose(begin_t, parts, end_t) { + var self = this; + + return self.$n("xstr", [].concat(Opal.to_a(parts)), self.$string_map(begin_t, parts, end_t)) + }, $Default_xstring_compose$21.$$arity = 3); + + Opal.def(self, '$dedent_string', $Default_dedent_string$22 = function $$dedent_string(node, dedent_level) { + var $$23, self = this, dedenter = nil, $case = nil, str = nil, children = nil; + + + if ($truthy(dedent_level['$nil?']()['$!']())) { + + dedenter = $$$($$($nesting, 'Lexer'), 'Dedenter').$new(dedent_level); + $case = node.$type(); + if ("str"['$===']($case)) { + str = node.$children().$first(); + dedenter.$dedent(str);} + else if ("dstr"['$===']($case) || "xstr"['$===']($case)) { + children = $send(node.$children(), 'map', [], ($$23 = function(str_node){var self = $$23.$$s == null ? this : $$23.$$s; + - self.te = p; - p = $rb_minus(p, 1); - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($x = ($truthy($y = digits['$empty?']()) ? self.num_base['$=='](8) : $y)) ? self['$version?'](18) : $x))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($x = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { - - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) + if (str_node == null) { + str_node = nil; }; - - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((420)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], (TMP_29 = function(chars){var self = TMP_29.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_29.$$s = self, TMP_29.$$arity = 1, TMP_29));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($x = ($truthy($y = digits['$empty?']()) ? self.num_base['$=='](8) : $y)) ? self['$version?'](18) : $x))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($x = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { - - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { + if (str_node.$type()['$==']("str")) { - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) + str = str_node.$children().$first(); + dedenter.$dedent(str); + if ($truthy(str['$empty?']())) { + return nil;}; + } else { + dedenter.$interrupt() }; + return str_node;}, $$23.$$s = self, $$23.$$arity = 1, $$23)); + node = node.$updated(nil, children.$compact());};}; + return node; + }, $Default_dedent_string$22.$$arity = 2); + + Opal.def(self, '$regexp_options', $Default_regexp_options$24 = function $$regexp_options(regopt_t) { + var self = this, options = nil; + + + options = $send(self.$value(regopt_t).$each_char().$sort().$uniq(), 'map', [], "to_sym".$to_proc()); + return self.$n("regopt", options, self.$token_map(regopt_t)); + }, $Default_regexp_options$24.$$arity = 1); + + Opal.def(self, '$regexp_compose', $Default_regexp_compose$25 = function $$regexp_compose(begin_t, parts, end_t, options) { + var self = this, e = nil; + + + + try { + self.$static_regexp(parts, options) + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'RegexpError')])) {(e = $err) + try { + self.$diagnostic("error", "invalid_regexp", $hash2(["message"], {"message": e.$message()}), self.$loc(begin_t).$join(self.$loc(end_t))) + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + return self.$n("regexp", parts['$<<'](options), self.$regexp_map(begin_t, end_t, options)); + }, $Default_regexp_compose$25.$$arity = 4); + + Opal.def(self, '$array', $Default_array$26 = function $$array(begin_t, elements, end_t) { + var self = this; + + return self.$n("array", elements, self.$collection_map(begin_t, elements, end_t)) + }, $Default_array$26.$$arity = 3); + + Opal.def(self, '$splat', $Default_splat$27 = function $$splat(star_t, arg) { + var self = this; + + + + if (arg == null) { + arg = nil; + }; + if ($truthy(arg['$nil?']())) { + return self.$n0("splat", self.$unary_op_map(star_t)) + } else { + return self.$n("splat", [arg], self.$unary_op_map(star_t, arg)) + }; + }, $Default_splat$27.$$arity = -2); + + Opal.def(self, '$word', $Default_word$28 = function $$word(parts) { + var self = this; + + if ($truthy(self['$collapse_string_parts?'](parts))) { + return parts.$first() + } else { + return self.$n("dstr", [].concat(Opal.to_a(parts)), self.$collection_map(nil, parts, nil)) + } + }, $Default_word$28.$$arity = 1); + + Opal.def(self, '$words_compose', $Default_words_compose$29 = function $$words_compose(begin_t, parts, end_t) { + var self = this; + + return self.$n("array", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)) + }, $Default_words_compose$29.$$arity = 3); + + Opal.def(self, '$symbols_compose', $Default_symbols_compose$30 = function $$symbols_compose(begin_t, parts, end_t) { + var $$31, self = this; + + + parts = $send(parts, 'map', [], ($$31 = function(part){var self = $$31.$$s == null ? this : $$31.$$s, $a, $case = nil, value = nil; + + + + if (part == null) { + part = nil; + }; + return (function() {$case = part.$type(); + if ("str"['$===']($case)) { + $a = [].concat(Opal.to_a(part)), (value = ($a[0] == null ? nil : $a[0])), $a; + return part.$updated("sym", [value.$to_sym()]);} + else if ("dstr"['$===']($case)) {return part.$updated("dsym")} + else {return part}})();}, $$31.$$s = self, $$31.$$arity = 1, $$31)); + return self.$n("array", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)); + }, $Default_symbols_compose$30.$$arity = 3); + + Opal.def(self, '$pair', $Default_pair$32 = function $$pair(key, assoc_t, value) { + var self = this; + + return self.$n("pair", [key, value], self.$binary_op_map(key, assoc_t, value)) + }, $Default_pair$32.$$arity = 3); + + Opal.def(self, '$pair_list_18', $Default_pair_list_18$33 = function $$pair_list_18(list) { + var $$34, self = this; + + if ($truthy(list.$size()['$%'](2)['$!='](0))) { + return self.$diagnostic("error", "odd_hash", nil, list.$last().$loc().$expression()) + } else { + return $send(list.$each_slice(2), 'map', [], ($$34 = function(key, value){var self = $$34.$$s == null ? this : $$34.$$s; + - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((414)['$===']($case)) { - - self.num_base = 2; - self.num_digits_s = p;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], (TMP_30 = function(chars){var self = TMP_30.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_30.$$s = self, TMP_30.$$arity = 1, TMP_30));; - - self.te = p; - p = $rb_minus(p, 1); - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($x = ($truthy($y = digits['$empty?']()) ? self.num_base['$=='](8) : $y)) ? self['$version?'](18) : $x))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($x = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { - - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) + if (key == null) { + key = nil; }; - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((426)['$===']($case)) { - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], (TMP_31 = function(chars){var self = TMP_31.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_31.$$s = self, TMP_31.$$arity = 1, TMP_31));; - - self.te = p; - p = $rb_minus(p, 1); - - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($x = ($truthy($y = digits['$empty?']()) ? self.num_base['$=='](8) : $y)) ? self['$version?'](18) : $x))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($x = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { - - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) + if (value == null) { + value = nil; }; + return self.$n("pair", [key, value], self.$binary_op_map(key, nil, value));}, $$34.$$s = self, $$34.$$arity = 2, $$34)) + } + }, $Default_pair_list_18$33.$$arity = 1); + + Opal.def(self, '$pair_keyword', $Default_pair_keyword$35 = function $$pair_keyword(key_t, value) { + var $a, $b, self = this, key_map = nil, pair_map = nil, key = nil; + + + $b = self.$pair_keyword_map(key_t, value), $a = Opal.to_ary($b), (key_map = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; + key = self.$n("sym", [self.$value(key_t).$to_sym()], key_map); + return self.$n("pair", [key, value], pair_map); + }, $Default_pair_keyword$35.$$arity = 2); + + Opal.def(self, '$pair_quoted', $Default_pair_quoted$36 = function $$pair_quoted(begin_t, parts, end_t, value) { + var $a, $b, self = this, pair_map = nil, key = nil; + + + $b = self.$pair_quoted_map(begin_t, end_t, value), $a = Opal.to_ary($b), (end_t = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; + key = self.$symbol_compose(begin_t, parts, end_t); + return self.$n("pair", [key, value], pair_map); + }, $Default_pair_quoted$36.$$arity = 4); + + Opal.def(self, '$kwsplat', $Default_kwsplat$37 = function $$kwsplat(dstar_t, arg) { + var self = this; + + return self.$n("kwsplat", [arg], self.$unary_op_map(dstar_t, arg)) + }, $Default_kwsplat$37.$$arity = 2); + + Opal.def(self, '$associate', $Default_associate$38 = function $$associate(begin_t, pairs, end_t) { + var self = this; + + return self.$n("hash", [].concat(Opal.to_a(pairs)), self.$collection_map(begin_t, pairs, end_t)) + }, $Default_associate$38.$$arity = 3); + + Opal.def(self, '$range_inclusive', $Default_range_inclusive$39 = function $$range_inclusive(lhs, dot2_t, rhs) { + var self = this; + + return self.$n("irange", [lhs, rhs], self.$range_map(lhs, dot2_t, rhs)) + }, $Default_range_inclusive$39.$$arity = 3); + + Opal.def(self, '$range_exclusive', $Default_range_exclusive$40 = function $$range_exclusive(lhs, dot3_t, rhs) { + var self = this; + + return self.$n("erange", [lhs, rhs], self.$range_map(lhs, dot3_t, rhs)) + }, $Default_range_exclusive$40.$$arity = 3); + + Opal.def(self, '$self', $Default_self$41 = function $$self(token) { + var self = this; + + return self.$n0("self", self.$token_map(token)) + }, $Default_self$41.$$arity = 1); + + Opal.def(self, '$ident', $Default_ident$42 = function $$ident(token) { + var self = this; + + return self.$n("ident", [self.$value(token).$to_sym()], self.$variable_map(token)) + }, $Default_ident$42.$$arity = 1); + + Opal.def(self, '$ivar', $Default_ivar$43 = function $$ivar(token) { + var self = this; + + return self.$n("ivar", [self.$value(token).$to_sym()], self.$variable_map(token)) + }, $Default_ivar$43.$$arity = 1); + + Opal.def(self, '$gvar', $Default_gvar$44 = function $$gvar(token) { + var self = this; + + return self.$n("gvar", [self.$value(token).$to_sym()], self.$variable_map(token)) + }, $Default_gvar$44.$$arity = 1); + + Opal.def(self, '$cvar', $Default_cvar$45 = function $$cvar(token) { + var self = this; + + return self.$n("cvar", [self.$value(token).$to_sym()], self.$variable_map(token)) + }, $Default_cvar$45.$$arity = 1); + + Opal.def(self, '$back_ref', $Default_back_ref$46 = function $$back_ref(token) { + var self = this; + + return self.$n("back_ref", [self.$value(token).$to_sym()], self.$token_map(token)) + }, $Default_back_ref$46.$$arity = 1); + + Opal.def(self, '$nth_ref', $Default_nth_ref$47 = function $$nth_ref(token) { + var self = this; + + return self.$n("nth_ref", [self.$value(token)], self.$token_map(token)) + }, $Default_nth_ref$47.$$arity = 1); + + Opal.def(self, '$accessible', $Default_accessible$48 = function $$accessible(node) { + var $a, self = this, $case = nil, name = nil; + + return (function() {$case = node.$type(); + if ("__FILE__"['$===']($case)) {if ($truthy(self.emit_file_line_as_literals)) { + return self.$n("str", [node.$loc().$expression().$source_buffer().$name()], node.$loc().$dup()) + } else { + return node + }} + else if ("__LINE__"['$===']($case)) {if ($truthy(self.emit_file_line_as_literals)) { + return self.$n("int", [node.$loc().$expression().$line()], node.$loc().$dup()) + } else { + return node + }} + else if ("__ENCODING__"['$===']($case)) {if ($truthy(self.$class().$emit_encoding()['$!']())) { + return self.$n("const", [self.$n("const", [nil, "Encoding"], nil), "UTF_8"], node.$loc().$dup()) + } else { + return node + }} + else if ("ident"['$===']($case)) { + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; + if ($truthy(self.parser.$static_env()['$declared?'](name))) { + + if (name.$to_s()['$=='](self.$parser().$current_arg_stack().$top())) { + self.$diagnostic("error", "circular_argument_reference", $hash2(["var_name"], {"var_name": name.$to_s()}), node.$loc().$expression())}; + return node.$updated("lvar"); + } else { + + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; + return self.$n("send", [nil, name], self.$var_send_map(node)); + };} + else {return node}})() + }, $Default_accessible$48.$$arity = 1); + + Opal.def(self, '$const', $Default_const$49 = function(name_t) { + var self = this; + + return self.$n("const", [nil, self.$value(name_t).$to_sym()], self.$constant_map(nil, nil, name_t)) + }, $Default_const$49.$$arity = 1); + + Opal.def(self, '$const_global', $Default_const_global$50 = function $$const_global(t_colon3, name_t) { + var self = this, cbase = nil; + + + cbase = self.$n0("cbase", self.$token_map(t_colon3)); + return self.$n("const", [cbase, self.$value(name_t).$to_sym()], self.$constant_map(cbase, t_colon3, name_t)); + }, $Default_const_global$50.$$arity = 2); + + Opal.def(self, '$const_fetch', $Default_const_fetch$51 = function $$const_fetch(scope, t_colon2, name_t) { + var self = this; + + return self.$n("const", [scope, self.$value(name_t).$to_sym()], self.$constant_map(scope, t_colon2, name_t)) + }, $Default_const_fetch$51.$$arity = 3); + + Opal.def(self, '$__ENCODING__', $Default___ENCODING__$52 = function $$__ENCODING__(__ENCODING__t) { + var self = this; + + return self.$n0("__ENCODING__", self.$token_map(__ENCODING__t)) + }, $Default___ENCODING__$52.$$arity = 1); + + Opal.def(self, '$assignable', $Default_assignable$53 = function $$assignable(node) { + var $a, self = this, $case = nil, name = nil, var_name = nil, name_loc = nil; + + return (function() {$case = node.$type(); + if ("cvar"['$===']($case)) {return node.$updated("cvasgn")} + else if ("ivar"['$===']($case)) {return node.$updated("ivasgn")} + else if ("gvar"['$===']($case)) {return node.$updated("gvasgn")} + else if ("const"['$===']($case)) { + if ($truthy(self.parser.$context()['$dynamic_const_definition_allowed?']())) { + } else { + self.$diagnostic("error", "dynamic_const", nil, node.$loc().$expression()) + }; + return node.$updated("casgn");} + else if ("ident"['$===']($case)) { + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; + var_name = node.$children()['$[]'](0).$to_s(); + name_loc = node.$loc().$expression(); + self.$check_assignment_to_numparam(var_name, name_loc); + self.$check_reserved_for_numparam(var_name, name_loc); + self.parser.$static_env().$declare(name); + return node.$updated("lvasgn");} + else if ("nil"['$===']($case) || "self"['$===']($case) || "true"['$===']($case) || "false"['$===']($case) || "__FILE__"['$===']($case) || "__LINE__"['$===']($case) || "__ENCODING__"['$===']($case)) {return self.$diagnostic("error", "invalid_assignment", nil, node.$loc().$expression())} + else if ("back_ref"['$===']($case) || "nth_ref"['$===']($case)) {return self.$diagnostic("error", "backref_assignment", nil, node.$loc().$expression())} + else { return nil }})() + }, $Default_assignable$53.$$arity = 1); + + Opal.def(self, '$const_op_assignable', $Default_const_op_assignable$54 = function $$const_op_assignable(node) { + var self = this; + + return node.$updated("casgn") + }, $Default_const_op_assignable$54.$$arity = 1); + + Opal.def(self, '$assign', $Default_assign$55 = function $$assign(lhs, eql_t, rhs) { + var self = this; + + return lhs['$<<'](rhs).$updated(nil, nil, $hash2(["location"], {"location": lhs.$loc().$with_operator(self.$loc(eql_t)).$with_expression(self.$join_exprs(lhs, rhs))})) + }, $Default_assign$55.$$arity = 3); + + Opal.def(self, '$op_assign', $Default_op_assign$56 = function $$op_assign(lhs, op_t, rhs) { + var self = this, $case = nil, operator = nil, source_map = nil; + + return (function() {$case = lhs.$type(); + if ("gvasgn"['$===']($case) || "ivasgn"['$===']($case) || "lvasgn"['$===']($case) || "cvasgn"['$===']($case) || "casgn"['$===']($case) || "send"['$===']($case) || "csend"['$===']($case) || "index"['$===']($case)) { + operator = self.$value(op_t)['$[]']($range(0, -1, false)).$to_sym(); + source_map = lhs.$loc().$with_operator(self.$loc(op_t)).$with_expression(self.$join_exprs(lhs, rhs)); + if (lhs.$type()['$==']("index")) { + lhs = lhs.$updated("indexasgn")}; + return (function() {$case = operator; + if ("&&"['$===']($case)) {return self.$n("and_asgn", [lhs, rhs], source_map)} + else if ("||"['$===']($case)) {return self.$n("or_asgn", [lhs, rhs], source_map)} + else {return self.$n("op_asgn", [lhs, operator, rhs], source_map)}})();} + else if ("back_ref"['$===']($case) || "nth_ref"['$===']($case)) {return self.$diagnostic("error", "backref_assignment", nil, lhs.$loc().$expression())} + else { return nil }})() + }, $Default_op_assign$56.$$arity = 3); + + Opal.def(self, '$multi_lhs', $Default_multi_lhs$57 = function $$multi_lhs(begin_t, items, end_t) { + var self = this; + + return self.$n("mlhs", [].concat(Opal.to_a(items)), self.$collection_map(begin_t, items, end_t)) + }, $Default_multi_lhs$57.$$arity = 3); + + Opal.def(self, '$multi_assign', $Default_multi_assign$58 = function $$multi_assign(lhs, eql_t, rhs) { + var self = this; + + return self.$n("masgn", [lhs, rhs], self.$binary_op_map(lhs, eql_t, rhs)) + }, $Default_multi_assign$58.$$arity = 3); + + Opal.def(self, '$def_class', $Default_def_class$59 = function $$def_class(class_t, name, lt_t, superclass, body, end_t) { + var self = this; + + return self.$n("class", [name, superclass, body], self.$module_definition_map(class_t, name, lt_t, end_t)) + }, $Default_def_class$59.$$arity = 6); + + Opal.def(self, '$def_sclass', $Default_def_sclass$60 = function $$def_sclass(class_t, lshft_t, expr, body, end_t) { + var self = this; + + return self.$n("sclass", [expr, body], self.$module_definition_map(class_t, nil, lshft_t, end_t)) + }, $Default_def_sclass$60.$$arity = 5); + + Opal.def(self, '$def_module', $Default_def_module$61 = function $$def_module(module_t, name, body, end_t) { + var self = this; + + return self.$n("module", [name, body], self.$module_definition_map(module_t, name, nil, end_t)) + }, $Default_def_module$61.$$arity = 4); + + Opal.def(self, '$def_method', $Default_def_method$62 = function $$def_method(def_t, name_t, args, body, end_t) { + var self = this; + + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("def", [self.$value(name_t).$to_sym(), args, body], self.$definition_map(def_t, nil, name_t, end_t)); + }, $Default_def_method$62.$$arity = 5); + + Opal.def(self, '$def_endless_method', $Default_def_endless_method$63 = function $$def_endless_method(def_t, name_t, args, assignment_t, body) { + var self = this; + + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("def", [self.$value(name_t).$to_sym(), args, body], self.$endless_definition_map(def_t, nil, name_t, assignment_t, body)); + }, $Default_def_endless_method$63.$$arity = 5); + + Opal.def(self, '$def_singleton', $Default_def_singleton$64 = function $$def_singleton(def_t, definee, dot_t, name_t, args, body, end_t) { + var self = this; + + + self.$validate_definee(definee); + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("defs", [definee, self.$value(name_t).$to_sym(), args, body], self.$definition_map(def_t, dot_t, name_t, end_t)); + }, $Default_def_singleton$64.$$arity = 7); + + Opal.def(self, '$def_endless_singleton', $Default_def_endless_singleton$65 = function $$def_endless_singleton(def_t, definee, dot_t, name_t, args, assignment_t, body) { + var self = this; + + + self.$validate_definee(definee); + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("defs", [definee, self.$value(name_t).$to_sym(), args, body], self.$endless_definition_map(def_t, dot_t, name_t, assignment_t, body)); + }, $Default_def_endless_singleton$65.$$arity = 7); + + Opal.def(self, '$undef_method', $Default_undef_method$66 = function $$undef_method(undef_t, names) { + var self = this; + + return self.$n("undef", [].concat(Opal.to_a(names)), self.$keyword_map(undef_t, nil, names, nil)) + }, $Default_undef_method$66.$$arity = 2); + + Opal.def(self, '$alias', $Default_alias$67 = function $$alias(alias_t, to, from) { + var self = this; + + return self.$n("alias", [to, from], self.$keyword_map(alias_t, nil, [to, from], nil)) + }, $Default_alias$67.$$arity = 3); + + Opal.def(self, '$args', $Default_args$68 = function $$args(begin_t, args, end_t, check_args) { + var self = this; + + + + if (check_args == null) { + check_args = true; + }; + if ($truthy(check_args)) { + args = self.$check_duplicate_args(args)}; + return self.$n("args", args, self.$collection_map(begin_t, args, end_t)); + }, $Default_args$68.$$arity = -4); + + Opal.def(self, '$numargs', $Default_numargs$69 = function $$numargs(max_numparam) { + var self = this; + + return self.$n("numargs", [max_numparam], nil) + }, $Default_numargs$69.$$arity = 1); + + Opal.def(self, '$forward_only_args', $Default_forward_only_args$70 = function $$forward_only_args(begin_t, dots_t, end_t) { + var self = this, arg = nil; + + if ($truthy(self.$class().$emit_forward_arg())) { + + arg = self.$forward_arg(dots_t); + return self.$n("args", [arg], self.$collection_map(begin_t, [arg], end_t)); + } else { + return self.$n("forward_args", [], self.$collection_map(begin_t, self.$token_map(dots_t), end_t)) + } + }, $Default_forward_only_args$70.$$arity = 3); + + Opal.def(self, '$forward_arg', $Default_forward_arg$71 = function $$forward_arg(dots_t) { + var self = this; + + return self.$n("forward_arg", [], self.$token_map(dots_t)) + }, $Default_forward_arg$71.$$arity = 1); + + Opal.def(self, '$arg', $Default_arg$72 = function $$arg(name_t) { + var self = this; + + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("arg", [self.$value(name_t).$to_sym()], self.$variable_map(name_t)); + }, $Default_arg$72.$$arity = 1); + + Opal.def(self, '$optarg', $Default_optarg$73 = function $$optarg(name_t, eql_t, value) { + var self = this; + + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("optarg", [self.$value(name_t).$to_sym(), value], self.$variable_map(name_t).$with_operator(self.$loc(eql_t)).$with_expression(self.$loc(name_t).$join(value.$loc().$expression()))); + }, $Default_optarg$73.$$arity = 3); + + Opal.def(self, '$restarg', $Default_restarg$74 = function $$restarg(star_t, name_t) { + var self = this; + + + + if (name_t == null) { + name_t = nil; + }; + if ($truthy(name_t)) { + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("restarg", [self.$value(name_t).$to_sym()], self.$arg_prefix_map(star_t, name_t)); + } else { + return self.$n0("restarg", self.$arg_prefix_map(star_t)) + }; + }, $Default_restarg$74.$$arity = -2); + + Opal.def(self, '$kwarg', $Default_kwarg$75 = function $$kwarg(name_t) { + var self = this; + + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("kwarg", [self.$value(name_t).$to_sym()], self.$kwarg_map(name_t)); + }, $Default_kwarg$75.$$arity = 1); + + Opal.def(self, '$kwoptarg', $Default_kwoptarg$76 = function $$kwoptarg(name_t, value) { + var self = this; + + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("kwoptarg", [self.$value(name_t).$to_sym(), value], self.$kwarg_map(name_t, value)); + }, $Default_kwoptarg$76.$$arity = 2); + + Opal.def(self, '$kwrestarg', $Default_kwrestarg$77 = function $$kwrestarg(dstar_t, name_t) { + var self = this; + + + + if (name_t == null) { + name_t = nil; + }; + if ($truthy(name_t)) { + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("kwrestarg", [self.$value(name_t).$to_sym()], self.$arg_prefix_map(dstar_t, name_t)); + } else { + return self.$n0("kwrestarg", self.$arg_prefix_map(dstar_t)) + }; + }, $Default_kwrestarg$77.$$arity = -2); + + Opal.def(self, '$kwnilarg', $Default_kwnilarg$78 = function $$kwnilarg(dstar_t, nil_t) { + var self = this; + + return self.$n0("kwnilarg", self.$arg_prefix_map(dstar_t, nil_t)) + }, $Default_kwnilarg$78.$$arity = 2); + + Opal.def(self, '$shadowarg', $Default_shadowarg$79 = function $$shadowarg(name_t) { + var self = this; + + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("shadowarg", [self.$value(name_t).$to_sym()], self.$variable_map(name_t)); + }, $Default_shadowarg$79.$$arity = 1); + + Opal.def(self, '$blockarg', $Default_blockarg$80 = function $$blockarg(amper_t, name_t) { + var self = this; + + + self.$check_reserved_for_numparam(self.$value(name_t), self.$loc(name_t)); + return self.$n("blockarg", [self.$value(name_t).$to_sym()], self.$arg_prefix_map(amper_t, name_t)); + }, $Default_blockarg$80.$$arity = 2); + + Opal.def(self, '$procarg0', $Default_procarg0$81 = function $$procarg0(arg) { + var self = this, $ret_or_3 = nil; + + if ($truthy(self.$class().$emit_procarg0())) { + if ($truthy((function() {if ($truthy(($ret_or_3 = arg.$type()['$==']("arg")))) { + return self.$class().$emit_arg_inside_procarg0() + } else { + return $ret_or_3 + }; return nil; })())) { + return self.$n("procarg0", [arg], $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, arg.$location().$expression())) + } else { + return arg.$updated("procarg0") + } + } else { + return arg + } + }, $Default_procarg0$81.$$arity = 1); + + Opal.def(self, '$arg_expr', $Default_arg_expr$82 = function $$arg_expr(expr) { + var self = this; + + if (expr.$type()['$==']("lvasgn")) { + return expr.$updated("arg") + } else { + return self.$n("arg_expr", [expr], expr.$loc().$dup()) + } + }, $Default_arg_expr$82.$$arity = 1); + + Opal.def(self, '$restarg_expr', $Default_restarg_expr$83 = function $$restarg_expr(star_t, expr) { + var self = this; + + + + if (expr == null) { + expr = nil; + }; + if ($truthy(expr['$nil?']())) { + return self.$n0("restarg", self.$token_map(star_t)) + } else if (expr.$type()['$==']("lvasgn")) { + return expr.$updated("restarg") + } else { + return self.$n("restarg_expr", [expr], expr.$loc().$dup()) + }; + }, $Default_restarg_expr$83.$$arity = -2); + + Opal.def(self, '$blockarg_expr', $Default_blockarg_expr$84 = function $$blockarg_expr(amper_t, expr) { + var self = this; + + if (expr.$type()['$==']("lvasgn")) { + return expr.$updated("blockarg") + } else { + return self.$n("blockarg_expr", [expr], expr.$loc().$dup()) + } + }, $Default_blockarg_expr$84.$$arity = 2); + + Opal.def(self, '$objc_kwarg', $Default_objc_kwarg$85 = function $$objc_kwarg(kwname_t, assoc_t, name_t) { + var self = this, kwname_l = nil, operator_l = nil; + + + kwname_l = self.$loc(kwname_t); + if ($truthy(assoc_t['$nil?']())) { + + kwname_l = kwname_l.$resize($rb_minus(kwname_l.$size(), 1)); + operator_l = kwname_l.$end().$resize(1); + } else { + operator_l = self.$loc(assoc_t) + }; + return self.$n("objc_kwarg", [self.$value(kwname_t).$to_sym(), self.$value(name_t).$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'ObjcKwarg').$new(kwname_l, operator_l, self.$loc(name_t), kwname_l.$join(self.$loc(name_t)))); + }, $Default_objc_kwarg$85.$$arity = 3); + + Opal.def(self, '$objc_restarg', $Default_objc_restarg$86 = function $$objc_restarg(star_t, name) { + var self = this; + + + + if (name == null) { + name = nil; + }; + if ($truthy(name['$nil?']())) { + return self.$n0("restarg", self.$arg_prefix_map(star_t)) + } else if (name.$type()['$==']("arg")) { + return name.$updated("restarg", nil, $hash2(["location"], {"location": name.$loc().$with_operator(self.$loc(star_t))})) + } else { + return self.$n("objc_restarg", [name], self.$unary_op_map(star_t, name)) + }; + }, $Default_objc_restarg$86.$$arity = -2); + + Opal.def(self, '$call_type_for_dot', $Default_call_type_for_dot$87 = function $$call_type_for_dot(dot_t) { + var self = this, $ret_or_4 = nil; + + if ($truthy((function() {if ($truthy(($ret_or_4 = dot_t['$nil?']()['$!']()))) { + return self.$value(dot_t)['$==']("anddot") + } else { + return $ret_or_4 + }; return nil; })())) { + return "csend" + } else { + return "send" + } + }, $Default_call_type_for_dot$87.$$arity = 1); + + Opal.def(self, '$forwarded_args', $Default_forwarded_args$88 = function $$forwarded_args(dots_t) { + var self = this; + + return self.$n("forwarded_args", [], self.$token_map(dots_t)) + }, $Default_forwarded_args$88.$$arity = 1); + + Opal.def(self, '$call_method', $Default_call_method$89 = function $$call_method(receiver, dot_t, selector_t, lparen_t, args, rparen_t) { + var self = this, type = nil; + + + + if (lparen_t == null) { + lparen_t = nil; + }; + + if (args == null) { + args = []; + }; + + if (rparen_t == null) { + rparen_t = nil; + }; + type = self.$call_type_for_dot(dot_t); + if ($truthy(self.$class().$emit_kwargs())) { + self.$rewrite_hash_args_to_kwargs(args)}; + if ($truthy(selector_t['$nil?']())) { + return self.$n(type, [receiver, "call"].concat(Opal.to_a(args)), self.$send_map(receiver, dot_t, nil, lparen_t, args, rparen_t)) + } else { + return self.$n(type, [receiver, self.$value(selector_t).$to_sym()].concat(Opal.to_a(args)), self.$send_map(receiver, dot_t, selector_t, lparen_t, args, rparen_t)) + }; + }, $Default_call_method$89.$$arity = -4); + + Opal.def(self, '$call_lambda', $Default_call_lambda$90 = function $$call_lambda(lambda_t) { + var self = this; + + if ($truthy(self.$class().$emit_lambda())) { + return self.$n0("lambda", self.$expr_map(self.$loc(lambda_t))) + } else { + return self.$n("send", [nil, "lambda"], self.$send_map(nil, nil, lambda_t)) + } + }, $Default_call_lambda$90.$$arity = 1); + + Opal.def(self, '$block', $Default_block$91 = function $$block(method_call, begin_t, args, body, end_t) { + var $a, self = this, _receiver = nil, _selector = nil, call_args = nil, last_arg = nil, $ret_or_5 = nil, $ret_or_6 = nil, block_type = nil, actual_send = nil, block = nil; + + + $a = [].concat(Opal.to_a(method_call)), (_receiver = ($a[0] == null ? nil : $a[0])), (_selector = ($a[1] == null ? nil : $a[1])), (call_args = $slice.call($a, 2)), $a; + if (method_call.$type()['$==']("yield")) { + self.$diagnostic("error", "block_given_to_yield", nil, method_call.$loc().$keyword(), [self.$loc(begin_t)])}; + last_arg = call_args.$last(); + if ($truthy((function() {if ($truthy(($ret_or_5 = last_arg))) { + + if ($truthy(($ret_or_6 = last_arg.$type()['$==']("block_pass")))) { + return $ret_or_6 + } else { + return last_arg.$type()['$==']("forwarded_args") + }; + } else { + return $ret_or_5 + }; return nil; })())) { + self.$diagnostic("error", "block_and_blockarg", nil, last_arg.$loc().$expression(), [self.$loc(begin_t)])}; + if (args.$type()['$==']("numargs")) { + + block_type = "numblock"; + args = args.$children()['$[]'](0); + } else { + block_type = "block" + }; + if ($truthy(["send", "csend", "index", "super", "zsuper", "lambda"]['$include?'](method_call.$type()))) { + return self.$n(block_type, [method_call, args, body], self.$block_map(method_call.$loc().$expression(), begin_t, end_t)) + } else { + + $a = [].concat(Opal.to_a(method_call)), (actual_send = ($a[0] == null ? nil : $a[0])), $a; + block = self.$n(block_type, [actual_send, args, body], self.$block_map(actual_send.$loc().$expression(), begin_t, end_t)); + return self.$n(method_call.$type(), [block], method_call.$loc().$with_expression(self.$join_exprs(method_call, block))); + }; + }, $Default_block$91.$$arity = 5); + + Opal.def(self, '$block_pass', $Default_block_pass$92 = function $$block_pass(amper_t, arg) { + var self = this; + + return self.$n("block_pass", [arg], self.$unary_op_map(amper_t, arg)) + }, $Default_block_pass$92.$$arity = 2); + + Opal.def(self, '$objc_varargs', $Default_objc_varargs$93 = function $$objc_varargs(pair, rest_of_varargs) { + var $a, self = this, value = nil, first_vararg = nil, vararg_array = nil; + + + $a = [].concat(Opal.to_a(pair)), (value = ($a[0] == null ? nil : $a[0])), (first_vararg = ($a[1] == null ? nil : $a[1])), $a; + vararg_array = self.$array(nil, [first_vararg].concat(Opal.to_a(rest_of_varargs)), nil).$updated("objc_varargs"); + return pair.$updated(nil, [value, vararg_array], $hash2(["location"], {"location": pair.$loc().$with_expression(pair.$loc().$expression().$join(vararg_array.$loc().$expression()))})); + }, $Default_objc_varargs$93.$$arity = 2); + + Opal.def(self, '$attr_asgn', $Default_attr_asgn$94 = function $$attr_asgn(receiver, dot_t, selector_t) { + var self = this, method_name = nil, type = nil; + + + method_name = $rb_plus(self.$value(selector_t), "=").$to_sym(); + type = self.$call_type_for_dot(dot_t); + return self.$n(type, [receiver, method_name], self.$send_map(receiver, dot_t, selector_t)); + }, $Default_attr_asgn$94.$$arity = 3); + + Opal.def(self, '$index', $Default_index$95 = function $$index(receiver, lbrack_t, indexes, rbrack_t) { + var self = this; + + + if ($truthy(self.$class().$emit_kwargs())) { + self.$rewrite_hash_args_to_kwargs(indexes)}; + if ($truthy(self.$class().$emit_index())) { + return self.$n("index", [receiver].concat(Opal.to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) + } else { + return self.$n("send", [receiver, "[]"].concat(Opal.to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) + }; + }, $Default_index$95.$$arity = 4); + + Opal.def(self, '$index_asgn', $Default_index_asgn$96 = function $$index_asgn(receiver, lbrack_t, indexes, rbrack_t) { + var self = this; + + if ($truthy(self.$class().$emit_index())) { + return self.$n("indexasgn", [receiver].concat(Opal.to_a(indexes)), self.$index_map(receiver, lbrack_t, rbrack_t)) + } else { + return self.$n("send", [receiver, "[]="].concat(Opal.to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) + } + }, $Default_index_asgn$96.$$arity = 4); + + Opal.def(self, '$binary_op', $Default_binary_op$97 = function $$binary_op(receiver, operator_t, arg) { + var self = this, source_map = nil, operator = nil, method_call = nil; + + + source_map = self.$send_binary_op_map(receiver, operator_t, arg); + if (self.parser.$version()['$=='](18)) { + + operator = self.$value(operator_t); + if (operator['$==']("!=")) { + method_call = self.$n("send", [receiver, "==", arg], source_map) + } else if (operator['$==']("!~")) { + method_call = self.$n("send", [receiver, "=~", arg], source_map)}; + if ($truthy(["!=", "!~"]['$include?'](operator))) { + return self.$n("not", [method_call], self.$expr_map(source_map.$expression()))};}; + return self.$n("send", [receiver, self.$value(operator_t).$to_sym(), arg], source_map); + }, $Default_binary_op$97.$$arity = 3); + + Opal.def(self, '$match_op', $Default_match_op$98 = function $$match_op(receiver, match_t, arg) { + var $$99, self = this, source_map = nil, regexp = nil; + + + source_map = self.$send_binary_op_map(receiver, match_t, arg); + if ($truthy((regexp = self.$static_regexp_node(receiver)))) { + + $send(regexp.$names(), 'each', [], ($$99 = function(name){var self = $$99.$$s == null ? this : $$99.$$s; + if (self.parser == null) self.parser = nil; + - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((396)['$===']($case)) { - - self.num_base = 8; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], (TMP_32 = function(chars){var self = TMP_32.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_32.$$s = self, TMP_32.$$arity = 1, TMP_32));; - - self.te = p; - p = $rb_minus(p, 1); - digits = self.$tok(self.num_digits_s, self.num_suffix_s); - if ($truthy(digits['$end_with?']("_".$freeze()))) { - self.$diagnostic("error", "trailing_in_number", $hash2(["character"], {"character": "_".$freeze()}), self.$range($rb_minus(self.te, 1), self.te)) - } else if ($truthy(($truthy($x = ($truthy($y = digits['$empty?']()) ? self.num_base['$=='](8) : $y)) ? self['$version?'](18) : $x))) { - digits = "0".$freeze() - } else if ($truthy(digits['$empty?']())) { - self.$diagnostic("error", "empty_numeric") - } else if ($truthy((($x = self.num_base['$=='](8)) ? (invalid_idx = digits.$index(/[89]/)) : self.num_base['$=='](8)))) { - - invalid_s = $rb_plus(self.num_digits_s, invalid_idx); - self.$diagnostic("error", "invalid_octal", nil, self.$range(invalid_s, $rb_plus(invalid_s, 1)));}; - if ($truthy(self['$version?'](18, 19, 20))) { - - self.$emit("tINTEGER", digits.$to_i(self.num_base), self.ts, self.num_suffix_s); - p = $rb_minus(self.num_suffix_s, 1); - } else { - self.num_xfrm.$call(digits.$to_i(self.num_base)) + if (name == null) { + name = nil; }; + return self.parser.$static_env().$declare(name);}, $$99.$$s = self, $$99.$$arity = 1, $$99)); + return self.$n("match_with_lvasgn", [receiver, arg], source_map); + } else { + return self.$n("send", [receiver, "=~", arg], source_map) + }; + }, $Default_match_op$98.$$arity = 3); + + Opal.def(self, '$unary_op', $Default_unary_op$100 = function $$unary_op(op_t, receiver) { + var self = this, $case = nil, method = nil; + + + $case = self.$value(op_t); + if ("+"['$===']($case) || "-"['$===']($case)) {method = $rb_plus(self.$value(op_t), "@")} + else {method = self.$value(op_t)}; + return self.$n("send", [receiver, method.$to_sym()], self.$send_unary_op_map(op_t, receiver)); + }, $Default_unary_op$100.$$arity = 2); + + Opal.def(self, '$not_op', $Default_not_op$101 = function $$not_op(not_t, begin_t, receiver, end_t) { + var self = this, nil_node = nil; + + + + if (begin_t == null) { + begin_t = nil; + }; + + if (receiver == null) { + receiver = nil; + }; + + if (end_t == null) { + end_t = nil; + }; + if (self.parser.$version()['$=='](18)) { + return self.$n("not", [self.$check_condition(receiver)], self.$unary_op_map(not_t, receiver)) + } else if ($truthy(receiver['$nil?']())) { + + nil_node = self.$n0("begin", self.$collection_map(begin_t, nil, end_t)); + return self.$n("send", [nil_node, "!"], self.$send_unary_op_map(not_t, nil_node)); + } else { + return self.$n("send", [self.$check_condition(receiver), "!"], self.$send_map(nil, nil, not_t, begin_t, [receiver], end_t)) + }; + }, $Default_not_op$101.$$arity = -2); + + Opal.def(self, '$logical_op', $Default_logical_op$102 = function $$logical_op(type, lhs, op_t, rhs) { + var self = this; + + return self.$n(type, [lhs, rhs], self.$binary_op_map(lhs, op_t, rhs)) + }, $Default_logical_op$102.$$arity = 4); + + Opal.def(self, '$condition', $Default_condition$103 = function $$condition(cond_t, cond, then_t, if_true, else_t, if_false, end_t) { + var self = this; + + return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$condition_map(cond_t, cond, then_t, if_true, else_t, if_false, end_t)) + }, $Default_condition$103.$$arity = 7); + + Opal.def(self, '$condition_mod', $Default_condition_mod$104 = function $$condition_mod(if_true, if_false, cond_t, cond) { + var self = this, $ret_or_7 = nil; + + return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$keyword_mod_map((function() {if ($truthy(($ret_or_7 = if_true))) { + return $ret_or_7 + } else { + return if_false + }; return nil; })(), cond_t, cond)) + }, $Default_condition_mod$104.$$arity = 4); + + Opal.def(self, '$ternary', $Default_ternary$105 = function $$ternary(cond, question_t, if_true, colon_t, if_false) { + var self = this; + + return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$ternary_map(cond, question_t, if_true, colon_t, if_false)) + }, $Default_ternary$105.$$arity = 5); + + Opal.def(self, '$when', $Default_when$106 = function $$when(when_t, patterns, then_t, body) { + var self = this, children = nil; + + + children = patterns['$<<'](body); + return self.$n("when", children, self.$keyword_map(when_t, then_t, children, nil)); + }, $Default_when$106.$$arity = 4); + + Opal.def(self, '$case', $Default_case$107 = function(case_t, expr, when_bodies, else_t, else_body, end_t) { + var self = this; + + return self.$n("case", [expr].concat(Opal.to_a(when_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)) + }, $Default_case$107.$$arity = 6); + + Opal.def(self, '$loop', $Default_loop$108 = function $$loop(type, keyword_t, cond, do_t, body, end_t) { + var self = this; + + return self.$n(type, [self.$check_condition(cond), body], self.$keyword_map(keyword_t, do_t, nil, end_t)) + }, $Default_loop$108.$$arity = 6); + + Opal.def(self, '$loop_mod', $Default_loop_mod$109 = function $$loop_mod(type, body, keyword_t, cond) { + var self = this; + + + if (body.$type()['$==']("kwbegin")) { + type = "" + (type) + "_post"}; + return self.$n(type, [self.$check_condition(cond), body], self.$keyword_mod_map(body, keyword_t, cond)); + }, $Default_loop_mod$109.$$arity = 4); + + Opal.def(self, '$for', $Default_for$110 = function(for_t, iterator, in_t, iteratee, do_t, body, end_t) { + var self = this; + + return self.$n("for", [iterator, iteratee, body], self.$for_map(for_t, in_t, do_t, end_t)) + }, $Default_for$110.$$arity = 7); + + Opal.def(self, '$keyword_cmd', $Default_keyword_cmd$111 = function $$keyword_cmd(type, keyword_t, lparen_t, args, rparen_t) { + var self = this, $ret_or_8 = nil, last_arg = nil, $ret_or_9 = nil; + + + + if (lparen_t == null) { + lparen_t = nil; + }; + + if (args == null) { + args = []; + }; + + if (rparen_t == null) { + rparen_t = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_8 = type['$==']("yield")))) { + return $rb_gt(args.$count(), 0) + } else { + return $ret_or_8 + }; return nil; })())) { + + last_arg = args.$last(); + if (last_arg.$type()['$==']("block_pass")) { + self.$diagnostic("error", "block_given_to_yield", nil, self.$loc(keyword_t), [last_arg.$loc().$expression()])};}; + if ($truthy((function() {if ($truthy(($ret_or_9 = ["yield", "super"]['$include?'](type)))) { + return self.$class().$emit_kwargs() + } else { + return $ret_or_9 + }; return nil; })())) { + self.$rewrite_hash_args_to_kwargs(args)}; + return self.$n(type, args, self.$keyword_map(keyword_t, lparen_t, args, rparen_t)); + }, $Default_keyword_cmd$111.$$arity = -3); + + Opal.def(self, '$preexe', $Default_preexe$112 = function $$preexe(preexe_t, lbrace_t, compstmt, rbrace_t) { + var self = this; + + return self.$n("preexe", [compstmt], self.$keyword_map(preexe_t, lbrace_t, [], rbrace_t)) + }, $Default_preexe$112.$$arity = 4); + + Opal.def(self, '$postexe', $Default_postexe$113 = function $$postexe(postexe_t, lbrace_t, compstmt, rbrace_t) { + var self = this; + + return self.$n("postexe", [compstmt], self.$keyword_map(postexe_t, lbrace_t, [], rbrace_t)) + }, $Default_postexe$113.$$arity = 4); + + Opal.def(self, '$rescue_body', $Default_rescue_body$114 = function $$rescue_body(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt) { + var self = this; + + return self.$n("resbody", [exc_list, exc_var, compound_stmt], self.$rescue_body_map(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt)) + }, $Default_rescue_body$114.$$arity = 6); + + Opal.def(self, '$begin_body', $Default_begin_body$115 = function $$begin_body(compound_stmt, rescue_bodies, else_t, else_, ensure_t, ensure_) { + var self = this, statements = nil; + + + + if (rescue_bodies == null) { + rescue_bodies = []; + }; + + if (else_t == null) { + else_t = nil; + }; + + if (else_ == null) { + else_ = nil; + }; + + if (ensure_t == null) { + ensure_t = nil; + }; + + if (ensure_ == null) { + ensure_ = nil; + }; + if ($truthy(rescue_bodies['$any?']())) { + if ($truthy(else_t)) { + compound_stmt = self.$n("rescue", [compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies, [else_]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, else_t, else_)) + } else { + compound_stmt = self.$n("rescue", [compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies, [nil]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, nil, nil)) + } + } else if ($truthy(else_t)) { + + statements = []; + if ($truthy(compound_stmt['$nil?']()['$!']())) { + if (compound_stmt.$type()['$==']("begin")) { + statements = $rb_plus(statements, compound_stmt.$children()) + } else { + statements.$push(compound_stmt) + }}; + statements.$push(self.$n("begin", [else_], self.$collection_map(else_t, [else_], nil))); + compound_stmt = self.$n("begin", statements, self.$collection_map(nil, statements, nil));}; + if ($truthy(ensure_t)) { + compound_stmt = self.$n("ensure", [compound_stmt, ensure_], self.$eh_keyword_map(compound_stmt, ensure_t, [ensure_], nil, nil))}; + return compound_stmt; + }, $Default_begin_body$115.$$arity = -2); + + Opal.def(self, '$compstmt', $Default_compstmt$116 = function $$compstmt(statements) { + var self = this; + + return (function() { + if ($truthy(statements['$none?']())) {return nil} + else if ($truthy(statements['$one?']())) {return statements.$first()} + else {return self.$n("begin", statements, self.$collection_map(nil, statements, nil))}})() + }, $Default_compstmt$116.$$arity = 1); + + Opal.def(self, '$begin', $Default_begin$117 = function $$begin(begin_t, body, end_t) { + var self = this, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil; + + if ($truthy(body['$nil?']())) { + return self.$n0("begin", self.$collection_map(begin_t, nil, end_t)) + } else if ($truthy((function() {if ($truthy(($ret_or_10 = body.$type()['$==']("mlhs")))) { + return $ret_or_10 + } else { + + if ($truthy(($ret_or_11 = (function() {if ($truthy(($ret_or_12 = body.$type()['$==']("begin")))) { + return body.$loc().$begin()['$nil?']() + } else { + return $ret_or_12 + }; return nil; })()))) { + return body.$loc().$end()['$nil?']() + } else { + return $ret_or_11 + }; + }; return nil; })())) { + return self.$n(body.$type(), body.$children(), self.$collection_map(begin_t, body.$children(), end_t)) + } else { + return self.$n("begin", [body], self.$collection_map(begin_t, [body], end_t)) + } + }, $Default_begin$117.$$arity = 3); + + Opal.def(self, '$begin_keyword', $Default_begin_keyword$118 = function $$begin_keyword(begin_t, body, end_t) { + var self = this, $ret_or_13 = nil, $ret_or_14 = nil; + + if ($truthy(body['$nil?']())) { + return self.$n0("kwbegin", self.$collection_map(begin_t, nil, end_t)) + } else if ($truthy((function() {if ($truthy(($ret_or_13 = (function() {if ($truthy(($ret_or_14 = body.$type()['$==']("begin")))) { + return body.$loc().$begin()['$nil?']() + } else { + return $ret_or_14 + }; return nil; })()))) { + return body.$loc().$end()['$nil?']() + } else { + return $ret_or_13 + }; return nil; })())) { + return self.$n("kwbegin", body.$children(), self.$collection_map(begin_t, body.$children(), end_t)) + } else { + return self.$n("kwbegin", [body], self.$collection_map(begin_t, [body], end_t)) + } + }, $Default_begin_keyword$118.$$arity = 3); + + Opal.def(self, '$case_match', $Default_case_match$119 = function $$case_match(case_t, expr, in_bodies, else_t, else_body, end_t) { + var self = this, $ret_or_15 = nil; + + + if ($truthy((function() {if ($truthy(($ret_or_15 = else_t))) { + return else_body['$!']() + } else { + return $ret_or_15 + }; return nil; })())) { + else_body = self.$n("empty_else", nil, self.$token_map(else_t))}; + return self.$n("case_match", [expr].concat(Opal.to_a(in_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)); + }, $Default_case_match$119.$$arity = 6); + + Opal.def(self, '$in_match', $Default_in_match$120 = function $$in_match(lhs, in_t, rhs) { + var self = this; + + return self.$n("in_match", [lhs, rhs], self.$binary_op_map(lhs, in_t, rhs)) + }, $Default_in_match$120.$$arity = 3); + + Opal.def(self, '$match_pattern', $Default_match_pattern$121 = function $$match_pattern(lhs, match_t, rhs) { + var self = this; + + return self.$n("match_pattern", [lhs, rhs], self.$binary_op_map(lhs, match_t, rhs)) + }, $Default_match_pattern$121.$$arity = 3); + + Opal.def(self, '$match_pattern_p', $Default_match_pattern_p$122 = function $$match_pattern_p(lhs, match_t, rhs) { + var self = this; + + return self.$n("match_pattern_p", [lhs, rhs], self.$binary_op_map(lhs, match_t, rhs)) + }, $Default_match_pattern_p$122.$$arity = 3); + + Opal.def(self, '$in_pattern', $Default_in_pattern$123 = function $$in_pattern(in_t, pattern, guard, then_t, body) { + var self = this, children = nil; + + + children = [pattern, guard, body]; + return self.$n("in_pattern", children, self.$keyword_map(in_t, then_t, children.$compact(), nil)); + }, $Default_in_pattern$123.$$arity = 5); + + Opal.def(self, '$if_guard', $Default_if_guard$124 = function $$if_guard(if_t, if_body) { + var self = this; + + return self.$n("if_guard", [if_body], self.$guard_map(if_t, if_body)) + }, $Default_if_guard$124.$$arity = 2); + + Opal.def(self, '$unless_guard', $Default_unless_guard$125 = function $$unless_guard(unless_t, unless_body) { + var self = this; + + return self.$n("unless_guard", [unless_body], self.$guard_map(unless_t, unless_body)) + }, $Default_unless_guard$125.$$arity = 2); + + Opal.def(self, '$match_var', $Default_match_var$126 = function $$match_var(name_t) { + var self = this, name = nil, name_l = nil; + + + name = self.$value(name_t).$to_sym(); + name_l = self.$loc(name_t); + self.$check_lvar_name(name, name_l); + self.$check_duplicate_pattern_variable(name, name_l); + self.parser.$static_env().$declare(name); + return self.$n("match_var", [name], self.$variable_map(name_t)); + }, $Default_match_var$126.$$arity = 1); + + Opal.def(self, '$match_hash_var', $Default_match_hash_var$127 = function $$match_hash_var(name_t) { + var self = this, name = nil, expr_l = nil, name_l = nil; + + + name = self.$value(name_t).$to_sym(); + expr_l = self.$loc(name_t); + name_l = expr_l.$adjust($hash2(["end_pos"], {"end_pos": -1})); + self.$check_lvar_name(name, name_l); + self.$check_duplicate_pattern_variable(name, name_l); + self.parser.$static_env().$declare(name); + return self.$n("match_var", [name], $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(name_l, expr_l)); + }, $Default_match_hash_var$127.$$arity = 1); + + Opal.def(self, '$match_hash_var_from_str', $Default_match_hash_var_from_str$128 = function $$match_hash_var_from_str(begin_t, strings, end_t) { + var $a, self = this, string = nil, $case = nil, name = nil, name_l = nil, begin_l = nil, end_l = nil, expr_l = nil; + + + if ($truthy($rb_gt(strings.$length(), 1))) { + self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t)))}; + string = strings['$[]'](0); + return (function() {$case = string.$type(); + if ("str"['$===']($case)) { + $a = [].concat(Opal.to_a(string)), (name = ($a[0] == null ? nil : $a[0])), $a; + name_l = string.$loc().$expression(); + self.$check_lvar_name(name, name_l); + self.$check_duplicate_pattern_variable(name, name_l); + self.parser.$static_env().$declare(name); + if ($truthy((begin_l = string.$loc().$begin()))) { + name_l = name_l.$adjust($hash2(["begin_pos"], {"begin_pos": begin_l.$length()}))}; + if ($truthy((end_l = string.$loc().$end()))) { + name_l = name_l.$adjust($hash2(["end_pos"], {"end_pos": end_l.$length()['$-@']()}))}; + expr_l = self.$loc(begin_t).$join(string.$loc().$expression()).$join(self.$loc(end_t)); + return self.$n("match_var", [name.$to_sym()], $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(name_l, expr_l));} + else if ("begin"['$===']($case)) {return self.$match_hash_var_from_str(begin_t, string.$children(), end_t)} + else {return self.$diagnostic("error", "pm_interp_in_var_name", nil, self.$loc(begin_t).$join(self.$loc(end_t)))}})(); + }, $Default_match_hash_var_from_str$128.$$arity = 3); + + Opal.def(self, '$match_rest', $Default_match_rest$129 = function $$match_rest(star_t, name_t) { + var self = this, name = nil; + + + + if (name_t == null) { + name_t = nil; + }; + if ($truthy(name_t['$nil?']())) { + return self.$n0("match_rest", self.$unary_op_map(star_t)) + } else { + + name = self.$match_var(name_t); + return self.$n("match_rest", [name], self.$unary_op_map(star_t, name)); + }; + }, $Default_match_rest$129.$$arity = -2); + + Opal.def(self, '$hash_pattern', $Default_hash_pattern$130 = function $$hash_pattern(lbrace_t, kwargs, rbrace_t) { + var self = this, args = nil; + + + args = self.$check_duplicate_args(kwargs); + return self.$n("hash_pattern", args, self.$collection_map(lbrace_t, args, rbrace_t)); + }, $Default_hash_pattern$130.$$arity = 3); + + Opal.def(self, '$array_pattern', $Default_array_pattern$131 = function $$array_pattern(lbrack_t, elements, rbrack_t) { + var $$132, self = this, trailing_comma = nil, node_elements = nil, node_type = nil; + + + if ($truthy(elements['$nil?']())) { + return self.$n("array_pattern", nil, self.$collection_map(lbrack_t, [], rbrack_t))}; + trailing_comma = false; + node_elements = $send(elements, 'map', [], ($$132 = function(element){var self = $$132.$$s == null ? this : $$132.$$s; + + + + if (element == null) { + element = nil; + }; + if (element.$type()['$==']("match_with_trailing_comma")) { - p = $rb_plus(p, 1); - _goto_level = _out; - continue;;;;;} - else if ((31)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - if ($truthy(self.herebody_s)) { - - p = self.herebody_s; - self.herebody_s = nil;};; - - tm = p;; - - self.act = 68;;} - else if ((433)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], (TMP_33 = function(chars){var self = TMP_33.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_33.$$s = self, TMP_33.$$arity = 1, TMP_33));; - - self.act = 143;;} - else if ((429)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_base = 10; - self.num_digits_s = self.ts;; - - self.num_suffix_s = p;; - - self.num_xfrm = $send(self, 'lambda', [], (TMP_34 = function(chars){var self = TMP_34.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_34.$$s = self, TMP_34.$$arity = 1, TMP_34));; - - self.act = 143;;} - else if ((399)['$===']($case)) { - - self.te = $rb_plus(p, 1);; - - self.num_base = 8; - self.num_digits_s = self.ts;; + trailing_comma = true; + return element.$children().$first(); + } else { - self.num_suffix_s = p;; + trailing_comma = false; + return element; + };}, $$132.$$s = self, $$132.$$arity = 1, $$132)); + node_type = (function() {if ($truthy(trailing_comma)) { + return "array_pattern_with_tail" + } else { + return "array_pattern" + }; return nil; })(); + return self.$n(node_type, node_elements, self.$collection_map(lbrack_t, elements, rbrack_t)); + }, $Default_array_pattern$131.$$arity = 3); + + Opal.def(self, '$find_pattern', $Default_find_pattern$133 = function $$find_pattern(lbrack_t, elements, rbrack_t) { + var self = this; + + return self.$n("find_pattern", elements, self.$collection_map(lbrack_t, elements, rbrack_t)) + }, $Default_find_pattern$133.$$arity = 3); + + Opal.def(self, '$match_with_trailing_comma', $Default_match_with_trailing_comma$134 = function $$match_with_trailing_comma(match, comma_t) { + var self = this; + + return self.$n("match_with_trailing_comma", [match], self.$expr_map(match.$loc().$expression().$join(self.$loc(comma_t)))) + }, $Default_match_with_trailing_comma$134.$$arity = 2); + + Opal.def(self, '$const_pattern', $Default_const_pattern$135 = function $$const_pattern(const$, ldelim_t, pattern, rdelim_t) { + var self = this; + + return self.$n("const_pattern", [const$, pattern], $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(ldelim_t), self.$loc(rdelim_t), const$.$loc().$expression().$join(self.$loc(rdelim_t)))) + }, $Default_const_pattern$135.$$arity = 4); + + Opal.def(self, '$pin', $Default_pin$136 = function $$pin(pin_t, var$) { + var self = this; + + return self.$n("pin", [var$], self.$send_unary_op_map(pin_t, var$)) + }, $Default_pin$136.$$arity = 2); + + Opal.def(self, '$match_alt', $Default_match_alt$137 = function $$match_alt(left, pipe_t, right) { + var self = this, source_map = nil; + + + source_map = self.$binary_op_map(left, pipe_t, right); + return self.$n("match_alt", [left, right], source_map); + }, $Default_match_alt$137.$$arity = 3); + + Opal.def(self, '$match_as', $Default_match_as$138 = function $$match_as(value, assoc_t, as) { + var self = this, source_map = nil; + + + source_map = self.$binary_op_map(value, assoc_t, as); + return self.$n("match_as", [value, as], source_map); + }, $Default_match_as$138.$$arity = 3); + + Opal.def(self, '$match_nil_pattern', $Default_match_nil_pattern$139 = function $$match_nil_pattern(dstar_t, nil_t) { + var self = this; + + return self.$n0("match_nil_pattern", self.$arg_prefix_map(dstar_t, nil_t)) + }, $Default_match_nil_pattern$139.$$arity = 2); + + Opal.def(self, '$match_pair', $Default_match_pair$140 = function $$match_pair(label_type, label, value) { + var $a, $b, self = this, begin_t = nil, parts = nil, end_t = nil, label_loc = nil, var_name = nil; + + if (label_type['$==']("label")) { + + self.$check_duplicate_pattern_key(label['$[]'](0), label['$[]'](1)); + return self.$pair_keyword(label, value); + } else { + + $b = label, $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (parts = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; + label_loc = self.$loc(begin_t).$join(self.$loc(end_t)); + if ($truthy((var_name = self.$static_string(parts)))) { + self.$check_duplicate_pattern_key(var_name, label_loc) + } else { + self.$diagnostic("error", "pm_interp_in_var_name", nil, label_loc) + }; + return self.$pair_quoted(begin_t, parts, end_t, value); + } + }, $Default_match_pair$140.$$arity = 3); + + Opal.def(self, '$match_label', $Default_match_label$141 = function $$match_label(label_type, label) { + var $a, $b, self = this, begin_t = nil, strings = nil, end_t = nil; + + if (label_type['$==']("label")) { + return self.$match_hash_var(label) + } else { + + $b = label, $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (strings = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; + return self.$match_hash_var_from_str(begin_t, strings, end_t); + } + }, $Default_match_label$141.$$arity = 2); + self.$private(); + + Opal.def(self, '$check_condition', $Default_check_condition$142 = function $$check_condition(cond) { + var $a, self = this, $case = nil, lhs = nil, rhs = nil, type = nil, $ret_or_16 = nil; + + return (function() {$case = cond.$type(); + if ("masgn"['$===']($case)) {if ($truthy($rb_le(self.parser.$version(), 23))) { + return self.$diagnostic("error", "masgn_as_condition", nil, cond.$loc().$expression()) + } else { + return cond + }} + else if ("begin"['$===']($case)) {if (cond.$children().$count()['$=='](1)) { + return cond.$updated(nil, [self.$check_condition(cond.$children().$last())]) + } else { + return cond + }} + else if ("and"['$===']($case) || "or"['$===']($case) || "irange"['$===']($case) || "erange"['$===']($case)) { + $a = [].concat(Opal.to_a(cond)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + type = (function() {$case = cond.$type(); + if ("irange"['$===']($case)) {return "iflipflop"} + else if ("erange"['$===']($case)) {return "eflipflop"} + else { return nil }})(); + if ($truthy((function() {if ($truthy(($ret_or_16 = ["and", "or"]['$include?'](cond.$type())))) { + return self.parser.$version()['$=='](18) + } else { + return $ret_or_16 + }; return nil; })())) { + return cond + } else { + return cond.$updated(type, [self.$check_condition(lhs), self.$check_condition(rhs)]) + };} + else if ("regexp"['$===']($case)) {return self.$n("match_current_line", [cond], self.$expr_map(cond.$loc().$expression()))} + else {return cond}})() + }, $Default_check_condition$142.$$arity = 1); + + Opal.def(self, '$check_duplicate_args', $Default_check_duplicate_args$143 = function $$check_duplicate_args(args, map) { + var $$144, self = this; + + + + if (map == null) { + map = $hash2([], {}); + }; + return $send(args, 'each', [], ($$144 = function(this_arg){var self = $$144.$$s == null ? this : $$144.$$s, $case = nil; + + + + if (this_arg == null) { + this_arg = nil; + }; + return (function() {$case = this_arg.$type(); + if ("arg"['$===']($case) || "optarg"['$===']($case) || "restarg"['$===']($case) || "blockarg"['$===']($case) || "kwarg"['$===']($case) || "kwoptarg"['$===']($case) || "kwrestarg"['$===']($case) || "shadowarg"['$===']($case)) {return self.$check_duplicate_arg(this_arg, map)} + else if ("procarg0"['$===']($case)) {if ($truthy(this_arg.$children()['$[]'](0)['$is_a?']($$($nesting, 'Symbol')))) { + return self.$check_duplicate_arg(this_arg, map) + } else { + return self.$check_duplicate_args(this_arg.$children(), map) + }} + else if ("mlhs"['$===']($case)) {return self.$check_duplicate_args(this_arg.$children(), map)} + else { return nil }})();}, $$144.$$s = self, $$144.$$arity = 1, $$144)); + }, $Default_check_duplicate_args$143.$$arity = -2); + + Opal.def(self, '$check_duplicate_arg', $Default_check_duplicate_arg$145 = function $$check_duplicate_arg(this_arg, map) { + var $a, self = this, this_name = nil, that_arg = nil, that_name = nil, $writer = nil; + + + + if (map == null) { + map = $hash2([], {}); + }; + $a = [].concat(Opal.to_a(this_arg)), (this_name = ($a[0] == null ? nil : $a[0])), $a; + that_arg = map['$[]'](this_name); + $a = [].concat(Opal.to_a(that_arg)), (that_name = ($a[0] == null ? nil : $a[0])), $a; + if ($truthy(that_arg['$nil?']())) { + + $writer = [this_name, this_arg]; + $send(map, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } else if ($truthy(self['$arg_name_collides?'](this_name, that_name))) { + return self.$diagnostic("error", "duplicate_argument", nil, this_arg.$loc().$name(), [that_arg.$loc().$name()]) + } else { + return nil + }; + }, $Default_check_duplicate_arg$145.$$arity = -2); + + Opal.def(self, '$check_assignment_to_numparam', $Default_check_assignment_to_numparam$146 = function $$check_assignment_to_numparam(name, loc) { + var self = this, assigning_to_numparam = nil, $ret_or_17 = nil, $ret_or_18 = nil; + + + if ($truthy($rb_lt(self.parser.$version(), 27))) { + return nil}; + assigning_to_numparam = (function() {if ($truthy(($ret_or_17 = (function() {if ($truthy(($ret_or_18 = self.parser.$context()['$in_dynamic_block?']()))) { + return name['$=~'](/^_([1-9])$/) + } else { + return $ret_or_18 + }; return nil; })()))) { + return self.parser.$max_numparam_stack()['$has_numparams?']() + } else { + return $ret_or_17 + }; return nil; })(); + if ($truthy(assigning_to_numparam)) { + return self.$diagnostic("error", "cant_assign_to_numparam", $hash2(["name"], {"name": name}), loc) + } else { + return nil + }; + }, $Default_check_assignment_to_numparam$146.$$arity = 2); + + Opal.def(self, '$check_reserved_for_numparam', $Default_check_reserved_for_numparam$147 = function $$check_reserved_for_numparam(name, loc) { + var self = this; + + + if ($truthy($rb_lt(self.parser.$version(), 30))) { + return nil}; + if ($truthy(name['$=~'](/^_([1-9])$/))) { + return self.$diagnostic("error", "reserved_for_numparam", $hash2(["name"], {"name": name}), loc) + } else { + return nil + }; + }, $Default_check_reserved_for_numparam$147.$$arity = 2); + + Opal.def(self, '$arg_name_collides?', $Default_arg_name_collides$ques$148 = function(this_name, that_name) { + var self = this, $case = nil, $ret_or_19 = nil, $ret_or_20 = nil, $ret_or_21 = nil; + + return (function() {$case = self.parser.$version(); + if ((18)['$===']($case)) {return this_name['$=='](that_name)} + else if ((19)['$===']($case)) {if ($truthy(($ret_or_19 = this_name['$!=']("_")))) { + return this_name['$=='](that_name) + } else { + return $ret_or_19 + }} + else {if ($truthy(($ret_or_20 = (function() {if ($truthy(($ret_or_21 = this_name))) { + return this_name['$[]'](0)['$!=']("_") + } else { + return $ret_or_21 + }; return nil; })()))) { + return this_name['$=='](that_name) + } else { + return $ret_or_20 + }}})() + }, $Default_arg_name_collides$ques$148.$$arity = 2); + + Opal.def(self, '$check_lvar_name', $Default_check_lvar_name$149 = function $$check_lvar_name(name, loc) { + var self = this; + + if ($truthy(name['$=~'](/^[[[:lower:]]_][[[:alnum:]]_]*$/))) { + return nil + } else { + return self.$diagnostic("error", "lvar_name", $hash2(["name"], {"name": name}), loc) + } + }, $Default_check_lvar_name$149.$$arity = 2); + + Opal.def(self, '$check_duplicate_pattern_variable', $Default_check_duplicate_pattern_variable$150 = function $$check_duplicate_pattern_variable(name, loc) { + var self = this; + + + if ($truthy(name.$to_s()['$start_with?']("_"))) { + return nil}; + if ($truthy(self.parser.$pattern_variables()['$declared?'](name))) { + self.$diagnostic("error", "duplicate_variable_name", $hash2(["name"], {"name": name.$to_s()}), loc)}; + return self.parser.$pattern_variables().$declare(name); + }, $Default_check_duplicate_pattern_variable$150.$$arity = 2); + + Opal.def(self, '$check_duplicate_pattern_key', $Default_check_duplicate_pattern_key$151 = function $$check_duplicate_pattern_key(name, loc) { + var self = this; + + + if ($truthy(self.parser.$pattern_hash_keys()['$declared?'](name))) { + self.$diagnostic("error", "duplicate_pattern_key", $hash2(["name"], {"name": name.$to_s()}), loc)}; + return self.parser.$pattern_hash_keys().$declare(name); + }, $Default_check_duplicate_pattern_key$151.$$arity = 2); + + Opal.def(self, '$n', $Default_n$152 = function $$n(type, children, source_map) { + var self = this; + + return $$$($$($nesting, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": source_map})) + }, $Default_n$152.$$arity = 3); + + Opal.def(self, '$n0', $Default_n0$153 = function $$n0(type, source_map) { + var self = this; + + return self.$n(type, [], source_map) + }, $Default_n0$153.$$arity = 2); + + Opal.def(self, '$join_exprs', $Default_join_exprs$154 = function $$join_exprs(left_expr, right_expr) { + var self = this; + + return left_expr.$loc().$expression().$join(right_expr.$loc().$expression()) + }, $Default_join_exprs$154.$$arity = 2); + + Opal.def(self, '$token_map', $Default_token_map$155 = function $$token_map(token) { + var self = this; + + return $$$($$($nesting, 'Source'), 'Map').$new(self.$loc(token)) + }, $Default_token_map$155.$$arity = 1); + + Opal.def(self, '$delimited_string_map', $Default_delimited_string_map$156 = function $$delimited_string_map(string_t) { + var self = this, str_range = nil, begin_l = nil, end_l = nil; + + + str_range = self.$loc(string_t); + begin_l = str_range.$with($hash2(["end_pos"], {"end_pos": $rb_plus(str_range.$begin_pos(), 1)})); + end_l = str_range.$with($hash2(["begin_pos"], {"begin_pos": $rb_minus(str_range.$end_pos(), 1)})); + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(begin_l, end_l, self.$loc(string_t)); + }, $Default_delimited_string_map$156.$$arity = 1); + + Opal.def(self, '$prefix_string_map', $Default_prefix_string_map$157 = function $$prefix_string_map(symbol) { + var self = this, str_range = nil, begin_l = nil; + + + str_range = self.$loc(symbol); + begin_l = str_range.$with($hash2(["end_pos"], {"end_pos": $rb_plus(str_range.$begin_pos(), 1)})); + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(begin_l, nil, self.$loc(symbol)); + }, $Default_prefix_string_map$157.$$arity = 1); + + Opal.def(self, '$unquoted_map', $Default_unquoted_map$158 = function $$unquoted_map(token) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, self.$loc(token)) + }, $Default_unquoted_map$158.$$arity = 1); + + Opal.def(self, '$pair_keyword_map', $Default_pair_keyword_map$159 = function $$pair_keyword_map(key_t, value_e) { + var self = this, key_range = nil, key_l = nil, colon_l = nil; + + + key_range = self.$loc(key_t); + key_l = key_range.$adjust($hash2(["end_pos"], {"end_pos": -1})); + colon_l = key_range.$with($hash2(["begin_pos"], {"begin_pos": $rb_minus(key_range.$end_pos(), 1)})); + return [$$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, key_l), $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(colon_l, key_range.$join(value_e.$loc().$expression()))]; + }, $Default_pair_keyword_map$159.$$arity = 2); + + Opal.def(self, '$pair_quoted_map', $Default_pair_quoted_map$160 = function $$pair_quoted_map(begin_t, end_t, value_e) { + var self = this, end_l = nil, quote_l = nil, colon_l = nil; + + + end_l = self.$loc(end_t); + quote_l = end_l.$with($hash2(["begin_pos", "end_pos"], {"begin_pos": $rb_minus(end_l.$end_pos(), 2), "end_pos": $rb_minus(end_l.$end_pos(), 1)})); + colon_l = end_l.$with($hash2(["begin_pos"], {"begin_pos": $rb_minus(end_l.$end_pos(), 1)})); + return [[self.$value(end_t), quote_l], $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(colon_l, self.$loc(begin_t).$join(value_e.$loc().$expression()))]; + }, $Default_pair_quoted_map$160.$$arity = 3); + + Opal.def(self, '$expr_map', $Default_expr_map$161 = function $$expr_map(loc) { + var self = this; + + return $$$($$($nesting, 'Source'), 'Map').$new(loc) + }, $Default_expr_map$161.$$arity = 1); + + Opal.def(self, '$collection_map', $Default_collection_map$162 = function $$collection_map(begin_t, parts, end_t) { + var self = this, $ret_or_22 = nil, expr_l = nil; + + + if ($truthy((function() {if ($truthy(($ret_or_22 = begin_t['$nil?']()))) { + return $ret_or_22 + } else { + return end_t['$nil?']() + }; return nil; })())) { + if ($truthy(parts['$any?']())) { + expr_l = self.$join_exprs(parts.$first(), parts.$last()) + } else if ($truthy(begin_t['$nil?']()['$!']())) { + expr_l = self.$loc(begin_t) + } else if ($truthy(end_t['$nil?']()['$!']())) { + expr_l = self.$loc(end_t)} + } else { + expr_l = self.$loc(begin_t).$join(self.$loc(end_t)) + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), expr_l); + }, $Default_collection_map$162.$$arity = 3); + + Opal.def(self, '$string_map', $Default_string_map$163 = function $$string_map(begin_t, parts, end_t) { + var self = this, $ret_or_23 = nil, expr_l = nil; + + if ($truthy((function() {if ($truthy(($ret_or_23 = begin_t))) { + return self.$value(begin_t)['$start_with?']("<<") + } else { + return $ret_or_23 + }; return nil; })())) { + + if ($truthy(parts['$any?']())) { + expr_l = self.$join_exprs(parts.$first(), parts.$last()) + } else { + expr_l = self.$loc(end_t).$begin() + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Heredoc').$new(self.$loc(begin_t), expr_l, self.$loc(end_t)); + } else { + return self.$collection_map(begin_t, parts, end_t) + } + }, $Default_string_map$163.$$arity = 3); + + Opal.def(self, '$regexp_map', $Default_regexp_map$164 = function $$regexp_map(begin_t, end_t, options_e) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), self.$loc(begin_t).$join(options_e.$loc().$expression())) + }, $Default_regexp_map$164.$$arity = 3); + + Opal.def(self, '$constant_map', $Default_constant_map$165 = function $$constant_map(scope, colon2_t, name_t) { + var self = this, expr_l = nil; + + + if ($truthy(scope['$nil?']())) { + expr_l = self.$loc(name_t) + } else { + expr_l = scope.$loc().$expression().$join(self.$loc(name_t)) + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Constant').$new(self.$loc(colon2_t), self.$loc(name_t), expr_l); + }, $Default_constant_map$165.$$arity = 3); + + Opal.def(self, '$variable_map', $Default_variable_map$166 = function $$variable_map(name_t) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(self.$loc(name_t)) + }, $Default_variable_map$166.$$arity = 1); + + Opal.def(self, '$binary_op_map', $Default_binary_op_map$167 = function $$binary_op_map(left_e, op_t, right_e) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), self.$join_exprs(left_e, right_e)) + }, $Default_binary_op_map$167.$$arity = 3); + + Opal.def(self, '$unary_op_map', $Default_unary_op_map$168 = function $$unary_op_map(op_t, arg_e) { + var self = this, expr_l = nil; + + + + if (arg_e == null) { + arg_e = nil; + }; + if ($truthy(arg_e['$nil?']())) { + expr_l = self.$loc(op_t) + } else { + expr_l = self.$loc(op_t).$join(arg_e.$loc().$expression()) + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); + }, $Default_unary_op_map$168.$$arity = -2); + + Opal.def(self, '$range_map', $Default_range_map$169 = function $$range_map(start_e, op_t, end_e) { + var self = this, $ret_or_24 = nil, expr_l = nil; + + + if ($truthy((function() {if ($truthy(($ret_or_24 = start_e))) { + return end_e + } else { + return $ret_or_24 + }; return nil; })())) { + expr_l = self.$join_exprs(start_e, end_e) + } else if ($truthy(start_e)) { + expr_l = start_e.$loc().$expression().$join(self.$loc(op_t)) + } else if ($truthy(end_e)) { + expr_l = self.$loc(op_t).$join(end_e.$loc().$expression())}; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); + }, $Default_range_map$169.$$arity = 3); + + Opal.def(self, '$arg_prefix_map', $Default_arg_prefix_map$170 = function $$arg_prefix_map(op_t, name_t) { + var self = this, expr_l = nil; + + + + if (name_t == null) { + name_t = nil; + }; + if ($truthy(name_t['$nil?']())) { + expr_l = self.$loc(op_t) + } else { + expr_l = self.$loc(op_t).$join(self.$loc(name_t)) + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(self.$loc(name_t), expr_l); + }, $Default_arg_prefix_map$170.$$arity = -2); + + Opal.def(self, '$kwarg_map', $Default_kwarg_map$171 = function $$kwarg_map(name_t, value_e) { + var self = this, label_range = nil, name_range = nil, expr_l = nil; + + + + if (value_e == null) { + value_e = nil; + }; + label_range = self.$loc(name_t); + name_range = label_range.$adjust($hash2(["end_pos"], {"end_pos": -1})); + if ($truthy(value_e)) { + expr_l = self.$loc(name_t).$join(value_e.$loc().$expression()) + } else { + expr_l = self.$loc(name_t) + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Variable').$new(name_range, expr_l); + }, $Default_kwarg_map$171.$$arity = -2); + + Opal.def(self, '$module_definition_map', $Default_module_definition_map$172 = function $$module_definition_map(keyword_t, name_e, operator_t, end_t) { + var self = this, name_l = nil; + + + if ($truthy(name_e)) { + name_l = name_e.$loc().$expression()}; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Definition').$new(self.$loc(keyword_t), self.$loc(operator_t), name_l, self.$loc(end_t)); + }, $Default_module_definition_map$172.$$arity = 4); + + Opal.def(self, '$definition_map', $Default_definition_map$173 = function $$definition_map(keyword_t, operator_t, name_t, end_t) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), self.$loc(end_t), nil, nil) + }, $Default_definition_map$173.$$arity = 4); + + Opal.def(self, '$endless_definition_map', $Default_endless_definition_map$174 = function $$endless_definition_map(keyword_t, operator_t, name_t, assignment_t, body_e) { + var self = this, body_l = nil; + + + body_l = body_e.$loc().$expression(); + return $$$($$$($$($nesting, 'Source'), 'Map'), 'MethodDefinition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), nil, self.$loc(assignment_t), body_l); + }, $Default_endless_definition_map$174.$$arity = 5); + + Opal.def(self, '$send_map', $Default_send_map$175 = function $$send_map(receiver_e, dot_t, selector_t, begin_t, args, end_t) { + var self = this, begin_l = nil, end_l = nil; + + + + if (begin_t == null) { + begin_t = nil; + }; + + if (args == null) { + args = []; + }; + + if (end_t == null) { + end_t = nil; + }; + if ($truthy(receiver_e)) { + begin_l = receiver_e.$loc().$expression() + } else if ($truthy(selector_t)) { + begin_l = self.$loc(selector_t)}; + if ($truthy(end_t)) { + end_l = self.$loc(end_t) + } else if ($truthy(args['$any?']())) { + end_l = args.$last().$loc().$expression() + } else if ($truthy(selector_t)) { + end_l = self.$loc(selector_t)}; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(self.$loc(dot_t), self.$loc(selector_t), self.$loc(begin_t), self.$loc(end_t), begin_l.$join(end_l)); + }, $Default_send_map$175.$$arity = -4); + + Opal.def(self, '$var_send_map', $Default_var_send_map$176 = function $$var_send_map(variable_e) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, variable_e.$loc().$expression(), nil, nil, variable_e.$loc().$expression()) + }, $Default_var_send_map$176.$$arity = 1); + + Opal.def(self, '$send_binary_op_map', $Default_send_binary_op_map$177 = function $$send_binary_op_map(lhs_e, selector_t, rhs_e) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, self.$join_exprs(lhs_e, rhs_e)) + }, $Default_send_binary_op_map$177.$$arity = 3); + + Opal.def(self, '$send_unary_op_map', $Default_send_unary_op_map$178 = function $$send_unary_op_map(selector_t, arg_e) { + var self = this, expr_l = nil; + + + if ($truthy(arg_e['$nil?']())) { + expr_l = self.$loc(selector_t) + } else { + expr_l = self.$loc(selector_t).$join(arg_e.$loc().$expression()) + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, expr_l); + }, $Default_send_unary_op_map$178.$$arity = 2); + + Opal.def(self, '$index_map', $Default_index_map$179 = function $$index_map(receiver_e, lbrack_t, rbrack_t) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Index').$new(self.$loc(lbrack_t), self.$loc(rbrack_t), receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) + }, $Default_index_map$179.$$arity = 3); + + Opal.def(self, '$send_index_map', $Default_send_index_map$180 = function $$send_index_map(receiver_e, lbrack_t, rbrack_t) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(lbrack_t).$join(self.$loc(rbrack_t)), nil, nil, receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) + }, $Default_send_index_map$180.$$arity = 3); + + Opal.def(self, '$block_map', $Default_block_map$181 = function $$block_map(receiver_l, begin_t, end_t) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), receiver_l.$join(self.$loc(end_t))) + }, $Default_block_map$181.$$arity = 3); + + Opal.def(self, '$keyword_map', $Default_keyword_map$182 = function $$keyword_map(keyword_t, begin_t, args, end_t) { + var self = this, $ret_or_25 = nil, end_l = nil, $ret_or_26 = nil, $ret_or_27 = nil; + + + args = (function() {if ($truthy(($ret_or_25 = args))) { + return $ret_or_25 + } else { + return [] + }; return nil; })(); + if ($truthy(end_t)) { + end_l = self.$loc(end_t) + } else if ($truthy((function() {if ($truthy(($ret_or_26 = args['$any?']()))) { + return args.$last()['$nil?']()['$!']() + } else { + return $ret_or_26 + }; return nil; })())) { + end_l = args.$last().$loc().$expression() + } else if ($truthy((function() {if ($truthy(($ret_or_27 = args['$any?']()))) { + return $rb_gt(args.$count(), 1) + } else { + return $ret_or_27 + }; return nil; })())) { + end_l = args['$[]'](-2).$loc().$expression() + } else { + end_l = self.$loc(keyword_t) + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); + }, $Default_keyword_map$182.$$arity = 4); + + Opal.def(self, '$keyword_mod_map', $Default_keyword_mod_map$183 = function $$keyword_mod_map(pre_e, keyword_t, post_e) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), nil, nil, self.$join_exprs(pre_e, post_e)) + }, $Default_keyword_mod_map$183.$$arity = 3); + + Opal.def(self, '$condition_map', $Default_condition_map$184 = function $$condition_map(keyword_t, cond_e, begin_t, body_e, else_t, else_e, end_t) { + var self = this, end_l = nil, $ret_or_28 = nil, $ret_or_29 = nil; + + + if ($truthy(end_t)) { + end_l = self.$loc(end_t) + } else if ($truthy((function() {if ($truthy(($ret_or_28 = else_e))) { + return else_e.$loc().$expression() + } else { + return $ret_or_28 + }; return nil; })())) { + end_l = else_e.$loc().$expression() + } else if ($truthy(self.$loc(else_t))) { + end_l = self.$loc(else_t) + } else if ($truthy((function() {if ($truthy(($ret_or_29 = body_e))) { + return body_e.$loc().$expression() + } else { + return $ret_or_29 + }; return nil; })())) { + end_l = body_e.$loc().$expression() + } else if ($truthy(self.$loc(begin_t))) { + end_l = self.$loc(begin_t) + } else { + end_l = cond_e.$loc().$expression() + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(else_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); + }, $Default_condition_map$184.$$arity = 7); + + Opal.def(self, '$ternary_map', $Default_ternary_map$185 = function $$ternary_map(begin_e, question_t, mid_e, colon_t, end_e) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Ternary').$new(self.$loc(question_t), self.$loc(colon_t), self.$join_exprs(begin_e, end_e)) + }, $Default_ternary_map$185.$$arity = 5); + + Opal.def(self, '$for_map', $Default_for_map$186 = function $$for_map(keyword_t, in_t, begin_t, end_t) { + var self = this; + + return $$$($$$($$($nesting, 'Source'), 'Map'), 'For').$new(self.$loc(keyword_t), self.$loc(in_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(self.$loc(end_t))) + }, $Default_for_map$186.$$arity = 4); + + Opal.def(self, '$rescue_body_map', $Default_rescue_body_map$187 = function $$rescue_body_map(keyword_t, exc_list_e, assoc_t, exc_var_e, then_t, compstmt_e) { + var self = this, end_l = nil, $ret_or_30 = nil, $ret_or_31 = nil, $ret_or_32 = nil; + + + if ($truthy(compstmt_e)) { + end_l = compstmt_e.$loc().$expression()}; + if ($truthy((function() {if ($truthy(($ret_or_30 = end_l['$nil?']()))) { + return then_t + } else { + return $ret_or_30 + }; return nil; })())) { + end_l = self.$loc(then_t)}; + if ($truthy((function() {if ($truthy(($ret_or_31 = end_l['$nil?']()))) { + return exc_var_e + } else { + return $ret_or_31 + }; return nil; })())) { + end_l = exc_var_e.$loc().$expression()}; + if ($truthy((function() {if ($truthy(($ret_or_32 = end_l['$nil?']()))) { + return exc_list_e + } else { + return $ret_or_32 + }; return nil; })())) { + end_l = exc_list_e.$loc().$expression()}; + if ($truthy(end_l['$nil?']())) { + end_l = self.$loc(keyword_t)}; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'RescueBody').$new(self.$loc(keyword_t), self.$loc(assoc_t), self.$loc(then_t), self.$loc(keyword_t).$join(end_l)); + }, $Default_rescue_body_map$187.$$arity = 6); + + Opal.def(self, '$eh_keyword_map', $Default_eh_keyword_map$188 = function $$eh_keyword_map(compstmt_e, keyword_t, body_es, else_t, else_e) { + var self = this, begin_l = nil, end_l = nil; + + + if ($truthy(compstmt_e['$nil?']())) { + if ($truthy(keyword_t['$nil?']())) { + begin_l = body_es.$first().$loc().$expression() + } else { + begin_l = self.$loc(keyword_t) + } + } else { + begin_l = compstmt_e.$loc().$expression() + }; + if ($truthy(else_t)) { + if ($truthy(else_e['$nil?']())) { + end_l = self.$loc(else_t) + } else { + end_l = else_e.$loc().$expression() + } + } else if ($truthy(body_es.$last()['$nil?']()['$!']())) { + end_l = body_es.$last().$loc().$expression() + } else { + end_l = self.$loc(keyword_t) + }; + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), nil, self.$loc(else_t), nil, begin_l.$join(end_l)); + }, $Default_eh_keyword_map$188.$$arity = 5); + + Opal.def(self, '$guard_map', $Default_guard_map$189 = function $$guard_map(keyword_t, guard_body_e) { + var self = this, keyword_l = nil, guard_body_l = nil; + + + keyword_l = self.$loc(keyword_t); + guard_body_l = guard_body_e.$loc().$expression(); + return $$$($$$($$($nesting, 'Source'), 'Map'), 'Keyword').$new(keyword_l, nil, nil, keyword_l.$join(guard_body_l)); + }, $Default_guard_map$189.$$arity = 2); + + Opal.def(self, '$static_string', $Default_static_string$190 = function $$static_string(nodes) {try { + + var $$191, self = this; + + return $send(nodes, 'map', [], ($$191 = function(node){var self = $$191.$$s == null ? this : $$191.$$s, $case = nil, string = nil; + + + + if (node == null) { + node = nil; + }; + return (function() {$case = node.$type(); + if ("str"['$===']($case)) {return node.$children()['$[]'](0)} + else if ("begin"['$===']($case)) {if ($truthy((string = self.$static_string(node.$children())))) { + return string + } else { + Opal.ret(nil) + }} + else {Opal.ret(nil)}})();}, $$191.$$s = self, $$191.$$arity = 1, $$191)).$join() + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, $Default_static_string$190.$$arity = 1); + + Opal.def(self, '$static_regexp', $Default_static_regexp$192 = function $$static_regexp(parts, options) { + var self = this, source = nil; + + + source = self.$static_string(parts); + if ($truthy(source['$nil?']())) { + return nil}; + source = (function() { + if ($truthy(options.$children()['$include?']("u"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'UTF_8'))} + else if ($truthy(options.$children()['$include?']("e"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'EUC_JP'))} + else if ($truthy(options.$children()['$include?']("s"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'WINDOWS_31J'))} + else if ($truthy(options.$children()['$include?']("n"))) {return source.$encode($$$($$($nesting, 'Encoding'), 'BINARY'))} + else {return source}})(); + return $$($nesting, 'Regexp').$new(source, (function() {if ($truthy(options.$children()['$include?']("x"))) { + return $$$($$($nesting, 'Regexp'), 'EXTENDED') + } else { + return nil + }; return nil; })()); + }, $Default_static_regexp$192.$$arity = 2); + + Opal.def(self, '$static_regexp_node', $Default_static_regexp_node$193 = function $$static_regexp_node(node) { + var $a, self = this, parts = nil, options = nil; + + if (node.$type()['$==']("regexp")) { + + $a = [node.$children()['$[]']($range(0, -2, false)), node.$children()['$[]'](-1)], (parts = $a[0]), (options = $a[1]), $a; + return self.$static_regexp(parts, options); + } else { + return nil + } + }, $Default_static_regexp_node$193.$$arity = 1); + + Opal.def(self, '$collapse_string_parts?', $Default_collapse_string_parts$ques$194 = function(parts) { + var self = this, $ret_or_33 = nil; + + if ($truthy(($ret_or_33 = parts['$one?']()))) { + return ["str", "dstr"]['$include?'](parts.$first().$type()) + } else { + return $ret_or_33 + } + }, $Default_collapse_string_parts$ques$194.$$arity = 1); + + Opal.def(self, '$value', $Default_value$195 = function $$value(token) { + var self = this; + + return token['$[]'](0) + }, $Default_value$195.$$arity = 1); + + Opal.def(self, '$string_value', $Default_string_value$196 = function $$string_value(token) { + var self = this; + + + if ($truthy(token['$[]'](0)['$valid_encoding?']())) { + } else { + self.$diagnostic("error", "invalid_encoding", nil, token['$[]'](1)) + }; + return token['$[]'](0); + }, $Default_string_value$196.$$arity = 1); + + Opal.def(self, '$loc', $Default_loc$197 = function $$loc(token) { + var self = this, $ret_or_34 = nil; + + if ($truthy((function() {if ($truthy(($ret_or_34 = token))) { + return token['$[]'](0) + } else { + return $ret_or_34 + }; return nil; })())) { + return token['$[]'](1) + } else { + return nil + } + }, $Default_loc$197.$$arity = 1); + + Opal.def(self, '$diagnostic', $Default_diagnostic$198 = function $$diagnostic(type, reason, arguments$, location, highlights) { + var self = this; + + + + if (highlights == null) { + highlights = []; + }; + self.parser.$diagnostics().$process($$($nesting, 'Diagnostic').$new(type, reason, arguments$, location, highlights)); + if (type['$==']("error")) { + return self.parser.$send("yyerror") + } else { + return nil + }; + }, $Default_diagnostic$198.$$arity = -5); + + Opal.def(self, '$validate_definee', $Default_validate_definee$199 = function $$validate_definee(definee) { + var self = this, $case = nil; + + return (function() {$case = definee.$type(); + if ("int"['$===']($case) || "str"['$===']($case) || "dstr"['$===']($case) || "sym"['$===']($case) || "dsym"['$===']($case) || "regexp"['$===']($case) || "array"['$===']($case) || "hash"['$===']($case)) { + self.$diagnostic("error", "singleton_literal", nil, definee.$loc().$expression()); + return false;} + else {return true}})() + }, $Default_validate_definee$199.$$arity = 1); + + Opal.def(self, '$rewrite_hash_args_to_kwargs', $Default_rewrite_hash_args_to_kwargs$200 = function $$rewrite_hash_args_to_kwargs(args) { + var self = this, $ret_or_35 = nil, $writer = nil, $ret_or_36 = nil, $ret_or_37 = nil; + + if ($truthy((function() {if ($truthy(($ret_or_35 = args['$any?']()))) { + return self['$kwargs?'](args.$last()) + } else { + return $ret_or_35 + }; return nil; })())) { + + $writer = [$rb_minus(args.$length(), 1), args['$[]']($rb_minus(args.$length(), 1)).$updated("kwargs")]; + $send(args, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } else if ($truthy((function() {if ($truthy(($ret_or_36 = (function() {if ($truthy(($ret_or_37 = $rb_gt(args.$length(), 1)))) { + return args.$last().$type()['$==']("block_pass") + } else { + return $ret_or_37 + }; return nil; })()))) { + return self['$kwargs?'](args['$[]']($rb_minus(args.$length(), 2))) + } else { + return $ret_or_36 + }; return nil; })())) { + + $writer = [$rb_minus(args.$length(), 2), args['$[]']($rb_minus(args.$length(), 2)).$updated("kwargs")]; + $send(args, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } else { + return nil + } + }, $Default_rewrite_hash_args_to_kwargs$200.$$arity = 1); + return (Opal.def(self, '$kwargs?', $Default_kwargs$ques$201 = function(node) { + var self = this, $ret_or_38 = nil, $ret_or_39 = nil; + + if ($truthy(($ret_or_38 = (function() {if ($truthy(($ret_or_39 = node.$type()['$==']("hash")))) { + return node.$loc().$begin()['$nil?']() + } else { + return $ret_or_39 + }; return nil; })()))) { + return node.$loc().$end()['$nil?']() + } else { + return $ret_or_38 + } + }, $Default_kwargs$ques$201.$$arity = 1), nil) && 'kwargs?'; + })($$($nesting, 'Builders'), null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/context"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; + + Opal.add_stubs(['$attr_reader', '$freeze', '$<<', '$pop', '$clear', '$empty?', '$==', '$last', '$include?', '$rindex', '$stack', '$nil?', '$!', '$>', '$in_block?', '$in_lambda?']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Context'); + + var $nesting = [self].concat($parent_nesting), $Context_initialize$1, $Context_push$2, $Context_pop$3, $Context_reset$4, $Context_empty$ques$5, $Context_in_class$ques$6, $Context_indirectly_in_def$ques$7, $Context_class_definition_allowed$ques$8, $Context_in_block$ques$10, $Context_in_lambda$ques$11, $Context_in_dynamic_block$ques$12; + + self.$$prototype.stack = nil; + + self.$attr_reader("stack"); + + Opal.def(self, '$initialize', $Context_initialize$1 = function $$initialize() { + var self = this; + + + self.stack = []; + return self.$freeze(); + }, $Context_initialize$1.$$arity = 0); + + Opal.def(self, '$push', $Context_push$2 = function $$push(state) { + var self = this; + + return self.stack['$<<'](state) + }, $Context_push$2.$$arity = 1); + + Opal.def(self, '$pop', $Context_pop$3 = function $$pop() { + var self = this; + + return self.stack.$pop() + }, $Context_pop$3.$$arity = 0); + + Opal.def(self, '$reset', $Context_reset$4 = function $$reset() { + var self = this; + + return self.stack.$clear() + }, $Context_reset$4.$$arity = 0); + + Opal.def(self, '$empty?', $Context_empty$ques$5 = function() { + var self = this; + + return self.stack['$empty?']() + }, $Context_empty$ques$5.$$arity = 0); + + Opal.def(self, '$in_class?', $Context_in_class$ques$6 = function() { + var self = this; + + return self.stack.$last()['$==']("class") + }, $Context_in_class$ques$6.$$arity = 0); + + Opal.def(self, '$indirectly_in_def?', $Context_indirectly_in_def$ques$7 = function() { + var self = this, $ret_or_1 = nil; + + if ($truthy(($ret_or_1 = self.stack['$include?']("def")))) { + return $ret_or_1 + } else { + return self.stack['$include?']("defs") + } + }, $Context_indirectly_in_def$ques$7.$$arity = 0); + + Opal.def(self, '$class_definition_allowed?', $Context_class_definition_allowed$ques$8 = function() { + var $$9, self = this, def_index = nil, sclass_index = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + + def_index = $send(self.$stack(), 'rindex', [], ($$9 = function(item){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (item == null) { + item = nil; + }; + return ["def", "defs"]['$include?'](item);}, $$9.$$s = self, $$9.$$arity = 1, $$9)); + sclass_index = self.$stack().$rindex("sclass"); + if ($truthy(($ret_or_2 = def_index['$nil?']()))) { + return $ret_or_2 + } else { + + if ($truthy(($ret_or_3 = sclass_index['$nil?']()['$!']()))) { + return $rb_gt(sclass_index, def_index) + } else { + return $ret_or_3 + }; + }; + }, $Context_class_definition_allowed$ques$8.$$arity = 0); + $alias(self, "module_definition_allowed?", "class_definition_allowed?"); + $alias(self, "dynamic_const_definition_allowed?", "class_definition_allowed?"); + + Opal.def(self, '$in_block?', $Context_in_block$ques$10 = function() { + var self = this; + + return self.stack.$last()['$==']("block") + }, $Context_in_block$ques$10.$$arity = 0); + + Opal.def(self, '$in_lambda?', $Context_in_lambda$ques$11 = function() { + var self = this; + + return self.stack.$last()['$==']("lambda") + }, $Context_in_lambda$ques$11.$$arity = 0); + return (Opal.def(self, '$in_dynamic_block?', $Context_in_dynamic_block$ques$12 = function() { + var self = this, $ret_or_4 = nil; + + if ($truthy(($ret_or_4 = self['$in_block?']()))) { + return $ret_or_4 + } else { + return self['$in_lambda?']() + } + }, $Context_in_dynamic_block$ques$12.$$arity = 0), nil) && 'in_dynamic_block?'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/max_numparam_stack"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + + Opal.add_stubs(['$attr_reader', '$==', '$size', '$set', '$top', '$>', '$max', '$last', '$push', '$pop', '$private', '$-', '$length', '$[]=']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'MaxNumparamStack'); + + var $nesting = [self].concat($parent_nesting), $MaxNumparamStack_initialize$1, $MaxNumparamStack_empty$ques$2, $MaxNumparamStack_has_ordinary_params$excl$3, $MaxNumparamStack_has_ordinary_params$ques$4, $MaxNumparamStack_has_numparams$ques$5, $MaxNumparamStack_register$6, $MaxNumparamStack_top$7, $MaxNumparamStack_push$8, $MaxNumparamStack_pop$9, $MaxNumparamStack_set$10; + + self.$$prototype.stack = nil; + + self.$attr_reader("stack"); + Opal.const_set($nesting[0], 'ORDINARY_PARAMS', -1); + + Opal.def(self, '$initialize', $MaxNumparamStack_initialize$1 = function $$initialize() { + var self = this; + + return (self.stack = []) + }, $MaxNumparamStack_initialize$1.$$arity = 0); + + Opal.def(self, '$empty?', $MaxNumparamStack_empty$ques$2 = function() { + var self = this; + + return self.stack.$size()['$=='](0) + }, $MaxNumparamStack_empty$ques$2.$$arity = 0); + + Opal.def(self, '$has_ordinary_params!', $MaxNumparamStack_has_ordinary_params$excl$3 = function() { + var self = this; + + return self.$set($$($nesting, 'ORDINARY_PARAMS')) + }, $MaxNumparamStack_has_ordinary_params$excl$3.$$arity = 0); + + Opal.def(self, '$has_ordinary_params?', $MaxNumparamStack_has_ordinary_params$ques$4 = function() { + var self = this; + + return self.$top()['$==']($$($nesting, 'ORDINARY_PARAMS')) + }, $MaxNumparamStack_has_ordinary_params$ques$4.$$arity = 0); + + Opal.def(self, '$has_numparams?', $MaxNumparamStack_has_numparams$ques$5 = function() { + var self = this, $ret_or_1 = nil; + + if ($truthy(($ret_or_1 = self.$top()))) { + return $rb_gt(self.$top(), 0) + } else { + return $ret_or_1 + } + }, $MaxNumparamStack_has_numparams$ques$5.$$arity = 0); + + Opal.def(self, '$register', $MaxNumparamStack_register$6 = function $$register(numparam) { + var self = this; + + return self.$set([self.$top(), numparam].$max()) + }, $MaxNumparamStack_register$6.$$arity = 1); + + Opal.def(self, '$top', $MaxNumparamStack_top$7 = function $$top() { + var self = this; + + return self.stack.$last() + }, $MaxNumparamStack_top$7.$$arity = 0); + + Opal.def(self, '$push', $MaxNumparamStack_push$8 = function $$push() { + var self = this; + + return self.stack.$push(0) + }, $MaxNumparamStack_push$8.$$arity = 0); + + Opal.def(self, '$pop', $MaxNumparamStack_pop$9 = function $$pop() { + var self = this; + + return self.stack.$pop() + }, $MaxNumparamStack_pop$9.$$arity = 0); + self.$private(); + return (Opal.def(self, '$set', $MaxNumparamStack_set$10 = function $$set(value) { + var self = this, $writer = nil; + + + $writer = [$rb_minus(self.stack.$length(), 1), value]; + $send(self.stack, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }, $MaxNumparamStack_set$10.$$arity = 1), nil) && 'set'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/current_arg_stack"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; + + Opal.add_stubs(['$attr_reader', '$freeze', '$==', '$size', '$<<', '$-', '$length', '$[]=', '$pop', '$clear', '$last']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'CurrentArgStack'); + + var $nesting = [self].concat($parent_nesting), $CurrentArgStack_initialize$1, $CurrentArgStack_empty$ques$2, $CurrentArgStack_push$3, $CurrentArgStack_set$4, $CurrentArgStack_pop$5, $CurrentArgStack_reset$6, $CurrentArgStack_top$7; + + self.$$prototype.stack = nil; + + self.$attr_reader("stack"); + + Opal.def(self, '$initialize', $CurrentArgStack_initialize$1 = function $$initialize() { + var self = this; + + + self.stack = []; + return self.$freeze(); + }, $CurrentArgStack_initialize$1.$$arity = 0); + + Opal.def(self, '$empty?', $CurrentArgStack_empty$ques$2 = function() { + var self = this; + + return self.stack.$size()['$=='](0) + }, $CurrentArgStack_empty$ques$2.$$arity = 0); + + Opal.def(self, '$push', $CurrentArgStack_push$3 = function $$push(value) { + var self = this; + + return self.stack['$<<'](value) + }, $CurrentArgStack_push$3.$$arity = 1); + + Opal.def(self, '$set', $CurrentArgStack_set$4 = function $$set(value) { + var self = this, $writer = nil; + + + $writer = [$rb_minus(self.stack.$length(), 1), value]; + $send(self.stack, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }, $CurrentArgStack_set$4.$$arity = 1); + + Opal.def(self, '$pop', $CurrentArgStack_pop$5 = function $$pop() { + var self = this; + + return self.stack.$pop() + }, $CurrentArgStack_pop$5.$$arity = 0); + + Opal.def(self, '$reset', $CurrentArgStack_reset$6 = function $$reset() { + var self = this; + + return self.stack.$clear() + }, $CurrentArgStack_reset$6.$$arity = 0); + return (Opal.def(self, '$top', $CurrentArgStack_top$7 = function $$top() { + var self = this; + + return self.stack.$last() + }, $CurrentArgStack_top$7.$$arity = 0), nil) && 'top'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/variables_stack"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; + + Opal.add_stubs(['$push', '$empty?', '$<<', '$new', '$pop', '$clear', '$last', '$to_sym', '$include?']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'VariablesStack'); + + var $nesting = [self].concat($parent_nesting), $VariablesStack_initialize$1, $VariablesStack_empty$ques$2, $VariablesStack_push$3, $VariablesStack_pop$4, $VariablesStack_reset$5, $VariablesStack_declare$6, $VariablesStack_declared$ques$7; + + self.$$prototype.stack = nil; + + + Opal.def(self, '$initialize', $VariablesStack_initialize$1 = function $$initialize() { + var self = this; + + + self.stack = []; + return self.$push(); + }, $VariablesStack_initialize$1.$$arity = 0); + + Opal.def(self, '$empty?', $VariablesStack_empty$ques$2 = function() { + var self = this; + + return self.stack['$empty?']() + }, $VariablesStack_empty$ques$2.$$arity = 0); + + Opal.def(self, '$push', $VariablesStack_push$3 = function $$push() { + var self = this; + + return self.stack['$<<']($$($nesting, 'Set').$new()) + }, $VariablesStack_push$3.$$arity = 0); + + Opal.def(self, '$pop', $VariablesStack_pop$4 = function $$pop() { + var self = this; + + return self.stack.$pop() + }, $VariablesStack_pop$4.$$arity = 0); + + Opal.def(self, '$reset', $VariablesStack_reset$5 = function $$reset() { + var self = this; + + return self.stack.$clear() + }, $VariablesStack_reset$5.$$arity = 0); + + Opal.def(self, '$declare', $VariablesStack_declare$6 = function $$declare(name) { + var self = this; + + return self.stack.$last()['$<<'](name.$to_sym()) + }, $VariablesStack_declare$6.$$arity = 1); + return (Opal.def(self, '$declared?', $VariablesStack_declared$ques$7 = function(name) { + var self = this; + + return self.stack.$last()['$include?'](name.$to_sym()) + }, $VariablesStack_declared$ques$7.$$arity = 1), nil) && 'declared?'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/base"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $hash2 = Opal.hash2; + + Opal.add_stubs(['$default_parser', '$setup_source_buffer', '$default_encoding', '$parse', '$parse_with_comments', '$read', '$new', '$all_errors_are_fatal=', '$diagnostics', '$-', '$ignore_warnings=', '$lambda', '$puts', '$render', '$consumer=', '$force_encoding', '$dup', '$==', '$name', '$raw_source=', '$source=', '$private_class_method', '$attr_reader', '$version', '$diagnostics=', '$static_env=', '$context=', '$parser=', '$class', '$[]', '$reset', '$source_buffer=', '$do_parse', '$comments=', '$comments', '$tokens=', '$!', '$raise', '$tokens', '$private', '$advance', '$===', '$diagnostic', '$map', '$process', '$yyerror', '$token_to_str']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Base'); + + var $nesting = [self].concat($parent_nesting), $Base_parse$1, $Base_parse_with_comments$2, $Base_parse_file$3, $Base_parse_file_with_comments$4, $Base_default_parser$5, $Base_setup_source_buffer$7, $Base_initialize$8, $Base_reset$9, $Base_parse$10, $Base_parse_with_comments$11, $Base_tokenize$12, $Base_next_token$13, $Base_check_kwarg_name$14, $Base_diagnostic$15, $Base_on_error$17; + + self.$$prototype.diagnostics = self.$$prototype.lexer = self.$$prototype.static_env = self.$$prototype.context = self.$$prototype.builder = self.$$prototype.current_arg_stack = self.$$prototype.pattern_variables = self.$$prototype.pattern_hash_keys = nil; + + Opal.defs(self, '$parse', $Base_parse$1 = function $$parse(string, file, line) { + var self = this, parser = nil, source_buffer = nil; + + + + if (file == null) { + file = "(string)"; + }; + + if (line == null) { + line = 1; + }; + parser = self.$default_parser(); + source_buffer = self.$setup_source_buffer(file, line, string, parser.$default_encoding()); + return parser.$parse(source_buffer); + }, $Base_parse$1.$$arity = -2); + Opal.defs(self, '$parse_with_comments', $Base_parse_with_comments$2 = function $$parse_with_comments(string, file, line) { + var self = this, parser = nil, source_buffer = nil; + + + + if (file == null) { + file = "(string)"; + }; + + if (line == null) { + line = 1; + }; + parser = self.$default_parser(); + source_buffer = self.$setup_source_buffer(file, line, string, parser.$default_encoding()); + return parser.$parse_with_comments(source_buffer); + }, $Base_parse_with_comments$2.$$arity = -2); + Opal.defs(self, '$parse_file', $Base_parse_file$3 = function $$parse_file(filename) { + var self = this; + + return self.$parse($$($nesting, 'File').$read(filename), filename) + }, $Base_parse_file$3.$$arity = 1); + Opal.defs(self, '$parse_file_with_comments', $Base_parse_file_with_comments$4 = function $$parse_file_with_comments(filename) { + var self = this; + + return self.$parse_with_comments($$($nesting, 'File').$read(filename), filename) + }, $Base_parse_file_with_comments$4.$$arity = 1); + Opal.defs(self, '$default_parser', $Base_default_parser$5 = function $$default_parser() { + var $$6, self = this, parser = nil, $writer = nil; + + + parser = self.$new(); + + $writer = [true]; + $send(parser.$diagnostics(), 'all_errors_are_fatal=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [true]; + $send(parser.$diagnostics(), 'ignore_warnings=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [$send(self, 'lambda', [], ($$6 = function(diagnostic){var self = $$6.$$s == null ? this : $$6.$$s; + if ($gvars.stderr == null) $gvars.stderr = nil; + + + + if (diagnostic == null) { + diagnostic = nil; + }; + return $gvars.stderr.$puts(diagnostic.$render());}, $$6.$$s = self, $$6.$$arity = 1, $$6))]; + $send(parser.$diagnostics(), 'consumer=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return parser; + }, $Base_default_parser$5.$$arity = 0); + Opal.defs(self, '$setup_source_buffer', $Base_setup_source_buffer$7 = function $$setup_source_buffer(file, line, string, encoding) { + var self = this, source_buffer = nil, $writer = nil; + + + string = string.$dup().$force_encoding(encoding); + source_buffer = $$$($$($nesting, 'Source'), 'Buffer').$new(file, line); + if (self.$name()['$==']("Parser::Ruby18")) { + + $writer = [string]; + $send(source_buffer, 'raw_source=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + } else { + + $writer = [string]; + $send(source_buffer, 'source=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return source_buffer; + }, $Base_setup_source_buffer$7.$$arity = 4); + self.$private_class_method("setup_source_buffer"); + self.$attr_reader("lexer"); + self.$attr_reader("diagnostics"); + self.$attr_reader("builder"); + self.$attr_reader("static_env"); + self.$attr_reader("source_buffer"); + self.$attr_reader("context"); + self.$attr_reader("max_numparam_stack"); + self.$attr_reader("current_arg_stack"); + self.$attr_reader("pattern_variables"); + self.$attr_reader("pattern_hash_keys"); + + Opal.def(self, '$initialize', $Base_initialize$8 = function $$initialize(builder) { + var self = this, $writer = nil, $ret_or_1 = nil; + + + + if (builder == null) { + builder = $$$($$$($$($nesting, 'Parser'), 'Builders'), 'Default').$new(); + }; + self.diagnostics = $$$($$($nesting, 'Diagnostic'), 'Engine').$new(); + self.static_env = $$($nesting, 'StaticEnvironment').$new(); + self.context = $$($nesting, 'Context').$new(); + self.max_numparam_stack = $$($nesting, 'MaxNumparamStack').$new(); + self.current_arg_stack = $$($nesting, 'CurrentArgStack').$new(); + self.pattern_variables = $$($nesting, 'VariablesStack').$new(); + self.pattern_hash_keys = $$($nesting, 'VariablesStack').$new(); + self.lexer = $$($nesting, 'Lexer').$new(self.$version()); + + $writer = [self.diagnostics]; + $send(self.lexer, 'diagnostics=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [self.static_env]; + $send(self.lexer, 'static_env=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [self.context]; + $send(self.lexer, 'context=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.builder = builder; + + $writer = [self]; + $send(self.builder, 'parser=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.last_token = nil; + if ($truthy((function() {if ($truthy(($ret_or_1 = $$$(self.$class(), 'Racc_debug_parser')))) { + return $$($nesting, 'ENV')['$[]']("RACC_DEBUG") + } else { + return $ret_or_1 + }; return nil; })())) { + self.yydebug = true}; + return self.$reset(); + }, $Base_initialize$8.$$arity = -1); + + Opal.def(self, '$reset', $Base_reset$9 = function $$reset() { + var self = this; + + + self.source_buffer = nil; + self.lexer.$reset(); + self.static_env.$reset(); + self.context.$reset(); + self.current_arg_stack.$reset(); + self.pattern_variables.$reset(); + self.pattern_hash_keys.$reset(); + return self; + }, $Base_reset$9.$$arity = 0); + + Opal.def(self, '$parse', $Base_parse$10 = function $$parse(source_buffer) { + var self = this, $writer = nil, $ret_or_2 = nil; + + return (function() { try { + + + $writer = [source_buffer]; + $send(self.lexer, 'source_buffer=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.source_buffer = source_buffer; + if ($truthy(($ret_or_2 = self.$do_parse()))) { + return $ret_or_2 + } else { + return nil + }; + } finally { + ((self.source_buffer = nil), (($writer = [nil]), $send(self.lexer, 'source_buffer=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) + }; })() + }, $Base_parse$10.$$arity = 1); + + Opal.def(self, '$parse_with_comments', $Base_parse_with_comments$11 = function $$parse_with_comments(source_buffer) { + var self = this, $writer = nil; + + return (function() { try { + + + $writer = [[]]; + $send(self.lexer, 'comments=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return [self.$parse(source_buffer), self.lexer.$comments()]; + } finally { + (($writer = [nil]), $send(self.lexer, 'comments=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) + }; })() + }, $Base_parse_with_comments$11.$$arity = 1); + + Opal.def(self, '$tokenize', $Base_tokenize$12 = function $$tokenize(source_buffer, recover) { + var self = this, $writer = nil, ast = nil; + + + + if (recover == null) { + recover = false; + }; + return (function() { try { + + + $writer = [[]]; + $send(self.lexer, 'tokens=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [[]]; + $send(self.lexer, 'comments=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + try { + ast = self.$parse(source_buffer) + } catch ($err) { + if (Opal.rescue($err, [$$$($$($nesting, 'Parser'), 'SyntaxError')])) { + try { + if ($truthy(recover['$!']())) { + self.$raise()} + } finally { Opal.pop_exception(); } + } else { throw $err; } + };; + return [ast, self.lexer.$comments(), self.lexer.$tokens()]; + } finally { + ((($writer = [nil]), $send(self.lexer, 'tokens=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]), (($writer = [nil]), $send(self.lexer, 'comments=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) + }; })(); + }, $Base_tokenize$12.$$arity = -2); + self.$private(); + + Opal.def(self, '$next_token', $Base_next_token$13 = function $$next_token() { + var self = this, token = nil; + + + token = self.lexer.$advance(); + self.last_token = token; + return token; + }, $Base_next_token$13.$$arity = 0); + + Opal.def(self, '$check_kwarg_name', $Base_check_kwarg_name$14 = function $$check_kwarg_name(name_t) { + var self = this, $case = nil; + + return (function() {$case = name_t['$[]'](0); + if (/^[a-z_]/['$===']($case)) {return nil} + else if (/^[A-Z]/['$===']($case)) {return self.$diagnostic("error", "argument_const", nil, name_t)} + else { return nil }})() + }, $Base_check_kwarg_name$14.$$arity = 1); + + Opal.def(self, '$diagnostic', $Base_diagnostic$15 = function $$diagnostic(level, reason, arguments$, location_t, highlights_ts) { + var $a, $b, $$16, self = this, _ = nil, location = nil, highlights = nil; + + + + if (highlights_ts == null) { + highlights_ts = []; + }; + $b = location_t, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; + highlights = $send(highlights_ts, 'map', [], ($$16 = function(token){var self = $$16.$$s == null ? this : $$16.$$s, $c, $d, range = nil; + + + + if (token == null) { + token = nil; + }; + $d = token, $c = Opal.to_ary($d), (_ = ($c[0] == null ? nil : $c[0])), (range = ($c[1] == null ? nil : $c[1])), $d; + return range;}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + self.diagnostics.$process($$($nesting, 'Diagnostic').$new(level, reason, arguments$, location, highlights)); + if (level['$==']("error")) { + return self.$yyerror() + } else { + return nil + }; + }, $Base_diagnostic$15.$$arity = -5); + return (Opal.def(self, '$on_error', $Base_on_error$17 = function $$on_error(error_token_id, error_value, value_stack) { + var $a, $b, self = this, token_name = nil, _ = nil, location = nil; + + + token_name = self.$token_to_str(error_token_id); + $b = error_value, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; + return self.diagnostics.$process($$($nesting, 'Diagnostic').$new("error", "unexpected_token", $hash2(["token"], {"token": token_name}), location)); + }, $Base_on_error$17.$$arity = 3), nil) && 'on_error'; + })($nesting[0], $$$($$($nesting, 'Racc'), 'Parser'), $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/rewriter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$new', '$process', '$include?', '$type', '$remove', '$wrap', '$insert_before', '$insert_after', '$replace', '$freeze', '$join', '$extend', '$warn_of_deprecation', '$class', '$warned_of_deprecation=', '$-']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Rewriter'); + + var $nesting = [self].concat($parent_nesting), $Rewriter_rewrite$1, $Rewriter_assignment$ques$2, $Rewriter_remove$3, $Rewriter_wrap$4, $Rewriter_insert_before$5, $Rewriter_insert_after$6, $Rewriter_replace$7, $Rewriter_initialize$8; + + self.$$prototype.source_rewriter = nil; + + + Opal.def(self, '$rewrite', $Rewriter_rewrite$1 = function $$rewrite(source_buffer, ast) { + var self = this; + + + self.source_rewriter = $$$($$($nesting, 'Source'), 'Rewriter').$new(source_buffer); + self.$process(ast); + return self.source_rewriter.$process(); + }, $Rewriter_rewrite$1.$$arity = 2); + + Opal.def(self, '$assignment?', $Rewriter_assignment$ques$2 = function(node) { + var self = this; + + return ["lvasgn", "ivasgn", "gvasgn", "cvasgn", "casgn"]['$include?'](node.$type()) + }, $Rewriter_assignment$ques$2.$$arity = 1); + + Opal.def(self, '$remove', $Rewriter_remove$3 = function $$remove(range) { + var self = this; + + return self.source_rewriter.$remove(range) + }, $Rewriter_remove$3.$$arity = 1); + + Opal.def(self, '$wrap', $Rewriter_wrap$4 = function $$wrap(range, before, after) { + var self = this; + + return self.source_rewriter.$wrap(range, before, after) + }, $Rewriter_wrap$4.$$arity = 3); + + Opal.def(self, '$insert_before', $Rewriter_insert_before$5 = function $$insert_before(range, content) { + var self = this; + + return self.source_rewriter.$insert_before(range, content) + }, $Rewriter_insert_before$5.$$arity = 2); + + Opal.def(self, '$insert_after', $Rewriter_insert_after$6 = function $$insert_after(range, content) { + var self = this; + + return self.source_rewriter.$insert_after(range, content) + }, $Rewriter_insert_after$6.$$arity = 2); + + Opal.def(self, '$replace', $Rewriter_replace$7 = function $$replace(range, content) { + var self = this; + + return self.source_rewriter.$replace(range, content) + }, $Rewriter_replace$7.$$arity = 2); + Opal.const_set($nesting[0], 'DEPRECATION_WARNING', ["Parser::Rewriter is deprecated.", "Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()); + self.$extend($$($nesting, 'Deprecation')); + return (Opal.def(self, '$initialize', $Rewriter_initialize$8 = function $$initialize($a) { + var $post_args, $rest_arg, $iter = $Rewriter_initialize$8.$$p, $yield = $iter || nil, self = this, $writer = nil; + + if ($iter) $Rewriter_initialize$8.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + self.$class().$warn_of_deprecation(); + + $writer = [true]; + $send($$$($$($nesting, 'Source'), 'Rewriter'), 'warned_of_deprecation=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return $send2(self, $find_super(self, 'initialize', $Rewriter_initialize$8, false, true), 'initialize', Opal.to_a($rest_arg), $iter); + }, $Rewriter_initialize$8.$$arity = -1), nil) && 'initialize'; + })($nesting[0], $$$($$$($$($nesting, 'Parser'), 'AST'), 'Processor'), $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser/tree_rewriter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $hash = Opal.hash; + + Opal.add_stubs(['$new', '$process', '$include?', '$type', '$remove', '$wrap', '$insert_before', '$insert_after', '$replace']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'TreeRewriter'); + + var $nesting = [self].concat($parent_nesting), $TreeRewriter_rewrite$1, $TreeRewriter_assignment$ques$2, $TreeRewriter_remove$3, $TreeRewriter_wrap$4, $TreeRewriter_insert_before$5, $TreeRewriter_insert_after$6, $TreeRewriter_replace$7; + + self.$$prototype.source_rewriter = nil; + + + Opal.def(self, '$rewrite', $TreeRewriter_rewrite$1 = function $$rewrite(source_buffer, ast, $kwargs) { + var policy, self = this; + + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + policy = Opal.kwrestargs($kwargs, {});; + self.source_rewriter = $$$($$$($$($nesting, 'Parser'), 'Source'), 'TreeRewriter').$new(source_buffer, Opal.to_hash(policy)); + self.$process(ast); + return self.source_rewriter.$process(); + }, $TreeRewriter_rewrite$1.$$arity = -3); + + Opal.def(self, '$assignment?', $TreeRewriter_assignment$ques$2 = function(node) { + var self = this; + + return ["lvasgn", "ivasgn", "gvasgn", "cvasgn", "casgn"]['$include?'](node.$type()) + }, $TreeRewriter_assignment$ques$2.$$arity = 1); + + Opal.def(self, '$remove', $TreeRewriter_remove$3 = function $$remove(range) { + var self = this; + + return self.source_rewriter.$remove(range) + }, $TreeRewriter_remove$3.$$arity = 1); + + Opal.def(self, '$wrap', $TreeRewriter_wrap$4 = function $$wrap(range, before, after) { + var self = this; + + return self.source_rewriter.$wrap(range, before, after) + }, $TreeRewriter_wrap$4.$$arity = 3); + + Opal.def(self, '$insert_before', $TreeRewriter_insert_before$5 = function $$insert_before(range, content) { + var self = this; + + return self.source_rewriter.$insert_before(range, content) + }, $TreeRewriter_insert_before$5.$$arity = 2); + + Opal.def(self, '$insert_after', $TreeRewriter_insert_after$6 = function $$insert_after(range, content) { + var self = this; + + return self.source_rewriter.$insert_after(range, content) + }, $TreeRewriter_insert_after$6.$$arity = 2); + return (Opal.def(self, '$replace', $TreeRewriter_replace$7 = function $$replace(range, content) { + var self = this; + + return self.source_rewriter.$replace(range, content) + }, $TreeRewriter_replace$7.$$arity = 2), nil) && 'replace'; + })($nesting[0], $$$($$$($$($nesting, 'Parser'), 'AST'), 'Processor'), $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["parser"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $module = Opal.module; + + Opal.add_stubs(['$=~', '$require', '$raise']); + + if ($truthy($$($nesting, 'RUBY_VERSION')['$=~'](/^1\.[89]\./))) { + + self.$require("parser/version"); + self.$raise($$($nesting, 'LoadError'), "" + "parser v" + ($$$($$($nesting, 'Parser'), 'VERSION')) + " cannot run on Ruby " + ($$($nesting, 'RUBY_VERSION')) + ".\n" + "Please upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n");}; + self.$require("set"); + self.$require("racc/parser"); + self.$require("ast"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + + self.$require("parser/version"); + self.$require("parser/messages"); + self.$require("parser/deprecation"); + (function($base, $parent_nesting) { + var self = $module($base, 'AST'); + + var $nesting = [self].concat($parent_nesting); + + + self.$require("parser/ast/node"); + self.$require("parser/ast/processor"); + return self.$require("parser/meta"); + })($nesting[0], $nesting); + (function($base, $parent_nesting) { + var self = $module($base, 'Source'); + + var $nesting = [self].concat($parent_nesting); + + + self.$require("parser/source/buffer"); + self.$require("parser/source/range"); + self.$require("parser/source/comment"); + self.$require("parser/source/comment/associator"); + self.$require("parser/source/rewriter"); + self.$require("parser/source/rewriter/action"); + self.$require("parser/source/tree_rewriter"); + self.$require("parser/source/tree_rewriter/action"); + self.$require("parser/source/map"); + self.$require("parser/source/map/operator"); + self.$require("parser/source/map/collection"); + self.$require("parser/source/map/constant"); + self.$require("parser/source/map/variable"); + self.$require("parser/source/map/keyword"); + self.$require("parser/source/map/definition"); + self.$require("parser/source/map/method_definition"); + self.$require("parser/source/map/send"); + self.$require("parser/source/map/index"); + self.$require("parser/source/map/condition"); + self.$require("parser/source/map/ternary"); + self.$require("parser/source/map/for"); + self.$require("parser/source/map/rescue_body"); + self.$require("parser/source/map/heredoc"); + return self.$require("parser/source/map/objc_kwarg"); + })($nesting[0], $nesting); + self.$require("parser/syntax_error"); + self.$require("parser/clobbering_error"); + self.$require("parser/diagnostic"); + self.$require("parser/diagnostic/engine"); + self.$require("parser/static_environment"); + self.$require("parser/lexer"); + self.$require("parser/lexer/literal"); + self.$require("parser/lexer/stack_state"); + self.$require("parser/lexer/dedenter"); + (function($base, $parent_nesting) { + var self = $module($base, 'Builders'); + + var $nesting = [self].concat($parent_nesting); + + return self.$require("parser/builders/default") + })($nesting[0], $nesting); + self.$require("parser/context"); + self.$require("parser/max_numparam_stack"); + self.$require("parser/current_arg_stack"); + self.$require("parser/variables_stack"); + self.$require("parser/base"); + self.$require("parser/rewriter"); + return self.$require("parser/tree_rewriter"); + })($nesting[0], $nesting); +}; + +Opal.modules["parser/ruby30"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash = Opal.hash, $hash2 = Opal.hash2, $slice = Opal.slice; + + Opal.add_stubs(['$require', '$!', '$include?', '$[]', '$end_with?', '$diagnostic', '$new', '$each', '$split', '$empty?', '$to_i', '$[]=', '$-', '$+', '$push', '$pop', '$compstmt', '$<<', '$preexe', '$nil?', '$begin_body', '$state=', '$alias', '$gvar', '$back_ref', '$undef_method', '$condition_mod', '$loop_mod', '$rescue_body', '$postexe', '$multi_assign', '$assign', '$array', '$op_assign', '$index', '$call_method', '$const_op_assignable', '$const_fetch', '$logical_op', '$not_op', '$command_start=', '$in_kwarg', '$in_kwarg=', '$match_pattern', '$match_pattern_p', '$cond', '$extend_static', '$cmdarg', '$block', '$keyword_cmd', '$multi_lhs', '$begin', '$splat', '$concat', '$assignable', '$index_asgn', '$==', '$attr_asgn', '$const_global', '$const', '$symbol_internal', '$range_inclusive', '$range_exclusive', '$binary_op', '$unary_op', '$match_op', '$ternary', '$endless_method_name', '$def_endless_method', '$unextend', '$def_endless_singleton', '$associate', '$declared_forward_args?', '$forwarded_args', '$block_pass', '$begin_keyword', '$condition', '$loop', '$case', '$case_match', '$for', '$class_definition_allowed?', '$def_class', '$def_sclass', '$module_definition_allowed?', '$def_module', '$def_method', '$def_singleton', '$in_class?', '$arg', '$restarg', '$size', '$procarg0', '$args', '$has_ordinary_params!', '$set', '$declare', '$shadowarg', '$extend_dynamic', '$call_lambda', '$has_numparams?', '$numargs', '$top', '$any?', '$when', '$in_pattern', '$if_guard', '$unless_guard', '$match_with_trailing_comma', '$array_pattern', '$find_pattern', '$hash_pattern', '$match_as', '$match_alt', '$const_pattern', '$match_rest', '$match_pair', '$match_label', '$match_nil_pattern', '$accessible', '$match_var', '$declared?', '$static_env', '$ident', '$pin', '$string_compose', '$dedent_string', '$dedent_level', '$string', '$character', '$xstring_compose', '$regexp_options', '$regexp_compose', '$words_compose', '$word', '$symbols_compose', '$string_internal', '$ivar', '$cvar', '$symbol', '$symbol_compose', '$respond_to?', '$negate', '$unary_num', '$integer', '$float', '$rational', '$complex', '$nil', '$self', '$true', '$false', '$__FILE__', '$__LINE__', '$__ENCODING__', '$type', '$children', '$=~', '$in_dynamic_block?', '$context', '$expression', '$loc', '$has_ordinary_params?', '$max_numparam_stack', '$dup', '$stack', '$reverse_each', '$>', '$register', '$nth_ref', '$forward_arg', '$declare_forward_args', '$forward_only_args', '$check_kwarg_name', '$kwoptarg', '$kwarg', '$kwnilarg', '$kwrestarg', '$optarg', '$blockarg', '$pair', '$pair_keyword', '$pair_quoted', '$kwsplat', '$yyerrok']); + + self.$require("racc/parser.rb"); + self.$require("parser"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Ruby30'); + + var $nesting = [self].concat($parent_nesting), $Ruby30_version$1, $Ruby30_default_encoding$2, $Ruby30_endless_method_name$3, $Ruby30$4, $Ruby30$6, $Ruby30$8, $Ruby30$10, $Ruby30__reduce_1$12, $Ruby30__reduce_2$13, $Ruby30__reduce_3$14, $Ruby30__reduce_4$15, $Ruby30__reduce_5$16, $Ruby30__reduce_6$17, $Ruby30__reduce_7$18, $Ruby30__reduce_9$19, $Ruby30__reduce_10$20, $Ruby30__reduce_11$21, $Ruby30__reduce_12$22, $Ruby30__reduce_13$23, $Ruby30__reduce_14$24, $Ruby30__reduce_15$25, $Ruby30__reduce_16$26, $Ruby30__reduce_18$27, $Ruby30__reduce_19$28, $Ruby30__reduce_20$29, $Ruby30__reduce_21$30, $Ruby30__reduce_22$31, $Ruby30__reduce_23$32, $Ruby30__reduce_24$33, $Ruby30__reduce_25$34, $Ruby30__reduce_26$35, $Ruby30__reduce_27$36, $Ruby30__reduce_28$37, $Ruby30__reduce_29$38, $Ruby30__reduce_30$39, $Ruby30__reduce_32$40, $Ruby30__reduce_33$41, $Ruby30__reduce_34$42, $Ruby30__reduce_35$43, $Ruby30__reduce_37$44, $Ruby30__reduce_38$45, $Ruby30__reduce_39$46, $Ruby30__reduce_40$47, $Ruby30__reduce_41$48, $Ruby30__reduce_42$49, $Ruby30__reduce_43$50, $Ruby30__reduce_44$51, $Ruby30__reduce_46$52, $Ruby30__reduce_49$53, $Ruby30__reduce_50$54, $Ruby30__reduce_51$55, $Ruby30__reduce_52$56, $Ruby30__reduce_53$57, $Ruby30__reduce_54$58, $Ruby30__reduce_55$59, $Ruby30__reduce_56$60, $Ruby30__reduce_59$61, $Ruby30__reduce_60$62, $Ruby30__reduce_61$63, $Ruby30__reduce_62$64, $Ruby30__reduce_63$65, $Ruby30__reduce_64$66, $Ruby30__reduce_68$67, $Ruby30__reduce_69$68, $Ruby30__reduce_70$69, $Ruby30__reduce_72$70, $Ruby30__reduce_73$71, $Ruby30__reduce_74$72, $Ruby30__reduce_75$73, $Ruby30__reduce_76$74, $Ruby30__reduce_77$75, $Ruby30__reduce_78$76, $Ruby30__reduce_79$77, $Ruby30__reduce_80$78, $Ruby30__reduce_81$79, $Ruby30__reduce_82$80, $Ruby30__reduce_83$81, $Ruby30__reduce_84$82, $Ruby30__reduce_85$83, $Ruby30__reduce_86$84, $Ruby30__reduce_88$85, $Ruby30__reduce_89$86, $Ruby30__reduce_90$87, $Ruby30__reduce_91$88, $Ruby30__reduce_92$89, $Ruby30__reduce_93$90, $Ruby30__reduce_94$91, $Ruby30__reduce_95$92, $Ruby30__reduce_96$93, $Ruby30__reduce_98$94, $Ruby30__reduce_99$95, $Ruby30__reduce_100$96, $Ruby30__reduce_101$97, $Ruby30__reduce_102$98, $Ruby30__reduce_103$99, $Ruby30__reduce_104$100, $Ruby30__reduce_105$101, $Ruby30__reduce_106$102, $Ruby30__reduce_107$103, $Ruby30__reduce_108$104, $Ruby30__reduce_109$105, $Ruby30__reduce_110$106, $Ruby30__reduce_111$107, $Ruby30__reduce_112$108, $Ruby30__reduce_113$109, $Ruby30__reduce_114$110, $Ruby30__reduce_115$111, $Ruby30__reduce_116$112, $Ruby30__reduce_117$113, $Ruby30__reduce_118$114, $Ruby30__reduce_119$115, $Ruby30__reduce_120$116, $Ruby30__reduce_121$117, $Ruby30__reduce_123$118, $Ruby30__reduce_124$119, $Ruby30__reduce_125$120, $Ruby30__reduce_131$121, $Ruby30__reduce_133$122, $Ruby30__reduce_134$123, $Ruby30__reduce_135$124, $Ruby30__reduce_207$125, $Ruby30__reduce_208$126, $Ruby30__reduce_209$127, $Ruby30__reduce_210$128, $Ruby30__reduce_211$129, $Ruby30__reduce_212$130, $Ruby30__reduce_213$131, $Ruby30__reduce_214$132, $Ruby30__reduce_215$133, $Ruby30__reduce_216$134, $Ruby30__reduce_217$135, $Ruby30__reduce_218$136, $Ruby30__reduce_219$137, $Ruby30__reduce_220$138, $Ruby30__reduce_221$139, $Ruby30__reduce_222$140, $Ruby30__reduce_223$141, $Ruby30__reduce_224$142, $Ruby30__reduce_225$143, $Ruby30__reduce_226$144, $Ruby30__reduce_227$145, $Ruby30__reduce_228$146, $Ruby30__reduce_229$147, $Ruby30__reduce_230$148, $Ruby30__reduce_231$149, $Ruby30__reduce_232$150, $Ruby30__reduce_233$151, $Ruby30__reduce_234$152, $Ruby30__reduce_236$153, $Ruby30__reduce_237$154, $Ruby30__reduce_238$155, $Ruby30__reduce_239$156, $Ruby30__reduce_240$157, $Ruby30__reduce_241$158, $Ruby30__reduce_242$159, $Ruby30__reduce_243$160, $Ruby30__reduce_244$161, $Ruby30__reduce_245$162, $Ruby30__reduce_246$163, $Ruby30__reduce_247$164, $Ruby30__reduce_248$165, $Ruby30__reduce_249$166, $Ruby30__reduce_250$167, $Ruby30__reduce_251$168, $Ruby30__reduce_252$169, $Ruby30__reduce_258$170, $Ruby30__reduce_259$171, $Ruby30__reduce_263$172, $Ruby30__reduce_264$173, $Ruby30__reduce_266$174, $Ruby30__reduce_267$175, $Ruby30__reduce_268$176, $Ruby30__reduce_269$177, $Ruby30__reduce_270$178, $Ruby30__reduce_272$179, $Ruby30__reduce_275$180, $Ruby30__reduce_276$181, $Ruby30__reduce_277$182, $Ruby30__reduce_278$183, $Ruby30__reduce_279$184, $Ruby30__reduce_280$185, $Ruby30__reduce_281$186, $Ruby30__reduce_282$187, $Ruby30__reduce_283$188, $Ruby30__reduce_284$189, $Ruby30__reduce_285$190, $Ruby30__reduce_286$191, $Ruby30__reduce_287$192, $Ruby30__reduce_288$193, $Ruby30__reduce_289$194, $Ruby30__reduce_290$195, $Ruby30__reduce_291$196, $Ruby30__reduce_293$197, $Ruby30__reduce_294$198, $Ruby30__reduce_295$199, $Ruby30__reduce_306$200, $Ruby30__reduce_307$201, $Ruby30__reduce_308$202, $Ruby30__reduce_309$203, $Ruby30__reduce_310$204, $Ruby30__reduce_311$205, $Ruby30__reduce_312$206, $Ruby30__reduce_313$207, $Ruby30__reduce_314$208, $Ruby30__reduce_315$209, $Ruby30__reduce_316$210, $Ruby30__reduce_317$211, $Ruby30__reduce_318$212, $Ruby30__reduce_319$213, $Ruby30__reduce_320$214, $Ruby30__reduce_321$215, $Ruby30__reduce_322$216, $Ruby30__reduce_323$217, $Ruby30__reduce_324$218, $Ruby30__reduce_325$219, $Ruby30__reduce_327$220, $Ruby30__reduce_329$221, $Ruby30__reduce_330$222, $Ruby30__reduce_331$223, $Ruby30__reduce_332$224, $Ruby30__reduce_333$225, $Ruby30__reduce_334$226, $Ruby30__reduce_335$227, $Ruby30__reduce_336$228, $Ruby30__reduce_337$229, $Ruby30__reduce_338$230, $Ruby30__reduce_339$231, $Ruby30__reduce_340$232, $Ruby30__reduce_341$233, $Ruby30__reduce_342$234, $Ruby30__reduce_343$235, $Ruby30__reduce_344$236, $Ruby30__reduce_345$237, $Ruby30__reduce_346$238, $Ruby30__reduce_347$239, $Ruby30__reduce_348$240, $Ruby30__reduce_350$241, $Ruby30__reduce_353$242, $Ruby30__reduce_357$243, $Ruby30__reduce_359$244, $Ruby30__reduce_362$245, $Ruby30__reduce_363$246, $Ruby30__reduce_364$247, $Ruby30__reduce_365$248, $Ruby30__reduce_367$249, $Ruby30__reduce_368$250, $Ruby30__reduce_369$251, $Ruby30__reduce_370$252, $Ruby30__reduce_371$253, $Ruby30__reduce_372$254, $Ruby30__reduce_375$255, $Ruby30__reduce_376$256, $Ruby30__reduce_377$257, $Ruby30__reduce_378$258, $Ruby30__reduce_379$259, $Ruby30__reduce_380$260, $Ruby30__reduce_382$261, $Ruby30__reduce_383$262, $Ruby30__reduce_384$263, $Ruby30__reduce_385$264, $Ruby30__reduce_386$265, $Ruby30__reduce_388$266, $Ruby30__reduce_389$267, $Ruby30__reduce_390$268, $Ruby30__reduce_391$269, $Ruby30__reduce_392$270, $Ruby30__reduce_393$271, $Ruby30__reduce_394$272, $Ruby30__reduce_395$273, $Ruby30__reduce_397$274, $Ruby30__reduce_398$275, $Ruby30__reduce_399$276, $Ruby30__reduce_400$277, $Ruby30__reduce_401$278, $Ruby30__reduce_402$279, $Ruby30__reduce_403$280, $Ruby30__reduce_404$281, $Ruby30__reduce_405$282, $Ruby30__reduce_407$283, $Ruby30__reduce_408$284, $Ruby30__reduce_409$285, $Ruby30__reduce_410$286, $Ruby30__reduce_411$287, $Ruby30__reduce_412$288, $Ruby30__reduce_413$289, $Ruby30__reduce_414$290, $Ruby30__reduce_415$291, $Ruby30__reduce_416$292, $Ruby30__reduce_417$293, $Ruby30__reduce_418$294, $Ruby30__reduce_419$295, $Ruby30__reduce_420$296, $Ruby30__reduce_421$297, $Ruby30__reduce_422$298, $Ruby30__reduce_423$299, $Ruby30__reduce_424$300, $Ruby30__reduce_425$301, $Ruby30__reduce_426$302, $Ruby30__reduce_427$303, $Ruby30__reduce_428$304, $Ruby30__reduce_429$305, $Ruby30__reduce_430$306, $Ruby30__reduce_431$307, $Ruby30__reduce_432$308, $Ruby30__reduce_433$309, $Ruby30__reduce_434$310, $Ruby30__reduce_435$311, $Ruby30__reduce_436$312, $Ruby30__reduce_437$313, $Ruby30__reduce_438$314, $Ruby30__reduce_439$315, $Ruby30__reduce_440$316, $Ruby30__reduce_441$317, $Ruby30__reduce_443$318, $Ruby30__reduce_444$319, $Ruby30__reduce_445$320, $Ruby30__reduce_446$321, $Ruby30__reduce_448$322, $Ruby30__reduce_449$323, $Ruby30__reduce_450$324, $Ruby30__reduce_452$325, $Ruby30__reduce_453$326, $Ruby30__reduce_454$327, $Ruby30__reduce_455$328, $Ruby30__reduce_456$329, $Ruby30__reduce_458$330, $Ruby30__reduce_460$331, $Ruby30__reduce_462$332, $Ruby30__reduce_463$333, $Ruby30__reduce_465$334, $Ruby30__reduce_466$335, $Ruby30__reduce_467$336, $Ruby30__reduce_468$337, $Ruby30__reduce_469$338, $Ruby30__reduce_470$339, $Ruby30__reduce_471$340, $Ruby30__reduce_472$341, $Ruby30__reduce_473$342, $Ruby30__reduce_474$343, $Ruby30__reduce_475$344, $Ruby30__reduce_476$345, $Ruby30__reduce_477$346, $Ruby30__reduce_478$347, $Ruby30__reduce_479$348, $Ruby30__reduce_480$349, $Ruby30__reduce_481$350, $Ruby30__reduce_482$351, $Ruby30__reduce_483$352, $Ruby30__reduce_484$353, $Ruby30__reduce_485$354, $Ruby30__reduce_486$355, $Ruby30__reduce_487$356, $Ruby30__reduce_489$357, $Ruby30__reduce_490$358, $Ruby30__reduce_491$359, $Ruby30__reduce_492$360, $Ruby30__reduce_493$361, $Ruby30__reduce_494$362, $Ruby30__reduce_495$363, $Ruby30__reduce_496$364, $Ruby30__reduce_497$365, $Ruby30__reduce_499$366, $Ruby30__reduce_500$367, $Ruby30__reduce_501$368, $Ruby30__reduce_502$369, $Ruby30__reduce_503$370, $Ruby30__reduce_504$371, $Ruby30__reduce_505$372, $Ruby30__reduce_506$373, $Ruby30__reduce_507$374, $Ruby30__reduce_508$375, $Ruby30__reduce_509$376, $Ruby30__reduce_510$377, $Ruby30__reduce_511$378, $Ruby30__reduce_515$379, $Ruby30__reduce_516$380, $Ruby30__reduce_517$381, $Ruby30__reduce_518$382, $Ruby30__reduce_522$383, $Ruby30__reduce_523$384, $Ruby30__reduce_532$385, $Ruby30__reduce_534$386, $Ruby30__reduce_535$387, $Ruby30__reduce_536$388, $Ruby30__reduce_537$389, $Ruby30__reduce_538$390, $Ruby30__reduce_539$391, $Ruby30__reduce_540$392, $Ruby30__reduce_541$393, $Ruby30__reduce_544$394, $Ruby30__reduce_546$395, $Ruby30__reduce_550$396, $Ruby30__reduce_551$397, $Ruby30__reduce_552$398, $Ruby30__reduce_553$399, $Ruby30__reduce_554$400, $Ruby30__reduce_555$401, $Ruby30__reduce_556$402, $Ruby30__reduce_557$403, $Ruby30__reduce_558$404, $Ruby30__reduce_559$405, $Ruby30__reduce_560$406, $Ruby30__reduce_561$407, $Ruby30__reduce_562$408, $Ruby30__reduce_563$409, $Ruby30__reduce_564$410, $Ruby30__reduce_565$411, $Ruby30__reduce_566$412, $Ruby30__reduce_567$413, $Ruby30__reduce_568$414, $Ruby30__reduce_569$415, $Ruby30__reduce_570$416, $Ruby30__reduce_571$417, $Ruby30__reduce_572$418, $Ruby30__reduce_573$419, $Ruby30__reduce_574$420, $Ruby30__reduce_575$421, $Ruby30__reduce_576$422, $Ruby30__reduce_577$423, $Ruby30__reduce_578$424, $Ruby30__reduce_579$425, $Ruby30__reduce_580$426, $Ruby30__reduce_581$427, $Ruby30__reduce_582$428, $Ruby30__reduce_583$429, $Ruby30__reduce_584$430, $Ruby30__reduce_588$431, $Ruby30__reduce_589$432, $Ruby30__reduce_590$433, $Ruby30__reduce_591$434, $Ruby30__reduce_592$435, $Ruby30__reduce_593$436, $Ruby30__reduce_594$437, $Ruby30__reduce_595$438, $Ruby30__reduce_596$439, $Ruby30__reduce_597$440, $Ruby30__reduce_598$441, $Ruby30__reduce_599$442, $Ruby30__reduce_600$443, $Ruby30__reduce_601$444, $Ruby30__reduce_602$445, $Ruby30__reduce_603$446, $Ruby30__reduce_604$447, $Ruby30__reduce_605$448, $Ruby30__reduce_606$449, $Ruby30__reduce_607$450, $Ruby30__reduce_608$451, $Ruby30__reduce_609$453, $Ruby30__reduce_610$454, $Ruby30__reduce_611$455, $Ruby30__reduce_612$456, $Ruby30__reduce_613$457, $Ruby30__reduce_614$458, $Ruby30__reduce_615$459, $Ruby30__reduce_616$460, $Ruby30__reduce_618$461, $Ruby30__reduce_619$462, $Ruby30__reduce_620$463, $Ruby30__reduce_621$464, $Ruby30__reduce_623$465, $Ruby30__reduce_624$466, $Ruby30__reduce_625$467, $Ruby30__reduce_626$468, $Ruby30__reduce_627$469, $Ruby30__reduce_628$470, $Ruby30__reduce_629$471, $Ruby30__reduce_630$472, $Ruby30__reduce_631$473, $Ruby30__reduce_632$474, $Ruby30__reduce_633$475, $Ruby30__reduce_634$476, $Ruby30__reduce_635$477, $Ruby30__reduce_636$478, $Ruby30__reduce_637$479, $Ruby30__reduce_638$480, $Ruby30__reduce_639$481, $Ruby30__reduce_640$482, $Ruby30__reduce_641$483, $Ruby30__reduce_642$484, $Ruby30__reduce_643$485, $Ruby30__reduce_644$486, $Ruby30__reduce_645$487, $Ruby30__reduce_646$488, $Ruby30__reduce_647$489, $Ruby30__reduce_648$490, $Ruby30__reduce_649$491, $Ruby30__reduce_650$492, $Ruby30__reduce_652$493, $Ruby30__reduce_653$494, $Ruby30__reduce_654$495, $Ruby30__reduce_655$496, $Ruby30__reduce_656$497, $Ruby30__reduce_657$498, $Ruby30__reduce_658$499, $Ruby30__reduce_659$500, $Ruby30__reduce_660$501, $Ruby30__reduce_661$502, $Ruby30__reduce_662$503, $Ruby30__reduce_663$504, $Ruby30__reduce_664$505, $Ruby30__reduce_665$506, $Ruby30__reduce_666$507, $Ruby30__reduce_669$508, $Ruby30__reduce_670$509, $Ruby30__reduce_671$510, $Ruby30__reduce_672$511, $Ruby30__reduce_673$512, $Ruby30__reduce_674$513, $Ruby30__reduce_675$514, $Ruby30__reduce_676$515, $Ruby30__reduce_677$516, $Ruby30__reduce_680$517, $Ruby30__reduce_681$518, $Ruby30__reduce_684$519, $Ruby30__reduce_685$520, $Ruby30__reduce_686$521, $Ruby30__reduce_688$522, $Ruby30__reduce_689$523, $Ruby30__reduce_691$524, $Ruby30__reduce_692$525, $Ruby30__reduce_693$526, $Ruby30__reduce_694$527, $Ruby30__reduce_695$528, $Ruby30__reduce_696$529, $Ruby30__reduce_709$530, $Ruby30__reduce_710$531, $Ruby30__reduce_715$532, $Ruby30__reduce_716$533, $Ruby30__reduce_717$534, $Ruby30__reduce_721$535, $Ruby30__reduce_725$536, $Ruby30__reduce_none$537, clist = nil, racc_action_table = nil, arr = nil, idx = nil, racc_action_check = nil, racc_action_pointer = nil, racc_action_default = nil, racc_goto_table = nil, racc_goto_check = nil, racc_goto_pointer = nil, racc_goto_default = nil, racc_reduce_table = nil, racc_reduce_n = nil, racc_shift_n = nil, racc_token_table = nil, racc_nt_base = nil, racc_use_result_var = nil; + + self.$$prototype.current_arg_stack = self.$$prototype.max_numparam_stack = self.$$prototype.builder = self.$$prototype.lexer = self.$$prototype.pattern_variables = self.$$prototype.static_env = self.$$prototype.context = self.$$prototype.last_token = self.$$prototype.pattern_hash_keys = nil; + + + Opal.def(self, '$version', $Ruby30_version$1 = function $$version() { + var self = this; + + return 30 + }, $Ruby30_version$1.$$arity = 0); + + Opal.def(self, '$default_encoding', $Ruby30_default_encoding$2 = function $$default_encoding() { + var self = this; + + return $$$($$($nesting, 'Encoding'), 'UTF_8') + }, $Ruby30_default_encoding$2.$$arity = 0); + + Opal.def(self, '$endless_method_name', $Ruby30_endless_method_name$3 = function $$endless_method_name(name_t) { + var self = this, $ret_or_1 = nil; + + if ($truthy((function() {if ($truthy(($ret_or_1 = ["===", "==", "!=", "<=", ">="]['$include?'](name_t['$[]'](0))['$!']()))) { + return name_t['$[]'](0)['$end_with?']("=") + } else { + return $ret_or_1 + }; return nil; })())) { + return self.$diagnostic("error", "endless_setter", nil, name_t) + } else { + return nil + } + }, $Ruby30_endless_method_name$3.$$arity = 1); + clist = ["-704,677,614,1080,867,962,-120,-704,-704,-704,218,219,802,-704,-704", "-603,-704,101,102,867,228,-113,-603,-116,-704,-704,657,1147,655,-713", "863,-119,-118,1150,-114,1075,-704,-704,614,-704,-704,-704,-704,-704", "-112,-119,229,614,614,917,1121,-118,423,1074,621,-117,867,425,424,807", "-117,229,807,-115,-113,-498,-704,-704,-704,-704,-704,-704,-704,-704", "-704,-704,-704,-704,-704,-704,-603,-112,-704,-704,-704,1081,682,-704", "-700,-117,-704,-120,656,-704,654,103,104,-701,-704,229,-704,226,-704", "-704,229,-704,-704,-704,-704,-704,-599,-704,-704,-704,961,-111,123,-599", "-599,-599,123,122,-599,-599,-599,122,-599,-704,-701,-106,-704,-704,-107", "-704,-599,-704,-599,-599,-599,-113,-110,-109,-704,-105,-113,-116,-599", "-599,614,-599,-599,-599,-599,-599,-116,-114,123,-115,-117,951,-120,122", "-112,-119,-108,123,123,-112,-119,-118,122,122,-106,-104,-118,229,-599", "-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-103", "614,-599,-599,-599,-106,-599,-599,298,849,-599,349,123,-599,-599,476", "-599,122,-599,-120,-599,-713,-599,-599,-120,-599,-599,-599,-599,-599", "-314,-599,1155,-599,298,218,219,-314,-314,-314,917,-700,621,-314,-314", "-106,-314,-599,-106,1156,-599,-599,-599,-599,-314,-599,-713,-599,218", "219,-106,229,-599,946,917,-599,-314,-314,-114,-314,-314,-314,-314,-314", "-120,785,123,218,219,1040,-107,122,-116,-114,363,-115,-117,-116,-114", "298,-115,-117,229,786,1040,297,-314,-314,-314,-314,-314,-314,-314,-314", "-314,-314,-314,-314,-314,-314,298,1040,-314,-314,-314,-608,681,-314", "348,123,-314,297,-608,-314,122,-105,101,102,-314,123,-314,-608,-314", "-314,122,-314,-314,-314,-314,-314,-725,-314,-704,-314,287,-700,-107", "862,676,-704,-704,-704,229,293,-704,-704,-704,-314,-704,123,-314,-314", "1168,-314,122,-314,-704,-704,-704,-704,-704,229,-314,1169,293,-118,297", "-108,-704,-704,-608,-704,-704,-704,-704,-704,-107,-609,1173,-107,-98", "-105,642,-602,-609,642,771,297,1177,642,-602,-107,-84,-609,103,104,-115", "-115,-704,-704,-704,-704,-704,-704,-704,-704,-704,-704,-704,-704,-704", "-704,363,552,-704,-704,-704,642,864,-704,1179,-105,-704,627,-105,-704", "-704,628,-704,1181,-704,552,-704,-108,-704,-704,-105,-704,-704,-704", "-704,-704,-609,-704,-704,-704,644,643,-602,644,643,640,642,644,643,642", "833,1183,642,-704,-110,642,-704,-704,-704,-704,1134,-704,-725,-704,1134", "-314,-119,-108,-704,-611,-108,-116,-314,-314,-314,644,643,-314,-314", "-314,224,-314,-108,1183,-119,835,627,544,-601,-314,892,-314,-314,-314", "873,-601,542,971,-698,869,762,-314,-314,870,-314,-314,-314,-314,-314", "220,644,643,640,644,643,640,644,643,645,644,643,653,849,-610,123,123", "1116,742,-113,122,122,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314", "-314,-314,-314,-314,225,-610,-314,-314,-314,-599,865,-314,-601,1197", "-314,-114,-599,-314,-314,642,-314,-698,-314,1173,-314,-599,-314,-314", "-105,-314,-314,-314,-314,-314,123,-314,217,-314,627,122,-114,-112,892", "579,-698,576,575,574,584,577,677,-314,-103,-604,-314,-314,-314,-314", "587,-314,-604,-314,-701,-704,-112,676,-314,1119,1120,-118,-704,-704", "-704,-700,-599,606,-704,-704,608,-704,582,218,219,644,643,649,-607,-704", "-704,592,591,595,594,-607,946,917,588,-108,87,-704,-704,229,-704,-704", "-704,-704,-704,216,-611,-117,88,579,-106,576,575,574,584,577,-604,642", "89,215,229,132,-115,229,587,1040,1171,-704,-704,-704,-704,-704,-704", "-704,-704,-704,-704,-704,-704,-704,-704,1209,226,-704,-704,-704,582", "682,-704,-607,1183,-704,642,-104,-704,592,591,595,594,-704,1183,-704", "588,-704,-704,-113,-704,-704,-704,-704,-704,-314,-704,-704,-704,887", "888,1183,-314,-314,-314,644,643,658,-314,-314,-605,-314,-704,-111,119", "-704,-704,-605,-107,-314,-704,-606,-599,595,594,-120,573,-704,-606,-599", "-116,-314,-314,1173,-314,-314,-314,-314,-314,1183,644,643,647,579,224", "576,575,574,584,577,-596,624,126,127,128,129,130,-596,587,229,622,-314", "-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-605", "730,-314,-314,-314,582,681,-314,218,219,-314,-606,-599,-314,592,591", "595,594,-314,229,-314,588,-314,-314,229,-314,-314,-314,-314,-314,-596", "-314,606,-314,225,608,251,-596,-596,-596,-596,251,-596,-596,-596,224", "-596,-314,251,251,-314,-314,291,-109,-596,-314,-596,-596,-596,229,606", "573,-314,608,-98,-118,-596,-596,745,-596,-596,-596,-596,-596,229,-315", "558,224,606,-305,224,605,-315,756,223,762,-305,291,763,229,765,-315", "229,221,768,-305,-596,-596,-596,-596,-596,-596,-596,-596,-596,-596,-596", "-596,-596,-596,225,771,-596,-596,-596,772,-596,-596,224,251,-596,774", "776,-596,-596,1149,-596,686,-596,787,-596,788,-596,-596,632,-596,-596", "-596,-596,-596,-315,-596,225,-596,-305,225,126,127,128,129,130,248,-314", "790,293,250,249,-596,792,-314,-596,-596,-596,-596,-701,-596,224,-596", "-314,793,229,795,-596,669,675,-596,320,77,78,24,11,65,667,225,798,71", "72,674,229,803,75,-697,73,74,76,33,34,79,80,126,127,128,129,130,81,31", "30,111,110,112,113,804,579,21,576,575,574,-314,577,10,51,322,12,115", "114,116,105,64,107,106,108,225,109,117,118,-315,101,102,47,48,46,-314", "-315,-596,808,224,268,269,-314,778,-596,-315,554,-701,670,-697,666,-314", "782,-596,43,474,665,36,-287,832,66,67,224,836,68,837,38,663,662,1154", "50,-288,-697,659,251,850,267,266,1152,22,510,634,510,229,99,87,90,91", "867,92,94,93,95,983,-315,868,626,88,98,625,-314,891,-596,587,225,82", "248,89,103,104,250,249,44,45,320,77,78,24,11,65,867,894,415,71,72,896", "287,225,75,-704,73,74,76,33,34,79,80,621,902,904,906,588,81,31,30,111", "110,112,113,524,526,21,526,1001,756,229,610,10,51,322,12,115,114,116", "105,64,107,106,108,609,109,117,118,224,101,102,47,48,46,224,1149,-704", "293,-349,293,756,630,251,-704,632,-349,229,917,-700,599,632,-617,-704", "43,-349,938,36,939,229,66,67,224,559,68,917,38,948,949,473,50,579,-704", "576,575,574,251,577,474,22,229,555,549,229,99,87,90,91,293,92,94,93", "95,983,225,363,959,88,98,363,225,229,-704,587,-349,82,229,89,103,104", "-289,302,44,45,320,77,78,24,11,65,229,545,970,71,72,538,537,225,75,716", "73,74,76,33,34,79,80,243,229,-83,132,588,81,31,30,111,110,112,113,229", "229,21,997,1001,998,999,1002,10,51,322,12,115,114,116,105,64,107,106", "108,526,109,117,118,524,101,102,47,48,46,251,255,256,257,258,268,269", "263,264,259,260,522,244,245,904,1008,261,262,229,43,3,242,36,584,756", "66,67,510,1026,68,-287,38,248,587,254,50,250,249,1030,246,247,267,266", "252,22,253,229,1033,1035,99,87,90,91,771,92,94,93,95,786,1038,1040,1040", "88,98,229,265,595,594,1048,1050,82,588,89,103,104,1059,1060,44,45,320", "77,78,24,11,65,1065,827,828,71,72,829,117,118,75,1066,73,74,76,33,34", "79,80,126,127,128,129,130,81,31,30,111,110,112,113,1067,-290,21,229", "229,229,1071,671,10,51,322,12,115,114,116,105,64,107,106,108,228,109", "117,118,229,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259", "260,229,244,245,229,867,261,262,1079,43,478,477,36,229,1088,66,67,771", "1091,68,1094,38,248,1096,254,50,250,249,1098,246,247,267,266,252,22", "253,229,1100,475,99,87,90,91,1115,92,94,93,95,1116,1125,426,867,88,98", "1135,265,1137,-260,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71", "72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,", ",,942,10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,251,255,256,257,258,268,269,263,264,259,260,,244,245,,", "261,262,,43,,,36,584,,66,67,,,68,,38,248,587,254,50,250,249,,246,247", "267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265,595,594", ",,82,588,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74", "76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,671,10,51,322", "12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,251", "255,256,257,258,268,269,263,264,259,260,,244,245,,,261,262,,43,,,36", ",,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253,,,", "99,87,90,91,,92,94,93,95,,,,,88,98,,265,,,,,82,,89,103,104,,,44,45,320", "77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111", "110,112,113,,,21,,,,,914,10,51,322,12,115,114,116,105,64,107,106,108", ",109,117,118,,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259", "260,,244,245,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249", ",246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265", ",,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74", "76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,1130,21,576,575,574,,577", "10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47", "48,46,251,255,256,257,258,268,269,263,264,259,260,,244,245,,,261,262", ",43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22", "253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,229,265,,,,,82,,89,103,104", ",,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,", ",81,31,30,111,110,112,113,,1130,21,576,575,574,,577,10,51,322,12,115", "114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,255,256", "257,258,268,269,263,264,259,260,,244,245,,,261,262,,43,,,36,,,66,67", ",,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,265,,,,,82,,89,103,104,,,44,45,320,77,78", "24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110", "112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259,260,,244", "245,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247", "267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265,,,,,82", ",89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34", "79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,255,256,257,258", "268,269,263,264,259,260,,244,245,,,261,262,,43,,,36,,,66,67,,,68,,38", "248,,254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90,91,,92,94", "93,95,,,,,88,98,,265,,,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,", ",,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,", "21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,251,255,256,257,258,268,269,263,264,259,260,,244,245,,", "261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266", "252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265,,,,,82,,89,103", "104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80", ",,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116,105", "64,107,106,108,,109,117,118,,101,102,47,48,46,251,255,256,257,258,268", "269,263,264,259,260,,244,245,,,261,262,,43,,,324,,,66,67,,,68,,38,248", ",254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,265,,,,,82,,89,103,104,,,44,45,7,77,78,24,11,65,,,,71", "72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,", ",,,10,51,9,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47", "48,46,251,255,256,257,258,268,269,263,264,259,260,,244,245,,,261,262", ",43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22", "253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265,,,,,82,,89,103,104,,", "44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81", "31,30,111,110,112,113,,579,21,576,575,574,,577,10,51,322,12,115,114", "116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,579,,576,575,574", ",577,,778,,579,,576,575,574,,577,782,,43,,,324,,,66,67,,251,68,,38,", ",,50,,778,,579,,576,575,574,22,577,782,778,,99,87,90,91,,92,94,93,95", ",,248,,88,98,250,249,,246,247,,82,,89,103,104,,778,44,45,320,77,78,24", "11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112", "113,,,21,,,251,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,251,255,256,257,258,268,269,248,,259,260,250,249", ",246,247,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246", "247,267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,579,,576", "575,574,82,577,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75", ",73,74,76,33,34,79,80,778,,,,,81,31,30,111,110,112,113,,,21,,,,,,10", "51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48", "46,251,-726,-726,-726,-726,268,269,,,-726,-726,,,,,,261,262,,43,,,36", ",,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253,,,", "99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320", "77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111", "110,112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109", "117,118,,101,102,47,48,46,251,-726,-726,-726,-726,268,269,,,-726,-726", ",,,,,261,262,,43,,,324,,,66,67,,,68,,38,248,,254,50,250,249,,246,247", "267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89", "103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79", "80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,-726,-726,-726", "-726,268,269,,,-726,-726,,,,,,261,262,,43,,,36,,,66,67,,,68,,38,248", ",254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,", "10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47", "48,46,251,-726,-726,-726,-726,268,269,,,-726,-726,,,,,,261,262,,43,", ",36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253", ",,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,7", "77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111", "110,112,113,,,21,,,,,,10,51,9,12,115,114,116,105,64,107,106,108,,109", "117,118,,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259,260", ",-726,-726,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,", "246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,", ",,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76", "33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115", "114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,255,256", "257,258,268,269,263,264,259,260,,-726,-726,,,261,262,,43,,,36,,,66,67", ",,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320,77,78,24", "11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112", "113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,251,255,256,257,258,268,269,263,,259,260,,,,,,261", "262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252", "22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,", "44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81", "31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107", "106,108,,109,117,118,,101,102,47,48,46,251,,,,,,,,,,,,,,,,261,262,,43", ",,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,,,252,22,253,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320,77", "78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110", "112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259,260,,-726", "-726,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247", "267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89", "103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79", "80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,-726,-726,-726", "-726,268,269,,,-726,-726,,,,,,261,262,,43,,,36,,,66,67,,,68,,38,248", ",254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,", "10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47", "48,46,251,255,256,257,258,268,269,263,264,259,260,,-726,-726,,,261,262", ",43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22", "253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44", "45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31", "30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106", "108,,109,117,118,,101,102,47,48,46,251,-726,-726,-726,-726,268,269,", ",-726,-726,,,,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249", ",246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,", ",,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74", "76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12", "115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,,", ",,,,,,,,,,,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,", "246,247,,,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78", "24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31", "30,111,110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109", "117,118,,101,102,47,48,46,251,,,,,,,,,,,,,,,,261,262,,234,,,240,,,66", "67,,,68,,,248,,254,50,250,249,,246,247,,,,22,,,,,99,87,90,91,,92,94", "93,95,,,,,88,98,,,,,,,82,,89,103,104,-270,,44,45,,,,-270,-270,-270,", ",-270,-270,-270,,-270,251,,,,,,,-270,-270,-270,,,,,,,261,262,,-270,-270", ",-270,-270,-270,-270,-270,,,,,,248,,508,457,250,249,509,246,247,,,,", ",166,167,,163,145,146,147,154,151,153,,,148,149,-270,,,168,169,155,156", "-270,,,,,293,-270,,,,,,,160,159,,144,165,162,161,170,157,158,152,150", "142,164,143,-270,-270,171,,,,,,,,,,,,,-270,,,-270,,,,,-270,77,78,24", "11,65,,-270,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110", "112,113,,,21,,,,,,10,51,9,12,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,251,,,,,,,,,,,,,,,,261,262,,43,,,36,,,66,67,,", "68,,38,248,,254,50,250,249,,246,247,,,,22,,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76", "33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,", ",,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,", "75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51", ",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,", ",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87", "90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45", ",75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51", ",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,", ",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,-429,,44,45,,,,-429,-429", "-429,,,-429,-429,-429,,-429,,,,,,,,-429,-429,-429,-429,,,,,,,,,-429", "-429,,-429,-429,-429,-429,-429,,,,,,,,,,,,,,,,,,,,,,,-429,-429,-429", "-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,,,-429,-429,-429", ",,-429,,293,-429,,,-429,-429,,-429,,-429,,-429,,-429,-429,,-429,-429", "-429,-429,-429,-321,-429,-429,-429,,,,-321,-321,-321,,,-321,-321,-321", ",-321,-429,,,-429,-429,,-429,-321,-429,-321,-321,,,,,-429,,,,-321,-321", ",-321,-321,-321,-321,-321,,,,,,,,,,,,,,,,,,,,,,,-321,-321,-321,-321", "-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,,,-321,-321,-321,", ",-321,,302,-321,,,-321,-321,,-321,,-321,,-321,,-321,-321,,-321,-321", "-321,-321,-321,,-321,,-321,,,,,,,,,,,,,,-321,,,-321,-321,,-321,,-321", "77,78,24,,65,,-321,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30", "111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314", "109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,", ",68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88", "98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80", ",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107", "106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240", ",,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93", "95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76", "33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,", ",,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,", "75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51", ",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,", ",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,", "75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,", ",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46", ",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44", "45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241", ",,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48", "46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,", ",99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71", "72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113", ",,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102", "47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239", ",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104", "71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112", "113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,", ",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110", "112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50", ",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103", "104,-306,,44,45,,,,-306,-306,-306,,,-306,-306,-306,,-306,,,,,,,,-306", ",-306,-306,-306,,,,111,110,112,113,-306,-306,,-306,-306,-306,-306,-306", ",,,,115,114,116,,,,,,,,,,,101,102,,,345,-306,-306,-306,-306,-306,-306", "-306,-306,-306,-306,-306,-306,-306,-306,,,-306,-306,-306,,,-306,,,-306", ",,-306,-306,,-306,,-306,,-306,,-306,-306,,-306,-306,-306,-306,-306,", "-306,,-306,,99,87,90,91,,92,94,93,95,,,,-306,88,98,-306,-306,-306,-306", ",-306,82,-306,89,103,104,,-306,77,78,24,11,65,,,,71,72,,,,75,,73,74", "76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,,12,115", "114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,", ",,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,99,87,90,91,", "92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,", "73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51", ",,115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,", ",,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,,,50,,,315,,,,,,239,", ",,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104", "71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112", "113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50", ",,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82", "65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111", "110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,", ",50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82", "65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111", "110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,", ",50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82", "65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111", "110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,", ",50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,123,,,,,122,82", ",89,103,104,,,44,45,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79", "80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,9,12,115,114,116,105", "64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,43", ",,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,,,,,,415,82,,89,103,104,,,44,45,77,78,24,,65,,,,71,72,,,,75", ",73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,", "115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,", ",,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,", "75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51", ",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,", ",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,", "75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51", ",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,", ",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,", "75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,", ",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46", ",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,77,78,24", "11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112", "113,,,21,,,,,,10,51,,12,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50", ",,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65", "89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110", "112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50", ",,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,229,,,77,78,24,82", "65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344", "111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109", "117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68", ",,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78", "24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81", "336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106", "108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66", "67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,", ",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80", ",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64", "107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,", "240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,", ",,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342", "79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105", "64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234", ",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341", "342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,", ",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76", "341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114", "116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,", ",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92", "94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73", "74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,", ",115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,", ",,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,", "75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,", ",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46", ",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44", "45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241", ",,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48", "46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,", ",99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71", "72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113", ",,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102", "47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239", ",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104", "71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112", "113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,", ",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110", "112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50", ",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65", "89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111", "110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,", ",50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82", "65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344", "111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109", "117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68", ",,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78", "24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81", "336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106", "108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66", "67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,", ",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80", ",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64", "107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,", "240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,", ",,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342", "79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105", "64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234", ",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341", "342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,", ",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76", "341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114", "116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,", ",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92", "94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73", "74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,", ",115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,", ",,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,", "75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,", ",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46", ",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44", "45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241", ",,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48", "46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,", ",99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71", "72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113", ",,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102", "47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239", ",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104", "71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112", "113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,", ",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110", "112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50", ",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65", "89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111", "110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109", "117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68", ",,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,", ",77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,", ",,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107", "106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240", ",,66,67,,,68,,739,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,", ",88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34", "79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115,114,116,105", "64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234", ",,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,", ",,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341", "342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,", ",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76", "33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,", ",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76", "341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114", "116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,", ",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92", "94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73", "74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115", "114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,", ",,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,", "99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71", "72,44,512,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,", "241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109,117,118,,101,102", "47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315", ",,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89", "103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110", "112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109,117", "118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311", ",309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,229", ",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80", ",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64", "107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,", "240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,", ",,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342", "79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105", "64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234", ",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341", "342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,", ",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76", "341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114", "116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,", ",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92", "94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73", "74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,", ",115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,", ",,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,77,78,24,11,65", ",,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,", ",21,,,,,,10,51,,12,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,", ",,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110", "112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50", ",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65", "89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111", "110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,", ",50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82", "65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344", "111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109", "117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68", ",,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78", "24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81", "336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106", "108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66", "67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,", ",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,", ",,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107", "106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240", ",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88", "98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79", "80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105", "64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234", ",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33", "34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115,114,116,105", "64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234", ",,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,", ",,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341", "342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,", ",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76", "341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114", "116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,", ",,,,,234,,,240,558,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,", "92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,", "73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51", ",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,", ",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87", "90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45", ",75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,", ",,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48", "46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,431,,,,50,,,,,,,,,239", ",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104", "71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112", "113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,", ",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110", "112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50", ",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65", "89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110", "112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50", ",,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65", "89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111", "110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109", "117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68", ",739,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98", ",,,77,78,24,82,65,89,103,104,71,72,44,512,,75,,73,74,76,33,34,79,80", ",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107", "106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240", ",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88", "98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80", ",,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107", "106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240", ",,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88", "98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80", ",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107", "106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240", ",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88", "98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80", ",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107", "106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240", ",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88", "98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80", ",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107", "106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240", ",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88", "98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79", "80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105", "64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,", "234,,,240,,,66,67,,,68,,,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92", "94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73", "74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,", ",115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,", ",,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,739,,309,,50,,,315,,,,,,239", ",,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104", "71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112", "113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,", ",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,", ",44,45,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31", "30,111,110,112,113,,,21,,,,,,10,51,,12,115,114,116,105,64,107,106,108", ",109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,", "68,,38,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77", "78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81", "31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108", "314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66", "67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,", ",,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34", "79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105", "64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234", ",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341", "342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,", ",234,,,240,,,66,67,,,68,,841,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94", "93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,77,78,24,11,65,,,,71,72", ",,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,", "10,51,,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48", "46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,", "99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72", "44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,", "241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102", "47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239", ",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104", "71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113", ",,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50", ",,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82", "65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111", "110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109", "117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68", ",311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98", ",,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80", ",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64", "107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,", "240,,,66,67,,,68,,311,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341", "342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,", ",,,,234,,,240,,,66,67,,,68,,,,,,50,,,315,,,,,,239,,,,,99,312,90,91,", "92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,", "73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51", ",,115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,", ",,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,739,,,,50,,,315,,,,,,239,", ",,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,-270,,44", "45,,,,-270,-270,-270,,,-270,-270,-270,,-270,,,,,,,,-270,-270,-270,-270", ",,,,,,,,-270,-270,,-270,-270,-270,-270,-270,,,,,,,,,,,,,,,,,,,,,,,-270", "-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,,,-270", "-270,-270,,,-270,,293,-270,,,-270,-270,,-270,,-270,,-270,,-270,-270", ",-270,-270,-270,-270,-270,,-270,-270,-270,,,,,,,,,,,,,,-270,,,-270,-270", ",-270,,-270,77,78,24,,65,,-270,,71,72,,,,75,,73,74,76,341,342,79,80", ",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64", "107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,", "240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,", ",,88,98,,,,,,,82,,89,103,104,-705,,44,45,,,,-705,-705,-705,,,-705,-705", "-705,,-705,,,,,,,,-705,-705,-705,-705,-705,,,,,,,,-705,-705,,-705,-705", "-705,-705,-705,,,,,,,,,,,,,,,,,,,,,,,-705,-705,-705,-705,-705,-705,-705", "-705,-705,-705,-705,-705,-705,-705,,,-705,-705,-705,,,-705,,,-705,,", "-705,-705,,-705,,-705,,-705,,-705,-705,,-705,-705,-705,-705,-705,,-705", "-705,-705,,,,,,,,,,,,,,-705,,,-705,-705,-705,-705,,-705,-706,-705,,", ",,-705,-706,-706,-706,,,-706,-706,-706,,-706,,,,,,,,-706,-706,-706,-706", "-706,,,,,,,,-706,-706,,-706,-706,-706,-706,-706,,,,,,,,,,,,,,,,,,,,", ",,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706", ",,-706,-706,-706,,,-706,,,-706,,,-706,-706,,-706,,-706,,-706,,-706,-706", ",-706,-706,-706,-706,-706,,-706,-706,-706,,,,,,,,,,,,,,-706,,,-706,-706", "-706,-706,,-706,,-706,,77,78,24,-706,65,,,,71,72,,,,75,,73,74,76,341", "342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,", ",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93", "95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76", "341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114", "116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,", ",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92", "94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73", "74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115", "114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,", ",,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,", "92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,", "73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,", "115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,", ",,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,,,,239", ",,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104", "71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112", "113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,", ",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110", "112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50", ",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65", "89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111", "110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,", ",50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82", "65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344", "111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109", "117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68", ",,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78", "24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81", "336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106", "108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66", "67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,", ",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,", ",,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107", "106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240", ",,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93", "95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,77,78,24,11,65,,,,71,72,,", ",75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10", "51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48", "46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,", "99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,415,82,,89,103,104,,,44,45,77", "78,24,,65,,,,71,72,,,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111", "110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117", "118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,", ",50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82", "65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344", "111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314", "109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,", ",68,,,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98", ",,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80", ",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64", "107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234", ",,240,,,66,67,,,68,,739,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92", "94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73", "74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115", "114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,", ",,,,,,,,,234,,,240,,,66,67,,,68,,431,,,,50,,,,,,,,,239,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,", "75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51", ",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,", ",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,431,,,,50,,,,,,,,,239,,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,", ",,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46", ",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,", ",,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46", ",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,", ",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46", ",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44", "45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,", ",,,51,,,115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48", "46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,", ",,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112", "113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,", ",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112", "113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,", ",,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110", "112,113,,,241,,,,,,,337,,,115,114,116,105,64,107,106,108,,109,117,118", ",101,102,,,345,,,,,,,,,,,,,,,,,,,,1102,,,240,,,66,67,,,68,,,,,,,,,,", ",,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103", "104,71,72,,,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112", "113,,,241,,,,,,,337,,,115,114,116,105,64,107,106,108,,109,117,118,,101", "102,,,345,,,,,,,,,,,,,,,,,,,,390,,,36,,,66,67,,,68,,38,,,,,,,,,,,,,", ",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104", "71,72,,,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113", ",,241,,,,,,,337,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102", ",,345,,,,,,,,,,,,,,,,,,,,333,,,329,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99", "87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,", ",,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,", ",,,,,337,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,,,345", ",,,,,,,,,,,,,,,,,,,333,,,329,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,", "73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,337", ",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,,,345,,,,,,,", ",,,,,,,,,,,,333,,,329,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92", "94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76", "341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115", "114,116,105,64,107,106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,", ",,,,,,333,,,329,,,66,67,,,68,,328,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94", "93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341", "342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114", "116,105,64,107,106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,", ",,333,,,329,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342", "79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116", "105,64,107,106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,1102", ",,240,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88", "98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342,79,80", ",,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,395,64", "107,106,396,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,402,,,397,,", "240,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88", "98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342,79,80", ",,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,105,64", "107,106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,333,,,329", ",,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,", ",,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342,79,80,,,,", ",81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,395,64,107", "106,396,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,397,,,240,,,66", "67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77", "78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342,79,80,,,,,,81,336", "344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,105,64,107,106,108", ",109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,333,,,240,,,66,67,,,68", ",,579,,576,575,574,584,577,,,,,,,,,587,,99,87,90,91,,92,94,93,95,,,", ",88,98,,,,347,,582,82,,89,103,104,77,78,24,,65,595,594,,71,72,588,,", "75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,", ",,,337,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,,,345", ",,,,,,,,,,,,,,,,,,,333,,,240,,,66,67,,,68,,,579,,576,575,574,584,577", ",,,,,,,,587,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,540,,582,82,,89,103", "104,77,78,24,,65,595,594,,71,72,588,,,75,,73,74,76,341,342,79,80,,,", ",,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,105,64,107", "106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,1108,,,240,,", "66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,", ",,,82,,89,103,104,182,193,183,206,179,199,189,188,209,210,204,187,186", "181,207,211,212,191,180,194,198,200,192,185,,,,201,208,203,202,195,205", "190,178,197,196,,,,,,177,184,175,176,172,173,174,135,137,,,136,,,,,", ",,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156", ",,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143", ",,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199,189,188,209,210,204", "187,186,181,207,211,212,191,180,194,198,200,192,185,,,,201,208,203,202", "195,205,190,178,197,196,,,,,,177,184,175,176,172,173,174,135,137,134", ",136,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169", "155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142", "164,143,,,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199,189,188,209", "210,204,187,186,181,207,211,212,191,180,194,198,200,192,185,,,,201,208", "203,202,195,205,190,178,197,196,,,,,,177,184,175,176,172,173,174,135", "137,,,136,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168", "169,155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150", "142,164,143,,,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199,189,188", "209,210,204,187,186,181,207,211,212,191,180,194,198,200,192,185,,,,201", "208,203,202,195,205,190,178,197,196,,,,,,177,184,175,176,172,173,174", "135,137,,,136,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149", ",,,168,169,155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158", "152,150,142,164,143,,,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199", "189,188,209,210,204,187,186,181,207,211,212,191,180,194,198,200,192", "185,,,,201,208,203,281,280,282,279,178,197,196,,,,,,177,184,175,176", "276,277,278,274,137,107,106,275,,109,,,,,,166,167,,163,145,146,147,154", "151,153,,,148,149,,,,168,169,155,156,,,,,,286,,,,,,,,160,159,,144,165", "162,161,170,157,158,152,150,142,164,143,,,171,111,110,112,113,,,,,,", ",,,,,,115,114,116,716,,,579,719,576,575,574,584,577,101,102,,,345,,", ",587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,,,,592,591,595,594,,", ",588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,", "82,,89,103,104,,,704,705,,115,114,116,716,,,579,719,576,575,574,584", "577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,", ",,592,591,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98", "111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716,,,579,719", "576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,", "582,698,,,699,,,,,,,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716", ",,579,719,576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718", ",,700,,,582,698,,,699,,,,,592,591,595,594,,,,588,,,,717,,,,99,87,90", "91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705", ",115,114,116,716,,,579,719,576,575,574,584,577,101,102,,,345,,,,587", ",,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,,,,,,595,594,,,,588,,,,717", ",,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104", ",,704,705,,115,114,116,716,,,579,719,576,575,574,584,577,101,102,,,345", ",,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,882,,,,,595,594,,,", "588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82", ",89,103,104,,,704,705,,115,114,116,716,,,579,719,576,575,574,584,577", "101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,,,,,", "595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82", ",89,103,104,,,704,705,182,193,183,206,179,199,189,188,209,210,204,187", "186,181,207,211,212,191,180,194,198,200,192,185,,,,201,208,203,202,195", "205,190,178,197,196,,,,,,177,184,175,176,172,173,174,135,137,,,136,", ",,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155", "156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164", "143,,,171,111,110,112,113,,,579,,576,575,574,584,577,,,,115,114,116", "716,,587,,719,983,,,,,101,102,,,345,587,,,,,,,,,582,,,,,,,,,,718,595", "594,700,,,588,698,,,699,,882,,,,,,,588,,,,,,,717,,,,99,984,90,91,,92", "94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114", "116,716,,,579,719,576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,", ",,,,,,718,,,700,,,582,698,,,699,,882,,,592,591,595,594,,,,588,,,,717", ",,,99,87,90,91,,92,94,93,95,,,,,88,98,229,111,110,112,113,,82,,89,103", "104,,,704,705,,,115,114,116,716,,,579,719,576,575,574,584,577,101,102", ",,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,,,,592,591,595", "594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112", "113,,,82,,89,103,104,,,704,705,,115,114,116,716,,,579,719,576,575,574", "584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699", ",,,,592,591,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88", "98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716,,,579", "719,576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700", ",,582,698,,,699,,996,,,,,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94", "93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114", "116,716,,,,719,983,,,,,101,102,,,345,587,,,,,,,,,,,,,,,,,,,718,,,700", ",,,698,,,699,,882,,,,,,,588,,,,,,,717,,,,99,984,90,91,,92,94,93,95,", ",,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716", ",,,719,983,,,,,101,102,,,345,587,,,,,,,,,,,,,,,,,,,718,,,700,,,,698", ",,699,,882,,,,,,,588,,,,,,,717,,,,99,984,90,91,,92,94,93,95,,,,,88,98", "111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716,,,579,719", "576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,", "582,698,,,699,,,,,,,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95", ",,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716", ",,579,719,576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718", ",,700,,,582,698,,,699,,,,,,,595,594,,,,588,,,,717,,,,99,87,90,91,,92", "94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114", "116,716,,,,719,,,,,,101,102,,,345,,,,,,,,111,110,112,113,,,,,,,,,718", ",,700,115,114,116,698,,,699,,882,,,,,101,102,,,345,,,,,717,,,,99,87", "90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,704,705,579,,576", "575,574,584,577,,,,,99,87,90,91,587,92,94,93,95,,,,,88,98,111,110,112", "113,,,82,,89,103,104,582,638,,,,115,114,116,,592,591,595,594,,,,588", ",101,102,,,345,111,110,112,113,,,,,,,,,,,,,115,114,116,,,,,,,,,,,101", "102,,,345,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82", ",89,103,104,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,843,457,,,844", ",82,,89,103,104,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168", "169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152", "150,142,164,143,811,457,171,,812,,,,,,,,166,167,,163,145,146,147,154", "151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165", "162,161,170,157,158,152,150,142,164,143,453,457,171,,454,,,,,,,,166", "167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293", ",,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143,460", "464,171,,459,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,", ",,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158", "152,150,142,164,143,813,464,171,,814,,,,,,,,166,167,,163,145,146,147", "154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144", "165,162,161,170,157,158,152,150,142,164,143,752,464,171,,753,,,,,,,", "166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,", ",,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143", "687,457,171,,688,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149", ",,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157", "158,152,150,142,164,143,1187,464,171,,1186,,,,,,,,166,167,,163,145,146", "147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159", ",144,165,162,161,170,157,158,152,150,142,164,143,816,464,171,,817,,", ",,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156", ",,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164", "143,687,457,171,,688,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148", "149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170", "157,158,152,150,142,164,143,689,464,171,,690,,,,,,,,166,167,,163,145", "146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160", "159,,144,165,162,161,170,157,158,152,150,142,164,143,749,457,171,,750", ",,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155", "156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142", "164,143,508,457,171,,509,,,,,,,,166,167,,163,145,146,147,154,151,153", ",,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161", "170,157,158,152,150,142,164,143,1190,457,171,,1191,,,,,,,,166,167,,163", "145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,", ",160,159,,144,165,162,161,170,157,158,152,150,142,164,143,689,464,171", ",690,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169", "155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150", "142,164,143,1192,464,171,,1193,,,,,,,,166,167,,163,145,146,147,154,151", "153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162", "161,170,157,158,152,150,142,164,143,846,464,171,,845,,,,,,,,166,167", ",163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,", ",,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143,,579", "171,576,575,574,584,577,,579,,576,575,574,584,577,587,,,,,,,,587,,,", ",,,,,,,,,,582,,,,,,,,582,592,591,595,594,,,,588,592,591,595,594,,,,588"]; + racc_action_table = (arr = $$$('::', 'Array').$new(28007, nil)); + idx = 0; + $send(clist, 'each', [], ($Ruby30$4 = function(str){var self = $Ruby30$4.$$s == null ? this : $Ruby30$4.$$s, $$5; + + + + if (str == null) { + str = nil; + }; + return $send(str.$split(",", -1), 'each', [], ($$5 = function(i){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; + + + + if (i == null) { + i = nil; + }; + if ($truthy(i['$empty?']())) { + } else { - self.num_xfrm = $send(self, 'lambda', [], (TMP_35 = function(chars){var self = TMP_35.$$s || this; -if (chars == null) chars = nil; - return self.$emit("tINTEGER", chars)}, TMP_35.$$s = self, TMP_35.$$arity = 1, TMP_35));; + $writer = [idx, i.$to_i()]; + $send(arr, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return (idx = $rb_plus(idx, 1));}, $$5.$$s = self, $$5.$$arity = 1, $$5));}, $Ruby30$4.$$s = self, $Ruby30$4.$$arity = 1, $Ruby30$4)); + clist = ["846,844,1049,996,1053,824,391,846,846,846,759,759,616,846,846,282,846", "46,46,874,21,1106,282,813,846,846,412,1099,411,699,688,625,814,1102", "953,985,846,846,809,846,846,846,846,846,1105,1155,699,380,1029,1196", "1053,1193,134,985,619,812,1003,134,134,1196,844,21,619,811,388,874,846", "846,846,846,846,846,846,846,846,846,846,846,846,846,282,387,846,846", "846,996,846,846,813,688,846,1109,412,846,411,46,46,814,846,1003,846", "438,846,846,759,846,846,846,846,846,108,846,846,846,824,391,616,108", "108,108,1049,616,108,108,108,1049,108,846,1193,749,846,846,813,846,108", "846,108,108,108,1106,625,814,846,953,1106,846,108,108,1051,108,108,108", "108,108,1192,1203,809,1190,1191,809,438,809,1105,1155,812,380,1029,1105", "1155,1193,380,1029,811,388,1193,51,108,108,108,108,108,108,108,108,108", "108,108,108,108,108,387,379,108,108,108,749,108,108,727,967,108,43,318", "108,108,235,108,318,108,1109,108,869,108,108,1109,108,108,108,108,108", "845,108,1108,108,69,635,635,845,845,845,1058,1192,1058,845,845,749,845", "108,749,1111,108,108,108,108,845,108,870,108,469,469,749,869,108,797", "797,108,845,845,967,845,845,845,845,845,235,589,1051,505,505,1112,752", "1051,1192,1203,52,1190,1191,1192,1203,29,1190,1191,870,589,1113,727", "845,845,845,845,845,845,845,845,845,845,845,845,845,845,338,1114,845", "845,845,330,845,845,40,379,845,69,330,845,379,911,345,345,845,635,845", "330,845,845,635,845,845,845,845,845,52,845,689,845,25,752,752,687,843", "689,689,689,469,29,689,689,689,845,689,597,845,845,1126,845,597,845", "689,689,689,689,689,505,845,1127,338,845,29,750,689,689,330,689,689", "689,689,689,752,331,1136,752,744,911,650,281,331,1073,1138,338,1141", "1085,281,752,744,331,345,345,687,843,689,689,689,689,689,689,689,689", "689,689,689,689,689,689,53,349,689,689,689,652,689,689,1142,911,689", "397,911,689,689,397,689,1143,689,475,689,750,689,689,911,689,689,689", "689,689,331,689,689,689,650,650,281,1073,1073,1073,528,1085,1085,406", "650,1144,407,689,349,410,689,689,689,689,1073,689,53,689,1085,690,349", "750,689,233,750,689,690,690,690,652,652,690,690,690,332,690,750,1146", "475,652,873,332,280,690,873,690,690,690,697,280,332,866,396,697,1151", "690,690,697,690,690,690,690,690,17,528,528,528,406,406,406,407,407,407", "410,410,410,672,232,384,5,1161,528,233,384,5,690,690,690,690,690,690", "690,690,690,690,690,690,690,690,332,41,690,690,690,396,690,690,280,1167", "690,866,396,690,690,409,690,396,690,1172,690,396,690,690,672,690,690", "690,690,690,957,690,15,690,718,957,672,232,718,904,396,904,904,904,904", "904,454,690,41,279,690,690,690,690,904,690,279,690,1186,460,41,453,690", "1052,1052,690,460,460,460,1187,396,375,460,460,375,460,904,16,16,409", "409,409,278,460,460,904,904,904,904,278,1162,1162,904,454,85,460,460", "1189,460,460,460,460,460,14,42,454,85,363,453,363,363,363,363,363,279", "413,85,12,904,9,453,1128,363,1194,1128,460,460,460,460,460,460,460,460", "460,460,460,460,460,460,1199,19,460,460,460,363,460,460,278,1200,460", "408,42,460,363,363,363,363,460,1201,460,363,460,460,42,460,460,460,460", "460,459,460,460,460,701,701,1202,459,459,459,413,413,413,459,459,277", "459,460,19,3,460,460,277,460,459,460,276,275,771,771,19,363,460,276", "275,460,459,459,1208,459,459,459,459,459,1214,408,408,408,765,389,765", "765,765,765,765,274,389,368,368,368,368,368,274,765,513,389,459,459", "459,459,459,459,459,459,459,459,459,459,459,459,277,514,459,459,459", "765,459,459,378,378,459,276,275,459,765,765,765,765,459,515,459,765", "459,459,519,459,459,459,459,459,105,459,796,459,389,796,488,105,105", "105,274,487,105,105,105,273,105,459,486,485,459,459,273,459,105,459", "105,105,105,535,372,765,459,372,536,459,105,105,539,105,105,105,105", "105,541,545,546,18,371,334,27,371,545,550,18,560,334,27,561,564,565", "545,566,18,567,334,105,105,105,105,105,105,105,105,105,105,105,105,105", "105,273,568,105,105,105,570,105,105,1148,484,105,571,581,105,105,1148", "105,471,105,593,105,596,105,105,1148,105,105,105,105,105,545,105,18", "105,334,27,533,533,533,533,533,484,753,598,461,484,484,105,600,753,105", "105,105,105,753,105,437,105,753,601,602,603,105,437,452,105,815,815", "815,815,815,815,437,1148,613,815,815,451,449,617,815,395,815,815,815", "815,815,815,815,321,321,321,321,321,815,815,815,815,815,815,815,618", "582,815,582,582,582,753,582,815,815,815,815,815,815,815,815,815,815", "815,815,437,815,815,815,628,815,815,815,815,815,817,628,395,620,350", "49,49,817,582,395,628,350,817,439,395,435,817,582,395,815,350,432,815", "430,647,815,815,1107,655,815,657,815,429,427,1107,815,664,395,421,483", "673,49,49,1107,815,678,401,683,691,815,815,815,815,692,815,815,815,815", "1071,628,694,392,815,815,390,817,717,395,1071,350,815,483,815,815,815", "483,483,815,815,820,820,820,820,820,820,720,721,386,820,820,724,726", "1107,820,816,820,820,820,820,820,820,820,385,732,733,734,1071,820,820", "820,820,820,820,820,736,738,820,376,1071,746,748,374,820,820,820,820", "820,820,820,820,820,820,820,820,373,820,820,820,1101,820,820,820,820", "820,399,1101,816,751,54,754,755,399,758,816,1101,54,369,761,816,365", "399,361,816,820,54,780,820,781,783,820,820,231,359,820,799,820,805,806", "231,820,782,816,782,782,782,355,782,231,820,810,353,346,819,820,820", "820,820,344,820,820,820,820,883,1101,340,823,820,820,339,399,825,816", "883,54,820,337,820,820,820,840,336,820,820,831,831,831,831,831,831,842", "333,851,831,831,327,326,231,831,867,831,831,831,831,831,831,831,23,325", "323,322,883,831,831,831,831,831,831,831,875,876,831,880,883,881,882", "885,831,831,831,831,831,831,831,831,831,831,831,831,310,831,831,831", "307,831,831,831,831,831,23,23,23,23,23,23,23,23,23,23,23,306,23,23,897", "900,23,23,901,831,1,23,831,768,910,831,831,292,915,831,918,831,23,768", "23,831,23,23,919,23,23,23,23,23,831,23,922,924,925,831,831,831,831,927", "831,831,831,831,929,931,932,934,831,831,937,23,768,768,944,947,831,768", "831,831,831,954,956,831,831,1007,1007,1007,1007,1007,1007,963,643,643", "1007,1007,643,643,643,1007,964,1007,1007,1007,1007,1007,1007,1007,8", "8,8,8,8,1007,1007,1007,1007,1007,1007,1007,965,966,1007,976,977,978", "979,442,1007,1007,1007,1007,1007,1007,1007,1007,1007,1007,1007,1007", "241,1007,1007,1007,988,1007,1007,1007,1007,1007,442,442,442,442,442", "442,442,442,442,442,442,989,442,442,990,994,442,442,995,1007,237,236", "1007,1000,1010,1007,1007,1011,1013,1007,1014,1007,442,1015,442,1007", "442,442,1017,442,442,442,442,442,1007,442,1018,1019,234,1007,1007,1007", "1007,1045,1007,1007,1007,1007,1046,1062,213,1072,1007,1007,1080,442", "1082,442,,,1007,,1007,1007,1007,,,1007,1007,612,612,612,612,612,612", ",,,612,612,,,,612,,612,612,612,612,612,612,612,,,,,,612,612,612,612", "612,612,612,,,612,,,,,791,612,612,612,612,612,612,612,612,612,612,612", "612,,612,612,612,,612,612,612,612,612,791,791,791,791,791,791,791,791", "791,791,791,,791,791,,,791,791,,612,,,612,1088,,612,612,,,612,,612,791", "1088,791,612,791,791,,791,791,791,791,791,612,791,,,,612,612,612,612", ",612,612,612,612,,,,,612,612,,791,1088,1088,,,612,1088,612,612,612,", ",612,612,615,615,615,615,615,615,,,,615,615,,,,615,,615,615,615,615", "615,615,615,,,,,,615,615,615,615,615,615,615,,,615,,,,,448,615,615,615", "615,615,615,615,615,615,615,615,615,,615,615,615,,615,615,615,615,615", "448,448,448,448,448,448,448,448,448,448,448,,448,448,,,448,448,,615", ",,615,,,615,615,,,615,,615,448,,448,615,448,448,,448,448,448,448,448", "615,448,,,,615,615,615,615,,615,615,615,615,,,,,615,615,,448,,,,,615", ",615,615,615,,,615,615,1026,1026,1026,1026,1026,1026,,,,1026,1026,,", ",1026,,1026,1026,1026,1026,1026,1026,1026,,,,,,1026,1026,1026,1026,1026", "1026,1026,,,1026,,,,,760,1026,1026,1026,1026,1026,1026,1026,1026,1026", "1026,1026,1026,,1026,1026,1026,,1026,1026,1026,1026,1026,760,760,760", "760,760,760,760,760,760,760,760,,760,760,,,760,760,,1026,,,1026,,,1026", "1026,,,1026,,1026,760,,760,1026,760,760,,760,760,760,760,760,1026,760", ",,,1026,1026,1026,1026,,1026,1026,1026,1026,,,,,1026,1026,,760,,,,,1026", ",1026,1026,1026,,,1026,1026,215,215,215,215,215,215,,,,215,215,,,,215", ",215,215,215,215,215,215,215,,,,,,215,215,215,215,215,215,215,,1171", "215,1171,1171,1171,,1171,215,215,215,215,215,215,215,215,215,215,215", "215,,215,215,215,,215,215,215,215,215,502,502,502,502,502,502,502,502", "502,502,502,,502,502,,,502,502,,215,,,215,,,215,215,,,215,,215,502,", "502,215,502,502,,502,502,502,502,502,215,502,,,,215,215,215,215,,215", "215,215,215,,,,,215,215,502,502,,,,,215,,215,215,215,,,215,215,1063", "1063,1063,1063,1063,1063,,,,1063,1063,,,,1063,,1063,1063,1063,1063,1063", "1063,1063,,,,,,1063,1063,1063,1063,1063,1063,1063,,1065,1063,1065,1065", "1065,,1065,1063,1063,1063,1063,1063,1063,1063,1063,1063,1063,1063,1063", ",1063,1063,1063,,1063,1063,1063,1063,1063,848,848,848,848,848,848,848", "848,848,848,848,,848,848,,,848,848,,1063,,,1063,,,1063,1063,,,1063,", "1063,848,,848,1063,848,848,,848,848,848,848,848,1063,848,,,,1063,1063", "1063,1063,,1063,1063,1063,1063,,,,,1063,1063,,848,,,,,1063,,1063,1063", "1063,,,1063,1063,1064,1064,1064,1064,1064,1064,,,,1064,1064,,,,1064", ",1064,1064,1064,1064,1064,1064,1064,,,,,,1064,1064,1064,1064,1064,1064", "1064,,,1064,,,,,,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064", "1064,,1064,1064,1064,,1064,1064,1064,1064,1064,304,304,304,304,304,304", "304,304,304,304,304,,304,304,,,304,304,,1064,,,1064,,,1064,1064,,,1064", ",1064,304,,304,1064,304,304,,304,304,304,304,304,1064,304,,,,1064,1064", "1064,1064,,1064,1064,1064,1064,,,,,1064,1064,,304,,,,,1064,,1064,1064", "1064,,,1064,1064,636,636,636,636,636,636,,,,636,636,,,,636,,636,636", "636,636,636,636,636,,,,,,636,636,636,636,636,636,636,,,636,,,,,,636", "636,636,636,636,636,636,636,636,636,636,636,,636,636,636,,636,636,636", "636,636,1047,1047,1047,1047,1047,1047,1047,1047,1047,1047,1047,,1047", "1047,,,1047,1047,,636,,,636,,,636,636,,,636,,636,1047,,1047,636,1047", "1047,,1047,1047,1047,1047,1047,636,1047,,,,636,636,636,636,,636,636", "636,636,,,,,636,636,,1047,,,,,636,,636,636,636,,,636,636,383,383,383", "383,383,383,,,,383,383,,,,383,,383,383,383,383,383,383,383,,,,,,383", "383,383,383,383,383,383,,,383,,,,,,383,383,383,383,383,383,383,383,383", "383,383,383,,383,383,383,,383,383,383,383,383,557,557,557,557,557,557", "557,557,557,557,557,,557,557,,,557,557,,383,,,383,,,383,383,,,383,,383", "557,,557,383,557,557,,557,557,557,557,557,383,557,,,,383,383,383,383", ",383,383,383,383,,,,,383,383,,557,,,,,383,,383,383,383,,,383,383,36", "36,36,36,36,36,,,,36,36,,,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36", "36,36,36,,,36,,,,,,36,36,36,36,36,36,36,36,36,36,36,36,,36,36,36,,36", "36,36,36,36,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,", "1006,1006,,,1006,1006,,36,,,36,,,36,36,,,36,,36,1006,,1006,36,1006,1006", ",1006,1006,1006,1006,1006,36,1006,,,,36,36,36,36,,36,36,36,36,,,,,36", "36,,1006,,,,,36,,36,36,36,,,36,36,132,132,132,132,132,132,,,,132,132", ",,,132,,132,132,132,132,132,132,132,,,,,,132,132,132,132,132,132,132", ",,132,,,,,,132,132,132,132,132,132,132,132,132,132,132,132,,132,132", "132,,132,132,132,132,132,1024,1024,1024,1024,1024,1024,1024,1024,1024", "1024,1024,,1024,1024,,,1024,1024,,132,,,132,,,132,132,,,132,,132,1024", ",1024,132,1024,1024,,1024,1024,1024,1024,1024,132,1024,,,,132,132,132", "132,,132,132,132,132,,,,,132,132,,1024,,,,,132,,132,132,132,,,132,132", "329,329,329,329,329,329,,,,329,329,,,,329,,329,329,329,329,329,329,329", ",,,,,329,329,329,329,329,329,329,,938,329,938,938,938,,938,329,329,329", "329,329,329,329,329,329,329,329,329,,329,329,329,,329,329,329,329,329", "778,,778,778,778,,778,,938,,939,,939,939,939,,939,938,,329,,,329,,,329", "329,,499,329,,329,,,,329,,778,,1116,,1116,1116,1116,329,1116,778,939", ",329,329,329,329,,329,329,329,329,,,499,,329,329,499,499,,499,499,,329", ",329,329,329,,1116,329,329,382,382,382,382,382,382,,,,382,382,,,,382", ",382,382,382,382,382,382,382,,,,,,382,382,382,382,382,382,382,,,382", ",,498,,,382,382,382,382,382,382,382,382,382,382,382,382,,382,382,382", ",382,382,382,382,382,500,500,500,500,500,500,500,498,,500,500,498,498", ",498,498,500,500,,382,,,382,,,382,382,,,382,,382,500,,500,382,500,500", ",500,500,500,500,500,382,500,,,,382,382,382,382,,382,382,382,382,,,", ",382,382,,1115,,1115,1115,1115,382,1115,382,382,382,,,382,382,1117,1117", "1117,1117,1117,1117,,,,1117,1117,,,,1117,,1117,1117,1117,1117,1117,1117", "1117,1115,,,,,1117,1117,1117,1117,1117,1117,1117,,,1117,,,,,,1117,1117", "1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,,1117,1117,1117,,1117", "1117,1117,1117,1117,496,496,496,496,496,496,496,,,496,496,,,,,,496,496", ",1117,,,1117,,,1117,1117,,,1117,,1117,496,,496,1117,496,496,,496,496", "496,496,496,1117,496,,,,1117,1117,1117,1117,,1117,1117,1117,1117,,,", ",1117,1117,,,,,,,1117,,1117,1117,1117,,,1117,1117,324,324,324,324,324", "324,,,,324,324,,,,324,,324,324,324,324,324,324,324,,,,,,324,324,324", "324,324,324,324,,,324,,,,,,324,324,324,324,324,324,324,324,324,324,324", "324,,324,324,324,,324,324,324,324,324,497,497,497,497,497,497,497,,", "497,497,,,,,,497,497,,324,,,324,,,324,324,,,324,,324,497,,497,324,497", "497,,497,497,497,497,497,324,497,,,,324,324,324,324,,324,324,324,324", ",,,,324,324,,,,,,,324,,324,324,324,,,324,324,905,905,905,905,905,905", ",,,905,905,,,,905,,905,905,905,905,905,905,905,,,,,,905,905,905,905", "905,905,905,,,905,,,,,,905,905,905,905,905,905,905,905,905,905,905,905", ",905,905,905,,905,905,905,905,905,495,495,495,495,495,495,495,,,495", "495,,,,,,495,495,,905,,,905,,,905,905,,,905,,905,495,,495,905,495,495", ",495,495,495,495,495,905,495,,,,905,905,905,905,,905,905,905,905,,,", ",905,905,,,,,,,905,,905,905,905,,,905,905,1163,1163,1163,1163,1163,1163", ",,,1163,1163,,,,1163,,1163,1163,1163,1163,1163,1163,1163,,,,,,1163,1163", "1163,1163,1163,1163,1163,,,1163,,,,,,1163,1163,1163,1163,1163,1163,1163", "1163,1163,1163,1163,1163,,1163,1163,1163,,1163,1163,1163,1163,1163,493", "493,493,493,493,493,493,,,493,493,,,,,,493,493,,1163,,,1163,,,1163,1163", ",,1163,,1163,493,,493,1163,493,493,,493,493,493,493,493,1163,493,,,", "1163,1163,1163,1163,,1163,1163,1163,1163,,,,,1163,1163,,,,,,,1163,,1163", "1163,1163,,,1163,1163,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,352,352", "352,352,352,352,352,352,352,352,352,,352,352,,,352,352,,2,,,2,,,2,2", ",,2,,2,352,,352,2,352,352,,352,352,352,352,352,2,352,,,,2,2,2,2,,2,2", "2,2,,,,,2,2,,,,,,,2,,2,2,2,,,2,2,367,367,367,367,367,367,,,,367,367", ",,,367,,367,367,367,367,367,367,367,,,,,,367,367,367,367,367,367,367", ",,367,,,,,,367,367,367,367,367,367,367,367,367,367,367,367,,367,367", "367,,367,367,367,367,367,351,351,351,351,351,351,351,351,351,351,351", ",351,351,,,351,351,,367,,,367,,,367,367,,,367,,367,351,,351,367,351", "351,,351,351,351,351,351,367,351,,,,367,367,367,367,,367,367,367,367", ",,,,367,367,,,,,,,367,,367,367,367,,,367,367,366,366,366,366,366,366", ",,,366,366,,,,366,,366,366,366,366,366,366,366,,,,,,366,366,366,366", "366,366,366,,,366,,,,,,366,366,366,366,366,366,366,366,366,366,366,366", ",366,366,366,,366,366,366,366,366,501,501,501,501,501,501,501,501,,501", "501,,,,,,501,501,,366,,,366,,,366,366,,,366,,366,501,,501,366,501,501", ",501,501,501,501,501,366,501,,,,366,366,366,366,,366,366,366,366,,,", ",366,366,,,,,,,366,,366,366,366,,,366,366,917,917,917,917,917,917,,", ",917,917,,,,917,,917,917,917,917,917,917,917,,,,,,917,917,917,917,917", "917,917,,,917,,,,,,917,917,917,917,917,917,917,917,917,917,917,917,", "917,917,917,,917,917,917,917,917,556,,,,,,,,,,,,,,,,556,556,,917,,,917", ",,917,917,,,917,,917,556,,556,917,556,556,,556,556,,,556,917,556,,,", "917,917,917,917,,917,917,917,917,,,,,917,917,,,,,,,917,,917,917,917", ",,917,917,360,360,360,360,360,360,,,,360,360,,,,360,,360,360,360,360", "360,360,360,,,,,,360,360,360,360,360,360,360,,,360,,,,,,360,360,360", "360,360,360,360,360,360,360,360,360,,360,360,360,,360,360,360,360,360", "481,481,481,481,481,481,481,481,481,481,481,,481,481,,,481,481,,360", ",,360,,,360,360,,,360,,360,481,,481,360,481,481,,481,481,481,481,481", "360,481,,,,360,360,360,360,,360,360,360,360,,,,,360,360,,,,,,,360,,360", "360,360,,,360,360,1104,1104,1104,1104,1104,1104,,,,1104,1104,,,,1104", ",1104,1104,1104,1104,1104,1104,1104,,,,,,1104,1104,1104,1104,1104,1104", "1104,,,1104,,,,,,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104", "1104,,1104,1104,1104,,1104,1104,1104,1104,1104,494,494,494,494,494,494", "494,,,494,494,,,,,,494,494,,1104,,,1104,,,1104,1104,,,1104,,1104,494", ",494,1104,494,494,,494,494,494,494,494,1104,494,,,,1104,1104,1104,1104", ",1104,1104,1104,1104,,,,,1104,1104,,,,,,,1104,,1104,1104,1104,,,1104", "1104,952,952,952,952,952,952,,,,952,952,,,,952,,952,952,952,952,952", "952,952,,,,,,952,952,952,952,952,952,952,,,952,,,,,,952,952,952,952", "952,952,952,952,952,952,952,952,,952,952,952,,952,952,952,952,952,482", "482,482,482,482,482,482,482,482,482,482,,482,482,,,482,482,,952,,,952", ",,952,952,,,952,,952,482,,482,952,482,482,,482,482,482,482,482,952,482", ",,,952,952,952,952,,952,952,952,952,,,,,952,952,,,,,,,952,,952,952,952", ",,952,952,958,958,958,958,958,958,,,,958,958,,,,958,,958,958,958,958", "958,958,958,,,,,,958,958,958,958,958,958,958,,,958,,,,,,958,958,958", "958,958,958,958,958,958,958,958,958,,958,958,958,,958,958,958,958,958", "492,492,492,492,492,492,492,,,492,492,,,,,,492,492,,958,,,958,,,958", "958,,,958,,958,492,,492,958,492,492,,492,492,492,492,492,958,492,,,", "958,958,958,958,,958,958,958,958,,,,,958,958,,,,,,,958,,958,958,958", ",,958,958,240,240,240,240,240,240,,,,240,240,,,,240,,240,240,240,240", "240,240,240,,,,,,240,240,240,240,240,240,240,,,240,,,,,,240,240,240", "240,240,240,240,240,240,240,240,240,,240,240,240,,240,240,240,240,240", "503,,,,,,,,,,,,,,,,503,503,,240,,,240,,,240,240,,,240,,240,503,,503", "240,503,503,,503,503,,,503,240,503,,,,240,240,240,240,,240,240,240,240", ",,,,240,240,,,,129,129,129,240,129,240,240,240,129,129,240,240,,129", ",129,129,129,129,129,129,129,,,,,,129,129,129,129,129,129,129,,,129", ",,,,,,129,,,129,129,129,129,129,129,129,129,,129,129,129,,129,129,129", "129,129,489,,,,,,,,,,,,,,,,489,489,,129,,,129,,,129,129,,,129,,,489", ",489,129,489,489,,489,489,,,,129,,,,,129,129,129,129,,129,129,129,129", ",,,,129,129,,,,,,,129,,129,129,129,507,,129,129,,,,507,507,507,,,507", "507,507,,507,491,,,,,,,507,507,507,,,,,,,491,491,,507,507,,507,507,507", "507,507,,,,,,491,,289,289,491,491,289,491,491,,,,,,289,289,,289,289", "289,289,289,289,289,,,289,289,507,,,289,289,289,289,507,,,,,507,507", ",,,,,,289,289,,289,289,289,289,289,289,289,289,289,289,289,289,507,507", "289,,,,,,,,,,,,,507,,,507,,,,,507,7,7,7,7,7,,507,,7,7,,,,7,,7,7,7,7", "7,7,7,,,,,,7,7,7,7,7,7,7,,,7,,,,,,7,7,7,7,7,7,7,7,7,7,7,7,,7,7,7,,7", "7,7,7,7,490,,,,,,,,,,,,,,,,490,490,,7,,,7,,,7,7,,,7,,7,490,,490,7,490", "490,,490,490,,,,7,,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,1152,1152,1152,7,1152", "7,7,7,1152,1152,7,7,,1152,,1152,1152,1152,1152,1152,1152,1152,,,,,,1152", "1152,1152,1152,1152,1152,1152,,,1152,,,,,,,1152,,,1152,1152,1152,1152", "1152,1152,1152,1152,1152,1152,1152,1152,,1152,1152,1152,1152,1152,,", ",,,,,,,,,,,,,,,,,1152,,,1152,,,1152,1152,,,1152,,1152,,1152,,1152,,", "1152,,,,,,1152,,,,,1152,1152,1152,1152,,1152,1152,1152,1152,,,,,1152", "1152,,,,22,22,22,1152,22,1152,1152,1152,22,22,1152,1152,,22,,22,22,22", "22,22,22,22,,,,,,22,22,22,22,22,22,22,,,22,,,,,,,22,,,22,22,22,22,22", "22,22,22,,22,22,22,,22,22,22,22,22,,,,,,,,,,,,,,,,,,,,22,,,22,,,22,22", ",,22,,,,,,22,,,,,,,,,22,,,,,22,22,22,22,,22,22,22,22,,,,,22,22,,,,1120", "1120,1120,22,1120,22,22,22,1120,1120,22,22,,1120,,1120,1120,1120,1120", "1120,1120,1120,,,,,,1120,1120,1120,1120,1120,1120,1120,,,1120,,,,,,", "1120,,,1120,1120,1120,1120,1120,1120,1120,1120,,1120,1120,1120,,1120", "1120,1120,1120,1120,,,,,,,,,,,,,,,,,,,,1120,,,1120,,,1120,1120,,,1120", ",,,,,1120,,,,,,,,,1120,,,,,1120,1120,1120,1120,,1120,1120,1120,1120", ",,,,1120,1120,,,,,,,1120,,1120,1120,1120,30,,1120,1120,,,,30,30,30,", ",30,30,30,,30,,,,,,,,30,30,30,30,,,,,,,,,30,30,,30,30,30,30,30,,,,,", ",,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30", ",,30,,30,30,,,30,30,,30,,30,,30,,30,30,,30,30,30,30,30,31,30,30,30,", ",,31,31,31,,,31,31,31,,31,30,,,30,30,,30,31,30,31,31,,,,,30,,,,31,31", ",31,31,31,31,31,,,,,,,,,,,,,,,,,,,,,,,31,31,31,31,31,31,31,31,31,31", "31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31,,31,,31,,31,31,,31,31", "31,31,31,,31,,31,,,,,,,,,,,,,,31,,,31,31,,31,,31,32,32,32,,32,,31,,32", "32,,,,32,,32,32,32,32,32,32,32,,,,,,32,32,32,32,32,32,32,,,32,,,,,,", "32,,,32,32,32,32,32,32,32,32,32,32,32,32,,32,32,32,32,32,,,,,,,,,,,", ",,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32,,,32,,,,,,32,,,,,32,32,32,32", ",32,32,32,32,,,,,32,32,,,,33,33,33,32,33,32,32,32,33,33,32,32,,33,,33", "33,33,33,33,33,33,,,,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33", "33,33,33,33,33,33,33,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33", ",,33,33,,,33,,33,,33,,33,,,33,,,,,,33,,,,,33,33,33,33,,33,33,33,33,", ",,,33,33,,,,34,34,34,33,34,33,33,33,34,34,33,33,,34,,34,34,34,34,34", "34,34,,,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34,34", "34,34,34,34,34,,34,34,34,34,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,", "34,,34,,34,,34,,,34,,,,,,34,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,", ",,1119,1119,1119,34,1119,34,34,34,1119,1119,34,34,,1119,,1119,1119,1119", "1119,1119,1119,1119,,,,,,1119,1119,1119,1119,1119,1119,1119,,,1119,", ",,,,,1119,,,1119,1119,1119,1119,1119,1119,1119,1119,,1119,1119,1119", ",1119,1119,1119,1119,1119,,,,,,,,,,,,,,,,,,,,1119,,,1119,,,1119,1119", ",,1119,,,,,,1119,,,,,,,,,1119,,,,,1119,1119,1119,1119,,1119,1119,1119", "1119,,,,,1119,1119,,,,44,44,44,1119,44,1119,1119,1119,44,44,1119,1119", ",44,,44,44,44,44,44,44,44,,,,,,44,44,44,44,44,44,44,,,44,,,,,,,44,,", "44,44,44,44,44,44,44,44,,44,44,44,,44,44,44,44,44,,,,,,,,,,,,,,,,,,", ",44,,,44,,,44,44,,,44,,,,,,44,,,,,,,,,44,,,,,44,44,44,44,,44,44,44,44", ",,,,44,44,,,,45,45,45,44,45,44,44,44,45,45,44,44,,45,,45,45,45,45,45", "45,45,,,,,,45,45,45,45,45,45,45,,,45,,,,,,,45,,,45,45,45,45,45,45,45", "45,,45,45,45,,45,45,45,45,45,,,,,,,,,,,,,,,,,,,,45,,,45,,,45,45,,,45", ",,,,,45,,,,,,,,,45,,,,,45,45,45,45,,45,45,45,45,,,,,45,45,,,,47,47,47", "45,47,45,45,45,47,47,45,45,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47", "47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,47", "47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,,47,,,", ",47,47,47,47,,47,47,47,47,,,,,47,47,,,,48,48,48,47,48,47,47,47,48,48", "47,47,,48,,48,48,48,48,48,48,48,,,,,,48,48,48,48,48,48,48,,,48,,,,,", ",48,,,48,48,48,48,48,48,48,48,,48,48,48,,48,48,48,48,48,,,,,,,,,,,,", ",,,,,,,48,,,48,,,48,48,,,48,,,,,,48,,,,,,,,,48,,,,,48,48,48,48,,48,48", "48,48,,,,,48,48,,,,50,50,50,48,50,48,48,48,50,50,48,48,,50,,50,50,50", "50,50,50,50,,,,,,50,50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50", "50,50,50,,50,50,50,,50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50", ",,50,,,,,,50,,,,,,,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,,", ",50,,50,50,50,64,,50,50,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64", "64,,,,704,704,704,704,64,64,,64,64,64,64,64,,,,,704,704,704,,,,,,,,", ",,704,704,,,704,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64", ",,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64,64,64,,64,,64,,704,704", "704,704,,704,704,704,704,,,,64,704,704,64,64,64,64,,64,704,64,704,704", "704,,64,66,66,66,66,66,,,,66,66,,,,66,,66,66,66,66,66,66,66,,,,,,66", "66,66,66,66,66,66,,,66,,,,,,66,66,,66,66,66,66,66,66,66,66,66,,66,66", "66,,66,66,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,,66,,66,,,,66", ",,,,,,,,66,,,,,66,66,66,66,,66,66,66,66,,,,,66,66,,,,67,67,67,66,67", "66,66,66,67,67,66,66,,67,,67,67,67,67,67,67,67,,,,,,67,67,67,67,67,67", "67,,,67,,,,,,,67,,,67,67,67,67,67,67,67,67,67,67,67,67,,67,67,67,67", "67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67,67,,,67,,67,,,,67,,,67,,,,,,67,,", ",,67,67,67,67,,67,67,67,67,,,,,67,67,,,,68,68,68,67,68,67,67,67,68,68", "67,67,,68,,68,68,68,68,68,68,68,,,,,,68,68,68,68,68,68,68,,,68,,,,,", ",68,,,68,68,68,68,68,68,68,68,68,68,68,68,,68,68,68,68,68,,,,,,,,,,", ",,,,,,,,,68,,,68,,,68,68,,,68,,,,,,68,,,68,,,,,,68,,,,,68,68,68,68,", "68,68,68,68,,,,,68,68,,,,71,71,71,68,71,68,68,68,71,71,68,68,,71,,71", "71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71,,,71,,,,,,,71,,,71,71,71", "71,71,71,71,71,,71,71,71,,71,71,71,71,71,,,,,,,,,,,,,,,,,,,,71,,,71", ",,71,71,,,71,,,,,,71,,,,,,,,,71,,,,,71,71,71,71,,71,71,71,71,,,,,71", "71,,,,72,72,72,71,72,71,71,71,72,72,71,71,,72,,72,72,72,72,72,72,72", ",,,,,72,72,72,72,72,72,72,,,72,,,,,,,72,,,72,72,72,72,72,72,72,72,,72", "72,72,,72,72,72,72,72,,,,,,,,,,,,,,,,,,,,72,,,72,,,72,72,,,72,,,,,,72", ",,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,,,75,75,75,72,75", "72,72,72,75,75,72,72,,75,,75,75,75,75,75,75,75,,,,,,75,75,75,75,75,75", "75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75,,75,75,75,75,75", ",,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,,,,,,75,,,,,75,75", "75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75,,,75,75,121,121", "121,121,121,,,,121,121,,,,121,,121,121,121,121,121,121,121,,,,,,121", "121,121,121,121,121,121,,,121,,,,,,121,121,121,121,121,121,121,121,121", "121,121,121,,121,121,121,,121,121,121,121,121,,,,,,,,,,,,,,,,,,,,121", ",,121,,,121,121,,,121,,121,,,,121,,,,,,,,,121,,,,,121,121,121,121,,121", "121,121,121,,,,,121,121,,,,,,121,121,,121,121,121,,,121,121,126,126", "126,,126,,,,126,126,,,,126,,126,126,126,126,126,126,126,,,,,,126,126", "126,126,126,126,126,,,126,,,,,,,126,,,126,126,126,126,126,126,126,126", ",126,126,126,,126,126,126,126,126,,,,,,,,,,,,,,,,,,,,126,,,126,,,126", "126,,,126,,,,,,126,,,,,,,,,126,,,,,126,126,126,126,,126,126,126,126", ",,,,126,126,,,,127,127,127,126,127,126,126,126,127,127,126,126,,127", ",127,127,127,127,127,127,127,,,,,,127,127,127,127,127,127,127,,,127", ",,,,,,127,,,127,127,127,127,127,127,127,127,,127,127,127,,127,127,127", "127,127,,,,,,,,,,,,,,,,,,,,127,,,127,,,127,127,,,127,,,,,,127,,,,,,", ",,127,,,,,127,127,127,127,,127,127,127,127,,,,,127,127,,,,128,128,128", "127,128,127,127,127,128,128,127,127,,128,,128,128,128,128,128,128,128", ",,,,,128,128,128,128,128,128,128,,,128,,,,,,,128,,,128,128,128,128,128", "128,128,128,,128,128,128,,128,128,128,128,128,,,,,,,,,,,,,,,,,,,,128", ",,128,,,128,128,,,128,,,,,,128,,,,,,,,,128,,,,,128,128,128,128,,128", "128,128,128,,,,,128,128,,,,512,512,512,128,512,128,128,128,512,512,128", "128,,512,,512,512,512,512,512,512,512,,,,,,512,512,512,512,512,512,512", ",,512,,,,,,,512,,,512,512,512,512,512,512,512,512,,512,512,512,,512", "512,512,512,512,,,,,,,,,,,,,,,,,,,,512,,,512,,,512,512,,,512,,,,,,512", ",,,,,,,,512,,,,,512,512,512,512,,512,512,512,512,,,,,512,512,,,,,,,512", ",512,512,512,,,512,512,130,130,130,130,130,,,,130,130,,,,130,,130,130", "130,130,130,130,130,,,,,,130,130,130,130,130,130,130,,,130,,,,,,130", "130,,130,130,130,130,130,130,130,130,130,,130,130,130,,130,130,130,130", "130,,,,,,,,,,,,,,,,,,,,130,,,130,,,130,130,,,130,,130,,,,130,,,,,,,", ",130,,,,,130,130,130,130,,130,130,130,130,,,,,130,130,,,,228,228,228", "130,228,130,130,130,228,228,130,130,,228,,228,228,228,228,228,228,228", ",,,,,228,228,228,228,228,228,228,,,228,,,,,,,228,,,228,228,228,228,228", "228,228,228,,228,228,228,,228,228,228,228,228,,,,,,,,,,,,,,,,,,,,228", ",,228,,,228,228,,,228,,,,,,228,,,,,,,,,228,,,,,228,228,228,228,,228", "228,228,228,,,,,228,228,228,,,239,239,239,228,239,228,228,228,239,239", "228,228,,239,,239,239,239,239,239,239,239,,,,,,239,239,239,239,239,239", "239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239,,239,239,239,", "239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239,239,,,239,,,", ",,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239,,,,,239,239,", ",,244,244,244,239,244,239,239,239,244,244,239,239,,244,,244,244,244", "244,244,244,244,,,,,,244,244,244,244,244,244,244,,,244,,,,,,,244,,,244", "244,244,244,244,244,244,244,,244,244,244,,244,244,244,244,244,,,,,,", ",,,,,,,,,,,,,244,,,244,,,244,244,,,244,,,,,,244,,,,,,,,,244,,,,,244", "244,244,244,,244,244,244,244,,,,,244,244,,,,245,245,245,244,245,244", "244,244,245,245,244,244,,245,,245,245,245,245,245,245,245,,,,,,245,245", "245,245,245,245,245,,,245,,,,,,,245,,,245,245,245,245,245,245,245,245", ",245,245,245,,245,245,245,245,245,,,,,,,,,,,,,,,,,,,,245,,,245,,,245", "245,,,245,,,,,,245,,,,,,,,,245,,,,,245,245,245,245,,245,245,245,245", ",,,,245,245,,,,246,246,246,245,246,245,245,245,246,246,245,245,,246", ",246,246,246,246,246,246,246,,,,,,246,246,246,246,246,246,246,,,246", ",,,,,,246,,,246,246,246,246,246,246,246,246,,246,246,246,,246,246,246", "246,246,,,,,,,,,,,,,,,,,,,,246,,,246,,,246,246,,,246,,,,,,246,,,,,,", ",,246,,,,,246,246,246,246,,246,246,246,246,,,,,246,246,,,,247,247,247", "246,247,246,246,246,247,247,246,246,,247,,247,247,247,247,247,247,247", ",,,,,247,247,247,247,247,247,247,,,247,,,,,,,247,,,247,247,247,247,247", "247,247,247,,247,247,247,,247,247,247,247,247,,,,,,,,,,,,,,,,,,,,247", ",,247,,,247,247,,,247,,,,,,247,,,,,,,,,247,,,,,247,247,247,247,,247", "247,247,247,,,,,247,247,,,,248,248,248,247,248,247,247,247,248,248,247", "247,,248,,248,248,248,248,248,248,248,,,,,,248,248,248,248,248,248,248", ",,248,,,,,,,248,,,248,248,248,248,248,248,248,248,,248,248,248,,248", "248,248,248,248,,,,,,,,,,,,,,,,,,,,248,,,248,,,248,248,,,248,,,,,,248", ",,,,,,,,248,,,,,248,248,248,248,,248,248,248,248,,,,,248,248,,,,249", "249,249,248,249,248,248,248,249,249,248,248,,249,,249,249,249,249,249", "249,249,,,,,,249,249,249,249,249,249,249,,,249,,,,,,,249,,,249,249,249", "249,249,249,249,249,,249,249,249,,249,249,249,249,249,,,,,,,,,,,,,,", ",,,,,249,,,249,,,249,249,,,249,,,,,,249,,,,,,,,,249,,,,,249,249,249", "249,,249,249,249,249,,,,,249,249,,,,250,250,250,249,250,249,249,249", "250,250,249,249,,250,,250,250,250,250,250,250,250,,,,,,250,250,250,250", "250,250,250,,,250,,,,,,,250,,,250,250,250,250,250,250,250,250,,250,250", "250,,250,250,250,250,250,,,,,,,,,,,,,,,,,,,,250,,,250,,,250,250,,,250", ",,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250,250,250,250,,,,,250,250", ",,,251,251,251,250,251,250,250,250,251,251,250,250,,251,,251,251,251", "251,251,251,251,,,,,,251,251,251,251,251,251,251,,,251,,,,,,,251,,,251", "251,251,251,251,251,251,251,,251,251,251,,251,251,251,251,251,,,,,,", ",,,,,,,,,,,,,251,,,251,,,251,251,,,251,,,,,,251,,,,,,,,,251,,,,,251", "251,251,251,,251,251,251,251,,,,,251,251,,,,252,252,252,251,252,251", "251,251,252,252,251,251,,252,,252,252,252,252,252,252,252,,,,,,252,252", "252,252,252,252,252,,,252,,,,,,,252,,,252,252,252,252,252,252,252,252", ",252,252,252,,252,252,252,252,252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252", "252,,,252,,,,,,252,,,,,,,,,252,,,,,252,252,252,252,,252,252,252,252", ",,,,252,252,,,,253,253,253,252,253,252,252,252,253,253,252,252,,253", ",253,253,253,253,253,253,253,,,,,,253,253,253,253,253,253,253,,,253", ",,,,,,253,,,253,253,253,253,253,253,253,253,,253,253,253,,253,253,253", "253,253,,,,,,,,,,,,,,,,,,,,253,,,253,,,253,253,,,253,,,,,,253,,,,,,", ",,253,,,,,253,253,253,253,,253,253,253,253,,,,,253,253,,,,254,254,254", "253,254,253,253,253,254,254,253,253,,254,,254,254,254,254,254,254,254", ",,,,,254,254,254,254,254,254,254,,,254,,,,,,,254,,,254,254,254,254,254", "254,254,254,,254,254,254,,254,254,254,254,254,,,,,,,,,,,,,,,,,,,,254", ",,254,,,254,254,,,254,,,,,,254,,,,,,,,,254,,,,,254,254,254,254,,254", "254,254,254,,,,,254,254,,,,255,255,255,254,255,254,254,254,255,255,254", "254,,255,,255,255,255,255,255,255,255,,,,,,255,255,255,255,255,255,255", ",,255,,,,,,,255,,,255,255,255,255,255,255,255,255,,255,255,255,,255", "255,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,,,,,255", ",,,,,,,,255,,,,,255,255,255,255,,255,255,255,255,,,,,255,255,,,,256", "256,256,255,256,255,255,255,256,256,255,255,,256,,256,256,256,256,256", "256,256,,,,,,256,256,256,256,256,256,256,,,256,,,,,,,256,,,256,256,256", "256,256,256,256,256,,256,256,256,,256,256,256,256,256,,,,,,,,,,,,,,", ",,,,,256,,,256,,,256,256,,,256,,,,,,256,,,,,,,,,256,,,,,256,256,256", "256,,256,256,256,256,,,,,256,256,,,,257,257,257,256,257,256,256,256", "257,257,256,256,,257,,257,257,257,257,257,257,257,,,,,,257,257,257,257", "257,257,257,,,257,,,,,,,257,,,257,257,257,257,257,257,257,257,,257,257", "257,,257,257,257,257,257,,,,,,,,,,,,,,,,,,,,257,,,257,,,257,257,,,257", ",,,,,257,,,,,,,,,257,,,,,257,257,257,257,,257,257,257,257,,,,,257,257", ",,,258,258,258,257,258,257,257,257,258,258,257,257,,258,,258,258,258", "258,258,258,258,,,,,,258,258,258,258,258,258,258,,,258,,,,,,,258,,,258", "258,258,258,258,258,258,258,,258,258,258,,258,258,258,258,258,,,,,,", ",,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258,,,,,,,,,258,,,,,258", "258,258,258,,258,258,258,258,,,,,258,258,,,,259,259,259,258,259,258", "258,258,259,259,258,258,,259,,259,259,259,259,259,259,259,,,,,,259,259", "259,259,259,259,259,,,259,,,,,,,259,,,259,259,259,259,259,259,259,259", ",259,259,259,,259,259,259,259,259,,,,,,,,,,,,,,,,,,,,259,,,259,,,259", "259,,,259,,,,,,259,,,,,,,,,259,,,,,259,259,259,259,,259,259,259,259", ",,,,259,259,,,,260,260,260,259,260,259,259,259,260,260,259,259,,260", ",260,260,260,260,260,260,260,,,,,,260,260,260,260,260,260,260,,,260", ",,,,,,260,,,260,260,260,260,260,260,260,260,,260,260,260,,260,260,260", "260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260,,,,,,260,,,,,,", ",,260,,,,,260,260,260,260,,260,260,260,260,,,,,260,260,,,,261,261,261", "260,261,260,260,260,261,261,260,260,,261,,261,261,261,261,261,261,261", ",,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261", "261,261,261,,261,261,261,,261,261,261,261,261,,,,,,,,,,,,,,,,,,,,261", ",,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261,261,261,261,,261", "261,261,261,,,,,261,261,,,,262,262,262,261,262,261,261,261,262,262,261", "261,,262,,262,262,262,262,262,262,262,,,,,,262,262,262,262,262,262,262", ",,262,,,,,,,262,,,262,262,262,262,262,262,262,262,,262,262,262,,262", "262,262,262,262,,,,,,,,,,,,,,,,,,,,262,,,262,,,262,262,,,262,,,,,,262", ",,,,,,,,262,,,,,262,262,262,262,,262,262,262,262,,,,,262,262,,,,263", "263,263,262,263,262,262,262,263,263,262,262,,263,,263,263,263,263,263", "263,263,,,,,,263,263,263,263,263,263,263,,,263,,,,,,,263,,,263,263,263", "263,263,263,263,263,,263,263,263,,263,263,263,263,263,,,,,,,,,,,,,,", ",,,,,263,,,263,,,263,263,,,263,,,,,,263,,,,,,,,,263,,,,,263,263,263", "263,,263,263,263,263,,,,,263,263,,,,264,264,264,263,264,263,263,263", "264,264,263,263,,264,,264,264,264,264,264,264,264,,,,,,264,264,264,264", "264,264,264,,,264,,,,,,,264,,,264,264,264,264,264,264,264,264,,264,264", "264,,264,264,264,264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264,264,,,264", ",,,,,264,,,,,,,,,264,,,,,264,264,264,264,,264,264,264,264,,,,,264,264", ",,,265,265,265,264,265,264,264,264,265,265,264,264,,265,,265,265,265", "265,265,265,265,,,,,,265,265,265,265,265,265,265,,,265,,,,,,,265,,,265", "265,265,265,265,265,265,265,,265,265,265,,265,265,265,265,265,,,,,,", ",,,,,,,,,,,,,265,,,265,,,265,265,,,265,,,,,,265,,,,,,,,,265,,,,,265", "265,265,265,,265,265,265,265,,,,,265,265,,,,270,270,270,265,270,265", "265,265,270,270,265,265,,270,,270,270,270,270,270,270,270,,,,,,270,270", "270,270,270,270,270,,,270,,,,,,,270,,,270,270,270,270,270,270,270,270", ",270,270,270,,270,270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270", "270,,,270,,,,,,270,,,,,,,,,270,,,,,270,270,270,270,,270,270,270,270", ",,,,270,270,,,,971,971,971,270,971,270,270,270,971,971,270,270,,971", ",971,971,971,971,971,971,971,,,,,,971,971,971,971,971,971,971,,,971", ",,,,,,971,,,971,971,971,971,971,971,971,971,,971,971,971,,971,971,971", "971,971,,,,,,,,,,,,,,,,,,,,971,,,971,,,971,971,,,971,,,,,,971,,,,,,", ",,971,,,,,971,971,971,971,,971,971,971,971,,,,,971,971,,,,970,970,970", "971,970,971,971,971,970,970,971,971,,970,,970,970,970,970,970,970,970", ",,,,,970,970,970,970,970,970,970,,,970,,,,,,,970,,,970,970,970,970,970", "970,970,970,970,970,970,970,,970,970,970,970,970,,,,,,,,,,,,,,,,,,,", "970,,,970,,,970,970,,,970,,,,970,,970,,,970,,,,,,970,,,,,970,970,970", "970,,970,970,970,970,,,,,970,970,,,,951,951,951,970,951,970,970,970", "951,951,970,970,,951,,951,951,951,951,951,951,951,,,,,,951,951,951,951", "951,951,951,,,951,,,,,,,951,,,951,951,951,951,951,951,951,951,,951,951", "951,,951,951,951,951,951,,,,,,,,,,,,,,,,,,,,951,,,951,,,951,951,,,951", ",951,,,,951,,,,,,,,,951,,,,,951,951,951,951,,951,951,951,951,,,,,951", "951,,,,946,946,946,951,946,951,951,951,946,946,951,951,,946,,946,946", "946,946,946,946,946,,,,,,946,946,946,946,946,946,946,,,946,,,,,,,946", ",,946,946,946,946,946,946,946,946,,946,946,946,,946,946,946,946,946", ",,,,,,,,,,,,,,,,,,,946,,,946,,,946,946,,,946,,,,,,946,,,,,,,,,946,,", ",,946,946,946,946,,946,946,946,946,,,,,946,946,,,,942,942,942,946,942", "946,946,946,942,942,946,946,,942,,942,942,942,942,942,942,942,,,,,,942", "942,942,942,942,942,942,,,942,,,,,,,942,,,942,942,942,942,942,942,942", "942,,942,942,942,,942,942,942,942,942,,,,,,,,,,,,,,,,,,,,942,,,942,", ",942,942,,,942,,,,,,942,,,,,,,,,942,,,,,942,942,942,942,,942,942,942", "942,,,,,942,942,,,,286,286,286,942,286,942,942,942,286,286,942,942,", "286,,286,286,286,286,286,286,286,,,,,,286,286,286,286,286,286,286,,", "286,,,,,,,286,,,286,286,286,286,286,286,286,286,,286,286,286,,286,286", "286,286,286,,,,,,,,,,,,,,,,,,,,286,,,286,,,286,286,,,286,,,,,,286,,", ",,,,,,286,,,,,286,286,286,286,,286,286,286,286,,,,,286,286,,,,914,914", "914,286,914,286,286,286,914,914,286,286,,914,,914,914,914,914,914,914", "914,,,,,,914,914,914,914,914,914,914,,,914,,,,,,,914,,,914,914,914,914", "914,914,914,914,,914,914,914,,914,914,914,914,914,,,,,,,,,,,,,,,,,,", ",914,,,914,,,914,914,,,914,,,,,,914,,,,,,,,,914,,,,,914,914,914,914", ",914,914,914,914,,,,,914,914,,,,293,293,293,914,293,914,914,914,293", "293,914,914,,293,,293,293,293,293,293,293,293,,,,,,293,293,293,293,293", "293,293,,,293,,,,,,,293,,,293,293,293,293,293,293,293,293,293,293,293", "293,,293,293,293,293,293,,,,,,,,,,,,,,,,,,,,293,,,293,,,293,293,,,293", ",293,,293,,293,,,293,,,,,,293,,,,,293,293,293,293,,293,293,293,293,", ",,,293,293,,,,294,294,294,293,294,293,293,293,294,294,293,293,,294,", "294,294,294,294,294,294,294,,,,,,294,294,294,294,294,294,294,,,294,", ",,,,,294,,,294,294,294,294,294,294,294,294,294,294,294,294,,294,294", "294,294,294,,,,,,,,,,,,,,,,,,,,294,,,294,,,294,294,,,294,,294,,294,", "294,,,294,,,,,,294,,,,,294,294,294,294,,294,294,294,294,,,,,294,294", ",,,302,302,302,294,302,294,294,294,302,302,294,294,,302,,302,302,302", "302,302,302,302,,,,,,302,302,302,302,302,302,302,,,302,,,,,,,302,,,302", "302,302,302,302,302,302,302,302,302,302,302,,302,302,302,302,302,,,", ",,,,,,,,,,,,,,,,302,,,302,,,302,302,,,302,,302,,302,,302,,,302,,,,,", "302,,,,,302,302,302,302,,302,302,302,302,,,,,302,302,302,,,894,894,894", "302,894,302,302,302,894,894,302,302,,894,,894,894,894,894,894,894,894", ",,,,,894,894,894,894,894,894,894,,,894,,,,,,,894,,,894,894,894,894,894", "894,894,894,,894,894,894,,894,894,894,894,894,,,,,,,,,,,,,,,,,,,,894", ",,894,,,894,894,,,894,,,,,,894,,,,,,,,,894,,,,,894,894,894,894,,894", "894,894,894,,,,,894,894,,,,309,309,309,894,309,894,894,894,309,309,894", "894,,309,,309,309,309,309,309,309,309,,,,,,309,309,309,309,309,309,309", ",,309,,,,,,,309,,,309,309,309,309,309,309,309,309,,309,309,309,,309", "309,309,309,309,,,,,,,,,,,,,,,,,,,,309,,,309,,,309,309,,,309,,,,,,309", ",,,,,,,,309,,,,,309,309,309,309,,309,309,309,309,,,,,309,309,,,,311", "311,311,309,311,309,309,309,311,311,309,309,,311,,311,311,311,311,311", "311,311,,,,,,311,311,311,311,311,311,311,,,311,,,,,,,311,,,311,311,311", "311,311,311,311,311,,311,311,311,,311,311,311,311,311,,,,,,,,,,,,,,", ",,,,,311,,,311,,,311,311,,,311,,,,,,311,,,,,,,,,311,,,,,311,311,311", "311,,311,311,311,311,,,,,311,311,,,,314,314,314,311,314,311,311,311", "314,314,311,311,,314,,314,314,314,314,314,314,314,,,,,,314,314,314,314", "314,314,314,,,314,,,,,,,314,,,314,314,314,314,314,314,314,314,,314,314", "314,,314,314,314,314,314,,,,,,,,,,,,,,,,,,,,314,,,314,,,314,314,,,314", ",,,,,314,,,,,,,,,314,,,,,314,314,314,314,,314,314,314,314,,,,,314,314", ",,,315,315,315,314,315,314,314,314,315,315,314,314,,315,,315,315,315", "315,315,315,315,,,,,,315,315,315,315,315,315,315,,,315,,,,,,,315,,,315", "315,315,315,315,315,315,315,,315,315,315,,315,315,315,315,315,,,,,,", ",,,,,,,,,,,,,315,,,315,,,315,315,,,315,,,,,,315,,,,,,,,,315,,,,,315", "315,315,315,,315,315,315,315,,,,,315,315,,,,,,,315,,315,315,315,,,315", "315,320,320,320,320,320,,,,320,320,,,,320,,320,320,320,320,320,320,320", ",,,,,320,320,320,320,320,320,320,,,320,,,,,,320,320,,320,320,320,320", "320,320,320,320,320,,320,320,320,,320,320,320,320,320,,,,,,,,,,,,,,", ",,,,,320,,,320,,,320,320,,,320,,320,,,,320,,,,,,,,,320,,,,,320,320,320", "320,,320,320,320,320,,,,,320,320,,,,865,865,865,320,865,320,320,320", "865,865,320,320,,865,,865,865,865,865,865,865,865,,,,,,865,865,865,865", "865,865,865,,,865,,,,,,,865,,,865,865,865,865,865,865,865,865,,865,865", "865,,865,865,865,865,865,,,,,,,,,,,,,,,,,,,,865,,,865,,,865,865,,,865", ",,,,,865,,,,,,,,,865,,,,,865,865,865,865,,865,865,865,865,,,,,865,865", ",,,864,864,864,865,864,865,865,865,864,864,865,865,,864,,864,864,864", "864,864,864,864,,,,,,864,864,864,864,864,864,864,,,864,,,,,,,864,,,864", "864,864,864,864,864,864,864,,864,864,864,,864,864,864,864,864,,,,,,", ",,,,,,,,,,,,,864,,,864,,,864,864,,,864,,,,,,864,,,,,,,,,864,,,,,864", "864,864,864,,864,864,864,864,,,,,864,864,,,,863,863,863,864,863,864", "864,864,863,863,864,864,,863,,863,863,863,863,863,863,863,,,,,,863,863", "863,863,863,863,863,,,863,,,,,,,863,,,863,863,863,863,863,863,863,863", ",863,863,863,,863,863,863,863,863,,,,,,,,,,,,,,,,,,,,863,,,863,,,863", "863,,,863,,,,,,863,,,,,,,,,863,,,,,863,863,863,863,,863,863,863,863", ",,,,863,863,,,,862,862,862,863,862,863,863,863,862,862,863,863,,862", ",862,862,862,862,862,862,862,,,,,,862,862,862,862,862,862,862,,,862", ",,,,,,862,,,862,862,862,862,862,862,862,862,,862,862,862,,862,862,862", "862,862,,,,,,,,,,,,,,,,,,,,862,,,862,,,862,862,,,862,,,,,,862,,,,,,", ",,862,,,,,862,862,862,862,,862,862,862,862,,,,,862,862,,,,849,849,849", "862,849,862,862,862,849,849,862,862,,849,,849,849,849,849,849,849,849", ",,,,,849,849,849,849,849,849,849,,,849,,,,,,,849,,,849,849,849,849,849", "849,849,849,,849,849,849,,849,849,849,849,849,,,,,,,,,,,,,,,,,,,,849", ",,849,,,849,849,,,849,,,,,,849,,,,,,,,,849,,,,,849,849,849,849,,849", "849,849,849,,,,,849,849,,,,841,841,841,849,841,849,849,849,841,841,849", "849,,841,,841,841,841,841,841,841,841,,,,,,841,841,841,841,841,841,841", ",,841,,,,,,,841,,,841,841,841,841,841,841,841,841,,841,841,841,,841", "841,841,841,841,,,,,,,,,,,,,,,,,,,,841,,,841,,,841,841,,,841,,,,,,841", ",,,,,,,,841,,,,,841,841,841,841,,841,841,841,841,,,,,841,841,,,,821", "821,821,841,821,841,841,841,821,821,841,841,,821,,821,821,821,821,821", "821,821,,,,,,821,821,821,821,821,821,821,,,821,,,,,,,821,,,821,821,821", "821,821,821,821,821,,821,821,821,,821,821,821,821,821,,,,,,,,,,,,,,", ",,,,,821,,,821,,,821,821,,,821,,,,,,821,,,,,,,,,821,,,,,821,821,821", "821,,821,821,821,821,,,,,821,821,,,,356,356,356,821,356,821,821,821", "356,356,821,821,,356,,356,356,356,356,356,356,356,,,,,,356,356,356,356", "356,356,356,,,356,,,,,,,356,,,356,356,356,356,356,356,356,356,,356,356", "356,,356,356,356,356,356,,,,,,,,,,,,,,,,,,,,356,,,356,,,356,356,,,356", ",,,,,356,,,,,,,,,356,,,,,356,356,356,356,,356,356,356,356,,,,,356,356", ",,,358,358,358,356,358,356,356,356,358,358,356,356,,358,,358,358,358", "358,358,358,358,,,,,,358,358,358,358,358,358,358,,,358,,,,,,,358,,,358", "358,358,358,358,358,358,358,,358,358,358,,358,358,358,358,358,,,,,,", ",,,,,,,,,,,,,358,,,358,358,,358,358,,,358,,,,,,358,,,,,,,,,358,,,,,358", "358,358,358,,358,358,358,358,,,,,358,358,,,,776,776,776,358,776,358", "358,358,776,776,358,358,,776,,776,776,776,776,776,776,776,,,,,,776,776", "776,776,776,776,776,,,776,,,,,,,776,,,776,776,776,776,776,776,776,776", ",776,776,776,,776,776,776,776,776,,,,,,,,,,,,,,,,,,,,776,,,776,,,776", "776,,,776,,,,,,776,,,,,,,,,776,,,,,776,776,776,776,,776,776,776,776", ",,,,776,776,,,,762,762,762,776,762,776,776,776,762,762,776,776,,762", ",762,762,762,762,762,762,762,,,,,,762,762,762,762,762,762,762,,,762", ",,,,,,762,,,762,762,762,762,762,762,762,762,,762,762,762,,762,762,762", "762,762,,,,,,,,,,,,,,,,,,,,762,,,762,,,762,762,,,762,,762,,,,762,,,", ",,,,,762,,,,,762,762,762,762,,762,762,762,762,,,,,762,762,,,,742,742", "742,762,742,762,762,762,742,742,762,762,,742,,742,742,742,742,742,742", "742,,,,,,742,742,742,742,742,742,742,,,742,,,,,,,742,,,742,742,742,742", "742,742,742,742,,742,742,742,,742,742,742,742,742,,,,,,,,,,,,,,,,,,", ",742,,,742,,,742,742,,,742,,,,,,742,,,,,,,,,742,,,,,742,742,742,742", ",742,742,742,742,,,,,742,742,,,,739,739,739,742,739,742,742,742,739", "739,742,742,,739,,739,739,739,739,739,739,739,,,,,,739,739,739,739,739", "739,739,,,739,,,,,,,739,,,739,739,739,739,739,739,739,739,,739,739,739", ",739,739,739,739,739,,,,,,,,,,,,,,,,,,,,739,,,739,,,739,739,,,739,,", ",,,739,,,,,,,,,739,,,,,739,739,739,739,,739,739,739,739,,,,,739,739", ",,,381,381,381,739,381,739,739,739,381,381,739,739,,381,,381,381,381", "381,381,381,381,,,,,,381,381,381,381,381,381,381,,,381,,,,,,,381,,,381", "381,381,381,381,381,381,381,,381,381,381,,381,381,381,381,381,,,,,,", ",,,,,,,,,,,,,381,,,381,,,381,381,,,381,,,,,,381,,,,,,,,,381,,,,,381", "381,381,381,,381,381,381,381,,,,,381,381,,,,730,730,730,381,730,381", "381,381,730,730,381,381,,730,,730,730,730,730,730,730,730,,,,,,730,730", "730,730,730,730,730,,,730,,,,,,,730,,,730,730,730,730,730,730,730,730", "730,730,730,730,,730,730,730,730,730,,,,,,,,,,,,,,,,,,,,730,,,730,,", "730,730,,,730,,730,,730,,730,,,730,,,,,,730,,,,,730,730,730,730,,730", "730,730,730,,,,,730,730,,,,682,682,682,730,682,730,730,730,682,682,730", "730,,682,,682,682,682,682,682,682,682,,,,,,682,682,682,682,682,682,682", ",,682,,,,,,,682,,,682,682,682,682,682,682,682,682,,682,682,682,,682", "682,682,682,682,,,,,,,,,,,,,,,,,,,,682,,,682,,,682,682,,,682,,,,,,682", ",,,,,,,,682,,,,,682,682,682,682,,682,682,682,682,,,,,682,682,,,,402", "402,402,682,402,682,682,682,402,402,682,682,,402,,402,402,402,402,402", "402,402,,,,,,402,402,402,402,402,402,402,,,402,,,,,,,402,,,402,402,402", "402,402,402,402,402,,402,402,402,,402,402,402,402,402,,,,,,,,,,,,,,", ",,,,,402,,,402,,,402,402,,,402,,,,,,402,,,,,,,,,402,,,,,402,402,402", "402,,402,402,402,402,,,,,402,402,,,,681,681,681,402,681,402,402,402", "681,681,402,402,,681,,681,681,681,681,681,681,681,,,,,,681,681,681,681", "681,681,681,,,681,,,,,,,681,,,681,681,681,681,681,681,681,681,,681,681", "681,,681,681,681,681,681,,,,,,,,,,,,,,,,,,,,681,,,681,,,681,681,,,681", ",,,,,681,,,,,,,,,681,,,,,681,681,681,681,,681,681,681,681,,,,,681,681", ",,,677,677,677,681,677,681,681,681,677,677,681,681,,677,,677,677,677", "677,677,677,677,,,,,,677,677,677,677,677,677,677,,,677,,,,,,,677,,,677", "677,677,677,677,677,677,677,,677,677,677,,677,677,677,677,677,,,,,,", ",,,,,,,,,,,,,677,,,677,,,677,677,,,677,,,,,,677,,,,,,,,,677,,,,,677", "677,677,677,,677,677,677,677,,,,,677,677,,,,676,676,676,677,676,677", "677,677,676,676,677,677,,676,,676,676,676,676,676,676,676,,,,,,676,676", "676,676,676,676,676,,,676,,,,,,,676,,,676,676,676,676,676,676,676,676", ",676,676,676,,676,676,676,676,676,,,,,,,,,,,,,,,,,,,,676,,,676,,,676", "676,,,676,,,,,,676,,,,,,,,,676,,,,,676,676,676,676,,676,676,676,676", ",,,,676,676,,,,675,675,675,676,675,676,676,676,675,675,676,676,,675", ",675,675,675,675,675,675,675,,,,,,675,675,675,675,675,675,675,,,675", ",,,,,,675,,,675,675,675,675,675,675,675,675,675,675,675,675,,675,675", "675,675,675,,,,,,,,,,,,,,,,,,,,675,,,675,,,675,675,,,675,,,,675,,675", ",,675,,,,,,675,,,,,675,675,675,675,,675,675,675,675,,,,,675,675,,,,674", "674,674,675,674,675,675,675,674,674,675,675,,674,,674,674,674,674,674", "674,674,,,,,,674,674,674,674,674,674,674,,,674,,,,,,,674,,,674,674,674", "674,674,674,674,674,674,674,674,674,,674,674,674,674,674,,,,,,,,,,,", ",,,,,,,,674,,,674,,,674,674,,,674,,674,,674,,674,,,674,,,,,,674,,,,", "674,674,674,674,,674,674,674,674,,,,,674,674,,,,671,671,671,674,671", "674,674,674,671,671,674,674,,671,,671,671,671,671,671,671,671,,,,,,671", "671,671,671,671,671,671,,,671,,,,,,,671,,,671,671,671,671,671,671,671", "671,,671,671,671,,671,671,671,671,671,,,,,,,,,,,,,,,,,,,,671,,,671,", ",671,671,,,671,,,,,,671,,,,,,,,,671,,,,,671,671,671,671,,671,671,671", "671,,,,,671,671,,,,,,,671,,671,671,671,,,671,671,670,670,670,670,670", ",,,670,670,,,,670,,670,670,670,670,670,670,670,,,,,,670,670,670,670", "670,670,670,,,670,,,,,,670,670,,670,670,670,670,670,670,670,670,670", ",670,670,670,,670,670,670,670,670,,,,,,,,,,,,,,,,,,,,670,,,670,,,670", "670,,,670,,670,,,,670,,,,,,,,,670,,,,,670,670,670,670,,670,670,670,670", ",,,,670,670,,,,667,667,667,670,667,670,670,670,667,667,670,670,,667", ",667,667,667,667,667,667,667,,,,,,667,667,667,667,667,667,667,,,667", ",,,,,,667,,,667,667,667,667,667,667,667,667,667,667,667,667,,667,667", "667,667,667,,,,,,,,,,,,,,,,,,,,667,,,667,,,667,667,,,667,,667,,667,", "667,,,667,,,,,,667,,,,,667,667,667,667,,667,667,667,667,,,,,667,667", ",,,666,666,666,667,666,667,667,667,666,666,667,667,,666,,666,666,666", "666,666,666,666,,,,,,666,666,666,666,666,666,666,,,666,,,,,,,666,,,666", "666,666,666,666,666,666,666,,666,666,666,,666,666,666,666,666,,,,,,", ",,,,,,,,,,,,,666,,,666,,,666,666,,,666,,,,,,666,,,,,,,,,666,,,,,666", "666,666,666,,666,666,666,666,,,,,666,666,,,,665,665,665,666,665,666", "666,666,665,665,666,666,,665,,665,665,665,665,665,665,665,,,,,,665,665", "665,665,665,665,665,,,665,,,,,,,665,,,665,665,665,665,665,665,665,665", ",665,665,665,,665,665,665,665,665,,,,,,,,,,,,,,,,,,,,665,,,665,,,665", "665,,,665,,665,,,,665,,,,,,,,,665,,,,,665,665,665,665,,665,665,665,665", ",,,,665,665,,,,,,,665,,665,665,665,,,665,665,663,663,663,663,663,,,", "663,663,,,,663,,663,663,663,663,663,663,663,,,,,,663,663,663,663,663", "663,663,,,663,,,,,,663,663,,663,663,663,663,663,663,663,663,663,,663", "663,663,,663,663,663,663,663,,,,,,,,,,,,,,,,,,,,663,,,663,,,663,663", ",,663,,663,,,,663,,,,,,,,,663,,,,,663,663,663,663,,663,663,663,663,", ",,,663,663,,,,431,431,431,663,431,663,663,663,431,431,663,663,,431,", "431,431,431,431,431,431,431,,,,,,431,431,431,431,431,431,431,,,431,", ",,,,,431,,,431,431,431,431,431,431,431,431,,431,431,431,,431,431,431", "431,431,,,,,,,,,,,,,,,,,,,,431,,,431,,,431,431,,,431,,,,,,431,,,,,,", ",,431,,,,,431,431,431,431,,431,431,431,431,,,,,431,431,,,,632,632,632", "431,632,431,431,431,632,632,431,431,,632,,632,632,632,632,632,632,632", ",,,,,632,632,632,632,632,632,632,,,632,,,,,,,632,,,632,632,632,632,632", "632,632,632,632,632,632,632,,632,632,632,632,632,,,,,,,,,,,,,,,,,,,", "632,,,632,,,632,632,,,632,,632,,632,,632,,,632,,,,,,632,,,,,632,632", "632,632,,632,632,632,632,,,,,632,632,,,,622,622,622,632,622,632,632", "632,622,622,632,632,,622,,622,622,622,622,622,622,622,,,,,,622,622,622", "622,622,622,622,,,622,,,,,,,622,,,622,622,622,622,622,622,622,622,622", "622,622,622,,622,622,622,622,622,,,,,,,,,,,,,,,,,,,,622,,,622,,,622", "622,,,622,,622,,622,,622,,,622,,,,,,622,,,,,622,622,622,622,,622,622", "622,622,,,,,622,622,,,,621,621,621,622,621,622,622,622,621,621,622,622", ",621,,621,621,621,621,621,621,621,,,,,,621,621,621,621,621,621,621,", ",621,,,,,,,621,,,621,621,621,621,621,621,621,621,,621,621,621,,621,621", "621,621,621,,,,,,,,,,,,,,,,,,,,621,,,621,,,621,621,,,621,,621,,,,621", ",,,,,,,,621,,,,,621,621,621,621,,621,621,621,621,,,,,621,621,,,,608", "608,608,621,608,621,621,621,608,608,621,621,,608,,608,608,608,608,608", "608,608,,,,,,608,608,608,608,608,608,608,,,608,,,,,,,608,,,608,608,608", "608,608,608,608,608,608,608,608,608,,608,608,608,608,608,,,,,,,,,,,", ",,,,,,,,608,,,608,,,608,608,,,608,,,,,,608,,,608,,,,,,608,,,,,608,608", "608,608,,608,608,608,608,,,,,608,608,,,,605,605,605,608,605,608,608", "608,605,605,608,608,,605,,605,605,605,605,605,605,605,,,,,,605,605,605", "605,605,605,605,,,605,,,,,,,605,,,605,605,605,605,605,605,605,605,605", "605,605,605,,605,605,605,605,605,,,,,,,,,,,,,,,,,,,,605,,,605,,,605", "605,,,605,,605,,,,605,,,605,,,,,,605,,,,,605,605,605,605,,605,605,605", "605,,,,,605,605,,,,,,,605,,605,605,605,455,,605,605,,,,455,455,455,", ",455,455,455,,455,,,,,,,,455,455,455,455,,,,,,,,,455,455,,455,455,455", "455,455,,,,,,,,,,,,,,,,,,,,,,,455,455,455,455,455,455,455,455,455,455", "455,455,455,455,,,455,455,455,,,455,,455,455,,,455,455,,455,,455,,455", ",455,455,,455,455,455,455,455,,455,455,455,,,,,,,,,,,,,,455,,,455,455", ",455,,455,599,599,599,,599,,455,,599,599,,,,599,,599,599,599,599,599", "599,599,,,,,,599,599,599,599,599,599,599,,,599,,,,,,,599,,,599,599,599", "599,599,599,599,599,,599,599,599,,599,599,599,599,599,,,,,,,,,,,,,,", ",,,,,599,,,599,,,599,599,,,599,,,,,,599,,,,,,,,,599,,,,,599,599,599", "599,,599,599,599,599,,,,,599,599,,,,,,,599,,599,599,599,464,,599,599", ",,,464,464,464,,,464,464,464,,464,,,,,,,,464,464,464,464,464,,,,,,,", "464,464,,464,464,464,464,464,,,,,,,,,,,,,,,,,,,,,,,464,464,464,464,464", "464,464,464,464,464,464,464,464,464,,,464,464,464,,,464,,,464,,,464", "464,,464,,464,,464,,464,464,,464,464,464,464,464,,464,464,464,,,,,,", ",,,,,,,464,,,464,464,464,464,,464,465,464,,,,,464,465,465,465,,,465", "465,465,,465,,,,,,,,465,465,465,465,465,,,,,,,,465,465,,465,465,465", "465,465,,,,,,,,,,,,,,,,,,,,,,,465,465,465,465,465,465,465,465,465,465", "465,465,465,465,,,465,465,465,,,465,,,465,,,465,465,,465,,465,,465,", "465,465,,465,465,465,465,465,,465,465,465,,,,,,,,,,,,,,465,,,465,465", "465,465,,465,,465,,585,585,585,465,585,,,,585,585,,,,585,,585,585,585", "585,585,585,585,,,,,,585,585,585,585,585,585,585,,,585,,,,,,,585,,,585", "585,585,585,585,585,585,585,,585,585,585,,585,585,585,585,585,,,,,,", ",,,,,,,,,,,,,585,,,585,,,585,585,,,585,,,,,,585,,,,,,,,,585,,,,,585", "585,585,585,,585,585,585,585,,,,,585,585,,,,559,559,559,585,559,585", "585,585,559,559,585,585,,559,,559,559,559,559,559,559,559,,,,,,559,559", "559,559,559,559,559,,,559,,,,,,,559,,,559,559,559,559,559,559,559,559", ",559,559,559,,559,559,559,559,559,,,,,,,,,,,,,,,,,,,,559,,,559,,,559", "559,,,559,,,,,,559,,,,,,,,,559,,,,,559,559,559,559,,559,559,559,559", ",,,,559,559,,,,558,558,558,559,558,559,559,559,558,558,559,559,,558", ",558,558,558,558,558,558,558,,,,,,558,558,558,558,558,558,558,,,558", ",,,,,,558,,,558,558,558,558,558,558,558,558,,558,558,558,,558,558,558", "558,558,,,,,,,,,,,,,,,,,,,,558,,,558,,,558,558,,,558,,,,,,558,,,,,,", ",,558,,,,,558,558,558,558,,558,558,558,558,,,,,558,558,,,,474,474,474", "558,474,558,558,558,474,474,558,558,,474,,474,474,474,474,474,474,474", ",,,,,474,474,474,474,474,474,474,,,474,,,,,,,474,,,474,474,474,474,474", "474,474,474,474,474,474,474,,474,474,474,474,474,,,,,,,,,,,,,,,,,,,", "474,,,474,,,474,474,,,474,,474,,474,,474,,,474,,,,,,474,,,,,474,474", "474,474,,474,474,474,474,,,,,474,474,,,,555,555,555,474,555,474,474", "474,555,555,474,474,,555,,555,555,555,555,555,555,555,,,,,,555,555,555", "555,555,555,555,,,555,,,,,,,555,,,555,555,555,555,555,555,555,555,,555", "555,555,,555,555,555,555,555,,,,,,,,,,,,,,,,,,,,555,,,555,,,555,555", ",,555,,,,,,555,,,,,,,,,555,,,,,555,555,555,555,,555,555,555,555,,,,", "555,555,,,,476,476,476,555,476,555,555,555,476,476,555,555,,476,,476", "476,476,476,476,476,476,,,,,,476,476,476,476,476,476,476,,,476,,,,,", ",476,,,476,476,476,476,476,476,476,476,,476,476,476,,476,476,476,476", "476,,,,,,,,,,,,,,,,,,,,476,,,476,,,476,476,,,476,,,,,,476,,,,,,,,,476", ",,,,476,476,476,476,,476,476,476,476,,,,,476,476,,,,477,477,477,476", "477,476,476,476,477,477,476,476,,477,,477,477,477,477,477,477,477,,", ",,,477,477,477,477,477,477,477,,,477,,,,,,,477,,,477,477,477,477,477", "477,477,477,,477,477,477,,477,477,477,477,477,,,,,,,,,,,,,,,,,,,,477", ",,477,,,477,477,,,477,,,,,,477,,,,,,,,,477,,,,,477,477,477,477,,477", "477,477,477,,,,,477,477,,,,478,478,478,477,478,477,477,477,478,478,477", "477,,478,,478,478,478,478,478,478,478,,,,,,478,478,478,478,478,478,478", ",,478,,,,,,,478,,,478,478,478,478,478,478,478,478,,478,478,478,,478", "478,478,478,478,,,,,,,,,,,,,,,,,,,,478,,,478,,,478,478,,,478,,,,,,478", ",,,,,,,,478,,,,,478,478,478,478,,478,478,478,478,,,,,478,478,,,,552", "552,552,478,552,478,478,478,552,552,478,478,,552,,552,552,552,552,552", "552,552,,,,,,552,552,552,552,552,552,552,,,552,,,,,,,552,,,552,552,552", "552,552,552,552,552,,552,552,552,,552,552,552,552,552,,,,,,,,,,,,,,", ",,,,,552,,,552,,,552,552,,,552,,,,,,552,,,,,,,,,552,,,,,552,552,552", "552,,552,552,552,552,,,,,552,552,,,,542,542,542,552,542,552,552,552", "542,542,552,552,,542,,542,542,542,542,542,542,542,,,,,,542,542,542,542", "542,542,542,,,542,,,,,,,542,,,542,542,542,542,542,542,542,542,542,542", "542,542,,542,542,542,542,542,,,,,,,,,,,,,,,,,,,,542,,,542,,,542,542", ",,542,,542,,542,,542,,,542,,,,,,542,,,,,542,542,542,542,,542,542,542", "542,,,,,542,542,,,,,,,542,,542,542,542,,,542,542,532,532,532,532,532", ",,,532,532,,,,532,,532,532,532,532,532,532,532,,,,,,532,532,532,532", "532,532,532,,,532,,,,,,532,532,532,532,532,532,532,532,532,532,532,532", ",532,532,532,,532,532,532,532,532,,,,,,,,,,,,,,,,,,,,532,,,532,,,532", "532,,,532,,532,,,,532,,,,,,,,,532,,,,,532,532,532,532,,532,532,532,532", ",,,,532,532,,,,,,532,532,,532,532,532,,,532,532,526,526,526,,526,,,", "526,526,,,,526,,526,526,526,526,526,526,526,,,,,,526,526,526,526,526", "526,526,,,526,,,,,,,526,,,526,526,526,526,526,526,526,526,,526,526,526", ",526,526,526,526,526,,,,,,,,,,,,,,,,,,,,526,,,526,,,526,526,,,526,,", ",,,526,,,,,,,,,526,,,,,526,526,526,526,,526,526,526,526,,,,,526,526", ",,,524,524,524,526,524,526,526,526,524,524,526,526,,524,,524,524,524", "524,524,524,524,,,,,,524,524,524,524,524,524,524,,,524,,,,,,,524,,,524", "524,524,524,524,524,524,524,524,524,524,524,,524,524,524,524,524,,,", ",,,,,,,,,,,,,,,,524,,,524,,,524,524,,,524,,,,524,,524,,,524,,,,,,524", ",,,,524,524,524,524,,524,524,524,524,,,,,524,524,,,,522,522,522,524", "522,524,524,524,522,522,524,524,,522,,522,522,522,522,522,522,522,,", ",,,522,522,522,522,522,522,522,,,522,,,,,,,522,,,522,522,522,522,522", "522,522,522,522,522,522,522,,522,522,522,522,522,,,,,,,,,,,,,,,,,,,", "522,,,522,,,522,522,,,522,,522,,522,,522,,,522,,,,,,522,,,,,522,522", "522,522,,522,522,522,522,,,,,522,522,,,,216,216,216,522,216,522,522", "522,216,216,522,522,,216,,216,216,216,216,216,216,216,,,,,,216,216,216", "216,216,216,216,,,216,,,,,,,216,,,216,216,216,216,216,216,216,216,,216", "216,216,,216,216,216,216,216,,,,,,,,,,,,,,,,,,,,216,,,216,,,216,216", ",,216,,216,,,,216,,,,,,,,,216,,,,,216,216,216,216,,216,216,216,216,", ",,,216,216,,,,217,217,217,216,217,216,216,216,217,217,216,216,,217,", "217,217,217,217,217,217,217,,,,,,217,217,217,217,217,217,217,,,217,", ",,,,,217,,,217,217,217,217,217,217,217,217,,217,217,217,,217,217,217", "217,217,,,,,,,,,,,,,,,,,,,,217,,,217,,,217,217,,,217,,217,,,,217,,,", ",,,,,217,,,,,217,217,217,217,,217,217,217,217,,,,,217,217,,,,218,218", "218,217,218,217,217,217,218,218,217,217,,218,,218,218,218,218,218,218", "218,,,,,,218,218,218,218,218,218,218,,,218,,,,,,,218,,,218,218,218,218", "218,218,218,218,,218,218,218,,218,218,218,218,218,,,,,,,,,,,,,,,,,,", ",218,,,218,,,218,218,,,218,,,,,,218,,,,,,,,,218,,,,,218,218,218,218", ",218,218,218,218,,,,,218,218,,,,219,219,219,218,219,218,218,218,219", "219,218,218,,219,,219,219,219,219,219,219,219,,,,,,219,219,219,219,219", "219,219,,,219,,,,,,,219,,,219,219,219,219,219,219,219,219,,219,219,219", ",219,219,219,219,219,,,,,,,,,,,,,,,,,,,,219,,,219,,,219,219,,,219,,", ",,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,,,,,219,219", ",,,220,220,220,219,220,219,219,219,220,220,219,219,,220,,220,220,220", "220,220,220,220,,,,,,220,220,220,220,220,220,220,,,220,,,,,,,220,,,220", "220,220,220,220,220,220,220,,220,220,220,,220,220,220,220,220,,,,,,", ",,,,,,,,,,,,,220,,,220,,,220,220,,,220,,,,,,220,,,,,,,,,220,,,,,220", "220,220,220,,220,220,220,220,,,,,220,220,,,,221,221,221,220,221,220", "220,220,221,221,220,220,,221,,221,221,221,221,221,221,221,,,,,,221,221", "221,221,221,221,221,,,221,,,,,,,221,,,221,221,221,221,221,221,221,221", "221,221,221,221,,221,221,221,221,221,,,,,,,,,,,,,,,,,,,,221,,,221,,", "221,221,,,221,,221,,221,,221,,,221,,,,,,221,,,,,221,221,221,221,,221", "221,221,221,,,,,221,221,,,,226,226,226,221,226,221,221,221,226,226,221", "221,,226,,226,226,226,226,226,226,226,,,,,,226,226,226,226,226,226,226", ",,226,,,,,,,226,,,226,226,226,226,226,226,226,226,,226,226,226,,226", "226,226,226,226,,,,,,,,,,,,,,,,,,,,226,,,226,,,226,226,,,226,,,,,,226", ",,,,,,,,226,,,,,226,226,226,226,,226,226,226,226,,,,,226,226,,,,227", "227,227,226,227,226,226,226,227,227,226,226,,227,,227,227,227,227,227", "227,227,,,,,,227,227,227,227,227,227,227,,,227,,,,,,,227,,,227,227,227", "227,227,227,227,227,,227,227,227,,227,227,227,227,227,,,,,,,,,,,,,,", ",,,,,227,,,227,,,227,227,,,227,,,,,,227,,,,,,,,,227,,,,,227,227,227", "227,,227,227,227,227,,,,,227,227,,,,1020,1020,1020,227,1020,227,227", "227,1020,1020,227,227,,1020,,1020,1020,1020,1020,1020,1020,1020,,,,", ",1020,1020,1020,1020,1020,1020,1020,,,1020,,,,,,,1020,,,1020,1020,1020", "1020,1020,1020,1020,1020,,1020,1020,1020,,1020,1020,,,1020,,,,,,,,,", ",,,,,,,,,,1020,,,1020,,,1020,1020,,,1020,,,,,,,,,,,,,,,,,,,,1020,1020", "1020,1020,,1020,1020,1020,1020,,,,,1020,1020,,,,76,76,76,1020,76,1020", "1020,1020,76,76,,,,76,,76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76", ",,76,,,,,,,76,,,76,76,76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,", ",,,,,,,,,,,,,76,,,76,,,76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,", "76,76,76,76,,,,,76,76,,,,745,745,745,76,745,76,76,76,745,745,,,,745", ",745,745,745,745,745,745,745,,,,,,745,745,745,745,745,745,745,,,745", ",,,,,,745,,,745,745,745,745,745,745,745,745,,745,745,745,,745,745,,", "745,,,,,,,,,,,,,,,,,,,,745,,,745,,,745,745,,,745,,,,,,,,,,,,,,,,,,,", "745,745,745,745,,745,745,745,745,,,,,745,745,,,,756,756,756,745,756", "745,745,745,756,756,,,,756,,756,756,756,756,756,756,756,,,,,,756,756", "756,756,756,756,756,,,756,,,,,,,756,,,756,756,756,756,756,756,756,756", ",756,756,756,,756,756,,,756,,,,,,,,,,,,,,,,,,,,756,,,756,,,756,756,", ",756,,,,,,,,,,,,,,,,,,,,756,756,756,756,,756,756,756,756,,,,,756,756", ",,,347,347,347,756,347,756,756,756,347,347,,,,347,,347,347,347,347,347", "347,347,,,,,,347,347,347,347,347,347,347,,,347,,,,,,,347,,,347,347,347", "347,347,347,347,347,,347,347,347,,347,347,,,347,,,,,,,,,,,,,,,,,,,,347", ",,347,,,347,347,,,347,,,,,,,,,,,,,,,,,,,,347,347,347,347,,347,347,347", "347,,,,,347,347,,,,37,37,37,347,37,347,347,347,37,37,,,,37,,37,37,37", "37,37,37,37,,,,,,37,37,37,37,37,37,37,,,37,,,,,,,37,,,37,37,37,37,37", "37,37,37,,37,37,37,,37,37,,,37,,,,,,,,,,,,,,,,,,,,37,,,37,,,37,37,,", "37,,37,,,,,,,,,,,,,,,,,,37,37,37,37,,37,37,37,37,,,,,37,37,,,,549,549", "549,37,549,37,37,37,549,549,,,,549,,549,549,549,549,549,549,549,,,,", ",549,549,549,549,549,549,549,,,549,,,,,,,549,,,549,549,549,549,549,549", "549,549,,549,549,549,,549,549,,,549,,,,,,,,,,,,,,,,,,,,549,,,549,,,549", "549,,,549,,,,,,,,,,,,,,,,,,,,549,549,549,549,,549,549,549,549,,,,,549", "549,,,,1100,1100,1100,549,1100,549,549,549,1100,1100,,,,1100,,1100,1100", "1100,1100,1100,1100,1100,,,,,,1100,1100,1100,1100,1100,1100,1100,,,1100", ",,,,,,1100,,,1100,1100,1100,1100,1100,1100,1100,1100,,1100,1100,1100", ",1100,1100,,,1100,,,,,,,,,,,,,,,,,,,,1100,,,1100,,,1100,1100,,,1100", ",,,,,,,,,,,,,,,,,,,1100,1100,1100,1100,,1100,1100,1100,1100,,,,,1100", "1100,,,,77,77,77,1100,77,1100,1100,1100,77,77,,,,77,,77,77,77,77,77", "77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,77", "77,,77,77,77,,77,77,,,77,,,,,,,,,,,,,,,,,77,,,77,,,77,,,77,77,,,77,", ",,,,,,,,,,,,,,,,,,77,77,77,77,,77,77,77,77,,,,,77,77,,,,540,540,540", "77,540,77,77,77,540,540,,,,540,,540,540,540,540,540,540,540,,,,,,540", "540,540,540,540,540,540,,,540,,,,,,,540,,,540,540,540,540,540,540,540", "540,,540,540,540,,540,540,,,540,,,,,,,,,,,,,,,,,,,,540,,,540,,,540,540", ",,540,,,,,,,,,,,,,,,,,,,,540,540,540,540,,540,540,540,540,,,,,540,540", ",,,78,78,78,540,78,540,540,540,78,78,,,,78,,78,78,78,78,78,78,78,,,", ",,78,78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78", "78,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,", ",,,,,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,38,38,38,78,38,78,78,78", "38,38,,,,38,,38,38,38,38,38,38,38,,,,,,38,38,38,38,38,38,38,,,38,,,", ",,,38,,,38,38,38,38,38,38,38,38,,38,38,38,,38,38,,,38,,,,,,,,,,,,,,", ",,,,,38,,,38,,,38,38,,,38,,,774,,774,774,774,774,774,,,,,,,,,774,,38", "38,38,38,,38,38,38,38,,,,,38,38,,,,38,,774,38,,38,38,38,328,328,328", ",328,774,774,,328,328,774,,,328,,328,328,328,328,328,328,328,,,,,,328", "328,328,328,328,328,328,,,328,,,,,,,328,,,328,328,328,328,328,328,328", "328,,328,328,328,,328,328,,,328,,,,,,,,,,,,,,,,,,,,328,,,328,,,328,328", ",,328,,,1040,,1040,1040,1040,1040,1040,,,,,,,,,1040,,328,328,328,328", ",328,328,328,328,,,,,328,328,,,,328,,1040,328,,328,328,328,1030,1030", "1030,,1030,1040,1040,,1030,1030,1040,,,1030,,1030,1030,1030,1030,1030", "1030,1030,,,,,,1030,1030,1030,1030,1030,1030,1030,,,1030,,,,,,,1030", ",,1030,1030,1030,1030,1030,1030,1030,1030,,1030,1030,1030,,1030,1030", ",,1030,,,,,,,,,,,,,,,,,,,,1030,,,1030,,,1030,1030,,,1030,,,,,,,,,,,", ",,,,,,,,1030,1030,1030,1030,,1030,1030,1030,1030,,,,,1030,1030,,,,,", ",1030,,1030,1030,1030,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11", "11,11,11,11,11,11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11", "11,11,11,11,11,11,11,,,11,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11", ",,,11,11,11,11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11", "11,,,11,11,,,,,,,,,,,,,,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10", "10,10,10,10,10,10,10,10,10,10,,,,10,10,10,10,10,10,10,10,10,10,,,,,", "10,10,10,10,10,10,10,10,10,10,,10,,,,,,,,10,10,,10,10,10,10,10,10,10", ",,10,10,,,,10,10,10,10,,,,,,,,,,,,,,10,10,,10,10,10,10,10,10,10,10,10", "10,10,10,,,10,10,,,,,,,,,,,,,,10,661,661,661,661,661,661,661,661,661", "661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,,,,661,661", "661,661,661,661,661,661,661,661,,,,,,661,661,661,661,661,661,661,661", "661,,,661,,,,,,,,661,661,,661,661,661,661,661,661,661,,,661,661,,,,661", "661,661,661,,,,,,,,,,,,,,661,661,,661,661,661,661,661,661,661,661,661", "661,661,661,,,661,661,,,,,,,,,,,,,,661,422,422,422,422,422,422,422,422", "422,422,422,422,422,422,422,422,422,422,422,422,422,422,422,422,,,,422", "422,422,422,422,422,422,422,422,422,,,,,,422,422,422,422,422,422,422", "422,422,,,422,,,,,,,,422,422,,422,422,422,422,422,422,422,,,422,422", ",,,422,422,422,422,,,,,,,,,,,,,,422,422,,422,422,422,422,422,422,422", "422,422,422,422,422,,,422,422,,,,,,,,,,,,,,422,24,24,24,24,24,24,24", "24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,,,,24,24,24,24,24", "24,24,24,24,24,,,,,,24,24,24,24,24,24,24,24,24,24,24,24,,24,,,,,,24", "24,,24,24,24,24,24,24,24,,,24,24,,,,24,24,24,24,,,,,,24,,,,,,,,24,24", ",24,24,24,24,24,24,24,24,24,24,24,24,,,24,998,998,998,998,,,,,,,,,,", ",,998,998,998,998,,,364,998,364,364,364,364,364,998,998,,,998,,,,364", ",,,,,,,,,,,,,,,998,,,998,,,364,998,,,998,,,,,364,364,364,364,,,,364", ",,,998,,,,998,998,998,998,,998,998,998,998,,,,,998,998,1081,1081,1081", "1081,,,998,,998,998,998,,,998,998,,1081,1081,1081,1081,,,790,1081,790", "790,790,790,790,1081,1081,,,1081,,,,790,,,,,,,,,,,,,,,,1081,,,1081,", ",790,1081,,,1081,,,,,790,790,790,790,,,,790,,,,1081,,,,1081,1081,1081", "1081,,1081,1081,1081,1081,,,,,1081,1081,982,982,982,982,,,1081,,1081", "1081,1081,,,1081,1081,,982,982,982,982,,,1209,982,1209,1209,1209,1209", "1209,982,982,,,982,,,,1209,,,,,,,,,,,,,,,,982,,,982,,,1209,982,,,982", ",,,,,,1209,1209,,,,1209,,,,982,,,,982,982,982,982,,982,982,982,982,", ",,,982,982,1135,1135,1135,1135,,,982,,982,982,982,,,982,982,,1135,1135", "1135,1135,,,772,1135,772,772,772,772,772,1135,1135,,,1135,,,,772,,,", ",,,,,,,,,,,,1135,,,1135,,,772,1135,,,1135,,,,,772,772,772,772,,,,772", ",,,1135,,,,1135,1135,1135,1135,,1135,1135,1135,1135,,,,,1135,1135,1197", "1197,1197,1197,,,1135,,1135,1135,1135,,,1135,1135,,1197,1197,1197,1197", ",,1038,1197,1038,1038,1038,1038,1038,1197,1197,,,1197,,,,1038,,,,,,", ",,,,,,,,,1197,,,1197,,,1038,1197,,,1197,,,,,,,1038,1038,,,,1038,,,,1197", ",,,1197,1197,1197,1197,,1197,1197,1197,1197,,,,,1197,1197,1137,1137", "1137,1137,,,1197,,1197,1197,1197,,,1197,1197,,1137,1137,1137,1137,,", "1035,1137,1035,1035,1035,1035,1035,1137,1137,,,1137,,,,1035,,,,,,,,", ",,,,,,,1137,,,1137,,,1035,1137,,,1137,,1137,,,,,1035,1035,,,,1035,,", ",1137,,,,1137,1137,1137,1137,,1137,1137,1137,1137,,,,,1137,1137,1173", "1173,1173,1173,,,1137,,1137,1137,1137,,,1137,1137,,1173,1173,1173,1173", ",,1156,1173,1156,1156,1156,1156,1156,1173,1173,,,1173,,,,1156,,,,,,", ",,,,,,,,,1173,,,1173,,,1156,1173,,,1173,,,,,,,1156,1156,,,,1156,,,,1173", ",,,1173,1173,1173,1173,,1173,1173,1173,1173,,,,,1173,1173,,,,,,,1173", ",1173,1173,1173,,,1173,1173,722,722,722,722,722,722,722,722,722,722", "722,722,722,722,722,722,722,722,722,722,722,722,722,722,,,,722,722,722", "722,722,722,722,722,722,722,,,,,,722,722,722,722,722,722,722,722,722", ",,722,,,,,,,,722,722,,722,722,722,722,722,722,722,,,722,722,,,,722,722", "722,722,,,,,,,,,,,,,,722,722,,722,722,722,722,722,722,722,722,722,722", "722,722,,,722,950,950,950,950,,,1096,,1096,1096,1096,1096,1096,,,,950", "950,950,950,,1096,,950,950,,,,,950,950,,,950,950,,,,,,,,,1096,,,,,,", ",,,950,1096,1096,950,,,1096,950,,,950,,950,,,,,,,950,,,,,,,950,,,,950", "950,950,950,,950,950,950,950,,,,,950,950,698,698,698,698,,,950,,950", "950,950,,,950,950,,698,698,698,698,,,1033,698,1033,1033,1033,1033,1033", "698,698,,,698,,,,1033,,,,,,,,,,,,,,,,698,,,698,,,1033,698,,,698,,698", ",,1033,1033,1033,1033,,,,1033,,,,698,,,,698,698,698,698,,698,698,698", "698,,,,,698,698,698,886,886,886,886,,698,,698,698,698,,,698,698,,,886", "886,886,886,,,1091,886,1091,1091,1091,1091,1091,886,886,,,886,,,,1091", ",,,,,,,,,,,,,,,886,,,886,,,1091,886,,,886,,,,,1091,1091,1091,1091,,", ",1091,,,,886,,,,886,886,886,886,,886,886,886,886,,,,,886,886,479,479", "479,479,,,886,,886,886,886,,,886,886,,479,479,479,479,,,1094,479,1094", "1094,1094,1094,1094,479,479,,,479,,,,1094,,,,,,,,,,,,,,,,479,,,479,", ",1094,479,,,479,,,,,1094,1094,1094,1094,,,,1094,,,,479,,,,479,479,479", "479,,479,479,479,479,,,,,479,479,878,878,878,878,,,479,,479,479,479", ",,479,479,,878,878,878,878,,,1183,878,1183,1183,1183,1183,1183,878,878", ",,878,,,,1183,,,,,,,,,,,,,,,,878,,,878,,,1183,878,,,878,,878,,,,,1183", "1183,,,,1183,,,,878,,,,878,878,878,878,,878,878,878,878,,,,,878,878", "872,872,872,872,,,878,,878,878,878,,,878,878,,872,872,872,872,,,,872", "872,,,,,872,872,,,872,872,,,,,,,,,,,,,,,,,,,872,,,872,,,,872,,,872,", "872,,,,,,,872,,,,,,,872,,,,872,872,872,872,,872,872,872,872,,,,,872", "872,871,871,871,871,,,872,,872,872,872,,,872,872,,871,871,871,871,,", ",871,871,,,,,871,871,,,871,871,,,,,,,,,,,,,,,,,,,871,,,871,,,,871,,", "871,,871,,,,,,,871,,,,,,,871,,,,871,871,871,871,,871,871,871,871,,,", ",871,871,868,868,868,868,,,871,,871,871,871,,,871,871,,868,868,868,868", ",,1181,868,1181,1181,1181,1181,1181,868,868,,,868,,,,1181,,,,,,,,,,", ",,,,,868,,,868,,,1181,868,,,868,,,,,,,1181,1181,,,,1181,,,,868,,,,868", "868,868,868,,868,868,868,868,,,,,868,868,480,480,480,480,,,868,,868", "868,868,,,868,868,,480,480,480,480,,,1179,480,1179,1179,1179,1179,1179", "480,480,,,480,,,,1179,,,,,,,,,,,,,,,,480,,,480,,,1179,480,,,480,,,,", ",,1179,1179,,,,1179,,,,480,,,,480,480,480,480,,480,480,480,480,,,,,480", "480,1121,1121,1121,1121,,,480,,480,480,480,,,480,480,,1121,1121,1121", "1121,,,,1121,,,,,,1121,1121,,,1121,,,,,,,,705,705,705,705,,,,,,,,,1121", ",,1121,705,705,705,1121,,,1121,,1121,,,,,705,705,,,705,,,,,1121,,,,1121", "1121,1121,1121,,1121,1121,1121,1121,,,,,1121,1121,,,,,,,1121,,1121,1121", "1121,,,1121,1121,404,,404,404,404,404,404,,,,,705,705,705,705,404,705", "705,705,705,,,,,705,705,888,888,888,888,,,705,,705,705,705,404,404,", ",,888,888,888,,404,404,404,404,,,,404,,888,888,,,888,887,887,887,887", ",,,,,,,,,,,,887,887,887,,,,,,,,,,,887,887,,,887,,,,,,,,,,,,,,,,888,888", "888,888,,888,888,888,888,,,,,888,888,,,,,,,888,,888,888,888,,,,,,,,", "887,887,887,887,,887,887,887,887,,,,,887,887,668,668,,,668,,887,,887", "887,887,,668,668,,668,668,668,668,668,668,668,,,668,668,,,,668,668,668", "668,,,,,,668,,,,,,,,668,668,,668,668,668,668,668,668,668,668,668,668", "668,668,623,623,668,,623,,,,,,,,623,623,,623,623,623,623,623,623,623", ",,623,623,,,,623,623,623,623,,,,,,623,,,,,,,,623,623,,623,623,623,623", "623,623,623,623,623,623,623,623,222,222,623,,222,,,,,,,,222,222,,222", "222,222,222,222,222,222,,,222,222,,,,222,222,222,222,,,,,,222,,,,,,", ",222,222,,222,222,222,222,222,222,222,222,222,222,222,222,223,223,222", ",223,,,,,,,,223,223,,223,223,223,223,223,223,223,,,223,223,,,,223,223", "223,223,,,,,,223,,,,,,,,223,223,,223,223,223,223,223,223,223,223,223", "223,223,223,624,624,223,,624,,,,,,,,624,624,,624,624,624,624,624,624", "624,,,624,624,,,,624,624,624,624,,,,,,624,,,,,,,,624,624,,624,624,624", "624,624,624,624,624,624,624,624,624,544,544,624,,544,,,,,,,,544,544", ",544,544,544,544,544,544,544,,,544,544,,,,544,544,544,544,,,,,,544,", ",,,,,,544,544,,544,544,544,544,544,544,544,544,544,544,544,544,472,472", "544,,472,,,,,,,,472,472,,472,472,472,472,472,472,472,,,472,472,,,,472", "472,472,472,,,,,,472,,,,,,,,472,472,,472,472,472,472,472,472,472,472", "472,472,472,472,1149,1149,472,,1149,,,,,,,,1149,1149,,1149,1149,1149", "1149,1149,1149,1149,,,1149,1149,,,,1149,1149,1149,1149,,,,,,1149,,,", ",,,,1149,1149,,1149,1149,1149,1149,1149,1149,1149,1149,1149,1149,1149", "1149,630,630,1149,,630,,,,,,,,630,630,,630,630,630,630,630,630,630,", ",630,630,,,,630,630,630,630,,,,,,630,,,,,,,,630,630,,630,630,630,630", "630,630,630,630,630,630,630,630,553,553,630,,553,,,,,,,,553,553,,553", "553,553,553,553,553,553,,,553,553,,,,553,553,553,553,,,,,,553,,,,,,", ",553,553,,553,553,553,553,553,553,553,553,553,553,553,553,554,554,553", ",554,,,,,,,,554,554,,554,554,554,554,554,554,554,,,554,554,,,,554,554", "554,554,,,,,,554,,,,,,,,554,554,,554,554,554,554,554,554,554,554,554", "554,554,554,543,543,554,,543,,,,,,,,543,543,,543,543,543,543,543,543", "543,,,543,543,,,,543,543,543,543,,,,,,543,,,,,,,,543,543,,543,543,543", "543,543,543,543,543,543,543,543,543,631,631,543,,631,,,,,,,,631,631", ",631,631,631,631,631,631,631,,,631,631,,,,631,631,631,631,,,,,,631,", ",,,,,,631,631,,631,631,631,631,631,631,631,631,631,631,631,631,1153", "1153,631,,1153,,,,,,,,1153,1153,,1153,1153,1153,1153,1153,1153,1153", ",,1153,1153,,,,1153,1153,1153,1153,,,,,,1153,,,,,,,,1153,1153,,1153", "1153,1153,1153,1153,1153,1153,1153,1153,1153,1153,1153,473,473,1153", ",473,,,,,,,,473,473,,473,473,473,473,473,473,473,,,473,473,,,,473,473", "473,473,,,,,,473,,,,,,,,473,473,,473,473,473,473,473,473,473,473,473", "473,473,473,1154,1154,473,,1154,,,,,,,,1154,1154,,1154,1154,1154,1154", "1154,1154,1154,,,1154,1154,,,,1154,1154,1154,1154,,,,,,1154,,,,,,,,1154", "1154,,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,669", "669,1154,,669,,,,,,,,669,669,,669,669,669,669,669,669,669,,,669,669", ",,,669,669,669,669,,,,,,669,,,,,,,,669,669,,669,669,669,669,669,669", "669,669,669,669,669,669,,638,669,638,638,638,638,638,,1177,,1177,1177", "1177,1177,1177,638,,,,,,,,1177,,,,,,,,,,,,,,638,,,,,,,,1177,638,638", "638,638,,,,638,1177,1177,1177,1177,,,,1177"]; + racc_action_check = (arr = $$$('::', 'Array').$new(28007, nil)); + idx = 0; + $send(clist, 'each', [], ($Ruby30$6 = function(str){var self = $Ruby30$6.$$s == null ? this : $Ruby30$6.$$s, $$7; + + + + if (str == null) { + str = nil; + }; + return $send(str.$split(",", -1), 'each', [], ($$7 = function(i){var self = $$7.$$s == null ? this : $$7.$$s, $writer = nil; + + + + if (i == null) { + i = nil; + }; + if ($truthy(i['$empty?']())) { + } else { - self.act = 143;;}};}; - if ($truthy($rb_le(_goto_level, _again))) { + $writer = [idx, i.$to_i()]; + $send(arr, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return (idx = $rb_plus(idx, 1));}, $$7.$$s = self, $$7.$$arity = 1, $$7));}, $Ruby30$6.$$s = self, $Ruby30$6.$$arity = 1, $Ruby30$6)); + racc_action_pointer = [nil, 1349, 3855, 739, nil, 401, nil, 5413, 1392, 558, 24440, 24312, 556, nil, 509, 438, 592, 429, 800, 605, nil, -69, 5675, 1263, 24824, 307, nil, 803, nil, 254, 5947, 6057, 6191, 6322, 6453, nil, 2703, 23109, 23895, nil, 175, 466, 569, 146, 6715, 6846, -44, 6977, 7108, 975, 7239, 45, 185, 323, 1112, nil, nil, nil, nil, nil, nil, nil, nil, nil, 7380, nil, 7521, 7652, 7783, 199, nil, 7914, 8045, nil, nil, 8176, 22585, 23502, 23764, nil, nil, nil, nil, nil, nil, 529, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 830, nil, nil, 110, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 8319, nil, nil, nil, nil, 8462, 8593, 8724, 5138, 8998, nil, 2847, nil, -1, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1400, nil, 1983, 21406, 21537, 21668, 21799, 21930, 22061, 26978, 27039, nil, nil, 22192, 22323, 9129, nil, nil, 1135, 443, 389, 1466, 119, 1349, 1407, nil, 9260, 5007, 1374, nil, nil, 9391, 9522, 9653, 9784, 9915, 10046, 10177, 10308, 10439, 10570, 10701, 10832, 10963, 11094, 11225, 11356, 11487, 11618, 11749, 11880, 12011, 12142, nil, nil, nil, nil, 12273, nil, nil, 768, 698, 670, 669, 658, 556, 523, 417, 306, -62, nil, nil, nil, 13059, nil, nil, 5279, nil, nil, 1260, 13321, 13452, nil, nil, nil, nil, nil, nil, nil, 13583, nil, 2271, nil, 1207, 1190, nil, 13845, 1232, 13976, nil, nil, 14107, 14238, nil, nil, 72, nil, 14381, 960, 1178, 1144, 3423, 1158, 1186, 1142, 24034, 2991, 228, 300, 409, 1216, 802, nil, 1172, 1126, 275, 1160, 1156, nil, nil, nil, 1149, 255, 1099, 22978, nil, 327, 968, 3999, 3855, 1165, nil, 1160, 15429, nil, 15560, 1068, 4431, 1057, nil, 607, 24910, 1055, 4143, 3999, 738, 1067, nil, 748, 730, 1081, 1049, 492, 1071, nil, 772, 179, 35, 16215, 3135, 2559, 400, 1127, 993, 57, 40, 692, 1050, -18, 1078, nil, nil, 966, 479, 372, nil, 1108, nil, 980, 16608, nil, 26698, nil, 395, 398, 641, 506, 401, -32, -34, 606, nil, nil, nil, nil, nil, nil, nil, 966, 24696, nil, nil, nil, nil, 961, nil, 1030, 931, 18204, 929, nil, nil, 911, nil, 889, 15, 1011, nil, nil, 1407, nil, nil, nil, nil, nil, 1695, 858, nil, 854, 841, 526, 511, 19000, nil, nil, nil, 720, 610, 865, nil, nil, 19275, 19411, nil, nil, nil, 212, nil, 837, 27222, 27710, 19941, 345, 20203, 20334, 20465, 26016, 26506, 4431, 4719, 1014, 853, 783, 782, 775, 770, 5138, 5413, 5230, 4863, 3711, 4575, 3567, 3279, 3423, 3110, 3019, 3135, 4143, 1983, 5007, nil, 231, nil, 5279, nil, nil, nil, nil, 8855, 654, 668, 689, nil, nil, nil, 694, nil, nil, 21275, nil, 21144, nil, 21013, nil, 392, nil, nil, nil, 20870, 907, nil, 729, 731, nil, nil, 735, 23633, 744, 20727, 27527, 27161, 798, 787, nil, nil, 23240, 750, nil, 20596, 27405, 27466, 20072, 4287, 2559, 19810, 19679, 878, 879, nil, nil, 759, 757, 762, 761, 778, nil, 782, 788, nil, nil, nil, nil, nil, nil, nil, nil, nil, 777, 961, nil, nil, 19548, nil, nil, nil, 232, nil, nil, nil, 878, nil, nil, 880, 219, 820, 19134, 949, 960, 840, 881, nil, 18859, nil, nil, 18728, nil, nil, nil, 1551, 972, nil, 1695, -14, 980, 1002, 38, 1035, 18597, 18466, 26917, 27100, 7, nil, nil, 958, nil, 27344, 27588, 18335, nil, nil, 189, 2415, nil, 27894, nil, nil, nil, nil, 1362, nil, nil, nil, 946, nil, nil, 322, nil, 357, nil, nil, 935, nil, 937, nil, nil, nil, 24568, nil, 18073, 944, 17930, 17799, 17668, 26856, 27832, 17537, 17394, 442, 987, 17263, 17132, 17001, 16870, 990, nil, nil, 16739, 16477, 992, nil, nil, nil, 251, -56, 332, 471, 959, 1007, nil, 992, nil, nil, 416, 25819, -84, nil, 646, nil, nil, 7380, 26645, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 1056, 534, nil, 1039, 995, 25638, nil, 1122, nil, 1105, 173, nil, nil, 16346, nil, 1031, 1036, 1137, nil, 1022, nil, 1069, 16084, nil, nil, 15953, nil, 247, 22716, 1027, nil, 1031, 105, 343, 1099, 246, 875, 1101, 1058, 22847, nil, 1127, -26, 1839, 1184, 15822, nil, nil, 717, nil, nil, 1296, nil, nil, 649, 25204, nil, 23942, nil, 15691, nil, 3006, nil, 1073, 1075, 1170, 1079, nil, nil, nil, nil, nil, nil, 25008, 1551, nil, nil, nil, nil, 702, 240, nil, 1201, nil, nil, nil, nil, nil, 1208, 1209, nil, nil, 26, 1100, 39, 31, -1, 8, 975, 1110, 964, nil, 1103, 1119, 15298, nil, 1237, -23, 1121, nil, nil, nil, nil, nil, 1263, nil, nil, nil, nil, nil, nil, nil, nil, 1127, 15167, 1140, 252, -85, 220, 0, nil, 2127, 15036, nil, 1139, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 14905, 14774, 14643, 14512, 417, 1228, 26408, 121, 152, 26310, 26212, 441, -68, 1169, 1170, nil, 26114, nil, 1169, 1171, 1254, 1187, nil, 1193, 25918, 26777, 26743, nil, nil, nil, nil, nil, 13714, nil, nil, 1234, nil, nil, 1231, 1217, nil, nil, 539, 3567, nil, nil, nil, nil, 1220, 291, nil, nil, 13190, 1349, nil, 4287, 1226, 1280, nil, nil, 1245, nil, 1243, 1244, nil, 1249, nil, 1336, nil, 1255, 1256, nil, 1257, nil, nil, 1263, 2977, 3016, nil, nil, 12928, nil, 1388, nil, 12797, 1389, nil, nil, 25721, 12666, 4719, 10, 1395, nil, 1396, 451, 4863, nil, nil, nil, nil, 1279, 1333, 1316, 1311, 113, nil, nil, 12535, 12404, nil, nil, nil, nil, 1316, 1317, 1318, 1316, nil, nil, 25103, nil, nil, 2, nil, nil, 1337, 1354, 1357, nil, nil, nil, 1401, 1358, -48, nil, 24907, nil, 1366, nil, nil, -31, nil, nil, 2703, 1407, nil, nil, 1364, 1367, nil, 1368, 1370, 1373, nil, 1402, 1389, 1375, 22454, nil, nil, nil, 2847, nil, 1839, nil, nil, 36, 24173, nil, nil, 25822, nil, 25400, nil, nil, 25302, nil, 24081, nil, nil, nil, nil, 1393, 1398, 2415, nil, -10, nil, 136, 575, -83, nil, nil, nil, nil, 216, nil, nil, nil, 1523, 2127, 2271, 2113, nil, nil, nil, nil, nil, 1043, 1447, 325, nil, nil, nil, nil, nil, nil, 1404, 25005, 1406, nil, nil, 329, nil, nil, 1584, nil, nil, 25921, nil, nil, 26019, nil, 25708, nil, nil, -82, 23371, 1102, -22, nil, 4575, 32, 9, 991, 167, 79, nil, 106, 136, 151, 168, 3215, 3045, 3279, nil, 6584, 5806, 26604, nil, nil, nil, nil, 239, 354, 542, nil, nil, nil, nil, nil, nil, 25201, 245, 25397, 253, nil, nil, 255, 287, 296, 324, nil, 356, nil, 841, 27283, nil, 499, 5544, 27649, 27771, 33, 25498, nil, nil, nil, nil, 399, 628, 3711, nil, nil, nil, 427, nil, nil, nil, 1969, 437, 25495, nil, nil, nil, 27902, nil, 26509, nil, 26411, nil, 26117, nil, nil, 520, 531, nil, 518, 145, 146, 142, 39, 541, nil, 35, 25299, nil, 557, 566, 576, 593, 143, nil, nil, nil, nil, 625, 25106, nil, nil, nil, nil, 631, nil]; + racc_action_default = [-1, -726, -4, -726, -2, -711, -5, -726, -8, -726, -726, -726, -726, -31, -726, -726, -36, -726, -726, -305, -48, -713, -726, -57, -726, -65, -66, -67, -71, -282, -282, -282, -318, -345, -346, -83, -13, -87, -95, -97, -726, -608, -609, -726, -726, -726, -726, -726, -726, -235, -726, -713, -623, -623, -253, -296, -297, -298, -299, -300, -301, -302, -303, -304, -699, -307, -311, -725, -689, -326, -328, -726, -726, -59, -59, -711, -726, -726, -726, -347, -348, -350, -407, -548, -549, -550, -551, -572, -554, -555, -574, -576, -559, -564, -568, -570, -586, -587, -588, -572, -590, -592, -593, -594, -595, -697, -597, -598, -698, -600, -601, -602, -603, -604, -605, -606, -607, -612, -613, 1216, -3, -712, -721, -722, -723, -7, -726, -726, -726, -726, -726, -9, -4, -19, -726, -126, -127, -128, -129, -130, -131, -132, -136, -137, -138, -139, -140, -141, -142, -143, -144, -145, -146, -147, -148, -149, -150, -151, -152, -153, -154, -155, -156, -157, -158, -159, -160, -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, -175, -176, -177, -178, -179, -180, -181, -182, -183, -184, -185, -186, -187, -188, -189, -190, -191, -192, -193, -194, -195, -196, -197, -198, -199, -200, -201, -202, -203, -204, -205, -206, -24, -133, -13, -726, -726, -726, -726, -726, -272, -726, -726, -709, -710, -726, -726, -713, -714, -52, -726, -608, -609, -726, -305, -726, -726, -241, -726, -13, -726, -53, -55, -218, -219, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -726, -254, -255, -256, -257, -726, -61, -62, -726, -126, -127, -166, -167, -168, -184, -189, -196, -199, -608, -609, -687, -726, -416, -418, -726, -707, -708, -72, -272, -726, -325, -422, -431, -433, -78, -428, -79, -713, -80, -260, -277, -286, -286, -281, -726, -287, -726, -572, -691, -726, -726, -81, -82, -711, -14, -726, -17, -726, -85, -13, -713, -726, -88, -91, -13, -103, -104, -726, -726, -111, -318, -321, -713, -726, -623, -623, -345, -346, -349, -429, -726, -93, -726, -99, -315, -726, -220, -221, -591, -229, -230, -726, -242, -726, -726, -13, -622, -618, -645, -645, -726, -13, -13, -309, -713, -261, -718, -718, -726, -726, -718, -726, -327, -58, -726, -726, -726, -13, -13, -711, -726, -712, -608, -609, -726, -726, -305, -726, -360, -361, -121, -122, -726, -124, -726, -305, -616, -726, -341, -645, -552, -726, -726, -726, -726, -726, -726, -726, -726, -6, -724, -25, -26, -27, -28, -29, -726, -726, -21, -22, -23, -134, -726, -32, -35, -292, -726, -726, -291, -33, -726, -37, -726, -305, -45, -47, -207, -265, -287, -49, -50, -38, -208, -265, -713, -273, -286, -286, -700, -701, -282, -426, -702, -703, -701, -700, -282, -425, -427, -702, -703, -44, -215, -51, -713, -324, -726, -726, -726, -272, -315, -726, -726, -726, -726, -726, -216, -217, -222, -223, -224, -225, -226, -227, -231, -232, -233, -234, -236, -237, -238, -239, -240, -243, -244, -245, -246, -713, -258, -63, -713, -437, -282, -700, -701, -69, -73, -646, -713, -286, -713, -283, -435, -437, -713, -320, -278, -726, -279, -726, -284, -726, -288, -726, -694, -696, -12, -712, -16, -18, -713, -84, -313, -100, -89, -726, -713, -272, -726, -726, -110, -726, -622, -591, -726, -96, -101, -726, -726, -726, -726, -259, -247, -726, -726, -540, -726, -373, -374, -713, -630, -713, -686, -686, -628, -630, -630, -644, -646, -647, -648, -649, -650, -651, -652, -653, -654, -726, -656, -658, -660, -665, -667, -668, -671, -676, -678, -679, -681, -682, -683, -726, -726, -630, -726, -726, -726, -713, -726, -262, -720, -719, -264, -720, -316, -317, -690, -13, -351, -352, -13, -726, -726, -726, -726, -726, -726, -272, -726, -726, -315, -59, -121, -122, -123, -726, -726, -272, -337, -614, -726, -13, -408, -645, -411, -553, -573, -578, -726, -580, -556, -575, -726, -577, -558, -726, -561, -726, -563, -566, -726, -567, -726, -589, -10, -20, -726, -30, -726, -295, -726, -726, -272, -726, -726, -726, -726, -430, -726, -274, -276, -726, -726, -74, -271, -423, -726, -726, -76, -424, -323, -715, -700, -701, -700, -701, -713, -54, -457, -459, -461, -464, -521, -713, -476, -479, -514, -519, -520, -726, -726, -524, -525, -526, -527, -528, -529, -530, -531, -532, -533, -534, -726, -726, -538, -56, -726, -726, -688, -726, -438, -68, -419, -435, -267, -274, -269, -726, -397, -726, -319, -286, -285, -289, -726, -692, -693, -726, -15, -86, -726, -92, -98, -713, -700, -701, -270, -704, -109, -726, -94, -726, -214, -228, -713, -249, -725, -725, -343, -619, -726, -637, -621, -726, -626, -627, -726, -726, -640, -726, -642, -726, -362, -726, -364, -366, -369, -372, -713, -659, -669, -670, -680, -684, -624, -726, -251, -344, -308, -310, -312, -718, -725, -353, -725, -60, -354, -355, -331, -332, -726, -726, -443, -334, -726, -713, -700, -701, -704, -314, -13, -121, -122, -125, -713, -13, -726, -339, -726, -726, -713, -579, -582, -583, -584, -585, -13, -557, -560, -562, -565, -569, -571, -135, -34, -293, -726, -713, -700, -701, -701, -700, -46, -266, -726, -716, -286, -40, -210, -41, -211, -75, -42, -213, -43, -212, -77, -726, -726, -726, -726, -430, -726, -726, -462, -463, -726, -726, -726, -481, -713, -713, -475, -482, -488, -726, -491, -495, -726, -478, -726, -726, -517, -518, -522, -523, -535, -122, -536, -726, -64, -417, -397, -421, -420, -726, -713, -432, -398, -713, -13, -434, -280, -290, -695, -90, -430, -102, -322, -726, -725, -358, -13, -541, -725, -542, -543, -713, -629, -630, -630, -657, -686, -666, -671, -685, -630, -630, -677, -630, -654, -672, -713, -726, -726, -371, -655, -726, -263, -726, -356, -726, -726, -333, -335, -726, -726, -13, -430, -726, -430, -726, -726, -13, -342, -409, -412, -414, -401, -726, -726, -294, -430, -39, -209, -275, -726, -458, -460, -468, -472, -713, -713, -713, -500, -502, -503, -506, -507, -572, -510, -512, -513, -713, -713, -713, -537, -473, -474, -498, -483, -486, -489, -726, -494, -713, -572, -717, -713, -515, -516, -248, -13, -70, -268, -686, -686, -378, -380, -380, -380, -396, -726, -713, -654, -662, -663, -674, -436, -250, -11, -13, -547, -359, -726, -726, -545, -620, -726, -633, -726, -635, -625, -726, -638, -726, -641, -643, -363, -365, -367, -370, -252, -329, -726, -330, -726, -448, -451, -454, -455, -456, -289, -725, -336, -338, -615, -726, -13, -13, -726, -410, -581, -465, -466, -467, -501, -505, -726, -509, -511, -469, -470, -471, -490, -484, -726, -492, -496, -477, -726, -480, -439, -726, -376, -377, -381, -387, -389, -726, -392, -726, -394, -399, -726, -726, -661, -726, -546, -13, -608, -609, -726, -726, -305, -544, -630, -630, -630, -630, -726, -726, -13, -444, -726, -726, -452, -440, -441, -442, -340, -726, -726, -713, -403, -405, -406, -499, -504, -508, -726, -487, -726, -686, -664, -379, -380, -380, -380, -380, -675, -380, -400, -673, -726, -315, -540, -272, -726, -726, -315, -726, -631, -634, -636, -639, -368, -725, -13, -449, -450, -453, -491, -413, -415, -402, -726, -485, -726, -493, -497, -375, -726, -384, -726, -386, -726, -390, -726, -393, -395, -314, -704, -539, -713, -700, -701, -704, -314, -630, -357, -725, -726, -404, -380, -380, -380, -380, -430, -632, -445, -446, -447, -492, -726, -382, -385, -388, -391, -380, -383]; + clist = ["42,138,138,222,406,42,620,227,305,305,305,377,290,272,288,138,413,124", "271,875,449,515,284,806,307,307,307,523,343,343,362,362,944,761,42,331", "331,358,511,455,461,141,141,339,339,370,382,383,296,300,230,446,378", "378,740,915,378,466,629,372,375,323,550,325,42,926,327,343,343,343,133", "214,121,131,388,284,284,379,380,433,434,384,339,339,339,612,615,124", "927,884,926,566,513,947,120,292,299,301,346,769,770,353,340,340,732", "933,507,378,378,378,378,783,905,1082,581,581,561,692,720,42,1046,326", "600,601,366,876,289,1014,42,737,42,737,416,417,418,419,604,607,740,125", "611,340,340,340,564,597,964,8,777,4,1044,1131,8,572,572,581,1129,1167", "440,889,890,440,724,1145,385,1029,924,440,995,2,925,1025,523,1174,734", "547,547,931,650,652,743,303,316,317,213,639,394,646,648,651,651,924", "976,988,572,925,1136,305,429,444,445,401,403,359,365,740,978,990,468", "469,422,368,479,42,465,480,472,929,1000,800,273,722,728,661,356,1017", "373,727,285,528,374,15,392,306,306,306,15,633,42,367,805,456,602,369", "428,439,1145,820,439,958,1172,636,1045,414,439,746,1016,1131,290,1092", "1018,1128,1198,637,755,15,8,505,371,305,305,960,404,691,824,420,1007", "8,305,421,1063,737,737,1064,506,1056,307,517,1083,455,461,818,518,897", "307,15,1161,1122,977,989,427,1051,1205,950,1163,393,1052,937,1055,1015", "972,973,1208,871,1141,900,872,543,42,343,985,985,42,546,883,326,331", "42,1044,886,124,1132,985,1133,339,553,874,737,343,1099,926,748,1004", "1005,777,331,919,1,940,323,15,535,1123,339,323,603,541,296,42,15,751", "15,378,300,42,42,933,405,407,408,751,1083,504,409,623,410,551,1054,411", "893,42,42,412,635,826,532,534,616,539,581,1084,926,823,340,831,821,124", "1195,447,985,548,928,1139,,467,565,,531,1138,326,,366,340,138,326,,", "432,432,825,,810,668,,856,1083,,1175,572,861,834,819,834,,,673,,,1111", ",751,,1166,516,15,,435,,751,435,305,519,,141,,435,907,,901,1037,910", ",,1175,465,533,842,617,618,15,,,,619,679,,,714,714,,684,,660,926,,455", "461,1083,721,,1206,456,,922,514,306,1142,,,1143,740,,,306,777,777,,852", "854,874,874,,857,859,736,952,581,,305,,985,678,,581,1003,,679,683,,", "42,343,,,991,465,,929,331,759,343,581,1089,1090,,465,339,331,,15,,,", "15,,339,,,15,,,943,456,,,,,,,551,,907,456,726,,,956,737,551,,,,1199", ",,,,,1053,15,,,,,,15,15,796,305,815,1207,,,,,340,,440,305,789,42,15", "15,42,340,465,,440,440,,1072,465,440,440,1188,920,,,801,,,,,,42,,,,", ",,,456,305,,,,822,,,456,,138,,467,1019,447,,,,465,42,,,,,851,,42,899", "1176,,,,,,,673,,1124,968,777,777,,673,885,,456,,,,,141,,439,,714,797", ",,799,,714,714,439,439,,29,,439,439,895,29,138,1062,898,271,,,,,838", "851,,,,,29,930,,757,930,,,673,1104,343,29,29,29,921,29,,331,,,,343,", ",,339,,,331,1117,,1118,,874,,15,339,1087,,,,,,,679,29,,684,551,,29,29", ",,29,,,,581,912,,,,,440,1011,,,,,673,,,,,,378,,,673,,,839,,340,963,", "42,932,847,934,,42,,1127,340,809,,,,29,957,673,42,,29,29,29,29,29,,29", ",,,15,1019,,15,1019,,,,,,,,,853,855,673,,,858,860,673,673,,1012,15,714", ",,714,714,773,775,,,,714,439,,,,,,,714,714,714,,,,963,,15,1027,,435", ",1031,,15,954,1073,,42,,435,435,,,,435,435,,,,42,965,,1085,,29,29,29", "29,29,29,29,378,1019,,,29,29,29,,,,,,,,,,,,29,1013,,714,,42,1189,1049", ",,,42,,,,,,672,432,,,,,,1061,751,,,,673,673,673,,1011,,714,1011,,1011", ",,885,,,,1023,29,,1020,,,714,,29,29,,,1028,,963,42,,29,,,,343,,,,,,", "284,,,343,,,42,29,339,969,1106,29,,,,,29,,339,1058,,,853,855,860,858", "15,,,,930,15,,1012,,,1012,,1012,,,,15,42,42,,1011,29,1011,,1011,,1011", "29,29,,,1112,,1113,435,714,1114,,,,,340,29,29,29,,,343,1153,,,340,1011", ",284,,378,378,42,,,,339,29,,,,1103,,,1170,42,,,,714,,,,,,1164,1165,", "305,,,,,714,15,714,1144,1012,1146,1012,465,1012,,1012,,465,15,,1126", "969,,,17,,,,,17,,,,42,,,,340,,,,1012,470,714,456,,,673,,1020,,29,1020", "15,,1020,,1020,17,15,,1151,,,,,,714,,,1194,,,,1162,,866,715,715,,,,", "877,,,,,17,,,1200,,1201,,1202,,1034,1036,,,,,,1039,1041,,1042,15,29", ",,,,,,520,,,29,1196,,,1214,,,,15,,,,1110,,911,,29,,,1020,536,1020,,1020", "17,1020,,18,,,,,18,17,,17,,,,,,,,,,15,15,231,,,,1020,,,,,,231,231,231", ",18,332,332,,,,,,,29,,,29,,,953,,,,29,,,,,955,15,,,,29,18,,,29,,231", "231,,15,231,389,399,399,,,,,967,,,,,,,,,,17,,17,29,,17,29,29,,,29,17", ",,,,29,29,975,,,29,29,992,993,17,,15,18,,,,,231,231,231,231,18,,18,", ",,,,,685,1157,1158,1159,1160,,,,1093,1095,1097,,,715,,,,,,715,715,,", ",,,,,,,,,,,,,723,,,,,,,,729,,731,,,,735,,,,,,,,,17,,,,17,,,744,,17,", ",,747,,,,18,231,437,231,231,437,231,,1204,,,437,231,231,1076,1077,1078", ",,764,,767,,17,,18,376,,,17,17,,,29,,,,,29,29,,,,,,17,17,,,29,,,,,,", ",794,,,1178,1180,1182,1184,41,1185,,29,,41,,231,,,,,,,231,231,,,709", "709,,,283,231,,,,,,,,,,,41,330,330,,,,,18,,715,,18,715,715,,332,18,", ",715,1210,1211,1212,1213,,29,,715,715,715,41,,,,332,1215,,29,,,387,283", "283,,,,,18,,,,,,18,18,,,,,,,,,,,,29,,231,18,18,,29,,,,430,443,29,,,", ",,,41,,,,231,,715,,,41,,41,17,,,,,,,,,,,,,,,,,,,913,1203,,,,,,715,,", ",29,,,,,,,,,,,,715,941,,,,,,29,,,,,,,,,,,,,,,231,,,,,,,,525,,527,,,529", "530,,17,,41,17,,,29,29,,,,,,,,,,,,,,,,,17,,709,41,,,,,709,709,,,,,,", ",,18,,,715,,29,,974,332,17,231,,17,,,,17,332,29,,29,29,17,17,,,231,17", "17,,,,,,,,,,,1009,,,,715,,,,,,,,,,29,,,,715,,715,1032,,,,29,41,,,,41", ",,664,330,41,1043,,,,,18,,,18,,,,,,,231,,330,,,715,,,,,231,,,,18,41", ",,,,,41,41,,1068,1069,1070,,,715,,,,,,,,41,41,,,18,,,437,231,,,18,,", "1086,,,437,437,19,,,437,437,19,,,709,,,709,709,,,17,,738,709,376,17", "741,,,,,709,709,709,,,17,,,19,334,334,,,,,,,,,,,,,17,,,,,,,,,,,,,,,19", ",,332,,,,,,,391,400,400,,332,,784,,,,,,,,,,709,,,,,,,,,,738,,,376,,17", ",,,,,,,,,,443,17,,19,,,709,,,,,,19,,19,41,,,,,,18,709,330,,,18,231,", ",,,330,,,,17,18,,,,,17,,840,,,,,,,,,738,376,437,,,,,,,,708,708,,,,,", ",,,,,,,,,,,,,,,,,,,,,17,,,,41,,19,41,438,,,438,,,709,,,438,738,17,18", ",,,,,,908,41,,909,19,18,,,,,,,,,,,,,,,,,,918,,,,709,41,17,17,,,,231", "41,,936,,,18,709,,709,,,18,,,,,,,,,,,,,,,,,,,,,,,,17,,,,,,,,,709,,,", "17,19,,,,19,,,,334,19,,18,,,,,,,966,709,,,,,1101,,330,334,,,18,,,,1107", ",,330,,,19,,,,,17,19,19,,,,,,,,,,707,707,,,,19,19,,,,18,18,,,,,,,,,", ",,708,,,706,706,,708,708,,,,,,,,,41,,,,,41,,,1148,,,,18,,,,41,,,,710", "710,,,,18,,231,231,,,,1057,,,,,,,,,,,,,,,,,,,376,,,,,,,,,231,,,,,,,", ",,,18,,,,,,,,,,,,,,,,,,,41,,,,,,,,32,,,,41,32,,,,,,,,,,,,,19,,32,,,", ",,334,,,,32,32,32,,32,334,,,,41,,,,,,41,,,,,,,,,,,708,,,708,708,,,,32", ",708,,,32,32,,,32,708,708,708,,,,,,707,,,,,,707,707,,,,,41,,,,19,,,19", ",,,,,283,706,,,,,41,706,706,,1105,,32,,,19,,32,32,32,32,32,830,32,,", ",,,,,708,,,710,,,,,,710,710,19,41,41,438,,,,19,,,,,,438,438,,,,438,438", ",708,,,,,,,,,,,,,,,,708,283,,,,41,,,,,,,,,,,,,41,,,,,,,,,32,32,32,32", "32,32,32,,,,,32,32,32,,,712,712,334,,,,,,,32,,,,334,,,,,,,,41,,707,", ",707,707,,,,,,707,,,,,,,708,707,707,707,,,,,,706,,,706,706,,32,,,,706", ",,32,32,,,,706,706,706,,32,19,,,,,19,,,708,,710,,,710,710,,19,32,,,710", "32,708,,708,,32,,710,710,710,,,707,438,,,,,,,,,,,,,,,,,,,,,,,32,,706", "708,,,32,32,707,,,,,,,,,,,,,32,32,32,707,,,708,,,,,,19,706,710,,,,,", ",32,,,19,,,,,706,,,,,,,,,,,,,,,,,710,,,,,,,,,,,,,19,,,710,,,19,,,,712", ",,713,713,,712,712,,,,,,,,,,707,,,,,,,32,,,,,,,,,,,,,,,,,,,706,,19,", ",,,,,,,,,,707,400,,,,,,19,,,,1109,,,707,,707,,,710,711,711,,,,32,706", ",,,,,,,,32,,,238,,706,,706,,19,19,,,304,304,304,32,707,,,,,,,710,351", "352,,354,355,,357,,,,,,,710,,710,707,,706,,,400,,304,304,19,,,,,,,,", ",,,,19,,,,706,,,32,,,32,,,710,,712,,32,712,712,,,,,,712,,32,,,,32,,712", "712,712,,710,,,,,,,,,19,,,,,,,,,,,,32,,,32,32,,,32,,713,,,,32,32,713", "713,,32,32,,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,712", ",,,,304,442,,,448,304,,711,,,448,712,,711,711,,,,,,,,,238,,,,,481,482", "483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499", "500,501,502,,,,,503,,,,,,,,,,,,,,,,,,,,,,32,304,304,,,32,32,,,,304,", ",,,,32,304,712,304,,,304,304,,,,713,,,713,713,,,32,,,713,,,,,,,,713", "713,713,,,,,,,,,,,712,,,,,,556,,557,,,,,,712,,712,,,,,,,,,,,,,,,,32", ",,,,,,,,,,711,32,,711,711,,,,713,712,711,,,,,,,,711,711,711,,,,,,,,", ",32,,,712,,,32,,304,,713,,32,,,,,,,,,,,,,,713,,,,,,,,,,,,,,,,,,,,,,", ",,304,711,448,448,448,,,,,,32,,,,,,,,,,,,,,,,,,,32,,,,711,,,,,352,,", ",,,,,,,304,711,304,,304,,,,,,713,,,,,,,,32,32,304,,,,,,,,,,448,,,758", ",,,760,,,,,,,,,,,,,713,,,,,,,,,32,,,,304,713,,713,,,,,,32,,32,32,,791", ",,,,,304,711,,304,,,,,,,,,,,,,304,304,,713,,,,,32,,,304,,,,,,,,32,,", ",,,711,,713,,,,,,,,,,,,711,,711,,,304,448,304,,,,848,,,304,304,448,448", ",,,448,448,,,,,,,,,,,,,,,,711,,,,,,,,,,,,,,,,,,,,,,,,711,,,,,,,,304", ",,,,,,,,304,,,304,,,,,,,,,,,,,,,,,,,,304,,,,,,,,,,,,,,304,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,304,,,,,,,,448", ",,,,,,,,,,,,448,448,448,448,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1006,,,,,,,", ",,,,,,,,,,,,1024,,,,,,,,,,,,,,,,,,,,,,,,,,,,1047,,,,,,,,,304,,,,,,,", ",,,,,,,,,,,304,448,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,304"]; + racc_goto_table = (arr = $$$('::', 'Array').$new(4136, nil)); + idx = 0; + $send(clist, 'each', [], ($Ruby30$8 = function(str){var self = $Ruby30$8.$$s == null ? this : $Ruby30$8.$$s, $$9; + + + + if (str == null) { + str = nil; + }; + return $send(str.$split(",", -1), 'each', [], ($$9 = function(i){var self = $$9.$$s == null ? this : $$9.$$s, $writer = nil; + - $case = _lex_to_state_actions['$[]'](self.cs); - if ((79)['$===']($case)) { - self.ts = nil;}; - if (self.cs['$=='](0)) { + + if (i == null) { + i = nil; + }; + if ($truthy(i['$empty?']())) { + } else { - _goto_level = _out; - continue;;}; - p = $rb_plus(p, 1); - if ($truthy(p['$!='](pe))) { + $writer = [idx, i.$to_i()]; + $send(arr, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return (idx = $rb_plus(idx, 1));}, $$9.$$s = self, $$9.$$arity = 1, $$9));}, $Ruby30$8.$$s = self, $Ruby30$8.$$arity = 1, $Ruby30$8)); + clist = ["70,73,73,33,191,70,110,35,50,50,50,105,33,42,151,73,191,114,44,168,31", "90,70,111,88,88,88,92,81,81,85,85,109,12,70,70,70,35,55,53,53,75,75", "45,45,85,40,40,89,89,22,28,26,26,230,13,26,28,71,88,88,62,68,63,70,222", "66,81,81,81,17,17,7,9,70,70,70,19,19,24,24,19,45,45,45,108,108,114,128", "180,222,90,31,13,5,54,54,54,67,132,132,78,46,46,56,226,53,26,26,26,26", "124,140,185,221,221,10,37,37,70,125,11,10,10,115,169,48,138,70,93,70", "93,19,19,19,19,87,87,230,6,87,46,46,46,150,150,142,8,123,2,122,145,8", "216,216,221,144,186,20,195,195,20,154,227,5,198,220,20,184,3,139,14", "92,186,154,215,215,139,205,205,16,61,61,61,18,150,21,206,206,206,206", "220,168,168,216,139,185,50,25,26,26,72,72,80,80,230,171,171,26,26,27", "8,38,70,73,39,33,193,171,41,47,49,58,76,82,142,84,91,103,191,104,23", "112,86,86,86,23,113,70,116,110,89,117,118,22,22,227,119,22,120,185,121", "126,6,22,68,130,145,33,135,136,143,144,146,68,23,8,26,86,50,50,147,148", "31,149,8,140,8,50,2,152,93,93,153,155,171,88,157,184,53,53,71,158,161", "88,23,125,162,169,169,11,163,164,165,166,23,167,124,170,139,173,175", "185,176,138,56,177,33,70,81,193,193,70,35,181,11,70,70,122,182,114,188", "193,189,45,33,37,93,81,142,222,31,195,195,123,70,197,1,123,62,23,63", "13,45,62,35,63,89,70,23,53,23,26,89,70,70,226,201,202,203,53,184,48", "204,33,207,66,169,208,71,70,70,209,26,210,7,9,19,67,221,180,222,10,46", "211,214,114,109,77,193,78,224,225,,77,137,,5,128,11,,115,46,73,11,,", "86,86,150,,31,33,,55,184,,184,216,55,206,31,206,,,35,,,139,,53,,168", "61,23,,23,,53,23,50,61,,75,,23,92,,90,132,68,,,184,73,8,31,11,11,23", ",,,5,89,,,70,70,,89,,17,222,,53,53,184,35,,13,89,,90,86,86,139,,,139", "230,,,86,123,123,,28,28,37,37,,28,28,88,108,221,,50,,193,54,,221,37", ",89,54,,,70,81,,,71,73,,193,70,26,81,221,132,132,,73,45,70,,23,,,,23", ",45,,,23,,,87,89,,,,,,,66,,92,89,54,,,10,93,66,,,,139,,,,,,37,23,,,", ",,23,23,88,50,40,111,,,,,46,,20,50,114,70,23,23,70,46,73,,20,20,,37", "73,20,20,12,24,,,114,,,,,,70,,,,,,,,89,50,,,,114,,,89,,73,,77,221,77", ",,,73,70,,,,,88,,70,105,132,,,,,,,35,,110,28,123,123,,35,35,,89,,,,", "75,,22,,70,11,,,11,,70,70,22,22,,57,,22,22,42,57,73,10,151,44,,,,,17", "88,,,,,57,133,,77,133,,,35,108,81,57,57,57,85,57,,70,,,,81,,,,45,,,70", "108,,108,,37,,23,45,10,,,,,,,89,57,,89,66,,57,57,,,57,,,,221,66,,,,", "20,127,,,,,35,,,,,,26,,,35,,,8,,46,35,,70,137,8,137,,70,,10,46,86,,", ",57,19,35,70,,57,57,57,57,57,,57,,,,23,221,,23,221,,,,,,,,,77,77,35", ",,77,77,35,35,,133,23,70,,,70,70,219,219,,,,70,22,,,,,,,70,70,70,,,", "35,,23,85,,23,,85,,23,11,191,,70,,23,23,,,,23,23,,,,70,11,,191,,57,57", "57,57,57,57,57,26,221,,,57,57,57,,,,,,,,,,,,57,137,,70,,70,31,19,,,", "70,,,,,,32,86,,,,,,114,53,,,,35,35,35,,127,,70,127,,127,,,35,,,,11,57", ",223,,,70,,57,57,,,11,,35,70,,57,,,,81,,,,,,,70,,,81,,,70,57,45,77,70", "57,,,,,57,,45,11,,,77,77,77,77,23,,,,133,23,,133,,,133,,133,,,,23,70", "70,,127,57,127,,127,,127,57,57,,,137,,137,23,70,137,,,,,46,57,57,57", ",,81,33,,,46,127,,70,,26,26,70,,,,45,57,,,,11,,,35,70,,,,70,,,,,,19", "19,,50,,,,,70,23,70,137,133,137,133,73,133,,133,,73,23,,11,77,,,29,", ",,,29,,,,70,,,,46,,,,133,64,70,89,,,35,,223,,57,223,23,,223,,223,29", "23,,11,,,,,,70,,,137,,,,11,,32,107,107,,,,,32,,,,,29,,,137,,137,,137", ",219,219,,,,,,219,219,,219,23,57,,,,,,,64,,,57,11,,,137,,,,23,,,,23", ",32,,57,,,223,64,223,,223,29,223,,30,,,,,30,29,,29,,,,,,,,,,23,23,30", ",,,223,,,,,,30,30,30,,30,30,30,,,,,,,57,,,57,,,32,,,,57,,,,,32,23,,", ",57,30,,,57,,30,30,,23,30,30,30,30,,,,,32,,,,,,,,,,29,,29,57,,29,57", "57,,,57,29,,,,,57,57,32,,,57,57,32,32,29,,23,30,,,,,30,30,30,30,30,", "30,,,,,,,64,219,219,219,219,,,,134,134,134,,,107,,,,,,107,107,,,,,,", ",,,,,,,,,64,,,,,,,,64,,64,,,,64,,,,,,,,,29,,,,29,,,64,,29,,,,64,,,,30", "30,30,30,30,30,30,,219,,,30,30,30,32,32,32,,,64,,64,,29,,30,83,,,29", "29,,,57,,,,,57,57,,,,,,29,29,,,57,,,,,,,,64,,,134,134,134,134,69,134", ",57,,69,,30,,,,,,,30,30,,,98,98,,,69,30,,,,,,,,,,,69,69,69,,,,,30,,107", ",30,107,107,,30,30,,,107,134,134,134,134,,57,,107,107,107,69,,,,30,134", ",57,,,69,69,69,,,,,30,,,,,,30,30,,,,,,,,,,,,57,,30,30,30,,57,,,,83,83", "57,,,,,,,69,,,,30,,107,,,69,,69,29,,,,,,,,,,,,,,,,,,,64,32,,,,,,107", ",,,57,,,,,,,,,,,,107,64,,,,,,57,,,,,,,,,,,,,,,30,,,,,,,,83,,83,,,83", "83,,29,,69,29,,,57,57,,,,,,,,,,,,,,,,,29,,98,69,,,,,98,98,,,,,,,,,30", ",,107,,57,,64,30,29,30,,29,,,,29,30,57,,57,57,29,29,,,30,29,29,,,,,", ",,,,,64,,,,107,,,,,,,,,,57,,,,107,,107,64,,,,57,69,,,,69,,,83,69,69", "64,,,,,30,,,30,,,,,,,30,,69,,,107,,,,,30,,,,30,69,,,,,,69,69,,64,64", "64,,,107,,,,,,,,69,69,,,30,,,30,30,,,30,,,64,,,30,30,34,,,30,30,34,", ",98,,,98,98,,,29,,83,98,83,29,83,,,,,98,98,98,,,29,,,34,34,34,,,,,,", ",,,,,,29,,,,,,,,,,,,,,,34,,,30,,,,,,,34,34,34,,30,,83,,,,,,,,,,98,,", ",,,,,,,83,,,83,,29,,,,,,,,,,,83,29,,34,,,98,,,,,,34,,34,69,,,,,,30,98", "69,,,30,30,,,,,69,,,,29,30,,,,,29,,83,,,,,,,,,83,83,30,,,,,,,,97,97", ",,,,,,,,,,,,,,,,,,,,,,,,,,29,,,,69,,34,69,34,,,34,,,98,,,34,83,29,30", ",,,,,,83,69,,83,34,30,,,,,,,,,,,,,,,,,,83,,,,98,69,29,29,,,,30,69,,83", ",,30,98,,98,,,30,,,,,,,,,,,,,,,,,,,,,,,,29,,,,,,,,,98,,,,29,34,,,,34", ",,,34,34,,30,,,,,,,83,98,,,,,30,,69,34,,,30,,,,30,,,69,,,34,,,,,29,34", "34,,,,,,,,,,96,96,,,,34,34,,,,30,30,,,,,,,,,,,,97,,,95,95,,97,97,,,", ",,,,,69,,,,,69,,,30,,,,30,,,,69,,,,99,99,,,,30,,30,30,,,,83,,,,,,,,", ",,,,,,,,,,83,,,,,,,,,30,,,,,,,,,,,30,,,,,,,,,,,,,,,,,,,69,,,,,,,,60", ",,,69,60,,,,,,,,,,,,,34,,60,,,,,,34,,,,60,60,60,,60,34,,,,69,,,,,,69", ",,,,,,,,,,97,,,97,97,,,,60,,97,,,60,60,,,60,97,97,97,,,,,,96,,,,,,96", "96,,,,,69,,,,34,,,34,,,,,,69,95,,,,,69,95,95,,69,,60,,,34,,60,60,60", "60,60,34,60,,,,,,,,97,,,99,,,,,,99,99,34,69,69,34,,,,34,,,,,,34,34,", ",,34,34,,97,,,,,,,,,,,,,,,,97,69,,,,69,,,,,,,,,,,,,69,,,,,,,,,60,60", "60,60,60,60,60,,,,,60,60,60,,,101,101,34,,,,,,,60,,,,34,,,,,,,,69,,96", ",,96,96,,,,,,96,,,,,,,97,96,96,96,,,,,,95,,,95,95,,60,,,,95,,,60,60", ",,,95,95,95,,60,34,,,,,34,,,97,,99,,,99,99,,34,60,,,99,60,97,,97,,60", ",99,99,99,,,96,34,,,,,,,,,,,,,,,,,,,,,,,60,,95,97,,,60,60,96,,,,,,,", ",,,,,60,60,60,96,,,97,,,,,,34,95,99,,,,,,,60,,,34,,,,,95,,,,,,,,,,,", ",,,,,99,,,,,,,,,,,,,34,,,99,,,34,,,,101,,,102,102,,101,101,,,,,,,,,", "96,,,,,,,60,,,,,,,,,,,,,,,,,,,95,,34,,,,,,,,,,,,96,34,,,,,,34,,,,34", ",,96,,96,,,99,100,100,,,,60,95,,,,,,,,,60,,,36,,95,,95,,34,34,,,36,36", "36,60,96,,,,,,,99,36,36,,36,36,,36,,,,,,,99,,99,96,,95,,,34,,36,36,34", ",,,,,,,,,,,,34,,,,95,,,60,,,60,,,99,,101,,60,101,101,,,,,,101,,60,,", ",60,,101,101,101,,99,,,,,,,,,34,,,,,,,,,,,,60,,,60,60,,,60,,102,,,,60", "60,102,102,,60,60,,,,,,,,,,,,,,,,,,,,101,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,101,,,,,36,36,,,36,36,,100,,,36,101,,100,100,,,,,,,,,36,,,,,36,36", "36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,,,,,36,", ",,,,,,,,,,,,,,,,,,,,60,36,36,,,60,60,,,,36,,,,,,60,36,101,36,,,36,36", ",,,102,,,102,102,,,60,,,102,,,,,,,,102,102,102,,,,,,,,,,,101,,,,,,36", ",36,,,,,,101,,101,,,,,,,,,,,,,,,,60,,,,,,,,,,,100,60,,100,100,,,,102", "101,100,,,,,,,,100,100,100,,,,,,,,,,60,,,101,,,60,,36,,102,,60,,,,,", ",,,,,,,,102,,,,,,,,,,,,,,,,,,,,,,,,,36,100,36,36,36,,,,,,60,,,,,,,,", ",,,,,,,,,,60,,,,100,,,,,36,,,,,,,,,,36,100,36,,36,,,,,,102,,,,,,,,60", "60,36,,,,,,,,,,36,,,36,,,,36,,,,,,,,,,,,,102,,,,,,,,,60,,,,36,102,,102", ",,,,,60,,60,60,,36,,,,,,36,100,,36,,,,,,,,,,,,,36,36,,102,,,,,60,,,36", ",,,,,,,60,,,,,,100,,102,,,,,,,,,,,,100,,100,,,36,36,36,,,,36,,,36,36", "36,36,,,,36,36,,,,,,,,,,,,,,,,100,,,,,,,,,,,,,,,,,,,,,,,,100,,,,,,,", "36,,,,,,,,,36,,,36,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,,,,,,36,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,36,,", ",,,,,,,,,,36,36,36,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,", ",,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,36,,,,,,,,,,,,,,,,,,,36", "36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36"]; + racc_goto_check = (arr = $$$('::', 'Array').$new(4136, nil)); + idx = 0; + $send(clist, 'each', [], ($Ruby30$10 = function(str){var self = $Ruby30$10.$$s == null ? this : $Ruby30$10.$$s, $$11; + + + + if (str == null) { + str = nil; + }; + return $send(str.$split(",", -1), 'each', [], ($$11 = function(i){var self = $$11.$$s == null ? this : $$11.$$s, $writer = nil; + + + + if (i == null) { + i = nil; + }; + if ($truthy(i['$empty?']())) { + } else { - _goto_level = _resume; - continue;;};}; - if ($truthy($rb_le(_goto_level, _test_eof))) { - if (p['$=='](eof)) { - if ($truthy($rb_gt(_lex_eof_trans['$[]'](self.cs), 0))) { - - _trans = $rb_minus(_lex_eof_trans['$[]'](self.cs), 1); - _goto_level = _eof_trans; - continue;;}}}; - if ($truthy($rb_le(_goto_level, _out))) { - break;}; - };; - self.p = p; - if ($truthy(self.token_queue['$any?']())) { - return self.token_queue.$shift() - } else if (self.cs['$=='](klass.$lex_error())) { - return [false, ["$error".$freeze(), self.$range($rb_minus(p, 1), p)]] + $writer = [idx, i.$to_i()]; + $send(arr, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return (idx = $rb_plus(idx, 1));}, $$11.$$s = self, $$11.$$arity = 1, $$11));}, $Ruby30$10.$$s = self, $Ruby30$10.$$arity = 1, $Ruby30$10)); + racc_goto_pointer = [nil, 347, 147, 169, nil, 89, 132, 67, 145, 64, -244, 85, -527, -706, -744, nil, -352, 60, 173, 6, -59, 110, 28, 229, -137, -18, -19, 77, -169, 1150, 1272, -201, 513, -15, 1948, -14, 2983, -362, -30, -28, -27, -397, -11, nil, -6, 6, 65, 196, 99, -283, -24, nil, nil, -183, 66, -254, -413, 705, -288, nil, 2460, 149, 25, 27, 942, nil, 29, 60, -285, 1549, -2, -339, 124, -9, nil, 31, -203, 178, 55, nil, 151, -9, 175, 1445, 159, -22, 201, -235, -8, 19, -272, -280, -280, -393, nil, 1872, 1846, 1650, 1090, 1905, 2508, 2212, 2434, 204, 162, -58, nil, 726, -294, -765, -379, -596, 156, -164, 12, 71, 174, -126, 177, -386, -573, -152, -788, -434, -471, -819, -686, -113, -680, nil, -648, nil, -468, -40, 406, -754, -644, 42, -777, -595, -621, nil, -679, -804, -909, -914, -141, -553, 190, -363, -219, -11, -681, -679, -344, -3, nil, -10, -6, nil, nil, -432, -761, -649, -894, -504, -814, -644, -679, -573, -642, -665, nil, -557, nil, -557, -384, -381, nil, nil, -610, -375, -371, nil, -710, -885, -964, nil, -740, -738, nil, -83, nil, -551, nil, -545, nil, -416, -754, nil, nil, 282, 278, 278, 281, -231, -220, 282, 284, 287, -259, -250, nil, nil, -239, -164, -210, nil, nil, 301, -599, -249, -700, 89, -367, -686, -667, -931, nil, nil, -470]; + racc_goto_default = [nil, nil, nil, nil, 5, nil, 6, 386, 321, nil, nil, 560, nil, 945, nil, 318, 319, nil, nil, nil, 13, 14, 20, 236, nil, nil, 16, nil, 436, 237, 350, nil, nil, 631, 235, 471, 23, 994, nil, nil, nil, nil, nil, 381, 140, 52, 53, nil, nil, nil, 25, 26, 27, 754, nil, nil, nil, 338, nil, 28, 335, 450, 35, nil, nil, 37, 40, 39, nil, 232, 233, 398, nil, 458, 139, 84, nil, 441, 100, 49, nil, 54, 270, 310, nil, 916, 451, nil, 452, 463, nil, 680, 521, 308, 294, 55, 56, 57, 58, 59, 60, 61, 62, 63, nil, 295, 69, 70, nil, nil, nil, nil, nil, nil, 613, 360, nil, nil, nil, nil, nil, nil, 779, 580, nil, 780, 781, 568, 562, 563, 1140, 1010, nil, 569, nil, nil, nil, 598, nil, 571, nil, 903, nil, nil, nil, 578, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 462, nil, nil, 733, 725, nil, nil, nil, nil, nil, nil, nil, nil, nil, 879, nil, 693, 702, 694, 695, nil, nil, 696, 697, nil, nil, nil, 878, 880, nil, 881, 979, 980, 981, 982, nil, 986, 589, 987, 701, 703, nil, nil, 83, 85, 86, nil, nil, nil, nil, 641, nil, nil, nil, nil, nil, 96, 97, nil, 361, 923, 364, 567, 766, 570, 935, 583, 585, 586, 1021, 590, 1022, 593, 596, 313]; + racc_reduce_table = [0, 0, "racc_error", 0, 150, "_reduce_1", 2, 148, "_reduce_2", 2, 149, "_reduce_3", 0, 151, "_reduce_4", 1, 151, "_reduce_5", 3, 151, "_reduce_6", 2, 151, "_reduce_7", 1, 153, "_reduce_none", 2, 153, "_reduce_9", 3, 156, "_reduce_10", 4, 157, "_reduce_11", 2, 158, "_reduce_12", 0, 162, "_reduce_13", 1, 162, "_reduce_14", 3, 162, "_reduce_15", 2, 162, "_reduce_16", 1, 163, "_reduce_none", 2, 163, "_reduce_18", 0, 174, "_reduce_19", 4, 155, "_reduce_20", 3, 155, "_reduce_21", 3, 155, "_reduce_22", 3, 155, "_reduce_23", 2, 155, "_reduce_24", 3, 155, "_reduce_25", 3, 155, "_reduce_26", 3, 155, "_reduce_27", 3, 155, "_reduce_28", 3, 155, "_reduce_29", 4, 155, "_reduce_30", 1, 155, "_reduce_none", 3, 155, "_reduce_32", 3, 155, "_reduce_33", 5, 155, "_reduce_34", 3, 155, "_reduce_35", 1, 155, "_reduce_none", 3, 167, "_reduce_37", 3, 167, "_reduce_38", 6, 167, "_reduce_39", 5, 167, "_reduce_40", 5, 167, "_reduce_41", 5, 167, "_reduce_42", 5, 167, "_reduce_43", 3, 167, "_reduce_44", 1, 175, "_reduce_none", 3, 175, "_reduce_46", 1, 175, "_reduce_none", 1, 173, "_reduce_none", 3, 173, "_reduce_49", 3, 173, "_reduce_50", 3, 173, "_reduce_51", 2, 173, "_reduce_52", 0, 185, "_reduce_53", 4, 173, "_reduce_54", 0, 186, "_reduce_55", 4, 173, "_reduce_56", 1, 173, "_reduce_none", 1, 166, "_reduce_none", 0, 190, "_reduce_59", 3, 187, "_reduce_60", 1, 189, "_reduce_61", 2, 192, "_reduce_62", 0, 196, "_reduce_63", 5, 193, "_reduce_64", 1, 169, "_reduce_none", 1, 169, "_reduce_none", 1, 198, "_reduce_none", 4, 198, "_reduce_68", 0, 205, "_reduce_69", 4, 202, "_reduce_70", 1, 204, "_reduce_none", 2, 197, "_reduce_72", 3, 197, "_reduce_73", 4, 197, "_reduce_74", 5, 197, "_reduce_75", 4, 197, "_reduce_76", 5, 197, "_reduce_77", 2, 197, "_reduce_78", 2, 197, "_reduce_79", 2, 197, "_reduce_80", 2, 197, "_reduce_81", 2, 197, "_reduce_82", 1, 168, "_reduce_83", 3, 168, "_reduce_84", 1, 210, "_reduce_85", 3, 210, "_reduce_86", 1, 209, "_reduce_none", 2, 209, "_reduce_88", 3, 209, "_reduce_89", 5, 209, "_reduce_90", 2, 209, "_reduce_91", 4, 209, "_reduce_92", 2, 209, "_reduce_93", 4, 209, "_reduce_94", 1, 209, "_reduce_95", 3, 209, "_reduce_96", 1, 213, "_reduce_none", 3, 213, "_reduce_98", 2, 212, "_reduce_99", 3, 212, "_reduce_100", 1, 215, "_reduce_101", 3, 215, "_reduce_102", 1, 214, "_reduce_103", 1, 214, "_reduce_104", 4, 214, "_reduce_105", 3, 214, "_reduce_106", 3, 214, "_reduce_107", 3, 214, "_reduce_108", 3, 214, "_reduce_109", 2, 214, "_reduce_110", 1, 214, "_reduce_111", 1, 170, "_reduce_112", 1, 170, "_reduce_113", 4, 170, "_reduce_114", 3, 170, "_reduce_115", 3, 170, "_reduce_116", 3, 170, "_reduce_117", 3, 170, "_reduce_118", 2, 170, "_reduce_119", 1, 170, "_reduce_120", 1, 218, "_reduce_121", 1, 218, "_reduce_none", 2, 219, "_reduce_123", 1, 219, "_reduce_124", 3, 219, "_reduce_125", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 191, "_reduce_none", 1, 164, "_reduce_131", 1, 164, "_reduce_none", 1, 165, "_reduce_133", 0, 223, "_reduce_134", 4, 165, "_reduce_135", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 220, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 1, 221, "_reduce_none", 3, 183, "_reduce_207", 3, 183, "_reduce_208", 6, 183, "_reduce_209", 5, 183, "_reduce_210", 5, 183, "_reduce_211", 5, 183, "_reduce_212", 5, 183, "_reduce_213", 4, 183, "_reduce_214", 3, 183, "_reduce_215", 3, 183, "_reduce_216", 3, 183, "_reduce_217", 2, 183, "_reduce_218", 2, 183, "_reduce_219", 2, 183, "_reduce_220", 2, 183, "_reduce_221", 3, 183, "_reduce_222", 3, 183, "_reduce_223", 3, 183, "_reduce_224", 3, 183, "_reduce_225", 3, 183, "_reduce_226", 3, 183, "_reduce_227", 4, 183, "_reduce_228", 2, 183, "_reduce_229", 2, 183, "_reduce_230", 3, 183, "_reduce_231", 3, 183, "_reduce_232", 3, 183, "_reduce_233", 3, 183, "_reduce_234", 1, 183, "_reduce_none", 3, 183, "_reduce_236", 3, 183, "_reduce_237", 3, 183, "_reduce_238", 3, 183, "_reduce_239", 3, 183, "_reduce_240", 2, 183, "_reduce_241", 2, 183, "_reduce_242", 3, 183, "_reduce_243", 3, 183, "_reduce_244", 3, 183, "_reduce_245", 3, 183, "_reduce_246", 3, 183, "_reduce_247", 6, 183, "_reduce_248", 4, 183, "_reduce_249", 6, 183, "_reduce_250", 4, 183, "_reduce_251", 6, 183, "_reduce_252", 1, 183, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 1, 229, "_reduce_none", 3, 226, "_reduce_258", 3, 226, "_reduce_259", 1, 230, "_reduce_none", 1, 231, "_reduce_none", 2, 231, "_reduce_none", 4, 231, "_reduce_263", 2, 231, "_reduce_264", 1, 224, "_reduce_none", 3, 224, "_reduce_266", 3, 236, "_reduce_267", 5, 236, "_reduce_268", 3, 236, "_reduce_269", 0, 238, "_reduce_270", 1, 238, "_reduce_none", 0, 178, "_reduce_272", 1, 178, "_reduce_none", 2, 178, "_reduce_none", 4, 178, "_reduce_275", 2, 178, "_reduce_276", 1, 208, "_reduce_277", 2, 208, "_reduce_278", 2, 208, "_reduce_279", 4, 208, "_reduce_280", 1, 208, "_reduce_281", 0, 241, "_reduce_282", 2, 201, "_reduce_283", 2, 240, "_reduce_284", 2, 239, "_reduce_285", 0, 239, "_reduce_286", 1, 233, "_reduce_287", 2, 233, "_reduce_288", 3, 233, "_reduce_289", 4, 233, "_reduce_290", 1, 172, "_reduce_291", 1, 172, "_reduce_none", 3, 171, "_reduce_293", 4, 171, "_reduce_294", 2, 171, "_reduce_295", 1, 228, "_reduce_none", 1, 228, "_reduce_none", 1, 228, "_reduce_none", 1, 228, "_reduce_none", 1, 228, "_reduce_none", 1, 228, "_reduce_none", 1, 228, "_reduce_none", 1, 228, "_reduce_none", 1, 228, "_reduce_none", 1, 228, "_reduce_none", 1, 228, "_reduce_306", 0, 263, "_reduce_307", 4, 228, "_reduce_308", 0, 264, "_reduce_309", 4, 228, "_reduce_310", 0, 265, "_reduce_311", 4, 228, "_reduce_312", 3, 228, "_reduce_313", 3, 228, "_reduce_314", 2, 228, "_reduce_315", 3, 228, "_reduce_316", 3, 228, "_reduce_317", 1, 228, "_reduce_318", 4, 228, "_reduce_319", 3, 228, "_reduce_320", 1, 228, "_reduce_321", 5, 228, "_reduce_322", 4, 228, "_reduce_323", 3, 228, "_reduce_324", 2, 228, "_reduce_325", 1, 228, "_reduce_none", 2, 228, "_reduce_327", 1, 228, "_reduce_none", 6, 228, "_reduce_329", 6, 228, "_reduce_330", 4, 228, "_reduce_331", 4, 228, "_reduce_332", 5, 228, "_reduce_333", 4, 228, "_reduce_334", 5, 228, "_reduce_335", 6, 228, "_reduce_336", 0, 266, "_reduce_337", 6, 228, "_reduce_338", 0, 267, "_reduce_339", 7, 228, "_reduce_340", 0, 268, "_reduce_341", 5, 228, "_reduce_342", 4, 228, "_reduce_343", 4, 228, "_reduce_344", 1, 228, "_reduce_345", 1, 228, "_reduce_346", 1, 228, "_reduce_347", 1, 228, "_reduce_348", 1, 177, "_reduce_none", 1, 207, "_reduce_350", 1, 255, "_reduce_none", 1, 255, "_reduce_none", 2, 255, "_reduce_353", 1, 188, "_reduce_none", 1, 188, "_reduce_none", 1, 256, "_reduce_none", 5, 256, "_reduce_357", 1, 160, "_reduce_none", 2, 160, "_reduce_359", 1, 259, "_reduce_none", 1, 259, "_reduce_none", 1, 269, "_reduce_362", 3, 269, "_reduce_363", 1, 272, "_reduce_364", 3, 272, "_reduce_365", 1, 271, "_reduce_none", 3, 271, "_reduce_367", 5, 271, "_reduce_368", 1, 271, "_reduce_369", 3, 271, "_reduce_370", 2, 273, "_reduce_371", 1, 273, "_reduce_372", 1, 274, "_reduce_none", 1, 274, "_reduce_none", 4, 277, "_reduce_375", 2, 277, "_reduce_376", 2, 277, "_reduce_377", 1, 277, "_reduce_378", 2, 281, "_reduce_379", 0, 281, "_reduce_380", 1, 282, "_reduce_none", 6, 283, "_reduce_382", 8, 283, "_reduce_383", 4, 283, "_reduce_384", 6, 283, "_reduce_385", 4, 283, "_reduce_386", 2, 283, "_reduce_none", 6, 283, "_reduce_388", 2, 283, "_reduce_389", 4, 283, "_reduce_390", 6, 283, "_reduce_391", 2, 283, "_reduce_392", 4, 283, "_reduce_393", 2, 283, "_reduce_394", 4, 283, "_reduce_395", 1, 283, "_reduce_none", 0, 287, "_reduce_397", 1, 287, "_reduce_398", 3, 288, "_reduce_399", 4, 288, "_reduce_400", 1, 289, "_reduce_401", 4, 289, "_reduce_402", 1, 290, "_reduce_403", 3, 290, "_reduce_404", 1, 291, "_reduce_405", 1, 291, "_reduce_none", 0, 295, "_reduce_407", 0, 296, "_reduce_408", 5, 254, "_reduce_409", 4, 293, "_reduce_410", 1, 293, "_reduce_411", 0, 299, "_reduce_412", 4, 294, "_reduce_413", 0, 300, "_reduce_414", 4, 294, "_reduce_415", 0, 302, "_reduce_416", 4, 298, "_reduce_417", 2, 199, "_reduce_418", 4, 199, "_reduce_419", 5, 199, "_reduce_420", 5, 199, "_reduce_421", 2, 253, "_reduce_422", 4, 253, "_reduce_423", 4, 253, "_reduce_424", 3, 253, "_reduce_425", 3, 253, "_reduce_426", 3, 253, "_reduce_427", 2, 253, "_reduce_428", 1, 253, "_reduce_429", 4, 253, "_reduce_430", 0, 304, "_reduce_431", 4, 252, "_reduce_432", 0, 305, "_reduce_433", 4, 252, "_reduce_434", 0, 306, "_reduce_435", 3, 203, "_reduce_436", 0, 307, "_reduce_437", 0, 308, "_reduce_438", 4, 301, "_reduce_439", 5, 257, "_reduce_440", 1, 309, "_reduce_441", 1, 309, "_reduce_none", 0, 312, "_reduce_443", 0, 313, "_reduce_444", 7, 258, "_reduce_445", 1, 311, "_reduce_446", 1, 311, "_reduce_none", 1, 310, "_reduce_448", 3, 310, "_reduce_449", 3, 310, "_reduce_450", 1, 314, "_reduce_none", 2, 314, "_reduce_452", 3, 314, "_reduce_453", 1, 314, "_reduce_454", 1, 314, "_reduce_455", 1, 314, "_reduce_456", 1, 184, "_reduce_none", 3, 319, "_reduce_458", 1, 319, "_reduce_none", 3, 321, "_reduce_460", 1, 321, "_reduce_none", 1, 323, "_reduce_462", 1, 324, "_reduce_463", 1, 322, "_reduce_none", 4, 322, "_reduce_465", 4, 322, "_reduce_466", 4, 322, "_reduce_467", 3, 322, "_reduce_468", 4, 322, "_reduce_469", 4, 322, "_reduce_470", 4, 322, "_reduce_471", 3, 322, "_reduce_472", 3, 322, "_reduce_473", 3, 322, "_reduce_474", 2, 322, "_reduce_475", 0, 328, "_reduce_476", 4, 322, "_reduce_477", 2, 322, "_reduce_478", 0, 329, "_reduce_479", 4, 322, "_reduce_480", 1, 315, "_reduce_481", 1, 315, "_reduce_482", 2, 315, "_reduce_483", 3, 315, "_reduce_484", 5, 315, "_reduce_485", 2, 315, "_reduce_486", 4, 315, "_reduce_487", 1, 315, "_reduce_none", 2, 330, "_reduce_489", 3, 330, "_reduce_490", 1, 317, "_reduce_491", 3, 317, "_reduce_492", 5, 316, "_reduce_493", 2, 333, "_reduce_494", 1, 333, "_reduce_495", 1, 332, "_reduce_496", 3, 332, "_reduce_497", 1, 331, "_reduce_none", 3, 318, "_reduce_499", 1, 318, "_reduce_500", 2, 318, "_reduce_501", 1, 318, "_reduce_502", 1, 334, "_reduce_503", 3, 334, "_reduce_504", 2, 336, "_reduce_505", 1, 336, "_reduce_506", 1, 337, "_reduce_507", 3, 337, "_reduce_508", 2, 339, "_reduce_509", 1, 339, "_reduce_510", 2, 341, "_reduce_511", 1, 335, "_reduce_none", 1, 335, "_reduce_none", 1, 325, "_reduce_none", 3, 325, "_reduce_515", 3, 325, "_reduce_516", 2, 325, "_reduce_517", 2, 325, "_reduce_518", 1, 325, "_reduce_none", 1, 325, "_reduce_none", 1, 325, "_reduce_none", 2, 325, "_reduce_522", 2, 325, "_reduce_523", 1, 342, "_reduce_none", 1, 342, "_reduce_none", 1, 342, "_reduce_none", 1, 342, "_reduce_none", 1, 342, "_reduce_none", 1, 342, "_reduce_none", 1, 342, "_reduce_none", 1, 342, "_reduce_none", 1, 342, "_reduce_532", 1, 342, "_reduce_none", 1, 320, "_reduce_534", 2, 343, "_reduce_535", 2, 326, "_reduce_536", 3, 326, "_reduce_537", 1, 326, "_reduce_538", 6, 159, "_reduce_539", 0, 159, "_reduce_540", 1, 344, "_reduce_541", 1, 344, "_reduce_none", 1, 344, "_reduce_none", 2, 345, "_reduce_544", 1, 345, "_reduce_none", 2, 161, "_reduce_546", 1, 161, "_reduce_none", 1, 242, "_reduce_none", 1, 242, "_reduce_none", 1, 243, "_reduce_550", 1, 347, "_reduce_551", 2, 347, "_reduce_552", 3, 348, "_reduce_553", 1, 348, "_reduce_554", 1, 348, "_reduce_555", 3, 244, "_reduce_556", 4, 245, "_reduce_557", 3, 246, "_reduce_558", 0, 351, "_reduce_559", 3, 351, "_reduce_560", 1, 352, "_reduce_561", 2, 352, "_reduce_562", 3, 248, "_reduce_563", 0, 354, "_reduce_564", 3, 354, "_reduce_565", 3, 247, "_reduce_566", 3, 249, "_reduce_567", 0, 355, "_reduce_568", 3, 355, "_reduce_569", 0, 356, "_reduce_570", 3, 356, "_reduce_571", 0, 338, "_reduce_572", 2, 338, "_reduce_573", 0, 349, "_reduce_574", 2, 349, "_reduce_575", 0, 350, "_reduce_576", 2, 350, "_reduce_577", 1, 353, "_reduce_578", 2, 353, "_reduce_579", 0, 358, "_reduce_580", 4, 353, "_reduce_581", 1, 357, "_reduce_582", 1, 357, "_reduce_583", 1, 357, "_reduce_584", 1, 357, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 359, "_reduce_588", 3, 360, "_reduce_589", 1, 346, "_reduce_590", 2, 346, "_reduce_591", 1, 225, "_reduce_592", 1, 225, "_reduce_593", 1, 225, "_reduce_594", 1, 225, "_reduce_595", 1, 216, "_reduce_596", 1, 216, "_reduce_597", 1, 216, "_reduce_598", 1, 216, "_reduce_599", 1, 216, "_reduce_600", 1, 217, "_reduce_601", 1, 217, "_reduce_602", 1, 217, "_reduce_603", 1, 217, "_reduce_604", 1, 217, "_reduce_605", 1, 217, "_reduce_606", 1, 217, "_reduce_607", 1, 250, "_reduce_608", 1, 250, "_reduce_609", 1, 176, "_reduce_610", 1, 176, "_reduce_611", 1, 181, "_reduce_612", 1, 181, "_reduce_613", 0, 361, "_reduce_614", 4, 260, "_reduce_615", 0, 260, "_reduce_616", 1, 227, "_reduce_none", 1, 227, "_reduce_618", 3, 362, "_reduce_619", 5, 362, "_reduce_620", 3, 362, "_reduce_621", 1, 262, "_reduce_none", 0, 364, "_reduce_623", 3, 262, "_reduce_624", 4, 363, "_reduce_625", 2, 363, "_reduce_626", 2, 363, "_reduce_627", 1, 363, "_reduce_628", 2, 366, "_reduce_629", 0, 366, "_reduce_630", 6, 297, "_reduce_631", 8, 297, "_reduce_632", 4, 297, "_reduce_633", 6, 297, "_reduce_634", 4, 297, "_reduce_635", 6, 297, "_reduce_636", 2, 297, "_reduce_637", 4, 297, "_reduce_638", 6, 297, "_reduce_639", 2, 297, "_reduce_640", 4, 297, "_reduce_641", 2, 297, "_reduce_642", 4, 297, "_reduce_643", 1, 297, "_reduce_644", 0, 297, "_reduce_645", 1, 237, "_reduce_646", 1, 292, "_reduce_647", 1, 292, "_reduce_648", 1, 292, "_reduce_649", 1, 292, "_reduce_650", 1, 270, "_reduce_none", 1, 270, "_reduce_652", 1, 368, "_reduce_653", 1, 369, "_reduce_654", 3, 369, "_reduce_655", 1, 284, "_reduce_656", 3, 284, "_reduce_657", 1, 370, "_reduce_658", 2, 371, "_reduce_659", 1, 371, "_reduce_660", 2, 372, "_reduce_661", 1, 372, "_reduce_662", 1, 278, "_reduce_663", 3, 278, "_reduce_664", 1, 365, "_reduce_665", 3, 365, "_reduce_666", 1, 340, "_reduce_none", 1, 340, "_reduce_none", 2, 276, "_reduce_669", 2, 275, "_reduce_670", 1, 275, "_reduce_671", 3, 373, "_reduce_672", 3, 374, "_reduce_673", 1, 285, "_reduce_674", 3, 285, "_reduce_675", 1, 367, "_reduce_676", 3, 367, "_reduce_677", 1, 375, "_reduce_none", 1, 375, "_reduce_none", 2, 286, "_reduce_680", 1, 286, "_reduce_681", 1, 376, "_reduce_none", 1, 376, "_reduce_none", 2, 280, "_reduce_684", 2, 279, "_reduce_685", 0, 279, "_reduce_686", 1, 194, "_reduce_none", 3, 194, "_reduce_688", 0, 251, "_reduce_689", 2, 251, "_reduce_none", 1, 235, "_reduce_691", 3, 235, "_reduce_692", 3, 377, "_reduce_693", 2, 377, "_reduce_694", 4, 377, "_reduce_695", 2, 377, "_reduce_696", 1, 206, "_reduce_none", 1, 206, "_reduce_none", 1, 206, "_reduce_none", 1, 200, "_reduce_none", 1, 200, "_reduce_none", 1, 200, "_reduce_none", 1, 200, "_reduce_none", 1, 303, "_reduce_none", 1, 303, "_reduce_none", 1, 303, "_reduce_none", 1, 195, "_reduce_none", 1, 195, "_reduce_none", 1, 180, "_reduce_709", 1, 180, "_reduce_710", 0, 152, "_reduce_none", 1, 152, "_reduce_none", 0, 182, "_reduce_none", 1, 182, "_reduce_none", 2, 211, "_reduce_715", 2, 179, "_reduce_716", 2, 327, "_reduce_717", 0, 234, "_reduce_none", 1, 234, "_reduce_none", 1, 234, "_reduce_none", 1, 261, "_reduce_721", 1, 261, "_reduce_none", 1, 154, "_reduce_none", 2, 154, "_reduce_none", 0, 232, "_reduce_725"]; + racc_reduce_n = 726; + racc_shift_n = 1216; + racc_token_table = $hash(false, 0, "error", 1, "kCLASS", 2, "kMODULE", 3, "kDEF", 4, "kUNDEF", 5, "kBEGIN", 6, "kRESCUE", 7, "kENSURE", 8, "kEND", 9, "kIF", 10, "kUNLESS", 11, "kTHEN", 12, "kELSIF", 13, "kELSE", 14, "kCASE", 15, "kWHEN", 16, "kWHILE", 17, "kUNTIL", 18, "kFOR", 19, "kBREAK", 20, "kNEXT", 21, "kREDO", 22, "kRETRY", 23, "kIN", 24, "kDO", 25, "kDO_COND", 26, "kDO_BLOCK", 27, "kDO_LAMBDA", 28, "kRETURN", 29, "kYIELD", 30, "kSUPER", 31, "kSELF", 32, "kNIL", 33, "kTRUE", 34, "kFALSE", 35, "kAND", 36, "kOR", 37, "kNOT", 38, "kIF_MOD", 39, "kUNLESS_MOD", 40, "kWHILE_MOD", 41, "kUNTIL_MOD", 42, "kRESCUE_MOD", 43, "kALIAS", 44, "kDEFINED", 45, "klBEGIN", 46, "klEND", 47, "k__LINE__", 48, "k__FILE__", 49, "k__ENCODING__", 50, "tIDENTIFIER", 51, "tFID", 52, "tGVAR", 53, "tIVAR", 54, "tCONSTANT", 55, "tLABEL", 56, "tCVAR", 57, "tNTH_REF", 58, "tBACK_REF", 59, "tSTRING_CONTENT", 60, "tINTEGER", 61, "tFLOAT", 62, "tUPLUS", 63, "tUMINUS", 64, "tUNARY_NUM", 65, "tPOW", 66, "tCMP", 67, "tEQ", 68, "tEQQ", 69, "tNEQ", 70, "tGEQ", 71, "tLEQ", 72, "tANDOP", 73, "tOROP", 74, "tMATCH", 75, "tNMATCH", 76, "tDOT", 77, "tDOT2", 78, "tDOT3", 79, "tAREF", 80, "tASET", 81, "tLSHFT", 82, "tRSHFT", 83, "tCOLON2", 84, "tCOLON3", 85, "tOP_ASGN", 86, "tASSOC", 87, "tLPAREN", 88, "tLPAREN2", 89, "tRPAREN", 90, "tLPAREN_ARG", 91, "tLBRACK", 92, "tLBRACK2", 93, "tRBRACK", 94, "tLBRACE", 95, "tLBRACE_ARG", 96, "tSTAR", 97, "tSTAR2", 98, "tAMPER", 99, "tAMPER2", 100, "tTILDE", 101, "tPERCENT", 102, "tDIVIDE", 103, "tDSTAR", 104, "tPLUS", 105, "tMINUS", 106, "tLT", 107, "tGT", 108, "tPIPE", 109, "tBANG", 110, "tCARET", 111, "tLCURLY", 112, "tRCURLY", 113, "tBACK_REF2", 114, "tSYMBEG", 115, "tSTRING_BEG", 116, "tXSTRING_BEG", 117, "tREGEXP_BEG", 118, "tREGEXP_OPT", 119, "tWORDS_BEG", 120, "tQWORDS_BEG", 121, "tSYMBOLS_BEG", 122, "tQSYMBOLS_BEG", 123, "tSTRING_DBEG", 124, "tSTRING_DVAR", 125, "tSTRING_END", 126, "tSTRING_DEND", 127, "tSTRING", 128, "tSYMBOL", 129, "tNL", 130, "tEH", 131, "tCOLON", 132, "tCOMMA", 133, "tSPACE", 134, "tSEMI", 135, "tLAMBDA", 136, "tLAMBEG", 137, "tCHARACTER", 138, "tRATIONAL", 139, "tIMAGINARY", 140, "tLABEL_END", 141, "tANDDOT", 142, "tBDOT2", 143, "tBDOT3", 144, "tEQL", 145, "tLOWEST", 146); + racc_nt_base = 147; + racc_use_result_var = true; + Opal.const_set($nesting[0], 'Racc_arg', [racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var]); + Opal.const_set($nesting[0], 'Racc_token_to_s_table', ["$end", "error", "kCLASS", "kMODULE", "kDEF", "kUNDEF", "kBEGIN", "kRESCUE", "kENSURE", "kEND", "kIF", "kUNLESS", "kTHEN", "kELSIF", "kELSE", "kCASE", "kWHEN", "kWHILE", "kUNTIL", "kFOR", "kBREAK", "kNEXT", "kREDO", "kRETRY", "kIN", "kDO", "kDO_COND", "kDO_BLOCK", "kDO_LAMBDA", "kRETURN", "kYIELD", "kSUPER", "kSELF", "kNIL", "kTRUE", "kFALSE", "kAND", "kOR", "kNOT", "kIF_MOD", "kUNLESS_MOD", "kWHILE_MOD", "kUNTIL_MOD", "kRESCUE_MOD", "kALIAS", "kDEFINED", "klBEGIN", "klEND", "k__LINE__", "k__FILE__", "k__ENCODING__", "tIDENTIFIER", "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tLABEL", "tCVAR", "tNTH_REF", "tBACK_REF", "tSTRING_CONTENT", "tINTEGER", "tFLOAT", "tUPLUS", "tUMINUS", "tUNARY_NUM", "tPOW", "tCMP", "tEQ", "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH", "tDOT", "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2", "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN2", "tRPAREN", "tLPAREN_ARG", "tLBRACK", "tLBRACK2", "tRBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR", "tSTAR2", "tAMPER", "tAMPER2", "tTILDE", "tPERCENT", "tDIVIDE", "tDSTAR", "tPLUS", "tMINUS", "tLT", "tGT", "tPIPE", "tBANG", "tCARET", "tLCURLY", "tRCURLY", "tBACK_REF2", "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tREGEXP_OPT", "tWORDS_BEG", "tQWORDS_BEG", "tSYMBOLS_BEG", "tQSYMBOLS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tSTRING_DEND", "tSTRING", "tSYMBOL", "tNL", "tEH", "tCOLON", "tCOMMA", "tSPACE", "tSEMI", "tLAMBDA", "tLAMBEG", "tCHARACTER", "tRATIONAL", "tIMAGINARY", "tLABEL_END", "tANDDOT", "tBDOT2", "tBDOT3", "tEQL", "tLOWEST", "$start", "program", "top_compstmt", "@1", "top_stmts", "opt_terms", "top_stmt", "terms", "stmt", "begin_block", "bodystmt", "compstmt", "opt_rescue", "opt_else", "opt_ensure", "stmts", "stmt_or_begin", "fitem", "undef_list", "expr_value", "command_asgn", "mlhs", "command_call", "lhs", "mrhs", "mrhs_arg", "expr", "@2", "command_rhs", "var_lhs", "primary_value", "opt_call_args", "rbracket", "call_op", "backref", "opt_nl", "arg", "p_expr", "@3", "@4", "expr_value_do", "do", "def_name", "@5", "fname", "defn_head", "defs_head", "singleton", "dot_or_colon", "@6", "command", "block_command", "block_call", "operation2", "command_args", "cmd_brace_block", "brace_body", "fcall", "@7", "operation", "k_return", "call_args", "mlhs_basic", "mlhs_inner", "rparen", "mlhs_head", "mlhs_item", "mlhs_node", "mlhs_post", "user_variable", "keyword_variable", "cname", "cpath", "op", "reswords", "symbol", "@8", "arg_rhs", "simple_numeric", "rel_expr", "f_opt_paren_args", "primary", "relop", "arg_value", "aref_args", "none", "args", "trailer", "assocs", "paren_args", "args_forward", "opt_paren_args", "opt_block_arg", "block_arg", "@9", "literal", "strings", "xstring", "regexp", "words", "qwords", "symbols", "qsymbols", "var_ref", "assoc_list", "brace_block", "method_call", "lambda", "then", "if_tail", "case_body", "p_case_body", "for_var", "superclass", "term", "f_arglist", "@10", "@11", "@12", "@13", "@14", "@15", "f_marg", "f_norm_arg", "f_margs", "f_marg_list", "f_rest_marg", "f_any_kwrest", "f_kwrest", "f_no_kwarg", "block_args_tail", "f_block_kwarg", "opt_f_block_arg", "f_block_arg", "opt_block_args_tail", "excessed_comma", "block_param", "f_arg", "f_block_optarg", "f_rest_arg", "opt_block_param", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", "f_bad_arg", "f_larglist", "lambda_body", "@16", "@17", "f_args", "do_block", "@18", "@19", "do_body", "@20", "operation3", "@21", "@22", "@23", "@24", "@25", "cases", "p_top_expr", "p_cases", "@26", "@27", "p_top_expr_body", "p_args", "p_find", "p_args_tail", "p_kwargs", "p_as", "p_variable", "p_alt", "p_expr_basic", "p_lparen", "p_lbracket", "p_value", "p_const", "rbrace", "@28", "@29", "p_args_head", "p_arg", "p_args_post", "p_rest", "p_kwarg", "p_any_kwrest", "p_kw", "p_kw_label", "string_contents", "p_kwrest", "kwrest_mark", "p_kwnorest", "p_primitive", "p_var_ref", "exc_list", "exc_var", "numeric", "string", "string1", "xstring_contents", "regexp_contents", "word_list", "word", "string_content", "symbol_list", "qword_list", "qsym_list", "string_dvar", "@30", "ssym", "dsym", "@31", "f_paren_args", "args_tail", "@32", "f_kwarg", "opt_args_tail", "f_optarg", "f_arg_asgn", "f_arg_item", "f_label", "f_kw", "f_block_kw", "f_opt", "f_block_opt", "restarg_mark", "blkarg_mark", "assoc"]); + Opal.const_set($nesting[0], 'Racc_debug_parser', false); + + Opal.def(self, '$_reduce_1', $Ruby30__reduce_1$12 = function $$_reduce_1(val, _values, result) { + var self = this; + + + self.current_arg_stack.$push(nil); + self.max_numparam_stack.$push(); + return result; + }, $Ruby30__reduce_1$12.$$arity = 3); + + Opal.def(self, '$_reduce_2', $Ruby30__reduce_2$13 = function $$_reduce_2(val, _values, result) { + var self = this; + + + result = val['$[]'](1); + self.current_arg_stack.$pop(); + self.max_numparam_stack.$pop(); + return result; + }, $Ruby30__reduce_2$13.$$arity = 3); + + Opal.def(self, '$_reduce_3', $Ruby30__reduce_3$14 = function $$_reduce_3(val, _values, result) { + var self = this; + + + result = self.builder.$compstmt(val['$[]'](0)); + return result; + }, $Ruby30__reduce_3$14.$$arity = 3); + + Opal.def(self, '$_reduce_4', $Ruby30__reduce_4$15 = function $$_reduce_4(val, _values, result) { + var self = this; + + + result = []; + return result; + }, $Ruby30__reduce_4$15.$$arity = 3); + + Opal.def(self, '$_reduce_5', $Ruby30__reduce_5$16 = function $$_reduce_5(val, _values, result) { + var self = this; + + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_5$16.$$arity = 3); + + Opal.def(self, '$_reduce_6', $Ruby30__reduce_6$17 = function $$_reduce_6(val, _values, result) { + var self = this; + + + result = val['$[]'](0)['$<<'](val['$[]'](2)); + return result; + }, $Ruby30__reduce_6$17.$$arity = 3); + + Opal.def(self, '$_reduce_7', $Ruby30__reduce_7$18 = function $$_reduce_7(val, _values, result) { + var self = this; + + + result = [val['$[]'](1)]; + return result; + }, $Ruby30__reduce_7$18.$$arity = 3); + + Opal.def(self, '$_reduce_9', $Ruby30__reduce_9$19 = function $$_reduce_9(val, _values, result) { + var self = this; + + + result = $send(self.builder, 'preexe', [val['$[]'](0)].concat(Opal.to_a(val['$[]'](1)))); + return result; + }, $Ruby30__reduce_9$19.$$arity = 3); + + Opal.def(self, '$_reduce_10', $Ruby30__reduce_10$20 = function $$_reduce_10(val, _values, result) { + var self = this; + + + result = val; + return result; + }, $Ruby30__reduce_10$20.$$arity = 3); + + Opal.def(self, '$_reduce_11', $Ruby30__reduce_11$21 = function $$_reduce_11(val, _values, result) { + var $a, $b, self = this, rescue_bodies = nil, else_t = nil, else_ = nil, ensure_t = nil, ensure_ = nil, $ret_or_2 = nil; + + + rescue_bodies = val['$[]'](1); + $b = val['$[]'](2), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + $b = val['$[]'](3), $a = Opal.to_ary($b), (ensure_t = ($a[0] == null ? nil : $a[0])), (ensure_ = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy((function() {if ($truthy(($ret_or_2 = rescue_bodies['$empty?']()))) { + return else_t['$nil?']()['$!']() } else { + return $ret_or_2 + }; return nil; })())) { + self.$diagnostic("error", "useless_else", nil, else_t)}; + result = self.builder.$begin_body(val['$[]'](0), rescue_bodies, else_t, else_, ensure_t, ensure_); + return result; + }, $Ruby30__reduce_11$21.$$arity = 3); + + Opal.def(self, '$_reduce_12', $Ruby30__reduce_12$22 = function $$_reduce_12(val, _values, result) { + var self = this; + + + result = self.builder.$compstmt(val['$[]'](0)); + return result; + }, $Ruby30__reduce_12$22.$$arity = 3); + + Opal.def(self, '$_reduce_13', $Ruby30__reduce_13$23 = function $$_reduce_13(val, _values, result) { + var self = this; + + + result = []; + return result; + }, $Ruby30__reduce_13$23.$$arity = 3); + + Opal.def(self, '$_reduce_14', $Ruby30__reduce_14$24 = function $$_reduce_14(val, _values, result) { + var self = this; + + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_14$24.$$arity = 3); + + Opal.def(self, '$_reduce_15', $Ruby30__reduce_15$25 = function $$_reduce_15(val, _values, result) { + var self = this; + + + result = val['$[]'](0)['$<<'](val['$[]'](2)); + return result; + }, $Ruby30__reduce_15$25.$$arity = 3); + + Opal.def(self, '$_reduce_16', $Ruby30__reduce_16$26 = function $$_reduce_16(val, _values, result) { + var self = this; + + + result = [val['$[]'](1)]; + return result; + }, $Ruby30__reduce_16$26.$$arity = 3); + + Opal.def(self, '$_reduce_18', $Ruby30__reduce_18$27 = function $$_reduce_18(val, _values, result) { + var self = this; + + + self.$diagnostic("error", "begin_in_method", nil, val['$[]'](0)); + return result; + }, $Ruby30__reduce_18$27.$$arity = 3); + + Opal.def(self, '$_reduce_19', $Ruby30__reduce_19$28 = function $$_reduce_19(val, _values, result) { + var self = this, $writer = nil; + + + + $writer = ["expr_fname"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_19$28.$$arity = 3); + + Opal.def(self, '$_reduce_20', $Ruby30__reduce_20$29 = function $$_reduce_20(val, _values, result) { + var self = this; + + + result = self.builder.$alias(val['$[]'](0), val['$[]'](1), val['$[]'](3)); + return result; + }, $Ruby30__reduce_20$29.$$arity = 3); + + Opal.def(self, '$_reduce_21', $Ruby30__reduce_21$30 = function $$_reduce_21(val, _values, result) { + var self = this; + + + result = self.builder.$alias(val['$[]'](0), self.builder.$gvar(val['$[]'](1)), self.builder.$gvar(val['$[]'](2))); + return result; + }, $Ruby30__reduce_21$30.$$arity = 3); + + Opal.def(self, '$_reduce_22', $Ruby30__reduce_22$31 = function $$_reduce_22(val, _values, result) { + var self = this; + + + result = self.builder.$alias(val['$[]'](0), self.builder.$gvar(val['$[]'](1)), self.builder.$back_ref(val['$[]'](2))); + return result; + }, $Ruby30__reduce_22$31.$$arity = 3); + + Opal.def(self, '$_reduce_23', $Ruby30__reduce_23$32 = function $$_reduce_23(val, _values, result) { + var self = this; + + + self.$diagnostic("error", "nth_ref_alias", nil, val['$[]'](2)); + return result; + }, $Ruby30__reduce_23$32.$$arity = 3); + + Opal.def(self, '$_reduce_24', $Ruby30__reduce_24$33 = function $$_reduce_24(val, _values, result) { + var self = this; + + + result = self.builder.$undef_method(val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_24$33.$$arity = 3); + + Opal.def(self, '$_reduce_25', $Ruby30__reduce_25$34 = function $$_reduce_25(val, _values, result) { + var self = this; + + + result = self.builder.$condition_mod(val['$[]'](0), nil, val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_25$34.$$arity = 3); + + Opal.def(self, '$_reduce_26', $Ruby30__reduce_26$35 = function $$_reduce_26(val, _values, result) { + var self = this; + + + result = self.builder.$condition_mod(nil, val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_26$35.$$arity = 3); + + Opal.def(self, '$_reduce_27', $Ruby30__reduce_27$36 = function $$_reduce_27(val, _values, result) { + var self = this; + + + result = self.builder.$loop_mod("while", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_27$36.$$arity = 3); + + Opal.def(self, '$_reduce_28', $Ruby30__reduce_28$37 = function $$_reduce_28(val, _values, result) { + var self = this; + + + result = self.builder.$loop_mod("until", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_28$37.$$arity = 3); + + Opal.def(self, '$_reduce_29', $Ruby30__reduce_29$38 = function $$_reduce_29(val, _values, result) { + var self = this, rescue_body = nil; + + + rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); + result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); + return result; + }, $Ruby30__reduce_29$38.$$arity = 3); + + Opal.def(self, '$_reduce_30', $Ruby30__reduce_30$39 = function $$_reduce_30(val, _values, result) { + var self = this; + + + result = self.builder.$postexe(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_30$39.$$arity = 3); + + Opal.def(self, '$_reduce_32', $Ruby30__reduce_32$40 = function $$_reduce_32(val, _values, result) { + var self = this; + + + result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_32$40.$$arity = 3); + + Opal.def(self, '$_reduce_33', $Ruby30__reduce_33$41 = function $$_reduce_33(val, _values, result) { + var self = this; + + + result = self.builder.$assign(val['$[]'](0), val['$[]'](1), self.builder.$array(nil, val['$[]'](2), nil)); + return result; + }, $Ruby30__reduce_33$41.$$arity = 3); + + Opal.def(self, '$_reduce_34', $Ruby30__reduce_34$42 = function $$_reduce_34(val, _values, result) { + var self = this, rescue_body = nil, begin_body = nil; + + + rescue_body = self.builder.$rescue_body(val['$[]'](3), nil, nil, nil, nil, val['$[]'](4)); + begin_body = self.builder.$begin_body(val['$[]'](2), [rescue_body]); + result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), begin_body); + return result; + }, $Ruby30__reduce_34$42.$$arity = 3); + + Opal.def(self, '$_reduce_35', $Ruby30__reduce_35$43 = function $$_reduce_35(val, _values, result) { + var self = this; + + + result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_35$43.$$arity = 3); + + Opal.def(self, '$_reduce_37', $Ruby30__reduce_37$44 = function $$_reduce_37(val, _values, result) { + var self = this; + + + result = self.builder.$assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_37$44.$$arity = 3); + + Opal.def(self, '$_reduce_38', $Ruby30__reduce_38$45 = function $$_reduce_38(val, _values, result) { + var self = this; + + + result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_38$45.$$arity = 3); + + Opal.def(self, '$_reduce_39', $Ruby30__reduce_39$46 = function $$_reduce_39(val, _values, result) { + var self = this; + + + result = self.builder.$op_assign(self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)), val['$[]'](4), val['$[]'](5)); + return result; + }, $Ruby30__reduce_39$46.$$arity = 3); + + Opal.def(self, '$_reduce_40', $Ruby30__reduce_40$47 = function $$_reduce_40(val, _values, result) { + var self = this; + + + result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + return result; + }, $Ruby30__reduce_40$47.$$arity = 3); + + Opal.def(self, '$_reduce_41', $Ruby30__reduce_41$48 = function $$_reduce_41(val, _values, result) { + var self = this; + + + result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + return result; + }, $Ruby30__reduce_41$48.$$arity = 3); + + Opal.def(self, '$_reduce_42', $Ruby30__reduce_42$49 = function $$_reduce_42(val, _values, result) { + var self = this, const$ = nil; + + + const$ = self.builder.$const_op_assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); + result = self.builder.$op_assign(const$, val['$[]'](3), val['$[]'](4)); + return result; + }, $Ruby30__reduce_42$49.$$arity = 3); + + Opal.def(self, '$_reduce_43', $Ruby30__reduce_43$50 = function $$_reduce_43(val, _values, result) { + var self = this; + + + result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + return result; + }, $Ruby30__reduce_43$50.$$arity = 3); + + Opal.def(self, '$_reduce_44', $Ruby30__reduce_44$51 = function $$_reduce_44(val, _values, result) { + var self = this; + + + self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_44$51.$$arity = 3); + + Opal.def(self, '$_reduce_46', $Ruby30__reduce_46$52 = function $$_reduce_46(val, _values, result) { + var self = this, rescue_body = nil; + + + rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); + result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); + return result; + }, $Ruby30__reduce_46$52.$$arity = 3); + + Opal.def(self, '$_reduce_49', $Ruby30__reduce_49$53 = function $$_reduce_49(val, _values, result) { + var self = this; + + + result = self.builder.$logical_op("and", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_49$53.$$arity = 3); + + Opal.def(self, '$_reduce_50', $Ruby30__reduce_50$54 = function $$_reduce_50(val, _values, result) { + var self = this; + + + result = self.builder.$logical_op("or", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_50$54.$$arity = 3); + + Opal.def(self, '$_reduce_51', $Ruby30__reduce_51$55 = function $$_reduce_51(val, _values, result) { + var self = this; + + + result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](2), nil); + return result; + }, $Ruby30__reduce_51$55.$$arity = 3); + + Opal.def(self, '$_reduce_52', $Ruby30__reduce_52$56 = function $$_reduce_52(val, _values, result) { + var self = this; + + + result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_52$56.$$arity = 3); + + Opal.def(self, '$_reduce_53', $Ruby30__reduce_53$57 = function $$_reduce_53(val, _values, result) { + var self = this, $writer = nil; + + + + $writer = ["expr_beg"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [false]; + $send(self.lexer, 'command_start=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.pattern_variables.$push(); + result = self.lexer.$in_kwarg(); + + $writer = [true]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_53$57.$$arity = 3); + + Opal.def(self, '$_reduce_54', $Ruby30__reduce_54$58 = function $$_reduce_54(val, _values, result) { + var self = this, $writer = nil; + + + self.pattern_variables.$pop(); + + $writer = [val['$[]'](2)]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$match_pattern(val['$[]'](0), val['$[]'](1), val['$[]'](3)); + return result; + }, $Ruby30__reduce_54$58.$$arity = 3); + + Opal.def(self, '$_reduce_55', $Ruby30__reduce_55$59 = function $$_reduce_55(val, _values, result) { + var self = this, $writer = nil; + + + + $writer = ["expr_beg"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [false]; + $send(self.lexer, 'command_start=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.pattern_variables.$push(); + result = self.lexer.$in_kwarg(); + + $writer = [true]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_55$59.$$arity = 3); + + Opal.def(self, '$_reduce_56', $Ruby30__reduce_56$60 = function $$_reduce_56(val, _values, result) { + var self = this, $writer = nil; + + + self.pattern_variables.$pop(); + + $writer = [val['$[]'](2)]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$match_pattern_p(val['$[]'](0), val['$[]'](1), val['$[]'](3)); + return result; + }, $Ruby30__reduce_56$60.$$arity = 3); + + Opal.def(self, '$_reduce_59', $Ruby30__reduce_59$61 = function $$_reduce_59(val, _values, result) { + var self = this; + + + self.lexer.$cond().$push(true); + return result; + }, $Ruby30__reduce_59$61.$$arity = 3); + + Opal.def(self, '$_reduce_60', $Ruby30__reduce_60$62 = function $$_reduce_60(val, _values, result) { + var self = this; + + + self.lexer.$cond().$pop(); + result = [val['$[]'](1), val['$[]'](2)]; + return result; + }, $Ruby30__reduce_60$62.$$arity = 3); + + Opal.def(self, '$_reduce_61', $Ruby30__reduce_61$63 = function $$_reduce_61(val, _values, result) { + var self = this; + + + self.static_env.$extend_static(); + self.lexer.$cmdarg().$push(false); + self.lexer.$cond().$push(false); + self.current_arg_stack.$push(nil); + result = val['$[]'](0); + return result; + }, $Ruby30__reduce_61$63.$$arity = 3); + + Opal.def(self, '$_reduce_62', $Ruby30__reduce_62$64 = function $$_reduce_62(val, _values, result) { + var self = this; + + + self.context.$push("def"); + result = [val['$[]'](0), val['$[]'](1)]; + return result; + }, $Ruby30__reduce_62$64.$$arity = 3); + + Opal.def(self, '$_reduce_63', $Ruby30__reduce_63$65 = function $$_reduce_63(val, _values, result) { + var self = this, $writer = nil; + + + + $writer = ["expr_fname"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_63$65.$$arity = 3); + + Opal.def(self, '$_reduce_64', $Ruby30__reduce_64$66 = function $$_reduce_64(val, _values, result) { + var self = this; + + + self.context.$push("defs"); + result = [val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](4)]; + return result; + }, $Ruby30__reduce_64$66.$$arity = 3); + + Opal.def(self, '$_reduce_68', $Ruby30__reduce_68$67 = function $$_reduce_68(val, _values, result) { + var self = this; + + + result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); + return result; + }, $Ruby30__reduce_68$67.$$arity = 3); + + Opal.def(self, '$_reduce_69', $Ruby30__reduce_69$68 = function $$_reduce_69(val, _values, result) { + var self = this; + + + self.context.$push("block"); + return result; + }, $Ruby30__reduce_69$68.$$arity = 3); + + Opal.def(self, '$_reduce_70', $Ruby30__reduce_70$69 = function $$_reduce_70(val, _values, result) { + var self = this; + + + result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); + self.context.$pop(); + return result; + }, $Ruby30__reduce_70$69.$$arity = 3); + + Opal.def(self, '$_reduce_72', $Ruby30__reduce_72$70 = function $$_reduce_72(val, _values, result) { + var self = this; + + + result = self.builder.$call_method(nil, nil, val['$[]'](0), nil, val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_72$70.$$arity = 3); + + Opal.def(self, '$_reduce_73', $Ruby30__reduce_73$71 = function $$_reduce_73(val, _values, result) { + var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; + + + method_call = self.builder.$call_method(nil, nil, val['$[]'](0), nil, val['$[]'](1), nil); + $b = val['$[]'](2), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + result = self.builder.$block(method_call, begin_t, args, body, end_t); + return result; + }, $Ruby30__reduce_73$71.$$arity = 3); + + Opal.def(self, '$_reduce_74', $Ruby30__reduce_74$72 = function $$_reduce_74(val, _values, result) { + var self = this; + + + result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); + return result; + }, $Ruby30__reduce_74$72.$$arity = 3); + + Opal.def(self, '$_reduce_75', $Ruby30__reduce_75$73 = function $$_reduce_75(val, _values, result) { + var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; + + + method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); + $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + result = self.builder.$block(method_call, begin_t, args, body, end_t); + return result; + }, $Ruby30__reduce_75$73.$$arity = 3); + + Opal.def(self, '$_reduce_76', $Ruby30__reduce_76$74 = function $$_reduce_76(val, _values, result) { + var self = this; + + + result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); + return result; + }, $Ruby30__reduce_76$74.$$arity = 3); + + Opal.def(self, '$_reduce_77', $Ruby30__reduce_77$75 = function $$_reduce_77(val, _values, result) { + var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; + + + method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); + $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + result = self.builder.$block(method_call, begin_t, args, body, end_t); + return result; + }, $Ruby30__reduce_77$75.$$arity = 3); + + Opal.def(self, '$_reduce_78', $Ruby30__reduce_78$76 = function $$_reduce_78(val, _values, result) { + var self = this; + + + result = self.builder.$keyword_cmd("super", val['$[]'](0), nil, val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_78$76.$$arity = 3); + + Opal.def(self, '$_reduce_79', $Ruby30__reduce_79$77 = function $$_reduce_79(val, _values, result) { + var self = this; + + + result = self.builder.$keyword_cmd("yield", val['$[]'](0), nil, val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_79$77.$$arity = 3); + + Opal.def(self, '$_reduce_80', $Ruby30__reduce_80$78 = function $$_reduce_80(val, _values, result) { + var self = this; + + + result = self.builder.$keyword_cmd("return", val['$[]'](0), nil, val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_80$78.$$arity = 3); + + Opal.def(self, '$_reduce_81', $Ruby30__reduce_81$79 = function $$_reduce_81(val, _values, result) { + var self = this; + + + result = self.builder.$keyword_cmd("break", val['$[]'](0), nil, val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_81$79.$$arity = 3); + + Opal.def(self, '$_reduce_82', $Ruby30__reduce_82$80 = function $$_reduce_82(val, _values, result) { + var self = this; + + + result = self.builder.$keyword_cmd("next", val['$[]'](0), nil, val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_82$80.$$arity = 3); + + Opal.def(self, '$_reduce_83', $Ruby30__reduce_83$81 = function $$_reduce_83(val, _values, result) { + var self = this; + + + result = self.builder.$multi_lhs(nil, val['$[]'](0), nil); + return result; + }, $Ruby30__reduce_83$81.$$arity = 3); + + Opal.def(self, '$_reduce_84', $Ruby30__reduce_84$82 = function $$_reduce_84(val, _values, result) { + var self = this; + + + result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_84$82.$$arity = 3); + + Opal.def(self, '$_reduce_85', $Ruby30__reduce_85$83 = function $$_reduce_85(val, _values, result) { + var self = this; + + + result = self.builder.$multi_lhs(nil, val['$[]'](0), nil); + return result; + }, $Ruby30__reduce_85$83.$$arity = 3); + + Opal.def(self, '$_reduce_86', $Ruby30__reduce_86$84 = function $$_reduce_86(val, _values, result) { + var self = this; + + + result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_86$84.$$arity = 3); + + Opal.def(self, '$_reduce_88', $Ruby30__reduce_88$85 = function $$_reduce_88(val, _values, result) { + var self = this; + + + result = val['$[]'](0).$push(val['$[]'](1)); + return result; + }, $Ruby30__reduce_88$85.$$arity = 3); + + Opal.def(self, '$_reduce_89', $Ruby30__reduce_89$86 = function $$_reduce_89(val, _values, result) { + var self = this; + + + result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1), val['$[]'](2))); + return result; + }, $Ruby30__reduce_89$86.$$arity = 3); + + Opal.def(self, '$_reduce_90', $Ruby30__reduce_90$87 = function $$_reduce_90(val, _values, result) { + var self = this; + + + result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1), val['$[]'](2))).$concat(val['$[]'](4)); + return result; + }, $Ruby30__reduce_90$87.$$arity = 3); + + Opal.def(self, '$_reduce_91', $Ruby30__reduce_91$88 = function $$_reduce_91(val, _values, result) { + var self = this; + + + result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1))); + return result; + }, $Ruby30__reduce_91$88.$$arity = 3); + + Opal.def(self, '$_reduce_92', $Ruby30__reduce_92$89 = function $$_reduce_92(val, _values, result) { + var self = this; + + + result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1))).$concat(val['$[]'](3)); + return result; + }, $Ruby30__reduce_92$89.$$arity = 3); + + Opal.def(self, '$_reduce_93', $Ruby30__reduce_93$90 = function $$_reduce_93(val, _values, result) { + var self = this; + + + result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; + return result; + }, $Ruby30__reduce_93$90.$$arity = 3); + + Opal.def(self, '$_reduce_94', $Ruby30__reduce_94$91 = function $$_reduce_94(val, _values, result) { + var self = this; + + + result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))].concat(Opal.to_a(val['$[]'](3))); + return result; + }, $Ruby30__reduce_94$91.$$arity = 3); + + Opal.def(self, '$_reduce_95', $Ruby30__reduce_95$92 = function $$_reduce_95(val, _values, result) { + var self = this; + + + result = [self.builder.$splat(val['$[]'](0))]; + return result; + }, $Ruby30__reduce_95$92.$$arity = 3); + + Opal.def(self, '$_reduce_96', $Ruby30__reduce_96$93 = function $$_reduce_96(val, _values, result) { + var self = this; + + + result = [self.builder.$splat(val['$[]'](0))].concat(Opal.to_a(val['$[]'](2))); + return result; + }, $Ruby30__reduce_96$93.$$arity = 3); + + Opal.def(self, '$_reduce_98', $Ruby30__reduce_98$94 = function $$_reduce_98(val, _values, result) { + var self = this; + + + result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_98$94.$$arity = 3); + + Opal.def(self, '$_reduce_99', $Ruby30__reduce_99$95 = function $$_reduce_99(val, _values, result) { + var self = this; + + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_99$95.$$arity = 3); + + Opal.def(self, '$_reduce_100', $Ruby30__reduce_100$96 = function $$_reduce_100(val, _values, result) { + var self = this; + + + result = val['$[]'](0)['$<<'](val['$[]'](1)); + return result; + }, $Ruby30__reduce_100$96.$$arity = 3); + + Opal.def(self, '$_reduce_101', $Ruby30__reduce_101$97 = function $$_reduce_101(val, _values, result) { + var self = this; + + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_101$97.$$arity = 3); + + Opal.def(self, '$_reduce_102', $Ruby30__reduce_102$98 = function $$_reduce_102(val, _values, result) { + var self = this; + + + result = val['$[]'](0)['$<<'](val['$[]'](2)); + return result; + }, $Ruby30__reduce_102$98.$$arity = 3); + + Opal.def(self, '$_reduce_103', $Ruby30__reduce_103$99 = function $$_reduce_103(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(val['$[]'](0)); + return result; + }, $Ruby30__reduce_103$99.$$arity = 3); + + Opal.def(self, '$_reduce_104', $Ruby30__reduce_104$100 = function $$_reduce_104(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(val['$[]'](0)); + return result; + }, $Ruby30__reduce_104$100.$$arity = 3); + + Opal.def(self, '$_reduce_105', $Ruby30__reduce_105$101 = function $$_reduce_105(val, _values, result) { + var self = this; + + + result = self.builder.$index_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_105$101.$$arity = 3); + + Opal.def(self, '$_reduce_106', $Ruby30__reduce_106$102 = function $$_reduce_106(val, _values, result) { + var self = this; + + + if ($truthy(val['$[]'](1)['$[]'](0)['$==']("anddot"))) { + self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1))}; + result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_106$102.$$arity = 3); + + Opal.def(self, '$_reduce_107', $Ruby30__reduce_107$103 = function $$_reduce_107(val, _values, result) { + var self = this; + + + result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_107$103.$$arity = 3); + + Opal.def(self, '$_reduce_108', $Ruby30__reduce_108$104 = function $$_reduce_108(val, _values, result) { + var self = this; + + + if ($truthy(val['$[]'](1)['$[]'](0)['$==']("anddot"))) { + self.$diagnostic("error", "csend_in_lhs_of_masgn", nil, val['$[]'](1))}; + result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_108$104.$$arity = 3); + + Opal.def(self, '$_reduce_109', $Ruby30__reduce_109$105 = function $$_reduce_109(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); + return result; + }, $Ruby30__reduce_109$105.$$arity = 3); + + Opal.def(self, '$_reduce_110', $Ruby30__reduce_110$106 = function $$_reduce_110(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); + return result; + }, $Ruby30__reduce_110$106.$$arity = 3); + + Opal.def(self, '$_reduce_111', $Ruby30__reduce_111$107 = function $$_reduce_111(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(val['$[]'](0)); + return result; + }, $Ruby30__reduce_111$107.$$arity = 3); + + Opal.def(self, '$_reduce_112', $Ruby30__reduce_112$108 = function $$_reduce_112(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(val['$[]'](0)); + return result; + }, $Ruby30__reduce_112$108.$$arity = 3); + + Opal.def(self, '$_reduce_113', $Ruby30__reduce_113$109 = function $$_reduce_113(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(val['$[]'](0)); + return result; + }, $Ruby30__reduce_113$109.$$arity = 3); + + Opal.def(self, '$_reduce_114', $Ruby30__reduce_114$110 = function $$_reduce_114(val, _values, result) { + var self = this; + + + result = self.builder.$index_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_114$110.$$arity = 3); + + Opal.def(self, '$_reduce_115', $Ruby30__reduce_115$111 = function $$_reduce_115(val, _values, result) { + var self = this; + + + result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_115$111.$$arity = 3); + + Opal.def(self, '$_reduce_116', $Ruby30__reduce_116$112 = function $$_reduce_116(val, _values, result) { + var self = this; + + + result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_116$112.$$arity = 3); + + Opal.def(self, '$_reduce_117', $Ruby30__reduce_117$113 = function $$_reduce_117(val, _values, result) { + var self = this; + + + result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_117$113.$$arity = 3); + + Opal.def(self, '$_reduce_118', $Ruby30__reduce_118$114 = function $$_reduce_118(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); + return result; + }, $Ruby30__reduce_118$114.$$arity = 3); + + Opal.def(self, '$_reduce_119', $Ruby30__reduce_119$115 = function $$_reduce_119(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); + return result; + }, $Ruby30__reduce_119$115.$$arity = 3); + + Opal.def(self, '$_reduce_120', $Ruby30__reduce_120$116 = function $$_reduce_120(val, _values, result) { + var self = this; + + + result = self.builder.$assignable(val['$[]'](0)); + return result; + }, $Ruby30__reduce_120$116.$$arity = 3); + + Opal.def(self, '$_reduce_121', $Ruby30__reduce_121$117 = function $$_reduce_121(val, _values, result) { + var self = this; + + + self.$diagnostic("error", "module_name_const", nil, val['$[]'](0)); + return result; + }, $Ruby30__reduce_121$117.$$arity = 3); + + Opal.def(self, '$_reduce_123', $Ruby30__reduce_123$118 = function $$_reduce_123(val, _values, result) { + var self = this; + + + result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_123$118.$$arity = 3); + + Opal.def(self, '$_reduce_124', $Ruby30__reduce_124$119 = function $$_reduce_124(val, _values, result) { + var self = this; + + + result = self.builder.$const(val['$[]'](0)); + return result; + }, $Ruby30__reduce_124$119.$$arity = 3); + + Opal.def(self, '$_reduce_125', $Ruby30__reduce_125$120 = function $$_reduce_125(val, _values, result) { + var self = this; + + + result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_125$120.$$arity = 3); + + Opal.def(self, '$_reduce_131', $Ruby30__reduce_131$121 = function $$_reduce_131(val, _values, result) { + var self = this; + - eof = self.source_pts.$size(); - return [false, ["$eof".$freeze(), self.$range(eof, eof)]]; - }; - }, TMP_Lexer_advance_36.$$arity = 0); - self.$protected(); - - Opal.defn(self, '$eof_codepoint?', TMP_Lexer_eof_codepoint$q_37 = function(point) { - var self = this; + result = self.builder.$symbol_internal(val['$[]'](0)); + return result; + }, $Ruby30__reduce_131$121.$$arity = 3); + + Opal.def(self, '$_reduce_133', $Ruby30__reduce_133$122 = function $$_reduce_133(val, _values, result) { + var self = this; - return [4, 26, 0]['$include?'](point) - }, TMP_Lexer_eof_codepoint$q_37.$$arity = 1); - - Opal.defn(self, '$version?', TMP_Lexer_version$q_38 = function($a_rest) { - var self = this, versions; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - versions = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - versions[$arg_idx - 0] = arguments[$arg_idx]; - } - return versions['$include?'](self.version) - }, TMP_Lexer_version$q_38.$$arity = -1); - - Opal.defn(self, '$stack_pop', TMP_Lexer_stack_pop_39 = function $$stack_pop() { - var self = this; + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_133$122.$$arity = 3); + + Opal.def(self, '$_reduce_134', $Ruby30__reduce_134$123 = function $$_reduce_134(val, _values, result) { + var self = this, $writer = nil; + + + $writer = ["expr_fname"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_134$123.$$arity = 3); - self.top = $rb_minus(self.top, 1); - return self.stack['$[]'](self.top); - }, TMP_Lexer_stack_pop_39.$$arity = 0); - if ($truthy((($a = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { + Opal.def(self, '$_reduce_135', $Ruby30__reduce_135$124 = function $$_reduce_135(val, _values, result) { + var self = this; + + + result = val['$[]'](0)['$<<'](val['$[]'](3)); + return result; + }, $Ruby30__reduce_135$124.$$arity = 3); - Opal.defn(self, '$encode_escape', TMP_Lexer_encode_escape_40 = function $$encode_escape(ord) { + Opal.def(self, '$_reduce_207', $Ruby30__reduce_207$125 = function $$_reduce_207(val, _values, result) { var self = this; - return ord.$chr().$force_encoding(self.source_buffer.$source().$encoding()) - }, TMP_Lexer_encode_escape_40.$$arity = 1) - } else { + + result = self.builder.$assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_207$125.$$arity = 3); - Opal.defn(self, '$encode_escape', TMP_Lexer_encode_escape_41 = function $$encode_escape(ord) { + Opal.def(self, '$_reduce_208', $Ruby30__reduce_208$126 = function $$_reduce_208(val, _values, result) { var self = this; - return ord.$chr() - }, TMP_Lexer_encode_escape_41.$$arity = 1) - }; - - Opal.defn(self, '$tok', TMP_Lexer_tok_42 = function $$tok(s, e) { - var self = this; + + result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_208$126.$$arity = 3); + + Opal.def(self, '$_reduce_209', $Ruby30__reduce_209$127 = function $$_reduce_209(val, _values, result) { + var self = this; - if (s == null) { - s = self.ts; - } - if (e == null) { - e = self.te; - } - return self.source_buffer.$slice(Opal.Range.$new(s,e, true)) - }, TMP_Lexer_tok_42.$$arity = -1); - - Opal.defn(self, '$range', TMP_Lexer_range_43 = function $$range(s, e) { - var self = this; + + result = self.builder.$op_assign(self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)), val['$[]'](4), val['$[]'](5)); + return result; + }, $Ruby30__reduce_209$127.$$arity = 3); + + Opal.def(self, '$_reduce_210', $Ruby30__reduce_210$128 = function $$_reduce_210(val, _values, result) { + var self = this; - if (s == null) { - s = self.ts; - } - if (e == null) { - e = self.te; - } - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'Source'), 'Range').$new(self.source_buffer, s, e) - }, TMP_Lexer_range_43.$$arity = -1); - - Opal.defn(self, '$emit', TMP_Lexer_emit_44 = function $$emit(type, value, s, e) { - var self = this, token = nil; + + result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + return result; + }, $Ruby30__reduce_210$128.$$arity = 3); + + Opal.def(self, '$_reduce_211', $Ruby30__reduce_211$129 = function $$_reduce_211(val, _values, result) { + var self = this; - if (value == null) { - value = self.$tok(); - } - if (s == null) { - s = self.ts; - } - if (e == null) { - e = self.te; - } + + result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + return result; + }, $Ruby30__reduce_211$129.$$arity = 3); - token = [type, [value, self.$range(s, e)]]; - self.token_queue.$push(token); - if ($truthy(self.tokens)) { - self.tokens.$push(token)}; - return token; - }, TMP_Lexer_emit_44.$$arity = -2); - - Opal.defn(self, '$emit_table', TMP_Lexer_emit_table_45 = function $$emit_table(table, s, e) { - var self = this, value = nil; + Opal.def(self, '$_reduce_212', $Ruby30__reduce_212$130 = function $$_reduce_212(val, _values, result) { + var self = this; - if (s == null) { - s = self.ts; - } - if (e == null) { - e = self.te; - } + + result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + return result; + }, $Ruby30__reduce_212$130.$$arity = 3); - value = self.$tok(s, e); - return self.$emit(table['$[]'](value), value, s, e); - }, TMP_Lexer_emit_table_45.$$arity = -2); - - Opal.defn(self, '$emit_do', TMP_Lexer_emit_do_46 = function $$emit_do(do_block) { - var $a, self = this; + Opal.def(self, '$_reduce_213', $Ruby30__reduce_213$131 = function $$_reduce_213(val, _values, result) { + var self = this, const$ = nil; - if (do_block == null) { - do_block = false; - } - if ($truthy(self.cond['$active?']())) { - return self.$emit("kDO_COND", "do".$freeze()) - } else if ($truthy(($truthy($a = self.cmdarg['$active?']()) ? $a : do_block))) { - return self.$emit("kDO_BLOCK", "do".$freeze()) - } else { - return self.$emit("kDO", "do".$freeze()) - } - }, TMP_Lexer_emit_do_46.$$arity = -1); - - Opal.defn(self, '$arg_or_cmdarg', TMP_Lexer_arg_or_cmdarg_47 = function $$arg_or_cmdarg() { - var self = this; + + const$ = self.builder.$const_op_assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); + result = self.builder.$op_assign(const$, val['$[]'](3), val['$[]'](4)); + return result; + }, $Ruby30__reduce_213$131.$$arity = 3); + + Opal.def(self, '$_reduce_214', $Ruby30__reduce_214$132 = function $$_reduce_214(val, _values, result) { + var self = this, const$ = nil; - if ($truthy(self.command_state)) { - return self.$class().$lex_en_expr_cmdarg() - } else { - return self.$class().$lex_en_expr_arg() - } - }, TMP_Lexer_arg_or_cmdarg_47.$$arity = 0); - - Opal.defn(self, '$emit_comment', TMP_Lexer_emit_comment_48 = function $$emit_comment(s, e) { - var self = this; + + const$ = self.builder.$const_op_assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); + result = self.builder.$op_assign(const$, val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_214$132.$$arity = 3); + + Opal.def(self, '$_reduce_215', $Ruby30__reduce_215$133 = function $$_reduce_215(val, _values, result) { + var self = this; - if (s == null) { - s = self.ts; - } - if (e == null) { - e = self.te; - } + + result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_215$133.$$arity = 3); - if ($truthy(self.comments)) { - self.comments.$push(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'Source'), 'Comment').$new(self.$range(s, e)))}; - if ($truthy(self.tokens)) { - self.tokens.$push(["tCOMMENT", [self.$tok(s, e), self.$range(s, e)]])}; - return nil; - }, TMP_Lexer_emit_comment_48.$$arity = -1); - - Opal.defn(self, '$diagnostic', TMP_Lexer_diagnostic_49 = function $$diagnostic(type, reason, arguments$, location, highlights) { - var self = this; + Opal.def(self, '$_reduce_216', $Ruby30__reduce_216$134 = function $$_reduce_216(val, _values, result) { + var self = this; - if (arguments$ == null) { - arguments$ = nil; - } - if (location == null) { - location = self.$range(); - } - if (highlights == null) { - highlights = []; - } - return self.diagnostics.$process(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'Diagnostic').$new(type, reason, arguments$, location, highlights)) - }, TMP_Lexer_diagnostic_49.$$arity = -3); - - Opal.defn(self, '$push_literal', TMP_Lexer_push_literal_50 = function $$push_literal($a_rest) { - var $b, self = this, args, new_literal = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_216$134.$$arity = 3); - new_literal = $send(Opal.const_get_relative($nesting, 'Literal'), 'new', [self].concat(Opal.to_a(args))); - self.literal_stack.$push(new_literal); - if ($truthy(($truthy($b = new_literal['$words?']()) ? new_literal['$backslash_delimited?']() : $b))) { - if ($truthy(new_literal['$interpolate?']())) { - return self.$class().$lex_en_interp_backslash_delimited_words() - } else { - return self.$class().$lex_en_plain_backslash_delimited_words() - } - } else if ($truthy(($truthy($b = new_literal['$words?']()) ? new_literal['$backslash_delimited?']()['$!']() : $b))) { - if ($truthy(new_literal['$interpolate?']())) { - return self.$class().$lex_en_interp_words() - } else { - return self.$class().$lex_en_plain_words() - } - } else if ($truthy(($truthy($b = new_literal['$words?']()['$!']()) ? new_literal['$backslash_delimited?']() : $b))) { - if ($truthy(new_literal['$interpolate?']())) { - return self.$class().$lex_en_interp_backslash_delimited() - } else { - return self.$class().$lex_en_plain_backslash_delimited() - } - } else if ($truthy(new_literal['$interpolate?']())) { - return self.$class().$lex_en_interp_string() - } else { - return self.$class().$lex_en_plain_string() - }; - }, TMP_Lexer_push_literal_50.$$arity = -1); - - Opal.defn(self, '$literal', TMP_Lexer_literal_51 = function $$literal() { - var self = this; + Opal.def(self, '$_reduce_217', $Ruby30__reduce_217$135 = function $$_reduce_217(val, _values, result) { + var self = this; - return self.literal_stack.$last() - }, TMP_Lexer_literal_51.$$arity = 0); - - Opal.defn(self, '$pop_literal', TMP_Lexer_pop_literal_52 = function $$pop_literal() { - var self = this, old_literal = nil; + + result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_217$135.$$arity = 3); + + Opal.def(self, '$_reduce_218', $Ruby30__reduce_218$136 = function $$_reduce_218(val, _values, result) { + var self = this; + + result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_218$136.$$arity = 3); - old_literal = self.literal_stack.$pop(); - self.dedent_level = old_literal.$dedent_level(); - if (old_literal.$type()['$==']("tREGEXP_BEG")) { - return self.$class().$lex_en_regexp_modifiers() - } else { - return self.$class().$lex_en_expr_end() - }; - }, TMP_Lexer_pop_literal_52.$$arity = 0); - Opal.const_set($nesting[0], 'PUNCTUATION', $hash2(["=", "&", "|", "!", "^", "+", "-", "*", "/", "%", "~", ",", ";", ".", "..", "...", "[", "]", "(", ")", "?", ":", "&&", "||", "-@", "+@", "~@", "**", "->", "=~", "!~", "==", "!=", ">", ">>", ">=", "<", "<<", "<=", "=>", "::", "===", "<=>", "[]", "[]=", "{", "}", "`", "!@", "&."], {"=": "tEQL", "&": "tAMPER2", "|": "tPIPE", "!": "tBANG", "^": "tCARET", "+": "tPLUS", "-": "tMINUS", "*": "tSTAR2", "/": "tDIVIDE", "%": "tPERCENT", "~": "tTILDE", ",": "tCOMMA", ";": "tSEMI", ".": "tDOT", "..": "tDOT2", "...": "tDOT3", "[": "tLBRACK2", "]": "tRBRACK", "(": "tLPAREN2", ")": "tRPAREN", "?": "tEH", ":": "tCOLON", "&&": "tANDOP", "||": "tOROP", "-@": "tUMINUS", "+@": "tUPLUS", "~@": "tTILDE", "**": "tPOW", "->": "tLAMBDA", "=~": "tMATCH", "!~": "tNMATCH", "==": "tEQ", "!=": "tNEQ", ">": "tGT", ">>": "tRSHFT", ">=": "tGEQ", "<": "tLT", "<<": "tLSHFT", "<=": "tLEQ", "=>": "tASSOC", "::": "tCOLON2", "===": "tEQQ", "<=>": "tCMP", "[]": "tAREF", "[]=": "tASET", "{": "tLCURLY", "}": "tRCURLY", "`": "tBACK_REF2", "!@": "tBANG", "&.": "tANDDOT"})); - Opal.const_set($nesting[0], 'PUNCTUATION_BEGIN', $hash2(["&", "*", "**", "+", "-", "::", "(", "{", "["], {"&": "tAMPER", "*": "tSTAR", "**": "tDSTAR", "+": "tUPLUS", "-": "tUMINUS", "::": "tCOLON3", "(": "tLPAREN", "{": "tLBRACE", "[": "tLBRACK"})); - Opal.const_set($nesting[0], 'KEYWORDS', $hash2(["if", "unless", "while", "until", "rescue", "defined?", "BEGIN", "END"], {"if": "kIF_MOD", "unless": "kUNLESS_MOD", "while": "kWHILE_MOD", "until": "kUNTIL_MOD", "rescue": "kRESCUE_MOD", "defined?": "kDEFINED", "BEGIN": "klBEGIN", "END": "klEND"})); - Opal.const_set($nesting[0], 'KEYWORDS_BEGIN', $hash2(["if", "unless", "while", "until", "rescue", "defined?"], {"if": "kIF", "unless": "kUNLESS", "while": "kWHILE", "until": "kUNTIL", "rescue": "kRESCUE", "defined?": "kDEFINED"})); - return $send(["class", "module", "def", "undef", "begin", "end", "then", "elsif", "else", "ensure", "case", "when", "for", "break", "next", "redo", "retry", "in", "do", "return", "yield", "super", "self", "nil", "true", "false", "and", "or", "not", "alias", "__FILE__", "__LINE__", "__ENCODING__"], 'each', [], (TMP_Lexer_53 = function(keyword){var self = TMP_Lexer_53.$$s || this; -if (keyword == null) keyword = nil; - - $writer = [keyword, (($writer = [keyword, "" + "k" + (keyword.$upcase())]), $send(Opal.const_get_relative($nesting, 'KEYWORDS'), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])]; - $send(Opal.const_get_relative($nesting, 'KEYWORDS_BEGIN'), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_Lexer_53.$$s = self, TMP_Lexer_53.$$arity = 1, TMP_Lexer_53)); - })(Opal.const_get_relative($nesting, 'Parser'), null, $nesting) -}; + Opal.def(self, '$_reduce_219', $Ruby30__reduce_219$137 = function $$_reduce_219(val, _values, result) { + var self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/lexer/literal"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; + + result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_219$137.$$arity = 3); + + Opal.def(self, '$_reduce_220', $Ruby30__reduce_220$138 = function $$_reduce_220(val, _values, result) { + var self = this; - Opal.add_stubs(['$attr_reader', '$attr_accessor', '$coerce_encoding', '$include?', '$send', '$+', '$[]', '$fetch', '$==', '$!', '$heredoc?', '$start_with?', '$freeze', '$clear_buffer', '$emit_start_tok', '$type', '$words?', '$=~', '$delimiter?', '$-', '$extend_space', '$!=', '$flush_string', '$emit', '$each_char', '$===', '$%', '$nil?', '$>', '$empty?', '$extend_content', '$protected', '$lstrip', '$force_encoding', '$dup', '$encoding', '$source', '$source_buffer', '$length']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + + result = self.builder.$range_inclusive(nil, val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_220$138.$$arity = 3); + + Opal.def(self, '$_reduce_221', $Ruby30__reduce_221$139 = function $$_reduce_221(val, _values, result) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + result = self.builder.$range_exclusive(nil, val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_221$139.$$arity = 3); + + Opal.def(self, '$_reduce_222', $Ruby30__reduce_222$140 = function $$_reduce_222(val, _values, result) { + var self = this; - (function($base, $super, $parent_nesting) { - function $Literal(){}; - var self = $Literal = $klass($base, $super, 'Literal', $Literal); + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_222$140.$$arity = 3); + + Opal.def(self, '$_reduce_223', $Ruby30__reduce_223$141 = function $$_reduce_223(val, _values, result) { + var self = this; + + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_223$141.$$arity = 3); + + Opal.def(self, '$_reduce_224', $Ruby30__reduce_224$142 = function $$_reduce_224(val, _values, result) { + var self = this; + + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_224$142.$$arity = 3); + + Opal.def(self, '$_reduce_225', $Ruby30__reduce_225$143 = function $$_reduce_225(val, _values, result) { + var self = this; + + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_225$143.$$arity = 3); + + Opal.def(self, '$_reduce_226', $Ruby30__reduce_226$144 = function $$_reduce_226(val, _values, result) { + var self = this; + + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_226$144.$$arity = 3); + + Opal.def(self, '$_reduce_227', $Ruby30__reduce_227$145 = function $$_reduce_227(val, _values, result) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Literal_initialize_1, TMP_Literal_interpolate$q_2, TMP_Literal_words$q_3, TMP_Literal_regexp$q_4, TMP_Literal_heredoc$q_5, TMP_Literal_backslash_delimited$q_6, TMP_Literal_type_7, TMP_Literal_munge_escape$q_8, TMP_Literal_nest_and_try_closing_9, TMP_Literal_infer_indent_level_11, TMP_Literal_start_interp_brace_12, TMP_Literal_end_interp_brace_and_try_closing_13, TMP_Literal_extend_string_14, TMP_Literal_flush_string_15, TMP_Literal_extend_content_16, TMP_Literal_extend_space_17, TMP_Literal_delimiter$q_18, TMP_Literal_coerce_encoding_19, TMP_Literal_clear_buffer_20, TMP_Literal_emit_start_tok_21, TMP_Literal_emit_22; + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_227$145.$$arity = 3); + + Opal.def(self, '$_reduce_228', $Ruby30__reduce_228$146 = function $$_reduce_228(val, _values, result) { + var self = this; - def.lexer = def.start_tok = def.str_type = def.monolithic = def.interpolate = def.heredoc_e = def.end_delim = def.start_delim = def.nesting = def.label_allowed = def.buffer = def.str_s = def.dedent_body = def.interp_braces = def.buffer_s = def.buffer_e = def.space_emitted = def.indent = nil; + + result = self.builder.$unary_op(val['$[]'](0), self.builder.$binary_op(val['$[]'](1), val['$[]'](2), val['$[]'](3))); + return result; + }, $Ruby30__reduce_228$146.$$arity = 3); - Opal.const_set($nesting[0], 'DELIMITERS', $hash2(["(", "[", "{", "<"], {"(": ")".$force_encoding("ASCII-8BIT"), "[": "]".$force_encoding("ASCII-8BIT"), "{": "}".$force_encoding("ASCII-8BIT"), "<": ">".$force_encoding("ASCII-8BIT")})); - Opal.const_set($nesting[0], 'TYPES', $hash2(["'", "<<'", "%q", "\"", "<<\"", "%", "%Q", "%w", "%W", "%i", "%I", ":'", "%s", ":\"", "/", "%r", "%x", "`", "<<`"], {"'": ["tSTRING_BEG", false], "<<'": ["tSTRING_BEG", false], "%q": ["tSTRING_BEG", false], "\"": ["tSTRING_BEG", true], "<<\"": ["tSTRING_BEG", true], "%": ["tSTRING_BEG", true], "%Q": ["tSTRING_BEG", true], "%w": ["tQWORDS_BEG", false], "%W": ["tWORDS_BEG", true], "%i": ["tQSYMBOLS_BEG", false], "%I": ["tSYMBOLS_BEG", true], ":'": ["tSYMBEG", false], "%s": ["tSYMBEG", false], ":\"": ["tSYMBEG", true], "/": ["tREGEXP_BEG", true], "%r": ["tREGEXP_BEG", true], "%x": ["tXSTRING_BEG", true], "`": ["tXSTRING_BEG", true], "<<`": ["tXSTRING_BEG", true]})); - self.$attr_reader("heredoc_e", "str_s", "dedent_level"); - self.$attr_accessor("saved_herebody_s"); + Opal.def(self, '$_reduce_229', $Ruby30__reduce_229$147 = function $$_reduce_229(val, _values, result) { + var self = this; + + + result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_229$147.$$arity = 3); - Opal.defn(self, '$initialize', TMP_Literal_initialize_1 = function $$initialize(lexer, str_type, delimiter, str_s, heredoc_e, indent, dedent_body, label_allowed) { - var $a, $b, self = this; + Opal.def(self, '$_reduce_230', $Ruby30__reduce_230$148 = function $$_reduce_230(val, _values, result) { + var self = this; - if (heredoc_e == null) { - heredoc_e = nil; - } - if (indent == null) { - indent = false; - } - if (dedent_body == null) { - dedent_body = false; - } - if (label_allowed == null) { - label_allowed = false; - } - self.lexer = lexer; - self.nesting = 1; - str_type = self.$coerce_encoding(str_type); - delimiter = self.$coerce_encoding(delimiter); - if ($truthy(Opal.const_get_relative($nesting, 'TYPES')['$include?'](str_type))) { - } else { - lexer.$send("diagnostic", "error", "unexpected_percent_str", $hash2(["type"], {"type": str_type}), self.lexer.$send("range", str_s, $rb_plus(str_s, 2))) - }; - self.str_type = str_type; - self.str_s = str_s; - $b = Opal.const_get_relative($nesting, 'TYPES')['$[]'](str_type), $a = Opal.to_ary($b), (self.start_tok = ($a[0] == null ? nil : $a[0])), (self.interpolate = ($a[1] == null ? nil : $a[1])), $b; - self.start_delim = (function() {if ($truthy(Opal.const_get_relative($nesting, 'DELIMITERS')['$include?'](delimiter))) { - return delimiter - } else { - return nil - }; return nil; })(); - self.end_delim = Opal.const_get_relative($nesting, 'DELIMITERS').$fetch(delimiter, delimiter); - self.heredoc_e = heredoc_e; - self.indent = indent; - self.label_allowed = label_allowed; - self.dedent_body = dedent_body; - self.dedent_level = nil; - self.interp_braces = 0; - self.space_emitted = true; - self.monolithic = ($truthy($a = (($b = self.start_tok['$==']("tSTRING_BEG")) ? ["'".$force_encoding("ASCII-8BIT"), "\"".$force_encoding("ASCII-8BIT")]['$include?'](str_type) : self.start_tok['$==']("tSTRING_BEG"))) ? self['$heredoc?']()['$!']() : $a); - if ($truthy(self.str_type['$start_with?']("%".$force_encoding("ASCII-8BIT").$freeze()))) { - self.str_type = $rb_plus(self.str_type, delimiter)}; - self.$clear_buffer(); - if ($truthy(self.monolithic)) { - return nil - } else { - return self.$emit_start_tok() - }; - }, TMP_Literal_initialize_1.$$arity = -5); + result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_230$148.$$arity = 3); - Opal.defn(self, '$interpolate?', TMP_Literal_interpolate$q_2 = function() { + Opal.def(self, '$_reduce_231', $Ruby30__reduce_231$149 = function $$_reduce_231(val, _values, result) { var self = this; - return self.interpolate - }, TMP_Literal_interpolate$q_2.$$arity = 0); + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_231$149.$$arity = 3); - Opal.defn(self, '$words?', TMP_Literal_words$q_3 = function() { - var $a, $b, $c, self = this; + Opal.def(self, '$_reduce_232', $Ruby30__reduce_232$150 = function $$_reduce_232(val, _values, result) { + var self = this; - return ($truthy($a = ($truthy($b = ($truthy($c = self.$type()['$==']("tWORDS_BEG")) ? $c : self.$type()['$==']("tQWORDS_BEG"))) ? $b : self.$type()['$==']("tSYMBOLS_BEG"))) ? $a : self.$type()['$==']("tQSYMBOLS_BEG")) - }, TMP_Literal_words$q_3.$$arity = 0); + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_232$150.$$arity = 3); - Opal.defn(self, '$regexp?', TMP_Literal_regexp$q_4 = function() { + Opal.def(self, '$_reduce_233', $Ruby30__reduce_233$151 = function $$_reduce_233(val, _values, result) { var self = this; - return self.$type()['$==']("tREGEXP_BEG") - }, TMP_Literal_regexp$q_4.$$arity = 0); + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_233$151.$$arity = 3); - Opal.defn(self, '$heredoc?', TMP_Literal_heredoc$q_5 = function() { + Opal.def(self, '$_reduce_234', $Ruby30__reduce_234$152 = function $$_reduce_234(val, _values, result) { var self = this; - return self.heredoc_e['$!']()['$!']() - }, TMP_Literal_heredoc$q_5.$$arity = 0); + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_234$152.$$arity = 3); - Opal.defn(self, '$backslash_delimited?', TMP_Literal_backslash_delimited$q_6 = function() { + Opal.def(self, '$_reduce_236', $Ruby30__reduce_236$153 = function $$_reduce_236(val, _values, result) { var self = this; - return self.end_delim['$==']("\\".$force_encoding("ASCII-8BIT").$freeze()) - }, TMP_Literal_backslash_delimited$q_6.$$arity = 0); + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_236$153.$$arity = 3); - Opal.defn(self, '$type', TMP_Literal_type_7 = function $$type() { + Opal.def(self, '$_reduce_237', $Ruby30__reduce_237$154 = function $$_reduce_237(val, _values, result) { var self = this; - return self.start_tok - }, TMP_Literal_type_7.$$arity = 0); + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_237$154.$$arity = 3); - Opal.defn(self, '$munge_escape?', TMP_Literal_munge_escape$q_8 = function(character) { - var $a, self = this; + Opal.def(self, '$_reduce_238', $Ruby30__reduce_238$155 = function $$_reduce_238(val, _values, result) { + var self = this; - character = self.$coerce_encoding(character); - if ($truthy(($truthy($a = self['$words?']()) ? character['$=~'](/[ \t\v\r\f\n]/) : $a))) { - return true - } else { - return ["\\".$force_encoding("ASCII-8BIT").$freeze(), self.start_delim, self.end_delim]['$include?'](character) - }; - }, TMP_Literal_munge_escape$q_8.$$arity = 1); + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_238$155.$$arity = 3); - Opal.defn(self, '$nest_and_try_closing', TMP_Literal_nest_and_try_closing_9 = function $$nest_and_try_closing(delimiter, ts, te, lookahead) { - var $a, $b, $c, $d, self = this; + Opal.def(self, '$_reduce_239', $Ruby30__reduce_239$156 = function $$_reduce_239(val, _values, result) { + var self = this; - if (lookahead == null) { - lookahead = nil; - } - delimiter = self.$coerce_encoding(delimiter); - if ($truthy(($truthy($a = self.start_delim) ? self.start_delim['$=='](delimiter) : $a))) { - self.nesting = $rb_plus(self.nesting, 1) - } else if ($truthy(self['$delimiter?'](delimiter))) { - self.nesting = $rb_minus(self.nesting, 1)}; - if (self.nesting['$=='](0)) { - - if ($truthy(self['$words?']())) { - self.$extend_space(ts, ts)}; - if ($truthy(($truthy($a = ($truthy($b = ($truthy($c = ($truthy($d = lookahead) ? self.label_allowed : $d)) ? lookahead['$[]'](0)['$=='](":".$force_encoding("ASCII-8BIT")) : $c)) ? lookahead['$[]'](1)['$!='](":".$force_encoding("ASCII-8BIT")) : $b)) ? self.start_tok['$==']("tSTRING_BEG") : $a))) { - - self.$flush_string(); - return self.$emit("tLABEL_END", self.end_delim, ts, $rb_plus(te, 1)); - } else if ($truthy(self.monolithic)) { - return self.$emit("tSTRING", self.buffer, self.str_s, te) - } else { - - if ($truthy(self['$heredoc?']())) { - } else { - self.$flush_string() - }; - return self.$emit("tSTRING_END", self.end_delim, ts, te); - }; - } else { - return nil - }; - }, TMP_Literal_nest_and_try_closing_9.$$arity = -4); + result = self.builder.$match_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_239$156.$$arity = 3); - Opal.defn(self, '$infer_indent_level', TMP_Literal_infer_indent_level_11 = function $$infer_indent_level(line) { - var TMP_10, self = this, indent_level = nil; + Opal.def(self, '$_reduce_240', $Ruby30__reduce_240$157 = function $$_reduce_240(val, _values, result) { + var self = this; - if ($truthy(self.dedent_body['$!']())) { - return nil}; - indent_level = 0; - return (function(){var $brk = Opal.new_brk(); try {return $send(line, 'each_char', [], (TMP_10 = function(char$){var self = TMP_10.$$s || this, $a, $case = nil; - if (self.dedent_level == null) self.dedent_level = nil; -if (char$ == null) char$ = nil; - return (function() {$case = char$; - if (" "['$===']($case)) {return (indent_level = $rb_plus(indent_level, 1))} - else if ("\t"['$===']($case)) {return (indent_level = $rb_plus(indent_level, $rb_minus(8, indent_level['$%'](8))))} - else { - if ($truthy(($truthy($a = self.dedent_level['$nil?']()) ? $a : $rb_gt(self.dedent_level, indent_level)))) { - self.dedent_level = indent_level}; - - Opal.brk(nil, $brk);}})()}, TMP_10.$$s = self, TMP_10.$$brk = $brk, TMP_10.$$arity = 1, TMP_10)) - } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); - }, TMP_Literal_infer_indent_level_11.$$arity = 1); + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_240$157.$$arity = 3); - Opal.defn(self, '$start_interp_brace', TMP_Literal_start_interp_brace_12 = function $$start_interp_brace() { + Opal.def(self, '$_reduce_241', $Ruby30__reduce_241$158 = function $$_reduce_241(val, _values, result) { var self = this; - return (self.interp_braces = $rb_plus(self.interp_braces, 1)) - }, TMP_Literal_start_interp_brace_12.$$arity = 0); + + result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_241$158.$$arity = 3); - Opal.defn(self, '$end_interp_brace_and_try_closing', TMP_Literal_end_interp_brace_and_try_closing_13 = function $$end_interp_brace_and_try_closing() { + Opal.def(self, '$_reduce_242', $Ruby30__reduce_242$159 = function $$_reduce_242(val, _values, result) { var self = this; - self.interp_braces = $rb_minus(self.interp_braces, 1); + result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_242$159.$$arity = 3); + + Opal.def(self, '$_reduce_243', $Ruby30__reduce_243$160 = function $$_reduce_243(val, _values, result) { + var self = this; + - return self.interp_braces['$=='](0);; - }, TMP_Literal_end_interp_brace_and_try_closing_13.$$arity = 0); + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_243$160.$$arity = 3); - Opal.defn(self, '$extend_string', TMP_Literal_extend_string_14 = function $$extend_string(string, ts, te) { - var $a, self = this; + Opal.def(self, '$_reduce_244', $Ruby30__reduce_244$161 = function $$_reduce_244(val, _values, result) { + var self = this; - self.buffer_s = ($truthy($a = self.buffer_s) ? $a : ts); - self.buffer_e = te; - return (self.buffer = $rb_plus(self.buffer, string)); - }, TMP_Literal_extend_string_14.$$arity = 3); + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_244$161.$$arity = 3); - Opal.defn(self, '$flush_string', TMP_Literal_flush_string_15 = function $$flush_string() { + Opal.def(self, '$_reduce_245', $Ruby30__reduce_245$162 = function $$_reduce_245(val, _values, result) { var self = this; - if ($truthy(self.monolithic)) { - - self.$emit_start_tok(); - self.monolithic = false;}; - if ($truthy(self.buffer['$empty?']())) { - return nil - } else { - - self.$emit("tSTRING_CONTENT", self.buffer, self.buffer_s, self.buffer_e); - self.$clear_buffer(); - return self.$extend_content(); - }; - }, TMP_Literal_flush_string_15.$$arity = 0); + result = self.builder.$logical_op("and", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_245$162.$$arity = 3); - Opal.defn(self, '$extend_content', TMP_Literal_extend_content_16 = function $$extend_content() { + Opal.def(self, '$_reduce_246', $Ruby30__reduce_246$163 = function $$_reduce_246(val, _values, result) { var self = this; - return (self.space_emitted = false) - }, TMP_Literal_extend_content_16.$$arity = 0); + + result = self.builder.$logical_op("or", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_246$163.$$arity = 3); - Opal.defn(self, '$extend_space', TMP_Literal_extend_space_17 = function $$extend_space(ts, te) { + Opal.def(self, '$_reduce_247', $Ruby30__reduce_247$164 = function $$_reduce_247(val, _values, result) { var self = this; - self.$flush_string(); - if ($truthy(self.space_emitted)) { - return nil - } else { - - self.$emit("tSPACE", nil, ts, te); - return (self.space_emitted = true); - }; - }, TMP_Literal_extend_space_17.$$arity = 2); - self.$protected(); + result = self.builder.$keyword_cmd("defined?", val['$[]'](0), nil, [val['$[]'](2)], nil); + return result; + }, $Ruby30__reduce_247$164.$$arity = 3); - Opal.defn(self, '$delimiter?', TMP_Literal_delimiter$q_18 = function(delimiter) { + Opal.def(self, '$_reduce_248', $Ruby30__reduce_248$165 = function $$_reduce_248(val, _values, result) { var self = this; - if ($truthy(self.indent)) { - return self.end_delim['$=='](delimiter.$lstrip()) - } else { - return self.end_delim['$=='](delimiter) - } - }, TMP_Literal_delimiter$q_18.$$arity = 1); + + result = self.builder.$ternary(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](4), val['$[]'](5)); + return result; + }, $Ruby30__reduce_248$165.$$arity = 3); - Opal.defn(self, '$coerce_encoding', TMP_Literal_coerce_encoding_19 = function $$coerce_encoding(string) { - var $a, self = this; + Opal.def(self, '$_reduce_249', $Ruby30__reduce_249$166 = function $$_reduce_249(val, _values, result) { + var $a, $b, self = this, _def_t = nil, name_t = nil; - if ($truthy((($a = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - return string.$dup().$force_encoding(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY')) - } else { - return string - } - }, TMP_Literal_coerce_encoding_19.$$arity = 1); + + $b = val['$[]'](0), $a = Opal.to_ary($b), (_def_t = ($a[0] == null ? nil : $a[0])), (name_t = ($a[1] == null ? nil : $a[1])), $b; + self.$endless_method_name(name_t); + result = $send(self.builder, 'def_endless_method', Opal.to_a(val['$[]'](0)).concat([val['$[]'](1), val['$[]'](2), val['$[]'](3)])); + self.lexer.$cmdarg().$pop(); + self.lexer.$cond().$pop(); + self.static_env.$unextend(); + self.context.$pop(); + self.current_arg_stack.$pop(); + return result; + }, $Ruby30__reduce_249$166.$$arity = 3); - Opal.defn(self, '$clear_buffer', TMP_Literal_clear_buffer_20 = function $$clear_buffer() { - var $a, self = this; + Opal.def(self, '$_reduce_250', $Ruby30__reduce_250$167 = function $$_reduce_250(val, _values, result) { + var $a, $b, self = this, _def_t = nil, name_t = nil, rescue_body = nil, method_body = nil; - self.buffer = "".$force_encoding("ASCII-8BIT"); - if ($truthy((($a = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - self.buffer.$force_encoding(self.lexer.$source_buffer().$source().$encoding())}; - self.buffer_s = nil; - return (self.buffer_e = nil); - }, TMP_Literal_clear_buffer_20.$$arity = 0); + $b = val['$[]'](0), $a = Opal.to_ary($b), (_def_t = ($a[0] == null ? nil : $a[0])), (name_t = ($a[1] == null ? nil : $a[1])), $b; + self.$endless_method_name(name_t); + rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); + method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); + result = $send(self.builder, 'def_endless_method', Opal.to_a(val['$[]'](0)).concat([val['$[]'](1), val['$[]'](2), method_body])); + self.lexer.$cmdarg().$pop(); + self.lexer.$cond().$pop(); + self.static_env.$unextend(); + self.context.$pop(); + self.current_arg_stack.$pop(); + return result; + }, $Ruby30__reduce_250$167.$$arity = 3); - Opal.defn(self, '$emit_start_tok', TMP_Literal_emit_start_tok_21 = function $$emit_start_tok() { - var $a, self = this, str_e = nil; + Opal.def(self, '$_reduce_251', $Ruby30__reduce_251$168 = function $$_reduce_251(val, _values, result) { + var $a, $b, self = this, _def_t = nil, _recv = nil, _dot_t = nil, name_t = nil; - str_e = ($truthy($a = self.heredoc_e) ? $a : $rb_plus(self.str_s, self.str_type.$length())); - return self.$emit(self.start_tok, self.str_type, self.str_s, str_e); - }, TMP_Literal_emit_start_tok_21.$$arity = 0); - return (Opal.defn(self, '$emit', TMP_Literal_emit_22 = function $$emit(token, type, s, e) { - var self = this; + $b = val['$[]'](0), $a = Opal.to_ary($b), (_def_t = ($a[0] == null ? nil : $a[0])), (_recv = ($a[1] == null ? nil : $a[1])), (_dot_t = ($a[2] == null ? nil : $a[2])), (name_t = ($a[3] == null ? nil : $a[3])), $b; + self.$endless_method_name(name_t); + result = $send(self.builder, 'def_endless_singleton', Opal.to_a(val['$[]'](0)).concat([val['$[]'](1), val['$[]'](2), val['$[]'](3)])); + self.lexer.$cmdarg().$pop(); + self.lexer.$cond().$pop(); + self.static_env.$unextend(); + self.context.$pop(); + self.current_arg_stack.$pop(); + return result; + }, $Ruby30__reduce_251$168.$$arity = 3); + + Opal.def(self, '$_reduce_252', $Ruby30__reduce_252$169 = function $$_reduce_252(val, _values, result) { + var $a, $b, self = this, _def_t = nil, _recv = nil, _dot_t = nil, name_t = nil, rescue_body = nil, method_body = nil; - return self.lexer.$send("emit", token, type, s, e) - }, TMP_Literal_emit_22.$$arity = 4), nil) && 'emit'; - })(Opal.const_get_relative($nesting, 'Lexer'), null, $nesting) - })($nesting[0], $nesting) -}; + + $b = val['$[]'](0), $a = Opal.to_ary($b), (_def_t = ($a[0] == null ? nil : $a[0])), (_recv = ($a[1] == null ? nil : $a[1])), (_dot_t = ($a[2] == null ? nil : $a[2])), (name_t = ($a[3] == null ? nil : $a[3])), $b; + self.$endless_method_name(name_t); + rescue_body = self.builder.$rescue_body(val['$[]'](4), nil, nil, nil, nil, val['$[]'](5)); + method_body = self.builder.$begin_body(val['$[]'](3), [rescue_body]); + result = $send(self.builder, 'def_endless_singleton', Opal.to_a(val['$[]'](0)).concat([val['$[]'](1), val['$[]'](2), method_body])); + self.lexer.$cmdarg().$pop(); + self.lexer.$cond().$pop(); + self.static_env.$unextend(); + self.context.$pop(); + self.current_arg_stack.$pop(); + return result; + }, $Ruby30__reduce_252$169.$$arity = 3); + + Opal.def(self, '$_reduce_258', $Ruby30__reduce_258$170 = function $$_reduce_258(val, _values, result) { + var self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/lexer/stack_state"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_258$170.$$arity = 3); + + Opal.def(self, '$_reduce_259', $Ruby30__reduce_259$171 = function $$_reduce_259(val, _values, result) { + var self = this; - Opal.add_stubs(['$freeze', '$clear', '$|', '$<<', '$&', '$>>', '$==', '$push', '$pop', '$[]', '$to_s']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + + result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_259$171.$$arity = 3); + + Opal.def(self, '$_reduce_263', $Ruby30__reduce_263$172 = function $$_reduce_263(val, _values, result) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + result = val['$[]'](0)['$<<'](self.builder.$associate(nil, val['$[]'](2), nil)); + return result; + }, $Ruby30__reduce_263$172.$$arity = 3); + + Opal.def(self, '$_reduce_264', $Ruby30__reduce_264$173 = function $$_reduce_264(val, _values, result) { + var self = this; - (function($base, $super, $parent_nesting) { - function $StackState(){}; - var self = $StackState = $klass($base, $super, 'StackState', $StackState); + + result = [self.builder.$associate(nil, val['$[]'](0), nil)]; + return result; + }, $Ruby30__reduce_264$173.$$arity = 3); + + Opal.def(self, '$_reduce_266', $Ruby30__reduce_266$174 = function $$_reduce_266(val, _values, result) { + var self = this, rescue_body = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_StackState_initialize_1, TMP_StackState_clear_2, TMP_StackState_push_3, TMP_StackState_pop_4, TMP_StackState_lexpop_5, TMP_StackState_active$q_6, TMP_StackState_to_s_7; + + rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); + result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); + return result; + }, $Ruby30__reduce_266$174.$$arity = 3); + + Opal.def(self, '$_reduce_267', $Ruby30__reduce_267$175 = function $$_reduce_267(val, _values, result) { + var self = this; - def.stack = def.name = nil; + + result = val; + return result; + }, $Ruby30__reduce_267$175.$$arity = 3); + Opal.def(self, '$_reduce_268', $Ruby30__reduce_268$176 = function $$_reduce_268(val, _values, result) { + var self = this; + + + if ($truthy(self.static_env['$declared_forward_args?']())) { + } else { + self.$diagnostic("error", "unexpected_token", $hash2(["token"], {"token": "tBDOT3"}), val['$[]'](3)) + }; + result = [val['$[]'](0), [].concat(Opal.to_a(val['$[]'](1))).concat([self.builder.$forwarded_args(val['$[]'](3))]), val['$[]'](4)]; + return result; + }, $Ruby30__reduce_268$176.$$arity = 3); - Opal.defn(self, '$initialize', TMP_StackState_initialize_1 = function $$initialize(name) { + Opal.def(self, '$_reduce_269', $Ruby30__reduce_269$177 = function $$_reduce_269(val, _values, result) { var self = this; - self.name = name.$freeze(); - return self.$clear(); - }, TMP_StackState_initialize_1.$$arity = 1); + if ($truthy(self.static_env['$declared_forward_args?']())) { + } else { + self.$diagnostic("error", "unexpected_token", $hash2(["token"], {"token": "tBDOT3"}), val['$[]'](1)) + }; + result = [val['$[]'](0), [self.builder.$forwarded_args(val['$[]'](1))], val['$[]'](2)]; + return result; + }, $Ruby30__reduce_269$177.$$arity = 3); - Opal.defn(self, '$clear', TMP_StackState_clear_2 = function $$clear() { + Opal.def(self, '$_reduce_270', $Ruby30__reduce_270$178 = function $$_reduce_270(val, _values, result) { var self = this; - return (self.stack = 0) - }, TMP_StackState_clear_2.$$arity = 0); + + result = [nil, [], nil]; + return result; + }, $Ruby30__reduce_270$178.$$arity = 3); - Opal.defn(self, '$push', TMP_StackState_push_3 = function $$push(bit) { - var self = this, bit_value = nil; + Opal.def(self, '$_reduce_272', $Ruby30__reduce_272$179 = function $$_reduce_272(val, _values, result) { + var self = this; - bit_value = (function() {if ($truthy(bit)) { - return 1 - } else { - return 0 - }; return nil; })(); - self.stack = self.stack['$<<'](1)['$|'](bit_value); - return bit; - }, TMP_StackState_push_3.$$arity = 1); + result = []; + return result; + }, $Ruby30__reduce_272$179.$$arity = 3); - Opal.defn(self, '$pop', TMP_StackState_pop_4 = function $$pop() { - var self = this, bit_value = nil; + Opal.def(self, '$_reduce_275', $Ruby30__reduce_275$180 = function $$_reduce_275(val, _values, result) { + var self = this; - bit_value = self.stack['$&'](1); - self.stack = self.stack['$>>'](1); - return bit_value['$=='](1); - }, TMP_StackState_pop_4.$$arity = 0); + result = val['$[]'](0)['$<<'](self.builder.$associate(nil, val['$[]'](2), nil)); + return result; + }, $Ruby30__reduce_275$180.$$arity = 3); - Opal.defn(self, '$lexpop', TMP_StackState_lexpop_5 = function $$lexpop() { - var $a, self = this; + Opal.def(self, '$_reduce_276', $Ruby30__reduce_276$181 = function $$_reduce_276(val, _values, result) { + var self = this; - return self.$push(($truthy($a = self.$pop()) ? $a : self.$pop())) - }, TMP_StackState_lexpop_5.$$arity = 0); + + result = [self.builder.$associate(nil, val['$[]'](0), nil)]; + return result; + }, $Ruby30__reduce_276$181.$$arity = 3); - Opal.defn(self, '$active?', TMP_StackState_active$q_6 = function() { + Opal.def(self, '$_reduce_277', $Ruby30__reduce_277$182 = function $$_reduce_277(val, _values, result) { var self = this; - return self.stack['$[]'](0)['$=='](1) - }, TMP_StackState_active$q_6.$$arity = 0); + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_277$182.$$arity = 3); - Opal.defn(self, '$to_s', TMP_StackState_to_s_7 = function $$to_s() { + Opal.def(self, '$_reduce_278', $Ruby30__reduce_278$183 = function $$_reduce_278(val, _values, result) { var self = this; - return "" + "[" + (self.stack.$to_s(2)) + " <= " + (self.name) + "]" - }, TMP_StackState_to_s_7.$$arity = 0); - return Opal.alias(self, "inspect", "to_s"); - })(Opal.const_get_relative($nesting, 'Lexer'), null, $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/lexer/dedenter"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_ge(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - - Opal.add_stubs(['$-', '$length', '$each_with_index', '$chars', '$==', '$>=', '$slice!', '$+', '$===', '$%']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $super, $parent_nesting) { - function $Dedenter(){}; - var self = $Dedenter = $klass($base, $super, 'Dedenter', $Dedenter); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Dedenter_initialize_1, TMP_Dedenter_dedent_3, TMP_Dedenter_interrupt_4; - - def.at_line_begin = nil; - + + result = val['$[]'](0).$concat(val['$[]'](1)); + return result; + }, $Ruby30__reduce_278$183.$$arity = 3); - Opal.defn(self, '$initialize', TMP_Dedenter_initialize_1 = function $$initialize(dedent_level) { + Opal.def(self, '$_reduce_279', $Ruby30__reduce_279$184 = function $$_reduce_279(val, _values, result) { var self = this; - self.dedent_level = dedent_level; - self.at_line_begin = true; - return (self.indent_level = 0); - }, TMP_Dedenter_initialize_1.$$arity = 1); + result = [self.builder.$associate(nil, val['$[]'](0), nil)]; + result.$concat(val['$[]'](1)); + return result; + }, $Ruby30__reduce_279$184.$$arity = 3); - Opal.defn(self, '$dedent', TMP_Dedenter_dedent_3 = function $$dedent(string) { - var TMP_2, self = this, space_begin = nil, space_end = nil, offset = nil, last_index = nil; + Opal.def(self, '$_reduce_280', $Ruby30__reduce_280$185 = function $$_reduce_280(val, _values, result) { + var self = this, assocs = nil; - space_begin = (space_end = (offset = 0)); - last_index = $rb_minus(string.$length(), 1); - $send(string.$chars(), 'each_with_index', [], (TMP_2 = function(char$, index){var self = TMP_2.$$s || this, $a, $case = nil; - if (self.at_line_begin == null) self.at_line_begin = nil; - if (self.indent_level == null) self.indent_level = nil; - if (self.dedent_level == null) self.dedent_level = nil; -if (char$ == null) char$ = nil;if (index == null) index = nil; - if ($truthy(self.at_line_begin)) { - - if ($truthy(($truthy($a = char$['$==']("\n")) ? $a : $rb_ge(self.indent_level, self.dedent_level)))) { - - string['$slice!'](Opal.Range.$new(space_begin,space_end, true)); - offset = $rb_plus(offset, $rb_minus($rb_minus(space_end, space_begin), 1)); - self.at_line_begin = false; - if (char$['$==']("\n")) { - return TMP_2.apply(null, $slice.call(arguments))};}; - return (function() {$case = char$; - if (" "['$===']($case)) { - self.indent_level = $rb_plus(self.indent_level, 1); - return (space_end = $rb_plus(space_end, 1));} - else if ("\t"['$===']($case)) { - self.indent_level = $rb_plus(self.indent_level, $rb_minus(8, self.indent_level['$%'](8))); - return (space_end = $rb_plus(space_end, 1));} - else { return nil }})(); - } else if ($truthy((($a = char$['$==']("\n")) ? index['$=='](last_index) : char$['$==']("\n")))) { - - self.at_line_begin = true; - self.indent_level = 0; - return (space_begin = (space_end = $rb_plus($rb_minus(index, offset), 1))); - } else { - return nil - }}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)); - if ($truthy(self.at_line_begin)) { - string['$slice!'](Opal.Range.$new(space_begin, space_end, false))}; - return nil; - }, TMP_Dedenter_dedent_3.$$arity = 1); - return (Opal.defn(self, '$interrupt', TMP_Dedenter_interrupt_4 = function $$interrupt() { + assocs = self.builder.$associate(nil, val['$[]'](2), nil); + result = val['$[]'](0)['$<<'](assocs); + result.$concat(val['$[]'](3)); + return result; + }, $Ruby30__reduce_280$185.$$arity = 3); + + Opal.def(self, '$_reduce_281', $Ruby30__reduce_281$186 = function $$_reduce_281(val, _values, result) { var self = this; - return (self.at_line_begin = false) - }, TMP_Dedenter_interrupt_4.$$arity = 0), nil) && 'interrupt'; - })(Opal.const_get_relative($nesting, 'Lexer'), null, $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/builders/default"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; - - Opal.add_stubs(['$attr_accessor', '$n0', '$token_map', '$numeric', '$n', '$value', '$new', '$loc', '$private', '$updated', '$-@', '$join', '$expression', '$string_value', '$delimited_string_map', '$unquoted_map', '$collapse_string_parts?', '$nil?', '$first', '$children', '$string_map', '$prefix_string_map', '$to_sym', '$collection_map', '$==', '$version', '$empty?', '$diagnostic', '$!', '$type', '$dedent', '$each', '$interrupt', '$map', '$uniq', '$sort', '$each_char', '$to_proc', '$static_regexp', '$message', '$<<', '$regexp_map', '$unary_op_map', '$===', '$binary_op_map', '$!=', '$%', '$size', '$last', '$each_slice', '$pair_keyword_map', '$pair_quoted_map', '$symbol_compose', '$variable_map', '$name', '$source_buffer', '$dup', '$line', '$declared?', '$static_env', '$var_send_map', '$constant_map', '$in_def?', '$declare', '$with_expression', '$with_operator', '$join_exprs', '$[]', '$module_definition_map', '$definition_map', '$keyword_map', '$check_duplicate_args', '$arg_prefix_map', '$kwarg_map', '$emit_procarg0', '$class', '$resize', '$-', '$end', '$call_type_for_dot', '$send_map', '$emit_lambda', '$expr_map', '$keyword', '$include?', '$block_map', '$array', '$+', '$send_index_map', '$send_binary_op_map', '$static_regexp_node', '$names', '$send_unary_op_map', '$check_condition', '$condition_map', '$keyword_mod_map', '$ternary_map', '$for_map', '$>', '$count', '$rescue_body_map', '$any?', '$eh_keyword_map', '$push', '$none?', '$one?', '$begin', '$<=', '$[]=', '$arg_name_collides?', '$begin_pos', '$end_pos', '$start_with?', '$static_string', '$encode', '$valid_encoding?', '$process', '$diagnostics', '$send']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $super, $parent_nesting) { - function $Default(){}; - var self = $Default = $klass($base, $super, 'Default', $Default); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Default_initialize_2, TMP_Default_nil_3, TMP_Default_true_4, TMP_Default_false_5, TMP_Default_integer_6, TMP_Default_float_7, TMP_Default_rational_8, TMP_Default_complex_9, TMP_Default_numeric_10, TMP_Default_negate_11, TMP_Default___LINE___12, TMP_Default_string_13, TMP_Default_string_internal_14, TMP_Default_string_compose_15, TMP_Default_character_16, TMP_Default___FILE___17, TMP_Default_symbol_18, TMP_Default_symbol_internal_19, TMP_Default_symbol_compose_20, TMP_Default_xstring_compose_21, TMP_Default_dedent_string_23, TMP_Default_regexp_options_24, TMP_Default_regexp_compose_25, TMP_Default_array_26, TMP_Default_splat_27, TMP_Default_word_28, TMP_Default_words_compose_29, TMP_Default_symbols_compose_31, TMP_Default_pair_32, TMP_Default_pair_list_18_34, TMP_Default_pair_keyword_35, TMP_Default_pair_quoted_36, TMP_Default_kwsplat_37, TMP_Default_associate_38, TMP_Default_range_inclusive_39, TMP_Default_range_exclusive_40, TMP_Default_self_41, TMP_Default_ident_42, TMP_Default_ivar_43, TMP_Default_gvar_44, TMP_Default_cvar_45, TMP_Default_back_ref_46, TMP_Default_nth_ref_47, TMP_Default_accessible_48, TMP_Default_const_49, TMP_Default_const_global_50, TMP_Default_const_fetch_51, TMP_Default___ENCODING___52, TMP_Default_assignable_53, TMP_Default_const_op_assignable_54, TMP_Default_assign_55, TMP_Default_op_assign_56, TMP_Default_multi_lhs_57, TMP_Default_multi_assign_58, TMP_Default_def_class_59, TMP_Default_def_sclass_60, TMP_Default_def_module_61, TMP_Default_def_method_62, TMP_Default_def_singleton_63, TMP_Default_undef_method_64, TMP_Default_alias_65, TMP_Default_args_66, TMP_Default_arg_67, TMP_Default_optarg_68, TMP_Default_restarg_69, TMP_Default_kwarg_70, TMP_Default_kwoptarg_71, TMP_Default_kwrestarg_72, TMP_Default_shadowarg_73, TMP_Default_blockarg_74, TMP_Default_procarg0_75, TMP_Default_arg_expr_76, TMP_Default_restarg_expr_77, TMP_Default_blockarg_expr_78, TMP_Default_objc_kwarg_79, TMP_Default_objc_restarg_80, TMP_Default_call_type_for_dot_81, TMP_Default_call_method_82, TMP_Default_call_lambda_83, TMP_Default_block_84, TMP_Default_block_pass_85, TMP_Default_objc_varargs_86, TMP_Default_attr_asgn_87, TMP_Default_index_88, TMP_Default_index_asgn_89, TMP_Default_binary_op_90, TMP_Default_match_op_92, TMP_Default_unary_op_93, TMP_Default_not_op_94, TMP_Default_logical_op_95, TMP_Default_condition_96, TMP_Default_condition_mod_97, TMP_Default_ternary_98, TMP_Default_when_99, TMP_Default_case_100, TMP_Default_loop_101, TMP_Default_loop_mod_102, TMP_Default_for_103, TMP_Default_keyword_cmd_104, TMP_Default_preexe_105, TMP_Default_postexe_106, TMP_Default_rescue_body_107, TMP_Default_begin_body_108, TMP_Default_compstmt_109, TMP_Default_begin_110, TMP_Default_begin_keyword_111, TMP_Default_check_condition_112, TMP_Default_check_duplicate_args_114, TMP_Default_arg_name_collides$q_115, TMP_Default_n_116, TMP_Default_n0_117, TMP_Default_join_exprs_118, TMP_Default_token_map_119, TMP_Default_delimited_string_map_120, TMP_Default_prefix_string_map_121, TMP_Default_unquoted_map_122, TMP_Default_pair_keyword_map_123, TMP_Default_pair_quoted_map_124, TMP_Default_expr_map_125, TMP_Default_collection_map_126, TMP_Default_string_map_127, TMP_Default_regexp_map_128, TMP_Default_constant_map_129, TMP_Default_variable_map_130, TMP_Default_binary_op_map_131, TMP_Default_unary_op_map_132, TMP_Default_arg_prefix_map_133, TMP_Default_kwarg_map_134, TMP_Default_module_definition_map_135, TMP_Default_definition_map_136, TMP_Default_send_map_137, TMP_Default_var_send_map_138, TMP_Default_send_binary_op_map_139, TMP_Default_send_unary_op_map_140, TMP_Default_send_index_map_141, TMP_Default_block_map_142, TMP_Default_keyword_map_143, TMP_Default_keyword_mod_map_144, TMP_Default_condition_map_145, TMP_Default_ternary_map_146, TMP_Default_for_map_147, TMP_Default_rescue_body_map_148, TMP_Default_eh_keyword_map_149, TMP_Default_static_string_151, TMP_Default_static_regexp_152, TMP_Default_static_regexp_node_153, TMP_Default_collapse_string_parts$q_154, TMP_Default_value_155, $a, TMP_Default_string_value_156, TMP_Default_loc_157, TMP_Default_diagnostic_158; - - def.parser = def.emit_file_line_as_literals = nil; + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_281$186.$$arity = 3); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - return self.$attr_accessor("emit_lambda") - })(Opal.get_singleton_class(self), $nesting); - self.emit_lambda = false; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - return self.$attr_accessor("emit_procarg0") - })(Opal.get_singleton_class(self), $nesting); - self.emit_procarg0 = false; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_modernize_1; - - return (Opal.defn(self, '$modernize', TMP_modernize_1 = function $$modernize() { - var self = this; + Opal.def(self, '$_reduce_282', $Ruby30__reduce_282$187 = function $$_reduce_282(val, _values, result) { + var self = this, last_token = nil, lookahead = nil, $ret_or_3 = nil, top = nil; + + last_token = self.last_token['$[]'](0); + lookahead = (function() {if ($truthy(($ret_or_3 = last_token['$==']("tLBRACK")))) { + return $ret_or_3 + } else { + return last_token['$==']("tLPAREN_ARG") + }; return nil; })(); + if ($truthy(lookahead)) { - self.emit_lambda = true; - return (self.emit_procarg0 = true); - }, TMP_modernize_1.$$arity = 0), nil) && 'modernize' - })(Opal.get_singleton_class(self), $nesting); - self.$attr_accessor("parser"); - self.$attr_accessor("emit_file_line_as_literals"); + top = self.lexer.$cmdarg().$pop(); + self.lexer.$cmdarg().$push(true); + self.lexer.$cmdarg().$push(top); + } else { + self.lexer.$cmdarg().$push(true) + }; + return result; + }, $Ruby30__reduce_282$187.$$arity = 3); - Opal.defn(self, '$initialize', TMP_Default_initialize_2 = function $$initialize() { - var self = this; + Opal.def(self, '$_reduce_283', $Ruby30__reduce_283$188 = function $$_reduce_283(val, _values, result) { + var self = this, last_token = nil, lookahead = nil, top = nil; - return (self.emit_file_line_as_literals = true) - }, TMP_Default_initialize_2.$$arity = 0); + + last_token = self.last_token['$[]'](0); + lookahead = last_token['$==']("tLBRACE_ARG"); + if ($truthy(lookahead)) { + + top = self.lexer.$cmdarg().$pop(); + self.lexer.$cmdarg().$pop(); + self.lexer.$cmdarg().$push(top); + } else { + self.lexer.$cmdarg().$pop() + }; + result = val['$[]'](1); + return result; + }, $Ruby30__reduce_283$188.$$arity = 3); - Opal.defn(self, '$nil', TMP_Default_nil_3 = function $$nil(nil_t) { + Opal.def(self, '$_reduce_284', $Ruby30__reduce_284$189 = function $$_reduce_284(val, _values, result) { var self = this; - return self.$n0("nil", self.$token_map(nil_t)) - }, TMP_Default_nil_3.$$arity = 1); + + result = self.builder.$block_pass(val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_284$189.$$arity = 3); - Opal.defn(self, '$true', TMP_Default_true_4 = function(true_t) { + Opal.def(self, '$_reduce_285', $Ruby30__reduce_285$190 = function $$_reduce_285(val, _values, result) { var self = this; - return self.$n0("true", self.$token_map(true_t)) - }, TMP_Default_true_4.$$arity = 1); + + result = [val['$[]'](1)]; + return result; + }, $Ruby30__reduce_285$190.$$arity = 3); - Opal.defn(self, '$false', TMP_Default_false_5 = function(false_t) { + Opal.def(self, '$_reduce_286', $Ruby30__reduce_286$191 = function $$_reduce_286(val, _values, result) { var self = this; - return self.$n0("false", self.$token_map(false_t)) - }, TMP_Default_false_5.$$arity = 1); + + result = []; + return result; + }, $Ruby30__reduce_286$191.$$arity = 3); - Opal.defn(self, '$integer', TMP_Default_integer_6 = function $$integer(integer_t) { + Opal.def(self, '$_reduce_287', $Ruby30__reduce_287$192 = function $$_reduce_287(val, _values, result) { var self = this; - return self.$numeric("int", integer_t) - }, TMP_Default_integer_6.$$arity = 1); + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_287$192.$$arity = 3); - Opal.defn(self, '$float', TMP_Default_float_7 = function(float_t) { + Opal.def(self, '$_reduce_288', $Ruby30__reduce_288$193 = function $$_reduce_288(val, _values, result) { var self = this; - return self.$numeric("float", float_t) - }, TMP_Default_float_7.$$arity = 1); + + result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; + return result; + }, $Ruby30__reduce_288$193.$$arity = 3); - Opal.defn(self, '$rational', TMP_Default_rational_8 = function $$rational(rational_t) { + Opal.def(self, '$_reduce_289', $Ruby30__reduce_289$194 = function $$_reduce_289(val, _values, result) { var self = this; - return self.$numeric("rational", rational_t) - }, TMP_Default_rational_8.$$arity = 1); + + result = val['$[]'](0)['$<<'](val['$[]'](2)); + return result; + }, $Ruby30__reduce_289$194.$$arity = 3); - Opal.defn(self, '$complex', TMP_Default_complex_9 = function $$complex(complex_t) { + Opal.def(self, '$_reduce_290', $Ruby30__reduce_290$195 = function $$_reduce_290(val, _values, result) { var self = this; - return self.$numeric("complex", complex_t) - }, TMP_Default_complex_9.$$arity = 1); + + result = val['$[]'](0)['$<<'](self.builder.$splat(val['$[]'](2), val['$[]'](3))); + return result; + }, $Ruby30__reduce_290$195.$$arity = 3); - Opal.defn(self, '$numeric', TMP_Default_numeric_10 = function $$numeric(kind, token) { + Opal.def(self, '$_reduce_291', $Ruby30__reduce_291$196 = function $$_reduce_291(val, _values, result) { var self = this; - return self.$n(kind, [self.$value(token)], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Operator').$new(nil, self.$loc(token))) - }, TMP_Default_numeric_10.$$arity = 2); - self.$private("numeric"); + + result = self.builder.$array(nil, val['$[]'](0), nil); + return result; + }, $Ruby30__reduce_291$196.$$arity = 3); - Opal.defn(self, '$negate', TMP_Default_negate_11 = function $$negate(uminus_t, numeric) { - var $a, self = this, value = nil, operator_loc = nil; + Opal.def(self, '$_reduce_293', $Ruby30__reduce_293$197 = function $$_reduce_293(val, _values, result) { + var self = this; - $a = [].concat(Opal.to_a(numeric)), (value = ($a[0] == null ? nil : $a[0])), $a; - operator_loc = self.$loc(uminus_t); - return numeric.$updated(nil, [value['$-@']()], $hash2(["location"], {"location": Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Operator').$new(operator_loc, operator_loc.$join(numeric.$loc().$expression()))})); - }, TMP_Default_negate_11.$$arity = 2); + result = val['$[]'](0)['$<<'](val['$[]'](2)); + return result; + }, $Ruby30__reduce_293$197.$$arity = 3); - Opal.defn(self, '$__LINE__', TMP_Default___LINE___12 = function $$__LINE__(__LINE__t) { + Opal.def(self, '$_reduce_294', $Ruby30__reduce_294$198 = function $$_reduce_294(val, _values, result) { var self = this; - return self.$n0("__LINE__", self.$token_map(__LINE__t)) - }, TMP_Default___LINE___12.$$arity = 1); + + result = val['$[]'](0)['$<<'](self.builder.$splat(val['$[]'](2), val['$[]'](3))); + return result; + }, $Ruby30__reduce_294$198.$$arity = 3); - Opal.defn(self, '$string', TMP_Default_string_13 = function $$string(string_t) { + Opal.def(self, '$_reduce_295', $Ruby30__reduce_295$199 = function $$_reduce_295(val, _values, result) { var self = this; - return self.$n("str", [self.$string_value(string_t)], self.$delimited_string_map(string_t)) - }, TMP_Default_string_13.$$arity = 1); + + result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; + return result; + }, $Ruby30__reduce_295$199.$$arity = 3); - Opal.defn(self, '$string_internal', TMP_Default_string_internal_14 = function $$string_internal(string_t) { + Opal.def(self, '$_reduce_306', $Ruby30__reduce_306$200 = function $$_reduce_306(val, _values, result) { var self = this; - return self.$n("str", [self.$string_value(string_t)], self.$unquoted_map(string_t)) - }, TMP_Default_string_internal_14.$$arity = 1); + + result = self.builder.$call_method(nil, nil, val['$[]'](0)); + return result; + }, $Ruby30__reduce_306$200.$$arity = 3); - Opal.defn(self, '$string_compose', TMP_Default_string_compose_15 = function $$string_compose(begin_t, parts, end_t) { - var $a, self = this; + Opal.def(self, '$_reduce_307', $Ruby30__reduce_307$201 = function $$_reduce_307(val, _values, result) { + var self = this; - if ($truthy(self['$collapse_string_parts?'](parts))) { - if ($truthy(($truthy($a = begin_t['$nil?']()) ? end_t['$nil?']() : $a))) { - return parts.$first() - } else { - return self.$n("str", parts.$first().$children(), self.$string_map(begin_t, parts, end_t)) - } - } else { - return self.$n("dstr", [].concat(Opal.to_a(parts)), self.$string_map(begin_t, parts, end_t)) - } - }, TMP_Default_string_compose_15.$$arity = 3); + + self.lexer.$cmdarg().$push(false); + return result; + }, $Ruby30__reduce_307$201.$$arity = 3); - Opal.defn(self, '$character', TMP_Default_character_16 = function $$character(char_t) { + Opal.def(self, '$_reduce_308', $Ruby30__reduce_308$202 = function $$_reduce_308(val, _values, result) { var self = this; - return self.$n("str", [self.$string_value(char_t)], self.$prefix_string_map(char_t)) - }, TMP_Default_character_16.$$arity = 1); + + self.lexer.$cmdarg().$pop(); + result = self.builder.$begin_keyword(val['$[]'](0), val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_308$202.$$arity = 3); - Opal.defn(self, '$__FILE__', TMP_Default___FILE___17 = function $$__FILE__(__FILE__t) { - var self = this; + Opal.def(self, '$_reduce_309', $Ruby30__reduce_309$203 = function $$_reduce_309(val, _values, result) { + var self = this, $writer = nil; - return self.$n0("__FILE__", self.$token_map(__FILE__t)) - }, TMP_Default___FILE___17.$$arity = 1); + + + $writer = ["expr_endarg"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_309$203.$$arity = 3); - Opal.defn(self, '$symbol', TMP_Default_symbol_18 = function $$symbol(symbol_t) { + Opal.def(self, '$_reduce_310', $Ruby30__reduce_310$204 = function $$_reduce_310(val, _values, result) { var self = this; - return self.$n("sym", [self.$string_value(symbol_t).$to_sym()], self.$prefix_string_map(symbol_t)) - }, TMP_Default_symbol_18.$$arity = 1); + + result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](3)); + return result; + }, $Ruby30__reduce_310$204.$$arity = 3); - Opal.defn(self, '$symbol_internal', TMP_Default_symbol_internal_19 = function $$symbol_internal(symbol_t) { - var self = this; + Opal.def(self, '$_reduce_311', $Ruby30__reduce_311$205 = function $$_reduce_311(val, _values, result) { + var self = this, $writer = nil; - return self.$n("sym", [self.$string_value(symbol_t).$to_sym()], self.$unquoted_map(symbol_t)) - }, TMP_Default_symbol_internal_19.$$arity = 1); + + + $writer = ["expr_endarg"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_311$205.$$arity = 3); - Opal.defn(self, '$symbol_compose', TMP_Default_symbol_compose_20 = function $$symbol_compose(begin_t, parts, end_t) { - var $a, self = this, str = nil; + Opal.def(self, '$_reduce_312', $Ruby30__reduce_312$206 = function $$_reduce_312(val, _values, result) { + var self = this; - if ($truthy(self['$collapse_string_parts?'](parts))) { - - str = parts.$first(); - return self.$n("sym", [str.$children().$first().$to_sym()], self.$collection_map(begin_t, str.$loc().$expression(), end_t)); - } else if ($truthy((($a = self.parser.$version()['$=='](18)) ? parts['$empty?']() : self.parser.$version()['$=='](18)))) { - return self.$diagnostic("error", "empty_symbol", nil, self.$loc(begin_t).$join(self.$loc(end_t))) - } else { - return self.$n("dsym", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)) - } - }, TMP_Default_symbol_compose_20.$$arity = 3); + + result = self.builder.$begin(val['$[]'](0), nil, val['$[]'](3)); + return result; + }, $Ruby30__reduce_312$206.$$arity = 3); - Opal.defn(self, '$xstring_compose', TMP_Default_xstring_compose_21 = function $$xstring_compose(begin_t, parts, end_t) { + Opal.def(self, '$_reduce_313', $Ruby30__reduce_313$207 = function $$_reduce_313(val, _values, result) { var self = this; - return self.$n("xstr", [].concat(Opal.to_a(parts)), self.$string_map(begin_t, parts, end_t)) - }, TMP_Default_xstring_compose_21.$$arity = 3); + + result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_313$207.$$arity = 3); - Opal.defn(self, '$dedent_string', TMP_Default_dedent_string_23 = function $$dedent_string(node, dedent_level) { - var $a, TMP_22, self = this, dedenter = nil, str = nil; + Opal.def(self, '$_reduce_314', $Ruby30__reduce_314$208 = function $$_reduce_314(val, _values, result) { + var self = this; - if ($truthy(dedent_level['$nil?']()['$!']())) { - - dedenter = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Lexer'), 'Dedenter').$new(dedent_level); - if (node.$type()['$==']("str")) { - - str = node.$children().$first(); - dedenter.$dedent(str); - } else if ($truthy(($truthy($a = node.$type()['$==']("dstr")) ? $a : node.$type()['$==']("xstr")))) { - $send(node.$children(), 'each', [], (TMP_22 = function(str_node){var self = TMP_22.$$s || this; -if (str_node == null) str_node = nil; - if (str_node.$type()['$==']("str")) { - - str = str_node.$children().$first(); - return dedenter.$dedent(str); - } else { - return dedenter.$interrupt() - }}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22))};}; - return node; - }, TMP_Default_dedent_string_23.$$arity = 2); + result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_314$208.$$arity = 3); - Opal.defn(self, '$regexp_options', TMP_Default_regexp_options_24 = function $$regexp_options(regopt_t) { - var self = this, options = nil; + Opal.def(self, '$_reduce_315', $Ruby30__reduce_315$209 = function $$_reduce_315(val, _values, result) { + var self = this; - options = $send(self.$value(regopt_t).$each_char().$sort().$uniq(), 'map', [], "to_sym".$to_proc()); - return self.$n("regopt", options, self.$token_map(regopt_t)); - }, TMP_Default_regexp_options_24.$$arity = 1); + result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_315$209.$$arity = 3); - Opal.defn(self, '$regexp_compose', TMP_Default_regexp_compose_25 = function $$regexp_compose(begin_t, parts, end_t, options) { - var self = this, e = nil; + Opal.def(self, '$_reduce_316', $Ruby30__reduce_316$210 = function $$_reduce_316(val, _values, result) { + var self = this; + result = self.builder.$array(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_316$210.$$arity = 3); + + Opal.def(self, '$_reduce_317', $Ruby30__reduce_317$211 = function $$_reduce_317(val, _values, result) { + var self = this; + - try { - self.$static_regexp(parts, options) - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'RegexpError')])) {e = $err; - try { - self.$diagnostic("error", "invalid_regexp", $hash2(["message"], {"message": e.$message()}), self.$loc(begin_t).$join(self.$loc(end_t))) - } finally { Opal.pop_exception() } - } else { throw $err; } - };; - return self.$n("regexp", parts['$<<'](options), self.$regexp_map(begin_t, end_t, options)); - }, TMP_Default_regexp_compose_25.$$arity = 4); + result = self.builder.$associate(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_317$211.$$arity = 3); - Opal.defn(self, '$array', TMP_Default_array_26 = function $$array(begin_t, elements, end_t) { + Opal.def(self, '$_reduce_318', $Ruby30__reduce_318$212 = function $$_reduce_318(val, _values, result) { var self = this; - return self.$n("array", elements, self.$collection_map(begin_t, elements, end_t)) - }, TMP_Default_array_26.$$arity = 3); + + result = self.builder.$keyword_cmd("return", val['$[]'](0)); + return result; + }, $Ruby30__reduce_318$212.$$arity = 3); - Opal.defn(self, '$splat', TMP_Default_splat_27 = function $$splat(star_t, arg) { + Opal.def(self, '$_reduce_319', $Ruby30__reduce_319$213 = function $$_reduce_319(val, _values, result) { var self = this; - if (arg == null) { - arg = nil; - } - if ($truthy(arg['$nil?']())) { - return self.$n0("splat", self.$unary_op_map(star_t)) - } else { - return self.$n("splat", [arg], self.$unary_op_map(star_t, arg)) - } - }, TMP_Default_splat_27.$$arity = -2); + + result = self.builder.$keyword_cmd("yield", val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_319$213.$$arity = 3); - Opal.defn(self, '$word', TMP_Default_word_28 = function $$word(parts) { + Opal.def(self, '$_reduce_320', $Ruby30__reduce_320$214 = function $$_reduce_320(val, _values, result) { var self = this; - if ($truthy(self['$collapse_string_parts?'](parts))) { - return parts.$first() - } else { - return self.$n("dstr", [].concat(Opal.to_a(parts)), self.$collection_map(nil, parts, nil)) - } - }, TMP_Default_word_28.$$arity = 1); + + result = self.builder.$keyword_cmd("yield", val['$[]'](0), val['$[]'](1), [], val['$[]'](2)); + return result; + }, $Ruby30__reduce_320$214.$$arity = 3); - Opal.defn(self, '$words_compose', TMP_Default_words_compose_29 = function $$words_compose(begin_t, parts, end_t) { + Opal.def(self, '$_reduce_321', $Ruby30__reduce_321$215 = function $$_reduce_321(val, _values, result) { var self = this; - return self.$n("array", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)) - }, TMP_Default_words_compose_29.$$arity = 3); + + result = self.builder.$keyword_cmd("yield", val['$[]'](0)); + return result; + }, $Ruby30__reduce_321$215.$$arity = 3); - Opal.defn(self, '$symbols_compose', TMP_Default_symbols_compose_31 = function $$symbols_compose(begin_t, parts, end_t) { - var TMP_30, self = this; + Opal.def(self, '$_reduce_322', $Ruby30__reduce_322$216 = function $$_reduce_322(val, _values, result) { + var self = this; - parts = $send(parts, 'map', [], (TMP_30 = function(part){var self = TMP_30.$$s || this, $a, $case = nil, value = nil; -if (part == null) part = nil; - return (function() {$case = part.$type(); - if ("str"['$===']($case)) { - $a = [].concat(Opal.to_a(part)), (value = ($a[0] == null ? nil : $a[0])), $a; - return part.$updated("sym", [value.$to_sym()]);} - else if ("dstr"['$===']($case)) {return part.$updated("dsym")} - else {return part}})()}, TMP_30.$$s = self, TMP_30.$$arity = 1, TMP_30)); - return self.$n("array", [].concat(Opal.to_a(parts)), self.$collection_map(begin_t, parts, end_t)); - }, TMP_Default_symbols_compose_31.$$arity = 3); + result = self.builder.$keyword_cmd("defined?", val['$[]'](0), val['$[]'](2), [val['$[]'](3)], val['$[]'](4)); + return result; + }, $Ruby30__reduce_322$216.$$arity = 3); - Opal.defn(self, '$pair', TMP_Default_pair_32 = function $$pair(key, assoc_t, value) { + Opal.def(self, '$_reduce_323', $Ruby30__reduce_323$217 = function $$_reduce_323(val, _values, result) { var self = this; - return self.$n("pair", [key, value], self.$binary_op_map(key, assoc_t, value)) - }, TMP_Default_pair_32.$$arity = 3); + + result = self.builder.$not_op(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_323$217.$$arity = 3); - Opal.defn(self, '$pair_list_18', TMP_Default_pair_list_18_34 = function $$pair_list_18(list) { - var TMP_33, self = this; + Opal.def(self, '$_reduce_324', $Ruby30__reduce_324$218 = function $$_reduce_324(val, _values, result) { + var self = this; - if ($truthy(list.$size()['$%'](2)['$!='](0))) { - return self.$diagnostic("error", "odd_hash", nil, list.$last().$loc().$expression()) - } else { - return $send(list.$each_slice(2), 'map', [], (TMP_33 = function(key, value){var self = TMP_33.$$s || this; -if (key == null) key = nil;if (value == null) value = nil; - return self.$n("pair", [key, value], self.$binary_op_map(key, nil, value))}, TMP_33.$$s = self, TMP_33.$$arity = 2, TMP_33)) - } - }, TMP_Default_pair_list_18_34.$$arity = 1); + + result = self.builder.$not_op(val['$[]'](0), val['$[]'](1), nil, val['$[]'](2)); + return result; + }, $Ruby30__reduce_324$218.$$arity = 3); - Opal.defn(self, '$pair_keyword', TMP_Default_pair_keyword_35 = function $$pair_keyword(key_t, value) { - var $a, $b, self = this, key_map = nil, pair_map = nil, key = nil; + Opal.def(self, '$_reduce_325', $Ruby30__reduce_325$219 = function $$_reduce_325(val, _values, result) { + var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; - $b = self.$pair_keyword_map(key_t, value), $a = Opal.to_ary($b), (key_map = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; - key = self.$n("sym", [self.$value(key_t).$to_sym()], key_map); - return self.$n("pair", [key, value], pair_map); - }, TMP_Default_pair_keyword_35.$$arity = 2); + method_call = self.builder.$call_method(nil, nil, val['$[]'](0)); + $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + result = self.builder.$block(method_call, begin_t, args, body, end_t); + return result; + }, $Ruby30__reduce_325$219.$$arity = 3); - Opal.defn(self, '$pair_quoted', TMP_Default_pair_quoted_36 = function $$pair_quoted(begin_t, parts, end_t, value) { - var $a, $b, self = this, pair_map = nil, key = nil; + Opal.def(self, '$_reduce_327', $Ruby30__reduce_327$220 = function $$_reduce_327(val, _values, result) { + var $a, $b, self = this, begin_t = nil, args = nil, body = nil, end_t = nil; - $b = self.$pair_quoted_map(begin_t, end_t, value), $a = Opal.to_ary($b), (end_t = ($a[0] == null ? nil : $a[0])), (pair_map = ($a[1] == null ? nil : $a[1])), $b; - key = self.$symbol_compose(begin_t, parts, end_t); - return self.$n("pair", [key, value], pair_map); - }, TMP_Default_pair_quoted_36.$$arity = 4); + $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + result = self.builder.$block(val['$[]'](0), begin_t, args, body, end_t); + return result; + }, $Ruby30__reduce_327$220.$$arity = 3); - Opal.defn(self, '$kwsplat', TMP_Default_kwsplat_37 = function $$kwsplat(dstar_t, arg) { - var self = this; + Opal.def(self, '$_reduce_329', $Ruby30__reduce_329$221 = function $$_reduce_329(val, _values, result) { + var $a, $b, self = this, else_t = nil, else_ = nil; - return self.$n("kwsplat", [arg], self.$unary_op_map(dstar_t, arg)) - }, TMP_Default_kwsplat_37.$$arity = 2); + + $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + result = self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3), else_t, else_, val['$[]'](5)); + return result; + }, $Ruby30__reduce_329$221.$$arity = 3); - Opal.defn(self, '$associate', TMP_Default_associate_38 = function $$associate(begin_t, pairs, end_t) { - var self = this; + Opal.def(self, '$_reduce_330', $Ruby30__reduce_330$222 = function $$_reduce_330(val, _values, result) { + var $a, $b, self = this, else_t = nil, else_ = nil; - return self.$n("hash", [].concat(Opal.to_a(pairs)), self.$collection_map(begin_t, pairs, end_t)) - }, TMP_Default_associate_38.$$arity = 3); + + $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + result = self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), else_, else_t, val['$[]'](3), val['$[]'](5)); + return result; + }, $Ruby30__reduce_330$222.$$arity = 3); - Opal.defn(self, '$range_inclusive', TMP_Default_range_inclusive_39 = function $$range_inclusive(lhs, dot2_t, rhs) { + Opal.def(self, '$_reduce_331', $Ruby30__reduce_331$223 = function $$_reduce_331(val, _values, result) { var self = this; - return self.$n("irange", [lhs, rhs], self.$binary_op_map(lhs, dot2_t, rhs)) - }, TMP_Default_range_inclusive_39.$$arity = 3); + + result = $send(self.builder, 'loop', ["while", val['$[]'](0)].concat(Opal.to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); + return result; + }, $Ruby30__reduce_331$223.$$arity = 3); - Opal.defn(self, '$range_exclusive', TMP_Default_range_exclusive_40 = function $$range_exclusive(lhs, dot3_t, rhs) { + Opal.def(self, '$_reduce_332', $Ruby30__reduce_332$224 = function $$_reduce_332(val, _values, result) { var self = this; - return self.$n("erange", [lhs, rhs], self.$binary_op_map(lhs, dot3_t, rhs)) - }, TMP_Default_range_exclusive_40.$$arity = 3); + + result = $send(self.builder, 'loop', ["until", val['$[]'](0)].concat(Opal.to_a(val['$[]'](1))).concat([val['$[]'](2), val['$[]'](3)])); + return result; + }, $Ruby30__reduce_332$224.$$arity = 3); - Opal.defn(self, '$self', TMP_Default_self_41 = function $$self(token) { - var self = this; + Opal.def(self, '$_reduce_333', $Ruby30__reduce_333$225 = function $$_reduce_333(val, _values, result) { + var $a, $b, $c, self = this, when_bodies = nil, else_t = nil, else_body = nil; - return self.$n0("self", self.$token_map(token)) - }, TMP_Default_self_41.$$arity = 1); + + $a = [].concat(Opal.to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; + result = self.builder.$case(val['$[]'](0), val['$[]'](1), when_bodies, else_t, else_body, val['$[]'](4)); + return result; + }, $Ruby30__reduce_333$225.$$arity = 3); - Opal.defn(self, '$ident', TMP_Default_ident_42 = function $$ident(token) { - var self = this; + Opal.def(self, '$_reduce_334', $Ruby30__reduce_334$226 = function $$_reduce_334(val, _values, result) { + var $a, $b, $c, self = this, when_bodies = nil, else_t = nil, else_body = nil; - return self.$n("ident", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, TMP_Default_ident_42.$$arity = 1); + + $a = [].concat(Opal.to_a(val['$[]'](2))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; + result = self.builder.$case(val['$[]'](0), nil, when_bodies, else_t, else_body, val['$[]'](3)); + return result; + }, $Ruby30__reduce_334$226.$$arity = 3); - Opal.defn(self, '$ivar', TMP_Default_ivar_43 = function $$ivar(token) { - var self = this; + Opal.def(self, '$_reduce_335', $Ruby30__reduce_335$227 = function $$_reduce_335(val, _values, result) { + var $a, $b, $c, self = this, in_bodies = nil, else_t = nil, else_body = nil; - return self.$n("ivar", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, TMP_Default_ivar_43.$$arity = 1); + + $a = [].concat(Opal.to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (in_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; + result = self.builder.$case_match(val['$[]'](0), val['$[]'](1), in_bodies, else_t, else_body, val['$[]'](4)); + return result; + }, $Ruby30__reduce_335$227.$$arity = 3); - Opal.defn(self, '$gvar', TMP_Default_gvar_44 = function $$gvar(token) { + Opal.def(self, '$_reduce_336', $Ruby30__reduce_336$228 = function $$_reduce_336(val, _values, result) { var self = this; - return self.$n("gvar", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, TMP_Default_gvar_44.$$arity = 1); + + result = $send(self.builder, 'for', [val['$[]'](0), val['$[]'](1), val['$[]'](2)].concat(Opal.to_a(val['$[]'](3))).concat([val['$[]'](4), val['$[]'](5)])); + return result; + }, $Ruby30__reduce_336$228.$$arity = 3); - Opal.defn(self, '$cvar', TMP_Default_cvar_45 = function $$cvar(token) { + Opal.def(self, '$_reduce_337', $Ruby30__reduce_337$229 = function $$_reduce_337(val, _values, result) { var self = this; - return self.$n("cvar", [self.$value(token).$to_sym()], self.$variable_map(token)) - }, TMP_Default_cvar_45.$$arity = 1); + + self.static_env.$extend_static(); + self.lexer.$cmdarg().$push(false); + self.lexer.$cond().$push(false); + self.context.$push("class"); + return result; + }, $Ruby30__reduce_337$229.$$arity = 3); - Opal.defn(self, '$back_ref', TMP_Default_back_ref_46 = function $$back_ref(token) { - var self = this; + Opal.def(self, '$_reduce_338', $Ruby30__reduce_338$230 = function $$_reduce_338(val, _values, result) { + var $a, $b, self = this, lt_t = nil, superclass = nil; - return self.$n("back_ref", [self.$value(token).$to_sym()], self.$token_map(token)) - }, TMP_Default_back_ref_46.$$arity = 1); + + if ($truthy(self.context['$class_definition_allowed?']())) { + } else { + self.$diagnostic("error", "class_in_def", nil, val['$[]'](0)) + }; + $b = val['$[]'](2), $a = Opal.to_ary($b), (lt_t = ($a[0] == null ? nil : $a[0])), (superclass = ($a[1] == null ? nil : $a[1])), $b; + result = self.builder.$def_class(val['$[]'](0), val['$[]'](1), lt_t, superclass, val['$[]'](4), val['$[]'](5)); + self.lexer.$cmdarg().$pop(); + self.lexer.$cond().$pop(); + self.static_env.$unextend(); + self.context.$pop(); + return result; + }, $Ruby30__reduce_338$230.$$arity = 3); - Opal.defn(self, '$nth_ref', TMP_Default_nth_ref_47 = function $$nth_ref(token) { + Opal.def(self, '$_reduce_339', $Ruby30__reduce_339$231 = function $$_reduce_339(val, _values, result) { var self = this; - return self.$n("nth_ref", [self.$value(token)], self.$token_map(token)) - }, TMP_Default_nth_ref_47.$$arity = 1); + + self.static_env.$extend_static(); + self.lexer.$cmdarg().$push(false); + self.lexer.$cond().$push(false); + self.context.$push("sclass"); + return result; + }, $Ruby30__reduce_339$231.$$arity = 3); - Opal.defn(self, '$accessible', TMP_Default_accessible_48 = function $$accessible(node) { - var $a, self = this, $case = nil, name = nil; + Opal.def(self, '$_reduce_340', $Ruby30__reduce_340$232 = function $$_reduce_340(val, _values, result) { + var self = this; - return (function() {$case = node.$type(); - if ("__FILE__"['$===']($case)) {if ($truthy(self.emit_file_line_as_literals)) { - return self.$n("str", [node.$loc().$expression().$source_buffer().$name()], node.$loc().$dup()) - } else { - return node - }} - else if ("__LINE__"['$===']($case)) {if ($truthy(self.emit_file_line_as_literals)) { - return self.$n("int", [node.$loc().$expression().$line()], node.$loc().$dup()) - } else { - return node - }} - else if ("__ENCODING__"['$===']($case)) {return self.$n("const", [self.$n("const", [nil, "Encoding"], nil), "UTF_8"], node.$loc().$dup())} - else if ("ident"['$===']($case)) { - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; - if ($truthy(self.parser.$static_env()['$declared?'](name))) { - return node.$updated("lvar") - } else { - - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; - return self.$n("send", [nil, name], self.$var_send_map(node)); - };} - else {return node}})() - }, TMP_Default_accessible_48.$$arity = 1); + + result = self.builder.$def_sclass(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](5), val['$[]'](6)); + self.lexer.$cmdarg().$pop(); + self.lexer.$cond().$pop(); + self.static_env.$unextend(); + self.context.$pop(); + return result; + }, $Ruby30__reduce_340$232.$$arity = 3); - Opal.defn(self, '$const', TMP_Default_const_49 = function(name_t) { + Opal.def(self, '$_reduce_341', $Ruby30__reduce_341$233 = function $$_reduce_341(val, _values, result) { var self = this; - return self.$n("const", [nil, self.$value(name_t).$to_sym()], self.$constant_map(nil, nil, name_t)) - }, TMP_Default_const_49.$$arity = 1); + + self.static_env.$extend_static(); + self.lexer.$cmdarg().$push(false); + self.context.$push("module"); + return result; + }, $Ruby30__reduce_341$233.$$arity = 3); - Opal.defn(self, '$const_global', TMP_Default_const_global_50 = function $$const_global(t_colon3, name_t) { - var self = this, cbase = nil; + Opal.def(self, '$_reduce_342', $Ruby30__reduce_342$234 = function $$_reduce_342(val, _values, result) { + var self = this; - cbase = self.$n0("cbase", self.$token_map(t_colon3)); - return self.$n("const", [cbase, self.$value(name_t).$to_sym()], self.$constant_map(cbase, t_colon3, name_t)); - }, TMP_Default_const_global_50.$$arity = 2); + if ($truthy(self.context['$module_definition_allowed?']())) { + } else { + self.$diagnostic("error", "module_in_def", nil, val['$[]'](0)) + }; + result = self.builder.$def_module(val['$[]'](0), val['$[]'](1), val['$[]'](3), val['$[]'](4)); + self.lexer.$cmdarg().$pop(); + self.static_env.$unextend(); + self.context.$pop(); + return result; + }, $Ruby30__reduce_342$234.$$arity = 3); - Opal.defn(self, '$const_fetch', TMP_Default_const_fetch_51 = function $$const_fetch(scope, t_colon2, name_t) { + Opal.def(self, '$_reduce_343', $Ruby30__reduce_343$235 = function $$_reduce_343(val, _values, result) { var self = this; - return self.$n("const", [scope, self.$value(name_t).$to_sym()], self.$constant_map(scope, t_colon2, name_t)) - }, TMP_Default_const_fetch_51.$$arity = 3); + + result = $send(self.builder, 'def_method', Opal.to_a(val['$[]'](0)).concat([val['$[]'](1), val['$[]'](2), val['$[]'](3)])); + self.lexer.$cmdarg().$pop(); + self.lexer.$cond().$pop(); + self.static_env.$unextend(); + self.context.$pop(); + self.current_arg_stack.$pop(); + return result; + }, $Ruby30__reduce_343$235.$$arity = 3); - Opal.defn(self, '$__ENCODING__', TMP_Default___ENCODING___52 = function $$__ENCODING__(__ENCODING__t) { + Opal.def(self, '$_reduce_344', $Ruby30__reduce_344$236 = function $$_reduce_344(val, _values, result) { var self = this; - return self.$n0("__ENCODING__", self.$token_map(__ENCODING__t)) - }, TMP_Default___ENCODING___52.$$arity = 1); + + result = $send(self.builder, 'def_singleton', Opal.to_a(val['$[]'](0)).concat([val['$[]'](1), val['$[]'](2), val['$[]'](3)])); + self.lexer.$cmdarg().$pop(); + self.lexer.$cond().$pop(); + self.static_env.$unextend(); + self.context.$pop(); + self.current_arg_stack.$pop(); + return result; + }, $Ruby30__reduce_344$236.$$arity = 3); - Opal.defn(self, '$assignable', TMP_Default_assignable_53 = function $$assignable(node) { - var $a, self = this, $case = nil, name = nil; + Opal.def(self, '$_reduce_345', $Ruby30__reduce_345$237 = function $$_reduce_345(val, _values, result) { + var self = this; - return (function() {$case = node.$type(); - if ("cvar"['$===']($case)) {return node.$updated("cvasgn")} - else if ("ivar"['$===']($case)) {return node.$updated("ivasgn")} - else if ("gvar"['$===']($case)) {return node.$updated("gvasgn")} - else if ("const"['$===']($case)) { - if ($truthy(self.parser['$in_def?']())) { - self.$diagnostic("error", "dynamic_const", nil, node.$loc().$expression())}; - return node.$updated("casgn");} - else if ("ident"['$===']($case)) { - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), $a; - self.parser.$static_env().$declare(name); - return node.$updated("lvasgn");} - else if ("nil"['$===']($case) || "self"['$===']($case) || "true"['$===']($case) || "false"['$===']($case) || "__FILE__"['$===']($case) || "__LINE__"['$===']($case) || "__ENCODING__"['$===']($case)) {return self.$diagnostic("error", "invalid_assignment", nil, node.$loc().$expression())} - else if ("back_ref"['$===']($case) || "nth_ref"['$===']($case)) {return self.$diagnostic("error", "backref_assignment", nil, node.$loc().$expression())} - else { return nil }})() - }, TMP_Default_assignable_53.$$arity = 1); + + result = self.builder.$keyword_cmd("break", val['$[]'](0)); + return result; + }, $Ruby30__reduce_345$237.$$arity = 3); - Opal.defn(self, '$const_op_assignable', TMP_Default_const_op_assignable_54 = function $$const_op_assignable(node) { + Opal.def(self, '$_reduce_346', $Ruby30__reduce_346$238 = function $$_reduce_346(val, _values, result) { var self = this; - return node.$updated("casgn") - }, TMP_Default_const_op_assignable_54.$$arity = 1); + + result = self.builder.$keyword_cmd("next", val['$[]'](0)); + return result; + }, $Ruby30__reduce_346$238.$$arity = 3); - Opal.defn(self, '$assign', TMP_Default_assign_55 = function $$assign(lhs, eql_t, rhs) { + Opal.def(self, '$_reduce_347', $Ruby30__reduce_347$239 = function $$_reduce_347(val, _values, result) { var self = this; - return lhs['$<<'](rhs).$updated(nil, nil, $hash2(["location"], {"location": lhs.$loc().$with_operator(self.$loc(eql_t)).$with_expression(self.$join_exprs(lhs, rhs))})) - }, TMP_Default_assign_55.$$arity = 3); + + result = self.builder.$keyword_cmd("redo", val['$[]'](0)); + return result; + }, $Ruby30__reduce_347$239.$$arity = 3); - Opal.defn(self, '$op_assign', TMP_Default_op_assign_56 = function $$op_assign(lhs, op_t, rhs) { - var self = this, $case = nil, operator = nil, source_map = nil; + Opal.def(self, '$_reduce_348', $Ruby30__reduce_348$240 = function $$_reduce_348(val, _values, result) { + var self = this; - return (function() {$case = lhs.$type(); - if ("gvasgn"['$===']($case) || "ivasgn"['$===']($case) || "lvasgn"['$===']($case) || "cvasgn"['$===']($case) || "casgn"['$===']($case) || "send"['$===']($case) || "csend"['$===']($case)) { - operator = self.$value(op_t)['$[]']($range(0, -1, false)).$to_sym(); - source_map = lhs.$loc().$with_operator(self.$loc(op_t)).$with_expression(self.$join_exprs(lhs, rhs)); - return (function() {$case = operator; - if ("&&"['$===']($case)) {return self.$n("and_asgn", [lhs, rhs], source_map)} - else if ("||"['$===']($case)) {return self.$n("or_asgn", [lhs, rhs], source_map)} - else {return self.$n("op_asgn", [lhs, operator, rhs], source_map)}})();} - else if ("back_ref"['$===']($case) || "nth_ref"['$===']($case)) {return self.$diagnostic("error", "backref_assignment", nil, lhs.$loc().$expression())} - else { return nil }})() - }, TMP_Default_op_assign_56.$$arity = 3); + + result = self.builder.$keyword_cmd("retry", val['$[]'](0)); + return result; + }, $Ruby30__reduce_348$240.$$arity = 3); - Opal.defn(self, '$multi_lhs', TMP_Default_multi_lhs_57 = function $$multi_lhs(begin_t, items, end_t) { + Opal.def(self, '$_reduce_350', $Ruby30__reduce_350$241 = function $$_reduce_350(val, _values, result) { var self = this; - return self.$n("mlhs", [].concat(Opal.to_a(items)), self.$collection_map(begin_t, items, end_t)) - }, TMP_Default_multi_lhs_57.$$arity = 3); + + if ($truthy(self.context['$in_class?']())) { + self.$diagnostic("error", "invalid_return", nil, val['$[]'](0))}; + return result; + }, $Ruby30__reduce_350$241.$$arity = 3); - Opal.defn(self, '$multi_assign', TMP_Default_multi_assign_58 = function $$multi_assign(lhs, eql_t, rhs) { + Opal.def(self, '$_reduce_353', $Ruby30__reduce_353$242 = function $$_reduce_353(val, _values, result) { var self = this; - return self.$n("masgn", [lhs, rhs], self.$binary_op_map(lhs, eql_t, rhs)) - }, TMP_Default_multi_assign_58.$$arity = 3); + + result = val['$[]'](1); + return result; + }, $Ruby30__reduce_353$242.$$arity = 3); - Opal.defn(self, '$def_class', TMP_Default_def_class_59 = function $$def_class(class_t, name, lt_t, superclass, body, end_t) { - var self = this; + Opal.def(self, '$_reduce_357', $Ruby30__reduce_357$243 = function $$_reduce_357(val, _values, result) { + var $a, $b, self = this, else_t = nil, else_ = nil; - return self.$n("class", [name, superclass, body], self.$module_definition_map(class_t, name, lt_t, end_t)) - }, TMP_Default_def_class_59.$$arity = 6); + + $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; + result = [val['$[]'](0), self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3), else_t, else_, nil)]; + return result; + }, $Ruby30__reduce_357$243.$$arity = 3); - Opal.defn(self, '$def_sclass', TMP_Default_def_sclass_60 = function $$def_sclass(class_t, lshft_t, expr, body, end_t) { + Opal.def(self, '$_reduce_359', $Ruby30__reduce_359$244 = function $$_reduce_359(val, _values, result) { var self = this; - return self.$n("sclass", [expr, body], self.$module_definition_map(class_t, nil, lshft_t, end_t)) - }, TMP_Default_def_sclass_60.$$arity = 5); + + result = val; + return result; + }, $Ruby30__reduce_359$244.$$arity = 3); - Opal.defn(self, '$def_module', TMP_Default_def_module_61 = function $$def_module(module_t, name, body, end_t) { + Opal.def(self, '$_reduce_362', $Ruby30__reduce_362$245 = function $$_reduce_362(val, _values, result) { var self = this; - return self.$n("module", [name, body], self.$module_definition_map(module_t, name, nil, end_t)) - }, TMP_Default_def_module_61.$$arity = 4); + + result = self.builder.$arg(val['$[]'](0)); + return result; + }, $Ruby30__reduce_362$245.$$arity = 3); - Opal.defn(self, '$def_method', TMP_Default_def_method_62 = function $$def_method(def_t, name_t, args, body, end_t) { + Opal.def(self, '$_reduce_363', $Ruby30__reduce_363$246 = function $$_reduce_363(val, _values, result) { var self = this; - return self.$n("def", [self.$value(name_t).$to_sym(), args, body], self.$definition_map(def_t, nil, name_t, end_t)) - }, TMP_Default_def_method_62.$$arity = 5); - - Opal.defn(self, '$def_singleton', TMP_Default_def_singleton_63 = function $$def_singleton(def_t, definee, dot_t, name_t, args, body, end_t) { - var self = this, $case = nil; - - return (function() {$case = definee.$type(); - if ("int"['$===']($case) || "str"['$===']($case) || "dstr"['$===']($case) || "sym"['$===']($case) || "dsym"['$===']($case) || "regexp"['$===']($case) || "array"['$===']($case) || "hash"['$===']($case)) {return self.$diagnostic("error", "singleton_literal", nil, definee.$loc().$expression())} - else {return self.$n("defs", [definee, self.$value(name_t).$to_sym(), args, body], self.$definition_map(def_t, dot_t, name_t, end_t))}})() - }, TMP_Default_def_singleton_63.$$arity = 7); + + result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_363$246.$$arity = 3); - Opal.defn(self, '$undef_method', TMP_Default_undef_method_64 = function $$undef_method(undef_t, names) { + Opal.def(self, '$_reduce_364', $Ruby30__reduce_364$247 = function $$_reduce_364(val, _values, result) { var self = this; - return self.$n("undef", [].concat(Opal.to_a(names)), self.$keyword_map(undef_t, nil, names, nil)) - }, TMP_Default_undef_method_64.$$arity = 2); + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_364$247.$$arity = 3); - Opal.defn(self, '$alias', TMP_Default_alias_65 = function $$alias(alias_t, to, from) { + Opal.def(self, '$_reduce_365', $Ruby30__reduce_365$248 = function $$_reduce_365(val, _values, result) { var self = this; - return self.$n("alias", [to, from], self.$keyword_map(alias_t, nil, [to, from], nil)) - }, TMP_Default_alias_65.$$arity = 3); + + result = val['$[]'](0)['$<<'](val['$[]'](2)); + return result; + }, $Ruby30__reduce_365$248.$$arity = 3); - Opal.defn(self, '$args', TMP_Default_args_66 = function $$args(begin_t, args, end_t, check_args) { + Opal.def(self, '$_reduce_367', $Ruby30__reduce_367$249 = function $$_reduce_367(val, _values, result) { var self = this; - if (check_args == null) { - check_args = true; - } - if ($truthy(check_args)) { - args = self.$check_duplicate_args(args)}; - return self.$n("args", args, self.$collection_map(begin_t, args, end_t)); - }, TMP_Default_args_66.$$arity = -4); + result = val['$[]'](0).$push(val['$[]'](2)); + return result; + }, $Ruby30__reduce_367$249.$$arity = 3); - Opal.defn(self, '$arg', TMP_Default_arg_67 = function $$arg(name_t) { + Opal.def(self, '$_reduce_368', $Ruby30__reduce_368$250 = function $$_reduce_368(val, _values, result) { var self = this; - return self.$n("arg", [self.$value(name_t).$to_sym()], self.$variable_map(name_t)) - }, TMP_Default_arg_67.$$arity = 1); + + result = val['$[]'](0).$push(val['$[]'](2)).$concat(val['$[]'](4)); + return result; + }, $Ruby30__reduce_368$250.$$arity = 3); - Opal.defn(self, '$optarg', TMP_Default_optarg_68 = function $$optarg(name_t, eql_t, value) { + Opal.def(self, '$_reduce_369', $Ruby30__reduce_369$251 = function $$_reduce_369(val, _values, result) { var self = this; - return self.$n("optarg", [self.$value(name_t).$to_sym(), value], self.$variable_map(name_t).$with_operator(self.$loc(eql_t)).$with_expression(self.$loc(name_t).$join(value.$loc().$expression()))) - }, TMP_Default_optarg_68.$$arity = 3); + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_369$251.$$arity = 3); - Opal.defn(self, '$restarg', TMP_Default_restarg_69 = function $$restarg(star_t, name_t) { + Opal.def(self, '$_reduce_370', $Ruby30__reduce_370$252 = function $$_reduce_370(val, _values, result) { var self = this; - if (name_t == null) { - name_t = nil; - } - if ($truthy(name_t)) { - return self.$n("restarg", [self.$value(name_t).$to_sym()], self.$arg_prefix_map(star_t, name_t)) - } else { - return self.$n0("restarg", self.$arg_prefix_map(star_t)) - } - }, TMP_Default_restarg_69.$$arity = -2); + + result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))); + return result; + }, $Ruby30__reduce_370$252.$$arity = 3); - Opal.defn(self, '$kwarg', TMP_Default_kwarg_70 = function $$kwarg(name_t) { + Opal.def(self, '$_reduce_371', $Ruby30__reduce_371$253 = function $$_reduce_371(val, _values, result) { var self = this; - return self.$n("kwarg", [self.$value(name_t).$to_sym()], self.$kwarg_map(name_t)) - }, TMP_Default_kwarg_70.$$arity = 1); + + result = self.builder.$restarg(val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_371$253.$$arity = 3); - Opal.defn(self, '$kwoptarg', TMP_Default_kwoptarg_71 = function $$kwoptarg(name_t, value) { + Opal.def(self, '$_reduce_372', $Ruby30__reduce_372$254 = function $$_reduce_372(val, _values, result) { var self = this; - return self.$n("kwoptarg", [self.$value(name_t).$to_sym(), value], self.$kwarg_map(name_t, value)) - }, TMP_Default_kwoptarg_71.$$arity = 2); + + result = self.builder.$restarg(val['$[]'](0)); + return result; + }, $Ruby30__reduce_372$254.$$arity = 3); - Opal.defn(self, '$kwrestarg', TMP_Default_kwrestarg_72 = function $$kwrestarg(dstar_t, name_t) { + Opal.def(self, '$_reduce_375', $Ruby30__reduce_375$255 = function $$_reduce_375(val, _values, result) { var self = this; - if (name_t == null) { - name_t = nil; - } - if ($truthy(name_t)) { - return self.$n("kwrestarg", [self.$value(name_t).$to_sym()], self.$arg_prefix_map(dstar_t, name_t)) - } else { - return self.$n0("kwrestarg", self.$arg_prefix_map(dstar_t)) - } - }, TMP_Default_kwrestarg_72.$$arity = -2); + + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); + return result; + }, $Ruby30__reduce_375$255.$$arity = 3); - Opal.defn(self, '$shadowarg', TMP_Default_shadowarg_73 = function $$shadowarg(name_t) { + Opal.def(self, '$_reduce_376', $Ruby30__reduce_376$256 = function $$_reduce_376(val, _values, result) { var self = this; - return self.$n("shadowarg", [self.$value(name_t).$to_sym()], self.$variable_map(name_t)) - }, TMP_Default_shadowarg_73.$$arity = 1); + + result = val['$[]'](0).$concat(val['$[]'](1)); + return result; + }, $Ruby30__reduce_376$256.$$arity = 3); - Opal.defn(self, '$blockarg', TMP_Default_blockarg_74 = function $$blockarg(amper_t, name_t) { + Opal.def(self, '$_reduce_377', $Ruby30__reduce_377$257 = function $$_reduce_377(val, _values, result) { var self = this; - return self.$n("blockarg", [self.$value(name_t).$to_sym()], self.$arg_prefix_map(amper_t, name_t)) - }, TMP_Default_blockarg_74.$$arity = 2); + + result = val['$[]'](0).$concat(val['$[]'](1)); + return result; + }, $Ruby30__reduce_377$257.$$arity = 3); - Opal.defn(self, '$procarg0', TMP_Default_procarg0_75 = function $$procarg0(arg) { + Opal.def(self, '$_reduce_378', $Ruby30__reduce_378$258 = function $$_reduce_378(val, _values, result) { var self = this; - if ($truthy(self.$class().$emit_procarg0())) { - return arg.$updated("procarg0") - } else { - return arg - } - }, TMP_Default_procarg0_75.$$arity = 1); + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_378$258.$$arity = 3); - Opal.defn(self, '$arg_expr', TMP_Default_arg_expr_76 = function $$arg_expr(expr) { + Opal.def(self, '$_reduce_379', $Ruby30__reduce_379$259 = function $$_reduce_379(val, _values, result) { var self = this; - if (expr.$type()['$==']("lvasgn")) { - return expr.$updated("arg") - } else { - return self.$n("arg_expr", [expr], expr.$loc().$dup()) - } - }, TMP_Default_arg_expr_76.$$arity = 1); + + result = val['$[]'](1); + return result; + }, $Ruby30__reduce_379$259.$$arity = 3); - Opal.defn(self, '$restarg_expr', TMP_Default_restarg_expr_77 = function $$restarg_expr(star_t, expr) { + Opal.def(self, '$_reduce_380', $Ruby30__reduce_380$260 = function $$_reduce_380(val, _values, result) { var self = this; - if (expr == null) { - expr = nil; - } - if ($truthy(expr['$nil?']())) { - return self.$n0("restarg", self.$token_map(star_t)) - } else if (expr.$type()['$==']("lvasgn")) { - return expr.$updated("restarg") - } else { - return self.$n("restarg_expr", [expr], expr.$loc().$dup()) - } - }, TMP_Default_restarg_expr_77.$$arity = -2); + + result = []; + return result; + }, $Ruby30__reduce_380$260.$$arity = 3); - Opal.defn(self, '$blockarg_expr', TMP_Default_blockarg_expr_78 = function $$blockarg_expr(amper_t, expr) { + Opal.def(self, '$_reduce_382', $Ruby30__reduce_382$261 = function $$_reduce_382(val, _values, result) { var self = this; - if (expr.$type()['$==']("lvasgn")) { - return expr.$updated("blockarg") - } else { - return self.$n("blockarg_expr", [expr], expr.$loc().$dup()) - } - }, TMP_Default_blockarg_expr_78.$$arity = 2); + + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); + return result; + }, $Ruby30__reduce_382$261.$$arity = 3); - Opal.defn(self, '$objc_kwarg', TMP_Default_objc_kwarg_79 = function $$objc_kwarg(kwname_t, assoc_t, name_t) { - var self = this, kwname_l = nil, operator_l = nil; + Opal.def(self, '$_reduce_383', $Ruby30__reduce_383$262 = function $$_reduce_383(val, _values, result) { + var self = this; - kwname_l = self.$loc(kwname_t); - if ($truthy(assoc_t['$nil?']())) { - - kwname_l = kwname_l.$resize($rb_minus(kwname_l.$size(), 1)); - operator_l = kwname_l.$end().$resize(1); - } else { - operator_l = self.$loc(assoc_t) - }; - return self.$n("objc_kwarg", [self.$value(kwname_t).$to_sym(), self.$value(name_t).$to_sym()], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'ObjcKwarg').$new(kwname_l, operator_l, self.$loc(name_t), kwname_l.$join(self.$loc(name_t)))); - }, TMP_Default_objc_kwarg_79.$$arity = 3); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](6)).$concat(val['$[]'](7)); + return result; + }, $Ruby30__reduce_383$262.$$arity = 3); - Opal.defn(self, '$objc_restarg', TMP_Default_objc_restarg_80 = function $$objc_restarg(star_t, name) { + Opal.def(self, '$_reduce_384', $Ruby30__reduce_384$263 = function $$_reduce_384(val, _values, result) { var self = this; - if (name == null) { - name = nil; - } - if ($truthy(name['$nil?']())) { - return self.$n0("restarg", self.$arg_prefix_map(star_t)) - } else if (name.$type()['$==']("arg")) { - return name.$updated("restarg", nil, $hash2(["location"], {"location": name.$loc().$with_operator(self.$loc(star_t))})) - } else { - return self.$n("objc_restarg", [name], self.$unary_op_map(star_t, name)) - } - }, TMP_Default_objc_restarg_80.$$arity = -2); + + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); + return result; + }, $Ruby30__reduce_384$263.$$arity = 3); - Opal.defn(self, '$call_type_for_dot', TMP_Default_call_type_for_dot_81 = function $$call_type_for_dot(dot_t) { - var $a, self = this; + Opal.def(self, '$_reduce_385', $Ruby30__reduce_385$264 = function $$_reduce_385(val, _values, result) { + var self = this; - if ($truthy(($truthy($a = dot_t['$nil?']()['$!']()) ? self.$value(dot_t)['$==']("anddot") : $a))) { - return "csend" - } else { - return "send" - } - }, TMP_Default_call_type_for_dot_81.$$arity = 1); + + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); + return result; + }, $Ruby30__reduce_385$264.$$arity = 3); - Opal.defn(self, '$call_method', TMP_Default_call_method_82 = function $$call_method(receiver, dot_t, selector_t, lparen_t, args, rparen_t) { - var self = this, type = nil; + Opal.def(self, '$_reduce_386', $Ruby30__reduce_386$265 = function $$_reduce_386(val, _values, result) { + var self = this; - if (lparen_t == null) { - lparen_t = nil; - } - if (args == null) { - args = []; - } - if (rparen_t == null) { - rparen_t = nil; - } - type = self.$call_type_for_dot(dot_t); - if ($truthy(selector_t['$nil?']())) { - return self.$n(type, [receiver, "call"].concat(Opal.to_a(args)), self.$send_map(receiver, dot_t, nil, lparen_t, args, rparen_t)) - } else { - return self.$n(type, [receiver, self.$value(selector_t).$to_sym()].concat(Opal.to_a(args)), self.$send_map(receiver, dot_t, selector_t, lparen_t, args, rparen_t)) - }; - }, TMP_Default_call_method_82.$$arity = -4); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); + return result; + }, $Ruby30__reduce_386$265.$$arity = 3); - Opal.defn(self, '$call_lambda', TMP_Default_call_lambda_83 = function $$call_lambda(lambda_t) { + Opal.def(self, '$_reduce_388', $Ruby30__reduce_388$266 = function $$_reduce_388(val, _values, result) { var self = this; - if ($truthy(self.$class().$emit_lambda())) { - return self.$n0("lambda", self.$expr_map(self.$loc(lambda_t))) - } else { - return self.$n("send", [nil, "lambda"], self.$send_map(nil, nil, lambda_t)) - } - }, TMP_Default_call_lambda_83.$$arity = 1); + + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); + return result; + }, $Ruby30__reduce_388$266.$$arity = 3); - Opal.defn(self, '$block', TMP_Default_block_84 = function $$block(method_call, begin_t, args, body, end_t) { - var $a, self = this, _receiver = nil, _selector = nil, call_args = nil, last_arg = nil, actual_send = nil, block = nil; + Opal.def(self, '$_reduce_389', $Ruby30__reduce_389$267 = function $$_reduce_389(val, _values, result) { + var self = this, $ret_or_4 = nil; - $a = [].concat(Opal.to_a(method_call)), (_receiver = ($a[0] == null ? nil : $a[0])), (_selector = ($a[1] == null ? nil : $a[1])), (call_args = $slice.call($a, 2)), $a; - if (method_call.$type()['$==']("yield")) { - self.$diagnostic("error", "block_given_to_yield", nil, method_call.$loc().$keyword(), [self.$loc(begin_t)])}; - last_arg = call_args.$last(); - if ($truthy(($truthy($a = last_arg) ? last_arg.$type()['$==']("block_pass") : $a))) { - self.$diagnostic("error", "block_and_blockarg", nil, last_arg.$loc().$expression(), [self.$loc(begin_t)])}; - if ($truthy(["send", "csend", "super", "zsuper", "lambda"]['$include?'](method_call.$type()))) { - return self.$n("block", [method_call, args, body], self.$block_map(method_call.$loc().$expression(), begin_t, end_t)) - } else { - - $a = [].concat(Opal.to_a(method_call)), (actual_send = ($a[0] == null ? nil : $a[0])), $a; - block = self.$n("block", [actual_send, args, body], self.$block_map(actual_send.$loc().$expression(), begin_t, end_t)); - return self.$n(method_call.$type(), [block], method_call.$loc().$with_expression(self.$join_exprs(method_call, block))); + if ($truthy((function() {if ($truthy(($ret_or_4 = val['$[]'](1)['$empty?']()))) { + return val['$[]'](0).$size()['$=='](1) + } else { + return $ret_or_4 + }; return nil; })())) { + result = [self.builder.$procarg0(val['$[]'](0)['$[]'](0))] + } else { + result = val['$[]'](0).$concat(val['$[]'](1)) }; - }, TMP_Default_block_84.$$arity = 5); + return result; + }, $Ruby30__reduce_389$267.$$arity = 3); - Opal.defn(self, '$block_pass', TMP_Default_block_pass_85 = function $$block_pass(amper_t, arg) { + Opal.def(self, '$_reduce_390', $Ruby30__reduce_390$268 = function $$_reduce_390(val, _values, result) { var self = this; - return self.$n("block_pass", [arg], self.$unary_op_map(amper_t, arg)) - }, TMP_Default_block_pass_85.$$arity = 2); + + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); + return result; + }, $Ruby30__reduce_390$268.$$arity = 3); - Opal.defn(self, '$objc_varargs', TMP_Default_objc_varargs_86 = function $$objc_varargs(pair, rest_of_varargs) { - var $a, self = this, value = nil, first_vararg = nil, vararg_array = nil; + Opal.def(self, '$_reduce_391', $Ruby30__reduce_391$269 = function $$_reduce_391(val, _values, result) { + var self = this; - $a = [].concat(Opal.to_a(pair)), (value = ($a[0] == null ? nil : $a[0])), (first_vararg = ($a[1] == null ? nil : $a[1])), $a; - vararg_array = self.$array(nil, [first_vararg].concat(Opal.to_a(rest_of_varargs)), nil).$updated("objc_varargs"); - return pair.$updated(nil, [value, vararg_array], $hash2(["location"], {"location": pair.$loc().$with_expression(pair.$loc().$expression().$join(vararg_array.$loc().$expression()))})); - }, TMP_Default_objc_varargs_86.$$arity = 2); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); + return result; + }, $Ruby30__reduce_391$269.$$arity = 3); - Opal.defn(self, '$attr_asgn', TMP_Default_attr_asgn_87 = function $$attr_asgn(receiver, dot_t, selector_t) { - var self = this, method_name = nil, type = nil; + Opal.def(self, '$_reduce_392', $Ruby30__reduce_392$270 = function $$_reduce_392(val, _values, result) { + var self = this; - method_name = $rb_plus(self.$value(selector_t), "=").$to_sym(); - type = self.$call_type_for_dot(dot_t); - return self.$n(type, [receiver, method_name], self.$send_map(receiver, dot_t, selector_t)); - }, TMP_Default_attr_asgn_87.$$arity = 3); + result = val['$[]'](0).$concat(val['$[]'](1)); + return result; + }, $Ruby30__reduce_392$270.$$arity = 3); - Opal.defn(self, '$index', TMP_Default_index_88 = function $$index(receiver, lbrack_t, indexes, rbrack_t) { + Opal.def(self, '$_reduce_393', $Ruby30__reduce_393$271 = function $$_reduce_393(val, _values, result) { var self = this; - return self.$n("send", [receiver, "[]"].concat(Opal.to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) - }, TMP_Default_index_88.$$arity = 4); + + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); + return result; + }, $Ruby30__reduce_393$271.$$arity = 3); - Opal.defn(self, '$index_asgn', TMP_Default_index_asgn_89 = function $$index_asgn(receiver, lbrack_t, indexes, rbrack_t) { + Opal.def(self, '$_reduce_394', $Ruby30__reduce_394$272 = function $$_reduce_394(val, _values, result) { var self = this; - return self.$n("send", [receiver, "[]="].concat(Opal.to_a(indexes)), self.$send_index_map(receiver, lbrack_t, rbrack_t)) - }, TMP_Default_index_asgn_89.$$arity = 4); + + result = val['$[]'](0).$concat(val['$[]'](1)); + return result; + }, $Ruby30__reduce_394$272.$$arity = 3); - Opal.defn(self, '$binary_op', TMP_Default_binary_op_90 = function $$binary_op(receiver, operator_t, arg) { - var self = this, source_map = nil, operator = nil, method_call = nil; + Opal.def(self, '$_reduce_395', $Ruby30__reduce_395$273 = function $$_reduce_395(val, _values, result) { + var self = this; - source_map = self.$send_binary_op_map(receiver, operator_t, arg); - if (self.parser.$version()['$=='](18)) { - - operator = self.$value(operator_t); - if (operator['$==']("!=")) { - method_call = self.$n("send", [receiver, "==", arg], source_map) - } else if (operator['$==']("!~")) { - method_call = self.$n("send", [receiver, "=~", arg], source_map)}; - if ($truthy(["!=", "!~"]['$include?'](operator))) { - return self.$n("not", [method_call], self.$expr_map(source_map.$expression()))};}; - return self.$n("send", [receiver, self.$value(operator_t).$to_sym(), arg], source_map); - }, TMP_Default_binary_op_90.$$arity = 3); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); + return result; + }, $Ruby30__reduce_395$273.$$arity = 3); - Opal.defn(self, '$match_op', TMP_Default_match_op_92 = function $$match_op(receiver, match_t, arg) { - var TMP_91, self = this, source_map = nil, regexp = nil; + Opal.def(self, '$_reduce_397', $Ruby30__reduce_397$274 = function $$_reduce_397(val, _values, result) { + var self = this; - source_map = self.$send_binary_op_map(receiver, match_t, arg); - if ($truthy((regexp = self.$static_regexp_node(receiver)))) { - - $send(regexp.$names(), 'each', [], (TMP_91 = function(name){var self = TMP_91.$$s || this; - if (self.parser == null) self.parser = nil; -if (name == null) name = nil; - return self.parser.$static_env().$declare(name)}, TMP_91.$$s = self, TMP_91.$$arity = 1, TMP_91)); - return self.$n("match_with_lvasgn", [receiver, arg], source_map); - } else { - return self.$n("send", [receiver, "=~", arg], source_map) - }; - }, TMP_Default_match_op_92.$$arity = 3); + result = self.builder.$args(nil, [], nil); + return result; + }, $Ruby30__reduce_397$274.$$arity = 3); - Opal.defn(self, '$unary_op', TMP_Default_unary_op_93 = function $$unary_op(op_t, receiver) { - var self = this, $case = nil, method = nil; + Opal.def(self, '$_reduce_398', $Ruby30__reduce_398$275 = function $$_reduce_398(val, _values, result) { + var self = this, $writer = nil; - $case = self.$value(op_t); - if ("+"['$===']($case) || "-"['$===']($case)) {method = $rb_plus(self.$value(op_t), "@")} - else {method = self.$value(op_t)}; - return self.$n("send", [receiver, method.$to_sym()], self.$send_unary_op_map(op_t, receiver)); - }, TMP_Default_unary_op_93.$$arity = 2); + + $writer = ["expr_value"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_398$275.$$arity = 3); - Opal.defn(self, '$not_op', TMP_Default_not_op_94 = function $$not_op(not_t, begin_t, receiver, end_t) { - var self = this, nil_node = nil; + Opal.def(self, '$_reduce_399', $Ruby30__reduce_399$276 = function $$_reduce_399(val, _values, result) { + var self = this; - if (begin_t == null) { - begin_t = nil; - } - if (receiver == null) { - receiver = nil; - } - if (end_t == null) { - end_t = nil; - } - if (self.parser.$version()['$=='](18)) { - return self.$n("not", [receiver], self.$unary_op_map(not_t, receiver)) - } else if ($truthy(receiver['$nil?']())) { - - nil_node = self.$n0("begin", self.$collection_map(begin_t, nil, end_t)); - return self.$n("send", [nil_node, "!"], self.$send_unary_op_map(not_t, nil_node)); - } else { - return self.$n("send", [receiver, "!"], self.$send_map(nil, nil, not_t, begin_t, [receiver], end_t)) - } - }, TMP_Default_not_op_94.$$arity = -2); + + self.max_numparam_stack['$has_ordinary_params!'](); + self.current_arg_stack.$set(nil); + result = self.builder.$args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_399$276.$$arity = 3); - Opal.defn(self, '$logical_op', TMP_Default_logical_op_95 = function $$logical_op(type, lhs, op_t, rhs) { + Opal.def(self, '$_reduce_400', $Ruby30__reduce_400$277 = function $$_reduce_400(val, _values, result) { var self = this; - return self.$n(type, [lhs, rhs], self.$binary_op_map(lhs, op_t, rhs)) - }, TMP_Default_logical_op_95.$$arity = 4); + + self.max_numparam_stack['$has_ordinary_params!'](); + self.current_arg_stack.$set(nil); + result = self.builder.$args(val['$[]'](0), val['$[]'](1).$concat(val['$[]'](2)), val['$[]'](3)); + return result; + }, $Ruby30__reduce_400$277.$$arity = 3); - Opal.defn(self, '$condition', TMP_Default_condition_96 = function $$condition(cond_t, cond, then_t, if_true, else_t, if_false, end_t) { + Opal.def(self, '$_reduce_401', $Ruby30__reduce_401$278 = function $$_reduce_401(val, _values, result) { var self = this; - return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$condition_map(cond_t, cond, then_t, if_true, else_t, if_false, end_t)) - }, TMP_Default_condition_96.$$arity = 7); - - Opal.defn(self, '$condition_mod', TMP_Default_condition_mod_97 = function $$condition_mod(if_true, if_false, cond_t, cond) { - var $a, self = this; - - return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$keyword_mod_map(($truthy($a = if_true) ? $a : if_false), cond_t, cond)) - }, TMP_Default_condition_mod_97.$$arity = 4); + + result = []; + return result; + }, $Ruby30__reduce_401$278.$$arity = 3); - Opal.defn(self, '$ternary', TMP_Default_ternary_98 = function $$ternary(cond, question_t, if_true, colon_t, if_false) { + Opal.def(self, '$_reduce_402', $Ruby30__reduce_402$279 = function $$_reduce_402(val, _values, result) { var self = this; - return self.$n("if", [self.$check_condition(cond), if_true, if_false], self.$ternary_map(cond, question_t, if_true, colon_t, if_false)) - }, TMP_Default_ternary_98.$$arity = 5); + + result = val['$[]'](2); + return result; + }, $Ruby30__reduce_402$279.$$arity = 3); - Opal.defn(self, '$when', TMP_Default_when_99 = function $$when(when_t, patterns, then_t, body) { - var self = this, children = nil; + Opal.def(self, '$_reduce_403', $Ruby30__reduce_403$280 = function $$_reduce_403(val, _values, result) { + var self = this; - children = patterns['$<<'](body); - return self.$n("when", children, self.$keyword_map(when_t, then_t, children, nil)); - }, TMP_Default_when_99.$$arity = 4); + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_403$280.$$arity = 3); - Opal.defn(self, '$case', TMP_Default_case_100 = function(case_t, expr, when_bodies, else_t, else_body, end_t) { + Opal.def(self, '$_reduce_404', $Ruby30__reduce_404$281 = function $$_reduce_404(val, _values, result) { var self = this; - return self.$n("case", [expr].concat(Opal.to_a(when_bodies['$<<'](else_body))), self.$condition_map(case_t, expr, nil, nil, else_t, else_body, end_t)) - }, TMP_Default_case_100.$$arity = 6); + + result = val['$[]'](0)['$<<'](val['$[]'](2)); + return result; + }, $Ruby30__reduce_404$281.$$arity = 3); - Opal.defn(self, '$loop', TMP_Default_loop_101 = function $$loop(type, keyword_t, cond, do_t, body, end_t) { + Opal.def(self, '$_reduce_405', $Ruby30__reduce_405$282 = function $$_reduce_405(val, _values, result) { var self = this; - return self.$n(type, [self.$check_condition(cond), body], self.$keyword_map(keyword_t, do_t, nil, end_t)) - }, TMP_Default_loop_101.$$arity = 6); + + self.static_env.$declare(val['$[]'](0)['$[]'](0)); + result = self.builder.$shadowarg(val['$[]'](0)); + return result; + }, $Ruby30__reduce_405$282.$$arity = 3); - Opal.defn(self, '$loop_mod', TMP_Default_loop_mod_102 = function $$loop_mod(type, body, keyword_t, cond) { + Opal.def(self, '$_reduce_407', $Ruby30__reduce_407$283 = function $$_reduce_407(val, _values, result) { var self = this; - if (body.$type()['$==']("kwbegin")) { - type = "" + (type) + "_post"}; - return self.$n(type, [self.$check_condition(cond), body], self.$keyword_mod_map(body, keyword_t, cond)); - }, TMP_Default_loop_mod_102.$$arity = 4); + self.static_env.$extend_dynamic(); + self.max_numparam_stack.$push(); + self.context.$push("lambda"); + return result; + }, $Ruby30__reduce_407$283.$$arity = 3); - Opal.defn(self, '$for', TMP_Default_for_103 = function(for_t, iterator, in_t, iteratee, do_t, body, end_t) { + Opal.def(self, '$_reduce_408', $Ruby30__reduce_408$284 = function $$_reduce_408(val, _values, result) { var self = this; - return self.$n("for", [iterator, iteratee, body], self.$for_map(for_t, in_t, do_t, end_t)) - }, TMP_Default_for_103.$$arity = 7); + + self.context.$pop(); + self.lexer.$cmdarg().$push(false); + return result; + }, $Ruby30__reduce_408$284.$$arity = 3); - Opal.defn(self, '$keyword_cmd', TMP_Default_keyword_cmd_104 = function $$keyword_cmd(type, keyword_t, lparen_t, args, rparen_t) { - var $a, self = this, last_arg = nil; + Opal.def(self, '$_reduce_409', $Ruby30__reduce_409$285 = function $$_reduce_409(val, _values, result) { + var $a, $b, self = this, lambda_call = nil, args = nil, begin_t = nil, body = nil, end_t = nil; - if (lparen_t == null) { - lparen_t = nil; - } - if (args == null) { - args = []; - } - if (rparen_t == null) { - rparen_t = nil; - } - if ($truthy((($a = type['$==']("yield")) ? $rb_gt(args.$count(), 0) : type['$==']("yield")))) { - - last_arg = args.$last(); - if (last_arg.$type()['$==']("block_pass")) { - self.$diagnostic("error", "block_given_to_yield", nil, self.$loc(keyword_t), [last_arg.$loc().$expression()])};}; - return self.$n(type, args, self.$keyword_map(keyword_t, lparen_t, args, rparen_t)); - }, TMP_Default_keyword_cmd_104.$$arity = -3); + lambda_call = self.builder.$call_lambda(val['$[]'](0)); + args = (function() {if ($truthy(self.max_numparam_stack['$has_numparams?']())) { + return self.builder.$numargs(self.max_numparam_stack.$top()) + } else { + return val['$[]'](2) + }; return nil; })(); + $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), (end_t = ($a[2] == null ? nil : $a[2])), $b; + self.max_numparam_stack.$pop(); + self.static_env.$unextend(); + self.lexer.$cmdarg().$pop(); + result = self.builder.$block(lambda_call, begin_t, args, body, end_t); + return result; + }, $Ruby30__reduce_409$285.$$arity = 3); - Opal.defn(self, '$preexe', TMP_Default_preexe_105 = function $$preexe(preexe_t, lbrace_t, compstmt, rbrace_t) { + Opal.def(self, '$_reduce_410', $Ruby30__reduce_410$286 = function $$_reduce_410(val, _values, result) { var self = this; - return self.$n("preexe", [compstmt], self.$keyword_map(preexe_t, lbrace_t, [], rbrace_t)) - }, TMP_Default_preexe_105.$$arity = 4); + + self.max_numparam_stack['$has_ordinary_params!'](); + result = self.builder.$args(val['$[]'](0), val['$[]'](1).$concat(val['$[]'](2)), val['$[]'](3)); + return result; + }, $Ruby30__reduce_410$286.$$arity = 3); - Opal.defn(self, '$postexe', TMP_Default_postexe_106 = function $$postexe(postexe_t, lbrace_t, compstmt, rbrace_t) { + Opal.def(self, '$_reduce_411', $Ruby30__reduce_411$287 = function $$_reduce_411(val, _values, result) { var self = this; - return self.$n("postexe", [compstmt], self.$keyword_map(postexe_t, lbrace_t, [], rbrace_t)) - }, TMP_Default_postexe_106.$$arity = 4); + + if ($truthy(val['$[]'](0)['$any?']())) { + self.max_numparam_stack['$has_ordinary_params!']()}; + result = self.builder.$args(nil, val['$[]'](0), nil); + return result; + }, $Ruby30__reduce_411$287.$$arity = 3); - Opal.defn(self, '$rescue_body', TMP_Default_rescue_body_107 = function $$rescue_body(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt) { + Opal.def(self, '$_reduce_412', $Ruby30__reduce_412$288 = function $$_reduce_412(val, _values, result) { var self = this; - return self.$n("resbody", [exc_list, exc_var, compound_stmt], self.$rescue_body_map(rescue_t, exc_list, assoc_t, exc_var, then_t, compound_stmt)) - }, TMP_Default_rescue_body_107.$$arity = 6); + + self.context.$push("lambda"); + return result; + }, $Ruby30__reduce_412$288.$$arity = 3); - Opal.defn(self, '$begin_body', TMP_Default_begin_body_108 = function $$begin_body(compound_stmt, rescue_bodies, else_t, else_, ensure_t, ensure_) { - var self = this, statements = nil; + Opal.def(self, '$_reduce_413', $Ruby30__reduce_413$289 = function $$_reduce_413(val, _values, result) { + var self = this; - if (rescue_bodies == null) { - rescue_bodies = []; - } - if (else_t == null) { - else_t = nil; - } - if (else_ == null) { - else_ = nil; - } - if (ensure_t == null) { - ensure_t = nil; - } - if (ensure_ == null) { - ensure_ = nil; - } - if ($truthy(rescue_bodies['$any?']())) { - if ($truthy(else_t)) { - compound_stmt = self.$n("rescue", [compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies, [else_]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, else_t, else_)) - } else { - compound_stmt = self.$n("rescue", [compound_stmt].concat(Opal.to_a($rb_plus(rescue_bodies, [nil]))), self.$eh_keyword_map(compound_stmt, nil, rescue_bodies, nil, nil)) - } - } else if ($truthy(else_t)) { - - statements = []; - if ($truthy(compound_stmt['$nil?']()['$!']())) { - if (compound_stmt.$type()['$==']("begin")) { - statements = $rb_plus(statements, compound_stmt.$children()) - } else { - statements.$push(compound_stmt) - }}; - statements.$push(self.$n("begin", [else_], self.$collection_map(else_t, [else_], nil))); - compound_stmt = self.$n("begin", statements, self.$collection_map(nil, statements, nil));}; - if ($truthy(ensure_t)) { - compound_stmt = self.$n("ensure", [compound_stmt, ensure_], self.$eh_keyword_map(compound_stmt, ensure_t, [ensure_], nil, nil))}; - return compound_stmt; - }, TMP_Default_begin_body_108.$$arity = -2); + result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; + self.context.$pop(); + return result; + }, $Ruby30__reduce_413$289.$$arity = 3); - Opal.defn(self, '$compstmt', TMP_Default_compstmt_109 = function $$compstmt(statements) { + Opal.def(self, '$_reduce_414', $Ruby30__reduce_414$290 = function $$_reduce_414(val, _values, result) { var self = this; - return (function() { - if ($truthy(statements['$none?']())) {return nil} - else if ($truthy(statements['$one?']())) {return statements.$first()} - else {return self.$n("begin", statements, self.$collection_map(nil, statements, nil))}})() - }, TMP_Default_compstmt_109.$$arity = 1); + + self.context.$push("lambda"); + return result; + }, $Ruby30__reduce_414$290.$$arity = 3); - Opal.defn(self, '$begin', TMP_Default_begin_110 = function $$begin(begin_t, body, end_t) { - var $a, $b, $c, self = this; + Opal.def(self, '$_reduce_415', $Ruby30__reduce_415$291 = function $$_reduce_415(val, _values, result) { + var self = this; - if ($truthy(body['$nil?']())) { - return self.$n0("begin", self.$collection_map(begin_t, nil, end_t)) - } else if ($truthy(($truthy($a = body.$type()['$==']("mlhs")) ? $a : ($truthy($b = (($c = body.$type()['$==']("begin")) ? body.$loc().$begin()['$nil?']() : body.$type()['$==']("begin"))) ? body.$loc().$end()['$nil?']() : $b)))) { - return self.$n(body.$type(), body.$children(), self.$collection_map(begin_t, body.$children(), end_t)) - } else { - return self.$n("begin", [body], self.$collection_map(begin_t, [body], end_t)) - } - }, TMP_Default_begin_110.$$arity = 3); + + result = [val['$[]'](0), val['$[]'](2), val['$[]'](3)]; + self.context.$pop(); + return result; + }, $Ruby30__reduce_415$291.$$arity = 3); - Opal.defn(self, '$begin_keyword', TMP_Default_begin_keyword_111 = function $$begin_keyword(begin_t, body, end_t) { - var $a, $b, self = this; + Opal.def(self, '$_reduce_416', $Ruby30__reduce_416$292 = function $$_reduce_416(val, _values, result) { + var self = this; - if ($truthy(body['$nil?']())) { - return self.$n0("kwbegin", self.$collection_map(begin_t, nil, end_t)) - } else if ($truthy(($truthy($a = (($b = body.$type()['$==']("begin")) ? body.$loc().$begin()['$nil?']() : body.$type()['$==']("begin"))) ? body.$loc().$end()['$nil?']() : $a))) { - return self.$n("kwbegin", body.$children(), self.$collection_map(begin_t, body.$children(), end_t)) - } else { - return self.$n("kwbegin", [body], self.$collection_map(begin_t, [body], end_t)) - } - }, TMP_Default_begin_keyword_111.$$arity = 3); - self.$private(); + + self.context.$push("block"); + return result; + }, $Ruby30__reduce_416$292.$$arity = 3); - Opal.defn(self, '$check_condition', TMP_Default_check_condition_112 = function $$check_condition(cond) { - var $a, self = this, $case = nil, lhs = nil, rhs = nil, type = nil; + Opal.def(self, '$_reduce_417', $Ruby30__reduce_417$293 = function $$_reduce_417(val, _values, result) { + var self = this; - return (function() {$case = cond.$type(); - if ("masgn"['$===']($case)) {if ($truthy($rb_le(self.parser.$version(), 23))) { - return self.$diagnostic("error", "masgn_as_condition", nil, cond.$loc().$expression()) - } else { - return nil - }} - else if ("begin"['$===']($case)) {if (cond.$children().$count()['$=='](1)) { - return cond.$updated(nil, [self.$check_condition(cond.$children().$last())]) - } else { - return cond - }} - else if ("and"['$===']($case) || "or"['$===']($case) || "irange"['$===']($case) || "erange"['$===']($case)) { - $a = [].concat(Opal.to_a(cond)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - type = (function() {$case = cond.$type(); - if ("irange"['$===']($case)) {return "iflipflop"} - else if ("erange"['$===']($case)) {return "eflipflop"} - else { return nil }})(); - if ($truthy(($truthy($a = ["and", "or"]['$include?'](cond.$type())) ? self.parser.$version()['$=='](18) : $a))) { - return cond - } else { - return cond.$updated(type, [self.$check_condition(lhs), self.$check_condition(rhs)]) - };} - else if ("regexp"['$===']($case)) {return self.$n("match_current_line", [cond], self.$expr_map(cond.$loc().$expression()))} - else {return cond}})() - }, TMP_Default_check_condition_112.$$arity = 1); + + result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); + self.context.$pop(); + return result; + }, $Ruby30__reduce_417$293.$$arity = 3); - Opal.defn(self, '$check_duplicate_args', TMP_Default_check_duplicate_args_114 = function $$check_duplicate_args(args, map) { - var TMP_113, self = this; + Opal.def(self, '$_reduce_418', $Ruby30__reduce_418$294 = function $$_reduce_418(val, _values, result) { + var $a, $b, self = this, begin_t = nil, block_args = nil, body = nil, end_t = nil; - if (map == null) { - map = $hash2([], {}); - } - return $send(args, 'each', [], (TMP_113 = function(this_arg){var self = TMP_113.$$s || this, $a, $case = nil, this_name = nil, that_arg = nil, that_name = nil, $writer = nil; -if (this_arg == null) this_arg = nil; - return (function() {$case = this_arg.$type(); - if ("arg"['$===']($case) || "optarg"['$===']($case) || "restarg"['$===']($case) || "blockarg"['$===']($case) || "kwarg"['$===']($case) || "kwoptarg"['$===']($case) || "kwrestarg"['$===']($case) || "shadowarg"['$===']($case) || "procarg0"['$===']($case)) { - $a = [].concat(Opal.to_a(this_arg)), (this_name = ($a[0] == null ? nil : $a[0])), $a; - that_arg = map['$[]'](this_name); - $a = [].concat(Opal.to_a(that_arg)), (that_name = ($a[0] == null ? nil : $a[0])), $a; - if ($truthy(that_arg['$nil?']())) { - - $writer = [this_name, this_arg]; - $send(map, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - } else if ($truthy(self['$arg_name_collides?'](this_name, that_name))) { - return self.$diagnostic("error", "duplicate_argument", nil, this_arg.$loc().$name(), [that_arg.$loc().$name()]) - } else { - return nil - };} - else if ("mlhs"['$===']($case)) {return self.$check_duplicate_args(this_arg.$children(), map)} - else { return nil }})()}, TMP_113.$$s = self, TMP_113.$$arity = 1, TMP_113)) - }, TMP_Default_check_duplicate_args_114.$$arity = -2); + + $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (block_args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + result = self.builder.$block(val['$[]'](0), begin_t, block_args, body, end_t); + return result; + }, $Ruby30__reduce_418$294.$$arity = 3); - Opal.defn(self, '$arg_name_collides?', TMP_Default_arg_name_collides$q_115 = function(this_name, that_name) { - var $a, $b, self = this, $case = nil; + Opal.def(self, '$_reduce_419', $Ruby30__reduce_419$295 = function $$_reduce_419(val, _values, result) { + var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - return (function() {$case = self.parser.$version(); - if ((18)['$===']($case)) {return this_name['$=='](that_name)} - else if ((19)['$===']($case)) {return ($truthy($a = this_name['$!=']("_")) ? this_name['$=='](that_name) : $a)} - else {return ($truthy($a = ($truthy($b = this_name) ? this_name['$[]'](0)['$!=']("_") : $b)) ? this_name['$=='](that_name) : $a)}})() - }, TMP_Default_arg_name_collides$q_115.$$arity = 2); + + $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); + return result; + }, $Ruby30__reduce_419$295.$$arity = 3); - Opal.defn(self, '$n', TMP_Default_n_116 = function $$n(type, children, source_map) { - var self = this; + Opal.def(self, '$_reduce_420', $Ruby30__reduce_420$296 = function $$_reduce_420(val, _values, result) { + var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil, method_call = nil, begin_t = nil, body = nil, end_t = nil; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": source_map})) - }, TMP_Default_n_116.$$arity = 3); + + $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); + $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + result = self.builder.$block(method_call, begin_t, args, body, end_t); + return result; + }, $Ruby30__reduce_420$296.$$arity = 3); - Opal.defn(self, '$n0', TMP_Default_n0_117 = function $$n0(type, source_map) { - var self = this; + Opal.def(self, '$_reduce_421', $Ruby30__reduce_421$297 = function $$_reduce_421(val, _values, result) { + var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; - return self.$n(type, [], source_map) - }, TMP_Default_n0_117.$$arity = 2); + + method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); + $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; + result = self.builder.$block(method_call, begin_t, args, body, end_t); + return result; + }, $Ruby30__reduce_421$297.$$arity = 3); - Opal.defn(self, '$join_exprs', TMP_Default_join_exprs_118 = function $$join_exprs(left_expr, right_expr) { - var self = this; + Opal.def(self, '$_reduce_422', $Ruby30__reduce_422$298 = function $$_reduce_422(val, _values, result) { + var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - return left_expr.$loc().$expression().$join(right_expr.$loc().$expression()) - }, TMP_Default_join_exprs_118.$$arity = 2); + + $b = val['$[]'](1), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + result = self.builder.$call_method(nil, nil, val['$[]'](0), lparen_t, args, rparen_t); + return result; + }, $Ruby30__reduce_422$298.$$arity = 3); - Opal.defn(self, '$token_map', TMP_Default_token_map_119 = function $$token_map(token) { - var self = this; + Opal.def(self, '$_reduce_423', $Ruby30__reduce_423$299 = function $$_reduce_423(val, _values, result) { + var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map').$new(self.$loc(token)) - }, TMP_Default_token_map_119.$$arity = 1); + + $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); + return result; + }, $Ruby30__reduce_423$299.$$arity = 3); - Opal.defn(self, '$delimited_string_map', TMP_Default_delimited_string_map_120 = function $$delimited_string_map(string_t) { - var self = this, str_range = nil, begin_l = nil, end_l = nil; + Opal.def(self, '$_reduce_424', $Ruby30__reduce_424$300 = function $$_reduce_424(val, _values, result) { + var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - str_range = self.$loc(string_t); - begin_l = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Range').$new(str_range.$source_buffer(), str_range.$begin_pos(), $rb_plus(str_range.$begin_pos(), 1)); - end_l = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Range').$new(str_range.$source_buffer(), $rb_minus(str_range.$end_pos(), 1), str_range.$end_pos()); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Collection').$new(begin_l, end_l, self.$loc(string_t)); - }, TMP_Default_delimited_string_map_120.$$arity = 1); + $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); + return result; + }, $Ruby30__reduce_424$300.$$arity = 3); - Opal.defn(self, '$prefix_string_map', TMP_Default_prefix_string_map_121 = function $$prefix_string_map(symbol) { - var self = this, str_range = nil, begin_l = nil; + Opal.def(self, '$_reduce_425', $Ruby30__reduce_425$301 = function $$_reduce_425(val, _values, result) { + var self = this; - str_range = self.$loc(symbol); - begin_l = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Range').$new(str_range.$source_buffer(), str_range.$begin_pos(), $rb_plus(str_range.$begin_pos(), 1)); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Collection').$new(begin_l, nil, self.$loc(symbol)); - }, TMP_Default_prefix_string_map_121.$$arity = 1); + result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_425$301.$$arity = 3); - Opal.defn(self, '$unquoted_map', TMP_Default_unquoted_map_122 = function $$unquoted_map(token) { - var self = this; + Opal.def(self, '$_reduce_426', $Ruby30__reduce_426$302 = function $$_reduce_426(val, _values, result) { + var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, self.$loc(token)) - }, TMP_Default_unquoted_map_122.$$arity = 1); + + $b = val['$[]'](2), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), nil, lparen_t, args, rparen_t); + return result; + }, $Ruby30__reduce_426$302.$$arity = 3); - Opal.defn(self, '$pair_keyword_map', TMP_Default_pair_keyword_map_123 = function $$pair_keyword_map(key_t, value_e) { - var self = this, key_range = nil, key_l = nil, colon_l = nil; + Opal.def(self, '$_reduce_427', $Ruby30__reduce_427$303 = function $$_reduce_427(val, _values, result) { + var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - key_range = self.$loc(key_t); - key_l = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Range').$new(key_range.$source_buffer(), key_range.$begin_pos(), $rb_minus(key_range.$end_pos(), 1)); - colon_l = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Range').$new(key_range.$source_buffer(), $rb_minus(key_range.$end_pos(), 1), key_range.$end_pos()); - return [Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Collection').$new(nil, nil, key_l), Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Operator').$new(colon_l, key_range.$join(value_e.$loc().$expression()))]; - }, TMP_Default_pair_keyword_map_123.$$arity = 2); + $b = val['$[]'](2), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), nil, lparen_t, args, rparen_t); + return result; + }, $Ruby30__reduce_427$303.$$arity = 3); - Opal.defn(self, '$pair_quoted_map', TMP_Default_pair_quoted_map_124 = function $$pair_quoted_map(begin_t, end_t, value_e) { - var self = this, end_l = nil, quote_l = nil, colon_l = nil; + Opal.def(self, '$_reduce_428', $Ruby30__reduce_428$304 = function $$_reduce_428(val, _values, result) { + var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; - end_l = self.$loc(end_t); - quote_l = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Range').$new(end_l.$source_buffer(), $rb_minus(end_l.$end_pos(), 2), $rb_minus(end_l.$end_pos(), 1)); - colon_l = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Range').$new(end_l.$source_buffer(), $rb_minus(end_l.$end_pos(), 1), end_l.$end_pos()); - return [[self.$value(end_t), quote_l], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Operator').$new(colon_l, self.$loc(begin_t).$join(value_e.$loc().$expression()))]; - }, TMP_Default_pair_quoted_map_124.$$arity = 3); + $b = val['$[]'](1), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; + result = self.builder.$keyword_cmd("super", val['$[]'](0), lparen_t, args, rparen_t); + return result; + }, $Ruby30__reduce_428$304.$$arity = 3); - Opal.defn(self, '$expr_map', TMP_Default_expr_map_125 = function $$expr_map(loc) { + Opal.def(self, '$_reduce_429', $Ruby30__reduce_429$305 = function $$_reduce_429(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map').$new(loc) - }, TMP_Default_expr_map_125.$$arity = 1); + + result = self.builder.$keyword_cmd("zsuper", val['$[]'](0)); + return result; + }, $Ruby30__reduce_429$305.$$arity = 3); - Opal.defn(self, '$collection_map', TMP_Default_collection_map_126 = function $$collection_map(begin_t, parts, end_t) { - var $a, self = this, expr_l = nil; + Opal.def(self, '$_reduce_430', $Ruby30__reduce_430$306 = function $$_reduce_430(val, _values, result) { + var self = this; - if ($truthy(($truthy($a = begin_t['$nil?']()) ? $a : end_t['$nil?']()))) { - if ($truthy(parts['$any?']())) { - expr_l = self.$join_exprs(parts.$first(), parts.$last())} - } else { - expr_l = self.$loc(begin_t).$join(self.$loc(end_t)) - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), expr_l); - }, TMP_Default_collection_map_126.$$arity = 3); + result = self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_430$306.$$arity = 3); - Opal.defn(self, '$string_map', TMP_Default_string_map_127 = function $$string_map(begin_t, parts, end_t) { - var $a, self = this, expr_l = nil; + Opal.def(self, '$_reduce_431', $Ruby30__reduce_431$307 = function $$_reduce_431(val, _values, result) { + var self = this; - if ($truthy(($truthy($a = begin_t) ? self.$value(begin_t)['$start_with?']("<<") : $a))) { - - if ($truthy(parts['$any?']())) { - expr_l = self.$join_exprs(parts.$first(), parts.$last()) - } else { - expr_l = self.$loc(end_t).$begin() - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Heredoc').$new(self.$loc(begin_t), expr_l, self.$loc(end_t)); - } else { - return self.$collection_map(begin_t, parts, end_t) - } - }, TMP_Default_string_map_127.$$arity = 3); + + self.context.$push("block"); + return result; + }, $Ruby30__reduce_431$307.$$arity = 3); - Opal.defn(self, '$regexp_map', TMP_Default_regexp_map_128 = function $$regexp_map(begin_t, end_t, options_e) { + Opal.def(self, '$_reduce_432', $Ruby30__reduce_432$308 = function $$_reduce_432(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), self.$loc(begin_t).$join(options_e.$loc().$expression())) - }, TMP_Default_regexp_map_128.$$arity = 3); + + result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); + self.context.$pop(); + return result; + }, $Ruby30__reduce_432$308.$$arity = 3); - Opal.defn(self, '$constant_map', TMP_Default_constant_map_129 = function $$constant_map(scope, colon2_t, name_t) { - var self = this, expr_l = nil; + Opal.def(self, '$_reduce_433', $Ruby30__reduce_433$309 = function $$_reduce_433(val, _values, result) { + var self = this; - if ($truthy(scope['$nil?']())) { - expr_l = self.$loc(name_t) - } else { - expr_l = scope.$loc().$expression().$join(self.$loc(name_t)) - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Constant').$new(self.$loc(colon2_t), self.$loc(name_t), expr_l); - }, TMP_Default_constant_map_129.$$arity = 3); + self.context.$push("block"); + return result; + }, $Ruby30__reduce_433$309.$$arity = 3); - Opal.defn(self, '$variable_map', TMP_Default_variable_map_130 = function $$variable_map(name_t) { + Opal.def(self, '$_reduce_434', $Ruby30__reduce_434$310 = function $$_reduce_434(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Variable').$new(self.$loc(name_t)) - }, TMP_Default_variable_map_130.$$arity = 1); + + result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3)]); + self.context.$pop(); + return result; + }, $Ruby30__reduce_434$310.$$arity = 3); - Opal.defn(self, '$binary_op_map', TMP_Default_binary_op_map_131 = function $$binary_op_map(left_e, op_t, right_e) { + Opal.def(self, '$_reduce_435', $Ruby30__reduce_435$311 = function $$_reduce_435(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), self.$join_exprs(left_e, right_e)) - }, TMP_Default_binary_op_map_131.$$arity = 3); + + self.static_env.$extend_dynamic(); + self.max_numparam_stack.$push(); + return result; + }, $Ruby30__reduce_435$311.$$arity = 3); - Opal.defn(self, '$unary_op_map', TMP_Default_unary_op_map_132 = function $$unary_op_map(op_t, arg_e) { - var self = this, expr_l = nil; + Opal.def(self, '$_reduce_436', $Ruby30__reduce_436$312 = function $$_reduce_436(val, _values, result) { + var self = this, args = nil; - if (arg_e == null) { - arg_e = nil; - } - if ($truthy(arg_e['$nil?']())) { - expr_l = self.$loc(op_t) - } else { - expr_l = self.$loc(op_t).$join(arg_e.$loc().$expression()) - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Operator').$new(self.$loc(op_t), expr_l); - }, TMP_Default_unary_op_map_132.$$arity = -2); + args = (function() {if ($truthy(self.max_numparam_stack['$has_numparams?']())) { + return self.builder.$numargs(self.max_numparam_stack.$top()) + } else { + return val['$[]'](1) + }; return nil; })(); + result = [args, val['$[]'](2)]; + self.max_numparam_stack.$pop(); + self.static_env.$unextend(); + return result; + }, $Ruby30__reduce_436$312.$$arity = 3); - Opal.defn(self, '$arg_prefix_map', TMP_Default_arg_prefix_map_133 = function $$arg_prefix_map(op_t, name_t) { - var self = this, expr_l = nil; + Opal.def(self, '$_reduce_437', $Ruby30__reduce_437$313 = function $$_reduce_437(val, _values, result) { + var self = this; - if (name_t == null) { - name_t = nil; - } - if ($truthy(name_t['$nil?']())) { - expr_l = self.$loc(op_t) - } else { - expr_l = self.$loc(op_t).$join(self.$loc(name_t)) - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Variable').$new(self.$loc(name_t), expr_l); - }, TMP_Default_arg_prefix_map_133.$$arity = -2); + self.static_env.$extend_dynamic(); + self.max_numparam_stack.$push(); + return result; + }, $Ruby30__reduce_437$313.$$arity = 3); - Opal.defn(self, '$kwarg_map', TMP_Default_kwarg_map_134 = function $$kwarg_map(name_t, value_e) { - var self = this, label_range = nil, name_range = nil, expr_l = nil; + Opal.def(self, '$_reduce_438', $Ruby30__reduce_438$314 = function $$_reduce_438(val, _values, result) { + var self = this; - if (value_e == null) { - value_e = nil; - } - label_range = self.$loc(name_t); - name_range = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Range').$new(label_range.$source_buffer(), label_range.$begin_pos(), $rb_minus(label_range.$end_pos(), 1)); - if ($truthy(value_e)) { - expr_l = self.$loc(name_t).$join(value_e.$loc().$expression()) - } else { - expr_l = self.$loc(name_t) - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Variable').$new(name_range, expr_l); - }, TMP_Default_kwarg_map_134.$$arity = -2); + self.lexer.$cmdarg().$push(false); + return result; + }, $Ruby30__reduce_438$314.$$arity = 3); - Opal.defn(self, '$module_definition_map', TMP_Default_module_definition_map_135 = function $$module_definition_map(keyword_t, name_e, operator_t, end_t) { - var self = this, name_l = nil; + Opal.def(self, '$_reduce_439', $Ruby30__reduce_439$315 = function $$_reduce_439(val, _values, result) { + var self = this, args = nil; - if ($truthy(name_e)) { - name_l = name_e.$loc().$expression()}; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Definition').$new(self.$loc(keyword_t), self.$loc(operator_t), name_l, self.$loc(end_t)); - }, TMP_Default_module_definition_map_135.$$arity = 4); + args = (function() {if ($truthy(self.max_numparam_stack['$has_numparams?']())) { + return self.builder.$numargs(self.max_numparam_stack.$top()) + } else { + return val['$[]'](2) + }; return nil; })(); + result = [args, val['$[]'](3)]; + self.max_numparam_stack.$pop(); + self.static_env.$unextend(); + self.lexer.$cmdarg().$pop(); + return result; + }, $Ruby30__reduce_439$315.$$arity = 3); - Opal.defn(self, '$definition_map', TMP_Default_definition_map_136 = function $$definition_map(keyword_t, operator_t, name_t, end_t) { + Opal.def(self, '$_reduce_440', $Ruby30__reduce_440$316 = function $$_reduce_440(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Definition').$new(self.$loc(keyword_t), self.$loc(operator_t), self.$loc(name_t), self.$loc(end_t)) - }, TMP_Default_definition_map_136.$$arity = 4); - - Opal.defn(self, '$send_map', TMP_Default_send_map_137 = function $$send_map(receiver_e, dot_t, selector_t, begin_t, args, end_t) { - var self = this, begin_l = nil, end_l = nil; - - if (begin_t == null) { - begin_t = nil; - } - if (args == null) { - args = []; - } - if (end_t == null) { - end_t = nil; - } - if ($truthy(receiver_e)) { - begin_l = receiver_e.$loc().$expression() - } else if ($truthy(selector_t)) { - begin_l = self.$loc(selector_t)}; - if ($truthy(end_t)) { - end_l = self.$loc(end_t) - } else if ($truthy(args['$any?']())) { - end_l = args.$last().$loc().$expression() - } else if ($truthy(selector_t)) { - end_l = self.$loc(selector_t)}; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Send').$new(self.$loc(dot_t), self.$loc(selector_t), self.$loc(begin_t), self.$loc(end_t), begin_l.$join(end_l)); - }, TMP_Default_send_map_137.$$arity = -4); + result = [self.builder.$when(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3))].concat(Opal.to_a(val['$[]'](4))); + return result; + }, $Ruby30__reduce_440$316.$$arity = 3); - Opal.defn(self, '$var_send_map', TMP_Default_var_send_map_138 = function $$var_send_map(variable_e) { + Opal.def(self, '$_reduce_441', $Ruby30__reduce_441$317 = function $$_reduce_441(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Send').$new(nil, variable_e.$loc().$expression(), nil, nil, variable_e.$loc().$expression()) - }, TMP_Default_var_send_map_138.$$arity = 1); + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_441$317.$$arity = 3); - Opal.defn(self, '$send_binary_op_map', TMP_Default_send_binary_op_map_139 = function $$send_binary_op_map(lhs_e, selector_t, rhs_e) { - var self = this; + Opal.def(self, '$_reduce_443', $Ruby30__reduce_443$318 = function $$_reduce_443(val, _values, result) { + var self = this, $writer = nil; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, self.$join_exprs(lhs_e, rhs_e)) - }, TMP_Default_send_binary_op_map_139.$$arity = 3); + + + $writer = ["expr_beg"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [false]; + $send(self.lexer, 'command_start=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.pattern_variables.$push(); + self.pattern_hash_keys.$push(); + result = self.lexer.$in_kwarg(); + + $writer = [true]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_443$318.$$arity = 3); - Opal.defn(self, '$send_unary_op_map', TMP_Default_send_unary_op_map_140 = function $$send_unary_op_map(selector_t, arg_e) { - var self = this, expr_l = nil; + Opal.def(self, '$_reduce_444', $Ruby30__reduce_444$319 = function $$_reduce_444(val, _values, result) { + var self = this, $writer = nil; - if ($truthy(arg_e['$nil?']())) { - expr_l = self.$loc(selector_t) - } else { - expr_l = self.$loc(selector_t).$join(arg_e.$loc().$expression()) - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(selector_t), nil, nil, expr_l); - }, TMP_Default_send_unary_op_map_140.$$arity = 2); + self.pattern_variables.$pop(); + self.pattern_hash_keys.$pop(); + + $writer = [val['$[]'](1)]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_444$319.$$arity = 3); - Opal.defn(self, '$send_index_map', TMP_Default_send_index_map_141 = function $$send_index_map(receiver_e, lbrack_t, rbrack_t) { + Opal.def(self, '$_reduce_445', $Ruby30__reduce_445$320 = function $$_reduce_445(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Send').$new(nil, self.$loc(lbrack_t).$join(self.$loc(rbrack_t)), nil, nil, receiver_e.$loc().$expression().$join(self.$loc(rbrack_t))) - }, TMP_Default_send_index_map_141.$$arity = 3); + + result = [$send(self.builder, 'in_pattern', [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](3), val['$[]'](5)]))].concat(Opal.to_a(val['$[]'](6))); + return result; + }, $Ruby30__reduce_445$320.$$arity = 3); - Opal.defn(self, '$block_map', TMP_Default_block_map_142 = function $$block_map(receiver_l, begin_t, end_t) { + Opal.def(self, '$_reduce_446', $Ruby30__reduce_446$321 = function $$_reduce_446(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Collection').$new(self.$loc(begin_t), self.$loc(end_t), receiver_l.$join(self.$loc(end_t))) - }, TMP_Default_block_map_142.$$arity = 3); + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_446$321.$$arity = 3); - Opal.defn(self, '$keyword_map', TMP_Default_keyword_map_143 = function $$keyword_map(keyword_t, begin_t, args, end_t) { - var $a, self = this, end_l = nil; + Opal.def(self, '$_reduce_448', $Ruby30__reduce_448$322 = function $$_reduce_448(val, _values, result) { + var self = this; - args = ($truthy($a = args) ? $a : []); - if ($truthy(end_t)) { - end_l = self.$loc(end_t) - } else if ($truthy(($truthy($a = args['$any?']()) ? args.$last()['$nil?']()['$!']() : $a))) { - end_l = args.$last().$loc().$expression() - } else if ($truthy(($truthy($a = args['$any?']()) ? $rb_gt(args.$count(), 1) : $a))) { - end_l = args['$[]'](-2).$loc().$expression() - } else { - end_l = self.$loc(keyword_t) - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); - }, TMP_Default_keyword_map_143.$$arity = 4); + result = [val['$[]'](0), nil]; + return result; + }, $Ruby30__reduce_448$322.$$arity = 3); - Opal.defn(self, '$keyword_mod_map', TMP_Default_keyword_mod_map_144 = function $$keyword_mod_map(pre_e, keyword_t, post_e) { + Opal.def(self, '$_reduce_449', $Ruby30__reduce_449$323 = function $$_reduce_449(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Keyword').$new(self.$loc(keyword_t), nil, nil, self.$join_exprs(pre_e, post_e)) - }, TMP_Default_keyword_mod_map_144.$$arity = 3); + + result = [val['$[]'](0), self.builder.$if_guard(val['$[]'](1), val['$[]'](2))]; + return result; + }, $Ruby30__reduce_449$323.$$arity = 3); - Opal.defn(self, '$condition_map', TMP_Default_condition_map_145 = function $$condition_map(keyword_t, cond_e, begin_t, body_e, else_t, else_e, end_t) { - var $a, self = this, end_l = nil; + Opal.def(self, '$_reduce_450', $Ruby30__reduce_450$324 = function $$_reduce_450(val, _values, result) { + var self = this; - if ($truthy(end_t)) { - end_l = self.$loc(end_t) - } else if ($truthy(($truthy($a = else_e) ? else_e.$loc().$expression() : $a))) { - end_l = else_e.$loc().$expression() - } else if ($truthy(self.$loc(else_t))) { - end_l = self.$loc(else_t) - } else if ($truthy(($truthy($a = body_e) ? body_e.$loc().$expression() : $a))) { - end_l = body_e.$loc().$expression() - } else if ($truthy(self.$loc(begin_t))) { - end_l = self.$loc(begin_t) - } else { - end_l = cond_e.$loc().$expression() - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), self.$loc(begin_t), self.$loc(else_t), self.$loc(end_t), self.$loc(keyword_t).$join(end_l)); - }, TMP_Default_condition_map_145.$$arity = 7); + result = [val['$[]'](0), self.builder.$unless_guard(val['$[]'](1), val['$[]'](2))]; + return result; + }, $Ruby30__reduce_450$324.$$arity = 3); - Opal.defn(self, '$ternary_map', TMP_Default_ternary_map_146 = function $$ternary_map(begin_e, question_t, mid_e, colon_t, end_e) { - var self = this; + Opal.def(self, '$_reduce_452', $Ruby30__reduce_452$325 = function $$_reduce_452(val, _values, result) { + var self = this, item = nil; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Ternary').$new(self.$loc(question_t), self.$loc(colon_t), self.$join_exprs(begin_e, end_e)) - }, TMP_Default_ternary_map_146.$$arity = 5); + + item = self.builder.$match_with_trailing_comma(val['$[]'](0), val['$[]'](1)); + result = self.builder.$array_pattern(nil, [item], nil); + return result; + }, $Ruby30__reduce_452$325.$$arity = 3); - Opal.defn(self, '$for_map', TMP_Default_for_map_147 = function $$for_map(keyword_t, in_t, begin_t, end_t) { + Opal.def(self, '$_reduce_453', $Ruby30__reduce_453$326 = function $$_reduce_453(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'For').$new(self.$loc(keyword_t), self.$loc(in_t), self.$loc(begin_t), self.$loc(end_t), self.$loc(keyword_t).$join(self.$loc(end_t))) - }, TMP_Default_for_map_147.$$arity = 4); + + result = self.builder.$array_pattern(nil, [val['$[]'](0)].$concat(val['$[]'](2)), nil); + return result; + }, $Ruby30__reduce_453$326.$$arity = 3); - Opal.defn(self, '$rescue_body_map', TMP_Default_rescue_body_map_148 = function $$rescue_body_map(keyword_t, exc_list_e, assoc_t, exc_var_e, then_t, compstmt_e) { - var $a, self = this, end_l = nil; + Opal.def(self, '$_reduce_454', $Ruby30__reduce_454$327 = function $$_reduce_454(val, _values, result) { + var self = this; - if ($truthy(compstmt_e)) { - end_l = compstmt_e.$loc().$expression()}; - if ($truthy(($truthy($a = end_l['$nil?']()) ? then_t : $a))) { - end_l = self.$loc(then_t)}; - if ($truthy(($truthy($a = end_l['$nil?']()) ? exc_var_e : $a))) { - end_l = exc_var_e.$loc().$expression()}; - if ($truthy(($truthy($a = end_l['$nil?']()) ? exc_list_e : $a))) { - end_l = exc_list_e.$loc().$expression()}; - if ($truthy(end_l['$nil?']())) { - end_l = self.$loc(keyword_t)}; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'RescueBody').$new(self.$loc(keyword_t), self.$loc(assoc_t), self.$loc(then_t), self.$loc(keyword_t).$join(end_l)); - }, TMP_Default_rescue_body_map_148.$$arity = 6); + result = self.builder.$find_pattern(nil, val['$[]'](0), nil); + return result; + }, $Ruby30__reduce_454$327.$$arity = 3); - Opal.defn(self, '$eh_keyword_map', TMP_Default_eh_keyword_map_149 = function $$eh_keyword_map(compstmt_e, keyword_t, body_es, else_t, else_e) { - var self = this, begin_l = nil, end_l = nil; + Opal.def(self, '$_reduce_455', $Ruby30__reduce_455$328 = function $$_reduce_455(val, _values, result) { + var self = this; - if ($truthy(compstmt_e['$nil?']())) { - if ($truthy(keyword_t['$nil?']())) { - begin_l = body_es.$first().$loc().$expression() - } else { - begin_l = self.$loc(keyword_t) - } - } else { - begin_l = compstmt_e.$loc().$expression() - }; - if ($truthy(else_t)) { - if ($truthy(else_e['$nil?']())) { - end_l = self.$loc(else_t) - } else { - end_l = else_e.$loc().$expression() - } - } else if ($truthy(body_es.$last()['$nil?']()['$!']())) { - end_l = body_es.$last().$loc().$expression() - } else { - end_l = self.$loc(keyword_t) - }; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Map'), 'Condition').$new(self.$loc(keyword_t), nil, self.$loc(else_t), nil, begin_l.$join(end_l)); - }, TMP_Default_eh_keyword_map_149.$$arity = 5); + result = self.builder.$array_pattern(nil, val['$[]'](0), nil); + return result; + }, $Ruby30__reduce_455$328.$$arity = 3); - Opal.defn(self, '$static_string', TMP_Default_static_string_151 = function $$static_string(nodes) {try { - - var TMP_150, self = this; + Opal.def(self, '$_reduce_456', $Ruby30__reduce_456$329 = function $$_reduce_456(val, _values, result) { + var self = this; - return $send(nodes, 'map', [], (TMP_150 = function(node){var self = TMP_150.$$s || this, $case = nil, string = nil; -if (node == null) node = nil; - return (function() {$case = node.$type(); - if ("str"['$===']($case)) {return node.$children()['$[]'](0)} - else if ("begin"['$===']($case)) {if ($truthy((string = self.$static_string(node.$children())))) { - return string - } else { - Opal.ret(nil) - }} - else {Opal.ret(nil)}})()}, TMP_150.$$s = self, TMP_150.$$arity = 1, TMP_150)).$join() - } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Default_static_string_151.$$arity = 1); + + result = self.builder.$hash_pattern(nil, val['$[]'](0), nil); + return result; + }, $Ruby30__reduce_456$329.$$arity = 3); - Opal.defn(self, '$static_regexp', TMP_Default_static_regexp_152 = function $$static_regexp(parts, options) { - var $a, self = this, source = nil; + Opal.def(self, '$_reduce_458', $Ruby30__reduce_458$330 = function $$_reduce_458(val, _values, result) { + var self = this; - source = self.$static_string(parts); - if ($truthy(source['$nil?']())) { - return nil}; - if ($truthy((($a = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - source = (function() { - if ($truthy(options.$children()['$include?']("u"))) {return source.$encode(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8'))} - else if ($truthy(options.$children()['$include?']("e"))) {return source.$encode(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'EUC_JP'))} - else if ($truthy(options.$children()['$include?']("s"))) {return source.$encode(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'WINDOWS_31J'))} - else if ($truthy(options.$children()['$include?']("n"))) {return source.$encode(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'BINARY'))} - else {return source}})()}; - return Opal.const_get_relative($nesting, 'Regexp').$new(source, (function() {if ($truthy(options.$children()['$include?']("x"))) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Regexp'), 'EXTENDED') - } else { - return nil - }; return nil; })()); - }, TMP_Default_static_regexp_152.$$arity = 2); + result = self.builder.$match_as(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_458$330.$$arity = 3); - Opal.defn(self, '$static_regexp_node', TMP_Default_static_regexp_node_153 = function $$static_regexp_node(node) { - var $a, self = this, parts = nil, options = nil; + Opal.def(self, '$_reduce_460', $Ruby30__reduce_460$331 = function $$_reduce_460(val, _values, result) { + var self = this; - if (node.$type()['$==']("regexp")) { - - $a = [node.$children()['$[]']($range(0, -2, false)), node.$children()['$[]'](-1)], (parts = $a[0]), (options = $a[1]), $a; - return self.$static_regexp(parts, options); - } else { - return nil - } - }, TMP_Default_static_regexp_node_153.$$arity = 1); + + result = self.builder.$match_alt(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_460$331.$$arity = 3); - Opal.defn(self, '$collapse_string_parts?', TMP_Default_collapse_string_parts$q_154 = function(parts) { - var $a, self = this; + Opal.def(self, '$_reduce_462', $Ruby30__reduce_462$332 = function $$_reduce_462(val, _values, result) { + var self = this; - return ($truthy($a = parts['$one?']()) ? ["str", "dstr"]['$include?'](parts.$first().$type()) : $a) - }, TMP_Default_collapse_string_parts$q_154.$$arity = 1); + + result = val['$[]'](0); + self.pattern_hash_keys.$push(); + return result; + }, $Ruby30__reduce_462$332.$$arity = 3); - Opal.defn(self, '$value', TMP_Default_value_155 = function $$value(token) { + Opal.def(self, '$_reduce_463', $Ruby30__reduce_463$333 = function $$_reduce_463(val, _values, result) { var self = this; - return token['$[]'](0) - }, TMP_Default_value_155.$$arity = 1); - if ($truthy((($a = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - Opal.defn(self, '$string_value', TMP_Default_string_value_156 = function $$string_value(token) { - var self = this; - - - if ($truthy(token['$[]'](0)['$valid_encoding?']())) { - } else { - self.$diagnostic("error", "invalid_encoding", nil, token['$[]'](1)) - }; - return token['$[]'](0); - }, TMP_Default_string_value_156.$$arity = 1) - } else { - Opal.alias(self, "string_value", "value") - }; + result = val['$[]'](0); + self.pattern_hash_keys.$push(); + return result; + }, $Ruby30__reduce_463$333.$$arity = 3); - Opal.defn(self, '$loc', TMP_Default_loc_157 = function $$loc(token) { - var $a, self = this; - - if ($truthy(($truthy($a = token) ? token['$[]'](0) : $a))) { - return token['$[]'](1) - } else { - return nil - } - }, TMP_Default_loc_157.$$arity = 1); - return (Opal.defn(self, '$diagnostic', TMP_Default_diagnostic_158 = function $$diagnostic(type, reason, arguments$, location, highlights) { - var self = this; + Opal.def(self, '$_reduce_465', $Ruby30__reduce_465$334 = function $$_reduce_465(val, _values, result) { + var self = this, pattern = nil; - if (highlights == null) { - highlights = []; - } - self.parser.$diagnostics().$process(Opal.const_get_relative($nesting, 'Diagnostic').$new(type, reason, arguments$, location, highlights)); - if (type['$==']("error")) { - return self.parser.$send("yyerror") - } else { - return nil - }; - }, TMP_Default_diagnostic_158.$$arity = -5), nil) && 'diagnostic'; - })(Opal.const_get_relative($nesting, 'Builders'), null, $nesting) - })($nesting[0], $nesting) -}; + self.pattern_hash_keys.$pop(); + pattern = self.builder.$array_pattern(nil, val['$[]'](2), nil); + result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); + return result; + }, $Ruby30__reduce_465$334.$$arity = 3); + + Opal.def(self, '$_reduce_466', $Ruby30__reduce_466$335 = function $$_reduce_466(val, _values, result) { + var self = this, pattern = nil; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/base"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $hash2 = Opal.hash2; + + self.pattern_hash_keys.$pop(); + pattern = self.builder.$find_pattern(nil, val['$[]'](2), nil); + result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); + return result; + }, $Ruby30__reduce_466$335.$$arity = 3); + + Opal.def(self, '$_reduce_467', $Ruby30__reduce_467$336 = function $$_reduce_467(val, _values, result) { + var self = this, pattern = nil; - Opal.add_stubs(['$default_parser', '$setup_source_buffer', '$default_encoding', '$parse', '$parse_with_comments', '$read', '$new', '$all_errors_are_fatal=', '$diagnostics', '$-', '$ignore_warnings=', '$lambda', '$puts', '$render', '$consumer=', '$respond_to?', '$force_encoding', '$dup', '$==', '$name', '$raw_source=', '$source=', '$private_class_method', '$attr_reader', '$version', '$diagnostics=', '$static_env=', '$parser=', '$class', '$[]', '$reset', '$source_buffer=', '$do_parse', '$comments=', '$comments', '$tokens=', '$!', '$raise', '$tokens', '$>', '$private', '$advance', '$===', '$diagnostic', '$map', '$process', '$yyerror', '$token_to_str']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + + self.pattern_hash_keys.$pop(); + pattern = self.builder.$hash_pattern(nil, val['$[]'](2), nil); + result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); + return result; + }, $Ruby30__reduce_467$336.$$arity = 3); + + Opal.def(self, '$_reduce_468', $Ruby30__reduce_468$337 = function $$_reduce_468(val, _values, result) { + var self = this, pattern = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + pattern = self.builder.$array_pattern(val['$[]'](1), nil, val['$[]'](2)); + result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](2)); + return result; + }, $Ruby30__reduce_468$337.$$arity = 3); + + Opal.def(self, '$_reduce_469', $Ruby30__reduce_469$338 = function $$_reduce_469(val, _values, result) { + var self = this, pattern = nil; - (function($base, $super, $parent_nesting) { - function $Base(){}; - var self = $Base = $klass($base, $super, 'Base', $Base); + + self.pattern_hash_keys.$pop(); + pattern = self.builder.$array_pattern(nil, val['$[]'](2), nil); + result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); + return result; + }, $Ruby30__reduce_469$338.$$arity = 3); + + Opal.def(self, '$_reduce_470', $Ruby30__reduce_470$339 = function $$_reduce_470(val, _values, result) { + var self = this, pattern = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Base_parse_1, TMP_Base_parse_with_comments_2, TMP_Base_parse_file_3, TMP_Base_parse_file_with_comments_4, TMP_Base_default_parser_6, TMP_Base_setup_source_buffer_7, TMP_Base_initialize_8, TMP_Base_reset_9, TMP_Base_parse_10, TMP_Base_parse_with_comments_11, TMP_Base_tokenize_12, TMP_Base_in_def$q_13, TMP_Base_next_token_14, TMP_Base_check_kwarg_name_15, TMP_Base_diagnostic_17, TMP_Base_on_error_18; + + self.pattern_hash_keys.$pop(); + pattern = self.builder.$find_pattern(nil, val['$[]'](2), nil); + result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); + return result; + }, $Ruby30__reduce_470$339.$$arity = 3); + + Opal.def(self, '$_reduce_471', $Ruby30__reduce_471$340 = function $$_reduce_471(val, _values, result) { + var self = this, pattern = nil; - def.diagnostics = def.lexer = def.static_env = def.builder = def.def_level = nil; + + self.pattern_hash_keys.$pop(); + pattern = self.builder.$hash_pattern(nil, val['$[]'](2), nil); + result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](3)); + return result; + }, $Ruby30__reduce_471$340.$$arity = 3); - Opal.defs(self, '$parse', TMP_Base_parse_1 = function $$parse(string, file, line) { - var self = this, parser = nil, source_buffer = nil; + Opal.def(self, '$_reduce_472', $Ruby30__reduce_472$341 = function $$_reduce_472(val, _values, result) { + var self = this, pattern = nil; - if (file == null) { - file = "(string)"; - } - if (line == null) { - line = 1; - } - parser = self.$default_parser(); - source_buffer = self.$setup_source_buffer(file, line, string, parser.$default_encoding()); - return parser.$parse(source_buffer); - }, TMP_Base_parse_1.$$arity = -2); - Opal.defs(self, '$parse_with_comments', TMP_Base_parse_with_comments_2 = function $$parse_with_comments(string, file, line) { - var self = this, parser = nil, source_buffer = nil; + pattern = self.builder.$array_pattern(val['$[]'](1), nil, val['$[]'](2)); + result = self.builder.$const_pattern(val['$[]'](0), val['$[]'](1), pattern, val['$[]'](2)); + return result; + }, $Ruby30__reduce_472$341.$$arity = 3); + + Opal.def(self, '$_reduce_473', $Ruby30__reduce_473$342 = function $$_reduce_473(val, _values, result) { + var self = this; - if (file == null) { - file = "(string)"; - } - if (line == null) { - line = 1; - } - parser = self.$default_parser(); - source_buffer = self.$setup_source_buffer(file, line, string, parser.$default_encoding()); - return parser.$parse_with_comments(source_buffer); - }, TMP_Base_parse_with_comments_2.$$arity = -2); - Opal.defs(self, '$parse_file', TMP_Base_parse_file_3 = function $$parse_file(filename) { + result = self.builder.$array_pattern(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_473$342.$$arity = 3); + + Opal.def(self, '$_reduce_474', $Ruby30__reduce_474$343 = function $$_reduce_474(val, _values, result) { var self = this; - return self.$parse(Opal.const_get_relative($nesting, 'File').$read(filename), filename) - }, TMP_Base_parse_file_3.$$arity = 1); - Opal.defs(self, '$parse_file_with_comments', TMP_Base_parse_file_with_comments_4 = function $$parse_file_with_comments(filename) { + + result = self.builder.$find_pattern(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_474$343.$$arity = 3); + + Opal.def(self, '$_reduce_475', $Ruby30__reduce_475$344 = function $$_reduce_475(val, _values, result) { var self = this; - return self.$parse_with_comments(Opal.const_get_relative($nesting, 'File').$read(filename), filename) - }, TMP_Base_parse_file_with_comments_4.$$arity = 1); - Opal.defs(self, '$default_parser', TMP_Base_default_parser_6 = function $$default_parser() { - var TMP_5, self = this, parser = nil, $writer = nil; + + result = self.builder.$array_pattern(val['$[]'](0), [], val['$[]'](1)); + return result; + }, $Ruby30__reduce_475$344.$$arity = 3); + + Opal.def(self, '$_reduce_476', $Ruby30__reduce_476$345 = function $$_reduce_476(val, _values, result) { + var self = this, $writer = nil; - parser = self.$new(); + self.pattern_hash_keys.$push(); + result = self.lexer.$in_kwarg(); - $writer = [true]; - $send(parser.$diagnostics(), 'all_errors_are_fatal=', Opal.to_a($writer)); + $writer = [false]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; + return result; + }, $Ruby30__reduce_476$345.$$arity = 3); + + Opal.def(self, '$_reduce_477', $Ruby30__reduce_477$346 = function $$_reduce_477(val, _values, result) { + var self = this, $writer = nil; + - $writer = [true]; - $send(parser.$diagnostics(), 'ignore_warnings=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; + self.pattern_hash_keys.$pop(); - $writer = [$send(self, 'lambda', [], (TMP_5 = function(diagnostic){var self = TMP_5.$$s || this; - if ($gvars.stderr == null) $gvars.stderr = nil; -if (diagnostic == null) diagnostic = nil; - return $gvars.stderr.$puts(diagnostic.$render())}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5))]; - $send(parser.$diagnostics(), 'consumer=', Opal.to_a($writer)); + $writer = [val['$[]'](1)]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return parser; - }, TMP_Base_default_parser_6.$$arity = 0); - Opal.defs(self, '$setup_source_buffer', TMP_Base_setup_source_buffer_7 = function $$setup_source_buffer(file, line, string, encoding) { - var self = this, source_buffer = nil, $writer = nil; + result = self.builder.$hash_pattern(val['$[]'](0), val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_477$346.$$arity = 3); + + Opal.def(self, '$_reduce_478', $Ruby30__reduce_478$347 = function $$_reduce_478(val, _values, result) { + var self = this; - if ($truthy(string['$respond_to?']("force_encoding"))) { - string = string.$dup().$force_encoding(encoding)}; - source_buffer = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Buffer').$new(file, line); - if (self.$name()['$==']("Parser::Ruby18")) { - - $writer = [string]; - $send(source_buffer, 'raw_source=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)]; - } else { - - $writer = [string]; - $send(source_buffer, 'source=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)]; - }; - return source_buffer; - }, TMP_Base_setup_source_buffer_7.$$arity = 4); - self.$private_class_method("setup_source_buffer"); - self.$attr_reader("diagnostics"); - self.$attr_reader("builder"); - self.$attr_reader("static_env"); - self.$attr_reader("source_buffer"); + result = self.builder.$hash_pattern(val['$[]'](0), [], val['$[]'](1)); + return result; + }, $Ruby30__reduce_478$347.$$arity = 3); - Opal.defn(self, '$initialize', TMP_Base_initialize_8 = function $$initialize(builder) { - var $a, self = this, $writer = nil; + Opal.def(self, '$_reduce_479', $Ruby30__reduce_479$348 = function $$_reduce_479(val, _values, result) { + var self = this; - if (builder == null) { - builder = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'Builders'), 'Default').$new(); - } - self.diagnostics = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Diagnostic'), 'Engine').$new(); - self.static_env = Opal.const_get_relative($nesting, 'StaticEnvironment').$new(); - self.lexer = Opal.const_get_relative($nesting, 'Lexer').$new(self.$version()); + self.pattern_hash_keys.$push(); + return result; + }, $Ruby30__reduce_479$348.$$arity = 3); + + Opal.def(self, '$_reduce_480', $Ruby30__reduce_480$349 = function $$_reduce_480(val, _values, result) { + var self = this; + - $writer = [self.diagnostics]; - $send(self.lexer, 'diagnostics=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; + self.pattern_hash_keys.$pop(); + result = self.builder.$begin(val['$[]'](0), val['$[]'](2), val['$[]'](3)); + return result; + }, $Ruby30__reduce_480$349.$$arity = 3); + + Opal.def(self, '$_reduce_481', $Ruby30__reduce_481$350 = function $$_reduce_481(val, _values, result) { + var self = this; + - $writer = [self.static_env]; - $send(self.lexer, 'static_env=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.builder = builder; + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_481$350.$$arity = 3); + + Opal.def(self, '$_reduce_482', $Ruby30__reduce_482$351 = function $$_reduce_482(val, _values, result) { + var self = this; + - $writer = [self]; - $send(self.builder, 'parser=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(($truthy($a = Opal.const_get_qualified(self.$class(), 'Racc_debug_parser')) ? Opal.const_get_relative($nesting, 'ENV')['$[]']("RACC_DEBUG") : $a))) { - self.yydebug = true}; - return self.$reset(); - }, TMP_Base_initialize_8.$$arity = -1); + result = val['$[]'](0); + return result; + }, $Ruby30__reduce_482$351.$$arity = 3); - Opal.defn(self, '$reset', TMP_Base_reset_9 = function $$reset() { + Opal.def(self, '$_reduce_483', $Ruby30__reduce_483$352 = function $$_reduce_483(val, _values, result) { var self = this; - self.source_buffer = nil; - self.def_level = 0; - self.lexer.$reset(); - self.static_env.$reset(); - return self; - }, TMP_Base_reset_9.$$arity = 0); + result = [].concat(Opal.to_a(val['$[]'](0))).concat([val['$[]'](1)]); + return result; + }, $Ruby30__reduce_483$352.$$arity = 3); - Opal.defn(self, '$parse', TMP_Base_parse_10 = function $$parse(source_buffer) { - var self = this, $writer = nil; + Opal.def(self, '$_reduce_484', $Ruby30__reduce_484$353 = function $$_reduce_484(val, _values, result) { + var self = this, match_rest = nil; - return (function() { try { + match_rest = self.builder.$match_rest(val['$[]'](1), val['$[]'](2)); + result = [].concat(Opal.to_a(val['$[]'](0))).concat([match_rest]); + return result; + }, $Ruby30__reduce_484$353.$$arity = 3); + + Opal.def(self, '$_reduce_485', $Ruby30__reduce_485$354 = function $$_reduce_485(val, _values, result) { + var self = this, match_rest = nil; + - $writer = [source_buffer]; - $send(self.lexer, 'source_buffer=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.source_buffer = source_buffer; - return self.$do_parse(); - } finally { - ((self.source_buffer = nil), (($writer = [nil]), $send(self.lexer, 'source_buffer=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) - }; })() - }, TMP_Base_parse_10.$$arity = 1); + match_rest = self.builder.$match_rest(val['$[]'](1), val['$[]'](2)); + result = [].concat(Opal.to_a(val['$[]'](0))).concat([match_rest]).concat(Opal.to_a(val['$[]'](4))); + return result; + }, $Ruby30__reduce_485$354.$$arity = 3); - Opal.defn(self, '$parse_with_comments', TMP_Base_parse_with_comments_11 = function $$parse_with_comments(source_buffer) { - var self = this, $writer = nil; + Opal.def(self, '$_reduce_486', $Ruby30__reduce_486$355 = function $$_reduce_486(val, _values, result) { + var self = this; - return (function() { try { + result = [].concat(Opal.to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]); + return result; + }, $Ruby30__reduce_486$355.$$arity = 3); + + Opal.def(self, '$_reduce_487', $Ruby30__reduce_487$356 = function $$_reduce_487(val, _values, result) { + var self = this; + - $writer = [[]]; - $send(self.lexer, 'comments=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return [self.$parse(source_buffer), self.lexer.$comments()]; - } finally { - (($writer = [nil]), $send(self.lexer, 'comments=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) - }; })() - }, TMP_Base_parse_with_comments_11.$$arity = 1); + result = [].concat(Opal.to_a(val['$[]'](0))).concat([self.builder.$match_rest(val['$[]'](1))]).concat(Opal.to_a(val['$[]'](3))); + return result; + }, $Ruby30__reduce_487$356.$$arity = 3); - Opal.defn(self, '$tokenize', TMP_Base_tokenize_12 = function $$tokenize(source_buffer, recover) { - var self = this, $writer = nil, ast = nil; + Opal.def(self, '$_reduce_489', $Ruby30__reduce_489$357 = function $$_reduce_489(val, _values, result) { + var self = this, item = nil; - if (recover == null) { - recover = false; - } - return (function() { try { + item = self.builder.$match_with_trailing_comma(val['$[]'](0), val['$[]'](1)); + result = [item]; + return result; + }, $Ruby30__reduce_489$357.$$arity = 3); + + Opal.def(self, '$_reduce_490', $Ruby30__reduce_490$358 = function $$_reduce_490(val, _values, result) { + var self = this, last_item = nil; + - $writer = [[]]; - $send(self.lexer, 'tokens=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; + last_item = self.builder.$match_with_trailing_comma(val['$[]'](1), val['$[]'](2)); + result = [].concat(Opal.to_a(val['$[]'](0))).concat([last_item]); + return result; + }, $Ruby30__reduce_490$358.$$arity = 3); + + Opal.def(self, '$_reduce_491', $Ruby30__reduce_491$359 = function $$_reduce_491(val, _values, result) { + var self = this; + - $writer = [[]]; - $send(self.lexer, 'comments=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_491$359.$$arity = 3); + + Opal.def(self, '$_reduce_492', $Ruby30__reduce_492$360 = function $$_reduce_492(val, _values, result) { + var self = this; + - try { - ast = self.$parse(source_buffer) - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'SyntaxError')])) { - try { - if ($truthy(recover['$!']())) { - self.$raise()} - } finally { Opal.pop_exception() } - } else { throw $err; } - };; - return [ast, self.lexer.$comments(), self.lexer.$tokens()]; - } finally { - ((($writer = [nil]), $send(self.lexer, 'tokens=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]), (($writer = [nil]), $send(self.lexer, 'comments=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) - }; })() - }, TMP_Base_tokenize_12.$$arity = -2); + result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))); + return result; + }, $Ruby30__reduce_492$360.$$arity = 3); - Opal.defn(self, '$in_def?', TMP_Base_in_def$q_13 = function() { + Opal.def(self, '$_reduce_493', $Ruby30__reduce_493$361 = function $$_reduce_493(val, _values, result) { var self = this; - return $rb_gt(self.def_level, 0) - }, TMP_Base_in_def$q_13.$$arity = 0); - self.$private(); + + result = [val['$[]'](0)].concat(Opal.to_a(val['$[]'](2))).concat([val['$[]'](4)]); + return result; + }, $Ruby30__reduce_493$361.$$arity = 3); - Opal.defn(self, '$next_token', TMP_Base_next_token_14 = function $$next_token() { + Opal.def(self, '$_reduce_494', $Ruby30__reduce_494$362 = function $$_reduce_494(val, _values, result) { var self = this; - return self.lexer.$advance() - }, TMP_Base_next_token_14.$$arity = 0); + + result = self.builder.$match_rest(val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_494$362.$$arity = 3); - Opal.defn(self, '$check_kwarg_name', TMP_Base_check_kwarg_name_15 = function $$check_kwarg_name(name_t) { - var self = this, $case = nil; + Opal.def(self, '$_reduce_495', $Ruby30__reduce_495$363 = function $$_reduce_495(val, _values, result) { + var self = this; - return (function() {$case = name_t['$[]'](0); - if (/^[a-z_]/['$===']($case)) {return nil} - else if (/^[A-Z]/['$===']($case)) {return self.$diagnostic("error", "argument_const", nil, name_t)} - else { return nil }})() - }, TMP_Base_check_kwarg_name_15.$$arity = 1); + + result = self.builder.$match_rest(val['$[]'](0)); + return result; + }, $Ruby30__reduce_495$363.$$arity = 3); - Opal.defn(self, '$diagnostic', TMP_Base_diagnostic_17 = function $$diagnostic(level, reason, arguments$, location_t, highlights_ts) { - var $a, $b, TMP_16, self = this, _ = nil, location = nil, highlights = nil; + Opal.def(self, '$_reduce_496', $Ruby30__reduce_496$364 = function $$_reduce_496(val, _values, result) { + var self = this; - if (highlights_ts == null) { - highlights_ts = []; - } - $b = location_t, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; - highlights = $send(highlights_ts, 'map', [], (TMP_16 = function(token){var self = TMP_16.$$s || this, $c, $d, range = nil; -if (token == null) token = nil; + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_496$364.$$arity = 3); + + Opal.def(self, '$_reduce_497', $Ruby30__reduce_497$365 = function $$_reduce_497(val, _values, result) { + var self = this; + - $d = token, $c = Opal.to_ary($d), (_ = ($c[0] == null ? nil : $c[0])), (range = ($c[1] == null ? nil : $c[1])), $d; - return range;}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)); - self.diagnostics.$process(Opal.const_get_relative($nesting, 'Diagnostic').$new(level, reason, arguments$, location, highlights)); - if (level['$==']("error")) { - return self.$yyerror() - } else { - return nil - }; - }, TMP_Base_diagnostic_17.$$arity = -5); - return (Opal.defn(self, '$on_error', TMP_Base_on_error_18 = function $$on_error(error_token_id, error_value, value_stack) { - var $a, $b, self = this, token_name = nil, _ = nil, location = nil; + result = [].concat(Opal.to_a(val['$[]'](0))).concat([val['$[]'](2)]); + return result; + }, $Ruby30__reduce_497$365.$$arity = 3); + + Opal.def(self, '$_reduce_499', $Ruby30__reduce_499$366 = function $$_reduce_499(val, _values, result) { + var self = this; - token_name = self.$token_to_str(error_token_id); - $b = error_value, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (location = ($a[1] == null ? nil : $a[1])), $b; - return self.diagnostics.$process(Opal.const_get_relative($nesting, 'Diagnostic').$new("error", "unexpected_token", $hash2(["token"], {"token": token_name}), location)); - }, TMP_Base_on_error_18.$$arity = 3), nil) && 'on_error'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Racc'), 'Parser'), $nesting) - })($nesting[0], $nesting) -}; + result = [].concat(Opal.to_a(val['$[]'](0))).concat(Opal.to_a(val['$[]'](2))); + return result; + }, $Ruby30__reduce_499$366.$$arity = 3); + + Opal.def(self, '$_reduce_500', $Ruby30__reduce_500$367 = function $$_reduce_500(val, _values, result) { + var self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/rewriter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; + + result = val['$[]'](0); + return result; + }, $Ruby30__reduce_500$367.$$arity = 3); + + Opal.def(self, '$_reduce_501', $Ruby30__reduce_501$368 = function $$_reduce_501(val, _values, result) { + var self = this; - Opal.add_stubs(['$new', '$process', '$include?', '$type', '$remove', '$insert_before', '$insert_after', '$replace']); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); + + result = val['$[]'](0); + return result; + }, $Ruby30__reduce_501$368.$$arity = 3); + + Opal.def(self, '$_reduce_502', $Ruby30__reduce_502$369 = function $$_reduce_502(val, _values, result) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + result = val['$[]'](0); + return result; + }, $Ruby30__reduce_502$369.$$arity = 3); + + Opal.def(self, '$_reduce_503', $Ruby30__reduce_503$370 = function $$_reduce_503(val, _values, result) { + var self = this; - (function($base, $super, $parent_nesting) { - function $Rewriter(){}; - var self = $Rewriter = $klass($base, $super, 'Rewriter', $Rewriter); + + result = [val['$[]'](0)]; + return result; + }, $Ruby30__reduce_503$370.$$arity = 3); + + Opal.def(self, '$_reduce_504', $Ruby30__reduce_504$371 = function $$_reduce_504(val, _values, result) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Rewriter_rewrite_1, TMP_Rewriter_assignment$q_2, TMP_Rewriter_remove_3, TMP_Rewriter_insert_before_4, TMP_Rewriter_insert_after_5, TMP_Rewriter_replace_6; + + result = [].concat(Opal.to_a(val['$[]'](0))).concat([val['$[]'](2)]); + return result; + }, $Ruby30__reduce_504$371.$$arity = 3); + + Opal.def(self, '$_reduce_505', $Ruby30__reduce_505$372 = function $$_reduce_505(val, _values, result) { + var self = this; - def.source_rewriter = nil; + + result = $send(self.builder, 'match_pair', Opal.to_a(val['$[]'](0)).concat([val['$[]'](1)])); + return result; + }, $Ruby30__reduce_505$372.$$arity = 3); + Opal.def(self, '$_reduce_506', $Ruby30__reduce_506$373 = function $$_reduce_506(val, _values, result) { + var self = this; + + + result = $send(self.builder, 'match_label', Opal.to_a(val['$[]'](0))); + return result; + }, $Ruby30__reduce_506$373.$$arity = 3); - Opal.defn(self, '$rewrite', TMP_Rewriter_rewrite_1 = function $$rewrite(source_buffer, ast) { + Opal.def(self, '$_reduce_507', $Ruby30__reduce_507$374 = function $$_reduce_507(val, _values, result) { var self = this; - self.source_rewriter = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Source'), 'Rewriter').$new(source_buffer); - self.$process(ast); - return self.source_rewriter.$process(); - }, TMP_Rewriter_rewrite_1.$$arity = 2); + result = ["label", val['$[]'](0)]; + return result; + }, $Ruby30__reduce_507$374.$$arity = 3); - Opal.defn(self, '$assignment?', TMP_Rewriter_assignment$q_2 = function(node) { + Opal.def(self, '$_reduce_508', $Ruby30__reduce_508$375 = function $$_reduce_508(val, _values, result) { var self = this; - return ["lvasgn", "ivasgn", "gvasgn", "cvasgn", "casgn"]['$include?'](node.$type()) - }, TMP_Rewriter_assignment$q_2.$$arity = 1); + + result = ["quoted", [val['$[]'](0), val['$[]'](1), val['$[]'](2)]]; + return result; + }, $Ruby30__reduce_508$375.$$arity = 3); - Opal.defn(self, '$remove', TMP_Rewriter_remove_3 = function $$remove(range) { + Opal.def(self, '$_reduce_509', $Ruby30__reduce_509$376 = function $$_reduce_509(val, _values, result) { var self = this; - return self.source_rewriter.$remove(range) - }, TMP_Rewriter_remove_3.$$arity = 1); + + result = [self.builder.$match_rest(val['$[]'](0), val['$[]'](1))]; + return result; + }, $Ruby30__reduce_509$376.$$arity = 3); - Opal.defn(self, '$insert_before', TMP_Rewriter_insert_before_4 = function $$insert_before(range, content) { + Opal.def(self, '$_reduce_510', $Ruby30__reduce_510$377 = function $$_reduce_510(val, _values, result) { var self = this; - return self.source_rewriter.$insert_before(range, content) - }, TMP_Rewriter_insert_before_4.$$arity = 2); + + result = [self.builder.$match_rest(val['$[]'](0), nil)]; + return result; + }, $Ruby30__reduce_510$377.$$arity = 3); - Opal.defn(self, '$insert_after', TMP_Rewriter_insert_after_5 = function $$insert_after(range, content) { + Opal.def(self, '$_reduce_511', $Ruby30__reduce_511$378 = function $$_reduce_511(val, _values, result) { var self = this; - return self.source_rewriter.$insert_after(range, content) - }, TMP_Rewriter_insert_after_5.$$arity = 2); - return (Opal.defn(self, '$replace', TMP_Rewriter_replace_6 = function $$replace(range, content) { + + result = [self.builder.$match_nil_pattern(val['$[]'](0), val['$[]'](1))]; + return result; + }, $Ruby30__reduce_511$378.$$arity = 3); + + Opal.def(self, '$_reduce_515', $Ruby30__reduce_515$379 = function $$_reduce_515(val, _values, result) { var self = this; - return self.source_rewriter.$replace(range, content) - }, TMP_Rewriter_replace_6.$$arity = 2), nil) && 'replace'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'AST'), 'Processor'), $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser"] = function(Opal) { - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $truthy = Opal.truthy, $module = Opal.module; - - Opal.add_stubs(['$require', '$<', '$raise']); - - self.$require("set"); - self.$require("racc/parser"); - self.$require("ast"); - if ($truthy($rb_lt(Opal.const_get_relative($nesting, 'RUBY_VERSION'), "1.9"))) { - self.$require("parser/compatibility/ruby1_8")}; - if ($truthy($rb_lt(Opal.const_get_relative($nesting, 'RUBY_VERSION'), "2.0"))) { - self.$require("parser/compatibility/ruby1_9")}; - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Parser_check_for_encoding_support_1; - - - self.$require("parser/version"); - self.$require("parser/messages"); - (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - + + result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_515$379.$$arity = 3); - self.$require("parser/ast/node"); - self.$require("parser/ast/processor"); - self.$require("parser/meta"); - })($nesting[0], $nesting); - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + Opal.def(self, '$_reduce_516', $Ruby30__reduce_516$380 = function $$_reduce_516(val, _values, result) { + var self = this; + + result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + return result; + }, $Ruby30__reduce_516$380.$$arity = 3); - self.$require("parser/source/buffer"); - self.$require("parser/source/range"); - self.$require("parser/source/comment"); - self.$require("parser/source/comment/associator"); - self.$require("parser/source/rewriter"); - self.$require("parser/source/rewriter/action"); - self.$require("parser/source/map"); - self.$require("parser/source/map/operator"); - self.$require("parser/source/map/collection"); - self.$require("parser/source/map/constant"); - self.$require("parser/source/map/variable"); - self.$require("parser/source/map/keyword"); - self.$require("parser/source/map/definition"); - self.$require("parser/source/map/send"); - self.$require("parser/source/map/condition"); - self.$require("parser/source/map/ternary"); - self.$require("parser/source/map/for"); - self.$require("parser/source/map/rescue_body"); - self.$require("parser/source/map/heredoc"); - self.$require("parser/source/map/objc_kwarg"); - })($nesting[0], $nesting); - self.$require("parser/syntax_error"); - self.$require("parser/clobbering_error"); - self.$require("parser/diagnostic"); - self.$require("parser/diagnostic/engine"); - self.$require("parser/static_environment"); - self.$require("parser/lexer"); - self.$require("parser/lexer/literal"); - self.$require("parser/lexer/stack_state"); - self.$require("parser/lexer/dedenter"); - (function($base, $parent_nesting) { - var $Builders, self = $Builders = $module($base, 'Builders'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - self.$require("parser/builders/default") - })($nesting[0], $nesting); - self.$require("parser/base"); - self.$require("parser/rewriter"); - Opal.defs(self, '$check_for_encoding_support', TMP_Parser_check_for_encoding_support_1 = function $$check_for_encoding_support() { - var $a, self = this; - - if ($truthy((($a = Opal.const_get_relative($nesting, 'Encoding', 'skip_raise')) ? 'constant' : nil))) { - return nil - } else { - return self.$raise(Opal.const_get_relative($nesting, 'RuntimeError'), "Parsing 1.9 and later versions of Ruby is not supported on 1.8 due to the lack of Encoding support") - } - }, TMP_Parser_check_for_encoding_support_1.$$arity = 0); - })($nesting[0], $nesting); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["parser/ruby23"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash = Opal.hash; - - Opal.add_stubs(['$require', '$check_for_encoding_support', '$new', '$each', '$split', '$empty?', '$to_i', '$[]=', '$-', '$+', '$compstmt', '$[]', '$<<', '$preexe', '$!', '$nil?', '$diagnostic', '$begin_body', '$state=', '$alias', '$gvar', '$back_ref', '$undef_method', '$condition_mod', '$loop_mod', '$rescue_body', '$postexe', '$multi_assign', '$op_assign', '$index', '$call_method', '$const_op_assignable', '$const_fetch', '$assign', '$array', '$logical_op', '$not_op', '$extend_dynamic', '$unextend', '$block', '$keyword_cmd', '$multi_lhs', '$begin', '$push', '$splat', '$concat', '$assignable', '$index_asgn', '$attr_asgn', '$const_global', '$const', '$symbol', '$range_inclusive', '$range_exclusive', '$binary_op', '$unary_op', '$match_op', '$ternary', '$associate', '$dup', '$cmdarg', '$cmdarg=', '$block_pass', '$clear', '$begin_keyword', '$call_lambda', '$condition', '$cond', '$pop', '$loop', '$case', '$for', '$extend_static', '$push_cmdarg', '$in_def?', '$def_class', '$pop_cmdarg', '$def_sclass', '$def_module', '$def_method', '$def_singleton', '$arg', '$restarg', '$==', '$size', '$procarg0', '$args', '$declare', '$shadowarg', '$lexpop', '$when', '$string_compose', '$dedent_string', '$dedent_level', '$string', '$character', '$xstring_compose', '$regexp_options', '$regexp_compose', '$words_compose', '$word', '$symbols_compose', '$string_internal', '$symbol_internal', '$ivar', '$cvar', '$symbol_compose', '$negate', '$integer', '$float', '$rational', '$complex', '$ident', '$nil', '$self', '$true', '$false', '$__FILE__', '$__LINE__', '$__ENCODING__', '$accessible', '$nth_ref', '$in_kwarg', '$in_kwarg=', '$check_kwarg_name', '$kwoptarg', '$kwarg', '$kwrestarg', '$optarg', '$blockarg', '$pair', '$pair_keyword', '$pair_quoted', '$kwsplat', '$yyerrok']); - - self.$require("racc/parser.rb"); - self.$require("parser"); - Opal.const_get_relative($nesting, 'Parser').$check_for_encoding_support(); - return (function($base, $parent_nesting) { - var $Parser, self = $Parser = $module($base, 'Parser'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $super, $parent_nesting) { - function $Ruby23(){}; - var self = $Ruby23 = $klass($base, $super, 'Ruby23', $Ruby23); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Ruby23_version_1, TMP_Ruby23_default_encoding_2, TMP_Ruby23_3, TMP_Ruby23_5, TMP_Ruby23_7, TMP_Ruby23_9, TMP_Ruby23__reduce_2_11, TMP_Ruby23__reduce_3_12, TMP_Ruby23__reduce_4_13, TMP_Ruby23__reduce_5_14, TMP_Ruby23__reduce_6_15, TMP_Ruby23__reduce_8_16, TMP_Ruby23__reduce_9_17, TMP_Ruby23__reduce_10_18, TMP_Ruby23__reduce_11_19, TMP_Ruby23__reduce_12_20, TMP_Ruby23__reduce_13_21, TMP_Ruby23__reduce_14_22, TMP_Ruby23__reduce_16_23, TMP_Ruby23__reduce_17_24, TMP_Ruby23__reduce_18_25, TMP_Ruby23__reduce_19_26, TMP_Ruby23__reduce_20_27, TMP_Ruby23__reduce_21_28, TMP_Ruby23__reduce_22_29, TMP_Ruby23__reduce_23_30, TMP_Ruby23__reduce_24_31, TMP_Ruby23__reduce_25_32, TMP_Ruby23__reduce_26_33, TMP_Ruby23__reduce_27_34, TMP_Ruby23__reduce_28_35, TMP_Ruby23__reduce_30_36, TMP_Ruby23__reduce_31_37, TMP_Ruby23__reduce_32_38, TMP_Ruby23__reduce_33_39, TMP_Ruby23__reduce_34_40, TMP_Ruby23__reduce_35_41, TMP_Ruby23__reduce_36_42, TMP_Ruby23__reduce_37_43, TMP_Ruby23__reduce_38_44, TMP_Ruby23__reduce_39_45, TMP_Ruby23__reduce_41_46, TMP_Ruby23__reduce_42_47, TMP_Ruby23__reduce_44_48, TMP_Ruby23__reduce_45_49, TMP_Ruby23__reduce_46_50, TMP_Ruby23__reduce_47_51, TMP_Ruby23__reduce_53_52, TMP_Ruby23__reduce_54_53, TMP_Ruby23__reduce_55_54, TMP_Ruby23__reduce_57_55, TMP_Ruby23__reduce_58_56, TMP_Ruby23__reduce_59_57, TMP_Ruby23__reduce_60_58, TMP_Ruby23__reduce_61_59, TMP_Ruby23__reduce_62_60, TMP_Ruby23__reduce_63_61, TMP_Ruby23__reduce_64_62, TMP_Ruby23__reduce_65_63, TMP_Ruby23__reduce_66_64, TMP_Ruby23__reduce_67_65, TMP_Ruby23__reduce_68_66, TMP_Ruby23__reduce_69_67, TMP_Ruby23__reduce_70_68, TMP_Ruby23__reduce_71_69, TMP_Ruby23__reduce_73_70, TMP_Ruby23__reduce_74_71, TMP_Ruby23__reduce_75_72, TMP_Ruby23__reduce_76_73, TMP_Ruby23__reduce_77_74, TMP_Ruby23__reduce_78_75, TMP_Ruby23__reduce_79_76, TMP_Ruby23__reduce_80_77, TMP_Ruby23__reduce_81_78, TMP_Ruby23__reduce_83_79, TMP_Ruby23__reduce_84_80, TMP_Ruby23__reduce_85_81, TMP_Ruby23__reduce_86_82, TMP_Ruby23__reduce_87_83, TMP_Ruby23__reduce_88_84, TMP_Ruby23__reduce_89_85, TMP_Ruby23__reduce_90_86, TMP_Ruby23__reduce_91_87, TMP_Ruby23__reduce_92_88, TMP_Ruby23__reduce_93_89, TMP_Ruby23__reduce_94_90, TMP_Ruby23__reduce_95_91, TMP_Ruby23__reduce_96_92, TMP_Ruby23__reduce_97_93, TMP_Ruby23__reduce_98_94, TMP_Ruby23__reduce_99_95, TMP_Ruby23__reduce_100_96, TMP_Ruby23__reduce_101_97, TMP_Ruby23__reduce_102_98, TMP_Ruby23__reduce_103_99, TMP_Ruby23__reduce_104_100, TMP_Ruby23__reduce_105_101, TMP_Ruby23__reduce_106_102, TMP_Ruby23__reduce_108_103, TMP_Ruby23__reduce_109_104, TMP_Ruby23__reduce_110_105, TMP_Ruby23__reduce_116_106, TMP_Ruby23__reduce_120_107, TMP_Ruby23__reduce_121_108, TMP_Ruby23__reduce_122_109, TMP_Ruby23__reduce_194_110, TMP_Ruby23__reduce_195_111, TMP_Ruby23__reduce_196_112, TMP_Ruby23__reduce_197_113, TMP_Ruby23__reduce_198_114, TMP_Ruby23__reduce_199_115, TMP_Ruby23__reduce_200_116, TMP_Ruby23__reduce_201_117, TMP_Ruby23__reduce_202_118, TMP_Ruby23__reduce_203_119, TMP_Ruby23__reduce_204_120, TMP_Ruby23__reduce_205_121, TMP_Ruby23__reduce_206_122, TMP_Ruby23__reduce_207_123, TMP_Ruby23__reduce_208_124, TMP_Ruby23__reduce_209_125, TMP_Ruby23__reduce_210_126, TMP_Ruby23__reduce_211_127, TMP_Ruby23__reduce_212_128, TMP_Ruby23__reduce_213_129, TMP_Ruby23__reduce_214_130, TMP_Ruby23__reduce_215_131, TMP_Ruby23__reduce_216_132, TMP_Ruby23__reduce_217_133, TMP_Ruby23__reduce_218_134, TMP_Ruby23__reduce_219_135, TMP_Ruby23__reduce_220_136, TMP_Ruby23__reduce_221_137, TMP_Ruby23__reduce_222_138, TMP_Ruby23__reduce_223_139, TMP_Ruby23__reduce_224_140, TMP_Ruby23__reduce_225_141, TMP_Ruby23__reduce_226_142, TMP_Ruby23__reduce_227_143, TMP_Ruby23__reduce_228_144, TMP_Ruby23__reduce_229_145, TMP_Ruby23__reduce_230_146, TMP_Ruby23__reduce_231_147, TMP_Ruby23__reduce_232_148, TMP_Ruby23__reduce_233_149, TMP_Ruby23__reduce_234_150, TMP_Ruby23__reduce_235_151, TMP_Ruby23__reduce_236_152, TMP_Ruby23__reduce_241_153, TMP_Ruby23__reduce_242_154, TMP_Ruby23__reduce_243_155, TMP_Ruby23__reduce_244_156, TMP_Ruby23__reduce_246_157, TMP_Ruby23__reduce_249_158, TMP_Ruby23__reduce_250_159, TMP_Ruby23__reduce_251_160, TMP_Ruby23__reduce_252_161, TMP_Ruby23__reduce_253_162, TMP_Ruby23__reduce_254_163, TMP_Ruby23__reduce_255_164, TMP_Ruby23__reduce_256_165, TMP_Ruby23__reduce_257_166, TMP_Ruby23__reduce_258_167, TMP_Ruby23__reduce_259_168, TMP_Ruby23__reduce_260_169, TMP_Ruby23__reduce_261_170, TMP_Ruby23__reduce_262_171, TMP_Ruby23__reduce_263_172, TMP_Ruby23__reduce_264_173, TMP_Ruby23__reduce_265_174, TMP_Ruby23__reduce_267_175, TMP_Ruby23__reduce_268_176, TMP_Ruby23__reduce_269_177, TMP_Ruby23__reduce_280_178, TMP_Ruby23__reduce_281_179, TMP_Ruby23__reduce_282_180, TMP_Ruby23__reduce_283_181, TMP_Ruby23__reduce_284_182, TMP_Ruby23__reduce_285_183, TMP_Ruby23__reduce_286_184, TMP_Ruby23__reduce_287_185, TMP_Ruby23__reduce_288_186, TMP_Ruby23__reduce_289_187, TMP_Ruby23__reduce_290_188, TMP_Ruby23__reduce_291_189, TMP_Ruby23__reduce_292_190, TMP_Ruby23__reduce_293_191, TMP_Ruby23__reduce_294_192, TMP_Ruby23__reduce_295_193, TMP_Ruby23__reduce_296_194, TMP_Ruby23__reduce_297_195, TMP_Ruby23__reduce_298_196, TMP_Ruby23__reduce_299_197, TMP_Ruby23__reduce_300_198, TMP_Ruby23__reduce_302_199, TMP_Ruby23__reduce_303_200, TMP_Ruby23__reduce_304_201, TMP_Ruby23__reduce_305_202, TMP_Ruby23__reduce_306_203, TMP_Ruby23__reduce_307_204, TMP_Ruby23__reduce_308_205, TMP_Ruby23__reduce_309_206, TMP_Ruby23__reduce_310_207, TMP_Ruby23__reduce_311_208, TMP_Ruby23__reduce_312_209, TMP_Ruby23__reduce_313_210, TMP_Ruby23__reduce_314_211, TMP_Ruby23__reduce_315_212, TMP_Ruby23__reduce_316_213, TMP_Ruby23__reduce_317_214, TMP_Ruby23__reduce_318_215, TMP_Ruby23__reduce_319_216, TMP_Ruby23__reduce_320_217, TMP_Ruby23__reduce_321_218, TMP_Ruby23__reduce_322_219, TMP_Ruby23__reduce_323_220, TMP_Ruby23__reduce_324_221, TMP_Ruby23__reduce_325_222, TMP_Ruby23__reduce_326_223, TMP_Ruby23__reduce_327_224, TMP_Ruby23__reduce_328_225, TMP_Ruby23__reduce_329_226, TMP_Ruby23__reduce_330_227, TMP_Ruby23__reduce_331_228, TMP_Ruby23__reduce_335_229, TMP_Ruby23__reduce_339_230, TMP_Ruby23__reduce_341_231, TMP_Ruby23__reduce_344_232, TMP_Ruby23__reduce_345_233, TMP_Ruby23__reduce_346_234, TMP_Ruby23__reduce_347_235, TMP_Ruby23__reduce_349_236, TMP_Ruby23__reduce_350_237, TMP_Ruby23__reduce_351_238, TMP_Ruby23__reduce_352_239, TMP_Ruby23__reduce_353_240, TMP_Ruby23__reduce_354_241, TMP_Ruby23__reduce_355_242, TMP_Ruby23__reduce_356_243, TMP_Ruby23__reduce_357_244, TMP_Ruby23__reduce_358_245, TMP_Ruby23__reduce_359_246, TMP_Ruby23__reduce_360_247, TMP_Ruby23__reduce_361_248, TMP_Ruby23__reduce_362_249, TMP_Ruby23__reduce_363_250, TMP_Ruby23__reduce_364_251, TMP_Ruby23__reduce_365_252, TMP_Ruby23__reduce_366_253, TMP_Ruby23__reduce_367_254, TMP_Ruby23__reduce_369_255, TMP_Ruby23__reduce_370_256, TMP_Ruby23__reduce_371_257, TMP_Ruby23__reduce_372_258, TMP_Ruby23__reduce_373_259, TMP_Ruby23__reduce_374_260, TMP_Ruby23__reduce_375_261, TMP_Ruby23__reduce_376_262, TMP_Ruby23__reduce_378_263, TMP_Ruby23__reduce_379_264, TMP_Ruby23__reduce_380_265, TMP_Ruby23__reduce_381_266, TMP_Ruby23__reduce_382_267, TMP_Ruby23__reduce_383_268, TMP_Ruby23__reduce_384_269, TMP_Ruby23__reduce_385_270, TMP_Ruby23__reduce_386_271, TMP_Ruby23__reduce_387_272, TMP_Ruby23__reduce_389_273, TMP_Ruby23__reduce_390_274, TMP_Ruby23__reduce_391_275, TMP_Ruby23__reduce_392_276, TMP_Ruby23__reduce_393_277, TMP_Ruby23__reduce_394_278, TMP_Ruby23__reduce_395_279, TMP_Ruby23__reduce_396_280, TMP_Ruby23__reduce_397_281, TMP_Ruby23__reduce_398_282, TMP_Ruby23__reduce_399_283, TMP_Ruby23__reduce_400_284, TMP_Ruby23__reduce_401_285, TMP_Ruby23__reduce_402_286, TMP_Ruby23__reduce_403_287, TMP_Ruby23__reduce_404_288, TMP_Ruby23__reduce_405_289, TMP_Ruby23__reduce_406_290, TMP_Ruby23__reduce_407_291, TMP_Ruby23__reduce_408_292, TMP_Ruby23__reduce_409_293, TMP_Ruby23__reduce_410_294, TMP_Ruby23__reduce_411_295, TMP_Ruby23__reduce_412_296, TMP_Ruby23__reduce_413_297, TMP_Ruby23__reduce_414_298, TMP_Ruby23__reduce_415_299, TMP_Ruby23__reduce_416_300, TMP_Ruby23__reduce_418_301, TMP_Ruby23__reduce_419_302, TMP_Ruby23__reduce_420_303, TMP_Ruby23__reduce_423_304, TMP_Ruby23__reduce_425_305, TMP_Ruby23__reduce_430_306, TMP_Ruby23__reduce_431_307, TMP_Ruby23__reduce_432_308, TMP_Ruby23__reduce_433_309, TMP_Ruby23__reduce_434_310, TMP_Ruby23__reduce_435_311, TMP_Ruby23__reduce_436_312, TMP_Ruby23__reduce_437_313, TMP_Ruby23__reduce_438_314, TMP_Ruby23__reduce_439_315, TMP_Ruby23__reduce_440_316, TMP_Ruby23__reduce_441_317, TMP_Ruby23__reduce_442_318, TMP_Ruby23__reduce_443_319, TMP_Ruby23__reduce_444_320, TMP_Ruby23__reduce_445_321, TMP_Ruby23__reduce_446_322, TMP_Ruby23__reduce_447_323, TMP_Ruby23__reduce_448_324, TMP_Ruby23__reduce_449_325, TMP_Ruby23__reduce_450_326, TMP_Ruby23__reduce_451_327, TMP_Ruby23__reduce_452_328, TMP_Ruby23__reduce_453_329, TMP_Ruby23__reduce_454_330, TMP_Ruby23__reduce_455_331, TMP_Ruby23__reduce_456_332, TMP_Ruby23__reduce_457_333, TMP_Ruby23__reduce_458_334, TMP_Ruby23__reduce_459_335, TMP_Ruby23__reduce_460_336, TMP_Ruby23__reduce_461_337, TMP_Ruby23__reduce_462_338, TMP_Ruby23__reduce_463_339, TMP_Ruby23__reduce_464_340, TMP_Ruby23__reduce_466_341, TMP_Ruby23__reduce_467_342, TMP_Ruby23__reduce_468_343, TMP_Ruby23__reduce_469_344, TMP_Ruby23__reduce_470_345, TMP_Ruby23__reduce_471_346, TMP_Ruby23__reduce_472_347, TMP_Ruby23__reduce_473_348, TMP_Ruby23__reduce_474_349, TMP_Ruby23__reduce_475_350, TMP_Ruby23__reduce_476_351, TMP_Ruby23__reduce_477_352, TMP_Ruby23__reduce_478_353, TMP_Ruby23__reduce_479_354, TMP_Ruby23__reduce_480_355, TMP_Ruby23__reduce_481_356, TMP_Ruby23__reduce_482_357, TMP_Ruby23__reduce_483_358, TMP_Ruby23__reduce_484_359, TMP_Ruby23__reduce_485_360, TMP_Ruby23__reduce_486_361, TMP_Ruby23__reduce_487_362, TMP_Ruby23__reduce_488_363, TMP_Ruby23__reduce_489_364, TMP_Ruby23__reduce_490_365, TMP_Ruby23__reduce_491_366, TMP_Ruby23__reduce_492_367, TMP_Ruby23__reduce_493_368, TMP_Ruby23__reduce_494_369, TMP_Ruby23__reduce_495_370, TMP_Ruby23__reduce_496_371, TMP_Ruby23__reduce_497_372, TMP_Ruby23__reduce_498_373, TMP_Ruby23__reduce_499_374, TMP_Ruby23__reduce_500_375, TMP_Ruby23__reduce_501_376, TMP_Ruby23__reduce_502_377, TMP_Ruby23__reduce_503_378, TMP_Ruby23__reduce_504_379, TMP_Ruby23__reduce_505_380, TMP_Ruby23__reduce_506_381, TMP_Ruby23__reduce_507_382, TMP_Ruby23__reduce_508_383, TMP_Ruby23__reduce_509_384, TMP_Ruby23__reduce_510_385, TMP_Ruby23__reduce_511_386, TMP_Ruby23__reduce_512_387, TMP_Ruby23__reduce_513_388, TMP_Ruby23__reduce_514_389, TMP_Ruby23__reduce_515_390, TMP_Ruby23__reduce_516_391, TMP_Ruby23__reduce_517_392, TMP_Ruby23__reduce_518_393, TMP_Ruby23__reduce_519_394, TMP_Ruby23__reduce_520_395, TMP_Ruby23__reduce_521_396, TMP_Ruby23__reduce_522_397, TMP_Ruby23__reduce_524_398, TMP_Ruby23__reduce_525_399, TMP_Ruby23__reduce_526_400, TMP_Ruby23__reduce_527_401, TMP_Ruby23__reduce_528_402, TMP_Ruby23__reduce_529_403, TMP_Ruby23__reduce_530_404, TMP_Ruby23__reduce_531_405, TMP_Ruby23__reduce_532_406, TMP_Ruby23__reduce_533_407, TMP_Ruby23__reduce_534_408, TMP_Ruby23__reduce_535_409, TMP_Ruby23__reduce_536_410, TMP_Ruby23__reduce_537_411, TMP_Ruby23__reduce_538_412, TMP_Ruby23__reduce_541_413, TMP_Ruby23__reduce_542_414, TMP_Ruby23__reduce_543_415, TMP_Ruby23__reduce_544_416, TMP_Ruby23__reduce_545_417, TMP_Ruby23__reduce_546_418, TMP_Ruby23__reduce_547_419, TMP_Ruby23__reduce_548_420, TMP_Ruby23__reduce_551_421, TMP_Ruby23__reduce_552_422, TMP_Ruby23__reduce_555_423, TMP_Ruby23__reduce_556_424, TMP_Ruby23__reduce_557_425, TMP_Ruby23__reduce_559_426, TMP_Ruby23__reduce_560_427, TMP_Ruby23__reduce_562_428, TMP_Ruby23__reduce_563_429, TMP_Ruby23__reduce_564_430, TMP_Ruby23__reduce_565_431, TMP_Ruby23__reduce_566_432, TMP_Ruby23__reduce_567_433, TMP_Ruby23__reduce_580_434, TMP_Ruby23__reduce_581_435, TMP_Ruby23__reduce_586_436, TMP_Ruby23__reduce_587_437, TMP_Ruby23__reduce_591_438, TMP_Ruby23__reduce_595_439, TMP_Ruby23__reduce_none_440, clist = nil, racc_action_table = nil, arr = nil, idx = nil, racc_action_check = nil, racc_action_pointer = nil, racc_action_default = nil, racc_goto_table = nil, racc_goto_check = nil, racc_goto_pointer = nil, racc_goto_default = nil, racc_reduce_table = nil, racc_reduce_n = nil, racc_shift_n = nil, racc_token_table = nil, racc_nt_base = nil, racc_use_result_var = nil; + Opal.def(self, '$_reduce_517', $Ruby30__reduce_517$381 = function $$_reduce_517(val, _values, result) { + var self = this; - def.builder = def.lexer = def.static_env = def.def_level = nil; - + + result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_517$381.$$arity = 3); - Opal.defn(self, '$version', TMP_Ruby23_version_1 = function $$version() { + Opal.def(self, '$_reduce_518', $Ruby30__reduce_518$382 = function $$_reduce_518(val, _values, result) { var self = this; - return 23 - }, TMP_Ruby23_version_1.$$arity = 0); + + result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), nil); + return result; + }, $Ruby30__reduce_518$382.$$arity = 3); - Opal.defn(self, '$default_encoding', TMP_Ruby23_default_encoding_2 = function $$default_encoding() { + Opal.def(self, '$_reduce_522', $Ruby30__reduce_522$383 = function $$_reduce_522(val, _values, result) { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8') - }, TMP_Ruby23_default_encoding_2.$$arity = 0); - clist = ["-474,216,217,216,217,214,-97,-474,-474,-474,-286,570,-474,-474,-474", "212,-474,270,219,610,647,647,263,570,-474,612,-474,-474,-474,270,582", "270,-488,109,583,-98,-474,-474,570,-474,-474,-474,-474,-474,570,570", "-97,-98,-105,-105,-286,-104,-96,-83,-104,646,646,529,270,220,528,121", "-105,-69,647,814,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474,-474", "-474,-474,-474,213,265,-474,-474,-474,609,-474,-474,715,-97,-474,611", "-100,-474,-474,220,-474,220,-474,646,-474,206,-474,-474,269,-474,-474", "-474,-474,-474,-100,-474,-477,-474,-102,-88,269,-102,269,-477,-477,-477", "265,-101,-477,-477,-477,-474,-477,113,-474,-474,-474,-474,112,-474,-477", "-474,-477,-477,-477,113,-474,-474,-89,269,112,-91,-477,-477,-103,-477", "-477,-477,-477,-477,113,-99,-96,841,-95,112,113,113,-97,-98,-105,112", "112,-97,-98,-105,-104,715,813,-101,-99,-104,-477,-477,-477,-477,-477", "-477,-477,-477,-477,-477,-477,-477,-477,-477,113,207,-477,-477,-477", "112,-477,-477,-571,-91,-477,208,-93,-477,-477,715,-477,-103,-477,113", "-477,-91,-477,-477,112,-477,-477,-477,-477,-477,-289,-477,-489,-477", "-93,-572,-100,-289,-289,-289,-102,-100,647,-289,-289,-102,-289,-477", "-571,-101,-477,-477,-477,-477,-101,-477,215,-477,216,217,446,-91,-477", "-477,-91,259,-289,-289,-90,-289,-289,-289,-289,-289,-91,318,-103,646", "-93,-474,-92,-103,-572,-99,529,113,-474,531,-99,-98,112,517,-92,-90", "216,217,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289", "-289,-289,319,769,-289,-289,-289,-477,630,-105,-93,113,-289,-93,-477", "-289,112,805,-94,576,-289,220,-289,-93,-289,-289,-90,-289,-289,-289", "-289,-289,597,-289,-575,-289,-474,-571,-92,79,-104,-575,-575,-575,220", "216,217,-575,-575,-289,-575,80,-289,-289,388,-94,401,-289,113,-575,-100", "81,445,112,-289,-103,-90,-568,-488,-90,-575,-575,-477,-575,-575,-575", "-575,-575,-92,-90,113,-92,216,217,447,112,550,770,547,546,545,-92,548", "91,92,448,599,598,595,219,-575,-575,-575,-575,-575,-575,-575,-575,-575", "-575,-575,-575,-575,-575,479,-88,-575,-575,-575,-474,631,91,92,597,-575", "-97,-474,-575,113,859,488,-568,-575,112,-575,-474,-575,-575,-489,-575", "-575,-575,-575,-575,-102,-575,-575,-575,597,550,597,547,546,545,-568", "548,-484,113,490,-569,492,-575,112,-484,-575,-575,-575,-92,832,-575", "500,93,94,-575,-575,-575,-575,-101,-575,-575,-575,-68,-575,220,-474", "-89,-99,599,598,595,-483,-575,-575,-575,-575,-98,113,-483,503,93,94", "112,-575,-575,662,-575,-575,-575,-575,-575,504,-477,599,598,599,598", "597,529,-477,597,531,-484,746,-569,748,597,529,-477,511,531,274,955", "-575,-575,-575,-575,-575,-575,-575,-575,-575,-575,-575,-575,-575,-575", "-569,220,-575,-575,-575,220,771,-575,978,-483,-575,597,517,-575,-575", "597,-575,-485,-575,265,-575,625,-575,-575,-485,-575,-575,-575,-575,-575", "-477,-575,-575,-575,599,598,600,599,598,602,514,-482,518,599,598,604", "240,-575,-482,220,-575,-575,-575,-575,532,-575,533,-575,-289,-95,216", "217,-575,-101,492,-289,-289,-289,-91,-104,-289,-289,-289,576,-289,599", "598,608,-100,599,598,613,-485,398,-289,-289,-289,390,400,399,566,565", "626,580,-289,-289,581,-289,-289,-289,-289,-289,589,212,614,-332,-482", "212,-479,-480,211,617,-332,-481,443,-479,-480,836,805,209,-481,-332", "-261,444,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289", "-289,-289,619,-93,-289,-289,-289,240,772,-289,-486,220,-289,-102,212", "-289,-289,-486,-289,623,-289,263,-289,755,-289,-289,-486,-289,-289,-289", "-289,-289,213,-289,-332,-289,213,-479,-480,237,-487,624,-481,239,238", "265,240,-487,634,-289,836,805,-289,-289,-289,-289,-487,-289,637,-289", "-409,240,240,240,-289,-103,240,-409,-409,-409,-90,555,-409,-409,-409", "-486,-409,220,237,213,-99,558,239,238,220,-409,-409,-409,740,741,220", "-83,742,107,108,666,-409,-409,220,-409,-409,-409,-409,-409,550,-487", "547,546,545,212,548,522,677,682,566,565,510,683,550,559,547,546,545", "685,548,508,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409", "-409,-409,689,701,-409,-409,-409,692,693,-409,695,265,-409,697,699,-409", "-409,701,-409,707,-409,708,-409,709,-409,-409,704,-409,-409,-409,-409", "-409,-296,-409,-409,-409,213,711,576,-296,-296,-296,718,735,-296,-296", "-296,-279,-296,-409,745,749,-409,-409,-279,-409,750,-409,-296,-296,-262", "756,479,-279,-409,479,220,774,-296,-296,259,-296,-296,-296,-296,-296", "490,492,798,212,677,212,220,265,265,677,520,550,579,547,546,545,240", "548,805,444,220,577,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296", "-296,-296,-296,-296,-279,220,-296,-296,-296,830,220,-296,805,274,-296", "840,701,-296,-296,220,-296,220,-296,849,-296,704,-296,-296,-263,-296", "-296,-296,-296,-296,-280,-296,213,-296,213,858,861,-280,-280,-280,692", "864,-280,-280,-280,212,-280,-296,866,868,-296,-296,585,-296,870,-296", "-280,-280,-280,220,872,587,-296,873,876,878,-280,-280,879,-280,-280", "-280,-280,-280,677,-290,881,-290,-261,212,885,887,-290,890,-290,692", "937,892,894,896,898,-290,898,-290,220,587,-280,-280,-280,-280,-280,-280", "-280,-280,-280,-280,-280,-280,-280,-280,213,212,-280,-280,-280,904,906", "-280,937,908,-280,914,917,-280,-280,220,-280,587,-280,921,-280,-264", "-280,-280,931,-280,-280,-280,-280,-280,-290,-280,-290,-280,213,938,555", "550,212,547,546,545,939,548,948,984,558,-280,949,-575,-280,-280,-280", "-280,982,-280,-244,-280,957,959,960,965,-280,-244,-244,-244,213,735", "-244,-244,-244,692,-244,968,701,240,970,972,974,566,565,-244,-244,-244", "559,934,974,547,546,545,985,548,-244,-244,986,-244,-244,-244,-244,-244", "898,-575,898,213,898,991,957,237,-575,-572,-571,239,238,-571,235,236", "682,-575,957,1010,1011,1012,-244,-244,-244,-244,-244,-244,-244,-244", "-244,-244,-244,-244,-244,-244,-575,974,-244,-244,-244,-289,974,-244", "974,265,-244,220,-289,-244,-244,898,-244,-572,-244,957,-244,-289,-244", "-244,974,-244,-244,-244,-244,-244,-575,-244,-244,-244,,550,,547,546", "545,,548,-289,,,,,-244,,-289,-244,-244,-576,-244,-572,-244,,,-289,-576", "-576,-576,-244,,-576,-576,-576,,-576,240,-289,,701,,,,,-576,-576,-576", "-576,903,,,,254,255,,-576,-576,,-576,-576,-576,-576,-576,550,,547,546", "545,237,548,243,,239,238,-289,235,236,,,241,,242,,,,-576,-576,-576,-576", "-576,-576,-576,-576,-576,-576,-576,-576,-576,-576,,701,-576,-576,-576", "240,,-576,,,-576,,,-576,-576,,-576,,-576,,-576,,-576,-576,,-576,-576", "-576,-576,-576,,-576,-576,-576,,,,237,,,,239,238,,235,236,,-576,,,-576", "-576,-576,-576,,-576,-577,-576,,,,,-576,-577,-577,-577,,,-577,-577,-577", "240,-577,934,,547,546,545,,548,,-577,-577,-577,-577,,,254,255,,,,-577", "-577,,-577,-577,-577,-577,-577,,,,237,,243,,239,238,,235,236,,,241,", "242,116,117,118,119,120,-577,-577,-577,-577,-577,-577,-577,-577,-577", "-577,-577,-577,-577,-577,,,-577,-577,-577,,,-577,,,-577,,,-577,-577", ",-577,,-577,,-577,,-577,-577,,-577,-577,-577,-577,-577,,-577,-577,-577", "116,117,118,119,120,,,,550,,547,546,545,-577,548,,-577,-577,-577,-577", ",-577,-244,-577,,,,,-577,-244,-244,-244,,,-244,-244,-244,550,-244,547", "546,545,555,548,,701,,-244,-244,,,,558,,,,240,,-244,-244,,-244,-244", "-244,-244,-244,116,117,118,119,120,,254,255,553,,550,,547,546,545,555", "548,563,562,566,565,,237,,559,558,239,238,,235,236,,,-244,,,,,240,,-244", ",,,,265,-244,553,536,,220,,,,254,255,563,562,566,565,,,,559,,,,,-244", "-244,237,,243,,239,238,,235,236,,,,,-244,,,-244,,,,,-244,5,69,70,71", "9,57,-244,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100", "102,103,,,19,,,,,635,8,45,7,10,105,104,106,95,56,97,96,98,,99,107,108", ",91,92,42,43,41,240,244,249,250,251,246,248,256,257,252,253,,233,234", ",,254,255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247", "245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,258,,-238,,,62", ",81,93,94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,", ",,29,28,27,101,100,102,103,,,19,,,,,620,8,45,294,10,105,104,106,95,56", "97,96,98,,99,107,108,,91,92,42,43,41,240,244,249,250,251,246,248,256", "257,252,253,,233,234,,,254,255,,40,,,296,,,58,59,,,60,,35,237,,243,44", "239,238,,235,236,247,245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,", "80,88,,258,,,,,62,,81,93,94,5,69,70,71,9,57,,,,63,64,,,,67,,65,66,68", "30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,635,8,45,7,10,105", "104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,240,244,249,250,251", "246,248,256,257,252,253,,233,234,,,254,255,,40,,,33,,,58,59,,,60,,35", "237,,243,44,239,238,,235,236,247,245,241,20,242,,,,89,79,82,83,,84,86", "85,87,,,,,80,88,,258,,,,,62,,81,93,94,292,69,70,71,9,57,,,,63,64,,,", "67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45", "294,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,240,244", "249,250,251,246,248,256,257,252,253,,233,234,,,254,255,,40,,,33,,,58", "59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241,20,242,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,258,,,,,62,,81,93,94,292,69,70,71,9,57", ",,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,", ",19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42", "43,41,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254,255", ",40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241,20", "242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,258,,,,,62,,81,93,94,292", "69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101", "100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,42,43,41,240,244,249,250,251,246,248,256,257,252,253,,233", "234,,,254,255,,40,,,296,,,58,59,,,60,,35,237,,243,44,239,238,,235,236", "247,245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,258,,,,,62", ",81,93,94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,", ",,29,28,27,101,100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97", "96,98,,99,107,108,,91,92,42,43,41,240,244,249,250,251,246,248,256,257", "252,253,,233,234,,,254,255,,40,,,296,,,58,59,,,60,,35,237,,243,44,239", "238,,235,236,247,245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88", "220,258,,,,,62,,81,93,94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68", "30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,294,10,105", "104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,240,244,249,250,251", "246,248,256,257,252,253,,233,234,,,254,255,,40,,,33,,,58,59,,,60,,35", "237,,243,44,239,238,,235,236,247,245,241,20,242,,,,89,79,82,83,,84,86", "85,87,,,,,80,88,,258,,,,,62,,81,93,94,5,69,70,71,9,57,,,,63,64,,,,67", ",65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,7", "10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,240,244,249", "250,251,246,248,256,257,252,253,,233,234,,,254,255,,40,,,33,,,58,59", ",,60,,35,237,,243,44,239,238,,235,236,247,245,241,20,242,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,258,,,,,62,,81,93,94,292,69,70,71,9,57,,", ",63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19", ",,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43", "41,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254,255,,40", ",,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241,20,242", ",,,89,79,82,83,,84,86,85,87,,,,,80,88,,258,,,,,62,,81,93,94,292,69,70", "71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102", "103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91", "92,42,43,41,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254", "255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241", "20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,258,,,,,62,,81,93,94,292", "69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101", "100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,42,43,41,240,244,249,250,251,246,248,256,257,252,253,,233", "234,,,254,255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236", "247,245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,258,,,,,62", ",81,93,94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,", ",,29,28,27,101,100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97", "96,98,,99,107,108,,91,92,42,43,41,240,244,249,250,251,246,248,256,257", "252,253,,233,234,,,254,255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239", "238,,235,236,247,245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88", ",258,,,,,62,,81,93,94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30", "31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,294,10,105,104", "106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,240,244,249,250,251,246", "248,256,257,252,253,,233,234,,,254,255,,40,,,33,,,58,59,,,60,,35,237", ",243,44,239,238,,235,236,247,245,241,20,242,,,,89,79,82,83,,84,86,85", "87,,,,,80,88,,258,,,,,62,,81,93,94,292,69,70,71,9,57,,,,63,64,,,,67", ",65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,294", "10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,240,244,249", "250,251,246,248,256,257,252,253,,233,234,,,254,255,,40,,,33,,,58,59", ",,60,,35,237,,243,44,239,238,,235,236,247,245,241,20,242,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,258,,,,,62,,81,93,94,292,69,70,71,9,57,,", ",63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19", ",,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43", "41,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254,255,,40", ",,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241,20,242", ",,,89,79,82,83,,84,86,85,87,,,,,80,88,,258,,,,,62,,81,93,94,292,69,70", "71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102", "103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91", "92,42,43,41,240,244,249,250,251,246,248,256,257,252,253,,233,234,,,254", "255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241", "20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,258,,,,,62,,81,93,94,292", "69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101", "100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,42,43,41,240,244,249,250,251,246,248,256,257,252,253,,-596", "-596,,,254,255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236", "247,245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,550,,547,546", "545,62,548,81,93,94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31", "72,73,,,,,701,29,28,27,101,100,102,103,,,19,,,,,,8,45,294,10,105,104", "106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,240,244,249,250,251,246", "248,256,257,252,253,,-596,-596,,,254,255,,40,,,33,,,58,59,,,60,,35,237", ",243,44,239,238,,235,236,247,245,241,20,242,,,,89,79,82,83,,84,86,85", "87,,,,,80,88,,,,,,,62,,81,93,94,292,69,70,71,9,57,,,,63,64,,,,67,,65", "66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,294,10", "105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,240,-596,-596", "-596,-596,246,248,,,-596,-596,,,,,,254,255,,40,,,33,,,58,59,,,60,,35", "237,,243,44,239,238,,235,236,247,245,241,20,242,,,,89,79,82,83,,84,86", "85,87,,,,,80,88,,,,,,,62,,81,93,94,292,69,70,71,9,57,,,,63,64,,,,67", ",65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,294", "10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,240,,,,,,", ",,,,,,,,,254,255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235", "236,,,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81", "93,94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29", "28,27,101,100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96", "98,,99,107,108,,91,92,42,43,41,240,,,,,,,,,,,,,,,,254,255,,40,,,33,", ",58,59,,,60,,35,237,,243,44,239,238,,235,236,,,241,20,242,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,292,69,70,71,9,57,,,,63", "64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,", ",,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41", "240,-596,-596,-596,-596,246,248,,,-596,-596,,,,,,254,255,,40,,,33,,", "58,59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241,20,242,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,292,69,70,71,9,57", ",,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,", ",19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42", "43,41,240,-596,-596,-596,-596,246,248,,,-596,-596,,,,,,254,255,,40,", ",33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241,20,242", ",,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,292,69,70,71", "9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102", "103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91", "92,42,43,41,240,-596,-596,-596,-596,246,248,,,-596,-596,,,,,,254,255", ",40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241,20", "242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,292,69", "70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100", "102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108", ",91,92,42,43,41,240,-596,-596,-596,-596,246,248,,,-596,-596,,,,,,254", "255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247,245,241", "20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,292", "69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101", "100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,42,43,41,240,-596,-596,-596,-596,246,248,,,-596,-596,,,,", ",254,255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247", "245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93", "94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28", "27,101,100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98", ",99,107,108,,91,92,42,43,41,240,244,249,250,251,246,248,,,252,253,,", ",,,254,255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236,247", "245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93", "94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28", "27,101,100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96,98", ",99,107,108,,91,92,42,43,41,240,244,249,250,251,246,248,256,,252,253", ",,,,,254,255,,40,,,33,,,58,59,,,60,,35,237,,243,44,239,238,,235,236", "247,245,241,20,242,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81", "93,94,292,69,70,71,9,57,,,,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29", "28,27,101,100,102,103,,,19,,,,,,8,45,294,10,105,104,106,95,56,97,96", "98,,99,107,108,,91,92,42,43,41,240,,,,,,,,,,,,,,,,254,255,,40,,,33,", ",58,59,,,60,,35,237,,243,44,239,238,,235,236,,,,20,,,,,89,79,82,83,", "84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,292,69,70,71,9,57,,,,63,64", ",,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,", "8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,", ",,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,69,70,71,9,57,,,,63", "64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,", ",,,8,45,7,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41", ",,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,", "67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45", ",,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,", ",,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,", "84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66", "68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,,,105,104", "106,95,56,97,96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,", ",225,,,231,,,58,59,,,60,,283,,281,,44,,,287,,,,,,230,,,,,89,284,82,83", ",84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66", "68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,,,105,104", "106,95,56,97,96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,", ",225,,,231,,,58,59,,,60,,283,,281,,44,,,287,,,,,,230,,,,,89,284,82,83", ",84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66", "68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,,,105,104", "106,95,56,97,96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,", ",225,,,231,,,58,59,,,60,,283,,281,,44,,,287,,,,,,230,,,,,89,284,82,83", ",84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66", "68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,309,,", "105,104,106,95,56,97,96,98,,99,107,108,,91,92,,,315,,,,,,,,,,,,,,,,", ",,,305,,,301,,,58,59,,,60,,300,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85", "87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312", "72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,309,,,105,104,106", "95,56,97,96,98,,99,107,108,,91,92,,,315,,,,,,,,,,,,,,,,,,,,305,,,231", ",,58,59,,,60,,,550,,547,546,545,555,548,,,,,,,,,558,,89,79,82,83,,84", "86,85,87,,,,,80,88,,,,317,,553,62,,81,93,94,69,70,71,,57,566,565,,63", "64,559,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103", ",,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43", "41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,", ",89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64", ",,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232", ",,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,", ",,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,", ",45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,", ",,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65", "66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45", ",,105,104,106,95,56,97,96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,", ",,,,,,,,,,,225,,,231,,,58,59,,,60,,283,,,,44,,,287,,,,,,230,,,,,89,284", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,", ",45,,,105,104,106,95,56,97,96,98,286,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,287,,,,,,230,,,,,89", "284,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,", ",67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45", ",,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,", ",,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84", "86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68", "30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106", "95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,", "231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,", ",80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73", ",,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96", "98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59", ",,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,113,", ",,,112,62,,81,93,94,69,70,71,,57,,,,63,64,,,,67,,65,66,68,311,312,72", "73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,309,,,105,104,106,95", "56,97,96,98,,99,107,108,,91,92,,,315,,,,,,,,,,,,,,,,,,,,350,,,33,,,58", "59,,,60,,35,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69", "70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308", "314,101,100,102,103,,,232,,,,,,,309,,,105,104,106,355,56,97,96,356,", "99,107,108,,91,92,,,315,,,,,,,,,,,,,,,,,362,,,357,,,231,,,58,59,,,60", ",,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62", "57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101", "100,102,103,,,232,,,,,,,309,,,105,104,106,355,56,97,96,356,,99,107,108", ",91,92,,,315,,,,,,,,,,,,,,,,,,,,357,,,231,,,58,59,,,60,,,550,,547,546", "545,555,548,,,,,,,,,558,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,,,553", "62,,81,93,94,69,70,71,9,57,566,565,,63,64,559,,,67,,65,66,68,30,31,72", "73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,8,45,7,10,105,104,106,95", "56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,40,,,33,", ",58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80", "88,,,,,,390,62,,81,93,94,69,70,71,,57,,,,63,64,,,,67,,65,66,68,30,31", "72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56", "97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88", ",,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29", "28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99", "107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,", ",,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71", "62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100", "102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92", "42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20", ",,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63", "64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,", ",,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,69,70,71,9,57,,,,63,64", ",,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,", "8,45,,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65", "66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,,,105", "104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,", ",,225,,,231,,,58,59,,,60,,406,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84", "86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68", "30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,,,105,104,106", "95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,", "231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,", ",,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73", ",,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97", "96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,283,,281,,44,,,287,,,,,,230,,,,,89,284,82,83,,84,86,85,87", ",,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72", "73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56", "97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88", ",,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29", "28,27,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99", "107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,406", ",,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71", "62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100", "102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92", "42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20", ",,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63", "64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,", ",,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65", "66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105", "104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,", ",,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85", "87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31", "72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56", "97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88", "220,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,", ",,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97", "96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58", "59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,", ",,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307", "308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98", ",99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60", ",,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70", "71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314", "101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44", ",,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57", "81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100", "102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91", "92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,", ",,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93", "94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102", "103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42", "43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230", ",,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63", "64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,", "232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41", ",,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,", "67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,", ",,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,", ",45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,", ",,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65", "66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45", ",,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,", ",,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,", "84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66", "68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105", "104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,", ",,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86", "85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311", "312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104", "106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225", ",,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87", ",,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72", "73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95", "56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231", ",,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80", "88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,", ",,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97", "96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58", "59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,", ",,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307", "308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98", ",99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60", ",,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70", "71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314", "101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44", ",,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57", "81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100", "102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91", "92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,", ",,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93", "94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102", "103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42", "43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230", ",,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63", "64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,", "232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41", ",,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,", "67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,", ",,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,", ",45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,", ",,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65", "66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45", ",,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,", ",,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,", "84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66", "68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105", "104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,", ",,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86", "85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311", "312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104", "106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225", ",,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87", ",,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72", "73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95", "56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231", ",,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80", "88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,", ",,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97", "96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58", "59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,", ",,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307", "308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98", ",99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60", ",,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70", "71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314", "101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44", ",,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57", "81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102", "103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,286,99,107,108,,91,92", "42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,283,,281,,44,,,287", ",,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81", "93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103", ",,232,,,,,,,45,,,105,104,106,95,56,97,96,98,286,99,107,108,,91,92,42", "43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,283,,281,,44,,,287", ",,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81", "93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103", ",,232,,,,,,,45,,,105,104,106,95,56,97,96,98,286,99,107,108,,91,92,42", "43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,283,,281,,44,,,287", ",,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,,80,88,220,,,69,70,71,62,57", "81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100", "102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91", "92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,", ",,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93", "94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102", "103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42", "43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230", ",,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63", "64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,", "232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41", ",,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,", "67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,", ",,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,69,70,71,9,57,,,,63", "64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,", ",,,8,45,,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,", ",,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,", ",309,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,,315,,,,,,,,,", ",,,,,,,,,,305,,,231,,,58,59,,,60,,,550,,547,546,545,555,548,,,,,,,,", "558,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,506,,553,62,,81,93,94,69", "70,71,,57,566,565,,63,64,559,,,67,,65,66,68,311,312,72,73,,,,,,307,308", "314,101,100,102,103,,,232,,,,,,,309,,,105,104,106,95,56,97,96,98,,99", "107,108,,91,92,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,58,59,,,60,,,,,", ",,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81", "93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102", "103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42", "43,41,,,,,,,,,,,,,,,,,,,,225,,,231,522,,58,59,,,60,,,,,,44,,,,,,,,,230", ",,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63", "64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,", ",,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65", "66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105", "104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,", ",,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85", "87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31", "72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56", "97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88", ",,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29", "28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99", "107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,", ",,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71", "62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100", "102,103,,,19,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92", "42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20", ",,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63", "64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,", "232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41", ",,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,", "67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45", ",,105,104,106,95,56,97,96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,", ",,,,,,,,,,,225,,,231,,,58,59,,,60,,283,,281,,44,,,287,,,,,,230,,,,,89", "284,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,", ",67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,", ",,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,", ",,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,", ",45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,", ",,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65", "66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45", ",,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,", ",,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,", "84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66", "68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105", "104,106,95,56,97,96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,", ",,,,,225,,,231,,,58,59,,,60,,659,,281,,44,,,287,,,,,,230,,,,,89,284", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,", ",45,,,105,104,106,95,56,97,96,98,286,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,281,,44,,,287,,,,,,230,,,,", "89,284,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64", ",,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232", ",,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,", ",,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94,69,70,71,9,57,,,,63", "64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,", ",,,8,45,294,10,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41", ",,,,,,,,,,,,,,,,,,,40,,,33,,,58,59,,,60,,35,,,,44,,,,,,,,,20,,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,,,390,62,,81,93,94,69,70,71,,57,", ",,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103", ",,232,,,,,,,309,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,,315", ",,,,,,,,,,,,,,,,,,,305,,,301,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82", "83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65", "66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,,,105", "104,106,95,56,97,96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,", ",,,,,225,,,231,,,58,59,,,60,,283,,281,,44,,,287,,,,,,230,,,,,89,284", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,", ",309,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,,315,,,,,,,,,", ",,,,,,,,,,305,,,301,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84", "86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68", "311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105", "104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,", ",,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86", "85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311", "312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104", "106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225", ",,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87", ",,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72", "73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106,95,56,97", "96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58", "59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,", ",69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307", "308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98", "286,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59", ",,60,,659,,,,44,,,287,,,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,,80", "88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,", ",,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97", "96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,,,,,44,,,287,,,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,", "80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73", ",,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56", "97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88", ",,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,", "307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96", "98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59", ",,60,,283,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,", ",,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29", "28,27,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,286", "99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60", ",283,,281,,44,,,287,,,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,,80,88", ",,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29", "28,27,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,286", "99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60", ",283,,281,,44,,,287,,,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,,80,88", ",,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,", "307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96", "98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59", ",,60,,753,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,", ",,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307", "308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98", ",99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60", ",,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70", "71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314", "101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,286,99,107", "108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,659,", "281,,44,,,287,,,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,,80,88,,,,69", "70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308", "314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,286", "99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60", ",,,281,,44,,,287,,,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,,80,88,,", ",69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28", "27,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44", ",,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57", "81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102", "103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42", "43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230", ",,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63", "64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,", ",,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,", ",,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,", ",105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,", ",,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84", "86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68", "30,31,72,73,,,,,,29,28,27,101,100,102,103,,,232,,,,,,,45,,,105,104,106", "95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,", "231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,", ",,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72", "73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95", "56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231", ",,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80", "88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,", ",,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97", "96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58", "59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,", ",,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307", "308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98", ",99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60", ",,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70", "71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314", "101,100,102,103,,,232,,,,,,,309,,,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,,,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,58,59,,,60,,,,,,,,,", ",,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93", "94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102", "103,,,232,,,,,,,309,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92", ",,315,,,,,,,,,,,,,,,,,,,,305,,,301,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,", "67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,", ",,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,406,,,,44,,,,,,,,,230,,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,", "67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,", ",,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,", "105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,", ",,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84", "86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68", "30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106", "95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,", "231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,", ",80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73", ",,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56", "97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88", ",,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29", "28,27,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99", "107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,", ",,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71", "62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314", "101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44", ",,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57", "81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100", "102,103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91", "92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,", ",,230,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93", "94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102", "103,,,232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42", "43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230", ",,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63", "64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,", "232,,,,,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41", ",,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89", "79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,", "67,,65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,", ",,,,45,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,", ",,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79", "82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67", ",65,66,68,311,312,72,73,,,,,,307,308,314,101,100,102,103,,,232,,,,,", ",309,,,105,104,106,95,56,97,96,98,,99,107,108,,91,92,,,315,,,,,,,,,", ",,,,,,,,,,875,,,231,,,58,59,,,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84", "86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68", "30,31,72,73,,,,,,29,28,27,101,100,102,103,,,19,,,,,,,45,,,105,104,106", "95,56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,", "231,,,58,59,,,60,,,,,,44,,,,,,,,,20,,,,,89,79,82,83,,84,86,85,87,,,", ",80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73", ",,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56", "97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,659,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80", "88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,", ",,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95,56,97", "96,98,286,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,", "58,59,,,60,,,,281,,44,,,287,,,,,,230,,,,,89,284,82,83,,84,86,85,87,", ",,,80,88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72", "73,,,,,,307,308,314,101,100,102,103,,,232,,,,,,,45,,,105,104,106,95", "56,97,96,98,,99,107,108,,91,92,42,43,41,,,,,,,,,,,,,,,,,,,,225,,,231", ",,58,59,,,60,,,,,,44,,,,,,,,,230,,,,,89,79,82,83,,84,86,85,87,,,,,80", "88,,,,69,70,71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,", ",,,307,308,314,101,100,102,103,,,232,,,,,,,309,,,105,104,106,95,56,97", "96,98,,99,107,108,,91,92,,,315,,,,,,,,,,,,,,,,,,,,875,,,231,,,58,59", ",,60,,,,,,,,,,,,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70", "71,62,57,81,93,94,63,64,,,,67,,65,66,68,311,312,72,73,,,,,,307,308,314", "101,100,102,103,,,232,,,,,,,309,,,105,104,106,95,56,97,96,98,,99,107", "108,,91,92,,,315,,,,,,,,,,,,,,,,,,,,945,,,231,,,58,59,,,60,,,,,,,,,", ",,,,,,,,,,89,79,82,83,,84,86,85,87,,,,,80,88,,,,69,70,71,62,57,81,93", "94,63,64,,,,67,,65,66,68,30,31,72,73,,,,,,29,28,27,101,100,102,103,", ",232,,,,,,,45,,,105,104,106,95,56,97,96,98,286,99,107,108,,91,92,42", "43,41,,,,,,,,,,,,,,,,,,,,225,,,231,,,58,59,,,60,,283,,281,,44,,,287", ",,,,,230,,,,,89,284,82,83,,84,86,85,87,,,,,80,88,,,,,,,62,,81,93,94", "173,184,174,197,170,190,180,179,200,201,195,178,177,172,198,202,203", "182,171,185,189,191,183,176,,,,192,199,194,193,186,196,181,169,188,187", ",,,,,168,175,166,167,163,164,165,124,126,123,,125,,,,,,,,157,158,,154", "136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,,,,,,,,,151", "150,,135,156,153,152,161,148,149,143,141,133,155,134,,,162,89,,,,,,", ",,,,,,,88,173,184,174,197,170,190,180,179,200,201,195,178,177,172,198", "202,203,182,171,185,189,191,183,176,,,,192,199,194,193,186,196,181,169", "188,187,,,,,,168,175,166,167,163,164,165,124,126,,,125,,,,,,,,157,158", ",154,136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,,,,,", ",,,151,150,,135,156,153,152,161,148,149,143,141,133,155,134,,,162,89", ",,,,,,,,,,,,,88,173,184,174,197,170,190,180,179,200,201,195,178,177", "172,198,202,203,182,171,185,189,191,183,176,,,,192,199,194,193,186,196", "181,169,188,187,,,,,,168,175,166,167,163,164,165,124,126,,,125,,,,,", ",,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146,147", ",,,,,,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155,134", ",,162,89,,,,,,,,,,,,,,88,173,184,174,197,170,190,180,179,200,201,195", "178,177,172,198,202,203,182,171,185,189,191,183,176,,,,192,199,194,193", "186,196,181,169,188,187,,,,,,168,175,166,167,163,164,165,124,126,,,125", ",,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146", "147,,,,,,,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155", "134,,,162,89,,,,,,,,,,,,,,88,173,184,174,197,170,190,180,179,200,201", "195,178,177,172,198,202,203,182,171,185,189,191,183,176,,,,192,199,194", "373,372,374,371,169,188,187,,,,,,168,175,166,167,368,369,370,366,126", "97,96,367,,99,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,", ",159,160,146,147,,,,,,378,,,,,,,,151,150,,135,156,153,152,161,148,149", "143,141,133,155,134,,,162,173,184,174,197,170,190,180,179,200,201,195", "178,177,172,198,202,203,182,171,185,189,191,183,176,,,,192,199,194,193", "186,196,181,169,188,187,,,,,,168,175,166,167,163,164,165,124,126,,,125", ",,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146", "147,,,,,,,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155", "134,415,419,162,,416,,,,,,,,157,158,,154,136,137,138,145,142,144,,,139", "140,,,,159,160,146,147,,,,,,265,,,,,,,,151,150,,135,156,153,152,161", "148,149,143,141,133,155,134,422,426,162,,421,,,,,,,,157,158,,154,136", "137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,265,,,,,,,,151", "150,,135,156,153,152,161,148,149,143,141,133,155,134,477,419,162,,478", ",,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146", "147,,,,,,,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155", "134,638,419,162,,639,,,,,,,,157,158,,154,136,137,138,145,142,144,,,139", "140,,,,159,160,146,147,,,,,,265,,,,,,,,151,150,,135,156,153,152,161", "148,149,143,141,133,155,134,640,426,162,,641,,,,,,,,157,158,,154,136", "137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,265,,,,,,,,151", "150,,135,156,153,152,161,148,149,143,141,133,155,134,670,419,162,,671", ",,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146", "147,,,,,,265,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133", "155,134,673,426,162,,674,,,,,,,,157,158,,154,136,137,138,145,142,144", ",,139,140,,,,159,160,146,147,,,,,,265,,,,,,,,151,150,,135,156,153,152", "161,148,149,143,141,133,155,134,638,419,162,,639,,,,,,,,157,158,,154", "136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,265,,,,,,", ",151,150,,135,156,153,152,161,148,149,143,141,133,155,134,640,426,162", ",641,,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159,160", "146,147,,,,,,265,,,,,,,,151,150,,135,156,153,152,161,148,149,143,141", "133,155,134,721,419,162,,722,,,,,,,,157,158,,154,136,137,138,145,142", "144,,,139,140,,,,159,160,146,147,,,,,,265,,,,,,,,151,150,,135,156,153", "152,161,148,149,143,141,133,155,134,723,426,162,,724,,,,,,,,157,158", ",154,136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,265,", ",,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155,134,726,426", "162,,727,,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140,,,,159", "160,146,147,,,,,,265,,,,,,,,151,150,,135,156,153,152,161,148,149,143", "141,133,155,134,477,419,162,,478,,,,,,,,157,158,,154,136,137,138,145", "142,144,,,139,140,,,,159,160,146,147,,,,,,265,,,,,,,,151,150,,135,156", "153,152,161,148,149,143,141,133,155,134,980,426,162,,979,,,,,,,,157", "158,,154,136,137,138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,265", ",,,,,,,151,150,,135,156,153,152,161,148,149,143,141,133,155,134,1003", "419,162,,1004,,,,,,,,157,158,,154,136,137,138,145,142,144,,,139,140", ",,,159,160,146,147,,,,,,265,,,,,,,,151,150,,135,156,153,152,161,148", "149,143,141,133,155,134,1005,426,162,,1006,,,,,,,,157,158,,154,136,137", "138,145,142,144,,,139,140,,,,159,160,146,147,,,,,,265,,,,,,,,151,150", ",135,156,153,152,161,148,149,143,141,133,155,134,,550,162,547,546,545", "555,548,,550,,547,546,545,555,548,558,,,,,,,,558,,550,,547,546,545,555", "548,,,,,,553,,,558,,,,,553,563,562,566,565,,,,559,563,562,566,565,,", ",559,553,,550,,547,546,545,555,548,563,562,566,565,,,,559,558,,550,", "547,546,545,555,548,,550,,547,546,545,555,548,558,,,,,553,,,558,,,,", ",563,562,566,565,,,,559,553,,,,,,,,553,563,562,566,565,,,,559,563,562", "566,565,,,550,559,547,546,545,555,548,,550,,547,546,545,555,548,558", ",,,,,,,558,,550,,547,546,545,555,548,,,,,,553,,,558,,,,,553,563,562", "566,565,,,,559,563,562,566,565,,,,559,553,,550,,547,546,545,555,548", ",,566,565,,,,559,558,,550,,547,546,545,555,548,550,,547,546,545,555", "548,,558,,,,,553,,558,,550,,547,546,545,555,548,566,565,,,,559,553,", "558,,,,,553,,563,562,566,565,,,,559,,566,565,,,,559,553,,550,,547,546", "545,555,548,,,566,565,,,,559,558,,550,,547,546,545,555,548,550,,547", "546,545,555,548,,558,,,,,553,,558,,,,,,,,,566,565,,,,559,553,,,,,,,553", ",,,566,565,,,,559,,566,565,,,,559"]; - racc_action_table = (arr = Opal.const_get_qualified('::', 'Array').$new(25163, nil)); - idx = 0; - $send(clist, 'each', [], (TMP_Ruby23_3 = function(str){var self = TMP_Ruby23_3.$$s || this, TMP_4; -if (str == null) str = nil; - return $send(str.$split(",", -1), 'each', [], (TMP_4 = function(i){var self = TMP_4.$$s || this, $writer = nil; -if (i == null) i = nil; - - if ($truthy(i['$empty?']())) { - } else { - - $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)]; - }; - return (idx = $rb_plus(idx, 1));}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4))}, TMP_Ruby23_3.$$s = self, TMP_Ruby23_3.$$arity = 1, TMP_Ruby23_3)); - clist = ["95,439,439,594,594,15,347,95,95,95,58,340,95,95,95,24,95,26,19,385,475", "483,24,341,95,386,95,95,95,61,357,650,223,1,357,348,95,95,719,95,95", "95,95,95,884,907,942,943,946,351,58,580,15,665,985,475,483,330,310,19", "330,7,15,665,484,687,95,95,95,95,95,95,95,95,95,95,95,95,95,95,24,26", "95,95,95,385,95,95,572,223,95,386,721,95,95,439,95,594,95,484,95,10", "95,95,26,95,95,95,95,95,1003,95,98,95,1004,347,61,722,650,98,98,98,310", "1005,98,98,98,95,98,340,95,95,95,95,340,95,98,95,98,98,98,341,95,95", "348,310,341,670,98,98,1006,98,98,98,98,98,719,1017,351,719,580,719,884", "907,942,943,946,884,907,942,943,946,985,573,687,723,843,985,98,98,98", "98,98,98,98,98,98,98,98,98,98,98,572,12,98,98,98,572,98,98,1005,721", "98,13,671,98,98,844,98,724,98,3,98,670,98,98,3,98,98,98,98,98,421,98", "224,98,722,1006,1003,421,421,421,1004,1003,651,421,421,1004,421,98,723", "1005,98,98,98,98,1005,98,16,98,680,680,226,670,98,98,670,22,421,421", "800,421,421,421,421,421,670,37,1006,651,671,366,673,1006,724,1017,331", "573,366,331,1017,224,573,445,723,843,590,590,421,421,421,421,421,421", "421,421,421,421,421,421,421,421,40,638,421,421,421,367,421,226,671,844", "421,671,367,421,844,912,724,912,421,45,421,671,421,421,800,421,421,421", "421,421,380,421,422,421,366,673,673,77,445,422,422,422,680,17,17,422", "422,421,422,77,421,421,109,421,204,421,290,422,638,77,225,290,421,421", "800,355,38,800,422,422,367,422,422,422,422,422,673,800,590,673,339,339", "227,590,704,639,704,704,704,673,704,41,41,228,380,380,380,232,422,422", "422,422,422,422,422,422,422,422,422,422,422,422,264,38,422,422,422,355", "422,315,315,494,422,38,355,422,344,773,278,355,422,344,422,355,422,422", "39,422,422,422,422,422,639,422,422,422,605,903,607,903,903,903,355,903", "368,847,279,356,282,422,847,368,422,422,640,422,704,422,294,41,41,640", "640,640,422,422,640,640,640,295,640,297,355,39,773,494,494,494,369,640", "640,640,640,39,852,369,298,315,315,852,640,640,494,640,640,640,640,640", "299,356,605,605,607,607,381,334,356,382,334,368,605,356,607,383,686", "356,305,686,308,903,640,640,640,640,640,640,640,640,640,640,640,640", "640,640,356,309,640,640,640,932,640,640,932,369,640,384,319,640,640", "387,640,370,640,314,640,415,640,640,370,640,640,640,640,640,356,640", "640,640,381,381,381,382,382,382,316,371,320,383,383,383,323,640,371", "328,640,640,640,640,332,640,333,640,641,319,525,525,640,640,335,641", "641,641,415,319,641,641,641,345,641,384,384,384,415,387,387,387,370", "123,641,641,641,346,123,123,692,692,416,350,641,641,352,641,641,641", "641,641,361,14,396,46,371,222,372,373,14,402,46,374,222,372,373,710", "710,14,374,46,405,222,641,641,641,641,641,641,641,641,641,641,641,641", "641,641,407,416,641,641,641,451,641,641,302,411,641,416,376,641,641", "302,641,413,641,376,641,621,641,641,302,641,641,641,641,641,14,641,46", "641,222,372,373,451,303,414,374,451,451,423,452,303,431,641,993,993", "641,641,641,641,303,641,441,641,27,453,454,455,641,641,456,27,27,27", "621,689,27,27,27,302,27,481,452,376,621,689,452,452,485,27,27,27,598", "598,501,502,598,598,598,505,27,27,507,27,27,27,27,27,832,303,832,832", "832,304,832,512,515,523,689,689,304,524,553,689,553,553,553,526,553", "304,27,27,27,27,27,27,27,27,27,27,27,27,27,27,538,832,27,27,27,539,541", "27,542,27,27,543,552,27,27,553,27,560,27,564,27,567,27,27,553,27,27", "27,27,27,28,27,27,27,304,569,574,28,28,28,575,592,28,28,28,306,28,27", "602,610,27,27,306,27,612,27,28,28,618,622,627,306,27,632,642,644,28", "28,649,28,28,28,28,28,656,658,664,321,667,349,669,672,675,676,321,701", "349,701,701,701,679,701,681,321,684,349,28,28,28,28,28,28,28,28,28,28", "28,28,28,28,306,688,28,28,28,703,705,28,712,28,28,717,701,28,28,720", "28,729,28,733,28,701,28,28,752,28,28,28,28,28,56,28,321,28,349,757,775", "56,56,56,776,778,56,56,56,359,56,28,779,780,28,28,359,28,782,28,56,56", "56,783,784,359,28,785,789,793,56,56,794,56,56,56,56,56,799,511,803,583", "806,874,807,810,511,815,583,816,874,820,821,823,824,511,826,583,829", "874,56,56,56,56,56,56,56,56,56,56,56,56,56,56,359,936,56,56,56,831,834", "56,936,837,56,846,850,56,56,851,56,936,56,854,56,855,56,56,871,56,56", "56,56,56,511,56,583,56,874,875,861,904,944,904,904,904,877,904,888,944", "861,56,889,726,56,56,56,56,944,56,417,56,905,909,910,916,56,417,417", "417,936,920,417,417,417,922,417,925,904,470,926,927,928,861,861,417", "417,417,861,872,930,872,872,872,945,872,417,417,950,417,417,417,417", "417,951,726,952,944,953,954,956,470,726,979,980,470,470,726,470,470", "981,726,992,994,995,996,417,417,417,417,417,417,417,417,417,417,417", "417,417,417,726,997,417,417,417,674,998,417,999,417,417,1002,674,417", "417,1007,417,674,417,1008,417,674,417,417,1019,417,417,417,417,417,726", "417,417,417,,830,,830,830,830,,830,727,,,,,417,,727,417,417,426,417", "727,417,,,727,426,426,426,417,,426,426,426,,426,461,674,,830,,,,,426", "426,426,426,830,,,,461,461,,426,426,,426,426,426,426,426,955,,955,955", "955,461,955,461,,461,461,727,461,461,,,461,,461,,,,426,426,426,426,426", "426,426,426,426,426,426,426,426,426,,955,426,426,426,471,,426,,,426", ",,426,426,,426,,426,,426,,426,426,,426,426,426,426,426,,426,426,426", ",,,471,,,,471,471,,471,471,,426,,,426,426,426,426,,426,427,426,,,,,426", "427,427,427,,,427,427,427,462,427,978,,978,978,978,,978,,427,427,427", "427,,,462,462,,,,427,427,,427,427,427,427,427,,,,462,,462,,462,462,", "462,462,,,462,,462,6,6,6,6,6,427,427,427,427,427,427,427,427,427,427", "427,427,427,427,,,427,427,427,,,427,,,427,,,427,427,,427,,427,,427,", "427,427,,427,427,427,427,427,,427,427,427,293,293,293,293,293,,,,957", ",957,957,957,427,957,,427,427,427,427,,427,476,427,,,,,427,476,476,476", ",,476,476,476,646,476,646,646,646,646,646,,957,,476,476,,,,646,,,,459", ",476,476,,476,476,476,476,476,499,499,499,499,499,,459,459,646,,338", ",338,338,338,338,338,646,646,646,646,,459,,646,338,459,459,,459,459", ",,476,,,,,457,,476,,,,,476,476,338,338,,646,,,,457,457,338,338,338,338", ",,,338,,,,,476,476,457,,457,,457,457,,457,457,,,,,476,,,476,,,,,476", "0,0,0,0,0,0,476,,,0,0,,,,0,,0,0,0,0,0,0,0,,,,,,0,0,0,0,0,0,0,,,0,,,", ",434,0,0,0,0,0,0,0,0,0,0,0,0,,0,0,0,,0,0,0,0,0,434,434,434,434,434,434", "434,434,434,434,434,,434,434,,,434,434,,0,,,0,,,0,0,,,0,,0,434,,434", "0,434,434,,434,434,434,434,434,0,434,,,,0,0,0,0,,0,0,0,0,,,,,0,0,,434", ",434,,,0,,0,0,0,33,33,33,33,33,33,,,,33,33,,,,33,,33,33,33,33,33,33", "33,,,,,,33,33,33,33,33,33,33,,,33,,,,,410,33,33,33,33,33,33,33,33,33", "33,33,33,,33,33,33,,33,33,33,33,33,410,410,410,410,410,410,410,410,410", "410,410,,410,410,,,410,410,,33,,,33,,,33,33,,,33,,33,410,,410,33,410", "410,,410,410,410,410,410,33,410,,,,33,33,33,33,,33,33,33,33,,,,,33,33", ",410,,,,,33,,33,33,33,121,121,121,121,121,121,,,,121,121,,,,121,,121", "121,121,121,121,121,121,,,,,,121,121,121,121,121,121,121,,,121,,,,,643", "121,121,121,121,121,121,121,121,121,121,121,121,,121,121,121,,121,121", "121,121,121,643,643,643,643,643,643,643,643,643,643,643,,643,643,,,643", "643,,121,,,121,,,121,121,,,121,,121,643,,643,121,643,643,,643,643,643", "643,643,121,643,,,,121,121,121,121,,121,121,121,121,,,,,121,121,,643", ",,,,121,,121,121,121,206,206,206,206,206,206,,,,206,206,,,,206,,206", "206,206,206,206,206,206,,,,,,206,206,206,206,206,206,206,,,206,,,,,", "206,206,206,206,206,206,206,206,206,206,206,206,,206,206,206,,206,206", "206,206,206,21,21,21,21,21,21,21,21,21,21,21,,21,21,,,21,21,,206,,,206", ",,206,206,,,206,,206,21,,21,206,21,21,,21,21,21,21,21,206,21,,,,206", "206,206,206,,206,206,206,206,,,,,206,206,,21,,,,,206,,206,206,206,231", "231,231,231,231,231,,,,231,231,,,,231,,231,231,231,231,231,231,231,", ",,,,231,231,231,231,231,231,231,,,231,,,,,,231,231,231,231,231,231,231", "231,231,231,231,231,,231,231,231,,231,231,231,231,231,276,276,276,276", "276,276,276,276,276,276,276,,276,276,,,276,276,,231,,,231,,,231,231", ",,231,,231,276,,276,231,276,276,,276,276,276,276,276,231,276,,,,231", "231,231,231,,231,231,231,231,,,,,231,231,,276,,,,,231,,231,231,231,296", "296,296,296,296,296,,,,296,296,,,,296,,296,296,296,296,296,296,296,", ",,,,296,296,296,296,296,296,296,,,296,,,,,,296,296,296,296,296,296,296", "296,296,296,296,296,,296,296,296,,296,296,296,296,296,429,429,429,429", "429,429,429,429,429,429,429,,429,429,,,429,429,,296,,,296,,,296,296", ",,296,,296,429,,429,296,429,429,,429,429,429,429,429,296,429,,,,296", "296,296,296,,296,296,296,296,,,,,296,296,,429,,,,,296,,296,296,296,301", "301,301,301,301,301,,,,301,301,,,,301,,301,301,301,301,301,301,301,", ",,,,301,301,301,301,301,301,301,,,301,,,,,,301,301,301,301,301,301,301", "301,301,301,301,301,,301,301,301,,301,301,301,301,301,474,474,474,474", "474,474,474,474,474,474,474,,474,474,,,474,474,,301,,,301,,,301,301", ",,301,,301,474,,474,301,474,474,,474,474,474,474,474,301,474,,,,301", "301,301,301,,301,301,301,301,,,,,301,301,474,474,,,,,301,,301,301,301", "326,326,326,326,326,326,,,,326,326,,,,326,,326,326,326,326,326,326,326", ",,,,,326,326,326,326,326,326,326,,,326,,,,,,326,326,326,326,326,326", "326,326,326,326,326,326,,326,326,326,,326,326,326,326,326,521,521,521", "521,521,521,521,521,521,521,521,,521,521,,,521,521,,326,,,326,,,326", "326,,,326,,326,521,,521,326,521,521,,521,521,521,521,521,326,521,,,", "326,326,326,326,,326,326,326,326,,,,,326,326,,521,,,,,326,,326,326,326", "500,500,500,500,500,500,,,,500,500,,,,500,,500,500,500,500,500,500,500", ",,,,,500,500,500,500,500,500,500,,,500,,,,,,500,500,500,500,500,500", "500,500,500,500,500,500,,500,500,500,,500,500,500,500,500,678,678,678", "678,678,678,678,678,678,678,678,,678,678,,,678,678,,500,,,500,,,500", "500,,,500,,500,678,,678,500,678,678,,678,678,678,678,678,500,678,,,", "500,500,500,500,,500,500,500,500,,,,,500,500,,678,,,,,500,,500,500,500", "568,568,568,568,568,568,,,,568,568,,,,568,,568,568,568,568,568,568,568", ",,,,,568,568,568,568,568,568,568,,,568,,,,,,568,568,568,568,568,568", "568,568,568,568,568,568,,568,568,568,,568,568,568,568,568,754,754,754", "754,754,754,754,754,754,754,754,,754,754,,,754,754,,568,,,568,,,568", "568,,,568,,568,754,,754,568,754,754,,754,754,754,754,754,568,754,,,", "568,568,568,568,,568,568,568,568,,,,,568,568,,754,,,,,568,,568,568,568", "571,571,571,571,571,571,,,,571,571,,,,571,,571,571,571,571,571,571,571", ",,,,,571,571,571,571,571,571,571,,,571,,,,,,571,571,571,571,571,571", "571,571,571,571,571,571,,571,571,571,,571,571,571,571,571,759,759,759", "759,759,759,759,759,759,759,759,,759,759,,,759,759,,571,,,571,,,571", "571,,,571,,571,759,,759,571,759,759,,759,759,759,759,759,571,759,,,", "571,571,571,571,,571,571,571,571,,,,,571,571,,759,,,,,571,,571,571,571", "591,591,591,591,591,591,,,,591,591,,,,591,,591,591,591,591,591,591,591", ",,,,,591,591,591,591,591,591,591,,,591,,,,,,591,591,591,591,591,591", "591,591,591,591,591,591,,591,591,591,,591,591,591,591,591,761,761,761", "761,761,761,761,761,761,761,761,,761,761,,,761,761,,591,,,591,,,591", "591,,,591,,591,761,,761,591,761,761,,761,761,761,761,761,591,761,,,", "591,591,591,591,,591,591,591,591,,,,,591,591,,761,,,,,591,,591,591,591", "648,648,648,648,648,648,,,,648,648,,,,648,,648,648,648,648,648,648,648", ",,,,,648,648,648,648,648,648,648,,,648,,,,,,648,648,648,648,648,648", "648,648,648,648,648,648,,648,648,648,,648,648,648,648,648,764,764,764", "764,764,764,764,764,764,764,764,,764,764,,,764,764,,648,,,648,,,648", "648,,,648,,648,764,,764,648,764,764,,764,764,764,764,764,648,764,,,", "648,648,648,648,,648,648,648,648,,,,,648,648,,764,,,,,648,,648,648,648", "653,653,653,653,653,653,,,,653,653,,,,653,,653,653,653,653,653,653,653", ",,,,,653,653,653,653,653,653,653,,,653,,,,,,653,653,653,653,653,653", "653,653,653,653,653,653,,653,653,653,,653,653,653,653,653,766,766,766", "766,766,766,766,766,766,766,766,,766,766,,,766,766,,653,,,653,,,653", "653,,,653,,653,766,,766,653,766,766,,766,766,766,766,766,653,766,,,", "653,653,653,653,,653,653,653,653,,,,,653,653,,766,,,,,653,,653,653,653", "654,654,654,654,654,654,,,,654,654,,,,654,,654,654,654,654,654,654,654", ",,,,,654,654,654,654,654,654,654,,,654,,,,,,654,654,654,654,654,654", "654,654,654,654,654,654,,654,654,654,,654,654,654,654,654,768,768,768", "768,768,768,768,768,768,768,768,,768,768,,,768,768,,654,,,654,,,654", "654,,,654,,654,768,,768,654,768,768,,768,768,768,768,768,654,768,,,", "654,654,654,654,,654,654,654,654,,,,,654,654,,768,,,,,654,,654,654,654", "730,730,730,730,730,730,,,,730,730,,,,730,,730,730,730,730,730,730,730", ",,,,,730,730,730,730,730,730,730,,,730,,,,,,730,730,730,730,730,730", "730,730,730,730,730,730,,730,730,730,,730,730,730,730,730,857,857,857", "857,857,857,857,857,857,857,857,,857,857,,,857,857,,730,,,730,,,730", "730,,,730,,730,857,,857,730,857,857,,857,857,857,857,857,730,857,,,", "730,730,730,730,,730,730,730,730,,,,,730,730,,857,,,,,730,,730,730,730", "734,734,734,734,734,734,,,,734,734,,,,734,,734,734,734,734,734,734,734", ",,,,,734,734,734,734,734,734,734,,,734,,,,,,734,734,734,734,734,734", "734,734,734,734,734,734,,734,734,734,,734,734,734,734,734,860,860,860", "860,860,860,860,860,860,860,860,,860,860,,,860,860,,734,,,734,,,734", "734,,,734,,734,860,,860,734,860,860,,860,860,860,860,860,734,860,,,", "734,734,734,734,,734,734,734,734,,,,,734,734,,860,,,,,734,,734,734,734", "744,744,744,744,744,744,,,,744,744,,,,744,,744,744,744,744,744,744,744", ",,,,,744,744,744,744,744,744,744,,,744,,,,,,744,744,744,744,744,744", "744,744,744,744,744,744,,744,744,744,,744,744,744,744,744,449,449,449", "449,449,449,449,449,449,449,449,,449,449,,,449,449,,744,,,744,,,744", "744,,,744,,744,449,,449,744,449,449,,449,449,449,449,449,744,449,,,", "744,744,744,744,,744,744,744,744,,,,,744,744,,991,,991,991,991,744,991", "744,744,744,792,792,792,792,792,792,,,,792,792,,,,792,,792,792,792,792", "792,792,792,,,,,991,792,792,792,792,792,792,792,,,792,,,,,,792,792,792", "792,792,792,792,792,792,792,792,792,,792,792,792,,792,792,792,792,792", "450,450,450,450,450,450,450,450,450,450,450,,450,450,,,450,450,,792", ",,792,,,792,792,,,792,,792,450,,450,792,450,450,,450,450,450,450,450", "792,450,,,,792,792,792,792,,792,792,792,792,,,,,792,792,,,,,,,792,,792", "792,792,805,805,805,805,805,805,,,,805,805,,,,805,,805,805,805,805,805", "805,805,,,,,,805,805,805,805,805,805,805,,,805,,,,,,805,805,805,805", "805,805,805,805,805,805,805,805,,805,805,805,,805,805,805,805,805,460", "460,460,460,460,460,460,,,460,460,,,,,,460,460,,805,,,805,,,805,805", ",,805,,805,460,,460,805,460,460,,460,460,460,460,460,805,460,,,,805", "805,805,805,,805,805,805,805,,,,,805,805,,,,,,,805,,805,805,805,813", "813,813,813,813,813,,,,813,813,,,,813,,813,813,813,813,813,813,813,", ",,,,813,813,813,813,813,813,813,,,813,,,,,,813,813,813,813,813,813,813", "813,813,813,813,813,,813,813,813,,813,813,813,813,813,463,,,,,,,,,,", ",,,,,463,463,,813,,,813,,,813,813,,,813,,813,463,,463,813,463,463,,463", "463,,,463,813,463,,,,813,813,813,813,,813,813,813,813,,,,,813,813,,", ",,,,813,,813,813,813,814,814,814,814,814,814,,,,814,814,,,,814,,814", "814,814,814,814,814,814,,,,,,814,814,814,814,814,814,814,,,814,,,,,", "814,814,814,814,814,814,814,814,814,814,814,814,,814,814,814,,814,814", "814,814,814,464,,,,,,,,,,,,,,,,464,464,,814,,,814,,,814,814,,,814,,814", "464,,464,814,464,464,,464,464,,,464,814,464,,,,814,814,814,814,,814", "814,814,814,,,,,814,814,,,,,,,814,,814,814,814,838,838,838,838,838,838", ",,,838,838,,,,838,,838,838,838,838,838,838,838,,,,,,838,838,838,838", "838,838,838,,,838,,,,,,838,838,838,838,838,838,838,838,838,838,838,838", ",838,838,838,,838,838,838,838,838,465,465,465,465,465,465,465,,,465", "465,,,,,,465,465,,838,,,838,,,838,838,,,838,,838,465,,465,838,465,465", ",465,465,465,465,465,838,465,,,,838,838,838,838,,838,838,838,838,,,", ",838,838,,,,,,,838,,838,838,838,839,839,839,839,839,839,,,,839,839,", ",,839,,839,839,839,839,839,839,839,,,,,,839,839,839,839,839,839,839", ",,839,,,,,,839,839,839,839,839,839,839,839,839,839,839,839,,839,839", "839,,839,839,839,839,839,466,466,466,466,466,466,466,,,466,466,,,,,", "466,466,,839,,,839,,,839,839,,,839,,839,466,,466,839,466,466,,466,466", "466,466,466,839,466,,,,839,839,839,839,,839,839,839,839,,,,,839,839", ",,,,,,839,,839,839,839,842,842,842,842,842,842,,,,842,842,,,,842,,842", "842,842,842,842,842,842,,,,,,842,842,842,842,842,842,842,,,842,,,,,", "842,842,842,842,842,842,842,842,842,842,842,842,,842,842,842,,842,842", "842,842,842,467,467,467,467,467,467,467,,,467,467,,,,,,467,467,,842", ",,842,,,842,842,,,842,,842,467,,467,842,467,467,,467,467,467,467,467", "842,467,,,,842,842,842,842,,842,842,842,842,,,,,842,842,,,,,,,842,,842", "842,842,848,848,848,848,848,848,,,,848,848,,,,848,,848,848,848,848,848", "848,848,,,,,,848,848,848,848,848,848,848,,,848,,,,,,848,848,848,848", "848,848,848,848,848,848,848,848,,848,848,848,,848,848,848,848,848,468", "468,468,468,468,468,468,,,468,468,,,,,,468,468,,848,,,848,,,848,848", ",,848,,848,468,,468,848,468,468,,468,468,468,468,468,848,468,,,,848", "848,848,848,,848,848,848,848,,,,,848,848,,,,,,,848,,848,848,848,881", "881,881,881,881,881,,,,881,881,,,,881,,881,881,881,881,881,881,881,", ",,,,881,881,881,881,881,881,881,,,881,,,,,,881,881,881,881,881,881,881", "881,881,881,881,881,,881,881,881,,881,881,881,881,881,469,469,469,469", "469,469,469,,,469,469,,,,,,469,469,,881,,,881,,,881,881,,,881,,881,469", ",469,881,469,469,,469,469,469,469,469,881,469,,,,881,881,881,881,,881", "881,881,881,,,,,881,881,,,,,,,881,,881,881,881,941,941,941,941,941,941", ",,,941,941,,,,941,,941,941,941,941,941,941,941,,,,,,941,941,941,941", "941,941,941,,,941,,,,,,941,941,941,941,941,941,941,941,941,941,941,941", ",941,941,941,,941,941,941,941,941,472,472,472,472,472,472,472,,,472", "472,,,,,,472,472,,941,,,941,,,941,941,,,941,,941,472,,472,941,472,472", ",472,472,472,472,472,941,472,,,,941,941,941,941,,941,941,941,941,,,", ",941,941,,,,,,,941,,941,941,941,958,958,958,958,958,958,,,,958,958,", ",,958,,958,958,958,958,958,958,958,,,,,,958,958,958,958,958,958,958", ",,958,,,,,,958,958,958,958,958,958,958,958,958,958,958,958,,958,958", "958,,958,958,958,958,958,473,473,473,473,473,473,473,473,,473,473,,", ",,,473,473,,958,,,958,,,958,958,,,958,,958,473,,473,958,473,473,,473", "473,473,473,473,958,473,,,,958,958,958,958,,958,958,958,958,,,,,958", "958,,,,,,,958,,958,958,958,964,964,964,964,964,964,,,,964,964,,,,964", ",964,964,964,964,964,964,964,,,,,,964,964,964,964,964,964,964,,,964", ",,,,,964,964,964,964,964,964,964,964,964,964,964,964,,964,964,964,,964", "964,964,964,964,458,,,,,,,,,,,,,,,,458,458,,964,,,964,,,964,964,,,964", ",964,458,,458,964,458,458,,458,458,,,,964,,,,,964,964,964,964,,964,964", "964,964,,,,,964,964,,,,,,,964,,964,964,964,966,966,966,966,966,966,", ",,966,966,,,,966,,966,966,966,966,966,966,966,,,,,,966,966,966,966,966", "966,966,,,966,,,,,,966,966,966,966,966,966,966,966,966,966,966,966,", "966,966,966,,966,966,966,966,966,,,,,,,,,,,,,,,,,,,,966,,,966,,,966", "966,,,966,,966,,,,966,,,,,,,,,966,,,,,966,966,966,966,,966,966,966,966", ",,,,966,966,,,,,,,966,,966,966,966,5,5,5,5,5,,,,5,5,,,,5,,5,5,5,5,5", "5,5,,,,,,5,5,5,5,5,5,5,,,5,,,,,,5,5,5,5,5,5,5,5,5,5,5,5,,5,5,5,,5,5", "5,5,5,,,,,,,,,,,,,,,,,,,,5,,,5,,,5,5,,,5,,5,,,,5,,,,,,,,,5,,,,,5,5,5", "5,,5,5,5,5,,,,,5,5,,,,20,20,20,5,20,5,5,5,20,20,,,,20,,20,20,20,20,20", "20,20,,,,,,20,20,20,20,20,20,20,,,20,,,,,,,20,,,20,20,20,20,20,20,20", "20,,20,20,20,,20,20,20,20,20,,,,,,,,,,,,,,,,,,,,20,,,20,,,20,20,,,20", ",,,,,20,,,,,,,,,20,,,,,20,20,20,20,,20,20,20,20,,,,,20,20,,,,29,29,29", "20,29,20,20,20,29,29,,,,29,,29,29,29,29,29,29,29,,,,,,29,29,29,29,29", "29,29,,,29,,,,,,,29,,,29,29,29,29,29,29,29,29,29,29,29,29,,29,29,29", "29,29,,,,,,,,,,,,,,,,,,,,29,,,29,,,29,29,,,29,,29,,29,,29,,,29,,,,,", "29,,,,,29,29,29,29,,29,29,29,29,,,,,29,29,,,,30,30,30,29,30,29,29,29", "30,30,,,,30,,30,30,30,30,30,30,30,,,,,,30,30,30,30,30,30,30,,,30,,,", ",,,30,,,30,30,30,30,30,30,30,30,30,30,30,30,,30,30,30,30,30,,,,,,,,", ",,,,,,,,,,,30,,,30,,,30,30,,,30,,30,,30,,30,,,30,,,,,,30,,,,,30,30,30", "30,,30,30,30,30,,,,,30,30,,,,31,31,31,30,31,30,30,30,31,31,,,,31,,31", "31,31,31,31,31,31,,,,,,31,31,31,31,31,31,31,,,31,,,,,,,31,,,31,31,31", "31,31,31,31,31,31,31,31,31,,31,31,31,31,31,,,,,,,,,,,,,,,,,,,,31,,,31", ",,31,31,,,31,,31,,31,,31,,,31,,,,,,31,,,,,31,31,31,31,,31,31,31,31,", ",,,31,31,,,,34,34,34,31,34,31,31,31,34,34,,,,34,,34,34,34,34,34,34,34", ",,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34,34,34,,34", "34,34,,34,34,,,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,,34,,34,,,,,,", ",,,,,,,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,,,,35,35,35,34,35,34,34", "34,35,35,,,,35,,35,35,35,35,35,35,35,,,,,,35,35,35,35,35,35,35,,,35", ",,,,,,35,,,35,35,35,35,35,35,35,35,,35,35,35,,35,35,,,35,,,,,,,,,,,", ",,,,,,,,35,,,35,,,35,35,,,35,,,697,,697,697,697,697,697,,,,,,,,,697", ",35,35,35,35,,35,35,35,35,,,,,35,35,,,,35,,697,35,,35,35,35,42,42,42", ",42,697,697,,42,42,697,,,42,,42,42,42,42,42,42,42,,,,,,42,42,42,42,42", "42,42,,,42,,,,,,,42,,,42,42,42,42,42,42,42,42,,42,42,42,,42,42,42,42", "42,,,,,,,,,,,,,,,,,,,,42,,,42,,,42,42,,,42,,,,,,42,,,,,,,,,42,,,,,42", "42,42,42,,42,42,42,42,,,,,42,42,,,,43,43,43,42,43,42,42,42,43,43,,,", "43,,43,43,43,43,43,43,43,,,,,,43,43,43,43,43,43,43,,,43,,,,,,,43,,,43", "43,43,43,43,43,43,43,,43,43,43,,43,43,43,43,43,,,,,,,,,,,,,,,,,,,,43", ",,43,,,43,43,,,43,,,,,,43,,,,,,,,,43,,,,,43,43,43,43,,43,43,43,43,,", ",,43,43,,,,44,44,44,43,44,43,43,43,44,44,,,,44,,44,44,44,44,44,44,44", ",,,,,44,44,44,44,44,44,44,,,44,,,,,,,44,,,44,44,44,44,44,44,44,44,,44", "44,44,,44,44,44,44,44,,,,,,,,,,,,,,,,,,,,44,,,44,,,44,44,,,44,,,,,,44", ",,,,,,,,44,,,,,44,44,44,44,,44,44,44,44,,,,,44,44,,,,59,59,59,44,59", "44,44,44,59,59,,,,59,,59,59,59,59,59,59,59,,,,,,59,59,59,59,59,59,59", ",,59,,,,,,,59,,,59,59,59,59,59,59,59,59,59,59,59,59,,59,59,59,59,59", ",,,,,,,,,,,,,,,,,,,59,,,59,,,59,59,,,59,,59,,,,59,,,59,,,,,,59,,,,,59", "59,59,59,,59,59,59,59,,,,,59,59,,,,60,60,60,59,60,59,59,59,60,60,,,", "60,,60,60,60,60,60,60,60,,,,,,60,60,60,60,60,60,60,,,60,,,,,,,60,,,60", "60,60,60,60,60,60,60,60,60,60,60,,60,60,60,60,60,,,,,,,,,,,,,,,,,,,", "60,,,60,,,60,60,,,60,,,,,,60,,,60,,,,,,60,,,,,60,60,60,60,,60,60,60", "60,,,,,60,60,,,,63,63,63,60,63,60,60,60,63,63,,,,63,,63,63,63,63,63", "63,63,,,,,,63,63,63,63,63,63,63,,,63,,,,,,,63,,,63,63,63,63,63,63,63", "63,,63,63,63,,63,63,63,63,63,,,,,,,,,,,,,,,,,,,,63,,,63,,,63,63,,,63", ",,,,,63,,,,,,,,,63,,,,,63,63,63,63,,63,63,63,63,,,,,63,63,,,,64,64,64", "63,64,63,63,63,64,64,,,,64,,64,64,64,64,64,64,64,,,,,,64,64,64,64,64", "64,64,,,64,,,,,,,64,,,64,64,64,64,64,64,64,64,,64,64,64,,64,64,64,64", "64,,,,,,,,,,,,,,,,,,,,64,,,64,,,64,64,,,64,,,,,,64,,,,,,,,,64,,,,,64", "64,64,64,,64,64,64,64,,,,,64,64,,,,67,67,67,64,67,64,64,64,67,67,,,", "67,,67,67,67,67,67,67,67,,,,,,67,67,67,67,67,67,67,,,67,,,,,,,67,,,67", "67,67,67,67,67,67,67,,67,67,67,,67,67,67,67,67,,,,,,,,,,,,,,,,,,,,67", ",,67,,,67,67,,,67,,,,,,67,,,,,,,,,67,,,,,67,67,67,67,,67,67,67,67,,", ",,67,67,67,,,,,67,67,,67,67,67,68,68,68,,68,,,,68,68,,,,68,,68,68,68", "68,68,68,68,,,,,,68,68,68,68,68,68,68,,,68,,,,,,,68,,,68,68,68,68,68", "68,68,68,,68,68,68,,68,68,,,68,,,,,,,,,,,,,,,,,,,,68,,,68,,,68,68,,", "68,,68,,,,,,,,,,,,,,,,,,68,68,68,68,,68,68,68,68,,,,,68,68,,,,69,69", "69,68,69,68,68,68,69,69,,,,69,,69,69,69,69,69,69,69,,,,,,69,69,69,69", "69,69,69,,,69,,,,,,,69,,,69,69,69,69,69,69,69,69,,69,69,69,,69,69,,", "69,,,,,,,,,,,,,,,,,69,,,69,,,69,,,69,69,,,69,,,,,,,,,,,,,,,,,,,,69,69", "69,69,,69,69,69,69,,,,,69,69,,,,70,70,70,69,70,69,69,69,70,70,,,,70", ",70,70,70,70,70,70,70,,,,,,70,70,70,70,70,70,70,,,70,,,,,,,70,,,70,70", "70,70,70,70,70,70,,70,70,70,,70,70,,,70,,,,,,,,,,,,,,,,,,,,70,,,70,", ",70,70,,,70,,,868,,868,868,868,868,868,,,,,,,,,868,,70,70,70,70,,70", "70,70,70,,,,,70,70,,,,,,868,70,,70,70,70,111,111,111,111,111,868,868", ",111,111,868,,,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,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", ",,,,111,111,,,,,,111,111,,111,111,111,116,116,116,,116,,,,116,116,,", ",116,,116,116,116,116,116,116,116,,,,,,116,116,116,116,116,116,116,", ",116,,,,,,,116,,,116,116,116,116,116,116,116,116,,116,116,116,,116,116", "116,116,116,,,,,,,,,,,,,,,,,,,,116,,,116,,,116,116,,,116,,,,,,116,,", ",,,,,,116,,,,,116,116,116,116,,116,116,116,116,,,,,116,116,,,,117,117", "117,116,117,116,116,116,117,117,,,,117,,117,117,117,117,117,117,117", ",,,,,117,117,117,117,117,117,117,,,117,,,,,,,117,,,117,117,117,117,117", "117,117,117,,117,117,117,,117,117,117,117,117,,,,,,,,,,,,,,,,,,,,117", ",,117,,,117,117,,,117,,,,,,117,,,,,,,,,117,,,,,117,117,117,117,,117", "117,117,117,,,,,117,117,,,,118,118,118,117,118,117,117,117,118,118,", ",,118,,118,118,118,118,118,118,118,,,,,,118,118,118,118,118,118,118", ",,118,,,,,,,118,,,118,118,118,118,118,118,118,118,,118,118,118,,118", "118,118,118,118,,,,,,,,,,,,,,,,,,,,118,,,118,,,118,118,,,118,,,,,,118", ",,,,,,,,118,,,,,118,118,118,118,,118,118,118,118,,,,,118,118,,,,119", "119,119,118,119,118,118,118,119,119,,,,119,,119,119,119,119,119,119", "119,,,,,,119,119,119,119,119,119,119,,,119,,,,,,,119,,,119,119,119,119", "119,119,119,119,,119,119,119,,119,119,119,119,119,,,,,,,,,,,,,,,,,,", ",119,,,119,,,119,119,,,119,,,,,,119,,,,,,,,,119,,,,,119,119,119,119", ",119,119,119,119,,,,,119,119,,,,,,,119,,119,119,119,120,120,120,120", "120,,,,120,120,,,,120,,120,120,120,120,120,120,120,,,,,,120,120,120", "120,120,120,120,,,120,,,,,,120,120,,120,120,120,120,120,120,120,120", "120,,120,120,120,,120,120,120,120,120,,,,,,,,,,,,,,,,,,,,120,,,120,", ",120,120,,,120,,120,,,,120,,,,,,,,,120,,,,,120,120,120,120,,120,120", "120,120,,,,,120,120,,,,207,207,207,120,207,120,120,120,207,207,,,,207", ",207,207,207,207,207,207,207,,,,,,207,207,207,207,207,207,207,,,207", ",,,,,,207,,,207,207,207,207,207,207,207,207,,207,207,207,,207,207,207", "207,207,,,,,,,,,,,,,,,,,,,,207,,,207,,,207,207,,,207,,207,,,,207,,,", ",,,,,207,,,,,207,207,207,207,,207,207,207,207,,,,,207,207,,,,208,208", "208,207,208,207,207,207,208,208,,,,208,,208,208,208,208,208,208,208", ",,,,,208,208,208,208,208,208,208,,,208,,,,,,,208,,,208,208,208,208,208", "208,208,208,,208,208,208,,208,208,208,208,208,,,,,,,,,,,,,,,,,,,,208", ",,208,,,208,208,,,208,,,,,,208,,,,,,,,,208,,,,,208,208,208,208,,208", "208,208,208,,,,,208,208,,,,209,209,209,208,209,208,208,208,209,209,", ",,209,,209,209,209,209,209,209,209,,,,,,209,209,209,209,209,209,209", ",,209,,,,,,,209,,,209,209,209,209,209,209,209,209,209,209,209,209,,209", "209,209,209,209,,,,,,,,,,,,,,,,,,,,209,,,209,,,209,209,,,209,,209,,209", ",209,,,209,,,,,,209,,,,,209,209,209,209,,209,209,209,209,,,,,209,209", ",,,214,214,214,209,214,209,209,209,214,214,,,,214,,214,214,214,214,214", "214,214,,,,,,214,214,214,214,214,214,214,,,214,,,,,,,214,,,214,214,214", "214,214,214,214,214,,214,214,214,,214,214,214,214,214,,,,,,,,,,,,,,", ",,,,,214,,,214,,,214,214,,,214,,,,,,214,,,,,,,,,214,,,,,214,214,214", "214,,214,214,214,214,,,,,214,214,,,,215,215,215,214,215,214,214,214", "215,215,,,,215,,215,215,215,215,215,215,215,,,,,,215,215,215,215,215", "215,215,,,215,,,,,,,215,,,215,215,215,215,215,215,215,215,,215,215,215", ",215,215,215,215,215,,,,,,,,,,,,,,,,,,,,215,,,215,,,215,215,,,215,,215", ",,,215,,,,,,,,,215,,,,,215,215,215,215,,215,215,215,215,,,,,215,215", ",,,216,216,216,215,216,215,215,215,216,216,,,,216,,216,216,216,216,216", "216,216,,,,,,216,216,216,216,216,216,216,,,216,,,,,,,216,,,216,216,216", "216,216,216,216,216,,216,216,216,,216,216,216,216,216,,,,,,,,,,,,,,", ",,,,,216,,,216,,,216,216,,,216,,,,,,216,,,,,,,,,216,,,,,216,216,216", "216,,216,216,216,216,,,,,216,216,,,,217,217,217,216,217,216,216,216", "217,217,,,,217,,217,217,217,217,217,217,217,,,,,,217,217,217,217,217", "217,217,,,217,,,,,,,217,,,217,217,217,217,217,217,217,217,,217,217,217", ",217,217,217,217,217,,,,,,,,,,,,,,,,,,,,217,,,217,,,217,217,,,217,,", ",,,217,,,,,,,,,217,,,,,217,217,217,217,,217,217,217,217,,,,,217,217", ",,,218,218,218,217,218,217,217,217,218,218,,,,218,,218,218,218,218,218", "218,218,,,,,,218,218,218,218,218,218,218,,,218,,,,,,,218,,,218,218,218", "218,218,218,218,218,,218,218,218,,218,218,218,218,218,,,,,,,,,,,,,,", ",,,,,218,,,218,,,218,218,,,218,,,,,,218,,,,,,,,,218,,,,,218,218,218", "218,,218,218,218,218,,,,,218,218,,,,219,219,219,218,219,218,218,218", "219,219,,,,219,,219,219,219,219,219,219,219,,,,,,219,219,219,219,219", "219,219,,,219,,,,,,,219,,,219,219,219,219,219,219,219,219,,219,219,219", ",219,219,219,219,219,,,,,,,,,,,,,,,,,,,,219,,,219,,,219,219,,,219,,", ",,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,,,,,219,219", "219,,,230,230,230,219,230,219,219,219,230,230,,,,230,,230,230,230,230", "230,230,230,,,,,,230,230,230,230,230,230,230,,,230,,,,,,,230,,,230,230", "230,230,230,230,230,230,,230,230,230,,230,230,230,230,230,,,,,,,,,,", ",,,,,,,,,230,,,230,,,230,230,,,230,,,,,,230,,,,,,,,,230,,,,,230,230", "230,230,,230,230,230,230,,,,,230,230,,,,233,233,233,230,233,230,230", "230,233,233,,,,233,,233,233,233,233,233,233,233,,,,,,233,233,233,233", "233,233,233,,,233,,,,,,,233,,,233,233,233,233,233,233,233,233,,233,233", "233,,233,233,233,233,233,,,,,,,,,,,,,,,,,,,,233,,,233,,,233,233,,,233", ",,,,,233,,,,,,,,,233,,,,,233,233,233,233,,233,233,233,233,,,,,233,233", ",,,234,234,234,233,234,233,233,233,234,234,,,,234,,234,234,234,234,234", "234,234,,,,,,234,234,234,234,234,234,234,,,234,,,,,,,234,,,234,234,234", "234,234,234,234,234,,234,234,234,,234,234,234,234,234,,,,,,,,,,,,,,", ",,,,,234,,,234,,,234,234,,,234,,,,,,234,,,,,,,,,234,,,,,234,234,234", "234,,234,234,234,234,,,,,234,234,,,,235,235,235,234,235,234,234,234", "235,235,,,,235,,235,235,235,235,235,235,235,,,,,,235,235,235,235,235", "235,235,,,235,,,,,,,235,,,235,235,235,235,235,235,235,235,,235,235,235", ",235,235,235,235,235,,,,,,,,,,,,,,,,,,,,235,,,235,,,235,235,,,235,,", ",,,235,,,,,,,,,235,,,,,235,235,235,235,,235,235,235,235,,,,,235,235", ",,,236,236,236,235,236,235,235,235,236,236,,,,236,,236,236,236,236,236", "236,236,,,,,,236,236,236,236,236,236,236,,,236,,,,,,,236,,,236,236,236", "236,236,236,236,236,,236,236,236,,236,236,236,236,236,,,,,,,,,,,,,,", ",,,,,236,,,236,,,236,236,,,236,,,,,,236,,,,,,,,,236,,,,,236,236,236", "236,,236,236,236,236,,,,,236,236,,,,237,237,237,236,237,236,236,236", "237,237,,,,237,,237,237,237,237,237,237,237,,,,,,237,237,237,237,237", "237,237,,,237,,,,,,,237,,,237,237,237,237,237,237,237,237,,237,237,237", ",237,237,237,237,237,,,,,,,,,,,,,,,,,,,,237,,,237,,,237,237,,,237,,", ",,,237,,,,,,,,,237,,,,,237,237,237,237,,237,237,237,237,,,,,237,237", ",,,238,238,238,237,238,237,237,237,238,238,,,,238,,238,238,238,238,238", "238,238,,,,,,238,238,238,238,238,238,238,,,238,,,,,,,238,,,238,238,238", "238,238,238,238,238,,238,238,238,,238,238,238,238,238,,,,,,,,,,,,,,", ",,,,,238,,,238,,,238,238,,,238,,,,,,238,,,,,,,,,238,,,,,238,238,238", "238,,238,238,238,238,,,,,238,238,,,,239,239,239,238,239,238,238,238", "239,239,,,,239,,239,239,239,239,239,239,239,,,,,,239,239,239,239,239", "239,239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239,,239,239,239", ",239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239,239,,,239,,", ",,,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239,,,,,239,239", ",,,240,240,240,239,240,239,239,239,240,240,,,,240,,240,240,240,240,240", "240,240,,,,,,240,240,240,240,240,240,240,,,240,,,,,,,240,,,240,240,240", "240,240,240,240,240,,240,240,240,,240,240,240,240,240,,,,,,,,,,,,,,", ",,,,,240,,,240,,,240,240,,,240,,,,,,240,,,,,,,,,240,,,,,240,240,240", "240,,240,240,240,240,,,,,240,240,,,,241,241,241,240,241,240,240,240", "241,241,,,,241,,241,241,241,241,241,241,241,,,,,,241,241,241,241,241", "241,241,,,241,,,,,,,241,,,241,241,241,241,241,241,241,241,,241,241,241", ",241,241,241,241,241,,,,,,,,,,,,,,,,,,,,241,,,241,,,241,241,,,241,,", ",,,241,,,,,,,,,241,,,,,241,241,241,241,,241,241,241,241,,,,,241,241", ",,,242,242,242,241,242,241,241,241,242,242,,,,242,,242,242,242,242,242", "242,242,,,,,,242,242,242,242,242,242,242,,,242,,,,,,,242,,,242,242,242", "242,242,242,242,242,,242,242,242,,242,242,242,242,242,,,,,,,,,,,,,,", ",,,,,242,,,242,,,242,242,,,242,,,,,,242,,,,,,,,,242,,,,,242,242,242", "242,,242,242,242,242,,,,,242,242,,,,243,243,243,242,243,242,242,242", "243,243,,,,243,,243,243,243,243,243,243,243,,,,,,243,243,243,243,243", "243,243,,,243,,,,,,,243,,,243,243,243,243,243,243,243,243,,243,243,243", ",243,243,243,243,243,,,,,,,,,,,,,,,,,,,,243,,,243,,,243,243,,,243,,", ",,,243,,,,,,,,,243,,,,,243,243,243,243,,243,243,243,243,,,,,243,243", ",,,244,244,244,243,244,243,243,243,244,244,,,,244,,244,244,244,244,244", "244,244,,,,,,244,244,244,244,244,244,244,,,244,,,,,,,244,,,244,244,244", "244,244,244,244,244,,244,244,244,,244,244,244,244,244,,,,,,,,,,,,,,", ",,,,,244,,,244,,,244,244,,,244,,,,,,244,,,,,,,,,244,,,,,244,244,244", "244,,244,244,244,244,,,,,244,244,,,,245,245,245,244,245,244,244,244", "245,245,,,,245,,245,245,245,245,245,245,245,,,,,,245,245,245,245,245", "245,245,,,245,,,,,,,245,,,245,245,245,245,245,245,245,245,,245,245,245", ",245,245,245,245,245,,,,,,,,,,,,,,,,,,,,245,,,245,,,245,245,,,245,,", ",,,245,,,,,,,,,245,,,,,245,245,245,245,,245,245,245,245,,,,,245,245", ",,,246,246,246,245,246,245,245,245,246,246,,,,246,,246,246,246,246,246", "246,246,,,,,,246,246,246,246,246,246,246,,,246,,,,,,,246,,,246,246,246", "246,246,246,246,246,,246,246,246,,246,246,246,246,246,,,,,,,,,,,,,,", ",,,,,246,,,246,,,246,246,,,246,,,,,,246,,,,,,,,,246,,,,,246,246,246", "246,,246,246,246,246,,,,,246,246,,,,247,247,247,246,247,246,246,246", "247,247,,,,247,,247,247,247,247,247,247,247,,,,,,247,247,247,247,247", "247,247,,,247,,,,,,,247,,,247,247,247,247,247,247,247,247,,247,247,247", ",247,247,247,247,247,,,,,,,,,,,,,,,,,,,,247,,,247,,,247,247,,,247,,", ",,,247,,,,,,,,,247,,,,,247,247,247,247,,247,247,247,247,,,,,247,247", ",,,248,248,248,247,248,247,247,247,248,248,,,,248,,248,248,248,248,248", "248,248,,,,,,248,248,248,248,248,248,248,,,248,,,,,,,248,,,248,248,248", "248,248,248,248,248,,248,248,248,,248,248,248,248,248,,,,,,,,,,,,,,", ",,,,,248,,,248,,,248,248,,,248,,,,,,248,,,,,,,,,248,,,,,248,248,248", "248,,248,248,248,248,,,,,248,248,,,,249,249,249,248,249,248,248,248", "249,249,,,,249,,249,249,249,249,249,249,249,,,,,,249,249,249,249,249", "249,249,,,249,,,,,,,249,,,249,249,249,249,249,249,249,249,,249,249,249", ",249,249,249,249,249,,,,,,,,,,,,,,,,,,,,249,,,249,,,249,249,,,249,,", ",,,249,,,,,,,,,249,,,,,249,249,249,249,,249,249,249,249,,,,,249,249", ",,,250,250,250,249,250,249,249,249,250,250,,,,250,,250,250,250,250,250", "250,250,,,,,,250,250,250,250,250,250,250,,,250,,,,,,,250,,,250,250,250", "250,250,250,250,250,,250,250,250,,250,250,250,250,250,,,,,,,,,,,,,,", ",,,,,250,,,250,,,250,250,,,250,,,,,,250,,,,,,,,,250,,,,,250,250,250", "250,,250,250,250,250,,,,,250,250,,,,251,251,251,250,251,250,250,250", "251,251,,,,251,,251,251,251,251,251,251,251,,,,,,251,251,251,251,251", "251,251,,,251,,,,,,,251,,,251,251,251,251,251,251,251,251,,251,251,251", ",251,251,251,251,251,,,,,,,,,,,,,,,,,,,,251,,,251,,,251,251,,,251,,", ",,,251,,,,,,,,,251,,,,,251,251,251,251,,251,251,251,251,,,,,251,251", ",,,252,252,252,251,252,251,251,251,252,252,,,,252,,252,252,252,252,252", "252,252,,,,,,252,252,252,252,252,252,252,,,252,,,,,,,252,,,252,252,252", "252,252,252,252,252,,252,252,252,,252,252,252,252,252,,,,,,,,,,,,,,", ",,,,,252,,,252,,,252,252,,,252,,,,,,252,,,,,,,,,252,,,,,252,252,252", "252,,252,252,252,252,,,,,252,252,,,,253,253,253,252,253,252,252,252", "253,253,,,,253,,253,253,253,253,253,253,253,,,,,,253,253,253,253,253", "253,253,,,253,,,,,,,253,,,253,253,253,253,253,253,253,253,,253,253,253", ",253,253,253,253,253,,,,,,,,,,,,,,,,,,,,253,,,253,,,253,253,,,253,,", ",,,253,,,,,,,,,253,,,,,253,253,253,253,,253,253,253,253,,,,,253,253", ",,,254,254,254,253,254,253,253,253,254,254,,,,254,,254,254,254,254,254", "254,254,,,,,,254,254,254,254,254,254,254,,,254,,,,,,,254,,,254,254,254", "254,254,254,254,254,,254,254,254,,254,254,254,254,254,,,,,,,,,,,,,,", ",,,,,254,,,254,,,254,254,,,254,,,,,,254,,,,,,,,,254,,,,,254,254,254", "254,,254,254,254,254,,,,,254,254,,,,255,255,255,254,255,254,254,254", "255,255,,,,255,,255,255,255,255,255,255,255,,,,,,255,255,255,255,255", "255,255,,,255,,,,,,,255,,,255,255,255,255,255,255,255,255,,255,255,255", ",255,255,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,", ",,,255,,,,,,,,,255,,,,,255,255,255,255,,255,255,255,255,,,,,255,255", ",,,256,256,256,255,256,255,255,255,256,256,,,,256,,256,256,256,256,256", "256,256,,,,,,256,256,256,256,256,256,256,,,256,,,,,,,256,,,256,256,256", "256,256,256,256,256,,256,256,256,,256,256,256,256,256,,,,,,,,,,,,,,", ",,,,,256,,,256,,,256,256,,,256,,,,,,256,,,,,,,,,256,,,,,256,256,256", "256,,256,256,256,256,,,,,256,256,,,,257,257,257,256,257,256,256,256", "257,257,,,,257,,257,257,257,257,257,257,257,,,,,,257,257,257,257,257", "257,257,,,257,,,,,,,257,,,257,257,257,257,257,257,257,257,,257,257,257", ",257,257,257,257,257,,,,,,,,,,,,,,,,,,,,257,,,257,,,257,257,,,257,,", ",,,257,,,,,,,,,257,,,,,257,257,257,257,,257,257,257,257,,,,,257,257", ",,,258,258,258,257,258,257,257,257,258,258,,,,258,,258,258,258,258,258", "258,258,,,,,,258,258,258,258,258,258,258,,,258,,,,,,,258,,,258,258,258", "258,258,258,258,258,,258,258,258,,258,258,258,258,258,,,,,,,,,,,,,,", ",,,,,258,,,258,,,258,258,,,258,,,,,,258,,,,,,,,,258,,,,,258,258,258", "258,,258,258,258,258,,,,,258,258,,,,265,265,265,258,265,258,258,258", "265,265,,,,265,,265,265,265,265,265,265,265,,,,,,265,265,265,265,265", "265,265,,,265,,,,,,,265,,,265,265,265,265,265,265,265,265,265,265,265", "265,,265,265,265,265,265,,,,,,,,,,,,,,,,,,,,265,,,265,,,265,265,,,265", ",265,,265,,265,,,265,,,,,,265,,,,,265,265,265,265,,265,265,265,265,", ",,,265,265,,,,266,266,266,265,266,265,265,265,266,266,,,,266,,266,266", "266,266,266,266,266,,,,,,266,266,266,266,266,266,266,,,266,,,,,,,266", ",,266,266,266,266,266,266,266,266,266,266,266,266,,266,266,266,266,266", ",,,,,,,,,,,,,,,,,,,266,,,266,,,266,266,,,266,,266,,266,,266,,,266,,", ",,,266,,,,,266,266,266,266,,266,266,266,266,,,,,266,266,,,,274,274,274", "266,274,266,266,266,274,274,,,,274,,274,274,274,274,274,274,274,,,,", ",274,274,274,274,274,274,274,,,274,,,,,,,274,,,274,274,274,274,274,274", "274,274,274,274,274,274,,274,274,274,274,274,,,,,,,,,,,,,,,,,,,,274", ",,274,,,274,274,,,274,,274,,274,,274,,,274,,,,,,274,,,,,274,274,274", "274,,274,274,274,274,,,,,274,274,274,,,281,281,281,274,281,274,274,274", "281,281,,,,281,,281,281,281,281,281,281,281,,,,,,281,281,281,281,281", "281,281,,,281,,,,,,,281,,,281,281,281,281,281,281,281,281,,281,281,281", ",281,281,281,281,281,,,,,,,,,,,,,,,,,,,,281,,,281,,,281,281,,,281,,", ",,,281,,,,,,,,,281,,,,,281,281,281,281,,281,281,281,281,,,,,281,281", ",,,283,283,283,281,283,281,281,281,283,283,,,,283,,283,283,283,283,283", "283,283,,,,,,283,283,283,283,283,283,283,,,283,,,,,,,283,,,283,283,283", "283,283,283,283,283,,283,283,283,,283,283,283,283,283,,,,,,,,,,,,,,", ",,,,,283,,,283,,,283,283,,,283,,,,,,283,,,,,,,,,283,,,,,283,283,283", "283,,283,283,283,283,,,,,283,283,,,,286,286,286,283,286,283,283,283", "286,286,,,,286,,286,286,286,286,286,286,286,,,,,,286,286,286,286,286", "286,286,,,286,,,,,,,286,,,286,286,286,286,286,286,286,286,,286,286,286", ",286,286,286,286,286,,,,,,,,,,,,,,,,,,,,286,,,286,,,286,286,,,286,,", ",,,286,,,,,,,,,286,,,,,286,286,286,286,,286,286,286,286,,,,,286,286", ",,,287,287,287,286,287,286,286,286,287,287,,,,287,,287,287,287,287,287", "287,287,,,,,,287,287,287,287,287,287,287,,,287,,,,,,,287,,,287,287,287", "287,287,287,287,287,,287,287,287,,287,287,287,287,287,,,,,,,,,,,,,,", ",,,,,287,,,287,,,287,287,,,287,,,,,,287,,,,,,,,,287,,,,,287,287,287", "287,,287,287,287,287,,,,,287,287,,,,,,,287,,287,287,287,292,292,292", "292,292,,,,292,292,,,,292,,292,292,292,292,292,292,292,,,,,,292,292", "292,292,292,292,292,,,292,,,,,,292,292,,292,292,292,292,292,292,292", "292,292,,292,292,292,,292,292,292,292,292,,,,,,,,,,,,,,,,,,,,292,,,292", ",,292,292,,,292,,292,,,,292,,,,,,,,,292,,,,,292,292,292,292,,292,292", "292,292,,,,,292,292,,,,300,300,300,292,300,292,292,292,300,300,,,,300", ",300,300,300,300,300,300,300,,,,,,300,300,300,300,300,300,300,,,300", ",,,,,,300,,,300,300,300,300,300,300,300,300,,300,300,300,,300,300,,", "300,,,,,,,,,,,,,,,,,,,,300,,,300,,,300,300,,,300,,,894,,894,894,894", "894,894,,,,,,,,,894,,300,300,300,300,,300,300,300,300,,,,,300,300,,", ",300,,894,300,,300,300,300,317,317,317,,317,894,894,,317,317,894,,,317", ",317,317,317,317,317,317,317,,,,,,317,317,317,317,317,317,317,,,317", ",,,,,,317,,,317,317,317,317,317,317,317,317,,317,317,317,,317,317,,", "317,,,,,,,,,,,,,,,,,,,,317,,,317,,,317,317,,,317,,,,,,,,,,,,,,,,,,,", "317,317,317,317,,317,317,317,317,,,,,317,317,,,,325,325,325,317,325", "317,317,317,325,325,,,,325,,325,325,325,325,325,325,325,,,,,,325,325", "325,325,325,325,325,,,325,,,,,,,325,,,325,325,325,325,325,325,325,325", ",325,325,325,,325,325,325,325,325,,,,,,,,,,,,,,,,,,,,325,,,325,325,", "325,325,,,325,,,,,,325,,,,,,,,,325,,,,,325,325,325,325,,325,325,325", "325,,,,,325,325,,,,327,327,327,325,327,325,325,325,327,327,,,,327,,327", "327,327,327,327,327,327,,,,,,327,327,327,327,327,327,327,,,327,,,,,", ",327,,,327,327,327,327,327,327,327,327,,327,327,327,,327,327,327,327", "327,,,,,,,,,,,,,,,,,,,,327,,,327,,,327,327,,,327,,,,,,327,,,,,,,,,327", ",,,,327,327,327,327,,327,327,327,327,,,,,327,327,,,,342,342,342,327", "342,327,327,327,342,342,,,,342,,342,342,342,342,342,342,342,,,,,,342", "342,342,342,342,342,342,,,342,,,,,,,342,,,342,342,342,342,342,342,342", "342,,342,342,342,,342,342,342,342,342,,,,,,,,,,,,,,,,,,,,342,,,342,", ",342,342,,,342,,,,,,342,,,,,,,,,342,,,,,342,342,342,342,,342,342,342", "342,,,,,342,342,,,,343,343,343,342,343,342,342,342,343,343,,,,343,,343", "343,343,343,343,343,343,,,,,,343,343,343,343,343,343,343,,,343,,,,,", ",343,,,343,343,343,343,343,343,343,343,,343,343,343,,343,343,343,343", "343,,,,,,,,,,,,,,,,,,,,343,,,343,,,343,343,,,343,,,,,,343,,,,,,,,,343", ",,,,343,343,343,343,,343,343,343,343,,,,,343,343,,,,362,362,362,343", "362,343,343,343,362,362,,,,362,,362,362,362,362,362,362,362,,,,,,362", "362,362,362,362,362,362,,,362,,,,,,,362,,,362,362,362,362,362,362,362", "362,,362,362,362,,362,362,362,362,362,,,,,,,,,,,,,,,,,,,,362,,,362,", ",362,362,,,362,,,,,,362,,,,,,,,,362,,,,,362,362,362,362,,362,362,362", "362,,,,,362,362,,,,378,378,378,362,378,362,362,362,378,378,,,,378,,378", "378,378,378,378,378,378,,,,,,378,378,378,378,378,378,378,,,378,,,,,", ",378,,,378,378,378,378,378,378,378,378,,378,378,378,,378,378,378,378", "378,,,,,,,,,,,,,,,,,,,,378,,,378,,,378,378,,,378,,,,,,378,,,,,,,,,378", ",,,,378,378,378,378,,378,378,378,378,,,,,378,378,,,,406,406,406,378", "406,378,378,378,406,406,,,,406,,406,406,406,406,406,406,406,,,,,,406", "406,406,406,406,406,406,,,406,,,,,,,406,,,406,406,406,406,406,406,406", "406,,406,406,406,,406,406,406,406,406,,,,,,,,,,,,,,,,,,,,406,,,406,", ",406,406,,,406,,,,,,406,,,,,,,,,406,,,,,406,406,406,406,,406,406,406", "406,,,,,406,406,,,,444,444,444,406,444,406,406,406,444,444,,,,444,,444", "444,444,444,444,444,444,,,,,,444,444,444,444,444,444,444,,,444,,,,,", ",444,,,444,444,444,444,444,444,444,444,444,444,444,444,,444,444,444", "444,444,,,,,,,,,,,,,,,,,,,,444,,,444,,,444,444,,,444,,444,,444,,444", ",,444,,,,,,444,,,,,444,444,444,444,,444,444,444,444,,,,,444,444,,,,446", "446,446,444,446,444,444,444,446,446,,,,446,,446,446,446,446,446,446", "446,,,,,,446,446,446,446,446,446,446,,,446,,,,,,,446,,,446,446,446,446", "446,446,446,446,,446,446,446,,446,446,446,446,446,,,,,,,,,,,,,,,,,,", ",446,,,446,,,446,446,,,446,,,,,,446,,,,,,,,,446,,,,,446,446,446,446", ",446,446,446,446,,,,,446,446,,,,447,447,447,446,447,446,446,446,447", "447,,,,447,,447,447,447,447,447,447,447,,,,,,447,447,447,447,447,447", "447,,,447,,,,,,,447,,,447,447,447,447,447,447,447,447,,447,447,447,", "447,447,447,447,447,,,,,,,,,,,,,,,,,,,,447,,,447,,,447,447,,,447,,,", ",,447,,,,,,,,,447,,,,,447,447,447,447,,447,447,447,447,,,,,447,447,", ",,448,448,448,447,448,447,447,447,448,448,,,,448,,448,448,448,448,448", "448,448,,,,,,448,448,448,448,448,448,448,,,448,,,,,,,448,,,448,448,448", "448,448,448,448,448,,448,448,448,,448,448,448,448,448,,,,,,,,,,,,,,", ",,,,,448,,,448,,,448,448,,,448,,,,,,448,,,,,,,,,448,,,,,448,448,448", "448,,448,448,448,448,,,,,448,448,,,,488,488,488,448,488,448,448,448", "488,488,,,,488,,488,488,488,488,488,488,488,,,,,,488,488,488,488,488", "488,488,,,488,,,,,,,488,,,488,488,488,488,488,488,488,488,488,488,488", "488,,488,488,488,488,488,,,,,,,,,,,,,,,,,,,,488,,,488,,,488,488,,,488", ",488,,488,,488,,,488,,,,,,488,,,,,488,488,488,488,,488,488,488,488,", ",,,488,488,,,,490,490,490,488,490,488,488,488,490,490,,,,490,,490,490", "490,490,490,490,490,,,,,,490,490,490,490,490,490,490,,,490,,,,,,,490", ",,490,490,490,490,490,490,490,490,490,490,490,490,,490,490,490,490,490", ",,,,,,,,,,,,,,,,,,,490,,,490,,,490,490,,,490,,,,490,,490,,,490,,,,,", "490,,,,,490,490,490,490,,490,490,490,490,,,,,490,490,,,,492,492,492", "490,492,490,490,490,492,492,,,,492,,492,492,492,492,492,492,492,,,,", ",492,492,492,492,492,492,492,,,492,,,,,,,492,,,492,492,492,492,492,492", "492,492,,492,492,492,,492,492,492,492,492,,,,,,,,,,,,,,,,,,,,492,,,492", ",,492,492,,,492,,,,,,492,,,,,,,,,492,,,,,492,492,492,492,,492,492,492", "492,,,,,492,492,,,,,,,492,,492,492,492,498,498,498,498,498,,,,498,498", ",,,498,,498,498,498,498,498,498,498,,,,,,498,498,498,498,498,498,498", ",,498,,,,,,498,498,498,498,498,498,498,498,498,498,498,498,,498,498", "498,,498,498,498,498,498,,,,,,,,,,,,,,,,,,,,498,,,498,,,498,498,,,498", ",498,,,,498,,,,,,,,,498,,,,,498,498,498,498,,498,498,498,498,,,,,498", "498,,,,,,498,498,,498,498,498,506,506,506,,506,,,,506,506,,,,506,,506", "506,506,506,506,506,506,,,,,,506,506,506,506,506,506,506,,,506,,,,,", ",506,,,506,506,506,506,506,506,506,506,,506,506,506,,506,506,,,506,", ",,,,,,,,,,,,,,,,,,506,,,506,,,506,506,,,506,,,,,,,,,,,,,,,,,,,,506,506", "506,506,,506,506,506,506,,,,,506,506,,,,508,508,508,506,508,506,506", "506,508,508,,,,508,,508,508,508,508,508,508,508,,,,,,508,508,508,508", "508,508,508,,,508,,,,,,,508,,,508,508,508,508,508,508,508,508,508,508", "508,508,,508,508,508,508,508,,,,,,,,,,,,,,,,,,,,508,,,508,,,508,508", ",,508,,508,,508,,508,,,508,,,,,,508,,,,,508,508,508,508,,508,508,508", "508,,,,,508,508,,,,514,514,514,508,514,508,508,508,514,514,,,,514,,514", "514,514,514,514,514,514,,,,,,514,514,514,514,514,514,514,,,514,,,,,", ",514,,,514,514,514,514,514,514,514,514,,514,514,514,,514,514,,,514,", ",,,,,,,,,,,,,,,,,,514,,,514,,,514,514,,,514,,,,,,,,,,,,,,,,,,,,514,514", "514,514,,514,514,514,514,,,,,514,514,,,,517,517,517,514,517,514,514", "514,517,517,,,,517,,517,517,517,517,517,517,517,,,,,,517,517,517,517", "517,517,517,,,517,,,,,,,517,,,517,517,517,517,517,517,517,517,,517,517", "517,,517,517,517,517,517,,,,,,,,,,,,,,,,,,,,517,,,517,,,517,517,,,517", ",,,,,517,,,,,,,,,517,,,,,517,517,517,517,,517,517,517,517,,,,,517,517", ",,,518,518,518,517,518,517,517,517,518,518,,,,518,,518,518,518,518,518", "518,518,,,,,,518,518,518,518,518,518,518,,,518,,,,,,,518,,,518,518,518", "518,518,518,518,518,,518,518,518,,518,518,518,518,518,,,,,,,,,,,,,,", ",,,,,518,,,518,,,518,518,,,518,,,,,,518,,,,,,,,,518,,,,,518,518,518", "518,,518,518,518,518,,,,,518,518,,,,522,522,522,518,522,518,518,518", "522,522,,,,522,,522,522,522,522,522,522,522,,,,,,522,522,522,522,522", "522,522,,,522,,,,,,,522,,,522,522,522,522,522,522,522,522,,522,522,522", ",522,522,522,522,522,,,,,,,,,,,,,,,,,,,,522,,,522,,,522,522,,,522,,", ",,,522,,,,,,,,,522,,,,,522,522,522,522,,522,522,522,522,,,,,522,522", ",,,528,528,528,522,528,522,522,522,528,528,,,,528,,528,528,528,528,528", "528,528,,,,,,528,528,528,528,528,528,528,,,528,,,,,,,528,,,528,528,528", "528,528,528,528,528,528,528,528,528,,528,528,528,528,528,,,,,,,,,,,", ",,,,,,,,528,,,528,,,528,528,,,528,,528,,,,528,,,528,,,,,,528,,,,,528", "528,528,528,,528,528,528,528,,,,,528,528,,,,531,531,531,528,531,528", "528,528,531,531,,,,531,,531,531,531,531,531,531,531,,,,,,531,531,531", "531,531,531,531,,,531,,,,,,,531,,,531,531,531,531,531,531,531,531,531", "531,531,531,,531,531,531,531,531,,,,,,,,,,,,,,,,,,,,531,,,531,,,531", "531,,,531,,,,,,531,,,531,,,,,,531,,,,,531,531,531,531,,531,531,531,531", ",,,,531,531,,,,556,556,556,531,556,531,531,531,556,556,,,,556,,556,556", "556,556,556,556,556,,,,,,556,556,556,556,556,556,556,,,556,,,,,,,556", ",,556,556,556,556,556,556,556,556,,556,556,556,,556,556,556,556,556", ",,,,,,,,,,,,,,,,,,,556,,,556,,,556,556,,,556,,,,,,556,,,,,,,,,556,,", ",,556,556,556,556,,556,556,556,556,,,,,556,556,,,,576,576,576,556,576", "556,556,556,576,576,,,,576,,576,576,576,576,576,576,576,,,,,,576,576", "576,576,576,576,576,,,576,,,,,,,576,,,576,576,576,576,576,576,576,576", ",576,576,576,,576,576,576,576,576,,,,,,,,,,,,,,,,,,,,576,,,576,,,576", "576,,,576,,576,,,,576,,,,,,,,,576,,,,,576,576,576,576,,576,576,576,576", ",,,,576,576,,,,577,577,577,576,577,576,576,576,577,577,,,,577,,577,577", "577,577,577,577,577,,,,,,577,577,577,577,577,577,577,,,577,,,,,,,577", ",,577,577,577,577,577,577,577,577,577,577,577,577,,577,577,577,577,577", ",,,,,,,,,,,,,,,,,,,577,,,577,,,577,577,,,577,,577,,577,,577,,,577,,", ",,,577,,,,,577,577,577,577,,577,577,577,577,,,,,577,577,,,,587,587,587", "577,587,577,577,577,587,587,,,,587,,587,587,587,587,587,587,587,,,,", ",587,587,587,587,587,587,587,,,587,,,,,,,587,,,587,587,587,587,587,587", "587,587,587,587,587,587,,587,587,587,587,587,,,,,,,,,,,,,,,,,,,,587", ",,587,,,587,587,,,587,,587,,587,,587,,,587,,,,,,587,,,,,587,587,587", "587,,587,587,587,587,,,,,587,587,,,,619,619,619,587,619,587,587,587", "619,619,,,,619,,619,619,619,619,619,619,619,,,,,,619,619,619,619,619", "619,619,,,619,,,,,,,619,,,619,619,619,619,619,619,619,619,,619,619,619", ",619,619,619,619,619,,,,,,,,,,,,,,,,,,,,619,,,619,,,619,619,,,619,,619", ",,,619,,,,,,,,,619,,,,,619,619,619,619,,619,619,619,619,,,,,619,619", ",,,620,620,620,619,620,619,619,619,620,620,,,,620,,620,620,620,620,620", "620,620,,,,,,620,620,620,620,620,620,620,,,620,,,,,,,620,,,620,620,620", "620,620,620,620,620,,620,620,620,,620,620,620,620,620,,,,,,,,,,,,,,", ",,,,,620,,,620,,,620,620,,,620,,,,,,620,,,,,,,,,620,,,,,620,620,620", "620,,620,620,620,620,,,,,620,620,,,,623,623,623,620,623,620,620,620", "623,623,,,,623,,623,623,623,623,623,623,623,,,,,,623,623,623,623,623", "623,623,,,623,,,,,,,623,,,623,623,623,623,623,623,623,623,623,623,623", "623,,623,623,623,623,623,,,,,,,,,,,,,,,,,,,,623,,,623,,,623,623,,,623", ",623,,623,,623,,,623,,,,,,623,,,,,623,623,623,623,,623,623,623,623,", ",,,623,623,,,,624,624,624,623,624,623,623,623,624,624,,,,624,,624,624", "624,624,624,624,624,,,,,,624,624,624,624,624,624,624,,,624,,,,,,,624", ",,624,624,624,624,624,624,624,624,624,624,624,624,,624,624,624,624,624", ",,,,,,,,,,,,,,,,,,,624,,,624,,,624,624,,,624,,,,624,,624,,,624,,,,,", "624,,,,,624,624,624,624,,624,624,624,624,,,,,624,624,,,,625,625,625", "624,625,624,624,624,625,625,,,,625,,625,625,625,625,625,625,625,,,,", ",625,625,625,625,625,625,625,,,625,,,,,,,625,,,625,625,625,625,625,625", "625,625,,625,625,625,,625,625,625,625,625,,,,,,,,,,,,,,,,,,,,625,,,625", ",,625,625,,,625,,,,,,625,,,,,,,,,625,,,,,625,625,625,625,,625,625,625", "625,,,,,625,625,,,,626,626,626,625,626,625,625,625,626,626,,,,626,,626", "626,626,626,626,626,626,,,,,,626,626,626,626,626,626,626,,,626,,,,,", ",626,,,626,626,626,626,626,626,626,626,,626,626,626,,626,626,626,626", "626,,,,,,,,,,,,,,,,,,,,626,,,626,,,626,626,,,626,,,,,,626,,,,,,,,,626", ",,,,626,626,626,626,,626,626,626,626,,,,,626,626,,,,630,630,630,626", "630,626,626,626,630,630,,,,630,,630,630,630,630,630,630,630,,,,,,630", "630,630,630,630,630,630,,,630,,,,,,,630,,,630,630,630,630,630,630,630", "630,,630,630,630,,630,630,630,630,630,,,,,,,,,,,,,,,,,,,,630,,,630,", ",630,630,,,630,,,,,,630,,,,,,,,,630,,,,,630,630,630,630,,630,630,630", "630,,,,,630,630,,,,631,631,631,630,631,630,630,630,631,631,,,,631,,631", "631,631,631,631,631,631,,,,,,631,631,631,631,631,631,631,,,631,,,,,", ",631,,,631,631,631,631,631,631,631,631,,631,631,631,,631,631,631,631", "631,,,,,,,,,,,,,,,,,,,,631,,,631,,,631,631,,,631,,,,,,631,,,,,,,,,631", ",,,,631,631,631,631,,631,631,631,631,,,,,631,631,,,,634,634,634,631", "634,631,631,631,634,634,,,,634,,634,634,634,634,634,634,634,,,,,,634", "634,634,634,634,634,634,,,634,,,,,,,634,,,634,634,634,634,634,634,634", "634,,634,634,634,,634,634,634,634,634,,,,,,,,,,,,,,,,,,,,634,,,634,", ",634,634,,,634,,,,,,634,,,,,,,,,634,,,,,634,634,634,634,,634,634,634", "634,,,,,634,634,,,,635,635,635,634,635,634,634,634,635,635,,,,635,,635", "635,635,635,635,635,635,,,,,,635,635,635,635,635,635,635,,,635,,,,,", ",635,,,635,635,635,635,635,635,635,635,,635,635,635,,635,635,635,635", "635,,,,,,,,,,,,,,,,,,,,635,,,635,,,635,635,,,635,,,,,,635,,,,,,,,,635", ",,,,635,635,635,635,,635,635,635,635,,,,,635,635,,,,659,659,659,635", "659,635,635,635,659,659,,,,659,,659,659,659,659,659,659,659,,,,,,659", "659,659,659,659,659,659,,,659,,,,,,,659,,,659,659,659,659,659,659,659", "659,,659,659,659,,659,659,659,659,659,,,,,,,,,,,,,,,,,,,,659,,,659,", ",659,659,,,659,,,,,,659,,,,,,,,,659,,,,,659,659,659,659,,659,659,659", "659,,,,,659,659,,,,662,662,662,659,662,659,659,659,662,662,,,,662,,662", "662,662,662,662,662,662,,,,,,662,662,662,662,662,662,662,,,662,,,,,", ",662,,,662,662,662,662,662,662,662,662,,662,662,662,,662,662,662,662", "662,,,,,,,,,,,,,,,,,,,,662,,,662,,,662,662,,,662,,,,,,662,,,,,,,,,662", ",,,,662,662,662,662,,662,662,662,662,,,,,662,662,,,,666,666,666,662", "666,662,662,662,666,666,,,,666,,666,666,666,666,666,666,666,,,,,,666", "666,666,666,666,666,666,,,666,,,,,,,666,,,666,666,666,666,666,666,666", "666,,666,666,666,,666,666,,,666,,,,,,,,,,,,,,,,,,,,666,,,666,,,666,666", ",,666,,,,,,,,,,,,,,,,,,,,666,666,666,666,,666,666,666,666,,,,,666,666", ",,,677,677,677,666,677,666,666,666,677,677,,,,677,,677,677,677,677,677", "677,677,,,,,,677,677,677,677,677,677,677,,,677,,,,,,,677,,,677,677,677", "677,677,677,677,677,,677,677,677,,677,677,,,677,,,,,,,,,,,,,,,,,,,,677", ",,677,,,677,677,,,677,,,,,,,,,,,,,,,,,,,,677,677,677,677,,677,677,677", "677,,,,,677,677,,,,682,682,682,677,682,677,677,677,682,682,,,,682,,682", "682,682,682,682,682,682,,,,,,682,682,682,682,682,682,682,,,682,,,,,", ",682,,,682,682,682,682,682,682,682,682,,682,682,682,,682,682,682,682", "682,,,,,,,,,,,,,,,,,,,,682,,,682,,,682,682,,,682,,682,,,,682,,,,,,,", ",682,,,,,682,682,682,682,,682,682,682,682,,,,,682,682,,,,699,699,699", "682,699,682,682,682,699,699,,,,699,,699,699,699,699,699,699,699,,,,", ",699,699,699,699,699,699,699,,,699,,,,,,,699,,,699,699,699,699,699,699", "699,699,,699,699,699,,699,699,699,699,699,,,,,,,,,,,,,,,,,,,,699,,,699", ",,699,699,,,699,,,,,,699,,,,,,,,,699,,,,,699,699,699,699,,699,699,699", "699,,,,,699,699,,,,725,725,725,699,725,699,699,699,725,725,,,,725,,725", "725,725,725,725,725,725,,,,,,725,725,725,725,725,725,725,,,725,,,,,", ",725,,,725,725,725,725,725,725,725,725,,725,725,725,,725,725,725,725", "725,,,,,,,,,,,,,,,,,,,,725,,,725,,,725,725,,,725,,,,,,725,,,,,,,,,725", ",,,,725,725,725,725,,725,725,725,725,,,,,725,725,,,,731,731,731,725", "731,725,725,725,731,731,,,,731,,731,731,731,731,731,731,731,,,,,,731", "731,731,731,731,731,731,,,731,,,,,,,731,,,731,731,731,731,731,731,731", "731,,731,731,731,,731,731,731,731,731,,,,,,,,,,,,,,,,,,,,731,,,731,", ",731,731,,,731,,,,,,731,,,,,,,,,731,,,,,731,731,731,731,,731,731,731", "731,,,,,731,731,,,,753,753,753,731,753,731,731,731,753,753,,,,753,,753", "753,753,753,753,753,753,,,,,,753,753,753,753,753,753,753,,,753,,,,,", ",753,,,753,753,753,753,753,753,753,753,,753,753,753,,753,753,753,753", "753,,,,,,,,,,,,,,,,,,,,753,,,753,,,753,753,,,753,,,,,,753,,,,,,,,,753", ",,,,753,753,753,753,,753,753,753,753,,,,,753,753,,,,755,755,755,753", "755,753,753,753,755,755,,,,755,,755,755,755,755,755,755,755,,,,,,755", "755,755,755,755,755,755,,,755,,,,,,,755,,,755,755,755,755,755,755,755", "755,,755,755,755,,755,755,755,755,755,,,,,,,,,,,,,,,,,,,,755,,,755,", ",755,755,,,755,,,,,,755,,,,,,,,,755,,,,,755,755,755,755,,755,755,755", "755,,,,,755,755,,,,769,769,769,755,769,755,755,755,769,769,,,,769,,769", "769,769,769,769,769,769,,,,,,769,769,769,769,769,769,769,,,769,,,,,", ",769,,,769,769,769,769,769,769,769,769,,769,769,769,,769,769,769,769", "769,,,,,,,,,,,,,,,,,,,,769,,,769,,,769,769,,,769,,,,,,769,,,,,,,,,769", ",,,,769,769,769,769,,769,769,769,769,,,,,769,769,,,,770,770,770,769", "770,769,769,769,770,770,,,,770,,770,770,770,770,770,770,770,,,,,,770", "770,770,770,770,770,770,,,770,,,,,,,770,,,770,770,770,770,770,770,770", "770,,770,770,770,,770,770,770,770,770,,,,,,,,,,,,,,,,,,,,770,,,770,", ",770,770,,,770,,,,,,770,,,,,,,,,770,,,,,770,770,770,770,,770,770,770", "770,,,,,770,770,,,,771,771,771,770,771,770,770,770,771,771,,,,771,,771", "771,771,771,771,771,771,,,,,,771,771,771,771,771,771,771,,,771,,,,,", ",771,,,771,771,771,771,771,771,771,771,,771,771,771,,771,771,771,771", "771,,,,,,,,,,,,,,,,,,,,771,,,771,,,771,771,,,771,,,,,,771,,,,,,,,,771", ",,,,771,771,771,771,,771,771,771,771,,,,,771,771,,,,772,772,772,771", "772,771,771,771,772,772,,,,772,,772,772,772,772,772,772,772,,,,,,772", "772,772,772,772,772,772,,,772,,,,,,,772,,,772,772,772,772,772,772,772", "772,,772,772,772,,772,772,772,772,772,,,,,,,,,,,,,,,,,,,,772,,,772,", ",772,772,,,772,,,,,,772,,,,,,,,,772,,,,,772,772,772,772,,772,772,772", "772,,,,,772,772,,,,774,774,774,772,774,772,772,772,774,774,,,,774,,774", "774,774,774,774,774,774,,,,,,774,774,774,774,774,774,774,,,774,,,,,", ",774,,,774,774,774,774,774,774,774,774,,774,774,774,,774,774,774,774", "774,,,,,,,,,,,,,,,,,,,,774,,,774,,,774,774,,,774,,,,,,774,,,,,,,,,774", ",,,,774,774,774,774,,774,774,774,774,,,,,774,774,,,,786,786,786,774", "786,774,774,774,786,786,,,,786,,786,786,786,786,786,786,786,,,,,,786", "786,786,786,786,786,786,,,786,,,,,,,786,,,786,786,786,786,786,786,786", "786,,786,786,786,,786,786,,,786,,,,,,,,,,,,,,,,,,,,786,,,786,,,786,786", ",,786,,,,,,,,,,,,,,,,,,,,786,786,786,786,,786,786,786,786,,,,,786,786", ",,,836,836,836,786,836,786,786,786,836,836,,,,836,,836,836,836,836,836", "836,836,,,,,,836,836,836,836,836,836,836,,,836,,,,,,,836,,,836,836,836", "836,836,836,836,836,,836,836,836,,836,836,836,836,836,,,,,,,,,,,,,,", ",,,,,836,,,836,,,836,836,,,836,,,,,,836,,,,,,,,,836,,,,,836,836,836", "836,,836,836,836,836,,,,,836,836,,,,841,841,841,836,841,836,836,836", "841,841,,,,841,,841,841,841,841,841,841,841,,,,,,841,841,841,841,841", "841,841,,,841,,,,,,,841,,,841,841,841,841,841,841,841,841,,841,841,841", ",841,841,841,841,841,,,,,,,,,,,,,,,,,,,,841,,,841,,,841,841,,,841,,841", ",,,841,,,,,,,,,841,,,,,841,841,841,841,,841,841,841,841,,,,,841,841", ",,,858,858,858,841,858,841,841,841,858,858,,,,858,,858,858,858,858,858", "858,858,,,,,,858,858,858,858,858,858,858,,,858,,,,,,,858,,,858,858,858", "858,858,858,858,858,858,858,858,858,,858,858,858,858,858,,,,,,,,,,,", ",,,,,,,,858,,,858,,,858,858,,,858,,,,858,,858,,,858,,,,,,858,,,,,858", "858,858,858,,858,858,858,858,,,,,858,858,,,,859,859,859,858,859,858", "858,858,859,859,,,,859,,859,859,859,859,859,859,859,,,,,,859,859,859", "859,859,859,859,,,859,,,,,,,859,,,859,859,859,859,859,859,859,859,,859", "859,859,,859,859,859,859,859,,,,,,,,,,,,,,,,,,,,859,,,859,,,859,859", ",,859,,,,,,859,,,,,,,,,859,,,,,859,859,859,859,,859,859,859,859,,,,", "859,859,,,,873,873,873,859,873,859,859,859,873,873,,,,873,,873,873,873", "873,873,873,873,,,,,,873,873,873,873,873,873,873,,,873,,,,,,,873,,,873", "873,873,873,873,873,873,873,,873,873,873,,873,873,,,873,,,,,,,,,,,,", ",,,,,,,873,,,873,,,873,873,,,873,,,,,,,,,,,,,,,,,,,,873,873,873,873", ",873,873,873,873,,,,,873,873,,,,885,885,885,873,885,873,873,873,885", "885,,,,885,,885,885,885,885,885,885,885,,,,,,885,885,885,885,885,885", "885,,,885,,,,,,,885,,,885,885,885,885,885,885,885,885,,885,885,885,", "885,885,,,885,,,,,,,,,,,,,,,,,,,,885,,,885,,,885,885,,,885,,,,,,,,,", ",,,,,,,,,,885,885,885,885,,885,885,885,885,,,,,885,885,,,,982,982,982", "885,982,885,885,885,982,982,,,,982,,982,982,982,982,982,982,982,,,,", ",982,982,982,982,982,982,982,,,982,,,,,,,982,,,982,982,982,982,982,982", "982,982,982,982,982,982,,982,982,982,982,982,,,,,,,,,,,,,,,,,,,,982", ",,982,,,982,982,,,982,,982,,982,,982,,,982,,,,,,982,,,,,982,982,982", "982,,982,982,982,982,,,,,982,982,,,,,,,982,,982,982,982,8,8,8,8,8,8", "8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,,,,8,8,8,8,8,8,8,8,8,8,,,,,,8,8", "8,8,8,8,8,8,8,8,,8,,,,,,,,8,8,,8,8,8,8,8,8,8,,,8,8,,,,8,8,8,8,,,,,,", ",,,,,,,8,8,,8,8,8,8,8,8,8,8,8,8,8,8,,,8,8,,,,,,,,,,,,,,8,9,9,9,9,9,9", "9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,,,,9,9,9,9,9,9,9,9,9,9,,,,,,9,9", "9,9,9,9,9,9,9,,,9,,,,,,,,9,9,,9,9,9,9,9,9,9,,,9,9,,,,9,9,9,9,,,,,,,", ",,,,,,9,9,,9,9,9,9,9,9,9,9,9,9,9,9,,,9,9,,,,,,,,,,,,,,9,397,397,397", "397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397,397", "397,397,397,397,,,,397,397,397,397,397,397,397,397,397,397,,,,,,397", "397,397,397,397,397,397,397,397,,,397,,,,,,,,397,397,,397,397,397,397", "397,397,397,,,397,397,,,,397,397,397,397,,,,,,,,,,,,,,397,397,,397,397", "397,397,397,397,397,397,397,397,397,397,,,397,397,,,,,,,,,,,,,,397,616", "616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616,616", "616,616,616,616,616,616,,,,616,616,616,616,616,616,616,616,616,616,", ",,,,616,616,616,616,616,616,616,616,616,,,616,,,,,,,,616,616,,616,616", "616,616,616,616,616,,,616,616,,,,616,616,616,616,,,,,,,,,,,,,,616,616", ",616,616,616,616,616,616,616,616,616,616,616,616,,,616,616,,,,,,,,,", ",,,,616,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71", "71,71,71,71,,,,71,71,71,71,71,71,71,71,71,71,,,,,,71,71,71,71,71,71", "71,71,71,71,71,71,,71,,,,,,71,71,,71,71,71,71,71,71,71,,,71,71,,,,71", "71,71,71,,,,,,71,,,,,,,,71,71,,71,71,71,71,71,71,71,71,71,71,71,71,", ",71,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737", "737,737,737,737,737,737,737,737,,,,737,737,737,737,737,737,737,737,737", "737,,,,,,737,737,737,737,737,737,737,737,737,,,737,,,,,,,,737,737,,737", "737,737,737,737,737,737,,,737,737,,,,737,737,737,737,,,,,,,,,,,,,,737", "737,,737,737,737,737,737,737,737,737,737,737,737,737,210,210,737,,210", ",,,,,,,210,210,,210,210,210,210,210,210,210,,,210,210,,,,210,210,210", "210,,,,,,210,,,,,,,,210,210,,210,210,210,210,210,210,210,210,210,210", "210,210,211,211,210,,211,,,,,,,,211,211,,211,211,211,211,211,211,211", ",,211,211,,,,211,211,211,211,,,,,,211,,,,,,,,211,211,,211,211,211,211", "211,211,211,211,211,211,211,211,261,261,211,,261,,,,,,,,261,261,,261", "261,261,261,261,261,261,,,261,261,,,,261,261,261,261,,,,,,,,,,,,,,261", "261,,261,261,261,261,261,261,261,261,261,261,261,261,442,442,261,,442", ",,,,,,,442,442,,442,442,442,442,442,442,442,,,442,442,,,,442,442,442", "442,,,,,,442,,,,,,,,442,442,,442,442,442,442,442,442,442,442,442,442", "442,442,443,443,442,,443,,,,,,,,443,443,,443,443,443,443,443,443,443", ",,443,443,,,,443,443,443,443,,,,,,443,,,,,,,,443,443,,443,443,443,443", "443,443,443,443,443,443,443,443,509,509,443,,509,,,,,,,,509,509,,509", "509,509,509,509,509,509,,,509,509,,,,509,509,509,509,,,,,,509,,,,,,", ",509,509,,509,509,509,509,509,509,509,509,509,509,509,509,510,510,509", ",510,,,,,,,,510,510,,510,510,510,510,510,510,510,,,510,510,,,,510,510", "510,510,,,,,,510,,,,,,,,510,510,,510,510,510,510,510,510,510,510,510", "510,510,510,519,519,510,,519,,,,,,,,519,519,,519,519,519,519,519,519", "519,,,519,519,,,,519,519,519,519,,,,,,519,,,,,,,,519,519,,519,519,519", "519,519,519,519,519,519,519,519,519,520,520,519,,520,,,,,,,,520,520", ",520,520,520,520,520,520,520,,,520,520,,,,520,520,520,520,,,,,,520,", ",,,,,,520,520,,520,520,520,520,520,520,520,520,520,520,520,520,578,578", "520,,578,,,,,,,,578,578,,578,578,578,578,578,578,578,,,578,578,,,,578", "578,578,578,,,,,,578,,,,,,,,578,578,,578,578,578,578,578,578,578,578", "578,578,578,578,579,579,578,,579,,,,,,,,579,579,,579,579,579,579,579", "579,579,,,579,579,,,,579,579,579,579,,,,,,579,,,,,,,,579,579,,579,579", "579,579,579,579,579,579,579,579,579,579,585,585,579,,585,,,,,,,,585", "585,,585,585,585,585,585,585,585,,,585,585,,,,585,585,585,585,,,,,,585", ",,,,,,,585,585,,585,585,585,585,585,585,585,585,585,585,585,585,586", "586,585,,586,,,,,,,,586,586,,586,586,586,586,586,586,586,,,586,586,", ",,586,586,586,586,,,,,,586,,,,,,,,586,586,,586,586,586,586,586,586,586", "586,586,586,586,586,937,937,586,,937,,,,,,,,937,937,,937,937,937,937", "937,937,937,,,937,937,,,,937,937,937,937,,,,,,937,,,,,,,,937,937,,937", "937,937,937,937,937,937,937,937,937,937,937,983,983,937,,983,,,,,,,", "983,983,,983,983,983,983,983,983,983,,,983,983,,,,983,983,983,983,,", ",,,983,,,,,,,,983,983,,983,983,983,983,983,983,983,983,983,983,983,983", "984,984,983,,984,,,,,,,,984,984,,984,984,984,984,984,984,984,,,984,984", ",,,984,984,984,984,,,,,,984,,,,,,,,984,984,,984,984,984,984,984,984", "984,984,984,984,984,984,,536,984,536,536,536,536,536,,693,,693,693,693", "693,693,536,,,,,,,,693,,695,,695,695,695,695,695,,,,,,536,,,695,,,,", "693,536,536,536,536,,,,536,693,693,693,693,,,,693,695,,735,,735,735", "735,735,735,695,695,695,695,,,,695,735,,736,,736,736,736,736,736,,864", ",864,864,864,864,864,736,,,,,735,,,864,,,,,,735,735,735,735,,,,735,736", ",,,,,,,864,736,736,736,736,,,,736,864,864,864,864,,,866,864,866,866", "866,866,866,,892,,892,892,892,892,892,866,,,,,,,,892,,896,,896,896,896", "896,896,,,,,,866,,,896,,,,,892,866,866,866,866,,,,866,892,892,892,892", ",,,892,896,,898,,898,898,898,898,898,,,896,896,,,,896,898,,968,,968", "968,968,968,968,970,,970,970,970,970,970,,968,,,,,898,,970,,972,,972", "972,972,972,972,898,898,,,,898,968,,972,,,,,970,,968,968,968,968,,,", "968,,970,970,,,,970,972,,974,,974,974,974,974,974,,,972,972,,,,972,974", ",986,,986,986,986,986,986,1012,,1012,1012,1012,1012,1012,,986,,,,,974", ",1012,,,,,,,,,974,974,,,,974,986,,,,,,,1012,,,,986,986,,,,986,,1012", "1012,,,,1012"]; - racc_action_check = (arr = Opal.const_get_qualified('::', 'Array').$new(25163, nil)); - idx = 0; - $send(clist, 'each', [], (TMP_Ruby23_5 = function(str){var self = TMP_Ruby23_5.$$s || this, TMP_6; -if (str == null) str = nil; - return $send(str.$split(",", -1), 'each', [], (TMP_6 = function(i){var self = TMP_6.$$s || this, $writer = nil; -if (i == null) i = nil; - - if ($truthy(i['$empty?']())) { - } else { - - $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)]; - }; - return (idx = $rb_plus(idx, 1));}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6))}, TMP_Ruby23_5.$$s = self, TMP_Ruby23_5.$$arity = 1, TMP_Ruby23_5)); - racc_action_pointer = [1637, 33, nil, 81, nil, 5976, 1388, -51, 23086, 23214, -11, nil, 50, 117, 572, -81, 105, 309, nil, -71, 6107, 2057, 230, nil, -62, nil, -8, 742, 852, 6238, 6369, 6500, nil, 1777, 6631, 6762, nil, 134, 282, 352, 247, 332, 6901, 7032, 7163, 191, 574, nil, nil, nil, nil, nil, nil, nil, nil, nil, 962, nil, -80, 7294, 7425, 4, nil, 7556, 7687, nil, nil, 7818, 7957, 8088, 8219, 23598, nil, nil, nil, nil, nil, 223, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 0, nil, nil, 112, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 354, nil, 8358, nil, nil, nil, nil, 8497, 8628, 8759, 8890, 9029, 1917, nil, 576, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 223, nil, 2057, 9160, 9291, 9422, 23772, 23833, nil, nil, 9553, 9684, 9815, 9946, 10077, 10208, nil, nil, 576, -54, 138, 307, 166, 241, 309, nil, 10339, 2197, 310, 10470, 10601, 10732, 10863, 10994, 11125, 11256, 11387, 11518, 11649, 11780, 11911, 12042, 12173, 12304, 12435, 12566, 12697, 12828, 12959, 13090, 13221, 13352, 13483, 13614, 13745, nil, nil, 23894, nil, nil, 318, 13876, 14007, nil, nil, nil, nil, nil, nil, nil, 14138, nil, 2197, nil, 297, 325, nil, 14269, 373, 14400, nil, nil, 14531, 14662, nil, nil, 228, nil, 14801, 1441, 358, 338, 2337, 353, 408, 377, 14932, 2477, 615, 645, 714, 473, 790, nil, 441, 417, 33, nil, nil, nil, 476, 360, 453, 15071, nil, 472, 522, 822, nil, 526, nil, 15202, 2617, 15333, 465, nil, -73, 146, 506, 489, 387, 523, nil, nil, 1505, 346, -1, 11, 15464, 15595, 298, 603, 498, -18, 11, 824, 584, 25, 618, nil, nil, 342, 434, -21, nil, 900, nil, 541, 15726, nil, nil, nil, 194, 230, 379, 413, 486, 510, 577, 578, 582, nil, 619, nil, 15857, nil, 272, 456, 459, 465, 497, -41, -35, 501, nil, nil, nil, nil, nil, nil, nil, nil, 537, 23342, nil, nil, nil, nil, 544, nil, nil, 535, 15988, 551, nil, nil, 1777, 563, nil, 568, 590, 481, 552, 1098, nil, nil, nil, 222, 334, 638, nil, nil, 1230, 1366, nil, 2337, nil, 587, nil, nil, 1637, nil, nil, nil, nil, -35, nil, 650, 23955, 24016, 16119, 197, 16250, 16381, 16512, 4017, 4157, 623, 662, 677, 678, 679, 682, 1518, 5697, 1470, 4297, 1181, 1315, 4437, 4577, 4717, 4857, 4997, 5137, 5277, 1051, 1249, 5417, 5557, 2477, -54, 1502, nil, nil, nil, nil, 629, nil, -53, -10, 636, nil, nil, 16643, nil, 16774, nil, 16905, nil, 363, nil, nil, nil, 17044, 1507, 2757, 642, 640, nil, nil, 644, 17183, 650, 17314, 24077, 24138, 930, 704, nil, 17445, 661, nil, 17576, 17707, 24199, 24260, 2617, 17838, 788, 790, 570, 715, nil, 17969, nil, nil, 18100, nil, nil, nil, nil, 24749, nil, 689, 694, nil, 695, 697, 700, nil, nil, nil, nil, nil, nil, nil, nil, 691, 749, nil, nil, 18231, nil, nil, nil, 788, nil, nil, nil, 790, nil, nil, 792, 2897, 845, nil, 3037, 62, 147, 842, 853, 18362, 18493, 24321, 24382, 27, nil, nil, 932, nil, 24443, 24504, 18624, nil, nil, 250, 3177, 774, nil, -33, nil, nil, nil, 717, nil, nil, nil, 751, nil, nil, 388, nil, 390, nil, nil, 737, nil, 742, nil, nil, nil, 23470, nil, 747, 18755, 18886, 619, 787, 19017, 19148, 19279, 19410, 786, nil, nil, 19541, 19672, 789, nil, 19803, 19934, nil, nil, 217, 301, 466, 604, 756, 1917, 755, nil, 1466, nil, 3317, 863, 6, 160, nil, 3457, 3597, nil, 763, nil, 810, 20065, nil, nil, 20196, nil, 785, -80, 20327, 767, nil, 772, 123, 180, 814, 248, 1106, 815, 772, 20458, 2757, 846, 214, 900, 20589, nil, 786, nil, 396, 37, 803, 697, nil, nil, 537, 24757, nil, 24774, nil, 6809, nil, 20720, nil, 856, nil, 804, 335, 808, nil, nil, nil, nil, 650, nil, 926, nil, nil, nil, nil, 934, nil, 26, 817, 68, 93, 151, 185, 20851, 1066, 1143, nil, 819, 3737, 20982, nil, 942, 3877, 24813, 24830, 23711, nil, nil, nil, nil, nil, nil, 4017, nil, nil, nil, nil, nil, nil, nil, 823, 21113, 2897, 21244, nil, 834, nil, 3037, nil, 3177, nil, nil, 3317, nil, 3457, nil, 3597, 21375, 21506, 21637, 21768, 343, 21899, 835, 839, nil, 840, 847, 848, nil, 877, 861, 857, 852, 22030, nil, nil, 987, nil, nil, 4157, 884, 991, nil, nil, nil, nil, 873, 236, nil, nil, 1000, nil, 4297, 877, 925, nil, nil, 923, nil, nil, 4437, 4577, 925, 884, nil, nil, nil, 886, 887, nil, 888, 889, nil, 891, nil, nil, 896, 1162, 914, 735, nil, 1039, nil, 22161, 1042, 4717, 4857, nil, 22292, 4997, 152, 181, nil, 1044, 327, 5137, nil, 1045, 927, 366, nil, 934, 930, nil, 3737, 22423, 22554, 3877, 1022, nil, nil, 24838, nil, 24890, nil, 8266, nil, nil, 957, 1076, 22685, 934, 1022, nil, 971, nil, nil, nil, 5277, nil, nil, 32, 22816, nil, nil, 973, 1081, nil, nil, 24898, nil, 14979, nil, 24915, nil, 24954, nil, nil, nil, nil, 398, 1028, 967, nil, 33, nil, 1092, 1093, nil, 303, nil, nil, nil, 1094, nil, nil, nil, 1020, nil, 980, nil, nil, 982, 985, 986, 987, nil, 995, nil, 421, nil, nil, nil, 966, 24565, nil, nil, nil, 5417, 34, 35, 1003, 1077, 36, nil, nil, nil, 1003, 1009, 1011, 1013, 1014, 1223, 1015, 1437, 5557, nil, nil, nil, nil, nil, 5697, nil, 5837, nil, 24971, nil, 24978, nil, 24995, nil, 25034, nil, nil, nil, 1332, 1062, 1063, 1151, 22947, 24626, 24687, 42, 25051, nil, nil, nil, nil, 4097, 1027, 719, 1152, 1153, 1030, 1046, 1051, 1053, nil, nil, 1059, 98, 102, 111, 138, 1060, 1064, nil, nil, nil, 25058, nil, nil, nil, nil, 145, nil, 1069, nil]; - racc_action_default = [-3, -596, -1, -582, -4, -596, -7, -596, -596, -596, -596, -29, -596, -596, -596, -279, -596, -40, -43, -584, -596, -48, -50, -51, -52, -56, -256, -256, -256, -293, -328, -329, -68, -11, -72, -80, -82, -596, -486, -487, -596, -596, -596, -596, -596, -584, -237, -270, -271, -272, -273, -274, -275, -276, -277, -278, -570, -281, -283, -595, -560, -301, -389, -596, -596, -306, -309, -582, -596, -596, -596, -596, -330, -331, -427, -428, -429, -430, -431, -452, -434, -435, -454, -456, -439, -444, -448, -450, -466, -454, -468, -470, -471, -472, -473, -568, -475, -476, -569, -478, -479, -480, -481, -482, -483, -484, -485, -490, -491, -596, -2, -583, -591, -592, -593, -6, -596, -596, -596, -596, -596, -3, -17, -596, -111, -112, -113, -114, -115, -116, -117, -118, -119, -123, -124, -125, -126, -127, -128, -129, -130, -131, -132, -133, -134, -135, -136, -137, -138, -139, -140, -141, -142, -143, -144, -145, -146, -147, -148, -149, -150, -151, -152, -153, -154, -155, -156, -157, -158, -159, -160, -161, -162, -163, -164, -165, -166, -167, -168, -169, -170, -171, -172, -173, -174, -175, -176, -177, -178, -179, -180, -181, -182, -183, -184, -185, -186, -187, -188, -189, -190, -191, -192, -193, -22, -120, -11, -596, -596, -246, -596, -596, -580, -581, -596, -596, -596, -596, -596, -584, -585, -47, -596, -486, -487, -596, -279, -596, -596, -229, -596, -11, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -596, -396, -398, -596, -578, -579, -57, -246, -596, -300, -402, -411, -413, -63, -408, -64, -584, -65, -238, -251, -260, -260, -255, -596, -261, -596, -452, -562, -596, -596, -66, -67, -582, -12, -596, -15, -596, -70, -11, -584, -596, -73, -76, -11, -88, -89, -596, -596, -96, -293, -296, -584, -596, -328, -329, -332, -409, -596, -78, -596, -84, -290, -469, -596, -214, -215, -230, -596, -11, -596, -584, -239, -588, -588, -596, -596, -588, -596, -302, -303, -518, -49, -596, -596, -596, -596, -582, -596, -583, -486, -487, -596, -596, -279, -596, -342, -343, -106, -107, -596, -109, -596, -279, -494, -596, -486, -487, -321, -111, -112, -153, -154, -155, -171, -176, -183, -186, -323, -596, -558, -596, -432, -596, -596, -596, -596, -596, -596, -596, -596, 1021, -5, -594, -23, -24, -25, -26, -27, -596, -596, -19, -20, -21, -121, -596, -30, -39, -266, -596, -596, -265, -31, -196, -584, -247, -260, -260, -571, -572, -256, -406, -573, -574, -572, -571, -256, -405, -407, -573, -574, -37, -204, -38, -596, -41, -42, -194, -261, -44, -45, -46, -584, -299, -596, -596, -596, -246, -290, -596, -596, -596, -205, -206, -207, -208, -209, -210, -211, -212, -216, -217, -218, -219, -220, -221, -222, -223, -224, -225, -226, -227, -228, -231, -232, -233, -234, -584, -378, -256, -571, -572, -54, -58, -584, -257, -378, -378, -584, -295, -252, -596, -253, -596, -258, -596, -262, -596, -565, -567, -10, -583, -14, -3, -584, -69, -288, -85, -74, -596, -584, -246, -596, -596, -95, -596, -469, -596, -81, -86, -596, -596, -596, -596, -235, -596, -419, -596, -284, -596, -240, -590, -589, -242, -590, -291, -292, -561, -390, -518, -393, -557, -557, -501, -503, -503, -503, -517, -519, -520, -521, -522, -523, -524, -525, -526, -596, -528, -530, -532, -537, -539, -540, -542, -547, -549, -550, -552, -553, -554, -596, -11, -333, -334, -11, -596, -596, -596, -596, -596, -246, -596, -596, -290, -314, -106, -107, -108, -596, -596, -246, -317, -492, -596, -11, -496, -325, -584, -433, -453, -458, -596, -460, -436, -455, -596, -457, -438, -596, -441, -596, -443, -446, -596, -447, -596, -467, -8, -18, -596, -28, -269, -596, -596, -410, -596, -248, -250, -596, -596, -59, -245, -403, -596, -596, -61, -404, -596, -596, -298, -586, -571, -572, -571, -572, -584, -194, -596, -379, -584, -381, -11, -53, -399, -378, -243, -11, -11, -294, -260, -259, -263, -596, -563, -564, -596, -13, -596, -71, -596, -77, -83, -584, -571, -572, -244, -575, -94, -596, -79, -596, -203, -213, -584, -595, -595, -282, -584, -287, -588, -596, -584, -596, -499, -500, -596, -596, -510, -596, -513, -596, -515, -596, -344, -596, -346, -348, -355, -584, -531, -541, -551, -555, -595, -335, -595, -307, -336, -337, -310, -596, -313, -596, -584, -571, -572, -575, -289, -596, -106, -107, -110, -584, -11, -596, -319, -596, -11, -518, -518, -596, -559, -459, -462, -463, -464, -465, -11, -437, -440, -442, -445, -449, -451, -122, -267, -596, -197, -596, -587, -260, -33, -199, -34, -200, -60, -35, -202, -36, -201, -62, -195, -596, -596, -596, -596, -410, -596, -557, -557, -360, -362, -362, -362, -377, -596, -584, -383, -526, -534, -535, -545, -596, -401, -400, -11, -596, -596, -254, -264, -566, -16, -75, -410, -87, -297, -595, -340, -11, -420, -595, -421, -422, -596, -241, -391, -11, -11, -596, -557, -538, -556, -502, -503, -503, -529, -503, -503, -548, -503, -526, -543, -584, -596, -353, -596, -527, -596, -338, -596, -596, -11, -11, -312, -596, -11, -410, -596, -410, -596, -596, -11, -322, -596, -584, -596, -326, -596, -268, -32, -198, -249, -596, -236, -596, -358, -359, -368, -370, -596, -373, -596, -375, -380, -596, -596, -596, -533, -596, -397, -596, -412, -414, -9, -11, -426, -341, -596, -596, -424, -285, -596, -596, -392, -498, -596, -506, -596, -508, -596, -511, -596, -514, -516, -345, -347, -351, -596, -356, -304, -596, -305, -596, -596, -263, -595, -315, -318, -493, -596, -324, -495, -497, -496, -461, -557, -536, -361, -362, -362, -362, -362, -546, -362, -382, -584, -385, -387, -388, -544, -596, -290, -55, -425, -11, -486, -487, -596, -596, -279, -423, -394, -395, -503, -503, -503, -503, -349, -596, -354, -596, -11, -308, -311, -415, -416, -417, -11, -320, -11, -357, -596, -365, -596, -367, -596, -371, -596, -374, -376, -384, -596, -289, -575, -419, -246, -596, -596, -290, -596, -504, -507, -509, -512, -596, -352, -595, -596, -596, -362, -362, -362, -362, -386, -418, -584, -571, -572, -575, -289, -503, -350, -339, -316, -327, -596, -363, -366, -369, -372, -410, -505, -362, -364]; - clist = ["218,277,277,277,14,375,278,278,278,14,313,313,336,411,268,272,260,122", "205,2,681,210,329,575,222,433,325,6,127,127,834,262,6,222,222,222,330", "14,304,304,130,130,568,571,313,313,313,340,341,261,489,344,660,299,132", "132,417,423,515,264,271,273,221,480,657,111,657,222,222,481,408,222", "349,359,359,537,734,114,430,320,279,279,279,527,530,690,691,534,825", "822,584,127,110,660,316,115,440,713,716,902,391,392,393,394,295,297", "803,476,782,380,331,334,275,288,289,14,779,1,705,648,222,222,222,222", "14,14,544,653,654,621,780,929,381,933,935,361,365,837,6,387,396,114", "905,605,607,880,663,395,6,204,815,486,354,404,397,651,345,616,332,650", "524,377,333,337,352,588,376,326,327,684,328,342,838,343,502,839,725", "821,964,823,730,277,848,591,407,489,660,592,601,603,606,606,407,737", "601,920,781,783,418,657,657,389,932,535,812,338,687,475,483,484,14,222", "222,222,956,961,807,884,222,222,222,222,222,222,379,382,902,383,384", "442,385,427,386,929,739,14,744,277,277,1000,935,731,820,278,817,871", "277,667,642,403,409,278,717,923,,676,428,432,,,822,,,,,992,829,,,222", "222,,,688,,,313,26,222,,,,26,,,825,,,417,423,512,,,313,822,792,14,26", "268,,14,1008,272,,304,14,26,26,26,526,26,509,669,1009,494,,636,279,728", "499,,304,862,863,544,279,572,573,519,,14,222,,,925,,516,962,,,26,26", ",,26,,222,222,926,482,927,,498,513,,672,578,485,652,505,773,,655,891", "114,672,222,295,501,913,822,,295,507,,,950,,665,497,,720,222,262,668", ",,800,26,,,729,622,26,26,26,26,26,26,,,593,,,966,628,615,799,,,,633", "747,,747,298,277,127,114,,660,842,,,672,733,762,795,,130,418,767,672", "574,657,13,,,843,811,13,,,132,433,,,845,222,,627,,996,,,644,632,,,,", "339,339,427,628,339,,,13,967,,738,851,852,,,,,1001,,277,,313,26,26,26", "26,,,,313,26,26,26,26,26,26,418,,,,,14,,14,,,418,26,649,304,,222,,339", "339,339,339,304,664,,,,544,544,516,222,6,795,,427,,,516,,,,,,656,427", ",26,26,,808,13,,,277,,26,,719,,13,13,802,,277,,,,,846,,418,,850,26,", ",14,26,418,14,,,26,686,,222,833,,,,941,,402,,963,222,,,,14,700,,,427", ",791,,26,26,427,,,,958,,,,298,436,437,438,439,,26,26,,,622,,751,,784", ",222,222,,,,222,222,127,,222,26,,13,313,790,,809,714,714,130,,622,,14", "313,,26,,14,14,407,628,,132,633,732,810,13,758,760,784,304,853,763,765", "757,,432,,298,,,304,916,298,15,516,,,552,15,,,,,,,801,,,,,622,,,,,901", ",,844,622,,,,,847,,15,306,306,1017,26,,,,525,,13,918,222,,13,,,14,222", "13,,14,,339,339,,,700,,,831,14,,,,351,360,360,,,127,16,222,590,13,313", "16,784,,882,,,,886,,,,,26,594,26,,,,,,,,26,1002,,,,874,16,,,,15,14,856", ",26,995,335,,,15,15,,,,14,,,,,,,,14,14,,907,,,,,,353,,,672,,,,,,,,,776", ",222,,14,14,,26,14,,26,313,,,14,,26,,,,,,,313,,,26,,,,26,16,,38,,700", ",700,38,936,16,16,,816,,,,14,552,,,944,15,,,,,,,,,,,,26,26,38,302,302", "26,26,,,26,,977,,15,,,714,,680,915,,,,26,919,,,,26,26,,13,,13,,,,347", "363,363,363,,,14,954,700,405,,710,983,,712,277,,435,427,,,,,14,,16,", ",,14,778,14,418,,431,,,15,,,,15,,38,622,306,15,222,,,16,,38,38,,,,785", ",700,,700,306,26,13,427,,13,26,26,,15,26,,,,,,,824,,826,26,491,,493", ",13,495,496,,789,,26,,700,793,794,,,,,,,552,,552,,,,,16,,,922,16,,776", ",776,16,776,,694,696,698,,,,,26,,,,,,,,38,,,,,26,13,16,552,552,,13,13", "26,26,,777,,,,,,,,,38,,,,,,,,,,,26,,26,26,,,26,,,,339,,26,854,,,339", ",,,,,,818,,,818,,,,,,,,618,,,,,,,865,867,869,,26,,776,,776,38,776,13", "776,38,,13,,302,38,,877,,,,,13,,,15,,15,,,883,302,928,306,930,,,,888", "889,38,306,,,,,,776,,,786,,,,,,,785,951,785,952,26,953,909,910,,,912", ",,13,,658,,335,,661,339,26,,,,,13,26,552,26,,,,,13,13,,,15,,,15,16,", "16,26,,,,940,,,,,,658,,,335,13,13,15,,13,,,,,743,13,,,,39,,,,997,39", "998,,999,,706,,,,969,971,973,975,,976,,818,1007,,777,,777,,777,13,435", "785,,39,303,303,981,,,16,,,16,,,15,,,1019,,15,15,,993,893,895,,897,899", "994,900,,16,306,,,,,348,364,364,364,,752,306,,,658,335,,,,38,,38,1013", "1014,1015,1016,13,302,,,,,,,,302,,,,,,,431,13,,1020,,,39,13,796,13,", "797,,,16,39,39,,,16,16,,15,777,,777,15,777,,777,786,806,,786,,786,15", "786,,,,,,,,,,38,828,,38,,,,,,,,,,,,,,,,,777,,,38,,,,,,,,360,987,988", "989,990,,15,,,,,,,,,,,,16,15,,,16,39,855,,,15,15,,,,16,,,,,,,,,,,,,", ",,39,38,,,15,15,38,38,15,,1018,786,,786,15,786,,786,,302,,,,,,,,,,,302", ",16,,,,,,,360,,,,,,16,,15,,,,946,,16,16,786,,,,,,39,,,911,39,,,,303", "39,,,,,,,,16,16,,335,16,38,,,303,38,16,,,,,,,39,,38,,,,,,,,,,15,,,,", ",,,,,,,,,16,,,15,947,,,,,15,,15,,,,,,,363,,,,,,38,,,,,,,,,,,,,38,,,", ",,,,38,38,,,,,,,,,,,,,,16,,,,,,,,,,38,38,,,38,,,16,,,38,,,16,,16,,,", ",,,,,,,,,,,,,,,,363,,,,,,,,38,,,,942,,,,,,,,,,,,,,,,,,,,,,,,,,,,,39", ",39,,,,,,303,,,,,,,,303,,,,,,,,,,,38,,,,,,,,,,,,,,,,,38,,,,,,38,,38", ",,,,,,,,,,,,,,,,,39,,,39,,,,,,,,,,,,,,,,,,,,39,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,39,,,,,39,39,,,,,,,,,,,,303,,,,,", ",229,,,,303,,,,,276,276,276,,,,,,,,,,,322,323,324,,,,,,,,,,,,,,,276", "276,,,,,,,,,,,,,,,,,39,,,,39,,,,,,,,,,39,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,364,,,,,,39,,,,,,,,,,,,,39,,,,,,,,39,39,,,,,,,,,,,,,,", ",,,,,,,,,39,39,,,39,,,,,,39,,,,,,,,,,,,276,410,276,,,,,429,434,,,,,364", ",,,,,,,39,,229,,943,449,450,451,452,453,454,455,456,457,458,459,460", "461,462,463,464,465,466,467,468,469,470,471,472,473,474,,,,,,,276,276", ",,,,,,,276,,,,,,,276,,276,,,276,276,39,,,,,,,,,,,,,,,,,39,,,,,,39,,39", ",,,,,,,,,,,521,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,276,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", "276,,429,643,410,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,276,,276,,276", ",,,,,,,,,,,,,,,276,,,,,,,,,678,679,,,,,,,,,,276,,,276,,,,,,,,,,,,,,", ",,,,,,,,,,276,,,,,,,,,,,,,,,,,,,,276,276,,,,,,,,,,276,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,276,754,,,276,276,759,761,,,,764,766,,,643,768,,,,", ",,,,,,,,,,,,,,,,,,,276,,,276,,,,,,,,,,,,,,,,,,,,276,,,,,,,,,,,,,,,,", "276,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,276,,857,,", ",,,,,,,,,,,759,761,766,764,,860,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,276,,,,,,,,,,,,,,,,,276,857,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,276"]; - racc_goto_table = (arr = Opal.const_get_qualified('::', 'Array').$new(2923, nil)); - idx = 0; - $send(clist, 'each', [], (TMP_Ruby23_7 = function(str){var self = TMP_Ruby23_7.$$s || this, TMP_8; -if (str == null) str = nil; - return $send(str.$split(",", -1), 'each', [], (TMP_8 = function(i){var self = TMP_8.$$s || this, $writer = nil; -if (i == null) i = nil; - - if ($truthy(i['$empty?']())) { - } else { - - $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)]; - }; - return (idx = $rb_plus(idx, 1));}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8))}, TMP_Ruby23_7.$$s = self, TMP_Ruby23_7.$$arity = 1, TMP_Ruby23_7)); - clist = ["32,34,34,34,22,57,69,69,69,22,65,65,87,23,72,72,139,15,15,2,10,25,68", "93,22,18,32,7,58,58,91,25,7,22,22,22,69,22,22,22,61,61,90,90,65,65,65", "17,17,37,74,17,177,50,62,62,38,38,52,39,39,39,20,40,75,6,75,22,22,23", "28,22,22,22,22,138,97,96,28,64,71,71,71,70,70,122,122,70,173,168,55", "58,4,177,51,5,48,92,92,115,17,17,17,17,46,47,11,38,130,150,71,71,45", "45,45,22,127,1,117,41,22,22,22,22,22,22,162,41,41,24,128,174,151,132", "133,56,56,11,7,151,2,96,118,154,154,12,14,7,7,16,130,48,19,29,31,43", "4,63,67,73,8,85,86,89,94,95,98,99,100,101,102,103,104,105,48,106,107", "128,108,128,109,34,110,111,69,74,177,112,155,155,155,155,69,113,155", "114,119,125,72,75,75,5,131,134,135,136,137,140,142,143,22,22,22,22,118", "144,145,146,22,22,22,22,22,22,149,152,115,153,156,25,157,58,158,174", "159,22,160,34,34,132,133,161,166,69,170,130,34,52,23,20,20,69,93,171", ",52,20,20,,,168,,,,,118,117,,,22,22,,,138,,,65,42,22,,,,42,,,173,,,38", "38,32,,,65,168,41,22,42,72,,22,118,72,,22,22,42,42,42,32,42,25,23,91", "150,,48,71,55,7,,22,122,122,162,71,17,17,25,,22,22,,,127,,50,11,,,42", "42,,,42,,22,22,128,45,128,,6,64,,38,25,45,48,51,24,,48,122,96,38,22", "46,47,92,168,,46,47,,,128,,48,4,,23,22,25,48,,,24,42,,,23,32,42,42,42", "42,42,42,,,37,,,97,72,15,52,,,,72,155,,155,9,34,58,96,,177,90,,,38,8", "40,74,,61,72,40,38,4,75,21,,,24,70,21,,,62,18,,,24,22,,39,,128,,,32", "39,,,,,30,30,58,72,30,,,21,122,,48,138,138,,,,,10,,34,,65,42,42,42,42", ",,,65,42,42,42,42,42,42,72,,,,,22,,22,,,72,42,39,22,,22,,30,30,30,30", "22,2,,,,162,162,50,22,7,74,,58,,,50,,,,,,71,58,,42,42,,28,21,,,34,,42", ",69,,21,21,48,,34,,,,,8,,72,,8,42,,,22,42,72,22,,,42,71,,22,48,,,,90", ",9,,93,22,,,,22,116,,,58,,87,,42,42,58,,,,90,,,,9,30,30,30,30,,42,42", ",,32,,15,,32,,22,22,,,,22,22,58,,22,42,,21,65,139,,68,96,96,61,,32,", "22,65,,42,,22,22,69,72,,62,72,96,32,21,20,20,32,22,57,20,20,71,,20,", "9,,,22,8,9,26,50,,,167,26,,,,,,,50,,,,,32,,,,,48,,,17,32,,,,,17,,26", "26,26,24,42,,,,30,,21,48,22,,21,,,22,22,21,,22,,30,30,,,116,,,116,22", ",,,26,26,26,,,58,27,22,30,21,65,27,32,,68,,,,68,,,,,42,30,42,,,,,,,", "42,23,,,,22,27,,,,26,22,20,,42,8,66,,,26,26,,,,22,,,,,,,,22,22,,17,", ",,,,27,,,38,,,,,,,,,121,,22,,22,22,,42,22,,42,65,,,22,,42,,,,,,,65,", ",42,,,,42,27,,53,,116,,116,53,22,27,27,,121,,,,22,167,,,22,26,,,,,,", ",,,,,42,42,53,53,53,42,42,,,42,,32,,26,,,96,,30,96,,,,42,96,,,,42,42", ",21,,21,,,,53,53,53,53,,,22,116,116,66,,9,25,,9,34,,66,58,,,,,22,,27", ",,,22,126,22,72,,27,,,26,,,,26,,53,32,26,26,22,,,27,,53,53,,,,167,,116", ",116,26,42,21,58,,21,42,42,,26,42,,,,,,,126,,126,42,66,,66,,21,66,66", ",9,,42,,116,9,9,,,,,,,167,,167,,,,,27,,,121,27,,121,,121,27,121,,165", "165,165,,,,,42,,,,,,,,53,,,,,42,21,27,167,167,,21,21,42,42,,123,,,,", ",,,,53,,,,,,,,,,,42,,42,42,,,42,,,,30,,42,9,,,30,,,,,,,123,,,123,,,", ",,,,66,,,,,,,124,124,124,,42,,121,,121,53,121,21,121,53,,21,,53,53,", "9,,,,,21,,,26,,26,,,9,53,126,26,126,,,,9,9,53,26,,,,,,121,,,169,,,,", ",,167,126,167,126,42,126,9,9,,,9,,,21,,66,,66,,66,30,42,,,,,21,42,167", "42,,,,,21,21,,,26,,,26,27,,27,42,,,,9,,,,,,66,,,66,21,21,26,,21,,,,", "26,21,,,,54,,,,126,54,126,,126,,66,,,,124,124,124,124,,124,,123,126", ",123,,123,,123,21,66,167,,54,54,54,9,,,27,,,27,,,26,,,126,,26,26,,9", "165,165,,165,165,9,165,,27,26,,,,,54,54,54,54,,66,26,,,66,66,,,,53,", "53,124,124,124,124,21,53,,,,,,,,53,,,,,,,27,21,,124,,,54,21,66,21,,66", ",,27,54,54,,,27,27,,26,123,,123,26,123,,123,169,66,,169,,169,26,169", ",,,,,,,,,53,66,,53,,,,,,,,,,,,,,,,,123,,,53,,,,,,,,26,165,165,165,165", ",26,,,,,,,,,,,,27,26,,,27,54,66,,,26,26,,,,27,,,,,,,,,,,,,,,,54,53,", ",26,26,53,53,26,,165,169,,169,26,169,,169,,53,,,,,,,,,,,53,,27,,,,,", ",26,,,,,,27,,26,,,,26,,27,27,169,,,,,,54,,,66,54,,,,54,54,,,,,,,,27", "27,,66,27,53,,,54,53,27,,,,,,,54,,53,,,,,,,,,,26,,,,,,,,,,,,,,27,,,26", "27,,,,,26,,26,,,,,,,53,,,,,,53,,,,,,,,,,,,,53,,,,,,,,53,53,,,,,,,,,", ",,,,27,,,,,,,,,,53,53,,,53,,,27,,,53,,,27,,27,,,,,,,,,,,,,,,,,,,,53", ",,,,,,,53,,,,53,,,,,,,,,,,,,,,,,,,,,,,,,,,,,54,,54,,,,,,54,,,,,,,,54", ",,,,,,,,,,53,,,,,,,,,,,,,,,,,53,,,,,,53,,53,,,,,,,,,,,,,,,,,,54,,,54", ",,,,,,,,,,,,,,,,,,,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,54,,,,,54,54,,,,,,,,,,,,54,,,,,,,33,,,,54,,,,,33,33,33,,,", ",,,,,,,33,33,33,,,,,,,,,,,,,,,33,33,,,,,,,,,,,,,,,,,54,,,,54,,,,,,,", ",,54,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,54,,,,,,54,,,,,,,,,,,", ",54,,,,,,,,54,54,,,,,,,,,,,,,,,,,,,,,,,,54,54,,,54,,,,,,54,,,,,,,,,", ",,33,33,33,,,,,33,33,,,,,54,,,,,,,,54,,33,,54,33,33,33,33,33,33,33,33", "33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,33,,,,,,,33,33,,", ",,,,,33,,,,,,,33,,33,,,33,33,54,,,,,,,,,,,,,,,,,54,,,,,,54,,54,,,,,", ",,,,,,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,33,,33", "33,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,33,,33,,33,,,,,,,,,,,,", ",,,33,,,,,,,,,33,33,,,,,,,,,,33,,,33,,,,,,,,,,,,,,,,,,,,,,,,,33,,,,", ",,,,,,,,,,,,,,,33,33,,,,,,,,,,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,33,33", ",,33,33,33,33,,,,33,33,,,33,33,,,,,,,,,,,,,,,,,,,,,,,,33,,,33,,,,,,", ",,,,,,,,,,,,,33,,,,,,,,,,,,,,,,,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,33,,33,,,,,,,,,,,,,,33,33,33,33,,33,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,33,,,,,,,,,,,", ",,,,,33,33,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,", ",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,33"]; - racc_goto_check = (arr = Opal.const_get_qualified('::', 'Array').$new(2923, nil)); - idx = 0; - $send(clist, 'each', [], (TMP_Ruby23_9 = function(str){var self = TMP_Ruby23_9.$$s || this, TMP_10; -if (str == null) str = nil; - return $send(str.$split(",", -1), 'each', [], (TMP_10 = function(i){var self = TMP_10.$$s || this, $writer = nil; -if (i == null) i = nil; - if ($truthy(i['$empty?']())) { - } else { - - $writer = [idx, i.$to_i()]; - $send(arr, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)]; - }; - return (idx = $rb_plus(idx, 1));}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10))}, TMP_Ruby23_9.$$s = self, TMP_Ruby23_9.$$arity = 1, TMP_Ruby23_9)); - racc_goto_pointer = [nil, 117, 19, nil, 89, 90, 62, 27, -166, 382, -503, -575, -658, nil, -352, 9, 140, -16, -190, 84, 42, 435, 4, -196, -282, 7, 684, 758, -137, -54, 398, 32, -19, 1940, -28, nil, nil, 25, -154, 33, -201, -356, 277, -324, nil, 83, 71, 72, -123, nil, 19, 59, -259, 871, 1287, -267, 66, -66, 20, nil, nil, 32, 46, -244, 38, -24, 741, 99, -37, -23, -247, 51, -12, -317, -229, -424, nil, nil, nil, nil, nil, nil, nil, nil, nil, 90, 102, -49, nil, 101, -298, -680, -475, -322, 96, -196, 74, -516, 95, 110, 110, -356, 112, 106, -541, 107, -541, -405, -735, -408, -550, -182, -188, -400, -658, -731, 43, -435, -690, -450, nil, 192, -453, 447, 376, -449, 323, -530, -516, nil, -538, -670, -739, -738, -135, -483, 143, -329, -263, -6, -52, nil, -61, -61, -697, -466, -590, nil, nil, 147, 30, 50, 142, 143, -240, -193, 143, 144, 145, -364, -363, -348, -212, nil, nil, 521, -451, 350, -604, 561, -445, -608, nil, -607, -735, nil, nil, -438]; - racc_goto_default = [nil, nil, nil, 3, nil, 4, 346, 293, nil, 523, nil, 835, nil, 290, 291, nil, nil, nil, 11, 12, 18, 228, 321, nil, nil, 586, 226, 227, nil, nil, 17, nil, 441, 21, 22, 23, 24, nil, 675, nil, nil, nil, 310, nil, 25, 412, 32, nil, nil, 34, 37, 36, nil, 223, 224, 358, nil, 129, 420, 128, 131, 75, 76, nil, 90, 46, 282, nil, 804, 413, nil, 414, 425, 629, 487, 280, 266, 47, 48, 49, 50, 51, 52, 53, 54, 55, nil, 267, 61, nil, nil, nil, nil, nil, nil, nil, 569, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, nil, 702, 551, nil, 703, 924, 775, 539, nil, 540, nil, nil, 541, nil, 543, 645, nil, nil, nil, 549, nil, nil, nil, nil, nil, nil, nil, 424, nil, nil, nil, nil, nil, 74, 77, 78, nil, nil, nil, nil, nil, 596, nil, nil, nil, nil, nil, nil, 819, 736, 538, nil, 542, 827, 554, 556, 557, 787, 560, 561, 788, 564, 567, 285]; - racc_reduce_table = [0, 0, "racc_error", 1, 146, "_reduce_none", 2, 147, "_reduce_2", 0, 148, "_reduce_3", 1, 148, "_reduce_4", 3, 148, "_reduce_5", 2, 148, "_reduce_6", 1, 150, "_reduce_none", 4, 150, "_reduce_8", 4, 153, "_reduce_9", 2, 154, "_reduce_10", 0, 158, "_reduce_11", 1, 158, "_reduce_12", 3, 158, "_reduce_13", 2, 158, "_reduce_14", 1, 159, "_reduce_none", 4, 159, "_reduce_16", 0, 176, "_reduce_17", 4, 152, "_reduce_18", 3, 152, "_reduce_19", 3, 152, "_reduce_20", 3, 152, "_reduce_21", 2, 152, "_reduce_22", 3, 152, "_reduce_23", 3, 152, "_reduce_24", 3, 152, "_reduce_25", 3, 152, "_reduce_26", 3, 152, "_reduce_27", 4, 152, "_reduce_28", 1, 152, "_reduce_none", 3, 152, "_reduce_30", 3, 152, "_reduce_31", 6, 152, "_reduce_32", 5, 152, "_reduce_33", 5, 152, "_reduce_34", 5, 152, "_reduce_35", 5, 152, "_reduce_36", 3, 152, "_reduce_37", 3, 152, "_reduce_38", 3, 152, "_reduce_39", 1, 152, "_reduce_none", 3, 163, "_reduce_41", 3, 163, "_reduce_42", 1, 175, "_reduce_none", 3, 175, "_reduce_44", 3, 175, "_reduce_45", 3, 175, "_reduce_46", 2, 175, "_reduce_47", 1, 175, "_reduce_none", 1, 162, "_reduce_none", 1, 165, "_reduce_none", 1, 165, "_reduce_none", 1, 180, "_reduce_none", 4, 180, "_reduce_53", 0, 188, "_reduce_54", 5, 185, "_reduce_55", 1, 187, "_reduce_none", 2, 179, "_reduce_57", 3, 179, "_reduce_58", 4, 179, "_reduce_59", 5, 179, "_reduce_60", 4, 179, "_reduce_61", 5, 179, "_reduce_62", 2, 179, "_reduce_63", 2, 179, "_reduce_64", 2, 179, "_reduce_65", 2, 179, "_reduce_66", 2, 179, "_reduce_67", 1, 164, "_reduce_68", 3, 164, "_reduce_69", 1, 192, "_reduce_70", 3, 192, "_reduce_71", 1, 191, "_reduce_none", 2, 191, "_reduce_73", 3, 191, "_reduce_74", 5, 191, "_reduce_75", 2, 191, "_reduce_76", 4, 191, "_reduce_77", 2, 191, "_reduce_78", 4, 191, "_reduce_79", 1, 191, "_reduce_80", 3, 191, "_reduce_81", 1, 195, "_reduce_none", 3, 195, "_reduce_83", 2, 194, "_reduce_84", 3, 194, "_reduce_85", 1, 197, "_reduce_86", 3, 197, "_reduce_87", 1, 196, "_reduce_88", 1, 196, "_reduce_89", 4, 196, "_reduce_90", 3, 196, "_reduce_91", 3, 196, "_reduce_92", 3, 196, "_reduce_93", 3, 196, "_reduce_94", 2, 196, "_reduce_95", 1, 196, "_reduce_96", 1, 172, "_reduce_97", 1, 172, "_reduce_98", 4, 172, "_reduce_99", 3, 172, "_reduce_100", 3, 172, "_reduce_101", 3, 172, "_reduce_102", 3, 172, "_reduce_103", 2, 172, "_reduce_104", 1, 172, "_reduce_105", 1, 200, "_reduce_106", 1, 200, "_reduce_none", 2, 201, "_reduce_108", 1, 201, "_reduce_109", 3, 201, "_reduce_110", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 202, "_reduce_none", 1, 205, "_reduce_116", 1, 205, "_reduce_none", 1, 160, "_reduce_none", 1, 160, "_reduce_none", 1, 161, "_reduce_120", 0, 208, "_reduce_121", 4, 161, "_reduce_122", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 203, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 1, 204, "_reduce_none", 3, 178, "_reduce_194", 5, 178, "_reduce_195", 3, 178, "_reduce_196", 5, 178, "_reduce_197", 6, 178, "_reduce_198", 5, 178, "_reduce_199", 5, 178, "_reduce_200", 5, 178, "_reduce_201", 5, 178, "_reduce_202", 4, 178, "_reduce_203", 3, 178, "_reduce_204", 3, 178, "_reduce_205", 3, 178, "_reduce_206", 3, 178, "_reduce_207", 3, 178, "_reduce_208", 3, 178, "_reduce_209", 3, 178, "_reduce_210", 3, 178, "_reduce_211", 3, 178, "_reduce_212", 4, 178, "_reduce_213", 2, 178, "_reduce_214", 2, 178, "_reduce_215", 3, 178, "_reduce_216", 3, 178, "_reduce_217", 3, 178, "_reduce_218", 3, 178, "_reduce_219", 3, 178, "_reduce_220", 3, 178, "_reduce_221", 3, 178, "_reduce_222", 3, 178, "_reduce_223", 3, 178, "_reduce_224", 3, 178, "_reduce_225", 3, 178, "_reduce_226", 3, 178, "_reduce_227", 3, 178, "_reduce_228", 2, 178, "_reduce_229", 2, 178, "_reduce_230", 3, 178, "_reduce_231", 3, 178, "_reduce_232", 3, 178, "_reduce_233", 3, 178, "_reduce_234", 3, 178, "_reduce_235", 6, 178, "_reduce_236", 1, 178, "_reduce_none", 1, 211, "_reduce_none", 1, 212, "_reduce_none", 2, 212, "_reduce_none", 4, 212, "_reduce_241", 2, 212, "_reduce_242", 3, 217, "_reduce_243", 0, 218, "_reduce_244", 1, 218, "_reduce_none", 0, 168, "_reduce_246", 1, 168, "_reduce_none", 2, 168, "_reduce_none", 4, 168, "_reduce_249", 2, 168, "_reduce_250", 1, 190, "_reduce_251", 2, 190, "_reduce_252", 2, 190, "_reduce_253", 4, 190, "_reduce_254", 1, 190, "_reduce_255", 0, 221, "_reduce_256", 2, 184, "_reduce_257", 2, 220, "_reduce_258", 2, 219, "_reduce_259", 0, 219, "_reduce_260", 1, 214, "_reduce_261", 2, 214, "_reduce_262", 3, 214, "_reduce_263", 4, 214, "_reduce_264", 1, 174, "_reduce_265", 1, 174, "_reduce_none", 3, 173, "_reduce_267", 4, 173, "_reduce_268", 2, 173, "_reduce_269", 1, 210, "_reduce_none", 1, 210, "_reduce_none", 1, 210, "_reduce_none", 1, 210, "_reduce_none", 1, 210, "_reduce_none", 1, 210, "_reduce_none", 1, 210, "_reduce_none", 1, 210, "_reduce_none", 1, 210, "_reduce_none", 1, 210, "_reduce_none", 1, 210, "_reduce_280", 0, 244, "_reduce_281", 4, 210, "_reduce_282", 0, 245, "_reduce_283", 0, 246, "_reduce_284", 6, 210, "_reduce_285", 0, 247, "_reduce_286", 4, 210, "_reduce_287", 3, 210, "_reduce_288", 3, 210, "_reduce_289", 2, 210, "_reduce_290", 3, 210, "_reduce_291", 3, 210, "_reduce_292", 1, 210, "_reduce_293", 4, 210, "_reduce_294", 3, 210, "_reduce_295", 1, 210, "_reduce_296", 5, 210, "_reduce_297", 4, 210, "_reduce_298", 3, 210, "_reduce_299", 2, 210, "_reduce_300", 1, 210, "_reduce_none", 2, 210, "_reduce_302", 2, 210, "_reduce_303", 6, 210, "_reduce_304", 6, 210, "_reduce_305", 0, 248, "_reduce_306", 0, 249, "_reduce_307", 7, 210, "_reduce_308", 0, 250, "_reduce_309", 0, 251, "_reduce_310", 7, 210, "_reduce_311", 5, 210, "_reduce_312", 4, 210, "_reduce_313", 0, 252, "_reduce_314", 0, 253, "_reduce_315", 9, 210, "_reduce_316", 0, 254, "_reduce_317", 6, 210, "_reduce_318", 0, 255, "_reduce_319", 7, 210, "_reduce_320", 0, 256, "_reduce_321", 5, 210, "_reduce_322", 0, 257, "_reduce_323", 6, 210, "_reduce_324", 0, 258, "_reduce_325", 0, 259, "_reduce_326", 9, 210, "_reduce_327", 1, 210, "_reduce_328", 1, 210, "_reduce_329", 1, 210, "_reduce_330", 1, 210, "_reduce_331", 1, 167, "_reduce_none", 1, 235, "_reduce_none", 1, 235, "_reduce_none", 2, 235, "_reduce_335", 1, 237, "_reduce_none", 1, 237, "_reduce_none", 1, 236, "_reduce_none", 5, 236, "_reduce_339", 1, 156, "_reduce_none", 2, 156, "_reduce_341", 1, 239, "_reduce_none", 1, 239, "_reduce_none", 1, 260, "_reduce_344", 3, 260, "_reduce_345", 1, 263, "_reduce_346", 3, 263, "_reduce_347", 1, 262, "_reduce_none", 4, 262, "_reduce_349", 6, 262, "_reduce_350", 3, 262, "_reduce_351", 5, 262, "_reduce_352", 2, 262, "_reduce_353", 4, 262, "_reduce_354", 1, 262, "_reduce_355", 3, 262, "_reduce_356", 4, 264, "_reduce_357", 2, 264, "_reduce_358", 2, 264, "_reduce_359", 1, 264, "_reduce_360", 2, 269, "_reduce_361", 0, 269, "_reduce_362", 6, 270, "_reduce_363", 8, 270, "_reduce_364", 4, 270, "_reduce_365", 6, 270, "_reduce_366", 4, 270, "_reduce_367", 2, 270, "_reduce_none", 6, 270, "_reduce_369", 2, 270, "_reduce_370", 4, 270, "_reduce_371", 6, 270, "_reduce_372", 2, 270, "_reduce_373", 4, 270, "_reduce_374", 2, 270, "_reduce_375", 4, 270, "_reduce_376", 1, 270, "_reduce_none", 0, 186, "_reduce_378", 1, 186, "_reduce_379", 3, 274, "_reduce_380", 1, 274, "_reduce_381", 4, 274, "_reduce_382", 1, 275, "_reduce_383", 4, 275, "_reduce_384", 1, 276, "_reduce_385", 3, 276, "_reduce_386", 1, 277, "_reduce_387", 1, 277, "_reduce_none", 0, 281, "_reduce_389", 0, 282, "_reduce_390", 4, 234, "_reduce_391", 4, 279, "_reduce_392", 1, 279, "_reduce_393", 3, 280, "_reduce_394", 3, 280, "_reduce_395", 0, 285, "_reduce_396", 5, 284, "_reduce_397", 2, 181, "_reduce_398", 4, 181, "_reduce_399", 5, 181, "_reduce_400", 5, 181, "_reduce_401", 2, 233, "_reduce_402", 4, 233, "_reduce_403", 4, 233, "_reduce_404", 3, 233, "_reduce_405", 3, 233, "_reduce_406", 3, 233, "_reduce_407", 2, 233, "_reduce_408", 1, 233, "_reduce_409", 4, 233, "_reduce_410", 0, 287, "_reduce_411", 5, 232, "_reduce_412", 0, 288, "_reduce_413", 5, 232, "_reduce_414", 5, 238, "_reduce_415", 1, 289, "_reduce_416", 1, 289, "_reduce_none", 6, 155, "_reduce_418", 0, 155, "_reduce_419", 1, 290, "_reduce_420", 1, 290, "_reduce_none", 1, 290, "_reduce_none", 2, 291, "_reduce_423", 1, 291, "_reduce_none", 2, 157, "_reduce_425", 1, 157, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 222, "_reduce_none", 1, 223, "_reduce_430", 1, 293, "_reduce_431", 2, 293, "_reduce_432", 3, 294, "_reduce_433", 1, 294, "_reduce_434", 1, 294, "_reduce_435", 3, 224, "_reduce_436", 4, 225, "_reduce_437", 3, 226, "_reduce_438", 0, 298, "_reduce_439", 3, 298, "_reduce_440", 1, 299, "_reduce_441", 2, 299, "_reduce_442", 3, 228, "_reduce_443", 0, 301, "_reduce_444", 3, 301, "_reduce_445", 3, 227, "_reduce_446", 3, 229, "_reduce_447", 0, 302, "_reduce_448", 3, 302, "_reduce_449", 0, 303, "_reduce_450", 3, 303, "_reduce_451", 0, 295, "_reduce_452", 2, 295, "_reduce_453", 0, 296, "_reduce_454", 2, 296, "_reduce_455", 0, 297, "_reduce_456", 2, 297, "_reduce_457", 1, 300, "_reduce_458", 2, 300, "_reduce_459", 0, 305, "_reduce_460", 4, 300, "_reduce_461", 1, 304, "_reduce_462", 1, 304, "_reduce_463", 1, 304, "_reduce_464", 1, 304, "_reduce_none", 1, 206, "_reduce_466", 3, 207, "_reduce_467", 1, 292, "_reduce_468", 2, 292, "_reduce_469", 1, 209, "_reduce_470", 1, 209, "_reduce_471", 1, 209, "_reduce_472", 1, 209, "_reduce_473", 1, 198, "_reduce_474", 1, 198, "_reduce_475", 1, 198, "_reduce_476", 1, 198, "_reduce_477", 1, 198, "_reduce_478", 1, 199, "_reduce_479", 1, 199, "_reduce_480", 1, 199, "_reduce_481", 1, 199, "_reduce_482", 1, 199, "_reduce_483", 1, 199, "_reduce_484", 1, 199, "_reduce_485", 1, 230, "_reduce_486", 1, 230, "_reduce_487", 1, 166, "_reduce_488", 1, 166, "_reduce_489", 1, 171, "_reduce_490", 1, 171, "_reduce_491", 0, 306, "_reduce_492", 4, 240, "_reduce_493", 0, 240, "_reduce_494", 3, 242, "_reduce_495", 0, 308, "_reduce_496", 3, 242, "_reduce_497", 4, 307, "_reduce_498", 2, 307, "_reduce_499", 2, 307, "_reduce_500", 1, 307, "_reduce_501", 2, 310, "_reduce_502", 0, 310, "_reduce_503", 6, 283, "_reduce_504", 8, 283, "_reduce_505", 4, 283, "_reduce_506", 6, 283, "_reduce_507", 4, 283, "_reduce_508", 6, 283, "_reduce_509", 2, 283, "_reduce_510", 4, 283, "_reduce_511", 6, 283, "_reduce_512", 2, 283, "_reduce_513", 4, 283, "_reduce_514", 2, 283, "_reduce_515", 4, 283, "_reduce_516", 1, 283, "_reduce_517", 0, 283, "_reduce_518", 1, 278, "_reduce_519", 1, 278, "_reduce_520", 1, 278, "_reduce_521", 1, 278, "_reduce_522", 1, 261, "_reduce_none", 1, 261, "_reduce_524", 1, 312, "_reduce_525", 1, 313, "_reduce_526", 3, 313, "_reduce_527", 1, 271, "_reduce_528", 3, 271, "_reduce_529", 1, 314, "_reduce_530", 2, 315, "_reduce_531", 1, 315, "_reduce_532", 2, 316, "_reduce_533", 1, 316, "_reduce_534", 1, 265, "_reduce_535", 3, 265, "_reduce_536", 1, 309, "_reduce_537", 3, 309, "_reduce_538", 1, 317, "_reduce_none", 1, 317, "_reduce_none", 2, 266, "_reduce_541", 1, 266, "_reduce_542", 3, 318, "_reduce_543", 3, 319, "_reduce_544", 1, 272, "_reduce_545", 3, 272, "_reduce_546", 1, 311, "_reduce_547", 3, 311, "_reduce_548", 1, 320, "_reduce_none", 1, 320, "_reduce_none", 2, 273, "_reduce_551", 1, 273, "_reduce_552", 1, 321, "_reduce_none", 1, 321, "_reduce_none", 2, 268, "_reduce_555", 2, 267, "_reduce_556", 0, 267, "_reduce_557", 1, 243, "_reduce_none", 3, 243, "_reduce_559", 0, 231, "_reduce_560", 2, 231, "_reduce_none", 1, 216, "_reduce_562", 3, 216, "_reduce_563", 3, 322, "_reduce_564", 2, 322, "_reduce_565", 4, 322, "_reduce_566", 2, 322, "_reduce_567", 1, 189, "_reduce_none", 1, 189, "_reduce_none", 1, 189, "_reduce_none", 1, 183, "_reduce_none", 1, 183, "_reduce_none", 1, 183, "_reduce_none", 1, 183, "_reduce_none", 1, 286, "_reduce_none", 1, 286, "_reduce_none", 1, 286, "_reduce_none", 1, 182, "_reduce_none", 1, 182, "_reduce_none", 1, 170, "_reduce_580", 1, 170, "_reduce_581", 0, 149, "_reduce_none", 1, 149, "_reduce_none", 0, 177, "_reduce_none", 1, 177, "_reduce_none", 2, 193, "_reduce_586", 2, 169, "_reduce_587", 0, 215, "_reduce_none", 1, 215, "_reduce_none", 1, 215, "_reduce_none", 1, 241, "_reduce_591", 1, 241, "_reduce_none", 1, 151, "_reduce_none", 2, 151, "_reduce_none", 0, 213, "_reduce_595"]; - racc_reduce_n = 596; - racc_shift_n = 1021; - racc_token_table = $hash(false, 0, "error", 1, "kCLASS", 2, "kMODULE", 3, "kDEF", 4, "kUNDEF", 5, "kBEGIN", 6, "kRESCUE", 7, "kENSURE", 8, "kEND", 9, "kIF", 10, "kUNLESS", 11, "kTHEN", 12, "kELSIF", 13, "kELSE", 14, "kCASE", 15, "kWHEN", 16, "kWHILE", 17, "kUNTIL", 18, "kFOR", 19, "kBREAK", 20, "kNEXT", 21, "kREDO", 22, "kRETRY", 23, "kIN", 24, "kDO", 25, "kDO_COND", 26, "kDO_BLOCK", 27, "kDO_LAMBDA", 28, "kRETURN", 29, "kYIELD", 30, "kSUPER", 31, "kSELF", 32, "kNIL", 33, "kTRUE", 34, "kFALSE", 35, "kAND", 36, "kOR", 37, "kNOT", 38, "kIF_MOD", 39, "kUNLESS_MOD", 40, "kWHILE_MOD", 41, "kUNTIL_MOD", 42, "kRESCUE_MOD", 43, "kALIAS", 44, "kDEFINED", 45, "klBEGIN", 46, "klEND", 47, "k__LINE__", 48, "k__FILE__", 49, "k__ENCODING__", 50, "tIDENTIFIER", 51, "tFID", 52, "tGVAR", 53, "tIVAR", 54, "tCONSTANT", 55, "tLABEL", 56, "tCVAR", 57, "tNTH_REF", 58, "tBACK_REF", 59, "tSTRING_CONTENT", 60, "tINTEGER", 61, "tFLOAT", 62, "tUPLUS", 63, "tUMINUS", 64, "tUMINUS_NUM", 65, "tPOW", 66, "tCMP", 67, "tEQ", 68, "tEQQ", 69, "tNEQ", 70, "tGEQ", 71, "tLEQ", 72, "tANDOP", 73, "tOROP", 74, "tMATCH", 75, "tNMATCH", 76, "tDOT", 77, "tDOT2", 78, "tDOT3", 79, "tAREF", 80, "tASET", 81, "tLSHFT", 82, "tRSHFT", 83, "tCOLON2", 84, "tCOLON3", 85, "tOP_ASGN", 86, "tASSOC", 87, "tLPAREN", 88, "tLPAREN2", 89, "tRPAREN", 90, "tLPAREN_ARG", 91, "tLBRACK", 92, "tLBRACK2", 93, "tRBRACK", 94, "tLBRACE", 95, "tLBRACE_ARG", 96, "tSTAR", 97, "tSTAR2", 98, "tAMPER", 99, "tAMPER2", 100, "tTILDE", 101, "tPERCENT", 102, "tDIVIDE", 103, "tDSTAR", 104, "tPLUS", 105, "tMINUS", 106, "tLT", 107, "tGT", 108, "tPIPE", 109, "tBANG", 110, "tCARET", 111, "tLCURLY", 112, "tRCURLY", 113, "tBACK_REF2", 114, "tSYMBEG", 115, "tSTRING_BEG", 116, "tXSTRING_BEG", 117, "tREGEXP_BEG", 118, "tREGEXP_OPT", 119, "tWORDS_BEG", 120, "tQWORDS_BEG", 121, "tSYMBOLS_BEG", 122, "tQSYMBOLS_BEG", 123, "tSTRING_DBEG", 124, "tSTRING_DVAR", 125, "tSTRING_END", 126, "tSTRING_DEND", 127, "tSTRING", 128, "tSYMBOL", 129, "tNL", 130, "tEH", 131, "tCOLON", 132, "tCOMMA", 133, "tSPACE", 134, "tSEMI", 135, "tLAMBDA", 136, "tLAMBEG", 137, "tCHARACTER", 138, "tRATIONAL", 139, "tIMAGINARY", 140, "tLABEL_END", 141, "tANDDOT", 142, "tEQL", 143, "tLOWEST", 144); - racc_nt_base = 145; - racc_use_result_var = true; - Opal.const_set($nesting[0], 'Racc_arg', [racc_action_table, racc_action_check, racc_action_default, racc_action_pointer, racc_goto_table, racc_goto_check, racc_goto_default, racc_goto_pointer, racc_nt_base, racc_reduce_table, racc_token_table, racc_shift_n, racc_reduce_n, racc_use_result_var]); - Opal.const_set($nesting[0], 'Racc_token_to_s_table', ["$end", "error", "kCLASS", "kMODULE", "kDEF", "kUNDEF", "kBEGIN", "kRESCUE", "kENSURE", "kEND", "kIF", "kUNLESS", "kTHEN", "kELSIF", "kELSE", "kCASE", "kWHEN", "kWHILE", "kUNTIL", "kFOR", "kBREAK", "kNEXT", "kREDO", "kRETRY", "kIN", "kDO", "kDO_COND", "kDO_BLOCK", "kDO_LAMBDA", "kRETURN", "kYIELD", "kSUPER", "kSELF", "kNIL", "kTRUE", "kFALSE", "kAND", "kOR", "kNOT", "kIF_MOD", "kUNLESS_MOD", "kWHILE_MOD", "kUNTIL_MOD", "kRESCUE_MOD", "kALIAS", "kDEFINED", "klBEGIN", "klEND", "k__LINE__", "k__FILE__", "k__ENCODING__", "tIDENTIFIER", "tFID", "tGVAR", "tIVAR", "tCONSTANT", "tLABEL", "tCVAR", "tNTH_REF", "tBACK_REF", "tSTRING_CONTENT", "tINTEGER", "tFLOAT", "tUPLUS", "tUMINUS", "tUMINUS_NUM", "tPOW", "tCMP", "tEQ", "tEQQ", "tNEQ", "tGEQ", "tLEQ", "tANDOP", "tOROP", "tMATCH", "tNMATCH", "tDOT", "tDOT2", "tDOT3", "tAREF", "tASET", "tLSHFT", "tRSHFT", "tCOLON2", "tCOLON3", "tOP_ASGN", "tASSOC", "tLPAREN", "tLPAREN2", "tRPAREN", "tLPAREN_ARG", "tLBRACK", "tLBRACK2", "tRBRACK", "tLBRACE", "tLBRACE_ARG", "tSTAR", "tSTAR2", "tAMPER", "tAMPER2", "tTILDE", "tPERCENT", "tDIVIDE", "tDSTAR", "tPLUS", "tMINUS", "tLT", "tGT", "tPIPE", "tBANG", "tCARET", "tLCURLY", "tRCURLY", "tBACK_REF2", "tSYMBEG", "tSTRING_BEG", "tXSTRING_BEG", "tREGEXP_BEG", "tREGEXP_OPT", "tWORDS_BEG", "tQWORDS_BEG", "tSYMBOLS_BEG", "tQSYMBOLS_BEG", "tSTRING_DBEG", "tSTRING_DVAR", "tSTRING_END", "tSTRING_DEND", "tSTRING", "tSYMBOL", "tNL", "tEH", "tCOLON", "tCOMMA", "tSPACE", "tSEMI", "tLAMBDA", "tLAMBEG", "tCHARACTER", "tRATIONAL", "tIMAGINARY", "tLABEL_END", "tANDDOT", "tEQL", "tLOWEST", "$start", "program", "top_compstmt", "top_stmts", "opt_terms", "top_stmt", "terms", "stmt", "bodystmt", "compstmt", "opt_rescue", "opt_else", "opt_ensure", "stmts", "stmt_or_begin", "fitem", "undef_list", "expr_value", "command_asgn", "mlhs", "command_call", "var_lhs", "primary_value", "opt_call_args", "rbracket", "call_op", "backref", "lhs", "mrhs", "mrhs_arg", "expr", "@1", "opt_nl", "arg", "command", "block_command", "block_call", "dot_or_colon", "operation2", "command_args", "cmd_brace_block", "opt_block_param", "fcall", "@2", "operation", "call_args", "mlhs_basic", "mlhs_inner", "rparen", "mlhs_head", "mlhs_item", "mlhs_node", "mlhs_post", "user_variable", "keyword_variable", "cname", "cpath", "fname", "op", "reswords", "fsym", "symbol", "dsym", "@3", "simple_numeric", "primary", "arg_value", "aref_args", "none", "args", "trailer", "assocs", "paren_args", "opt_paren_args", "opt_block_arg", "block_arg", "@4", "literal", "strings", "xstring", "regexp", "words", "qwords", "symbols", "qsymbols", "var_ref", "assoc_list", "brace_block", "method_call", "lambda", "then", "if_tail", "do", "case_body", "for_var", "superclass", "term", "f_arglist", "singleton", "@5", "@6", "@7", "@8", "@9", "@10", "@11", "@12", "@13", "@14", "@15", "@16", "@17", "@18", "@19", "@20", "f_marg", "f_norm_arg", "f_margs", "f_marg_list", "block_args_tail", "f_block_kwarg", "f_kwrest", "opt_f_block_arg", "f_block_arg", "opt_block_args_tail", "block_param", "f_arg", "f_block_optarg", "f_rest_arg", "block_param_def", "opt_bv_decl", "bv_decls", "bvar", "f_bad_arg", "f_larglist", "lambda_body", "@21", "@22", "f_args", "do_block", "@23", "operation3", "@24", "@25", "cases", "exc_list", "exc_var", "numeric", "string", "string1", "string_contents", "xstring_contents", "regexp_contents", "word_list", "word", "string_content", "symbol_list", "qword_list", "qsym_list", "string_dvar", "@26", "@27", "args_tail", "@28", "f_kwarg", "opt_args_tail", "f_optarg", "f_arg_asgn", "f_arg_item", "f_label", "f_kw", "f_block_kw", "kwrest_mark", "f_opt", "f_block_opt", "restarg_mark", "blkarg_mark", "assoc"]); - Opal.const_set($nesting[0], 'Racc_debug_parser', false); + result = self.builder.$range_inclusive(nil, val['$[]'](0), val['$[]'](1)); + return result; + }, $Ruby30__reduce_522$383.$$arity = 3); - Opal.defn(self, '$_reduce_2', TMP_Ruby23__reduce_2_11 = function $$_reduce_2(val, _values, result) { + Opal.def(self, '$_reduce_523', $Ruby30__reduce_523$384 = function $$_reduce_523(val, _values, result) { var self = this; - result = self.builder.$compstmt(val['$[]'](0)); + result = self.builder.$range_exclusive(nil, val['$[]'](0), val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_2_11.$$arity = 3); + }, $Ruby30__reduce_523$384.$$arity = 3); - Opal.defn(self, '$_reduce_3', TMP_Ruby23__reduce_3_12 = function $$_reduce_3(val, _values, result) { + Opal.def(self, '$_reduce_532', $Ruby30__reduce_532$385 = function $$_reduce_532(val, _values, result) { var self = this; - result = []; + result = self.builder.$accessible(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_3_12.$$arity = 3); + }, $Ruby30__reduce_532$385.$$arity = 3); - Opal.defn(self, '$_reduce_4', TMP_Ruby23__reduce_4_13 = function $$_reduce_4(val, _values, result) { + Opal.def(self, '$_reduce_534', $Ruby30__reduce_534$386 = function $$_reduce_534(val, _values, result) { var self = this; - result = [val['$[]'](0)]; + result = self.builder.$match_var(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_4_13.$$arity = 3); + }, $Ruby30__reduce_534$386.$$arity = 3); - Opal.defn(self, '$_reduce_5', TMP_Ruby23__reduce_5_14 = function $$_reduce_5(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_535', $Ruby30__reduce_535$387 = function $$_reduce_535(val, _values, result) { + var self = this, name = nil, lvar = nil; - result = val['$[]'](0)['$<<'](val['$[]'](2)); + name = val['$[]'](1)['$[]'](0); + if ($truthy(self.$static_env()['$declared?'](name))) { + } else { + self.$diagnostic("error", "undefined_lvar", $hash2(["name"], {"name": name}), val['$[]'](1)) + }; + lvar = self.builder.$accessible(self.builder.$ident(val['$[]'](1))); + result = self.builder.$pin(val['$[]'](0), lvar); return result; - }, TMP_Ruby23__reduce_5_14.$$arity = 3); + }, $Ruby30__reduce_535$387.$$arity = 3); - Opal.defn(self, '$_reduce_6', TMP_Ruby23__reduce_6_15 = function $$_reduce_6(val, _values, result) { + Opal.def(self, '$_reduce_536', $Ruby30__reduce_536$388 = function $$_reduce_536(val, _values, result) { var self = this; - result = [val['$[]'](1)]; + result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_6_15.$$arity = 3); + }, $Ruby30__reduce_536$388.$$arity = 3); - Opal.defn(self, '$_reduce_8', TMP_Ruby23__reduce_8_16 = function $$_reduce_8(val, _values, result) { + Opal.def(self, '$_reduce_537', $Ruby30__reduce_537$389 = function $$_reduce_537(val, _values, result) { var self = this; - result = self.builder.$preexe(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_8_16.$$arity = 3); + }, $Ruby30__reduce_537$389.$$arity = 3); - Opal.defn(self, '$_reduce_9', TMP_Ruby23__reduce_9_17 = function $$_reduce_9(val, _values, result) { - var $a, $b, self = this, rescue_bodies = nil, else_t = nil, else_ = nil, ensure_t = nil, ensure_ = nil; + Opal.def(self, '$_reduce_538', $Ruby30__reduce_538$390 = function $$_reduce_538(val, _values, result) { + var self = this; - rescue_bodies = val['$[]'](1); - $b = val['$[]'](2), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; - $b = val['$[]'](3), $a = Opal.to_ary($b), (ensure_t = ($a[0] == null ? nil : $a[0])), (ensure_ = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy(($truthy($a = rescue_bodies['$empty?']()) ? else_['$nil?']()['$!']() : $a))) { - self.$diagnostic("warning", "useless_else", nil, else_t)}; - result = self.builder.$begin_body(val['$[]'](0), rescue_bodies, else_t, else_, ensure_t, ensure_); + result = self.builder.$const(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_9_17.$$arity = 3); + }, $Ruby30__reduce_538$390.$$arity = 3); - Opal.defn(self, '$_reduce_10', TMP_Ruby23__reduce_10_18 = function $$_reduce_10(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_539', $Ruby30__reduce_539$391 = function $$_reduce_539(val, _values, result) { + var $a, $b, self = this, assoc_t = nil, exc_var = nil, exc_list = nil; - result = self.builder.$compstmt(val['$[]'](0)); + $b = val['$[]'](2), $a = Opal.to_ary($b), (assoc_t = ($a[0] == null ? nil : $a[0])), (exc_var = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy(val['$[]'](1))) { + exc_list = self.builder.$array(nil, val['$[]'](1), nil)}; + result = [self.builder.$rescue_body(val['$[]'](0), exc_list, assoc_t, exc_var, val['$[]'](3), val['$[]'](4))].concat(Opal.to_a(val['$[]'](5))); return result; - }, TMP_Ruby23__reduce_10_18.$$arity = 3); + }, $Ruby30__reduce_539$391.$$arity = 3); - Opal.defn(self, '$_reduce_11', TMP_Ruby23__reduce_11_19 = function $$_reduce_11(val, _values, result) { + Opal.def(self, '$_reduce_540', $Ruby30__reduce_540$392 = function $$_reduce_540(val, _values, result) { var self = this; result = []; return result; - }, TMP_Ruby23__reduce_11_19.$$arity = 3); + }, $Ruby30__reduce_540$392.$$arity = 3); - Opal.defn(self, '$_reduce_12', TMP_Ruby23__reduce_12_20 = function $$_reduce_12(val, _values, result) { + Opal.def(self, '$_reduce_541', $Ruby30__reduce_541$393 = function $$_reduce_541(val, _values, result) { var self = this; result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_12_20.$$arity = 3); + }, $Ruby30__reduce_541$393.$$arity = 3); - Opal.defn(self, '$_reduce_13', TMP_Ruby23__reduce_13_21 = function $$_reduce_13(val, _values, result) { + Opal.def(self, '$_reduce_544', $Ruby30__reduce_544$394 = function $$_reduce_544(val, _values, result) { var self = this; - result = val['$[]'](0)['$<<'](val['$[]'](2)); + result = [val['$[]'](0), val['$[]'](1)]; return result; - }, TMP_Ruby23__reduce_13_21.$$arity = 3); + }, $Ruby30__reduce_544$394.$$arity = 3); - Opal.defn(self, '$_reduce_14', TMP_Ruby23__reduce_14_22 = function $$_reduce_14(val, _values, result) { + Opal.def(self, '$_reduce_546', $Ruby30__reduce_546$395 = function $$_reduce_546(val, _values, result) { var self = this; - result = [val['$[]'](1)]; + result = [val['$[]'](0), val['$[]'](1)]; return result; - }, TMP_Ruby23__reduce_14_22.$$arity = 3); + }, $Ruby30__reduce_546$395.$$arity = 3); - Opal.defn(self, '$_reduce_16', TMP_Ruby23__reduce_16_23 = function $$_reduce_16(val, _values, result) { + Opal.def(self, '$_reduce_550', $Ruby30__reduce_550$396 = function $$_reduce_550(val, _values, result) { var self = this; - self.$diagnostic("error", "begin_in_method", nil, val['$[]'](0)); + result = self.builder.$string_compose(nil, val['$[]'](0), nil); return result; - }, TMP_Ruby23__reduce_16_23.$$arity = 3); + }, $Ruby30__reduce_550$396.$$arity = 3); - Opal.defn(self, '$_reduce_17', TMP_Ruby23__reduce_17_24 = function $$_reduce_17(val, _values, result) { - var self = this, $writer = nil; + Opal.def(self, '$_reduce_551', $Ruby30__reduce_551$397 = function $$_reduce_551(val, _values, result) { + var self = this; - - $writer = ["expr_fname"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; + result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_17_24.$$arity = 3); + }, $Ruby30__reduce_551$397.$$arity = 3); - Opal.defn(self, '$_reduce_18', TMP_Ruby23__reduce_18_25 = function $$_reduce_18(val, _values, result) { + Opal.def(self, '$_reduce_552', $Ruby30__reduce_552$398 = function $$_reduce_552(val, _values, result) { var self = this; - result = self.builder.$alias(val['$[]'](0), val['$[]'](1), val['$[]'](3)); + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_18_25.$$arity = 3); + }, $Ruby30__reduce_552$398.$$arity = 3); - Opal.defn(self, '$_reduce_19', TMP_Ruby23__reduce_19_26 = function $$_reduce_19(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_553', $Ruby30__reduce_553$399 = function $$_reduce_553(val, _values, result) { + var self = this, string = nil; - result = self.builder.$alias(val['$[]'](0), self.builder.$gvar(val['$[]'](1)), self.builder.$gvar(val['$[]'](2))); + string = self.builder.$string_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); return result; - }, TMP_Ruby23__reduce_19_26.$$arity = 3); + }, $Ruby30__reduce_553$399.$$arity = 3); - Opal.defn(self, '$_reduce_20', TMP_Ruby23__reduce_20_27 = function $$_reduce_20(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_554', $Ruby30__reduce_554$400 = function $$_reduce_554(val, _values, result) { + var self = this, string = nil; - result = self.builder.$alias(val['$[]'](0), self.builder.$gvar(val['$[]'](1)), self.builder.$back_ref(val['$[]'](2))); + string = self.builder.$string(val['$[]'](0)); + result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); return result; - }, TMP_Ruby23__reduce_20_27.$$arity = 3); + }, $Ruby30__reduce_554$400.$$arity = 3); - Opal.defn(self, '$_reduce_21', TMP_Ruby23__reduce_21_28 = function $$_reduce_21(val, _values, result) { + Opal.def(self, '$_reduce_555', $Ruby30__reduce_555$401 = function $$_reduce_555(val, _values, result) { var self = this; - self.$diagnostic("error", "nth_ref_alias", nil, val['$[]'](2)); + result = self.builder.$character(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_21_28.$$arity = 3); + }, $Ruby30__reduce_555$401.$$arity = 3); - Opal.defn(self, '$_reduce_22', TMP_Ruby23__reduce_22_29 = function $$_reduce_22(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_556', $Ruby30__reduce_556$402 = function $$_reduce_556(val, _values, result) { + var self = this, string = nil; - result = self.builder.$undef_method(val['$[]'](0), val['$[]'](1)); + string = self.builder.$xstring_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); + return result; + }, $Ruby30__reduce_556$402.$$arity = 3); + + Opal.def(self, '$_reduce_557', $Ruby30__reduce_557$403 = function $$_reduce_557(val, _values, result) { + var self = this, opts = nil; + + + opts = self.builder.$regexp_options(val['$[]'](3)); + result = self.builder.$regexp_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2), opts); return result; - }, TMP_Ruby23__reduce_22_29.$$arity = 3); + }, $Ruby30__reduce_557$403.$$arity = 3); - Opal.defn(self, '$_reduce_23', TMP_Ruby23__reduce_23_30 = function $$_reduce_23(val, _values, result) { + Opal.def(self, '$_reduce_558', $Ruby30__reduce_558$404 = function $$_reduce_558(val, _values, result) { var self = this; - result = self.builder.$condition_mod(val['$[]'](0), nil, val['$[]'](1), val['$[]'](2)); + result = self.builder.$words_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_23_30.$$arity = 3); + }, $Ruby30__reduce_558$404.$$arity = 3); - Opal.defn(self, '$_reduce_24', TMP_Ruby23__reduce_24_31 = function $$_reduce_24(val, _values, result) { + Opal.def(self, '$_reduce_559', $Ruby30__reduce_559$405 = function $$_reduce_559(val, _values, result) { var self = this; - result = self.builder.$condition_mod(nil, val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = []; return result; - }, TMP_Ruby23__reduce_24_31.$$arity = 3); + }, $Ruby30__reduce_559$405.$$arity = 3); - Opal.defn(self, '$_reduce_25', TMP_Ruby23__reduce_25_32 = function $$_reduce_25(val, _values, result) { + Opal.def(self, '$_reduce_560', $Ruby30__reduce_560$406 = function $$_reduce_560(val, _values, result) { var self = this; - result = self.builder.$loop_mod("while", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](self.builder.$word(val['$[]'](1))); return result; - }, TMP_Ruby23__reduce_25_32.$$arity = 3); + }, $Ruby30__reduce_560$406.$$arity = 3); - Opal.defn(self, '$_reduce_26', TMP_Ruby23__reduce_26_33 = function $$_reduce_26(val, _values, result) { + Opal.def(self, '$_reduce_561', $Ruby30__reduce_561$407 = function $$_reduce_561(val, _values, result) { var self = this; - result = self.builder.$loop_mod("until", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_26_33.$$arity = 3); + }, $Ruby30__reduce_561$407.$$arity = 3); - Opal.defn(self, '$_reduce_27', TMP_Ruby23__reduce_27_34 = function $$_reduce_27(val, _values, result) { - var self = this, rescue_body = nil; + Opal.def(self, '$_reduce_562', $Ruby30__reduce_562$408 = function $$_reduce_562(val, _values, result) { + var self = this; - rescue_body = self.builder.$rescue_body(val['$[]'](1), nil, nil, nil, nil, val['$[]'](2)); - result = self.builder.$begin_body(val['$[]'](0), [rescue_body]); + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_27_34.$$arity = 3); + }, $Ruby30__reduce_562$408.$$arity = 3); - Opal.defn(self, '$_reduce_28', TMP_Ruby23__reduce_28_35 = function $$_reduce_28(val, _values, result) { + Opal.def(self, '$_reduce_563', $Ruby30__reduce_563$409 = function $$_reduce_563(val, _values, result) { var self = this; - result = self.builder.$postexe(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + result = self.builder.$symbols_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_28_35.$$arity = 3); + }, $Ruby30__reduce_563$409.$$arity = 3); - Opal.defn(self, '$_reduce_30', TMP_Ruby23__reduce_30_36 = function $$_reduce_30(val, _values, result) { + Opal.def(self, '$_reduce_564', $Ruby30__reduce_564$410 = function $$_reduce_564(val, _values, result) { var self = this; - result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = []; return result; - }, TMP_Ruby23__reduce_30_36.$$arity = 3); + }, $Ruby30__reduce_564$410.$$arity = 3); - Opal.defn(self, '$_reduce_31', TMP_Ruby23__reduce_31_37 = function $$_reduce_31(val, _values, result) { + Opal.def(self, '$_reduce_565', $Ruby30__reduce_565$411 = function $$_reduce_565(val, _values, result) { var self = this; - result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](self.builder.$word(val['$[]'](1))); return result; - }, TMP_Ruby23__reduce_31_37.$$arity = 3); + }, $Ruby30__reduce_565$411.$$arity = 3); - Opal.defn(self, '$_reduce_32', TMP_Ruby23__reduce_32_38 = function $$_reduce_32(val, _values, result) { + Opal.def(self, '$_reduce_566', $Ruby30__reduce_566$412 = function $$_reduce_566(val, _values, result) { var self = this; - result = self.builder.$op_assign(self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)), val['$[]'](4), val['$[]'](5)); + result = self.builder.$words_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_32_38.$$arity = 3); + }, $Ruby30__reduce_566$412.$$arity = 3); - Opal.defn(self, '$_reduce_33', TMP_Ruby23__reduce_33_39 = function $$_reduce_33(val, _values, result) { + Opal.def(self, '$_reduce_567', $Ruby30__reduce_567$413 = function $$_reduce_567(val, _values, result) { var self = this; - result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + result = self.builder.$symbols_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_33_39.$$arity = 3); + }, $Ruby30__reduce_567$413.$$arity = 3); - Opal.defn(self, '$_reduce_34', TMP_Ruby23__reduce_34_40 = function $$_reduce_34(val, _values, result) { + Opal.def(self, '$_reduce_568', $Ruby30__reduce_568$414 = function $$_reduce_568(val, _values, result) { var self = this; - result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + result = []; return result; - }, TMP_Ruby23__reduce_34_40.$$arity = 3); + }, $Ruby30__reduce_568$414.$$arity = 3); - Opal.defn(self, '$_reduce_35', TMP_Ruby23__reduce_35_41 = function $$_reduce_35(val, _values, result) { - var self = this, const$ = nil; + Opal.def(self, '$_reduce_569', $Ruby30__reduce_569$415 = function $$_reduce_569(val, _values, result) { + var self = this; - const$ = self.builder.$const_op_assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); - result = self.builder.$op_assign(const$, val['$[]'](3), val['$[]'](4)); + result = val['$[]'](0)['$<<'](self.builder.$string_internal(val['$[]'](1))); return result; - }, TMP_Ruby23__reduce_35_41.$$arity = 3); + }, $Ruby30__reduce_569$415.$$arity = 3); - Opal.defn(self, '$_reduce_36', TMP_Ruby23__reduce_36_42 = function $$_reduce_36(val, _values, result) { + Opal.def(self, '$_reduce_570', $Ruby30__reduce_570$416 = function $$_reduce_570(val, _values, result) { var self = this; - result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + result = []; return result; - }, TMP_Ruby23__reduce_36_42.$$arity = 3); + }, $Ruby30__reduce_570$416.$$arity = 3); - Opal.defn(self, '$_reduce_37', TMP_Ruby23__reduce_37_43 = function $$_reduce_37(val, _values, result) { + Opal.def(self, '$_reduce_571', $Ruby30__reduce_571$417 = function $$_reduce_571(val, _values, result) { var self = this; - self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](self.builder.$symbol_internal(val['$[]'](1))); return result; - }, TMP_Ruby23__reduce_37_43.$$arity = 3); + }, $Ruby30__reduce_571$417.$$arity = 3); - Opal.defn(self, '$_reduce_38', TMP_Ruby23__reduce_38_44 = function $$_reduce_38(val, _values, result) { + Opal.def(self, '$_reduce_572', $Ruby30__reduce_572$418 = function $$_reduce_572(val, _values, result) { var self = this; - result = self.builder.$assign(val['$[]'](0), val['$[]'](1), self.builder.$array(nil, val['$[]'](2), nil)); + result = []; return result; - }, TMP_Ruby23__reduce_38_44.$$arity = 3); + }, $Ruby30__reduce_572$418.$$arity = 3); - Opal.defn(self, '$_reduce_39', TMP_Ruby23__reduce_39_45 = function $$_reduce_39(val, _values, result) { + Opal.def(self, '$_reduce_573', $Ruby30__reduce_573$419 = function $$_reduce_573(val, _values, result) { var self = this; - result = self.builder.$multi_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_39_45.$$arity = 3); + }, $Ruby30__reduce_573$419.$$arity = 3); - Opal.defn(self, '$_reduce_41', TMP_Ruby23__reduce_41_46 = function $$_reduce_41(val, _values, result) { + Opal.def(self, '$_reduce_574', $Ruby30__reduce_574$420 = function $$_reduce_574(val, _values, result) { var self = this; - result = self.builder.$assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = []; return result; - }, TMP_Ruby23__reduce_41_46.$$arity = 3); + }, $Ruby30__reduce_574$420.$$arity = 3); - Opal.defn(self, '$_reduce_42', TMP_Ruby23__reduce_42_47 = function $$_reduce_42(val, _values, result) { + Opal.def(self, '$_reduce_575', $Ruby30__reduce_575$421 = function $$_reduce_575(val, _values, result) { var self = this; - result = self.builder.$assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_42_47.$$arity = 3); + }, $Ruby30__reduce_575$421.$$arity = 3); - Opal.defn(self, '$_reduce_44', TMP_Ruby23__reduce_44_48 = function $$_reduce_44(val, _values, result) { + Opal.def(self, '$_reduce_576', $Ruby30__reduce_576$422 = function $$_reduce_576(val, _values, result) { var self = this; - result = self.builder.$logical_op("and", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = []; return result; - }, TMP_Ruby23__reduce_44_48.$$arity = 3); + }, $Ruby30__reduce_576$422.$$arity = 3); - Opal.defn(self, '$_reduce_45', TMP_Ruby23__reduce_45_49 = function $$_reduce_45(val, _values, result) { + Opal.def(self, '$_reduce_577', $Ruby30__reduce_577$423 = function $$_reduce_577(val, _values, result) { var self = this; - result = self.builder.$logical_op("or", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_45_49.$$arity = 3); + }, $Ruby30__reduce_577$423.$$arity = 3); - Opal.defn(self, '$_reduce_46', TMP_Ruby23__reduce_46_50 = function $$_reduce_46(val, _values, result) { + Opal.def(self, '$_reduce_578', $Ruby30__reduce_578$424 = function $$_reduce_578(val, _values, result) { var self = this; - result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](2), nil); + result = self.builder.$string_internal(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_46_50.$$arity = 3); + }, $Ruby30__reduce_578$424.$$arity = 3); - Opal.defn(self, '$_reduce_47', TMP_Ruby23__reduce_47_51 = function $$_reduce_47(val, _values, result) { + Opal.def(self, '$_reduce_579', $Ruby30__reduce_579$425 = function $$_reduce_579(val, _values, result) { var self = this; - result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](1), nil); + result = val['$[]'](1); return result; - }, TMP_Ruby23__reduce_47_51.$$arity = 3); + }, $Ruby30__reduce_579$425.$$arity = 3); - Opal.defn(self, '$_reduce_53', TMP_Ruby23__reduce_53_52 = function $$_reduce_53(val, _values, result) { + Opal.def(self, '$_reduce_580', $Ruby30__reduce_580$426 = function $$_reduce_580(val, _values, result) { var self = this; - result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); + self.lexer.$cmdarg().$push(false); + self.lexer.$cond().$push(false); return result; - }, TMP_Ruby23__reduce_53_52.$$arity = 3); + }, $Ruby30__reduce_580$426.$$arity = 3); - Opal.defn(self, '$_reduce_54', TMP_Ruby23__reduce_54_53 = function $$_reduce_54(val, _values, result) { + Opal.def(self, '$_reduce_581', $Ruby30__reduce_581$427 = function $$_reduce_581(val, _values, result) { var self = this; - self.static_env.$extend_dynamic(); + self.lexer.$cmdarg().$pop(); + self.lexer.$cond().$pop(); + result = self.builder.$begin(val['$[]'](0), val['$[]'](2), val['$[]'](3)); return result; - }, TMP_Ruby23__reduce_54_53.$$arity = 3); + }, $Ruby30__reduce_581$427.$$arity = 3); - Opal.defn(self, '$_reduce_55', TMP_Ruby23__reduce_55_54 = function $$_reduce_55(val, _values, result) { + Opal.def(self, '$_reduce_582', $Ruby30__reduce_582$428 = function $$_reduce_582(val, _values, result) { var self = this; - result = [val['$[]'](0), val['$[]'](2), val['$[]'](3), val['$[]'](4)]; - self.static_env.$unextend(); + result = self.builder.$gvar(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_55_54.$$arity = 3); + }, $Ruby30__reduce_582$428.$$arity = 3); - Opal.defn(self, '$_reduce_57', TMP_Ruby23__reduce_57_55 = function $$_reduce_57(val, _values, result) { + Opal.def(self, '$_reduce_583', $Ruby30__reduce_583$429 = function $$_reduce_583(val, _values, result) { var self = this; - result = self.builder.$call_method(nil, nil, val['$[]'](0), nil, val['$[]'](1), nil); + result = self.builder.$ivar(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_57_55.$$arity = 3); + }, $Ruby30__reduce_583$429.$$arity = 3); - Opal.defn(self, '$_reduce_58', TMP_Ruby23__reduce_58_56 = function $$_reduce_58(val, _values, result) { - var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; + Opal.def(self, '$_reduce_584', $Ruby30__reduce_584$430 = function $$_reduce_584(val, _values, result) { + var self = this; - method_call = self.builder.$call_method(nil, nil, val['$[]'](0), nil, val['$[]'](1), nil); - $b = val['$[]'](2), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; - result = self.builder.$block(method_call, begin_t, args, body, end_t); + result = self.builder.$cvar(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_58_56.$$arity = 3); + }, $Ruby30__reduce_584$430.$$arity = 3); - Opal.defn(self, '$_reduce_59', TMP_Ruby23__reduce_59_57 = function $$_reduce_59(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_588', $Ruby30__reduce_588$431 = function $$_reduce_588(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); + + $writer = ["expr_end"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$symbol(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_59_57.$$arity = 3); + }, $Ruby30__reduce_588$431.$$arity = 3); - Opal.defn(self, '$_reduce_60', TMP_Ruby23__reduce_60_58 = function $$_reduce_60(val, _values, result) { - var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; + Opal.def(self, '$_reduce_589', $Ruby30__reduce_589$432 = function $$_reduce_589(val, _values, result) { + var self = this, $writer = nil; - method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; - result = self.builder.$block(method_call, begin_t, args, body, end_t); + + $writer = ["expr_end"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$symbol_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_60_58.$$arity = 3); + }, $Ruby30__reduce_589$432.$$arity = 3); - Opal.defn(self, '$_reduce_61', TMP_Ruby23__reduce_61_59 = function $$_reduce_61(val, _values, result) { + Opal.def(self, '$_reduce_590', $Ruby30__reduce_590$433 = function $$_reduce_590(val, _values, result) { var self = this; - result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); + result = val['$[]'](0); return result; - }, TMP_Ruby23__reduce_61_59.$$arity = 3); + }, $Ruby30__reduce_590$433.$$arity = 3); - Opal.defn(self, '$_reduce_62', TMP_Ruby23__reduce_62_60 = function $$_reduce_62(val, _values, result) { - var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; + Opal.def(self, '$_reduce_591', $Ruby30__reduce_591$434 = function $$_reduce_591(val, _values, result) { + var self = this; - method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; - result = self.builder.$block(method_call, begin_t, args, body, end_t); + if ($truthy(self.builder['$respond_to?']("negate"))) { + result = self.builder.$negate(val['$[]'](0), val['$[]'](1)) + } else { + result = self.builder.$unary_num(val['$[]'](0), val['$[]'](1)) + }; return result; - }, TMP_Ruby23__reduce_62_60.$$arity = 3); + }, $Ruby30__reduce_591$434.$$arity = 3); - Opal.defn(self, '$_reduce_63', TMP_Ruby23__reduce_63_61 = function $$_reduce_63(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_592', $Ruby30__reduce_592$435 = function $$_reduce_592(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$keyword_cmd("super", val['$[]'](0), nil, val['$[]'](1), nil); + + $writer = ["expr_end"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$integer(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_63_61.$$arity = 3); + }, $Ruby30__reduce_592$435.$$arity = 3); - Opal.defn(self, '$_reduce_64', TMP_Ruby23__reduce_64_62 = function $$_reduce_64(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_593', $Ruby30__reduce_593$436 = function $$_reduce_593(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$keyword_cmd("yield", val['$[]'](0), nil, val['$[]'](1), nil); + + $writer = ["expr_end"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$float(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_64_62.$$arity = 3); + }, $Ruby30__reduce_593$436.$$arity = 3); - Opal.defn(self, '$_reduce_65', TMP_Ruby23__reduce_65_63 = function $$_reduce_65(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_594', $Ruby30__reduce_594$437 = function $$_reduce_594(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$keyword_cmd("return", val['$[]'](0), nil, val['$[]'](1), nil); + + $writer = ["expr_end"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$rational(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_65_63.$$arity = 3); + }, $Ruby30__reduce_594$437.$$arity = 3); - Opal.defn(self, '$_reduce_66', TMP_Ruby23__reduce_66_64 = function $$_reduce_66(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_595', $Ruby30__reduce_595$438 = function $$_reduce_595(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$keyword_cmd("break", val['$[]'](0), nil, val['$[]'](1), nil); + + $writer = ["expr_end"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$complex(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_66_64.$$arity = 3); + }, $Ruby30__reduce_595$438.$$arity = 3); - Opal.defn(self, '$_reduce_67', TMP_Ruby23__reduce_67_65 = function $$_reduce_67(val, _values, result) { + Opal.def(self, '$_reduce_596', $Ruby30__reduce_596$439 = function $$_reduce_596(val, _values, result) { var self = this; - result = self.builder.$keyword_cmd("next", val['$[]'](0), nil, val['$[]'](1), nil); + result = self.builder.$ident(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_67_65.$$arity = 3); + }, $Ruby30__reduce_596$439.$$arity = 3); - Opal.defn(self, '$_reduce_68', TMP_Ruby23__reduce_68_66 = function $$_reduce_68(val, _values, result) { + Opal.def(self, '$_reduce_597', $Ruby30__reduce_597$440 = function $$_reduce_597(val, _values, result) { var self = this; - result = self.builder.$multi_lhs(nil, val['$[]'](0), nil); + result = self.builder.$ivar(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_68_66.$$arity = 3); + }, $Ruby30__reduce_597$440.$$arity = 3); - Opal.defn(self, '$_reduce_69', TMP_Ruby23__reduce_69_67 = function $$_reduce_69(val, _values, result) { + Opal.def(self, '$_reduce_598', $Ruby30__reduce_598$441 = function $$_reduce_598(val, _values, result) { var self = this; - result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$gvar(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_69_67.$$arity = 3); + }, $Ruby30__reduce_598$441.$$arity = 3); - Opal.defn(self, '$_reduce_70', TMP_Ruby23__reduce_70_68 = function $$_reduce_70(val, _values, result) { + Opal.def(self, '$_reduce_599', $Ruby30__reduce_599$442 = function $$_reduce_599(val, _values, result) { var self = this; - result = self.builder.$multi_lhs(nil, val['$[]'](0), nil); + result = self.builder.$const(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_70_68.$$arity = 3); + }, $Ruby30__reduce_599$442.$$arity = 3); - Opal.defn(self, '$_reduce_71', TMP_Ruby23__reduce_71_69 = function $$_reduce_71(val, _values, result) { + Opal.def(self, '$_reduce_600', $Ruby30__reduce_600$443 = function $$_reduce_600(val, _values, result) { var self = this; - result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$cvar(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_71_69.$$arity = 3); + }, $Ruby30__reduce_600$443.$$arity = 3); - Opal.defn(self, '$_reduce_73', TMP_Ruby23__reduce_73_70 = function $$_reduce_73(val, _values, result) { + Opal.def(self, '$_reduce_601', $Ruby30__reduce_601$444 = function $$_reduce_601(val, _values, result) { var self = this; - result = val['$[]'](0).$push(val['$[]'](1)); + result = self.builder.$nil(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_73_70.$$arity = 3); + }, $Ruby30__reduce_601$444.$$arity = 3); - Opal.defn(self, '$_reduce_74', TMP_Ruby23__reduce_74_71 = function $$_reduce_74(val, _values, result) { + Opal.def(self, '$_reduce_602', $Ruby30__reduce_602$445 = function $$_reduce_602(val, _values, result) { var self = this; - result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1), val['$[]'](2))); + result = self.builder.$self(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_74_71.$$arity = 3); + }, $Ruby30__reduce_602$445.$$arity = 3); - Opal.defn(self, '$_reduce_75', TMP_Ruby23__reduce_75_72 = function $$_reduce_75(val, _values, result) { + Opal.def(self, '$_reduce_603', $Ruby30__reduce_603$446 = function $$_reduce_603(val, _values, result) { var self = this; - result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1), val['$[]'](2))).$concat(val['$[]'](4)); + result = self.builder.$true(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_75_72.$$arity = 3); + }, $Ruby30__reduce_603$446.$$arity = 3); - Opal.defn(self, '$_reduce_76', TMP_Ruby23__reduce_76_73 = function $$_reduce_76(val, _values, result) { + Opal.def(self, '$_reduce_604', $Ruby30__reduce_604$447 = function $$_reduce_604(val, _values, result) { var self = this; - result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1))); + result = self.builder.$false(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_76_73.$$arity = 3); + }, $Ruby30__reduce_604$447.$$arity = 3); - Opal.defn(self, '$_reduce_77', TMP_Ruby23__reduce_77_74 = function $$_reduce_77(val, _values, result) { + Opal.def(self, '$_reduce_605', $Ruby30__reduce_605$448 = function $$_reduce_605(val, _values, result) { var self = this; - result = val['$[]'](0).$push(self.builder.$splat(val['$[]'](1))).$concat(val['$[]'](3)); + result = self.builder.$__FILE__(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_77_74.$$arity = 3); + }, $Ruby30__reduce_605$448.$$arity = 3); - Opal.defn(self, '$_reduce_78', TMP_Ruby23__reduce_78_75 = function $$_reduce_78(val, _values, result) { + Opal.def(self, '$_reduce_606', $Ruby30__reduce_606$449 = function $$_reduce_606(val, _values, result) { var self = this; - result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; + result = self.builder.$__LINE__(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_78_75.$$arity = 3); + }, $Ruby30__reduce_606$449.$$arity = 3); - Opal.defn(self, '$_reduce_79', TMP_Ruby23__reduce_79_76 = function $$_reduce_79(val, _values, result) { + Opal.def(self, '$_reduce_607', $Ruby30__reduce_607$450 = function $$_reduce_607(val, _values, result) { var self = this; - result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))].concat(Opal.to_a(val['$[]'](3))); + result = self.builder.$__ENCODING__(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_79_76.$$arity = 3); + }, $Ruby30__reduce_607$450.$$arity = 3); - Opal.defn(self, '$_reduce_80', TMP_Ruby23__reduce_80_77 = function $$_reduce_80(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_608', $Ruby30__reduce_608$451 = function $$_reduce_608(val, _values, result) { + var $$452, self = this, $ret_or_5 = nil, node = nil, name = nil, $ret_or_6 = nil, $ret_or_7 = nil, location = nil, raw_context = nil, raw_max_numparam_stack = nil; - result = [self.builder.$splat(val['$[]'](0))]; + if ($truthy((function() {if ($truthy(($ret_or_5 = (node = val['$[]'](0))))) { + return node.$type()['$==']("ident") + } else { + return $ret_or_5 + }; return nil; })())) { + + name = node.$children()['$[]'](0); + if ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = name['$=~'](/^_[1-9]$/)))) { + return self.$static_env()['$declared?'](name)['$!']() + } else { + return $ret_or_7 + }; return nil; })()))) { + return self.$context()['$in_dynamic_block?']() + } else { + return $ret_or_6 + }; return nil; })())) { + + location = node.$loc().$expression(); + if ($truthy(self.$max_numparam_stack()['$has_ordinary_params?']())) { + self.$diagnostic("error", "ordinary_param_defined", nil, [nil, location])}; + raw_context = self.$context().$stack().$dup(); + raw_max_numparam_stack = self.$max_numparam_stack().$stack().$dup(); + raw_context.$pop(); + raw_max_numparam_stack.$pop(); + (function(){var $brk = Opal.new_brk(); try {return $send(raw_context, 'reverse_each', [], ($$452 = function(outer_scope){var self = $$452.$$s == null ? this : $$452.$$s, $ret_or_8 = nil, outer_scope_has_numparams = nil; + + + + if (outer_scope == null) { + outer_scope = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_8 = outer_scope['$==']("block")))) { + return $ret_or_8 + } else { + return outer_scope['$==']("lambda") + }; return nil; })())) { + + outer_scope_has_numparams = $rb_gt(raw_max_numparam_stack.$pop(), 0); + if ($truthy(outer_scope_has_numparams)) { + return self.$diagnostic("error", "numparam_used_in_outer_scope", nil, [nil, location]) + } else { + return nil + }; + } else { + + Opal.brk(nil, $brk) + };}, $$452.$$s = self, $$452.$$brk = $brk, $$452.$$arity = 1, $$452)) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + self.$static_env().$declare(name); + self.$max_numparam_stack().$register(name['$[]'](1).$to_i());};}; + result = self.builder.$accessible(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_80_77.$$arity = 3); + }, $Ruby30__reduce_608$451.$$arity = 3); - Opal.defn(self, '$_reduce_81', TMP_Ruby23__reduce_81_78 = function $$_reduce_81(val, _values, result) { + Opal.def(self, '$_reduce_609', $Ruby30__reduce_609$453 = function $$_reduce_609(val, _values, result) { var self = this; - result = [self.builder.$splat(val['$[]'](0))].concat(Opal.to_a(val['$[]'](2))); + result = self.builder.$accessible(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_81_78.$$arity = 3); + }, $Ruby30__reduce_609$453.$$arity = 3); - Opal.defn(self, '$_reduce_83', TMP_Ruby23__reduce_83_79 = function $$_reduce_83(val, _values, result) { + Opal.def(self, '$_reduce_610', $Ruby30__reduce_610$454 = function $$_reduce_610(val, _values, result) { var self = this; - result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$assignable(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_83_79.$$arity = 3); + }, $Ruby30__reduce_610$454.$$arity = 3); - Opal.defn(self, '$_reduce_84', TMP_Ruby23__reduce_84_80 = function $$_reduce_84(val, _values, result) { + Opal.def(self, '$_reduce_611', $Ruby30__reduce_611$455 = function $$_reduce_611(val, _values, result) { var self = this; - result = [val['$[]'](0)]; + result = self.builder.$assignable(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_84_80.$$arity = 3); + }, $Ruby30__reduce_611$455.$$arity = 3); - Opal.defn(self, '$_reduce_85', TMP_Ruby23__reduce_85_81 = function $$_reduce_85(val, _values, result) { + Opal.def(self, '$_reduce_612', $Ruby30__reduce_612$456 = function $$_reduce_612(val, _values, result) { var self = this; - result = val['$[]'](0)['$<<'](val['$[]'](1)); + result = self.builder.$nth_ref(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_85_81.$$arity = 3); + }, $Ruby30__reduce_612$456.$$arity = 3); - Opal.defn(self, '$_reduce_86', TMP_Ruby23__reduce_86_82 = function $$_reduce_86(val, _values, result) { + Opal.def(self, '$_reduce_613', $Ruby30__reduce_613$457 = function $$_reduce_613(val, _values, result) { var self = this; - result = [val['$[]'](0)]; + result = self.builder.$back_ref(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_86_82.$$arity = 3); + }, $Ruby30__reduce_613$457.$$arity = 3); - Opal.defn(self, '$_reduce_87', TMP_Ruby23__reduce_87_83 = function $$_reduce_87(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_614', $Ruby30__reduce_614$458 = function $$_reduce_614(val, _values, result) { + var self = this, $writer = nil; - result = val['$[]'](0)['$<<'](val['$[]'](2)); + + $writer = ["expr_value"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; return result; - }, TMP_Ruby23__reduce_87_83.$$arity = 3); + }, $Ruby30__reduce_614$458.$$arity = 3); - Opal.defn(self, '$_reduce_88', TMP_Ruby23__reduce_88_84 = function $$_reduce_88(val, _values, result) { + Opal.def(self, '$_reduce_615', $Ruby30__reduce_615$459 = function $$_reduce_615(val, _values, result) { var self = this; - result = self.builder.$assignable(val['$[]'](0)); + result = [val['$[]'](0), val['$[]'](2)]; return result; - }, TMP_Ruby23__reduce_88_84.$$arity = 3); + }, $Ruby30__reduce_615$459.$$arity = 3); - Opal.defn(self, '$_reduce_89', TMP_Ruby23__reduce_89_85 = function $$_reduce_89(val, _values, result) { + Opal.def(self, '$_reduce_616', $Ruby30__reduce_616$460 = function $$_reduce_616(val, _values, result) { var self = this; - result = self.builder.$assignable(val['$[]'](0)); + result = nil; return result; - }, TMP_Ruby23__reduce_89_85.$$arity = 3); + }, $Ruby30__reduce_616$460.$$arity = 3); - Opal.defn(self, '$_reduce_90', TMP_Ruby23__reduce_90_86 = function $$_reduce_90(val, _values, result) { + Opal.def(self, '$_reduce_618', $Ruby30__reduce_618$461 = function $$_reduce_618(val, _values, result) { var self = this; - result = self.builder.$index_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + result = self.builder.$args(nil, [], nil); return result; - }, TMP_Ruby23__reduce_90_86.$$arity = 3); + }, $Ruby30__reduce_618$461.$$arity = 3); - Opal.defn(self, '$_reduce_91', TMP_Ruby23__reduce_91_87 = function $$_reduce_91(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_619', $Ruby30__reduce_619$462 = function $$_reduce_619(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + + $writer = ["expr_value"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; return result; - }, TMP_Ruby23__reduce_91_87.$$arity = 3); + }, $Ruby30__reduce_619$462.$$arity = 3); - Opal.defn(self, '$_reduce_92', TMP_Ruby23__reduce_92_88 = function $$_reduce_92(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_620', $Ruby30__reduce_620$463 = function $$_reduce_620(val, _values, result) { + var self = this, args = nil; - result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + args = [].concat(Opal.to_a(val['$[]'](1))).concat([self.builder.$forward_arg(val['$[]'](3))]); + result = self.builder.$args(val['$[]'](0), args, val['$[]'](4)); + self.static_env.$declare_forward_args(); return result; - }, TMP_Ruby23__reduce_92_88.$$arity = 3); + }, $Ruby30__reduce_620$463.$$arity = 3); - Opal.defn(self, '$_reduce_93', TMP_Ruby23__reduce_93_89 = function $$_reduce_93(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_621', $Ruby30__reduce_621$464 = function $$_reduce_621(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$forward_only_args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.static_env.$declare_forward_args(); + + $writer = ["expr_value"]; + $send(self.lexer, 'state=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; return result; - }, TMP_Ruby23__reduce_93_89.$$arity = 3); + }, $Ruby30__reduce_621$464.$$arity = 3); - Opal.defn(self, '$_reduce_94', TMP_Ruby23__reduce_94_90 = function $$_reduce_94(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_623', $Ruby30__reduce_623$465 = function $$_reduce_623(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); + result = self.lexer.$in_kwarg(); + + $writer = [true]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; return result; - }, TMP_Ruby23__reduce_94_90.$$arity = 3); + }, $Ruby30__reduce_623$465.$$arity = 3); - Opal.defn(self, '$_reduce_95', TMP_Ruby23__reduce_95_91 = function $$_reduce_95(val, _values, result) { - var self = this; + Opal.def(self, '$_reduce_624', $Ruby30__reduce_624$466 = function $$_reduce_624(val, _values, result) { + var self = this, $writer = nil; - result = self.builder.$assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); + + $writer = [val['$[]'](0)]; + $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + result = self.builder.$args(nil, val['$[]'](1), nil); return result; - }, TMP_Ruby23__reduce_95_91.$$arity = 3); + }, $Ruby30__reduce_624$466.$$arity = 3); - Opal.defn(self, '$_reduce_96', TMP_Ruby23__reduce_96_92 = function $$_reduce_96(val, _values, result) { + Opal.def(self, '$_reduce_625', $Ruby30__reduce_625$467 = function $$_reduce_625(val, _values, result) { var self = this; - result = self.builder.$assignable(val['$[]'](0)); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, TMP_Ruby23__reduce_96_92.$$arity = 3); + }, $Ruby30__reduce_625$467.$$arity = 3); - Opal.defn(self, '$_reduce_97', TMP_Ruby23__reduce_97_93 = function $$_reduce_97(val, _values, result) { + Opal.def(self, '$_reduce_626', $Ruby30__reduce_626$468 = function $$_reduce_626(val, _values, result) { var self = this; - result = self.builder.$assignable(val['$[]'](0)); + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_97_93.$$arity = 3); + }, $Ruby30__reduce_626$468.$$arity = 3); - Opal.defn(self, '$_reduce_98', TMP_Ruby23__reduce_98_94 = function $$_reduce_98(val, _values, result) { + Opal.def(self, '$_reduce_627', $Ruby30__reduce_627$469 = function $$_reduce_627(val, _values, result) { var self = this; - result = self.builder.$assignable(val['$[]'](0)); + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_98_94.$$arity = 3); + }, $Ruby30__reduce_627$469.$$arity = 3); - Opal.defn(self, '$_reduce_99', TMP_Ruby23__reduce_99_95 = function $$_reduce_99(val, _values, result) { + Opal.def(self, '$_reduce_628', $Ruby30__reduce_628$470 = function $$_reduce_628(val, _values, result) { var self = this; - result = self.builder.$index_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); + result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_99_95.$$arity = 3); + }, $Ruby30__reduce_628$470.$$arity = 3); - Opal.defn(self, '$_reduce_100', TMP_Ruby23__reduce_100_96 = function $$_reduce_100(val, _values, result) { + Opal.def(self, '$_reduce_629', $Ruby30__reduce_629$471 = function $$_reduce_629(val, _values, result) { var self = this; - result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](1); return result; - }, TMP_Ruby23__reduce_100_96.$$arity = 3); + }, $Ruby30__reduce_629$471.$$arity = 3); - Opal.defn(self, '$_reduce_101', TMP_Ruby23__reduce_101_97 = function $$_reduce_101(val, _values, result) { + Opal.def(self, '$_reduce_630', $Ruby30__reduce_630$472 = function $$_reduce_630(val, _values, result) { var self = this; - result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = []; return result; - }, TMP_Ruby23__reduce_101_97.$$arity = 3); + }, $Ruby30__reduce_630$472.$$arity = 3); - Opal.defn(self, '$_reduce_102', TMP_Ruby23__reduce_102_98 = function $$_reduce_102(val, _values, result) { + Opal.def(self, '$_reduce_631', $Ruby30__reduce_631$473 = function $$_reduce_631(val, _values, result) { var self = this; - result = self.builder.$attr_asgn(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, TMP_Ruby23__reduce_102_98.$$arity = 3); + }, $Ruby30__reduce_631$473.$$arity = 3); - Opal.defn(self, '$_reduce_103', TMP_Ruby23__reduce_103_99 = function $$_reduce_103(val, _values, result) { + Opal.def(self, '$_reduce_632', $Ruby30__reduce_632$474 = function $$_reduce_632(val, _values, result) { var self = this; - result = self.builder.$assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](6)).$concat(val['$[]'](7)); return result; - }, TMP_Ruby23__reduce_103_99.$$arity = 3); + }, $Ruby30__reduce_632$474.$$arity = 3); - Opal.defn(self, '$_reduce_104', TMP_Ruby23__reduce_104_100 = function $$_reduce_104(val, _values, result) { + Opal.def(self, '$_reduce_633', $Ruby30__reduce_633$475 = function $$_reduce_633(val, _values, result) { var self = this; - result = self.builder.$assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, TMP_Ruby23__reduce_104_100.$$arity = 3); + }, $Ruby30__reduce_633$475.$$arity = 3); - Opal.defn(self, '$_reduce_105', TMP_Ruby23__reduce_105_101 = function $$_reduce_105(val, _values, result) { + Opal.def(self, '$_reduce_634', $Ruby30__reduce_634$476 = function $$_reduce_634(val, _values, result) { var self = this; - result = self.builder.$assignable(val['$[]'](0)); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, TMP_Ruby23__reduce_105_101.$$arity = 3); + }, $Ruby30__reduce_634$476.$$arity = 3); - Opal.defn(self, '$_reduce_106', TMP_Ruby23__reduce_106_102 = function $$_reduce_106(val, _values, result) { + Opal.def(self, '$_reduce_635', $Ruby30__reduce_635$477 = function $$_reduce_635(val, _values, result) { var self = this; - self.$diagnostic("error", "module_name_const", nil, val['$[]'](0)); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, TMP_Ruby23__reduce_106_102.$$arity = 3); + }, $Ruby30__reduce_635$477.$$arity = 3); - Opal.defn(self, '$_reduce_108', TMP_Ruby23__reduce_108_103 = function $$_reduce_108(val, _values, result) { + Opal.def(self, '$_reduce_636', $Ruby30__reduce_636$478 = function $$_reduce_636(val, _values, result) { var self = this; - result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, TMP_Ruby23__reduce_108_103.$$arity = 3); + }, $Ruby30__reduce_636$478.$$arity = 3); - Opal.defn(self, '$_reduce_109', TMP_Ruby23__reduce_109_104 = function $$_reduce_109(val, _values, result) { + Opal.def(self, '$_reduce_637', $Ruby30__reduce_637$479 = function $$_reduce_637(val, _values, result) { var self = this; - result = self.builder.$const(val['$[]'](0)); + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_109_104.$$arity = 3); + }, $Ruby30__reduce_637$479.$$arity = 3); - Opal.defn(self, '$_reduce_110', TMP_Ruby23__reduce_110_105 = function $$_reduce_110(val, _values, result) { + Opal.def(self, '$_reduce_638', $Ruby30__reduce_638$480 = function $$_reduce_638(val, _values, result) { var self = this; - result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, TMP_Ruby23__reduce_110_105.$$arity = 3); + }, $Ruby30__reduce_638$480.$$arity = 3); - Opal.defn(self, '$_reduce_116', TMP_Ruby23__reduce_116_106 = function $$_reduce_116(val, _values, result) { + Opal.def(self, '$_reduce_639', $Ruby30__reduce_639$481 = function $$_reduce_639(val, _values, result) { var self = this; - result = self.builder.$symbol(val['$[]'](0)); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); return result; - }, TMP_Ruby23__reduce_116_106.$$arity = 3); + }, $Ruby30__reduce_639$481.$$arity = 3); - Opal.defn(self, '$_reduce_120', TMP_Ruby23__reduce_120_107 = function $$_reduce_120(val, _values, result) { + Opal.def(self, '$_reduce_640', $Ruby30__reduce_640$482 = function $$_reduce_640(val, _values, result) { var self = this; - result = [val['$[]'](0)]; + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_120_107.$$arity = 3); + }, $Ruby30__reduce_640$482.$$arity = 3); - Opal.defn(self, '$_reduce_121', TMP_Ruby23__reduce_121_108 = function $$_reduce_121(val, _values, result) { - var self = this, $writer = nil; + Opal.def(self, '$_reduce_641', $Ruby30__reduce_641$483 = function $$_reduce_641(val, _values, result) { + var self = this; - - $writer = ["expr_fname"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, TMP_Ruby23__reduce_121_108.$$arity = 3); + }, $Ruby30__reduce_641$483.$$arity = 3); - Opal.defn(self, '$_reduce_122', TMP_Ruby23__reduce_122_109 = function $$_reduce_122(val, _values, result) { + Opal.def(self, '$_reduce_642', $Ruby30__reduce_642$484 = function $$_reduce_642(val, _values, result) { var self = this; - result = val['$[]'](0)['$<<'](val['$[]'](3)); + result = val['$[]'](0).$concat(val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_122_109.$$arity = 3); + }, $Ruby30__reduce_642$484.$$arity = 3); - Opal.defn(self, '$_reduce_194', TMP_Ruby23__reduce_194_110 = function $$_reduce_194(val, _values, result) { + Opal.def(self, '$_reduce_643', $Ruby30__reduce_643$485 = function $$_reduce_643(val, _values, result) { var self = this; - result = self.builder.$assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); return result; - }, TMP_Ruby23__reduce_194_110.$$arity = 3); + }, $Ruby30__reduce_643$485.$$arity = 3); - Opal.defn(self, '$_reduce_195', TMP_Ruby23__reduce_195_111 = function $$_reduce_195(val, _values, result) { - var self = this, rescue_body = nil, rescue_ = nil; + Opal.def(self, '$_reduce_644', $Ruby30__reduce_644$486 = function $$_reduce_644(val, _values, result) { + var self = this; - rescue_body = self.builder.$rescue_body(val['$[]'](3), nil, nil, nil, nil, val['$[]'](4)); - rescue_ = self.builder.$begin_body(val['$[]'](2), [rescue_body]); - result = self.builder.$assign(val['$[]'](0), val['$[]'](1), rescue_); + result = val['$[]'](0); return result; - }, TMP_Ruby23__reduce_195_111.$$arity = 3); + }, $Ruby30__reduce_644$486.$$arity = 3); - Opal.defn(self, '$_reduce_196', TMP_Ruby23__reduce_196_112 = function $$_reduce_196(val, _values, result) { + Opal.def(self, '$_reduce_645', $Ruby30__reduce_645$487 = function $$_reduce_645(val, _values, result) { var self = this; - result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = []; return result; - }, TMP_Ruby23__reduce_196_112.$$arity = 3); + }, $Ruby30__reduce_645$487.$$arity = 3); - Opal.defn(self, '$_reduce_197', TMP_Ruby23__reduce_197_113 = function $$_reduce_197(val, _values, result) { - var self = this, rescue_body = nil, rescue_ = nil; + Opal.def(self, '$_reduce_646', $Ruby30__reduce_646$488 = function $$_reduce_646(val, _values, result) { + var self = this; - rescue_body = self.builder.$rescue_body(val['$[]'](3), nil, nil, nil, nil, val['$[]'](4)); - rescue_ = self.builder.$begin_body(val['$[]'](2), [rescue_body]); - result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), rescue_); + result = val['$[]'](0); return result; - }, TMP_Ruby23__reduce_197_113.$$arity = 3); + }, $Ruby30__reduce_646$488.$$arity = 3); - Opal.defn(self, '$_reduce_198', TMP_Ruby23__reduce_198_114 = function $$_reduce_198(val, _values, result) { + Opal.def(self, '$_reduce_647', $Ruby30__reduce_647$489 = function $$_reduce_647(val, _values, result) { var self = this; - result = self.builder.$op_assign(self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)), val['$[]'](4), val['$[]'](5)); + self.$diagnostic("error", "argument_const", nil, val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_198_114.$$arity = 3); + }, $Ruby30__reduce_647$489.$$arity = 3); - Opal.defn(self, '$_reduce_199', TMP_Ruby23__reduce_199_115 = function $$_reduce_199(val, _values, result) { + Opal.def(self, '$_reduce_648', $Ruby30__reduce_648$490 = function $$_reduce_648(val, _values, result) { var self = this; - result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + self.$diagnostic("error", "argument_ivar", nil, val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_199_115.$$arity = 3); + }, $Ruby30__reduce_648$490.$$arity = 3); - Opal.defn(self, '$_reduce_200', TMP_Ruby23__reduce_200_116 = function $$_reduce_200(val, _values, result) { + Opal.def(self, '$_reduce_649', $Ruby30__reduce_649$491 = function $$_reduce_649(val, _values, result) { var self = this; - result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + self.$diagnostic("error", "argument_gvar", nil, val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_200_116.$$arity = 3); + }, $Ruby30__reduce_649$491.$$arity = 3); - Opal.defn(self, '$_reduce_201', TMP_Ruby23__reduce_201_117 = function $$_reduce_201(val, _values, result) { + Opal.def(self, '$_reduce_650', $Ruby30__reduce_650$492 = function $$_reduce_650(val, _values, result) { var self = this; - result = self.builder.$op_assign(self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)), val['$[]'](3), val['$[]'](4)); + self.$diagnostic("error", "argument_cvar", nil, val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_201_117.$$arity = 3); + }, $Ruby30__reduce_650$492.$$arity = 3); - Opal.defn(self, '$_reduce_202', TMP_Ruby23__reduce_202_118 = function $$_reduce_202(val, _values, result) { - var self = this, const$ = nil; + Opal.def(self, '$_reduce_652', $Ruby30__reduce_652$493 = function $$_reduce_652(val, _values, result) { + var self = this; - const$ = self.builder.$const_op_assignable(self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2))); - result = self.builder.$op_assign(const$, val['$[]'](3), val['$[]'](4)); + self.static_env.$declare(val['$[]'](0)['$[]'](0)); + self.max_numparam_stack['$has_ordinary_params!'](); + result = val['$[]'](0); return result; - }, TMP_Ruby23__reduce_202_118.$$arity = 3); + }, $Ruby30__reduce_652$493.$$arity = 3); - Opal.defn(self, '$_reduce_203', TMP_Ruby23__reduce_203_119 = function $$_reduce_203(val, _values, result) { - var self = this, const$ = nil; + Opal.def(self, '$_reduce_653', $Ruby30__reduce_653$494 = function $$_reduce_653(val, _values, result) { + var self = this; - const$ = self.builder.$const_op_assignable(self.builder.$const_global(val['$[]'](0), val['$[]'](1))); - result = self.builder.$op_assign(const$, val['$[]'](2), val['$[]'](3)); + self.current_arg_stack.$set(val['$[]'](0)['$[]'](0)); + result = val['$[]'](0); return result; - }, TMP_Ruby23__reduce_203_119.$$arity = 3); + }, $Ruby30__reduce_653$494.$$arity = 3); - Opal.defn(self, '$_reduce_204', TMP_Ruby23__reduce_204_120 = function $$_reduce_204(val, _values, result) { + Opal.def(self, '$_reduce_654', $Ruby30__reduce_654$495 = function $$_reduce_654(val, _values, result) { var self = this; - result = self.builder.$op_assign(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.current_arg_stack.$set(0); + result = self.builder.$arg(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_204_120.$$arity = 3); + }, $Ruby30__reduce_654$495.$$arity = 3); - Opal.defn(self, '$_reduce_205', TMP_Ruby23__reduce_205_121 = function $$_reduce_205(val, _values, result) { + Opal.def(self, '$_reduce_655', $Ruby30__reduce_655$496 = function $$_reduce_655(val, _values, result) { var self = this; - result = self.builder.$range_inclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_205_121.$$arity = 3); + }, $Ruby30__reduce_655$496.$$arity = 3); - Opal.defn(self, '$_reduce_206', TMP_Ruby23__reduce_206_122 = function $$_reduce_206(val, _values, result) { + Opal.def(self, '$_reduce_656', $Ruby30__reduce_656$497 = function $$_reduce_656(val, _values, result) { var self = this; - result = self.builder.$range_exclusive(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_206_122.$$arity = 3); + }, $Ruby30__reduce_656$497.$$arity = 3); - Opal.defn(self, '$_reduce_207', TMP_Ruby23__reduce_207_123 = function $$_reduce_207(val, _values, result) { + Opal.def(self, '$_reduce_657', $Ruby30__reduce_657$498 = function $$_reduce_657(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_207_123.$$arity = 3); + }, $Ruby30__reduce_657$498.$$arity = 3); - Opal.defn(self, '$_reduce_208', TMP_Ruby23__reduce_208_124 = function $$_reduce_208(val, _values, result) { + Opal.def(self, '$_reduce_658', $Ruby30__reduce_658$499 = function $$_reduce_658(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.$check_kwarg_name(val['$[]'](0)); + self.static_env.$declare(val['$[]'](0)['$[]'](0)); + self.max_numparam_stack['$has_ordinary_params!'](); + self.current_arg_stack.$set(val['$[]'](0)['$[]'](0)); + result = val['$[]'](0); return result; - }, TMP_Ruby23__reduce_208_124.$$arity = 3); + }, $Ruby30__reduce_658$499.$$arity = 3); - Opal.defn(self, '$_reduce_209', TMP_Ruby23__reduce_209_125 = function $$_reduce_209(val, _values, result) { + Opal.def(self, '$_reduce_659', $Ruby30__reduce_659$500 = function $$_reduce_659(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.current_arg_stack.$set(nil); + result = self.builder.$kwoptarg(val['$[]'](0), val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_209_125.$$arity = 3); + }, $Ruby30__reduce_659$500.$$arity = 3); - Opal.defn(self, '$_reduce_210', TMP_Ruby23__reduce_210_126 = function $$_reduce_210(val, _values, result) { + Opal.def(self, '$_reduce_660', $Ruby30__reduce_660$501 = function $$_reduce_660(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.current_arg_stack.$set(nil); + result = self.builder.$kwarg(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_210_126.$$arity = 3); + }, $Ruby30__reduce_660$501.$$arity = 3); - Opal.defn(self, '$_reduce_211', TMP_Ruby23__reduce_211_127 = function $$_reduce_211(val, _values, result) { + Opal.def(self, '$_reduce_661', $Ruby30__reduce_661$502 = function $$_reduce_661(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$kwoptarg(val['$[]'](0), val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_211_127.$$arity = 3); + }, $Ruby30__reduce_661$502.$$arity = 3); - Opal.defn(self, '$_reduce_212', TMP_Ruby23__reduce_212_128 = function $$_reduce_212(val, _values, result) { + Opal.def(self, '$_reduce_662', $Ruby30__reduce_662$503 = function $$_reduce_662(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = self.builder.$kwarg(val['$[]'](0)); return result; - }, TMP_Ruby23__reduce_212_128.$$arity = 3); + }, $Ruby30__reduce_662$503.$$arity = 3); - Opal.defn(self, '$_reduce_213', TMP_Ruby23__reduce_213_129 = function $$_reduce_213(val, _values, result) { + Opal.def(self, '$_reduce_663', $Ruby30__reduce_663$504 = function $$_reduce_663(val, _values, result) { var self = this; - result = self.builder.$unary_op(val['$[]'](0), self.builder.$binary_op(val['$[]'](1), val['$[]'](2), val['$[]'](3))); + result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_213_129.$$arity = 3); + }, $Ruby30__reduce_663$504.$$arity = 3); - Opal.defn(self, '$_reduce_214', TMP_Ruby23__reduce_214_130 = function $$_reduce_214(val, _values, result) { + Opal.def(self, '$_reduce_664', $Ruby30__reduce_664$505 = function $$_reduce_664(val, _values, result) { var self = this; - result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_214_130.$$arity = 3); + }, $Ruby30__reduce_664$505.$$arity = 3); - Opal.defn(self, '$_reduce_215', TMP_Ruby23__reduce_215_131 = function $$_reduce_215(val, _values, result) { + Opal.def(self, '$_reduce_665', $Ruby30__reduce_665$506 = function $$_reduce_665(val, _values, result) { var self = this; - result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); + result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_215_131.$$arity = 3); + }, $Ruby30__reduce_665$506.$$arity = 3); - Opal.defn(self, '$_reduce_216', TMP_Ruby23__reduce_216_132 = function $$_reduce_216(val, _values, result) { + Opal.def(self, '$_reduce_666', $Ruby30__reduce_666$507 = function $$_reduce_666(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_216_132.$$arity = 3); + }, $Ruby30__reduce_666$507.$$arity = 3); - Opal.defn(self, '$_reduce_217', TMP_Ruby23__reduce_217_133 = function $$_reduce_217(val, _values, result) { + Opal.def(self, '$_reduce_669', $Ruby30__reduce_669$508 = function $$_reduce_669(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = [self.builder.$kwnilarg(val['$[]'](0), val['$[]'](1))]; return result; - }, TMP_Ruby23__reduce_217_133.$$arity = 3); + }, $Ruby30__reduce_669$508.$$arity = 3); - Opal.defn(self, '$_reduce_218', TMP_Ruby23__reduce_218_134 = function $$_reduce_218(val, _values, result) { + Opal.def(self, '$_reduce_670', $Ruby30__reduce_670$509 = function $$_reduce_670(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.static_env.$declare(val['$[]'](1)['$[]'](0)); + result = [self.builder.$kwrestarg(val['$[]'](0), val['$[]'](1))]; return result; - }, TMP_Ruby23__reduce_218_134.$$arity = 3); + }, $Ruby30__reduce_670$509.$$arity = 3); - Opal.defn(self, '$_reduce_219', TMP_Ruby23__reduce_219_135 = function $$_reduce_219(val, _values, result) { + Opal.def(self, '$_reduce_671', $Ruby30__reduce_671$510 = function $$_reduce_671(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = [self.builder.$kwrestarg(val['$[]'](0))]; return result; - }, TMP_Ruby23__reduce_219_135.$$arity = 3); + }, $Ruby30__reduce_671$510.$$arity = 3); - Opal.defn(self, '$_reduce_220', TMP_Ruby23__reduce_220_136 = function $$_reduce_220(val, _values, result) { + Opal.def(self, '$_reduce_672', $Ruby30__reduce_672$511 = function $$_reduce_672(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.current_arg_stack.$set(0); + result = self.builder.$optarg(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_220_136.$$arity = 3); + }, $Ruby30__reduce_672$511.$$arity = 3); - Opal.defn(self, '$_reduce_221', TMP_Ruby23__reduce_221_137 = function $$_reduce_221(val, _values, result) { + Opal.def(self, '$_reduce_673', $Ruby30__reduce_673$512 = function $$_reduce_673(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.current_arg_stack.$set(0); + result = self.builder.$optarg(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_221_137.$$arity = 3); + }, $Ruby30__reduce_673$512.$$arity = 3); - Opal.defn(self, '$_reduce_222', TMP_Ruby23__reduce_222_138 = function $$_reduce_222(val, _values, result) { + Opal.def(self, '$_reduce_674', $Ruby30__reduce_674$513 = function $$_reduce_674(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_222_138.$$arity = 3); + }, $Ruby30__reduce_674$513.$$arity = 3); - Opal.defn(self, '$_reduce_223', TMP_Ruby23__reduce_223_139 = function $$_reduce_223(val, _values, result) { + Opal.def(self, '$_reduce_675', $Ruby30__reduce_675$514 = function $$_reduce_675(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_223_139.$$arity = 3); + }, $Ruby30__reduce_675$514.$$arity = 3); - Opal.defn(self, '$_reduce_224', TMP_Ruby23__reduce_224_140 = function $$_reduce_224(val, _values, result) { + Opal.def(self, '$_reduce_676', $Ruby30__reduce_676$515 = function $$_reduce_676(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_224_140.$$arity = 3); + }, $Ruby30__reduce_676$515.$$arity = 3); - Opal.defn(self, '$_reduce_225', TMP_Ruby23__reduce_225_141 = function $$_reduce_225(val, _values, result) { + Opal.def(self, '$_reduce_677', $Ruby30__reduce_677$516 = function $$_reduce_677(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_225_141.$$arity = 3); + }, $Ruby30__reduce_677$516.$$arity = 3); - Opal.defn(self, '$_reduce_226', TMP_Ruby23__reduce_226_142 = function $$_reduce_226(val, _values, result) { + Opal.def(self, '$_reduce_680', $Ruby30__reduce_680$517 = function $$_reduce_680(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.static_env.$declare(val['$[]'](1)['$[]'](0)); + result = [self.builder.$restarg(val['$[]'](0), val['$[]'](1))]; return result; - }, TMP_Ruby23__reduce_226_142.$$arity = 3); + }, $Ruby30__reduce_680$517.$$arity = 3); - Opal.defn(self, '$_reduce_227', TMP_Ruby23__reduce_227_143 = function $$_reduce_227(val, _values, result) { + Opal.def(self, '$_reduce_681', $Ruby30__reduce_681$518 = function $$_reduce_681(val, _values, result) { var self = this; - result = self.builder.$match_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = [self.builder.$restarg(val['$[]'](0))]; return result; - }, TMP_Ruby23__reduce_227_143.$$arity = 3); + }, $Ruby30__reduce_681$518.$$arity = 3); - Opal.defn(self, '$_reduce_228', TMP_Ruby23__reduce_228_144 = function $$_reduce_228(val, _values, result) { + Opal.def(self, '$_reduce_684', $Ruby30__reduce_684$519 = function $$_reduce_684(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + self.static_env.$declare(val['$[]'](1)['$[]'](0)); + result = self.builder.$blockarg(val['$[]'](0), val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_228_144.$$arity = 3); + }, $Ruby30__reduce_684$519.$$arity = 3); - Opal.defn(self, '$_reduce_229', TMP_Ruby23__reduce_229_145 = function $$_reduce_229(val, _values, result) { + Opal.def(self, '$_reduce_685', $Ruby30__reduce_685$520 = function $$_reduce_685(val, _values, result) { var self = this; - result = self.builder.$not_op(val['$[]'](0), nil, val['$[]'](1), nil); + result = [val['$[]'](1)]; return result; - }, TMP_Ruby23__reduce_229_145.$$arity = 3); + }, $Ruby30__reduce_685$520.$$arity = 3); - Opal.defn(self, '$_reduce_230', TMP_Ruby23__reduce_230_146 = function $$_reduce_230(val, _values, result) { + Opal.def(self, '$_reduce_686', $Ruby30__reduce_686$521 = function $$_reduce_686(val, _values, result) { var self = this; - result = self.builder.$unary_op(val['$[]'](0), val['$[]'](1)); + result = []; return result; - }, TMP_Ruby23__reduce_230_146.$$arity = 3); + }, $Ruby30__reduce_686$521.$$arity = 3); - Opal.defn(self, '$_reduce_231', TMP_Ruby23__reduce_231_147 = function $$_reduce_231(val, _values, result) { + Opal.def(self, '$_reduce_688', $Ruby30__reduce_688$522 = function $$_reduce_688(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](1); return result; - }, TMP_Ruby23__reduce_231_147.$$arity = 3); + }, $Ruby30__reduce_688$522.$$arity = 3); - Opal.defn(self, '$_reduce_232', TMP_Ruby23__reduce_232_148 = function $$_reduce_232(val, _values, result) { + Opal.def(self, '$_reduce_689', $Ruby30__reduce_689$523 = function $$_reduce_689(val, _values, result) { var self = this; - result = self.builder.$binary_op(val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = []; return result; - }, TMP_Ruby23__reduce_232_148.$$arity = 3); + }, $Ruby30__reduce_689$523.$$arity = 3); - Opal.defn(self, '$_reduce_233', TMP_Ruby23__reduce_233_149 = function $$_reduce_233(val, _values, result) { + Opal.def(self, '$_reduce_691', $Ruby30__reduce_691$524 = function $$_reduce_691(val, _values, result) { var self = this; - result = self.builder.$logical_op("and", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = [val['$[]'](0)]; return result; - }, TMP_Ruby23__reduce_233_149.$$arity = 3); + }, $Ruby30__reduce_691$524.$$arity = 3); - Opal.defn(self, '$_reduce_234', TMP_Ruby23__reduce_234_150 = function $$_reduce_234(val, _values, result) { + Opal.def(self, '$_reduce_692', $Ruby30__reduce_692$525 = function $$_reduce_692(val, _values, result) { var self = this; - result = self.builder.$logical_op("or", val['$[]'](0), val['$[]'](1), val['$[]'](2)); + result = val['$[]'](0)['$<<'](val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_234_150.$$arity = 3); + }, $Ruby30__reduce_692$525.$$arity = 3); - Opal.defn(self, '$_reduce_235', TMP_Ruby23__reduce_235_151 = function $$_reduce_235(val, _values, result) { + Opal.def(self, '$_reduce_693', $Ruby30__reduce_693$526 = function $$_reduce_693(val, _values, result) { var self = this; - result = self.builder.$keyword_cmd("defined?", val['$[]'](0), nil, [val['$[]'](2)], nil); + result = self.builder.$pair(val['$[]'](0), val['$[]'](1), val['$[]'](2)); return result; - }, TMP_Ruby23__reduce_235_151.$$arity = 3); + }, $Ruby30__reduce_693$526.$$arity = 3); - Opal.defn(self, '$_reduce_236', TMP_Ruby23__reduce_236_152 = function $$_reduce_236(val, _values, result) { + Opal.def(self, '$_reduce_694', $Ruby30__reduce_694$527 = function $$_reduce_694(val, _values, result) { var self = this; - result = self.builder.$ternary(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](4), val['$[]'](5)); + result = self.builder.$pair_keyword(val['$[]'](0), val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_236_152.$$arity = 3); + }, $Ruby30__reduce_694$527.$$arity = 3); - Opal.defn(self, '$_reduce_241', TMP_Ruby23__reduce_241_153 = function $$_reduce_241(val, _values, result) { + Opal.def(self, '$_reduce_695', $Ruby30__reduce_695$528 = function $$_reduce_695(val, _values, result) { var self = this; - result = val['$[]'](0)['$<<'](self.builder.$associate(nil, val['$[]'](2), nil)); + result = self.builder.$pair_quoted(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); return result; - }, TMP_Ruby23__reduce_241_153.$$arity = 3); + }, $Ruby30__reduce_695$528.$$arity = 3); - Opal.defn(self, '$_reduce_242', TMP_Ruby23__reduce_242_154 = function $$_reduce_242(val, _values, result) { + Opal.def(self, '$_reduce_696', $Ruby30__reduce_696$529 = function $$_reduce_696(val, _values, result) { var self = this; - result = [self.builder.$associate(nil, val['$[]'](0), nil)]; + result = self.builder.$kwsplat(val['$[]'](0), val['$[]'](1)); return result; - }, TMP_Ruby23__reduce_242_154.$$arity = 3); + }, $Ruby30__reduce_696$529.$$arity = 3); - Opal.defn(self, '$_reduce_243', TMP_Ruby23__reduce_243_155 = function $$_reduce_243(val, _values, result) { + Opal.def(self, '$_reduce_709', $Ruby30__reduce_709$530 = function $$_reduce_709(val, _values, result) { var self = this; - result = val; + result = ["dot", val['$[]'](0)['$[]'](1)]; return result; - }, TMP_Ruby23__reduce_243_155.$$arity = 3); + }, $Ruby30__reduce_709$530.$$arity = 3); - Opal.defn(self, '$_reduce_244', TMP_Ruby23__reduce_244_156 = function $$_reduce_244(val, _values, result) { + Opal.def(self, '$_reduce_710', $Ruby30__reduce_710$531 = function $$_reduce_710(val, _values, result) { var self = this; - result = [nil, [], nil]; + result = ["anddot", val['$[]'](0)['$[]'](1)]; return result; - }, TMP_Ruby23__reduce_244_156.$$arity = 3); + }, $Ruby30__reduce_710$531.$$arity = 3); - Opal.defn(self, '$_reduce_246', TMP_Ruby23__reduce_246_157 = function $$_reduce_246(val, _values, result) { + Opal.def(self, '$_reduce_715', $Ruby30__reduce_715$532 = function $$_reduce_715(val, _values, result) { var self = this; - result = []; + result = val['$[]'](1); return result; - }, TMP_Ruby23__reduce_246_157.$$arity = 3); + }, $Ruby30__reduce_715$532.$$arity = 3); - Opal.defn(self, '$_reduce_249', TMP_Ruby23__reduce_249_158 = function $$_reduce_249(val, _values, result) { + Opal.def(self, '$_reduce_716', $Ruby30__reduce_716$533 = function $$_reduce_716(val, _values, result) { var self = this; - result = val['$[]'](0)['$<<'](self.builder.$associate(nil, val['$[]'](2), nil)); + result = val['$[]'](1); return result; - }, TMP_Ruby23__reduce_249_158.$$arity = 3); + }, $Ruby30__reduce_716$533.$$arity = 3); - Opal.defn(self, '$_reduce_250', TMP_Ruby23__reduce_250_159 = function $$_reduce_250(val, _values, result) { + Opal.def(self, '$_reduce_717', $Ruby30__reduce_717$534 = function $$_reduce_717(val, _values, result) { var self = this; - result = [self.builder.$associate(nil, val['$[]'](0), nil)]; + result = val['$[]'](1); return result; - }, TMP_Ruby23__reduce_250_159.$$arity = 3); + }, $Ruby30__reduce_717$534.$$arity = 3); - Opal.defn(self, '$_reduce_251', TMP_Ruby23__reduce_251_160 = function $$_reduce_251(val, _values, result) { + Opal.def(self, '$_reduce_721', $Ruby30__reduce_721$535 = function $$_reduce_721(val, _values, result) { var self = this; - result = [val['$[]'](0)]; + self.$yyerrok(); return result; - }, TMP_Ruby23__reduce_251_160.$$arity = 3); + }, $Ruby30__reduce_721$535.$$arity = 3); - Opal.defn(self, '$_reduce_252', TMP_Ruby23__reduce_252_161 = function $$_reduce_252(val, _values, result) { + Opal.def(self, '$_reduce_725', $Ruby30__reduce_725$536 = function $$_reduce_725(val, _values, result) { var self = this; - result = val['$[]'](0).$concat(val['$[]'](1)); + result = nil; return result; - }, TMP_Ruby23__reduce_252_161.$$arity = 3); - - Opal.defn(self, '$_reduce_253', TMP_Ruby23__reduce_253_162 = function $$_reduce_253(val, _values, result) { + }, $Ruby30__reduce_725$536.$$arity = 3); + return (Opal.def(self, '$_reduce_none', $Ruby30__reduce_none$537 = function $$_reduce_none(val, _values, result) { var self = this; + return val['$[]'](0) + }, $Ruby30__reduce_none$537.$$arity = 3), nil) && '_reduce_none'; + })($nesting[0], $$$($$($nesting, 'Parser'), 'Base'), $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/ast/builder"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + + Opal.add_stubs(['$require', '$emit_lambda=', '$-', '$new']); + + self.$require("opal/ast/node"); + self.$require("parser/ruby30"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'AST'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Builder'); + + var $nesting = [self].concat($parent_nesting), $Builder_n$1, $writer = nil; + - result = [self.builder.$associate(nil, val['$[]'](0), nil)]; - result.$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_253_162.$$arity = 3); - - Opal.defn(self, '$_reduce_254', TMP_Ruby23__reduce_254_163 = function $$_reduce_254(val, _values, result) { - var self = this, assocs = nil; + + $writer = [true]; + $send(self, 'emit_lambda=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return (Opal.def(self, '$n', $Builder_n$1 = function $$n(type, children, location) { + var self = this; + + return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": location})) + }, $Builder_n$1.$$arity = 3), nil) && 'n'; + })($nesting[0], $$$($$$($$$('::', 'Parser'), 'Builders'), 'Default'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/rewriters/base"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $alias = Opal.alias, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$require', '$new', '$current_node', '$loc', '$+', '$stmts_of', '$begin_with_stmts', '$nil?', '$include?', '$type', '$children', '$length', '$===', '$[]', '$s', '$attr_accessor', '$current_node=', '$-', '$location=', '$raise']); + + self.$require("parser"); + self.$require("opal/ast/node"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Base'); + + var $nesting = [self].concat($parent_nesting), $Base_s$9, $Base_s$10, $Base_prepend_to_body$11, $Base_append_to_body$12, $Base_stmts_of$13, $Base_begin_with_stmts$14, $Base_process$15, $Base_error$16; - assocs = self.builder.$associate(nil, val['$[]'](2), nil); - result = val['$[]'](0)['$<<'](assocs); - result.$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_254_163.$$arity = 3); - - Opal.defn(self, '$_reduce_255', TMP_Ruby23__reduce_255_164 = function $$_reduce_255(val, _values, result) { - var self = this; + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DummyLocation'); + + var $nesting = [self].concat($parent_nesting), $DummyLocation_node$eq$1, $DummyLocation_expression$2, $DummyLocation_begin_pos$3, $DummyLocation_end_pos$4, $DummyLocation_source$5, $DummyLocation_line$6, $DummyLocation_column$7, $DummyLocation_last_line$8; + + + + Opal.def(self, '$node=', $DummyLocation_node$eq$1 = function($a) { + var $post_args, $rest_arg, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return nil; + }, $DummyLocation_node$eq$1.$$arity = -1); + + Opal.def(self, '$expression', $DummyLocation_expression$2 = function $$expression() { + var self = this; + + return self + }, $DummyLocation_expression$2.$$arity = 0); + + Opal.def(self, '$begin_pos', $DummyLocation_begin_pos$3 = function $$begin_pos() { + var self = this; + + return 0 + }, $DummyLocation_begin_pos$3.$$arity = 0); + + Opal.def(self, '$end_pos', $DummyLocation_end_pos$4 = function $$end_pos() { + var self = this; + + return 0 + }, $DummyLocation_end_pos$4.$$arity = 0); + + Opal.def(self, '$source', $DummyLocation_source$5 = function $$source() { + var self = this; + + return "" + }, $DummyLocation_source$5.$$arity = 0); + + Opal.def(self, '$line', $DummyLocation_line$6 = function $$line() { + var self = this; + + return 0 + }, $DummyLocation_line$6.$$arity = 0); + + Opal.def(self, '$column', $DummyLocation_column$7 = function $$column() { + var self = this; + + return 0 + }, $DummyLocation_column$7.$$arity = 0); + return (Opal.def(self, '$last_line', $DummyLocation_last_line$8 = function $$last_line() { + var self = this; + return $$$($$($nesting, 'Float'), 'INFINITY') + }, $DummyLocation_last_line$8.$$arity = 0), nil) && 'last_line'; + })($nesting[0], null, $nesting); + Opal.const_set($nesting[0], 'DUMMY_LOCATION', $$($nesting, 'DummyLocation').$new()); - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_255_164.$$arity = 3); - - Opal.defn(self, '$_reduce_256', TMP_Ruby23__reduce_256_165 = function $$_reduce_256(val, _values, result) { - var self = this; + Opal.def(self, '$s', $Base_s$9 = function $$s(type, $a) { + var $post_args, children, self = this, loc = nil; + + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + children = $post_args;; + loc = (function() {if ($truthy(self.$current_node())) { + return self.$current_node().$loc() + } else { + return $$($nesting, 'DUMMY_LOCATION') + }; return nil; })(); + return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": loc})); + }, $Base_s$9.$$arity = -2); + Opal.defs(self, '$s', $Base_s$10 = function $$s(type, $a) { + var $post_args, children, self = this; + + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + children = $post_args;; + return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": $$($nesting, 'DUMMY_LOCATION')})); + }, $Base_s$10.$$arity = -2); + $alias(self, "on_iter", "process_regular_node"); + $alias(self, "on_top", "process_regular_node"); + $alias(self, "on_zsuper", "process_regular_node"); + $alias(self, "on_jscall", "on_send"); + $alias(self, "on_jsattr", "process_regular_node"); + $alias(self, "on_jsattrasgn", "process_regular_node"); + $alias(self, "on_kwsplat", "process_regular_node"); + + Opal.def(self, '$prepend_to_body', $Base_prepend_to_body$11 = function $$prepend_to_body(body, node) { + var self = this, stmts = nil; + + + stmts = $rb_plus(self.$stmts_of(node), self.$stmts_of(body)); + return self.$begin_with_stmts(stmts); + }, $Base_prepend_to_body$11.$$arity = 2); + + Opal.def(self, '$append_to_body', $Base_append_to_body$12 = function $$append_to_body(body, node) { + var self = this, stmts = nil; + + + stmts = $rb_plus(self.$stmts_of(body), self.$stmts_of(node)); + return self.$begin_with_stmts(stmts); + }, $Base_append_to_body$12.$$arity = 2); + + Opal.def(self, '$stmts_of', $Base_stmts_of$13 = function $$stmts_of(node) { + var self = this; + + if ($truthy(node['$nil?']())) { + return [] + } else if ($truthy(["begin", "kwbegin"]['$include?'](node.$type()))) { + return node.$children() + } else { + return [node] + } + }, $Base_stmts_of$13.$$arity = 1); + + Opal.def(self, '$begin_with_stmts', $Base_begin_with_stmts$14 = function $$begin_with_stmts(stmts) { + var self = this, $case = nil; + + return (function() {$case = stmts.$length(); + if ((0)['$===']($case)) {return nil} + else if ((1)['$===']($case)) {return stmts['$[]'](0)} + else {return $send(self, 's', ["begin"].concat(Opal.to_a(stmts)))}})() + }, $Base_begin_with_stmts$14.$$arity = 1); + self.$attr_accessor("current_node"); + + Opal.def(self, '$process', $Base_process$15 = function $$process(node) { + var $iter = $Base_process$15.$$p, $yield = $iter || nil, self = this, $writer = nil; + + if ($iter) $Base_process$15.$$p = null; + return (function() { try { + + + $writer = [node]; + $send(self, 'current_node=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return $send2(self, $find_super(self, 'process', $Base_process$15, false, true), 'process', [node], $iter); + } finally { + (($writer = [nil]), $send(self, 'current_node=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) + }; })() + }, $Base_process$15.$$arity = 1); + return (Opal.def(self, '$error', $Base_error$16 = function $$error(msg) { + var self = this, error = nil, $writer = nil; + + + error = $$$($$$('::', 'Opal'), 'RewritingError').$new(msg); + if ($truthy(self.$current_node())) { + + $writer = [self.$current_node().$loc()]; + $send(error, 'location=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];}; + return self.$raise(error); + }, $Base_error$16.$$arity = 1), nil) && 'error'; + })($nesting[0], $$$($$$($$$('::', 'Parser'), 'AST'), 'Processor'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/rewriters/opal_engine_check"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$require', '$children', '$skip_check_present?', '$process', '$s', '$skip_check_present_not?', '$==']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'OpalEngineCheck'); + + var $nesting = [self].concat($parent_nesting), $OpalEngineCheck_on_if$1, $OpalEngineCheck_skip_check_present$ques$2, $OpalEngineCheck_skip_check_present_not$ques$3; + + + + Opal.def(self, '$on_if', $OpalEngineCheck_on_if$1 = function $$on_if(node) { + var $a, $iter = $OpalEngineCheck_on_if$1.$$p, $yield = $iter || nil, self = this, test = nil, true_body = nil, false_body = nil, $ret_or_1 = nil, $ret_or_2 = nil; + + if ($iter) $OpalEngineCheck_on_if$1.$$p = null; + + $a = [].concat(Opal.to_a(node.$children())), (test = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; + if ($truthy(self['$skip_check_present?'](test))) { + return self.$process((function() {if ($truthy(($ret_or_1 = true_body))) { + return $ret_or_1 + } else { + return self.$s("nil") + }; return nil; })()) + } else if ($truthy(self['$skip_check_present_not?'](test))) { + return self.$process((function() {if ($truthy(($ret_or_2 = false_body))) { + return $ret_or_2 + } else { + return self.$s("nil") + }; return nil; })()) + } else { + return $send2(self, $find_super(self, 'on_if', $OpalEngineCheck_on_if$1, false, true), 'on_if', [node], $iter) + }; + }, $OpalEngineCheck_on_if$1.$$arity = 1); + + Opal.def(self, '$skip_check_present?', $OpalEngineCheck_skip_check_present$ques$2 = function(test) { + var self = this, $ret_or_3 = nil; + + if ($truthy(($ret_or_3 = test['$==']($$($nesting, 'RUBY_ENGINE_CHECK'))))) { + return $ret_or_3 + } else { + return test['$==']($$($nesting, 'RUBY_PLATFORM_CHECK')) + } + }, $OpalEngineCheck_skip_check_present$ques$2.$$arity = 1); + + Opal.def(self, '$skip_check_present_not?', $OpalEngineCheck_skip_check_present_not$ques$3 = function(test) { + var self = this, $ret_or_4 = nil; + + if ($truthy(($ret_or_4 = test['$==']($$($nesting, 'RUBY_ENGINE_CHECK_NOT'))))) { + return $ret_or_4 + } else { + return test['$==']($$($nesting, 'RUBY_PLATFORM_CHECK_NOT')) + } + }, $OpalEngineCheck_skip_check_present_not$ques$3.$$arity = 1); + Opal.const_set($nesting[0], 'RUBY_ENGINE_CHECK', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "==", self.$s("str", "opal"))); + Opal.const_set($nesting[0], 'RUBY_ENGINE_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "!=", self.$s("str", "opal"))); + Opal.const_set($nesting[0], 'RUBY_PLATFORM_CHECK', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "==", self.$s("str", "opal"))); + return Opal.const_set($nesting[0], 'RUBY_PLATFORM_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "!=", self.$s("str", "opal"))); + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/rewriters/for_rewriter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; - - result = self.lexer.$cmdarg().$dup(); - self.lexer.$cmdarg().$push(true); - return result; - }, TMP_Ruby23__reduce_256_165.$$arity = 3); - - Opal.defn(self, '$_reduce_257', TMP_Ruby23__reduce_257_166 = function $$_reduce_257(val, _values, result) { - var self = this, $writer = nil; + Opal.add_stubs(['$require', '$+', '$find', '$map', '$s', '$next_tmp', '$class', '$type', '$===', '$updated', '$<<', '$prepend_to_body', '$process', '$attr_reader', '$new', '$to_a', '$result']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - - $writer = [val['$[]'](0)]; - $send(self.lexer, 'cmdarg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - result = val['$[]'](1); - return result; - }, TMP_Ruby23__reduce_257_166.$$arity = 3); - - Opal.defn(self, '$_reduce_258', TMP_Ruby23__reduce_258_167 = function $$_reduce_258(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$block_pass(val['$[]'](0), val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_258_167.$$arity = 3); - - Opal.defn(self, '$_reduce_259', TMP_Ruby23__reduce_259_168 = function $$_reduce_259(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - result = [val['$[]'](1)]; - return result; - }, TMP_Ruby23__reduce_259_168.$$arity = 3); - - Opal.defn(self, '$_reduce_260', TMP_Ruby23__reduce_260_169 = function $$_reduce_260(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = []; - return result; - }, TMP_Ruby23__reduce_260_169.$$arity = 3); - - Opal.defn(self, '$_reduce_261', TMP_Ruby23__reduce_261_170 = function $$_reduce_261(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ForRewriter'); - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_261_170.$$arity = 3); - - Opal.defn(self, '$_reduce_262', TMP_Ruby23__reduce_262_171 = function $$_reduce_262(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $ForRewriter_reset_tmp_counter$excl$1, $ForRewriter_next_tmp$2, $ForRewriter_on_for$3; - result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; - return result; - }, TMP_Ruby23__reduce_262_171.$$arity = 3); - - Opal.defn(self, '$_reduce_263', TMP_Ruby23__reduce_263_172 = function $$_reduce_263(val, _values, result) { - var self = this; + Opal.defs(self, '$reset_tmp_counter!', $ForRewriter_reset_tmp_counter$excl$1 = function() { + var self = this; - - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_263_172.$$arity = 3); - - Opal.defn(self, '$_reduce_264', TMP_Ruby23__reduce_264_173 = function $$_reduce_264(val, _values, result) { - var self = this; + return (self.counter = 0) + }, $ForRewriter_reset_tmp_counter$excl$1.$$arity = 0); + Opal.defs(self, '$next_tmp', $ForRewriter_next_tmp$2 = function $$next_tmp() { + var self = this, $ret_or_1 = nil; + if (self.counter == null) self.counter = nil; + + self.counter = (function() {if ($truthy(($ret_or_1 = self.counter))) { + return $ret_or_1 + } else { + return 0 + }; return nil; })(); + self.counter = $rb_plus(self.counter, 1); + return "" + "$for_tmp" + (self.counter); + }, $ForRewriter_next_tmp$2.$$arity = 0); - result = val['$[]'](0)['$<<'](self.builder.$splat(val['$[]'](2), val['$[]'](3))); - return result; - }, TMP_Ruby23__reduce_264_173.$$arity = 3); - - Opal.defn(self, '$_reduce_265', TMP_Ruby23__reduce_265_174 = function $$_reduce_265(val, _values, result) { - var self = this; + Opal.def(self, '$on_for', $ForRewriter_on_for$3 = function $$on_for(node) { + var $a, $$4, self = this, loop_variable = nil, iterating_value = nil, loop_body = nil, iterating_lvars = nil, lvars_declared_in_body = nil, outer_assigns = nil, tmp_loop_variable = nil, get_tmp_loop_variable = nil, loop_variable_assignment = nil, $case = nil; - - result = self.builder.$array(nil, val['$[]'](0), nil); - return result; - }, TMP_Ruby23__reduce_265_174.$$arity = 3); - - Opal.defn(self, '$_reduce_267', TMP_Ruby23__reduce_267_175 = function $$_reduce_267(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(node)), (loop_variable = ($a[0] == null ? nil : $a[0])), (iterating_value = ($a[1] == null ? nil : $a[1])), (loop_body = ($a[2] == null ? nil : $a[2])), $a; + iterating_lvars = $$($nesting, 'LocalVariableAssigns').$find(loop_variable); + lvars_declared_in_body = $$($nesting, 'LocalVariableAssigns').$find(loop_body); + outer_assigns = $send($rb_plus(iterating_lvars, lvars_declared_in_body), 'map', [], ($$4 = function(lvar_name){var self = $$4.$$s == null ? this : $$4.$$s; - - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_267_175.$$arity = 3); - - Opal.defn(self, '$_reduce_268', TMP_Ruby23__reduce_268_176 = function $$_reduce_268(val, _values, result) { - var self = this; + + + if (lvar_name == null) { + lvar_name = nil; + }; + return self.$s("lvdeclare", lvar_name);}, $$4.$$s = self, $$4.$$arity = 1, $$4)); + tmp_loop_variable = self.$class().$next_tmp(); + get_tmp_loop_variable = self.$s("js_tmp", tmp_loop_variable); + loop_variable_assignment = (function() {$case = loop_variable.$type(); + if ("mlhs"['$===']($case)) {return loop_variable.$updated("masgn", [loop_variable, get_tmp_loop_variable])} + else {return loop_variable['$<<'](get_tmp_loop_variable)}})(); + loop_body = self.$prepend_to_body(loop_body, loop_variable_assignment); + node = node.$updated("send", [iterating_value, "each", node.$updated("iter", [self.$s("args", self.$s("arg", tmp_loop_variable)), self.$process(loop_body)])]); + return node.$updated("begin", [].concat(Opal.to_a(outer_assigns)).concat([node])); + }, $ForRewriter_on_for$3.$$arity = 1); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'LocalVariableAssigns'); - - result = val['$[]'](0)['$<<'](self.builder.$splat(val['$[]'](2), val['$[]'](3))); - return result; - }, TMP_Ruby23__reduce_268_176.$$arity = 3); - - Opal.defn(self, '$_reduce_269', TMP_Ruby23__reduce_269_177 = function $$_reduce_269(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $LocalVariableAssigns_find$5, $LocalVariableAssigns_initialize$6, $LocalVariableAssigns_on_lvasgn$7; - - result = [self.builder.$splat(val['$[]'](0), val['$[]'](1))]; - return result; - }, TMP_Ruby23__reduce_269_177.$$arity = 3); - - Opal.defn(self, '$_reduce_280', TMP_Ruby23__reduce_280_178 = function $$_reduce_280(val, _values, result) { - var self = this; + + self.$attr_reader("result"); + Opal.defs(self, '$find', $LocalVariableAssigns_find$5 = function $$find(node) { + var self = this, processor = nil; - - result = self.builder.$call_method(nil, nil, val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_280_178.$$arity = 3); - - Opal.defn(self, '$_reduce_281', TMP_Ruby23__reduce_281_179 = function $$_reduce_281(val, _values, result) { - var self = this; + + processor = self.$new(); + processor.$process(node); + return processor.$result().$to_a(); + }, $LocalVariableAssigns_find$5.$$arity = 1); + + Opal.def(self, '$initialize', $LocalVariableAssigns_initialize$6 = function $$initialize() { + var self = this; - - result = self.lexer.$cmdarg().$dup(); - self.lexer.$cmdarg().$clear(); - return result; - }, TMP_Ruby23__reduce_281_179.$$arity = 3); - - Opal.defn(self, '$_reduce_282', TMP_Ruby23__reduce_282_180 = function $$_reduce_282(val, _values, result) { - var self = this, $writer = nil; + return (self.result = $$($nesting, 'Set').$new()) + }, $LocalVariableAssigns_initialize$6.$$arity = 0); + return (Opal.def(self, '$on_lvasgn', $LocalVariableAssigns_on_lvasgn$7 = function $$on_lvasgn(node) { + var $a, $iter = $LocalVariableAssigns_on_lvasgn$7.$$p, $yield = $iter || nil, self = this, name = nil, _ = nil; - - - $writer = [val['$[]'](1)]; - $send(self.lexer, 'cmdarg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - result = self.builder.$begin_keyword(val['$[]'](0), val['$[]'](2), val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_282_180.$$arity = 3); - - Opal.defn(self, '$_reduce_283', TMP_Ruby23__reduce_283_181 = function $$_reduce_283(val, _values, result) { - var self = this; + if ($iter) $LocalVariableAssigns_on_lvasgn$7.$$p = null; + + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + self.$result()['$<<'](name); + return $send2(self, $find_super(self, 'on_lvasgn', $LocalVariableAssigns_on_lvasgn$7, false, true), 'on_lvasgn', [node], $iter); + }, $LocalVariableAssigns_on_lvasgn$7.$$arity = 1), nil) && 'on_lvasgn'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = self.lexer.$cmdarg().$dup(); - self.lexer.$cmdarg().$clear(); - return result; - }, TMP_Ruby23__reduce_283_181.$$arity = 3); - - Opal.defn(self, '$_reduce_284', TMP_Ruby23__reduce_284_182 = function $$_reduce_284(val, _values, result) { - var self = this, $writer = nil; +Opal.modules["opal/rewriters/explicit_writer_return"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $send = Opal.send; - - - $writer = ["expr_endarg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return result; - }, TMP_Ruby23__reduce_284_182.$$arity = 3); - - Opal.defn(self, '$_reduce_285', TMP_Ruby23__reduce_285_183 = function $$_reduce_285(val, _values, result) { - var self = this, $writer = nil; + Opal.add_stubs(['$require', '$s', '$=~', '$to_s', '$==', '$process_all', '$updated']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - - $writer = [val['$[]'](1)]; - $send(self.lexer, 'cmdarg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - result = self.builder.$begin(val['$[]'](0), val['$[]'](2), val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_285_183.$$arity = 3); - - Opal.defn(self, '$_reduce_286', TMP_Ruby23__reduce_286_184 = function $$_reduce_286(val, _values, result) { - var self = this, $writer = nil; + var $nesting = [self].concat($parent_nesting); - - - $writer = ["expr_endarg"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return result; - }, TMP_Ruby23__reduce_286_184.$$arity = 3); - - Opal.defn(self, '$_reduce_287', TMP_Ruby23__reduce_287_185 = function $$_reduce_287(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - result = self.builder.$begin(val['$[]'](0), nil, val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_287_185.$$arity = 3); - - Opal.defn(self, '$_reduce_288', TMP_Ruby23__reduce_288_186 = function $$_reduce_288(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$begin(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_288_186.$$arity = 3); - - Opal.defn(self, '$_reduce_289', TMP_Ruby23__reduce_289_187 = function $$_reduce_289(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExplicitWriterReturn'); - - result = self.builder.$const_fetch(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_289_187.$$arity = 3); - - Opal.defn(self, '$_reduce_290', TMP_Ruby23__reduce_290_188 = function $$_reduce_290(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $ExplicitWriterReturn_initialize$1, $ExplicitWriterReturn_on_send$2, $ExplicitWriterReturn_on_masgn$3; + self.$$prototype.in_masgn = nil; - result = self.builder.$const_global(val['$[]'](0), val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_290_188.$$arity = 3); - - Opal.defn(self, '$_reduce_291', TMP_Ruby23__reduce_291_189 = function $$_reduce_291(val, _values, result) { - var self = this; - - result = self.builder.$array(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_291_189.$$arity = 3); - - Opal.defn(self, '$_reduce_292', TMP_Ruby23__reduce_292_190 = function $$_reduce_292(val, _values, result) { - var self = this; + Opal.def(self, '$initialize', $ExplicitWriterReturn_initialize$1 = function $$initialize() { + var self = this; + return (self.in_masgn = false) + }, $ExplicitWriterReturn_initialize$1.$$arity = 0); + Opal.const_set($nesting[0], 'TMP_NAME', "$writer"); + Opal.const_set($nesting[0], 'GET_ARGS_NODE', self.$s("lvar", $$($nesting, 'TMP_NAME'))); + Opal.const_set($nesting[0], 'RETURN_ARGS_NODE', self.$s("jsattr", $$($nesting, 'GET_ARGS_NODE'), self.$s("send", self.$s("jsattr", $$($nesting, 'GET_ARGS_NODE'), self.$s("str", "length")), "-", self.$s("int", 1)))); - result = self.builder.$associate(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_292_190.$$arity = 3); - - Opal.defn(self, '$_reduce_293', TMP_Ruby23__reduce_293_191 = function $$_reduce_293(val, _values, result) { - var self = this; + Opal.def(self, '$on_send', $ExplicitWriterReturn_on_send$2 = function $$on_send(node) { + var $a, $iter = $ExplicitWriterReturn_on_send$2.$$p, $yield = $iter || nil, self = this, recv = nil, method_name = nil, args = nil, $ret_or_1 = nil, set_args_node = nil; - - result = self.builder.$keyword_cmd("return", val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_293_191.$$arity = 3); - - Opal.defn(self, '$_reduce_294', TMP_Ruby23__reduce_294_192 = function $$_reduce_294(val, _values, result) { - var self = this; + if ($iter) $ExplicitWriterReturn_on_send$2.$$p = null; + + if ($truthy(self.in_masgn)) { + return $send2(self, $find_super(self, 'on_send', $ExplicitWriterReturn_on_send$2, false, true), 'on_send', [node], $iter)}; + $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if ($truthy((function() {if ($truthy(($ret_or_1 = method_name.$to_s()['$=~'](Opal.regexp([$$($nesting, 'REGEXP_START'), "\\w+=", $$($nesting, 'REGEXP_END')]))))) { + return $ret_or_1 + } else { + return method_name.$to_s()['$==']("[]=") + }; return nil; })())) { + + set_args_node = self.$s("lvasgn", $$($nesting, 'TMP_NAME'), $send(self, 's', ["array"].concat(Opal.to_a(self.$process_all(args))))); + return self.$s("begin", set_args_node, node.$updated(nil, [recv, method_name, self.$s("splat", $$($nesting, 'GET_ARGS_NODE'))]), $$($nesting, 'RETURN_ARGS_NODE')); + } else { + return $send2(self, $find_super(self, 'on_send', $ExplicitWriterReturn_on_send$2, false, true), 'on_send', [node], $iter) + }; + }, $ExplicitWriterReturn_on_send$2.$$arity = 1); + return (Opal.def(self, '$on_masgn', $ExplicitWriterReturn_on_masgn$3 = function $$on_masgn(node) { + var $iter = $ExplicitWriterReturn_on_masgn$3.$$p, $yield = $iter || nil, self = this, result = nil; - - result = self.builder.$keyword_cmd("yield", val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_294_192.$$arity = 3); - - Opal.defn(self, '$_reduce_295', TMP_Ruby23__reduce_295_193 = function $$_reduce_295(val, _values, result) { - var self = this; + if ($iter) $ExplicitWriterReturn_on_masgn$3.$$p = null; + + self.in_masgn = true; + result = $send2(self, $find_super(self, 'on_masgn', $ExplicitWriterReturn_on_masgn$3, false, true), 'on_masgn', [node], $iter); + self.in_masgn = false; + return result; + }, $ExplicitWriterReturn_on_masgn$3.$$arity = 1), nil) && 'on_masgn'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = self.builder.$keyword_cmd("yield", val['$[]'](0), val['$[]'](1), [], val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_295_193.$$arity = 3); - - Opal.defn(self, '$_reduce_296', TMP_Ruby23__reduce_296_194 = function $$_reduce_296(val, _values, result) { - var self = this; +Opal.modules["opal/regexp_anchors"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - - result = self.builder.$keyword_cmd("yield", val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_296_194.$$arity = 3); - - Opal.defn(self, '$_reduce_297', TMP_Ruby23__reduce_297_195 = function $$_reduce_297(val, _values, result) { - var self = this; + Opal.add_stubs(['$new']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = self.builder.$keyword_cmd("defined?", val['$[]'](0), val['$[]'](2), [val['$[]'](3)], val['$[]'](4)); - return result; - }, TMP_Ruby23__reduce_297_195.$$arity = 3); - - Opal.defn(self, '$_reduce_298', TMP_Ruby23__reduce_298_196 = function $$_reduce_298(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$not_op(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_298_196.$$arity = 3); - - Opal.defn(self, '$_reduce_299', TMP_Ruby23__reduce_299_197 = function $$_reduce_299(val, _values, result) { - var self = this; + + Opal.const_set($nesting[0], 'REGEXP_START', "^"); + Opal.const_set($nesting[0], 'REGEXP_END', "$"); + Opal.const_set($nesting[0], 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + Opal.const_set($nesting[0], 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + Opal.const_set($nesting[0], 'INLINE_IDENTIFIER_REGEXP', $$($nesting, 'Regexp').$new("" + "[^" + ($$($nesting, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + ($$($nesting, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); + Opal.const_set($nesting[0], 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + return Opal.const_set($nesting[0], 'CONST_NAME_REGEXP', $$($nesting, 'Regexp').$new("" + ($$($nesting, 'REGEXP_START')) + "(::)?[A-Z][^" + ($$($nesting, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + ($$($nesting, 'REGEXP_END')))); + })($nesting[0], $nesting) +}; - - result = self.builder.$not_op(val['$[]'](0), val['$[]'](1), nil, val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_299_197.$$arity = 3); - - Opal.defn(self, '$_reduce_300', TMP_Ruby23__reduce_300_198 = function $$_reduce_300(val, _values, result) { - var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; +Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2, $alias = Opal.alias; - - method_call = self.builder.$call_method(nil, nil, val['$[]'](0)); - $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; - result = self.builder.$block(method_call, begin_t, args, body, end_t); - return result; - }, TMP_Ruby23__reduce_300_198.$$arity = 3); - - Opal.defn(self, '$_reduce_302', TMP_Ruby23__reduce_302_199 = function $$_reduce_302(val, _values, result) { - var $a, $b, self = this, begin_t = nil, args = nil, body = nil, end_t = nil; + Opal.add_stubs(['$require', '$freeze', '$=~', '$!', '$valid_name?', '$class', '$to_sym', '$valid_ivar_name?', '$[]', '$to_s', '$updated', '$fix_var_name', '$fix_ivar_name']); + + self.$require("opal/rewriters/base"); + self.$require("opal/regexp_anchors"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; - result = self.builder.$block(val['$[]'](0), begin_t, args, body, end_t); - return result; - }, TMP_Ruby23__reduce_302_199.$$arity = 3); - - Opal.defn(self, '$_reduce_303', TMP_Ruby23__reduce_303_200 = function $$_reduce_303(val, _values, result) { - var $a, $b, $c, self = this, lambda_call = nil, args = nil, begin_t = nil, body = nil, end_t = nil; + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - lambda_call = self.builder.$call_lambda(val['$[]'](0)); - $b = val['$[]'](1), $a = Opal.to_ary($b), (args = ($a[0] == null ? nil : $a[0])), ($c = Opal.to_ary(($a[1] == null ? nil : $a[1])), (begin_t = ($c[0] == null ? nil : $c[0])), (body = ($c[1] == null ? nil : $c[1])), (end_t = ($c[2] == null ? nil : $c[2]))), $b; - result = self.builder.$block(lambda_call, begin_t, args, body, end_t); - return result; - }, TMP_Ruby23__reduce_303_200.$$arity = 3); - - Opal.defn(self, '$_reduce_304', TMP_Ruby23__reduce_304_201 = function $$_reduce_304(val, _values, result) { - var $a, $b, self = this, else_t = nil, else_ = nil; + var $nesting = [self].concat($parent_nesting); - - $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; - result = self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3), else_t, else_, val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_304_201.$$arity = 3); - - Opal.defn(self, '$_reduce_305', TMP_Ruby23__reduce_305_202 = function $$_reduce_305(val, _values, result) { - var $a, $b, self = this, else_t = nil, else_ = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'JsReservedWords'); - - $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; - result = self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), else_, else_t, val['$[]'](3), val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_305_202.$$arity = 3); - - Opal.defn(self, '$_reduce_306', TMP_Ruby23__reduce_306_203 = function $$_reduce_306(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $JsReservedWords_valid_name$ques$1, $JsReservedWords_valid_ivar_name$ques$2, $JsReservedWords_fix_var_name$3, $JsReservedWords_fix_ivar_name$4, $JsReservedWords_on_lvar$5, $JsReservedWords_on_lvasgn$6, $JsReservedWords_on_ivar$7, $JsReservedWords_on_ivasgn$8, $JsReservedWords_on_restarg$9, $JsReservedWords_on_argument$10; - self.lexer.$cond().$push(true); - return result; - }, TMP_Ruby23__reduce_306_203.$$arity = 3); - - Opal.defn(self, '$_reduce_307', TMP_Ruby23__reduce_307_204 = function $$_reduce_307(val, _values, result) { - var self = this; + Opal.const_set($nesting[0], 'ES51_RESERVED_WORD', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)", $$($nesting, 'REGEXP_END')]).$freeze()); + Opal.const_set($nesting[0], 'ES3_RESERVED_WORD_EXCLUSIVE', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)", $$($nesting, 'REGEXP_END')]).$freeze()); + Opal.const_set($nesting[0], 'PROTO_SPECIAL_PROPS', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)", $$($nesting, 'REGEXP_END')]).$freeze()); + Opal.const_set($nesting[0], 'PROTO_SPECIAL_METHODS', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:hasOwnProperty|valueOf)", $$($nesting, 'REGEXP_END')]).$freeze()); + Opal.const_set($nesting[0], 'IMMUTABLE_PROPS', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:NaN|Infinity|undefined)", $$($nesting, 'REGEXP_END')]).$freeze()); + Opal.const_set($nesting[0], 'BASIC_IDENTIFIER_RULES', Opal.regexp([$$($nesting, 'REGEXP_START'), "[$_a-z][$_a-z\\d]*", $$($nesting, 'REGEXP_END')], 'i').$freeze()); + Opal.const_set($nesting[0], 'RESERVED_FUNCTION_NAMES', Opal.regexp([$$($nesting, 'REGEXP_START'), "(?:Array)", $$($nesting, 'REGEXP_END')]).$freeze()); + Opal.defs(self, '$valid_name?', $JsReservedWords_valid_name$ques$1 = function(name) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - - self.lexer.$cond().$pop(); - return result; - }, TMP_Ruby23__reduce_307_204.$$arity = 3); - - Opal.defn(self, '$_reduce_308', TMP_Ruby23__reduce_308_205 = function $$_reduce_308(val, _values, result) { - var self = this; + if ($truthy(($ret_or_1 = $$($nesting, 'BASIC_IDENTIFIER_RULES')['$=~'](name)))) { + return (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $$($nesting, 'ES51_RESERVED_WORD')['$=~'](name)))) { + return $ret_or_3 + } else { + return $$($nesting, 'ES3_RESERVED_WORD_EXCLUSIVE')['$=~'](name) + }; return nil; })()))) { + return $ret_or_2 + } else { + return $$($nesting, 'IMMUTABLE_PROPS')['$=~'](name) + }; return nil; })()['$!']() + } else { + return $ret_or_1 + } + }, $JsReservedWords_valid_name$ques$1.$$arity = 1); + Opal.defs(self, '$valid_ivar_name?', $JsReservedWords_valid_ivar_name$ques$2 = function(name) { + var self = this, $ret_or_4 = nil; + return (function() {if ($truthy(($ret_or_4 = $$($nesting, 'PROTO_SPECIAL_PROPS')['$=~'](name)))) { + return $ret_or_4 + } else { + return $$($nesting, 'PROTO_SPECIAL_METHODS')['$=~'](name) + }; return nil; })()['$!']() + }, $JsReservedWords_valid_ivar_name$ques$2.$$arity = 1); - result = self.builder.$loop("while", val['$[]'](0), val['$[]'](2), val['$[]'](3), val['$[]'](5), val['$[]'](6)); - return result; - }, TMP_Ruby23__reduce_308_205.$$arity = 3); - - Opal.defn(self, '$_reduce_309', TMP_Ruby23__reduce_309_206 = function $$_reduce_309(val, _values, result) { - var self = this; + Opal.def(self, '$fix_var_name', $JsReservedWords_fix_var_name$3 = function $$fix_var_name(name) { + var self = this; + if ($truthy(self.$class()['$valid_name?'](name))) { + return name + } else { + return (("" + (name)) + "$").$to_sym() + } + }, $JsReservedWords_fix_var_name$3.$$arity = 1); - self.lexer.$cond().$push(true); - return result; - }, TMP_Ruby23__reduce_309_206.$$arity = 3); - - Opal.defn(self, '$_reduce_310', TMP_Ruby23__reduce_310_207 = function $$_reduce_310(val, _values, result) { - var self = this; + Opal.def(self, '$fix_ivar_name', $JsReservedWords_fix_ivar_name$4 = function $$fix_ivar_name(name) { + var self = this; + if ($truthy(self.$class()['$valid_ivar_name?'](name.$to_s()['$[]']($range(1, -1, false))))) { + return name + } else { + return (("" + (name)) + "$").$to_sym() + } + }, $JsReservedWords_fix_ivar_name$4.$$arity = 1); - self.lexer.$cond().$pop(); - return result; - }, TMP_Ruby23__reduce_310_207.$$arity = 3); - - Opal.defn(self, '$_reduce_311', TMP_Ruby23__reduce_311_208 = function $$_reduce_311(val, _values, result) { - var self = this; + Opal.def(self, '$on_lvar', $JsReservedWords_on_lvar$5 = function $$on_lvar(node) { + var $a, $iter = $JsReservedWords_on_lvar$5.$$p, $yield = $iter || nil, self = this, name = nil, _ = nil; + if ($iter) $JsReservedWords_on_lvar$5.$$p = null; + + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + node = node.$updated(nil, [self.$fix_var_name(name)]); + return $send2(self, $find_super(self, 'on_lvar', $JsReservedWords_on_lvar$5, false, true), 'on_lvar', [node], null); + }, $JsReservedWords_on_lvar$5.$$arity = 1); - result = self.builder.$loop("until", val['$[]'](0), val['$[]'](2), val['$[]'](3), val['$[]'](5), val['$[]'](6)); - return result; - }, TMP_Ruby23__reduce_311_208.$$arity = 3); - - Opal.defn(self, '$_reduce_312', TMP_Ruby23__reduce_312_209 = function $$_reduce_312(val, _values, result) { - var $a, $b, $c, self = this, when_bodies = nil, else_t = nil, else_body = nil; + Opal.def(self, '$on_lvasgn', $JsReservedWords_on_lvasgn$6 = function $$on_lvasgn(node) { + var $a, $iter = $JsReservedWords_on_lvasgn$6.$$p, $yield = $iter || nil, self = this, name = nil, value = nil; + if ($iter) $JsReservedWords_on_lvasgn$6.$$p = null; + + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = (function() {if ($truthy(value)) { + return node.$updated(nil, [self.$fix_var_name(name), value]) + } else { + return node.$updated(nil, [self.$fix_var_name(name)]) + }; return nil; })(); + return $send2(self, $find_super(self, 'on_lvasgn', $JsReservedWords_on_lvasgn$6, false, true), 'on_lvasgn', [node], null); + }, $JsReservedWords_on_lvasgn$6.$$arity = 1); - $a = [].concat(Opal.to_a(val['$[]'](3))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; - result = self.builder.$case(val['$[]'](0), val['$[]'](1), when_bodies, else_t, else_body, val['$[]'](4)); - return result; - }, TMP_Ruby23__reduce_312_209.$$arity = 3); - - Opal.defn(self, '$_reduce_313', TMP_Ruby23__reduce_313_210 = function $$_reduce_313(val, _values, result) { - var $a, $b, $c, self = this, when_bodies = nil, else_t = nil, else_body = nil; + Opal.def(self, '$on_ivar', $JsReservedWords_on_ivar$7 = function $$on_ivar(node) { + var $a, $iter = $JsReservedWords_on_ivar$7.$$p, $yield = $iter || nil, self = this, name = nil, _ = nil; + if ($iter) $JsReservedWords_on_ivar$7.$$p = null; + + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + node = node.$updated(nil, [self.$fix_ivar_name(name)]); + return $send2(self, $find_super(self, 'on_ivar', $JsReservedWords_on_ivar$7, false, true), 'on_ivar', [node], null); + }, $JsReservedWords_on_ivar$7.$$arity = 1); - $a = [].concat(Opal.to_a(val['$[]'](2))), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_bodies = $slice.call($a, 0, $b)), ($c = Opal.to_ary(($a[$b] == null ? nil : $a[$b])), (else_t = ($c[0] == null ? nil : $c[0])), (else_body = ($c[1] == null ? nil : $c[1]))), $a; - result = self.builder.$case(val['$[]'](0), nil, when_bodies, else_t, else_body, val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_313_210.$$arity = 3); - - Opal.defn(self, '$_reduce_314', TMP_Ruby23__reduce_314_211 = function $$_reduce_314(val, _values, result) { - var self = this; + Opal.def(self, '$on_ivasgn', $JsReservedWords_on_ivasgn$8 = function $$on_ivasgn(node) { + var $a, $iter = $JsReservedWords_on_ivasgn$8.$$p, $yield = $iter || nil, self = this, name = nil, value = nil; + if ($iter) $JsReservedWords_on_ivasgn$8.$$p = null; + + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = (function() {if ($truthy(value)) { + return node.$updated(nil, [self.$fix_ivar_name(name), value]) + } else { + return node.$updated(nil, [self.$fix_ivar_name(name)]) + }; return nil; })(); + return $send2(self, $find_super(self, 'on_ivasgn', $JsReservedWords_on_ivasgn$8, false, true), 'on_ivasgn', [node], null); + }, $JsReservedWords_on_ivasgn$8.$$arity = 1); - self.lexer.$cond().$push(true); - return result; - }, TMP_Ruby23__reduce_314_211.$$arity = 3); - - Opal.defn(self, '$_reduce_315', TMP_Ruby23__reduce_315_212 = function $$_reduce_315(val, _values, result) { - var self = this; + Opal.def(self, '$on_restarg', $JsReservedWords_on_restarg$9 = function $$on_restarg(node) { + var $a, self = this, name = nil, _ = nil; - - self.lexer.$cond().$pop(); - return result; - }, TMP_Ruby23__reduce_315_212.$$arity = 3); - - Opal.defn(self, '$_reduce_316', TMP_Ruby23__reduce_316_213 = function $$_reduce_316(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(name)) { + node = node.$updated(nil, [self.$fix_var_name(name)], $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})}))}; + return node; + }, $JsReservedWords_on_restarg$9.$$arity = 1); + $alias(self, "on_kwrestarg", "on_restarg"); + return (Opal.def(self, '$on_argument', $JsReservedWords_on_argument$10 = function $$on_argument(node) { + var $a, $iter = $JsReservedWords_on_argument$10.$$p, $yield = $iter || nil, self = this, name = nil, value = nil, fixed_name = nil, new_children = nil; - - result = self.builder.$for(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](4), val['$[]'](5), val['$[]'](7), val['$[]'](8)); - return result; - }, TMP_Ruby23__reduce_316_213.$$arity = 3); - - Opal.defn(self, '$_reduce_317', TMP_Ruby23__reduce_317_214 = function $$_reduce_317(val, _values, result) { - var self = this; + if ($iter) $JsReservedWords_on_argument$10.$$p = null; + + node = $send2(self, $find_super(self, 'on_argument', $JsReservedWords_on_argument$10, false, true), 'on_argument', [node], null); + $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + fixed_name = self.$fix_var_name(name); + new_children = (function() {if ($truthy(value)) { + return [fixed_name, value] + } else { + return [fixed_name] + }; return nil; })(); + return node.$updated(nil, new_children, $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})})); + }, $JsReservedWords_on_argument$10.$$arity = 1), nil) && 'on_argument'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - self.static_env.$extend_static(); - self.lexer.$push_cmdarg(); - return result; - }, TMP_Ruby23__reduce_317_214.$$arity = 3); - - Opal.defn(self, '$_reduce_318', TMP_Ruby23__reduce_318_215 = function $$_reduce_318(val, _values, result) { - var $a, $b, self = this, lt_t = nil, superclass = nil; +Opal.modules["opal/rewriters/block_to_iter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - - if ($truthy(self['$in_def?']())) { - self.$diagnostic("error", "class_in_def", nil, val['$[]'](0))}; - $b = val['$[]'](2), $a = Opal.to_ary($b), (lt_t = ($a[0] == null ? nil : $a[0])), (superclass = ($a[1] == null ? nil : $a[1])), $b; - result = self.builder.$def_class(val['$[]'](0), val['$[]'](1), lt_t, superclass, val['$[]'](4), val['$[]'](5)); - self.lexer.$pop_cmdarg(); - self.static_env.$unextend(); - return result; - }, TMP_Ruby23__reduce_318_215.$$arity = 3); - - Opal.defn(self, '$_reduce_319', TMP_Ruby23__reduce_319_216 = function $$_reduce_319(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$s', '$process', '$updated', '$+', '$children']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = self.def_level; - self.def_level = 0; - self.static_env.$extend_static(); - self.lexer.$push_cmdarg(); - return result; - }, TMP_Ruby23__reduce_319_216.$$arity = 3); - - Opal.defn(self, '$_reduce_320', TMP_Ruby23__reduce_320_217 = function $$_reduce_320(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$def_sclass(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](5), val['$[]'](6)); - self.lexer.$pop_cmdarg(); - self.static_env.$unextend(); - self.def_level = val['$[]'](4); - return result; - }, TMP_Ruby23__reduce_320_217.$$arity = 3); - - Opal.defn(self, '$_reduce_321', TMP_Ruby23__reduce_321_218 = function $$_reduce_321(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - self.static_env.$extend_static(); - self.lexer.$push_cmdarg(); - return result; - }, TMP_Ruby23__reduce_321_218.$$arity = 3); - - Opal.defn(self, '$_reduce_322', TMP_Ruby23__reduce_322_219 = function $$_reduce_322(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - if ($truthy(self['$in_def?']())) { - self.$diagnostic("error", "module_in_def", nil, val['$[]'](0))}; - result = self.builder.$def_module(val['$[]'](0), val['$[]'](1), val['$[]'](3), val['$[]'](4)); - self.lexer.$pop_cmdarg(); - self.static_env.$unextend(); - return result; - }, TMP_Ruby23__reduce_322_219.$$arity = 3); - - Opal.defn(self, '$_reduce_323', TMP_Ruby23__reduce_323_220 = function $$_reduce_323(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'BlockToIter'); - - self.def_level = $rb_plus(self.def_level, 1); - self.static_env.$extend_static(); - self.lexer.$push_cmdarg(); - return result; - }, TMP_Ruby23__reduce_323_220.$$arity = 3); - - Opal.defn(self, '$_reduce_324', TMP_Ruby23__reduce_324_221 = function $$_reduce_324(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $BlockToIter_on_block$1; - - result = self.builder.$def_method(val['$[]'](0), val['$[]'](1), val['$[]'](3), val['$[]'](4), val['$[]'](5)); - self.lexer.$pop_cmdarg(); - self.static_env.$unextend(); - self.def_level = $rb_minus(self.def_level, 1); - return result; - }, TMP_Ruby23__reduce_324_221.$$arity = 3); - - Opal.defn(self, '$_reduce_325', TMP_Ruby23__reduce_325_222 = function $$_reduce_325(val, _values, result) { - var self = this, $writer = nil; + return (Opal.def(self, '$on_block', $BlockToIter_on_block$1 = function $$on_block(node) { + var $a, self = this, recvr = nil, args = nil, body = nil, iter_node = nil; + + + $a = [].concat(Opal.to_a(node)), (recvr = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + iter_node = self.$s("iter", args, body); + return self.$process(recvr.$updated(nil, $rb_plus(recvr.$children(), [iter_node]))); + }, $BlockToIter_on_block$1.$$arity = 1), nil) && 'on_block' + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/rewriters/dot_js_syntax"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $slice = Opal.slice, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; + + Opal.add_stubs(['$require', '$==', '$type', '$===', '$!=', '$size', '$error', '$first', '$to_js_attr_call', '$to_js_attr_assign_call', '$to_native_js_call', '$s']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DotJsSyntax'); + + var $nesting = [self].concat($parent_nesting), $DotJsSyntax_on_send$1, $DotJsSyntax_to_native_js_call$2, $DotJsSyntax_to_js_attr_call$3, $DotJsSyntax_to_js_attr_assign_call$4; - $writer = ["expr_fname"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return result; - }, TMP_Ruby23__reduce_325_222.$$arity = 3); - - Opal.defn(self, '$_reduce_326', TMP_Ruby23__reduce_326_223 = function $$_reduce_326(val, _values, result) { - var self = this; + Opal.def(self, '$on_send', $DotJsSyntax_on_send$1 = function $$on_send(node) { + var $a, $iter = $DotJsSyntax_on_send$1.$$p, $yield = $iter || nil, self = this, recv = nil, meth = nil, args = nil, $ret_or_1 = nil, recv_of_recv = nil, meth_of_recv = nil, _ = nil, $case = nil, property = nil, value = nil; + if ($iter) $DotJsSyntax_on_send$1.$$p = null; + + $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if ($truthy((function() {if ($truthy(($ret_or_1 = recv))) { + return recv.$type()['$==']("send") + } else { + return $ret_or_1 + }; return nil; })())) { + + $a = [].concat(Opal.to_a(recv)), (recv_of_recv = ($a[0] == null ? nil : $a[0])), (meth_of_recv = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), $a; + if (meth_of_recv['$==']("JS")) { + + $case = meth; + if ("[]"['$===']($case)) { + if ($truthy(args.$size()['$!='](1))) { + self.$error(".JS[:property] syntax supports only one argument")}; + property = args.$first(); + node = self.$to_js_attr_call(recv_of_recv, property);} + else if ("[]="['$===']($case)) { + if ($truthy(args.$size()['$!='](2))) { + self.$error(".JS[:property]= syntax supports only two arguments")}; + $a = [].concat(Opal.to_a(args)), (property = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; + node = self.$to_js_attr_assign_call(recv_of_recv, property, value);} + else {node = self.$to_native_js_call(recv_of_recv, meth, args)}; + return $send2(self, $find_super(self, 'on_send', $DotJsSyntax_on_send$1, false, true), 'on_send', [node], null); + } else { + return $send2(self, $find_super(self, 'on_send', $DotJsSyntax_on_send$1, false, true), 'on_send', [node], $iter) + }; + } else { + return $send2(self, $find_super(self, 'on_send', $DotJsSyntax_on_send$1, false, true), 'on_send', [node], $iter) + }; + }, $DotJsSyntax_on_send$1.$$arity = 1); - self.def_level = $rb_plus(self.def_level, 1); - self.static_env.$extend_static(); - self.lexer.$push_cmdarg(); - return result; - }, TMP_Ruby23__reduce_326_223.$$arity = 3); - - Opal.defn(self, '$_reduce_327', TMP_Ruby23__reduce_327_224 = function $$_reduce_327(val, _values, result) { - var self = this; + Opal.def(self, '$to_native_js_call', $DotJsSyntax_to_native_js_call$2 = function $$to_native_js_call(recv, meth, args) { + var self = this; + return $send(self, 's', ["jscall", recv, meth].concat(Opal.to_a(args))) + }, $DotJsSyntax_to_native_js_call$2.$$arity = 3); - result = self.builder.$def_singleton(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](4), val['$[]'](6), val['$[]'](7), val['$[]'](8)); - self.lexer.$pop_cmdarg(); - self.static_env.$unextend(); - self.def_level = $rb_minus(self.def_level, 1); - return result; - }, TMP_Ruby23__reduce_327_224.$$arity = 3); - - Opal.defn(self, '$_reduce_328', TMP_Ruby23__reduce_328_225 = function $$_reduce_328(val, _values, result) { - var self = this; + Opal.def(self, '$to_js_attr_call', $DotJsSyntax_to_js_attr_call$3 = function $$to_js_attr_call(recv, property) { + var self = this; - - result = self.builder.$keyword_cmd("break", val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_328_225.$$arity = 3); - - Opal.defn(self, '$_reduce_329', TMP_Ruby23__reduce_329_226 = function $$_reduce_329(val, _values, result) { - var self = this; + return self.$s("jsattr", recv, property) + }, $DotJsSyntax_to_js_attr_call$3.$$arity = 2); + return (Opal.def(self, '$to_js_attr_assign_call', $DotJsSyntax_to_js_attr_assign_call$4 = function $$to_js_attr_assign_call(recv, property, value) { + var self = this; - - result = self.builder.$keyword_cmd("next", val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_329_226.$$arity = 3); - - Opal.defn(self, '$_reduce_330', TMP_Ruby23__reduce_330_227 = function $$_reduce_330(val, _values, result) { - var self = this; + return self.$s("jsattrasgn", recv, property, value) + }, $DotJsSyntax_to_js_attr_assign_call$4.$$arity = 3), nil) && 'to_js_attr_assign_call'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = self.builder.$keyword_cmd("redo", val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_330_227.$$arity = 3); - - Opal.defn(self, '$_reduce_331', TMP_Ruby23__reduce_331_228 = function $$_reduce_331(val, _values, result) { - var self = this; +Opal.modules["opal/rewriters/pattern_matching"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; - - result = self.builder.$keyword_cmd("retry", val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_331_228.$$arity = 3); - - Opal.defn(self, '$_reduce_335', TMP_Ruby23__reduce_335_229 = function $$_reduce_335(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$s', '$convert_full_pattern', '$raise_no_matching_pattern_error', '$+', '$process', '$single_case_match', '$private', '$shift', '$type', '$===', '$!', '$empty?', '$!=', '$==', '$class', '$new', '$run!', '$variables', '$pattern', '$map', '$<<', '$array', '$on_literal', '$first', '$children', '$to_proc', '$method', '$each', '$to_ast', '$on_array_pattern', '$compact', '$[]']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = val['$[]'](1); - return result; - }, TMP_Ruby23__reduce_335_229.$$arity = 3); - - Opal.defn(self, '$_reduce_339', TMP_Ruby23__reduce_339_230 = function $$_reduce_339(val, _values, result) { - var $a, $b, self = this, else_t = nil, else_ = nil; + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); + + var $nesting = [self].concat($parent_nesting); - - $b = val['$[]'](4), $a = Opal.to_ary($b), (else_t = ($a[0] == null ? nil : $a[0])), (else_ = ($a[1] == null ? nil : $a[1])), $b; - result = [val['$[]'](0), self.builder.$condition(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3), else_t, else_, nil)]; - return result; - }, TMP_Ruby23__reduce_339_230.$$arity = 3); - - Opal.defn(self, '$_reduce_341', TMP_Ruby23__reduce_341_231 = function $$_reduce_341(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'PatternMatching'); - - result = val; - return result; - }, TMP_Ruby23__reduce_341_231.$$arity = 3); - - Opal.defn(self, '$_reduce_344', TMP_Ruby23__reduce_344_232 = function $$_reduce_344(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $PatternMatching_initialize$1, $PatternMatching_on_match_pattern$2, $PatternMatching_on_match_pattern_p$3, $PatternMatching_on_case_match$4, $PatternMatching_raise_no_matching_pattern_error$5, $PatternMatching_single_case_match$6, $PatternMatching_convert_full_pattern$7; + self.$$prototype.depth = nil; - result = self.builder.$arg(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_344_232.$$arity = 3); - - Opal.defn(self, '$_reduce_345', TMP_Ruby23__reduce_345_233 = function $$_reduce_345(val, _values, result) { - var self = this; - - result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_345_233.$$arity = 3); - - Opal.defn(self, '$_reduce_346', TMP_Ruby23__reduce_346_234 = function $$_reduce_346(val, _values, result) { - var self = this; + Opal.def(self, '$initialize', $PatternMatching_initialize$1 = function $$initialize() { + var $iter = $PatternMatching_initialize$1.$$p, $yield = $iter || nil, self = this; + if ($iter) $PatternMatching_initialize$1.$$p = null; + + self.depth = 0; + return $send2(self, $find_super(self, 'initialize', $PatternMatching_initialize$1, false, true), 'initialize', [], $iter); + }, $PatternMatching_initialize$1.$$arity = 0); - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_346_234.$$arity = 3); - - Opal.defn(self, '$_reduce_347', TMP_Ruby23__reduce_347_235 = function $$_reduce_347(val, _values, result) { - var self = this; + Opal.def(self, '$on_match_pattern', $PatternMatching_on_match_pattern$2 = function $$on_match_pattern(node) { + var $a, self = this, from = nil, pat = nil; + + $a = [].concat(Opal.to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; + return self.$s("begin", self.$s("lvasgn", "$pmvar", from), self.$s("if", self.$convert_full_pattern(from, pat), nil, self.$raise_no_matching_pattern_error("$pmvar"))); + }, $PatternMatching_on_match_pattern$2.$$arity = 1); - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_347_235.$$arity = 3); - - Opal.defn(self, '$_reduce_349', TMP_Ruby23__reduce_349_236 = function $$_reduce_349(val, _values, result) { - var self = this; + Opal.def(self, '$on_match_pattern_p', $PatternMatching_on_match_pattern_p$3 = function $$on_match_pattern_p(node) { + var $a, self = this, from = nil, pat = nil; + + $a = [].concat(Opal.to_a(node)), (from = ($a[0] == null ? nil : $a[0])), (pat = ($a[1] == null ? nil : $a[1])), $a; + return self.$s("if", self.$convert_full_pattern(from, pat), self.$s("true"), self.$s("false")); + }, $PatternMatching_on_match_pattern_p$3.$$arity = 1); - result = val['$[]'](0).$push(self.builder.$restarg(val['$[]'](2), val['$[]'](3))); - return result; - }, TMP_Ruby23__reduce_349_236.$$arity = 3); - - Opal.defn(self, '$_reduce_350', TMP_Ruby23__reduce_350_237 = function $$_reduce_350(val, _values, result) { - var self = this; + Opal.def(self, '$on_case_match', $PatternMatching_on_case_match$4 = function $$on_case_match(node) { + var $a, $b, self = this, cmvar = nil, from = nil, cases = nil, els = nil; + + self.depth = $rb_plus(self.depth, 1); + cmvar = "" + "$cmvar" + (self.depth); + $a = [].concat(Opal.to_a(node)), (from = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (cases = $slice.call($a, 1, $b)), (els = ($a[$b] == null ? nil : $a[$b])), $a; + if ($truthy(els)) { + self.$process(els) + } else { + els = self.$raise_no_matching_pattern_error(cmvar) + }; + return self.$s("begin", self.$s("lvasgn", cmvar, from), $send(self, 'single_case_match', [cmvar].concat(Opal.to_a(cases)).concat([els]))); + }, $PatternMatching_on_case_match$4.$$arity = 1); + self.$private(); - result = val['$[]'](0).$push(self.builder.$restarg(val['$[]'](2), val['$[]'](3))).$concat(val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_350_237.$$arity = 3); - - Opal.defn(self, '$_reduce_351', TMP_Ruby23__reduce_351_238 = function $$_reduce_351(val, _values, result) { - var self = this; + Opal.def(self, '$raise_no_matching_pattern_error', $PatternMatching_raise_no_matching_pattern_error$5 = function $$raise_no_matching_pattern_error(from) { + var self = this; + return self.$s("send", nil, "raise", self.$s("const", nil, "NoMatchingPatternError"), self.$s("lvar", from)) + }, $PatternMatching_raise_no_matching_pattern_error$5.$$arity = 1); - result = val['$[]'](0).$push(self.builder.$restarg(val['$[]'](2))); - return result; - }, TMP_Ruby23__reduce_351_238.$$arity = 3); - - Opal.defn(self, '$_reduce_352', TMP_Ruby23__reduce_352_239 = function $$_reduce_352(val, _values, result) { - var self = this; + Opal.def(self, '$single_case_match', $PatternMatching_single_case_match$6 = function $$single_case_match(from, $a, $b) { + var $post_args, cases, els, $c, self = this, cas = nil, pat = nil, if_guard = nil, body = nil, guard = nil, $case = nil; + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + cases = $post_args.splice(0, $post_args.length - 1);; + + els = $post_args[0]; + $post_args.splice(0, 1); + if (els == null) { + els = nil + }; + cas = cases.$shift(); + $c = [].concat(Opal.to_a(cas)), (pat = ($c[0] == null ? nil : $c[0])), (if_guard = ($c[1] == null ? nil : $c[1])), (body = ($c[2] == null ? nil : $c[2])), $c; + pat = self.$convert_full_pattern(from, pat); + if ($truthy(if_guard)) { + + $c = [].concat(Opal.to_a(if_guard)), (guard = ($c[0] == null ? nil : $c[0])), $c; + $case = if_guard.$type(); + if ("if_guard"['$===']($case)) {pat = self.$s("and", pat, guard)} + else if ("unless_guard"['$===']($case)) {pat = self.$s("and", pat, self.$s("send", guard, "!"))};}; + return self.$s("if", pat, self.$process(body), (function() {if ($truthy(cases['$empty?']()['$!']())) { + return $send(self, 'single_case_match', [from].concat(Opal.to_a(cases)).concat([els])) + } else if ($truthy(els['$!='](self.$s("empty_else")))) { + return els + } else { + return nil + }; return nil; })()); + }, $PatternMatching_single_case_match$6.$$arity = -3); - result = val['$[]'](0).$push(self.builder.$restarg(val['$[]'](2))).$concat(val['$[]'](4)); - return result; - }, TMP_Ruby23__reduce_352_239.$$arity = 3); - - Opal.defn(self, '$_reduce_353', TMP_Ruby23__reduce_353_240 = function $$_reduce_353(val, _values, result) { - var self = this; + Opal.def(self, '$convert_full_pattern', $PatternMatching_convert_full_pattern$7 = function $$convert_full_pattern(from, pat) { + var self = this, converter = nil; - - result = [self.builder.$restarg(val['$[]'](0), val['$[]'](1))]; - return result; - }, TMP_Ruby23__reduce_353_240.$$arity = 3); - - Opal.defn(self, '$_reduce_354', TMP_Ruby23__reduce_354_241 = function $$_reduce_354(val, _values, result) { - var self = this; + + if (from.$class()['$==']($$($nesting, 'Symbol'))) { + from = self.$s("lvar", from)}; + converter = $$($nesting, 'PatternConverter').$new(pat); + converter['$run!'](); + return self.$s("masgn", $send(self, 's', ["mlhs"].concat(Opal.to_a(converter.$variables()))), self.$s("send", self.$s("const", self.$s("cbase"), "PatternMatching"), "call", from, converter.$pattern())); + }, $PatternMatching_convert_full_pattern$7.$$arity = 2); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'PatternConverter'); - - result = [self.builder.$restarg(val['$[]'](0), val['$[]'](1))].concat(Opal.to_a(val['$[]'](3))); - return result; - }, TMP_Ruby23__reduce_354_241.$$arity = 3); - - Opal.defn(self, '$_reduce_355', TMP_Ruby23__reduce_355_242 = function $$_reduce_355(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $PatternConverter_initialize$8, $PatternConverter_run$excl$9, $PatternConverter_pattern$10, $PatternConverter_variables$11, $PatternConverter_on_match_var$13, $PatternConverter_on_match_as$14, $PatternConverter_on_literal$15, $PatternConverter_on_pin$16, $PatternConverter_on_match_rest$17, $PatternConverter_on_match_alt$18, $PatternConverter_on_const_pattern$19, $PatternConverter_on_array_pattern$20, $PatternConverter_on_array_pattern_with_tail$22, $PatternConverter_on_hash_pattern$23, $PatternConverter_on_find_pattern$25, $PatternConverter_array$26, $PatternConverter_to_ast$27; - - result = [self.builder.$restarg(val['$[]'](0))]; - return result; - }, TMP_Ruby23__reduce_355_242.$$arity = 3); - - Opal.defn(self, '$_reduce_356', TMP_Ruby23__reduce_356_243 = function $$_reduce_356(val, _values, result) { - var self = this; + self.$$prototype.pat = self.$$prototype.outpat = self.$$prototype.variables = nil; + + + Opal.def(self, '$initialize', $PatternConverter_initialize$8 = function $$initialize(pat) { + var self = this; - - result = [self.builder.$restarg(val['$[]'](0))].concat(Opal.to_a(val['$[]'](2))); - return result; - }, TMP_Ruby23__reduce_356_243.$$arity = 3); - - Opal.defn(self, '$_reduce_357', TMP_Ruby23__reduce_357_244 = function $$_reduce_357(val, _values, result) { - var self = this; + + self.pat = pat; + return (self.variables = []); + }, $PatternConverter_initialize$8.$$arity = 1); + + Opal.def(self, '$run!', $PatternConverter_run$excl$9 = function() { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_357_244.$$arity = 3); - - Opal.defn(self, '$_reduce_358', TMP_Ruby23__reduce_358_245 = function $$_reduce_358(val, _values, result) { - var self = this; + return (self.outpat = self.$process(self.pat)) + }, $PatternConverter_run$excl$9.$$arity = 0); + + Opal.def(self, '$pattern', $PatternConverter_pattern$10 = function $$pattern() { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_358_245.$$arity = 3); - - Opal.defn(self, '$_reduce_359', TMP_Ruby23__reduce_359_246 = function $$_reduce_359(val, _values, result) { - var self = this; + return self.outpat + }, $PatternConverter_pattern$10.$$arity = 0); + + Opal.def(self, '$variables', $PatternConverter_variables$11 = function $$variables() { + var $$12, self = this; - - result = val['$[]'](0).$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_359_246.$$arity = 3); - - Opal.defn(self, '$_reduce_360', TMP_Ruby23__reduce_360_247 = function $$_reduce_360(val, _values, result) { - var self = this; + return $send(self.variables, 'map', [], ($$12 = function(i){var self = $$12.$$s == null ? this : $$12.$$s; - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_360_247.$$arity = 3); - - Opal.defn(self, '$_reduce_361', TMP_Ruby23__reduce_361_248 = function $$_reduce_361(val, _values, result) { - var self = this; + + + if (i == null) { + i = nil; + }; + return self.$s("lvasgn", i);}, $$12.$$s = self, $$12.$$arity = 1, $$12)) + }, $PatternConverter_variables$11.$$arity = 0); + + Opal.def(self, '$on_match_var', $PatternConverter_on_match_var$13 = function $$on_match_var(node) { + var $a, self = this, var$ = nil; - - result = val['$[]'](1); - return result; - }, TMP_Ruby23__reduce_361_248.$$arity = 3); - - Opal.defn(self, '$_reduce_362', TMP_Ruby23__reduce_362_249 = function $$_reduce_362(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(node)), (var$ = ($a[0] == null ? nil : $a[0])), $a; + self.variables['$<<'](var$); + return self.$s("sym", "var"); + }, $PatternConverter_on_match_var$13.$$arity = 1); + + Opal.def(self, '$on_match_as', $PatternConverter_on_match_as$14 = function $$on_match_as(node) { + var $a, self = this, pat = nil, save = nil; - - result = []; - return result; - }, TMP_Ruby23__reduce_362_249.$$arity = 3); - - Opal.defn(self, '$_reduce_363', TMP_Ruby23__reduce_363_250 = function $$_reduce_363(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(node)), (pat = ($a[0] == null ? nil : $a[0])), (save = ($a[1] == null ? nil : $a[1])), $a; + self.$process(save); + return self.$array(self.$s("sym", "save"), self.$process(pat)); + }, $PatternConverter_on_match_as$14.$$arity = 1); + + Opal.def(self, '$on_literal', $PatternConverter_on_literal$15 = function $$on_literal(node) { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_363_250.$$arity = 3); - - Opal.defn(self, '$_reduce_364', TMP_Ruby23__reduce_364_251 = function $$_reduce_364(val, _values, result) { - var self = this; + return self.$array(self.$s("sym", "lit"), node) + }, $PatternConverter_on_literal$15.$$arity = 1); + $alias(self, "on_int", "on_literal"); + $alias(self, "on_float", "on_literal"); + $alias(self, "on_complex", "on_literal"); + $alias(self, "on_rational", "on_literal"); + $alias(self, "on_array", "on_literal"); + $alias(self, "on_str", "on_literal"); + $alias(self, "on_dstr", "on_literal"); + $alias(self, "on_xstr", "on_literal"); + $alias(self, "on_sym", "on_literal"); + $alias(self, "on_irange", "on_literal"); + $alias(self, "on_erange", "on_literal"); + $alias(self, "on_const", "on_literal"); + $alias(self, "on_regexp", "on_literal"); + $alias(self, "on_lambda", "on_literal"); + $alias(self, "on_begin", "on_literal"); + + Opal.def(self, '$on_pin', $PatternConverter_on_pin$16 = function $$on_pin(node) { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](6)).$concat(val['$[]'](7)); - return result; - }, TMP_Ruby23__reduce_364_251.$$arity = 3); - - Opal.defn(self, '$_reduce_365', TMP_Ruby23__reduce_365_252 = function $$_reduce_365(val, _values, result) { - var self = this; + return self.$on_literal(node.$children().$first()) + }, $PatternConverter_on_pin$16.$$arity = 1); + + Opal.def(self, '$on_match_rest', $PatternConverter_on_match_rest$17 = function $$on_match_rest(node) { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_365_252.$$arity = 3); - - Opal.defn(self, '$_reduce_366', TMP_Ruby23__reduce_366_253 = function $$_reduce_366(val, _values, result) { - var self = this; + if ($truthy(node.$children()['$empty?']())) { + return self.$array(self.$s("sym", "rest")) + } else { + return self.$array(self.$s("sym", "rest"), self.$process(node.$children().$first())) + } + }, $PatternConverter_on_match_rest$17.$$arity = 1); + + Opal.def(self, '$on_match_alt', $PatternConverter_on_match_alt$18 = function $$on_match_alt(node) { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_366_253.$$arity = 3); - - Opal.defn(self, '$_reduce_367', TMP_Ruby23__reduce_367_254 = function $$_reduce_367(val, _values, result) { - var self = this; + return $send(self, 'array', [self.$s("sym", "any")].concat(Opal.to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) + }, $PatternConverter_on_match_alt$18.$$arity = 1); + + Opal.def(self, '$on_const_pattern', $PatternConverter_on_const_pattern$19 = function $$on_const_pattern(node) { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_367_254.$$arity = 3); - - Opal.defn(self, '$_reduce_369', TMP_Ruby23__reduce_369_255 = function $$_reduce_369(val, _values, result) { - var self = this; + return $send(self, 'array', [self.$s("sym", "all")].concat(Opal.to_a($send(node.$children(), 'map', [], self.$method("process").$to_proc())))) + }, $PatternConverter_on_const_pattern$19.$$arity = 1); + + Opal.def(self, '$on_array_pattern', $PatternConverter_on_array_pattern$20 = function $$on_array_pattern(node, tail) { + var $$21, self = this, children = nil, fixed_size = nil, array_size = nil; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_369_255.$$arity = 3); - - Opal.defn(self, '$_reduce_370', TMP_Ruby23__reduce_370_256 = function $$_reduce_370(val, _values, result) { - var $a, self = this; + + + if (tail == null) { + tail = false; + }; + children = [].concat(Opal.to_a(node)); + if ($truthy(tail)) { + children['$<<'](self.$s("match_rest"))}; + fixed_size = true; + array_size = 0; + children = $send(children, 'each', [], ($$21 = function(i){var self = $$21.$$s == null ? this : $$21.$$s, $case = nil; - - if ($truthy(($truthy($a = val['$[]'](1)['$empty?']()) ? val['$[]'](0).$size()['$=='](1) : $a))) { - result = [self.builder.$procarg0(val['$[]'](0)['$[]'](0))] - } else { - result = val['$[]'](0).$concat(val['$[]'](1)) - }; - return result; - }, TMP_Ruby23__reduce_370_256.$$arity = 3); - - Opal.defn(self, '$_reduce_371', TMP_Ruby23__reduce_371_257 = function $$_reduce_371(val, _values, result) { - var self = this; + + + if (i == null) { + i = nil; + }; + return (function() {$case = i.$type(); + if ("match_rest"['$===']($case)) {return (fixed_size = false)} + else {return (array_size = $rb_plus(array_size, 1))}})();}, $$21.$$s = self, $$21.$$arity = 1, $$21)); + return self.$array(self.$s("sym", "array"), self.$to_ast(fixed_size), self.$to_ast(array_size), self.$to_ast($send(children, 'map', [], self.$method("process").$to_proc()))); + }, $PatternConverter_on_array_pattern$20.$$arity = -2); + + Opal.def(self, '$on_array_pattern_with_tail', $PatternConverter_on_array_pattern_with_tail$22 = function $$on_array_pattern_with_tail(node) { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_371_257.$$arity = 3); - - Opal.defn(self, '$_reduce_372', TMP_Ruby23__reduce_372_258 = function $$_reduce_372(val, _values, result) { - var self = this; + return self.$on_array_pattern(node, true) + }, $PatternConverter_on_array_pattern_with_tail$22.$$arity = 1); + + Opal.def(self, '$on_hash_pattern', $PatternConverter_on_hash_pattern$23 = function $$on_hash_pattern(node) { + var $$24, self = this, children = nil, any_size = nil; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_372_258.$$arity = 3); - - Opal.defn(self, '$_reduce_373', TMP_Ruby23__reduce_373_259 = function $$_reduce_373(val, _values, result) { - var self = this; + + children = [].concat(Opal.to_a(node)); + any_size = (function() {if ($truthy(children['$empty?']())) { + return self.$to_ast(false) + } else { + return self.$to_ast(true) + }; return nil; })(); + children = $send(children, 'map', [], ($$24 = function(i){var self = $$24.$$s == null ? this : $$24.$$s, $case = nil; - - result = val['$[]'](0).$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_373_259.$$arity = 3); - - Opal.defn(self, '$_reduce_374', TMP_Ruby23__reduce_374_260 = function $$_reduce_374(val, _values, result) { - var self = this; + + + if (i == null) { + i = nil; + }; + return (function() {$case = i.$type(); + if ("pair"['$===']($case)) {return self.$array(i.$children()['$[]'](0), self.$process(i.$children()['$[]'](1)))} + else if ("match_var"['$===']($case)) {return self.$array(self.$s("sym", i.$children()['$[]'](0)), self.$process(i))} + else if ("match_nil_pattern"['$===']($case)) { + any_size = self.$to_ast(false); + return nil;} + else if ("match_rest"['$===']($case)) { + if ($truthy(i.$children().$first())) { + any_size = self.$process(i.$children().$first()) + } else { + any_size = self.$to_ast(true) + }; + return nil;} + else { return nil }})();}, $$24.$$s = self, $$24.$$arity = 1, $$24)).$compact(); + return self.$array(self.$s("sym", "hash"), any_size, $send(self, 'array', Opal.to_a(children))); + }, $PatternConverter_on_hash_pattern$23.$$arity = 1); + + Opal.def(self, '$on_find_pattern', $PatternConverter_on_find_pattern$25 = function $$on_find_pattern(node) { + var self = this, children = nil; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_374_260.$$arity = 3); - - Opal.defn(self, '$_reduce_375', TMP_Ruby23__reduce_375_261 = function $$_reduce_375(val, _values, result) { - var self = this; + + children = [].concat(Opal.to_a(node)); + children = $send(children, 'map', [], self.$method("process").$to_proc()); + return self.$array(self.$s("sym", "find"), $send(self, 'array', Opal.to_a(children))); + }, $PatternConverter_on_find_pattern$25.$$arity = 1); + self.$private(); + + Opal.def(self, '$array', $PatternConverter_array$26 = function $$array($a) { + var $post_args, args, self = this; - - result = val['$[]'](0).$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_375_261.$$arity = 3); - - Opal.defn(self, '$_reduce_376', TMP_Ruby23__reduce_376_262 = function $$_reduce_376(val, _values, result) { - var self = this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return self.$to_ast(args); + }, $PatternConverter_array$26.$$arity = -1); + return (Opal.def(self, '$to_ast', $PatternConverter_to_ast$27 = function $$to_ast(val) { + var self = this, $case = nil; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_376_262.$$arity = 3); - - Opal.defn(self, '$_reduce_378', TMP_Ruby23__reduce_378_263 = function $$_reduce_378(val, _values, result) { - var self = this; + return (function() {$case = val; + if ($$($nesting, 'Array')['$===']($case)) {return $send(self, 's', ["array"].concat(Opal.to_a(val)))} + else if ($$($nesting, 'Integer')['$===']($case)) {return self.$s("int", val)} + else if (true['$===']($case)) {return self.$s("true")} + else if (false['$===']($case)) {return self.$s("false")} + else if (nil['$===']($case)) {return self.$s("nil")} + else { return nil }})() + }, $PatternConverter_to_ast$27.$$arity = 1), nil) && 'to_ast'; + })($nesting[0], $$$($$$($$$('::', 'Opal'), 'Rewriters'), 'Base'), $nesting); + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/rewriters/logical_operator_assignment"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $lambda = Opal.lambda, $slice = Opal.slice, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; + + Opal.add_stubs(['$require', '$+', '$updated', '$s', '$include?', '$==', '$[]', '$type', '$new_temp', '$freeze', '$call', '$fetch', '$error', '$process']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'LogicalOperatorAssignment'); + + var $nesting = [self].concat($parent_nesting), $LogicalOperatorAssignment_reset_tmp_counter$excl$1, $LogicalOperatorAssignment_new_temp$2, $LogicalOperatorAssignment$3, $LogicalOperatorAssignment_on_or_asgn$7, $LogicalOperatorAssignment_on_and_asgn$9, $LogicalOperatorAssignment_on_defined$ques$11; - result = self.builder.$args(nil, [], nil); - return result; - }, TMP_Ruby23__reduce_378_263.$$arity = 3); - - Opal.defn(self, '$_reduce_379', TMP_Ruby23__reduce_379_264 = function $$_reduce_379(val, _values, result) { - var self = this, $writer = nil; + Opal.defs(self, '$reset_tmp_counter!', $LogicalOperatorAssignment_reset_tmp_counter$excl$1 = function() { + var self = this; + + return $class_variable_set($nesting[0], '@@counter', 0) + }, $LogicalOperatorAssignment_reset_tmp_counter$excl$1.$$arity = 0); + Opal.defs(self, '$new_temp', $LogicalOperatorAssignment_new_temp$2 = function $$new_temp() { + var $a, self = this, $ret_or_1 = nil; + + + $class_variable_set($nesting[0], '@@counter', (function() {if ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil))) { + + if ($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false)))) { + return $ret_or_1 + } else { + return 0 + }; + } else { + return 0 + }; return nil; })()); + $class_variable_set($nesting[0], '@@counter', $rb_plus($class_variable_get($nesting[0], '@@counter', false), 1)); + return "" + "$logical_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); + }, $LogicalOperatorAssignment_new_temp$2.$$arity = 0); + Opal.const_set($nesting[0], 'GET_SET', $lambda(($LogicalOperatorAssignment$3 = function(get_type, set_type){var self = $LogicalOperatorAssignment$3.$$s == null ? this : $LogicalOperatorAssignment$3.$$s, $$4; + + + + if (get_type == null) { + get_type = nil; + }; + + if (set_type == null) { + set_type = nil; + }; + return $lambda(($$4 = function(lhs, rhs, root_type){var self = $$4.$$s == null ? this : $$4.$$s, get_node = nil, condition_node = nil, $ret_or_2 = nil, defined_node = nil; - - - $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return result; - }, TMP_Ruby23__reduce_379_264.$$arity = 3); - - Opal.defn(self, '$_reduce_380', TMP_Ruby23__reduce_380_265 = function $$_reduce_380(val, _values, result) { - var self = this; + + + if (lhs == null) { + lhs = nil; + }; + + if (rhs == null) { + rhs = nil; + }; + + if (root_type == null) { + root_type = nil; + }; + get_node = lhs.$updated(get_type); + condition_node = self.$s(root_type, get_node, rhs); + if ($truthy((function() {if ($truthy(($ret_or_2 = ["const", "cvar"]['$include?'](get_type)))) { + return root_type['$==']("or") + } else { + return $ret_or_2 + }; return nil; })())) { + + defined_node = self.$s("defined?", get_node); + condition_node = self.$s("if", defined_node, self.$s("begin", condition_node), rhs);}; + return lhs.$updated(set_type, [].concat(Opal.to_a(lhs)).concat([condition_node]));}, $$4.$$s = self, $$4.$$arity = 3, $$4));}, $LogicalOperatorAssignment$3.$$s = self, $LogicalOperatorAssignment$3.$$arity = 2, $LogicalOperatorAssignment$3))); + Opal.const_set($nesting[0], 'LocalVariableHandler', $$($nesting, 'GET_SET')['$[]']("lvar", "lvasgn")); + Opal.const_set($nesting[0], 'InstanceVariableHandler', $$($nesting, 'GET_SET')['$[]']("ivar", "ivasgn")); + Opal.const_set($nesting[0], 'ConstantHandler', $$($nesting, 'GET_SET')['$[]']("const", "casgn")); + Opal.const_set($nesting[0], 'GlobalVariableHandler', $$($nesting, 'GET_SET')['$[]']("gvar", "gvasgn")); + Opal.const_set($nesting[0], 'ClassVariableHandler', $$($nesting, 'GET_SET')['$[]']("cvar", "cvasgn")); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SendHandler'); - - result = self.builder.$args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_380_265.$$arity = 3); - - Opal.defn(self, '$_reduce_381', TMP_Ruby23__reduce_381_266 = function $$_reduce_381(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $SendHandler_call$5; - - result = self.builder.$args(val['$[]'](0), [], val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_381_266.$$arity = 3); - - Opal.defn(self, '$_reduce_382', TMP_Ruby23__reduce_382_267 = function $$_reduce_382(val, _values, result) { - var self = this; + return (Opal.defs(self, '$call', $SendHandler_call$5 = function $$call(lhs, rhs, root_type) { + var $a, self = this, recvr = nil, reader_method = nil, args = nil, $ret_or_3 = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_writer = nil, get_or_set = nil; - - result = self.builder.$args(val['$[]'](0), val['$[]'](1).$concat(val['$[]'](2)), val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_382_267.$$arity = 3); - - Opal.defn(self, '$_reduce_383', TMP_Ruby23__reduce_383_268 = function $$_reduce_383(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if ($truthy((function() {if ($truthy(($ret_or_3 = recvr))) { + return recvr.$type()['$==']("send") + } else { + return $ret_or_3 + }; return nil; })())) { + + recvr_tmp = self.$new_temp(); + cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); + recvr = self.$s("js_tmp", recvr_tmp);}; + writer_method = "" + (reader_method) + "="; + call_reader = lhs.$updated("send", [recvr, reader_method].concat(Opal.to_a(args))); + call_writer = lhs.$updated("send", [recvr, writer_method].concat(Opal.to_a(args)).concat([rhs])); + get_or_set = self.$s(root_type, call_reader, call_writer); + if ($truthy(cache_recvr)) { + return self.$s("begin", cache_recvr, get_or_set) + } else { + return get_or_set + }; + }, $SendHandler_call$5.$$arity = 3), nil) && 'call' + })($nesting[0], self, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ConditionalSendHandler'); - - result = []; - return result; - }, TMP_Ruby23__reduce_383_268.$$arity = 3); - - Opal.defn(self, '$_reduce_384', TMP_Ruby23__reduce_384_269 = function $$_reduce_384(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $ConditionalSendHandler_call$6; - - result = val['$[]'](2); - return result; - }, TMP_Ruby23__reduce_384_269.$$arity = 3); - - Opal.defn(self, '$_reduce_385', TMP_Ruby23__reduce_385_270 = function $$_reduce_385(val, _values, result) { - var self = this; + return (Opal.defs(self, '$call', $ConditionalSendHandler_call$6 = function $$call(lhs, rhs, root_type) { + var $a, self = this, recvr = nil, meth = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, recvr_is_nil = nil, plain_send = nil, plain_or_asgn = nil; + + root_type = "" + (root_type) + "_asgn"; + $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + recvr_tmp = self.$new_temp(); + cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); + recvr = self.$s("js_tmp", recvr_tmp); + recvr_is_nil = self.$s("send", recvr, "nil?"); + plain_send = lhs.$updated("send", [recvr, meth].concat(Opal.to_a(args))); + plain_or_asgn = self.$s(root_type, plain_send, rhs); + return self.$s("begin", cache_recvr, self.$s("if", recvr_is_nil, self.$s("nil"), plain_or_asgn)); + }, $ConditionalSendHandler_call$6.$$arity = 3), nil) && 'call' + })($nesting[0], self, $nesting); + Opal.const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$($nesting, 'LocalVariableHandler'), "ivasgn": $$($nesting, 'InstanceVariableHandler'), "casgn": $$($nesting, 'ConstantHandler'), "gvasgn": $$($nesting, 'GlobalVariableHandler'), "cvasgn": $$($nesting, 'ClassVariableHandler'), "send": $$($nesting, 'SendHandler'), "csend": $$($nesting, 'ConditionalSendHandler')}).$freeze()); - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_385_270.$$arity = 3); - - Opal.defn(self, '$_reduce_386', TMP_Ruby23__reduce_386_271 = function $$_reduce_386(val, _values, result) { - var self = this; + Opal.def(self, '$on_or_asgn', $LogicalOperatorAssignment_on_or_asgn$7 = function $$on_or_asgn(node) { + var $a, $$8, self = this, lhs = nil, rhs = nil, result = nil; - - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_386_271.$$arity = 3); - - Opal.defn(self, '$_reduce_387', TMP_Ruby23__reduce_387_272 = function $$_reduce_387(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + result = $send($$($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + return self.$error("" + "cannot handle LHS type: " + (lhs.$type()))}, $$8.$$s = self, $$8.$$arity = 0, $$8)).$call(lhs, rhs, "or"); + return self.$process(result); + }, $LogicalOperatorAssignment_on_or_asgn$7.$$arity = 1); - self.static_env.$declare(val['$[]'](0)['$[]'](0)); - result = self.builder.$shadowarg(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_387_272.$$arity = 3); - - Opal.defn(self, '$_reduce_389', TMP_Ruby23__reduce_389_273 = function $$_reduce_389(val, _values, result) { - var self = this; + Opal.def(self, '$on_and_asgn', $LogicalOperatorAssignment_on_and_asgn$9 = function $$on_and_asgn(node) { + var $a, $$10, self = this, lhs = nil, rhs = nil, result = nil; - - self.static_env.$extend_dynamic(); - return result; - }, TMP_Ruby23__reduce_389_273.$$arity = 3); - - Opal.defn(self, '$_reduce_390', TMP_Ruby23__reduce_390_274 = function $$_reduce_390(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + result = $send($$($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - - result = self.lexer.$cmdarg().$dup(); - self.lexer.$cmdarg().$clear(); - return result; - }, TMP_Ruby23__reduce_390_274.$$arity = 3); - - Opal.defn(self, '$_reduce_391', TMP_Ruby23__reduce_391_275 = function $$_reduce_391(val, _values, result) { - var self = this, $writer = nil; + return self.$error("" + "cannot handle LHS type: " + (lhs.$type()))}, $$10.$$s = self, $$10.$$arity = 0, $$10)).$call(lhs, rhs, "and"); + return self.$process(result); + }, $LogicalOperatorAssignment_on_and_asgn$9.$$arity = 1); + Opal.const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); + return (Opal.def(self, '$on_defined?', $LogicalOperatorAssignment_on_defined$ques$11 = function(node) { + var $a, $iter = $LogicalOperatorAssignment_on_defined$ques$11.$$p, $yield = $iter || nil, self = this, inner = nil, _ = nil; - - - $writer = [val['$[]'](2)]; - $send(self.lexer, 'cmdarg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.lexer.$cmdarg().$lexpop(); - result = [val['$[]'](1), val['$[]'](3)]; - self.static_env.$unextend(); - return result; - }, TMP_Ruby23__reduce_391_275.$$arity = 3); - - Opal.defn(self, '$_reduce_392', TMP_Ruby23__reduce_392_276 = function $$_reduce_392(val, _values, result) { - var self = this; + if ($iter) $LogicalOperatorAssignment_on_defined$ques$11.$$p = null; + + $a = [].concat(Opal.to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(["or_asgn", "and_asgn"]['$include?'](inner.$type()))) { + return $$($nesting, 'ASSIGNMENT_STRING_NODE') + } else { + return $send2(self, $find_super(self, 'on_defined?', $LogicalOperatorAssignment_on_defined$ques$11, false, true), 'on_defined?', [node], null) + }; + }, $LogicalOperatorAssignment_on_defined$ques$11.$$arity = 1), nil) && 'on_defined?'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = self.builder.$args(val['$[]'](0), val['$[]'](1).$concat(val['$[]'](2)), val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_392_276.$$arity = 3); - - Opal.defn(self, '$_reduce_393', TMP_Ruby23__reduce_393_277 = function $$_reduce_393(val, _values, result) { - var self = this; +Opal.modules["opal/rewriters/binary_operator_assignment"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $lambda = Opal.lambda, $slice = Opal.slice, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; - - result = self.builder.$args(nil, val['$[]'](0), nil); - return result; - }, TMP_Ruby23__reduce_393_277.$$arity = 3); - - Opal.defn(self, '$_reduce_394', TMP_Ruby23__reduce_394_278 = function $$_reduce_394(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$+', '$updated', '$[]', '$==', '$type', '$new_temp', '$s', '$freeze', '$call', '$fetch', '$error', '$process']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = [val['$[]'](0), val['$[]'](1), val['$[]'](2)]; - return result; - }, TMP_Ruby23__reduce_394_278.$$arity = 3); - - Opal.defn(self, '$_reduce_395', TMP_Ruby23__reduce_395_279 = function $$_reduce_395(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = [val['$[]'](0), val['$[]'](1), val['$[]'](2)]; - return result; - }, TMP_Ruby23__reduce_395_279.$$arity = 3); - - Opal.defn(self, '$_reduce_396', TMP_Ruby23__reduce_396_280 = function $$_reduce_396(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - self.static_env.$extend_dynamic(); - return result; - }, TMP_Ruby23__reduce_396_280.$$arity = 3); - - Opal.defn(self, '$_reduce_397', TMP_Ruby23__reduce_397_281 = function $$_reduce_397(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = [val['$[]'](0), val['$[]'](2), val['$[]'](3), val['$[]'](4)]; - self.static_env.$unextend(); - return result; - }, TMP_Ruby23__reduce_397_281.$$arity = 3); - - Opal.defn(self, '$_reduce_398', TMP_Ruby23__reduce_398_282 = function $$_reduce_398(val, _values, result) { - var $a, $b, self = this, begin_t = nil, block_args = nil, body = nil, end_t = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'BinaryOperatorAssignment'); - - $b = val['$[]'](1), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (block_args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; - result = self.builder.$block(val['$[]'](0), begin_t, block_args, body, end_t); - return result; - }, TMP_Ruby23__reduce_398_282.$$arity = 3); - - Opal.defn(self, '$_reduce_399', TMP_Ruby23__reduce_399_283 = function $$_reduce_399(val, _values, result) { - var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; + var $nesting = [self].concat($parent_nesting), $BinaryOperatorAssignment_reset_tmp_counter$excl$1, $BinaryOperatorAssignment_new_temp$2, $BinaryOperatorAssignment$3, $BinaryOperatorAssignment_on_op_asgn$7, $BinaryOperatorAssignment_on_defined$ques$9; - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; - result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); - return result; - }, TMP_Ruby23__reduce_399_283.$$arity = 3); - - Opal.defn(self, '$_reduce_400', TMP_Ruby23__reduce_400_284 = function $$_reduce_400(val, _values, result) { - var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil, method_call = nil, begin_t = nil, body = nil, end_t = nil; + Opal.defs(self, '$reset_tmp_counter!', $BinaryOperatorAssignment_reset_tmp_counter$excl$1 = function() { + var self = this; - - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; - method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; - result = self.builder.$block(method_call, begin_t, args, body, end_t); - return result; - }, TMP_Ruby23__reduce_400_284.$$arity = 3); - - Opal.defn(self, '$_reduce_401', TMP_Ruby23__reduce_401_285 = function $$_reduce_401(val, _values, result) { - var $a, $b, self = this, method_call = nil, begin_t = nil, args = nil, body = nil, end_t = nil; + return $class_variable_set($nesting[0], '@@counter', 0) + }, $BinaryOperatorAssignment_reset_tmp_counter$excl$1.$$arity = 0); + Opal.defs(self, '$new_temp', $BinaryOperatorAssignment_new_temp$2 = function $$new_temp() { + var $a, self = this, $ret_or_1 = nil; - - method_call = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), nil, val['$[]'](3), nil); - $b = val['$[]'](4), $a = Opal.to_ary($b), (begin_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), (end_t = ($a[3] == null ? nil : $a[3])), $b; - result = self.builder.$block(method_call, begin_t, args, body, end_t); - return result; - }, TMP_Ruby23__reduce_401_285.$$arity = 3); - - Opal.defn(self, '$_reduce_402', TMP_Ruby23__reduce_402_286 = function $$_reduce_402(val, _values, result) { - var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; + + $class_variable_set($nesting[0], '@@counter', (function() {if ($truthy((($a = $nesting[0].$$cvars['@@counter'], $a != null) ? 'class variable' : nil))) { + + if ($truthy(($ret_or_1 = $class_variable_get($nesting[0], '@@counter', false)))) { + return $ret_or_1 + } else { + return 0 + }; + } else { + return 0 + }; return nil; })()); + $class_variable_set($nesting[0], '@@counter', $rb_plus($class_variable_get($nesting[0], '@@counter', false), 1)); + return "" + "$binary_op_recvr_tmp_" + ($class_variable_get($nesting[0], '@@counter', false)); + }, $BinaryOperatorAssignment_new_temp$2.$$arity = 0); + Opal.const_set($nesting[0], 'GET_SET', $lambda(($BinaryOperatorAssignment$3 = function(get_type, set_type){var self = $BinaryOperatorAssignment$3.$$s == null ? this : $BinaryOperatorAssignment$3.$$s, $$4; - - $b = val['$[]'](1), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; - result = self.builder.$call_method(nil, nil, val['$[]'](0), lparen_t, args, rparen_t); - return result; - }, TMP_Ruby23__reduce_402_286.$$arity = 3); - - Opal.defn(self, '$_reduce_403', TMP_Ruby23__reduce_403_287 = function $$_reduce_403(val, _values, result) { - var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; + + + if (get_type == null) { + get_type = nil; + }; + + if (set_type == null) { + set_type = nil; + }; + return $lambda(($$4 = function(node, lhs, operation, rhs){var self = $$4.$$s == null ? this : $$4.$$s, get_node = nil, set_node = nil; - - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; - result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); - return result; - }, TMP_Ruby23__reduce_403_287.$$arity = 3); - - Opal.defn(self, '$_reduce_404', TMP_Ruby23__reduce_404_288 = function $$_reduce_404(val, _values, result) { - var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; + + + if (node == null) { + node = nil; + }; + + if (lhs == null) { + lhs = nil; + }; + + if (operation == null) { + operation = nil; + }; + + if (rhs == null) { + rhs = nil; + }; + get_node = lhs.$updated(get_type); + set_node = node.$updated("send", [get_node, operation, rhs]); + return lhs.$updated(set_type, [].concat(Opal.to_a(lhs)).concat([set_node]));}, $$4.$$s = self, $$4.$$arity = 4, $$4));}, $BinaryOperatorAssignment$3.$$s = self, $BinaryOperatorAssignment$3.$$arity = 2, $BinaryOperatorAssignment$3))); + Opal.const_set($nesting[0], 'LocalVariableHandler', $$($nesting, 'GET_SET')['$[]']("lvar", "lvasgn")); + Opal.const_set($nesting[0], 'InstanceVariableHandler', $$($nesting, 'GET_SET')['$[]']("ivar", "ivasgn")); + Opal.const_set($nesting[0], 'ConstantHandler', $$($nesting, 'GET_SET')['$[]']("const", "casgn")); + Opal.const_set($nesting[0], 'GlobalVariableHandler', $$($nesting, 'GET_SET')['$[]']("gvar", "gvasgn")); + Opal.const_set($nesting[0], 'ClassVariableHandler', $$($nesting, 'GET_SET')['$[]']("cvar", "cvasgn")); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SendHandler'); - - $b = val['$[]'](3), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; - result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2), lparen_t, args, rparen_t); - return result; - }, TMP_Ruby23__reduce_404_288.$$arity = 3); - - Opal.defn(self, '$_reduce_405', TMP_Ruby23__reduce_405_289 = function $$_reduce_405(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $SendHandler_call$5; - - result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_405_289.$$arity = 3); - - Opal.defn(self, '$_reduce_406', TMP_Ruby23__reduce_406_290 = function $$_reduce_406(val, _values, result) { - var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; + return (Opal.defs(self, '$call', $SendHandler_call$5 = function $$call(node, lhs, operation, rhs) { + var $a, self = this, recvr = nil, reader_method = nil, args = nil, $ret_or_2 = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_op = nil, call_writer = nil; - - $b = val['$[]'](2), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; - result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), nil, lparen_t, args, rparen_t); - return result; - }, TMP_Ruby23__reduce_406_290.$$arity = 3); - - Opal.defn(self, '$_reduce_407', TMP_Ruby23__reduce_407_291 = function $$_reduce_407(val, _values, result) { - var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; + + $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + if ($truthy((function() {if ($truthy(($ret_or_2 = recvr))) { + return recvr.$type()['$==']("send") + } else { + return $ret_or_2 + }; return nil; })())) { + + recvr_tmp = self.$new_temp(); + cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); + recvr = self.$s("js_tmp", recvr_tmp);}; + writer_method = "" + (reader_method) + "="; + call_reader = lhs.$updated("send", [recvr, reader_method].concat(Opal.to_a(args))); + call_op = node.$updated("send", [call_reader, operation, rhs]); + call_writer = lhs.$updated("send", [recvr, writer_method].concat(Opal.to_a(args)).concat([call_op])); + if ($truthy(cache_recvr)) { + return node.$updated("begin", [cache_recvr, call_writer]) + } else { + return call_writer + }; + }, $SendHandler_call$5.$$arity = 4), nil) && 'call' + })($nesting[0], self, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ConditionalSendHandler'); - - $b = val['$[]'](2), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; - result = self.builder.$call_method(val['$[]'](0), val['$[]'](1), nil, lparen_t, args, rparen_t); - return result; - }, TMP_Ruby23__reduce_407_291.$$arity = 3); - - Opal.defn(self, '$_reduce_408', TMP_Ruby23__reduce_408_292 = function $$_reduce_408(val, _values, result) { - var $a, $b, self = this, lparen_t = nil, args = nil, rparen_t = nil; + var $nesting = [self].concat($parent_nesting), $ConditionalSendHandler_call$6; + + return (Opal.defs(self, '$call', $ConditionalSendHandler_call$6 = function $$call(node, lhs, operation, rhs) { + var $a, self = this, recvr = nil, meth = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, recvr_is_nil = nil, plain_send = nil, plain_op_asgn = nil; + + $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; + recvr_tmp = self.$new_temp(); + cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); + recvr = self.$s("js_tmp", recvr_tmp); + recvr_is_nil = self.$s("send", recvr, "nil?"); + plain_send = lhs.$updated("send", [recvr, meth].concat(Opal.to_a(args))); + plain_op_asgn = node.$updated("op_asgn", [plain_send, operation, rhs]); + return self.$s("begin", cache_recvr, self.$s("if", recvr_is_nil, self.$s("nil"), plain_op_asgn)); + }, $ConditionalSendHandler_call$6.$$arity = 4), nil) && 'call' + })($nesting[0], self, $nesting); + Opal.const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": $$($nesting, 'LocalVariableHandler'), "ivasgn": $$($nesting, 'InstanceVariableHandler'), "casgn": $$($nesting, 'ConstantHandler'), "gvasgn": $$($nesting, 'GlobalVariableHandler'), "cvasgn": $$($nesting, 'ClassVariableHandler'), "send": $$($nesting, 'SendHandler'), "csend": $$($nesting, 'ConditionalSendHandler')}).$freeze()); - $b = val['$[]'](1), $a = Opal.to_ary($b), (lparen_t = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (rparen_t = ($a[2] == null ? nil : $a[2])), $b; - result = self.builder.$keyword_cmd("super", val['$[]'](0), lparen_t, args, rparen_t); - return result; - }, TMP_Ruby23__reduce_408_292.$$arity = 3); - - Opal.defn(self, '$_reduce_409', TMP_Ruby23__reduce_409_293 = function $$_reduce_409(val, _values, result) { - var self = this; + Opal.def(self, '$on_op_asgn', $BinaryOperatorAssignment_on_op_asgn$7 = function $$on_op_asgn(node) { + var $a, $$8, self = this, lhs = nil, op = nil, rhs = nil, result = nil; - - result = self.builder.$keyword_cmd("zsuper", val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_409_293.$$arity = 3); - - Opal.defn(self, '$_reduce_410', TMP_Ruby23__reduce_410_294 = function $$_reduce_410(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (op = ($a[1] == null ? nil : $a[1])), (rhs = ($a[2] == null ? nil : $a[2])), $a; + result = $send($$($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; - - result = self.builder.$index(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_410_294.$$arity = 3); - - Opal.defn(self, '$_reduce_411', TMP_Ruby23__reduce_411_295 = function $$_reduce_411(val, _values, result) { - var self = this; + return self.$error("" + "cannot handle LHS type: " + (lhs.$type()))}, $$8.$$s = self, $$8.$$arity = 0, $$8)).$call(node, lhs, op, rhs); + return self.$process(result); + }, $BinaryOperatorAssignment_on_op_asgn$7.$$arity = 1); + Opal.const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); + return (Opal.def(self, '$on_defined?', $BinaryOperatorAssignment_on_defined$ques$9 = function(node) { + var $a, $iter = $BinaryOperatorAssignment_on_defined$ques$9.$$p, $yield = $iter || nil, self = this, inner = nil, _ = nil; - - self.static_env.$extend_dynamic(); - return result; - }, TMP_Ruby23__reduce_411_295.$$arity = 3); - - Opal.defn(self, '$_reduce_412', TMP_Ruby23__reduce_412_296 = function $$_reduce_412(val, _values, result) { - var self = this; + if ($iter) $BinaryOperatorAssignment_on_defined$ques$9.$$p = null; + + $a = [].concat(Opal.to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + if (inner.$type()['$==']("op_asgn")) { + return $$($nesting, 'ASSIGNMENT_STRING_NODE') + } else { + return $send2(self, $find_super(self, 'on_defined?', $BinaryOperatorAssignment_on_defined$ques$9, false, true), 'on_defined?', [node], null) + }; + }, $BinaryOperatorAssignment_on_defined$ques$9.$$arity = 1), nil) && 'on_defined?'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = [val['$[]'](0), val['$[]'](2), val['$[]'](3), val['$[]'](4)]; - self.static_env.$unextend(); - return result; - }, TMP_Ruby23__reduce_412_296.$$arity = 3); - - Opal.defn(self, '$_reduce_413', TMP_Ruby23__reduce_413_297 = function $$_reduce_413(val, _values, result) { - var self = this; +Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; - - self.static_env.$extend_dynamic(); - return result; - }, TMP_Ruby23__reduce_413_297.$$arity = 3); - - Opal.defn(self, '$_reduce_414', TMP_Ruby23__reduce_414_298 = function $$_reduce_414(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$new', '$include?', '$type', '$<<', '$==', '$process_regular_node', '$updated', '$inspect', '$warn']); + + self.$require("opal/rewriters/base"); + self.$require("set"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = [val['$[]'](0), val['$[]'](2), val['$[]'](3), val['$[]'](4)]; - self.static_env.$unextend(); - return result; - }, TMP_Ruby23__reduce_414_298.$$arity = 3); - - Opal.defn(self, '$_reduce_415', TMP_Ruby23__reduce_415_299 = function $$_reduce_415(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = [self.builder.$when(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3))].concat(Opal.to_a(val['$[]'](4))); - return result; - }, TMP_Ruby23__reduce_415_299.$$arity = 3); - - Opal.defn(self, '$_reduce_416', TMP_Ruby23__reduce_416_300 = function $$_reduce_416(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_416_300.$$arity = 3); - - Opal.defn(self, '$_reduce_418', TMP_Ruby23__reduce_418_301 = function $$_reduce_418(val, _values, result) { - var $a, $b, self = this, assoc_t = nil, exc_var = nil, exc_list = nil; + var $nesting = [self].concat($parent_nesting); - - $b = val['$[]'](2), $a = Opal.to_ary($b), (assoc_t = ($a[0] == null ? nil : $a[0])), (exc_var = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy(val['$[]'](1))) { - exc_list = self.builder.$array(nil, val['$[]'](1), nil)}; - result = [self.builder.$rescue_body(val['$[]'](0), exc_list, assoc_t, exc_var, val['$[]'](3), val['$[]'](4))].concat(Opal.to_a(val['$[]'](5))); - return result; - }, TMP_Ruby23__reduce_418_301.$$arity = 3); - - Opal.defn(self, '$_reduce_419', TMP_Ruby23__reduce_419_302 = function $$_reduce_419(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Hashes'); - - result = []; - return result; - }, TMP_Ruby23__reduce_419_302.$$arity = 3); - - Opal.defn(self, '$_reduce_420', TMP_Ruby23__reduce_420_303 = function $$_reduce_420(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_420_303.$$arity = 3); - - Opal.defn(self, '$_reduce_423', TMP_Ruby23__reduce_423_304 = function $$_reduce_423(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'KeyDuplicatesRewriter'); - - result = [val['$[]'](0), val['$[]'](1)]; - return result; - }, TMP_Ruby23__reduce_423_304.$$arity = 3); - - Opal.defn(self, '$_reduce_425', TMP_Ruby23__reduce_425_305 = function $$_reduce_425(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $KeyDuplicatesRewriter_initialize$1, $KeyDuplicatesRewriter_on_hash$2, $KeyDuplicatesRewriter_on_pair$3, $KeyDuplicatesRewriter_on_kwsplat$4; - - result = [val['$[]'](0), val['$[]'](1)]; - return result; - }, TMP_Ruby23__reduce_425_305.$$arity = 3); - - Opal.defn(self, '$_reduce_430', TMP_Ruby23__reduce_430_306 = function $$_reduce_430(val, _values, result) { - var self = this; + self.$$prototype.keys = nil; + + + Opal.def(self, '$initialize', $KeyDuplicatesRewriter_initialize$1 = function $$initialize() { + var self = this; - - result = self.builder.$string_compose(nil, val['$[]'](0), nil); - return result; - }, TMP_Ruby23__reduce_430_306.$$arity = 3); - - Opal.defn(self, '$_reduce_431', TMP_Ruby23__reduce_431_307 = function $$_reduce_431(val, _values, result) { - var self = this; + return (self.keys = $$($nesting, 'UniqKeysSet').$new()) + }, $KeyDuplicatesRewriter_initialize$1.$$arity = 0); + + Opal.def(self, '$on_hash', $KeyDuplicatesRewriter_on_hash$2 = function $$on_hash(node) { + var $a, $iter = $KeyDuplicatesRewriter_on_hash$2.$$p, $yield = $iter || nil, self = this, previous_keys = nil; - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_431_307.$$arity = 3); - - Opal.defn(self, '$_reduce_432', TMP_Ruby23__reduce_432_308 = function $$_reduce_432(val, _values, result) { - var self = this; + if ($iter) $KeyDuplicatesRewriter_on_hash$2.$$p = null; + return (function() { try { + + $a = [self.keys, $$($nesting, 'UniqKeysSet').$new()], (previous_keys = $a[0]), (self.keys = $a[1]), $a; + return $send2(self, $find_super(self, 'on_hash', $KeyDuplicatesRewriter_on_hash$2, false, true), 'on_hash', [node], null); + } finally { + (self.keys = previous_keys) + }; })() + }, $KeyDuplicatesRewriter_on_hash$2.$$arity = 1); + + Opal.def(self, '$on_pair', $KeyDuplicatesRewriter_on_pair$3 = function $$on_pair(node) { + var $a, $iter = $KeyDuplicatesRewriter_on_pair$3.$$p, $yield = $iter || nil, self = this, key = nil, _value = nil; - - result = val['$[]'](0)['$<<'](val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_432_308.$$arity = 3); - - Opal.defn(self, '$_reduce_433', TMP_Ruby23__reduce_433_309 = function $$_reduce_433(val, _values, result) { - var self = this, string = nil; + if ($iter) $KeyDuplicatesRewriter_on_pair$3.$$p = null; + + $a = [].concat(Opal.to_a(node)), (key = ($a[0] == null ? nil : $a[0])), (_value = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(["str", "sym"]['$include?'](key.$type()))) { + self.keys['$<<'](key)}; + return $send2(self, $find_super(self, 'on_pair', $KeyDuplicatesRewriter_on_pair$3, false, true), 'on_pair', [node], null); + }, $KeyDuplicatesRewriter_on_pair$3.$$arity = 1); + + Opal.def(self, '$on_kwsplat', $KeyDuplicatesRewriter_on_kwsplat$4 = function $$on_kwsplat(node) { + var $a, self = this, hash = nil, _ = nil; - - string = self.builder.$string_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); - return result; - }, TMP_Ruby23__reduce_433_309.$$arity = 3); - - Opal.defn(self, '$_reduce_434', TMP_Ruby23__reduce_434_310 = function $$_reduce_434(val, _values, result) { - var self = this, string = nil; + + $a = [].concat(Opal.to_a(node)), (hash = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + if (hash.$type()['$==']("hash")) { + hash = self.$process_regular_node(hash)}; + return node.$updated(nil, [hash]); + }, $KeyDuplicatesRewriter_on_kwsplat$4.$$arity = 1); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'UniqKeysSet'); - - string = self.builder.$string(val['$[]'](0)); - result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); - return result; - }, TMP_Ruby23__reduce_434_310.$$arity = 3); - - Opal.defn(self, '$_reduce_435', TMP_Ruby23__reduce_435_311 = function $$_reduce_435(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $UniqKeysSet_initialize$5, $UniqKeysSet_$lt$lt$6; - - result = self.builder.$character(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_435_311.$$arity = 3); - - Opal.defn(self, '$_reduce_436', TMP_Ruby23__reduce_436_312 = function $$_reduce_436(val, _values, result) { - var self = this, string = nil; + self.$$prototype.set = nil; + + + Opal.def(self, '$initialize', $UniqKeysSet_initialize$5 = function $$initialize() { + var self = this; - - string = self.builder.$xstring_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - result = self.builder.$dedent_string(string, self.lexer.$dedent_level()); - return result; - }, TMP_Ruby23__reduce_436_312.$$arity = 3); - - Opal.defn(self, '$_reduce_437', TMP_Ruby23__reduce_437_313 = function $$_reduce_437(val, _values, result) { - var self = this, opts = nil; + return (self.set = $$($nesting, 'Set').$new()) + }, $UniqKeysSet_initialize$5.$$arity = 0); + return (Opal.def(self, '$<<', $UniqKeysSet_$lt$lt$6 = function(element) { + var $a, self = this, key = nil, _ = nil; - - opts = self.builder.$regexp_options(val['$[]'](3)); - result = self.builder.$regexp_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2), opts); - return result; - }, TMP_Ruby23__reduce_437_313.$$arity = 3); - - Opal.defn(self, '$_reduce_438', TMP_Ruby23__reduce_438_314 = function $$_reduce_438(val, _values, result) { - var self = this; + if ($truthy(self.set['$include?'](element))) { + + $a = [].concat(Opal.to_a(element)), (key = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; + key = (function() {if (element.$type()['$==']("str")) { + return key.$inspect() + } else { + return "" + ":" + (key) + }; return nil; })(); + return $$($nesting, 'Kernel').$warn("" + "warning: key " + (key) + " is duplicated and overwritten"); + } else { + return self.set['$<<'](element) + } + }, $UniqKeysSet_$lt$lt$6.$$arity = 1), nil) && '<<'; + })($nesting[0], null, $nesting); + })($nesting[0], $$$($$$($$$('::', 'Opal'), 'Rewriters'), 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = self.builder.$words_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_438_314.$$arity = 3); - - Opal.defn(self, '$_reduce_439', TMP_Ruby23__reduce_439_315 = function $$_reduce_439(val, _values, result) { - var self = this; +Opal.modules["opal/rewriters/dump_args"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2; - - result = []; - return result; - }, TMP_Ruby23__reduce_439_315.$$arity = 3); - - Opal.defn(self, '$_reduce_440', TMP_Ruby23__reduce_440_316 = function $$_reduce_440(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$updated']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = val['$[]'](0)['$<<'](self.builder.$word(val['$[]'](1))); - return result; - }, TMP_Ruby23__reduce_440_316.$$arity = 3); - - Opal.defn(self, '$_reduce_441', TMP_Ruby23__reduce_441_317 = function $$_reduce_441(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_441_317.$$arity = 3); - - Opal.defn(self, '$_reduce_442', TMP_Ruby23__reduce_442_318 = function $$_reduce_442(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - result = val['$[]'](0)['$<<'](val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_442_318.$$arity = 3); - - Opal.defn(self, '$_reduce_443', TMP_Ruby23__reduce_443_319 = function $$_reduce_443(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$symbols_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_443_319.$$arity = 3); - - Opal.defn(self, '$_reduce_444', TMP_Ruby23__reduce_444_320 = function $$_reduce_444(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DumpArgs'); - - result = []; - return result; - }, TMP_Ruby23__reduce_444_320.$$arity = 3); - - Opal.defn(self, '$_reduce_445', TMP_Ruby23__reduce_445_321 = function $$_reduce_445(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $DumpArgs_on_def$1, $DumpArgs_on_defs$2, $DumpArgs_on_iter$3; - result = val['$[]'](0)['$<<'](self.builder.$word(val['$[]'](1))); - return result; - }, TMP_Ruby23__reduce_445_321.$$arity = 3); - - Opal.defn(self, '$_reduce_446', TMP_Ruby23__reduce_446_322 = function $$_reduce_446(val, _values, result) { - var self = this; - - result = self.builder.$words_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_446_322.$$arity = 3); - - Opal.defn(self, '$_reduce_447', TMP_Ruby23__reduce_447_323 = function $$_reduce_447(val, _values, result) { - var self = this; + Opal.def(self, '$on_def', $DumpArgs_on_def$1 = function $$on_def(node) { + var $a, $iter = $DumpArgs_on_def$1.$$p, $yield = $iter || nil, self = this, _mid = nil, args = nil, _body = nil; + if ($iter) $DumpArgs_on_def$1.$$p = null; + + node = $send2(self, $find_super(self, 'on_def', $DumpArgs_on_def$1, false, true), 'on_def', [node], null); + $a = [].concat(Opal.to_a(node)), (_mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (_body = ($a[2] == null ? nil : $a[2])), $a; + return node.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["original_args"], {"original_args": args})})); + }, $DumpArgs_on_def$1.$$arity = 1); - result = self.builder.$symbols_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_447_323.$$arity = 3); - - Opal.defn(self, '$_reduce_448', TMP_Ruby23__reduce_448_324 = function $$_reduce_448(val, _values, result) { - var self = this; + Opal.def(self, '$on_defs', $DumpArgs_on_defs$2 = function $$on_defs(node) { + var $a, $iter = $DumpArgs_on_defs$2.$$p, $yield = $iter || nil, self = this, _recv = nil, _mid = nil, args = nil, _body = nil; - - result = []; - return result; - }, TMP_Ruby23__reduce_448_324.$$arity = 3); - - Opal.defn(self, '$_reduce_449', TMP_Ruby23__reduce_449_325 = function $$_reduce_449(val, _values, result) { - var self = this; + if ($iter) $DumpArgs_on_defs$2.$$p = null; + + node = $send2(self, $find_super(self, 'on_defs', $DumpArgs_on_defs$2, false, true), 'on_defs', [node], null); + $a = [].concat(Opal.to_a(node)), (_recv = ($a[0] == null ? nil : $a[0])), (_mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (_body = ($a[3] == null ? nil : $a[3])), $a; + return node.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["original_args"], {"original_args": args})})); + }, $DumpArgs_on_defs$2.$$arity = 1); + return (Opal.def(self, '$on_iter', $DumpArgs_on_iter$3 = function $$on_iter(node) { + var $a, $iter = $DumpArgs_on_iter$3.$$p, $yield = $iter || nil, self = this, args = nil, _body = nil; - - result = val['$[]'](0)['$<<'](self.builder.$string_internal(val['$[]'](1))); - return result; - }, TMP_Ruby23__reduce_449_325.$$arity = 3); - - Opal.defn(self, '$_reduce_450', TMP_Ruby23__reduce_450_326 = function $$_reduce_450(val, _values, result) { - var self = this; + if ($iter) $DumpArgs_on_iter$3.$$p = null; + + node = $send2(self, $find_super(self, 'on_iter', $DumpArgs_on_iter$3, false, true), 'on_iter', [node], null); + $a = [].concat(Opal.to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (_body = ($a[1] == null ? nil : $a[1])), $a; + return node.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["original_args"], {"original_args": args})})); + }, $DumpArgs_on_iter$3.$$arity = 1), nil) && 'on_iter'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/rewriters/mlhs_args"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; - - result = []; - return result; - }, TMP_Ruby23__reduce_450_326.$$arity = 3); - - Opal.defn(self, '$_reduce_451', TMP_Ruby23__reduce_451_327 = function $$_reduce_451(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$new', '$updated', '$rewritten', '$initialization', '$s', '$prepend_to_body', '$attr_reader', '$split!', '$+', '$each', '$children', '$==', '$type', '$new_mlhs_tmp', '$process', '$<<', '$length', '$[]', '$empty?']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = val['$[]'](0)['$<<'](self.builder.$symbol_internal(val['$[]'](1))); - return result; - }, TMP_Ruby23__reduce_451_327.$$arity = 3); - - Opal.defn(self, '$_reduce_452', TMP_Ruby23__reduce_452_328 = function $$_reduce_452(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = []; - return result; - }, TMP_Ruby23__reduce_452_328.$$arity = 3); - - Opal.defn(self, '$_reduce_453', TMP_Ruby23__reduce_453_329 = function $$_reduce_453(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - result = val['$[]'](0)['$<<'](val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_453_329.$$arity = 3); - - Opal.defn(self, '$_reduce_454', TMP_Ruby23__reduce_454_330 = function $$_reduce_454(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = []; - return result; - }, TMP_Ruby23__reduce_454_330.$$arity = 3); - - Opal.defn(self, '$_reduce_455', TMP_Ruby23__reduce_455_331 = function $$_reduce_455(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'MlhsArgs'); - - result = val['$[]'](0)['$<<'](val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_455_331.$$arity = 3); - - Opal.defn(self, '$_reduce_456', TMP_Ruby23__reduce_456_332 = function $$_reduce_456(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $MlhsArgs_on_def$1, $MlhsArgs_on_defs$2, $MlhsArgs_on_iter$3; - result = []; - return result; - }, TMP_Ruby23__reduce_456_332.$$arity = 3); - - Opal.defn(self, '$_reduce_457', TMP_Ruby23__reduce_457_333 = function $$_reduce_457(val, _values, result) { - var self = this; - - result = val['$[]'](0)['$<<'](val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_457_333.$$arity = 3); - - Opal.defn(self, '$_reduce_458', TMP_Ruby23__reduce_458_334 = function $$_reduce_458(val, _values, result) { - var self = this; + Opal.def(self, '$on_def', $MlhsArgs_on_def$1 = function $$on_def(node) { + var $a, $iter = $MlhsArgs_on_def$1.$$p, $yield = $iter || nil, self = this, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_1 = nil; + if ($iter) $MlhsArgs_on_def$1.$$p = null; + + node = $send2(self, $find_super(self, 'on_def', $MlhsArgs_on_def$1, false, true), 'on_def', [node], null); + $a = [].concat(Opal.to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + arguments$ = $$($nesting, 'Arguments').$new(args); + args = args.$updated(nil, arguments$.$rewritten()); + if ($truthy(arguments$.$initialization())) { + + body = (function() {if ($truthy(($ret_or_1 = body))) { + return $ret_or_1 + } else { + return self.$s("nil") + }; return nil; })(); + body = self.$prepend_to_body(body, arguments$.$initialization());}; + return node.$updated(nil, [mid, args, body]); + }, $MlhsArgs_on_def$1.$$arity = 1); - result = self.builder.$string_internal(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_458_334.$$arity = 3); - - Opal.defn(self, '$_reduce_459', TMP_Ruby23__reduce_459_335 = function $$_reduce_459(val, _values, result) { - var self = this; + Opal.def(self, '$on_defs', $MlhsArgs_on_defs$2 = function $$on_defs(node) { + var $a, $iter = $MlhsArgs_on_defs$2.$$p, $yield = $iter || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, arguments$ = nil, $ret_or_2 = nil; + if ($iter) $MlhsArgs_on_defs$2.$$p = null; + + node = $send2(self, $find_super(self, 'on_defs', $MlhsArgs_on_defs$2, false, true), 'on_defs', [node], null); + $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; + arguments$ = $$($nesting, 'Arguments').$new(args); + args = args.$updated(nil, arguments$.$rewritten()); + if ($truthy(arguments$.$initialization())) { + + body = (function() {if ($truthy(($ret_or_2 = body))) { + return $ret_or_2 + } else { + return self.$s("nil") + }; return nil; })(); + body = self.$prepend_to_body(body, arguments$.$initialization());}; + return node.$updated(nil, [recv, mid, args, body]); + }, $MlhsArgs_on_defs$2.$$arity = 1); - result = val['$[]'](1); - return result; - }, TMP_Ruby23__reduce_459_335.$$arity = 3); - - Opal.defn(self, '$_reduce_460', TMP_Ruby23__reduce_460_336 = function $$_reduce_460(val, _values, result) { - var self = this; + Opal.def(self, '$on_iter', $MlhsArgs_on_iter$3 = function $$on_iter(node) { + var $a, $iter = $MlhsArgs_on_iter$3.$$p, $yield = $iter || nil, self = this, args = nil, body = nil, arguments$ = nil, $ret_or_3 = nil; - - self.lexer.$cond().$push(false); - self.lexer.$cmdarg().$push(false); - return result; - }, TMP_Ruby23__reduce_460_336.$$arity = 3); - - Opal.defn(self, '$_reduce_461', TMP_Ruby23__reduce_461_337 = function $$_reduce_461(val, _values, result) { - var self = this; + if ($iter) $MlhsArgs_on_iter$3.$$p = null; + + node = $send2(self, $find_super(self, 'on_iter', $MlhsArgs_on_iter$3, false, true), 'on_iter', [node], null); + $a = [].concat(Opal.to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; + arguments$ = $$($nesting, 'Arguments').$new(args); + args = args.$updated(nil, arguments$.$rewritten()); + if ($truthy(arguments$.$initialization())) { + + body = (function() {if ($truthy(($ret_or_3 = body))) { + return $ret_or_3 + } else { + return self.$s("nil") + }; return nil; })(); + body = self.$prepend_to_body(body, arguments$.$initialization());}; + return node.$updated(nil, [args, body]); + }, $MlhsArgs_on_iter$3.$$arity = 1); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Arguments'); - - self.lexer.$cond().$lexpop(); - self.lexer.$cmdarg().$lexpop(); - result = self.builder.$begin(val['$[]'](0), val['$[]'](2), val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_461_337.$$arity = 3); - - Opal.defn(self, '$_reduce_462', TMP_Ruby23__reduce_462_338 = function $$_reduce_462(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $Arguments_initialize$4, $Arguments_reset_tmp_counter$excl$5, $Arguments_new_mlhs_tmp$6, $Arguments_split$excl$7; - - result = self.builder.$gvar(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_462_338.$$arity = 3); - - Opal.defn(self, '$_reduce_463', TMP_Ruby23__reduce_463_339 = function $$_reduce_463(val, _values, result) { - var self = this; + self.$$prototype.counter = self.$$prototype.args = self.$$prototype.initialization = nil; + + self.$attr_reader("rewritten", "initialization"); + + Opal.def(self, '$initialize', $Arguments_initialize$4 = function $$initialize(args) { + var self = this; - - result = self.builder.$ivar(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_463_339.$$arity = 3); - - Opal.defn(self, '$_reduce_464', TMP_Ruby23__reduce_464_340 = function $$_reduce_464(val, _values, result) { - var self = this; + + self.args = args; + self.rewritten = []; + self.initialization = []; + self.rewriter = $$($nesting, 'MlhsRewriter').$new(); + return self['$split!'](); + }, $Arguments_initialize$4.$$arity = 1); + + Opal.def(self, '$reset_tmp_counter!', $Arguments_reset_tmp_counter$excl$5 = function() { + var self = this; - - result = self.builder.$cvar(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_464_340.$$arity = 3); - - Opal.defn(self, '$_reduce_466', TMP_Ruby23__reduce_466_341 = function $$_reduce_466(val, _values, result) { - var self = this; + return (self.counter = 0) + }, $Arguments_reset_tmp_counter$excl$5.$$arity = 0); + + Opal.def(self, '$new_mlhs_tmp', $Arguments_new_mlhs_tmp$6 = function $$new_mlhs_tmp() { + var self = this, $ret_or_4 = nil; - - result = self.builder.$symbol(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_466_341.$$arity = 3); - - Opal.defn(self, '$_reduce_467', TMP_Ruby23__reduce_467_342 = function $$_reduce_467(val, _values, result) { - var self = this; + + self.counter = (function() {if ($truthy(($ret_or_4 = self.counter))) { + return $ret_or_4 + } else { + return 0 + }; return nil; })(); + self.counter = $rb_plus(self.counter, 1); + return "" + "$mlhs_tmp" + (self.counter); + }, $Arguments_new_mlhs_tmp$6.$$arity = 0); + return (Opal.def(self, '$split!', $Arguments_split$excl$7 = function() { + var $$8, self = this; - - result = self.builder.$symbol_compose(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_467_342.$$arity = 3); - - Opal.defn(self, '$_reduce_468', TMP_Ruby23__reduce_468_343 = function $$_reduce_468(val, _values, result) { - var self = this; + + $send(self.args.$children(), 'each', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s, var_name = nil, rhs = nil, mlhs = nil; + if (self.rewriter == null) self.rewriter = nil; + if (self.initialization == null) self.initialization = nil; + if (self.rewritten == null) self.rewritten = nil; - - result = val['$[]'](0); - return result; - }, TMP_Ruby23__reduce_468_343.$$arity = 3); - - Opal.defn(self, '$_reduce_469', TMP_Ruby23__reduce_469_344 = function $$_reduce_469(val, _values, result) { - var self = this; + + + if (arg == null) { + arg = nil; + }; + if (arg.$type()['$==']("mlhs")) { + + var_name = self.$new_mlhs_tmp(); + rhs = self.$s("lvar", var_name); + mlhs = self.rewriter.$process(arg); + self.initialization['$<<'](self.$s("masgn", mlhs, rhs)); + return self.rewritten['$<<'](self.$s("arg", var_name).$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": var_name})}))); + } else { + return self.rewritten['$<<'](arg) + };}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + if (self.initialization.$length()['$=='](1)) { + return (self.initialization = self.initialization['$[]'](0)) + } else if ($truthy(self.initialization['$empty?']())) { + return (self.initialization = nil) + } else { + return (self.initialization = $send(self, 's', ["begin"].concat(Opal.to_a(self.initialization)))) + }; + }, $Arguments_split$excl$7.$$arity = 0), nil) && 'split!'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'MlhsRewriter'); - - result = self.builder.$negate(val['$[]'](0), val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_469_344.$$arity = 3); - - Opal.defn(self, '$_reduce_470', TMP_Ruby23__reduce_470_345 = function $$_reduce_470(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $MlhsRewriter_on_arg$9, $MlhsRewriter_on_restarg$10; - - result = self.builder.$integer(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_470_345.$$arity = 3); - - Opal.defn(self, '$_reduce_471', TMP_Ruby23__reduce_471_346 = function $$_reduce_471(val, _values, result) { - var self = this; + + + Opal.def(self, '$on_arg', $MlhsRewriter_on_arg$9 = function $$on_arg(node) { + var self = this; - - result = self.builder.$float(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_471_346.$$arity = 3); - - Opal.defn(self, '$_reduce_472', TMP_Ruby23__reduce_472_347 = function $$_reduce_472(val, _values, result) { - var self = this; + return node.$updated("lvasgn") + }, $MlhsRewriter_on_arg$9.$$arity = 1); + return (Opal.def(self, '$on_restarg', $MlhsRewriter_on_restarg$10 = function $$on_restarg(node) { + var self = this, name = nil; - - result = self.builder.$rational(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_472_347.$$arity = 3); - - Opal.defn(self, '$_reduce_473', TMP_Ruby23__reduce_473_348 = function $$_reduce_473(val, _values, result) { - var self = this; + + name = node.$children()['$[]'](0); + if ($truthy(name)) { + return self.$s("splat", node.$updated("lvasgn")) + } else { + return self.$s("splat") + }; + }, $MlhsRewriter_on_restarg$10.$$arity = 1), nil) && 'on_restarg'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = self.builder.$complex(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_473_348.$$arity = 3); - - Opal.defn(self, '$_reduce_474', TMP_Ruby23__reduce_474_349 = function $$_reduce_474(val, _values, result) { - var self = this; +Opal.modules["opal/rewriters/arguments"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - - result = self.builder.$ident(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_474_349.$$arity = 3); - - Opal.defn(self, '$_reduce_475', TMP_Ruby23__reduce_475_350 = function $$_reduce_475(val, _values, result) { - var self = this; + Opal.add_stubs(['$attr_reader', '$each', '$type', '$===', '$<<', '$any?', '$raise', '$!', '$nil?', '$has_any_kwargs?', '$can_inline_kwargs?', '$empty?']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = self.builder.$ivar(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_475_350.$$arity = 3); - - Opal.defn(self, '$_reduce_476', TMP_Ruby23__reduce_476_351 = function $$_reduce_476(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$gvar(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_476_351.$$arity = 3); - - Opal.defn(self, '$_reduce_477', TMP_Ruby23__reduce_477_352 = function $$_reduce_477(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - result = self.builder.$const(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_477_352.$$arity = 3); - - Opal.defn(self, '$_reduce_478', TMP_Ruby23__reduce_478_353 = function $$_reduce_478(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$cvar(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_478_353.$$arity = 3); - - Opal.defn(self, '$_reduce_479', TMP_Ruby23__reduce_479_354 = function $$_reduce_479(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Arguments'); - - result = self.builder.$nil(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_479_354.$$arity = 3); - - Opal.defn(self, '$_reduce_480', TMP_Ruby23__reduce_480_355 = function $$_reduce_480(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $Arguments_initialize$1, $Arguments_has_post_args$ques$3, $Arguments_has_any_kwargs$ques$4, $Arguments_can_inline_kwargs$ques$5; + self.$$prototype.restarg = self.$$prototype.postargs = self.$$prototype.kwargs = self.$$prototype.kwoptargs = self.$$prototype.kwrestarg = self.$$prototype.optargs = nil; - result = self.builder.$self(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_480_355.$$arity = 3); - - Opal.defn(self, '$_reduce_481', TMP_Ruby23__reduce_481_356 = function $$_reduce_481(val, _values, result) { - var self = this; - + self.$attr_reader("args", "optargs", "restarg", "postargs", "kwargs", "kwoptargs", "kwrestarg", "kwnilarg", "shadowargs", "blockarg"); - result = self.builder.$true(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_481_356.$$arity = 3); - - Opal.defn(self, '$_reduce_482', TMP_Ruby23__reduce_482_357 = function $$_reduce_482(val, _values, result) { - var self = this; + Opal.def(self, '$initialize', $Arguments_initialize$1 = function $$initialize(args) { + var $$2, self = this; - - result = self.builder.$false(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_482_357.$$arity = 3); - - Opal.defn(self, '$_reduce_483', TMP_Ruby23__reduce_483_358 = function $$_reduce_483(val, _values, result) { - var self = this; + + self.args = []; + self.optargs = []; + self.restarg = nil; + self.postargs = []; + self.kwargs = []; + self.kwoptargs = []; + self.kwrestarg = nil; + self.kwnilarg = false; + self.shadowargs = []; + self.blockarg = nil; + return $send(args, 'each', [], ($$2 = function(arg){var self = $$2.$$s == null ? this : $$2.$$s, $case = nil, $ret_or_1 = nil; + if (self.restarg == null) self.restarg = nil; + if (self.optargs == null) self.optargs = nil; + if (self.postargs == null) self.postargs = nil; + if (self.args == null) self.args = nil; + if (self.kwargs == null) self.kwargs = nil; + if (self.kwoptargs == null) self.kwoptargs = nil; + if (self.shadowargs == null) self.shadowargs = nil; + + + if (arg == null) { + arg = nil; + }; + return (function() {$case = arg.$type(); + if ("arg"['$===']($case) || "mlhs"['$===']($case)) {return (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = self.restarg))) { + return $ret_or_1 + } else { + return self.optargs['$any?']() + }; return nil; })())) { + return self.postargs + } else { + return self.args + }; return nil; })()['$<<'](arg)} + else if ("optarg"['$===']($case)) {return self.optargs['$<<'](arg)} + else if ("restarg"['$===']($case)) {return (self.restarg = arg)} + else if ("kwarg"['$===']($case)) {return self.kwargs['$<<'](arg)} + else if ("kwoptarg"['$===']($case)) {return self.kwoptargs['$<<'](arg)} + else if ("kwnilarg"['$===']($case)) {return (self.kwnilarg = true)} + else if ("kwrestarg"['$===']($case)) {return (self.kwrestarg = arg)} + else if ("shadowarg"['$===']($case)) {return self.shadowargs['$<<'](arg)} + else if ("blockarg"['$===']($case)) {return (self.blockarg = arg)} + else {return self.$raise("" + "Unsupported arg type " + (arg.$type()))}})();}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $Arguments_initialize$1.$$arity = 1); + + Opal.def(self, '$has_post_args?', $Arguments_has_post_args$ques$3 = function() { + var self = this, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; + + if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.restarg['$nil?']()['$!']()))) { + return $ret_or_3 + } else { + return self.postargs['$any?']() + }; return nil; })()))) { + return $ret_or_2 + } else { + + if ($truthy(($ret_or_4 = self['$has_any_kwargs?']()))) { + return self['$can_inline_kwargs?']()['$!']() + } else { + return $ret_or_4 + }; + } + }, $Arguments_has_post_args$ques$3.$$arity = 0); - result = self.builder.$__FILE__(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_483_358.$$arity = 3); - - Opal.defn(self, '$_reduce_484', TMP_Ruby23__reduce_484_359 = function $$_reduce_484(val, _values, result) { - var self = this; + Opal.def(self, '$has_any_kwargs?', $Arguments_has_any_kwargs$ques$4 = function() { + var self = this, $ret_or_5 = nil, $ret_or_6 = nil; - - result = self.builder.$__LINE__(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_484_359.$$arity = 3); - - Opal.defn(self, '$_reduce_485', TMP_Ruby23__reduce_485_360 = function $$_reduce_485(val, _values, result) { - var self = this; + if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.kwargs['$any?']()))) { + return $ret_or_6 + } else { + return self.kwoptargs['$any?']() + }; return nil; })()))) { + return $ret_or_5 + } else { + return self.kwrestarg['$nil?']()['$!']() + } + }, $Arguments_has_any_kwargs$ques$4.$$arity = 0); + return (Opal.def(self, '$can_inline_kwargs?', $Arguments_can_inline_kwargs$ques$5 = function() { + var self = this, $ret_or_7 = nil, $ret_or_8 = nil; - - result = self.builder.$__ENCODING__(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_485_360.$$arity = 3); - - Opal.defn(self, '$_reduce_486', TMP_Ruby23__reduce_486_361 = function $$_reduce_486(val, _values, result) { - var self = this; + if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = self.optargs['$empty?']()))) { + return self.restarg['$nil?']() + } else { + return $ret_or_8 + }; return nil; })()))) { + return self.postargs['$empty?']() + } else { + return $ret_or_7 + } + }, $Arguments_can_inline_kwargs$ques$5.$$arity = 0), nil) && 'can_inline_kwargs?'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; - - result = self.builder.$accessible(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_486_361.$$arity = 3); - - Opal.defn(self, '$_reduce_487', TMP_Ruby23__reduce_487_362 = function $$_reduce_487(val, _values, result) { - var self = this; +Opal.modules["opal/rewriters/inline_args"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; - - result = self.builder.$accessible(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_487_362.$$arity = 3); - - Opal.defn(self, '$_reduce_488', TMP_Ruby23__reduce_488_363 = function $$_reduce_488(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$s', '$new', '$updated', '$inline', '$prepend_to_body', '$initialization', '$attr_reader', '$freeze', '$children', '$each', '$send', '$any?', '$blockarg', '$<<', '$shadowargs', '$args', '$==', '$[]', '$has_post_args?', '$length', '$has_any_kwargs?', '$can_inline_kwargs?', '$kwargs', '$kwoptargs', '$kwrestarg', '$postargs', '$optargs', '$args_to_keep', '$restarg']); + + self.$require("opal/rewriters/base"); + self.$require("opal/rewriters/arguments"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = self.builder.$assignable(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_488_363.$$arity = 3); - - Opal.defn(self, '$_reduce_489', TMP_Ruby23__reduce_489_364 = function $$_reduce_489(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$assignable(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_489_364.$$arity = 3); - - Opal.defn(self, '$_reduce_490', TMP_Ruby23__reduce_490_365 = function $$_reduce_490(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - result = self.builder.$nth_ref(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_490_365.$$arity = 3); - - Opal.defn(self, '$_reduce_491', TMP_Ruby23__reduce_491_366 = function $$_reduce_491(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$back_ref(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_491_366.$$arity = 3); - - Opal.defn(self, '$_reduce_492', TMP_Ruby23__reduce_492_367 = function $$_reduce_492(val, _values, result) { - var self = this, $writer = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'InlineArgs'); + + var $nesting = [self].concat($parent_nesting), $InlineArgs_on_def$1, $InlineArgs_on_defs$2, $InlineArgs_on_iter$3; - $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return result; - }, TMP_Ruby23__reduce_492_367.$$arity = 3); - - Opal.defn(self, '$_reduce_493', TMP_Ruby23__reduce_493_368 = function $$_reduce_493(val, _values, result) { - var self = this; + Opal.def(self, '$on_def', $InlineArgs_on_def$1 = function $$on_def(node) { + var $a, $iter = $InlineArgs_on_def$1.$$p, $yield = $iter || nil, self = this, mid = nil, args = nil, body = nil, $ret_or_1 = nil, initializer = nil, inline_args = nil; + if ($iter) $InlineArgs_on_def$1.$$p = null; + + node = $send2(self, $find_super(self, 'on_def', $InlineArgs_on_def$1, false, true), 'on_def', [node], null); + $a = [].concat(Opal.to_a(node)), (mid = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; + body = (function() {if ($truthy(($ret_or_1 = body))) { + return $ret_or_1 + } else { + return self.$s("nil") + }; return nil; })(); + initializer = $$($nesting, 'Initializer').$new(args, $hash2(["type"], {"type": "def"})); + inline_args = args.$updated(nil, initializer.$inline()); + body = self.$prepend_to_body(body, initializer.$initialization()); + return node.$updated(nil, [mid, inline_args, body]); + }, $InlineArgs_on_def$1.$$arity = 1); - result = [val['$[]'](0), val['$[]'](2)]; - return result; - }, TMP_Ruby23__reduce_493_368.$$arity = 3); - - Opal.defn(self, '$_reduce_494', TMP_Ruby23__reduce_494_369 = function $$_reduce_494(val, _values, result) { - var self = this; + Opal.def(self, '$on_defs', $InlineArgs_on_defs$2 = function $$on_defs(node) { + var $a, $iter = $InlineArgs_on_defs$2.$$p, $yield = $iter || nil, self = this, recv = nil, mid = nil, args = nil, body = nil, $ret_or_2 = nil, initializer = nil, inline_args = nil; + if ($iter) $InlineArgs_on_defs$2.$$p = null; + + node = $send2(self, $find_super(self, 'on_defs', $InlineArgs_on_defs$2, false, true), 'on_defs', [node], null); + $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (mid = ($a[1] == null ? nil : $a[1])), (args = ($a[2] == null ? nil : $a[2])), (body = ($a[3] == null ? nil : $a[3])), $a; + body = (function() {if ($truthy(($ret_or_2 = body))) { + return $ret_or_2 + } else { + return self.$s("nil") + }; return nil; })(); + initializer = $$($nesting, 'Initializer').$new(args, $hash2(["type"], {"type": "defs"})); + inline_args = args.$updated(nil, initializer.$inline()); + body = self.$prepend_to_body(body, initializer.$initialization()); + return node.$updated(nil, [recv, mid, inline_args, body]); + }, $InlineArgs_on_defs$2.$$arity = 1); - result = nil; - return result; - }, TMP_Ruby23__reduce_494_369.$$arity = 3); - - Opal.defn(self, '$_reduce_495', TMP_Ruby23__reduce_495_370 = function $$_reduce_495(val, _values, result) { - var self = this, $writer = nil; + Opal.def(self, '$on_iter', $InlineArgs_on_iter$3 = function $$on_iter(node) { + var $a, $iter = $InlineArgs_on_iter$3.$$p, $yield = $iter || nil, self = this, args = nil, body = nil, $ret_or_3 = nil, initializer = nil, inline_args = nil; - - result = self.builder.$args(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - - $writer = ["expr_value"]; - $send(self.lexer, 'state=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return result; - }, TMP_Ruby23__reduce_495_370.$$arity = 3); - - Opal.defn(self, '$_reduce_496', TMP_Ruby23__reduce_496_371 = function $$_reduce_496(val, _values, result) { - var self = this, $writer = nil; + if ($iter) $InlineArgs_on_iter$3.$$p = null; + + node = $send2(self, $find_super(self, 'on_iter', $InlineArgs_on_iter$3, false, true), 'on_iter', [node], null); + $a = [].concat(Opal.to_a(node)), (args = ($a[0] == null ? nil : $a[0])), (body = ($a[1] == null ? nil : $a[1])), $a; + body = (function() {if ($truthy(($ret_or_3 = body))) { + return $ret_or_3 + } else { + return self.$s("nil") + }; return nil; })(); + initializer = $$($nesting, 'Initializer').$new(args, $hash2(["type"], {"type": "iter"})); + inline_args = args.$updated(nil, initializer.$inline()); + body = self.$prepend_to_body(body, initializer.$initialization()); + return node.$updated(nil, [inline_args, body]); + }, $InlineArgs_on_iter$3.$$arity = 1); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Initializer'); - - result = self.lexer.$in_kwarg(); - - $writer = [true]; - $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return result; - }, TMP_Ruby23__reduce_496_371.$$arity = 3); - - Opal.defn(self, '$_reduce_497', TMP_Ruby23__reduce_497_372 = function $$_reduce_497(val, _values, result) { - var self = this, $writer = nil; + var $nesting = [self].concat($parent_nesting), $Initializer_initialize$4, $Initializer_extract_blockarg$6, $Initializer_initialize_shadowargs$7, $Initializer_extract_args$9, $Initializer_prepare_post_args$11, $Initializer_prepare_kwargs$12, $Initializer_extract_kwargs$13, $Initializer_extract_kwoptargs$15, $Initializer_extract_kwrestarg$17, $Initializer_extract_post_args$18, $Initializer_extract_optargs$20, $Initializer_extract_restarg$22, $Initializer_args_to_keep$23; - - - $writer = [val['$[]'](0)]; - $send(self.lexer, 'in_kwarg=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - result = self.builder.$args(nil, val['$[]'](1), nil); - return result; - }, TMP_Ruby23__reduce_497_372.$$arity = 3); - - Opal.defn(self, '$_reduce_498', TMP_Ruby23__reduce_498_373 = function $$_reduce_498(val, _values, result) { - var self = this; + self.$$prototype.initialization = self.$$prototype.args = self.$$prototype.inline = nil; + + self.$attr_reader("inline", "initialization"); + Opal.const_set($nesting[0], 'STEPS', ["extract_blockarg", "initialize_shadowargs", "extract_args", "prepare_post_args", "prepare_kwargs", "extract_optargs", "extract_restarg", "extract_post_args", "extract_kwargs", "extract_kwoptargs", "extract_kwrestarg"].$freeze()); + + Opal.def(self, '$initialize', $Initializer_initialize$4 = function $$initialize(args, $kwargs) { + var type, $$5, self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_498_373.$$arity = 3); - - Opal.defn(self, '$_reduce_499', TMP_Ruby23__reduce_499_374 = function $$_reduce_499(val, _values, result) { - var self = this; + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if (!Opal.hasOwnProperty.call($kwargs.$$smap, 'type')) { + throw Opal.ArgumentError.$new('missing keyword: type'); + } + type = $kwargs.$$smap["type"];; + self.args = $$($nesting, 'Arguments').$new(args.$children()); + self.inline = []; + self.initialization = []; + self.type = type; + self.underscore_found = false; + $send($$($nesting, 'STEPS'), 'each', [], ($$5 = function(step){var self = $$5.$$s == null ? this : $$5.$$s; - - result = val['$[]'](0).$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_499_374.$$arity = 3); - - Opal.defn(self, '$_reduce_500', TMP_Ruby23__reduce_500_375 = function $$_reduce_500(val, _values, result) { - var self = this; + + + if (step == null) { + step = nil; + }; + return self.$send(step);}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + if ($truthy(self.initialization['$any?']())) { + return (self.initialization = $send(self, 's', ["begin"].concat(Opal.to_a(self.initialization)))) + } else { + return (self.initialization = nil) + }; + }, $Initializer_initialize$4.$$arity = 2); + + Opal.def(self, '$extract_blockarg', $Initializer_extract_blockarg$6 = function $$extract_blockarg() { + var self = this, arg = nil; - - result = val['$[]'](0).$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_500_375.$$arity = 3); - - Opal.defn(self, '$_reduce_501', TMP_Ruby23__reduce_501_376 = function $$_reduce_501(val, _values, result) { - var self = this; + if ($truthy((arg = self.args.$blockarg()))) { + return self.initialization['$<<'](arg.$updated("extract_blockarg")) + } else { + return nil + } + }, $Initializer_extract_blockarg$6.$$arity = 0); + + Opal.def(self, '$initialize_shadowargs', $Initializer_initialize_shadowargs$7 = function $$initialize_shadowargs() { + var $$8, self = this; - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_501_376.$$arity = 3); - - Opal.defn(self, '$_reduce_502', TMP_Ruby23__reduce_502_377 = function $$_reduce_502(val, _values, result) { - var self = this; + return $send(self.args.$shadowargs(), 'each', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s; + if (self.initialization == null) self.initialization = nil; - - result = val['$[]'](1); - return result; - }, TMP_Ruby23__reduce_502_377.$$arity = 3); - - Opal.defn(self, '$_reduce_503', TMP_Ruby23__reduce_503_378 = function $$_reduce_503(val, _values, result) { - var self = this; + + + if (arg == null) { + arg = nil; + }; + return self.initialization['$<<'](arg.$updated("initialize_shadowarg"));}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + }, $Initializer_initialize_shadowargs$7.$$arity = 0); + + Opal.def(self, '$extract_args', $Initializer_extract_args$9 = function $$extract_args() { + var $$10, self = this; - - result = []; - return result; - }, TMP_Ruby23__reduce_503_378.$$arity = 3); - - Opal.defn(self, '$_reduce_504', TMP_Ruby23__reduce_504_379 = function $$_reduce_504(val, _values, result) { - var self = this; + return $send(self.args.$args(), 'each', [], ($$10 = function(arg){var self = $$10.$$s == null ? this : $$10.$$s; + if (self.type == null) self.type = nil; + if (self.initialization == null) self.initialization = nil; + if (self.underscore_found == null) self.underscore_found = nil; + if (self.inline == null) self.inline = nil; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_504_379.$$arity = 3); - - Opal.defn(self, '$_reduce_505', TMP_Ruby23__reduce_505_380 = function $$_reduce_505(val, _values, result) { - var self = this; + + + if (arg == null) { + arg = nil; + }; + if (self.type['$==']("iter")) { + + self.initialization['$<<'](arg.$updated("initialize_iter_arg")); + if (arg.$children()['$[]'](0)['$==']("_")) { + + if ($truthy(self.underscore_found)) { + arg = self.$s("fake_arg")}; + self.underscore_found = true;};}; + return self.inline['$<<'](arg);}, $$10.$$s = self, $$10.$$arity = 1, $$10)) + }, $Initializer_extract_args$9.$$arity = 0); + + Opal.def(self, '$prepare_post_args', $Initializer_prepare_post_args$11 = function $$prepare_post_args() { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](6)).$concat(val['$[]'](7)); - return result; - }, TMP_Ruby23__reduce_505_380.$$arity = 3); - - Opal.defn(self, '$_reduce_506', TMP_Ruby23__reduce_506_381 = function $$_reduce_506(val, _values, result) { - var self = this; + if ($truthy(self.args['$has_post_args?']())) { + return self.initialization['$<<'](self.$s("prepare_post_args", self.args.$args().$length())) + } else { + return nil + } + }, $Initializer_prepare_post_args$11.$$arity = 0); + + Opal.def(self, '$prepare_kwargs', $Initializer_prepare_kwargs$12 = function $$prepare_kwargs() { + var self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_506_381.$$arity = 3); - - Opal.defn(self, '$_reduce_507', TMP_Ruby23__reduce_507_382 = function $$_reduce_507(val, _values, result) { - var self = this; + + if ($truthy(self.args['$has_any_kwargs?']())) { + } else { + return nil + }; + if ($truthy(self.args['$can_inline_kwargs?']())) { + self.inline['$<<'](self.$s("arg", "$kwargs")) + } else { + + self.initialization['$<<'](self.$s("extract_kwargs")); + self.inline['$<<'](self.$s("fake_arg")); + }; + return self.initialization['$<<'](self.$s("ensure_kwargs_are_kwargs")); + }, $Initializer_prepare_kwargs$12.$$arity = 0); + + Opal.def(self, '$extract_kwargs', $Initializer_extract_kwargs$13 = function $$extract_kwargs() { + var $$14, self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_507_382.$$arity = 3); - - Opal.defn(self, '$_reduce_508', TMP_Ruby23__reduce_508_383 = function $$_reduce_508(val, _values, result) { - var self = this; + return $send(self.args.$kwargs(), 'each', [], ($$14 = function(arg){var self = $$14.$$s == null ? this : $$14.$$s; + if (self.initialization == null) self.initialization = nil; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_508_383.$$arity = 3); - - Opal.defn(self, '$_reduce_509', TMP_Ruby23__reduce_509_384 = function $$_reduce_509(val, _values, result) { - var self = this; + + + if (arg == null) { + arg = nil; + }; + return self.initialization['$<<'](arg.$updated("extract_kwarg"));}, $$14.$$s = self, $$14.$$arity = 1, $$14)) + }, $Initializer_extract_kwargs$13.$$arity = 0); + + Opal.def(self, '$extract_kwoptargs', $Initializer_extract_kwoptargs$15 = function $$extract_kwoptargs() { + var $$16, self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_509_384.$$arity = 3); - - Opal.defn(self, '$_reduce_510', TMP_Ruby23__reduce_510_385 = function $$_reduce_510(val, _values, result) { - var self = this; + return $send(self.args.$kwoptargs(), 'each', [], ($$16 = function(arg){var self = $$16.$$s == null ? this : $$16.$$s; + if (self.initialization == null) self.initialization = nil; - - result = val['$[]'](0).$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_510_385.$$arity = 3); - - Opal.defn(self, '$_reduce_511', TMP_Ruby23__reduce_511_386 = function $$_reduce_511(val, _values, result) { - var self = this; + + + if (arg == null) { + arg = nil; + }; + return self.initialization['$<<'](arg.$updated("extract_kwoptarg"));}, $$16.$$s = self, $$16.$$arity = 1, $$16)) + }, $Initializer_extract_kwoptargs$15.$$arity = 0); + + Opal.def(self, '$extract_kwrestarg', $Initializer_extract_kwrestarg$17 = function $$extract_kwrestarg() { + var self = this, arg = nil; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_511_386.$$arity = 3); - - Opal.defn(self, '$_reduce_512', TMP_Ruby23__reduce_512_387 = function $$_reduce_512(val, _values, result) { - var self = this; + if ($truthy((arg = self.args.$kwrestarg()))) { + return self.initialization['$<<'](arg.$updated("extract_kwrestarg")) + } else { + return nil + } + }, $Initializer_extract_kwrestarg$17.$$arity = 0); + + Opal.def(self, '$extract_post_args', $Initializer_extract_post_args$18 = function $$extract_post_args() { + var $$19, self = this; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](4)).$concat(val['$[]'](5)); - return result; - }, TMP_Ruby23__reduce_512_387.$$arity = 3); - - Opal.defn(self, '$_reduce_513', TMP_Ruby23__reduce_513_388 = function $$_reduce_513(val, _values, result) { - var self = this; + return $send(self.args.$postargs(), 'each', [], ($$19 = function(arg){var self = $$19.$$s == null ? this : $$19.$$s; + if (self.initialization == null) self.initialization = nil; + if (self.inline == null) self.inline = nil; - - result = val['$[]'](0).$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_513_388.$$arity = 3); - - Opal.defn(self, '$_reduce_514', TMP_Ruby23__reduce_514_389 = function $$_reduce_514(val, _values, result) { - var self = this; + + + if (arg == null) { + arg = nil; + }; + self.initialization['$<<'](arg.$updated("extract_post_arg")); + return self.inline['$<<'](self.$s("fake_arg"));}, $$19.$$s = self, $$19.$$arity = 1, $$19)) + }, $Initializer_extract_post_args$18.$$arity = 0); + + Opal.def(self, '$extract_optargs', $Initializer_extract_optargs$20 = function $$extract_optargs() { + var $$21, self = this, has_post_args = nil; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_514_389.$$arity = 3); - - Opal.defn(self, '$_reduce_515', TMP_Ruby23__reduce_515_390 = function $$_reduce_515(val, _values, result) { - var self = this; + + has_post_args = self.args['$has_post_args?'](); + return $send(self.args.$optargs(), 'each', [], ($$21 = function(arg){var self = $$21.$$s == null ? this : $$21.$$s, $a, arg_name = nil, default_value = nil; + if (self.initialization == null) self.initialization = nil; + if (self.inline == null) self.inline = nil; - - result = val['$[]'](0).$concat(val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_515_390.$$arity = 3); - - Opal.defn(self, '$_reduce_516', TMP_Ruby23__reduce_516_391 = function $$_reduce_516(val, _values, result) { - var self = this; + + + if (arg == null) { + arg = nil; + }; + if ($truthy(has_post_args)) { + + $a = [].concat(Opal.to_a(arg)), (arg_name = ($a[0] == null ? nil : $a[0])), (default_value = ($a[1] == null ? nil : $a[1])), $a; + self.initialization['$<<'](arg.$updated("extract_post_optarg", [arg_name, default_value, self.$args_to_keep()])); + return self.inline['$<<'](self.$s("fake_arg")); + } else { + + self.inline['$<<'](arg.$updated("arg")); + return self.initialization['$<<'](arg.$updated("extract_optarg")); + };}, $$21.$$s = self, $$21.$$arity = 1, $$21)); + }, $Initializer_extract_optargs$20.$$arity = 0); + + Opal.def(self, '$extract_restarg', $Initializer_extract_restarg$22 = function $$extract_restarg() { + var self = this, arg = nil, arg_name = nil; - - result = val['$[]'](0).$concat(val['$[]'](2)).$concat(val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_516_391.$$arity = 3); - - Opal.defn(self, '$_reduce_517', TMP_Ruby23__reduce_517_392 = function $$_reduce_517(val, _values, result) { - var self = this; + if ($truthy((arg = self.args.$restarg()))) { + + arg_name = arg.$children()['$[]'](0); + self.initialization['$<<'](arg.$updated("extract_restarg", [arg_name, self.$args_to_keep()])); + return self.inline['$<<'](self.$s("fake_arg")); + } else { + return nil + } + }, $Initializer_extract_restarg$22.$$arity = 0); + return (Opal.def(self, '$args_to_keep', $Initializer_args_to_keep$23 = function $$args_to_keep() { + var self = this; - - result = val['$[]'](0); - return result; - }, TMP_Ruby23__reduce_517_392.$$arity = 3); - - Opal.defn(self, '$_reduce_518', TMP_Ruby23__reduce_518_393 = function $$_reduce_518(val, _values, result) { - var self = this; + return self.args.$postargs().$length() + }, $Initializer_args_to_keep$23.$$arity = 0), nil) && 'args_to_keep'; + })($nesting[0], $$$($$$($$$('::', 'Opal'), 'Rewriters'), 'Base'), $nesting); + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = []; - return result; - }, TMP_Ruby23__reduce_518_393.$$arity = 3); - - Opal.defn(self, '$_reduce_519', TMP_Ruby23__reduce_519_394 = function $$_reduce_519(val, _values, result) { - var self = this; +Opal.modules["opal/rewriters/numblocks"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - - self.$diagnostic("error", "argument_const", nil, val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_519_394.$$arity = 3); - - Opal.defn(self, '$_reduce_520', TMP_Ruby23__reduce_520_395 = function $$_reduce_520(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$children', '$s', '$gen_args', '$map']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - self.$diagnostic("error", "argument_ivar", nil, val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_520_395.$$arity = 3); - - Opal.defn(self, '$_reduce_521', TMP_Ruby23__reduce_521_396 = function $$_reduce_521(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - self.$diagnostic("error", "argument_gvar", nil, val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_521_396.$$arity = 3); - - Opal.defn(self, '$_reduce_522', TMP_Ruby23__reduce_522_397 = function $$_reduce_522(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - self.$diagnostic("error", "argument_cvar", nil, val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_522_397.$$arity = 3); - - Opal.defn(self, '$_reduce_524', TMP_Ruby23__reduce_524_398 = function $$_reduce_524(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - self.static_env.$declare(val['$[]'](0)['$[]'](0)); - result = val['$[]'](0); - return result; - }, TMP_Ruby23__reduce_524_398.$$arity = 3); - - Opal.defn(self, '$_reduce_525', TMP_Ruby23__reduce_525_399 = function $$_reduce_525(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Numblocks'); - - result = val['$[]'](0); - return result; - }, TMP_Ruby23__reduce_525_399.$$arity = 3); - - Opal.defn(self, '$_reduce_526', TMP_Ruby23__reduce_526_400 = function $$_reduce_526(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $Numblocks_on_numblock$1, $Numblocks_gen_args$2; - result = self.builder.$arg(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_526_400.$$arity = 3); - - Opal.defn(self, '$_reduce_527', TMP_Ruby23__reduce_527_401 = function $$_reduce_527(val, _values, result) { - var self = this; - - result = self.builder.$multi_lhs(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_527_401.$$arity = 3); - - Opal.defn(self, '$_reduce_528', TMP_Ruby23__reduce_528_402 = function $$_reduce_528(val, _values, result) { - var self = this; + Opal.def(self, '$on_numblock', $Numblocks_on_numblock$1 = function $$on_numblock(node) { + var $a, $b, self = this, left = nil, arg_count = nil, right = nil; - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_528_402.$$arity = 3); - - Opal.defn(self, '$_reduce_529', TMP_Ruby23__reduce_529_403 = function $$_reduce_529(val, _values, result) { - var self = this; + + $b = node.$children(), $a = Opal.to_ary($b), (left = ($a[0] == null ? nil : $a[0])), (arg_count = ($a[1] == null ? nil : $a[1])), (right = ($a[2] == null ? nil : $a[2])), $b; + return self.$s("block", left, $send(self, 's', ["args"].concat(Opal.to_a(self.$gen_args(arg_count)))), right); + }, $Numblocks_on_numblock$1.$$arity = 1); + return (Opal.def(self, '$gen_args', $Numblocks_gen_args$2 = function $$gen_args(arg_count) { + var $$3, self = this; - - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_529_403.$$arity = 3); - - Opal.defn(self, '$_reduce_530', TMP_Ruby23__reduce_530_404 = function $$_reduce_530(val, _values, result) { - var self = this; + return $send(Opal.Range.$new(1, arg_count, false), 'map', [], ($$3 = function(i){var self = $$3.$$s == null ? this : $$3.$$s; - - self.$check_kwarg_name(val['$[]'](0)); - self.static_env.$declare(val['$[]'](0)['$[]'](0)); - result = val['$[]'](0); - return result; - }, TMP_Ruby23__reduce_530_404.$$arity = 3); - - Opal.defn(self, '$_reduce_531', TMP_Ruby23__reduce_531_405 = function $$_reduce_531(val, _values, result) { - var self = this; + + + if (i == null) { + i = nil; + }; + return self.$s("arg", "" + "_" + (i));}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + }, $Numblocks_gen_args$2.$$arity = 1), nil) && 'gen_args'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = self.builder.$kwoptarg(val['$[]'](0), val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_531_405.$$arity = 3); - - Opal.defn(self, '$_reduce_532', TMP_Ruby23__reduce_532_406 = function $$_reduce_532(val, _values, result) { - var self = this; +Opal.modules["opal/rewriters/returnable_logic"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; - - result = self.builder.$kwarg(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_532_406.$$arity = 3); - - Opal.defn(self, '$_reduce_533', TMP_Ruby23__reduce_533_407 = function $$_reduce_533(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$+', '$children', '$next_tmp', '$updated', '$s', '$process']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = self.builder.$kwoptarg(val['$[]'](0), val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_533_407.$$arity = 3); - - Opal.defn(self, '$_reduce_534', TMP_Ruby23__reduce_534_408 = function $$_reduce_534(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$kwarg(val['$[]'](0)); - return result; - }, TMP_Ruby23__reduce_534_408.$$arity = 3); - - Opal.defn(self, '$_reduce_535', TMP_Ruby23__reduce_535_409 = function $$_reduce_535(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_535_409.$$arity = 3); - - Opal.defn(self, '$_reduce_536', TMP_Ruby23__reduce_536_410 = function $$_reduce_536(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_536_410.$$arity = 3); - - Opal.defn(self, '$_reduce_537', TMP_Ruby23__reduce_537_411 = function $$_reduce_537(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ReturnableLogic'); - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_537_411.$$arity = 3); - - Opal.defn(self, '$_reduce_538', TMP_Ruby23__reduce_538_412 = function $$_reduce_538(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $ReturnableLogic_next_tmp$1, $ReturnableLogic_reset_tmp_counter$excl$2, $ReturnableLogic_on_or$3, $ReturnableLogic_on_and$4; + self.$$prototype.counter = nil; - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_538_412.$$arity = 3); - - Opal.defn(self, '$_reduce_541', TMP_Ruby23__reduce_541_413 = function $$_reduce_541(val, _values, result) { - var self = this; - - self.static_env.$declare(val['$[]'](1)['$[]'](0)); - result = [self.builder.$kwrestarg(val['$[]'](0), val['$[]'](1))]; - return result; - }, TMP_Ruby23__reduce_541_413.$$arity = 3); - - Opal.defn(self, '$_reduce_542', TMP_Ruby23__reduce_542_414 = function $$_reduce_542(val, _values, result) { - var self = this; + Opal.def(self, '$next_tmp', $ReturnableLogic_next_tmp$1 = function $$next_tmp() { + var self = this, $ret_or_1 = nil; + + self.counter = (function() {if ($truthy(($ret_or_1 = self.counter))) { + return $ret_or_1 + } else { + return 0 + }; return nil; })(); + self.counter = $rb_plus(self.counter, 1); + return "" + "$ret_or_" + (self.counter); + }, $ReturnableLogic_next_tmp$1.$$arity = 0); - result = [self.builder.$kwrestarg(val['$[]'](0))]; - return result; - }, TMP_Ruby23__reduce_542_414.$$arity = 3); - - Opal.defn(self, '$_reduce_543', TMP_Ruby23__reduce_543_415 = function $$_reduce_543(val, _values, result) { - var self = this; + Opal.def(self, '$reset_tmp_counter!', $ReturnableLogic_reset_tmp_counter$excl$2 = function() { + var self = this; + return (self.counter = nil) + }, $ReturnableLogic_reset_tmp_counter$excl$2.$$arity = 0); - result = self.builder.$optarg(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_543_415.$$arity = 3); - - Opal.defn(self, '$_reduce_544', TMP_Ruby23__reduce_544_416 = function $$_reduce_544(val, _values, result) { - var self = this; + Opal.def(self, '$on_or', $ReturnableLogic_on_or$3 = function $$on_or(node) { + var $a, self = this, lhs = nil, rhs = nil, lhs_tmp = nil; - - result = self.builder.$optarg(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_544_416.$$arity = 3); - - Opal.defn(self, '$_reduce_545', TMP_Ruby23__reduce_545_417 = function $$_reduce_545(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + lhs_tmp = self.$next_tmp(); + return node.$updated("if", [self.$s("lvasgn", lhs_tmp, self.$process(lhs)), self.$s("js_tmp", lhs_tmp), self.$process(rhs)]); + }, $ReturnableLogic_on_or$3.$$arity = 1); + return (Opal.def(self, '$on_and', $ReturnableLogic_on_and$4 = function $$on_and(node) { + var $a, self = this, lhs = nil, rhs = nil, lhs_tmp = nil; - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_545_417.$$arity = 3); - - Opal.defn(self, '$_reduce_546', TMP_Ruby23__reduce_546_418 = function $$_reduce_546(val, _values, result) { - var self = this; + + $a = [].concat(Opal.to_a(node.$children())), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; + lhs_tmp = self.$next_tmp(); + return node.$updated("if", [self.$s("lvasgn", lhs_tmp, self.$process(lhs)), self.$process(rhs), self.$s("js_tmp", lhs_tmp)]); + }, $ReturnableLogic_on_and$4.$$arity = 1), nil) && 'on_and'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_546_418.$$arity = 3); - - Opal.defn(self, '$_reduce_547', TMP_Ruby23__reduce_547_419 = function $$_reduce_547(val, _values, result) { - var self = this; +Opal.modules["opal/rewriters/forward_args"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super; - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_547_419.$$arity = 3); - - Opal.defn(self, '$_reduce_548', TMP_Ruby23__reduce_548_420 = function $$_reduce_548(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$process', '$s', '$last', '$children', '$==', '$type', '$[]', '$updated', '$!=', '$class']); + + self.$require("opal/rewriters/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_548_420.$$arity = 3); - - Opal.defn(self, '$_reduce_551', TMP_Ruby23__reduce_551_421 = function $$_reduce_551(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - self.static_env.$declare(val['$[]'](1)['$[]'](0)); - result = [self.builder.$restarg(val['$[]'](0), val['$[]'](1))]; - return result; - }, TMP_Ruby23__reduce_551_421.$$arity = 3); - - Opal.defn(self, '$_reduce_552', TMP_Ruby23__reduce_552_422 = function $$_reduce_552(val, _values, result) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); - - result = [self.builder.$restarg(val['$[]'](0))]; - return result; - }, TMP_Ruby23__reduce_552_422.$$arity = 3); - - Opal.defn(self, '$_reduce_555', TMP_Ruby23__reduce_555_423 = function $$_reduce_555(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - self.static_env.$declare(val['$[]'](1)['$[]'](0)); - result = self.builder.$blockarg(val['$[]'](0), val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_555_423.$$arity = 3); - - Opal.defn(self, '$_reduce_556', TMP_Ruby23__reduce_556_424 = function $$_reduce_556(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ForwardArgs'); - - result = [val['$[]'](1)]; - return result; - }, TMP_Ruby23__reduce_556_424.$$arity = 3); - - Opal.defn(self, '$_reduce_557', TMP_Ruby23__reduce_557_425 = function $$_reduce_557(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting), $ForwardArgs_on_forward_args$1, $ForwardArgs_on_args$2, $ForwardArgs_on_send$3; - result = []; - return result; - }, TMP_Ruby23__reduce_557_425.$$arity = 3); - - Opal.defn(self, '$_reduce_559', TMP_Ruby23__reduce_559_426 = function $$_reduce_559(val, _values, result) { - var self = this; - - result = val['$[]'](1); - return result; - }, TMP_Ruby23__reduce_559_426.$$arity = 3); - - Opal.defn(self, '$_reduce_560', TMP_Ruby23__reduce_560_427 = function $$_reduce_560(val, _values, result) { - var self = this; + Opal.def(self, '$on_forward_args', $ForwardArgs_on_forward_args$1 = function $$on_forward_args(_node) { + var self = this; + return self.$process(self.$s("args", self.$s("forward_arg", "$"))) + }, $ForwardArgs_on_forward_args$1.$$arity = 1); - result = []; - return result; - }, TMP_Ruby23__reduce_560_427.$$arity = 3); - - Opal.defn(self, '$_reduce_562', TMP_Ruby23__reduce_562_428 = function $$_reduce_562(val, _values, result) { - var self = this; + Opal.def(self, '$on_args', $ForwardArgs_on_args$2 = function $$on_args(node) { + var $iter = $ForwardArgs_on_args$2.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil, prev_children = nil; - - result = [val['$[]'](0)]; - return result; - }, TMP_Ruby23__reduce_562_428.$$arity = 3); - - Opal.defn(self, '$_reduce_563', TMP_Ruby23__reduce_563_429 = function $$_reduce_563(val, _values, result) { - var self = this; + if ($iter) $ForwardArgs_on_args$2.$$p = null; + if ($truthy((function() {if ($truthy(($ret_or_1 = node.$children().$last()))) { + return node.$children().$last().$type()['$==']("forward_arg") + } else { + return $ret_or_1 + }; return nil; })())) { + + prev_children = node.$children()['$[]']($range(0, -2, false)); + return node.$updated(nil, [].concat(Opal.to_a(prev_children)).concat([self.$s("restarg", "$fwd_rest"), self.$s("blockarg", "$fwd_block")])); + } else { + return $send2(self, $find_super(self, 'on_args', $ForwardArgs_on_args$2, false, true), 'on_args', [node], $iter) + } + }, $ForwardArgs_on_args$2.$$arity = 1); + return (Opal.def(self, '$on_send', $ForwardArgs_on_send$3 = function $$on_send(node) { + var $iter = $ForwardArgs_on_send$3.$$p, $yield = $iter || nil, self = this, $ret_or_2 = nil, $ret_or_3 = nil, prev_children = nil; - - result = val['$[]'](0)['$<<'](val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_563_429.$$arity = 3); - - Opal.defn(self, '$_reduce_564', TMP_Ruby23__reduce_564_430 = function $$_reduce_564(val, _values, result) { - var self = this; + if ($iter) $ForwardArgs_on_send$3.$$p = null; + if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = node.$children().$last()))) { + return node.$children().$last().$class()['$!=']($$($nesting, 'Symbol')) + } else { + return $ret_or_3 + }; return nil; })()))) { + return node.$children().$last().$type()['$==']("forwarded_args") + } else { + return $ret_or_2 + }; return nil; })())) { + + prev_children = node.$children()['$[]']($range(0, -2, false)); + return node.$updated(nil, [].concat(Opal.to_a(prev_children)).concat([self.$s("splat", self.$s("lvar", "$fwd_rest")), self.$s("block_pass", self.$s("lvar", "$fwd_block"))])); + } else { + return $send2(self, $find_super(self, 'on_send', $ForwardArgs_on_send$3, false, true), 'on_send', [node], $iter) + } + }, $ForwardArgs_on_send$3.$$arity = 1), nil) && 'on_send'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - - result = self.builder.$pair(val['$[]'](0), val['$[]'](1), val['$[]'](2)); - return result; - }, TMP_Ruby23__reduce_564_430.$$arity = 3); - - Opal.defn(self, '$_reduce_565', TMP_Ruby23__reduce_565_431 = function $$_reduce_565(val, _values, result) { - var self = this; +Opal.modules["opal/rewriter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - - result = self.builder.$pair_keyword(val['$[]'](0), val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_565_431.$$arity = 3); - - Opal.defn(self, '$_reduce_566', TMP_Ruby23__reduce_566_432 = function $$_reduce_566(val, _values, result) { - var self = this; + Opal.add_stubs(['$require', '$<<', '$list', '$delete', '$use', '$disabled?', '$class', '$each', '$new', '$process']); + + self.$require("opal/rewriters/opal_engine_check"); + self.$require("opal/rewriters/for_rewriter"); + self.$require("opal/rewriters/explicit_writer_return"); + self.$require("opal/rewriters/js_reserved_words"); + self.$require("opal/rewriters/block_to_iter"); + self.$require("opal/rewriters/dot_js_syntax"); + self.$require("opal/rewriters/pattern_matching"); + self.$require("opal/rewriters/logical_operator_assignment"); + self.$require("opal/rewriters/binary_operator_assignment"); + self.$require("opal/rewriters/hashes/key_duplicates_rewriter"); + self.$require("opal/rewriters/dump_args"); + self.$require("opal/rewriters/mlhs_args"); + self.$require("opal/rewriters/inline_args"); + self.$require("opal/rewriters/numblocks"); + self.$require("opal/rewriters/returnable_logic"); + self.$require("opal/rewriters/forward_args"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - result = self.builder.$pair_quoted(val['$[]'](0), val['$[]'](1), val['$[]'](2), val['$[]'](3)); - return result; - }, TMP_Ruby23__reduce_566_432.$$arity = 3); - - Opal.defn(self, '$_reduce_567', TMP_Ruby23__reduce_567_433 = function $$_reduce_567(val, _values, result) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - result = self.builder.$kwsplat(val['$[]'](0), val['$[]'](1)); - return result; - }, TMP_Ruby23__reduce_567_433.$$arity = 3); - - Opal.defn(self, '$_reduce_580', TMP_Ruby23__reduce_580_434 = function $$_reduce_580(val, _values, result) { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Rewriter'); - - result = ["dot", val['$[]'](0)['$[]'](1)]; - return result; - }, TMP_Ruby23__reduce_580_434.$$arity = 3); + var $nesting = [self].concat($parent_nesting), $Rewriter_initialize$6, $Rewriter_process$7; + + self.$$prototype.sexp = nil; - Opal.defn(self, '$_reduce_581', TMP_Ruby23__reduce_581_435 = function $$_reduce_581(val, _values, result) { - var self = this; + (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $list$1, $use$2, $delete$3, $disable$4, $disabled$ques$5; - result = ["anddot", val['$[]'](0)['$[]'](1)]; - return result; - }, TMP_Ruby23__reduce_581_435.$$arity = 3); - - Opal.defn(self, '$_reduce_586', TMP_Ruby23__reduce_586_436 = function $$_reduce_586(val, _values, result) { - var self = this; + + Opal.def(self, '$list', $list$1 = function $$list() { + var self = this, $ret_or_1 = nil; + if (self.list == null) self.list = nil; + return (self.list = (function() {if ($truthy(($ret_or_1 = self.list))) { + return $ret_or_1 + } else { + return [] + }; return nil; })()) + }, $list$1.$$arity = 0); - result = val['$[]'](1); - return result; - }, TMP_Ruby23__reduce_586_436.$$arity = 3); - - Opal.defn(self, '$_reduce_587', TMP_Ruby23__reduce_587_437 = function $$_reduce_587(val, _values, result) { - var self = this; + Opal.def(self, '$use', $use$2 = function $$use(rewriter) { + var self = this; + return self.$list()['$<<'](rewriter) + }, $use$2.$$arity = 1); - result = val['$[]'](1); - return result; - }, TMP_Ruby23__reduce_587_437.$$arity = 3); - - Opal.defn(self, '$_reduce_591', TMP_Ruby23__reduce_591_438 = function $$_reduce_591(val, _values, result) { - var self = this; + Opal.def(self, '$delete', $delete$3 = function(rewriter) { + var self = this; + return self.$list().$delete(rewriter) + }, $delete$3.$$arity = 1); - self.$yyerrok(); - return result; - }, TMP_Ruby23__reduce_591_438.$$arity = 3); - - Opal.defn(self, '$_reduce_595', TMP_Ruby23__reduce_595_439 = function $$_reduce_595(val, _values, result) { + Opal.def(self, '$disable', $disable$4 = function $$disable() { + var $iter = $disable$4.$$p, $yield = $iter || nil, self = this; + + if ($iter) $disable$4.$$p = null; + return (function() { try { + + self.disabled = true; + return Opal.yieldX($yield, []);; + } finally { + (self.disabled = false) + }; })() + }, $disable$4.$$arity = 0); + return (Opal.def(self, '$disabled?', $disabled$ques$5 = function() { + var $a, self = this; + if (self.disabled == null) self.disabled = nil; + + if ($truthy((($a = self['disabled'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { + return self.disabled + } else { + return nil + } + }, $disabled$ques$5.$$arity = 0), nil) && 'disabled?'; + })(Opal.get_singleton_class(self), $nesting); + self.$use($$$($$($nesting, 'Rewriters'), 'OpalEngineCheck')); + self.$use($$$($$($nesting, 'Rewriters'), 'ForRewriter')); + self.$use($$$($$($nesting, 'Rewriters'), 'Numblocks')); + self.$use($$$($$($nesting, 'Rewriters'), 'ForwardArgs')); + self.$use($$$($$($nesting, 'Rewriters'), 'BlockToIter')); + self.$use($$$($$($nesting, 'Rewriters'), 'DotJsSyntax')); + self.$use($$$($$($nesting, 'Rewriters'), 'PatternMatching')); + self.$use($$$($$($nesting, 'Rewriters'), 'JsReservedWords')); + self.$use($$$($$($nesting, 'Rewriters'), 'LogicalOperatorAssignment')); + self.$use($$$($$($nesting, 'Rewriters'), 'BinaryOperatorAssignment')); + self.$use($$$($$($nesting, 'Rewriters'), 'ExplicitWriterReturn')); + self.$use($$$($$$($$($nesting, 'Rewriters'), 'Hashes'), 'KeyDuplicatesRewriter')); + self.$use($$$($$($nesting, 'Rewriters'), 'ReturnableLogic')); + self.$use($$$($$($nesting, 'Rewriters'), 'DumpArgs')); + self.$use($$$($$($nesting, 'Rewriters'), 'MlhsArgs')); + self.$use($$$($$($nesting, 'Rewriters'), 'InlineArgs')); + + Opal.def(self, '$initialize', $Rewriter_initialize$6 = function $$initialize(sexp) { var self = this; + return (self.sexp = sexp) + }, $Rewriter_initialize$6.$$arity = 1); + return (Opal.def(self, '$process', $Rewriter_process$7 = function $$process() { + var $$8, self = this; + - result = nil; - return result; - }, TMP_Ruby23__reduce_595_439.$$arity = 3); - return (Opal.defn(self, '$_reduce_none', TMP_Ruby23__reduce_none_440 = function $$_reduce_none(val, _values, result) { - var self = this; + if ($truthy(self.$class()['$disabled?']())) { + return self.sexp}; + $send(self.$class().$list(), 'each', [], ($$8 = function(rewriter_class){var self = $$8.$$s == null ? this : $$8.$$s, rewriter = nil; + if (self.sexp == null) self.sexp = nil; - return val['$[]'](0) - }, TMP_Ruby23__reduce_none_440.$$arity = 3), nil) && '_reduce_none'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'Base'), $nesting) + + + if (rewriter_class == null) { + rewriter_class = nil; + }; + rewriter = rewriter_class.$new(); + return (self.sexp = rewriter.$process(self.sexp));}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + return self.sexp; + }, $Rewriter_process$7.$$arity = 0), nil) && 'process'; + })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/ast/builder"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2; +Opal.modules["opal/parser/source_buffer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$new']); - - self.$require("opal/ast/node"); - self.$require("parser/ruby23"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $AST, self = $AST = $module($base, 'AST'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Builder(){}; - var self = $Builder = $klass($base, $super, 'Builder', $Builder); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SourceBuffer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Builder_n_1; + var $nesting = [self].concat($parent_nesting), $SourceBuffer_recognize_encoding$1; - return (Opal.defn(self, '$n', TMP_Builder_n_1 = function $$n(type, children, location) { - var self = this; + return (Opal.defs(self, '$recognize_encoding', $SourceBuffer_recognize_encoding$1 = function $$recognize_encoding(string) { + var $iter = $SourceBuffer_recognize_encoding$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": location})) - }, TMP_Builder_n_1.$$arity = 3), nil) && 'n' - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Parser'), 'Builders'), 'Default'), $nesting) + if ($iter) $SourceBuffer_recognize_encoding$1.$$p = null; + if ($truthy(($ret_or_1 = $send2(self, $find_super(self, 'recognize_encoding', $SourceBuffer_recognize_encoding$1, false, true), 'recognize_encoding', [string], $iter)))) { + return $ret_or_1 + } else { + return $$$($$($nesting, 'Encoding'), 'UTF_8') + } + }, $SourceBuffer_recognize_encoding$1.$$arity = 1), nil) && 'recognize_encoding' + })($nesting[0], $$$($$$($$$('::', 'Parser'), 'Source'), 'Buffer'), $nesting) })($nesting[0], $nesting) - })($nesting[0], $nesting); + })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/base"] = function(Opal) { +Opal.modules["opal/parser/default_config"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $lambda = Opal.lambda; - Opal.add_stubs(['$require', '$new', '$current_node', '$loc', '$nil?', '$include?', '$type', '$updated', '$s', '$attr_accessor', '$current_node=', '$-']); - - self.$require("parser"); - self.$require("opal/ast/node"); + Opal.add_stubs(['$attr_accessor', '$all_errors_are_fatal=', '$diagnostics', '$-', '$ignore_warnings=', '$diagnostics_consumer', '$consumer=', '$extend', '$diagnostics_consumer=', '$new', '$rewrite', '$process', '$default_parser', '$default_parser_class']); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Parser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Base(){}; - var self = $Base = $klass($base, $super, 'Base', $Base); + + (function($base, $parent_nesting) { + var self = $module($base, 'DefaultConfig'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Base_s_9, TMP_Base_s_10, TMP_Base_prepend_to_body_11, TMP_Base_append_to_body_12, TMP_Base_process_13; + var $nesting = [self].concat($parent_nesting), $DefaultConfig_included$2, $DefaultConfig_initialize$4, $DefaultConfig_parse$5, $DefaultConfig_rewrite$6; - (function($base, $super, $parent_nesting) { - function $DummyLocation(){}; - var self = $DummyLocation = $klass($base, $super, 'DummyLocation', $DummyLocation); + (function($base, $parent_nesting) { + var self = $module($base, 'ClassMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DummyLocation_node$eq_1, TMP_DummyLocation_expression_2, TMP_DummyLocation_begin_pos_3, TMP_DummyLocation_end_pos_4, TMP_DummyLocation_source_5, TMP_DummyLocation_line_6, TMP_DummyLocation_column_7, TMP_DummyLocation_last_line_8; + var $nesting = [self].concat($parent_nesting), $ClassMethods_default_parser$1; - - Opal.defn(self, '$node=', TMP_DummyLocation_node$eq_1 = function($a_rest) { - var self = this; + self.$attr_accessor("diagnostics_consumer"); + return (Opal.def(self, '$default_parser', $ClassMethods_default_parser$1 = function $$default_parser() { + var $iter = $ClassMethods_default_parser$1.$$p, $yield = $iter || nil, self = this, parser = nil, $writer = nil; - return nil - }, TMP_DummyLocation_node$eq_1.$$arity = -1); - - Opal.defn(self, '$expression', TMP_DummyLocation_expression_2 = function $$expression() { - var self = this; + if ($iter) $ClassMethods_default_parser$1.$$p = null; + + parser = $send2(self, $find_super(self, 'default_parser', $ClassMethods_default_parser$1, false, true), 'default_parser', [], $iter); + + $writer = [true]; + $send(parser.$diagnostics(), 'all_errors_are_fatal=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [false]; + $send(parser.$diagnostics(), 'ignore_warnings=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [self.$diagnostics_consumer()]; + $send(parser.$diagnostics(), 'consumer=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return parser; + }, $ClassMethods_default_parser$1.$$arity = 0), nil) && 'default_parser'; + })($nesting[0], $nesting); + Opal.defs(self, '$included', $DefaultConfig_included$2 = function $$included(klass) { + var $$3, self = this, $writer = nil; - return self - }, TMP_DummyLocation_expression_2.$$arity = 0); - Opal.defn(self, '$begin_pos', TMP_DummyLocation_begin_pos_3 = function $$begin_pos() { - var self = this; - - return 0 - }, TMP_DummyLocation_begin_pos_3.$$arity = 0); + klass.$extend($$($nesting, 'ClassMethods')); - Opal.defn(self, '$end_pos', TMP_DummyLocation_end_pos_4 = function $$end_pos() { - var self = this; + $writer = [$lambda(($$3 = function(diagnostic){var self = $$3.$$s == null ? this : $$3.$$s; - return 0 - }, TMP_DummyLocation_end_pos_4.$$arity = 0); - - Opal.defn(self, '$source', TMP_DummyLocation_source_5 = function $$source() { - var self = this; + + + if (diagnostic == null) { + diagnostic = nil; + }; + return nil;}, $$3.$$s = self, $$3.$$arity = 1, $$3))]; + $send(klass, 'diagnostics_consumer=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; + }, $DefaultConfig_included$2.$$arity = 1); + + Opal.def(self, '$initialize', $DefaultConfig_initialize$4 = function $$initialize($a) { + var $post_args, $rest_arg, $iter = $DefaultConfig_initialize$4.$$p, $yield = $iter || nil, self = this; - return "" - }, TMP_DummyLocation_source_5.$$arity = 0); + if ($iter) $DefaultConfig_initialize$4.$$p = null; - Opal.defn(self, '$line', TMP_DummyLocation_line_6 = function $$line() { - var self = this; - - return 0 - }, TMP_DummyLocation_line_6.$$arity = 0); - Opal.defn(self, '$column', TMP_DummyLocation_column_7 = function $$column() { - var self = this; - - return 0 - }, TMP_DummyLocation_column_7.$$arity = 0); - return (Opal.defn(self, '$last_line', TMP_DummyLocation_last_line_8 = function $$last_line() { - var self = this; - - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY') - }, TMP_DummyLocation_last_line_8.$$arity = 0), nil) && 'last_line'; - })($nesting[0], null, $nesting); - Opal.const_set($nesting[0], 'DUMMY_LOCATION', Opal.const_get_relative($nesting, 'DummyLocation').$new()); + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return $send2(self, $find_super(self, 'initialize', $DefaultConfig_initialize$4, false, true), 'initialize', [$$$($$$($$($nesting, 'Opal'), 'AST'), 'Builder').$new()], null); + }, $DefaultConfig_initialize$4.$$arity = -1); - Opal.defn(self, '$s', TMP_Base_s_9 = function $$s(type, $a_rest) { - var self = this, children, loc = nil; + Opal.def(self, '$parse', $DefaultConfig_parse$5 = function $$parse(source_buffer) { + var $iter = $DefaultConfig_parse$5.$$p, $yield = $iter || nil, self = this, parsed = nil, rewriten = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - children = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - children[$arg_idx - 1] = arguments[$arg_idx]; - } + if ($iter) $DefaultConfig_parse$5.$$p = null; - loc = (function() {if ($truthy(self.$current_node())) { - return self.$current_node().$loc() - } else { - return Opal.const_get_relative($nesting, 'DUMMY_LOCATION') - }; return nil; })(); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": loc})); - }, TMP_Base_s_9.$$arity = -2); - Opal.defs(self, '$s', TMP_Base_s_10 = function $$s(type, $a_rest) { - var self = this, children; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - children = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - children[$arg_idx - 1] = arguments[$arg_idx]; - } - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": Opal.const_get_relative($nesting, 'DUMMY_LOCATION')})) - }, TMP_Base_s_10.$$arity = -2); - Opal.alias(self, "on_iter", "process_regular_node"); - Opal.alias(self, "on_top", "process_regular_node"); - Opal.alias(self, "on_zsuper", "process_regular_node"); - Opal.alias(self, "on_jscall", "on_send"); - Opal.alias(self, "on_jsattr", "process_regular_node"); - Opal.alias(self, "on_jsattrasgn", "process_regular_node"); - Opal.alias(self, "on_kwsplat", "process_regular_node"); - - Opal.defn(self, '$prepend_to_body', TMP_Base_prepend_to_body_11 = function $$prepend_to_body(body, node) { + parsed = $send2(self, $find_super(self, 'parse', $DefaultConfig_parse$5, false, true), 'parse', [source_buffer], $iter); + rewriten = self.$rewrite(parsed); + return rewriten; + }, $DefaultConfig_parse$5.$$arity = 1); + return (Opal.def(self, '$rewrite', $DefaultConfig_rewrite$6 = function $$rewrite(node) { var self = this; - if ($truthy(body['$nil?']())) { - return node - } else if ($truthy(["begin", "kwbegin"]['$include?'](body.$type()))) { - return body.$updated(nil, [node].concat(Opal.to_a(body))) - } else { - return self.$s("begin", node, body) - } - }, TMP_Base_prepend_to_body_11.$$arity = 2); + return $$$($$($nesting, 'Opal'), 'Rewriter').$new(node).$process() + }, $DefaultConfig_rewrite$6.$$arity = 1), nil) && 'rewrite'; + })($nesting[0], $nesting); + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $default_parser$7; + - Opal.defn(self, '$append_to_body', TMP_Base_append_to_body_12 = function $$append_to_body(body, node) { + self.$attr_accessor("default_parser_class"); + return (Opal.def(self, '$default_parser', $default_parser$7 = function $$default_parser() { var self = this; - if ($truthy(body['$nil?']())) { - return node - } else if ($truthy(["begin", "kwbegin"]['$include?'](body.$type()))) { - return body.$updated(nil, [].concat(Opal.to_a(body)).concat([node])) - } else { - return self.$s("begin", body, node) - } - }, TMP_Base_append_to_body_12.$$arity = 2); - self.$attr_accessor("current_node"); - return (Opal.defn(self, '$process', TMP_Base_process_13 = function $$process(node) { - var self = this, $iter = TMP_Base_process_13.$$p, $yield = $iter || nil, $writer = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) TMP_Base_process_13.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return (function() { try { - - - $writer = [node]; - $send(self, 'current_node=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return $send(self, Opal.find_super_dispatcher(self, 'process', TMP_Base_process_13, false), $zuper, $iter); - } finally { - (($writer = [nil]), $send(self, 'current_node=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) - }; })() - }, TMP_Base_process_13.$$arity = 1), nil) && 'process'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Parser'), 'AST'), 'Processor'), $nesting) + return self.$default_parser_class().$default_parser() + }, $default_parser$7.$$arity = 0), nil) && 'default_parser'; + })(Opal.get_singleton_class(self), $nesting); })($nesting[0], $nesting) - })($nesting[0], $nesting); + })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/opal_engine_check"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/parser/with_ruby_lexer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; - Opal.add_stubs(['$require', '$children', '$skip_check_present?', '$s', '$skip_check_present_not?', '$updated', '$process_all', '$==']); - - self.$require("opal/rewriters/base"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + Opal.add_stubs(['$include', '$default_parser_class=', '$-']); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'WithRubyLexer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $writer = nil; - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + + self.$include($$$($$$($$($nesting, 'Opal'), 'Parser'), 'DefaultConfig')); + + $writer = [self]; + $send($$$($$($nesting, 'Opal'), 'Parser'), 'default_parser_class=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; + })($$$($$($nesting, 'Opal'), 'Parser'), $$$($$($nesting, 'Parser'), 'Ruby30'), $nesting) +}; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); +Opal.modules["opal/parser/patch"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $module = Opal.module; - (function($base, $super, $parent_nesting) { - function $OpalEngineCheck(){}; - var self = $OpalEngineCheck = $klass($base, $super, 'OpalEngineCheck', $OpalEngineCheck); + Opal.add_stubs(['$source', '$unpack', '$+', '$to_a', '$lines', '$end_with?', '$<<', '$map', '$chomp', '$=~', '$diagnostic', '$nil?', '$type', '$[]', '$respond_to?', '$[]=', '$-', '$send', '$value']); + + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Lexer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_OpalEngineCheck_on_if_1, TMP_OpalEngineCheck_skip_check_present$q_2, TMP_OpalEngineCheck_skip_check_present_not$q_3; + var $nesting = [self].concat($parent_nesting), $Lexer_source_buffer$eq$1; - - - Opal.defn(self, '$on_if', TMP_OpalEngineCheck_on_if_1 = function $$on_if(node) { - var $a, self = this, test = nil, true_body = nil, false_body = nil; + self.$$prototype.source_buffer = nil; + return (Opal.def(self, '$source_buffer=', $Lexer_source_buffer$eq$1 = function(source_buffer) { + var self = this, source = nil; - - $a = [].concat(Opal.to_a(node.$children())), (test = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; - if ($truthy(self['$skip_check_present?'](test))) { - false_body = self.$s("nil")}; - if ($truthy(self['$skip_check_present_not?'](test))) { - true_body = self.$s("nil")}; - return node.$updated(nil, self.$process_all([test, true_body, false_body])); - }, TMP_OpalEngineCheck_on_if_1.$$arity = 1); + + self.source_buffer = source_buffer; + if ($truthy(self.source_buffer)) { - Opal.defn(self, '$skip_check_present?', TMP_OpalEngineCheck_skip_check_present$q_2 = function(test) { - var $a, self = this; + source = self.source_buffer.$source(); + return (self.source_pts = source.$unpack("U*")); + } else { + return (self.source_pts = nil) + }; + }, $Lexer_source_buffer$eq$1.$$arity = 1), nil) && 'source_buffer=' + })($$($nesting, 'Parser'), null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Literal'); - return ($truthy($a = test['$=='](Opal.const_get_relative($nesting, 'RUBY_ENGINE_CHECK'))) ? $a : test['$=='](Opal.const_get_relative($nesting, 'RUBY_PLATFORM_CHECK'))) - }, TMP_OpalEngineCheck_skip_check_present$q_2.$$arity = 1); - - Opal.defn(self, '$skip_check_present_not?', TMP_OpalEngineCheck_skip_check_present_not$q_3 = function(test) { - var $a, self = this; + var $nesting = [self].concat($parent_nesting), $Literal_extend_string$2; - return ($truthy($a = test['$=='](Opal.const_get_relative($nesting, 'RUBY_ENGINE_CHECK_NOT'))) ? $a : test['$=='](Opal.const_get_relative($nesting, 'RUBY_PLATFORM_CHECK_NOT'))) - }, TMP_OpalEngineCheck_skip_check_present_not$q_3.$$arity = 1); - Opal.const_set($nesting[0], 'RUBY_ENGINE_CHECK', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "==", self.$s("str", "opal"))); - Opal.const_set($nesting[0], 'RUBY_ENGINE_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_ENGINE"), "!=", self.$s("str", "opal"))); - Opal.const_set($nesting[0], 'RUBY_PLATFORM_CHECK', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "==", self.$s("str", "opal"))); - return Opal.const_set($nesting[0], 'RUBY_PLATFORM_CHECK_NOT', self.$s("send", self.$s("const", nil, "RUBY_PLATFORM"), "!=", self.$s("str", "opal"))); - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; + self.$$prototype.buffer_s = self.$$prototype.buffer = nil; + + + Opal.udef(self, '$' + "extend_string");; + return (Opal.def(self, '$extend_string', $Literal_extend_string$2 = function $$extend_string(string, ts, te) { + var self = this, $ret_or_1 = nil; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/for_rewriter"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + + self.buffer_s = (function() {if ($truthy(($ret_or_1 = self.buffer_s))) { + return $ret_or_1 + } else { + return ts + }; return nil; })(); + self.buffer_e = te; + return (self.buffer = $rb_plus(self.buffer, string)); + }, $Literal_extend_string$2.$$arity = 3), nil) && 'extend_string'; + })($$$($$($nesting, 'Parser'), 'Lexer'), null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Buffer'); - Opal.add_stubs(['$require', '$+', '$find', '$map', '$s', '$next_tmp', '$class', '$type', '$===', '$<<', '$prepend_to_body', '$private', '$attr_reader', '$new', '$process', '$to_a', '$result']); - - self.$require("opal/rewriters/base"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var $nesting = [self].concat($parent_nesting), $Buffer_source_lines$3; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + self.$$prototype.lines = self.$$prototype.source = nil; + return (Opal.def(self, '$source_lines', $Buffer_source_lines$3 = function $$source_lines() { + var $$4, self = this, $ret_or_2 = nil, lines = nil; - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + return (self.lines = (function() {if ($truthy(($ret_or_2 = self.lines))) { + return $ret_or_2 + } else { + + lines = self.source.$lines().$to_a(); + if ($truthy(self.source['$end_with?']("\n"))) { + lines['$<<']("")}; + return $send(lines, 'map', [], ($$4 = function(line){var self = $$4.$$s == null ? this : $$4.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (line == null) { + line = nil; + }; + return line.$chomp("\n");}, $$4.$$s = self, $$4.$$arity = 1, $$4)); + }; return nil; })()) + }, $Buffer_source_lines$3.$$arity = 0), nil) && 'source_lines' + })($$$($$($nesting, 'Parser'), 'Source'), null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Default'); - (function($base, $super, $parent_nesting) { - function $ForRewriter(){}; - var self = $ForRewriter = $klass($base, $super, 'ForRewriter', $ForRewriter); + var $nesting = [self].concat($parent_nesting), $Default_check_lvar_name$5; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ForRewriter_reset_tmp_counter$B_1, TMP_ForRewriter_next_tmp_2, TMP_ForRewriter_on_for_4; + return (Opal.def(self, '$check_lvar_name', $Default_check_lvar_name$5 = function $$check_lvar_name(name, loc) { + var self = this; - - Opal.defs(self, '$reset_tmp_counter!', TMP_ForRewriter_reset_tmp_counter$B_1 = function() { - var self = this; + if ($truthy(name['$=~'](new RegExp('^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$', 'u')))) { + return nil + } else { + return self.$diagnostic("error", "lvar_name", $hash2(["name"], {"name": name}), loc) + } + }, $Default_check_lvar_name$5.$$arity = 2), nil) && 'check_lvar_name' + })($$$($$($nesting, 'Parser'), 'Builders'), null, $nesting);; + (function($base, $parent_nesting) { + var self = $module($base, 'Mixin'); - return (self.counter = 0) - }, TMP_ForRewriter_reset_tmp_counter$B_1.$$arity = 0); - Opal.defs(self, '$next_tmp', TMP_ForRewriter_next_tmp_2 = function $$next_tmp() { - var $a, self = this; - if (self.counter == null) self.counter = nil; + var $nesting = [self].concat($parent_nesting), $Mixin_process$6; - - self.counter = ($truthy($a = self.counter) ? $a : 0); - self.counter = $rb_plus(self.counter, 1); - return "" + "$for_tmp" + (self.counter); - }, TMP_ForRewriter_next_tmp_2.$$arity = 0); - - Opal.defn(self, '$on_for', TMP_ForRewriter_on_for_4 = function $$on_for(node) { - var $a, TMP_3, self = this, loop_variable = nil, iterating_value = nil, loop_body = nil, iterating_lvars = nil, lvars_declared_in_body = nil, outer_assigns = nil, tmp_loop_variable = nil, get_tmp_loop_variable = nil, loop_variable_assignment = nil, $case = nil; + + + Opal.udef(self, '$' + "process");; + return (Opal.def(self, '$process', $Mixin_process$6 = function $$process(node) { + var self = this, $ret_or_3 = nil, type = nil, on_handler = nil, $ret_or_4 = nil, $writer = nil, handler = nil, $ret_or_5 = nil; + if (self._on_handler_cache == null) self._on_handler_cache = nil; - - $a = [].concat(Opal.to_a(node)), (loop_variable = ($a[0] == null ? nil : $a[0])), (iterating_value = ($a[1] == null ? nil : $a[1])), (loop_body = ($a[2] == null ? nil : $a[2])), $a; - iterating_lvars = Opal.const_get_relative($nesting, 'LocalVariableAssigns').$find(loop_variable); - lvars_declared_in_body = Opal.const_get_relative($nesting, 'LocalVariableAssigns').$find(loop_body); - outer_assigns = $send($rb_plus(iterating_lvars, lvars_declared_in_body), 'map', [], (TMP_3 = function(lvar_name){var self = TMP_3.$$s || this; -if (lvar_name == null) lvar_name = nil; - return self.$s("lvdeclare", lvar_name)}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); - tmp_loop_variable = self.$class().$next_tmp(); - get_tmp_loop_variable = self.$s("js_tmp", tmp_loop_variable); - loop_variable_assignment = (function() {$case = loop_variable.$type(); - if ("mlhs"['$===']($case)) {return self.$s("masgn", loop_variable, get_tmp_loop_variable)} - else {return loop_variable['$<<'](get_tmp_loop_variable)}})(); - loop_body = self.$prepend_to_body(loop_body, loop_variable_assignment); - node = self.$s("send", iterating_value, "each", self.$s("iter", self.$s("args", self.$s("arg", tmp_loop_variable)), loop_body)); - return $send(self, 's', ["begin"].concat(Opal.to_a(outer_assigns)).concat(node)); - }, TMP_ForRewriter_on_for_4.$$arity = 1); - self.$private(); - return (function($base, $super, $parent_nesting) { - function $LocalVariableAssigns(){}; - var self = $LocalVariableAssigns = $klass($base, $super, 'LocalVariableAssigns', $LocalVariableAssigns); + + if ($truthy(node['$nil?']())) { + return nil}; + self._on_handler_cache = (function() {if ($truthy(($ret_or_3 = self._on_handler_cache))) { + return $ret_or_3 + } else { + return $hash2([], {}) + }; return nil; })(); + type = node.$type(); + on_handler = (function() {if ($truthy(($ret_or_4 = self._on_handler_cache['$[]'](type)))) { + return $ret_or_4 + } else { + + $writer = [type, ((handler = "" + "on_" + (type)), (function() {if ($truthy(self['$respond_to?'](handler))) { + return nil + } else { + return (handler = "handler_missing") + }; return nil; })(), handler)]; + $send(self._on_handler_cache, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }; return nil; })(); + if ($truthy(($ret_or_5 = self.$send(on_handler, node)))) { + return $ret_or_5 + } else { + return node + }; + }, $Mixin_process$6.$$arity = 1), nil) && 'process'; + })($$$($$($nesting, 'AST'), 'Processor'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Default'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_LocalVariableAssigns_find_5, TMP_LocalVariableAssigns_initialize_6, TMP_LocalVariableAssigns_on_lvasgn_7; + var $nesting = [self].concat($parent_nesting), $Default_string_value$7; - - self.$attr_reader("result"); - Opal.defs(self, '$find', TMP_LocalVariableAssigns_find_5 = function $$find(node) { - var self = this, processor = nil; + + + Opal.udef(self, '$' + "string_value");; + return (Opal.def(self, '$string_value', $Default_string_value$7 = function $$string_value(token) { + var self = this; - - processor = self.$new(); - processor.$process(node); - return processor.$result().$to_a(); - }, TMP_LocalVariableAssigns_find_5.$$arity = 1); - - Opal.defn(self, '$initialize', TMP_LocalVariableAssigns_initialize_6 = function $$initialize() { - var self = this; + return self.$value(token) + }, $Default_string_value$7.$$arity = 1), nil) && 'string_value'; + })($$$($$($nesting, 'Parser'), 'Builders'), null, $nesting); +}; - return (self.result = Opal.const_get_relative($nesting, 'Set').$new()) - }, TMP_LocalVariableAssigns_initialize_6.$$arity = 0); - return (Opal.defn(self, '$on_lvasgn', TMP_LocalVariableAssigns_on_lvasgn_7 = function $$on_lvasgn(node) { - var $a, self = this, $iter = TMP_LocalVariableAssigns_on_lvasgn_7.$$p, $yield = $iter || nil, name = nil, _ = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; +Opal.modules["opal/parser"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; - if ($iter) TMP_LocalVariableAssigns_on_lvasgn_7.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - self.$result()['$<<'](name); - return $send(self, Opal.find_super_dispatcher(self, 'on_lvasgn', TMP_LocalVariableAssigns_on_lvasgn_7, false), $zuper, $iter); - }, TMP_LocalVariableAssigns_on_lvasgn_7.$$arity = 1), nil) && 'on_lvasgn'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); + Opal.add_stubs(['$require']); + + self.$require("opal/ast/builder"); + self.$require("opal/rewriter"); + self.$require("opal/parser/source_buffer"); + self.$require("opal/parser/default_config"); + self.$require("opal/parser/with_ruby_lexer"); + return self.$require("opal/parser/patch"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/explicit_writer_return"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/fragment"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$require', '$s', '$=~', '$to_s', '$==', '$process_all', '$updated']); - - self.$require("opal/rewriters/base"); + Opal.add_stubs(['$attr_reader', '$to_s', '$inspect', '$type', '$===', '$[]', '$meta', '$source_map_name_for', '$sexp', '$==', '$class', '$+', '$parent', '$>', '$!', '$first', '$children', '$loc', '$respond_to?', '$dot', '$selector', '$operator', '$begin', '$line', '$location', '$column']); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var self = $module($base, 'Opal'); - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + var $nesting = [self].concat($parent_nesting); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Fragment'); - (function($base, $super, $parent_nesting) { - function $ExplicitWriterReturn(){}; - var self = $ExplicitWriterReturn = $klass($base, $super, 'ExplicitWriterReturn', $ExplicitWriterReturn); + var $nesting = [self].concat($parent_nesting), $Fragment_initialize$1, $Fragment_inspect$2, $Fragment_source_map_name_for$3, $Fragment_source_map_name$4, $Fragment_location$5, $Fragment_line$6, $Fragment_column$7, $Fragment_skip_source_map$ques$8; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ExplicitWriterReturn_initialize_1, TMP_ExplicitWriterReturn_on_send_2, TMP_ExplicitWriterReturn_on_masgn_3; + self.$$prototype.code = self.$$prototype.scope = self.$$prototype.sexp = nil; + + self.$attr_reader("code"); + + Opal.def(self, '$initialize', $Fragment_initialize$1 = function $$initialize(code, scope, sexp) { + var self = this; - def.in_masgn = nil; - Opal.defn(self, '$initialize', TMP_ExplicitWriterReturn_initialize_1 = function $$initialize() { - var self = this; + if (sexp == null) { + sexp = nil; + }; + self.code = code.$to_s(); + self.sexp = sexp; + return (self.scope = scope); + }, $Fragment_initialize$1.$$arity = -3); + + Opal.def(self, '$inspect', $Fragment_inspect$2 = function $$inspect() { + var self = this; - return (self.in_masgn = false) - }, TMP_ExplicitWriterReturn_initialize_1.$$arity = 0); - Opal.const_set($nesting[0], 'TMP_NAME', "$writer"); - Opal.const_set($nesting[0], 'GET_ARGS_NODE', self.$s("lvar", Opal.const_get_relative($nesting, 'TMP_NAME'))); - Opal.const_set($nesting[0], 'RETURN_ARGS_NODE', self.$s("jsattr", Opal.const_get_relative($nesting, 'GET_ARGS_NODE'), self.$s("send", self.$s("jsattr", Opal.const_get_relative($nesting, 'GET_ARGS_NODE'), self.$s("str", "length")), "-", self.$s("int", 1)))); - - Opal.defn(self, '$on_send', TMP_ExplicitWriterReturn_on_send_2 = function $$on_send(node) { - var $a, self = this, $iter = TMP_ExplicitWriterReturn_on_send_2.$$p, $yield = $iter || nil, recv = nil, method_name = nil, args = nil, set_args_node = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + return "" + "f(" + (self.code.$inspect()) + ")" + }, $Fragment_inspect$2.$$arity = 0); + + Opal.def(self, '$source_map_name_for', $Fragment_source_map_name_for$3 = function $$source_map_name_for(sexp) { + var $a, self = this, $case = nil, scope = nil, iters = nil, level = nil, const$ = nil, name = nil, $ret_or_1 = nil; - if ($iter) TMP_ExplicitWriterReturn_on_send_2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - - if ($truthy(self.in_masgn)) { - return $send(self, Opal.find_super_dispatcher(self, 'on_send', TMP_ExplicitWriterReturn_on_send_2, false), $zuper, $iter)}; - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy(($truthy($a = method_name.$to_s()['$=~'](new RegExp("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "\\w+=" + (Opal.const_get_relative($nesting, 'REGEXP_END'))))) ? $a : method_name.$to_s()['$==']("[]=")))) { - - set_args_node = self.$s("lvasgn", Opal.const_get_relative($nesting, 'TMP_NAME'), $send(self, 's', ["array"].concat(Opal.to_a(self.$process_all(args))))); - return self.$s("begin", set_args_node, node.$updated(nil, [recv, method_name, self.$s("splat", Opal.const_get_relative($nesting, 'GET_ARGS_NODE'))]), Opal.const_get_relative($nesting, 'RETURN_ARGS_NODE')); - } else { - return $send(self, Opal.find_super_dispatcher(self, 'on_send', TMP_ExplicitWriterReturn_on_send_2, false), $zuper, $iter) - }; - }, TMP_ExplicitWriterReturn_on_send_2.$$arity = 1); - return (Opal.defn(self, '$on_masgn', TMP_ExplicitWriterReturn_on_masgn_3 = function $$on_masgn(node) { - var self = this, $iter = TMP_ExplicitWriterReturn_on_masgn_3.$$p, $yield = $iter || nil, result = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) TMP_ExplicitWriterReturn_on_masgn_3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; + return (function() {$case = sexp.$type(); + if ("top"['$===']($case)) {return (function() {$case = sexp.$meta()['$[]']("kind"); + if ("require"['$===']($case)) {return ""} + else if ("eval"['$===']($case)) {return "(eval)"} + else if ("main"['$===']($case)) {return "
"} + else { return nil }})()} + else if ("begin"['$===']($case) || "newline"['$===']($case) || "js_return"['$===']($case)) {if ($truthy(self.scope)) { + return self.$source_map_name_for(self.scope.$sexp()) + } else { + return nil + }} + else if ("iter"['$===']($case)) { + scope = self.scope; + iters = 1; + while ($truthy(scope)) { + if (scope.$class()['$==']($$$($$($nesting, 'Nodes'), 'IterNode'))) { + + iters = $rb_plus(iters, 1); + scope = scope.$parent(); + } else { + break; } - - self.in_masgn = true; - result = $send(self, Opal.find_super_dispatcher(self, 'on_masgn', TMP_ExplicitWriterReturn_on_masgn_3, false), $zuper, $iter); - self.in_masgn = false; - return result; - }, TMP_ExplicitWriterReturn_on_masgn_3.$$arity = 1), nil) && 'on_masgn'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; + }; + if ($truthy($rb_gt(iters, 1))) { + level = "" + " (" + (iters) + " levels)"}; + return "" + "block" + (level) + " in " + (self.$source_map_name_for(scope.$sexp()));} + else if ("self"['$===']($case)) {return "self"} + else if ("module"['$===']($case)) { + $a = [].concat(Opal.to_a(sexp)), (const$ = ($a[0] == null ? nil : $a[0])), $a; + return "" + "";} + else if ("class"['$===']($case)) { + $a = [].concat(Opal.to_a(sexp)), (const$ = ($a[0] == null ? nil : $a[0])), $a; + return "" + "";} + else if ("const"['$===']($case)) { + $a = [].concat(Opal.to_a(sexp)), (scope = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy((function() {if ($truthy(($ret_or_1 = scope['$!']()))) { + return $ret_or_1 + } else { + return scope.$type()['$==']("cbase") + }; return nil; })())) { + return name.$to_s() + } else { + return "" + (self.$source_map_name_for(scope)) + "::" + (name) + };} + else if ("int"['$===']($case)) {return sexp.$children().$first()} + else if ("def"['$===']($case)) {return sexp.$children().$first()} + else if ("defs"['$===']($case)) {return sexp.$children()['$[]'](1)} + else if ("send"['$===']($case)) {return sexp.$children()['$[]'](1)} + else if ("lvar"['$===']($case) || "lvasgn"['$===']($case) || "lvdeclare"['$===']($case) || "ivar"['$===']($case) || "ivasgn"['$===']($case) || "gvar"['$===']($case) || "cvar"['$===']($case) || "cvasgn"['$===']($case) || "gvars"['$===']($case) || "gvasgn"['$===']($case) || "arg"['$===']($case)) {return sexp.$children().$first()} + else if ("str"['$===']($case) || "xstr"['$===']($case)) {return self.$source_map_name_for(self.scope.$sexp())} + else { return nil }})() + }, $Fragment_source_map_name_for$3.$$arity = 1); + + Opal.def(self, '$source_map_name', $Fragment_source_map_name$4 = function $$source_map_name() { + var self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/regexp_anchors"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; + + if ($truthy(self.sexp)) { + } else { + return nil + }; + return self.$source_map_name_for(self.sexp); + }, $Fragment_source_map_name$4.$$arity = 0); + + Opal.def(self, '$location', $Fragment_location$5 = function $$location() { + var self = this, loc = nil, $ret_or_2 = nil; - Opal.add_stubs(['$==', '$new']); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + return (function() { + if ($truthy(self.sexp['$!']())) {return nil} + else if (self.sexp.$type()['$==']("send")) { + loc = self.sexp.$loc(); + if ($truthy(loc['$respond_to?']("dot"))) { + if ($truthy(($ret_or_2 = loc.$dot()))) { + return $ret_or_2 + } else { + return loc.$selector() + } + } else if ($truthy(loc['$respond_to?']("operator"))) { + return loc.$operator() + } else { + return self.sexp + };} + else if (self.sexp.$type()['$==']("iter")) {return self.sexp.$loc().$begin()} + else {return self.sexp}})() + }, $Fragment_location$5.$$arity = 0); + + Opal.def(self, '$line', $Fragment_line$6 = function $$line() { + var $a, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return ($a = self.$location(), ($a === nil || $a == null) ? nil : $send($a, 'line', [])) + }, $Fragment_line$6.$$arity = 0); + + Opal.def(self, '$column', $Fragment_column$7 = function $$column() { + var $a, self = this; - - Opal.const_set($nesting[0], 'REGEXP_START', (function() {if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - return "^" - } else { - return nil - }; return nil; })()); - Opal.const_set($nesting[0], 'REGEXP_END', (function() {if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - return "$" - } else { - return nil - }; return nil; })()); - Opal.const_set($nesting[0], 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'INLINE_IDENTIFIER_REGEXP', Opal.const_get_relative($nesting, 'Regexp').$new("" + "[^" + (Opal.const_get_relative($nesting, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + (Opal.const_get_relative($nesting, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); - Opal.const_set($nesting[0], 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'CONST_NAME_REGEXP', Opal.const_get_relative($nesting, 'Regexp').$new("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "(::)?[A-Z][^" + (Opal.const_get_relative($nesting, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + (Opal.const_get_relative($nesting, 'REGEXP_END')))); + return ($a = self.$location(), ($a === nil || $a == null) ? nil : $send($a, 'column', [])) + }, $Fragment_column$7.$$arity = 0); + return (Opal.def(self, '$skip_source_map?', $Fragment_skip_source_map$ques$8 = function() { + var self = this; + + return self.sexp['$=='](false) + }, $Fragment_skip_source_map$ques$8.$$arity = 0), nil) && 'skip_source_map?'; + })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/js_reserved_words"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["opal/nodes/helpers"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$=~', '$!', '$valid_name?', '$class', '$to_sym', '$valid_ivar_name?', '$[]', '$to_s', '$updated', '$fix_var_name', '$fix_ivar_name']); + Opal.add_stubs(['$require', '$valid_name?', '$inspect', '$=~', '$to_s', '$+', '$indent', '$compiler', '$to_proc', '$parser_indent', '$push', '$fragment', '$current_indent', '$js_truthy_optimize', '$helper', '$expr', '$==', '$type', '$[]', '$children', '$uses_block!', '$scope', '$block_name', '$handlers', '$include?', '$truthy_optimize?', '$new_temp', '$wrap']); - self.$require("opal/rewriters/base"); self.$require("opal/regexp_anchors"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $JsReservedWords(){}; - var self = $JsReservedWords = $klass($base, $super, 'JsReservedWords', $JsReservedWords); + return (function($base, $parent_nesting) { + var self = $module($base, 'Helpers'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_JsReservedWords_valid_name$q_1, TMP_JsReservedWords_valid_ivar_name$q_2, TMP_JsReservedWords_fix_var_name_3, TMP_JsReservedWords_fix_ivar_name_4, TMP_JsReservedWords_on_lvar_5, TMP_JsReservedWords_on_lvasgn_6, TMP_JsReservedWords_on_ivar_7, TMP_JsReservedWords_on_ivasgn_8, TMP_JsReservedWords_on_restarg_9, TMP_JsReservedWords_on_argument_10; + var $nesting = [self].concat($parent_nesting), $Helpers_property$1, $Helpers_valid_name$ques$2, $Helpers_mid_to_jsid$3, $Helpers_indent$4, $Helpers_current_indent$5, $Helpers_line$6, $Helpers_empty_line$7, $Helpers_js_truthy$8, $Helpers_js_falsy$9, $Helpers_js_truthy_optimize$10, $Helpers_conditional_send$11; - Opal.const_set($nesting[0], 'ES51_RESERVED_WORD', new RegExp("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)" + (Opal.const_get_relative($nesting, 'REGEXP_END')))); - Opal.const_set($nesting[0], 'ES3_RESERVED_WORD_EXCLUSIVE', new RegExp("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)" + (Opal.const_get_relative($nesting, 'REGEXP_END')))); - Opal.const_set($nesting[0], 'PROTO_SPECIAL_PROPS', new RegExp("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)" + (Opal.const_get_relative($nesting, 'REGEXP_END')))); - Opal.const_set($nesting[0], 'PROTO_SPECIAL_METHODS', new RegExp("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "(?:hasOwnProperty|valueOf)" + (Opal.const_get_relative($nesting, 'REGEXP_END')))); - Opal.const_set($nesting[0], 'IMMUTABLE_PROPS', new RegExp("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "(?:NaN|Infinity|undefined)" + (Opal.const_get_relative($nesting, 'REGEXP_END')))); - Opal.const_set($nesting[0], 'BASIC_IDENTIFIER_RULES', new RegExp("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "[$_a-z][$_a-z\\d]*" + (Opal.const_get_relative($nesting, 'REGEXP_END')), 'i')); - Opal.const_set($nesting[0], 'RESERVED_FUNCTION_NAMES', new RegExp("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "(?:Array)" + (Opal.const_get_relative($nesting, 'REGEXP_END')))); - Opal.defs(self, '$valid_name?', TMP_JsReservedWords_valid_name$q_1 = function(name) { - var $a, $b, $c, self = this; - - return ($truthy($a = Opal.const_get_relative($nesting, 'BASIC_IDENTIFIER_RULES')['$=~'](name)) ? ($truthy($b = ($truthy($c = Opal.const_get_relative($nesting, 'ES51_RESERVED_WORD')['$=~'](name)) ? $c : Opal.const_get_relative($nesting, 'ES3_RESERVED_WORD_EXCLUSIVE')['$=~'](name))) ? $b : Opal.const_get_relative($nesting, 'IMMUTABLE_PROPS')['$=~'](name))['$!']() : $a) - }, TMP_JsReservedWords_valid_name$q_1.$$arity = 1); - Opal.defs(self, '$valid_ivar_name?', TMP_JsReservedWords_valid_ivar_name$q_2 = function(name) { - var $a, self = this; - - return ($truthy($a = Opal.const_get_relative($nesting, 'PROTO_SPECIAL_PROPS')['$=~'](name)) ? $a : Opal.const_get_relative($nesting, 'PROTO_SPECIAL_METHODS')['$=~'](name))['$!']() - }, TMP_JsReservedWords_valid_ivar_name$q_2.$$arity = 1); - Opal.defn(self, '$fix_var_name', TMP_JsReservedWords_fix_var_name_3 = function $$fix_var_name(name) { + Opal.def(self, '$property', $Helpers_property$1 = function $$property(name) { var self = this; - if ($truthy(self.$class()['$valid_name?'](name))) { - return name - } else { - return (("" + (name)) + "$").$to_sym() + if ($truthy(self['$valid_name?'](name))) { + return "" + "." + (name) + } else { + return "" + "[" + (name.$inspect()) + "]" } - }, TMP_JsReservedWords_fix_var_name_3.$$arity = 1); + }, $Helpers_property$1.$$arity = 1); - Opal.defn(self, '$fix_ivar_name', TMP_JsReservedWords_fix_ivar_name_4 = function $$fix_ivar_name(name) { + Opal.def(self, '$valid_name?', $Helpers_valid_name$ques$2 = function(name) { var self = this; - if ($truthy(self.$class()['$valid_ivar_name?'](name.$to_s()['$[]']($range(1, -1, false))))) { - return name - } else { - return (("" + (name)) + "$").$to_sym() + return $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'JsReservedWords')['$valid_name?'](name) + }, $Helpers_valid_name$ques$2.$$arity = 1); + + Opal.def(self, '$mid_to_jsid', $Helpers_mid_to_jsid$3 = function $$mid_to_jsid(mid) { + var self = this; + + if ($truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[|`/['$=~'](mid.$to_s()))) { + return "" + "['$" + (mid) + "']" + } else { + return $rb_plus(".$", mid) } - }, TMP_JsReservedWords_fix_ivar_name_4.$$arity = 1); + }, $Helpers_mid_to_jsid$3.$$arity = 1); - Opal.defn(self, '$on_lvar', TMP_JsReservedWords_on_lvar_5 = function $$on_lvar(node) { - var $a, self = this, $iter = TMP_JsReservedWords_on_lvar_5.$$p, $yield = $iter || nil, name = nil, _ = nil; + Opal.def(self, '$indent', $Helpers_indent$4 = function $$indent() { + var $iter = $Helpers_indent$4.$$p, block = $iter || nil, self = this; - if ($iter) TMP_JsReservedWords_on_lvar_5.$$p = null; + if ($iter) $Helpers_indent$4.$$p = null; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - node = node.$updated(nil, [self.$fix_var_name(name)]); - return $send(self, Opal.find_super_dispatcher(self, 'on_lvar', TMP_JsReservedWords_on_lvar_5, false), [node], null); - }, TMP_JsReservedWords_on_lvar_5.$$arity = 1); + + if ($iter) $Helpers_indent$4.$$p = null;; + return $send(self.$compiler(), 'indent', [], block.$to_proc()); + }, $Helpers_indent$4.$$arity = 0); - Opal.defn(self, '$on_lvasgn', TMP_JsReservedWords_on_lvasgn_6 = function $$on_lvasgn(node) { - var $a, self = this, $iter = TMP_JsReservedWords_on_lvasgn_6.$$p, $yield = $iter || nil, name = nil, value = nil; + Opal.def(self, '$current_indent', $Helpers_current_indent$5 = function $$current_indent() { + var self = this; - if ($iter) TMP_JsReservedWords_on_lvasgn_6.$$p = null; - - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(value)) { - node = node.$updated(nil, [self.$fix_var_name(name), value]) - } else { - node = node.$updated(nil, [self.$fix_var_name(name)]) - }; - return $send(self, Opal.find_super_dispatcher(self, 'on_lvasgn', TMP_JsReservedWords_on_lvasgn_6, false), [node], null); - }, TMP_JsReservedWords_on_lvasgn_6.$$arity = 1); + return self.$compiler().$parser_indent() + }, $Helpers_current_indent$5.$$arity = 0); - Opal.defn(self, '$on_ivar', TMP_JsReservedWords_on_ivar_7 = function $$on_ivar(node) { - var $a, self = this, $iter = TMP_JsReservedWords_on_ivar_7.$$p, $yield = $iter || nil, name = nil, _ = nil; + Opal.def(self, '$line', $Helpers_line$6 = function $$line($a) { + var $post_args, strs, self = this; - if ($iter) TMP_JsReservedWords_on_ivar_7.$$p = null; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - node = node.$updated(nil, [self.$fix_ivar_name(name)]); - return $send(self, Opal.find_super_dispatcher(self, 'on_ivar', TMP_JsReservedWords_on_ivar_7, false), [node], null); - }, TMP_JsReservedWords_on_ivar_7.$$arity = 1); + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + strs = $post_args;; + self.$push(self.$fragment("" + "\n" + (self.$current_indent()), $hash2(["loc"], {"loc": false}))); + return $send(self, 'push', Opal.to_a(strs)); + }, $Helpers_line$6.$$arity = -1); - Opal.defn(self, '$on_ivasgn', TMP_JsReservedWords_on_ivasgn_8 = function $$on_ivasgn(node) { - var $a, self = this, $iter = TMP_JsReservedWords_on_ivasgn_8.$$p, $yield = $iter || nil, name = nil, value = nil; + Opal.def(self, '$empty_line', $Helpers_empty_line$7 = function $$empty_line() { + var self = this; - if ($iter) TMP_JsReservedWords_on_ivasgn_8.$$p = null; - - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(value)) { - node = node.$updated(nil, [self.$fix_ivar_name(name), value]) - } else { - node = node.$updated(nil, [self.$fix_ivar_name(name)]) - }; - return $send(self, Opal.find_super_dispatcher(self, 'on_ivasgn', TMP_JsReservedWords_on_ivasgn_8, false), [node], null); - }, TMP_JsReservedWords_on_ivasgn_8.$$arity = 1); + return self.$push(self.$fragment("\n", $hash2(["loc"], {"loc": false}))) + }, $Helpers_empty_line$7.$$arity = 0); - Opal.defn(self, '$on_restarg', TMP_JsReservedWords_on_restarg_9 = function $$on_restarg(node) { - var $a, self = this, name = nil, _ = nil; + Opal.def(self, '$js_truthy', $Helpers_js_truthy$8 = function $$js_truthy(sexp) { + var self = this, optimize = nil; - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(name)) { - node = node.$updated(nil, [self.$fix_var_name(name)], $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})}))}; - return node; - }, TMP_JsReservedWords_on_restarg_9.$$arity = 1); - return (Opal.defn(self, '$on_argument', TMP_JsReservedWords_on_argument_10 = function $$on_argument(node) { - var $a, self = this, $iter = TMP_JsReservedWords_on_argument_10.$$p, $yield = $iter || nil, name = nil, value = nil, fixed_name = nil, new_children = nil; + if ($truthy((optimize = self.$js_truthy_optimize(sexp)))) { + return optimize}; + self.$helper("truthy"); + return [self.$fragment("$truthy("), self.$expr(sexp), self.$fragment(")")]; + }, $Helpers_js_truthy$8.$$arity = 1); + + Opal.def(self, '$js_falsy', $Helpers_js_falsy$9 = function $$js_falsy(sexp) { + var self = this, mid = nil; - if ($iter) TMP_JsReservedWords_on_argument_10.$$p = null; - node = $send(self, Opal.find_super_dispatcher(self, 'on_argument', TMP_JsReservedWords_on_argument_10, false), [node], null); - $a = [].concat(Opal.to_a(node)), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - fixed_name = self.$fix_var_name(name); - new_children = (function() {if ($truthy(value)) { - return [fixed_name, value] + if (sexp.$type()['$==']("send")) { + + mid = sexp.$children()['$[]'](1); + if (mid['$==']("block_given?")) { + + self.$scope()['$uses_block!'](); + return "" + (self.$scope().$block_name()) + " === nil";};}; + self.$helper("falsy"); + return [self.$fragment("$falsy("), self.$expr(sexp), self.$fragment(")")]; + }, $Helpers_js_falsy$9.$$arity = 1); + + Opal.def(self, '$js_truthy_optimize', $Helpers_js_truthy_optimize$10 = function $$js_truthy_optimize(sexp) { + var self = this, mid = nil, receiver_handler_class = nil, $ret_or_1 = nil, receiver = nil, allow_optimization_on_type = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; + + if (sexp.$type()['$==']("send")) { + + mid = sexp.$children()['$[]'](1); + receiver_handler_class = (function() {if ($truthy(($ret_or_1 = (receiver = sexp.$children()['$[]'](0))))) { + return self.$compiler().$handlers()['$[]'](receiver.$type()) } else { - return [fixed_name] - }; return nil; })(); - return node.$updated(nil, new_children, $hash2(["meta"], {"meta": $hash2(["arg_name"], {"arg_name": name})})); - }, TMP_JsReservedWords_on_argument_10.$$arity = 1), nil) && 'on_argument'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + return $ret_or_1 + }; return nil; })(); + allow_optimization_on_type = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $$$($$($nesting, 'Compiler'), 'COMPARE')['$include?'](mid.$to_s())))) { + return receiver_handler_class + } else { + return $ret_or_3 + }; return nil; })()))) { + return receiver_handler_class['$truthy_optimize?']() + } else { + return $ret_or_2 + }; return nil; })(); + if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = allow_optimization_on_type))) { + return $ret_or_5 + } else { + return mid['$==']("block_given?") + }; return nil; })()))) { + return $ret_or_4 + } else { + return mid['$==']("==") + }; return nil; })())) { + return self.$expr(sexp) + } else { + return nil + }; + } else { + return nil + } + }, $Helpers_js_truthy_optimize$10.$$arity = 1); + return (Opal.def(self, '$conditional_send', $Helpers_conditional_send$11 = function $$conditional_send(recvr) { + var $iter = $Helpers_conditional_send$11.$$p, $yield = $iter || nil, self = this, receiver_temp = nil; + + if ($iter) $Helpers_conditional_send$11.$$p = null; + + receiver_temp = self.$scope().$new_temp(); + self.$push("" + (receiver_temp) + " = ", recvr); + self.$push("" + ", (" + (receiver_temp) + " === nil || " + (receiver_temp) + " == null) ? nil : "); + Opal.yield1($yield, receiver_temp); + return self.$wrap("(", ")"); + }, $Helpers_conditional_send$11.$$arity = 1), nil) && 'conditional_send'; + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/block_to_iter"] = function(Opal) { +Opal.modules["opal/nodes/base"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; - Opal.add_stubs(['$require', '$s', '$updated', '$+', '$children']); + Opal.add_stubs(['$require', '$include', '$each', '$[]=', '$handlers', '$-', '$each_with_index', '$define_method', '$[]', '$children', '$attr_reader', '$type', '$compile', '$raise', '$is_a?', '$fragment', '$<<', '$reverse_each', '$unshift', '$push', '$new', '$scope', '$error', '$top_scope', '$loc', '$==', '$process', '$expr', '$add_scope_local', '$to_sym', '$add_scope_ivar', '$add_scope_gvar', '$add_scope_temp', '$helper', '$with_temp', '$to_proc', '$in_while?', '$instance_variable_get', '$has_rescue_else?', '$in_ensure', '$in_ensure?', '$in_resbody', '$in_resbody?', '$in_rescue', '$!', '$class_scope?', '$sclass?', '$+', '$parent', '$class_variable_owner_nesting_level', '$comments', '$compiler', '$name', '$source_buffer', '$expression', '$start_with?', '$end_with?', '$line']); - self.$require("opal/rewriters/base"); + self.$require("opal/nodes/helpers"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Base'); + + var $nesting = [self].concat($parent_nesting), $Base_handlers$1, $Base_handle$2, $Base_children$4, $Base_truthy_optimize$ques$7, $Base_initialize$8, $Base_children$9, $Base_compile_to_fragments$10, $Base_compile$11, $Base_push$12, $Base_unshift$14, $Base_wrap$16, $Base_fragment$17, $Base_error$18, $Base_scope$19, $Base_top_scope$20, $Base_s$21, $Base_expr$ques$22, $Base_recv$ques$23, $Base_stmt$ques$24, $Base_process$25, $Base_expr$26, $Base_recv$27, $Base_stmt$28, $Base_expr_or_nil$29, $Base_add_local$30, $Base_add_ivar$31, $Base_add_gvar$32, $Base_add_temp$33, $Base_helper$34, $Base_with_temp$35, $Base_in_while$ques$36, $Base_while_loop$37, $Base_has_rescue_else$ques$38, $Base_in_ensure$39, $Base_in_ensure$ques$40, $Base_in_resbody$41, $Base_in_resbody$ques$42, $Base_in_rescue$43, $Base_class_variable_owner_nesting_level$44, $Base_class_variable_owner$45, $Base_comments$46, $Base_source_location$47; + + self.$$prototype.sexp = self.$$prototype.fragments = self.$$prototype.compiler = self.$$prototype.level = nil; + + self.$include($$($nesting, 'Helpers')); + Opal.defs(self, '$handlers', $Base_handlers$1 = function $$handlers() { + var self = this, $ret_or_1 = nil; + if (self.handlers == null) self.handlers = nil; + + return (self.handlers = (function() {if ($truthy(($ret_or_1 = self.handlers))) { + return $ret_or_1 + } else { + return $hash2([], {}) + }; return nil; })()) + }, $Base_handlers$1.$$arity = 0); + Opal.defs(self, '$handle', $Base_handle$2 = function $$handle($a) { + var $post_args, types, $$3, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + types = $post_args;; + return $send(types, 'each', [], ($$3 = function(type){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; + + + + if (type == null) { + type = nil; + }; + $writer = [type, self]; + $send($$($nesting, 'Base').$handlers(), '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + }, $Base_handle$2.$$arity = -1); + Opal.defs(self, '$children', $Base_children$4 = function $$children($a) { + var $post_args, names, $$5, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; + return $send(names, 'each_with_index', [], ($$5 = function(name, idx){var self = $$5.$$s == null ? this : $$5.$$s, $$6; + + + + if (name == null) { + name = nil; + }; + + if (idx == null) { + idx = nil; + }; + return $send(self, 'define_method', [name], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; + if (self.sexp == null) self.sexp = nil; + + return self.sexp.$children()['$[]'](idx)}, $$6.$$s = self, $$6.$$arity = 0, $$6));}, $$5.$$s = self, $$5.$$arity = 2, $$5)); + }, $Base_children$4.$$arity = -1); + Opal.defs(self, '$truthy_optimize?', $Base_truthy_optimize$ques$7 = function() { + var self = this; + + return false + }, $Base_truthy_optimize$ques$7.$$arity = 0); + self.$attr_reader("compiler", "type", "sexp"); + + Opal.def(self, '$initialize', $Base_initialize$8 = function $$initialize(sexp, level, compiler) { + var self = this; + + + self.sexp = sexp; + self.type = sexp.$type(); + self.level = level; + return (self.compiler = compiler); + }, $Base_initialize$8.$$arity = 3); + + Opal.def(self, '$children', $Base_children$9 = function $$children() { + var self = this; + + return self.sexp.$children() + }, $Base_children$9.$$arity = 0); + + Opal.def(self, '$compile_to_fragments', $Base_compile_to_fragments$10 = function $$compile_to_fragments() { + var $a, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + if ($truthy((($a = self['fragments'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { + return self.fragments}; + self.fragments = []; + self.$compile(); + return self.fragments; + }, $Base_compile_to_fragments$10.$$arity = 0); + + Opal.def(self, '$compile', $Base_compile$11 = function $$compile() { + var self = this; - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + return self.$raise("Not Implemented") + }, $Base_compile$11.$$arity = 0); + + Opal.def(self, '$push', $Base_push$12 = function $$push($a) { + var $post_args, strs, $$13, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + strs = $post_args;; + return $send(strs, 'each', [], ($$13 = function(str){var self = $$13.$$s == null ? this : $$13.$$s; + if (self.fragments == null) self.fragments = nil; - (function($base, $super, $parent_nesting) { - function $BlockToIter(){}; - var self = $BlockToIter = $klass($base, $super, 'BlockToIter', $BlockToIter); + + + if (str == null) { + str = nil; + }; + if ($truthy(str['$is_a?']($$($nesting, 'String')))) { + str = self.$fragment(str)}; + return self.fragments['$<<'](str);}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + }, $Base_push$12.$$arity = -1); + + Opal.def(self, '$unshift', $Base_unshift$14 = function $$unshift($a) { + var $post_args, strs, $$15, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BlockToIter_on_block_1; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + strs = $post_args;; + return $send(strs, 'reverse_each', [], ($$15 = function(str){var self = $$15.$$s == null ? this : $$15.$$s; + if (self.fragments == null) self.fragments = nil; - return (Opal.defn(self, '$on_block', TMP_BlockToIter_on_block_1 = function $$on_block(node) { - var $a, self = this, $iter = TMP_BlockToIter_on_block_1.$$p, $yield = $iter || nil, recvr = nil, args = nil, body = nil, iter_node = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + + + if (str == null) { + str = nil; + }; + if ($truthy(str['$is_a?']($$($nesting, 'String')))) { + str = self.$fragment(str)}; + return self.fragments.$unshift(str);}, $$15.$$s = self, $$15.$$arity = 1, $$15)); + }, $Base_unshift$14.$$arity = -1); + + Opal.def(self, '$wrap', $Base_wrap$16 = function $$wrap(pre, post) { + var self = this; - if ($iter) TMP_BlockToIter_on_block_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - $a = [].concat(Opal.to_a($send(self, Opal.find_super_dispatcher(self, 'on_block', TMP_BlockToIter_on_block_1, false), $zuper, $iter))), (recvr = ($a[0] == null ? nil : $a[0])), (args = ($a[1] == null ? nil : $a[1])), (body = ($a[2] == null ? nil : $a[2])), $a; - iter_node = self.$s("iter", args, body); - return recvr.$updated(nil, $rb_plus(recvr.$children(), [iter_node])); - }, TMP_BlockToIter_on_block_1.$$arity = 1), nil) && 'on_block' - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/dot_js_syntax"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + self.$unshift(pre); + return self.$push(post); + }, $Base_wrap$16.$$arity = 2); + + Opal.def(self, '$fragment', $Base_fragment$17 = function $$fragment(str, $kwargs) { + var loc, self = this, $ret_or_2 = nil; - Opal.add_stubs(['$require', '$==', '$type', '$===', '$!=', '$size', '$raise', '$first', '$to_js_attr_call', '$to_js_attr_assign_call', '$to_native_js_call', '$s']); - - self.$require("opal/rewriters/base"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + loc = $kwargs.$$smap["loc"]; + if (loc == null) { + loc = true + }; + return $$$($$($nesting, 'Opal'), 'Fragment').$new(str, self.$scope(), (function() {if ($truthy(($ret_or_2 = loc))) { + return self.sexp + } else { + return $ret_or_2 + }; return nil; })()); + }, $Base_fragment$17.$$arity = -2); + + Opal.def(self, '$error', $Base_error$18 = function $$error(msg) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.compiler.$error(msg) + }, $Base_error$18.$$arity = 1); + + Opal.def(self, '$scope', $Base_scope$19 = function $$scope() { + var self = this; - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + return self.compiler.$scope() + }, $Base_scope$19.$$arity = 0); + + Opal.def(self, '$top_scope', $Base_top_scope$20 = function $$top_scope() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.$scope().$top_scope() + }, $Base_top_scope$20.$$arity = 0); + + Opal.def(self, '$s', $Base_s$21 = function $$s(type, $a) { + var $post_args, children, self = this; - (function($base, $super, $parent_nesting) { - function $DotJsSyntax(){}; - var self = $DotJsSyntax = $klass($base, $super, 'DotJsSyntax', $DotJsSyntax); + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + children = $post_args;; + return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children, $hash2(["location"], {"location": self.sexp.$loc()})); + }, $Base_s$21.$$arity = -2); + + Opal.def(self, '$expr?', $Base_expr$ques$22 = function() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DotJsSyntax_on_send_1, TMP_DotJsSyntax_to_native_js_call_2, TMP_DotJsSyntax_to_js_attr_call_3, TMP_DotJsSyntax_to_js_attr_assign_call_4; + return self.level['$==']("expr") + }, $Base_expr$ques$22.$$arity = 0); + + Opal.def(self, '$recv?', $Base_recv$ques$23 = function() { + var self = this; + return self.level['$==']("recv") + }, $Base_recv$ques$23.$$arity = 0); + Opal.def(self, '$stmt?', $Base_stmt$ques$24 = function() { + var self = this; + + return self.level['$==']("stmt") + }, $Base_stmt$ques$24.$$arity = 0); - Opal.defn(self, '$on_send', TMP_DotJsSyntax_on_send_1 = function $$on_send(node) { - var $a, self = this, $iter = TMP_DotJsSyntax_on_send_1.$$p, $yield = $iter || nil, recv = nil, meth = nil, args = nil, recv_of_recv = nil, meth_of_recv = nil, _ = nil, $case = nil, property = nil, value = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$process', $Base_process$25 = function $$process(sexp, level) { + var self = this; - if ($iter) TMP_DotJsSyntax_on_send_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy(($truthy($a = recv) ? recv.$type()['$==']("send") : $a))) { - - $a = [].concat(Opal.to_a(recv)), (recv_of_recv = ($a[0] == null ? nil : $a[0])), (meth_of_recv = ($a[1] == null ? nil : $a[1])), (_ = ($a[2] == null ? nil : $a[2])), $a; - if (meth_of_recv['$==']("JS")) { - - $case = meth; - if ("[]"['$===']($case)) { - if ($truthy(args.$size()['$!='](1))) { - self.$raise(Opal.const_get_relative($nesting, 'SyntaxError'), ".JS[:property] syntax supports only one argument")}; - property = args.$first(); - node = self.$to_js_attr_call(recv_of_recv, property);} - else if ("[]="['$===']($case)) { - if ($truthy(args.$size()['$!='](2))) { - self.$raise(Opal.const_get_relative($nesting, 'SyntaxError'), ".JS[:property]= syntax supports only two arguments")}; - $a = [].concat(Opal.to_a(args)), (property = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $a; - node = self.$to_js_attr_assign_call(recv_of_recv, property, value);} - else {node = self.$to_native_js_call(recv_of_recv, meth, args)}; - return $send(self, Opal.find_super_dispatcher(self, 'on_send', TMP_DotJsSyntax_on_send_1, false), [node], null); - } else { - return $send(self, Opal.find_super_dispatcher(self, 'on_send', TMP_DotJsSyntax_on_send_1, false), $zuper, $iter) - }; - } else { - return $send(self, Opal.find_super_dispatcher(self, 'on_send', TMP_DotJsSyntax_on_send_1, false), $zuper, $iter) + + if (level == null) { + level = "expr"; }; - }, TMP_DotJsSyntax_on_send_1.$$arity = 1); + return self.compiler.$process(sexp, level); + }, $Base_process$25.$$arity = -2); - Opal.defn(self, '$to_native_js_call', TMP_DotJsSyntax_to_native_js_call_2 = function $$to_native_js_call(recv, meth, args) { + Opal.def(self, '$expr', $Base_expr$26 = function $$expr(sexp) { var self = this; - return $send(self, 's', ["jscall", recv, meth].concat(Opal.to_a(args))) - }, TMP_DotJsSyntax_to_native_js_call_2.$$arity = 3); + return self.compiler.$process(sexp, "expr") + }, $Base_expr$26.$$arity = 1); - Opal.defn(self, '$to_js_attr_call', TMP_DotJsSyntax_to_js_attr_call_3 = function $$to_js_attr_call(recv, property) { + Opal.def(self, '$recv', $Base_recv$27 = function $$recv(sexp) { var self = this; - return self.$s("jsattr", recv, property) - }, TMP_DotJsSyntax_to_js_attr_call_3.$$arity = 2); - return (Opal.defn(self, '$to_js_attr_assign_call', TMP_DotJsSyntax_to_js_attr_assign_call_4 = function $$to_js_attr_assign_call(recv, property, value) { + return self.compiler.$process(sexp, "recv") + }, $Base_recv$27.$$arity = 1); + + Opal.def(self, '$stmt', $Base_stmt$28 = function $$stmt(sexp) { var self = this; - return self.$s("jsattrasgn", recv, property, value) - }, TMP_DotJsSyntax_to_js_attr_assign_call_4.$$arity = 3), nil) && 'to_js_attr_assign_call'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/logical_operator_assignment"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; - - Opal.add_stubs(['$require', '$+', '$lambda', '$updated', '$s', '$[]', '$==', '$type', '$new_temp', '$call', '$fetch', '$raise', '$process', '$include?']); - - self.$require("opal/rewriters/base"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.compiler.$process(sexp, "stmt") + }, $Base_stmt$28.$$arity = 1); + + Opal.def(self, '$expr_or_nil', $Base_expr_or_nil$29 = function $$expr_or_nil(sexp) { + var self = this; - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + if ($truthy(sexp)) { + return self.$expr(sexp) + } else { + return "nil" + } + }, $Base_expr_or_nil$29.$$arity = 1); + + Opal.def(self, '$add_local', $Base_add_local$30 = function $$add_local(name) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.$scope().$add_scope_local(name.$to_sym()) + }, $Base_add_local$30.$$arity = 1); + + Opal.def(self, '$add_ivar', $Base_add_ivar$31 = function $$add_ivar(name) { + var self = this; - (function($base, $super, $parent_nesting) { - function $LogicalOperatorAssignment(){}; - var self = $LogicalOperatorAssignment = $klass($base, $super, 'LogicalOperatorAssignment', $LogicalOperatorAssignment); + return self.$scope().$add_scope_ivar(name) + }, $Base_add_ivar$31.$$arity = 1); + + Opal.def(self, '$add_gvar', $Base_add_gvar$32 = function $$add_gvar(name) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_LogicalOperatorAssignment_reset_tmp_counter$B_1, TMP_LogicalOperatorAssignment_new_temp_2, TMP_LogicalOperatorAssignment_3, TMP_LogicalOperatorAssignment_on_or_asgn_8, TMP_LogicalOperatorAssignment_on_and_asgn_10, TMP_LogicalOperatorAssignment_on_defined$q_11; + return self.$scope().$add_scope_gvar(name) + }, $Base_add_gvar$32.$$arity = 1); + + Opal.def(self, '$add_temp', $Base_add_temp$33 = function $$add_temp(temp) { + var self = this; + return self.$scope().$add_scope_temp(temp) + }, $Base_add_temp$33.$$arity = 1); - Opal.defs(self, '$reset_tmp_counter!', TMP_LogicalOperatorAssignment_reset_tmp_counter$B_1 = function() { + Opal.def(self, '$helper', $Base_helper$34 = function $$helper(name) { var self = this; - return (Opal.class_variable_set($LogicalOperatorAssignment, '@@counter', 0)) - }, TMP_LogicalOperatorAssignment_reset_tmp_counter$B_1.$$arity = 0); - Opal.defs(self, '$new_temp', TMP_LogicalOperatorAssignment_new_temp_2 = function $$new_temp() { - var $a, $b, self = this; + return self.compiler.$helper(name) + }, $Base_helper$34.$$arity = 1); + + Opal.def(self, '$with_temp', $Base_with_temp$35 = function $$with_temp() { + var $iter = $Base_with_temp$35.$$p, block = $iter || nil, self = this; + if ($iter) $Base_with_temp$35.$$p = null; - (Opal.class_variable_set($LogicalOperatorAssignment, '@@counter', ($truthy($a = (($b = $LogicalOperatorAssignment.$$cvars['@@counter']) == null ? nil : $b)) ? $a : 0))); - (Opal.class_variable_set($LogicalOperatorAssignment, '@@counter', $rb_plus((($a = $LogicalOperatorAssignment.$$cvars['@@counter']) == null ? nil : $a), 1))); - return "" + "$logical_op_recvr_tmp_" + ((($a = $LogicalOperatorAssignment.$$cvars['@@counter']) == null ? nil : $a)); - }, TMP_LogicalOperatorAssignment_new_temp_2.$$arity = 0); - Opal.const_set($nesting[0], 'GET_SET', $send(self, 'lambda', [], (TMP_LogicalOperatorAssignment_3 = function(get_type, set_type){var self = TMP_LogicalOperatorAssignment_3.$$s || this, TMP_4; -if (get_type == null) get_type = nil;if (set_type == null) set_type = nil; - return $send(self, 'lambda', [], (TMP_4 = function(lhs, rhs, root_type){var self = TMP_4.$$s || this, get_node = nil, condition_node = nil; -if (lhs == null) lhs = nil;if (rhs == null) rhs = nil;if (root_type == null) root_type = nil; - get_node = lhs.$updated(get_type); - condition_node = self.$s(root_type, get_node, rhs); - return lhs.$updated(set_type, [].concat(Opal.to_a(lhs)).concat([condition_node]));}, TMP_4.$$s = self, TMP_4.$$arity = 3, TMP_4))}, TMP_LogicalOperatorAssignment_3.$$s = self, TMP_LogicalOperatorAssignment_3.$$arity = 2, TMP_LogicalOperatorAssignment_3))); - Opal.const_set($nesting[0], 'LocalVariableHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("lvar", "lvasgn")); - Opal.const_set($nesting[0], 'InstanceVariableHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("ivar", "ivasgn")); - Opal.const_set($nesting[0], 'ConstantHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("const", "casgn")); - Opal.const_set($nesting[0], 'GlobalVariableHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("gvar", "gvasgn")); - Opal.const_set($nesting[0], 'ClassVariableHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("cvar", "cvasgn")); - (function($base, $super, $parent_nesting) { - function $SendHandler(){}; - var self = $SendHandler = $klass($base, $super, 'SendHandler', $SendHandler); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_SendHandler_call_5; + if ($iter) $Base_with_temp$35.$$p = null;; + return $send(self.compiler, 'with_temp', [], block.$to_proc()); + }, $Base_with_temp$35.$$arity = 0); + + Opal.def(self, '$in_while?', $Base_in_while$ques$36 = function() { + var self = this; - return Opal.defs(self, '$call', TMP_SendHandler_call_5 = function $$call(lhs, rhs, root_type) { - var $a, self = this, recvr = nil, reader_method = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_writer = nil, get_or_set = nil; + return self.compiler['$in_while?']() + }, $Base_in_while$ques$36.$$arity = 0); + + Opal.def(self, '$while_loop', $Base_while_loop$37 = function $$while_loop() { + var self = this; - - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy(($truthy($a = recvr) ? recvr.$type()['$==']("send") : $a))) { - - recvr_tmp = self.$new_temp(); - cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); - recvr = self.$s("js_tmp", recvr_tmp);}; - writer_method = "" + (reader_method) + "="; - call_reader = lhs.$updated("send", [recvr, reader_method].concat(Opal.to_a(args))); - call_writer = lhs.$updated("send", [recvr, writer_method].concat(Opal.to_a(args)).concat([rhs])); - get_or_set = self.$s(root_type, call_reader, call_writer); - if ($truthy(cache_recvr)) { - return self.$s("begin", cache_recvr, get_or_set) - } else { - return get_or_set - }; - }, TMP_SendHandler_call_5.$$arity = 3) - })($nesting[0], self, $nesting); - (function($base, $super, $parent_nesting) { - function $ConditionalSendHandler(){}; - var self = $ConditionalSendHandler = $klass($base, $super, 'ConditionalSendHandler', $ConditionalSendHandler); + return self.compiler.$instance_variable_get("@while_loop") + }, $Base_while_loop$37.$$arity = 0); + + Opal.def(self, '$has_rescue_else?', $Base_has_rescue_else$ques$38 = function() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ConditionalSendHandler_call_6; + return self.$scope()['$has_rescue_else?']() + }, $Base_has_rescue_else$ques$38.$$arity = 0); + + Opal.def(self, '$in_ensure', $Base_in_ensure$39 = function $$in_ensure() { + var $iter = $Base_in_ensure$39.$$p, block = $iter || nil, self = this; - return Opal.defs(self, '$call', TMP_ConditionalSendHandler_call_6 = function $$call(lhs, rhs, root_type) { - var $a, self = this, recvr = nil, meth = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, recvr_is_nil = nil, plain_send = nil, plain_or_asgn = nil; + if ($iter) $Base_in_ensure$39.$$p = null; + + + if ($iter) $Base_in_ensure$39.$$p = null;; + return $send(self.$scope(), 'in_ensure', [], block.$to_proc()); + }, $Base_in_ensure$39.$$arity = 0); + + Opal.def(self, '$in_ensure?', $Base_in_ensure$ques$40 = function() { + var self = this; - - root_type = "" + (root_type) + "_asgn"; - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - recvr_tmp = self.$new_temp(); - cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); - recvr = self.$s("js_tmp", recvr_tmp); - recvr_is_nil = self.$s("send", recvr, "nil?"); - plain_send = lhs.$updated("send", [recvr, meth].concat(Opal.to_a(args))); - plain_or_asgn = self.$s(root_type, plain_send, rhs); - return self.$s("begin", cache_recvr, self.$s("if", recvr_is_nil, self.$s("nil"), plain_or_asgn)); - }, TMP_ConditionalSendHandler_call_6.$$arity = 3) - })($nesting[0], self, $nesting); - Opal.const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": Opal.const_get_relative($nesting, 'LocalVariableHandler'), "ivasgn": Opal.const_get_relative($nesting, 'InstanceVariableHandler'), "casgn": Opal.const_get_relative($nesting, 'ConstantHandler'), "gvasgn": Opal.const_get_relative($nesting, 'GlobalVariableHandler'), "cvasgn": Opal.const_get_relative($nesting, 'ClassVariableHandler'), "send": Opal.const_get_relative($nesting, 'SendHandler'), "csend": Opal.const_get_relative($nesting, 'ConditionalSendHandler')})); + return self.$scope()['$in_ensure?']() + }, $Base_in_ensure$ques$40.$$arity = 0); - Opal.defn(self, '$on_or_asgn', TMP_LogicalOperatorAssignment_on_or_asgn_8 = function $$on_or_asgn(node) { - var $a, TMP_7, self = this, lhs = nil, rhs = nil, result = nil; + Opal.def(self, '$in_resbody', $Base_in_resbody$41 = function $$in_resbody() { + var $iter = $Base_in_resbody$41.$$p, block = $iter || nil, self = this; + if ($iter) $Base_in_resbody$41.$$p = null; - $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - result = $send(Opal.const_get_relative($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], (TMP_7 = function(){var self = TMP_7.$$s || this; + + if ($iter) $Base_in_resbody$41.$$p = null;; + return $send(self.$scope(), 'in_resbody', [], block.$to_proc()); + }, $Base_in_resbody$41.$$arity = 0); + + Opal.def(self, '$in_resbody?', $Base_in_resbody$ques$42 = function() { + var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'))}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7)).$call(lhs, rhs, "or"); - return self.$process(result); - }, TMP_LogicalOperatorAssignment_on_or_asgn_8.$$arity = 1); + return self.$scope()['$in_resbody?']() + }, $Base_in_resbody$ques$42.$$arity = 0); - Opal.defn(self, '$on_and_asgn', TMP_LogicalOperatorAssignment_on_and_asgn_10 = function $$on_and_asgn(node) { - var $a, TMP_9, self = this, lhs = nil, rhs = nil, result = nil; + Opal.def(self, '$in_rescue', $Base_in_rescue$43 = function $$in_rescue(node) { + var $iter = $Base_in_rescue$43.$$p, block = $iter || nil, self = this; + if ($iter) $Base_in_rescue$43.$$p = null; - $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (rhs = ($a[1] == null ? nil : $a[1])), $a; - result = $send(Opal.const_get_relative($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], (TMP_9 = function(){var self = TMP_9.$$s || this; - - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'))}, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)).$call(lhs, rhs, "and"); - return self.$process(result); - }, TMP_LogicalOperatorAssignment_on_and_asgn_10.$$arity = 1); - Opal.const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); - return (Opal.defn(self, '$on_defined?', TMP_LogicalOperatorAssignment_on_defined$q_11 = function(node) { - var $a, self = this, $iter = TMP_LogicalOperatorAssignment_on_defined$q_11.$$p, $yield = $iter || nil, inner = nil, _ = nil; + + if ($iter) $Base_in_rescue$43.$$p = null;; + return $send(self.$scope(), 'in_rescue', [node], block.$to_proc()); + }, $Base_in_rescue$43.$$arity = 1); + + Opal.def(self, '$class_variable_owner_nesting_level', $Base_class_variable_owner_nesting_level$44 = function $$class_variable_owner_nesting_level() { + var $a, self = this, cvar_scope = nil, nesting_level = nil, $ret_or_3 = nil; - if ($iter) TMP_LogicalOperatorAssignment_on_defined$q_11.$$p = null; - $a = [].concat(Opal.to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(["or_asgn", "and_asgn"]['$include?'](inner.$type()))) { - return Opal.const_get_relative($nesting, 'ASSIGNMENT_STRING_NODE') - } else { - return $send(self, Opal.find_super_dispatcher(self, 'on_defined?', TMP_LogicalOperatorAssignment_on_defined$q_11, false), [node], null) + cvar_scope = self.$scope(); + nesting_level = 0; + while ($truthy((function() {if ($truthy(($ret_or_3 = cvar_scope))) { + return cvar_scope['$class_scope?']()['$!']() + } else { + return $ret_or_3 + }; return nil; })())) { + + if ($truthy(cvar_scope['$sclass?']())) { + nesting_level = $rb_plus(nesting_level, 1)}; + cvar_scope = cvar_scope.$parent(); }; - }, TMP_LogicalOperatorAssignment_on_defined$q_11.$$arity = 1), nil) && 'on_defined?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + return nesting_level; + }, $Base_class_variable_owner_nesting_level$44.$$arity = 0); + + Opal.def(self, '$class_variable_owner', $Base_class_variable_owner$45 = function $$class_variable_owner() { + var self = this; + + if ($truthy(self.$scope())) { + return "" + "$nesting[" + (self.$class_variable_owner_nesting_level()) + "]" + } else { + return "Opal.Object" + } + }, $Base_class_variable_owner$45.$$arity = 0); + + Opal.def(self, '$comments', $Base_comments$46 = function $$comments() { + var self = this; + + return self.$compiler().$comments()['$[]'](self.sexp.$loc()) + }, $Base_comments$46.$$arity = 0); + return (Opal.def(self, '$source_location', $Base_source_location$47 = function $$source_location() { + var self = this, file = nil, line = nil; + + + file = self.sexp.$loc().$expression().$source_buffer().$name(); + if ($truthy(file['$start_with?']("corelib/"))) { + file = "" + ""}; + if ($truthy(file['$end_with?'](".js"))) { + file = "" + ""}; + line = self.sexp.$loc().$line(); + return "" + "['" + (file) + "', " + (line) + "]"; + }, $Base_source_location$47.$$arity = 0), nil) && 'source_location'; + })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/binary_operator_assignment"] = function(Opal) { +Opal.modules["opal/nodes/literal"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $lambda = Opal.lambda, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice; - Opal.add_stubs(['$require', '$+', '$lambda', '$updated', '$s', '$[]', '$==', '$type', '$new_temp', '$call', '$fetch', '$raise', '$process']); + Opal.add_stubs(['$require', '$handle', '$push', '$to_s', '$type', '$children', '$value', '$recv?', '$wrap', '$freeze', '$join', '$keys', '$gsub', '$even?', '$length', '$last_match', '$+', '$chop', '$[]', '$inspect', '$to_i', '$to_utf16', '$translate_escape_chars', '$valid_encoding?', '$helper', '$upcase', '$<=', '$call', '$-', '$>>', '$&', '$attr_accessor', '$extract_flags_and_value', '$select!', '$flags', '$=~', '$warning', '$compiler', '$==', '$compile_static_regexp', '$compile_dynamic_regexp', '$each_with_index', '$zero?', '$expr', '$any?', '$===', '$new', '$map', '$to_proc', '$flags=', '$empty?', '$s', '$single_line?', '$value=', '$include?', '$is_a?', '$updated', '$delete', '$source', '$expression', '$loc', '$private', '$>', '$!=', '$!', '$regexp', '$each', '$compile_inline?', '$compile_inline', '$compile_range_initialize', '$start', '$finish', '$raise', '$expr_or_nil', '$numerator', '$denominator', '$real', '$imag']); - self.$require("opal/rewriters/base"); + self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); + (function($base, $super, $parent_nesting) { - function $BinaryOperatorAssignment(){}; - var self = $BinaryOperatorAssignment = $klass($base, $super, 'BinaryOperatorAssignment', $BinaryOperatorAssignment); + var self = $klass($base, $super, 'ValueNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BinaryOperatorAssignment_reset_tmp_counter$B_1, TMP_BinaryOperatorAssignment_new_temp_2, TMP_BinaryOperatorAssignment_3, TMP_BinaryOperatorAssignment_on_op_asgn_8, TMP_BinaryOperatorAssignment_on_defined$q_9; + var $nesting = [self].concat($parent_nesting), $ValueNode_compile$1, $ValueNode_truthy_optimize$ques$2; - Opal.defs(self, '$reset_tmp_counter!', TMP_BinaryOperatorAssignment_reset_tmp_counter$B_1 = function() { + self.$handle("true", "false", "self", "nil"); + + Opal.def(self, '$compile', $ValueNode_compile$1 = function $$compile() { var self = this; - return (Opal.class_variable_set($BinaryOperatorAssignment, '@@counter', 0)) - }, TMP_BinaryOperatorAssignment_reset_tmp_counter$B_1.$$arity = 0); - Opal.defs(self, '$new_temp', TMP_BinaryOperatorAssignment_new_temp_2 = function $$new_temp() { - var $a, $b, self = this; + return self.$push(self.$type().$to_s()) + }, $ValueNode_compile$1.$$arity = 0); + return (Opal.defs(self, '$truthy_optimize?', $ValueNode_truthy_optimize$ques$2 = function() { + var self = this; - - (Opal.class_variable_set($BinaryOperatorAssignment, '@@counter', ($truthy($a = (($b = $BinaryOperatorAssignment.$$cvars['@@counter']) == null ? nil : $b)) ? $a : 0))); - (Opal.class_variable_set($BinaryOperatorAssignment, '@@counter', $rb_plus((($a = $BinaryOperatorAssignment.$$cvars['@@counter']) == null ? nil : $a), 1))); - return "" + "$binary_op_recvr_tmp_" + ((($a = $BinaryOperatorAssignment.$$cvars['@@counter']) == null ? nil : $a)); - }, TMP_BinaryOperatorAssignment_new_temp_2.$$arity = 0); - Opal.const_set($nesting[0], 'GET_SET', $send(self, 'lambda', [], (TMP_BinaryOperatorAssignment_3 = function(get_type, set_type){var self = TMP_BinaryOperatorAssignment_3.$$s || this, TMP_4; -if (get_type == null) get_type = nil;if (set_type == null) set_type = nil; - return $send(self, 'lambda', [], (TMP_4 = function(lhs, op, rhs){var self = TMP_4.$$s || this, get_node = nil, set_node = nil; -if (lhs == null) lhs = nil;if (op == null) op = nil;if (rhs == null) rhs = nil; - - get_node = lhs.$updated(get_type); - set_node = self.$s("send", get_node, op, rhs); - return lhs.$updated(set_type, [].concat(Opal.to_a(lhs)).concat([set_node]));}, TMP_4.$$s = self, TMP_4.$$arity = 3, TMP_4))}, TMP_BinaryOperatorAssignment_3.$$s = self, TMP_BinaryOperatorAssignment_3.$$arity = 2, TMP_BinaryOperatorAssignment_3))); - Opal.const_set($nesting[0], 'LocalVariableHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("lvar", "lvasgn")); - Opal.const_set($nesting[0], 'InstanceVariableHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("ivar", "ivasgn")); - Opal.const_set($nesting[0], 'ConstantHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("const", "casgn")); - Opal.const_set($nesting[0], 'GlobalVariableHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("gvar", "gvasgn")); - Opal.const_set($nesting[0], 'ClassVariableHandler', Opal.const_get_relative($nesting, 'GET_SET')['$[]']("cvar", "cvasgn")); - (function($base, $super, $parent_nesting) { - function $SendHandler(){}; - var self = $SendHandler = $klass($base, $super, 'SendHandler', $SendHandler); + return true + }, $ValueNode_truthy_optimize$ques$2.$$arity = 0), nil) && 'truthy_optimize?'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'NumericNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_SendHandler_call_5; + var $nesting = [self].concat($parent_nesting), $NumericNode_compile$3, $NumericNode_truthy_optimize$ques$4; - return Opal.defs(self, '$call', TMP_SendHandler_call_5 = function $$call(lhs, op, rhs) { - var $a, self = this, recvr = nil, reader_method = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, writer_method = nil, call_reader = nil, call_op = nil, call_writer = nil; + + self.$handle("int", "float"); + self.$children("value"); + + Opal.def(self, '$compile', $NumericNode_compile$3 = function $$compile() { + var self = this; - - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (reader_method = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - if ($truthy(($truthy($a = recvr) ? recvr.$type()['$==']("send") : $a))) { - - recvr_tmp = self.$new_temp(); - cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); - recvr = self.$s("js_tmp", recvr_tmp);}; - writer_method = "" + (reader_method) + "="; - call_reader = lhs.$updated("send", [recvr, reader_method].concat(Opal.to_a(args))); - call_op = self.$s("send", call_reader, op, rhs); - call_writer = lhs.$updated("send", [recvr, writer_method].concat(Opal.to_a(args)).concat([call_op])); - if ($truthy(cache_recvr)) { - return self.$s("begin", cache_recvr, call_writer) - } else { - return call_writer - }; - }, TMP_SendHandler_call_5.$$arity = 3) - })($nesting[0], self, $nesting); - (function($base, $super, $parent_nesting) { - function $ConditionalSendHandler(){}; - var self = $ConditionalSendHandler = $klass($base, $super, 'ConditionalSendHandler', $ConditionalSendHandler); + + self.$push(self.$value().$to_s()); + if ($truthy(self['$recv?']())) { + return self.$wrap("(", ")") + } else { + return nil + }; + }, $NumericNode_compile$3.$$arity = 0); + return (Opal.defs(self, '$truthy_optimize?', $NumericNode_truthy_optimize$ques$4 = function() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ConditionalSendHandler_call_6; + return true + }, $NumericNode_truthy_optimize$ques$4.$$arity = 0), nil) && 'truthy_optimize?'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'StringNode'); - return Opal.defs(self, '$call', TMP_ConditionalSendHandler_call_6 = function $$call(lhs, op, rhs) { - var $a, self = this, recvr = nil, meth = nil, args = nil, recvr_tmp = nil, cache_recvr = nil, recvr_is_nil = nil, plain_send = nil, plain_op_asgn = nil; + var $nesting = [self].concat($parent_nesting), $StringNode_translate_escape_chars$5, $StringNode_compile$7, $StringNode_to_utf16$9; - - $a = [].concat(Opal.to_a(lhs)), (recvr = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; - recvr_tmp = self.$new_temp(); - cache_recvr = self.$s("lvasgn", recvr_tmp, recvr); - recvr = self.$s("js_tmp", recvr_tmp); - recvr_is_nil = self.$s("send", recvr, "nil?"); - plain_send = lhs.$updated("send", [recvr, meth].concat(Opal.to_a(args))); - plain_op_asgn = self.$s("op_asgn", plain_send, op, rhs); - return self.$s("begin", cache_recvr, self.$s("if", recvr_is_nil, self.$s("nil"), plain_op_asgn)); - }, TMP_ConditionalSendHandler_call_6.$$arity = 3) - })($nesting[0], self, $nesting); - Opal.const_set($nesting[0], 'HANDLERS', $hash2(["lvasgn", "ivasgn", "casgn", "gvasgn", "cvasgn", "send", "csend"], {"lvasgn": Opal.const_get_relative($nesting, 'LocalVariableHandler'), "ivasgn": Opal.const_get_relative($nesting, 'InstanceVariableHandler'), "casgn": Opal.const_get_relative($nesting, 'ConstantHandler'), "gvasgn": Opal.const_get_relative($nesting, 'GlobalVariableHandler'), "cvasgn": Opal.const_get_relative($nesting, 'ClassVariableHandler'), "send": Opal.const_get_relative($nesting, 'SendHandler'), "csend": Opal.const_get_relative($nesting, 'ConditionalSendHandler')})); - Opal.defn(self, '$on_op_asgn', TMP_BinaryOperatorAssignment_on_op_asgn_8 = function $$on_op_asgn(node) { - var $a, TMP_7, self = this, lhs = nil, op = nil, rhs = nil, result = nil; - - - $a = [].concat(Opal.to_a(node)), (lhs = ($a[0] == null ? nil : $a[0])), (op = ($a[1] == null ? nil : $a[1])), (rhs = ($a[2] == null ? nil : $a[2])), $a; - result = $send(Opal.const_get_relative($nesting, 'HANDLERS'), 'fetch', [lhs.$type()], (TMP_7 = function(){var self = TMP_7.$$s || this; + self.$handle("str"); + self.$children("value"); + Opal.const_set($nesting[0], 'ESCAPE_CHARS', $hash2(["a", "e"], {"a": "\\u0007", "e": "\\u001b"}).$freeze()); + Opal.const_set($nesting[0], 'ESCAPE_REGEX', Opal.regexp(["(\\\\+)([", $$($nesting, 'ESCAPE_CHARS').$keys().$join(""), "])"]).$freeze()); + + Opal.def(self, '$translate_escape_chars', $StringNode_translate_escape_chars$5 = function $$translate_escape_chars(inspect_string) { + var $$6, self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'))}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7)).$call(lhs, op, rhs); - return self.$process(result); - }, TMP_BinaryOperatorAssignment_on_op_asgn_8.$$arity = 1); - Opal.const_set($nesting[0], 'ASSIGNMENT_STRING_NODE', self.$s("str", "assignment")); - return (Opal.defn(self, '$on_defined?', TMP_BinaryOperatorAssignment_on_defined$q_9 = function(node) { - var $a, self = this, $iter = TMP_BinaryOperatorAssignment_on_defined$q_9.$$p, $yield = $iter || nil, inner = nil, _ = nil; + return $send(inspect_string, 'gsub', [$$($nesting, 'ESCAPE_REGEX')], ($$6 = function(original){var self = $$6.$$s == null ? this : $$6.$$s; - if ($iter) TMP_BinaryOperatorAssignment_on_defined$q_9.$$p = null; - - $a = [].concat(Opal.to_a(node)), (inner = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if (inner.$type()['$==']("op_asgn")) { - return Opal.const_get_relative($nesting, 'ASSIGNMENT_STRING_NODE') + + + if (original == null) { + original = nil; + }; + if ($truthy($$($nesting, 'Regexp').$last_match(1).$length()['$even?']())) { + return original } else { - return $send(self, Opal.find_super_dispatcher(self, 'on_defined?', TMP_BinaryOperatorAssignment_on_defined$q_9, false), [node], null) - }; - }, TMP_BinaryOperatorAssignment_on_defined$q_9.$$arity = 1), nil) && 'on_defined?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; + return $rb_plus($$($nesting, 'Regexp').$last_match(1).$chop(), $$($nesting, 'ESCAPE_CHARS')['$[]']($$($nesting, 'Regexp').$last_match(2))) + };}, $$6.$$s = self, $$6.$$arity = 1, $$6)) + }, $StringNode_translate_escape_chars$5.$$arity = 1); + + Opal.def(self, '$compile', $StringNode_compile$7 = function $$compile() { + var $$8, self = this, string_value = nil, sanitized_value = nil; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + + string_value = self.$value(); + sanitized_value = $send(string_value.$inspect(), 'gsub', [/\\u\{([0-9a-f]+)\}/], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s, code_point = nil; - Opal.add_stubs(['$require', '$new', '$include?', '$type', '$<<', '$==', '$process_regular_node', '$updated', '$inspect', '$warn']); - - self.$require("opal/rewriters/base"); - self.$require("set"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + + code_point = $$($nesting, 'Regexp').$last_match(1).$to_i(16); + return self.$to_utf16(code_point);}, $$8.$$s = self, $$8.$$arity = 0, $$8)); + self.$push(self.$translate_escape_chars(sanitized_value)); + nil; + if ($truthy(self.$value()['$valid_encoding?']())) { + return nil + } else { + + self.$helper("binary"); + return self.$wrap("$binary(", ")"); + }; + }, $StringNode_compile$7.$$arity = 0); + return (Opal.def(self, '$to_utf16', $StringNode_to_utf16$9 = function $$to_utf16(code_point) { + var $$10, self = this, ten_bits = nil, u = nil, lead_surrogate = nil, tail_surrogate = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + ten_bits = 1023; + u = $lambda(($$10 = function(code_unit){var self = $$10.$$s == null ? this : $$10.$$s; - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + + + if (code_unit == null) { + code_unit = nil; + }; + return $rb_plus("\\u", code_unit.$to_s(16).$upcase());}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + if ($truthy($rb_le(code_point, 65535))) { + return u.$call(code_point)}; + code_point = $rb_minus(code_point, 65536); + lead_surrogate = $rb_plus(55296, code_point['$>>'](10)); + tail_surrogate = $rb_plus(56320, code_point['$&'](ten_bits)); + return $rb_plus(u.$call(lead_surrogate), u.$call(tail_surrogate)); + }, $StringNode_to_utf16$9.$$arity = 1), nil) && 'to_utf16'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SymbolNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $SymbolNode_compile$11; - (function($base, $parent_nesting) { - var $Hashes, self = $Hashes = $module($base, 'Hashes'); + + self.$handle("sym"); + self.$children("value"); + return (Opal.def(self, '$compile', $SymbolNode_compile$11 = function $$compile() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.$push(self.$value().$to_s().$inspect()) + }, $SymbolNode_compile$11.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RegexpNode'); - (function($base, $super, $parent_nesting) { - function $KeyDuplicatesRewriter(){}; - var self = $KeyDuplicatesRewriter = $klass($base, $super, 'KeyDuplicatesRewriter', $KeyDuplicatesRewriter); + var $nesting = [self].concat($parent_nesting), $RegexpNode_initialize$12, $RegexpNode_compile$13, $RegexpNode_compile_dynamic_regexp$15, $RegexpNode_compile_static_regexp$17, $RegexpNode_extract_flags_and_value$18, $RegexpNode_raw_value$20, $RegexpNode_single_line$ques$21; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_KeyDuplicatesRewriter_initialize_1, TMP_KeyDuplicatesRewriter_on_hash_2, TMP_KeyDuplicatesRewriter_on_pair_3, TMP_KeyDuplicatesRewriter_on_kwsplat_4; + self.$$prototype.sexp = nil; + + self.$handle("regexp"); + self.$attr_accessor("value", "flags"); + Opal.const_set($nesting[0], 'SUPPORTED_FLAGS', /[gimuy]/.$freeze()); + + Opal.def(self, '$initialize', $RegexpNode_initialize$12 = function $$initialize($a) { + var $post_args, $rest_arg, $iter = $RegexpNode_initialize$12.$$p, $yield = $iter || nil, self = this; - def.keys = nil; + if ($iter) $RegexpNode_initialize$12.$$p = null; - Opal.defn(self, '$initialize', TMP_KeyDuplicatesRewriter_initialize_1 = function $$initialize() { - var self = this; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $RegexpNode_initialize$12, false, true), 'initialize', Opal.to_a($rest_arg), $iter); + return self.$extract_flags_and_value(); + }, $RegexpNode_initialize$12.$$arity = -1); + + Opal.def(self, '$compile', $RegexpNode_compile$13 = function $$compile() { + var $$14, self = this; - return (self.keys = Opal.const_get_relative($nesting, 'UniqKeysSet').$new()) - }, TMP_KeyDuplicatesRewriter_initialize_1.$$arity = 0); - Opal.defn(self, '$on_hash', TMP_KeyDuplicatesRewriter_on_hash_2 = function $$on_hash(node) { - var $a, self = this, $iter = TMP_KeyDuplicatesRewriter_on_hash_2.$$p, $yield = $iter || nil, previous_keys = nil; + $send(self.$flags(), 'select!', [], ($$14 = function(flag){var self = $$14.$$s == null ? this : $$14.$$s; - if ($iter) TMP_KeyDuplicatesRewriter_on_hash_2.$$p = null; - return (function() { try { - $a = [self.keys, Opal.const_get_relative($nesting, 'UniqKeysSet').$new()], (previous_keys = $a[0]), (self.keys = $a[1]), $a; - return $send(self, Opal.find_super_dispatcher(self, 'on_hash', TMP_KeyDuplicatesRewriter_on_hash_2, false), [node], null); - } finally { - (self.keys = previous_keys) - }; })() - }, TMP_KeyDuplicatesRewriter_on_hash_2.$$arity = 1); + + if (flag == null) { + flag = nil; + }; + if ($truthy($$($nesting, 'SUPPORTED_FLAGS')['$=~'](flag))) { + return true + } else { + + self.$compiler().$warning("" + "Skipping the '" + (flag) + "' Regexp flag as it's not widely supported by JavaScript vendors."); + return false; + };}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + if (self.$value().$type()['$==']("str")) { + return self.$compile_static_regexp() + } else { + return self.$compile_dynamic_regexp() + }; + }, $RegexpNode_compile$13.$$arity = 0); + + Opal.def(self, '$compile_dynamic_regexp', $RegexpNode_compile_dynamic_regexp$15 = function $$compile_dynamic_regexp() { + var $$16, self = this; + - Opal.defn(self, '$on_pair', TMP_KeyDuplicatesRewriter_on_pair_3 = function $$on_pair(node) { - var $a, self = this, $iter = TMP_KeyDuplicatesRewriter_on_pair_3.$$p, $yield = $iter || nil, key = nil, _value = nil; + self.$push("Opal.regexp(["); + $send(self.$value().$children(), 'each_with_index', [], ($$16 = function(v, index){var self = $$16.$$s == null ? this : $$16.$$s; - if ($iter) TMP_KeyDuplicatesRewriter_on_pair_3.$$p = null; - $a = [].concat(Opal.to_a(node)), (key = ($a[0] == null ? nil : $a[0])), (_value = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(["str", "sym"]['$include?'](key.$type()))) { - self.keys['$<<'](key)}; - return $send(self, Opal.find_super_dispatcher(self, 'on_pair', TMP_KeyDuplicatesRewriter_on_pair_3, false), [node], null); - }, TMP_KeyDuplicatesRewriter_on_pair_3.$$arity = 1); + + if (v == null) { + v = nil; + }; + + if (index == null) { + index = nil; + }; + if ($truthy(index['$zero?']())) { + } else { + self.$push(", ") + }; + return self.$push(self.$expr(v));}, $$16.$$s = self, $$16.$$arity = 2, $$16)); + self.$push("]"); + if ($truthy(self.$flags()['$any?']())) { + self.$push("" + ", '" + (self.$flags().$join()) + "'")}; + return self.$push(")"); + }, $RegexpNode_compile_dynamic_regexp$15.$$arity = 0); + + Opal.def(self, '$compile_static_regexp', $RegexpNode_compile_static_regexp$17 = function $$compile_static_regexp() { + var self = this, value = nil, $case = nil; + - Opal.defn(self, '$on_kwsplat', TMP_KeyDuplicatesRewriter_on_kwsplat_4 = function $$on_kwsplat(node) { - var $a, self = this, hash = nil, _ = nil; + value = self.$value().$children()['$[]'](0); + return (function() {$case = value; + if (""['$===']($case)) {return self.$push("/(?:)/")} + else {return self.$push("" + ($$($nesting, 'Regexp').$new(value).$inspect()) + (self.$flags().$join()))}})(); + }, $RegexpNode_compile_static_regexp$17.$$arity = 0); + + Opal.def(self, '$extract_flags_and_value', $RegexpNode_extract_flags_and_value$18 = function $$extract_flags_and_value() { + var $a, $b, $$19, self = this, values = nil, flags_sexp = nil, $writer = nil, parts = nil; + + $a = [].concat(Opal.to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (values = $slice.call($a, 0, $b)), (flags_sexp = ($a[$b] == null ? nil : $a[$b])), $a; + + $writer = [$send(flags_sexp.$children(), 'map', [], "to_s".$to_proc())]; + $send(self, 'flags=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [(function() {if ($truthy(values['$empty?']())) { + return self.$s("str", "") + } else if ($truthy(self['$single_line?'](values))) { + return values['$[]'](0) + } else { + return $send(self, 's', ["dstr"].concat(Opal.to_a(values))) + }; return nil; })()]; + $send(self, 'value=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(self.$flags()['$include?']("x"))) { - $a = [].concat(Opal.to_a(node)), (hash = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if (hash.$type()['$==']("hash")) { - hash = self.$process_regular_node(hash)}; - return node.$updated(nil, [hash]); - }, TMP_KeyDuplicatesRewriter_on_kwsplat_4.$$arity = 1); - return (function($base, $super, $parent_nesting) { - function $UniqKeysSet(){}; - var self = $UniqKeysSet = $klass($base, $super, 'UniqKeysSet', $UniqKeysSet); + parts = $send(self.$value().$children(), 'map', [], ($$19 = function(part){var self = $$19.$$s == null ? this : $$19.$$s, $ret_or_1 = nil, trimmed_value = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_UniqKeysSet_initialize_5, TMP_UniqKeysSet_$lt$lt_6; - - def.set = nil; + + + if (part == null) { + part = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_1 = part['$is_a?']($$$($$$($$$('::', 'Opal'), 'AST'), 'Node'))))) { + return part.$type()['$==']("str") + } else { + return $ret_or_1 + }; return nil; })())) { + + trimmed_value = part.$children()['$[]'](0).$gsub(/^\s*\#.*/, "").$gsub(/\s/, ""); + return self.$s("str", trimmed_value); + } else { + return part + };}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + $writer = [self.$value().$updated(nil, parts)]; + $send(self, 'value=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.$flags().$delete("x");}; + if (self.$value().$type()['$==']("str")) { - Opal.defn(self, '$initialize', TMP_UniqKeysSet_initialize_5 = function $$initialize() { - var self = this; + $writer = [self.$s("str", self.$value().$children()['$[]'](0).$gsub("\\A", "^").$gsub("\\z", "$"))]; + $send(self, 'value=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } else { + return nil + }; + }, $RegexpNode_extract_flags_and_value$18.$$arity = 0); + + Opal.def(self, '$raw_value', $RegexpNode_raw_value$20 = function $$raw_value() { + var self = this, $writer = nil; - return (self.set = Opal.const_get_relative($nesting, 'Set').$new()) - }, TMP_UniqKeysSet_initialize_5.$$arity = 0); - return (Opal.defn(self, '$<<', TMP_UniqKeysSet_$lt$lt_6 = function(element) { - var $a, self = this, key = nil, _ = nil; + + $writer = [self.sexp.$loc().$expression().$source()]; + $send(self, 'value=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }, $RegexpNode_raw_value$20.$$arity = 0); + self.$private(); + return (Opal.def(self, '$single_line?', $RegexpNode_single_line$ques$21 = function(values) { + var self = this, value = nil, $ret_or_2 = nil; - if ($truthy(self.set['$include?'](element))) { - - $a = [].concat(Opal.to_a(element)), (key = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - key = (function() {if (element.$type()['$==']("str")) { - return key.$inspect() - } else { - return "" + ":" + (key) - }; return nil; })(); - return Opal.const_get_relative($nesting, 'Kernel').$warn("" + "warning: key " + (key) + " is duplicated and overwritten"); - } else { - return self.set['$<<'](element) - } - }, TMP_UniqKeysSet_$lt$lt_6.$$arity = 1), nil) && '<<'; - })($nesting[0], null, $nesting); - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Opal'), 'Rewriters'), 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; + + if ($truthy($rb_gt(values.$length(), 1))) { + return false}; + value = values['$[]'](0); + if ($truthy(($ret_or_2 = value.$type()['$!=']("str")))) { + return $ret_or_2 + } else { + return value.$children()['$[]'](0)['$include?']("\n")['$!']() + }; + }, $RegexpNode_single_line$ques$21.$$arity = 1), nil) && 'single_line?'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'MatchCurrentLineNode'); -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var $nesting = [self].concat($parent_nesting), $MatchCurrentLineNode_compile$22; - Opal.add_stubs(['$require', '$<<', '$list', '$delete', '$use', '$disabled?', '$class', '$each', '$new', '$process']); - - self.$require("opal/rewriters/opal_engine_check"); - self.$require("opal/rewriters/for_rewriter"); - self.$require("opal/rewriters/explicit_writer_return"); - self.$require("opal/rewriters/js_reserved_words"); - self.$require("opal/rewriters/block_to_iter"); - self.$require("opal/rewriters/dot_js_syntax"); - self.$require("opal/rewriters/logical_operator_assignment"); - self.$require("opal/rewriters/binary_operator_assignment"); - self.$require("opal/rewriters/hashes/key_duplicates_rewriter"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + + self.$handle("match_current_line"); + self.$children("regexp"); + return (Opal.def(self, '$compile', $MatchCurrentLineNode_compile$22 = function $$compile() { + var self = this, gvar_sexp = nil, send_node = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + gvar_sexp = self.$s("gvar", "$_"); + send_node = self.$s("send", gvar_sexp, "=~", self.$regexp()); + return self.$push(self.$expr(send_node)); + }, $MatchCurrentLineNode_compile$22.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DynamicStringNode'); - (function($base, $super, $parent_nesting) { - function $Rewriter(){}; - var self = $Rewriter = $klass($base, $super, 'Rewriter', $Rewriter); + var $nesting = [self].concat($parent_nesting), $DynamicStringNode_compile$23; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Rewriter_initialize_6, TMP_Rewriter_process_8; + + self.$handle("dstr"); + return (Opal.def(self, '$compile', $DynamicStringNode_compile$23 = function $$compile() { + var $$24, self = this; - def.sexp = nil; - - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_list_1, TMP_use_2, TMP_delete_3, TMP_disable_4, TMP_disabled$q_5; + + self.$push("\"\""); + return $send(self.$children(), 'each', [], ($$24 = function(part){var self = $$24.$$s == null ? this : $$24.$$s; - - - Opal.defn(self, '$list', TMP_list_1 = function $$list() { - var $a, self = this; - if (self.list == null) self.list = nil; + + + if (part == null) { + part = nil; + }; + self.$push(" + "); + if (part.$type()['$==']("str")) { + self.$push(self.$expr(part)) + } else { + self.$push("(", self.$expr(part), ")") + }; + if ($truthy(self['$recv?']())) { + return self.$wrap("(", ")") + } else { + return nil + };}, $$24.$$s = self, $$24.$$arity = 1, $$24)); + }, $DynamicStringNode_compile$23.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DynamicSymbolNode'); - return (self.list = ($truthy($a = self.list) ? $a : [])) - }, TMP_list_1.$$arity = 0); - - Opal.defn(self, '$use', TMP_use_2 = function $$use(rewriter) { - var self = this; + var $nesting = [self].concat($parent_nesting); - return self.$list()['$<<'](rewriter) - }, TMP_use_2.$$arity = 1); - - Opal.defn(self, '$delete', TMP_delete_3 = function(rewriter) { - var self = this; + return self.$handle("dsym") + })($nesting[0], $$($nesting, 'DynamicStringNode'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RangeNode'); - return self.$list().$delete(rewriter) - }, TMP_delete_3.$$arity = 1); + var $nesting = [self].concat($parent_nesting), $RangeNode_compile$25, $RangeNode_compile_inline$ques$26, $RangeNode_compile_inline$27, $RangeNode_compile_range_initialize$28; + + + self.$children("start", "finish"); + Opal.const_set($nesting[0], 'SIMPLE_CHILDREN_TYPES', ["int", "float", "str", "sym"].$freeze()); - Opal.defn(self, '$disable', TMP_disable_4 = function $$disable() { - var self = this, $iter = TMP_disable_4.$$p, $yield = $iter || nil; + Opal.def(self, '$compile', $RangeNode_compile$25 = function $$compile() { + var self = this; - if ($iter) TMP_disable_4.$$p = null; - return (function() { try { - - self.disabled = true; - return Opal.yieldX($yield, []);; - } finally { - (self.disabled = false) - }; })() - }, TMP_disable_4.$$arity = 0); - return (Opal.defn(self, '$disabled?', TMP_disabled$q_5 = function() { - var $a, self = this; - if (self.disabled == null) self.disabled = nil; + if ($truthy(self['$compile_inline?']())) { + + self.$helper("range"); + return self.$compile_inline(); + } else { + return self.$compile_range_initialize() + } + }, $RangeNode_compile$25.$$arity = 0); + + Opal.def(self, '$compile_inline?', $RangeNode_compile_inline$ques$26 = function() { + var self = this, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil; - if ($truthy((($a = self['disabled'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - return self.disabled + if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = self.$start()['$!']()))) { + return $ret_or_4 + } else { + + if ($truthy(($ret_or_5 = self.$start().$type()))) { + return $$($nesting, 'SIMPLE_CHILDREN_TYPES')['$include?'](self.$start().$type()) } else { - return nil + return $ret_or_5 + }; + }; return nil; })()))) { + + if ($truthy(($ret_or_6 = self.$finish()['$!']()))) { + return $ret_or_6 + } else { + + if ($truthy(($ret_or_7 = self.$finish().$type()))) { + return $$($nesting, 'SIMPLE_CHILDREN_TYPES')['$include?'](self.$finish().$type()) + } else { + return $ret_or_7 + }; + }; + } else { + return $ret_or_3 } - }, TMP_disabled$q_5.$$arity = 0), nil) && 'disabled?'; - })(Opal.get_singleton_class(self), $nesting); - self.$use(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriters'), 'OpalEngineCheck')); - self.$use(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriters'), 'ForRewriter')); - self.$use(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriters'), 'BlockToIter')); - self.$use(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriters'), 'DotJsSyntax')); - self.$use(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriters'), 'JsReservedWords')); - self.$use(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriters'), 'LogicalOperatorAssignment')); - self.$use(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriters'), 'BinaryOperatorAssignment')); - self.$use(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriters'), 'ExplicitWriterReturn')); - self.$use(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Rewriters'), 'Hashes'), 'KeyDuplicatesRewriter')); - - Opal.defn(self, '$initialize', TMP_Rewriter_initialize_6 = function $$initialize(sexp) { - var self = this; - - return (self.sexp = sexp) - }, TMP_Rewriter_initialize_6.$$arity = 1); - return (Opal.defn(self, '$process', TMP_Rewriter_process_8 = function $$process() { - var TMP_7, self = this; - - - if ($truthy(self.$class()['$disabled?']())) { - return self.sexp}; - $send(self.$class().$list(), 'each', [], (TMP_7 = function(rewriter_class){var self = TMP_7.$$s || this, rewriter = nil; - if (self.sexp == null) self.sexp = nil; -if (rewriter_class == null) rewriter_class = nil; + }, $RangeNode_compile_inline$ques$26.$$arity = 0); - rewriter = rewriter_class.$new(); - return (self.sexp = rewriter.$process(self.sexp));}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); - return self.sexp; - }, TMP_Rewriter_process_8.$$arity = 0), nil) && 'process'; - })($nesting[0], null, $nesting) - })($nesting[0], $nesting); -}; + Opal.def(self, '$compile_inline', $RangeNode_compile_inline$27 = function $$compile_inline() { + var self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/parser"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; + return self.$raise($$($nesting, 'NotImplementedError')) + }, $RangeNode_compile_inline$27.$$arity = 0); + return (Opal.def(self, '$compile_range_initialize', $RangeNode_compile_range_initialize$28 = function $$compile_range_initialize() { + var self = this; - Opal.add_stubs(['$require', '$attr_accessor', '$all_errors_are_fatal=', '$diagnostics', '$-', '$ignore_warnings=', '$==', '$lambda', '$consumer=', '$puts', '$render', '$diagnostics_consumer=', '$new', '$rewrite', '$process']); - - self.$require("opal/ast/builder"); - self.$require("opal/rewriter"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + return self.$raise($$($nesting, 'NotImplementedError')) + }, $RangeNode_compile_range_initialize$28.$$arity = 0), nil) && 'compile_range_initialize'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'InclusiveRangeNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $InclusiveRangeNode_compile_inline$29, $InclusiveRangeNode_compile_range_initialize$30; - - (function($base, $parent_nesting) { - var $Source, self = $Source = $module($base, 'Source'); + + self.$handle("irange"); + + Opal.def(self, '$compile_inline', $InclusiveRangeNode_compile_inline$29 = function $$compile_inline() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.$push("$range(", self.$expr_or_nil(self.$start()), ", ", self.$expr_or_nil(self.$finish()), ", false)") + }, $InclusiveRangeNode_compile_inline$29.$$arity = 0); + return (Opal.def(self, '$compile_range_initialize', $InclusiveRangeNode_compile_range_initialize$30 = function $$compile_range_initialize() { + var self = this; + return self.$push("Opal.Range.$new(", self.$expr_or_nil(self.$start()), ", ", self.$expr_or_nil(self.$finish()), ", false)") + }, $InclusiveRangeNode_compile_range_initialize$30.$$arity = 0), nil) && 'compile_range_initialize'; + })($nesting[0], $$($nesting, 'RangeNode'), $nesting); (function($base, $super, $parent_nesting) { - function $Buffer(){}; - var self = $Buffer = $klass($base, $super, 'Buffer', $Buffer); + var self = $klass($base, $super, 'ExclusiveRangeNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Buffer_recognize_encoding_1; + var $nesting = [self].concat($parent_nesting), $ExclusiveRangeNode_compile_inline$31, $ExclusiveRangeNode_compile_range_initialize$32; - return Opal.defs(self, '$recognize_encoding', TMP_Buffer_recognize_encoding_1 = function $$recognize_encoding(string) { - var $a, self = this, $iter = TMP_Buffer_recognize_encoding_1.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + + self.$handle("erange"); + + Opal.def(self, '$compile_inline', $ExclusiveRangeNode_compile_inline$31 = function $$compile_inline() { + var self = this; - if ($iter) TMP_Buffer_recognize_encoding_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return ($truthy($a = $send(self, Opal.find_super_dispatcher(self, 'recognize_encoding', TMP_Buffer_recognize_encoding_1, false, $Buffer), $zuper, $iter)) ? $a : Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8')) - }, TMP_Buffer_recognize_encoding_1.$$arity = 1) - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Parser'), 'Source'), 'Buffer'), $nesting) - })($nesting[0], $nesting); - (function($base, $super, $parent_nesting) { - function $Parser(){}; - var self = $Parser = $klass($base, $super, 'Parser', $Parser); + return self.$push("$range(", self.$expr_or_nil(self.$start()), ", ", self.$expr_or_nil(self.$finish()), ", true)") + }, $ExclusiveRangeNode_compile_inline$31.$$arity = 0); + return (Opal.def(self, '$compile_range_initialize', $ExclusiveRangeNode_compile_range_initialize$32 = function $$compile_range_initialize() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Parser_4, TMP_Parser_initialize_5, TMP_Parser_parse_6, TMP_Parser_rewrite_7, $writer = nil; + return self.$push("Opal.Range.$new(", self.$expr_or_nil(self.$start()), ",", self.$expr_or_nil(self.$finish()), ", true)") + }, $ExclusiveRangeNode_compile_range_initialize$32.$$arity = 0), nil) && 'compile_range_initialize'; + })($nesting[0], $$($nesting, 'RangeNode'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RationalNode'); - - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_default_parser_2; + var $nesting = [self].concat($parent_nesting), $RationalNode_compile$33; - self.$attr_accessor("diagnostics_consumer"); - return (Opal.defn(self, '$default_parser', TMP_default_parser_2 = function $$default_parser() { - var TMP_3, self = this, $iter = TMP_default_parser_2.$$p, $yield = $iter || nil, parser = nil, $writer = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + self.$handle("rational"); + self.$children("value"); + return (Opal.def(self, '$compile', $RationalNode_compile$33 = function $$compile() { + var self = this; - if ($iter) TMP_default_parser_2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - - parser = $send(self, Opal.find_super_dispatcher(self, 'default_parser', TMP_default_parser_2, false), $zuper, $iter); - - $writer = [true]; - $send(parser.$diagnostics(), 'all_errors_are_fatal=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - - $writer = [false]; - $send(parser.$diagnostics(), 'ignore_warnings=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - - $writer = [$send(self, 'lambda', [], (TMP_3 = function(diag){var self = TMP_3.$$s || this; -if (diag == null) diag = nil; - return nil}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3))]; - $send(parser.$diagnostics(), 'consumer=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)]; - } else { - nil - }; - return parser; - }, TMP_default_parser_2.$$arity = 0), nil) && 'default_parser'; - })(Opal.get_singleton_class(self), $nesting); - - $writer = [$send(self, 'lambda', [], (TMP_Parser_4 = function(diagnostic){var self = TMP_Parser_4.$$s || this; - if ($gvars.stderr == null) $gvars.stderr = nil; -if (diagnostic == null) diagnostic = nil; - return $gvars.stderr.$puts(diagnostic.$render())}, TMP_Parser_4.$$s = self, TMP_Parser_4.$$arity = 1, TMP_Parser_4))]; - $send(self, 'diagnostics_consumer=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - - Opal.defn(self, '$initialize', TMP_Parser_initialize_5 = function $$initialize($a_rest) { - var self = this, $iter = TMP_Parser_initialize_5.$$p, $yield = $iter || nil; + return self.$push("" + "Opal.Rational.$new(" + (self.$value().$numerator()) + ", " + (self.$value().$denominator()) + ")") + }, $RationalNode_compile$33.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ComplexNode'); - if ($iter) TMP_Parser_initialize_5.$$p = null; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Parser_initialize_5, false), [Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'AST'), 'Builder').$new()], null) - }, TMP_Parser_initialize_5.$$arity = -1); - - Opal.defn(self, '$parse', TMP_Parser_parse_6 = function $$parse(source_buffer) { - var self = this, $iter = TMP_Parser_parse_6.$$p, $yield = $iter || nil, parsed = nil, rewriten = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + var $nesting = [self].concat($parent_nesting), $ComplexNode_compile$34; - if ($iter) TMP_Parser_parse_6.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - parsed = $send(self, Opal.find_super_dispatcher(self, 'parse', TMP_Parser_parse_6, false), $zuper, $iter); - rewriten = self.$rewrite(parsed); - return rewriten; - }, TMP_Parser_parse_6.$$arity = 1); - return (Opal.defn(self, '$rewrite', TMP_Parser_rewrite_7 = function $$rewrite(node) { - var self = this; + self.$handle("complex"); + self.$children("value"); + return (Opal.def(self, '$compile', $ComplexNode_compile$34 = function $$compile() { + var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Rewriter').$new(node).$process() - }, TMP_Parser_rewrite_7.$$arity = 1), nil) && 'rewrite'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified('::', 'Parser'), 'Ruby23'), $nesting); + return self.$push("" + "Opal.Complex.$new(" + (self.$value().$real()) + ", " + (self.$value().$imag()) + ")") + }, $ComplexNode_compile$34.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/fragment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/nodes/variables"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$attr_reader', '$to_s', '$inspect', '$def?', '$find_parent_def', '$mid', '$line', '$column']); + Opal.add_stubs(['$require', '$handle', '$children', '$irb?', '$compiler', '$top?', '$scope', '$using_irb?', '$push', '$to_s', '$var_name', '$with_temp', '$property', '$wrap', '$add_local', '$expr', '$value', '$recv?', '$expr?', '$[]', '$name', '$add_ivar', '$helper', '$add_gvar', '$===', '$handle_global_match', '$handle_post_match', '$handle_pre_match', '$raise', '$index', '$stmt?', '$class_variable_owner', '$inspect']); + + self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var self = $module($base, 'Opal'); - (function($base, $super, $parent_nesting) { - function $Fragment(){}; - var self = $Fragment = $klass($base, $super, 'Fragment', $Fragment); + var $nesting = [self].concat($parent_nesting); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Fragment_initialize_1, TMP_Fragment_inspect_2, TMP_Fragment_source_map_name_3, TMP_Fragment_line_4, TMP_Fragment_column_5; + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - def.code = def.scope = def.sexp = nil; - - self.$attr_reader("code"); - - Opal.defn(self, '$initialize', TMP_Fragment_initialize_1 = function $$initialize(code, scope, sexp) { - var self = this; + var $nesting = [self].concat($parent_nesting); - if (sexp == null) { - sexp = nil; - } - - self.code = code.$to_s(); - self.sexp = sexp; - return (self.scope = scope); - }, TMP_Fragment_initialize_1.$$arity = -3); - Opal.defn(self, '$inspect', TMP_Fragment_inspect_2 = function $$inspect() { - var self = this; + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'LocalVariableNode'); - return "" + "f(" + (self.code.$inspect()) + ")" - }, TMP_Fragment_inspect_2.$$arity = 0); - - Opal.defn(self, '$source_map_name', TMP_Fragment_source_map_name_3 = function $$source_map_name() { - var $a, self = this, def_node = nil; + var $nesting = [self].concat($parent_nesting), $LocalVariableNode_using_irb$ques$1, $LocalVariableNode_compile$2; - if ($truthy(self.scope)) { - } else { - return nil - }; - def_node = (function() {if ($truthy(self.scope['$def?']())) { - return self.scope - } else { - return self.scope.$find_parent_def() - }; return nil; })(); - return ($truthy($a = def_node) ? def_node.$mid() : $a); - }, TMP_Fragment_source_map_name_3.$$arity = 0); - - Opal.defn(self, '$line', TMP_Fragment_line_4 = function $$line() { - var self = this; + self.$handle("lvar"); + self.$children("var_name"); + + Opal.def(self, '$using_irb?', $LocalVariableNode_using_irb$ques$1 = function() { + var self = this, $ret_or_1 = nil; - if ($truthy(self.sexp)) { - return self.sexp.$line() + if ($truthy(($ret_or_1 = self.$compiler()['$irb?']()))) { + return self.$scope()['$top?']() } else { - return nil - } - }, TMP_Fragment_line_4.$$arity = 0); - return (Opal.defn(self, '$column', TMP_Fragment_column_5 = function $$column() { - var self = this; + return $ret_or_1 + } + }, $LocalVariableNode_using_irb$ques$1.$$arity = 0); + return (Opal.def(self, '$compile', $LocalVariableNode_compile$2 = function $$compile() { + var $$3, self = this; - if ($truthy(self.sexp)) { - return self.sexp.$column() + + if ($truthy(self['$using_irb?']())) { } else { - return nil - } - }, TMP_Fragment_column_5.$$arity = 0), nil) && 'column'; - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/helpers"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; + return self.$push(self.$var_name().$to_s()) + }; + return $send(self, 'with_temp', [], ($$3 = function(tmp){var self = $$3.$$s == null ? this : $$3.$$s; - Opal.add_stubs(['$require', '$valid_name?', '$inspect', '$=~', '$to_s', '$+', '$indent', '$compiler', '$to_proc', '$parser_indent', '$push', '$current_indent', '$js_truthy_optimize', '$helper', '$fragment', '$expr', '$==', '$type', '$[]', '$children', '$uses_block!', '$scope', '$block_name', '$handlers', '$include?', '$truthy_optimize?', '$new_temp', '$wrap']); - - self.$require("opal/regexp_anchors"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + + + if (tmp == null) { + tmp = nil; + }; + self.$push(self.$property(self.$var_name().$to_s())); + return self.$wrap("" + "((" + (tmp) + " = Opal.irb_vars", "" + ") == null ? nil : " + (tmp) + ")");}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + }, $LocalVariableNode_compile$2.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'LocalAssignNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $LocalAssignNode_using_irb$ques$4, $LocalAssignNode_compile$5; - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + + self.$handle("lvasgn"); + self.$children("var_name", "value"); + + Opal.def(self, '$using_irb?', $LocalAssignNode_using_irb$ques$4 = function() { + var self = this, $ret_or_2 = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($truthy(($ret_or_2 = self.$compiler()['$irb?']()))) { + return self.$scope()['$top?']() + } else { + return $ret_or_2 + } + }, $LocalAssignNode_using_irb$ques$4.$$arity = 0); + return (Opal.def(self, '$compile', $LocalAssignNode_compile$5 = function $$compile() { + var self = this, $ret_or_3 = nil, $ret_or_4 = nil; - (function($base, $parent_nesting) { - var $Helpers, self = $Helpers = $module($base, 'Helpers'); + + if ($truthy(self['$using_irb?']())) { + self.$push("" + "Opal.irb_vars" + (self.$property(self.$var_name().$to_s())) + " = ") + } else { + + self.$add_local(self.$var_name().$to_s()); + self.$push("" + (self.$var_name()) + " = "); + }; + self.$push(self.$expr(self.$value())); + if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = self['$recv?']()))) { + return $ret_or_4 + } else { + return self['$expr?']() + }; return nil; })()))) { + return self.$value() + } else { + return $ret_or_3 + }; return nil; })())) { + return self.$wrap("(", ")") + } else { + return nil + }; + }, $LocalAssignNode_compile$5.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'LocalDeclareNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Helpers_property_1, TMP_Helpers_valid_name$q_2, TMP_Helpers_mid_to_jsid_3, TMP_Helpers_indent_4, TMP_Helpers_current_indent_5, TMP_Helpers_line_6, TMP_Helpers_empty_line_7, TMP_Helpers_js_truthy_8, TMP_Helpers_js_falsy_9, TMP_Helpers_js_truthy_optimize_10, TMP_Helpers_conditional_send_11; + var $nesting = [self].concat($parent_nesting), $LocalDeclareNode_compile$6; - - Opal.defn(self, '$property', TMP_Helpers_property_1 = function $$property(name) { + self.$handle("lvdeclare"); + self.$children("var_name"); + return (Opal.def(self, '$compile', $LocalDeclareNode_compile$6 = function $$compile() { var self = this; - if ($truthy(self['$valid_name?'](name))) { - return "" + "." + (name) - } else { - return "" + "[" + (name.$inspect()) + "]" - } - }, TMP_Helpers_property_1.$$arity = 1); - - Opal.defn(self, '$valid_name?', TMP_Helpers_valid_name$q_2 = function(name) { - var self = this; + + self.$add_local(self.$var_name().$to_s()); + return nil; + }, $LocalDeclareNode_compile$6.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'InstanceVariableNode'); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Rewriters'), 'JsReservedWords')['$valid_name?'](name) - }, TMP_Helpers_valid_name$q_2.$$arity = 1); - - Opal.defn(self, '$mid_to_jsid', TMP_Helpers_mid_to_jsid_3 = function $$mid_to_jsid(mid) { - var self = this; + var $nesting = [self].concat($parent_nesting), $InstanceVariableNode_var_name$7, $InstanceVariableNode_compile$8; - if ($truthy(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[/['$=~'](mid.$to_s()))) { - return "" + "['$" + (mid) + "']" - } else { - return $rb_plus(".$", mid) - } - }, TMP_Helpers_mid_to_jsid_3.$$arity = 1); - Opal.defn(self, '$indent', TMP_Helpers_indent_4 = function $$indent() { - var self = this, $iter = TMP_Helpers_indent_4.$$p, block = $iter || nil; - - if ($iter) TMP_Helpers_indent_4.$$p = null; - return $send(self.$compiler(), 'indent', [], block.$to_proc()) - }, TMP_Helpers_indent_4.$$arity = 0); + self.$handle("ivar"); + self.$children("name"); - Opal.defn(self, '$current_indent', TMP_Helpers_current_indent_5 = function $$current_indent() { + Opal.def(self, '$var_name', $InstanceVariableNode_var_name$7 = function $$var_name() { var self = this; - return self.$compiler().$parser_indent() - }, TMP_Helpers_current_indent_5.$$arity = 0); - - Opal.defn(self, '$line', TMP_Helpers_line_6 = function $$line($a_rest) { - var self = this, strs; + return self.$name().$to_s()['$[]']($range(1, -1, false)) + }, $InstanceVariableNode_var_name$7.$$arity = 0); + return (Opal.def(self, '$compile', $InstanceVariableNode_compile$8 = function $$compile() { + var self = this, name = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - strs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - strs[$arg_idx - 0] = arguments[$arg_idx]; - } - self.$push("" + "\n" + (self.$current_indent())); - return $send(self, 'push', Opal.to_a(strs)); - }, TMP_Helpers_line_6.$$arity = -1); + name = self.$property(self.$var_name()); + self.$add_ivar(name); + return self.$push("" + "self" + (name)); + }, $InstanceVariableNode_compile$8.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'InstanceAssignNode'); + + var $nesting = [self].concat($parent_nesting), $InstanceAssignNode_var_name$9, $InstanceAssignNode_compile$10; + - Opal.defn(self, '$empty_line', TMP_Helpers_empty_line_7 = function $$empty_line() { + self.$handle("ivasgn"); + self.$children("name", "value"); + + Opal.def(self, '$var_name', $InstanceAssignNode_var_name$9 = function $$var_name() { var self = this; - return self.$push("\n") - }, TMP_Helpers_empty_line_7.$$arity = 0); - - Opal.defn(self, '$js_truthy', TMP_Helpers_js_truthy_8 = function $$js_truthy(sexp) { - var self = this, optimize = nil; + return self.$name().$to_s()['$[]']($range(1, -1, false)) + }, $InstanceAssignNode_var_name$9.$$arity = 0); + return (Opal.def(self, '$compile', $InstanceAssignNode_compile$10 = function $$compile() { + var self = this, name = nil, $ret_or_5 = nil, $ret_or_6 = nil; - if ($truthy((optimize = self.$js_truthy_optimize(sexp)))) { - return optimize}; - self.$helper("truthy"); - return [self.$fragment("$truthy("), self.$expr(sexp), self.$fragment(")")]; - }, TMP_Helpers_js_truthy_8.$$arity = 1); + name = self.$property(self.$var_name()); + self.$push("" + "self" + (name) + " = "); + self.$push(self.$expr(self.$value())); + if ($truthy((function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self['$recv?']()))) { + return $ret_or_6 + } else { + return self['$expr?']() + }; return nil; })()))) { + return self.$value() + } else { + return $ret_or_5 + }; return nil; })())) { + return self.$wrap("(", ")") + } else { + return nil + }; + }, $InstanceAssignNode_compile$10.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'GlobalVariableNode'); + + var $nesting = [self].concat($parent_nesting), $GlobalVariableNode_var_name$11, $GlobalVariableNode_compile$12; + - Opal.defn(self, '$js_falsy', TMP_Helpers_js_falsy_9 = function $$js_falsy(sexp) { - var self = this, mid = nil; + self.$handle("gvar"); + self.$children("name"); + + Opal.def(self, '$var_name', $GlobalVariableNode_var_name$11 = function $$var_name() { + var self = this; + + return self.$name().$to_s()['$[]']($range(1, -1, false)) + }, $GlobalVariableNode_var_name$11.$$arity = 0); + return (Opal.def(self, '$compile', $GlobalVariableNode_compile$12 = function $$compile() { + var self = this, name = nil; - if (sexp.$type()['$==']("send")) { - - mid = sexp.$children()['$[]'](1); - if (mid['$==']("block_given?")) { - - self.$scope()['$uses_block!'](); - return "" + (self.$scope().$block_name()) + " === nil";};}; - self.$helper("falsy"); - return [self.$fragment("$falsy("), self.$expr(sexp), self.$fragment(")")]; - }, TMP_Helpers_js_falsy_9.$$arity = 1); - - Opal.defn(self, '$js_truthy_optimize', TMP_Helpers_js_truthy_optimize_10 = function $$js_truthy_optimize(sexp) { - var $a, $b, self = this, mid = nil, receiver_handler_class = nil, receiver = nil, allow_optimization_on_type = nil; + self.$helper("gvars"); + name = self.$property(self.$var_name()); + self.$add_gvar(name); + return self.$push("" + "$gvars" + (name)); + }, $GlobalVariableNode_compile$12.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'BackRefNode'); + + var $nesting = [self].concat($parent_nesting), $BackRefNode_compile$13, $BackRefNode_handle_global_match$14, $BackRefNode_handle_pre_match$16, $BackRefNode_handle_post_match$18; - if (sexp.$type()['$==']("send")) { - - mid = sexp.$children()['$[]'](1); - receiver_handler_class = ($truthy($a = (receiver = sexp.$children()['$[]'](0))) ? self.$compiler().$handlers()['$[]'](receiver.$type()) : $a); - allow_optimization_on_type = ($truthy($a = ($truthy($b = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Compiler'), 'COMPARE')['$include?'](mid.$to_s())) ? receiver_handler_class : $b)) ? receiver_handler_class['$truthy_optimize?']() : $a); - if ($truthy(($truthy($a = ($truthy($b = allow_optimization_on_type) ? $b : mid['$==']("block_given?"))) ? $a : mid['$==']("==")))) { - return self.$expr(sexp) - } else { - return nil - }; - } else { - return nil - } - }, TMP_Helpers_js_truthy_optimize_10.$$arity = 1); - Opal.defn(self, '$conditional_send', TMP_Helpers_conditional_send_11 = function $$conditional_send(recvr) { - var self = this, $iter = TMP_Helpers_conditional_send_11.$$p, $yield = $iter || nil, receiver_temp = nil; + self.$handle("back_ref"); + + Opal.def(self, '$compile', $BackRefNode_compile$13 = function $$compile() { + var $iter = $BackRefNode_compile$13.$$p, $yield = $iter || nil, self = this, $case = nil; - if ($iter) TMP_Helpers_conditional_send_11.$$p = null; + if ($iter) $BackRefNode_compile$13.$$p = null; - receiver_temp = self.$scope().$new_temp(); - self.$push("" + (receiver_temp) + " = ", recvr); - self.$push("" + ", (" + (receiver_temp) + " === nil || " + (receiver_temp) + " == null) ? nil : "); - Opal.yield1($yield, receiver_temp); - return self.$wrap("(", ")"); - }, TMP_Helpers_conditional_send_11.$$arity = 1); - })($nesting[0], $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; + self.$helper("gvars"); + return (function() {$case = self.$var_name(); + if ("&"['$===']($case)) {return self.$handle_global_match()} + else if ("'"['$===']($case)) {return self.$handle_post_match()} + else if ("`"['$===']($case)) {return self.$handle_pre_match()} + else if ("+"['$===']($case)) {return $send2(self, $find_super(self, 'compile', $BackRefNode_compile$13, false, true), 'compile', [], $iter)} + else {return self.$raise($$($nesting, 'NotImplementedError'))}})(); + }, $BackRefNode_compile$13.$$arity = 0); + + Opal.def(self, '$handle_global_match', $BackRefNode_handle_global_match$14 = function $$handle_global_match() { + var $$15, self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/base"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + return $send(self, 'with_temp', [], ($$15 = function(tmp){var self = $$15.$$s == null ? this : $$15.$$s; - Opal.add_stubs(['$require', '$include', '$each', '$[]=', '$handlers', '$-', '$each_with_index', '$define_method', '$[]', '$children', '$attr_reader', '$type', '$compile', '$raise', '$is_a?', '$fragment', '$<<', '$reverse', '$unshift', '$push', '$new', '$scope', '$error', '$s', '$==', '$process', '$expr', '$add_scope_local', '$to_sym', '$add_scope_ivar', '$add_scope_gvar', '$add_scope_temp', '$helper', '$with_temp', '$to_proc', '$in_while?', '$instance_variable_get', '$has_rescue_else?', '$in_ensure', '$in_ensure?', '$!', '$class_scope?', '$parent', '$closest_module_node', '$name', '$comments', '$compiler', '$loc']); - - self.$require("opal/nodes/helpers"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + + + if (tmp == null) { + tmp = nil; + }; + return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](0))");}, $$15.$$s = self, $$15.$$arity = 1, $$15)) + }, $BackRefNode_handle_global_match$14.$$arity = 0); + + Opal.def(self, '$handle_pre_match', $BackRefNode_handle_pre_match$16 = function $$handle_pre_match() { + var $$17, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return $send(self, 'with_temp', [], ($$17 = function(tmp){var self = $$17.$$s == null ? this : $$17.$$s; - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + + + if (tmp == null) { + tmp = nil; + }; + return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$pre_match())");}, $$17.$$s = self, $$17.$$arity = 1, $$17)) + }, $BackRefNode_handle_pre_match$16.$$arity = 0); + return (Opal.def(self, '$handle_post_match', $BackRefNode_handle_post_match$18 = function $$handle_post_match() { + var $$19, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return $send(self, 'with_temp', [], ($$19 = function(tmp){var self = $$19.$$s == null ? this : $$19.$$s; + + + if (tmp == null) { + tmp = nil; + }; + return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$post_match())");}, $$19.$$s = self, $$19.$$arity = 1, $$19)) + }, $BackRefNode_handle_post_match$18.$$arity = 0), nil) && 'handle_post_match'; + })($nesting[0], $$($nesting, 'GlobalVariableNode'), $nesting); (function($base, $super, $parent_nesting) { - function $Base(){}; - var self = $Base = $klass($base, $super, 'Base', $Base); + var self = $klass($base, $super, 'GlobalAssignNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Base_handlers_1, TMP_Base_handle_3, TMP_Base_children_6, TMP_Base_truthy_optimize$q_7, TMP_Base_initialize_8, TMP_Base_children_9, TMP_Base_compile_to_fragments_10, TMP_Base_compile_11, TMP_Base_push_13, TMP_Base_unshift_15, TMP_Base_wrap_16, TMP_Base_fragment_17, TMP_Base_error_18, TMP_Base_scope_19, TMP_Base_s_20, TMP_Base_expr$q_21, TMP_Base_recv$q_22, TMP_Base_stmt$q_23, TMP_Base_process_24, TMP_Base_expr_25, TMP_Base_recv_26, TMP_Base_stmt_27, TMP_Base_expr_or_nil_28, TMP_Base_add_local_29, TMP_Base_add_ivar_30, TMP_Base_add_gvar_31, TMP_Base_add_temp_32, TMP_Base_helper_33, TMP_Base_with_temp_34, TMP_Base_in_while$q_35, TMP_Base_while_loop_36, TMP_Base_has_rescue_else$q_37, TMP_Base_in_ensure_38, TMP_Base_in_ensure$q_39, TMP_Base_closest_module_node_40, TMP_Base_class_variable_owner_41, TMP_Base_comments_42; + var $nesting = [self].concat($parent_nesting), $GlobalAssignNode_var_name$20, $GlobalAssignNode_compile$21; - def.sexp = def.fragments = def.compiler = def.level = nil; - self.$include(Opal.const_get_relative($nesting, 'Helpers')); - Opal.defs(self, '$handlers', TMP_Base_handlers_1 = function $$handlers() { - var $a, self = this; - if (self.handlers == null) self.handlers = nil; + self.$handle("gvasgn"); + self.$children("name", "value"); + + Opal.def(self, '$var_name', $GlobalAssignNode_var_name$20 = function $$var_name() { + var self = this; - return (self.handlers = ($truthy($a = self.handlers) ? $a : $hash2([], {}))) - }, TMP_Base_handlers_1.$$arity = 0); - Opal.defs(self, '$handle', TMP_Base_handle_3 = function $$handle($a_rest) { - var TMP_2, self = this, types; + return self.$name().$to_s()['$[]']($range(1, -1, false)) + }, $GlobalAssignNode_var_name$20.$$arity = 0); + return (Opal.def(self, '$compile', $GlobalAssignNode_compile$21 = function $$compile() { + var self = this, name = nil, $ret_or_7 = nil, $ret_or_8 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - types = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - types[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(types, 'each', [], (TMP_2 = function(type){var self = TMP_2.$$s || this, $writer = nil; -if (type == null) type = nil; - $writer = [type, self]; - $send(Opal.const_get_relative($nesting, 'Base').$handlers(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)) - }, TMP_Base_handle_3.$$arity = -1); - Opal.defs(self, '$children', TMP_Base_children_6 = function $$children($a_rest) { - var TMP_4, self = this, names; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(names, 'each_with_index', [], (TMP_4 = function(name, idx){var self = TMP_4.$$s || this, TMP_5; -if (name == null) name = nil;if (idx == null) idx = nil; - return $send(self, 'define_method', [name], (TMP_5 = function(){var self = TMP_5.$$s || this; - if (self.sexp == null) self.sexp = nil; + self.$helper("gvars"); + name = self.$property(self.$var_name()); + self.$push("" + "$gvars" + (name) + " = "); + self.$push(self.$expr(self.$value())); + if ($truthy((function() {if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = self['$recv?']()))) { + return $ret_or_8 + } else { + return self['$expr?']() + }; return nil; })()))) { + return self.$value() + } else { + return $ret_or_7 + }; return nil; })())) { + return self.$wrap("(", ")") + } else { + return nil + }; + }, $GlobalAssignNode_compile$21.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'NthrefNode'); - return self.sexp.$children()['$[]'](idx)}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5))}, TMP_4.$$s = self, TMP_4.$$arity = 2, TMP_4)) - }, TMP_Base_children_6.$$arity = -1); - Opal.defs(self, '$truthy_optimize?', TMP_Base_truthy_optimize$q_7 = function() { - var self = this; + var $nesting = [self].concat($parent_nesting), $NthrefNode_compile$22; - return false - }, TMP_Base_truthy_optimize$q_7.$$arity = 0); - self.$attr_reader("compiler", "type"); - Opal.defn(self, '$initialize', TMP_Base_initialize_8 = function $$initialize(sexp, level, compiler) { - var self = this; + self.$handle("nth_ref"); + self.$children("index"); + return (Opal.def(self, '$compile', $NthrefNode_compile$22 = function $$compile() { + var $$23, self = this; - self.sexp = sexp; - self.type = sexp.$type(); - self.level = level; - return (self.compiler = compiler); - }, TMP_Base_initialize_8.$$arity = 3); - - Opal.defn(self, '$children', TMP_Base_children_9 = function $$children() { - var self = this; + self.$helper("gvars"); + return $send(self, 'with_temp', [], ($$23 = function(tmp){var self = $$23.$$s == null ? this : $$23.$$s; - return self.sexp.$children() - }, TMP_Base_children_9.$$arity = 0); - - Opal.defn(self, '$compile_to_fragments', TMP_Base_compile_to_fragments_10 = function $$compile_to_fragments() { - var $a, self = this; + + + if (tmp == null) { + tmp = nil; + }; + return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](" + (self.$index()) + "))");}, $$23.$$s = self, $$23.$$arity = 1, $$23)); + }, $NthrefNode_compile$22.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ClassVariableNode'); - - if ($truthy((($a = self['fragments'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - return self.fragments}; - self.fragments = []; - self.$compile(); - return self.fragments; - }, TMP_Base_compile_to_fragments_10.$$arity = 0); - - Opal.defn(self, '$compile', TMP_Base_compile_11 = function $$compile() { - var self = this; + var $nesting = [self].concat($parent_nesting), $ClassVariableNode_compile$24; - return self.$raise("Not Implemented") - }, TMP_Base_compile_11.$$arity = 0); - Opal.defn(self, '$push', TMP_Base_push_13 = function $$push($a_rest) { - var TMP_12, self = this, strs; + self.$handle("cvar"); + self.$children("name"); + return (Opal.def(self, '$compile', $ClassVariableNode_compile$24 = function $$compile() { + var self = this, tolerant = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - strs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - strs[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(strs, 'each', [], (TMP_12 = function(str){var self = TMP_12.$$s || this; - if (self.fragments == null) self.fragments = nil; -if (str == null) str = nil; - if ($truthy(str['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - str = self.$fragment(str)}; - return self.fragments['$<<'](str);}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)) - }, TMP_Base_push_13.$$arity = -1); - - Opal.defn(self, '$unshift', TMP_Base_unshift_15 = function $$unshift($a_rest) { - var TMP_14, self = this, strs; + self.$helper("class_variable_get"); + tolerant = false; + if ($truthy(self['$stmt?']())) { + tolerant = true}; + return self.$push("" + "$class_variable_get(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', " + (tolerant.$inspect()) + ")"); + }, $ClassVariableNode_compile$24.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ClassVarAssignNode'); + + var $nesting = [self].concat($parent_nesting), $ClassVarAssignNode_compile$25; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - strs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - strs[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(strs.$reverse(), 'each', [], (TMP_14 = function(str){var self = TMP_14.$$s || this; - if (self.fragments == null) self.fragments = nil; -if (str == null) str = nil; - - if ($truthy(str['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - str = self.$fragment(str)}; - return self.fragments.$unshift(str);}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)) - }, TMP_Base_unshift_15.$$arity = -1); - Opal.defn(self, '$wrap', TMP_Base_wrap_16 = function $$wrap(pre, post) { + self.$handle("cvasgn"); + self.$children("name", "value"); + return (Opal.def(self, '$compile', $ClassVarAssignNode_compile$25 = function $$compile() { var self = this; - self.$unshift(pre); - return self.$push(post); - }, TMP_Base_wrap_16.$$arity = 2); - - Opal.defn(self, '$fragment', TMP_Base_fragment_17 = function $$fragment(str) { - var self = this; + self.$helper("class_variable_set"); + return self.$push("" + "$class_variable_set(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")"); + }, $ClassVarAssignNode_compile$25.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Fragment').$new(str, self.$scope(), self.sexp) - }, TMP_Base_fragment_17.$$arity = 1); - - Opal.defn(self, '$error', TMP_Base_error_18 = function $$error(msg) { - var self = this; +Opal.modules["opal/nodes/constants"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; - return self.compiler.$error(msg) - }, TMP_Base_error_18.$$arity = 1); - - Opal.defn(self, '$scope', TMP_Base_scope_19 = function $$scope() { - var self = this; + Opal.add_stubs(['$require', '$handle', '$children', '$magical_data_const?', '$push', '$const_scope', '$recv', '$name', '$eval?', '$compiler', '$nil?', '$==', '$eof_content', '$base', '$expr', '$value']); + + self.$require("opal/nodes/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - return self.compiler.$scope() - }, TMP_Base_scope_19.$$arity = 0); - - Opal.defn(self, '$s', TMP_Base_s_20 = function $$s($a_rest) { - var self = this, args; + var $nesting = [self].concat($parent_nesting); - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.compiler, 's', Opal.to_a(args)) - }, TMP_Base_s_20.$$arity = -1); - - Opal.defn(self, '$expr?', TMP_Base_expr$q_21 = function() { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - return self.level['$==']("expr") - }, TMP_Base_expr$q_21.$$arity = 0); - - Opal.defn(self, '$recv?', TMP_Base_recv$q_22 = function() { - var self = this; + var $nesting = [self].concat($parent_nesting); - return self.level['$==']("recv") - }, TMP_Base_recv$q_22.$$arity = 0); - - Opal.defn(self, '$stmt?', TMP_Base_stmt$q_23 = function() { - var self = this; + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ConstNode'); - return self.level['$==']("stmt") - }, TMP_Base_stmt$q_23.$$arity = 0); + var $nesting = [self].concat($parent_nesting), $ConstNode_compile$1, $ConstNode_magical_data_const$ques$2; + + + self.$handle("const"); + self.$children("const_scope", "name"); - Opal.defn(self, '$process', TMP_Base_process_24 = function $$process(sexp, level) { + Opal.def(self, '$compile', $ConstNode_compile$1 = function $$compile() { var self = this; - if (level == null) { - level = "expr"; + if ($truthy(self['$magical_data_const?']())) { + return self.$push("$__END__") + } else if ($truthy(self.$const_scope())) { + return self.$push("$$$(", self.$recv(self.$const_scope()), "" + ", '" + (self.$name()) + "')") + } else if ($truthy(self.$compiler()['$eval?']())) { + return self.$push("" + "$$($nesting, '" + (self.$name()) + "')") + } else { + return self.$push("" + "$$($nesting, '" + (self.$name()) + "')") } - return self.compiler.$process(sexp, level) - }, TMP_Base_process_24.$$arity = -2); - - Opal.defn(self, '$expr', TMP_Base_expr_25 = function $$expr(sexp) { - var self = this; + }, $ConstNode_compile$1.$$arity = 0); + return (Opal.def(self, '$magical_data_const?', $ConstNode_magical_data_const$ques$2 = function() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; - return self.compiler.$process(sexp, "expr") - }, TMP_Base_expr_25.$$arity = 1); - - Opal.defn(self, '$recv', TMP_Base_recv_26 = function $$recv(sexp) { - var self = this; + if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.$const_scope()['$nil?']()))) { + return self.$name()['$==']("DATA") + } else { + return $ret_or_2 + }; return nil; })()))) { + return self.$compiler().$eof_content() + } else { + return $ret_or_1 + } + }, $ConstNode_magical_data_const$ques$2.$$arity = 0), nil) && 'magical_data_const?'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'CbaseNode'); + + var $nesting = [self].concat($parent_nesting), $CbaseNode_compile$3; - return self.compiler.$process(sexp, "recv") - }, TMP_Base_recv_26.$$arity = 1); - Opal.defn(self, '$stmt', TMP_Base_stmt_27 = function $$stmt(sexp) { + self.$handle("cbase"); + return (Opal.def(self, '$compile', $CbaseNode_compile$3 = function $$compile() { var self = this; - return self.compiler.$process(sexp, "stmt") - }, TMP_Base_stmt_27.$$arity = 1); + return self.$push("'::'") + }, $CbaseNode_compile$3.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ConstAssignNode'); + + var $nesting = [self].concat($parent_nesting), $ConstAssignNode_compile$4; + - Opal.defn(self, '$expr_or_nil', TMP_Base_expr_or_nil_28 = function $$expr_or_nil(sexp) { + self.$handle("casgn"); + self.$children("base", "name", "value"); + return (Opal.def(self, '$compile', $ConstAssignNode_compile$4 = function $$compile() { var self = this; - if ($truthy(sexp)) { - return self.$expr(sexp) - } else { - return "nil" + if ($truthy(self.$base())) { + return self.$push("Opal.const_set(", self.$expr(self.$base()), "" + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") + } else { + return self.$push("" + "Opal.const_set($nesting[0], '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") } - }, TMP_Base_expr_or_nil_28.$$arity = 1); - - Opal.defn(self, '$add_local', TMP_Base_add_local_29 = function $$add_local(name) { - var self = this; + }, $ConstAssignNode_compile$4.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - return self.$scope().$add_scope_local(name.$to_sym()) - }, TMP_Base_add_local_29.$$arity = 1); - - Opal.defn(self, '$add_ivar', TMP_Base_add_ivar_30 = function $$add_ivar(name) { - var self = this; +Opal.modules["corelib/comparable"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $module = Opal.module, $truthy = Opal.truthy; - return self.$scope().$add_scope_ivar(name) - }, TMP_Base_add_ivar_30.$$arity = 1); - - Opal.defn(self, '$add_gvar', TMP_Base_add_gvar_31 = function $$add_gvar(name) { - var self = this; + Opal.add_stubs(['$>', '$<', '$===', '$raise', '$class', '$<=>', '$equal?']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Comparable'); - return self.$scope().$add_scope_gvar(name) - }, TMP_Base_add_gvar_31.$$arity = 1); - - Opal.defn(self, '$add_temp', TMP_Base_add_temp_32 = function $$add_temp(temp) { - var self = this; + var $nesting = [self].concat($parent_nesting), $Comparable_$eq_eq$1, $Comparable_$gt$2, $Comparable_$gt_eq$3, $Comparable_$lt$4, $Comparable_$lt_eq$5, $Comparable_between$ques$6, $Comparable_clamp$7, $case = nil; - return self.$scope().$add_scope_temp(temp) - }, TMP_Base_add_temp_32.$$arity = 1); - - Opal.defn(self, '$helper', TMP_Base_helper_33 = function $$helper(name) { - var self = this; + + + function normalize(what) { + if (Opal.is_a(what, Opal.Integer)) { return what; } - return self.compiler.$helper(name) - }, TMP_Base_helper_33.$$arity = 1); - - Opal.defn(self, '$with_temp', TMP_Base_with_temp_34 = function $$with_temp() { - var self = this, $iter = TMP_Base_with_temp_34.$$p, block = $iter || nil; + if ($rb_gt(what, 0)) { return 1; } + if ($rb_lt(what, 0)) { return -1; } + return 0; + } + + function fail_comparison(lhs, rhs) { + var class_name; + (function() {$case = rhs; + if (nil['$===']($case) || true['$===']($case) || false['$===']($case) || $$($nesting, 'Integer')['$===']($case) || $$($nesting, 'Float')['$===']($case)) {return class_name = rhs.$inspect();} + else {return class_name = rhs.$$class;}})() + self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") + } + + function cmp_or_fail(lhs, rhs) { + var cmp = (lhs)['$<=>'](rhs); + if ($falsy(cmp)) fail_comparison(lhs, rhs); + return normalize(cmp); + } + ; + + Opal.def(self, '$==', $Comparable_$eq_eq$1 = function(other) { + var self = this, cmp = nil; - if ($iter) TMP_Base_with_temp_34.$$p = null; - return $send(self.compiler, 'with_temp', [], block.$to_proc()) - }, TMP_Base_with_temp_34.$$arity = 0); - - Opal.defn(self, '$in_while?', TMP_Base_in_while$q_35 = function() { - var self = this; + + if ($truthy(self['$equal?'](other))) { + return true}; + + if (self["$<=>"] == Opal.Kernel["$<=>"]) { + return false; + } - return self.compiler['$in_while?']() - }, TMP_Base_in_while$q_35.$$arity = 0); - - Opal.defn(self, '$while_loop', TMP_Base_while_loop_36 = function $$while_loop() { - var self = this; + // check for infinite recursion + if (self.$$comparable) { + delete self.$$comparable; + return false; + } + ; + if ($truthy((cmp = self['$<=>'](other)))) { + } else { + return false + }; + return normalize(cmp) == 0;; + }, $Comparable_$eq_eq$1.$$arity = 1); + + Opal.def(self, '$>', $Comparable_$gt$2 = function(other) { + var self = this; - return self.compiler.$instance_variable_get("@while_loop") - }, TMP_Base_while_loop_36.$$arity = 0); - - Opal.defn(self, '$has_rescue_else?', TMP_Base_has_rescue_else$q_37 = function() { - var self = this; + return cmp_or_fail(self, other) > 0; + }, $Comparable_$gt$2.$$arity = 1); + + Opal.def(self, '$>=', $Comparable_$gt_eq$3 = function(other) { + var self = this; - return self.$scope()['$has_rescue_else?']() - }, TMP_Base_has_rescue_else$q_37.$$arity = 0); - - Opal.defn(self, '$in_ensure', TMP_Base_in_ensure_38 = function $$in_ensure() { - var self = this, $iter = TMP_Base_in_ensure_38.$$p, block = $iter || nil; + return cmp_or_fail(self, other) >= 0; + }, $Comparable_$gt_eq$3.$$arity = 1); + + Opal.def(self, '$<', $Comparable_$lt$4 = function(other) { + var self = this; - if ($iter) TMP_Base_in_ensure_38.$$p = null; - return $send(self.$scope(), 'in_ensure', [], block.$to_proc()) - }, TMP_Base_in_ensure_38.$$arity = 0); - - Opal.defn(self, '$in_ensure?', TMP_Base_in_ensure$q_39 = function() { - var self = this; + return cmp_or_fail(self, other) < 0; + }, $Comparable_$lt$4.$$arity = 1); + + Opal.def(self, '$<=', $Comparable_$lt_eq$5 = function(other) { + var self = this; - return self.$scope()['$in_ensure?']() - }, TMP_Base_in_ensure$q_39.$$arity = 0); - - Opal.defn(self, '$closest_module_node', TMP_Base_closest_module_node_40 = function $$closest_module_node() { - var $a, $b, self = this, current = nil; + return cmp_or_fail(self, other) <= 0; + }, $Comparable_$lt_eq$5.$$arity = 1); + + Opal.def(self, '$between?', $Comparable_between$ques$6 = function(min, max) { + var self = this; - - current = self.$scope(); - while ($truthy(($truthy($b = current) ? current['$class_scope?']()['$!']() : $b))) { - current = current.$parent() - }; - return current; - }, TMP_Base_closest_module_node_40.$$arity = 0); - - Opal.defn(self, '$class_variable_owner', TMP_Base_class_variable_owner_41 = function $$class_variable_owner() { - var self = this; + + if ($rb_lt(self, min)) { + return false}; + if ($rb_gt(self, max)) { + return false}; + return true; + }, $Comparable_between$ques$6.$$arity = 2); + return (Opal.def(self, '$clamp', $Comparable_clamp$7 = function $$clamp(min, max) { + var self = this; - if ($truthy(self.$closest_module_node())) { - return "" + "$" + (self.$closest_module_node().$name()) - } else { - return "Opal.Object" - } - }, TMP_Base_class_variable_owner_41.$$arity = 0); - return (Opal.defn(self, '$comments', TMP_Base_comments_42 = function $$comments() { - var self = this; + + + if (max == null) { + max = nil; + }; + + var c, excl; + + if (max === nil) { + // We are dealing with a new Ruby 2.7 behaviour that we are able to + // provide a single Range argument instead of 2 Comparables. - return self.$compiler().$comments()['$[]'](self.sexp.$loc()) - }, TMP_Base_comments_42.$$arity = 0), nil) && 'comments'; - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; + if (!Opal.is_a(min, Opal.Range)) { + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (min.$class()) + " (expected Range)") + } -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/literal"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $gvars = Opal.gvars; + excl = min.excl; + max = min.end; + min = min.begin; - Opal.add_stubs(['$require', '$handle', '$push', '$to_s', '$type', '$children', '$value', '$recv?', '$wrap', '$join', '$keys', '$gsub', '$even?', '$length', '$+', '$chop', '$[]', '$encoding', '$!=', '$force_encoding', '$inspect', '$to_i', '$to_utf16', '$translate_escape_chars', '$name', '$lambda', '$upcase', '$<=', '$call', '$-', '$>>', '$&', '$attr_accessor', '$extract_flags_and_value', '$select!', '$flags', '$=~', '$warning', '$compiler', '$===', '$compile_dynamic_regexp', '$compile_static_regexp', '$any?', '$expr', '$new', '$map', '$to_proc', '$flags=', '$s', '$value=', '$include?', '$is_a?', '$==', '$updated', '$delete', '$source', '$expression', '$loc', '$regexp', '$each', '$first', '$raise', '$each_with_index', '$compile_inline?', '$helper', '$compile_inline', '$compile_range_initialize', '$start', '$finish', '$numerator', '$denominator', '$real', '$imag']); - - self.$require("opal/nodes/base"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + if (max !== nil && excl) { + self.$raise($$($nesting, 'ArgumentError'), "cannot clamp with an exclusive range") + } + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if (min !== nil && max !== nil && cmp_or_fail(min, max) > 0) { + self.$raise($$($nesting, 'ArgumentError'), "min argument must be smaller than max argument") + } - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + if (min !== nil) { + c = cmp_or_fail(self, min); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if (c == 0) return self; + if (c < 0) return min; + } - - (function($base, $super, $parent_nesting) { - function $ValueNode(){}; - var self = $ValueNode = $klass($base, $super, 'ValueNode', $ValueNode); + if (max !== nil) { + c = cmp_or_fail(self, max); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ValueNode_compile_1, TMP_ValueNode_truthy_optimize$q_2; + if (c > 0) return max; + } - - self.$handle("true", "false", "self", "nil"); - - Opal.defn(self, '$compile', TMP_ValueNode_compile_1 = function $$compile() { - var self = this; + return self; + ; + }, $Comparable_clamp$7.$$arity = -2), nil) && 'clamp'; + })($nesting[0], $nesting) +}; - return self.$push(self.$type().$to_s()) - }, TMP_ValueNode_compile_1.$$arity = 0); - return Opal.defs(self, '$truthy_optimize?', TMP_ValueNode_truthy_optimize$q_2 = function() { - var self = this; +Opal.modules["pathname"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; - return true - }, TMP_ValueNode_truthy_optimize$q_2.$$arity = 0); - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $NumericNode(){}; - var self = $NumericNode = $klass($base, $super, 'NumericNode', $NumericNode); + Opal.add_stubs(['$require', '$include', '$quote', '$===', '$to_s', '$path', '$respond_to?', '$to_path', '$is_a?', '$nil?', '$raise', '$class', '$==', '$new', '$pwd', '$attr_reader', '$!', '$relative?', '$chop_basename', '$basename', '$=~', '$source', '$[]', '$rindex', '$sub', '$absolute?', '$expand_path', '$plus', '$unshift', '$length', '$!=', '$empty?', '$first', '$shift', '$+', '$join', '$dirname', '$pop', '$reverse_each', '$directory?', '$extname', '$<=>', '$nonzero?', '$proc', '$casecmp', '$cleanpath', '$inspect', '$include?', '$fill', '$map', '$entries']); + + self.$require("corelib/comparable"); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Pathname'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NumericNode_compile_3, TMP_NumericNode_truthy_optimize$q_4; + var $nesting = [self].concat($parent_nesting), $Pathname_initialize$1, $Pathname_pwd$2, $Pathname_$eq_eq$3, $Pathname_absolute$ques$4, $Pathname_relative$ques$5, $Pathname_chop_basename$6, $Pathname_root$ques$7, $Pathname_parent$8, $Pathname_sub$9, $Pathname_cleanpath$10, $Pathname_to_path$11, $Pathname_hash$12, $Pathname_expand_path$13, $Pathname_$plus$14, $Pathname_plus$15, $Pathname_join$16, $Pathname_split$18, $Pathname_dirname$19, $Pathname_basename$20, $Pathname_directory$ques$21, $Pathname_extname$22, $Pathname_$lt_eq_gt$23, $Pathname$24, $Pathname$25, $Pathname_relative_path_from$26, $Pathname_entries$27; - - self.$handle("int", "float"); - self.$children("value"); - - Opal.defn(self, '$compile', TMP_NumericNode_compile_3 = function $$compile() { - var self = this; + self.$$prototype.path = nil; + + self.$include($$($nesting, 'Comparable')); + Opal.const_set($nesting[0], 'SEPARATOR_PAT', Opal.regexp([$$($nesting, 'Regexp').$quote($$$($$($nesting, 'File'), 'SEPARATOR'))])); + + Opal.def(self, '$initialize', $Pathname_initialize$1 = function $$initialize(path) { + var self = this; - - self.$push(self.$value().$to_s()); - if ($truthy(self['$recv?']())) { - return self.$wrap("(", ")") - } else { - return nil - }; - }, TMP_NumericNode_compile_3.$$arity = 0); - return Opal.defs(self, '$truthy_optimize?', TMP_NumericNode_truthy_optimize$q_4 = function() { - var self = this; + + if ($truthy($$($nesting, 'Pathname')['$==='](path))) { + self.path = path.$path().$to_s() + } else if ($truthy(path['$respond_to?']("to_path"))) { + self.path = path.$to_path() + } else if ($truthy(path['$is_a?']($$($nesting, 'String')))) { + self.path = path + } else if ($truthy(path['$nil?']())) { + self.$raise($$($nesting, 'TypeError'), "no implicit conversion of nil into String") + } else { + self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (path.$class()) + " into String") + }; + if (self.path['$==']("\u0000")) { + return self.$raise($$($nesting, 'ArgumentError')) + } else { + return nil + }; + }, $Pathname_initialize$1.$$arity = 1); + Opal.defs(self, '$pwd', $Pathname_pwd$2 = function $$pwd() { + var self = this; - return true - }, TMP_NumericNode_truthy_optimize$q_4.$$arity = 0); - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $StringNode(){}; - var self = $StringNode = $klass($base, $super, 'StringNode', $StringNode); + return self.$new($$($nesting, 'Dir').$pwd()) + }, $Pathname_pwd$2.$$arity = 0); + self.$attr_reader("path"); + + Opal.def(self, '$==', $Pathname_$eq_eq$3 = function(other) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_StringNode_translate_escape_chars_6, TMP_StringNode_compile_8, TMP_StringNode_to_utf16_10; + return other.$path()['$=='](self.path) + }, $Pathname_$eq_eq$3.$$arity = 1); + + Opal.def(self, '$absolute?', $Pathname_absolute$ques$4 = function() { + var self = this; - - self.$handle("str"); - self.$children("value"); - Opal.const_set($nesting[0], 'ESCAPE_CHARS', $hash2(["a", "e"], {"a": "\\u0007", "e": "\\u001b"})); - Opal.const_set($nesting[0], 'ESCAPE_REGEX', new RegExp("" + "(\\\\+)([" + (Opal.const_get_relative($nesting, 'ESCAPE_CHARS').$keys().$join("")) + "])")); - - Opal.defn(self, '$translate_escape_chars', TMP_StringNode_translate_escape_chars_6 = function $$translate_escape_chars(inspect_string) { - var TMP_5, self = this; + return self['$relative?']()['$!']() + }, $Pathname_absolute$ques$4.$$arity = 0); + + Opal.def(self, '$relative?', $Pathname_relative$ques$5 = function() { + var $a, $b, $c, self = this, path = nil, r = nil; - return $send(inspect_string, 'gsub', [Opal.const_get_relative($nesting, 'ESCAPE_REGEX')], (TMP_5 = function(original){var self = TMP_5.$$s || this, $a; -if (original == null) original = nil; - if ($truthy((($a = $gvars['~']) === nil ? nil : $a['$[]'](1)).$length()['$even?']())) { - return original - } else { - return $rb_plus((($a = $gvars['~']) === nil ? nil : $a['$[]'](1)).$chop(), Opal.const_get_relative($nesting, 'ESCAPE_CHARS')['$[]']((($a = $gvars['~']) === nil ? nil : $a['$[]'](2)))) - }}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)) - }, TMP_StringNode_translate_escape_chars_6.$$arity = 1); - - Opal.defn(self, '$compile', TMP_StringNode_compile_8 = function $$compile() { - var TMP_7, $a, self = this, string_value = nil, encoding = nil, should_encode = nil, sanitized_value = nil; + + path = self.path; + while ($truthy((r = self.$chop_basename(path)))) { + $c = r, $b = Opal.to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c + }; + return path['$=='](""); + }, $Pathname_relative$ques$5.$$arity = 0); + + Opal.def(self, '$chop_basename', $Pathname_chop_basename$6 = function $$chop_basename(path) { + var self = this, base = nil; - - string_value = self.$value(); - encoding = string_value.$encoding(); - should_encode = encoding['$!='](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_8')); - if ($truthy(should_encode)) { - string_value = string_value.$force_encoding("UTF-8")}; - sanitized_value = $send(string_value.$inspect(), 'gsub', [/\\u\{([0-9a-f]+)\}/], (TMP_7 = function(match){var self = TMP_7.$$s || this, $a, code_point = nil; -if (match == null) match = nil; - - code_point = (($a = $gvars['~']) === nil ? nil : $a['$[]'](1)).$to_i(16); - return self.$to_utf16(code_point);}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); - self.$push(self.$translate_escape_chars(sanitized_value)); - if ($truthy(($truthy($a = should_encode) ? Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal") : $a))) { - return self.$push(".$force_encoding(\"", encoding.$name(), "\")") - } else { - return nil - }; - }, TMP_StringNode_compile_8.$$arity = 0); - return (Opal.defn(self, '$to_utf16', TMP_StringNode_to_utf16_10 = function $$to_utf16(code_point) { - var TMP_9, self = this, ten_bits = nil, u = nil, lead_surrogate = nil, tail_surrogate = nil; + + base = $$($nesting, 'File').$basename(path); + if ($truthy($$($nesting, 'Regexp').$new("" + "^" + ($$$($$($nesting, 'Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { + return nil + } else { + return [path['$[]'](0, path.$rindex(base)), base] + }; + }, $Pathname_chop_basename$6.$$arity = 1); + + Opal.def(self, '$root?', $Pathname_root$ques$7 = function() { + var self = this; - - ten_bits = 1023; - u = $send(self, 'lambda', [], (TMP_9 = function(code_unit){var self = TMP_9.$$s || this; -if (code_unit == null) code_unit = nil; - return $rb_plus("\\u", code_unit.$to_s(16).$upcase())}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)); - if ($truthy($rb_le(code_point, 65535))) { - return u.$call(code_point)}; - code_point = $rb_minus(code_point, 65536); - lead_surrogate = $rb_plus(55296, code_point['$>>'](10)); - tail_surrogate = $rb_plus(56320, code_point['$&'](ten_bits)); - return $rb_plus(u.$call(lead_surrogate), u.$call(tail_surrogate)); - }, TMP_StringNode_to_utf16_10.$$arity = 1), nil) && 'to_utf16'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $SymbolNode(){}; - var self = $SymbolNode = $klass($base, $super, 'SymbolNode', $SymbolNode); + return self.path['$==']("/") + }, $Pathname_root$ques$7.$$arity = 0); + + Opal.def(self, '$parent', $Pathname_parent$8 = function $$parent() { + var self = this, new_path = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_SymbolNode_compile_11; + + new_path = self.path.$sub(/\/([^\/]+\/?$)/, ""); + if (new_path['$==']("")) { + new_path = (function() {if ($truthy(self['$absolute?']())) { + return "/" + } else { + return "." + }; return nil; })()}; + return $$($nesting, 'Pathname').$new(new_path); + }, $Pathname_parent$8.$$arity = 0); + + Opal.def(self, '$sub', $Pathname_sub$9 = function $$sub($a) { + var $post_args, args, self = this; - - self.$handle("sym"); - self.$children("value"); - return (Opal.defn(self, '$compile', TMP_SymbolNode_compile_11 = function $$compile() { - var self = this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $$($nesting, 'Pathname').$new($send(self.path, 'sub', Opal.to_a(args))); + }, $Pathname_sub$9.$$arity = -1); + + Opal.def(self, '$cleanpath', $Pathname_cleanpath$10 = function $$cleanpath() { + var self = this; - return self.$push(self.$value().$to_s().$inspect()) - }, TMP_SymbolNode_compile_11.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $RegexpNode(){}; - var self = $RegexpNode = $klass($base, $super, 'RegexpNode', $RegexpNode); + return Opal.normalize(self.path) + }, $Pathname_cleanpath$10.$$arity = 0); + + Opal.def(self, '$to_path', $Pathname_to_path$11 = function $$to_path() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RegexpNode_initialize_12, TMP_RegexpNode_compile_14, TMP_RegexpNode_compile_dynamic_regexp_15, TMP_RegexpNode_compile_static_regexp_16, TMP_RegexpNode_extract_flags_and_value_18, TMP_RegexpNode_raw_value_19; + return self.path + }, $Pathname_to_path$11.$$arity = 0); + + Opal.def(self, '$hash', $Pathname_hash$12 = function $$hash() { + var self = this; - def.sexp = nil; - - self.$handle("regexp"); - self.$attr_accessor("value", "flags"); - Opal.const_set($nesting[0], 'SUPPORTED_FLAGS', /[gimuy]/); - - Opal.defn(self, '$initialize', TMP_RegexpNode_initialize_12 = function $$initialize($a_rest) { - var self = this, $iter = TMP_RegexpNode_initialize_12.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + return self.path + }, $Pathname_hash$12.$$arity = 0); + + Opal.def(self, '$expand_path', $Pathname_expand_path$13 = function $$expand_path() { + var self = this; - if ($iter) TMP_RegexpNode_initialize_12.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_RegexpNode_initialize_12, false), $zuper, $iter); - return self.$extract_flags_and_value(); - }, TMP_RegexpNode_initialize_12.$$arity = -1); - - Opal.defn(self, '$compile', TMP_RegexpNode_compile_14 = function $$compile() { - var TMP_13, self = this, $case = nil; + return $$($nesting, 'Pathname').$new($$($nesting, 'File').$expand_path(self.path)) + }, $Pathname_expand_path$13.$$arity = 0); + + Opal.def(self, '$+', $Pathname_$plus$14 = function(other) { + var self = this; - - $send(self.$flags(), 'select!', [], (TMP_13 = function(flag){var self = TMP_13.$$s || this; -if (flag == null) flag = nil; - if ($truthy(Opal.const_get_relative($nesting, 'SUPPORTED_FLAGS')['$=~'](flag))) { - return true - } else { - - self.$compiler().$warning("" + "Skipping the '" + (flag) + "' Regexp flag as it's not widely supported by JavaScript vendors."); - return false; - }}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13)); - return (function() {$case = self.$value().$type(); - if ("dstr"['$===']($case) || "begin"['$===']($case)) {return self.$compile_dynamic_regexp()} - else if ("str"['$===']($case)) {return self.$compile_static_regexp()} - else { return nil }})(); - }, TMP_RegexpNode_compile_14.$$arity = 0); - - Opal.defn(self, '$compile_dynamic_regexp', TMP_RegexpNode_compile_dynamic_regexp_15 = function $$compile_dynamic_regexp() { - var self = this; + + if ($truthy($$($nesting, 'Pathname')['$==='](other))) { + } else { + other = $$($nesting, 'Pathname').$new(other) + }; + return $$($nesting, 'Pathname').$new(self.$plus(self.path, other.$to_s())); + }, $Pathname_$plus$14.$$arity = 1); + + Opal.def(self, '$plus', $Pathname_plus$15 = function $$plus(path1, path2) { + var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, $ret_or_1 = nil, r1 = nil, basename1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, suffix2 = nil; - if ($truthy(self.$flags()['$any?']())) { - return self.$push("new RegExp(", self.$expr(self.$value()), "" + ", '" + (self.$flags().$join()) + "')") - } else { - return self.$push("new RegExp(", self.$expr(self.$value()), ")") - } - }, TMP_RegexpNode_compile_dynamic_regexp_15.$$arity = 0); + + prefix2 = path2; + index_list2 = []; + basename_list2 = []; + while ($truthy((r2 = self.$chop_basename(prefix2)))) { - Opal.defn(self, '$compile_static_regexp', TMP_RegexpNode_compile_static_regexp_16 = function $$compile_static_regexp() { - var self = this, value = nil, $case = nil, message = nil; - - - value = self.$value().$children()['$[]'](0); - return (function() {$case = value; - if (""['$===']($case)) {return self.$push("/(?:)/")} - else if (/\?<\w+\>/['$===']($case)) { - message = "" + "named captures are not supported in javascript: " + (value.$inspect()); - return self.$push("" + "self.$raise(new SyntaxError('" + (message) + "'))");} - else {return self.$push("" + (Opal.const_get_relative($nesting, 'Regexp').$new(value).$inspect()) + (self.$flags().$join()))}})(); - }, TMP_RegexpNode_compile_static_regexp_16.$$arity = 0); + $c = r2, $b = Opal.to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; + index_list2.$unshift(prefix2.$length()); + basename_list2.$unshift(basename2); + }; + if ($truthy(prefix2['$!='](""))) { + return path2}; + prefix1 = path1; + while ($truthy(true)) { - Opal.defn(self, '$extract_flags_and_value', TMP_RegexpNode_extract_flags_and_value_18 = function $$extract_flags_and_value() { - var $a, $b, TMP_17, self = this, values = nil, flags_sexp = nil, $writer = nil, $case = nil, parts = nil; - - - $a = [].concat(Opal.to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (values = $slice.call($a, 0, $b)), (flags_sexp = ($a[$b] == null ? nil : $a[$b])), $a; + while ($truthy((function() {if ($truthy(($ret_or_1 = basename_list2['$empty?']()['$!']()))) { + return basename_list2.$first()['$=='](".") + } else { + return $ret_or_1 + }; return nil; })())) { - $writer = [$send(flags_sexp.$children(), 'map', [], "to_s".$to_proc())]; - $send(self, 'flags=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - $case = values.$length(); - if ((0)['$===']($case)) { - $writer = [self.$s("str", "")]; - $send(self, 'value=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];} - else if ((1)['$===']($case)) { - $writer = [values['$[]'](0)]; - $send(self, 'value=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];} - else { - $writer = [$send(self, 's', ["dstr"].concat(Opal.to_a(values)))]; - $send(self, 'value=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];}; - if ($truthy(self.$flags()['$include?']("x"))) { - - parts = $send(self.$value().$children(), 'map', [], (TMP_17 = function(part){var self = TMP_17.$$s || this, $c, trimmed_value = nil; -if (part == null) part = nil; - if ($truthy(($truthy($c = part['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Opal'), 'AST'), 'Node'))) ? part.$type()['$==']("str") : $c))) { - - trimmed_value = part.$children()['$[]'](0).$gsub(/^\s*\#.*/, "").$gsub(/\s/, ""); - return self.$s("str", trimmed_value); - } else { - return part - }}, TMP_17.$$s = self, TMP_17.$$arity = 1, TMP_17)); - - $writer = [self.$value().$updated(nil, parts)]; - $send(self, 'value=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.$flags().$delete("x");}; - if (self.$value().$type()['$==']("str")) { - - $writer = [self.$s("str", self.$value().$children()['$[]'](0).$gsub("\\A", "^").$gsub("\\z", "$"))]; - $send(self, 'value=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - } else { - return nil - }; - }, TMP_RegexpNode_extract_flags_and_value_18.$$arity = 0); - return (Opal.defn(self, '$raw_value', TMP_RegexpNode_raw_value_19 = function $$raw_value() { - var self = this, $writer = nil; - + index_list2.$shift(); + basename_list2.$shift(); + }; + if ($truthy((r1 = self.$chop_basename(prefix1)))) { + } else { + break; + }; + $c = r1, $b = Opal.to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; + if (basename1['$=='](".")) { + continue;}; + if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = basename1['$==']("..")))) { + return $ret_or_3 + } else { + return basename_list2['$empty?']() + }; return nil; })()))) { + return $ret_or_2 + } else { + return basename_list2.$first()['$!=']("..") + }; return nil; })())) { - $writer = [self.sexp.$loc().$expression().$source()]; - $send(self, 'value=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_RegexpNode_raw_value_19.$$arity = 0), nil) && 'raw_value'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $MatchCurrentLineNode(){}; - var self = $MatchCurrentLineNode = $klass($base, $super, 'MatchCurrentLineNode', $MatchCurrentLineNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_MatchCurrentLineNode_compile_20; - + prefix1 = $rb_plus(prefix1, basename1); + break;;}; + index_list2.$shift(); + basename_list2.$shift(); + }; + r1 = self.$chop_basename(prefix1); + if ($truthy((function() {if ($truthy(($ret_or_4 = r1['$!']()))) { + return Opal.regexp([$$($nesting, 'SEPARATOR_PAT')])['$=~']($$($nesting, 'File').$basename(prefix1)) + } else { + return $ret_or_4 + }; return nil; })())) { + while ($truthy((function() {if ($truthy(($ret_or_5 = basename_list2['$empty?']()['$!']()))) { + return basename_list2.$first()['$==']("..") + } else { + return $ret_or_5 + }; return nil; })())) { + + index_list2.$shift(); + basename_list2.$shift(); + }}; + if ($truthy(basename_list2['$empty?']()['$!']())) { - self.$handle("match_current_line"); - self.$children("regexp"); - return (Opal.defn(self, '$compile', TMP_MatchCurrentLineNode_compile_20 = function $$compile() { - var self = this, gvar_sexp = nil, send_node = nil; + suffix2 = path2['$[]'](Opal.Range.$new(index_list2.$first(), -1, false)); + if ($truthy(r1)) { + return $$($nesting, 'File').$join(prefix1, suffix2) + } else { + return $rb_plus(prefix1, suffix2) + }; + } else if ($truthy(r1)) { + return prefix1 + } else { + return $$($nesting, 'File').$dirname(prefix1) + }; + }, $Pathname_plus$15.$$arity = 2); + + Opal.def(self, '$join', $Pathname_join$16 = function $$join($a) {try { - - gvar_sexp = self.$s("gvar", "$_"); - send_node = self.$s("send", gvar_sexp, "=~", self.$regexp()); - return self.$push(self.$expr(send_node)); - }, TMP_MatchCurrentLineNode_compile_20.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $XStringNode(){}; - var self = $XStringNode = $klass($base, $super, 'XStringNode', $XStringNode); + var $post_args, args, $$17, self = this, result = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_XStringNode_compile_22; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(args['$empty?']())) { + return self}; + result = args.$pop(); + if ($truthy($$($nesting, 'Pathname')['$==='](result))) { + } else { + result = $$($nesting, 'Pathname').$new(result) + }; + if ($truthy(result['$absolute?']())) { + return result}; + $send(args, 'reverse_each', [], ($$17 = function(arg){var self = $$17.$$s == null ? this : $$17.$$s; - self.$handle("xstr"); - return (Opal.defn(self, '$compile', TMP_XStringNode_compile_22 = function $$compile() { - var TMP_21, self = this; + + if (arg == null) { + arg = nil; + }; + if ($truthy($$($nesting, 'Pathname')['$==='](arg))) { + } else { + arg = $$($nesting, 'Pathname').$new(arg) + }; + result = $rb_plus(arg, result); + if ($truthy(result['$absolute?']())) { + Opal.ret(result) + } else { + return nil + };}, $$17.$$s = self, $$17.$$arity = 1, $$17)); + return $rb_plus(self, result); + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, $Pathname_join$16.$$arity = -1); + + Opal.def(self, '$split', $Pathname_split$18 = function $$split() { + var self = this; - - $send(self.$children(), 'each', [], (TMP_21 = function(child){var self = TMP_21.$$s || this, $case = nil, value = nil, str = nil; -if (child == null) child = nil; - return (function() {$case = child.$type(); - if ("str"['$===']($case)) { - value = child.$loc().$expression().$source(); - return self.$push(Opal.const_get_relative($nesting, 'Fragment').$new(value, nil));} - else if ("begin"['$===']($case)) {return self.$push(self.$expr(child))} - else if ("gvar"['$===']($case) || "ivar"['$===']($case)) {return self.$push(self.$expr(child))} - else if ("js_return"['$===']($case)) { - self.$push("return "); - str = child.$children().$first(); - value = str.$loc().$expression().$source(); - return self.$push(Opal.const_get_relative($nesting, 'Fragment').$new(value, nil));} - else {return self.$raise("" + "Unsupported xstr part: " + (child.$type()))}})()}, TMP_21.$$s = self, TMP_21.$$arity = 1, TMP_21)); - if ($truthy(self['$recv?']())) { - return self.$wrap("(", ")") - } else { - return nil - }; - }, TMP_XStringNode_compile_22.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $DynamicStringNode(){}; - var self = $DynamicStringNode = $klass($base, $super, 'DynamicStringNode', $DynamicStringNode); + return [self.$dirname(), self.$basename()] + }, $Pathname_split$18.$$arity = 0); + + Opal.def(self, '$dirname', $Pathname_dirname$19 = function $$dirname() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DynamicStringNode_compile_24; + return $$($nesting, 'Pathname').$new($$($nesting, 'File').$dirname(self.path)) + }, $Pathname_dirname$19.$$arity = 0); + + Opal.def(self, '$basename', $Pathname_basename$20 = function $$basename() { + var self = this; - - self.$handle("dstr"); - return (Opal.defn(self, '$compile', TMP_DynamicStringNode_compile_24 = function $$compile() { - var TMP_23, self = this; + return $$($nesting, 'Pathname').$new($$($nesting, 'File').$basename(self.path)) + }, $Pathname_basename$20.$$arity = 0); + + Opal.def(self, '$directory?', $Pathname_directory$ques$21 = function() { + var self = this; - - self.$push("\"\""); - return $send(self.$children(), 'each_with_index', [], (TMP_23 = function(part, idx){var self = TMP_23.$$s || this; -if (part == null) part = nil;if (idx == null) idx = nil; - - self.$push(" + "); - if (part.$type()['$==']("str")) { - self.$push(part.$children()['$[]'](0).$inspect()) - } else { - self.$push("(", self.$expr(part), ")") - }; - if ($truthy(self['$recv?']())) { - return self.$wrap("(", ")") - } else { - return nil - };}, TMP_23.$$s = self, TMP_23.$$arity = 2, TMP_23)); - }, TMP_DynamicStringNode_compile_24.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $DynamicSymbolNode(){}; - var self = $DynamicSymbolNode = $klass($base, $super, 'DynamicSymbolNode', $DynamicSymbolNode); + return $$($nesting, 'File')['$directory?'](self.path) + }, $Pathname_directory$ques$21.$$arity = 0); + + Opal.def(self, '$extname', $Pathname_extname$22 = function $$extname() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return $$($nesting, 'File').$extname(self.path) + }, $Pathname_extname$22.$$arity = 0); + + Opal.def(self, '$<=>', $Pathname_$lt_eq_gt$23 = function(other) { + var self = this; - return self.$handle("dsym") - })($nesting[0], Opal.const_get_relative($nesting, 'DynamicStringNode'), $nesting); - (function($base, $super, $parent_nesting) { - function $RangeNode(){}; - var self = $RangeNode = $klass($base, $super, 'RangeNode', $RangeNode); + return self.$path()['$<=>'](other.$path()) + }, $Pathname_$lt_eq_gt$23.$$arity = 1); + $alias(self, "eql?", "=="); + $alias(self, "===", "=="); + $alias(self, "to_str", "to_path"); + $alias(self, "to_s", "to_path"); + Opal.const_set($nesting[0], 'SAME_PATHS', (function() {if ($truthy($$$($$($nesting, 'File'), 'FNM_SYSCASE')['$nonzero?']())) { + return $send(self, 'proc', [], ($Pathname$24 = function(a, b){var self = $Pathname$24.$$s == null ? this : $Pathname$24.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RangeNode_compile_25, TMP_RangeNode_compile_inline$q_26, TMP_RangeNode_compile_inline_27, TMP_RangeNode_compile_range_initialize_28; + + + if (a == null) { + a = nil; + }; + + if (b == null) { + b = nil; + }; + return a.$casecmp(b)['$=='](0);}, $Pathname$24.$$s = self, $Pathname$24.$$arity = 2, $Pathname$24)) + } else { + return $send(self, 'proc', [], ($Pathname$25 = function(a, b){var self = $Pathname$25.$$s == null ? this : $Pathname$25.$$s; - self.$children("start", "finish"); - Opal.const_set($nesting[0], 'SIMPLE_CHILDREN_TYPES', ["int", "float", "str", "sym"]); - Opal.defn(self, '$compile', TMP_RangeNode_compile_25 = function $$compile() { - var self = this; + if (a == null) { + a = nil; + }; + + if (b == null) { + b = nil; + }; + return a['$=='](b);}, $Pathname$25.$$s = self, $Pathname$25.$$arity = 2, $Pathname$25)) + }; return nil; })()); + + Opal.def(self, '$relative_path_from', $Pathname_relative_path_from$26 = function $$relative_path_from(base_directory) { + var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, $ret_or_6 = nil, $ret_or_7 = nil, relpath_names = nil; - if ($truthy(self['$compile_inline?']())) { - - self.$helper("range"); - return self.$compile_inline(); - } else { - return self.$compile_range_initialize() - } - }, TMP_RangeNode_compile_25.$$arity = 0); + + dest_directory = self.$cleanpath().$to_s(); + base_directory = base_directory.$cleanpath().$to_s(); + dest_prefix = dest_directory; + dest_names = []; + while ($truthy((r = self.$chop_basename(dest_prefix)))) { + + $c = r, $b = Opal.to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($truthy(basename['$!=']("."))) { + dest_names.$unshift(basename)}; + }; + base_prefix = base_directory; + base_names = []; + while ($truthy((r = self.$chop_basename(base_prefix)))) { + + $c = r, $b = Opal.to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; + if ($truthy(basename['$!=']("."))) { + base_names.$unshift(basename)}; + }; + if ($truthy($$($nesting, 'SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "" + "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) + }; + while ($truthy((function() {if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = dest_names['$empty?']()['$!']()))) { + return base_names['$empty?']()['$!']() + } else { + return $ret_or_7 + }; return nil; })()))) { + return $$($nesting, 'SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first()) + } else { + return $ret_or_6 + }; return nil; })())) { - Opal.defn(self, '$compile_inline?', TMP_RangeNode_compile_inline$q_26 = function() { - var $a, $b, self = this; + dest_names.$shift(); + base_names.$shift(); + }; + if ($truthy(base_names['$include?'](".."))) { + self.$raise($$($nesting, 'ArgumentError'), "" + "base_directory has ..: " + (base_directory.$inspect()))}; + base_names.$fill(".."); + relpath_names = $rb_plus(base_names, dest_names); + if ($truthy(relpath_names['$empty?']())) { + return $$($nesting, 'Pathname').$new(".") + } else { + return $$($nesting, 'Pathname').$new($send($$($nesting, 'File'), 'join', Opal.to_a(relpath_names))) + }; + }, $Pathname_relative_path_from$26.$$arity = 1); + return (Opal.def(self, '$entries', $Pathname_entries$27 = function $$entries() { + var $$28, self = this; + + return $send($$($nesting, 'Dir').$entries(self.path), 'map', [], ($$28 = function(f){var self = $$28.$$s == null ? this : $$28.$$s; - return ($truthy($a = (($b = self.$start().$type()['$=='](self.$finish().$type())) ? Opal.const_get_relative($nesting, 'SIMPLE_CHILDREN_TYPES')['$include?'](self.$start().$type()) : self.$start().$type()['$=='](self.$finish().$type()))) ? Opal.const_get_relative($nesting, 'SIMPLE_CHILDREN_TYPES')['$include?'](self.$finish().$type()) : $a) - }, TMP_RangeNode_compile_inline$q_26.$$arity = 0); - Opal.defn(self, '$compile_inline', TMP_RangeNode_compile_inline_27 = function $$compile_inline() { - var self = this; + + if (f == null) { + f = nil; + }; + return self.$class().$new(f);}, $$28.$$s = self, $$28.$$arity = 1, $$28)) + }, $Pathname_entries$27.$$arity = 0), nil) && 'entries'; + })($nesting[0], null, $nesting); + return (function($base, $parent_nesting) { + var self = $module($base, 'Kernel'); - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_RangeNode_compile_inline_27.$$arity = 0); - return (Opal.defn(self, '$compile_range_initialize', TMP_RangeNode_compile_range_initialize_28 = function $$compile_range_initialize() { - var self = this; + var $nesting = [self].concat($parent_nesting), $Kernel_Pathname$29; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_RangeNode_compile_range_initialize_28.$$arity = 0), nil) && 'compile_range_initialize'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $InclusiveRangeNode(){}; - var self = $InclusiveRangeNode = $klass($base, $super, 'InclusiveRangeNode', $InclusiveRangeNode); + return (Opal.def(self, '$Pathname', $Kernel_Pathname$29 = function $$Pathname(path) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_InclusiveRangeNode_compile_inline_29, TMP_InclusiveRangeNode_compile_range_initialize_30; + return $$($nesting, 'Pathname').$new(path) + }, $Kernel_Pathname$29.$$arity = 1), nil) && 'Pathname' + })($nesting[0], $nesting); +}; - - self.$handle("irange"); - - Opal.defn(self, '$compile_inline', TMP_InclusiveRangeNode_compile_inline_29 = function $$compile_inline() { - var self = this; +Opal.modules["opal/rewriters/break_finder"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $alias = Opal.alias; - return self.$push("$range(", self.$expr(self.$start()), ", ", self.$expr(self.$finish()), ", false)") - }, TMP_InclusiveRangeNode_compile_inline_29.$$arity = 0); - return (Opal.defn(self, '$compile_range_initialize', TMP_InclusiveRangeNode_compile_range_initialize_30 = function $$compile_range_initialize() { - var self = this; + Opal.add_stubs(['$require']); + + self.$require("opal/rewriter"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - return self.$push("Opal.Range.$new(", self.$expr(self.$start()), ", ", self.$expr(self.$finish()), ", false)") - }, TMP_InclusiveRangeNode_compile_range_initialize_30.$$arity = 0), nil) && 'compile_range_initialize'; - })($nesting[0], Opal.const_get_relative($nesting, 'RangeNode'), $nesting); - (function($base, $super, $parent_nesting) { - function $ExclusiveRangeNode(){}; - var self = $ExclusiveRangeNode = $klass($base, $super, 'ExclusiveRangeNode', $ExclusiveRangeNode); + var $nesting = [self].concat($parent_nesting); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ExclusiveRangeNode_compile_inline_31, TMP_ExclusiveRangeNode_compile_range_initialize_32; + return (function($base, $parent_nesting) { + var self = $module($base, 'Rewriters'); + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'BreakFinder'); + + var $nesting = [self].concat($parent_nesting), $BreakFinder_initialize$1, $BreakFinder_found_break$ques$2, $BreakFinder_on_break$3, $BreakFinder_stop_lookup$4; + + self.$$prototype.found_break = nil; - self.$handle("erange"); - Opal.defn(self, '$compile_inline', TMP_ExclusiveRangeNode_compile_inline_31 = function $$compile_inline() { + Opal.def(self, '$initialize', $BreakFinder_initialize$1 = function $$initialize() { var self = this; - return self.$push("$range(", self.$expr(self.$start()), ", ", self.$expr(self.$finish()), ", true)") - }, TMP_ExclusiveRangeNode_compile_inline_31.$$arity = 0); - return (Opal.defn(self, '$compile_range_initialize', TMP_ExclusiveRangeNode_compile_range_initialize_32 = function $$compile_range_initialize() { + return (self.found_break = false) + }, $BreakFinder_initialize$1.$$arity = 0); + + Opal.def(self, '$found_break?', $BreakFinder_found_break$ques$2 = function() { var self = this; - return self.$push("Opal.Range.$new(", self.$expr(self.$start()), ",", self.$expr(self.$finish()), ", true)") - }, TMP_ExclusiveRangeNode_compile_range_initialize_32.$$arity = 0), nil) && 'compile_range_initialize'; - })($nesting[0], Opal.const_get_relative($nesting, 'RangeNode'), $nesting); - (function($base, $super, $parent_nesting) { - function $RationalNode(){}; - var self = $RationalNode = $klass($base, $super, 'RationalNode', $RationalNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RationalNode_compile_33; - + return self.found_break + }, $BreakFinder_found_break$ques$2.$$arity = 0); - self.$handle("rational"); - self.$children("value"); - return (Opal.defn(self, '$compile', TMP_RationalNode_compile_33 = function $$compile() { + Opal.def(self, '$on_break', $BreakFinder_on_break$3 = function $$on_break(node) { var self = this; - return self.$push("" + "Opal.Rational.$new(" + (self.$value().$numerator()) + ", " + (self.$value().$denominator()) + ")") - }, TMP_RationalNode_compile_33.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $ComplexNode(){}; - var self = $ComplexNode = $klass($base, $super, 'ComplexNode', $ComplexNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ComplexNode_compile_34; - + + self.found_break = true; + return node; + }, $BreakFinder_on_break$3.$$arity = 1); - self.$handle("complex"); - self.$children("value"); - return (Opal.defn(self, '$compile', TMP_ComplexNode_compile_34 = function $$compile() { + Opal.def(self, '$stop_lookup', $BreakFinder_stop_lookup$4 = function $$stop_lookup(node) { var self = this; - return self.$push("" + "Opal.Complex.$new(" + (self.$value().$real()) + ", " + (self.$value().$imag()) + ")") - }, TMP_ComplexNode_compile_34.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + return nil + }, $BreakFinder_stop_lookup$4.$$arity = 1); + $alias(self, "on_for", "stop_lookup"); + $alias(self, "on_while", "stop_lookup"); + $alias(self, "on_while_post", "stop_lookup"); + $alias(self, "on_until", "stop_lookup"); + $alias(self, "on_until_post", "stop_lookup"); + return $alias(self, "on_block", "stop_lookup"); + })($nesting[0], $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/variables"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; +Opal.modules["opal/nodes/call"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $range = Opal.range; - Opal.add_stubs(['$require', '$handle', '$children', '$irb?', '$compiler', '$top?', '$scope', '$using_irb?', '$push', '$to_s', '$var_name', '$with_temp', '$property', '$wrap', '$add_local', '$expr', '$value', '$recv?', '$expr?', '$[]', '$name', '$add_ivar', '$helper', '$add_gvar', '$===', '$handle_global_match', '$handle_post_match', '$handle_pre_match', '$raise', '$index', '$class_variable_owner']); + Opal.add_stubs(['$require', '$handle', '$attr_reader', '$freeze', '$[]=', '$-', '$define_method', '$to_proc', '$include?', '$type', '$s', '$handle_special', '$record_method?', '$<<', '$method_calls', '$compiler', '$to_sym', '$meth', '$using_eval?', '$compile_eval_var', '$using_irb?', '$compile_irb_var', '$default_compile', '$private', '$iter', '$new', '$process', '$found_break?', '$splat?', '$!', '$empty?', '$collect_refinements_temps', '$scope', '$auto_await?', '$push', '$await_encountered=', '$invoke_using_refinement?', '$compile_using_refined_send', '$invoke_using_send?', '$compile_using_send', '$compile_simple_call_chain', '$compile_break_catcher', '$helper', '$compile_receiver', '$compile_method_name', '$compile_arguments', '$compile_block_pass', '$compile_refinements', '$recv', '$receiver_sexp', '$expr', '$arglist', '$children', '$map', '$iter_has_break?', '$unshift', '$line', '$method_jsid', '$any?', '$==', '$recvr', '$mid_to_jsid', '$to_s', '$with_temp', '$intern', '$irb?', '$top?', '$variable_like?', '$eval?', '$scope_variables', '$nil?', '$updated', '$async_await', '$!=', '$match?', '$method', '$arity', '$[]', '$each', '$add_special', '$inline_operators?', '$operator_helpers', '$fragment', '$call', '$resolve', '$requires', '$file', '$dirname', '$cleanpath', '$join', '$Pathname', '$inspect', '$length', '$warning', '$autoloads', '$required_trees', '$force_encoding', '$encoding', '$+', '$handle_block_given_call', '$def?', '$mid', '$module_name', '$accepts_using?', '$count', '$using_refinement', '$first', '$refinements_temp', '$arity_check?', '$defines_lambda', '$push_nesting?', '$new_temp', '$scope_locals', '$source_location', '$size', '$last', '$dynamic_require_severity', '$handle_part', '$===', '$is_a?', '$expand_path', '$split', '$error', '$each_with_object', '$pop']); + self.$require("set"); + self.$require("pathname"); self.$require("opal/nodes/base"); + self.$require("opal/rewriters/break_finder"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - - (function($base, $super, $parent_nesting) { - function $LocalVariableNode(){}; - var self = $LocalVariableNode = $klass($base, $super, 'LocalVariableNode', $LocalVariableNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'CallNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_LocalVariableNode_using_irb$q_1, TMP_LocalVariableNode_compile_3; + var $nesting = [self].concat($parent_nesting), $CallNode_add_special$1, $CallNode_initialize$2, $CallNode_compile$3, $CallNode_iter_has_break$ques$5, $CallNode_invoke_using_send$ques$6, $CallNode_invoke_using_refinement$ques$7, $CallNode_default_compile$8, $CallNode_compile_using_send$9, $CallNode_compile_using_refined_send$10, $CallNode_compile_receiver$11, $CallNode_compile_method_name$12, $CallNode_compile_arguments$13, $CallNode_compile_block_pass$14, $CallNode_compile_refinements$15, $CallNode_compile_break_catcher$17, $CallNode_compile_simple_call_chain$18, $CallNode_splat$ques$19, $CallNode_receiver_sexp$21, $CallNode_method_jsid$22, $CallNode_record_method$ques$23, $CallNode_compile_irb_var$24, $CallNode_compile_eval_var$26, $CallNode_using_irb$ques$27, $CallNode_using_eval$ques$28, $CallNode_variable_like$ques$29, $CallNode_sexp_with_arglist$30, $CallNode_auto_await$ques$31, $CallNode_handle_special$32, $CallNode$33, $CallNode$35, $CallNode$36, $CallNode$37, $CallNode$38, $CallNode$39, $CallNode$40, $CallNode$41, $CallNode$42, $CallNode$43, $CallNode_using_refinement$44, $CallNode$45, $CallNode$46, $CallNode$47, $CallNode$49, $CallNode$50, $CallNode$51, $CallNode$52, $CallNode$53, $CallNode_push_nesting$ques$54; + self.$$prototype.sexp = self.$$prototype.compiler = nil; - self.$handle("lvar"); - self.$children("var_name"); - - Opal.defn(self, '$using_irb?', TMP_LocalVariableNode_using_irb$q_1 = function() { - var $a, self = this; - - return ($truthy($a = self.$compiler()['$irb?']()) ? self.$scope()['$top?']() : $a) - }, TMP_LocalVariableNode_using_irb$q_1.$$arity = 0); - return (Opal.defn(self, '$compile', TMP_LocalVariableNode_compile_3 = function $$compile() { - var TMP_2, self = this; + self.$handle("send"); + self.$attr_reader("recvr", "meth", "arglist", "iter"); + Opal.const_set($nesting[0], 'SPECIALS', $hash2([], {})); + Opal.const_set($nesting[0], 'OPERATORS', $hash2(["+", "-", "*", "/", "<", "<=", ">", ">="], {"+": "plus", "-": "minus", "*": "times", "/": "divide", "<": "lt", "<=": "le", ">": "gt", ">=": "ge"}).$freeze()); + Opal.defs(self, '$add_special', $CallNode_add_special$1 = function $$add_special(name, options) { + var $iter = $CallNode_add_special$1.$$p, handler = $iter || nil, self = this, $writer = nil; + if ($iter) $CallNode_add_special$1.$$p = null; - if ($truthy(self['$using_irb?']())) { - } else { - return self.$push(self.$var_name().$to_s()) + + if ($iter) $CallNode_add_special$1.$$p = null;; + + if (options == null) { + options = $hash2([], {}); }; - return $send(self, 'with_temp', [], (TMP_2 = function(tmp){var self = TMP_2.$$s || this; -if (tmp == null) tmp = nil; - self.$push(self.$property(self.$var_name().$to_s())); - return self.$wrap("" + "((" + (tmp) + " = Opal.irb_vars", "" + ") == null ? nil : " + (tmp) + ")");}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - }, TMP_LocalVariableNode_compile_3.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $LocalAssignNode(){}; - var self = $LocalAssignNode = $klass($base, $super, 'LocalAssignNode', $LocalAssignNode); + $writer = [name, options]; + $send($$($nesting, 'SPECIALS'), '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return $send(self, 'define_method', ["" + "handle_" + (name)], handler.$to_proc()); + }, $CallNode_add_special$1.$$arity = -2); + + Opal.def(self, '$initialize', $CallNode_initialize$2 = function $$initialize($a) { + var $post_args, $rest_arg, $b, $c, $iter = $CallNode_initialize$2.$$p, $yield = $iter || nil, self = this, args = nil, rest = nil, last_arg = nil, $ret_or_1 = nil; + + if ($iter) $CallNode_initialize$2.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $CallNode_initialize$2, false, true), 'initialize', Opal.to_a($rest_arg), $iter); + $b = [].concat(Opal.to_a(self.sexp)), (self.recvr = ($b[0] == null ? nil : $b[0])), (self.meth = ($b[1] == null ? nil : $b[1])), (args = $slice.call($b, 2)), $b; + $b = [].concat(Opal.to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_arg = ($b[$c] == null ? nil : $b[$c])), $b; + if ($truthy((function() {if ($truthy(($ret_or_1 = last_arg))) { + return ["iter", "block_pass"]['$include?'](last_arg.$type()) + } else { + return $ret_or_1 + }; return nil; })())) { + + self.iter = last_arg; + args = rest; + } else { + self.iter = nil + }; + return (self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(args)))); + }, $CallNode_initialize$2.$$arity = -1); + + Opal.def(self, '$compile', $CallNode_compile$3 = function $$compile() {try { + + var $$4, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_LocalAssignNode_using_irb$q_4, TMP_LocalAssignNode_compile_5; + return $send(self, 'handle_special', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; + + if ($truthy(self['$record_method?']())) { + self.$compiler().$method_calls()['$<<'](self.$meth().$to_sym())}; + if ($truthy(self['$using_eval?']())) { + Opal.ret(self.$compile_eval_var())}; + if ($truthy(self['$using_irb?']())) { + Opal.ret(self.$compile_irb_var())}; + return self.$default_compile();}, $$4.$$s = self, $$4.$$arity = 0, $$4)) + } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } + }, $CallNode_compile$3.$$arity = 0); + self.$private(); - self.$handle("lvasgn"); - self.$children("var_name", "value"); + Opal.def(self, '$iter_has_break?', $CallNode_iter_has_break$ques$5 = function() { + var self = this, finder = nil; + + + if ($truthy(self.$iter())) { + } else { + return false + }; + finder = $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'BreakFinder').$new(); + finder.$process(self.$iter()); + return finder['$found_break?'](); + }, $CallNode_iter_has_break$ques$5.$$arity = 0); - Opal.defn(self, '$using_irb?', TMP_LocalAssignNode_using_irb$q_4 = function() { - var $a, self = this; + Opal.def(self, '$invoke_using_send?', $CallNode_invoke_using_send$ques$6 = function() { + var self = this, $ret_or_2 = nil; + + if ($truthy(($ret_or_2 = self.$iter()))) { + return $ret_or_2 + } else { + return self['$splat?']() + } + }, $CallNode_invoke_using_send$ques$6.$$arity = 0); + + Opal.def(self, '$invoke_using_refinement?', $CallNode_invoke_using_refinement$ques$7 = function() { + var self = this; - return ($truthy($a = self.$compiler()['$irb?']()) ? self.$scope()['$top?']() : $a) - }, TMP_LocalAssignNode_using_irb$q_4.$$arity = 0); - return (Opal.defn(self, '$compile', TMP_LocalAssignNode_compile_5 = function $$compile() { - var $a, $b, self = this; + return self.$scope().$scope().$collect_refinements_temps()['$empty?']()['$!']() + }, $CallNode_invoke_using_refinement$ques$7.$$arity = 0); + + Opal.def(self, '$default_compile', $CallNode_default_compile$8 = function $$default_compile() { + var self = this, $writer = nil; - if ($truthy(self['$using_irb?']())) { - self.$push("" + "Opal.irb_vars" + (self.$property(self.$var_name().$to_s())) + " = ") - } else { + if ($truthy(self['$auto_await?']())) { - self.$add_local(self.$var_name().$to_s()); - self.$push("" + (self.$var_name()) + " = "); - }; - self.$push(self.$expr(self.$value())); - if ($truthy(($truthy($a = ($truthy($b = self['$recv?']()) ? $b : self['$expr?']())) ? self.$value() : $a))) { - return self.$wrap("(", ")") - } else { - return nil + self.$push("await "); + + $writer = [true]; + $send(self.$scope(), 'await_encountered=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];;}; + if ($truthy(self['$invoke_using_refinement?']())) { + self.$compile_using_refined_send() + } else if ($truthy(self['$invoke_using_send?']())) { + self.$compile_using_send() + } else { + self.$compile_simple_call_chain() }; - }, TMP_LocalAssignNode_compile_5.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $LocalDeclareNode(){}; - var self = $LocalDeclareNode = $klass($base, $super, 'LocalDeclareNode', $LocalDeclareNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_LocalDeclareNode_compile_6; + return self.$compile_break_catcher(); + }, $CallNode_default_compile$8.$$arity = 0); + + Opal.def(self, '$compile_using_send', $CallNode_compile_using_send$9 = function $$compile_using_send() { + var self = this; + + self.$helper("send"); + self.$push("$send("); + self.$compile_receiver(); + self.$compile_method_name(); + self.$compile_arguments(); + self.$compile_block_pass(); + return self.$push(")"); + }, $CallNode_compile_using_send$9.$$arity = 0); - self.$handle("lvdeclare"); - self.$children("var_name"); - return (Opal.defn(self, '$compile', TMP_LocalDeclareNode_compile_6 = function $$compile() { + Opal.def(self, '$compile_using_refined_send', $CallNode_compile_using_refined_send$10 = function $$compile_using_refined_send() { var self = this; - self.$add_local(self.$var_name().$to_s()); - return nil; - }, TMP_LocalDeclareNode_compile_6.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $InstanceVariableNode(){}; - var self = $InstanceVariableNode = $klass($base, $super, 'InstanceVariableNode', $InstanceVariableNode); + self.$helper("refined_send"); + self.$push("$refined_send("); + self.$compile_refinements(); + self.$compile_receiver(); + self.$compile_method_name(); + self.$compile_arguments(); + self.$compile_block_pass(); + return self.$push(")"); + }, $CallNode_compile_using_refined_send$10.$$arity = 0); + + Opal.def(self, '$compile_receiver', $CallNode_compile_receiver$11 = function $$compile_receiver() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_InstanceVariableNode_var_name_7, TMP_InstanceVariableNode_compile_8; + return self.$push(self.$recv(self.$receiver_sexp())) + }, $CallNode_compile_receiver$11.$$arity = 0); + + Opal.def(self, '$compile_method_name', $CallNode_compile_method_name$12 = function $$compile_method_name() { + var self = this; + return self.$push("" + ", '" + (self.$meth()) + "'") + }, $CallNode_compile_method_name$12.$$arity = 0); - self.$handle("ivar"); - self.$children("name"); + Opal.def(self, '$compile_arguments', $CallNode_compile_arguments$13 = function $$compile_arguments() { + var self = this; + + + self.$push(", "); + if ($truthy(self['$splat?']())) { + return self.$push(self.$expr(self.$arglist())) + } else if ($truthy(self.$arglist().$children()['$empty?']())) { + return self.$push("[]") + } else { + return self.$push("[", self.$expr(self.$arglist()), "]") + }; + }, $CallNode_compile_arguments$13.$$arity = 0); - Opal.defn(self, '$var_name', TMP_InstanceVariableNode_var_name_7 = function $$var_name() { + Opal.def(self, '$compile_block_pass', $CallNode_compile_block_pass$14 = function $$compile_block_pass() { var self = this; - return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, TMP_InstanceVariableNode_var_name_7.$$arity = 0); - return (Opal.defn(self, '$compile', TMP_InstanceVariableNode_compile_8 = function $$compile() { - var self = this, name = nil; + if ($truthy(self.$iter())) { + return self.$push(", ", self.$expr(self.$iter())) + } else { + return nil + } + }, $CallNode_compile_block_pass$14.$$arity = 0); + + Opal.def(self, '$compile_refinements', $CallNode_compile_refinements$15 = function $$compile_refinements() { + var $$16, self = this, refinements = nil; - name = self.$property(self.$var_name()); - self.$add_ivar(name); - return self.$push("" + "self" + (name)); - }, TMP_InstanceVariableNode_compile_8.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $InstanceAssignNode(){}; - var self = $InstanceAssignNode = $klass($base, $super, 'InstanceAssignNode', $InstanceAssignNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_InstanceAssignNode_var_name_9, TMP_InstanceAssignNode_compile_10; + refinements = $send(self.$scope().$collect_refinements_temps(), 'map', [], ($$16 = function(i){var self = $$16.$$s == null ? this : $$16.$$s; + + + if (i == null) { + i = nil; + }; + return self.$s("js_tmp", i);}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + return self.$push(self.$expr($send(self, 's', ["array"].concat(Opal.to_a(refinements)))), ", "); + }, $CallNode_compile_refinements$15.$$arity = 0); - self.$handle("ivasgn"); - self.$children("name", "value"); + Opal.def(self, '$compile_break_catcher', $CallNode_compile_break_catcher$17 = function $$compile_break_catcher() { + var self = this; + + if ($truthy(self['$iter_has_break?']())) { + + self.$unshift("return "); + self.$unshift("(function(){var $brk = Opal.new_brk(); try {"); + return self.$line("} catch (err) { if (err === $brk) { return err.$v } else { throw err } }})()"); + } else { + return nil + } + }, $CallNode_compile_break_catcher$17.$$arity = 0); - Opal.defn(self, '$var_name', TMP_InstanceAssignNode_var_name_9 = function $$var_name() { + Opal.def(self, '$compile_simple_call_chain', $CallNode_compile_simple_call_chain$18 = function $$compile_simple_call_chain() { var self = this; - return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, TMP_InstanceAssignNode_var_name_9.$$arity = 0); - return (Opal.defn(self, '$compile', TMP_InstanceAssignNode_compile_10 = function $$compile() { - var $a, $b, self = this, name = nil; + return self.$push(self.$recv(self.$receiver_sexp()), self.$method_jsid(), "(", self.$expr(self.$arglist()), ")") + }, $CallNode_compile_simple_call_chain$18.$$arity = 0); + + Opal.def(self, '$splat?', $CallNode_splat$ques$19 = function() { + var $$20, self = this; - - name = self.$property(self.$var_name()); - self.$push("" + "self" + (name) + " = "); - self.$push(self.$expr(self.$value())); - if ($truthy(($truthy($a = ($truthy($b = self['$recv?']()) ? $b : self['$expr?']())) ? self.$value() : $a))) { - return self.$wrap("(", ")") - } else { - return nil - }; - }, TMP_InstanceAssignNode_compile_10.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $GlobalVariableNode(){}; - var self = $GlobalVariableNode = $klass($base, $super, 'GlobalVariableNode', $GlobalVariableNode); + return $send(self.$arglist().$children(), 'any?', [], ($$20 = function(a){var self = $$20.$$s == null ? this : $$20.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_GlobalVariableNode_var_name_11, TMP_GlobalVariableNode_compile_12; + + + if (a == null) { + a = nil; + }; + return a.$type()['$==']("splat");}, $$20.$$s = self, $$20.$$arity = 1, $$20)) + }, $CallNode_splat$ques$19.$$arity = 0); + + Opal.def(self, '$receiver_sexp', $CallNode_receiver_sexp$21 = function $$receiver_sexp() { + var self = this, $ret_or_3 = nil; + if ($truthy(($ret_or_3 = self.$recvr()))) { + return $ret_or_3 + } else { + return self.$s("self") + } + }, $CallNode_receiver_sexp$21.$$arity = 0); - self.$handle("gvar"); - self.$children("name"); + Opal.def(self, '$method_jsid', $CallNode_method_jsid$22 = function $$method_jsid() { + var self = this; + + return self.$mid_to_jsid(self.$meth().$to_s()) + }, $CallNode_method_jsid$22.$$arity = 0); - Opal.defn(self, '$var_name', TMP_GlobalVariableNode_var_name_11 = function $$var_name() { + Opal.def(self, '$record_method?', $CallNode_record_method$ques$23 = function() { var self = this; - return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, TMP_GlobalVariableNode_var_name_11.$$arity = 0); - return (Opal.defn(self, '$compile', TMP_GlobalVariableNode_compile_12 = function $$compile() { - var self = this, name = nil; + return true + }, $CallNode_record_method$ques$23.$$arity = 0); + + Opal.def(self, '$compile_irb_var', $CallNode_compile_irb_var$24 = function $$compile_irb_var() { + var $$25, self = this; - - self.$helper("gvars"); - name = self.$property(self.$var_name()); - self.$add_gvar(name); - return self.$push("" + "$gvars" + (name)); - }, TMP_GlobalVariableNode_compile_12.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $BackRefNode(){}; - var self = $BackRefNode = $klass($base, $super, 'BackRefNode', $BackRefNode); + return $send(self, 'with_temp', [], ($$25 = function(tmp){var self = $$25.$$s == null ? this : $$25.$$s, lvar = nil, call = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BackRefNode_compile_13, TMP_BackRefNode_handle_global_match_15, TMP_BackRefNode_handle_pre_match_17, TMP_BackRefNode_handle_post_match_19; + + + if (tmp == null) { + tmp = nil; + }; + lvar = self.$meth(); + call = self.$s("send", self.$s("self"), self.$meth().$intern(), self.$s("arglist")); + return self.$push("" + "((" + (tmp) + " = Opal.irb_vars." + (lvar) + ") == null ? ", self.$expr(call), "" + " : " + (tmp) + ")");}, $$25.$$s = self, $$25.$$arity = 1, $$25)) + }, $CallNode_compile_irb_var$24.$$arity = 0); + + Opal.def(self, '$compile_eval_var', $CallNode_compile_eval_var$26 = function $$compile_eval_var() { + var self = this; + return self.$push(self.$meth().$to_s()) + }, $CallNode_compile_eval_var$26.$$arity = 0); - self.$handle("back_ref"); + Opal.def(self, '$using_irb?', $CallNode_using_irb$ques$27 = function() { + var self = this, $ret_or_4 = nil, $ret_or_5 = nil; + + if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.compiler['$irb?']()))) { + return self.$scope()['$top?']() + } else { + return $ret_or_5 + }; return nil; })()))) { + return self['$variable_like?']() + } else { + return $ret_or_4 + } + }, $CallNode_using_irb$ques$27.$$arity = 0); - Opal.defn(self, '$compile', TMP_BackRefNode_compile_13 = function $$compile() { - var self = this, $iter = TMP_BackRefNode_compile_13.$$p, $yield = $iter || nil, $case = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$using_eval?', $CallNode_using_eval$ques$28 = function() { + var self = this, $ret_or_6 = nil, $ret_or_7 = nil; - if ($iter) TMP_BackRefNode_compile_13.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; + if ($truthy(($ret_or_6 = (function() {if ($truthy(($ret_or_7 = self.compiler['$eval?']()))) { + return self.$scope()['$top?']() + } else { + return $ret_or_7 + }; return nil; })()))) { + return self.compiler.$scope_variables()['$include?'](self.$meth()) + } else { + return $ret_or_6 } - - self.$helper("gvars"); - return (function() {$case = self.$var_name(); - if ("&"['$===']($case)) {return self.$handle_global_match()} - else if ("'"['$===']($case)) {return self.$handle_post_match()} - else if ("`"['$===']($case)) {return self.$handle_pre_match()} - else if ("+"['$===']($case)) {return $send(self, Opal.find_super_dispatcher(self, 'compile', TMP_BackRefNode_compile_13, false), $zuper, $iter)} - else {return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'))}})(); - }, TMP_BackRefNode_compile_13.$$arity = 0); - - Opal.defn(self, '$handle_global_match', TMP_BackRefNode_handle_global_match_15 = function $$handle_global_match() { - var TMP_14, self = this; - - return $send(self, 'with_temp', [], (TMP_14 = function(tmp){var self = TMP_14.$$s || this; -if (tmp == null) tmp = nil; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](0))")}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)) - }, TMP_BackRefNode_handle_global_match_15.$$arity = 0); - - Opal.defn(self, '$handle_pre_match', TMP_BackRefNode_handle_pre_match_17 = function $$handle_pre_match() { - var TMP_16, self = this; - - return $send(self, 'with_temp', [], (TMP_16 = function(tmp){var self = TMP_16.$$s || this; -if (tmp == null) tmp = nil; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$pre_match())")}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)) - }, TMP_BackRefNode_handle_pre_match_17.$$arity = 0); - return (Opal.defn(self, '$handle_post_match', TMP_BackRefNode_handle_post_match_19 = function $$handle_post_match() { - var TMP_18, self = this; - - return $send(self, 'with_temp', [], (TMP_18 = function(tmp){var self = TMP_18.$$s || this; -if (tmp == null) tmp = nil; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + ".$post_match())")}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)) - }, TMP_BackRefNode_handle_post_match_19.$$arity = 0), nil) && 'handle_post_match'; - })($nesting[0], Opal.const_get_relative($nesting, 'GlobalVariableNode'), $nesting); - (function($base, $super, $parent_nesting) { - function $GlobalAssignNode(){}; - var self = $GlobalAssignNode = $klass($base, $super, 'GlobalAssignNode', $GlobalAssignNode); + }, $CallNode_using_eval$ques$28.$$arity = 0); + + Opal.def(self, '$variable_like?', $CallNode_variable_like$ques$29 = function() { + var self = this, $ret_or_8 = nil, $ret_or_9 = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_GlobalAssignNode_var_name_20, TMP_GlobalAssignNode_compile_21; + if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = self.$arglist()['$=='](self.$s("arglist"))))) { + return self.$recvr()['$nil?']() + } else { + return $ret_or_9 + }; return nil; })()))) { + return self.$iter()['$nil?']() + } else { + return $ret_or_8 + } + }, $CallNode_variable_like$ques$29.$$arity = 0); + + Opal.def(self, '$sexp_with_arglist', $CallNode_sexp_with_arglist$30 = function $$sexp_with_arglist() { + var self = this; + return self.sexp.$updated(nil, [self.$recvr(), self.$meth(), self.$arglist()]) + }, $CallNode_sexp_with_arglist$30.$$arity = 0); - self.$handle("gvasgn"); - self.$children("name", "value"); + Opal.def(self, '$auto_await?', $CallNode_auto_await$ques$31 = function() { + var self = this, awaited_set = nil, $ret_or_10 = nil, $ret_or_11 = nil; + + + awaited_set = self.$compiler().$async_await(); + if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = awaited_set))) { + return awaited_set['$!='](true) + } else { + return $ret_or_11 + }; return nil; })()))) { + return awaited_set['$match?'](self.$meth().$to_s()) + } else { + return $ret_or_10 + }; + }, $CallNode_auto_await$ques$31.$$arity = 0); - Opal.defn(self, '$var_name', TMP_GlobalAssignNode_var_name_20 = function $$var_name() { - var self = this; + Opal.def(self, '$handle_special', $CallNode_handle_special$32 = function $$handle_special() { + var $iter = $CallNode_handle_special$32.$$p, compile_default = $iter || nil, self = this, method = nil; - return self.$name().$to_s()['$[]']($range(1, -1, false)) - }, TMP_GlobalAssignNode_var_name_20.$$arity = 0); - return (Opal.defn(self, '$compile', TMP_GlobalAssignNode_compile_21 = function $$compile() { - var $a, $b, self = this, name = nil; + if ($iter) $CallNode_handle_special$32.$$p = null; + + + if ($iter) $CallNode_handle_special$32.$$p = null;; + if ($truthy($$($nesting, 'SPECIALS')['$include?'](self.$meth()))) { + + method = self.$method("" + "handle_" + (self.$meth())); + if (method.$arity()['$=='](1)) { + return method['$[]'](compile_default) + } else { + return method['$[]']() + }; + } else { + return Opal.yieldX(compile_default, []); + }; + }, $CallNode_handle_special$32.$$arity = 0); + $send($$($nesting, 'OPERATORS'), 'each', [], ($CallNode$33 = function(operator, name){var self = $CallNode$33.$$s == null ? this : $CallNode$33.$$s, $$34; - self.$helper("gvars"); - name = self.$property(self.$var_name()); - self.$push("" + "$gvars" + (name) + " = "); - self.$push(self.$expr(self.$value())); - if ($truthy(($truthy($a = ($truthy($b = self['$recv?']()) ? $b : self['$expr?']())) ? self.$value() : $a))) { - return self.$wrap("(", ")") + + if (operator == null) { + operator = nil; + }; + + if (name == null) { + name = nil; + }; + return $send(self, 'add_special', [operator.$to_sym()], ($$34 = function(compile_default){var self = $$34.$$s == null ? this : $$34.$$s, $a, lhs = nil, rhs = nil; + + + + if (compile_default == null) { + compile_default = nil; + }; + if ($truthy(self.$compiler()['$inline_operators?']())) { + + if ($truthy(self['$record_method?']())) { + self.$compiler().$method_calls()['$<<'](operator.$to_sym())}; + self.$compiler().$operator_helpers()['$<<'](operator.$to_sym()); + $a = [self.$expr(self.$recvr()), self.$expr(self.$arglist())], (lhs = $a[0]), (rhs = $a[1]), $a; + self.$push(self.$fragment("" + "$rb_" + (name) + "(")); + self.$push(lhs); + self.$push(self.$fragment(", ")); + self.$push(rhs); + return self.$push(self.$fragment(")")); } else { - return nil + return compile_default.$call() + };}, $$34.$$s = self, $$34.$$arity = 1, $$34));}, $CallNode$33.$$s = self, $CallNode$33.$$arity = 2, $CallNode$33)); + $send(self, 'add_special', ["require"], ($CallNode$35 = function(compile_default){var self = $CallNode$35.$$s == null ? this : $CallNode$35.$$s, str = nil; + + + + if (compile_default == null) { + compile_default = nil; }; - }, TMP_GlobalAssignNode_compile_21.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $NthrefNode(){}; - var self = $NthrefNode = $klass($base, $super, 'NthrefNode', $NthrefNode); + str = $$($nesting, 'DependencyResolver').$new(self.$compiler(), self.$arglist().$children()['$[]'](0)).$resolve(); + if ($truthy(str['$nil?']())) { + } else { + self.$compiler().$requires()['$<<'](str) + }; + return compile_default.$call();}, $CallNode$35.$$s = self, $CallNode$35.$$arity = 1, $CallNode$35)); + $send(self, 'add_special', ["require_relative"], ($CallNode$36 = function(){var self = $CallNode$36.$$s == null ? this : $CallNode$36.$$s, arg = nil, file = nil, dir = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NthrefNode_compile_23; + + arg = self.$arglist().$children()['$[]'](0); + file = self.$compiler().$file(); + if (arg.$type()['$==']("str")) { + + dir = $$($nesting, 'File').$dirname(file); + self.$compiler().$requires()['$<<'](self.$Pathname(dir).$join(arg.$children()['$[]'](0)).$cleanpath().$to_s());}; + self.$push(self.$fragment("" + "self.$require(" + (file.$inspect()) + "+ '/../' + ")); + self.$push(self.$process(self.$arglist())); + return self.$push(self.$fragment(")"));}, $CallNode$36.$$s = self, $CallNode$36.$$arity = 0, $CallNode$36)); + $send(self, 'add_special', ["autoload"], ($CallNode$37 = function(compile_default){var self = $CallNode$37.$$s == null ? this : $CallNode$37.$$s, args = nil, $ret_or_12 = nil, str = nil; - - self.$handle("nth_ref"); - self.$children("index"); - return (Opal.defn(self, '$compile', TMP_NthrefNode_compile_23 = function $$compile() { - var TMP_22, self = this; + + + if (compile_default == null) { + compile_default = nil; + }; + args = self.$arglist().$children(); + if ($truthy((function() {if ($truthy(($ret_or_12 = args.$length()['$=='](2)))) { + return args['$[]'](0).$type()['$==']("sym") + } else { + return $ret_or_12 + }; return nil; })())) { + + str = $$($nesting, 'DependencyResolver').$new(self.$compiler(), args['$[]'](1), "ignore").$resolve(); + if ($truthy(str['$nil?']())) { + self.$compiler().$warning("" + "File for autoload of constant '" + (args['$[]'](0).$children()['$[]'](0)) + "' could not be bundled!") + } else { + + self.$compiler().$requires()['$<<'](str); + self.$compiler().$autoloads()['$<<'](str); + };}; + return compile_default.$call();}, $CallNode$37.$$s = self, $CallNode$37.$$arity = 1, $CallNode$37)); + $send(self, 'add_special', ["require_tree"], ($CallNode$38 = function(compile_default){var self = $CallNode$38.$$s == null ? this : $CallNode$38.$$s, $a, first_arg = nil, rest = nil, relative_path = nil, dir = nil, full_path = nil; - self.$helper("gvars"); - return $send(self, 'with_temp', [], (TMP_22 = function(tmp){var self = TMP_22.$$s || this; -if (tmp == null) tmp = nil; - return self.$push("" + "((" + (tmp) + " = $gvars['~']) === nil ? nil : " + (tmp) + "['$[]'](" + (self.$index()) + "))")}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22)); - }, TMP_NthrefNode_compile_23.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $ClassVariableNode(){}; - var self = $ClassVariableNode = $klass($base, $super, 'ClassVariableNode', $ClassVariableNode); + + if (compile_default == null) { + compile_default = nil; + }; + $a = [].concat(Opal.to_a(self.$arglist().$children())), (first_arg = ($a[0] == null ? nil : $a[0])), (rest = $slice.call($a, 1)), $a; + if (first_arg.$type()['$==']("str")) { + + relative_path = first_arg.$children()['$[]'](0); + self.$compiler().$required_trees()['$<<'](relative_path); + dir = $$($nesting, 'File').$dirname(self.$compiler().$file()); + full_path = self.$Pathname(dir).$join(relative_path).$cleanpath().$to_s(); + full_path.$force_encoding(relative_path.$encoding()); + first_arg = first_arg.$updated(nil, [full_path]);}; + self.arglist = self.$arglist().$updated(nil, $rb_plus([first_arg], rest)); + return compile_default.$call();}, $CallNode$38.$$s = self, $CallNode$38.$$arity = 1, $CallNode$38)); + $send(self, 'add_special', ["block_given?"], ($CallNode$39 = function(){var self = $CallNode$39.$$s == null ? this : $CallNode$39.$$s; + if (self.sexp == null) self.sexp = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassVariableNode_compile_25; + return self.$push(self.$compiler().$handle_block_given_call(self.sexp))}, $CallNode$39.$$s = self, $CallNode$39.$$arity = 0, $CallNode$39)); + $send(self, 'add_special', ["__callee__"], ($CallNode$40 = function(){var self = $CallNode$40.$$s == null ? this : $CallNode$40.$$s; - - self.$handle("cvar"); - self.$children("name"); - return (Opal.defn(self, '$compile', TMP_ClassVariableNode_compile_25 = function $$compile() { - var TMP_24, self = this; - - return $send(self, 'with_temp', [], (TMP_24 = function(tmp){var self = TMP_24.$$s || this; -if (tmp == null) tmp = nil; - return self.$push("" + "((" + (tmp) + " = " + (self.$class_variable_owner()) + ".$$cvars['" + (self.$name()) + "']) == null ? nil : " + (tmp) + ")")}, TMP_24.$$s = self, TMP_24.$$arity = 1, TMP_24)) - }, TMP_ClassVariableNode_compile_25.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $ClassVarAssignNode(){}; - var self = $ClassVarAssignNode = $klass($base, $super, 'ClassVarAssignNode', $ClassVarAssignNode); + if ($truthy(self.$scope()['$def?']())) { + return self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())) + } else { + return self.$push(self.$fragment("nil")) + }}, $CallNode$40.$$s = self, $CallNode$40.$$arity = 0, $CallNode$40)); + $send(self, 'add_special', ["__method__"], ($CallNode$41 = function(){var self = $CallNode$41.$$s == null ? this : $CallNode$41.$$s; + + if ($truthy(self.$scope()['$def?']())) { + return self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())) + } else { + return self.$push(self.$fragment("nil")) + }}, $CallNode$41.$$s = self, $CallNode$41.$$arity = 0, $CallNode$41)); + $send(self, 'add_special', ["__dir__"], ($CallNode$42 = function(){var self = $CallNode$42.$$s == null ? this : $CallNode$42.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassVarAssignNode_compile_26; + return self.$push($$($nesting, 'File').$dirname($$$($$($nesting, 'Opal'), 'Compiler').$module_name(self.$compiler().$file())).$inspect())}, $CallNode$42.$$s = self, $CallNode$42.$$arity = 0, $CallNode$42)); + $send(self, 'add_special', ["using"], ($CallNode$43 = function(compile_default){var self = $CallNode$43.$$s == null ? this : $CallNode$43.$$s, $ret_or_13 = nil; + + + if (compile_default == null) { + compile_default = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_13 = self.$scope()['$accepts_using?']()))) { + return self.$arglist().$children().$count()['$=='](1) + } else { + return $ret_or_13 + }; return nil; })())) { + return self.$using_refinement(self.$arglist().$children().$first()) + } else { + return compile_default.$call() + };}, $CallNode$43.$$s = self, $CallNode$43.$$arity = 1, $CallNode$43)); - self.$handle("cvasgn"); - self.$children("name", "value"); - return (Opal.defn(self, '$compile', TMP_ClassVarAssignNode_compile_26 = function $$compile() { - var self = this; - - return self.$push("" + "(Opal.class_variable_set(" + (self.$class_variable_owner()) + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), "))") - }, TMP_ClassVarAssignNode_compile_26.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; + Opal.def(self, '$using_refinement', $CallNode_using_refinement$44 = function $$using_refinement(arg) { + var $a, self = this, prev = nil, curr = nil; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/constants"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; + + $a = [].concat(Opal.to_a(self.$scope().$refinements_temp())), (prev = ($a[0] == null ? nil : $a[0])), (curr = ($a[1] == null ? nil : $a[1])), $a; + if ($truthy(prev)) { + return self.$push("" + "(" + (curr) + " = " + (prev) + ".slice(), " + (curr) + ".push(", self.$expr(arg), "), self)") + } else { + return self.$push("" + "(" + (curr) + " = [", self.$expr(arg), "], self)") + }; + }, $CallNode_using_refinement$44.$$arity = 1); + $send(self, 'add_special', ["debugger"], ($CallNode$45 = function(){var self = $CallNode$45.$$s == null ? this : $CallNode$45.$$s; - Opal.add_stubs(['$require', '$handle', '$children', '$magical_data_const?', '$push', '$const_scope', '$recv', '$name', '$eval?', '$compiler', '$nil?', '$==', '$eof_content', '$base', '$expr', '$value']); - - self.$require("opal/nodes/base"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + return self.$push(self.$fragment("debugger"))}, $CallNode$45.$$s = self, $CallNode$45.$$arity = 0, $CallNode$45)); + $send(self, 'add_special', ["__OPAL_COMPILER_CONFIG__"], ($CallNode$46 = function(){var self = $CallNode$46.$$s == null ? this : $CallNode$46.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.$push(self.$fragment("" + "Opal.hash({ arity_check: " + (self.$compiler()['$arity_check?']()) + " })"))}, $CallNode$46.$$s = self, $CallNode$46.$$arity = 0, $CallNode$46)); + $send(self, 'add_special', ["lambda"], ($CallNode$47 = function(compile_default){var self = $CallNode$47.$$s == null ? this : $CallNode$47.$$s, $$48; - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + + + if (compile_default == null) { + compile_default = nil; + }; + return $send(self.$scope(), 'defines_lambda', [], ($$48 = function(){var self = $$48.$$s == null ? this : $$48.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return compile_default.$call()}, $$48.$$s = self, $$48.$$arity = 0, $$48));}, $CallNode$47.$$s = self, $CallNode$47.$$arity = 1, $CallNode$47)); + $send(self, 'add_special', ["nesting"], ($CallNode$49 = function(compile_default){var self = $CallNode$49.$$s == null ? this : $CallNode$49.$$s, push_nesting = nil; - - (function($base, $super, $parent_nesting) { - function $ConstNode(){}; - var self = $ConstNode = $klass($base, $super, 'ConstNode', $ConstNode); + + + if (compile_default == null) { + compile_default = nil; + }; + push_nesting = self['$push_nesting?'](); + if ($truthy(push_nesting)) { + self.$push("(Opal.Module.$$nesting = $nesting, ")}; + compile_default.$call(); + if ($truthy(push_nesting)) { + return self.$push(")") + } else { + return nil + };}, $CallNode$49.$$s = self, $CallNode$49.$$arity = 1, $CallNode$49)); + $send(self, 'add_special', ["constants"], ($CallNode$50 = function(compile_default){var self = $CallNode$50.$$s == null ? this : $CallNode$50.$$s, push_nesting = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ConstNode_compile_1, TMP_ConstNode_magical_data_const$q_2; + + + if (compile_default == null) { + compile_default = nil; + }; + push_nesting = self['$push_nesting?'](); + if ($truthy(push_nesting)) { + self.$push("(Opal.Module.$$nesting = $nesting, ")}; + compile_default.$call(); + if ($truthy(push_nesting)) { + return self.$push(")") + } else { + return nil + };}, $CallNode$50.$$s = self, $CallNode$50.$$arity = 1, $CallNode$50)); + $send(self, 'add_special', ["eval"], ($CallNode$51 = function(compile_default){var self = $CallNode$51.$$s == null ? this : $CallNode$51.$$s, $ret_or_14 = nil, temp = nil, scope_variables = nil; + + + if (compile_default == null) { + compile_default = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_14 = self.$arglist().$children().$length()['$!='](1)))) { + return $ret_or_14 + } else { + return [self.$s("self"), nil]['$include?'](self.$recvr())['$!']() + }; return nil; })())) { + return compile_default.$call();}; + temp = self.$scope().$new_temp(); + scope_variables = $send(self.$scope().$scope_locals(), 'map', [], "to_s".$to_proc()).$inspect(); + self.$push("" + "(" + (temp) + " = ", self.$expr(self.$arglist())); + self.$push("" + ", typeof Opal.compile === 'function' ? eval(Opal.compile(" + (temp)); + self.$push(", {scope_variables: ", scope_variables); + self.$push("" + ", arity_check: " + (self.$compiler()['$arity_check?']()) + ", file: '(eval)', eval: true})) : "); + return self.$push("" + "self.$eval(" + (temp) + "))");}, $CallNode$51.$$s = self, $CallNode$51.$$arity = 1, $CallNode$51)); + $send(self, 'add_special', ["binding"], ($CallNode$52 = function(compile_default){var self = $CallNode$52.$$s == null ? this : $CallNode$52.$$s; + + + + if (compile_default == null) { + compile_default = nil; + }; + if ($truthy(self.$recvr()['$nil?']())) { + } else { + return compile_default.$call(); + }; + self.$push("Opal.Binding.$new("); + self.$push(" function($code, $value) {"); + self.$push(" if (typeof $value === 'undefined') {"); + self.$push(" return eval($code);"); + self.$push(" }"); + self.$push(" else {"); + self.$push(" return eval($code + ' = $value');"); + self.$push(" }"); + self.$push(" },"); + self.$push(" ", $send(self.$scope().$scope_locals(), 'map', [], "to_s".$to_proc()).$inspect(), ","); + self.$push(" self,"); + self.$push(" ", self.$source_location()); + return self.$push(")");}, $CallNode$52.$$s = self, $CallNode$52.$$arity = 1, $CallNode$52)); + $send(self, 'add_special', ["__await__"], ($CallNode$53 = function(compile_default){var self = $CallNode$53.$$s == null ? this : $CallNode$53.$$s, $writer = nil; + + + + if (compile_default == null) { + compile_default = nil; + }; + if ($truthy(self.$compiler().$async_await())) { + + self.$push(self.$fragment("(await (")); + self.$push(self.$process(self.$recvr())); + self.$push(self.$fragment("))")); + + $writer = [true]; + $send(self.$scope(), 'await_encountered=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; + } else { + return compile_default.$call() + };}, $CallNode$53.$$s = self, $CallNode$53.$$arity = 1, $CallNode$53)); - self.$handle("const"); - self.$children("const_scope", "name"); - - Opal.defn(self, '$compile', TMP_ConstNode_compile_1 = function $$compile() { - var self = this; + Opal.def(self, '$push_nesting?', $CallNode_push_nesting$ques$54 = function() { + var self = this, recv = nil, $ret_or_15 = nil, $ret_or_16 = nil, $ret_or_17 = nil; - if ($truthy(self['$magical_data_const?']())) { - return self.$push("$__END__") - } else if ($truthy(self.$const_scope())) { - return self.$push("Opal.const_get_qualified(", self.$recv(self.$const_scope()), "" + ", '" + (self.$name()) + "')") - } else if ($truthy(self.$compiler()['$eval?']())) { - return self.$push("" + "Opal.const_get_relative($nesting, '" + (self.$name()) + "')") + + recv = self.$children().$first(); + if ($truthy(($ret_or_15 = self.$children().$size()['$=='](2)))) { + + if ($truthy(($ret_or_16 = recv['$nil?']()))) { + return $ret_or_16 } else { - return self.$push("" + "Opal.const_get_relative($nesting, '" + (self.$name()) + "')") - } - }, TMP_ConstNode_compile_1.$$arity = 0); - return (Opal.defn(self, '$magical_data_const?', TMP_ConstNode_magical_data_const$q_2 = function() { - var $a, $b, self = this; + + if ($truthy(($ret_or_17 = recv.$type()['$==']("const")))) { + return recv.$children().$last()['$==']("Module") + } else { + return $ret_or_17 + }; + }; + } else { + return $ret_or_15 + }; + }, $CallNode_push_nesting$ques$54.$$arity = 0); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DependencyResolver'); - return ($truthy($a = ($truthy($b = self.$const_scope()['$nil?']()) ? self.$name()['$==']("DATA") : $b)) ? self.$compiler().$eof_content() : $a) - }, TMP_ConstNode_magical_data_const$q_2.$$arity = 0), nil) && 'magical_data_const?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $CbaseNode(){}; - var self = $CbaseNode = $klass($base, $super, 'CbaseNode', $CbaseNode); + var $nesting = [self].concat($parent_nesting), $DependencyResolver_initialize$55, $DependencyResolver_resolve$56, $DependencyResolver_handle_part$57, $DependencyResolver_expand_path$60; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_CbaseNode_compile_3; + self.$$prototype.compiler = self.$$prototype.sexp = self.$$prototype.missing_dynamic_require = nil; + + + Opal.def(self, '$initialize', $DependencyResolver_initialize$55 = function $$initialize(compiler, sexp, missing_dynamic_require) { + var self = this, $ret_or_18 = nil; - - self.$handle("cbase"); - return (Opal.defn(self, '$compile', TMP_CbaseNode_compile_3 = function $$compile() { - var self = this; + + + if (missing_dynamic_require == null) { + missing_dynamic_require = nil; + }; + self.compiler = compiler; + self.sexp = sexp; + return (self.missing_dynamic_require = (function() {if ($truthy(($ret_or_18 = missing_dynamic_require))) { + return $ret_or_18 + } else { + return self.compiler.$dynamic_require_severity() + }; return nil; })()); + }, $DependencyResolver_initialize$55.$$arity = -3); + + Opal.def(self, '$resolve', $DependencyResolver_resolve$56 = function $$resolve() { + var self = this; - return self.$push("'::'") - }, TMP_CbaseNode_compile_3.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $ConstAssignNode(){}; - var self = $ConstAssignNode = $klass($base, $super, 'ConstAssignNode', $ConstAssignNode); + return self.$handle_part(self.sexp) + }, $DependencyResolver_resolve$56.$$arity = 0); + + Opal.def(self, '$handle_part', $DependencyResolver_handle_part$57 = function $$handle_part(sexp, missing_dynamic_require) { + var $$58, $a, $b, $$59, self = this, $case = nil, recv = nil, meth = nil, args = nil, parts = nil, $ret_or_19 = nil, $ret_or_20 = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ConstAssignNode_compile_4; + + + if (missing_dynamic_require == null) { + missing_dynamic_require = self.missing_dynamic_require; + }; + if ($truthy(sexp)) { + $case = sexp.$type(); + if ("str"['$===']($case)) {return sexp.$children()['$[]'](0)} + else if ("dstr"['$===']($case)) {return $send(sexp.$children(), 'map', [], ($$58 = function(i){var self = $$58.$$s == null ? this : $$58.$$s; - - self.$handle("casgn"); - self.$children("base", "name", "value"); - return (Opal.defn(self, '$compile', TMP_ConstAssignNode_compile_4 = function $$compile() { - var self = this; + + + if (i == null) { + i = nil; + }; + return self.$handle_part(i);}, $$58.$$s = self, $$58.$$arity = 1, $$58)).$join()} + else if ("begin"['$===']($case)) {if (sexp.$children().$length()['$=='](1)) { + return self.$handle_part(sexp.$children()['$[]'](0))}} + else if ("send"['$===']($case)) { + $b = sexp.$children(), $a = Opal.to_ary($b), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $b; + parts = $send(args, 'map', [], ($$59 = function(s){var self = $$59.$$s == null ? this : $$59.$$s; - if ($truthy(self.$base())) { - return self.$push("Opal.const_set(", self.$expr(self.$base()), "" + ", '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") - } else { - return self.$push("" + "Opal.const_set($nesting[0], '" + (self.$name()) + "', ", self.$expr(self.$value()), ")") - } - }, TMP_ConstAssignNode_compile_4.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + + + if (s == null) { + s = nil; + }; + return self.$handle_part(s, "ignore");}, $$59.$$s = self, $$59.$$arity = 1, $$59)); + if ($truthy(parts['$include?'](nil))) { + return nil}; + if ($truthy((function() {if ($truthy(($ret_or_19 = (function() {if ($truthy(($ret_or_20 = recv['$is_a?']($$$($$$($$$('::', 'Opal'), 'AST'), 'Node'))))) { + return recv.$type()['$==']("const") + } else { + return $ret_or_20 + }; return nil; })()))) { + return recv.$children().$last()['$==']("File") + } else { + return $ret_or_19 + }; return nil; })())) { + if (meth['$==']("expand_path")) { + return $send(self, 'expand_path', Opal.to_a(parts)) + } else if (meth['$==']("join")) { + return self.$expand_path(parts.$join("/")) + } else if (meth['$==']("dirname")) { + return self.$expand_path(parts['$[]'](0).$split("/")['$[]']($range(0, -1, true)).$join("/"))} + } else if (meth['$==']("__dir__")) { + return $$($nesting, 'File').$dirname($$$($$($nesting, 'Opal'), 'Compiler').$module_name(self.compiler.$file()))};}}; + return (function() {$case = missing_dynamic_require; + if ("error"['$===']($case)) {return self.compiler.$error("Cannot handle dynamic require", self.sexp.$line())} + else if ("warning"['$===']($case)) {return self.compiler.$warning("Cannot handle dynamic require", self.sexp.$line())} + else { return nil }})(); + }, $DependencyResolver_handle_part$57.$$arity = -2); + return (Opal.def(self, '$expand_path', $DependencyResolver_expand_path$60 = function $$expand_path(path, base) { + var $$61, self = this; + + + + if (base == null) { + base = ""; + }; + return $send(((("" + (base)) + "/") + (path)).$split("/"), 'each_with_object', [[]], ($$61 = function(part, p){var self = $$61.$$s == null ? this : $$61.$$s; + + + + if (part == null) { + part = nil; + }; + + if (p == null) { + p = nil; + }; + if (part['$==']("")) { + return nil + } else if (part['$==']("..")) { + return p.$pop() + } else { + return p['$<<'](part) + };}, $$61.$$s = self, $$61.$$arity = 2, $$61)).$join("/"); + }, $DependencyResolver_expand_path$60.$$arity = -2), nil) && 'expand_path'; + })($nesting[0], null, $nesting); + })($nesting[0], $$($nesting, 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/comparable"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["opal/nodes/csend"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - Opal.add_stubs(['$===', '$>', '$<', '$equal?', '$<=>', '$normalize', '$raise', '$class']); + Opal.add_stubs(['$require', '$handle', '$helper', '$conditional_send', '$recv', '$receiver_sexp', '$push', '$compile_method_name', '$compile_arguments', '$compile_block_pass']); + + self.$require("opal/nodes/call"); return (function($base, $parent_nesting) { - var $Comparable, self = $Comparable = $module($base, 'Comparable'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Comparable_normalize_1, TMP_Comparable_$eq$eq_2, TMP_Comparable_$gt_3, TMP_Comparable_$gt$eq_4, TMP_Comparable_$lt_5, TMP_Comparable_$lt$eq_6, TMP_Comparable_between$q_7, TMP_Comparable_clamp_8; - - - Opal.defs(self, '$normalize', TMP_Comparable_normalize_1 = function $$normalize(what) { - var self = this; - - - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](what))) { - return what}; - if ($truthy($rb_gt(what, 0))) { - return 1}; - if ($truthy($rb_lt(what, 0))) { - return -1}; - return 0; - }, TMP_Comparable_normalize_1.$$arity = 1); - - Opal.defn(self, '$==', TMP_Comparable_$eq$eq_2 = function(other) { - var self = this, cmp = nil; + var self = $module($base, 'Opal'); - try { - - if ($truthy(self['$equal?'](other))) { - return true}; - - if (self["$<=>"] == Opal.Kernel["$<=>"]) { - return false; - } + var $nesting = [self].concat($parent_nesting); - // check for infinite recursion - if (self.$$comparable) { - delete self.$$comparable; - return false; - } - ; - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - return false - }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) == 0; - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { - try { - return false - } finally { Opal.pop_exception() } - } else { throw $err; } - } - }, TMP_Comparable_$eq$eq_2.$$arity = 1); - - Opal.defn(self, '$>', TMP_Comparable_$gt_3 = function(other) { - var self = this, cmp = nil; + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed") - }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) > 0; - }, TMP_Comparable_$gt_3.$$arity = 1); - - Opal.defn(self, '$>=', TMP_Comparable_$gt$eq_4 = function(other) { - var self = this, cmp = nil; + var $nesting = [self].concat($parent_nesting); - - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed") - }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) >= 0; - }, TMP_Comparable_$gt$eq_4.$$arity = 1); - - Opal.defn(self, '$<', TMP_Comparable_$lt_5 = function(other) { - var self = this, cmp = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'CSendNode'); - - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed") - }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) < 0; - }, TMP_Comparable_$lt_5.$$arity = 1); - - Opal.defn(self, '$<=', TMP_Comparable_$lt$eq_6 = function(other) { - var self = this, cmp = nil; + var $nesting = [self].concat($parent_nesting), $CSendNode_default_compile$1; - - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed") - }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) <= 0; - }, TMP_Comparable_$lt$eq_6.$$arity = 1); - - Opal.defn(self, '$between?', TMP_Comparable_between$q_7 = function(min, max) { - var self = this; + + self.$handle("csend"); + return (Opal.def(self, '$default_compile', $CSendNode_default_compile$1 = function $$default_compile() { + var $$2, self = this; - - if ($rb_lt(self, min)) { - return false}; - if ($rb_gt(self, max)) { - return false}; - return true; - }, TMP_Comparable_between$q_7.$$arity = 2); - - Opal.defn(self, '$clamp', TMP_Comparable_clamp_8 = function $$clamp(min, max) { - var self = this, cmp = nil; + + self.$helper("send"); + return $send(self, 'conditional_send', [self.$recv(self.$receiver_sexp())], ($$2 = function(receiver_temp){var self = $$2.$$s == null ? this : $$2.$$s; - - cmp = min['$<=>'](max); - if ($truthy(cmp)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (min.$class()) + " with " + (max.$class()) + " failed") - }; - if ($truthy($rb_gt(Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp), 0))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "min argument must be smaller than max argument")}; - if ($truthy($rb_lt(Opal.const_get_relative($nesting, 'Comparable').$normalize(self['$<=>'](min)), 0))) { - return min}; - if ($truthy($rb_gt(Opal.const_get_relative($nesting, 'Comparable').$normalize(self['$<=>'](max)), 0))) { - return max}; - return self; - }, TMP_Comparable_clamp_8.$$arity = 2); - })($nesting[0], $nesting) + + + if (receiver_temp == null) { + receiver_temp = nil; + }; + self.$push("$send(", receiver_temp); + self.$compile_method_name(); + self.$compile_arguments(); + self.$compile_block_pass(); + return self.$push(")");}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $CSendNode_default_compile$1.$$arity = 0), nil) && 'default_compile'; + })($nesting[0], $$($nesting, 'CallNode'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["pathname"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $module = Opal.module; +Opal.modules["opal/nodes/call_special"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$include', '$quote', '$===', '$to_s', '$path', '$respond_to?', '$to_path', '$is_a?', '$nil?', '$raise', '$class', '$==', '$attr_reader', '$!', '$relative?', '$chop_basename', '$basename', '$=~', '$new', '$source', '$[]', '$rindex', '$sub', '$absolute?', '$expand_path', '$plus', '$unshift', '$length', '$!=', '$empty?', '$first', '$shift', '$+', '$join', '$dirname', '$pop', '$reverse_each', '$directory?', '$extname', '$<=>', '$nonzero?', '$proc', '$casecmp', '$cleanpath', '$inspect', '$include?', '$fill', '$map', '$entries']); + Opal.add_stubs(['$require', '$handle', '$children', '$push', '$recv', '$recvr', '$expr', '$property', '$value', '$<<', '$default_compile', '$meth', '$receiver_sexp', '$method_jsid', '$compile_arguments', '$iter', '$s', '$lhs', '$rhs', '$process']); - self.$require("corelib/comparable"); - (function($base, $super, $parent_nesting) { - function $Pathname(){}; - var self = $Pathname = $klass($base, $super, 'Pathname', $Pathname); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Pathname_initialize_1, TMP_Pathname_$eq$eq_2, TMP_Pathname_absolute$q_3, TMP_Pathname_relative$q_4, TMP_Pathname_chop_basename_5, TMP_Pathname_root$q_6, TMP_Pathname_parent_7, TMP_Pathname_sub_8, TMP_Pathname_cleanpath_9, TMP_Pathname_to_path_10, TMP_Pathname_hash_11, TMP_Pathname_expand_path_12, TMP_Pathname_$_13, TMP_Pathname_plus_14, TMP_Pathname_join_16, TMP_Pathname_split_17, TMP_Pathname_dirname_18, TMP_Pathname_basename_19, TMP_Pathname_directory$q_20, TMP_Pathname_extname_21, TMP_Pathname_$lt$eq$gt_22, TMP_Pathname_23, TMP_Pathname_24, TMP_Pathname_relative_path_from_25, TMP_Pathname_entries_27; - - def.path = nil; - - self.$include(Opal.const_get_relative($nesting, 'Comparable')); - Opal.const_set($nesting[0], 'SEPARATOR_PAT', new RegExp(Opal.const_get_relative($nesting, 'Regexp').$quote(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'File'), 'SEPARATOR')))); - - Opal.defn(self, '$initialize', TMP_Pathname_initialize_1 = function $$initialize(path) { - var self = this; - - - if ($truthy(Opal.const_get_relative($nesting, 'Pathname')['$==='](path))) { - self.path = path.$path().$to_s() - } else if ($truthy(path['$respond_to?']("to_path"))) { - self.path = path.$to_path() - } else if ($truthy(path['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - self.path = path - } else if ($truthy(path['$nil?']())) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "no implicit conversion of nil into String") - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "no implicit conversion of " + (path.$class()) + " into String") - }; - if (self.path['$==']("\u0000")) { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError')) - } else { - return nil - }; - }, TMP_Pathname_initialize_1.$$arity = 1); - self.$attr_reader("path"); - - Opal.defn(self, '$==', TMP_Pathname_$eq$eq_2 = function(other) { - var self = this; + self.$require("opal/nodes/base"); + self.$require("opal/nodes/call"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - return other.$path()['$=='](self.path) - }, TMP_Pathname_$eq$eq_2.$$arity = 1); - - Opal.defn(self, '$absolute?', TMP_Pathname_absolute$q_3 = function() { - var self = this; + var $nesting = [self].concat($parent_nesting); - return self['$relative?']()['$!']() - }, TMP_Pathname_absolute$q_3.$$arity = 0); - - Opal.defn(self, '$relative?', TMP_Pathname_relative$q_4 = function() { - var $a, $b, $c, self = this, path = nil, r = nil; + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - - path = self.path; - while ($truthy((r = self.$chop_basename(path)))) { - $c = r, $b = Opal.to_ary($c), (path = ($b[0] == null ? nil : $b[0])), $c - }; - return path['$=='](""); - }, TMP_Pathname_relative$q_4.$$arity = 0); - - Opal.defn(self, '$chop_basename', TMP_Pathname_chop_basename_5 = function $$chop_basename(path) { - var self = this, base = nil; + var $nesting = [self].concat($parent_nesting); - base = Opal.const_get_relative($nesting, 'File').$basename(path); - if ($truthy(Opal.const_get_relative($nesting, 'Regexp').$new("" + "^" + (Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Pathname'), 'SEPARATOR_PAT').$source()) + "?$")['$=~'](base))) { - return nil - } else { - return [path['$[]'](0, path.$rindex(base)), base] - }; - }, TMP_Pathname_chop_basename_5.$$arity = 1); - - Opal.defn(self, '$root?', TMP_Pathname_root$q_6 = function() { - var self = this; + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'JsAttrNode'); - return self.path['$==']("/") - }, TMP_Pathname_root$q_6.$$arity = 0); - - Opal.defn(self, '$parent', TMP_Pathname_parent_7 = function $$parent() { - var self = this, new_path = nil; + var $nesting = [self].concat($parent_nesting), $JsAttrNode_compile$1; - - new_path = self.path.$sub(/\/([^\/]+\/?$)/, ""); - if (new_path['$==']("")) { - new_path = (function() {if ($truthy(self['$absolute?']())) { - return "/" - } else { - return "." - }; return nil; })()}; - return Opal.const_get_relative($nesting, 'Pathname').$new(new_path); - }, TMP_Pathname_parent_7.$$arity = 0); - - Opal.defn(self, '$sub', TMP_Pathname_sub_8 = function $$sub($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return Opal.const_get_relative($nesting, 'Pathname').$new($send(self.path, 'sub', Opal.to_a(args))) - }, TMP_Pathname_sub_8.$$arity = -1); - - Opal.defn(self, '$cleanpath', TMP_Pathname_cleanpath_9 = function $$cleanpath() { - var self = this; + + self.$handle("jsattr"); + self.$children("recvr", "property"); + return (Opal.def(self, '$compile', $JsAttrNode_compile$1 = function $$compile() { + var self = this; - return Opal.normalize(self.path) - }, TMP_Pathname_cleanpath_9.$$arity = 0); - - Opal.defn(self, '$to_path', TMP_Pathname_to_path_10 = function $$to_path() { - var self = this; + return self.$push(self.$recv(self.$recvr()), "[", self.$expr(self.$property()), "]") + }, $JsAttrNode_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'JsAttrAsgnNode'); - return self.path - }, TMP_Pathname_to_path_10.$$arity = 0); - - Opal.defn(self, '$hash', TMP_Pathname_hash_11 = function $$hash() { - var self = this; + var $nesting = [self].concat($parent_nesting), $JsAttrAsgnNode_compile$2; - return self.path - }, TMP_Pathname_hash_11.$$arity = 0); - - Opal.defn(self, '$expand_path', TMP_Pathname_expand_path_12 = function $$expand_path() { - var self = this; + + self.$handle("jsattrasgn"); + self.$children("recvr", "property", "value"); + return (Opal.def(self, '$compile', $JsAttrAsgnNode_compile$2 = function $$compile() { + var self = this; - return Opal.const_get_relative($nesting, 'File').$expand_path(self.path) - }, TMP_Pathname_expand_path_12.$$arity = 0); - - Opal.defn(self, '$+', TMP_Pathname_$_13 = function(other) { - var self = this; + return self.$push(self.$recv(self.$recvr()), "[", self.$expr(self.$property()), "] = ", self.$expr(self.$value())) + }, $JsAttrAsgnNode_compile$2.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'JsCallNode'); - - if ($truthy(Opal.const_get_relative($nesting, 'Pathname')['$==='](other))) { - } else { - other = Opal.const_get_relative($nesting, 'Pathname').$new(other) - }; - return Opal.const_get_relative($nesting, 'Pathname').$new(self.$plus(self.path, other.$to_s())); - }, TMP_Pathname_$_13.$$arity = 1); - - Opal.defn(self, '$plus', TMP_Pathname_plus_14 = function $$plus(path1, path2) { - var $a, $b, $c, self = this, prefix2 = nil, index_list2 = nil, basename_list2 = nil, r2 = nil, basename2 = nil, prefix1 = nil, r1 = nil, basename1 = nil, suffix2 = nil; + var $nesting = [self].concat($parent_nesting), $JsCallNode_initialize$3, $JsCallNode_compile$4, $JsCallNode_method_jsid$5, $JsCallNode_compile_using_send$6; - - prefix2 = path2; - index_list2 = []; - basename_list2 = []; - while ($truthy((r2 = self.$chop_basename(prefix2)))) { + self.$$prototype.iter = self.$$prototype.arglist = nil; - $c = r2, $b = Opal.to_ary($c), (prefix2 = ($b[0] == null ? nil : $b[0])), (basename2 = ($b[1] == null ? nil : $b[1])), $c; - index_list2.$unshift(prefix2.$length()); - basename_list2.$unshift(basename2); - }; - if ($truthy(prefix2['$!='](""))) { - return path2}; - prefix1 = path1; - while ($truthy(true)) { + self.$handle("jscall"); - while ($truthy(($truthy($c = basename_list2['$empty?']()['$!']()) ? basename_list2.$first()['$=='](".") : $c))) { + Opal.def(self, '$initialize', $JsCallNode_initialize$3 = function $$initialize($a) { + var $post_args, $rest_arg, $iter = $JsCallNode_initialize$3.$$p, $yield = $iter || nil, self = this; + + if ($iter) $JsCallNode_initialize$3.$$p = null; - index_list2.$shift(); - basename_list2.$shift(); - }; - if ($truthy((r1 = self.$chop_basename(prefix1)))) { - } else { - break; - }; - $c = r1, $b = Opal.to_ary($c), (prefix1 = ($b[0] == null ? nil : $b[0])), (basename1 = ($b[1] == null ? nil : $b[1])), $c; - if (basename1['$=='](".")) { - continue;}; - if ($truthy(($truthy($b = ($truthy($c = basename1['$==']("..")) ? $c : basename_list2['$empty?']())) ? $b : basename_list2.$first()['$!=']("..")))) { - prefix1 = $rb_plus(prefix1, basename1); - break;;}; - index_list2.$shift(); - basename_list2.$shift(); - }; - r1 = self.$chop_basename(prefix1); - if ($truthy(($truthy($a = r1['$!']()) ? new RegExp(Opal.const_get_relative($nesting, 'SEPARATOR_PAT'))['$=~'](Opal.const_get_relative($nesting, 'File').$basename(prefix1)) : $a))) { - while ($truthy(($truthy($b = basename_list2['$empty?']()['$!']()) ? basename_list2.$first()['$==']("..") : $b))) { + $post_args = Opal.slice.call(arguments, 0, arguments.length); - index_list2.$shift(); - basename_list2.$shift(); - }}; - if ($truthy(basename_list2['$empty?']()['$!']())) { + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $JsCallNode_initialize$3, false, true), 'initialize', Opal.to_a($rest_arg), $iter); + if ($truthy(self.iter)) { + self.arglist = self.arglist['$<<'](self.iter)}; + return (self.iter = nil); + }, $JsCallNode_initialize$3.$$arity = -1); - suffix2 = path2['$[]'](Opal.Range.$new(index_list2.$first(), -1, false)); - if ($truthy(r1)) { - return Opal.const_get_relative($nesting, 'File').$join(prefix1, suffix2) - } else { - return $rb_plus(prefix1, suffix2) - }; - } else if ($truthy(r1)) { - return prefix1 - } else { - return Opal.const_get_relative($nesting, 'File').$dirname(prefix1) - }; - }, TMP_Pathname_plus_14.$$arity = 2); - - Opal.defn(self, '$join', TMP_Pathname_join_16 = function $$join($a_rest) {try { + Opal.def(self, '$compile', $JsCallNode_compile$4 = function $$compile() { + var self = this; - var TMP_15, self = this, args, result = nil; + return self.$default_compile() + }, $JsCallNode_compile$4.$$arity = 0); + + Opal.def(self, '$method_jsid', $JsCallNode_method_jsid$5 = function $$method_jsid() { + var self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - if ($truthy(args['$empty?']())) { - return self}; - result = args.$pop(); - if ($truthy(Opal.const_get_relative($nesting, 'Pathname')['$==='](result))) { - } else { - result = Opal.const_get_relative($nesting, 'Pathname').$new(result) - }; - if ($truthy(result['$absolute?']())) { - return result}; - $send(args, 'reverse_each', [], (TMP_15 = function(arg){var self = TMP_15.$$s || this; -if (arg == null) arg = nil; - - if ($truthy(Opal.const_get_relative($nesting, 'Pathname')['$==='](arg))) { - } else { - arg = Opal.const_get_relative($nesting, 'Pathname').$new(arg) - }; - result = $rb_plus(arg, result); - if ($truthy(result['$absolute?']())) { - Opal.ret(result) - } else { - return nil - };}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)); - return $rb_plus(self, result); - } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Pathname_join_16.$$arity = -1); - - Opal.defn(self, '$split', TMP_Pathname_split_17 = function $$split() { - var self = this; + return "" + "." + (self.$meth()) + }, $JsCallNode_method_jsid$5.$$arity = 0); + return (Opal.def(self, '$compile_using_send', $JsCallNode_compile_using_send$6 = function $$compile_using_send() { + var self = this; - return [self.$dirname(), self.$basename()] - }, TMP_Pathname_split_17.$$arity = 0); - - Opal.defn(self, '$dirname', TMP_Pathname_dirname_18 = function $$dirname() { - var self = this; + + self.$push(self.$recv(self.$receiver_sexp()), self.$method_jsid(), ".apply(null"); + self.$compile_arguments(); + if ($truthy(self.$iter())) { + self.$push(".concat(", self.$expr(self.$iter()), ")")}; + return self.$push(")"); + }, $JsCallNode_compile_using_send$6.$$arity = 0), nil) && 'compile_using_send'; + })($nesting[0], $$($nesting, 'CallNode'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Match3Node'); - return Opal.const_get_relative($nesting, 'Pathname').$new(Opal.const_get_relative($nesting, 'File').$dirname(self.path)) - }, TMP_Pathname_dirname_18.$$arity = 0); - - Opal.defn(self, '$basename', TMP_Pathname_basename_19 = function $$basename() { - var self = this; + var $nesting = [self].concat($parent_nesting), $Match3Node_compile$7; - return Opal.const_get_relative($nesting, 'Pathname').$new(Opal.const_get_relative($nesting, 'File').$basename(self.path)) - }, TMP_Pathname_basename_19.$$arity = 0); - - Opal.defn(self, '$directory?', TMP_Pathname_directory$q_20 = function() { - var self = this; + self.$$prototype.level = nil; + + self.$handle("match_with_lvasgn"); + self.$children("lhs", "rhs"); + return (Opal.def(self, '$compile', $Match3Node_compile$7 = function $$compile() { + var self = this, sexp = nil; - return Opal.const_get_relative($nesting, 'File')['$directory?'](self.path) - }, TMP_Pathname_directory$q_20.$$arity = 0); - - Opal.defn(self, '$extname', TMP_Pathname_extname_21 = function $$extname() { - var self = this; + + sexp = self.$s("send", self.$lhs(), "=~", self.$rhs()); + return self.$push(self.$process(sexp, self.level)); + }, $Match3Node_compile$7.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - return Opal.const_get_relative($nesting, 'File').$extname(self.path) - }, TMP_Pathname_extname_21.$$arity = 0); - - Opal.defn(self, '$<=>', TMP_Pathname_$lt$eq$gt_22 = function(other) { - var self = this; +Opal.modules["opal/nodes/scope"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; - return self.$path()['$<=>'](other.$path()) - }, TMP_Pathname_$lt$eq$gt_22.$$arity = 1); - Opal.alias(self, "eql?", "=="); - Opal.alias(self, "===", "=="); - Opal.alias(self, "to_str", "to_path"); - Opal.alias(self, "to_s", "to_path"); - Opal.const_set($nesting[0], 'SAME_PATHS', (function() {if ($truthy(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'File'), 'FNM_SYSCASE')['$nonzero?']())) { - return $send(self, 'proc', [], (TMP_Pathname_23 = function(a, b){var self = TMP_Pathname_23.$$s || this; -if (a == null) a = nil;if (b == null) b = nil; - return a.$casecmp(b)['$=='](0)}, TMP_Pathname_23.$$s = self, TMP_Pathname_23.$$arity = 2, TMP_Pathname_23)) - } else { - return $send(self, 'proc', [], (TMP_Pathname_24 = function(a, b){var self = TMP_Pathname_24.$$s || this; -if (a == null) a = nil;if (b == null) b = nil; - return a['$=='](b)}, TMP_Pathname_24.$$s = self, TMP_Pathname_24.$$arity = 2, TMP_Pathname_24)) - }; return nil; })()); - - Opal.defn(self, '$relative_path_from', TMP_Pathname_relative_path_from_25 = function $$relative_path_from(base_directory) { - var $a, $b, $c, self = this, dest_directory = nil, dest_prefix = nil, dest_names = nil, r = nil, basename = nil, base_prefix = nil, base_names = nil, relpath_names = nil; + Opal.add_stubs(['$require', '$attr_accessor', '$attr_reader', '$indent', '$scope', '$compiler', '$scope=', '$-', '$==', '$top?', '$top_scope', '$parent', '$iter?', '$!', '$class?', '$dup', '$push', '$map', '$ivars', '$gvars', '$parser_indent', '$empty?', '$join', '$+', '$fragment', '$def_in_class?', '$add_proto_ivar', '$include?', '$<<', '$has_local?', '$|', '$scope_locals', '$has_temp?', '$pop', '$next_temp', '$loop', '$succ', '$uses_block!', '$identify!', '$compact', '$name', '$scope_name', '$mid', '$unique_temp', '$add_scope_temp', '$def?', '$lambda?', '$type', '$nil?', '$rescue_else_sexp', '$last', '$class', '$collect_refinements_temps', '$add_scope_local', '$new_refinements_temp']); + + self.$require("opal/nodes/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - - dest_directory = self.$cleanpath().$to_s(); - base_directory = base_directory.$cleanpath().$to_s(); - dest_prefix = dest_directory; - dest_names = []; - while ($truthy((r = self.$chop_basename(dest_prefix)))) { - - $c = r, $b = Opal.to_ary($c), (dest_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - dest_names.$unshift(basename)}; - }; - base_prefix = base_directory; - base_names = []; - while ($truthy((r = self.$chop_basename(base_prefix)))) { + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ScopeNode'); + + var $nesting = [self].concat($parent_nesting), $ScopeNode_initialize$1, $ScopeNode_in_scope$2, $ScopeNode_class_scope$ques$4, $ScopeNode_class$ques$5, $ScopeNode_module$ques$6, $ScopeNode_sclass$ques$7, $ScopeNode_top$ques$8, $ScopeNode_top_scope$9, $ScopeNode_iter$ques$10, $ScopeNode_def$ques$11, $ScopeNode_lambda$ques$12, $ScopeNode_is_lambda$excl$13, $ScopeNode_defines_lambda$14, $ScopeNode_lambda_definition$ques$15, $ScopeNode_def_in_class$ques$16, $ScopeNode_to_vars$17, $ScopeNode_add_scope_ivar$22, $ScopeNode_add_scope_gvar$23, $ScopeNode_add_proto_ivar$24, $ScopeNode_add_arg$25, $ScopeNode_add_scope_local$26, $ScopeNode_has_local$ques$27, $ScopeNode_scope_locals$28, $ScopeNode_add_scope_temp$29, $ScopeNode_has_temp$ques$30, $ScopeNode_new_temp$31, $ScopeNode_next_temp$32, $ScopeNode_queue_temp$34, $ScopeNode_push_while$35, $ScopeNode_pop_while$36, $ScopeNode_in_while$ques$37, $ScopeNode_uses_block$excl$38, $ScopeNode_identify$excl$39, $ScopeNode_find_parent_def$40, $ScopeNode_super_chain$41, $ScopeNode_uses_block$ques$42, $ScopeNode_has_rescue_else$ques$43, $ScopeNode_in_rescue$44, $ScopeNode_current_rescue$45, $ScopeNode_in_resbody$46, $ScopeNode_in_resbody$ques$47, $ScopeNode_in_ensure$48, $ScopeNode_in_ensure$ques$49, $ScopeNode_gen_retry_id$50, $ScopeNode_accepts_using$ques$51, $ScopeNode_collect_refinements_temps$52, $ScopeNode_new_refinements_temp$53, $ScopeNode_refinements_temp$54; + + self.$$prototype.type = self.$$prototype.is_lambda = self.$$prototype.lambda_definition = self.$$prototype.defs = self.$$prototype.parent = self.$$prototype.temps = self.$$prototype.locals = self.$$prototype.compiler = self.$$prototype.proto_ivars = self.$$prototype.ivars = self.$$prototype.gvars = self.$$prototype.args = self.$$prototype.queue = self.$$prototype.while_stack = self.$$prototype.identity = self.$$prototype.uses_block = self.$$prototype.rescues = self.$$prototype.in_resbody = self.$$prototype.in_ensure = self.$$prototype.next_retry_id = self.$$prototype.refinements_temp = nil; - $c = r, $b = Opal.to_ary($c), (base_prefix = ($b[0] == null ? nil : $b[0])), (basename = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(basename['$!=']("."))) { - base_names.$unshift(basename)}; - }; - if ($truthy(Opal.const_get_relative($nesting, 'SAME_PATHS')['$[]'](dest_prefix, base_prefix))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "different prefix: " + (dest_prefix.$inspect()) + " and " + (base_directory.$inspect())) - }; - while ($truthy(($truthy($b = ($truthy($c = dest_names['$empty?']()['$!']()) ? base_names['$empty?']()['$!']() : $c)) ? Opal.const_get_relative($nesting, 'SAME_PATHS')['$[]'](dest_names.$first(), base_names.$first()) : $b))) { + self.$attr_accessor("parent"); + self.$attr_accessor("name"); + self.$attr_accessor("block_name"); + self.$attr_reader("scope_name"); + self.$attr_reader("locals"); + self.$attr_reader("ivars"); + self.$attr_reader("gvars"); + self.$attr_accessor("mid"); + self.$attr_accessor("defs"); + self.$attr_reader("methods"); + self.$attr_accessor("catch_return", "has_break", "has_retry"); + self.$attr_accessor("rescue_else_sexp"); - dest_names.$shift(); - base_names.$shift(); - }; - if ($truthy(base_names['$include?'](".."))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "base_directory has ..: " + (base_directory.$inspect()))}; - base_names.$fill(".."); - relpath_names = $rb_plus(base_names, dest_names); - if ($truthy(relpath_names['$empty?']())) { - return Opal.const_get_relative($nesting, 'Pathname').$new(".") - } else { - return Opal.const_get_relative($nesting, 'Pathname').$new($send(Opal.const_get_relative($nesting, 'File'), 'join', Opal.to_a(relpath_names))) - }; - }, TMP_Pathname_relative_path_from_25.$$arity = 1); - return (Opal.defn(self, '$entries', TMP_Pathname_entries_27 = function $$entries() { - var TMP_26, self = this; - - return $send(Opal.const_get_relative($nesting, 'Dir').$entries(self.path), 'map', [], (TMP_26 = function(f){var self = TMP_26.$$s || this; -if (f == null) f = nil; - return self.$class().$new(f)}, TMP_26.$$s = self, TMP_26.$$arity = 1, TMP_26)) - }, TMP_Pathname_entries_27.$$arity = 0), nil) && 'entries'; - })($nesting[0], null, $nesting); - return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + Opal.def(self, '$initialize', $ScopeNode_initialize$1 = function $$initialize($a) { + var $post_args, $rest_arg, $iter = $ScopeNode_initialize$1.$$p, $yield = $iter || nil, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_Pathname_28; + if ($iter) $ScopeNode_initialize$1.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $ScopeNode_initialize$1, false, true), 'initialize', Opal.to_a($rest_arg), $iter); + self.locals = []; + self.temps = []; + self.args = []; + self.ivars = []; + self.gvars = []; + self.parent = nil; + self.queue = []; + self.unique = "a"; + self.while_stack = []; + self.identity = nil; + self.defs = nil; + self.methods = []; + self.uses_block = false; + self.in_ensure = false; + return (self.proto_ivars = []); + }, $ScopeNode_initialize$1.$$arity = -1); + + Opal.def(self, '$in_scope', $ScopeNode_in_scope$2 = function $$in_scope() { + var $$3, $iter = $ScopeNode_in_scope$2.$$p, $yield = $iter || nil, self = this; - - Opal.defn(self, '$Pathname', TMP_Kernel_Pathname_28 = function $$Pathname(path) { - var self = this; + if ($iter) $ScopeNode_in_scope$2.$$p = null; + return $send(self, 'indent', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; + if (self.parent == null) self.parent = nil; - return Opal.const_get_relative($nesting, 'Pathname').$new(path) - }, TMP_Kernel_Pathname_28.$$arity = 1) - })($nesting[0], $nesting); -}; + + self.parent = self.$compiler().$scope(); + + $writer = [self]; + $send(self.$compiler(), 'scope=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + Opal.yield1($yield, self); + + $writer = [self.parent]; + $send(self.$compiler(), 'scope=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];;}, $$3.$$s = self, $$3.$$arity = 0, $$3)) + }, $ScopeNode_in_scope$2.$$arity = 0); + + Opal.def(self, '$class_scope?', $ScopeNode_class_scope$ques$4 = function() { + var self = this, $ret_or_1 = nil; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/runtime_helpers"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + if ($truthy(($ret_or_1 = self.type['$==']("class")))) { + return $ret_or_1 + } else { + return self.type['$==']("module") + } + }, $ScopeNode_class_scope$ques$4.$$arity = 0); + + Opal.def(self, '$class?', $ScopeNode_class$ques$5 = function() { + var self = this; - Opal.add_stubs(['$require', '$new', '$children', '$==', '$s', '$include?', '$to_sym', '$<<', '$define_method', '$to_proc', '$meth', '$__send__', '$raise', '$helper', '$[]', '$arglist', '$js_truthy', '$js_falsy']); - - self.$require("set"); - self.$require("opal/nodes/base"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + return self.type['$==']("class") + }, $ScopeNode_class$ques$5.$$arity = 0); + + Opal.def(self, '$module?', $ScopeNode_module$ques$6 = function() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.type['$==']("module") + }, $ScopeNode_module$ques$6.$$arity = 0); + + Opal.def(self, '$sclass?', $ScopeNode_sclass$ques$7 = function() { + var self = this; - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return self.type['$==']("sclass") + }, $ScopeNode_sclass$ques$7.$$arity = 0); + + Opal.def(self, '$top?', $ScopeNode_top$ques$8 = function() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return self.type['$==']("top") + }, $ScopeNode_top$ques$8.$$arity = 0); + + Opal.def(self, '$top_scope', $ScopeNode_top_scope$9 = function $$top_scope() { + var self = this; - (function($base, $super, $parent_nesting) { - function $RuntimeHelpers(){}; - var self = $RuntimeHelpers = $klass($base, $super, 'RuntimeHelpers', $RuntimeHelpers); + if ($truthy(self['$top?']())) { + return self + } else { + return self.$parent().$top_scope() + } + }, $ScopeNode_top_scope$9.$$arity = 0); + + Opal.def(self, '$iter?', $ScopeNode_iter$ques$10 = function() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RuntimeHelpers_s_1, TMP_RuntimeHelpers_compatible$q_2, TMP_RuntimeHelpers_helper_3, TMP_RuntimeHelpers_compile_4, TMP_RuntimeHelpers_5, TMP_RuntimeHelpers_6; + return self.type['$==']("iter") + }, $ScopeNode_iter$ques$10.$$arity = 0); + + Opal.def(self, '$def?', $ScopeNode_def$ques$11 = function() { + var self = this, $ret_or_2 = nil; + if ($truthy(($ret_or_2 = self.type['$==']("def")))) { + return $ret_or_2 + } else { + return self.type['$==']("defs") + } + }, $ScopeNode_def$ques$11.$$arity = 0); - Opal.const_set($nesting[0], 'HELPERS', Opal.const_get_relative($nesting, 'Set').$new()); - self.$children("recvr", "meth", "arglist"); - Opal.defs(self, '$s', TMP_RuntimeHelpers_s_1 = function $$s(type, $a_rest) { - var self = this, children; + Opal.def(self, '$lambda?', $ScopeNode_lambda$ques$12 = function() { + var self = this, $ret_or_3 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - children = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - children[$arg_idx - 1] = arguments[$arg_idx]; + if ($truthy(($ret_or_3 = self['$iter?']()))) { + return self.is_lambda + } else { + return $ret_or_3 } - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Opal'), 'AST'), 'Node').$new(type, children) - }, TMP_RuntimeHelpers_s_1.$$arity = -2); - Opal.defs(self, '$compatible?', TMP_RuntimeHelpers_compatible$q_2 = function(recvr, meth, arglist) { - var $a, self = this; + }, $ScopeNode_lambda$ques$12.$$arity = 0); + + Opal.def(self, '$is_lambda!', $ScopeNode_is_lambda$excl$13 = function() { + var self = this; - return (($a = recvr['$=='](self.$s("const", nil, "Opal"))) ? Opal.const_get_relative($nesting, 'HELPERS')['$include?'](meth.$to_sym()) : recvr['$=='](self.$s("const", nil, "Opal"))) - }, TMP_RuntimeHelpers_compatible$q_2.$$arity = 3); - Opal.defs(self, '$helper', TMP_RuntimeHelpers_helper_3 = function $$helper(name) { - var self = this, $iter = TMP_RuntimeHelpers_helper_3.$$p, block = $iter || nil; + return (self.is_lambda = true) + }, $ScopeNode_is_lambda$excl$13.$$arity = 0); + + Opal.def(self, '$defines_lambda', $ScopeNode_defines_lambda$14 = function $$defines_lambda() { + var $iter = $ScopeNode_defines_lambda$14.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_RuntimeHelpers_helper_3.$$p = null; + if ($iter) $ScopeNode_defines_lambda$14.$$p = null; - Opal.const_get_relative($nesting, 'HELPERS')['$<<'](name); - return $send(self, 'define_method', ["" + "compile_" + (name)], block.$to_proc()); - }, TMP_RuntimeHelpers_helper_3.$$arity = 1); + self.lambda_definition = true; + Opal.yieldX($yield, []); + return (self.lambda_definition = false); + }, $ScopeNode_defines_lambda$14.$$arity = 0); - Opal.defn(self, '$compile', TMP_RuntimeHelpers_compile_4 = function $$compile() { + Opal.def(self, '$lambda_definition?', $ScopeNode_lambda_definition$ques$15 = function() { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'HELPERS')['$include?'](self.$meth().$to_sym()))) { - return self.$__send__("" + "compile_" + (self.$meth())) - } else { - return self.$raise("" + "Helper not supported: " + (self.$meth())) - } - }, TMP_RuntimeHelpers_compile_4.$$arity = 0); - $send(self, 'helper', ["truthy?"], (TMP_RuntimeHelpers_5 = function(){var self = TMP_RuntimeHelpers_5.$$s || this, sexp = nil; - + return self.lambda_definition + }, $ScopeNode_lambda_definition$ques$15.$$arity = 0); - if ($truthy((sexp = self.$arglist().$children()['$[]'](0)))) { - } else { - self.$raise("truthy? requires an object") - }; - return self.$js_truthy(sexp);}, TMP_RuntimeHelpers_5.$$s = self, TMP_RuntimeHelpers_5.$$arity = 0, TMP_RuntimeHelpers_5)); - return $send(self, 'helper', ["falsy?"], (TMP_RuntimeHelpers_6 = function(){var self = TMP_RuntimeHelpers_6.$$s || this, sexp = nil; + Opal.def(self, '$def_in_class?', $ScopeNode_def_in_class$ques$16 = function() { + var self = this, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil; + if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.defs['$!']()))) { + return self.type['$==']("def") + } else { + return $ret_or_6 + }; return nil; })()))) { + return self.parent + } else { + return $ret_or_5 + }; return nil; })()))) { + return self.parent['$class?']() + } else { + return $ret_or_4 + } + }, $ScopeNode_def_in_class$ques$16.$$arity = 0); - if ($truthy((sexp = self.$arglist().$children()['$[]'](0)))) { - } else { - self.$raise("falsy? requires an object") - }; - return self.$js_falsy(sexp);}, TMP_RuntimeHelpers_6.$$s = self, TMP_RuntimeHelpers_6.$$arity = 0, TMP_RuntimeHelpers_6)); - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/rewriters/break_finder"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; - - Opal.add_stubs(['$require']); - - self.$require("opal/rewriter"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + Opal.def(self, '$to_vars', $ScopeNode_to_vars$17 = function $$to_vars() { + var $$18, $$19, $$20, $$21, self = this, vars = nil, iv = nil, gv = nil, indent = nil, str = nil, $ret_or_7 = nil, pvars = nil, result = nil; - (function($base, $parent_nesting) { - var $Rewriters, self = $Rewriters = $module($base, 'Rewriters'); + + vars = self.temps.$dup(); + $send(vars, 'push', Opal.to_a($send(self.locals, 'map', [], ($$18 = function(l){var self = $$18.$$s == null ? this : $$18.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + + if (l == null) { + l = nil; + }; + return "" + (l) + " = nil";}, $$18.$$s = self, $$18.$$arity = 1, $$18)))); + iv = $send(self.$ivars(), 'map', [], ($$19 = function(ivar){var self = $$19.$$s == null ? this : $$19.$$s; - (function($base, $super, $parent_nesting) { - function $BreakFinder(){}; - var self = $BreakFinder = $klass($base, $super, 'BreakFinder', $BreakFinder); + + + if (ivar == null) { + ivar = nil; + }; + return "" + "if (self" + (ivar) + " == null) self" + (ivar) + " = nil;\n";}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + gv = $send(self.$gvars(), 'map', [], ($$20 = function(gvar){var self = $$20.$$s == null ? this : $$20.$$s; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BreakFinder_initialize_1, TMP_BreakFinder_found_break$q_2, TMP_BreakFinder_on_break_3, TMP_BreakFinder_stop_lookup_4; + + + if (gvar == null) { + gvar = nil; + }; + return "" + "if ($gvars" + (gvar) + " == null) $gvars" + (gvar) + " = nil;\n";}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + indent = self.compiler.$parser_indent(); + str = (function() {if ($truthy(vars['$empty?']())) { + return "" + } else { + return "" + "var " + (vars.$join(", ")) + ";\n" + }; return nil; })(); + if ($truthy(self.$ivars()['$empty?']())) { + } else { + str = $rb_plus(str, "" + (indent) + (iv.$join(indent))) + }; + if ($truthy(self.$gvars()['$empty?']())) { + } else { + str = $rb_plus(str, "" + (indent) + (gv.$join(indent))) + }; + if ($truthy((function() {if ($truthy(($ret_or_7 = self['$class?']()))) { + return self.proto_ivars['$empty?']()['$!']() + } else { + return $ret_or_7 + }; return nil; })())) { + + pvars = $send(self.proto_ivars, 'map', [], ($$21 = function(i){var self = $$21.$$s == null ? this : $$21.$$s; - def.found_break = nil; + + + if (i == null) { + i = nil; + }; + return "" + "self.$$prototype" + (i);}, $$21.$$s = self, $$21.$$arity = 1, $$21)).$join(" = "); + result = "" + (str) + "\n" + (indent) + (pvars) + " = nil;"; + } else { + result = str + }; + return self.$fragment(result); + }, $ScopeNode_to_vars$17.$$arity = 0); + Opal.def(self, '$add_scope_ivar', $ScopeNode_add_scope_ivar$22 = function $$add_scope_ivar(ivar) { + var self = this; + + if ($truthy(self['$def_in_class?']())) { + return self.parent.$add_proto_ivar(ivar) + } else if ($truthy(self.ivars['$include?'](ivar))) { + return nil + } else { + return self.ivars['$<<'](ivar) + } + }, $ScopeNode_add_scope_ivar$22.$$arity = 1); - Opal.defn(self, '$initialize', TMP_BreakFinder_initialize_1 = function $$initialize() { + Opal.def(self, '$add_scope_gvar', $ScopeNode_add_scope_gvar$23 = function $$add_scope_gvar(gvar) { var self = this; - return (self.found_break = false) - }, TMP_BreakFinder_initialize_1.$$arity = 0); + if ($truthy(self.gvars['$include?'](gvar))) { + return nil + } else { + return self.gvars['$<<'](gvar) + } + }, $ScopeNode_add_scope_gvar$23.$$arity = 1); - Opal.defn(self, '$found_break?', TMP_BreakFinder_found_break$q_2 = function() { + Opal.def(self, '$add_proto_ivar', $ScopeNode_add_proto_ivar$24 = function $$add_proto_ivar(ivar) { var self = this; - return self.found_break - }, TMP_BreakFinder_found_break$q_2.$$arity = 0); + if ($truthy(self.proto_ivars['$include?'](ivar))) { + return nil + } else { + return self.proto_ivars['$<<'](ivar) + } + }, $ScopeNode_add_proto_ivar$24.$$arity = 1); - Opal.defn(self, '$on_break', TMP_BreakFinder_on_break_3 = function $$on_break(node) { + Opal.def(self, '$add_arg', $ScopeNode_add_arg$25 = function $$add_arg(arg) { var self = this; - self.found_break = true; - return node; - }, TMP_BreakFinder_on_break_3.$$arity = 1); + if ($truthy(self.args['$include?'](arg))) { + } else { + self.args['$<<'](arg) + }; + return arg; + }, $ScopeNode_add_arg$25.$$arity = 1); - Opal.defn(self, '$stop_lookup', TMP_BreakFinder_stop_lookup_4 = function $$stop_lookup(node) { + Opal.def(self, '$add_scope_local', $ScopeNode_add_scope_local$26 = function $$add_scope_local(local) { var self = this; - return nil - }, TMP_BreakFinder_stop_lookup_4.$$arity = 1); - Opal.alias(self, "on_for", "stop_lookup"); - Opal.alias(self, "on_while", "stop_lookup"); - Opal.alias(self, "on_while_post", "stop_lookup"); - Opal.alias(self, "on_until", "stop_lookup"); - Opal.alias(self, "on_until_post", "stop_lookup"); - return Opal.alias(self, "on_block", "stop_lookup"); - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Rewriters'), 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/call"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; - - Opal.add_stubs(['$require', '$handle', '$attr_reader', '$[]=', '$-', '$define_method', '$to_proc', '$include?', '$type', '$s', '$handle_special', '$record_method?', '$<<', '$method_calls', '$compiler', '$to_sym', '$meth', '$using_irb?', '$compile_irb_var', '$default_compile', '$private', '$iter', '$new', '$process', '$found_break?', '$splat?', '$invoke_using_send?', '$compile_using_send', '$compile_simple_call_chain', '$compile_break_catcher', '$helper', '$push', '$compile_receiver', '$compile_method_name', '$compile_arguments', '$compile_block_pass', '$recv', '$receiver_sexp', '$expr', '$arglist', '$empty?', '$children', '$iter_has_break?', '$unshift', '$line', '$method_jsid', '$any?', '$==', '$recvr', '$mid_to_jsid', '$to_s', '$with_temp', '$intern', '$irb?', '$top?', '$scope', '$nil?', '$updated', '$method', '$arity', '$[]', '$compatible?', '$compile', '$sexp_with_arglist', '$call', '$each', '$add_special', '$inline_operators?', '$operator_helpers', '$fragment', '$resolve', '$requires', '$file', '$dirname', '$cleanpath', '$join', '$Pathname', '$inspect', '$class_scope?', '$required_trees', '$force_encoding', '$encoding', '$+', '$handle_block_given_call', '$def?', '$mid', '$arity_check?', '$push_nesting?', '$first', '$size', '$last', '$handle_part', '$map', '$===', '$expand_path', '$split', '$dynamic_require_severity', '$error', '$warning', '$inject', '$pop']); - - self.$require("set"); - self.$require("pathname"); - self.$require("opal/nodes/base"); - self.$require("opal/nodes/runtime_helpers"); - self.$require("opal/rewriters/break_finder"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + + if ($truthy(self['$has_local?'](local))) { + return nil}; + return self.locals['$<<'](local); + }, $ScopeNode_add_scope_local$26.$$arity = 1); + + Opal.def(self, '$has_local?', $ScopeNode_has_local$ques$27 = function(local) { + var self = this, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + if ($truthy((function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = self.locals['$include?'](local)))) { + return $ret_or_9 + } else { + return self.args['$include?'](local) + }; return nil; })()))) { + return $ret_or_8 + } else { + return self.temps['$include?'](local) + }; return nil; })())) { + return true}; + if ($truthy((function() {if ($truthy(($ret_or_10 = self.parent))) { + return self.type['$==']("iter") + } else { + return $ret_or_10 + }; return nil; })())) { + return self.parent['$has_local?'](local)}; + return false; + }, $ScopeNode_has_local$ques$27.$$arity = 1); + + Opal.def(self, '$scope_locals', $ScopeNode_scope_locals$28 = function $$scope_locals() { + var self = this, $ret_or_11 = nil; - (function($base, $super, $parent_nesting) { - function $CallNode(){}; - var self = $CallNode = $klass($base, $super, 'CallNode', $CallNode); + return self.locals['$|'](self.args)['$|']((function() {if ($truthy((function() {if ($truthy(($ret_or_11 = self.parent))) { + return self.type['$==']("iter") + } else { + return $ret_or_11 + }; return nil; })())) { + return self.parent.$scope_locals() + } else { + return [] + }; return nil; })()) + }, $ScopeNode_scope_locals$28.$$arity = 0); + + Opal.def(self, '$add_scope_temp', $ScopeNode_add_scope_temp$29 = function $$add_scope_temp(tmp) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_CallNode_add_special_1, TMP_CallNode_initialize_2, TMP_CallNode_compile_4, TMP_CallNode_iter_has_break$q_5, TMP_CallNode_invoke_using_send$q_6, TMP_CallNode_default_compile_7, TMP_CallNode_compile_using_send_8, TMP_CallNode_compile_receiver_9, TMP_CallNode_compile_method_name_10, TMP_CallNode_compile_arguments_11, TMP_CallNode_compile_block_pass_12, TMP_CallNode_compile_break_catcher_13, TMP_CallNode_compile_simple_call_chain_14, TMP_CallNode_splat$q_16, TMP_CallNode_receiver_sexp_17, TMP_CallNode_method_jsid_18, TMP_CallNode_record_method$q_19, TMP_CallNode_compile_irb_var_21, TMP_CallNode_using_irb$q_22, TMP_CallNode_sexp_with_arglist_23, TMP_CallNode_handle_special_24, TMP_CallNode_25, TMP_CallNode_27, TMP_CallNode_28, TMP_CallNode_29, TMP_CallNode_30, TMP_CallNode_31, TMP_CallNode_32, TMP_CallNode_33, TMP_CallNode_34, TMP_CallNode_35, TMP_CallNode_36, TMP_CallNode_37, TMP_CallNode_push_nesting$q_38; + + if ($truthy(self['$has_temp?'](tmp))) { + return nil}; + return self.temps.$push(tmp); + }, $ScopeNode_add_scope_temp$29.$$arity = 1); + + Opal.def(self, '$has_temp?', $ScopeNode_has_temp$ques$30 = function(tmp) { + var self = this; - def.sexp = def.compiler = def.level = nil; + return self.temps['$include?'](tmp) + }, $ScopeNode_has_temp$ques$30.$$arity = 1); - self.$handle("send"); - self.$attr_reader("recvr", "meth", "arglist", "iter"); - Opal.const_set($nesting[0], 'SPECIALS', $hash2([], {})); - Opal.const_set($nesting[0], 'OPERATORS', $hash2(["+", "-", "*", "/", "<", "<=", ">", ">="], {"+": "plus", "-": "minus", "*": "times", "/": "divide", "<": "lt", "<=": "le", ">": "gt", ">=": "ge"})); - Opal.defs(self, '$add_special', TMP_CallNode_add_special_1 = function $$add_special(name, options) { - var self = this, $iter = TMP_CallNode_add_special_1.$$p, handler = $iter || nil, $writer = nil; + Opal.def(self, '$new_temp', $ScopeNode_new_temp$31 = function $$new_temp() { + var self = this, tmp = nil; - if (options == null) { - options = $hash2([], {}); - } - if ($iter) TMP_CallNode_add_special_1.$$p = null; - - $writer = [name, options]; - $send(Opal.const_get_relative($nesting, 'SPECIALS'), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return $send(self, 'define_method', ["" + "handle_" + (name)], handler.$to_proc()); - }, TMP_CallNode_add_special_1.$$arity = -2); + if ($truthy(self.queue['$empty?']())) { + } else { + return self.queue.$pop() + }; + tmp = self.$next_temp(); + self.temps['$<<'](tmp); + return tmp; + }, $ScopeNode_new_temp$31.$$arity = 0); - Opal.defn(self, '$initialize', TMP_CallNode_initialize_2 = function $$initialize($a_rest) { - var $b, $c, self = this, $iter = TMP_CallNode_initialize_2.$$p, $yield = $iter || nil, args = nil, rest = nil, last_arg = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$next_temp', $ScopeNode_next_temp$32 = function $$next_temp() { + var $$33, self = this, tmp = nil; - if ($iter) TMP_CallNode_initialize_2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_CallNode_initialize_2, false), $zuper, $iter); - $b = [].concat(Opal.to_a(self.sexp)), (self.recvr = ($b[0] == null ? nil : $b[0])), (self.meth = ($b[1] == null ? nil : $b[1])), (args = $slice.call($b, 2)), $b; - $b = [].concat(Opal.to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_arg = ($b[$c] == null ? nil : $b[$c])), $b; - if ($truthy(($truthy($b = last_arg) ? ["iter", "block_pass"]['$include?'](last_arg.$type()) : $b))) { + tmp = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], ($$33 = function(){var self = $$33.$$s == null ? this : $$33.$$s; + if (self.unique == null) self.unique = nil; + - self.iter = last_arg; - args = rest; + tmp = "" + "$" + (self.unique); + self.unique = self.unique.$succ(); + if ($truthy(self['$has_local?'](tmp))) { + return nil } else { - self.iter = nil - }; - return (self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(args)))); - }, TMP_CallNode_initialize_2.$$arity = -1); + + Opal.brk(nil, $brk) + };}, $$33.$$s = self, $$33.$$brk = $brk, $$33.$$arity = 0, $$33)) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + return tmp; + }, $ScopeNode_next_temp$32.$$arity = 0); - Opal.defn(self, '$compile', TMP_CallNode_compile_4 = function $$compile() {try { - - var TMP_3, self = this; + Opal.def(self, '$queue_temp', $ScopeNode_queue_temp$34 = function $$queue_temp(name) { + var self = this; - return $send(self, 'handle_special', [], (TMP_3 = function(){var self = TMP_3.$$s || this; + return self.queue['$<<'](name) + }, $ScopeNode_queue_temp$34.$$arity = 1); + + Opal.def(self, '$push_while', $ScopeNode_push_while$35 = function $$push_while() { + var self = this, info = nil; - if ($truthy(self['$record_method?']())) { - self.$compiler().$method_calls()['$<<'](self.$meth().$to_sym())}; - if ($truthy(self['$using_irb?']())) { - Opal.ret(self.$compile_irb_var())}; - return self.$default_compile();}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)) - } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_CallNode_compile_4.$$arity = 0); - self.$private(); + info = $hash2([], {}); + self.while_stack.$push(info); + return info; + }, $ScopeNode_push_while$35.$$arity = 0); - Opal.defn(self, '$iter_has_break?', TMP_CallNode_iter_has_break$q_5 = function() { - var self = this, finder = nil; + Opal.def(self, '$pop_while', $ScopeNode_pop_while$36 = function $$pop_while() { + var self = this; - - if ($truthy(self.$iter())) { - } else { - return false - }; - finder = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Rewriters'), 'BreakFinder').$new(); - finder.$process(self.$iter()); - return finder['$found_break?'](); - }, TMP_CallNode_iter_has_break$q_5.$$arity = 0); + return self.while_stack.$pop() + }, $ScopeNode_pop_while$36.$$arity = 0); - Opal.defn(self, '$invoke_using_send?', TMP_CallNode_invoke_using_send$q_6 = function() { - var $a, self = this; + Opal.def(self, '$in_while?', $ScopeNode_in_while$ques$37 = function() { + var self = this; + + return self.while_stack['$empty?']()['$!']() + }, $ScopeNode_in_while$ques$37.$$arity = 0); + + Opal.def(self, '$uses_block!', $ScopeNode_uses_block$excl$38 = function() { + var self = this, $ret_or_12 = nil; + + if ($truthy((function() {if ($truthy(($ret_or_12 = self.type['$==']("iter")))) { + return self.parent + } else { + return $ret_or_12 + }; return nil; })())) { + return self.parent['$uses_block!']() + } else { + + self.uses_block = true; + return self['$identify!'](); + } + }, $ScopeNode_uses_block$excl$38.$$arity = 0); + + Opal.def(self, '$identify!', $ScopeNode_identify$excl$39 = function(name) { + var self = this, $ret_or_13 = nil, $ret_or_14 = nil, $ret_or_15 = nil; - return ($truthy($a = self.$iter()) ? $a : self['$splat?']()) - }, TMP_CallNode_invoke_using_send$q_6.$$arity = 0); + + + if (name == null) { + name = nil; + }; + if ($truthy(self.identity)) { + return self.identity}; + name = (function() {if ($truthy(($ret_or_13 = name))) { + return $ret_or_13 + } else { + return [(function() {if ($truthy(($ret_or_14 = self.$parent()))) { + + if ($truthy(($ret_or_15 = self.$parent().$name()))) { + return $ret_or_15 + } else { + return self.$parent().$scope_name() + }; + } else { + return $ret_or_14 + }; return nil; })(), self.$mid()].$compact().$join("_") + }; return nil; })(); + self.identity = self.compiler.$unique_temp(name); + if ($truthy(self.parent)) { + self.parent.$add_scope_temp(self.identity)}; + return self.identity; + }, $ScopeNode_identify$excl$39.$$arity = -1); + self.$attr_reader("identity"); - Opal.defn(self, '$default_compile', TMP_CallNode_default_compile_7 = function $$default_compile() { - var self = this; + Opal.def(self, '$find_parent_def', $ScopeNode_find_parent_def$40 = function $$find_parent_def() { + var $a, self = this, scope = nil, $ret_or_16 = nil; - if ($truthy(self['$invoke_using_send?']())) { - self.$compile_using_send() + scope = self; + while ($truthy((scope = scope.$parent()))) { + if ($truthy((function() {if ($truthy(($ret_or_16 = scope['$def?']()))) { + return $ret_or_16 } else { - self.$compile_simple_call_chain() + return scope['$lambda?']() + }; return nil; })())) { + return scope} }; - return self.$compile_break_catcher(); - }, TMP_CallNode_default_compile_7.$$arity = 0); + return nil; + }, $ScopeNode_find_parent_def$40.$$arity = 0); - Opal.defn(self, '$compile_using_send', TMP_CallNode_compile_using_send_8 = function $$compile_using_send() { - var self = this; + Opal.def(self, '$super_chain', $ScopeNode_super_chain$41 = function $$super_chain() { + var $a, self = this, chain = nil, scope = nil, defn = nil, mid = nil; - self.$helper("send"); - self.$push("$send("); - self.$compile_receiver(); - self.$compile_method_name(); - self.$compile_arguments(); - self.$compile_block_pass(); - return self.$push(")"); - }, TMP_CallNode_compile_using_send_8.$$arity = 0); + $a = [[], self, "null", "null"], (chain = $a[0]), (scope = $a[1]), (defn = $a[2]), (mid = $a[3]), $a; + while ($truthy(scope)) { + if (scope.$type()['$==']("iter")) { + + chain['$<<'](scope['$identify!']()); + if ($truthy(scope.$parent())) { + scope = scope.$parent()}; + } else if ($truthy(["def", "defs"]['$include?'](scope.$type()))) { + + defn = scope['$identify!'](); + mid = "" + "'" + (scope.$mid()) + "'"; + break;; + } else { + break; + } + }; + return [chain, defn, mid]; + }, $ScopeNode_super_chain$41.$$arity = 0); - Opal.defn(self, '$compile_receiver', TMP_CallNode_compile_receiver_9 = function $$compile_receiver() { + Opal.def(self, '$uses_block?', $ScopeNode_uses_block$ques$42 = function() { var self = this; - return self.$push(self.$recv(self.$receiver_sexp())) - }, TMP_CallNode_compile_receiver_9.$$arity = 0); + return self.uses_block + }, $ScopeNode_uses_block$ques$42.$$arity = 0); - Opal.defn(self, '$compile_method_name', TMP_CallNode_compile_method_name_10 = function $$compile_method_name() { + Opal.def(self, '$has_rescue_else?', $ScopeNode_has_rescue_else$ques$43 = function() { var self = this; - return self.$push("" + ", '" + (self.$meth()) + "'") - }, TMP_CallNode_compile_method_name_10.$$arity = 0); + return self.$rescue_else_sexp()['$nil?']()['$!']() + }, $ScopeNode_has_rescue_else$ques$43.$$arity = 0); - Opal.defn(self, '$compile_arguments', TMP_CallNode_compile_arguments_11 = function $$compile_arguments() { - var self = this; + Opal.def(self, '$in_rescue', $ScopeNode_in_rescue$44 = function $$in_rescue(node) { + var $iter = $ScopeNode_in_rescue$44.$$p, $yield = $iter || nil, self = this, $ret_or_17 = nil, result = nil; + if ($iter) $ScopeNode_in_rescue$44.$$p = null; - self.$push(", "); - if ($truthy(self['$splat?']())) { - return self.$push(self.$expr(self.$arglist())) - } else if ($truthy(self.$arglist().$children()['$empty?']())) { - return self.$push("[]") - } else { - return self.$push("[", self.$expr(self.$arglist()), "]") - }; - }, TMP_CallNode_compile_arguments_11.$$arity = 0); + self.rescues = (function() {if ($truthy(($ret_or_17 = self.rescues))) { + return $ret_or_17 + } else { + return [] + }; return nil; })(); + self.rescues.$push(node); + result = Opal.yieldX($yield, []); + self.rescues.$pop(); + return result; + }, $ScopeNode_in_rescue$44.$$arity = 1); - Opal.defn(self, '$compile_block_pass', TMP_CallNode_compile_block_pass_12 = function $$compile_block_pass() { + Opal.def(self, '$current_rescue', $ScopeNode_current_rescue$45 = function $$current_rescue() { var self = this; - if ($truthy(self.$iter())) { - return self.$push(", ", self.$expr(self.$iter())) - } else { - return nil - } - }, TMP_CallNode_compile_block_pass_12.$$arity = 0); + return self.rescues.$last() + }, $ScopeNode_current_rescue$45.$$arity = 0); - Opal.defn(self, '$compile_break_catcher', TMP_CallNode_compile_break_catcher_13 = function $$compile_break_catcher() { - var self = this; + Opal.def(self, '$in_resbody', $ScopeNode_in_resbody$46 = function $$in_resbody() { + var $iter = $ScopeNode_in_resbody$46.$$p, $yield = $iter || nil, self = this, result = nil; - if ($truthy(self['$iter_has_break?']())) { - - self.$unshift("return "); - self.$unshift("(function(){var $brk = Opal.new_brk(); try {"); - return self.$line("} catch (err) { if (err === $brk) { return err.$v } else { throw err } }})()"); - } else { + if ($iter) $ScopeNode_in_resbody$46.$$p = null; + + if (($yield !== nil)) { + } else { return nil - } - }, TMP_CallNode_compile_break_catcher_13.$$arity = 0); + }; + self.in_resbody = true; + result = Opal.yieldX($yield, []); + self.in_resbody = false; + return result; + }, $ScopeNode_in_resbody$46.$$arity = 0); - Opal.defn(self, '$compile_simple_call_chain', TMP_CallNode_compile_simple_call_chain_14 = function $$compile_simple_call_chain() { + Opal.def(self, '$in_resbody?', $ScopeNode_in_resbody$ques$47 = function() { var self = this; - return self.$push(self.$recv(self.$receiver_sexp()), self.$method_jsid(), "(", self.$expr(self.$arglist()), ")") - }, TMP_CallNode_compile_simple_call_chain_14.$$arity = 0); - - Opal.defn(self, '$splat?', TMP_CallNode_splat$q_16 = function() { - var TMP_15, self = this; - - return $send(self.$arglist().$children(), 'any?', [], (TMP_15 = function(a){var self = TMP_15.$$s || this; -if (a == null) a = nil; - return a.$type()['$==']("splat")}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)) - }, TMP_CallNode_splat$q_16.$$arity = 0); + return self.in_resbody + }, $ScopeNode_in_resbody$ques$47.$$arity = 0); - Opal.defn(self, '$receiver_sexp', TMP_CallNode_receiver_sexp_17 = function $$receiver_sexp() { - var $a, self = this; - - return ($truthy($a = self.$recvr()) ? $a : self.$s("self")) - }, TMP_CallNode_receiver_sexp_17.$$arity = 0); - - Opal.defn(self, '$method_jsid', TMP_CallNode_method_jsid_18 = function $$method_jsid() { - var self = this; + Opal.def(self, '$in_ensure', $ScopeNode_in_ensure$48 = function $$in_ensure() { + var $iter = $ScopeNode_in_ensure$48.$$p, $yield = $iter || nil, self = this, result = nil; - return self.$mid_to_jsid(self.$meth().$to_s()) - }, TMP_CallNode_method_jsid_18.$$arity = 0); + if ($iter) $ScopeNode_in_ensure$48.$$p = null; + + if (($yield !== nil)) { + } else { + return nil + }; + self.in_ensure = true; + result = Opal.yieldX($yield, []); + self.in_ensure = false; + return result; + }, $ScopeNode_in_ensure$48.$$arity = 0); - Opal.defn(self, '$record_method?', TMP_CallNode_record_method$q_19 = function() { + Opal.def(self, '$in_ensure?', $ScopeNode_in_ensure$ques$49 = function() { var self = this; - return true - }, TMP_CallNode_record_method$q_19.$$arity = 0); + return self.in_ensure + }, $ScopeNode_in_ensure$ques$49.$$arity = 0); - Opal.defn(self, '$compile_irb_var', TMP_CallNode_compile_irb_var_21 = function $$compile_irb_var() { - var TMP_20, self = this; + Opal.def(self, '$gen_retry_id', $ScopeNode_gen_retry_id$50 = function $$gen_retry_id() { + var self = this, $ret_or_18 = nil; - return $send(self, 'with_temp', [], (TMP_20 = function(tmp){var self = TMP_20.$$s || this, lvar = nil, call = nil; -if (tmp == null) tmp = nil; - lvar = self.$meth(); - call = self.$s("send", self.$s("self"), self.$meth().$intern(), self.$s("arglist")); - return self.$push("" + "((" + (tmp) + " = Opal.irb_vars." + (lvar) + ") == null ? ", self.$expr(call), "" + " : " + (tmp) + ")");}, TMP_20.$$s = self, TMP_20.$$arity = 1, TMP_20)) - }, TMP_CallNode_compile_irb_var_21.$$arity = 0); - - Opal.defn(self, '$using_irb?', TMP_CallNode_using_irb$q_22 = function() { - var $a, $b, $c, $d, self = this; - - return ($truthy($a = ($truthy($b = ($truthy($c = ($truthy($d = self.compiler['$irb?']()) ? self.$scope()['$top?']() : $d)) ? self.$arglist()['$=='](self.$s("arglist")) : $c)) ? self.$recvr()['$nil?']() : $b)) ? self.$iter()['$nil?']() : $a) - }, TMP_CallNode_using_irb$q_22.$$arity = 0); + self.next_retry_id = (function() {if ($truthy(($ret_or_18 = self.next_retry_id))) { + return $ret_or_18 + } else { + return "retry_0" + }; return nil; })(); + return (self.next_retry_id = self.next_retry_id.$succ()); + }, $ScopeNode_gen_retry_id$50.$$arity = 0); - Opal.defn(self, '$sexp_with_arglist', TMP_CallNode_sexp_with_arglist_23 = function $$sexp_with_arglist() { + Opal.def(self, '$accepts_using?', $ScopeNode_accepts_using$ques$51 = function() { var self = this; - return self.sexp.$updated(nil, [self.$recvr(), self.$meth(), self.$arglist()]) - }, TMP_CallNode_sexp_with_arglist_23.$$arity = 0); - - Opal.defn(self, '$handle_special', TMP_CallNode_handle_special_24 = function $$handle_special() { - var self = this, $iter = TMP_CallNode_handle_special_24.$$p, compile_default = $iter || nil, method = nil; - - if ($iter) TMP_CallNode_handle_special_24.$$p = null; - if ($truthy(Opal.const_get_relative($nesting, 'SPECIALS')['$include?'](self.$meth()))) { - - method = self.$method("" + "handle_" + (self.$meth())); - if (method.$arity()['$=='](1)) { - return method['$[]'](compile_default) - } else { - return method['$[]']() - }; - } else if ($truthy(Opal.const_get_relative($nesting, 'RuntimeHelpers')['$compatible?'](self.$recvr(), self.$meth(), self.$arglist()))) { - return self.$push(Opal.const_get_relative($nesting, 'RuntimeHelpers').$new(self.$sexp_with_arglist(), self.level, self.compiler).$compile()) - } else { - return compile_default.$call() - } - }, TMP_CallNode_handle_special_24.$$arity = 0); - $send(Opal.const_get_relative($nesting, 'OPERATORS'), 'each', [], (TMP_CallNode_25 = function(operator, name){var self = TMP_CallNode_25.$$s || this, TMP_26; -if (operator == null) operator = nil;if (name == null) name = nil; - return $send(self, 'add_special', [operator.$to_sym()], (TMP_26 = function(compile_default){var self = TMP_26.$$s || this, $a, lhs = nil, rhs = nil; -if (compile_default == null) compile_default = nil; - if ($truthy(self.$compiler()['$inline_operators?']())) { - - if ($truthy(self['$record_method?']())) { - self.$compiler().$method_calls()['$<<'](operator.$to_sym())}; - self.$compiler().$operator_helpers()['$<<'](operator.$to_sym()); - $a = [self.$expr(self.$recvr()), self.$expr(self.$arglist())], (lhs = $a[0]), (rhs = $a[1]), $a; - self.$push(self.$fragment("" + "$rb_" + (name) + "(")); - self.$push(lhs); - self.$push(self.$fragment(", ")); - self.$push(rhs); - return self.$push(self.$fragment(")")); - } else { - return compile_default.$call() - }}, TMP_26.$$s = self, TMP_26.$$arity = 1, TMP_26))}, TMP_CallNode_25.$$s = self, TMP_CallNode_25.$$arity = 2, TMP_CallNode_25)); - $send(self, 'add_special', ["require"], (TMP_CallNode_27 = function(compile_default){var self = TMP_CallNode_27.$$s || this, str = nil; -if (compile_default == null) compile_default = nil; - - str = Opal.const_get_relative($nesting, 'DependencyResolver').$new(self.$compiler(), self.$arglist().$children()['$[]'](0)).$resolve(); - if ($truthy(str['$nil?']())) { - } else { - self.$compiler().$requires()['$<<'](str) - }; - return compile_default.$call();}, TMP_CallNode_27.$$s = self, TMP_CallNode_27.$$arity = 1, TMP_CallNode_27)); - $send(self, 'add_special', ["require_relative"], (TMP_CallNode_28 = function(_compile_default){var self = TMP_CallNode_28.$$s || this, arg = nil, file = nil, dir = nil; -if (_compile_default == null) _compile_default = nil; - - arg = self.$arglist().$children()['$[]'](0); - file = self.$compiler().$file(); - if (arg.$type()['$==']("str")) { - - dir = Opal.const_get_relative($nesting, 'File').$dirname(file); - self.$compiler().$requires()['$<<'](self.$Pathname(dir).$join(arg.$children()['$[]'](0)).$cleanpath().$to_s());}; - self.$push(self.$fragment("" + "self.$require(" + (file.$inspect()) + "+ '/../' + ")); - self.$push(self.$process(self.$arglist())); - return self.$push(self.$fragment(")"));}, TMP_CallNode_28.$$s = self, TMP_CallNode_28.$$arity = 1, TMP_CallNode_28)); - $send(self, 'add_special', ["autoload"], (TMP_CallNode_29 = function(compile_default){var self = TMP_CallNode_29.$$s || this, str = nil; -if (compile_default == null) compile_default = nil; - if ($truthy(self.$scope()['$class_scope?']())) { - - str = Opal.const_get_relative($nesting, 'DependencyResolver').$new(self.$compiler(), self.$arglist().$children()['$[]'](1)).$resolve(); - if ($truthy(str['$nil?']())) { - } else { - self.$compiler().$requires()['$<<'](str) - }; - return compile_default.$call(); - } else { - return nil - }}, TMP_CallNode_29.$$s = self, TMP_CallNode_29.$$arity = 1, TMP_CallNode_29)); - $send(self, 'add_special', ["require_tree"], (TMP_CallNode_30 = function(compile_default){var self = TMP_CallNode_30.$$s || this, $a, first_arg = nil, rest = nil, relative_path = nil, dir = nil, full_path = nil; -if (compile_default == null) compile_default = nil; - - $a = [].concat(Opal.to_a(self.$arglist().$children())), (first_arg = ($a[0] == null ? nil : $a[0])), (rest = $slice.call($a, 1)), $a; - if (first_arg.$type()['$==']("str")) { - - relative_path = first_arg.$children()['$[]'](0); - self.$compiler().$required_trees()['$<<'](relative_path); - dir = Opal.const_get_relative($nesting, 'File').$dirname(self.$compiler().$file()); - full_path = self.$Pathname(dir).$join(relative_path).$cleanpath().$to_s(); - full_path.$force_encoding(relative_path.$encoding()); - first_arg = first_arg.$updated(nil, [full_path]);}; - self.arglist = self.$arglist().$updated(nil, $rb_plus([first_arg], rest)); - return compile_default.$call();}, TMP_CallNode_30.$$s = self, TMP_CallNode_30.$$arity = 1, TMP_CallNode_30)); - $send(self, 'add_special', ["block_given?"], (TMP_CallNode_31 = function(compile_default){var self = TMP_CallNode_31.$$s || this; - if (self.sexp == null) self.sexp = nil; -if (compile_default == null) compile_default = nil; - return self.$push(self.$compiler().$handle_block_given_call(self.sexp))}, TMP_CallNode_31.$$s = self, TMP_CallNode_31.$$arity = 1, TMP_CallNode_31)); - $send(self, 'add_special', ["__callee__"], (TMP_CallNode_32 = function(compile_default){var self = TMP_CallNode_32.$$s || this; -if (compile_default == null) compile_default = nil; - if ($truthy(self.$scope()['$def?']())) { - return self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())) - } else { - return self.$push(self.$fragment("nil")) - }}, TMP_CallNode_32.$$s = self, TMP_CallNode_32.$$arity = 1, TMP_CallNode_32)); - $send(self, 'add_special', ["__method__"], (TMP_CallNode_33 = function(compile_default){var self = TMP_CallNode_33.$$s || this; -if (compile_default == null) compile_default = nil; - if ($truthy(self.$scope()['$def?']())) { - return self.$push(self.$fragment(self.$scope().$mid().$to_s().$inspect())) - } else { - return self.$push(self.$fragment("nil")) - }}, TMP_CallNode_33.$$s = self, TMP_CallNode_33.$$arity = 1, TMP_CallNode_33)); - $send(self, 'add_special', ["debugger"], (TMP_CallNode_34 = function(compile_default){var self = TMP_CallNode_34.$$s || this; -if (compile_default == null) compile_default = nil; - return self.$push(self.$fragment("debugger"))}, TMP_CallNode_34.$$s = self, TMP_CallNode_34.$$arity = 1, TMP_CallNode_34)); - $send(self, 'add_special', ["__OPAL_COMPILER_CONFIG__"], (TMP_CallNode_35 = function(compile_default){var self = TMP_CallNode_35.$$s || this; -if (compile_default == null) compile_default = nil; - return self.$push(self.$fragment("" + "Opal.hash({ arity_check: " + (self.$compiler()['$arity_check?']()) + " })"))}, TMP_CallNode_35.$$s = self, TMP_CallNode_35.$$arity = 1, TMP_CallNode_35)); - $send(self, 'add_special', ["nesting"], (TMP_CallNode_36 = function(compile_default){var self = TMP_CallNode_36.$$s || this, push_nesting = nil; -if (compile_default == null) compile_default = nil; - - push_nesting = self['$push_nesting?'](self.$children()); - if ($truthy(push_nesting)) { - self.$push("(Opal.Module.$$nesting = $nesting, ")}; - compile_default.$call(); - if ($truthy(push_nesting)) { - return self.$push(")") - } else { - return nil - };}, TMP_CallNode_36.$$s = self, TMP_CallNode_36.$$arity = 1, TMP_CallNode_36)); - $send(self, 'add_special', ["constants"], (TMP_CallNode_37 = function(compile_default){var self = TMP_CallNode_37.$$s || this, push_nesting = nil; -if (compile_default == null) compile_default = nil; - - push_nesting = self['$push_nesting?'](self.$children()); - if ($truthy(push_nesting)) { - self.$push("(Opal.Module.$$nesting = $nesting, ")}; - compile_default.$call(); - if ($truthy(push_nesting)) { - return self.$push(")") - } else { - return nil - };}, TMP_CallNode_37.$$s = self, TMP_CallNode_37.$$arity = 1, TMP_CallNode_37)); + return [$$($nesting, 'TopNode'), $$($nesting, 'ModuleNode'), $$($nesting, 'ClassNode'), $$($nesting, 'IterNode')]['$include?'](self.$class()) + }, $ScopeNode_accepts_using$ques$51.$$arity = 0); - Opal.defn(self, '$push_nesting?', TMP_CallNode_push_nesting$q_38 = function(recv) { - var $a, $b, $c, self = this; - - - recv = self.$children().$first(); - return (($a = self.$children().$size()['$=='](2)) ? ($truthy($b = recv['$nil?']()) ? $b : (($c = recv.$type()['$==']("const")) ? recv.$children().$last()['$==']("Module") : recv.$type()['$==']("const"))) : self.$children().$size()['$=='](2)); - }, TMP_CallNode_push_nesting$q_38.$$arity = 1); - return (function($base, $super, $parent_nesting) { - function $DependencyResolver(){}; - var self = $DependencyResolver = $klass($base, $super, 'DependencyResolver', $DependencyResolver); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DependencyResolver_initialize_39, TMP_DependencyResolver_resolve_40, TMP_DependencyResolver_handle_part_42, TMP_DependencyResolver_expand_path_44; + Opal.def(self, '$collect_refinements_temps', $ScopeNode_collect_refinements_temps$52 = function $$collect_refinements_temps(temps) { + var self = this; - def.sexp = def.compiler = nil; - Opal.defn(self, '$initialize', TMP_DependencyResolver_initialize_39 = function $$initialize(compiler, sexp) { - var self = this; - - - self.compiler = compiler; - return (self.sexp = sexp); - }, TMP_DependencyResolver_initialize_39.$$arity = 2); - - Opal.defn(self, '$resolve', TMP_DependencyResolver_resolve_40 = function $$resolve() { - var self = this; + if (temps == null) { + temps = []; + }; + if ($truthy(self.refinements_temp)) { + temps['$<<'](self.refinements_temp)}; + if ($truthy(self.$parent())) { + return self.$parent().$collect_refinements_temps(temps)}; + return temps; + }, $ScopeNode_collect_refinements_temps$52.$$arity = -1); + + Opal.def(self, '$new_refinements_temp', $ScopeNode_new_refinements_temp$53 = function $$new_refinements_temp() { + var self = this, var$ = nil; - return self.$handle_part(self.sexp) - }, TMP_DependencyResolver_resolve_40.$$arity = 0); - Opal.defn(self, '$handle_part', TMP_DependencyResolver_handle_part_42 = function $$handle_part(sexp) { - var $a, $b, TMP_41, self = this, type = nil, recv = nil, meth = nil, args = nil, parts = nil, msg = nil, $case = nil; - - - type = sexp.$type(); - if (type['$==']("str")) { - return sexp.$children()['$[]'](0) - } else if (type['$==']("send")) { - - $b = sexp.$children(), $a = Opal.to_ary($b), (recv = ($a[0] == null ? nil : $a[0])), (meth = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $b; - parts = $send(args, 'map', [], (TMP_41 = function(s){var self = TMP_41.$$s || this; -if (s == null) s = nil; - return self.$handle_part(s)}, TMP_41.$$s = self, TMP_41.$$arity = 1, TMP_41)); - if ($truthy(($truthy($a = ($truthy($b = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Opal'), 'AST'), 'Node')['$==='](recv)) ? recv.$type()['$==']("const") : $b)) ? recv.$children().$last()['$==']("File") : $a))) { - if (meth['$==']("expand_path")) { - return $send(self, 'expand_path', Opal.to_a(parts)) - } else if (meth['$==']("join")) { - return self.$expand_path(parts.$join("/")) - } else if (meth['$==']("dirname")) { - return self.$expand_path(parts['$[]'](0).$split("/")['$[]']($range(0, -1, true)).$join("/"))}};}; - msg = "Cannot handle dynamic require"; - return (function() {$case = self.compiler.$dynamic_require_severity(); - if ("error"['$===']($case)) {return self.compiler.$error(msg, self.sexp.$line())} - else if ("warning"['$===']($case)) {return self.compiler.$warning(msg, self.sexp.$line())} - else { return nil }})(); - }, TMP_DependencyResolver_handle_part_42.$$arity = 1); - return (Opal.defn(self, '$expand_path', TMP_DependencyResolver_expand_path_44 = function $$expand_path(path, base) { - var TMP_43, self = this; - - if (base == null) { - base = ""; - } - return $send(((("" + (base)) + "/") + (path)).$split("/"), 'inject', [[]], (TMP_43 = function(p, part){var self = TMP_43.$$s || this; -if (p == null) p = nil;if (part == null) part = nil; - - if (part['$==']("")) { - } else if (part['$==']("..")) { - p.$pop() - } else { - p['$<<'](part) - }; - return p;}, TMP_43.$$s = self, TMP_43.$$arity = 2, TMP_43)).$join("/") - }, TMP_DependencyResolver_expand_path_44.$$arity = -2), nil) && 'expand_path'; - })($nesting[0], null, $nesting); - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) - })($nesting[0], $nesting) - })($nesting[0], $nesting); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/csend"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - - Opal.add_stubs(['$require', '$handle', '$helper', '$conditional_send', '$recv', '$receiver_sexp', '$push', '$compile_method_name', '$compile_arguments', '$compile_block_pass']); - - self.$require("opal/nodes/call"); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $super, $parent_nesting) { - function $CSendNode(){}; - var self = $CSendNode = $klass($base, $super, 'CSendNode', $CSendNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_CSendNode_default_compile_2; - + var$ = self.$compiler().$unique_temp("$refn"); + self.$add_scope_local(var$); + return var$; + }, $ScopeNode_new_refinements_temp$53.$$arity = 0); - self.$handle("csend"); - return (Opal.defn(self, '$default_compile', TMP_CSendNode_default_compile_2 = function $$default_compile() { - var TMP_1, self = this; + Opal.def(self, '$refinements_temp', $ScopeNode_refinements_temp$54 = function $$refinements_temp() { + var $a, self = this, prev = nil, curr = nil; - self.$helper("send"); - return $send(self, 'conditional_send', [self.$recv(self.$receiver_sexp())], (TMP_1 = function(receiver_temp){var self = TMP_1.$$s || this; -if (receiver_temp == null) receiver_temp = nil; - - self.$push("$send(", receiver_temp); - self.$compile_method_name(); - self.$compile_arguments(); - self.$compile_block_pass(); - return self.$push(")");}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); - }, TMP_CSendNode_default_compile_2.$$arity = 0), nil) && 'default_compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'CallNode'), $nesting) + $a = [self.refinements_temp, self.$new_refinements_temp()], (prev = $a[0]), (curr = $a[1]), $a; + self.refinements_temp = curr; + return [prev, curr]; + }, $ScopeNode_refinements_temp$54.$$arity = 0); + return self.$attr_accessor("await_encountered"); + })($nesting[0], $$($nesting, 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/call_special"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/module"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$recv', '$recvr', '$expr', '$property', '$value', '$<<', '$default_compile', '$meth', '$receiver_sexp', '$method_jsid', '$compile_arguments', '$iter', '$s', '$lhs', '$rhs', '$process']); + Opal.add_stubs(['$require', '$handle', '$children', '$name_and_base', '$helper', '$line', '$in_scope', '$name=', '$scope', '$-', '$compile_body', '$await_encountered', '$await_encountered=', '$parent', '$unshift', '$private', '$cid', '$nil?', '$expr', '$add_temp', '$stmt', '$returns', '$compiler', '$body', '$s', '$empty_line', '$to_vars']); - self.$require("opal/nodes/base"); - self.$require("opal/nodes/call"); + self.$require("opal/nodes/scope"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var self = $module($base, 'Opal'); - - (function($base, $super, $parent_nesting) { - function $JsAttrNode(){}; - var self = $JsAttrNode = $klass($base, $super, 'JsAttrNode', $JsAttrNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_JsAttrNode_compile_1; - - - self.$handle("jsattr"); - self.$children("recvr", "property"); - return (Opal.defn(self, '$compile', TMP_JsAttrNode_compile_1 = function $$compile() { - var self = this; + var $nesting = [self].concat($parent_nesting); - return self.$push(self.$recv(self.$recvr()), "[", self.$expr(self.$property()), "]") - }, TMP_JsAttrNode_compile_1.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $JsAttrAsgnNode(){}; - var self = $JsAttrAsgnNode = $klass($base, $super, 'JsAttrAsgnNode', $JsAttrAsgnNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_JsAttrAsgnNode_compile_2; - - - self.$handle("jsattrasgn"); - self.$children("recvr", "property", "value"); - return (Opal.defn(self, '$compile', TMP_JsAttrAsgnNode_compile_2 = function $$compile() { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - return self.$push(self.$recv(self.$recvr()), "[", self.$expr(self.$property()), "] = ", self.$expr(self.$value())) - }, TMP_JsAttrAsgnNode_compile_2.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $JsCallNode(){}; - var self = $JsCallNode = $klass($base, $super, 'JsCallNode', $JsCallNode); + var $nesting = [self].concat($parent_nesting); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_JsCallNode_initialize_3, TMP_JsCallNode_compile_4, TMP_JsCallNode_method_jsid_5, TMP_JsCallNode_compile_using_send_6; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ModuleNode'); + + var $nesting = [self].concat($parent_nesting), $ModuleNode_compile$1, $ModuleNode_name_and_base$3, $ModuleNode_compile_body$4; - def.iter = def.arglist = nil; - self.$handle("jscall"); + self.$handle("module"); + self.$children("cid", "body"); - Opal.defn(self, '$initialize', TMP_JsCallNode_initialize_3 = function $$initialize($a_rest) { - var self = this, $iter = TMP_JsCallNode_initialize_3.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$compile', $ModuleNode_compile$1 = function $$compile() { + var $a, $b, $$2, self = this, name = nil, base = nil, await_begin = nil, await_end = nil, async = nil, $writer = nil; - if ($iter) TMP_JsCallNode_initialize_3.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_JsCallNode_initialize_3, false), $zuper, $iter); - if ($truthy(self.iter)) { - self.arglist = self.arglist['$<<'](self.iter)}; - return (self.iter = nil); - }, TMP_JsCallNode_initialize_3.$$arity = -1); - - Opal.defn(self, '$compile', TMP_JsCallNode_compile_4 = function $$compile() { - var self = this; + $b = self.$name_and_base(), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; + self.$helper("module"); + self.$line("" + " var self = $module($base, '" + (name) + "');"); + $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; - return self.$default_compile() - }, TMP_JsCallNode_compile_4.$$arity = 0); + + + $writer = [name]; + $send(self.$scope(), 'name=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$compile_body();}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + if ($truthy(self.$await_encountered())) { + + await_begin = "(await "; + await_end = ")"; + async = "async "; + + $writer = [true]; + $send(self.$parent(), 'await_encountered=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + } else { + $a = ["", "", ""], (await_begin = $a[0]), (await_end = $a[1]), (async = $a[2]), $a + }; + self.$unshift("" + (await_begin) + "(" + (async) + "function($base, $parent_nesting) {"); + return self.$line("})(", base, "" + ", $nesting)" + (await_end)); + }, $ModuleNode_compile$1.$$arity = 0); + self.$private(); - Opal.defn(self, '$method_jsid', TMP_JsCallNode_method_jsid_5 = function $$method_jsid() { - var self = this; - - return "" + "." + (self.$meth()) - }, TMP_JsCallNode_method_jsid_5.$$arity = 0); - return (Opal.defn(self, '$compile_using_send', TMP_JsCallNode_compile_using_send_6 = function $$compile_using_send() { - var self = this; + Opal.def(self, '$name_and_base', $ModuleNode_name_and_base$3 = function $$name_and_base() { + var $a, $b, self = this, base = nil, name = nil; - self.$push(self.$recv(self.$receiver_sexp()), self.$method_jsid(), ".apply(null"); - self.$compile_arguments(); - if ($truthy(self.$iter())) { - self.$push(".concat(", self.$expr(self.$iter()), ")")}; - return self.$push(")"); - }, TMP_JsCallNode_compile_using_send_6.$$arity = 0), nil) && 'compile_using_send'; - })($nesting[0], Opal.const_get_relative($nesting, 'CallNode'), $nesting); - (function($base, $super, $parent_nesting) { - function $Match3Node(){}; - var self = $Match3Node = $klass($base, $super, 'Match3Node', $Match3Node); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Match3Node_compile_7; - - def.level = nil; - - self.$handle("match_with_lvasgn"); - self.$children("lhs", "rhs"); - return (Opal.defn(self, '$compile', TMP_Match3Node_compile_7 = function $$compile() { - var self = this, sexp = nil; + $b = self.$cid().$children(), $a = Opal.to_ary($b), (base = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy(base['$nil?']())) { + return [name, "$nesting[0]"] + } else { + return [name, self.$expr(base)] + }; + }, $ModuleNode_name_and_base$3.$$arity = 0); + return (Opal.def(self, '$compile_body', $ModuleNode_compile_body$4 = function $$compile_body() { + var self = this, body_code = nil, $ret_or_1 = nil; - sexp = self.$s("send", self.$lhs(), "=~", self.$rhs()); - return self.$push(self.$process(sexp, self.level)); - }, TMP_Match3Node_compile_7.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + self.$add_temp("$nesting = [self].concat($parent_nesting)"); + body_code = self.$stmt(self.$compiler().$returns((function() {if ($truthy(($ret_or_1 = self.$body()))) { + return $ret_or_1 + } else { + return self.$s("nil") + }; return nil; })())); + self.$empty_line(); + self.$line(self.$scope().$to_vars()); + return self.$line(body_code); + }, $ModuleNode_compile_body$4.$$arity = 0), nil) && 'compile_body'; + })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/scope"] = function(Opal) { +Opal.modules["opal/nodes/class"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$attr_accessor', '$attr_reader', '$indent', '$scope', '$compiler', '$scope=', '$-', '$call', '$==', '$!', '$class?', '$dup', '$push', '$map', '$ivars', '$gvars', '$parser_indent', '$empty?', '$join', '$+', '$proto', '$%', '$fragment', '$def_in_class?', '$add_proto_ivar', '$include?', '$<<', '$has_local?', '$has_temp?', '$pop', '$next_temp', '$succ', '$uses_block!', '$identify!', '$compact', '$parent', '$name', '$scope_name', '$mid', '$unique_temp', '$add_scope_temp', '$def?', '$type', '$rescue_else_sexp']); + Opal.add_stubs(['$require', '$handle', '$children', '$name_and_base', '$helper', '$line', '$in_scope', '$name=', '$scope', '$-', '$compile_body', '$await_encountered', '$await_encountered=', '$parent', '$unshift', '$super_code', '$sup', '$expr']); - self.$require("opal/nodes/base"); + self.$require("opal/nodes/module"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ScopeNode(){}; - var self = $ScopeNode = $klass($base, $super, 'ScopeNode', $ScopeNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ClassNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ScopeNode_initialize_1, TMP_ScopeNode_in_scope_2, TMP_ScopeNode_class_scope$q_4, TMP_ScopeNode_class$q_5, TMP_ScopeNode_module$q_6, TMP_ScopeNode_sclass$q_7, TMP_ScopeNode_top$q_8, TMP_ScopeNode_iter$q_9, TMP_ScopeNode_def$q_10, TMP_ScopeNode_def_in_class$q_11, TMP_ScopeNode_proto_12, TMP_ScopeNode_to_vars_17, TMP_ScopeNode_add_scope_ivar_18, TMP_ScopeNode_add_scope_gvar_19, TMP_ScopeNode_add_proto_ivar_20, TMP_ScopeNode_add_arg_21, TMP_ScopeNode_add_scope_local_22, TMP_ScopeNode_has_local$q_23, TMP_ScopeNode_add_scope_temp_24, TMP_ScopeNode_has_temp$q_25, TMP_ScopeNode_new_temp_26, TMP_ScopeNode_next_temp_27, TMP_ScopeNode_queue_temp_28, TMP_ScopeNode_push_while_29, TMP_ScopeNode_pop_while_30, TMP_ScopeNode_in_while$q_31, TMP_ScopeNode_uses_block$B_32, TMP_ScopeNode_identify$B_33, TMP_ScopeNode_identity_34, TMP_ScopeNode_find_parent_def_35, TMP_ScopeNode_get_super_chain_36, TMP_ScopeNode_uses_block$q_37, TMP_ScopeNode_has_rescue_else$q_38, TMP_ScopeNode_in_ensure_39, TMP_ScopeNode_in_ensure$q_40; + var $nesting = [self].concat($parent_nesting), $ClassNode_compile$1, $ClassNode_super_code$3; - def.type = def.defs = def.parent = def.temps = def.locals = def.compiler = def.proto_ivars = def.ivars = def.gvars = def.args = def.queue = def.unique = def.while_stack = def.identity = def.uses_block = def.in_ensure = nil; - self.$attr_accessor("parent"); - self.$attr_accessor("name"); - self.$attr_accessor("block_name"); - self.$attr_reader("scope_name"); - self.$attr_reader("locals"); - self.$attr_reader("ivars"); - self.$attr_reader("gvars"); - self.$attr_accessor("mid"); - self.$attr_accessor("defs"); - self.$attr_reader("methods"); - self.$attr_accessor("uses_super"); - self.$attr_accessor("uses_zuper"); - self.$attr_accessor("catch_return", "has_break"); - self.$attr_accessor("rescue_else_sexp"); + self.$handle("class"); + self.$children("cid", "sup", "body"); - Opal.defn(self, '$initialize', TMP_ScopeNode_initialize_1 = function $$initialize($a_rest) { - var self = this, $iter = TMP_ScopeNode_initialize_1.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$compile', $ClassNode_compile$1 = function $$compile() { + var $a, $b, $$2, self = this, name = nil, base = nil, await_begin = nil, await_end = nil, async = nil, $writer = nil; - if ($iter) TMP_ScopeNode_initialize_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_ScopeNode_initialize_1, false), $zuper, $iter); - self.locals = []; - self.temps = []; - self.args = []; - self.ivars = []; - self.gvars = []; - self.parent = nil; - self.queue = []; - self.unique = "a"; - self.while_stack = []; - self.identity = nil; - self.defs = nil; - self.methods = []; - self.uses_block = false; - self.in_ensure = false; - return (self.proto_ivars = []); - }, TMP_ScopeNode_initialize_1.$$arity = -1); - - Opal.defn(self, '$in_scope', TMP_ScopeNode_in_scope_2 = function $$in_scope() { - var TMP_3, self = this, $iter = TMP_ScopeNode_in_scope_2.$$p, block = $iter || nil; - - if ($iter) TMP_ScopeNode_in_scope_2.$$p = null; - return $send(self, 'indent', [], (TMP_3 = function(){var self = TMP_3.$$s || this, $writer = nil; - if (self.parent == null) self.parent = nil; + $b = self.$name_and_base(), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; + self.$helper("klass"); + self.$line("" + " var self = $klass($base, $super, '" + (name) + "');"); + $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; - - self.parent = self.$compiler().$scope(); - $writer = [self]; - $send(self.$compiler(), 'scope=', Opal.to_a($writer)); + + $writer = [name]; + $send(self.$scope(), 'name=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - block.$call(self); + return self.$compile_body();}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + if ($truthy(self.$await_encountered())) { - $writer = [self.parent]; - $send(self.$compiler(), 'scope=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)) - }, TMP_ScopeNode_in_scope_2.$$arity = 0); - - Opal.defn(self, '$class_scope?', TMP_ScopeNode_class_scope$q_4 = function() { - var $a, self = this; - - return ($truthy($a = self.type['$==']("class")) ? $a : self.type['$==']("module")) - }, TMP_ScopeNode_class_scope$q_4.$$arity = 0); - - Opal.defn(self, '$class?', TMP_ScopeNode_class$q_5 = function() { + await_begin = "(await "; + await_end = ")"; + async = "async "; + + $writer = [true]; + $send(self.$parent(), 'await_encountered=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + } else { + $a = ["", "", ""], (await_begin = $a[0]), (await_end = $a[1]), (async = $a[2]), $a + }; + self.$unshift("" + (await_begin) + "(" + (async) + "function($base, $super, $parent_nesting) {"); + return self.$line("})(", base, ", ", self.$super_code(), "" + ", $nesting)" + (await_end)); + }, $ClassNode_compile$1.$$arity = 0); + return (Opal.def(self, '$super_code', $ClassNode_super_code$3 = function $$super_code() { var self = this; - return self.type['$==']("class") - }, TMP_ScopeNode_class$q_5.$$arity = 0); - - Opal.defn(self, '$module?', TMP_ScopeNode_module$q_6 = function() { - var self = this; + if ($truthy(self.$sup())) { + return self.$expr(self.$sup()) + } else { + return "null" + } + }, $ClassNode_super_code$3.$$arity = 0), nil) && 'super_code'; + })($nesting[0], $$($nesting, 'ModuleNode'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - return self.type['$==']("module") - }, TMP_ScopeNode_module$q_6.$$arity = 0); - - Opal.defn(self, '$sclass?', TMP_ScopeNode_sclass$q_7 = function() { - var self = this; +Opal.modules["opal/nodes/singleton_class"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - return self.type['$==']("sclass") - }, TMP_ScopeNode_sclass$q_7.$$arity = 0); - - Opal.defn(self, '$top?', TMP_ScopeNode_top$q_8 = function() { - var self = this; + Opal.add_stubs(['$require', '$handle', '$children', '$push', '$in_scope', '$add_temp', '$stmt', '$returns', '$compiler', '$body', '$line', '$to_vars', '$scope', '$recv', '$object']); + + self.$require("opal/nodes/scope"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - return self.type['$==']("top") - }, TMP_ScopeNode_top$q_8.$$arity = 0); - - Opal.defn(self, '$iter?', TMP_ScopeNode_iter$q_9 = function() { - var self = this; + var $nesting = [self].concat($parent_nesting); - return self.type['$==']("iter") - }, TMP_ScopeNode_iter$q_9.$$arity = 0); - - Opal.defn(self, '$def?', TMP_ScopeNode_def$q_10 = function() { - var $a, self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - return ($truthy($a = self.type['$==']("def")) ? $a : self.type['$==']("defs")) - }, TMP_ScopeNode_def$q_10.$$arity = 0); - - Opal.defn(self, '$def_in_class?', TMP_ScopeNode_def_in_class$q_11 = function() { - var $a, $b, $c, self = this; + var $nesting = [self].concat($parent_nesting); - return ($truthy($a = ($truthy($b = ($truthy($c = self.defs['$!']()) ? self.type['$==']("def") : $c)) ? self.parent : $b)) ? self.parent['$class?']() : $a) - }, TMP_ScopeNode_def_in_class$q_11.$$arity = 0); - - Opal.defn(self, '$proto', TMP_ScopeNode_proto_12 = function $$proto() { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SingletonClassNode'); + + var $nesting = [self].concat($parent_nesting), $SingletonClassNode_compile$1; - return "def" - }, TMP_ScopeNode_proto_12.$$arity = 0); - Opal.defn(self, '$to_vars', TMP_ScopeNode_to_vars_17 = function $$to_vars() { - var TMP_13, TMP_14, TMP_15, $a, TMP_16, self = this, vars = nil, iv = nil, gv = nil, indent = nil, str = nil, pvars = nil, result = nil; + self.$handle("sclass"); + self.$children("object", "body"); + return (Opal.def(self, '$compile', $SingletonClassNode_compile$1 = function $$compile() { + var $$2, self = this; - vars = self.temps.$dup(); - $send(vars, 'push', Opal.to_a($send(self.locals, 'map', [], (TMP_13 = function(l){var self = TMP_13.$$s || this; -if (l == null) l = nil; - return "" + (l) + " = nil"}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13)))); - iv = $send(self.$ivars(), 'map', [], (TMP_14 = function(ivar){var self = TMP_14.$$s || this; -if (ivar == null) ivar = nil; - return "" + "if (self" + (ivar) + " == null) self" + (ivar) + " = nil;\n"}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)); - gv = $send(self.$gvars(), 'map', [], (TMP_15 = function(gvar){var self = TMP_15.$$s || this; -if (gvar == null) gvar = nil; - return "" + "if ($gvars" + (gvar) + " == null) $gvars" + (gvar) + " = nil;\n"}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)); - indent = self.compiler.$parser_indent(); - str = (function() {if ($truthy(vars['$empty?']())) { - return "" - } else { - return "" + "var " + (vars.$join(", ")) + ";\n" - }; return nil; })(); - if ($truthy(self.$ivars()['$empty?']())) { - } else { - str = $rb_plus(str, "" + (indent) + (iv.$join(indent))) - }; - if ($truthy(self.$gvars()['$empty?']())) { - } else { - str = $rb_plus(str, "" + (indent) + (gv.$join(indent))) - }; - if ($truthy(($truthy($a = self['$class?']()) ? self.proto_ivars['$empty?']()['$!']() : $a))) { + self.$push("(function(self, $parent_nesting) {"); + $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, body_stmt = nil; + - pvars = $send(self.proto_ivars, 'map', [], (TMP_16 = function(i){var self = TMP_16.$$s || this; -if (i == null) i = nil; - return "" + (self.$proto()) + (i)}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)).$join(" = "); - result = "%s\n%s%s = nil;"['$%']([str, indent, pvars]); - } else { - result = str - }; - return self.$fragment(result); - }, TMP_ScopeNode_to_vars_17.$$arity = 0); - - Opal.defn(self, '$add_scope_ivar', TMP_ScopeNode_add_scope_ivar_18 = function $$add_scope_ivar(ivar) { - var self = this; + self.$add_temp("$nesting = [self].concat($parent_nesting)"); + body_stmt = self.$stmt(self.$compiler().$returns(self.$body())); + self.$line(self.$scope().$to_vars()); + return self.$line(body_stmt);}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + return self.$line("})(Opal.get_singleton_class(", self.$recv(self.$object()), "), $nesting)"); + }, $SingletonClassNode_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; - if ($truthy(self['$def_in_class?']())) { - return self.parent.$add_proto_ivar(ivar) - } else if ($truthy(self.ivars['$include?'](ivar))) { - return nil - } else { - return self.ivars['$<<'](ivar) - } - }, TMP_ScopeNode_add_scope_ivar_18.$$arity = 1); - - Opal.defn(self, '$add_scope_gvar', TMP_ScopeNode_add_scope_gvar_19 = function $$add_scope_gvar(gvar) { - var self = this; +Opal.modules["opal/nodes/args/arg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - if ($truthy(self.gvars['$include?'](gvar))) { - return nil - } else { - return self.gvars['$<<'](gvar) - } - }, TMP_ScopeNode_add_scope_gvar_19.$$arity = 1); - - Opal.defn(self, '$add_proto_ivar', TMP_ScopeNode_add_proto_ivar_20 = function $$add_proto_ivar(ivar) { - var self = this; + Opal.add_stubs(['$require', '$handle', '$children', '$add_arg', '$scope', '$name', '$push', '$to_s']); + + self.$require("opal/nodes/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); - if ($truthy(self.proto_ivars['$include?'](ivar))) { - return nil - } else { - return self.proto_ivars['$<<'](ivar) - } - }, TMP_ScopeNode_add_proto_ivar_20.$$arity = 1); - - Opal.defn(self, '$add_arg', TMP_ScopeNode_add_arg_21 = function $$add_arg(arg) { - var self = this; + var $nesting = [self].concat($parent_nesting); - - if ($truthy(self.args['$include?'](arg))) { - } else { - self.args['$<<'](arg) - }; - return arg; - }, TMP_ScopeNode_add_arg_21.$$arity = 1); - - Opal.defn(self, '$add_scope_local', TMP_ScopeNode_add_scope_local_22 = function $$add_scope_local(local) { - var self = this; + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - - if ($truthy(self['$has_local?'](local))) { - return nil}; - return self.locals['$<<'](local); - }, TMP_ScopeNode_add_scope_local_22.$$arity = 1); - - Opal.defn(self, '$has_local?', TMP_ScopeNode_has_local$q_23 = function(local) { - var $a, $b, self = this; + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ArgNode'); + + var $nesting = [self].concat($parent_nesting), $ArgNode_compile$1; - if ($truthy(($truthy($a = ($truthy($b = self.locals['$include?'](local)) ? $b : self.args['$include?'](local))) ? $a : self.temps['$include?'](local)))) { - return true}; - if ($truthy(($truthy($a = self.parent) ? self.type['$==']("iter") : $a))) { - return self.parent['$has_local?'](local)}; - return false; - }, TMP_ScopeNode_has_local$q_23.$$arity = 1); - - Opal.defn(self, '$add_scope_temp', TMP_ScopeNode_add_scope_temp_24 = function $$add_scope_temp(tmp) { - var self = this; + self.$handle("arg"); + self.$children("name"); + return (Opal.def(self, '$compile', $ArgNode_compile$1 = function $$compile() { + var self = this; + + + self.$scope().$add_arg(self.$name()); + return self.$push(self.$name().$to_s()); + }, $ArgNode_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/nodes/args/arity_check"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy; + + Opal.add_stubs(['$require', '$handle', '$children', '$new', '$args_node', '$args', '$optargs', '$restarg', '$postargs', '$kwargs', '$kwoptargs', '$kwrestarg', '$kwnilarg', '$arity', '$arity=', '$scope', '$-', '$arity_check?', '$compiler', '$empty?', '$arity_checks', '$helper', '$inspect', '$to_s', '$mid', '$line', '$push', '$join', '$compact', '$size', '$all_args', '$!', '$-@', '$<', '$+', '$>', '$<<', '$any?', '$has_only_optional_kwargs?', '$negative_arity', '$positive_arity', '$select', '$include?', '$type', '$has_required_kwargs?', '$all?', '$==', '$def?', '$class_scope?', '$top?', '$parent', '$class?', '$name', '$module?', '$identity']); + + self.$require("opal/nodes/base"); + self.$require("opal/rewriters/arguments"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); + + var $nesting = [self].concat($parent_nesting); + + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ArityCheckNode'); - - if ($truthy(self['$has_temp?'](tmp))) { - return nil}; - return self.temps.$push(tmp); - }, TMP_ScopeNode_add_scope_temp_24.$$arity = 1); - - Opal.defn(self, '$has_temp?', TMP_ScopeNode_has_temp$q_25 = function(tmp) { - var self = this; + var $nesting = [self].concat($parent_nesting), $ArityCheckNode_initialize$1, $ArityCheckNode_compile$2, $ArityCheckNode_kwargs$3, $ArityCheckNode_all_args$4, $ArityCheckNode_arity_checks$5, $ArityCheckNode_arity$6, $ArityCheckNode_negative_arity$7, $ArityCheckNode_positive_arity$9, $ArityCheckNode_has_only_optional_kwargs$ques$10, $ArityCheckNode_has_required_kwargs$ques$12; - return self.temps['$include?'](tmp) - }, TMP_ScopeNode_has_temp$q_25.$$arity = 1); + self.$$prototype.kwargs = self.$$prototype.kwoptargs = self.$$prototype.kwrestarg = self.$$prototype.all_args = self.$$prototype.args = self.$$prototype.optargs = self.$$prototype.restarg = self.$$prototype.postargs = self.$$prototype.arity_checks = nil; - Opal.defn(self, '$new_temp', TMP_ScopeNode_new_temp_26 = function $$new_temp() { - var self = this, tmp = nil; + self.$handle("arity_check"); + self.$children("args_node"); + + Opal.def(self, '$initialize', $ArityCheckNode_initialize$1 = function $$initialize($a) { + var $post_args, $rest_arg, $iter = $ArityCheckNode_initialize$1.$$p, $yield = $iter || nil, self = this, arguments$ = nil; + if ($iter) $ArityCheckNode_initialize$1.$$p = null; - if ($truthy(self.queue['$empty?']())) { - } else { - return self.queue.$pop() - }; - tmp = self.$next_temp(); - self.temps['$<<'](tmp); - return tmp; - }, TMP_ScopeNode_new_temp_26.$$arity = 0); + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $ArityCheckNode_initialize$1, false, true), 'initialize', Opal.to_a($rest_arg), $iter); + arguments$ = $$$($$($nesting, 'Rewriters'), 'Arguments').$new(self.$args_node().$children()); + self.args = arguments$.$args(); + self.optargs = arguments$.$optargs(); + self.restarg = arguments$.$restarg(); + self.postargs = arguments$.$postargs(); + self.kwargs = arguments$.$kwargs(); + self.kwoptargs = arguments$.$kwoptargs(); + self.kwrestarg = arguments$.$kwrestarg(); + return (self.kwnilarg = arguments$.$kwnilarg()); + }, $ArityCheckNode_initialize$1.$$arity = -1); - Opal.defn(self, '$next_temp', TMP_ScopeNode_next_temp_27 = function $$next_temp() { - var $a, self = this, tmp = nil; + Opal.def(self, '$compile', $ArityCheckNode_compile$2 = function $$compile() { + var self = this, $writer = nil, meth = nil; - while ($truthy(true)) { + + $writer = [self.$arity()]; + $send(self.$scope(), 'arity=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(self.$compiler()['$arity_check?']())) { + } else { + return nil + }; + if ($truthy(self.$arity_checks()['$empty?']())) { + return nil + } else { - tmp = "" + "$" + (self.unique); - self.unique = self.unique.$succ(); - if ($truthy(self['$has_local?'](tmp))) { - } else { - break; - }; + self.$helper("ac"); + meth = self.$scope().$mid().$to_s().$inspect(); + self.$line("var $arity = arguments.length;"); + return self.$push("" + " if (" + (self.$arity_checks().$join(" || ")) + ") { $ac($arity, " + (self.$arity()) + ", this, " + (meth) + "); }"); }; - return tmp; - }, TMP_ScopeNode_next_temp_27.$$arity = 0); + }, $ArityCheckNode_compile$2.$$arity = 0); - Opal.defn(self, '$queue_temp', TMP_ScopeNode_queue_temp_28 = function $$queue_temp(name) { + Opal.def(self, '$kwargs', $ArityCheckNode_kwargs$3 = function $$kwargs() { var self = this; - return self.queue['$<<'](name) - }, TMP_ScopeNode_queue_temp_28.$$arity = 1); - - Opal.defn(self, '$push_while', TMP_ScopeNode_push_while_29 = function $$push_while() { - var self = this, info = nil; - - - info = $hash2([], {}); - self.while_stack.$push(info); - return info; - }, TMP_ScopeNode_push_while_29.$$arity = 0); + return [].concat(Opal.to_a(self.kwargs)).concat(Opal.to_a(self.kwoptargs)).concat([self.kwrestarg]).$compact() + }, $ArityCheckNode_kwargs$3.$$arity = 0); - Opal.defn(self, '$pop_while', TMP_ScopeNode_pop_while_30 = function $$pop_while() { - var self = this; + Opal.def(self, '$all_args', $ArityCheckNode_all_args$4 = function $$all_args() { + var self = this, $ret_or_1 = nil; - return self.while_stack.$pop() - }, TMP_ScopeNode_pop_while_30.$$arity = 0); + return (self.all_args = (function() {if ($truthy(($ret_or_1 = self.all_args))) { + return $ret_or_1 + } else { + return [].concat(Opal.to_a(self.args)).concat(Opal.to_a(self.optargs)).concat([self.restarg]).concat(Opal.to_a(self.postargs)).concat(Opal.to_a(self.$kwargs())).$compact() + }; return nil; })()) + }, $ArityCheckNode_all_args$4.$$arity = 0); - Opal.defn(self, '$in_while?', TMP_ScopeNode_in_while$q_31 = function() { - var self = this; + Opal.def(self, '$arity_checks', $ArityCheckNode_arity_checks$5 = function $$arity_checks() { + var $a, self = this, arity = nil, $ret_or_2 = nil, $ret_or_3 = nil, min_arity = nil, max_arity = nil; - return self.while_stack['$empty?']()['$!']() - }, TMP_ScopeNode_in_while$q_31.$$arity = 0); + + if ($truthy((($a = self['arity_checks'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { + return self.arity_checks}; + arity = self.$all_args().$size(); + arity = $rb_minus(arity, self.optargs.$size()); + if ($truthy(self.restarg)) { + arity = $rb_minus(arity, 1)}; + arity = $rb_minus(arity, self.$kwargs().$size()); + if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.optargs['$empty?']()['$!']()))) { + return $ret_or_3 + } else { + return self.$kwargs()['$empty?']()['$!']() + }; return nil; })()))) { + return $ret_or_2 + } else { + return self.restarg + }; return nil; })())) { + arity = $rb_minus(arity['$-@'](), 1)}; + self.arity_checks = []; + if ($truthy($rb_lt(arity, 0))) { + + min_arity = $rb_plus(arity, 1)['$-@'](); + max_arity = self.$all_args().$size(); + if ($truthy($rb_gt(min_arity, 0))) { + self.arity_checks['$<<']("" + "$arity < " + (min_arity))}; + if ($truthy(self.restarg)) { + } else { + self.arity_checks['$<<']("" + "$arity > " + (max_arity)) + }; + } else { + self.arity_checks['$<<']("" + "$arity !== " + (arity)) + }; + return self.arity_checks; + }, $ArityCheckNode_arity_checks$5.$$arity = 0); - Opal.defn(self, '$uses_block!', TMP_ScopeNode_uses_block$B_32 = function() { - var $a, self = this; + Opal.def(self, '$arity', $ArityCheckNode_arity$6 = function $$arity() { + var self = this, $ret_or_4 = nil, $ret_or_5 = nil; - if ($truthy((($a = self.type['$==']("iter")) ? self.parent : self.type['$==']("iter")))) { - return self.parent['$uses_block!']() - } else { - - self.uses_block = true; - return self['$identify!'](); + if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.restarg))) { + return $ret_or_5 + } else { + return self.optargs['$any?']() + }; return nil; })()))) { + return $ret_or_4 + } else { + return self['$has_only_optional_kwargs?']() + }; return nil; })())) { + return self.$negative_arity() + } else { + return self.$positive_arity() } - }, TMP_ScopeNode_uses_block$B_32.$$arity = 0); + }, $ArityCheckNode_arity$6.$$arity = 0); - Opal.defn(self, '$identify!', TMP_ScopeNode_identify$B_33 = function(name) { - var $a, $b, $c, self = this; + Opal.def(self, '$negative_arity', $ArityCheckNode_negative_arity$7 = function $$negative_arity() { + var $$8, self = this, required_plain_args = nil, result = nil; - if (name == null) { - name = nil; - } - if ($truthy(self.identity)) { - return self.identity}; - name = ($truthy($a = name) ? $a : [($truthy($b = self.$parent()) ? ($truthy($c = self.$parent().$name()) ? $c : self.$parent().$scope_name()) : $b), self.$mid()].$compact().$join("_")); - self.identity = self.compiler.$unique_temp(name); - if ($truthy(self.parent)) { - self.parent.$add_scope_temp(self.identity)}; - return self.identity; - }, TMP_ScopeNode_identify$B_33.$$arity = -1); - - Opal.defn(self, '$identity', TMP_ScopeNode_identity_34 = function $$identity() { - var self = this; + required_plain_args = $send(self.$all_args(), 'select', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s; - return self.identity - }, TMP_ScopeNode_identity_34.$$arity = 0); + + + if (arg == null) { + arg = nil; + }; + return ["arg", "mlhs"]['$include?'](arg.$type());}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + result = required_plain_args.$size(); + if ($truthy(self['$has_required_kwargs?']())) { + result = $rb_plus(result, 1)}; + result = $rb_minus(result['$-@'](), 1); + return result; + }, $ArityCheckNode_negative_arity$7.$$arity = 0); - Opal.defn(self, '$find_parent_def', TMP_ScopeNode_find_parent_def_35 = function $$find_parent_def() { - var $a, self = this, scope = nil; + Opal.def(self, '$positive_arity', $ArityCheckNode_positive_arity$9 = function $$positive_arity() { + var self = this, result = nil; - scope = self; - while ($truthy((scope = scope.$parent()))) { - if ($truthy(scope['$def?']())) { - return scope} - }; - return nil; - }, TMP_ScopeNode_find_parent_def_35.$$arity = 0); + result = self.$all_args().$size(); + result = $rb_minus(result, self.$kwargs().$size()); + if ($truthy(self.$kwargs()['$any?']())) { + result = $rb_plus(result, 1)}; + return result; + }, $ArityCheckNode_positive_arity$9.$$arity = 0); - Opal.defn(self, '$get_super_chain', TMP_ScopeNode_get_super_chain_36 = function $$get_super_chain() { - var $a, self = this, chain = nil, scope = nil, defn = nil, mid = nil; + Opal.def(self, '$has_only_optional_kwargs?', $ArityCheckNode_has_only_optional_kwargs$ques$10 = function() { + var $$11, self = this, $ret_or_6 = nil; + + if ($truthy(($ret_or_6 = self.$kwargs()['$any?']()))) { + return $send(self.$kwargs(), 'all?', [], ($$11 = function(arg){var self = $$11.$$s == null ? this : $$11.$$s; - - $a = [[], self, "null", "null"], (chain = $a[0]), (scope = $a[1]), (defn = $a[2]), (mid = $a[3]), $a; - while ($truthy(scope)) { - if (scope.$type()['$==']("iter")) { - chain['$<<'](scope['$identify!']()); - if ($truthy(scope.$parent())) { - scope = scope.$parent()}; - } else if ($truthy(["def", "defs"]['$include?'](scope.$type()))) { - defn = scope['$identify!'](); - mid = "" + "'" + (scope.$mid()) + "'"; - break;; - } else { - break; - } - }; - return [chain, defn, mid]; - }, TMP_ScopeNode_get_super_chain_36.$$arity = 0); - - Opal.defn(self, '$uses_block?', TMP_ScopeNode_uses_block$q_37 = function() { - var self = this; + if (arg == null) { + arg = nil; + }; + return ["kwoptarg", "kwrestarg"]['$include?'](arg.$type());}, $$11.$$s = self, $$11.$$arity = 1, $$11)) + } else { + return $ret_or_6 + } + }, $ArityCheckNode_has_only_optional_kwargs$ques$10.$$arity = 0); + return (Opal.def(self, '$has_required_kwargs?', $ArityCheckNode_has_required_kwargs$ques$12 = function() { + var $$13, self = this; - return self.uses_block - }, TMP_ScopeNode_uses_block$q_37.$$arity = 0); - - Opal.defn(self, '$has_rescue_else?', TMP_ScopeNode_has_rescue_else$q_38 = function() { - var self = this; + return $send(self.$kwargs(), 'any?', [], ($$13 = function(arg){var self = $$13.$$s == null ? this : $$13.$$s; + + + + if (arg == null) { + arg = nil; + }; + return arg.$type()['$==']("kwarg");}, $$13.$$s = self, $$13.$$arity = 1, $$13)) + }, $ArityCheckNode_has_required_kwargs$ques$12.$$arity = 0), nil) && 'has_required_kwargs?'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'IterArityCheckNode'); + + var $nesting = [self].concat($parent_nesting), $IterArityCheckNode_compile$14; - return self.$rescue_else_sexp()['$!']()['$!']() - }, TMP_ScopeNode_has_rescue_else$q_38.$$arity = 0); - Opal.defn(self, '$in_ensure', TMP_ScopeNode_in_ensure_39 = function $$in_ensure() { - var self = this, $iter = TMP_ScopeNode_in_ensure_39.$$p, $yield = $iter || nil, result = nil; + self.$handle("iter_arity_check"); + return (Opal.def(self, '$compile', $IterArityCheckNode_compile$14 = function $$compile() { + var $a, self = this, $writer = nil, parent_scope = nil, $ret_or_7 = nil, $ret_or_8 = nil, context = nil, identity = nil; - if ($iter) TMP_ScopeNode_in_ensure_39.$$p = null; - if (($yield !== nil)) { - } else { + + $writer = [self.$arity()]; + $send(self.$scope(), 'arity=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(self.$compiler()['$arity_check?']())) { + } else { return nil }; - self.in_ensure = true; - result = Opal.yieldX($yield, []); - self.in_ensure = false; - return result; - }, TMP_ScopeNode_in_ensure_39.$$arity = 0); - return (Opal.defn(self, '$in_ensure?', TMP_ScopeNode_in_ensure$q_40 = function() { - var self = this; + if ($truthy(self.$arity_checks()['$empty?']())) { + return nil + } else { + + parent_scope = self.$scope(); + while (!($truthy((function() {if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = parent_scope['$def?']()))) { + return $ret_or_8 + } else { + return parent_scope['$class_scope?']() + }; return nil; })()))) { + return $ret_or_7 + } else { + return parent_scope['$top?']() + }; return nil; })()))) { + parent_scope = parent_scope.$parent() + }; + context = (function() {if ($truthy(parent_scope['$top?']())) { + return "'
'" + } else if ($truthy(parent_scope['$def?']())) { + return "" + "'" + (parent_scope.$mid()) + "'" + } else if ($truthy(parent_scope['$class?']())) { + return "" + "''" + } else if ($truthy(parent_scope['$module?']())) { + return "" + "''" + } else { + return nil + }; return nil; })(); + identity = self.$scope().$identity(); + self.$line("" + "if (" + (identity) + ".$$is_lambda || " + (identity) + ".$$define_meth) {"); + self.$line(" var $arity = arguments.length;"); + self.$line("" + " if (" + (self.$arity_checks().$join(" || ")) + ") { Opal.block_ac($arity, " + (self.$arity()) + ", " + (context) + "); }"); + return self.$line("}"); + }; + }, $IterArityCheckNode_compile$14.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'ArityCheckNode'), $nesting); + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; + + Opal.add_stubs(['$require', '$handle', '$helper', '$line']); + + self.$require("opal/nodes/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'EnsureKwargsAreKwargs'); + + var $nesting = [self].concat($parent_nesting), $EnsureKwargsAreKwargs_compile$1; + + + self.$handle("ensure_kwargs_are_kwargs"); + return (Opal.def(self, '$compile', $EnsureKwargsAreKwargs_compile$1 = function $$compile() { + var self = this; - return self.in_ensure['$!']()['$!']() - }, TMP_ScopeNode_in_ensure$q_40.$$arity = 0), nil) && 'in_ensure?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + + self.$helper("hash2"); + self.$line("if ($kwargs == null) {"); + self.$line(" $kwargs = $hash2([], {});"); + self.$line("} else if (!$kwargs.$$is_hash) {"); + self.$line(" throw Opal.ArgumentError.$new('expected kwargs');"); + return self.$line("}"); + }, $EnsureKwargsAreKwargs_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/module"] = function(Opal) { +Opal.modules["opal/nodes/args/extract_block_arg"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$children', '$name_and_base', '$helper', '$push', '$line', '$in_scope', '$name=', '$scope', '$-', '$add_temp', '$proto', '$stmt', '$body', '$s', '$empty_line', '$to_vars', '$cid', '$nil?', '$expr']); + Opal.add_stubs(['$require', '$handle', '$children', '$uses_block!', '$scope', '$add_arg', '$name', '$block_name=', '$-', '$identity', '$block_name', '$add_temp', '$line']); - self.$require("opal/nodes/scope"); + self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ModuleNode(){}; - var self = $ModuleNode = $klass($base, $super, 'ModuleNode', $ModuleNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ModuleNode_compile_2, TMP_ModuleNode_name_and_base_3; + var $nesting = [self].concat($parent_nesting); - - self.$handle("module"); - self.$children("cid", "body"); - - Opal.defn(self, '$compile', TMP_ModuleNode_compile_2 = function $$compile() { - var $a, $b, TMP_1, self = this, name = nil, base = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExtractBlockarg'); - - $b = self.$name_and_base(), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; - self.$helper("module"); - self.$push("(function($base, $parent_nesting) {"); - self.$line("" + " var $" + (name) + ", self = $" + (name) + " = $module($base, '" + (name) + "');"); - $send(self, 'in_scope', [], (TMP_1 = function(){var self = TMP_1.$$s || this, $c, $writer = nil, body_code = nil; + var $nesting = [self].concat($parent_nesting), $ExtractBlockarg_compile$1; + self.$handle("extract_blockarg"); + self.$children("name"); + return (Opal.def(self, '$compile', $ExtractBlockarg_compile$1 = function $$compile() { + var self = this, $writer = nil, scope_name = nil, yielder = nil; + - $writer = [name]; - $send(self.$scope(), 'name=', Opal.to_a($writer)); + self.$scope()['$uses_block!'](); + self.$scope().$add_arg(self.$name()); + + $writer = [self.$name()]; + $send(self.$scope(), 'block_name=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.$add_temp("" + (self.$scope().$proto()) + " = self.$$proto"); - self.$add_temp("$nesting = [self].concat($parent_nesting)"); - body_code = self.$stmt(($truthy($c = self.$body()) ? $c : self.$s("nil"))); - self.$empty_line(); - self.$line(self.$scope().$to_vars()); - return self.$line(body_code);}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); - return self.$line("})(", base, ", $nesting)"); - }, TMP_ModuleNode_compile_2.$$arity = 0); - return (Opal.defn(self, '$name_and_base', TMP_ModuleNode_name_and_base_3 = function $$name_and_base() { - var $a, $b, self = this, base = nil, name = nil; + scope_name = self.$scope().$identity(); + yielder = self.$scope().$block_name(); + self.$add_temp("" + "$iter = " + (scope_name) + ".$$p"); + self.$add_temp("" + (yielder) + " = $iter || nil"); + return self.$line("" + "if ($iter) " + (scope_name) + ".$$p = null;"); + }, $ExtractBlockarg_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/nodes/args/extract_kwarg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; + + Opal.add_stubs(['$require', '$handle', '$children', '$[]', '$meta', '$<<', '$used_kwargs', '$scope', '$add_temp', '$lvar_name', '$line', '$inspect', '$to_s']); + + self.$require("opal/nodes/base"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExtractKwarg'); + var $nesting = [self].concat($parent_nesting), $ExtractKwarg_compile$1; + + self.$$prototype.sexp = nil; - $b = self.$cid().$children(), $a = Opal.to_ary($b), (base = ($a[0] == null ? nil : $a[0])), (name = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy(base['$nil?']())) { - return [name, "$nesting[0]"] - } else { - return [name, self.$expr(base)] - }; - }, TMP_ModuleNode_name_and_base_3.$$arity = 0), nil) && 'name_and_base'; - })($nesting[0], Opal.const_get_relative($nesting, 'ScopeNode'), $nesting) + self.$handle("extract_kwarg"); + self.$children("lvar_name"); + return (Opal.def(self, '$compile', $ExtractKwarg_compile$1 = function $$compile() { + var self = this, key_name = nil; + + + key_name = self.sexp.$meta()['$[]']("arg_name"); + self.$scope().$used_kwargs()['$<<'](key_name); + self.$add_temp(self.$lvar_name()); + self.$line("" + "if (!Opal.hasOwnProperty.call($kwargs.$$smap, '" + (key_name) + "')) {"); + self.$line("" + " throw Opal.ArgumentError.$new('missing keyword: " + (key_name) + "');"); + self.$line("}"); + return self.$line("" + (self.$lvar_name()) + " = $kwargs.$$smap[" + (key_name.$to_s().$inspect()) + "];"); + }, $ExtractKwarg_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/class"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/extract_kwargs"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$handle', '$children', '$name_and_base', '$helper', '$push', '$line', '$in_scope', '$name=', '$scope', '$-', '$add_temp', '$proto', '$body_code', '$empty_line', '$to_vars', '$super_code', '$sup', '$expr', '$stmt', '$returns', '$compiler', '$body', '$s']); + Opal.add_stubs(['$require', '$handle', '$add_temp', '$line']); - self.$require("opal/nodes/module"); + self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + var $nesting = [self].concat($parent_nesting); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - (function($base, $super, $parent_nesting) { - function $ClassNode(){}; - var self = $ClassNode = $klass($base, $super, 'ClassNode', $ClassNode); + var $nesting = [self].concat($parent_nesting); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassNode_compile_2, TMP_ClassNode_super_code_3, TMP_ClassNode_body_code_4; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExtractKwargs'); - - self.$handle("class"); - self.$children("cid", "sup", "body"); - - Opal.defn(self, '$compile', TMP_ClassNode_compile_2 = function $$compile() { - var $a, $b, TMP_1, self = this, name = nil, base = nil; + var $nesting = [self].concat($parent_nesting), $ExtractKwargs_compile$1; - $b = self.$name_and_base(), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (base = ($a[1] == null ? nil : $a[1])), $b; - self.$helper("klass"); - self.$push("(function($base, $super, $parent_nesting) {"); - self.$line("" + " function $" + (name) + "(){};"); - self.$line("" + " var self = $" + (name) + " = $klass($base, $super, '" + (name) + "', $" + (name) + ");"); - $send(self, 'in_scope', [], (TMP_1 = function(){var self = TMP_1.$$s || this, $writer = nil, body_code = nil; + self.$handle("extract_kwargs"); + return (Opal.def(self, '$compile', $ExtractKwargs_compile$1 = function $$compile() { + var self = this; - - $writer = [name]; - $send(self.$scope(), 'name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.$add_temp("" + (self.$scope().$proto()) + " = self.$$proto"); - self.$add_temp("$nesting = [self].concat($parent_nesting)"); - body_code = self.$body_code(); - self.$empty_line(); - self.$line(self.$scope().$to_vars()); - return self.$line(body_code);}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); - return self.$line("})(", base, ", ", self.$super_code(), ", $nesting)"); - }, TMP_ClassNode_compile_2.$$arity = 0); - - Opal.defn(self, '$super_code', TMP_ClassNode_super_code_3 = function $$super_code() { - var self = this; - - if ($truthy(self.$sup())) { - return self.$expr(self.$sup()) - } else { - return "null" - } - }, TMP_ClassNode_super_code_3.$$arity = 0); - return (Opal.defn(self, '$body_code', TMP_ClassNode_body_code_4 = function $$body_code() { - var $a, self = this; - - return self.$stmt(self.$compiler().$returns(($truthy($a = self.$body()) ? $a : self.$s("nil")))) - }, TMP_ClassNode_body_code_4.$$arity = 0), nil) && 'body_code'; - })($nesting[0], Opal.const_get_relative($nesting, 'ModuleNode'), $nesting) + self.$add_temp("$kwargs"); + return self.$line("$kwargs = Opal.extract_kwargs($post_args)"); + }, $ExtractKwargs_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/singleton_class"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["opal/nodes/args/extract_kwoptarg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$in_scope', '$add_temp', '$stmt', '$returns', '$compiler', '$body', '$line', '$to_vars', '$scope', '$recv', '$object']); + Opal.add_stubs(['$require', '$handle', '$children', '$[]', '$meta', '$<<', '$used_kwargs', '$scope', '$add_temp', '$lvar_name', '$line', '$inspect', '$to_s', '$==', '$default_value', '$expr']); - self.$require("opal/nodes/scope"); + self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $SingletonClassNode(){}; - var self = $SingletonClassNode = $klass($base, $super, 'SingletonClassNode', $SingletonClassNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_SingletonClassNode_compile_2; + var $nesting = [self].concat($parent_nesting); - - self.$handle("sclass"); - self.$children("object", "body"); - return (Opal.defn(self, '$compile', TMP_SingletonClassNode_compile_2 = function $$compile() { - var TMP_1, self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExtractKwoptarg'); - - self.$push("(function(self, $parent_nesting) {"); - $send(self, 'in_scope', [], (TMP_1 = function(){var self = TMP_1.$$s || this, body_stmt = nil; + var $nesting = [self].concat($parent_nesting), $ExtractKwoptarg_compile$1; + self.$$prototype.sexp = nil; - self.$add_temp("def = self.$$proto"); - self.$add_temp("$nesting = [self].concat($parent_nesting)"); - body_stmt = self.$stmt(self.$compiler().$returns(self.$body())); - self.$line(self.$scope().$to_vars()); - return self.$line(body_stmt);}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); - return self.$line("})(Opal.get_singleton_class(", self.$recv(self.$object()), "), $nesting)"); - }, TMP_SingletonClassNode_compile_2.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'ScopeNode'), $nesting) + self.$handle("extract_kwoptarg"); + self.$children("lvar_name", "default_value"); + return (Opal.def(self, '$compile', $ExtractKwoptarg_compile$1 = function $$compile() { + var self = this, key_name = nil; + + + key_name = self.sexp.$meta()['$[]']("arg_name"); + self.$scope().$used_kwargs()['$<<'](key_name); + self.$add_temp(self.$lvar_name()); + self.$line("" + (self.$lvar_name()) + " = $kwargs.$$smap[" + (key_name.$to_s().$inspect()) + "];"); + if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { + return nil}; + self.$line("" + "if (" + (self.$lvar_name()) + " == null) {"); + self.$line("" + " " + (self.$lvar_name()) + " = ", self.$expr(self.$default_value())); + return self.$line("}"); + }, $ExtractKwoptarg_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/inline_args"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/extract_kwrestarg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$push', '$join', '$arg_names', '$inject', '$children', '$type', '$===', '$<<', '$add_arg', '$next_temp', '$scope', '$[]=', '$mlhs_mapping', '$-', '$!', '$[]', '$meta', '$!=', '$+', '$raise', '$inspect']); + Opal.add_stubs(['$require', '$handle', '$children', '$name', '$add_temp', '$line', '$used_kwargs', '$map', '$scope', '$join']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $InlineArgs(){}; - var self = $InlineArgs = $klass($base, $super, 'InlineArgs', $InlineArgs); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_InlineArgs_compile_1, TMP_InlineArgs_arg_names_3, TMP_InlineArgs_add_arg_4; + var $nesting = [self].concat($parent_nesting); - - self.$handle("inline_args"); - - Opal.defn(self, '$compile', TMP_InlineArgs_compile_1 = function $$compile() { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExtractKwrestarg'); - return self.$push(self.$arg_names().$join(", ")) - }, TMP_InlineArgs_compile_1.$$arity = 0); - - Opal.defn(self, '$arg_names', TMP_InlineArgs_arg_names_3 = function $$arg_names() { - var TMP_2, self = this, done_kwargs = nil; + var $nesting = [self].concat($parent_nesting), $ExtractKwrestarg_compile$1, $ExtractKwrestarg_used_kwargs$2; - done_kwargs = false; - return $send(self.$children(), 'inject', [[]], (TMP_2 = function(result, arg){var self = TMP_2.$$s || this, $a, $case = nil, tmp = nil, $writer = nil, arg_name = nil, _ = nil, tmp_arg_name = nil; -if (result == null) result = nil;if (arg == null) arg = nil; + self.$handle("extract_kwrestarg"); + self.$children("name"); - $case = arg.$type(); - if ("kwarg"['$===']($case) || "kwoptarg"['$===']($case) || "kwrestarg"['$===']($case)) { - if ($truthy(done_kwargs)) { - } else { - - done_kwargs = true; - result['$<<']("$kwargs"); - }; - self.$add_arg(arg);} - else if ("mlhs"['$===']($case)) { - tmp = self.$scope().$next_temp(); - result['$<<'](tmp); - - $writer = [arg, tmp]; - $send(self.$scope().$mlhs_mapping(), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];;} - else if ("arg"['$===']($case) || "optarg"['$===']($case)) { - $a = [].concat(Opal.to_a(arg)), (arg_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(($truthy($a = arg.$meta()['$[]']("inline")['$!']()) ? arg_name['$[]'](0)['$!=']("$") : $a))) { - arg_name = "" + "$" + (arg_name)}; - result['$<<'](arg_name); - self.$add_arg(arg);} - else if ("restarg"['$===']($case)) { - tmp_arg_name = $rb_plus(self.$scope().$next_temp(), "_rest"); - result['$<<'](tmp_arg_name); - self.$add_arg(arg);} - else {self.$raise("" + "Unknown argument type " + (arg.$inspect()))}; - return result;}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)); - }, TMP_InlineArgs_arg_names_3.$$arity = 0); - return (Opal.defn(self, '$add_arg', TMP_InlineArgs_add_arg_4 = function $$add_arg(arg) { - var $a, self = this, arg_name = nil, _ = nil; + Opal.def(self, '$compile', $ExtractKwrestarg_compile$1 = function $$compile() { + var self = this, name = nil, $ret_or_1 = nil; - - $a = [].concat(Opal.to_a(arg)), (arg_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(arg_name)) { - return self.$scope().$add_arg(arg_name) + + name = (function() {if ($truthy(($ret_or_1 = self.$name()))) { + return $ret_or_1 } else { - return nil - }; - }, TMP_InlineArgs_add_arg_4.$$arity = 1), nil) && 'add_arg'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + return "$kw_rest_arg" + }; return nil; })(); + self.$add_temp(name); + return self.$line("" + (name) + " = Opal.kwrestargs($kwargs, " + (self.$used_kwargs()) + ");"); + }, $ExtractKwrestarg_compile$1.$$arity = 0); + return (Opal.def(self, '$used_kwargs', $ExtractKwrestarg_used_kwargs$2 = function $$used_kwargs() { + var $$3, self = this, args = nil; + + + args = $send(self.$scope().$used_kwargs(), 'map', [], ($$3 = function(arg_name){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (arg_name == null) { + arg_name = nil; + }; + return "" + "'" + (arg_name) + "': true";}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + return "" + "{" + (args.$join(",")) + "}"; + }, $ExtractKwrestarg_used_kwargs$2.$$arity = 0), nil) && 'used_kwargs'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/normarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/extract_optarg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$handle', '$children', '$[]', '$meta', '$add_temp', '$name', '$line', '$working_arguments', '$scope', '$in_mlhs?']); + Opal.add_stubs(['$require', '$handle', '$children', '$==', '$[]', '$default_value', '$line', '$name', '$expr']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $NormargNode(){}; - var self = $NormargNode = $klass($base, $super, 'NormargNode', $NormargNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NormargNode_compile_1; + var $nesting = [self].concat($parent_nesting); - def.sexp = nil; - - self.$handle("arg"); - self.$children("name"); - return (Opal.defn(self, '$compile', TMP_NormargNode_compile_1 = function $$compile() { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExtractOptargNode'); + + var $nesting = [self].concat($parent_nesting), $ExtractOptargNode_compile$1; - if ($truthy(self.sexp.$meta()['$[]']("post"))) { - - self.$add_temp(self.$name()); - self.$line("" + (self.$name()) + " = " + (self.$scope().$working_arguments()) + ".splice(0,1)[0];");}; - if ($truthy(self.$scope()['$in_mlhs?']())) { + self.$handle("extract_optarg"); + self.$children("name", "default_value"); + return (Opal.def(self, '$compile', $ExtractOptargNode_compile$1 = function $$compile() { + var self = this; + + if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { + return nil}; self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = nil;"); + self.$line("" + " " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); return self.$line("}"); - } else { - return nil - }; - }, TMP_NormargNode_compile_1.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + }, $ExtractOptargNode_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/optarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/extract_post_arg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$handle', '$children', '$==', '$[]', '$default_value', '$line', '$name', '$expr', '$push']); + Opal.add_stubs(['$require', '$handle', '$children', '$add_temp', '$name', '$line']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $OptargNode(){}; - var self = $OptargNode = $klass($base, $super, 'OptargNode', $OptargNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_OptargNode_compile_1; + var $nesting = [self].concat($parent_nesting); - - self.$handle("optarg"); - self.$children("name", "default_value"); - return (Opal.defn(self, '$compile', TMP_OptargNode_compile_1 = function $$compile() { - var self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExtractPostArg'); + + var $nesting = [self].concat($parent_nesting), $ExtractPostArg_compile$1; - if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { - return nil}; - self.$line("" + "if (" + (self.$name()) + " == null) {"); - self.$line("" + " " + (self.$name()) + " = ", self.$expr(self.$default_value())); - self.$push(";"); - return self.$line("}"); - }, TMP_OptargNode_compile_1.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + self.$handle("extract_post_arg"); + self.$children("name"); + return (Opal.def(self, '$compile', $ExtractPostArg_compile$1 = function $$compile() { + var self = this; + + + self.$add_temp(self.$name()); + self.$line("" + (self.$name()) + " = $post_args[0];"); + self.$line("$post_args.splice(0, 1);"); + self.$line("" + "if (" + (self.$name()) + " == null) {"); + self.$line("" + " " + (self.$name()) + " = nil"); + return self.$line("}"); + }, $ExtractPostArg_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/mlhsarg"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/extract_post_optarg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$handle', '$s', '$children', '$[]', '$meta', '$mlhs_name', '$[]=', '$-', '$with_inline_args', '$scope', '$push', '$process', '$mlhs_mapping', '$line', '$in_mlhs', '$each', '$type', '$===', '$<<', '$join', '$to_s', '$take_while', '$!=']); + Opal.add_stubs(['$require', '$handle', '$children', '$add_temp', '$name', '$line', '$args_to_keep', '$==', '$[]', '$default_value', '$expr']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var self = $module($base, 'Opal'); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $MlhsArgNode(){}; - var self = $MlhsArgNode = $klass($base, $super, 'MlhsArgNode', $MlhsArgNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_MlhsArgNode_compile_4, TMP_MlhsArgNode_mlhs_name_6, TMP_MlhsArgNode_inline_args_8; + var $nesting = [self].concat($parent_nesting); - def.sexp = def.mlhs_name = def.inline_args = nil; - - self.$handle("mlhs"); - - Opal.defn(self, '$compile', TMP_MlhsArgNode_compile_4 = function $$compile() { - var TMP_1, TMP_2, self = this, args_sexp = nil, mlhs_sexp = nil, $writer = nil, var_name = nil; + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - - args_sexp = $send(self, 's', ["post_args"].concat(Opal.to_a(self.$children()))); - if ($truthy(self.sexp.$meta()['$[]']("post"))) { - - mlhs_sexp = self.$s("arg", self.$mlhs_name()); - - $writer = ["post", true]; - $send(mlhs_sexp.$meta(), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - $send(self.$scope(), 'with_inline_args', [[]], (TMP_1 = function(){var self = TMP_1.$$s || this; + var $nesting = [self].concat($parent_nesting); - return self.$push(self.$process(mlhs_sexp))}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); - var_name = (($writer = ["js_source", self.$mlhs_name()]), $send(args_sexp.$meta(), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); - } else { - var_name = (($writer = ["js_source", self.$scope().$mlhs_mapping()['$[]'](self.sexp)]), $send(args_sexp.$meta(), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]) - }; - self.$line("" + "if (" + (var_name) + " == null) {"); - self.$line("" + " " + (var_name) + " = nil;"); - self.$line("}"); - self.$line("" + (var_name) + " = Opal.to_ary(" + (var_name) + ");"); - return $send(self.$scope(), 'with_inline_args', [[]], (TMP_2 = function(){var self = TMP_2.$$s || this, TMP_3; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExtractPostOptarg'); - return $send(self.$scope(), 'in_mlhs', [], (TMP_3 = function(){var self = TMP_3.$$s || this; + var $nesting = [self].concat($parent_nesting), $ExtractPostOptarg_compile$1; - return self.$push(self.$process(args_sexp))}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3))}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); - }, TMP_MlhsArgNode_compile_4.$$arity = 0); - - Opal.defn(self, '$mlhs_name', TMP_MlhsArgNode_mlhs_name_6 = function $$mlhs_name() { - var $a, TMP_5, self = this, result = nil; + + self.$handle("extract_post_optarg"); + self.$children("name", "default_value", "args_to_keep"); + return (Opal.def(self, '$compile', $ExtractPostOptarg_compile$1 = function $$compile() { + var self = this; - return (self.mlhs_name = ($truthy($a = self.mlhs_name) ? $a : (function() {if ($truthy(self.sexp.$meta()['$[]']("post"))) { - result = ["$mlhs_of"]; - $send(self.$children(), 'each', [], (TMP_5 = function(child){var self = TMP_5.$$s || this, $case = nil; -if (child == null) child = nil; - return (function() {$case = child.$type(); - if ("arg"['$===']($case)) {return result['$<<'](child.$children()['$[]'](0))} - else if ("mlhs"['$===']($case)) {return result['$<<']("mlhs")} - else { return nil }})()}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); - return result.$join("_"); - } else { - return self.sexp.$children()['$[]'](0).$to_s() - }; return nil; })())) - }, TMP_MlhsArgNode_mlhs_name_6.$$arity = 0); - return (Opal.defn(self, '$inline_args', TMP_MlhsArgNode_inline_args_8 = function $$inline_args() { - var $a, TMP_7, self = this; - - return (self.inline_args = ($truthy($a = self.inline_args) ? $a : $send(self.$children(), 'take_while', [], (TMP_7 = function(arg){var self = TMP_7.$$s || this, $b; -if (arg == null) arg = nil; - return ($truthy($b = arg.$type()['$!=']("restarg")) ? arg.$type()['$!=']("optarg") : $b)}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)))) - }, TMP_MlhsArgNode_inline_args_8.$$arity = 0), nil) && 'inline_args'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + self.$add_temp(self.$name()); + self.$line("" + "if ($post_args.length > " + (self.$args_to_keep()) + ") {"); + self.$line("" + " " + (self.$name()) + " = $post_args[0];"); + self.$line(" $post_args.splice(0, 1);"); + self.$line("}"); + if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { + return nil}; + self.$line("" + "if (" + (self.$name()) + " == null) {"); + self.$line("" + " " + (self.$name()) + " = ", self.$expr(self.$default_value()), ";"); + return self.$line("}"); + }, $ExtractPostOptarg_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/restarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["opal/nodes/args/extract_restarg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$handle', '$children', '$name', '$add_temp', '$[]', '$meta', '$line', '$working_arguments', '$scope']); + Opal.add_stubs(['$require', '$handle', '$children', '$name', '$add_temp', '$==', '$args_to_keep', '$line']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $RestargNode(){}; - var self = $RestargNode = $klass($base, $super, 'RestargNode', $RestargNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RestargNode_compile_1; + var $nesting = [self].concat($parent_nesting); - def.sexp = nil; - - self.$handle("restarg"); - self.$children("name"); - return (Opal.defn(self, '$compile', TMP_RestargNode_compile_1 = function $$compile() { - var self = this, offset = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ExtractRestarg'); + + var $nesting = [self].concat($parent_nesting), $ExtractRestarg_compile$1; - if ($truthy(self.$name())) { + self.$handle("extract_restarg"); + self.$children("name", "args_to_keep"); + return (Opal.def(self, '$compile', $ExtractRestarg_compile$1 = function $$compile() { + var self = this, name = nil, $ret_or_1 = nil; + + + name = (function() {if ($truthy(($ret_or_1 = self.$name()))) { + return $ret_or_1 } else { - return nil - }; - self.$add_temp(self.$name()); - if ($truthy(self.sexp.$meta()['$[]']("post"))) { - return self.$line("" + (self.$name()) + " = " + (self.$scope().$working_arguments()) + ";") + return "$rest_arg" + }; return nil; })(); + self.$add_temp(name); + if (self.$args_to_keep()['$=='](0)) { + return self.$line("" + (name) + " = $post_args;") } else { - - offset = self.sexp.$meta()['$[]']("offset"); - self.$line("" + "var $args_len = arguments.length, $rest_len = $args_len - " + (offset) + ";"); - self.$line("if ($rest_len < 0) { $rest_len = 0; }"); - self.$line("" + (self.$name()) + " = new Array($rest_len);"); - self.$line("" + "for (var $arg_idx = " + (offset) + "; $arg_idx < $args_len; $arg_idx++) {"); - self.$line("" + " " + (self.$name()) + "[$arg_idx - " + (offset) + "] = arguments[$arg_idx];"); - return self.$line("}"); - }; - }, TMP_RestargNode_compile_1.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + return self.$line("" + (name) + " = $post_args.splice(0, $post_args.length - " + (self.$args_to_keep()) + ");") + }; + }, $ExtractRestarg_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/initialize_kwargs"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/args/fake_arg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$kwargs_initialized', '$scope', '$helper', '$line', '$kwargs_initialized=', '$-']); + Opal.add_stubs(['$require', '$handle', '$next_temp', '$scope', '$add_arg', '$push']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $InitializeKwargsNode(){}; - var self = $InitializeKwargsNode = $klass($base, $super, 'InitializeKwargsNode', $InitializeKwargsNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_InitializeKwargsNode_initialize_kw_args_if_needed_1; + var $nesting = [self].concat($parent_nesting); - return (Opal.defn(self, '$initialize_kw_args_if_needed', TMP_InitializeKwargsNode_initialize_kw_args_if_needed_1 = function $$initialize_kw_args_if_needed() { - var self = this, $writer = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'FakeArgNode'); + + var $nesting = [self].concat($parent_nesting), $FakeArgNode_compile$1; - if ($truthy(self.$scope().$kwargs_initialized())) { - return nil}; - self.$helper("hash2"); - self.$line("if ($kwargs == null || !$kwargs.$$is_hash) {"); - self.$line(" if ($kwargs == null) {"); - self.$line(" $kwargs = $hash2([], {});"); - self.$line(" } else {"); - self.$line(" throw Opal.ArgumentError.$new('expected kwargs');"); - self.$line(" }"); - self.$line("}"); - - $writer = [true]; - $send(self.$scope(), 'kwargs_initialized=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_InitializeKwargsNode_initialize_kw_args_if_needed_1.$$arity = 0), nil) && 'initialize_kw_args_if_needed' - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + self.$handle("fake_arg"); + return (Opal.def(self, '$compile', $FakeArgNode_compile$1 = function $$compile() { + var self = this, name = nil; + + + name = self.$scope().$next_temp(); + self.$scope().$add_arg(name); + return self.$push(name); + }, $FakeArgNode_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/kwarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/initialize_iterarg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$handle', '$children', '$[]', '$meta', '$initialize_kw_args_if_needed', '$add_temp', '$lvar_name', '$line', '$inspect', '$to_s', '$<<', '$used_kwargs', '$scope']); + Opal.add_stubs(['$require', '$handle', '$children', '$line', '$name']); - self.$require("opal/nodes/args/initialize_kwargs"); + self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $KwargNode(){}; - var self = $KwargNode = $klass($base, $super, 'KwargNode', $KwargNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_KwargNode_compile_1; + var $nesting = [self].concat($parent_nesting); - def.sexp = nil; - - self.$handle("kwarg"); - self.$children("lvar_name"); - return (Opal.defn(self, '$compile', TMP_KwargNode_compile_1 = function $$compile() { - var self = this, key_name = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'InitializeIterarg'); + + var $nesting = [self].concat($parent_nesting), $InitializeIterarg_compile$1; - key_name = self.sexp.$meta()['$[]']("arg_name"); - self.$initialize_kw_args_if_needed(); - self.$add_temp(self.$lvar_name()); - self.$line("" + "if (!Opal.hasOwnProperty.call($kwargs.$$smap, '" + (key_name) + "')) {"); - self.$line("" + " throw Opal.ArgumentError.$new('missing keyword: " + (key_name) + "');"); - self.$line("}"); - self.$line("" + (self.$lvar_name()) + " = $kwargs.$$smap[" + (key_name.$to_s().$inspect()) + "];"); - return self.$scope().$used_kwargs()['$<<'](key_name); - }, TMP_KwargNode_compile_1.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'InitializeKwargsNode'), $nesting) + self.$handle("initialize_iter_arg"); + self.$children("name"); + return (Opal.def(self, '$compile', $InitializeIterarg_compile$1 = function $$compile() { + var self = this; + + + self.$line("" + "if (" + (self.$name()) + " == null) {"); + self.$line("" + " " + (self.$name()) + " = nil;"); + return self.$line("}"); + }, $InitializeIterarg_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/kwoptarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["opal/nodes/args/initialize_shadowarg"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$handle', '$children', '$[]', '$meta', '$initialize_kw_args_if_needed', '$add_temp', '$lvar_name', '$line', '$inspect', '$to_s', '$<<', '$used_kwargs', '$scope', '$==', '$default_value', '$expr']); + Opal.add_stubs(['$require', '$handle', '$children', '$<<', '$locals', '$scope', '$name', '$add_arg', '$line']); - self.$require("opal/nodes/args/initialize_kwargs"); + self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $KwoptArgNode(){}; - var self = $KwoptArgNode = $klass($base, $super, 'KwoptArgNode', $KwoptArgNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_KwoptArgNode_compile_1; + var $nesting = [self].concat($parent_nesting); - def.sexp = nil; - - self.$handle("kwoptarg"); - self.$children("lvar_name", "default_value"); - return (Opal.defn(self, '$compile', TMP_KwoptArgNode_compile_1 = function $$compile() { - var self = this, key_name = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'InitializeShadowarg'); + + var $nesting = [self].concat($parent_nesting), $InitializeShadowarg_compile$1; - key_name = self.sexp.$meta()['$[]']("arg_name"); - self.$initialize_kw_args_if_needed(); - self.$add_temp(self.$lvar_name()); - self.$line("" + (self.$lvar_name()) + " = $kwargs.$$smap[" + (key_name.$to_s().$inspect()) + "];"); - self.$scope().$used_kwargs()['$<<'](key_name); - if (self.$default_value().$children()['$[]'](1)['$==']("undefined")) { - return nil}; - self.$line("" + "if (" + (self.$lvar_name()) + " == null) {"); - self.$line("" + " " + (self.$lvar_name()) + " = ", self.$expr(self.$default_value())); - return self.$line("}"); - }, TMP_KwoptArgNode_compile_1.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'InitializeKwargsNode'), $nesting) + self.$handle("initialize_shadowarg"); + self.$children("name"); + return (Opal.def(self, '$compile', $InitializeShadowarg_compile$1 = function $$compile() { + var self = this; + + + self.$scope().$locals()['$<<'](self.$name()); + self.$scope().$add_arg(self.$name()); + return self.$line("" + (self.$name()) + " = nil;"); + }, $InitializeShadowarg_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/kwrestarg"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/args/parameters"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$handle', '$children', '$initialize_kw_args_if_needed', '$used_kwargs', '$name', '$add_temp', '$line', '$map', '$scope', '$join']); - - self.$require("opal/nodes/args/initialize_kwargs"); + Opal.add_stubs(['$children', '$map', '$public_send', '$type', '$join', '$compact', '$==']); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $KwrestArgNode(){}; - var self = $KwrestArgNode = $klass($base, $super, 'KwrestArgNode', $KwrestArgNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_KwrestArgNode_compile_1, TMP_KwrestArgNode_used_kwargs_3; + var $nesting = [self].concat($parent_nesting); - - self.$handle("kwrestarg"); - self.$children("name"); - - Opal.defn(self, '$compile', TMP_KwrestArgNode_compile_1 = function $$compile() { - var self = this, extract_code = nil; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Parameters'); + var $nesting = [self].concat($parent_nesting), $Parameters_initialize$1, $Parameters_to_code$2, $Parameters_on_arg$4, $Parameters_on_mlhs$5, $Parameters_on_optarg$6, $Parameters_on_restarg$7, $Parameters_on_kwarg$8, $Parameters_on_kwoptarg$9, $Parameters_on_kwrestarg$10, $Parameters_on_blockarg$11, $Parameters_on_kwnilarg$12, $Parameters_on_shadowarg$13; + + self.$$prototype.args = nil; + + + Opal.def(self, '$initialize', $Parameters_initialize$1 = function $$initialize(args) { + var self = this; + + return (self.args = args.$children()) + }, $Parameters_initialize$1.$$arity = 1); - self.$initialize_kw_args_if_needed(); - extract_code = "" + "Opal.kwrestargs($kwargs, " + (self.$used_kwargs()) + ");"; - if ($truthy(self.$name())) { + Opal.def(self, '$to_code', $Parameters_to_code$2 = function $$to_code() { + var $$3, self = this, stringified_parameters = nil; + - self.$add_temp(self.$name()); - return self.$line("" + (self.$name()) + " = " + (extract_code)); + stringified_parameters = $send(self.args, 'map', [], ($$3 = function(arg){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (arg == null) { + arg = nil; + }; + return $send(self, 'public_send', ["" + "on_" + (arg.$type())].concat(Opal.to_a(arg)));}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + return "" + "[" + (stringified_parameters.$compact().$join(", ")) + "]"; + }, $Parameters_to_code$2.$$arity = 0); + + Opal.def(self, '$on_arg', $Parameters_on_arg$4 = function $$on_arg(arg_name) { + var self = this; + + return "" + "['req', '" + (arg_name) + "']" + }, $Parameters_on_arg$4.$$arity = 1); + + Opal.def(self, '$on_mlhs', $Parameters_on_mlhs$5 = function $$on_mlhs($a) { + var $post_args, $rest_arg, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return "['req']"; + }, $Parameters_on_mlhs$5.$$arity = -1); + + Opal.def(self, '$on_optarg', $Parameters_on_optarg$6 = function $$on_optarg(arg_name, _default_value) { + var self = this; + + return "" + "['opt', '" + (arg_name) + "']" + }, $Parameters_on_optarg$6.$$arity = 2); + + Opal.def(self, '$on_restarg', $Parameters_on_restarg$7 = function $$on_restarg(arg_name) { + var self = this; + + + + if (arg_name == null) { + arg_name = nil; + }; + if ($truthy(arg_name)) { + + if (arg_name['$==']("fwd_rest_arg")) { + arg_name = "*"}; + return "" + "['rest', '" + (arg_name) + "']"; } else { - return nil - }; - }, TMP_KwrestArgNode_compile_1.$$arity = 0); - return (Opal.defn(self, '$used_kwargs', TMP_KwrestArgNode_used_kwargs_3 = function $$used_kwargs() { - var TMP_2, self = this, args = nil; + return "['rest']" + }; + }, $Parameters_on_restarg$7.$$arity = -1); + + Opal.def(self, '$on_kwarg', $Parameters_on_kwarg$8 = function $$on_kwarg(arg_name) { + var self = this; + + return "" + "['keyreq', '" + (arg_name) + "']" + }, $Parameters_on_kwarg$8.$$arity = 1); + + Opal.def(self, '$on_kwoptarg', $Parameters_on_kwoptarg$9 = function $$on_kwoptarg(arg_name, _default_value) { + var self = this; + + return "" + "['key', '" + (arg_name) + "']" + }, $Parameters_on_kwoptarg$9.$$arity = 2); + + Opal.def(self, '$on_kwrestarg', $Parameters_on_kwrestarg$10 = function $$on_kwrestarg(arg_name) { + var self = this; + + + + if (arg_name == null) { + arg_name = nil; + }; + if ($truthy(arg_name)) { + return "" + "['keyrest', '" + (arg_name) + "']" + } else { + return "['keyrest']" + }; + }, $Parameters_on_kwrestarg$10.$$arity = -1); + + Opal.def(self, '$on_blockarg', $Parameters_on_blockarg$11 = function $$on_blockarg(arg_name) { + var self = this; + + if (arg_name['$==']("fwd_block_arg")) { + arg_name = "&"}; + return "" + "['block', '" + (arg_name) + "']"; + }, $Parameters_on_blockarg$11.$$arity = 1); - args = $send(self.$scope().$used_kwargs(), 'map', [], (TMP_2 = function(arg_name){var self = TMP_2.$$s || this; -if (arg_name == null) arg_name = nil; - return "" + "'" + (arg_name) + "': true"}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - return "" + "{" + (args.$join(",")) + "}"; - }, TMP_KwrestArgNode_used_kwargs_3.$$arity = 0), nil) && 'used_kwargs'; - })($nesting[0], Opal.const_get_relative($nesting, 'InitializeKwargsNode'), $nesting) + Opal.def(self, '$on_kwnilarg', $Parameters_on_kwnilarg$12 = function $$on_kwnilarg() { + var self = this; + + return "['nokey']" + }, $Parameters_on_kwnilarg$12.$$arity = 0); + return (Opal.def(self, '$on_shadowarg', $Parameters_on_shadowarg$13 = function $$on_shadowarg(_arg_name) { + var self = this; + + return nil + }, $Parameters_on_shadowarg$13.$$arity = 1), nil) && 'on_shadowarg'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) - })($nesting[0], $nesting); + })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/post_kwargs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/args/prepare_post_args"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; - Opal.add_stubs(['$require', '$handle', '$empty?', '$children', '$initialize_kw_args', '$each', '$push', '$process', '$line', '$working_arguments', '$scope']); + Opal.add_stubs(['$require', '$handle', '$children', '$add_temp', '$line', '$offset']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $PostKwargsNode(){}; - var self = $PostKwargsNode = $klass($base, $super, 'PostKwargsNode', $PostKwargsNode); + return (function($base, $parent_nesting) { + var self = $module($base, 'Args'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_PostKwargsNode_compile_2, TMP_PostKwargsNode_initialize_kw_args_3; + var $nesting = [self].concat($parent_nesting); - - self.$handle("post_kwargs"); - - Opal.defn(self, '$compile', TMP_PostKwargsNode_compile_2 = function $$compile() { - var TMP_1, self = this; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'PreparePostArgs'); + + var $nesting = [self].concat($parent_nesting), $PreparePostArgs_compile$1; - if ($truthy(self.$children()['$empty?']())) { - return nil}; - self.$initialize_kw_args(); - return $send(self.$children(), 'each', [], (TMP_1 = function(arg){var self = TMP_1.$$s || this; -if (arg == null) arg = nil; - return self.$push(self.$process(arg))}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); - }, TMP_PostKwargsNode_compile_2.$$arity = 0); - return (Opal.defn(self, '$initialize_kw_args', TMP_PostKwargsNode_initialize_kw_args_3 = function $$initialize_kw_args() { - var self = this; + self.$handle("prepare_post_args"); + self.$children("offset"); + return (Opal.def(self, '$compile', $PreparePostArgs_compile$1 = function $$compile() { + var self = this; - return self.$line("" + "$kwargs = Opal.extract_kwargs(" + (self.$scope().$working_arguments()) + ");") - }, TMP_PostKwargsNode_initialize_kw_args_3.$$arity = 0), nil) && 'initialize_kw_args'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + + self.$add_temp("$post_args"); + return self.$line("" + "$post_args = Opal.slice.call(arguments, " + (self.$offset()) + ", arguments.length)"); + }, $PreparePostArgs_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/args/post_args"] = function(Opal) { +Opal.modules["opal/nodes/args"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$handle', '$attr_reader', '$each', '$children', '$[]=', '$meta', '$-', '$type', '$===', '$<<', '$empty?', '$working_arguments', '$scope', '$[]', '$working_arguments=', '$add_temp', '$line', '$size', '$inline_args', '$extract_arguments', '$push', '$process', '$kwargs_sexp', '$required_left_args', '$compile_required_arg', '$optargs', '$compile_optarg', '$compile_restarg', '$required_right_args', '$indent', '$restarg', '$extract_restarg', '$extract_blank_restarg', '$s', '$kwargs']); + Opal.add_stubs(['$require', '$handle', '$each_with_index', '$children', '$multiple_underscore?', '$[]', '$[]=', '$-', '$+', '$>', '$s', '$type', '$!=', '$push', '$process', '$==', '$count', '$start_with?', '$to_s', '$first']); self.$require("opal/nodes/base"); + self.$require("opal/nodes/args/arg"); + self.$require("opal/nodes/args/arity_check"); + self.$require("opal/nodes/args/ensure_kwargs_are_kwargs"); + self.$require("opal/nodes/args/extract_block_arg"); + self.$require("opal/nodes/args/extract_kwarg"); + self.$require("opal/nodes/args/extract_kwargs"); + self.$require("opal/nodes/args/extract_kwoptarg"); + self.$require("opal/nodes/args/extract_kwrestarg"); + self.$require("opal/nodes/args/extract_optarg"); + self.$require("opal/nodes/args/extract_post_arg"); + self.$require("opal/nodes/args/extract_post_optarg"); + self.$require("opal/nodes/args/extract_restarg"); + self.$require("opal/nodes/args/fake_arg"); + self.$require("opal/nodes/args/initialize_iterarg"); + self.$require("opal/nodes/args/initialize_shadowarg"); + self.$require("opal/nodes/args/parameters"); + self.$require("opal/nodes/args/prepare_post_args"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $PostArgsNode(){}; - var self = $PostArgsNode = $klass($base, $super, 'PostArgsNode', $PostArgsNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ArgsNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_PostArgsNode_initialize_1, TMP_PostArgsNode_extract_arguments_3, TMP_PostArgsNode_compile_7, TMP_PostArgsNode_compile_optarg_9, TMP_PostArgsNode_compile_required_arg_10, TMP_PostArgsNode_compile_restarg_13, TMP_PostArgsNode_extract_restarg_14, TMP_PostArgsNode_extract_blank_restarg_15, TMP_PostArgsNode_kwargs_sexp_16; + var $nesting = [self].concat($parent_nesting), $ArgsNode_compile$1, $ArgsNode_multiple_underscore$ques$3; - def.sexp = nil; - self.$handle("post_args"); - self.$attr_reader("kwargs"); - self.$attr_reader("required_left_args"); - self.$attr_reader("optargs"); - self.$attr_reader("restarg"); - self.$attr_reader("required_right_args"); - - Opal.defn(self, '$initialize', TMP_PostArgsNode_initialize_1 = function $$initialize($a_rest) { - var self = this, $iter = TMP_PostArgsNode_initialize_1.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) TMP_PostArgsNode_initialize_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_PostArgsNode_initialize_1, false), $zuper, $iter); - self.kwargs = []; - self.required_left_args = []; - self.optargs = []; - self.restarg = nil; - return (self.required_right_args = []); - }, TMP_PostArgsNode_initialize_1.$$arity = -1); + self.$handle("args"); - Opal.defn(self, '$extract_arguments', TMP_PostArgsNode_extract_arguments_3 = function $$extract_arguments() { - var TMP_2, self = this, found_opt_or_rest = nil; + Opal.def(self, '$compile', $ArgsNode_compile$1 = function $$compile() { + var $$2, self = this, same_arg_counter = nil; - found_opt_or_rest = false; - return $send(self.$children(), 'each', [], (TMP_2 = function(arg){var self = TMP_2.$$s || this, $writer = nil, $case = nil; - if (self.kwargs == null) self.kwargs = nil; - if (self.optargs == null) self.optargs = nil; - if (self.required_right_args == null) self.required_right_args = nil; - if (self.required_left_args == null) self.required_left_args = nil; -if (arg == null) arg = nil; - - - $writer = ["post", true]; - $send(arg.$meta(), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return (function() {$case = arg.$type(); - if ("kwarg"['$===']($case) || "kwoptarg"['$===']($case) || "kwrestarg"['$===']($case)) {return self.kwargs['$<<'](arg)} - else if ("restarg"['$===']($case)) { - self.restarg = arg; - return (found_opt_or_rest = true);} - else if ("optarg"['$===']($case)) { - self.optargs['$<<'](arg); - return (found_opt_or_rest = true);} - else if ("arg"['$===']($case) || "mlhs"['$===']($case)) {if ($truthy(found_opt_or_rest)) { - return self.required_right_args['$<<'](arg) - } else { - return self.required_left_args['$<<'](arg) - }} - else { return nil }})();}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - }, TMP_PostArgsNode_extract_arguments_3.$$arity = 0); - - Opal.defn(self, '$compile', TMP_PostArgsNode_compile_7 = function $$compile() { - var TMP_4, TMP_5, TMP_6, self = this, old_working_arguments = nil, js_source = nil, $writer = nil; + same_arg_counter = $hash2([], {}); + return $send(self.$children(), 'each_with_index', [], ($$2 = function(arg, idx){var self = $$2.$$s == null ? this : $$2.$$s, $ret_or_1 = nil, $writer = nil; - - if ($truthy(self.$children()['$empty?']())) { - return nil}; - old_working_arguments = self.$scope().$working_arguments(); - if ($truthy(self.sexp.$meta()['$[]']("js_source"))) { - - js_source = self.sexp.$meta()['$[]']("js_source"); - - $writer = ["" + (js_source) + "_args"]; - $send(self.$scope(), 'working_arguments=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - } else { - - js_source = "arguments"; - $writer = ["$post_args"]; - $send(self.$scope(), 'working_arguments=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - }; - self.$add_temp("" + (self.$scope().$working_arguments())); - self.$line("" + (self.$scope().$working_arguments()) + " = Opal.slice.call(" + (js_source) + ", " + (self.$scope().$inline_args().$size()) + ", " + (js_source) + ".length);"); - self.$extract_arguments(); - self.$push(self.$process(self.$kwargs_sexp())); - $send(self.$required_left_args(), 'each', [], (TMP_4 = function(arg){var self = TMP_4.$$s || this; -if (arg == null) arg = nil; - return self.$compile_required_arg(arg)}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); - $send(self.$optargs(), 'each', [], (TMP_5 = function(optarg){var self = TMP_5.$$s || this; -if (optarg == null) optarg = nil; - return self.$compile_optarg(optarg)}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); - self.$compile_restarg(); - $send(self.$required_right_args(), 'each', [], (TMP_6 = function(arg){var self = TMP_6.$$s || this; -if (arg == null) arg = nil; - return self.$compile_required_arg(arg)}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); - - $writer = [old_working_arguments]; - $send(self.$scope(), 'working_arguments=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_PostArgsNode_compile_7.$$arity = 0); - - Opal.defn(self, '$compile_optarg', TMP_PostArgsNode_compile_optarg_9 = function $$compile_optarg(optarg) { - var $a, TMP_8, self = this, var_name = nil, _ = nil; - - - $a = [].concat(Opal.to_a(optarg)), (var_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - self.$add_temp(var_name); - self.$line("" + "if (" + (self.$required_right_args().$size()) + " < " + (self.$scope().$working_arguments()) + ".length) {"); - $send(self, 'indent', [], (TMP_8 = function(){var self = TMP_8.$$s || this; - - return self.$line("" + (var_name) + " = " + (self.$scope().$working_arguments()) + ".splice(0,1)[0];")}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8)); - self.$line("}"); - return self.$push(self.$process(optarg)); - }, TMP_PostArgsNode_compile_optarg_9.$$arity = 1); - - Opal.defn(self, '$compile_required_arg', TMP_PostArgsNode_compile_required_arg_10 = function $$compile_required_arg(arg) { - var self = this; - - return self.$push(self.$process(arg)) - }, TMP_PostArgsNode_compile_required_arg_10.$$arity = 1); - - Opal.defn(self, '$compile_restarg', TMP_PostArgsNode_compile_restarg_13 = function $$compile_restarg() { - var TMP_11, TMP_12, self = this; - - - if ($truthy(self.$restarg())) { - } else { - return nil - }; - self.$line("" + "if (" + (self.$required_right_args().$size()) + " < " + (self.$scope().$working_arguments()) + ".length) {"); - $send(self, 'indent', [], (TMP_11 = function(){var self = TMP_11.$$s || this; - - return self.$extract_restarg()}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11)); - self.$line("} else {"); - $send(self, 'indent', [], (TMP_12 = function(){var self = TMP_12.$$s || this; - - return self.$extract_blank_restarg()}, TMP_12.$$s = self, TMP_12.$$arity = 0, TMP_12)); - return self.$line("}"); - }, TMP_PostArgsNode_compile_restarg_13.$$arity = 0); - - Opal.defn(self, '$extract_restarg', TMP_PostArgsNode_extract_restarg_14 = function $$extract_restarg() { - var $a, self = this, extract_code = nil, var_name = nil, _ = nil; - - - extract_code = "" + (self.$scope().$working_arguments()) + ".splice(0, " + (self.$scope().$working_arguments()) + ".length - " + (self.$required_right_args().$size()) + ");"; - $a = [].concat(Opal.to_a(self.$restarg())), (var_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(var_name)) { - self.$add_temp(var_name); - return self.$line("" + (var_name) + " = " + (extract_code)); - } else { - return self.$line(extract_code) - }; - }, TMP_PostArgsNode_extract_restarg_14.$$arity = 0); - - Opal.defn(self, '$extract_blank_restarg', TMP_PostArgsNode_extract_blank_restarg_15 = function $$extract_blank_restarg() { - var $a, self = this, var_name = nil, _ = nil; - - - $a = [].concat(Opal.to_a(self.$restarg())), (var_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - if ($truthy(var_name)) { + if (arg == null) { + arg = nil; + }; - self.$add_temp(var_name); - return self.$line("" + (var_name) + " = [];"); - } else { - return nil - }; - }, TMP_PostArgsNode_extract_blank_restarg_15.$$arity = 0); - return (Opal.defn(self, '$kwargs_sexp', TMP_PostArgsNode_kwargs_sexp_16 = function $$kwargs_sexp() { - var self = this; - - return $send(self, 's', ["post_kwargs"].concat(Opal.to_a(self.$kwargs()))) - }, TMP_PostArgsNode_kwargs_sexp_16.$$arity = 0), nil) && 'kwargs_sexp'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + if (idx == null) { + idx = nil; + }; + if ($truthy(self['$multiple_underscore?'](arg))) { + + if ($truthy(($ret_or_1 = same_arg_counter['$[]'](arg)))) { + $ret_or_1 + } else { + + $writer = [arg, 0]; + $send(same_arg_counter, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + + $writer = [arg, $rb_plus(same_arg_counter['$[]'](arg), 1)]; + $send(same_arg_counter, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy($rb_gt(same_arg_counter['$[]'](arg), 1))) { + arg = self.$s(arg.$type(), "" + (arg.$children()['$[]'](0)) + "_$" + (same_arg_counter['$[]'](arg)))};}; + if ($truthy(idx['$!='](0))) { + self.$push(", ")}; + return self.$push(self.$process(arg));}, $$2.$$s = self, $$2.$$arity = 2, $$2)); + }, $ArgsNode_compile$1.$$arity = 0); + return (Opal.def(self, '$multiple_underscore?', $ArgsNode_multiple_underscore$ques$3 = function(arg) { + var self = this, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; + + if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = arg.$type()['$==']("arg")))) { + return arg.$children().$count()['$=='](1) + } else { + return $ret_or_4 + }; return nil; })()))) { + return arg.$children().$first().$to_s()['$start_with?']("_") + } else { + return $ret_or_3 + }; return nil; })()))) { + return $rb_gt(self.$children().$count(arg), 1) + } else { + return $ret_or_2 + } + }, $ArgsNode_multiple_underscore$ques$3.$$arity = 1), nil) && 'multiple_underscore?'; + })($nesting[0], $$($nesting, 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/node_with_args"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - function $rb_lt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); - } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["opal/nodes/node_with_args"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$attr_accessor', '$attr_writer', '$attr_reader', '$children', '$args', '$each_with_index', '$type', '$===', '$<<', '$any?', '$[]', '$length', '$!=', '$map!', '$inline_args', '$updated', '$optimize_args!', '$select', '$==', '$find', '$include?', '$s', '$post_args', '$each', '$push', '$process', '$post_args_sexp', '$uses_block?', '$scope', '$identity', '$block_name', '$add_temp', '$line', '$inline_args=', '$-', '$first', '$pop', '$[]=', '$meta', '$keyword_args', '$all?', '$rest_arg', '$opt_args', '$has_only_optional_kwargs?', '$negative_arity', '$positive_arity', '$size', '$has_required_kwargs?', '$+', '$-@', '$map', '$build_parameter', '$block_arg', '$join', '$!', '$empty?', '$<', '$>']); + Opal.add_stubs(['$require', '$attr_reader', '$attr_accessor', '$[]', '$meta', '$s', '$original_args', '$push', '$process', '$arity_check_node', '$uses_block?', '$scope', '$identity', '$block_name', '$add_temp', '$line', '$to_code', '$new']); self.$require("opal/nodes/scope"); + self.$require("opal/nodes/args/parameters"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $NodeWithArgs(){}; - var self = $NodeWithArgs = $klass($base, $super, 'NodeWithArgs', $NodeWithArgs); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'NodeWithArgs'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NodeWithArgs_initialize_1, TMP_NodeWithArgs_split_args_5, TMP_NodeWithArgs_opt_args_7, TMP_NodeWithArgs_rest_arg_9, TMP_NodeWithArgs_keyword_args_11, TMP_NodeWithArgs_inline_args_sexp_12, TMP_NodeWithArgs_post_args_sexp_13, TMP_NodeWithArgs_compile_inline_args_15, TMP_NodeWithArgs_compile_post_args_16, TMP_NodeWithArgs_compile_block_arg_17, TMP_NodeWithArgs_with_inline_args_18, TMP_NodeWithArgs_in_mlhs_19, TMP_NodeWithArgs_in_mlhs$q_20, TMP_NodeWithArgs_optimize_args$B_21, TMP_NodeWithArgs_has_only_optional_kwargs$q_23, TMP_NodeWithArgs_has_required_kwargs$q_25, TMP_NodeWithArgs_arity_26, TMP_NodeWithArgs_negative_arity_28, TMP_NodeWithArgs_positive_arity_29, TMP_NodeWithArgs_build_parameter_30, TMP_NodeWithArgs_parameters_code_32, TMP_NodeWithArgs_arity_checks_33; + var $nesting = [self].concat($parent_nesting), $NodeWithArgs_initialize$1, $NodeWithArgs_arity_check_node$2, $NodeWithArgs_compile_arity_check$3, $NodeWithArgs_compile_block_arg$4, $NodeWithArgs_parameters_code$5; - def.opt_args = def.rest_arg = def.keyword_args = def.in_mlhs = def.arity_checks = nil; + self.$$prototype.sexp = nil; - self.$attr_accessor("mlhs_args"); - self.$attr_accessor("used_kwargs"); - self.$attr_accessor("mlhs_mapping"); - self.$attr_accessor("working_arguments"); - self.$attr_writer("inline_args"); - self.$attr_accessor("kwargs_initialized"); - self.$attr_reader("inline_args", "post_args"); + self.$attr_reader("used_kwargs"); + self.$attr_accessor("arity"); + self.$attr_reader("original_args"); - Opal.defn(self, '$initialize', TMP_NodeWithArgs_initialize_1 = function $$initialize($a_rest) { - var self = this, $iter = TMP_NodeWithArgs_initialize_1.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$initialize', $NodeWithArgs_initialize$1 = function $$initialize($a) { + var $post_args, $rest_arg, $iter = $NodeWithArgs_initialize$1.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_NodeWithArgs_initialize_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $NodeWithArgs_initialize$1.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_NodeWithArgs_initialize_1, false), $zuper, $iter); - self.mlhs_args = $hash2([], {}); + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $NodeWithArgs_initialize$1, false, true), 'initialize', Opal.to_a($rest_arg), $iter); + self.original_args = self.sexp.$meta()['$[]']("original_args"); self.used_kwargs = []; - self.mlhs_mapping = $hash2([], {}); - self.working_arguments = nil; - self.in_mlhs = false; - self.kwargs_initialized = false; - self.inline_args = []; - self.post_args = []; - return (self.post_args_started = false); - }, TMP_NodeWithArgs_initialize_1.$$arity = -1); - - Opal.defn(self, '$split_args', TMP_NodeWithArgs_split_args_5 = function $$split_args() { - var TMP_2, TMP_4, self = this, args = nil; - - - args = self.$args().$children(); - $send(args, 'each_with_index', [], (TMP_2 = function(arg, idx){var self = TMP_2.$$s || this, TMP_3, $case = nil; - if (self.post_args_started == null) self.post_args_started = nil; - if (self.post_args == null) self.post_args = nil; - if (self.inline_args == null) self.inline_args = nil; -if (arg == null) arg = nil;if (idx == null) idx = nil; - return (function() {$case = arg.$type(); - if ("arg"['$===']($case) || "mlhs"['$===']($case) || "kwarg"['$===']($case) || "kwoptarg"['$===']($case) || "kwrestarg"['$===']($case)) {if ($truthy(self.post_args_started)) { - return self.post_args['$<<'](arg) - } else { - return self.inline_args['$<<'](arg) - }} - else if ("restarg"['$===']($case)) { - self.post_args_started = true; - return self.post_args['$<<'](arg);} - else if ("optarg"['$===']($case)) { - if ($truthy($send(args['$[]'](idx, args.$length()), 'any?', [], (TMP_3 = function(next_arg){var self = TMP_3.$$s || this, $a; -if (next_arg == null) next_arg = nil; - return ($truthy($a = next_arg.$type()['$!=']("optarg")) ? next_arg.$type()['$!=']("restarg") : $a)}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)))) { - self.post_args_started = true}; - if ($truthy(self.post_args_started)) { - return self.post_args['$<<'](arg) - } else { - return self.inline_args['$<<'](arg) - };} - else { return nil }})()}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)); - $send(self.$inline_args(), 'map!', [], (TMP_4 = function(inline_arg){var self = TMP_4.$$s || this; -if (inline_arg == null) inline_arg = nil; - return inline_arg.$updated(nil, nil, $hash2(["meta"], {"meta": $hash2(["inline"], {"inline": true})}))}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); - return self['$optimize_args!'](); - }, TMP_NodeWithArgs_split_args_5.$$arity = 0); - - Opal.defn(self, '$opt_args', TMP_NodeWithArgs_opt_args_7 = function $$opt_args() { - var $a, TMP_6, self = this; - - return (self.opt_args = ($truthy($a = self.opt_args) ? $a : $send(self.$args().$children(), 'select', [], (TMP_6 = function(arg){var self = TMP_6.$$s || this; -if (arg == null) arg = nil; - return arg.$type()['$==']("optarg")}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)))) - }, TMP_NodeWithArgs_opt_args_7.$$arity = 0); + return (self.arity = 0); + }, $NodeWithArgs_initialize$1.$$arity = -1); - Opal.defn(self, '$rest_arg', TMP_NodeWithArgs_rest_arg_9 = function $$rest_arg() { - var $a, TMP_8, self = this; - - return (self.rest_arg = ($truthy($a = self.rest_arg) ? $a : $send(self.$args().$children(), 'find', [], (TMP_8 = function(arg){var self = TMP_8.$$s || this; -if (arg == null) arg = nil; - return arg.$type()['$==']("restarg")}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)))) - }, TMP_NodeWithArgs_rest_arg_9.$$arity = 0); - - Opal.defn(self, '$keyword_args', TMP_NodeWithArgs_keyword_args_11 = function $$keyword_args() { - var $a, TMP_10, self = this; - - return (self.keyword_args = ($truthy($a = self.keyword_args) ? $a : $send(self.$args().$children(), 'select', [], (TMP_10 = function(arg){var self = TMP_10.$$s || this; -if (arg == null) arg = nil; - return ["kwarg", "kwoptarg", "kwrestarg"]['$include?'](arg.$type())}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)))) - }, TMP_NodeWithArgs_keyword_args_11.$$arity = 0); - - Opal.defn(self, '$inline_args_sexp', TMP_NodeWithArgs_inline_args_sexp_12 = function $$inline_args_sexp() { + Opal.def(self, '$arity_check_node', $NodeWithArgs_arity_check_node$2 = function $$arity_check_node() { var self = this; - return $send(self, 's', ["inline_args"].concat(Opal.to_a(self.$args().$children()))) - }, TMP_NodeWithArgs_inline_args_sexp_12.$$arity = 0); - - Opal.defn(self, '$post_args_sexp', TMP_NodeWithArgs_post_args_sexp_13 = function $$post_args_sexp() { - var self = this; - - return $send(self, 's', ["post_args"].concat(Opal.to_a(self.$post_args()))) - }, TMP_NodeWithArgs_post_args_sexp_13.$$arity = 0); - - Opal.defn(self, '$compile_inline_args', TMP_NodeWithArgs_compile_inline_args_15 = function $$compile_inline_args() { - var TMP_14, self = this; - - return $send(self.$inline_args(), 'each', [], (TMP_14 = function(inline_arg){var self = TMP_14.$$s || this; -if (inline_arg == null) inline_arg = nil; - return self.$push(self.$process(inline_arg))}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)) - }, TMP_NodeWithArgs_compile_inline_args_15.$$arity = 0); + return self.$s("arity_check", self.$original_args()) + }, $NodeWithArgs_arity_check_node$2.$$arity = 0); - Opal.defn(self, '$compile_post_args', TMP_NodeWithArgs_compile_post_args_16 = function $$compile_post_args() { + Opal.def(self, '$compile_arity_check', $NodeWithArgs_compile_arity_check$3 = function $$compile_arity_check() { var self = this; - return self.$push(self.$process(self.$post_args_sexp())) - }, TMP_NodeWithArgs_compile_post_args_16.$$arity = 0); + return self.$push(self.$process(self.$arity_check_node())) + }, $NodeWithArgs_compile_arity_check$3.$$arity = 0); - Opal.defn(self, '$compile_block_arg', TMP_NodeWithArgs_compile_block_arg_17 = function $$compile_block_arg() { - var self = this, scope_name = nil, yielder = nil; + Opal.def(self, '$compile_block_arg', $NodeWithArgs_compile_block_arg$4 = function $$compile_block_arg() { + var self = this, scope_name = nil, yielder = nil, $ret_or_1 = nil; if ($truthy(self.$scope()['$uses_block?']())) { scope_name = self.$scope().$identity(); - yielder = self.$scope().$block_name(); + yielder = (function() {if ($truthy(($ret_or_1 = self.$scope().$block_name()))) { + return $ret_or_1 + } else { + return "$yield" + }; return nil; })(); self.$add_temp("" + "$iter = " + (scope_name) + ".$$p"); self.$add_temp("" + (yielder) + " = $iter || nil"); return self.$line("" + "if ($iter) " + (scope_name) + ".$$p = null;"); - } else { - return nil - } - }, TMP_NodeWithArgs_compile_block_arg_17.$$arity = 0); - - Opal.defn(self, '$with_inline_args', TMP_NodeWithArgs_with_inline_args_18 = function $$with_inline_args(args) { - var self = this, $iter = TMP_NodeWithArgs_with_inline_args_18.$$p, $yield = $iter || nil, old_inline_args = nil, $writer = nil; - - if ($iter) TMP_NodeWithArgs_with_inline_args_18.$$p = null; - - old_inline_args = self.$inline_args(); - - $writer = [args]; - $send(self, 'inline_args=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - Opal.yieldX($yield, []); - - $writer = [old_inline_args]; - $send(self, 'inline_args=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_NodeWithArgs_with_inline_args_18.$$arity = 1); - - Opal.defn(self, '$in_mlhs', TMP_NodeWithArgs_in_mlhs_19 = function $$in_mlhs() { - var self = this, $iter = TMP_NodeWithArgs_in_mlhs_19.$$p, $yield = $iter || nil, old_mlhs = nil; - - if ($iter) TMP_NodeWithArgs_in_mlhs_19.$$p = null; - - old_mlhs = self.in_mlhs; - self.in_mlhs = true; - Opal.yieldX($yield, []); - return (self.in_mlhs = old_mlhs); - }, TMP_NodeWithArgs_in_mlhs_19.$$arity = 0); - - Opal.defn(self, '$in_mlhs?', TMP_NodeWithArgs_in_mlhs$q_20 = function() { - var self = this; - - return self.in_mlhs - }, TMP_NodeWithArgs_in_mlhs$q_20.$$arity = 0); - - Opal.defn(self, '$optimize_args!', TMP_NodeWithArgs_optimize_args$B_21 = function() { - var $a, self = this, rest_arg = nil, $writer = nil; - - if ($truthy((($a = self.$post_args().$length()['$=='](1)) ? self.$post_args().$first().$type()['$==']("restarg") : self.$post_args().$length()['$=='](1)))) { - - rest_arg = self.$post_args().$pop(); - - $writer = ["offset", self.$inline_args().$length()]; - $send(rest_arg.$meta(), '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return self.$inline_args()['$<<'](rest_arg); - } else { + } else { return nil } - }, TMP_NodeWithArgs_optimize_args$B_21.$$arity = 0); - - Opal.defn(self, '$has_only_optional_kwargs?', TMP_NodeWithArgs_has_only_optional_kwargs$q_23 = function() { - var $a, TMP_22, self = this; - - return ($truthy($a = self.$keyword_args()['$any?']()) ? $send(self.$keyword_args(), 'all?', [], (TMP_22 = function(arg){var self = TMP_22.$$s || this; -if (arg == null) arg = nil; - return ["kwoptarg", "kwrestarg"]['$include?'](arg.$type())}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22)) : $a) - }, TMP_NodeWithArgs_has_only_optional_kwargs$q_23.$$arity = 0); - - Opal.defn(self, '$has_required_kwargs?', TMP_NodeWithArgs_has_required_kwargs$q_25 = function() { - var TMP_24, self = this; - - return $send(self.$keyword_args(), 'any?', [], (TMP_24 = function(arg){var self = TMP_24.$$s || this; -if (arg == null) arg = nil; - return arg.$type()['$==']("kwarg")}, TMP_24.$$s = self, TMP_24.$$arity = 1, TMP_24)) - }, TMP_NodeWithArgs_has_required_kwargs$q_25.$$arity = 0); - - Opal.defn(self, '$arity', TMP_NodeWithArgs_arity_26 = function $$arity() { - var $a, $b, self = this; - - if ($truthy(($truthy($a = ($truthy($b = self.$rest_arg()) ? $b : self.$opt_args()['$any?']())) ? $a : self['$has_only_optional_kwargs?']()))) { - return self.$negative_arity() - } else { - return self.$positive_arity() - } - }, TMP_NodeWithArgs_arity_26.$$arity = 0); - - Opal.defn(self, '$negative_arity', TMP_NodeWithArgs_negative_arity_28 = function $$negative_arity() { - var TMP_27, self = this, required_plain_args = nil, result = nil; - - - required_plain_args = $send(self.$args().$children(), 'select', [], (TMP_27 = function(arg){var self = TMP_27.$$s || this; -if (arg == null) arg = nil; - return ["arg", "mlhs"]['$include?'](arg.$type())}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)); - result = required_plain_args.$size(); - if ($truthy(self['$has_required_kwargs?']())) { - result = $rb_plus(result, 1)}; - result = $rb_minus(result['$-@'](), 1); - return result; - }, TMP_NodeWithArgs_negative_arity_28.$$arity = 0); - - Opal.defn(self, '$positive_arity', TMP_NodeWithArgs_positive_arity_29 = function $$positive_arity() { - var self = this, result = nil; - - - result = self.$args().$children().$size(); - result = $rb_minus(result, self.$keyword_args().$size()); - if ($truthy(self.$keyword_args()['$any?']())) { - result = $rb_plus(result, 1)}; - return result; - }, TMP_NodeWithArgs_positive_arity_29.$$arity = 0); - - Opal.defn(self, '$build_parameter', TMP_NodeWithArgs_build_parameter_30 = function $$build_parameter(parameter_type, parameter_name) { + }, $NodeWithArgs_compile_block_arg$4.$$arity = 0); + return (Opal.def(self, '$parameters_code', $NodeWithArgs_parameters_code$5 = function $$parameters_code() { var self = this; - if ($truthy(parameter_name)) { - return "" + "['" + (parameter_type) + "', '" + (parameter_name) + "']" - } else { - return "" + "['" + (parameter_type) + "']" - } - }, TMP_NodeWithArgs_build_parameter_30.$$arity = 2); - Opal.const_set($nesting[0], 'SEXP_TO_PARAMETERS', $hash2(["arg", "mlhs", "optarg", "restarg", "kwarg", "kwoptarg", "kwrestarg"], {"arg": "req", "mlhs": "req", "optarg": "opt", "restarg": "rest", "kwarg": "keyreq", "kwoptarg": "key", "kwrestarg": "keyrest"})); - - Opal.defn(self, '$parameters_code', TMP_NodeWithArgs_parameters_code_32 = function $$parameters_code() { - var TMP_31, self = this, stringified_parameters = nil; - - - stringified_parameters = $send(self.$args().$children(), 'map', [], (TMP_31 = function(arg){var self = TMP_31.$$s || this, value = nil; -if (arg == null) arg = nil; - - value = (function() {if (arg.$type()['$==']("mlhs")) { - return nil - } else { - return arg.$children()['$[]'](0) - }; return nil; })(); - return self.$build_parameter(Opal.const_get_relative($nesting, 'SEXP_TO_PARAMETERS')['$[]'](arg.$type()), value);}, TMP_31.$$s = self, TMP_31.$$arity = 1, TMP_31)); - if ($truthy(self.$block_arg())) { - stringified_parameters['$<<']("" + "['block', '" + (self.$block_arg()) + "']")}; - return "" + "[" + (stringified_parameters.$join(", ")) + "]"; - }, TMP_NodeWithArgs_parameters_code_32.$$arity = 0); - return (Opal.defn(self, '$arity_checks', TMP_NodeWithArgs_arity_checks_33 = function $$arity_checks() { - var $a, $b, $c, self = this, arity = nil, min_arity = nil, max_arity = nil; - - - if ($truthy((($a = self['arity_checks'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { - return self.arity_checks}; - arity = self.$args().$children().$size(); - arity = $rb_minus(arity, self.$opt_args().$size()); - if ($truthy(self.$rest_arg())) { - arity = $rb_minus(arity, 1)}; - arity = $rb_minus(arity, self.$keyword_args().$size()); - if ($truthy(($truthy($b = ($truthy($c = self.$opt_args()['$empty?']()['$!']()) ? $c : self.$keyword_args()['$empty?']()['$!']())) ? $b : self.$rest_arg()))) { - arity = $rb_minus(arity['$-@'](), 1)}; - self.arity_checks = []; - if ($truthy($rb_lt(arity, 0))) { - - min_arity = $rb_plus(arity, 1)['$-@'](); - max_arity = self.$args().$children().$size(); - if ($truthy($rb_gt(min_arity, 0))) { - self.arity_checks['$<<']("" + "$arity < " + (min_arity))}; - if ($truthy(($truthy($b = max_arity) ? self.$rest_arg()['$!']() : $b))) { - self.arity_checks['$<<']("" + "$arity > " + (max_arity))}; - } else { - self.arity_checks['$<<']("" + "$arity !== " + (arity)) - }; - return self.arity_checks; - }, TMP_NodeWithArgs_arity_checks_33.$$arity = 0), nil) && 'arity_checks'; - })($nesting[0], Opal.const_get_relative($nesting, 'ScopeNode'), $nesting) + return $$$($$($nesting, 'Args'), 'Parameters').$new(self.$original_args()).$to_code() + }, $NodeWithArgs_parameters_code$5.$$arity = 0), nil) && 'parameters_code'; + })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/iter"] = function(Opal) { +Opal.modules["opal/nodes/iter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$children', '$attr_accessor', '$extract_block_arg', '$extract_shadow_args', '$extract_underscore_args', '$split_args', '$in_scope', '$process', '$inline_args_sexp', '$identify!', '$scope', '$add_temp', '$compile_block_arg', '$compile_shadow_args', '$compile_inline_args', '$compile_post_args', '$compile_norm_args', '$arity_check?', '$compiler', '$compile_arity_check', '$stmt', '$returned_body', '$to_vars', '$line', '$unshift', '$push', '$contains_break?', '$arity', '$parameters_code', '$has_top_level_mlhs_arg?', '$has_trailing_comma_in_args?', '$select', '$args', '$==', '$type', '$each', '$norm_args', '$block_arg', '$block_name=', '$-', '$[]', '$updated', '$s', '$body', '$shadow_args', '$<<', '$locals', '$add_arg', '$each_with_index', '$first', '$returns', '$keys', '$mlhs_mapping', '$any?', '$loc', '$expression', '$source', '$match', '$>', '$size', '$arity_checks', '$!', '$top?', '$def?', '$class_scope?', '$parent', '$mid', '$class?', '$name', '$module?', '$identity', '$join', '$new', '$found_break?']); + Opal.add_stubs(['$require', '$handle', '$children', '$lambda_definition?', '$scope', '$is_lambda!', '$in_scope', '$identify!', '$add_temp', '$process', '$inline_args', '$compile_arity_check', '$stmt', '$returned_body', '$to_vars', '$line', '$catch_return', '$unshift', '$push', '$await_encountered', '$contains_break?', '$arity', '$arity_check?', '$compiler', '$parameters_code', '$has_top_level_mlhs_arg?', '$has_trailing_comma_in_args?', '$block_arg', '$block_name=', '$-', '$each', '$args', '$first', '$==', '$<<', '$updated', '$body', '$returns', '$s', '$any?', '$original_args', '$type', '$loc', '$expression', '$source', '$match', '$new', '$found_break?']); self.$require("opal/nodes/node_with_args"); self.$require("opal/rewriters/break_finder"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $IterNode(){}; - var self = $IterNode = $klass($base, $super, 'IterNode', $IterNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'IterNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IterNode_compile_2, TMP_IterNode_norm_args_4, TMP_IterNode_compile_norm_args_6, TMP_IterNode_compile_block_arg_7, TMP_IterNode_extract_block_arg_8, TMP_IterNode_compile_shadow_args_10, TMP_IterNode_extract_shadow_args_12, TMP_IterNode_extract_underscore_args_14, TMP_IterNode_returned_body_15, TMP_IterNode_mlhs_args_16, TMP_IterNode_has_top_level_mlhs_arg$q_18, TMP_IterNode_has_trailing_comma_in_args$q_19, TMP_IterNode_compile_arity_check_20, TMP_IterNode_contains_break$q_21; + var $nesting = [self].concat($parent_nesting), $IterNode_compile$1, $IterNode_compile_block_arg$3, $IterNode_extract_underscore_args$4, $IterNode_returned_body$6, $IterNode_has_top_level_mlhs_arg$ques$7, $IterNode_has_trailing_comma_in_args$ques$9, $IterNode_arity_check_node$10, $IterNode_contains_break$ques$11; - def.norm_args = def.sexp = nil; + self.$$prototype.sexp = nil; self.$handle("iter"); - self.$children("args", "body"); - self.$attr_accessor("block_arg", "shadow_args"); + self.$children("inline_args", "body"); - Opal.defn(self, '$compile', TMP_IterNode_compile_2 = function $$compile() { - var TMP_1, self = this, inline_params = nil, to_vars = nil, identity = nil, body_code = nil; + Opal.def(self, '$compile', $IterNode_compile$1 = function $$compile() { + var $$2, self = this, inline_params = nil, to_vars = nil, identity = nil, body_code = nil; + if ($truthy(self.$scope()['$lambda_definition?']())) { + self['$is_lambda!']()}; inline_params = nil; - self.$extract_block_arg(); - self.$extract_shadow_args(); - self.$extract_underscore_args(); - self.$split_args(); to_vars = (identity = (body_code = nil)); - $send(self, 'in_scope', [], (TMP_1 = function(){var self = TMP_1.$$s || this; + $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - - inline_params = self.$process(self.$inline_args_sexp()); + identity = self.$scope()['$identify!'](); - self.$add_temp("" + "self = " + (identity) + ".$$s || this"); - self.$compile_block_arg(); - self.$compile_shadow_args(); - self.$compile_inline_args(); - self.$compile_post_args(); - self.$compile_norm_args(); - if ($truthy(self.$compiler()['$arity_check?']())) { - self.$compile_arity_check()}; + self.$add_temp("" + "self = " + (identity) + ".$$s == null ? this : " + (identity) + ".$$s"); + inline_params = self.$process(self.$inline_args()); + self.$compile_arity_check(); body_code = self.$stmt(self.$returned_body()); - return (to_vars = self.$scope().$to_vars());}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); - self.$line(body_code); + to_vars = self.$scope().$to_vars(); + self.$line(body_code); + if ($truthy(self.$scope().$catch_return())) { + + self.$unshift("try {\n"); + self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"); + return self.$push(" throw $returner; }"); + } else { + return nil + };}, $$2.$$s = self, $$2.$$arity = 0, $$2)); self.$unshift(to_vars); - self.$unshift("" + "(" + (identity) + " = function(", inline_params, "){"); + if ($truthy(self.$await_encountered())) { + self.$unshift("" + "(" + (identity) + " = async function(", inline_params, "){") + } else { + self.$unshift("" + "(" + (identity) + " = function(", inline_params, "){") + }; self.$push("" + "}, " + (identity) + ".$$s = self,"); if ($truthy(self['$contains_break?']())) { self.$push("" + " " + (identity) + ".$$brk = $brk,")}; @@ -23721,254 +35045,152 @@ Opal.modules["opal/nodes/iter"] = function(Opal) { if ($truthy(self['$has_trailing_comma_in_args?']())) { self.$push("" + " " + (identity) + ".$$has_trailing_comma_in_args = true,")}; return self.$push("" + " " + (identity) + ")"); - }, TMP_IterNode_compile_2.$$arity = 0); - - Opal.defn(self, '$norm_args', TMP_IterNode_norm_args_4 = function $$norm_args() { - var $a, TMP_3, self = this; - - return (self.norm_args = ($truthy($a = self.norm_args) ? $a : $send(self.$args().$children(), 'select', [], (TMP_3 = function(arg){var self = TMP_3.$$s || this; -if (arg == null) arg = nil; - return arg.$type()['$==']("arg")}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)))) - }, TMP_IterNode_norm_args_4.$$arity = 0); - - Opal.defn(self, '$compile_norm_args', TMP_IterNode_compile_norm_args_6 = function $$compile_norm_args() { - var TMP_5, self = this; - - return $send(self.$norm_args(), 'each', [], (TMP_5 = function(arg){var self = TMP_5.$$s || this, $a, arg_name = nil, _ = nil; -if (arg == null) arg = nil; - - $a = [].concat(Opal.to_a(arg)), (arg_name = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $a; - return self.$push("" + "if (" + (arg_name) + " == null) " + (arg_name) + " = nil;");}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)) - }, TMP_IterNode_compile_norm_args_6.$$arity = 0); + }, $IterNode_compile$1.$$arity = 0); - Opal.defn(self, '$compile_block_arg', TMP_IterNode_compile_block_arg_7 = function $$compile_block_arg() { + Opal.def(self, '$compile_block_arg', $IterNode_compile_block_arg$3 = function $$compile_block_arg() { var self = this, $writer = nil, scope_name = nil; if ($truthy(self.$block_arg())) { - - $writer = [self.$block_arg()]; - $send(self.$scope(), 'block_name=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - self.$scope().$add_temp(self.$block_arg()); - scope_name = self.$scope()['$identify!'](); - self.$line("" + (self.$block_arg()) + " = " + (scope_name) + ".$$p || nil;"); - return self.$line("" + "if (" + (self.$block_arg()) + ") " + (scope_name) + ".$$p = null;"); - } else { - return nil - } - }, TMP_IterNode_compile_block_arg_7.$$arity = 0); - - Opal.defn(self, '$extract_block_arg', TMP_IterNode_extract_block_arg_8 = function $$extract_block_arg() { - var $a, $b, $c, self = this, regular_args = nil, last_arg = nil; - - - $b = self.$args().$children(), $a = Opal.to_ary($b), $c = $a.length - 1, $c = ($c < 0) ? 0 : $c, (regular_args = $slice.call($a, 0, $c)), (last_arg = ($a[$c] == null ? nil : $a[$c])), $b; - if ($truthy(($truthy($a = last_arg) ? last_arg.$type()['$==']("blockarg") : $a))) { - - self.block_arg = last_arg.$children()['$[]'](0); - return (self.sexp = self.sexp.$updated(nil, [$send(self, 's', ["args"].concat(Opal.to_a(regular_args))), self.$body()])); - } else { - return nil - }; - }, TMP_IterNode_extract_block_arg_8.$$arity = 0); - - Opal.defn(self, '$compile_shadow_args', TMP_IterNode_compile_shadow_args_10 = function $$compile_shadow_args() { - var TMP_9, self = this; - - return $send(self.$shadow_args(), 'each', [], (TMP_9 = function(shadow_arg){var self = TMP_9.$$s || this, arg_name = nil; -if (shadow_arg == null) shadow_arg = nil; - - arg_name = shadow_arg.$children()['$[]'](0); - self.$scope().$locals()['$<<'](arg_name); - return self.$scope().$add_arg(arg_name);}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)) - }, TMP_IterNode_compile_shadow_args_10.$$arity = 0); - - Opal.defn(self, '$extract_shadow_args', TMP_IterNode_extract_shadow_args_12 = function $$extract_shadow_args() { - var TMP_11, self = this, valid_args = nil; - - - self.shadow_args = []; - valid_args = []; - if ($truthy(self.$args())) { - } else { + + $writer = [self.$block_arg()]; + $send(self.$scope(), 'block_name=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + self.$scope().$add_temp(self.$block_arg()); + scope_name = self.$scope()['$identify!'](); + self.$line("" + (self.$block_arg()) + " = " + (scope_name) + ".$$p || nil;"); + return self.$line("" + "if (" + (self.$block_arg()) + ") " + (scope_name) + ".$$p = null;"); + } else { return nil - }; - $send(self.$args().$children(), 'each_with_index', [], (TMP_11 = function(arg, idx){var self = TMP_11.$$s || this; - if (self.shadow_args == null) self.shadow_args = nil; -if (arg == null) arg = nil;if (idx == null) idx = nil; - if (arg.$type()['$==']("shadowarg")) { - return self.shadow_args['$<<'](arg) - } else { - return valid_args['$<<'](arg) - }}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11)); - return (self.sexp = self.sexp.$updated(nil, [self.$args().$updated(nil, valid_args), self.$body()])); - }, TMP_IterNode_extract_shadow_args_12.$$arity = 0); + } + }, $IterNode_compile_block_arg$3.$$arity = 0); - Opal.defn(self, '$extract_underscore_args', TMP_IterNode_extract_underscore_args_14 = function $$extract_underscore_args() { - var TMP_13, self = this, valid_args = nil, caught_blank_argument = nil; + Opal.def(self, '$extract_underscore_args', $IterNode_extract_underscore_args$4 = function $$extract_underscore_args() { + var $$5, self = this, valid_args = nil, caught_blank_argument = nil; valid_args = []; caught_blank_argument = false; - $send(self.$args().$children(), 'each', [], (TMP_13 = function(arg){var self = TMP_13.$$s || this, arg_name = nil; -if (arg == null) arg = nil; - + $send(self.$args().$children(), 'each', [], ($$5 = function(arg){var self = $$5.$$s == null ? this : $$5.$$s, arg_name = nil; + + + + if (arg == null) { + arg = nil; + }; arg_name = arg.$children().$first(); if (arg_name['$==']("_")) { if ($truthy(caught_blank_argument)) { return nil - } else { + } else { caught_blank_argument = true; return valid_args['$<<'](arg); } - } else { + } else { return valid_args['$<<'](arg) - };}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13)); + };}, $$5.$$s = self, $$5.$$arity = 1, $$5)); return (self.sexp = self.sexp.$updated(nil, [self.$args().$updated(nil, valid_args), self.$body()])); - }, TMP_IterNode_extract_underscore_args_14.$$arity = 0); + }, $IterNode_extract_underscore_args$4.$$arity = 0); - Opal.defn(self, '$returned_body', TMP_IterNode_returned_body_15 = function $$returned_body() { - var $a, self = this; + Opal.def(self, '$returned_body', $IterNode_returned_body$6 = function $$returned_body() { + var self = this, $ret_or_1 = nil; - return self.$compiler().$returns(($truthy($a = self.$body()) ? $a : self.$s("nil"))) - }, TMP_IterNode_returned_body_15.$$arity = 0); + return self.$compiler().$returns((function() {if ($truthy(($ret_or_1 = self.$body()))) { + return $ret_or_1 + } else { + return self.$s("nil") + }; return nil; })()) + }, $IterNode_returned_body$6.$$arity = 0); - Opal.defn(self, '$mlhs_args', TMP_IterNode_mlhs_args_16 = function $$mlhs_args() { - var self = this; + Opal.def(self, '$has_top_level_mlhs_arg?', $IterNode_has_top_level_mlhs_arg$ques$7 = function() { + var $$8, self = this; - return self.$scope().$mlhs_mapping().$keys() - }, TMP_IterNode_mlhs_args_16.$$arity = 0); - - Opal.defn(self, '$has_top_level_mlhs_arg?', TMP_IterNode_has_top_level_mlhs_arg$q_18 = function() { - var TMP_17, self = this; + return $send(self.$original_args().$children(), 'any?', [], ($$8 = function(arg){var self = $$8.$$s == null ? this : $$8.$$s; - return $send(self.$args().$children(), 'any?', [], (TMP_17 = function(arg){var self = TMP_17.$$s || this; -if (arg == null) arg = nil; - return arg.$type()['$==']("mlhs")}, TMP_17.$$s = self, TMP_17.$$arity = 1, TMP_17)) - }, TMP_IterNode_has_top_level_mlhs_arg$q_18.$$arity = 0); + + + if (arg == null) { + arg = nil; + }; + return arg.$type()['$==']("mlhs");}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + }, $IterNode_has_top_level_mlhs_arg$ques$7.$$arity = 0); - Opal.defn(self, '$has_trailing_comma_in_args?', TMP_IterNode_has_trailing_comma_in_args$q_19 = function() { - var $a, self = this, args_source = nil; + Opal.def(self, '$has_trailing_comma_in_args?', $IterNode_has_trailing_comma_in_args$ques$9 = function() { + var self = this, $ret_or_2 = nil, args_source = nil; - if ($truthy(($truthy($a = self.$args().$loc()) ? self.$args().$loc().$expression() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_2 = self.$original_args().$loc()))) { + return self.$original_args().$loc().$expression() + } else { + return $ret_or_2 + }; return nil; })())) { - args_source = self.$args().$loc().$expression().$source(); + args_source = self.$original_args().$loc().$expression().$source(); return args_source.$match(/,\s*\|/); - } else { + } else { return nil } - }, TMP_IterNode_has_trailing_comma_in_args$q_19.$$arity = 0); + }, $IterNode_has_trailing_comma_in_args$ques$9.$$arity = 0); - Opal.defn(self, '$compile_arity_check', TMP_IterNode_compile_arity_check_20 = function $$compile_arity_check() { - var $a, $b, $c, self = this, parent_scope = nil, context = nil, identity = nil; + Opal.def(self, '$arity_check_node', $IterNode_arity_check_node$10 = function $$arity_check_node() { + var self = this; - if ($truthy($rb_gt(self.$arity_checks().$size(), 0))) { - - parent_scope = self.$scope(); - while ($truthy(($truthy($b = ($truthy($c = parent_scope['$top?']()) ? $c : parent_scope['$def?']())) ? $b : parent_scope['$class_scope?']())['$!']())) { - parent_scope = parent_scope.$parent() - }; - context = (function() {if ($truthy(parent_scope['$top?']())) { - return "'
'" - } else if ($truthy(parent_scope['$def?']())) { - return "" + "'" + (parent_scope.$mid()) + "'" - } else if ($truthy(parent_scope['$class?']())) { - return "" + "''" - } else if ($truthy(parent_scope['$module?']())) { - return "" + "''" - } else { - return nil - }; return nil; })(); - identity = self.$scope().$identity(); - self.$line("" + "if (" + (identity) + ".$$is_lambda || " + (identity) + ".$$define_meth) {"); - self.$line(" var $arity = arguments.length;"); - self.$line("" + " if (" + (self.$arity_checks().$join(" || ")) + ") { Opal.block_ac($arity, " + (self.$arity()) + ", " + (context) + "); }"); - return self.$line("}"); - } else { - return nil - } - }, TMP_IterNode_compile_arity_check_20.$$arity = 0); - return (Opal.defn(self, '$contains_break?', TMP_IterNode_contains_break$q_21 = function() { + return self.$s("iter_arity_check", self.$original_args()) + }, $IterNode_arity_check_node$10.$$arity = 0); + return (Opal.def(self, '$contains_break?', $IterNode_contains_break$ques$11 = function() { var self = this, finder = nil; - finder = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Rewriters'), 'BreakFinder').$new(); + finder = $$$($$$($$($nesting, 'Opal'), 'Rewriters'), 'BreakFinder').$new(); finder.$process(self.sexp); return finder['$found_break?'](); - }, TMP_IterNode_contains_break$q_21.$$arity = 0), nil) && 'contains_break?'; - })($nesting[0], Opal.const_get_relative($nesting, 'NodeWithArgs'), $nesting) + }, $IterNode_contains_break$ques$11.$$arity = 0), nil) && 'contains_break?'; + })($nesting[0], $$($nesting, 'NodeWithArgs'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/def"] = function(Opal) { +Opal.modules["opal/nodes/def"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$handle', '$children', '$attr_accessor', '$args', '$==', '$type', '$[]', '$updated', '$mid', '$s', '$stmts', '$extract_block_arg', '$split_args', '$block_arg', '$in_scope', '$mid=', '$scope', '$-', '$defs=', '$uses_block!', '$add_arg', '$block_name=', '$process', '$inline_args_sexp', '$stmt', '$returns', '$compiler', '$add_temp', '$compile_inline_args', '$compile_post_args', '$identify!', '$identity', '$compile_block_arg', '$arity_check?', '$compile_arity_check', '$uses_zuper', '$add_local', '$line', '$unshift', '$current_indent', '$to_vars', '$catch_return', '$push', '$valid_name?', '$arity', '$parameters_code', '$parse_comments?', '$comments_code', '$enable_source_location?', '$source_location', '$wrap_with_definition', '$iter?', '$module?', '$class?', '$sclass?', '$eval?', '$top?', '$def?', '$raise', '$expr?', '$wrap', '$>', '$size', '$arity_checks', '$inspect', '$to_s', '$join', '$name', '$source_buffer', '$expression', '$loc', '$+', '$map', '$comments', '$text']); + Opal.add_stubs(['$require', '$handle', '$children', '$in_scope', '$mid', '$mid=', '$scope', '$-', '$==', '$type', '$defs=', '$identify!', '$identity', '$block_name=', '$process', '$inline_args', '$stmt', '$returns', '$compiler', '$stmts', '$compile_block_arg', '$add_temp', '$compile_arity_check', '$unshift', '$current_indent', '$to_vars', '$line', '$catch_return', '$push', '$valid_name?', '$await_encountered', '$arity', '$arity_check?', '$parameters_code', '$parse_comments?', '$comments_code', '$enable_source_location?', '$source_location', '$wrap_with_definition', '$wrap', '$expr?', '$+', '$join', '$map', '$comments', '$inspect', '$text']); self.$require("opal/nodes/node_with_args"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $DefNode(){}; - var self = $DefNode = $klass($base, $super, 'DefNode', $DefNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DefNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DefNode_extract_block_arg_1, TMP_DefNode_compile_3, TMP_DefNode_wrap_with_definition_4, TMP_DefNode_compile_arity_check_5, TMP_DefNode_source_location_6, TMP_DefNode_comments_code_8; + var $nesting = [self].concat($parent_nesting), $DefNode_compile$1, $DefNode_wrap_with_definition$3, $DefNode_comments_code$4; - def.sexp = nil; self.$handle("def"); - self.$children("mid", "args", "stmts"); - self.$attr_accessor("block_arg"); - - Opal.defn(self, '$extract_block_arg', TMP_DefNode_extract_block_arg_1 = function $$extract_block_arg() { - var $a, $b, $c, self = this, regular_args = nil, last_arg = nil; - - - $b = self.$args().$children(), $a = Opal.to_ary($b), $c = $a.length - 1, $c = ($c < 0) ? 0 : $c, (regular_args = $slice.call($a, 0, $c)), (last_arg = ($a[$c] == null ? nil : $a[$c])), $b; - if ($truthy(($truthy($a = last_arg) ? last_arg.$type()['$==']("blockarg") : $a))) { - - self.block_arg = last_arg.$children()['$[]'](0); - return (self.sexp = self.sexp.$updated(nil, [self.$mid(), $send(self, 's', ["args"].concat(Opal.to_a(regular_args))), self.$stmts()])); - } else { - return nil - }; - }, TMP_DefNode_extract_block_arg_1.$$arity = 0); + self.$children("mid", "inline_args", "stmts"); - Opal.defn(self, '$compile', TMP_DefNode_compile_3 = function $$compile() { - var TMP_2, self = this, inline_params = nil, scope_name = nil, block_name = nil, function_name = nil; + Opal.def(self, '$compile', $DefNode_compile$1 = function $$compile() { + var $$2, self = this, inline_params = nil, scope_name = nil, function_name = nil; - self.$extract_block_arg(); - self.$split_args(); inline_params = nil; scope_name = nil; - if ($truthy(self.$block_arg())) { - block_name = self.$block_arg()}; - $send(self, 'in_scope', [], (TMP_2 = function(){var self = TMP_2.$$s || this, $a, $writer = nil, stmt_code = nil; + $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil, stmt_code = nil; if (self.sexp == null) self.sexp = nil; - + $writer = [self.$mid()]; $send(self.$scope(), 'mid=', Opal.to_a($writer)); @@ -23978,33 +35200,17 @@ Opal.modules["opal/nodes/def"] = function(Opal) { $writer = [true]; $send(self.$scope(), 'defs=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];}; - if ($truthy(block_name)) { - - self.$scope()['$uses_block!'](); - self.$scope().$add_arg(block_name);}; + self.$scope()['$identify!'](); + scope_name = self.$scope().$identity(); - $writer = [($truthy($a = block_name) ? $a : "$yield")]; + $writer = ["$yield"]; $send(self.$scope(), 'block_name=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - inline_params = self.$process(self.$inline_args_sexp()); + inline_params = self.$process(self.$inline_args()); stmt_code = self.$stmt(self.$compiler().$returns(self.$stmts())); - self.$add_temp("self = this"); - self.$compile_inline_args(); - self.$compile_post_args(); - self.$scope()['$identify!'](); - scope_name = self.$scope().$identity(); self.$compile_block_arg(); - if ($truthy(self.$compiler()['$arity_check?']())) { - self.$compile_arity_check()}; - if ($truthy(self.$scope().$uses_zuper())) { - - self.$add_local("$zuper"); - self.$add_local("$zuper_i"); - self.$add_local("$zuper_ii"); - self.$line("// Prepare super implicit arguments"); - self.$line("for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) {"); - self.$line(" $zuper[$zuper_i] = arguments[$zuper_i];"); - self.$line("}");}; + self.$add_temp("self = this"); + self.$compile_arity_check(); self.$unshift("" + "\n" + (self.$current_indent()), self.$scope().$to_vars()); self.$line(stmt_code); if ($truthy(self.$scope().$catch_return())) { @@ -24012,17 +35218,19 @@ Opal.modules["opal/nodes/def"] = function(Opal) { self.$unshift("try {\n"); self.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"); return self.$push(" throw $returner; }"); - } else { + } else { return nil - };}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); + };}, $$2.$$s = self, $$2.$$arity = 0, $$2)); function_name = (function() {if ($truthy(self['$valid_name?'](self.$mid()))) { return "" + " $$" + (self.$mid()) - } else { + } else { return "" }; return nil; })(); self.$unshift(") {"); self.$unshift(inline_params); self.$unshift("" + "function" + (function_name) + "("); + if ($truthy(self.$await_encountered())) { + self.$unshift("async ")}; if ($truthy(scope_name)) { self.$unshift("" + (scope_name) + " = ")}; self.$line("}"); @@ -24034,365 +35242,353 @@ Opal.modules["opal/nodes/def"] = function(Opal) { if ($truthy(self.$compiler()['$enable_source_location?']())) { self.$push("" + ", " + (scope_name) + ".$$source_location = " + (self.$source_location()))}; return self.$wrap_with_definition(); - }, TMP_DefNode_compile_3.$$arity = 0); + }, $DefNode_compile$1.$$arity = 0); - Opal.defn(self, '$wrap_with_definition', TMP_DefNode_wrap_with_definition_4 = function $$wrap_with_definition() { - var $a, self = this; + Opal.def(self, '$wrap_with_definition', $DefNode_wrap_with_definition$3 = function $$wrap_with_definition() { + var self = this; - if ($truthy(self.$scope()['$iter?']())) { - self.$unshift("" + "Opal.def(self, '$" + (self.$mid()) + "', ") - } else if ($truthy(($truthy($a = self.$scope()['$module?']()) ? $a : self.$scope()['$class?']()))) { - self.$unshift("" + "Opal.defn(self, '$" + (self.$mid()) + "', ") - } else if ($truthy(self.$scope()['$sclass?']())) { - self.$unshift("" + "Opal.defn(self, '$" + (self.$mid()) + "', ") - } else if ($truthy(self.$compiler()['$eval?']())) { - self.$unshift("" + "Opal.def(self, '$" + (self.$mid()) + "', ") - } else if ($truthy(self.$scope()['$top?']())) { - self.$unshift("" + "Opal.defn(Opal.Object, '$" + (self.$mid()) + "', ") - } else if ($truthy(self.$scope()['$def?']())) { - self.$unshift("" + "Opal.def(self, '$" + (self.$mid()) + "', ") - } else { - self.$raise("Unsupported use of `def`; please file a bug at https://github.com/opal/opal/issues/new reporting this message.") - }; - self.$push(")"); + self.$wrap("" + "Opal.def(self, '$" + (self.$mid()) + "', ", ")"); if ($truthy(self['$expr?']())) { return self.$wrap("(", "" + ", nil) && '" + (self.$mid()) + "'") - } else { + } else { return self.$unshift("" + "\n" + (self.$current_indent())) }; - }, TMP_DefNode_wrap_with_definition_4.$$arity = 0); - - Opal.defn(self, '$compile_arity_check', TMP_DefNode_compile_arity_check_5 = function $$compile_arity_check() { - var self = this, meth = nil; + }, $DefNode_wrap_with_definition$3.$$arity = 0); + return (Opal.def(self, '$comments_code', $DefNode_comments_code$4 = function $$comments_code() { + var $$5, self = this; - if ($truthy($rb_gt(self.$arity_checks().$size(), 0))) { - - meth = self.$scope().$mid().$to_s().$inspect(); - self.$line("var $arity = arguments.length;"); - return self.$push("" + " if (" + (self.$arity_checks().$join(" || ")) + ") { Opal.ac($arity, " + (self.$arity()) + ", this, " + (meth) + "); }"); - } else { - return nil - } - }, TMP_DefNode_compile_arity_check_5.$$arity = 0); - - Opal.defn(self, '$source_location', TMP_DefNode_source_location_6 = function $$source_location() { - var self = this, file = nil, line = nil; + return $rb_plus($rb_plus("[", $send(self.$comments(), 'map', [], ($$5 = function(comment){var self = $$5.$$s == null ? this : $$5.$$s; - - file = self.sexp.$loc().$expression().$source_buffer().$name(); - line = self.sexp.$loc().$line(); - return "" + "['" + (file) + ".rb', " + (line) + "]"; - }, TMP_DefNode_source_location_6.$$arity = 0); - return (Opal.defn(self, '$comments_code', TMP_DefNode_comments_code_8 = function $$comments_code() { - var TMP_7, self = this; - - return $rb_plus($rb_plus("[", $send(self.$comments(), 'map', [], (TMP_7 = function(comment){var self = TMP_7.$$s || this; -if (comment == null) comment = nil; - return comment.$text().$inspect()}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)).$join(", ")), "]") - }, TMP_DefNode_comments_code_8.$$arity = 0), nil) && 'comments_code'; - })($nesting[0], Opal.const_get_relative($nesting, 'NodeWithArgs'), $nesting) + + + if (comment == null) { + comment = nil; + }; + return comment.$text().$inspect();}, $$5.$$s = self, $$5.$$arity = 1, $$5)).$join(", ")), "]") + }, $DefNode_comments_code$4.$$arity = 0), nil) && 'comments_code'; + })($nesting[0], $$($nesting, 'NodeWithArgs'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/defs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/defs"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$handle', '$children', '$args', '$==', '$type', '$[]', '$updated', '$recvr', '$mid', '$s', '$stmts', '$unshift', '$expr', '$push']); + Opal.add_stubs(['$require', '$handle', '$children', '$unshift', '$expr', '$recvr', '$mid', '$push', '$expr?', '$wrap']); self.$require("opal/nodes/def"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $DefsNode(){}; - var self = $DefsNode = $klass($base, $super, 'DefsNode', $DefsNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DefsNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DefsNode_extract_block_arg_1, TMP_DefsNode_wrap_with_definition_2; + var $nesting = [self].concat($parent_nesting), $DefsNode_wrap_with_definition$1; - def.sexp = nil; self.$handle("defs"); - self.$children("recvr", "mid", "args", "stmts"); - - Opal.defn(self, '$extract_block_arg', TMP_DefsNode_extract_block_arg_1 = function $$extract_block_arg() { - var $a, $b, $c, self = this, regular_args = nil, last_arg = nil; - - - $b = self.$args().$children(), $a = Opal.to_ary($b), $c = $a.length - 1, $c = ($c < 0) ? 0 : $c, (regular_args = $slice.call($a, 0, $c)), (last_arg = ($a[$c] == null ? nil : $a[$c])), $b; - if ($truthy(($truthy($a = last_arg) ? last_arg.$type()['$==']("blockarg") : $a))) { - - self.block_arg = last_arg.$children()['$[]'](0); - return (self.sexp = self.sexp.$updated(nil, [self.$recvr(), self.$mid(), $send(self, 's', ["args"].concat(Opal.to_a(regular_args))), self.$stmts()])); - } else { - return nil - }; - }, TMP_DefsNode_extract_block_arg_1.$$arity = 0); - return (Opal.defn(self, '$wrap_with_definition', TMP_DefsNode_wrap_with_definition_2 = function $$wrap_with_definition() { + self.$children("recvr", "mid", "inline_args", "stmts"); + return (Opal.def(self, '$wrap_with_definition', $DefsNode_wrap_with_definition$1 = function $$wrap_with_definition() { var self = this; self.$unshift("Opal.defs(", self.$expr(self.$recvr()), "" + ", '$" + (self.$mid()) + "', "); - return self.$push(")"); - }, TMP_DefsNode_wrap_with_definition_2.$$arity = 0), nil) && 'wrap_with_definition'; - })($nesting[0], Opal.const_get_relative($nesting, 'DefNode'), $nesting) + self.$push(")"); + if ($truthy(self['$expr?']())) { + return self.$wrap("(", "" + ", nil) && '" + (self.$mid()) + "'") + } else { + return nil + }; + }, $DefsNode_wrap_with_definition$1.$$arity = 0), nil) && 'wrap_with_definition'; + })($nesting[0], $$($nesting, 'DefNode'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/if"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/if"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$children', '$truthy', '$falsy', '$push', '$js_truthy', '$test', '$indent', '$line', '$stmt', '$==', '$type', '$needs_wrapper?', '$wrap', '$returns', '$compiler', '$true_body', '$s', '$false_body', '$expr?', '$recv?']); + Opal.add_stubs(['$require', '$handle', '$children', '$truthy', '$falsy', '$push', '$js_truthy', '$test', '$indent', '$line', '$stmt', '$==', '$type', '$needs_wrapper?', '$await_encountered', '$scope', '$wrap', '$returns', '$compiler', '$true_body', '$s', '$false_body', '$expr?', '$recv?', '$helper', '$new_temp', '$top_scope', '$excl', '$from', '$to']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $IfNode(){}; - var self = $IfNode = $klass($base, $super, 'IfNode', $IfNode); + var self = $klass($base, $super, 'IfNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IfNode_compile_3, TMP_IfNode_truthy_4, TMP_IfNode_falsy_5, TMP_IfNode_needs_wrapper$q_6; + var $nesting = [self].concat($parent_nesting), $IfNode_compile$1, $IfNode_truthy$4, $IfNode_falsy$5, $IfNode_needs_wrapper$ques$6; self.$handle("if"); self.$children("test", "true_body", "false_body"); - Opal.defn(self, '$compile', TMP_IfNode_compile_3 = function $$compile() { - var $a, TMP_1, TMP_2, self = this, truthy = nil, falsy = nil; + Opal.def(self, '$compile', $IfNode_compile$1 = function $$compile() { + var $$2, $$3, self = this, truthy = nil, falsy = nil; - $a = [self.$truthy(), self.$falsy()], (truthy = $a[0]), (falsy = $a[1]), $a; + truthy = self.$truthy(); + falsy = self.$falsy(); self.$push("if (", self.$js_truthy(self.$test()), ") {"); if ($truthy(truthy)) { - $send(self, 'indent', [], (TMP_1 = function(){var self = TMP_1.$$s || this; + $send(self, 'indent', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - return self.$line(self.$stmt(truthy))}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1))}; + return self.$line(self.$stmt(truthy))}, $$2.$$s = self, $$2.$$arity = 0, $$2))}; if ($truthy(falsy)) { if (falsy.$type()['$==']("if")) { self.$line("} else ", self.$stmt(falsy)) - } else { + } else { - $send(self, 'indent', [], (TMP_2 = function(){var self = TMP_2.$$s || this; + self.$line("} else {"); + $send(self, 'indent', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; - - self.$line("} else {"); - return self.$line(self.$stmt(falsy));}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); + return self.$line(self.$stmt(falsy))}, $$3.$$s = self, $$3.$$arity = 0, $$3)); self.$line("}"); } - } else { + } else { self.$push("}") }; if ($truthy(self['$needs_wrapper?']())) { - return self.$wrap("(function() {", "; return nil; })()") + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() {", "; return nil; })())") } else { + return self.$wrap("(function() {", "; return nil; })()") + } + } else { return nil }; - }, TMP_IfNode_compile_3.$$arity = 0); + }, $IfNode_compile$1.$$arity = 0); - Opal.defn(self, '$truthy', TMP_IfNode_truthy_4 = function $$truthy() { - var $a, self = this; + Opal.def(self, '$truthy', $IfNode_truthy$4 = function $$truthy() { + var self = this, $ret_or_1 = nil; if ($truthy(self['$needs_wrapper?']())) { - return self.$compiler().$returns(($truthy($a = self.$true_body()) ? $a : self.$s("nil"))) + return self.$compiler().$returns((function() {if ($truthy(($ret_or_1 = self.$true_body()))) { + return $ret_or_1 } else { + return self.$s("nil") + }; return nil; })()) + } else { return self.$true_body() } - }, TMP_IfNode_truthy_4.$$arity = 0); + }, $IfNode_truthy$4.$$arity = 0); - Opal.defn(self, '$falsy', TMP_IfNode_falsy_5 = function $$falsy() { - var $a, self = this; + Opal.def(self, '$falsy', $IfNode_falsy$5 = function $$falsy() { + var self = this, $ret_or_2 = nil; if ($truthy(self['$needs_wrapper?']())) { - return self.$compiler().$returns(($truthy($a = self.$false_body()) ? $a : self.$s("nil"))) + return self.$compiler().$returns((function() {if ($truthy(($ret_or_2 = self.$false_body()))) { + return $ret_or_2 } else { + return self.$s("nil") + }; return nil; })()) + } else { return self.$false_body() } - }, TMP_IfNode_falsy_5.$$arity = 0); - return (Opal.defn(self, '$needs_wrapper?', TMP_IfNode_needs_wrapper$q_6 = function() { - var $a, self = this; + }, $IfNode_falsy$5.$$arity = 0); + return (Opal.def(self, '$needs_wrapper?', $IfNode_needs_wrapper$ques$6 = function() { + var self = this, $ret_or_3 = nil; - return ($truthy($a = self['$expr?']()) ? $a : self['$recv?']()) - }, TMP_IfNode_needs_wrapper$q_6.$$arity = 0), nil) && 'needs_wrapper?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + if ($truthy(($ret_or_3 = self['$expr?']()))) { + return $ret_or_3 + } else { + return self['$recv?']() + } + }, $IfNode_needs_wrapper$ques$6.$$arity = 0), nil) && 'needs_wrapper?'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $IFlipFlop(){}; - var self = $IFlipFlop = $klass($base, $super, 'IFlipFlop', $IFlipFlop); + var self = $klass($base, $super, 'IFlipFlop'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IFlipFlop_compile_7; + var $nesting = [self].concat($parent_nesting), $IFlipFlop_excl$7, $IFlipFlop_compile$8; self.$handle("iflipflop"); - return (Opal.defn(self, '$compile', TMP_IFlipFlop_compile_7 = function $$compile() { + self.$children("from", "to"); + + Opal.def(self, '$excl', $IFlipFlop_excl$7 = function $$excl() { var self = this; - return self.$push("true") - }, TMP_IFlipFlop_compile_7.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $EFlipFlop(){}; - var self = $EFlipFlop = $klass($base, $super, 'EFlipFlop', $EFlipFlop); + return "" + }, $IFlipFlop_excl$7.$$arity = 0); + return (Opal.def(self, '$compile', $IFlipFlop_compile$8 = function $$compile() { + var self = this, fun_name = nil, ff = nil; + + + self.$helper("truthy"); + fun_name = self.$top_scope().$new_temp(); + ff = "" + (fun_name) + ".$$ff"; + self.$push("" + "(typeof " + (fun_name) + " === 'undefined' ? (" + (fun_name) + " = function(from, to){"); + self.$push("" + " if (typeof " + (ff) + " === 'undefined') " + (ff) + " = false;"); + self.$push("" + " var retval = " + (ff) + ";"); + self.$push("" + " if (!" + (ff) + ") {"); + self.$push("" + " " + (ff) + " = retval = $truthy(from());"); + self.$push(" }"); + self.$push("" + " " + (self.$excl()) + "if (" + (ff) + ") {"); + self.$push("" + " if ($truthy(to())) " + (ff) + " = false;"); + self.$push(" }"); + self.$push(" return retval;"); + self.$push("" + "}) : " + (fun_name) + ")("); + self.$push(" function() { ", self.$stmt(self.$compiler().$returns(self.$from())), " },"); + self.$push(" function() { ", self.$stmt(self.$compiler().$returns(self.$to())), " }"); + return self.$push(")"); + }, $IFlipFlop_compile$8.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'EFlipFlop'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_EFlipFlop_compile_8; + var $nesting = [self].concat($parent_nesting), $EFlipFlop_excl$9; self.$handle("eflipflop"); - return (Opal.defn(self, '$compile', TMP_EFlipFlop_compile_8 = function $$compile() { + return (Opal.def(self, '$excl', $EFlipFlop_excl$9 = function $$excl() { var self = this; - return self.$push("true") - }, TMP_EFlipFlop_compile_8.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + return "else " + }, $EFlipFlop_excl$9.$$arity = 0), nil) && 'excl'; + })($nesting[0], $$($nesting, 'IFlipFlop'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/logic"] = function(Opal) { +Opal.modules["opal/nodes/logic"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$in_while?', '$push', '$expr_or_nil', '$value', '$wrap', '$size', '$children', '$===', '$s', '$first', '$compile_while', '$iter?', '$scope', '$compile_iter', '$error', '$[]', '$while_loop', '$stmt?', '$line', '$break_val', '$nil?', '$expr', '$[]=', '$-', '$identity', '$==', '$empty_splat?', '$recv', '$type', '$rhs', '$compile_if', '$compile_ternary', '$raise', '$helper', '$with_temp', '$lhs', '$indent', '$js_truthy_optimize', '$>', '$find_parent_def', '$expr?', '$def?', '$return_in_iter?', '$return_expr_in_def?', '$scope_to_catch_return', '$catch_return=', '$return_val', '$to_s']); + Opal.add_stubs(['$require', '$handle', '$in_while?', '$push', '$iter?', '$scope', '$expr_or_nil', '$value', '$error', '$size', '$children', '$===', '$s', '$first', '$compile_while', '$compile_iter', '$[]', '$while_loop', '$stmt?', '$line', '$break_val', '$nil?', '$expr', '$[]=', '$-', '$helper', '$identity', '$==', '$empty_splat?', '$recv', '$>', '$!', '$lambda?', '$find_parent_def', '$expr?', '$def?', '$return_in_iter?', '$return_expr_in_def?', '$scope_to_catch_return', '$catch_return=', '$return_val', '$to_s']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $NextNode(){}; - var self = $NextNode = $klass($base, $super, 'NextNode', $NextNode); + var self = $klass($base, $super, 'NextNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NextNode_compile_1, TMP_NextNode_value_2; + var $nesting = [self].concat($parent_nesting), $NextNode_compile$1, $NextNode_value$2; self.$handle("next"); - Opal.defn(self, '$compile', TMP_NextNode_compile_1 = function $$compile() { + Opal.def(self, '$compile', $NextNode_compile$1 = function $$compile() { var self = this; if ($truthy(self['$in_while?']())) { return self.$push("continue;") - } else { - - self.$push(self.$expr_or_nil(self.$value())); - return self.$wrap("return ", ";"); + } else if ($truthy(self.$scope()['$iter?']())) { + return self.$push("return ", self.$expr_or_nil(self.$value()), ";") + } else { + return self.$error("Invalid next") } - }, TMP_NextNode_compile_1.$$arity = 0); - return (Opal.defn(self, '$value', TMP_NextNode_value_2 = function $$value() { + }, $NextNode_compile$1.$$arity = 0); + return (Opal.def(self, '$value', $NextNode_value$2 = function $$value() { var self = this, $case = nil; return (function() {$case = self.$children().$size(); if ((0)['$===']($case)) {return self.$s("nil")} else if ((1)['$===']($case)) {return self.$children().$first()} else {return $send(self, 's', ["array"].concat(Opal.to_a(self.$children())))}})() - }, TMP_NextNode_value_2.$$arity = 0), nil) && 'value'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + }, $NextNode_value$2.$$arity = 0), nil) && 'value'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $BreakNode(){}; - var self = $BreakNode = $klass($base, $super, 'BreakNode', $BreakNode); + var self = $klass($base, $super, 'BreakNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BreakNode_compile_3, TMP_BreakNode_compile_while_4, TMP_BreakNode_compile_iter_5, TMP_BreakNode_break_val_6; + var $nesting = [self].concat($parent_nesting), $BreakNode_compile$3, $BreakNode_compile_while$4, $BreakNode_compile_iter$5, $BreakNode_break_val$6; self.$handle("break"); self.$children("value"); - Opal.defn(self, '$compile', TMP_BreakNode_compile_3 = function $$compile() { + Opal.def(self, '$compile', $BreakNode_compile$3 = function $$compile() { var self = this; if ($truthy(self['$in_while?']())) { return self.$compile_while() } else if ($truthy(self.$scope()['$iter?']())) { return self.$compile_iter() - } else { + } else { return self.$error("void value expression: cannot use break outside of iter/while") } - }, TMP_BreakNode_compile_3.$$arity = 0); + }, $BreakNode_compile$3.$$arity = 0); - Opal.defn(self, '$compile_while', TMP_BreakNode_compile_while_4 = function $$compile_while() { + Opal.def(self, '$compile_while', $BreakNode_compile_while$4 = function $$compile_while() { var self = this; if ($truthy(self.$while_loop()['$[]']("closure"))) { return self.$push("return ", self.$expr_or_nil(self.$value())) - } else { + } else { return self.$push("break;") } - }, TMP_BreakNode_compile_while_4.$$arity = 0); + }, $BreakNode_compile_while$4.$$arity = 0); - Opal.defn(self, '$compile_iter', TMP_BreakNode_compile_iter_5 = function $$compile_iter() { + Opal.def(self, '$compile_iter', $BreakNode_compile_iter$5 = function $$compile_iter() { var self = this; if ($truthy(self['$stmt?']())) { - } else { + } else { self.$error("break must be used as a statement") }; return self.$line("Opal.brk(", self.$break_val(), ", $brk)"); - }, TMP_BreakNode_compile_iter_5.$$arity = 0); - return (Opal.defn(self, '$break_val', TMP_BreakNode_break_val_6 = function $$break_val() { + }, $BreakNode_compile_iter$5.$$arity = 0); + return (Opal.def(self, '$break_val', $BreakNode_break_val$6 = function $$break_val() { var self = this; if ($truthy(self.$value()['$nil?']())) { return self.$expr(self.$s("nil")) - } else { + } else { return self.$expr(self.$value()) } - }, TMP_BreakNode_break_val_6.$$arity = 0), nil) && 'break_val'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + }, $BreakNode_break_val$6.$$arity = 0), nil) && 'break_val'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $RedoNode(){}; - var self = $RedoNode = $klass($base, $super, 'RedoNode', $RedoNode); + var self = $klass($base, $super, 'RedoNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RedoNode_compile_7, TMP_RedoNode_compile_while_8, TMP_RedoNode_compile_iter_9; + var $nesting = [self].concat($parent_nesting), $RedoNode_compile$7, $RedoNode_compile_while$8, $RedoNode_compile_iter$9; self.$handle("redo"); - Opal.defn(self, '$compile', TMP_RedoNode_compile_7 = function $$compile() { + Opal.def(self, '$compile', $RedoNode_compile$7 = function $$compile() { var self = this; if ($truthy(self['$in_while?']())) { return self.$compile_while() } else if ($truthy(self.$scope()['$iter?']())) { return self.$compile_iter() - } else { + } else { return self.$push("REDO()") } - }, TMP_RedoNode_compile_7.$$arity = 0); + }, $RedoNode_compile$7.$$arity = 0); - Opal.defn(self, '$compile_while', TMP_RedoNode_compile_while_8 = function $$compile_while() { + Opal.def(self, '$compile_while', $RedoNode_compile_while$8 = function $$compile_while() { var self = this, $writer = nil; @@ -24400,200 +35596,108 @@ Opal.modules["opal/nodes/logic"] = function(Opal) { $writer = ["use_redo", true]; $send(self.$while_loop(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return self.$push("" + (self.$while_loop()['$[]']("redo_var")) + " = true"); - }, TMP_RedoNode_compile_while_8.$$arity = 0); - return (Opal.defn(self, '$compile_iter', TMP_RedoNode_compile_iter_9 = function $$compile_iter() { + return self.$push("" + (self.$while_loop()['$[]']("redo_var")) + " = true; continue;"); + }, $RedoNode_compile_while$8.$$arity = 0); + return (Opal.def(self, '$compile_iter', $RedoNode_compile_iter$9 = function $$compile_iter() { var self = this; - return self.$push("" + "return " + (self.$scope().$identity()) + ".apply(null, $slice.call(arguments))") - }, TMP_RedoNode_compile_iter_9.$$arity = 0), nil) && 'compile_iter'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + + self.$helper("slice"); + return self.$push("" + "return " + (self.$scope().$identity()) + ".apply(null, $slice.call(arguments))"); + }, $RedoNode_compile_iter$9.$$arity = 0), nil) && 'compile_iter'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $SplatNode(){}; - var self = $SplatNode = $klass($base, $super, 'SplatNode', $SplatNode); + var self = $klass($base, $super, 'SplatNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_SplatNode_empty_splat$q_10, TMP_SplatNode_compile_11; + var $nesting = [self].concat($parent_nesting), $SplatNode_empty_splat$ques$10, $SplatNode_compile$11; self.$handle("splat"); self.$children("value"); - Opal.defn(self, '$empty_splat?', TMP_SplatNode_empty_splat$q_10 = function() { + Opal.def(self, '$empty_splat?', $SplatNode_empty_splat$ques$10 = function() { var self = this; return self.$value()['$=='](self.$s("array")) - }, TMP_SplatNode_empty_splat$q_10.$$arity = 0); - return (Opal.defn(self, '$compile', TMP_SplatNode_compile_11 = function $$compile() { + }, $SplatNode_empty_splat$ques$10.$$arity = 0); + return (Opal.def(self, '$compile', $SplatNode_compile$11 = function $$compile() { var self = this; if ($truthy(self['$empty_splat?']())) { return self.$push("[]") - } else { + } else { return self.$push("Opal.to_a(", self.$recv(self.$value()), ")") } - }, TMP_SplatNode_compile_11.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $BinaryOp(){}; - var self = $BinaryOp = $klass($base, $super, 'BinaryOp', $BinaryOp); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BinaryOp_compile_12, TMP_BinaryOp_compile_ternary_13, TMP_BinaryOp_compile_if_14; - - - - Opal.defn(self, '$compile', TMP_BinaryOp_compile_12 = function $$compile() { - var self = this; - - if (self.$rhs().$type()['$==']("break")) { - return self.$compile_if() - } else { - return self.$compile_ternary() - } - }, TMP_BinaryOp_compile_12.$$arity = 0); - - Opal.defn(self, '$compile_ternary', TMP_BinaryOp_compile_ternary_13 = function $$compile_ternary() { - var self = this; - - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_BinaryOp_compile_ternary_13.$$arity = 0); - return (Opal.defn(self, '$compile_if', TMP_BinaryOp_compile_if_14 = function $$compile_if() { - var self = this; - - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_BinaryOp_compile_if_14.$$arity = 0), nil) && 'compile_if'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $OrNode(){}; - var self = $OrNode = $klass($base, $super, 'OrNode', $OrNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_OrNode_compile_ternary_16, TMP_OrNode_compile_if_20; - - - self.$handle("or"); - self.$children("lhs", "rhs"); - - Opal.defn(self, '$compile_ternary', TMP_OrNode_compile_ternary_16 = function $$compile_ternary() { - var TMP_15, self = this; - - - self.$helper("truthy"); - return $send(self, 'with_temp', [], (TMP_15 = function(tmp){var self = TMP_15.$$s || this; -if (tmp == null) tmp = nil; - return self.$push("" + "($truthy(" + (tmp) + " = ", self.$expr(self.$lhs()), "" + ") ? " + (tmp) + " : ", self.$expr(self.$rhs()), ")")}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)); - }, TMP_OrNode_compile_ternary_16.$$arity = 0); - return (Opal.defn(self, '$compile_if', TMP_OrNode_compile_if_20 = function $$compile_if() { - var TMP_17, self = this; - - - self.$helper("truthy"); - return $send(self, 'with_temp', [], (TMP_17 = function(tmp){var self = TMP_17.$$s || this, TMP_18, TMP_19; -if (tmp == null) tmp = nil; - - self.$push("" + "if ($truthy(" + (tmp) + " = ", self.$expr(self.$lhs()), ")) {"); - $send(self, 'indent', [], (TMP_18 = function(){var self = TMP_18.$$s || this; - - return self.$line(tmp)}, TMP_18.$$s = self, TMP_18.$$arity = 0, TMP_18)); - self.$line("} else {"); - $send(self, 'indent', [], (TMP_19 = function(){var self = TMP_19.$$s || this; - - return self.$line(self.$expr(self.$rhs()))}, TMP_19.$$s = self, TMP_19.$$arity = 0, TMP_19)); - return self.$line("}");}, TMP_17.$$s = self, TMP_17.$$arity = 1, TMP_17)); - }, TMP_OrNode_compile_if_20.$$arity = 0), nil) && 'compile_if'; - })($nesting[0], Opal.const_get_relative($nesting, 'BinaryOp'), $nesting); - (function($base, $super, $parent_nesting) { - function $AndNode(){}; - var self = $AndNode = $klass($base, $super, 'AndNode', $AndNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_AndNode_compile_ternary_22, TMP_AndNode_compile_if_25; - - - self.$handle("and"); - self.$children("lhs", "rhs"); - - Opal.defn(self, '$compile_ternary', TMP_AndNode_compile_ternary_22 = function $$compile_ternary() { - var TMP_21, self = this, truthy_opt = nil; - - - truthy_opt = nil; - return $send(self, 'with_temp', [], (TMP_21 = function(tmp){var self = TMP_21.$$s || this; -if (tmp == null) tmp = nil; - if ($truthy((truthy_opt = self.$js_truthy_optimize(self.$lhs())))) { - - self.$push("" + "((" + (tmp) + " = ", truthy_opt); - self.$push(") ? "); - self.$push(self.$expr(self.$rhs())); - return self.$push(" : ", self.$expr(self.$lhs()), ")"); - } else { - - self.$helper("truthy"); - return self.$push("" + "($truthy(" + (tmp) + " = ", self.$expr(self.$lhs()), ") ? ", self.$expr(self.$rhs()), "" + " : " + (tmp) + ")"); - }}, TMP_21.$$s = self, TMP_21.$$arity = 1, TMP_21)); - }, TMP_AndNode_compile_ternary_22.$$arity = 0); - return (Opal.defn(self, '$compile_if', TMP_AndNode_compile_if_25 = function $$compile_if() { - var $a, TMP_23, TMP_24, self = this, condition = nil; - - - self.$helper("truthy"); - condition = ($truthy($a = self.$js_truthy_optimize(self.$lhs())) ? $a : self.$expr(self.$lhs())); - self.$line("if ($truthy(", condition, ")) {"); - $send(self, 'indent', [], (TMP_23 = function(){var self = TMP_23.$$s || this; - - return self.$line(self.$expr(self.$rhs()))}, TMP_23.$$s = self, TMP_23.$$arity = 0, TMP_23)); - self.$line("} else {"); - $send(self, 'indent', [], (TMP_24 = function(){var self = TMP_24.$$s || this; - - return self.$line(self.$expr(self.$lhs()))}, TMP_24.$$s = self, TMP_24.$$arity = 0, TMP_24)); - return self.$line("}"); - }, TMP_AndNode_compile_if_25.$$arity = 0), nil) && 'compile_if'; - })($nesting[0], Opal.const_get_relative($nesting, 'BinaryOp'), $nesting); + }, $SplatNode_compile$11.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $ReturnNode(){}; - var self = $ReturnNode = $klass($base, $super, 'ReturnNode', $ReturnNode); + var self = $klass($base, $super, 'ReturnNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ReturnNode_return_val_26, TMP_ReturnNode_return_in_iter$q_27, TMP_ReturnNode_return_expr_in_def$q_28, TMP_ReturnNode_scope_to_catch_return_29, TMP_ReturnNode_compile_30; + var $nesting = [self].concat($parent_nesting), $ReturnNode_return_val$12, $ReturnNode_return_in_iter$ques$13, $ReturnNode_return_expr_in_def$ques$14, $ReturnNode_scope_to_catch_return$15, $ReturnNode_compile$16; self.$handle("return"); self.$children("value"); - Opal.defn(self, '$return_val', TMP_ReturnNode_return_val_26 = function $$return_val() { + Opal.def(self, '$return_val', $ReturnNode_return_val$12 = function $$return_val() { var self = this; if ($truthy(self.$value()['$nil?']())) { return self.$expr(self.$s("nil")) } else if ($truthy($rb_gt(self.$children().$size(), 1))) { return self.$expr($send(self, 's', ["array"].concat(Opal.to_a(self.$children())))) - } else { + } else { return self.$expr(self.$value()) } - }, TMP_ReturnNode_return_val_26.$$arity = 0); + }, $ReturnNode_return_val$12.$$arity = 0); - Opal.defn(self, '$return_in_iter?', TMP_ReturnNode_return_in_iter$q_27 = function() { - var $a, self = this, parent_def = nil; + Opal.def(self, '$return_in_iter?', $ReturnNode_return_in_iter$ques$13 = function() { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, parent_def = nil; - if ($truthy(($truthy($a = self.$scope()['$iter?']()) ? (parent_def = self.$scope().$find_parent_def()) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.$scope()['$iter?']()))) { + return self.$scope()['$lambda?']()['$!']() + } else { + return $ret_or_2 + }; return nil; })()))) { + return (parent_def = self.$scope().$find_parent_def()) + } else { + return $ret_or_1 + }; return nil; })())) { return parent_def - } else { + } else { return nil } - }, TMP_ReturnNode_return_in_iter$q_27.$$arity = 0); + }, $ReturnNode_return_in_iter$ques$13.$$arity = 0); - Opal.defn(self, '$return_expr_in_def?', TMP_ReturnNode_return_expr_in_def$q_28 = function() { - var $a, self = this; + Opal.def(self, '$return_expr_in_def?', $ReturnNode_return_expr_in_def$ques$14 = function() { + var self = this, $ret_or_3 = nil, $ret_or_4 = nil; - if ($truthy(($truthy($a = self['$expr?']()) ? self.$scope()['$def?']() : $a))) { - return self.$scope() + if ($truthy((function() {if ($truthy(($ret_or_3 = self['$expr?']()))) { + + if ($truthy(($ret_or_4 = self.$scope()['$def?']()))) { + return $ret_or_4 } else { + return self.$scope()['$lambda?']() + }; + } else { + return $ret_or_3 + }; return nil; })())) { + return self.$scope() + } else { return nil } - }, TMP_ReturnNode_return_expr_in_def$q_28.$$arity = 0); + }, $ReturnNode_return_expr_in_def$ques$14.$$arity = 0); - Opal.defn(self, '$scope_to_catch_return', TMP_ReturnNode_scope_to_catch_return_29 = function $$scope_to_catch_return() { - var $a, self = this; + Opal.def(self, '$scope_to_catch_return', $ReturnNode_scope_to_catch_return$15 = function $$scope_to_catch_return() { + var self = this, $ret_or_5 = nil; - return ($truthy($a = self['$return_in_iter?']()) ? $a : self['$return_expr_in_def?']()) - }, TMP_ReturnNode_scope_to_catch_return_29.$$arity = 0); - return (Opal.defn(self, '$compile', TMP_ReturnNode_compile_30 = function $$compile() { + if ($truthy(($ret_or_5 = self['$return_in_iter?']()))) { + return $ret_or_5 + } else { + return self['$return_expr_in_def?']() + } + }, $ReturnNode_scope_to_catch_return$15.$$arity = 0); + return (Opal.def(self, '$compile', $ReturnNode_compile$16 = function $$compile() { var self = this, def_scope = nil, $writer = nil; if ($truthy((def_scope = self.$scope_to_catch_return()))) { @@ -24605,129 +35709,136 @@ if (tmp == null) tmp = nil; return self.$push("Opal.ret(", self.$return_val(), ")"); } else if ($truthy(self['$stmt?']())) { return self.$push("return ", self.$return_val()) - } else { - return self.$raise(Opal.const_get_relative($nesting, 'SyntaxError'), "void value expression: cannot return as an expression") + } else { + return self.$error("void value expression: cannot return as an expression") } - }, TMP_ReturnNode_compile_30.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + }, $ReturnNode_compile$16.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $JSReturnNode(){}; - var self = $JSReturnNode = $klass($base, $super, 'JSReturnNode', $JSReturnNode); + var self = $klass($base, $super, 'JSReturnNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_JSReturnNode_compile_31; + var $nesting = [self].concat($parent_nesting), $JSReturnNode_compile$17; self.$handle("js_return"); self.$children("value"); - return (Opal.defn(self, '$compile', TMP_JSReturnNode_compile_31 = function $$compile() { + return (Opal.def(self, '$compile', $JSReturnNode_compile$17 = function $$compile() { var self = this; self.$push("return "); return self.$push(self.$expr(self.$value())); - }, TMP_JSReturnNode_compile_31.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + }, $JSReturnNode_compile$17.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $JSTempNode(){}; - var self = $JSTempNode = $klass($base, $super, 'JSTempNode', $JSTempNode); + var self = $klass($base, $super, 'JSTempNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_JSTempNode_compile_32; + var $nesting = [self].concat($parent_nesting), $JSTempNode_compile$18; self.$handle("js_tmp"); self.$children("value"); - return (Opal.defn(self, '$compile', TMP_JSTempNode_compile_32 = function $$compile() { + return (Opal.def(self, '$compile', $JSTempNode_compile$18 = function $$compile() { var self = this; return self.$push(self.$value().$to_s()) - }, TMP_JSTempNode_compile_32.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $BlockPassNode(){}; - var self = $BlockPassNode = $klass($base, $super, 'BlockPassNode', $BlockPassNode); + }, $JSTempNode_compile$18.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'BlockPassNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BlockPassNode_compile_33; + var $nesting = [self].concat($parent_nesting), $BlockPassNode_compile$19; self.$handle("block_pass"); self.$children("value"); - return (Opal.defn(self, '$compile', TMP_BlockPassNode_compile_33 = function $$compile() { + return (Opal.def(self, '$compile', $BlockPassNode_compile$19 = function $$compile() { var self = this; return self.$push(self.$expr(self.$s("send", self.$value(), "to_proc", self.$s("arglist")))) - }, TMP_BlockPassNode_compile_33.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + }, $BlockPassNode_compile$19.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/definitions"] = function(Opal) { +Opal.modules["opal/nodes/definitions"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $range = Opal.range, $truthy = Opal.truthy, $slice = Opal.slice, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$handle', '$children', '$each', '$line', '$expr', '$push', '$new_name', '$old_name', '$empty?', '$stmt?', '$compile_children', '$simple_children?', '$compile_inline_children', '$>', '$size', '$wrap', '$==', '$returned_children', '$+', '$returns', '$compiler', '$s', '$process', '$none?', '$include?', '$type', '$each_with_index', '$reject', '$map', '$to_proc']); + Opal.add_stubs(['$require', '$handle', '$children', '$each', '$line', '$expr', '$type', '$new_name', '$===', '$helper', '$inspect', '$[]', '$to_s', '$first', '$old_name', '$push', '$error', '$empty?', '$stmt?', '$compile_children', '$simple_children?', '$compile_inline_children', '$>', '$size', '$wrap', '$==', '$returned_children', '$await_encountered', '$parent', '$scope', '$+', '$returns', '$compiler', '$s', '$process', '$fragment', '$freeze', '$none?', '$include?', '$map', '$each_with_index', '$reject', '$to_proc']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $UndefNode(){}; - var self = $UndefNode = $klass($base, $super, 'UndefNode', $UndefNode); + var self = $klass($base, $super, 'UndefNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_UndefNode_compile_2; + var $nesting = [self].concat($parent_nesting), $UndefNode_compile$1; self.$handle("undef"); self.$children("value"); - return (Opal.defn(self, '$compile', TMP_UndefNode_compile_2 = function $$compile() { - var TMP_1, self = this; - - return $send(self.$children(), 'each', [], (TMP_1 = function(child){var self = TMP_1.$$s || this; -if (child == null) child = nil; - return self.$line("Opal.udef(self, '$' + ", self.$expr(child), ");")}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)) - }, TMP_UndefNode_compile_2.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + return (Opal.def(self, '$compile', $UndefNode_compile$1 = function $$compile() { + var $$2, self = this; + + return $send(self.$children(), 'each', [], ($$2 = function(child){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (child == null) { + child = nil; + }; + return self.$line("Opal.udef(self, '$' + ", self.$expr(child), ");");}, $$2.$$s = self, $$2.$$arity = 1, $$2)) + }, $UndefNode_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $AliasNode(){}; - var self = $AliasNode = $klass($base, $super, 'AliasNode', $AliasNode); + var self = $klass($base, $super, 'AliasNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_AliasNode_compile_3; + var $nesting = [self].concat($parent_nesting), $AliasNode_compile$3; self.$handle("alias"); self.$children("new_name", "old_name"); - return (Opal.defn(self, '$compile', TMP_AliasNode_compile_3 = function $$compile() { - var self = this; - - return self.$push("Opal.alias(self, ", self.$expr(self.$new_name()), ", ", self.$expr(self.$old_name()), ")") - }, TMP_AliasNode_compile_3.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + return (Opal.def(self, '$compile', $AliasNode_compile$3 = function $$compile() { + var self = this, $case = nil, new_name_str = nil, old_name_str = nil; + + return (function() {$case = self.$new_name().$type(); + if ("gvar"['$===']($case)) { + self.$helper("alias_gvar"); + new_name_str = self.$new_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); + old_name_str = self.$old_name().$children().$first().$to_s()['$[]']($range(1, -1, false)).$inspect(); + return self.$push("$alias_gvar(", new_name_str, ", ", old_name_str, ")");} + else if ("dsym"['$===']($case) || "sym"['$===']($case)) { + self.$helper("alias"); + return self.$push("$alias(self, ", self.$expr(self.$new_name()), ", ", self.$expr(self.$old_name()), ")");} + else {return self.$error("" + "Opal doesn't know yet how to alias with " + (self.$new_name().$type()))}})() + }, $AliasNode_compile$3.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $BeginNode(){}; - var self = $BeginNode = $klass($base, $super, 'BeginNode', $BeginNode); + var self = $klass($base, $super, 'BeginNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BeginNode_compile_4, TMP_BeginNode_returned_children_5, TMP_BeginNode_compile_children_7, TMP_BeginNode_simple_children$q_9, TMP_BeginNode_compile_inline_children_12; + var $nesting = [self].concat($parent_nesting), $BeginNode_compile$4, $BeginNode_returned_children$5, $BeginNode_compile_children$6, $BeginNode_simple_children$ques$8, $BeginNode_compile_inline_children$10; - def.level = def.returned_children = nil; + self.$$prototype.level = self.$$prototype.returned_children = nil; self.$handle("begin"); - Opal.defn(self, '$compile', TMP_BeginNode_compile_4 = function $$compile() { + Opal.def(self, '$compile', $BeginNode_compile$4 = function $$compile() { var self = this; @@ -24740,496 +35851,634 @@ if (child == null) child = nil; self.$compile_inline_children(self.$children(), self.level); if ($truthy($rb_gt(self.$children().$size(), 1))) { return self.$wrap("(", ")") - } else { + } else { return nil }; } else if (self.$children().$size()['$=='](1)) { return self.$compile_inline_children(self.$returned_children(), self.level) - } else { + } else { self.$compile_children(self.$returned_children(), self.level); - return self.$wrap("(function() {", "})()"); + if ($truthy(self.$scope().$parent().$await_encountered())) { + return self.$wrap("(await (async function() {", "})())") + } else { + return self.$wrap("(function() {", "})()") + }; }; - }, TMP_BeginNode_compile_4.$$arity = 0); + }, $BeginNode_compile$4.$$arity = 0); - Opal.defn(self, '$returned_children', TMP_BeginNode_returned_children_5 = function $$returned_children() { - var $a, $b, $c, self = this, rest = nil, last_child = nil; + Opal.def(self, '$returned_children', $BeginNode_returned_children$5 = function $$returned_children() { + var $a, $b, self = this, $ret_or_1 = nil, rest = nil, last_child = nil; - return (self.returned_children = ($truthy($a = self.returned_children) ? $a : ($b = [].concat(Opal.to_a(self.$children())), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_child = ($b[$c] == null ? nil : $b[$c])), $b, (function() {if ($truthy(last_child)) { - return $rb_plus(rest, [self.$compiler().$returns(last_child)]) + return (self.returned_children = (function() {if ($truthy(($ret_or_1 = self.returned_children))) { + return $ret_or_1 + } else { + + $a = [].concat(Opal.to_a(self.$children())), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last_child = ($a[$b] == null ? nil : $a[$b])), $a; + if ($truthy(last_child)) { + return $rb_plus(rest, [self.$compiler().$returns(last_child)]) } else { - return [self.$s("nil")] - }; return nil; })()))) - }, TMP_BeginNode_returned_children_5.$$arity = 0); + return [self.$s("nil")] + }; + }; return nil; })()) + }, $BeginNode_returned_children$5.$$arity = 0); - Opal.defn(self, '$compile_children', TMP_BeginNode_compile_children_7 = function $$compile_children(children, level) { - var TMP_6, self = this; + Opal.def(self, '$compile_children', $BeginNode_compile_children$6 = function $$compile_children(children, level) { + var $$7, self = this; - return $send(children, 'each', [], (TMP_6 = function(child){var self = TMP_6.$$s || this; -if (child == null) child = nil; - return self.$line(self.$process(child, level), ";")}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)) - }, TMP_BeginNode_compile_children_7.$$arity = 2); - Opal.const_set($nesting[0], 'COMPLEX_CHILDREN', ["while", "while_post", "until", "until_post", "js_return"]); + return $send(children, 'each', [], ($$7 = function(child){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (child == null) { + child = nil; + }; + return self.$line(self.$process(child, level), self.$fragment(";", $hash2(["loc"], {"loc": false})));}, $$7.$$s = self, $$7.$$arity = 1, $$7)) + }, $BeginNode_compile_children$6.$$arity = 2); + Opal.const_set($nesting[0], 'COMPLEX_CHILDREN', ["while", "while_post", "until", "until_post", "js_return"].$freeze()); - Opal.defn(self, '$simple_children?', TMP_BeginNode_simple_children$q_9 = function() { - var TMP_8, self = this; + Opal.def(self, '$simple_children?', $BeginNode_simple_children$ques$8 = function() { + var $$9, self = this; - return $send(self.$children(), 'none?', [], (TMP_8 = function(child){var self = TMP_8.$$s || this; -if (child == null) child = nil; - return Opal.const_get_relative($nesting, 'COMPLEX_CHILDREN')['$include?'](child.$type())}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)) - }, TMP_BeginNode_simple_children$q_9.$$arity = 0); - return (Opal.defn(self, '$compile_inline_children', TMP_BeginNode_compile_inline_children_12 = function $$compile_inline_children(children, level) { - var TMP_10, TMP_11, self = this; + return $send(self.$children(), 'none?', [], ($$9 = function(child){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (child == null) { + child = nil; + }; + return $$($nesting, 'COMPLEX_CHILDREN')['$include?'](child.$type());}, $$9.$$s = self, $$9.$$arity = 1, $$9)) + }, $BeginNode_simple_children$ques$8.$$arity = 0); + return (Opal.def(self, '$compile_inline_children', $BeginNode_compile_inline_children$10 = function $$compile_inline_children(children, level) { + var $$11, $$12, self = this, processed_children = nil; - return $send($send($send(children, 'map', [], (TMP_10 = function(child){var self = TMP_10.$$s || this; -if (child == null) child = nil; - return self.$process(child, level)}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)), 'reject', [], "empty?".$to_proc()), 'each_with_index', [], (TMP_11 = function(child, idx){var self = TMP_11.$$s || this; -if (child == null) child = nil;if (idx == null) idx = nil; + processed_children = $send(children, 'map', [], ($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (child == null) { + child = nil; + }; + return self.$process(child, level);}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + return $send($send(processed_children, 'reject', [], "empty?".$to_proc()), 'each_with_index', [], ($$12 = function(child, idx){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (child == null) { + child = nil; + }; + + if (idx == null) { + idx = nil; + }; if (idx['$=='](0)) { - } else { - self.$push(", ") + } else { + self.$push(self.$fragment(", ", $hash2(["loc"], {"loc": false}))) }; - return self.$push(child);}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11)) - }, TMP_BeginNode_compile_inline_children_12.$$arity = 2), nil) && 'compile_inline_children'; - })($nesting[0], Opal.const_get_relative($nesting, 'ScopeNode'), $nesting); - (function($base, $super, $parent_nesting) { - function $KwBeginNode(){}; - var self = $KwBeginNode = $klass($base, $super, 'KwBeginNode', $KwBeginNode); + return self.$push(child);}, $$12.$$s = self, $$12.$$arity = 2, $$12)); + }, $BeginNode_compile_inline_children$10.$$arity = 2), nil) && 'compile_inline_children'; + })($nesting[0], $$($nesting, 'ScopeNode'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'KwBeginNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$handle("kwbegin") - })($nesting[0], Opal.const_get_relative($nesting, 'BeginNode'), $nesting); + })($nesting[0], $$($nesting, 'BeginNode'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/yield"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/yield"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$require', '$find_yielding_scope', '$uses_block!', '$block_name', '$yields_single_arg?', '$push', '$expr', '$first', '$wrap', '$s', '$uses_splat?', '$scope', '$def?', '$parent', '$!', '$==', '$size', '$any?', '$type', '$handle', '$compile_call', '$children']); + Opal.add_stubs(['$require', '$find_yielding_scope', '$uses_block!', '$block_name', '$block_name=', '$-', '$yields_single_arg?', '$children', '$push', '$expr', '$first', '$wrap', '$s', '$uses_splat?', '$scope', '$def?', '$parent', '$!', '$==', '$size', '$any?', '$type', '$handle', '$compile_call']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $BaseYieldNode(){}; - var self = $BaseYieldNode = $klass($base, $super, 'BaseYieldNode', $BaseYieldNode); + var self = $klass($base, $super, 'BaseYieldNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BaseYieldNode_compile_call_1, TMP_BaseYieldNode_find_yielding_scope_2, TMP_BaseYieldNode_yields_single_arg$q_3, TMP_BaseYieldNode_uses_splat$q_5; + var $nesting = [self].concat($parent_nesting), $BaseYieldNode_compile_call$1, $BaseYieldNode_find_yielding_scope$2, $BaseYieldNode_yields_single_arg$ques$3, $BaseYieldNode_uses_splat$ques$4; - Opal.defn(self, '$compile_call', TMP_BaseYieldNode_compile_call_1 = function $$compile_call(children, level) { - var $a, self = this, yielding_scope = nil, block_name = nil; + Opal.def(self, '$compile_call', $BaseYieldNode_compile_call$1 = function $$compile_call() { + var self = this, yielding_scope = nil, $ret_or_1 = nil, $writer = nil, block_name = nil; yielding_scope = self.$find_yielding_scope(); yielding_scope['$uses_block!'](); - block_name = ($truthy($a = yielding_scope.$block_name()) ? $a : "$yield"); - if ($truthy(self['$yields_single_arg?'](children))) { + if ($truthy(($ret_or_1 = yielding_scope.$block_name()))) { + $ret_or_1 + } else { + + $writer = ["$yield"]; + $send(yielding_scope, 'block_name=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + block_name = yielding_scope.$block_name(); + if ($truthy(self['$yields_single_arg?'](self.$children()))) { - self.$push(self.$expr(children.$first())); + self.$push(self.$expr(self.$children().$first())); return self.$wrap("" + "Opal.yield1(" + (block_name) + ", ", ")"); - } else { + } else { - self.$push(self.$expr($send(self, 's', ["arglist"].concat(Opal.to_a(children))))); - if ($truthy(self['$uses_splat?'](children))) { + self.$push(self.$expr($send(self, 's', ["arglist"].concat(Opal.to_a(self.$children()))))); + if ($truthy(self['$uses_splat?'](self.$children()))) { return self.$wrap("" + "Opal.yieldX(" + (block_name) + ", ", ")") - } else { + } else { return self.$wrap("" + "Opal.yieldX(" + (block_name) + ", [", "])") }; }; - }, TMP_BaseYieldNode_compile_call_1.$$arity = 2); + }, $BaseYieldNode_compile_call$1.$$arity = 0); - Opal.defn(self, '$find_yielding_scope', TMP_BaseYieldNode_find_yielding_scope_2 = function $$find_yielding_scope() { - var $a, $b, self = this, working = nil; + Opal.def(self, '$find_yielding_scope', $BaseYieldNode_find_yielding_scope$2 = function $$find_yielding_scope() { + var $a, self = this, working = nil, $ret_or_2 = nil; working = self.$scope(); while ($truthy(working)) { - if ($truthy(($truthy($b = working.$block_name()) ? $b : working['$def?']()))) { + if ($truthy((function() {if ($truthy(($ret_or_2 = working.$block_name()))) { + return $ret_or_2 + } else { + return working['$def?']() + }; return nil; })())) { break;}; working = working.$parent(); }; return working; - }, TMP_BaseYieldNode_find_yielding_scope_2.$$arity = 0); + }, $BaseYieldNode_find_yielding_scope$2.$$arity = 0); - Opal.defn(self, '$yields_single_arg?', TMP_BaseYieldNode_yields_single_arg$q_3 = function(children) { - var $a, self = this; + Opal.def(self, '$yields_single_arg?', $BaseYieldNode_yields_single_arg$ques$3 = function(children) { + var self = this, $ret_or_3 = nil; - return ($truthy($a = self['$uses_splat?'](children)['$!']()) ? children.$size()['$=='](1) : $a) - }, TMP_BaseYieldNode_yields_single_arg$q_3.$$arity = 1); - return (Opal.defn(self, '$uses_splat?', TMP_BaseYieldNode_uses_splat$q_5 = function(children) { - var TMP_4, self = this; + if ($truthy(($ret_or_3 = self['$uses_splat?'](children)['$!']()))) { + return children.$size()['$=='](1) + } else { + return $ret_or_3 + } + }, $BaseYieldNode_yields_single_arg$ques$3.$$arity = 1); + return (Opal.def(self, '$uses_splat?', $BaseYieldNode_uses_splat$ques$4 = function(children) { + var $$5, self = this; - return $send(children, 'any?', [], (TMP_4 = function(child){var self = TMP_4.$$s || this; -if (child == null) child = nil; - return child.$type()['$==']("splat")}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)) - }, TMP_BaseYieldNode_uses_splat$q_5.$$arity = 1), nil) && 'uses_splat?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + return $send(children, 'any?', [], ($$5 = function(child){var self = $$5.$$s == null ? this : $$5.$$s; + + + + if (child == null) { + child = nil; + }; + return child.$type()['$==']("splat");}, $$5.$$s = self, $$5.$$arity = 1, $$5)) + }, $BaseYieldNode_uses_splat$ques$4.$$arity = 1), nil) && 'uses_splat?'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $YieldNode(){}; - var self = $YieldNode = $klass($base, $super, 'YieldNode', $YieldNode); + var self = $klass($base, $super, 'YieldNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_YieldNode_compile_6; + var $nesting = [self].concat($parent_nesting), $YieldNode_compile$6; - def.level = nil; self.$handle("yield"); - return (Opal.defn(self, '$compile', TMP_YieldNode_compile_6 = function $$compile() { + return (Opal.def(self, '$compile', $YieldNode_compile$6 = function $$compile() { var self = this; - return self.$compile_call(self.$children(), self.level) - }, TMP_YieldNode_compile_6.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'BaseYieldNode'), $nesting); - (function($base, $super, $parent_nesting) { - function $ReturnableYieldNode(){}; - var self = $ReturnableYieldNode = $klass($base, $super, 'ReturnableYieldNode', $ReturnableYieldNode); + return self.$compile_call() + }, $YieldNode_compile$6.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'BaseYieldNode'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ReturnableYieldNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ReturnableYieldNode_compile_7; + var $nesting = [self].concat($parent_nesting), $ReturnableYieldNode_compile$7; - def.level = nil; self.$handle("returnable_yield"); - return (Opal.defn(self, '$compile', TMP_ReturnableYieldNode_compile_7 = function $$compile() { + return (Opal.def(self, '$compile', $ReturnableYieldNode_compile$7 = function $$compile() { var self = this; - self.$compile_call(self.$children(), self.level); + self.$compile_call(); return self.$wrap("return ", ";"); - }, TMP_ReturnableYieldNode_compile_7.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'BaseYieldNode'), $nesting); + }, $ReturnableYieldNode_compile$7.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'BaseYieldNode'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/rescue"] = function(Opal) { +Opal.modules["opal/nodes/rescue"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$in_ensure', '$line', '$stmt', '$body_sexp', '$indent', '$has_rescue_else?', '$unshift', '$rescue_else_code', '$process', '$compiler', '$ensr_sexp', '$wrap_in_closure?', '$wrap', '$returns', '$begn', '$ensr', '$s', '$recv?', '$expr?', '$rescue_else_sexp', '$scope', '$stmt?', '$detect', '$[]', '$!=', '$type', '$rescue_else_sexp=', '$-', '$handle_rescue_else_manually?', '$body_code', '$each_with_index', '$==', '$nil?', '$body', '$!', '$in_ensure?', '$expr', '$klasses', '$lvar', '$rescue_body', '$klasses_sexp']); + Opal.add_stubs(['$require', '$handle', '$children', '$push', '$in_ensure', '$line', '$stmt', '$body_sexp', '$indent', '$has_rescue_else?', '$unshift', '$rescue_else_code', '$process', '$compiler', '$ensr_sexp', '$wrap_in_closure?', '$await_encountered', '$scope', '$wrap', '$returns', '$begn', '$ensr', '$s', '$recv?', '$expr?', '$rescue_else_sexp', '$stmt?', '$detect', '$[]', '$!=', '$type', '$rescue_else_sexp=', '$-', '$handle_rescue_else_manually?', '$in_rescue', '$body_code', '$each_with_index', '$==', '$retry_id', '$nil?', '$body', '$!', '$in_ensure?', '$gen_retry_id', '$attr_reader', '$expr', '$klasses', '$lvar', '$updated', '$in_resbody', '$rescue_body', '$klasses_sexp', '$in_resbody?', '$error', '$current_rescue']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $EnsureNode(){}; - var self = $EnsureNode = $klass($base, $super, 'EnsureNode', $EnsureNode); + var self = $klass($base, $super, 'EnsureNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_EnsureNode_compile_5, TMP_EnsureNode_body_sexp_6, TMP_EnsureNode_ensr_sexp_7, TMP_EnsureNode_wrap_in_closure$q_8, TMP_EnsureNode_rescue_else_code_9; + var $nesting = [self].concat($parent_nesting), $EnsureNode_compile$1, $EnsureNode_body_sexp$6, $EnsureNode_ensr_sexp$7, $EnsureNode_wrap_in_closure$ques$8, $EnsureNode_rescue_else_code$9; self.$handle("ensure"); self.$children("begn", "ensr"); - Opal.defn(self, '$compile', TMP_EnsureNode_compile_5 = function $$compile() { - var TMP_1, TMP_2, self = this; + Opal.def(self, '$compile', $EnsureNode_compile$1 = function $$compile() { + var $$2, $$3, self = this; self.$push("try {"); - $send(self, 'in_ensure', [], (TMP_1 = function(){var self = TMP_1.$$s || this; + $send(self, 'in_ensure', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - return self.$line(self.$stmt(self.$body_sexp()))}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); + return self.$line(self.$stmt(self.$body_sexp()))}, $$2.$$s = self, $$2.$$arity = 0, $$2)); self.$line("} finally {"); - $send(self, 'indent', [], (TMP_2 = function(){var self = TMP_2.$$s || this, TMP_3; + $send(self, 'indent', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $$4; if (self.level == null) self.level = nil; - if ($truthy(self['$has_rescue_else?']())) { + if ($truthy(self['$has_rescue_else?']())) { self.$unshift("var $no_errors = true; "); self.$line("var $rescue_else_result;"); self.$line("if ($no_errors) { "); - $send(self, 'indent', [], (TMP_3 = function(){var self = TMP_3.$$s || this, TMP_4; + $send(self, 'indent', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s, $$5; - + self.$line("$rescue_else_result = (function() {"); - $send(self, 'indent', [], (TMP_4 = function(){var self = TMP_4.$$s || this; + $send(self, 'indent', [], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; - return self.$line(self.$stmt(self.$rescue_else_code()))}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)); - return self.$line("})();");}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)); + return self.$line(self.$stmt(self.$rescue_else_code()))}, $$5.$$s = self, $$5.$$arity = 0, $$5)); + return self.$line("})();");}, $$4.$$s = self, $$4.$$arity = 0, $$4)); self.$line("}"); self.$line(self.$compiler().$process(self.$ensr_sexp(), self.level)); return self.$line("if ($no_errors) { return $rescue_else_result; }"); - } else { + } else { return self.$line(self.$compiler().$process(self.$ensr_sexp(), self.level)) - }}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); + }}, $$3.$$s = self, $$3.$$arity = 0, $$3)); self.$line("}"); if ($truthy(self['$wrap_in_closure?']())) { - return self.$wrap("(function() { ", "; })()") + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() { ", "; })())") } else { + return self.$wrap("(function() { ", "; })()") + } + } else { return nil }; - }, TMP_EnsureNode_compile_5.$$arity = 0); + }, $EnsureNode_compile$1.$$arity = 0); - Opal.defn(self, '$body_sexp', TMP_EnsureNode_body_sexp_6 = function $$body_sexp() { + Opal.def(self, '$body_sexp', $EnsureNode_body_sexp$6 = function $$body_sexp() { var self = this; if ($truthy(self['$wrap_in_closure?']())) { return self.$compiler().$returns(self.$begn()) - } else { + } else { return self.$begn() } - }, TMP_EnsureNode_body_sexp_6.$$arity = 0); + }, $EnsureNode_body_sexp$6.$$arity = 0); - Opal.defn(self, '$ensr_sexp', TMP_EnsureNode_ensr_sexp_7 = function $$ensr_sexp() { - var $a, self = this; + Opal.def(self, '$ensr_sexp', $EnsureNode_ensr_sexp$7 = function $$ensr_sexp() { + var self = this, $ret_or_1 = nil; - return ($truthy($a = self.$ensr()) ? $a : self.$s("nil")) - }, TMP_EnsureNode_ensr_sexp_7.$$arity = 0); + if ($truthy(($ret_or_1 = self.$ensr()))) { + return $ret_or_1 + } else { + return self.$s("nil") + } + }, $EnsureNode_ensr_sexp$7.$$arity = 0); - Opal.defn(self, '$wrap_in_closure?', TMP_EnsureNode_wrap_in_closure$q_8 = function() { - var $a, $b, self = this; + Opal.def(self, '$wrap_in_closure?', $EnsureNode_wrap_in_closure$ques$8 = function() { + var self = this, $ret_or_2 = nil, $ret_or_3 = nil; - return ($truthy($a = ($truthy($b = self['$recv?']()) ? $b : self['$expr?']())) ? $a : self['$has_rescue_else?']()) - }, TMP_EnsureNode_wrap_in_closure$q_8.$$arity = 0); - return (Opal.defn(self, '$rescue_else_code', TMP_EnsureNode_rescue_else_code_9 = function $$rescue_else_code() { + if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self['$recv?']()))) { + return $ret_or_3 + } else { + return self['$expr?']() + }; return nil; })()))) { + return $ret_or_2 + } else { + return self['$has_rescue_else?']() + } + }, $EnsureNode_wrap_in_closure$ques$8.$$arity = 0); + return (Opal.def(self, '$rescue_else_code', $EnsureNode_rescue_else_code$9 = function $$rescue_else_code() { var self = this, rescue_else_code = nil; rescue_else_code = self.$scope().$rescue_else_sexp(); if ($truthy(self['$stmt?']())) { - } else { + } else { rescue_else_code = self.$compiler().$returns(rescue_else_code) }; return rescue_else_code; - }, TMP_EnsureNode_rescue_else_code_9.$$arity = 0), nil) && 'rescue_else_code'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + }, $EnsureNode_rescue_else_code$9.$$arity = 0), nil) && 'rescue_else_code'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $RescueNode(){}; - var self = $RescueNode = $klass($base, $super, 'RescueNode', $RescueNode); + var self = $klass($base, $super, 'RescueNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RescueNode_compile_16, TMP_RescueNode_body_code_17, TMP_RescueNode_rescue_else_code_18, TMP_RescueNode_handle_rescue_else_manually$q_19; + var $nesting = [self].concat($parent_nesting), $RescueNode_compile$10, $RescueNode_body_code$18, $RescueNode_rescue_else_code$19, $RescueNode_handle_rescue_else_manually$ques$20, $RescueNode_gen_retry_id$21; + self.$$prototype.retry_id = nil; self.$handle("rescue"); self.$children("body"); - Opal.defn(self, '$compile', TMP_RescueNode_compile_16 = function $$compile() { - var TMP_10, TMP_11, TMP_12, TMP_14, $a, self = this, $writer = nil, has_rescue_handlers = nil; + Opal.def(self, '$compile', $RescueNode_compile$10 = function $$compile() { + var $$11, $$12, self = this, $writer = nil, _has_rescue_handlers = nil, $ret_or_6 = nil; - $writer = [$send(self.$children()['$[]']($range(1, -1, false)), 'detect', [], (TMP_10 = function(sexp){var self = TMP_10.$$s || this, $a; -if (sexp == null) sexp = nil; - return ($truthy($a = sexp) ? sexp.$type()['$!=']("resbody") : $a)}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10))]; + $writer = [$send(self.$children()['$[]']($range(1, -1, false)), 'detect', [], ($$11 = function(sexp){var self = $$11.$$s == null ? this : $$11.$$s, $ret_or_4 = nil; + + + + if (sexp == null) { + sexp = nil; + }; + if ($truthy(($ret_or_4 = sexp))) { + return sexp.$type()['$!=']("resbody") + } else { + return $ret_or_4 + };}, $$11.$$s = self, $$11.$$arity = 1, $$11))]; $send(self.$scope(), 'rescue_else_sexp=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - has_rescue_handlers = false; + _has_rescue_handlers = false; if ($truthy(self['$handle_rescue_else_manually?']())) { self.$line("var $no_errors = true;")}; - self.$push("try {"); - $send(self, 'indent', [], (TMP_11 = function(){var self = TMP_11.$$s || this; + $send(self, 'in_rescue', [self], ($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s, $$13, $$14, $$16; - return self.$line(self.$stmt(self.$body_code()))}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11)); - self.$line("} catch ($err) {"); - $send(self, 'indent', [], (TMP_12 = function(){var self = TMP_12.$$s || this, TMP_13; + + self.$push("try {"); + $send(self, 'indent', [], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; - - if ($truthy(self['$has_rescue_else?']())) { - self.$line("$no_errors = false;")}; - $send(self.$children()['$[]']($range(1, -1, false)), 'each_with_index', [], (TMP_13 = function(child, idx){var self = TMP_13.$$s || this, $a; - if (self.level == null) self.level = nil; -if (child == null) child = nil;if (idx == null) idx = nil; - if ($truthy(($truthy($a = child) ? child.$type()['$==']("resbody") : $a))) { + return self.$line(self.$stmt(self.$body_code()))}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + self.$line("} catch ($err) {"); + $send(self, 'indent', [], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s, $$15; + + + if ($truthy(self['$has_rescue_else?']())) { + self.$line("$no_errors = false;")}; + $send(self.$children()['$[]']($range(1, -1, false)), 'each_with_index', [], ($$15 = function(child, idx){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_5 = nil; + if (self.level == null) self.level = nil; + + + + if (child == null) { + child = nil; + }; - has_rescue_handlers = true; + if (idx == null) { + idx = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_5 = child))) { + return child.$type()['$==']("resbody") + } else { + return $ret_or_5 + }; return nil; })())) { + } else { + return nil; + }; + _has_rescue_handlers = true; if (idx['$=='](0)) { - } else { + } else { self.$push(" else ") }; - return self.$line(self.$process(child, self.level)); - } else { - return nil - }}, TMP_13.$$s = self, TMP_13.$$arity = 2, TMP_13)); - return self.$push(" else { throw $err; }");}, TMP_12.$$s = self, TMP_12.$$arity = 0, TMP_12)); - self.$line("}"); - if ($truthy(self['$handle_rescue_else_manually?']())) { - - self.$push("finally {"); - $send(self, 'indent', [], (TMP_14 = function(){var self = TMP_14.$$s || this, TMP_15; - - - self.$line("if ($no_errors) { "); - $send(self, 'indent', [], (TMP_15 = function(){var self = TMP_15.$$s || this; + return self.$line(self.$process(child, self.level));}, $$15.$$s = self, $$15.$$arity = 2, $$15)); + return self.$push(" else { throw $err; }");}, $$14.$$s = self, $$14.$$arity = 0, $$14)); + self.$line("}"); + if ($truthy(self['$handle_rescue_else_manually?']())) { + + self.$push("finally {"); + $send(self, 'indent', [], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s, $$17; - return self.$line(self.$stmt(self.$rescue_else_code()))}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)); - return self.$line("}");}, TMP_14.$$s = self, TMP_14.$$arity = 0, TMP_14)); - self.$push("}");}; - if ($truthy(($truthy($a = self['$expr?']()) ? $a : self['$recv?']()))) { - return self.$wrap("(function() { ", "})()") + + self.$line("if ($no_errors) { "); + $send(self, 'indent', [], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; + + return self.$line(self.$stmt(self.$rescue_else_code()))}, $$17.$$s = self, $$17.$$arity = 0, $$17)); + return self.$line("}");}, $$16.$$s = self, $$16.$$arity = 0, $$16)); + self.$push("}");}; + if ($truthy(self.$retry_id())) { + return self.$wrap("" + (self.$retry_id()) + ": do { ", " break; } while(1)") + } else { + return nil + };}, $$12.$$s = self, $$12.$$arity = 0, $$12)); + if ($truthy((function() {if ($truthy(($ret_or_6 = self['$expr?']()))) { + return $ret_or_6 + } else { + return self['$recv?']() + }; return nil; })())) { + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() { ", "})())") } else { + return self.$wrap("(function() { ", "})()") + } + } else { return nil }; - }, TMP_RescueNode_compile_16.$$arity = 0); + }, $RescueNode_compile$10.$$arity = 0); - Opal.defn(self, '$body_code', TMP_RescueNode_body_code_17 = function $$body_code() { - var $a, self = this, body_code = nil; + Opal.def(self, '$body_code', $RescueNode_body_code$18 = function $$body_code() { + var self = this, body_code = nil, $ret_or_7 = nil; - body_code = (function() {if ($truthy(($truthy($a = self.$body()['$nil?']()) ? $a : self.$body().$type()['$==']("resbody")))) { + body_code = (function() {if ($truthy((function() {if ($truthy(($ret_or_7 = self.$body()['$nil?']()))) { + return $ret_or_7 + } else { + return self.$body().$type()['$==']("resbody") + }; return nil; })())) { return self.$s("nil") - } else { + } else { return self.$body() }; return nil; })(); if ($truthy(self['$stmt?']())) { - } else { + } else { body_code = self.$compiler().$returns(body_code) }; return body_code; - }, TMP_RescueNode_body_code_17.$$arity = 0); + }, $RescueNode_body_code$18.$$arity = 0); - Opal.defn(self, '$rescue_else_code', TMP_RescueNode_rescue_else_code_18 = function $$rescue_else_code() { + Opal.def(self, '$rescue_else_code', $RescueNode_rescue_else_code$19 = function $$rescue_else_code() { var self = this, rescue_else_code = nil; rescue_else_code = self.$scope().$rescue_else_sexp(); if ($truthy(self['$stmt?']())) { - } else { + } else { rescue_else_code = self.$compiler().$returns(rescue_else_code) }; return rescue_else_code; - }, TMP_RescueNode_rescue_else_code_18.$$arity = 0); - return (Opal.defn(self, '$handle_rescue_else_manually?', TMP_RescueNode_handle_rescue_else_manually$q_19 = function() { - var $a, self = this; + }, $RescueNode_rescue_else_code$19.$$arity = 0); + + Opal.def(self, '$handle_rescue_else_manually?', $RescueNode_handle_rescue_else_manually$ques$20 = function() { + var self = this, $ret_or_8 = nil; + + if ($truthy(($ret_or_8 = self['$in_ensure?']()['$!']()))) { + return self['$has_rescue_else?']() + } else { + return $ret_or_8 + } + }, $RescueNode_handle_rescue_else_manually$ques$20.$$arity = 0); + + Opal.def(self, '$gen_retry_id', $RescueNode_gen_retry_id$21 = function $$gen_retry_id() { + var self = this, $ret_or_9 = nil; - return ($truthy($a = self.$scope()['$in_ensure?']()['$!']()) ? self.$scope()['$has_rescue_else?']() : $a) - }, TMP_RescueNode_handle_rescue_else_manually$q_19.$$arity = 0), nil) && 'handle_rescue_else_manually?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + return (self.retry_id = (function() {if ($truthy(($ret_or_9 = self.retry_id))) { + return $ret_or_9 + } else { + return self.$scope().$gen_retry_id() + }; return nil; })()) + }, $RescueNode_gen_retry_id$21.$$arity = 0); + return self.$attr_reader("retry_id"); + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $ResBodyNode(){}; - var self = $ResBodyNode = $klass($base, $super, 'ResBodyNode', $ResBodyNode); + var self = $klass($base, $super, 'ResBodyNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ResBodyNode_compile_22, TMP_ResBodyNode_klasses_23, TMP_ResBodyNode_rescue_body_24; + var $nesting = [self].concat($parent_nesting), $ResBodyNode_compile$22, $ResBodyNode_klasses$26, $ResBodyNode_rescue_body$27; self.$handle("resbody"); self.$children("klasses_sexp", "lvar", "body"); - Opal.defn(self, '$compile', TMP_ResBodyNode_compile_22 = function $$compile() { - var TMP_20, self = this; + Opal.def(self, '$compile', $ResBodyNode_compile$22 = function $$compile() { + var $$23, self = this; self.$push("if (Opal.rescue($err, ", self.$expr(self.$klasses()), ")) {"); - $send(self, 'indent', [], (TMP_20 = function(){var self = TMP_20.$$s || this, TMP_21; + $send(self, 'indent', [], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s, $$24; - + if ($truthy(self.$lvar())) { - self.$push(self.$expr(self.$lvar()), "$err;")}; + self.$push(self.$expr(self.$lvar().$updated(nil, [].concat(Opal.to_a(self.$lvar().$children())).concat([self.$s("js_tmp", "$err")]))))}; self.$line("try {"); - $send(self, 'indent', [], (TMP_21 = function(){var self = TMP_21.$$s || this; + $send(self, 'indent', [], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s, $$25; - return self.$line(self.$stmt(self.$rescue_body()))}, TMP_21.$$s = self, TMP_21.$$arity = 0, TMP_21)); - return self.$line("} finally { Opal.pop_exception() }");}, TMP_20.$$s = self, TMP_20.$$arity = 0, TMP_20)); + return $send(self, 'in_resbody', [], ($$25 = function(){var self = $$25.$$s == null ? this : $$25.$$s; + + return self.$line(self.$stmt(self.$rescue_body()))}, $$25.$$s = self, $$25.$$arity = 0, $$25))}, $$24.$$s = self, $$24.$$arity = 0, $$24)); + return self.$line("} finally { Opal.pop_exception(); }");}, $$23.$$s = self, $$23.$$arity = 0, $$23)); return self.$line("}"); - }, TMP_ResBodyNode_compile_22.$$arity = 0); + }, $ResBodyNode_compile$22.$$arity = 0); - Opal.defn(self, '$klasses', TMP_ResBodyNode_klasses_23 = function $$klasses() { - var $a, self = this; + Opal.def(self, '$klasses', $ResBodyNode_klasses$26 = function $$klasses() { + var self = this, $ret_or_10 = nil; - return ($truthy($a = self.$klasses_sexp()) ? $a : self.$s("array", self.$s("const", nil, "StandardError"))) - }, TMP_ResBodyNode_klasses_23.$$arity = 0); - return (Opal.defn(self, '$rescue_body', TMP_ResBodyNode_rescue_body_24 = function $$rescue_body() { - var $a, self = this, body_code = nil; + if ($truthy(($ret_or_10 = self.$klasses_sexp()))) { + return $ret_or_10 + } else { + return self.$s("array", self.$s("const", nil, "StandardError")) + } + }, $ResBodyNode_klasses$26.$$arity = 0); + return (Opal.def(self, '$rescue_body', $ResBodyNode_rescue_body$27 = function $$rescue_body() { + var self = this, body_code = nil, $ret_or_11 = nil; - body_code = ($truthy($a = self.$body()) ? $a : self.$s("nil")); + body_code = (function() {if ($truthy(($ret_or_11 = self.$body()))) { + return $ret_or_11 + } else { + return self.$s("nil") + }; return nil; })(); if ($truthy(self['$stmt?']())) { - } else { + } else { body_code = self.$compiler().$returns(body_code) }; return body_code; - }, TMP_ResBodyNode_rescue_body_24.$$arity = 0), nil) && 'rescue_body'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $RetryNode(){}; - var self = $RetryNode = $klass($base, $super, 'RetryNode', $RetryNode); + }, $ResBodyNode_rescue_body$27.$$arity = 0), nil) && 'rescue_body'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RetryNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RetryNode_compile_25; + var $nesting = [self].concat($parent_nesting), $RetryNode_compile$28; self.$handle("retry"); - return (Opal.defn(self, '$compile', TMP_RetryNode_compile_25 = function $$compile() { + return (Opal.def(self, '$compile', $RetryNode_compile$28 = function $$compile() { var self = this; - return self.$push(self.$stmt(self.$s("send", nil, "retry"))) - }, TMP_RetryNode_compile_25.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + + if ($truthy(self['$in_resbody?']())) { + } else { + self.$error("Invalid retry") + }; + return self.$push("" + "continue " + (self.$scope().$current_rescue().$gen_retry_id())); + }, $RetryNode_compile$28.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/case"] = function(Opal) { +Opal.modules["opal/nodes/case"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; - Opal.add_stubs(['$require', '$handle', '$children', '$in_case', '$compiler', '$compile_code', '$needs_closure?', '$wrap', '$condition', '$[]=', '$case_stmt', '$-', '$add_local', '$push', '$expr', '$each_with_index', '$case_parts', '$line', '$type', '$===', '$returns', '$==', '$stmt', '$!', '$stmt?', '$[]', '$when_checks', '$js_truthy', '$s', '$process', '$body_code', '$last']); + Opal.add_stubs(['$require', '$handle', '$children', '$in_case', '$compiler', '$compile_code', '$needs_closure?', '$await_encountered', '$scope', '$wrap', '$condition', '$[]=', '$case_stmt', '$-', '$add_local', '$push', '$expr', '$each_with_index', '$case_parts', '$line', '$type', '$===', '$returns', '$==', '$stmt', '$!', '$stmt?', '$[]', '$when_checks', '$js_truthy', '$s', '$process', '$body_code', '$last']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $CaseNode(){}; - var self = $CaseNode = $klass($base, $super, 'CaseNode', $CaseNode); + var self = $klass($base, $super, 'CaseNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_CaseNode_compile_2, TMP_CaseNode_compile_code_4, TMP_CaseNode_needs_closure$q_5, TMP_CaseNode_case_parts_6, TMP_CaseNode_case_stmt_7; + var $nesting = [self].concat($parent_nesting), $CaseNode_compile$1, $CaseNode_compile_code$3, $CaseNode_needs_closure$ques$5, $CaseNode_case_parts$6, $CaseNode_case_stmt$7; self.$handle("case"); self.$children("condition"); - Opal.defn(self, '$compile', TMP_CaseNode_compile_2 = function $$compile() { - var TMP_1, self = this; + Opal.def(self, '$compile', $CaseNode_compile$1 = function $$compile() { + var $$2, self = this; - return $send(self.$compiler(), 'in_case', [], (TMP_1 = function(){var self = TMP_1.$$s || this; + return $send(self.$compiler(), 'in_case', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - + self.$compile_code(); if ($truthy(self['$needs_closure?']())) { - return self.$wrap("(function() {", "})()") + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() {", "})())") } else { + return self.$wrap("(function() {", "})()") + } + } else { return nil - };}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)) - }, TMP_CaseNode_compile_2.$$arity = 0); + };}, $$2.$$s = self, $$2.$$arity = 0, $$2)) + }, $CaseNode_compile$1.$$arity = 0); - Opal.defn(self, '$compile_code', TMP_CaseNode_compile_code_4 = function $$compile_code() { - var TMP_3, $a, self = this, handled_else = nil, $writer = nil; + Opal.def(self, '$compile_code', $CaseNode_compile_code$3 = function $$compile_code() { + var $$4, self = this, handled_else = nil, $writer = nil, $ret_or_1 = nil; handled_else = false; @@ -25241,75 +36490,94 @@ Opal.modules["opal/nodes/case"] = function(Opal) { $writer[$rb_minus($writer["length"], 1)];; self.$add_local("$case"); self.$push("$case = ", self.$expr(self.$condition()), ";");}; - $send(self.$case_parts(), 'each_with_index', [], (TMP_3 = function(wen, idx){var self = TMP_3.$$s || this, $case = nil; -if (wen == null) wen = nil;if (idx == null) idx = nil; - if ($truthy(wen)) { - - self.$line(); - return (function() {$case = wen.$type(); - if ("when"['$===']($case)) { - if ($truthy(self['$needs_closure?']())) { - wen = self.$compiler().$returns(wen)}; - if (idx['$=='](0)) { - } else { - self.$push("else ") - }; - return self.$push(self.$stmt(wen));} - else { - handled_else = true; - if ($truthy(self['$needs_closure?']())) { - wen = self.$compiler().$returns(wen)}; - return self.$push("else {", self.$stmt(wen), "}");}})(); - } else { - return nil - }}, TMP_3.$$s = self, TMP_3.$$arity = 2, TMP_3)); - if ($truthy(($truthy($a = self['$needs_closure?']()) ? handled_else['$!']() : $a))) { + $send(self.$case_parts(), 'each_with_index', [], ($$4 = function(wen, idx){var self = $$4.$$s == null ? this : $$4.$$s, $case = nil; + + + + if (wen == null) { + wen = nil; + }; + if (idx == null) { + idx = nil; + }; + if ($truthy(wen)) { + } else { + return nil; + }; self.$line(); - return self.$push("else { return nil }"); + return (function() {$case = wen.$type(); + if ("when"['$===']($case)) { + if ($truthy(self['$needs_closure?']())) { + wen = self.$compiler().$returns(wen)}; + if (idx['$=='](0)) { } else { + self.$push("else ") + }; + return self.$push(self.$stmt(wen));} + else { + handled_else = true; + if ($truthy(self['$needs_closure?']())) { + wen = self.$compiler().$returns(wen)}; + return self.$push("else {", self.$stmt(wen), "}");}})();}, $$4.$$s = self, $$4.$$arity = 2, $$4)); + if ($truthy((function() {if ($truthy(($ret_or_1 = self['$needs_closure?']()))) { + return handled_else['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { + + self.$line(); + return self.$push("else { return nil }"); + } else { return nil }; - }, TMP_CaseNode_compile_code_4.$$arity = 0); + }, $CaseNode_compile_code$3.$$arity = 0); - Opal.defn(self, '$needs_closure?', TMP_CaseNode_needs_closure$q_5 = function() { + Opal.def(self, '$needs_closure?', $CaseNode_needs_closure$ques$5 = function() { var self = this; return self['$stmt?']()['$!']() - }, TMP_CaseNode_needs_closure$q_5.$$arity = 0); + }, $CaseNode_needs_closure$ques$5.$$arity = 0); - Opal.defn(self, '$case_parts', TMP_CaseNode_case_parts_6 = function $$case_parts() { + Opal.def(self, '$case_parts', $CaseNode_case_parts$6 = function $$case_parts() { var self = this; return self.$children()['$[]']($range(1, -1, false)) - }, TMP_CaseNode_case_parts_6.$$arity = 0); - return (Opal.defn(self, '$case_stmt', TMP_CaseNode_case_stmt_7 = function $$case_stmt() { + }, $CaseNode_case_parts$6.$$arity = 0); + return (Opal.def(self, '$case_stmt', $CaseNode_case_stmt$7 = function $$case_stmt() { var self = this; return self.$compiler().$case_stmt() - }, TMP_CaseNode_case_stmt_7.$$arity = 0), nil) && 'case_stmt'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $WhenNode(){}; - var self = $WhenNode = $klass($base, $super, 'WhenNode', $WhenNode); + }, $CaseNode_case_stmt$7.$$arity = 0), nil) && 'case_stmt'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'WhenNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_WhenNode_compile_9, TMP_WhenNode_when_checks_10, TMP_WhenNode_case_stmt_11, TMP_WhenNode_body_code_12; + var $nesting = [self].concat($parent_nesting), $WhenNode_compile$8, $WhenNode_when_checks$10, $WhenNode_case_stmt$11, $WhenNode_body_code$12; - def.level = nil; + self.$$prototype.level = nil; self.$handle("when"); self.$children("whens", "body"); - Opal.defn(self, '$compile', TMP_WhenNode_compile_9 = function $$compile() { - var TMP_8, self = this; + Opal.def(self, '$compile', $WhenNode_compile$8 = function $$compile() { + var $$9, self = this; self.$push("if ("); - $send(self.$when_checks(), 'each_with_index', [], (TMP_8 = function(check, idx){var self = TMP_8.$$s || this, call = nil; -if (check == null) check = nil;if (idx == null) idx = nil; - + $send(self.$when_checks(), 'each_with_index', [], ($$9 = function(check, idx){var self = $$9.$$s == null ? this : $$9.$$s, call = nil; + + + + if (check == null) { + check = nil; + }; + + if (idx == null) { + idx = nil; + }; if (idx['$=='](0)) { - } else { + } else { self.$push(" || ") }; if (check.$type()['$==']("splat")) { @@ -25317,7 +36585,7 @@ if (check == null) check = nil;if (idx == null) idx = nil; self.$push("(function($splt) { for (var i = 0, ii = $splt.length; i < ii; i++) {"); if ($truthy(self.$case_stmt()['$[]']("cond"))) { self.$push("if ($splt[i]['$===']($case)) { return true; }") - } else { + } else { self.$push("if (", self.$js_truthy(check), ")) { return true; }") }; return self.$push("} return false; })(", self.$expr(check.$children()['$[]'](0)), ")"); @@ -25325,181 +36593,181 @@ if (check == null) check = nil;if (idx == null) idx = nil; call = self.$s("send", check, "===", self.$s("arglist", self.$s("js_tmp", "$case"))); return self.$push(self.$expr(call)); - } else { + } else { return self.$push(self.$js_truthy(check)) - };}, TMP_8.$$s = self, TMP_8.$$arity = 2, TMP_8)); + };}, $$9.$$s = self, $$9.$$arity = 2, $$9)); return self.$push(") {", self.$process(self.$body_code(), self.level), "}"); - }, TMP_WhenNode_compile_9.$$arity = 0); + }, $WhenNode_compile$8.$$arity = 0); - Opal.defn(self, '$when_checks', TMP_WhenNode_when_checks_10 = function $$when_checks() { + Opal.def(self, '$when_checks', $WhenNode_when_checks$10 = function $$when_checks() { var self = this; return self.$children()['$[]']($range(0, -2, false)) - }, TMP_WhenNode_when_checks_10.$$arity = 0); + }, $WhenNode_when_checks$10.$$arity = 0); - Opal.defn(self, '$case_stmt', TMP_WhenNode_case_stmt_11 = function $$case_stmt() { + Opal.def(self, '$case_stmt', $WhenNode_case_stmt$11 = function $$case_stmt() { var self = this; return self.$compiler().$case_stmt() - }, TMP_WhenNode_case_stmt_11.$$arity = 0); - return (Opal.defn(self, '$body_code', TMP_WhenNode_body_code_12 = function $$body_code() { - var $a, self = this; + }, $WhenNode_case_stmt$11.$$arity = 0); + return (Opal.def(self, '$body_code', $WhenNode_body_code$12 = function $$body_code() { + var self = this, $ret_or_2 = nil; - return ($truthy($a = self.$children().$last()) ? $a : self.$s("nil")) - }, TMP_WhenNode_body_code_12.$$arity = 0), nil) && 'body_code'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + if ($truthy(($ret_or_2 = self.$children().$last()))) { + return $ret_or_2 + } else { + return self.$s("nil") + } + }, $WhenNode_body_code$12.$$arity = 0), nil) && 'body_code'; + })($nesting[0], $$($nesting, 'Base'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/super"] = function(Opal) { +Opal.modules["opal/nodes/super"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $slice = Opal.slice, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$require', '$include?', '$type', '$s', '$helper', '$push', '$compile_receiver', '$compile_method', '$compile_arguments', '$compile_block_pass', '$private', '$def?', '$scope', '$find_parent_def', '$==', '$raise_exception?', '$implicit_args?', '$to_s', '$mid', '$def_scope', '$identify!', '$defs', '$name', '$parent', '$method_id', '$def_scope_identity', '$defined_check_param', '$get_super_chain', '$join', '$map', '$implicit_arguments_param', '$super_method_invocation', '$iter?', '$super_block_invocation', '$raise', '$handle', '$method_missing?', '$compiler', '$wrap', '$uses_block!', '$compile_using_send', '$iter', '$uses_zuper=', '$-', '$formal_block_parameter', '$!', '$[]', '$<<', '$empty?', '$children', '$arglist', '$expr', '$===', '$extract_block_arg', '$block_arg']); + Opal.add_stubs(['$require', '$include?', '$type', '$s', '$helper', '$push', '$compile_receiver', '$compile_method_body', '$compile_method_name', '$compile_arguments', '$compile_block_pass', '$private', '$def?', '$scope', '$find_parent_def', '$to_s', '$mid', '$def_scope', '$identify!', '$method_id', '$def_scope_identity', '$defined_check_param', '$allow_stubs', '$super_chain', '$join', '$map', '$implicit_arguments_param', '$super_method_invocation', '$iter?', '$super_block_invocation', '$raise', '$handle', '$wrap', '$uses_block!', '$compile_using_send', '$==', '$iter', '$implicit_arglist', '$block_name', '$!', '$<<', '$new', '$each', '$children', '$original_args', '$[]', '$meta', '$===', '$+', '$[]=', '$-', '$>', '$empty?']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $BaseSuperNode(){}; - var self = $BaseSuperNode = $klass($base, $super, 'BaseSuperNode', $BaseSuperNode); + var self = $klass($base, $super, 'BaseSuperNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BaseSuperNode_initialize_1, TMP_BaseSuperNode_compile_using_send_2, TMP_BaseSuperNode_def_scope_3, TMP_BaseSuperNode_raise_exception$q_4, TMP_BaseSuperNode_defined_check_param_5, TMP_BaseSuperNode_implicit_args$q_6, TMP_BaseSuperNode_implicit_arguments_param_7, TMP_BaseSuperNode_method_id_8, TMP_BaseSuperNode_def_scope_identity_9, TMP_BaseSuperNode_super_method_invocation_10, TMP_BaseSuperNode_super_block_invocation_12, TMP_BaseSuperNode_compile_method_13; + var $nesting = [self].concat($parent_nesting), $BaseSuperNode_initialize$1, $BaseSuperNode_compile_using_send$2, $BaseSuperNode_def_scope$3, $BaseSuperNode_defined_check_param$4, $BaseSuperNode_implicit_arguments_param$5, $BaseSuperNode_method_id$6, $BaseSuperNode_def_scope_identity$7, $BaseSuperNode_allow_stubs$8, $BaseSuperNode_super_method_invocation$9, $BaseSuperNode_super_block_invocation$10, $BaseSuperNode_compile_method_body$12, $BaseSuperNode_compile_method_name$13; - def.sexp = def.def_scope = nil; + self.$$prototype.sexp = self.$$prototype.def_scope = nil; - Opal.defn(self, '$initialize', TMP_BaseSuperNode_initialize_1 = function $$initialize($a_rest) { - var $b, $c, self = this, $iter = TMP_BaseSuperNode_initialize_1.$$p, $yield = $iter || nil, args = nil, rest = nil, last_child = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$initialize', $BaseSuperNode_initialize$1 = function $$initialize($a) { + var $post_args, $rest_arg, $b, $c, $iter = $BaseSuperNode_initialize$1.$$p, $yield = $iter || nil, self = this, args = nil, rest = nil, last_child = nil, $ret_or_1 = nil; - if ($iter) TMP_BaseSuperNode_initialize_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $BaseSuperNode_initialize$1.$$p = null; + - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_BaseSuperNode_initialize_1, false), $zuper, $iter); + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $BaseSuperNode_initialize$1, false, true), 'initialize', Opal.to_a($rest_arg), $iter); args = [].concat(Opal.to_a(self.sexp)); $b = [].concat(Opal.to_a(args)), $c = $b.length - 1, $c = ($c < 0) ? 0 : $c, (rest = $slice.call($b, 0, $c)), (last_child = ($b[$c] == null ? nil : $b[$c])), $b; - if ($truthy(($truthy($b = last_child) ? ["iter", "block_pass"]['$include?'](last_child.$type()) : $b))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = last_child))) { + return ["iter", "block_pass"]['$include?'](last_child.$type()) + } else { + return $ret_or_1 + }; return nil; })())) { self.iter = last_child; args = rest; - } else { + } else { self.iter = self.$s("js_tmp", "null") }; self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(args))); return (self.recvr = self.$s("self")); - }, TMP_BaseSuperNode_initialize_1.$$arity = -1); + }, $BaseSuperNode_initialize$1.$$arity = -1); - Opal.defn(self, '$compile_using_send', TMP_BaseSuperNode_compile_using_send_2 = function $$compile_using_send() { + Opal.def(self, '$compile_using_send', $BaseSuperNode_compile_using_send$2 = function $$compile_using_send() { var self = this; - self.$helper("send"); - self.$push("$send("); + self.$helper("send2"); + self.$push("$send2("); self.$compile_receiver(); - self.$compile_method(); + self.$compile_method_body(); + self.$compile_method_name(); self.$compile_arguments(); self.$compile_block_pass(); return self.$push(")"); - }, TMP_BaseSuperNode_compile_using_send_2.$$arity = 0); + }, $BaseSuperNode_compile_using_send$2.$$arity = 0); self.$private(); - Opal.defn(self, '$def_scope', TMP_BaseSuperNode_def_scope_3 = function $$def_scope() { - var $a, self = this; + Opal.def(self, '$def_scope', $BaseSuperNode_def_scope$3 = function $$def_scope() { + var self = this, $ret_or_2 = nil; - return (self.def_scope = ($truthy($a = self.def_scope) ? $a : (function() {if ($truthy(self.$scope()['$def?']())) { + return (self.def_scope = (function() {if ($truthy(($ret_or_2 = self.def_scope))) { + return $ret_or_2 + } else if ($truthy(self.$scope()['$def?']())) { return self.$scope() - } else { + } else { return self.$scope().$find_parent_def() - }; return nil; })())) - }, TMP_BaseSuperNode_def_scope_3.$$arity = 0); + }; return nil; })()) + }, $BaseSuperNode_def_scope$3.$$arity = 0); - Opal.defn(self, '$raise_exception?', TMP_BaseSuperNode_raise_exception$q_4 = function() { + Opal.def(self, '$defined_check_param', $BaseSuperNode_defined_check_param$4 = function $$defined_check_param() { var self = this; - return self.sexp.$type()['$==']("defined_super") - }, TMP_BaseSuperNode_raise_exception$q_4.$$arity = 0); + return "false" + }, $BaseSuperNode_defined_check_param$4.$$arity = 0); - Opal.defn(self, '$defined_check_param', TMP_BaseSuperNode_defined_check_param_5 = function $$defined_check_param() { + Opal.def(self, '$implicit_arguments_param', $BaseSuperNode_implicit_arguments_param$5 = function $$implicit_arguments_param() { var self = this; - if ($truthy(self['$raise_exception?']())) { - return "true" - } else { - return "false" - } - }, TMP_BaseSuperNode_defined_check_param_5.$$arity = 0); + return "false" + }, $BaseSuperNode_implicit_arguments_param$5.$$arity = 0); - Opal.defn(self, '$implicit_args?', TMP_BaseSuperNode_implicit_args$q_6 = function() { + Opal.def(self, '$method_id', $BaseSuperNode_method_id$6 = function $$method_id() { var self = this; - return self.sexp.$type()['$==']("zsuper") - }, TMP_BaseSuperNode_implicit_args$q_6.$$arity = 0); + return self.$def_scope().$mid().$to_s() + }, $BaseSuperNode_method_id$6.$$arity = 0); - Opal.defn(self, '$implicit_arguments_param', TMP_BaseSuperNode_implicit_arguments_param_7 = function $$implicit_arguments_param() { + Opal.def(self, '$def_scope_identity', $BaseSuperNode_def_scope_identity$7 = function $$def_scope_identity() { var self = this; - if ($truthy(self['$implicit_args?']())) { - return "true" - } else { - return "false" - } - }, TMP_BaseSuperNode_implicit_arguments_param_7.$$arity = 0); + return self.$def_scope()['$identify!'](self.$def_scope().$mid()) + }, $BaseSuperNode_def_scope_identity$7.$$arity = 0); - Opal.defn(self, '$method_id', TMP_BaseSuperNode_method_id_8 = function $$method_id() { + Opal.def(self, '$allow_stubs', $BaseSuperNode_allow_stubs$8 = function $$allow_stubs() { var self = this; - return self.$def_scope().$mid().$to_s() - }, TMP_BaseSuperNode_method_id_8.$$arity = 0); + return "true" + }, $BaseSuperNode_allow_stubs$8.$$arity = 0); - Opal.defn(self, '$def_scope_identity', TMP_BaseSuperNode_def_scope_identity_9 = function $$def_scope_identity() { + Opal.def(self, '$super_method_invocation', $BaseSuperNode_super_method_invocation$9 = function $$super_method_invocation() { var self = this; - return self.$def_scope()['$identify!'](self.$def_scope().$mid()) - }, TMP_BaseSuperNode_def_scope_identity_9.$$arity = 0); + + self.$helper("find_super"); + return "" + "$find_super(self, '" + (self.$method_id()) + "', " + (self.$def_scope_identity()) + ", " + (self.$defined_check_param()) + ", " + (self.$allow_stubs()) + ")"; + }, $BaseSuperNode_super_method_invocation$9.$$arity = 0); - Opal.defn(self, '$super_method_invocation', TMP_BaseSuperNode_super_method_invocation_10 = function $$super_method_invocation() { - var self = this, class_name = nil; + Opal.def(self, '$super_block_invocation', $BaseSuperNode_super_block_invocation$10 = function $$super_block_invocation() { + var $a, $b, $$11, self = this, chain = nil, cur_defn = nil, mid = nil, trys = nil; + + + self.$helper("find_block_super"); + $b = self.$scope().$super_chain(), $a = Opal.to_ary($b), (chain = ($a[0] == null ? nil : $a[0])), (cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; + trys = $send(chain, 'map', [], ($$11 = function(c){var self = $$11.$$s == null ? this : $$11.$$s; - if ($truthy(self.$def_scope().$defs())) { - class_name = (function() {if ($truthy(self.$def_scope().$parent().$name())) { - return "" + "$" + (self.$def_scope().$parent().$name()) - } else { - return "self.$$class.$$proto" - }; return nil; })(); - return "" + "Opal.find_super_dispatcher(self, '" + (self.$method_id()) + "', " + (self.$def_scope_identity()) + ", " + (self.$defined_check_param()) + ", " + (class_name) + ")"; - } else { - return "" + "Opal.find_super_dispatcher(self, '" + (self.$method_id()) + "', " + (self.$def_scope_identity()) + ", " + (self.$defined_check_param()) + ")" - } - }, TMP_BaseSuperNode_super_method_invocation_10.$$arity = 0); + + if (c == null) { + c = nil; + }; + return "" + (c) + ".$$def";}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$join(" || "); + return "" + "$find_block_super(self, " + (mid) + ", (" + (trys) + " || " + (cur_defn) + "), " + (self.$defined_check_param()) + ", " + (self.$implicit_arguments_param()) + ")"; + }, $BaseSuperNode_super_block_invocation$10.$$arity = 0); - Opal.defn(self, '$super_block_invocation', TMP_BaseSuperNode_super_block_invocation_12 = function $$super_block_invocation() { - var $a, $b, TMP_11, self = this, chain = nil, cur_defn = nil, mid = nil, trys = nil; - - - $b = self.$scope().$get_super_chain(), $a = Opal.to_ary($b), (chain = ($a[0] == null ? nil : $a[0])), (cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; - trys = $send(chain, 'map', [], (TMP_11 = function(c){var self = TMP_11.$$s || this; -if (c == null) c = nil; - return "" + (c) + ".$$def"}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)).$join(" || "); - return "" + "Opal.find_iter_super_dispatcher(self, " + (mid) + ", (" + (trys) + " || " + (cur_defn) + "), " + (self.$defined_check_param()) + ", " + (self.$implicit_arguments_param()) + ")"; - }, TMP_BaseSuperNode_super_block_invocation_12.$$arity = 0); - return (Opal.defn(self, '$compile_method', TMP_BaseSuperNode_compile_method_13 = function $$compile_method() { + Opal.def(self, '$compile_method_body', $BaseSuperNode_compile_method_body$12 = function $$compile_method_body() { var self = this; @@ -25508,356 +36776,436 @@ if (c == null) c = nil; return self.$push(self.$super_method_invocation()) } else if ($truthy(self.$scope()['$iter?']())) { return self.$push(self.$super_block_invocation()) - } else { + } else { return self.$raise("super must be called from method body or block") }; - }, TMP_BaseSuperNode_compile_method_13.$$arity = 0), nil) && 'compile_method'; - })($nesting[0], Opal.const_get_relative($nesting, 'CallNode'), $nesting); + }, $BaseSuperNode_compile_method_body$12.$$arity = 0); + return (Opal.def(self, '$compile_method_name', $BaseSuperNode_compile_method_name$13 = function $$compile_method_name() { + var $a, $b, self = this, _chain = nil, _cur_defn = nil, mid = nil; + + if ($truthy(self.$scope()['$def?']())) { + return self.$push("" + ", '" + (self.$method_id()) + "'") + } else if ($truthy(self.$scope()['$iter?']())) { + + $b = self.$scope().$super_chain(), $a = Opal.to_ary($b), (_chain = ($a[0] == null ? nil : $a[0])), (_cur_defn = ($a[1] == null ? nil : $a[1])), (mid = ($a[2] == null ? nil : $a[2])), $b; + return self.$push("" + ", " + (mid)); + } else { + return nil + } + }, $BaseSuperNode_compile_method_name$13.$$arity = 0), nil) && 'compile_method_name'; + })($nesting[0], $$($nesting, 'CallNode'), $nesting); (function($base, $super, $parent_nesting) { - function $DefinedSuperNode(){}; - var self = $DefinedSuperNode = $klass($base, $super, 'DefinedSuperNode', $DefinedSuperNode); + var self = $klass($base, $super, 'DefinedSuperNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DefinedSuperNode_compile_14; + var $nesting = [self].concat($parent_nesting), $DefinedSuperNode_allow_stubs$14, $DefinedSuperNode_defined_check_param$15, $DefinedSuperNode_compile$16; self.$handle("defined_super"); - return (Opal.defn(self, '$compile', TMP_DefinedSuperNode_compile_14 = function $$compile() { + + Opal.def(self, '$allow_stubs', $DefinedSuperNode_allow_stubs$14 = function $$allow_stubs() { + var self = this; + + return "false" + }, $DefinedSuperNode_allow_stubs$14.$$arity = 0); + + Opal.def(self, '$defined_check_param', $DefinedSuperNode_defined_check_param$15 = function $$defined_check_param() { + var self = this; + + return "true" + }, $DefinedSuperNode_defined_check_param$15.$$arity = 0); + return (Opal.def(self, '$compile', $DefinedSuperNode_compile$16 = function $$compile() { var self = this; self.$compile_receiver(); - self.$compile_method(); - if ($truthy(self.$compiler()['$method_missing?']())) { - return self.$wrap("(!(", ".$$stub) ? \"super\" : nil)") - } else { - return self.$wrap("((", ") != null ? \"super\" : nil)") - }; - }, TMP_DefinedSuperNode_compile_14.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'BaseSuperNode'), $nesting); + self.$compile_method_body(); + return self.$wrap("((", ") != null ? \"super\" : nil)"); + }, $DefinedSuperNode_compile$16.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'BaseSuperNode'), $nesting); (function($base, $super, $parent_nesting) { - function $SuperNode(){}; - var self = $SuperNode = $klass($base, $super, 'SuperNode', $SuperNode); + var self = $klass($base, $super, 'SuperNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_SuperNode_initialize_15, TMP_SuperNode_compile_16; + var $nesting = [self].concat($parent_nesting), $SuperNode_initialize$17, $SuperNode_compile$18; self.$handle("super"); - Opal.defn(self, '$initialize', TMP_SuperNode_initialize_15 = function $$initialize($a_rest) { - var self = this, $iter = TMP_SuperNode_initialize_15.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$initialize', $SuperNode_initialize$17 = function $$initialize($a) { + var $post_args, $rest_arg, $iter = $SuperNode_initialize$17.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_SuperNode_initialize_15.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $SuperNode_initialize$17.$$p = null; + - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_SuperNode_initialize_15, false), $zuper, $iter); + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $SuperNode_initialize$17, false, true), 'initialize', Opal.to_a($rest_arg), $iter); if ($truthy(self.$scope()['$def?']())) { return self.$scope()['$uses_block!']() - } else { + } else { return nil }; - }, TMP_SuperNode_initialize_15.$$arity = -1); - return (Opal.defn(self, '$compile', TMP_SuperNode_compile_16 = function $$compile() { + }, $SuperNode_initialize$17.$$arity = -1); + return (Opal.def(self, '$compile', $SuperNode_compile$18 = function $$compile() { var self = this; return self.$compile_using_send() - }, TMP_SuperNode_compile_16.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'BaseSuperNode'), $nesting); - (function($base, $super, $parent_nesting) { - function $ZsuperNode(){}; - var self = $ZsuperNode = $klass($base, $super, 'ZsuperNode', $ZsuperNode); + }, $SuperNode_compile$18.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'BaseSuperNode'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ZsuperNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ZsuperNode_initialize_17, TMP_ZsuperNode_compile_18, TMP_ZsuperNode_compile_arguments_19, TMP_ZsuperNode_formal_block_parameter_20; + var $nesting = [self].concat($parent_nesting), $ZsuperNode_implicit_arguments_param$19, $ZsuperNode_initialize$20, $ZsuperNode_compile$21, $ZsuperNode_implicit_arglist$22, $ZsuperNode_block_name$24; self.$handle("zsuper"); - Opal.defn(self, '$initialize', TMP_ZsuperNode_initialize_17 = function $$initialize($a_rest) { - var self = this, $iter = TMP_ZsuperNode_initialize_17.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$implicit_arguments_param', $ZsuperNode_implicit_arguments_param$19 = function $$implicit_arguments_param() { + var self = this; - if ($iter) TMP_ZsuperNode_initialize_17.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + return "true" + }, $ZsuperNode_implicit_arguments_param$19.$$arity = 0); + + Opal.def(self, '$initialize', $ZsuperNode_initialize$20 = function $$initialize($a) { + var $post_args, $rest_arg, $iter = $ZsuperNode_initialize$20.$$p, $yield = $iter || nil, self = this; + + if ($iter) $ZsuperNode_initialize$20.$$p = null; - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_ZsuperNode_initialize_17, false), $zuper, $iter); + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $ZsuperNode_initialize$20, false, true), 'initialize', Opal.to_a($rest_arg), $iter); if (self.$iter().$type()['$==']("iter")) { return nil - } else { + } else { self.$scope()['$uses_block!'](); return (self.iter = self.$s("js_tmp", "$iter")); }; - }, TMP_ZsuperNode_initialize_17.$$arity = -1); + }, $ZsuperNode_initialize$20.$$arity = -1); - Opal.defn(self, '$compile', TMP_ZsuperNode_compile_18 = function $$compile() { - var $a, self = this, $writer = nil, implicit_args = nil, block_arg = nil, block_pass = nil; + Opal.def(self, '$compile', $ZsuperNode_compile$21 = function $$compile() { + var self = this, implicit_args = nil, $ret_or_3 = nil, block_pass = nil; if ($truthy(self.$def_scope())) { - - $writer = [true]; - $send(self.$def_scope(), 'uses_zuper=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - implicit_args = [self.$s("js_tmp", "$zuper")]; - if ($truthy(($truthy($a = (block_arg = self.$formal_block_parameter())) ? self.$iter()['$!']() : $a))) { + implicit_args = self.$implicit_arglist(); + if ($truthy((function() {if ($truthy(($ret_or_3 = self.$block_name()))) { + return self.$iter()['$!']() + } else { + return $ret_or_3 + }; return nil; })())) { - block_pass = self.$s("block_pass", self.$s("lvar", block_arg['$[]'](1))); + block_pass = self.$s("block_pass", self.$s("lvar", self.$block_name())); implicit_args['$<<'](block_pass);}; self.arglist = $send(self, 's', ["arglist"].concat(Opal.to_a(implicit_args)));}; return self.$compile_using_send(); - }, TMP_ZsuperNode_compile_18.$$arity = 0); + }, $ZsuperNode_compile$21.$$arity = 0); - Opal.defn(self, '$compile_arguments', TMP_ZsuperNode_compile_arguments_19 = function $$compile_arguments() { - var self = this; + Opal.def(self, '$implicit_arglist', $ZsuperNode_implicit_arglist$22 = function $$implicit_arglist() { + var $$23, self = this, args = nil, kwargs = nil, same_arg_counter = nil; - self.$push(", "); - if ($truthy(self.$arglist().$children()['$empty?']())) { - return self.$push("[]") + args = []; + kwargs = []; + same_arg_counter = $$($nesting, 'Hash').$new(0); + $send(self.$def_scope().$original_args().$children(), 'each', [], ($$23 = function(sexp){var self = $$23.$$s == null ? this : $$23.$$s, arg_name = nil, $case = nil, arg_node = nil, $writer = nil; + + + + if (sexp == null) { + sexp = nil; + }; + arg_name = sexp.$meta()['$[]']("arg_name"); + return (function() {$case = sexp.$type(); + if ("arg"['$===']($case) || "optarg"['$===']($case)) { + arg_node = self.$s("lvar", arg_name); + if (arg_name['$[]'](0)['$==']("_")) { + + + $writer = [arg_name, $rb_plus(same_arg_counter['$[]'](arg_name), 1)]; + $send(same_arg_counter, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy($rb_gt(same_arg_counter['$[]'](arg_name), 1))) { + arg_node = self.$s("js_tmp", "" + (arg_name) + "_$" + (same_arg_counter['$[]'](arg_name)))};}; + return args['$<<'](arg_node);} + else if ("restarg"['$===']($case)) { + arg_node = (function() {if ($truthy(arg_name)) { + return self.$s("lvar", arg_name) } else { - return self.$push(self.$expr(self.$arglist())) + return self.$s("js_tmp", "$rest_arg") + }; return nil; })(); + return args['$<<'](self.$s("splat", arg_node));} + else if ("kwarg"['$===']($case) || "kwoptarg"['$===']($case)) {return kwargs['$<<'](self.$s("pair", self.$s("sym", arg_name), self.$s("lvar", arg_name)))} + else if ("kwrestarg"['$===']($case)) { + arg_node = (function() {if ($truthy(arg_name)) { + return self.$s("lvar", arg_name) + } else { + return self.$s("js_tmp", "$kw_rest_arg") + }; return nil; })(); + return kwargs['$<<'](self.$s("kwsplat", arg_node));} + else { return nil }})();}, $$23.$$s = self, $$23.$$arity = 1, $$23)); + if ($truthy(kwargs['$empty?']())) { + } else { + args['$<<']($send(self, 's', ["hash"].concat(Opal.to_a(kwargs)))) }; - }, TMP_ZsuperNode_compile_arguments_19.$$arity = 0); - return (Opal.defn(self, '$formal_block_parameter', TMP_ZsuperNode_formal_block_parameter_20 = function $$formal_block_parameter() { + return args; + }, $ZsuperNode_implicit_arglist$22.$$arity = 0); + return (Opal.def(self, '$block_name', $ZsuperNode_block_name$24 = function $$block_name() { var self = this, $case = nil; return (function() {$case = self.$def_scope(); - if (Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Nodes'), 'IterNode')['$===']($case)) {return self.$def_scope().$extract_block_arg()} - else if (Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Nodes'), 'DefNode')['$===']($case)) {return self.$def_scope().$block_arg()} + if ($$$($$$($$($nesting, 'Opal'), 'Nodes'), 'IterNode')['$===']($case)) {return self.$def_scope().$block_name()} + else if ($$$($$$($$($nesting, 'Opal'), 'Nodes'), 'DefNode')['$===']($case)) {return self.$def_scope().$block_name()} else {return self.$raise("" + "Don't know what to do with super in the scope " + (self.$def_scope()))}})() - }, TMP_ZsuperNode_formal_block_parameter_20.$$arity = 0), nil) && 'formal_block_parameter'; - })($nesting[0], Opal.const_get_relative($nesting, 'SuperNode'), $nesting); + }, $ZsuperNode_block_name$24.$$arity = 0), nil) && 'block_name'; + })($nesting[0], $$($nesting, 'SuperNode'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["opal/version"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - Opal.const_set($nesting[0], 'VERSION', "0.11.4") + return Opal.const_set($nesting[0], 'VERSION', "1.3.2") })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/top"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/top"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$handle', '$children', '$push', '$version_comment', '$opening', '$in_scope', '$stmt', '$stmts', '$is_a?', '$eval?', '$compiler', '$add_temp', '$add_used_helpers', '$add_used_operators', '$line', '$to_vars', '$scope', '$compile_method_stubs', '$compile_irb_vars', '$compile_end_construct', '$closing', '$requirable?', '$to_s', '$cleanpath', '$Pathname', '$file', '$inspect', '$returns', '$body', '$irb?', '$to_a', '$helpers', '$each', '$operator_helpers', '$[]', '$method_missing?', '$method_calls', '$join', '$map', '$empty?', '$eof_content']); + Opal.add_stubs(['$require', '$handle', '$children', '$push', '$version_comment', '$in_scope', '$use_strict?', '$compiler', '$line', '$stmt', '$stmts', '$is_a?', '$eval?', '$add_temp', '$add_used_helpers', '$add_used_operators', '$to_vars', '$scope', '$compile_method_stubs', '$compile_irb_vars', '$compile_end_construct', '$opening', '$closing', '$await_encountered', '$requirable?', '$unshift', '$inspect', '$module_name', '$file', '$esm?', '$returns', '$body', '$irb?', '$each', '$to_a', '$helpers', '$operator_helpers', '$[]', '$method_missing?', '$method_calls', '$join', '$map', '$empty?', '$eof_content']); self.$require("pathname"); self.$require("opal/version"); self.$require("opal/nodes/scope"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $TopNode(){}; - var self = $TopNode = $klass($base, $super, 'TopNode', $TopNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'TopNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_TopNode_compile_2, TMP_TopNode_opening_3, TMP_TopNode_closing_4, TMP_TopNode_stmts_5, TMP_TopNode_compile_irb_vars_6, TMP_TopNode_add_used_helpers_8, TMP_TopNode_add_used_operators_10, TMP_TopNode_compile_method_stubs_12, TMP_TopNode_compile_end_construct_13, TMP_TopNode_version_comment_14; + var $nesting = [self].concat($parent_nesting), $TopNode_compile$1, $TopNode_opening$3, $TopNode_closing$4, $TopNode_stmts$5, $TopNode_compile_irb_vars$6, $TopNode_add_used_helpers$7, $TopNode_add_used_operators$9, $TopNode_compile_method_stubs$11, $TopNode_compile_end_construct$13, $TopNode_version_comment$14; self.$handle("top"); self.$children("body"); - Opal.defn(self, '$compile', TMP_TopNode_compile_2 = function $$compile() { - var TMP_1, self = this; + Opal.def(self, '$compile', $TopNode_compile$1 = function $$compile() { + var $$2, self = this; self.$push(self.$version_comment()); - self.$opening(); - $send(self, 'in_scope', [], (TMP_1 = function(){var self = TMP_1.$$s || this, body_code = nil; + $send(self, 'in_scope', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, body_code = nil; - + + if ($truthy(self.$compiler()['$use_strict?']())) { + self.$line("\"use strict\";")}; body_code = self.$stmt(self.$stmts()); - if ($truthy(body_code['$is_a?'](Opal.const_get_relative($nesting, 'Array')))) { - } else { + if ($truthy(body_code['$is_a?']($$($nesting, 'Array')))) { + } else { body_code = [body_code] }; if ($truthy(self.$compiler()['$eval?']())) { self.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]") - } else { + } else { self.$add_temp("self = Opal.top"); self.$add_temp("$nesting = []"); }; self.$add_temp("nil = Opal.nil"); + self.$add_temp("$$$ = Opal.$$$"); + self.$add_temp("$$ = Opal.$$"); self.$add_used_helpers(); self.$add_used_operators(); self.$line(self.$scope().$to_vars()); self.$compile_method_stubs(); self.$compile_irb_vars(); self.$compile_end_construct(); - return self.$line(body_code);}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); + return self.$line(body_code);}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + self.$opening(); return self.$closing(); - }, TMP_TopNode_compile_2.$$arity = 0); + }, $TopNode_compile$1.$$arity = 0); - Opal.defn(self, '$opening', TMP_TopNode_opening_3 = function $$opening() { - var self = this, path = nil; + Opal.def(self, '$opening', $TopNode_opening$3 = function $$opening() { + var self = this, async_prefix = nil; + + if ($truthy(self.$await_encountered())) { + async_prefix = "async "}; if ($truthy(self.$compiler()['$requirable?']())) { - - path = self.$Pathname(self.$compiler().$file()).$cleanpath().$to_s(); - return self.$line("" + "Opal.modules[" + (path.$inspect()) + "] = function(Opal) {"); + return self.$unshift("" + "Opal.modules[" + ($$$($$($nesting, 'Opal'), 'Compiler').$module_name(self.$compiler().$file()).$inspect()) + "] = " + (async_prefix) + "function(Opal) {") } else if ($truthy(self.$compiler()['$eval?']())) { - return self.$line("(function(Opal, self) {") - } else { - return self.$line("(function(Opal) {") - } - }, TMP_TopNode_opening_3.$$arity = 0); + return self.$unshift("" + "(" + (async_prefix) + "function(Opal, self) {") + } else if ($truthy(self.$compiler()['$esm?']())) { + return self.$unshift("" + "export default Opal.queue(" + (async_prefix) + "function(Opal) {") + } else { + return self.$unshift("" + "Opal.queue(" + (async_prefix) + "function(Opal) {") + }; + }, $TopNode_opening$3.$$arity = 0); - Opal.defn(self, '$closing', TMP_TopNode_closing_4 = function $$closing() { + Opal.def(self, '$closing', $TopNode_closing$4 = function $$closing() { var self = this; if ($truthy(self.$compiler()['$requirable?']())) { return self.$line("};\n") } else if ($truthy(self.$compiler()['$eval?']())) { - return self.$line("})(Opal, self)") - } else { - return self.$line("})(Opal);\n") + return self.$line("})(Opal, self);") + } else { + return self.$line("});\n") } - }, TMP_TopNode_closing_4.$$arity = 0); + }, $TopNode_closing$4.$$arity = 0); - Opal.defn(self, '$stmts', TMP_TopNode_stmts_5 = function $$stmts() { + Opal.def(self, '$stmts', $TopNode_stmts$5 = function $$stmts() { var self = this; return self.$compiler().$returns(self.$body()) - }, TMP_TopNode_stmts_5.$$arity = 0); + }, $TopNode_stmts$5.$$arity = 0); - Opal.defn(self, '$compile_irb_vars', TMP_TopNode_compile_irb_vars_6 = function $$compile_irb_vars() { + Opal.def(self, '$compile_irb_vars', $TopNode_compile_irb_vars$6 = function $$compile_irb_vars() { var self = this; if ($truthy(self.$compiler()['$irb?']())) { return self.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }") - } else { + } else { return nil } - }, TMP_TopNode_compile_irb_vars_6.$$arity = 0); + }, $TopNode_compile_irb_vars$6.$$arity = 0); - Opal.defn(self, '$add_used_helpers', TMP_TopNode_add_used_helpers_8 = function $$add_used_helpers() { - var TMP_7, self = this, helpers = nil; + Opal.def(self, '$add_used_helpers', $TopNode_add_used_helpers$7 = function $$add_used_helpers() { + var $$8, self = this; - - helpers = self.$compiler().$helpers().$to_a(); - return $send(helpers.$to_a(), 'each', [], (TMP_7 = function(h){var self = TMP_7.$$s || this; -if (h == null) h = nil; - return self.$add_temp("" + "$" + (h) + " = Opal." + (h))}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); - }, TMP_TopNode_add_used_helpers_8.$$arity = 0); + return $send(self.$compiler().$helpers().$to_a(), 'each', [], ($$8 = function(h){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (h == null) { + h = nil; + }; + return self.$add_temp("" + "$" + (h) + " = Opal." + (h));}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + }, $TopNode_add_used_helpers$7.$$arity = 0); - Opal.defn(self, '$add_used_operators', TMP_TopNode_add_used_operators_10 = function $$add_used_operators() { - var TMP_9, self = this, operators = nil; + Opal.def(self, '$add_used_operators', $TopNode_add_used_operators$9 = function $$add_used_operators() { + var $$10, self = this, operators = nil; operators = self.$compiler().$operator_helpers().$to_a(); - return $send(operators, 'each', [], (TMP_9 = function(op){var self = TMP_9.$$s || this, name = nil; -if (op == null) op = nil; - - name = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Nodes'), 'CallNode'), 'OPERATORS')['$[]'](op); + return $send(operators, 'each', [], ($$10 = function(op){var self = $$10.$$s == null ? this : $$10.$$s, name = nil; + + + + if (op == null) { + op = nil; + }; + name = $$$($$$($$($nesting, 'Nodes'), 'CallNode'), 'OPERATORS')['$[]'](op); self.$line("" + "function $rb_" + (name) + "(lhs, rhs) {"); self.$line("" + " return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs " + (op) + " rhs : lhs['$" + (op) + "'](rhs);"); - return self.$line("}");}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)); - }, TMP_TopNode_add_used_operators_10.$$arity = 0); + return self.$line("}");}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + }, $TopNode_add_used_operators$9.$$arity = 0); - Opal.defn(self, '$compile_method_stubs', TMP_TopNode_compile_method_stubs_12 = function $$compile_method_stubs() { - var TMP_11, self = this, calls = nil, stubs = nil; + Opal.def(self, '$compile_method_stubs', $TopNode_compile_method_stubs$11 = function $$compile_method_stubs() { + var $$12, self = this, calls = nil, stubs = nil; if ($truthy(self.$compiler()['$method_missing?']())) { calls = self.$compiler().$method_calls(); - stubs = $send(calls.$to_a(), 'map', [], (TMP_11 = function(k){var self = TMP_11.$$s || this; -if (k == null) k = nil; - return "" + "'$" + (k) + "'"}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)).$join(", "); + stubs = $send(calls.$to_a(), 'map', [], ($$12 = function(k){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (k == null) { + k = nil; + }; + return "" + "'$" + (k) + "'";}, $$12.$$s = self, $$12.$$arity = 1, $$12)).$join(", "); if ($truthy(stubs['$empty?']())) { return nil - } else { + } else { return self.$line("" + "Opal.add_stubs([" + (stubs) + "]);") }; - } else { + } else { return nil } - }, TMP_TopNode_compile_method_stubs_12.$$arity = 0); + }, $TopNode_compile_method_stubs$11.$$arity = 0); - Opal.defn(self, '$compile_end_construct', TMP_TopNode_compile_end_construct_13 = function $$compile_end_construct() { + Opal.def(self, '$compile_end_construct', $TopNode_compile_end_construct$13 = function $$compile_end_construct() { var self = this, content = nil; if ($truthy((content = self.$compiler().$eof_content()))) { self.$line("var $__END__ = Opal.Object.$new();"); return self.$line("" + "$__END__.$read = function() { return " + (content.$inspect()) + "; };"); - } else { + } else { return nil } - }, TMP_TopNode_compile_end_construct_13.$$arity = 0); - return (Opal.defn(self, '$version_comment', TMP_TopNode_version_comment_14 = function $$version_comment() { + }, $TopNode_compile_end_construct$13.$$arity = 0); + return (Opal.def(self, '$version_comment', $TopNode_version_comment$14 = function $$version_comment() { var self = this; - return "" + "/* Generated by Opal " + (Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'VERSION')) + " */" - }, TMP_TopNode_version_comment_14.$$arity = 0), nil) && 'version_comment'; - })($nesting[0], Opal.const_get_relative($nesting, 'ScopeNode'), $nesting) + return "" + "/* Generated by Opal " + ($$$($$($nesting, 'Opal'), 'VERSION')) + " */" + }, $TopNode_version_comment$14.$$arity = 0), nil) && 'version_comment'; + })($nesting[0], $$($nesting, 'ScopeNode'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/while"] = function(Opal) { +Opal.modules["opal/nodes/while"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; - Opal.add_stubs(['$require', '$handle', '$children', '$with_temp', '$js_truthy', '$test', '$in_while', '$compiler', '$wrap_in_closure?', '$[]=', '$while_loop', '$-', '$stmt', '$body', '$uses_redo?', '$push', '$while_open', '$while_close', '$line', '$wrap', '$[]', '$expr?', '$recv?']); + Opal.add_stubs(['$require', '$handle', '$children', '$js_truthy', '$test', '$with_temp', '$in_while', '$compiler', '$wrap_in_closure?', '$[]=', '$while_loop', '$-', '$indent', '$stmt', '$body', '$uses_redo?', '$compile_with_redo', '$compile_without_redo', '$await_encountered', '$scope', '$wrap', '$private', '$push', '$compile_while', '$while_open', '$while_close', '$line', '$[]', '$expr?', '$recv?']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $WhileNode(){}; - var self = $WhileNode = $klass($base, $super, 'WhileNode', $WhileNode); + var self = $klass($base, $super, 'WhileNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_WhileNode_compile_3, TMP_WhileNode_while_open_4, TMP_WhileNode_while_close_5, TMP_WhileNode_uses_redo$q_6, TMP_WhileNode_wrap_in_closure$q_7; + var $nesting = [self].concat($parent_nesting), $WhileNode_compile$1, $WhileNode_compile_with_redo$5, $WhileNode_compile_without_redo$6, $WhileNode_compile_while$7, $WhileNode_while_open$9, $WhileNode_while_close$10, $WhileNode_uses_redo$ques$11, $WhileNode_wrap_in_closure$ques$12; self.$handle("while"); self.$children("test", "body"); - Opal.defn(self, '$compile', TMP_WhileNode_compile_3 = function $$compile() { - var TMP_1, self = this; + Opal.def(self, '$compile', $WhileNode_compile$1 = function $$compile() { + var $$2, self = this, test_code = nil; - $send(self, 'with_temp', [], (TMP_1 = function(redo_var){var self = TMP_1.$$s || this, TMP_2, test_code = nil; -if (redo_var == null) redo_var = nil; - - test_code = self.$js_truthy(self.$test()); - $send(self.$compiler(), 'in_while', [], (TMP_2 = function(){var self = TMP_2.$$s || this, $writer = nil, body_code = nil; + test_code = self.$js_truthy(self.$test()); + $send(self, 'with_temp', [], ($$2 = function(redo_var){var self = $$2.$$s == null ? this : $$2.$$s, $$3; + + if (redo_var == null) { + redo_var = nil; + }; + return $send(self.$compiler(), 'in_while', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $$4, $writer = nil, body_code = nil; + + if ($truthy(self['$wrap_in_closure?']())) { $writer = ["closure", true]; @@ -25867,297 +37215,398 @@ if (redo_var == null) redo_var = nil; $writer = ["redo_var", redo_var]; $send(self.$while_loop(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - body_code = self.$stmt(self.$body()); - if ($truthy(self['$uses_redo?']())) { - - self.$push("" + (redo_var) + " = false; " + (self.$while_open()) + (redo_var) + " || "); - self.$push(test_code); - self.$push(self.$while_close()); - } else { - self.$push(self.$while_open(), test_code, self.$while_close()) - }; + body_code = $send(self, 'indent', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; + + return self.$stmt(self.$body())}, $$4.$$s = self, $$4.$$arity = 0, $$4)); if ($truthy(self['$uses_redo?']())) { - self.$push("" + (redo_var) + " = false;")}; - return self.$line(body_code);}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); - return self.$line("}");}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); + return self.$compile_with_redo(test_code, body_code, redo_var) + } else { + return self.$compile_without_redo(test_code, body_code) + };}, $$3.$$s = self, $$3.$$arity = 0, $$3));}, $$2.$$s = self, $$2.$$arity = 1, $$2)); if ($truthy(self['$wrap_in_closure?']())) { - return self.$wrap("(function() {", "; return nil; })()") + if ($truthy(self.$scope().$await_encountered())) { + return self.$wrap("(await (async function() {", "; return nil; })())") } else { + return self.$wrap("(function() {", "; return nil; })()") + } + } else { return nil }; - }, TMP_WhileNode_compile_3.$$arity = 0); + }, $WhileNode_compile$1.$$arity = 0); + self.$private(); + + Opal.def(self, '$compile_with_redo', $WhileNode_compile_with_redo$5 = function $$compile_with_redo(test_code, body_code, redo_var) { + var self = this; + + + self.$push("" + (redo_var) + " = false; "); + return self.$compile_while([redo_var, " || ", test_code], ["" + (redo_var) + " = false;", body_code]); + }, $WhileNode_compile_with_redo$5.$$arity = 3); + + Opal.def(self, '$compile_without_redo', $WhileNode_compile_without_redo$6 = function $$compile_without_redo(test_code, body_code) { + var self = this; + + return self.$compile_while([test_code], [body_code]) + }, $WhileNode_compile_without_redo$6.$$arity = 2); + + Opal.def(self, '$compile_while', $WhileNode_compile_while$7 = function $$compile_while(test_code, body_code) { + var $$8, self = this; + + + $send(self, 'push', [self.$while_open()].concat(Opal.to_a(test_code)).concat([self.$while_close()])); + $send(self, 'indent', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + + return $send(self, 'line', Opal.to_a(body_code))}, $$8.$$s = self, $$8.$$arity = 0, $$8)); + return self.$line("}"); + }, $WhileNode_compile_while$7.$$arity = 2); - Opal.defn(self, '$while_open', TMP_WhileNode_while_open_4 = function $$while_open() { + Opal.def(self, '$while_open', $WhileNode_while_open$9 = function $$while_open() { var self = this; return "while (" - }, TMP_WhileNode_while_open_4.$$arity = 0); + }, $WhileNode_while_open$9.$$arity = 0); - Opal.defn(self, '$while_close', TMP_WhileNode_while_close_5 = function $$while_close() { + Opal.def(self, '$while_close', $WhileNode_while_close$10 = function $$while_close() { var self = this; return ") {" - }, TMP_WhileNode_while_close_5.$$arity = 0); + }, $WhileNode_while_close$10.$$arity = 0); - Opal.defn(self, '$uses_redo?', TMP_WhileNode_uses_redo$q_6 = function() { + Opal.def(self, '$uses_redo?', $WhileNode_uses_redo$ques$11 = function() { var self = this; return self.$while_loop()['$[]']("use_redo") - }, TMP_WhileNode_uses_redo$q_6.$$arity = 0); - return (Opal.defn(self, '$wrap_in_closure?', TMP_WhileNode_wrap_in_closure$q_7 = function() { - var $a, self = this; - - return ($truthy($a = self['$expr?']()) ? $a : self['$recv?']()) - }, TMP_WhileNode_wrap_in_closure$q_7.$$arity = 0), nil) && 'wrap_in_closure?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $WhilePostNode(){}; - var self = $WhilePostNode = $klass($base, $super, 'WhilePostNode', $WhilePostNode); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + }, $WhileNode_uses_redo$ques$11.$$arity = 0); + return (Opal.def(self, '$wrap_in_closure?', $WhileNode_wrap_in_closure$ques$12 = function() { + var self = this, $ret_or_1 = nil; - return self.$handle("while_post") - })($nesting[0], Opal.const_get_relative($nesting, 'WhileNode'), $nesting); + if ($truthy(($ret_or_1 = self['$expr?']()))) { + return $ret_or_1 + } else { + return self['$recv?']() + } + }, $WhileNode_wrap_in_closure$ques$12.$$arity = 0), nil) && 'wrap_in_closure?'; + })($nesting[0], $$($nesting, 'Base'), $nesting); (function($base, $super, $parent_nesting) { - function $UntilNode(){}; - var self = $UntilNode = $klass($base, $super, 'UntilNode', $UntilNode); + var self = $klass($base, $super, 'UntilNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_UntilNode_while_open_8, TMP_UntilNode_while_close_9; + var $nesting = [self].concat($parent_nesting), $UntilNode_while_open$13, $UntilNode_while_close$14; self.$handle("until"); + self.$private(); - Opal.defn(self, '$while_open', TMP_UntilNode_while_open_8 = function $$while_open() { + Opal.def(self, '$while_open', $UntilNode_while_open$13 = function $$while_open() { var self = this; return "while (!(" - }, TMP_UntilNode_while_open_8.$$arity = 0); - return (Opal.defn(self, '$while_close', TMP_UntilNode_while_close_9 = function $$while_close() { + }, $UntilNode_while_open$13.$$arity = 0); + return (Opal.def(self, '$while_close', $UntilNode_while_close$14 = function $$while_close() { var self = this; return ")) {" - }, TMP_UntilNode_while_close_9.$$arity = 0), nil) && 'while_close'; - })($nesting[0], Opal.const_get_relative($nesting, 'WhileNode'), $nesting); + }, $UntilNode_while_close$14.$$arity = 0), nil) && 'while_close'; + })($nesting[0], $$($nesting, 'WhileNode'), $nesting); (function($base, $super, $parent_nesting) { - function $UntilPostNode(){}; - var self = $UntilPostNode = $klass($base, $super, 'UntilPostNode', $UntilPostNode); + var self = $klass($base, $super, 'WhilePostNode'); + + var $nesting = [self].concat($parent_nesting), $WhilePostNode_compile_while$15, $WhilePostNode_while_close$17; + + + self.$handle("while_post"); + self.$private(); + + Opal.def(self, '$compile_while', $WhilePostNode_compile_while$15 = function $$compile_while(test_code, body_code) { + var $$16, self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + + self.$push("do {"); + $send(self, 'indent', [], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; + + return $send(self, 'line', Opal.to_a(body_code))}, $$16.$$s = self, $$16.$$arity = 0, $$16)); + return $send(self, 'line', ["} ", self.$while_open()].concat(Opal.to_a(test_code)).concat([self.$while_close()])); + }, $WhilePostNode_compile_while$15.$$arity = 2); + return (Opal.def(self, '$while_close', $WhilePostNode_while_close$17 = function $$while_close() { + var self = this; + + return ");" + }, $WhilePostNode_while_close$17.$$arity = 0), nil) && 'while_close'; + })($nesting[0], $$($nesting, 'WhileNode'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'UntilPostNode'); + + var $nesting = [self].concat($parent_nesting), $UntilPostNode_while_open$18, $UntilPostNode_while_close$19; + + + self.$handle("until_post"); + self.$private(); + + Opal.def(self, '$while_open', $UntilPostNode_while_open$18 = function $$while_open() { + var self = this; + + return "while(!(" + }, $UntilPostNode_while_open$18.$$arity = 0); + return (Opal.def(self, '$while_close', $UntilPostNode_while_close$19 = function $$while_close() { + var self = this; - return self.$handle("until_post") - })($nesting[0], Opal.const_get_relative($nesting, 'UntilNode'), $nesting); + return "));" + }, $UntilPostNode_while_close$19.$$arity = 0), nil) && 'while_close'; + })($nesting[0], $$($nesting, 'WhilePostNode'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/hash"] = function(Opal) { +Opal.modules["opal/nodes/hash"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; Opal.add_stubs(['$require', '$handle', '$attr_accessor', '$each', '$children', '$type', '$===', '$<<', '$[]', '$all?', '$keys', '$include?', '$has_kwsplat', '$compile_merge', '$simple_keys?', '$compile_hash2', '$compile_hash', '$helper', '$==', '$empty?', '$expr', '$s', '$each_with_index', '$push', '$wrap', '$times', '$size', '$inspect', '$to_s', '$values', '$[]=', '$-', '$join', '$value']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $HashNode(){}; - var self = $HashNode = $klass($base, $super, 'HashNode', $HashNode); + var self = $klass($base, $super, 'HashNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_HashNode_initialize_1, TMP_HashNode_simple_keys$q_4, TMP_HashNode_compile_5, TMP_HashNode_compile_merge_8, TMP_HashNode_compile_hash_10, TMP_HashNode_compile_hash2_13; + var $nesting = [self].concat($parent_nesting), $HashNode_initialize$1, $HashNode_simple_keys$ques$3, $HashNode_compile$5, $HashNode_compile_merge$6, $HashNode_compile_hash$9, $HashNode_compile_hash2$11; self.$handle("hash"); self.$attr_accessor("has_kwsplat", "keys", "values"); - Opal.defn(self, '$initialize', TMP_HashNode_initialize_1 = function $$initialize($a_rest) { - var TMP_2, self = this, $iter = TMP_HashNode_initialize_1.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$initialize', $HashNode_initialize$1 = function $$initialize($a) { + var $post_args, $rest_arg, $$2, $iter = $HashNode_initialize$1.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_HashNode_initialize_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $HashNode_initialize$1.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_HashNode_initialize_1, false), $zuper, $iter); + $rest_arg = $post_args;; + $send2(self, $find_super(self, 'initialize', $HashNode_initialize$1, false, true), 'initialize', Opal.to_a($rest_arg), $iter); self.has_kwsplat = false; self.keys = []; self.values = []; - return $send(self.$children(), 'each', [], (TMP_2 = function(child){var self = TMP_2.$$s || this, $case = nil; + return $send(self.$children(), 'each', [], ($$2 = function(child){var self = $$2.$$s == null ? this : $$2.$$s, $case = nil; if (self.keys == null) self.keys = nil; if (self.values == null) self.values = nil; -if (child == null) child = nil; - return (function() {$case = child.$type(); + + + + if (child == null) { + child = nil; + }; + return (function() {$case = child.$type(); if ("kwsplat"['$===']($case)) {return (self.has_kwsplat = true)} else if ("pair"['$===']($case)) { self.keys['$<<'](child.$children()['$[]'](0)); return self.values['$<<'](child.$children()['$[]'](1));} - else { return nil }})()}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - }, TMP_HashNode_initialize_1.$$arity = -1); + else { return nil }})();}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $HashNode_initialize$1.$$arity = -1); - Opal.defn(self, '$simple_keys?', TMP_HashNode_simple_keys$q_4 = function() { - var TMP_3, self = this; + Opal.def(self, '$simple_keys?', $HashNode_simple_keys$ques$3 = function() { + var $$4, self = this; - return $send(self.$keys(), 'all?', [], (TMP_3 = function(key){var self = TMP_3.$$s || this; -if (key == null) key = nil; - return ["sym", "str"]['$include?'](key.$type())}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)) - }, TMP_HashNode_simple_keys$q_4.$$arity = 0); + return $send(self.$keys(), 'all?', [], ($$4 = function(key){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (key == null) { + key = nil; + }; + return ["sym", "str"]['$include?'](key.$type());}, $$4.$$s = self, $$4.$$arity = 1, $$4)) + }, $HashNode_simple_keys$ques$3.$$arity = 0); - Opal.defn(self, '$compile', TMP_HashNode_compile_5 = function $$compile() { + Opal.def(self, '$compile', $HashNode_compile$5 = function $$compile() { var self = this; if ($truthy(self.$has_kwsplat())) { return self.$compile_merge() } else if ($truthy(self['$simple_keys?']())) { return self.$compile_hash2() - } else { + } else { return self.$compile_hash() } - }, TMP_HashNode_compile_5.$$arity = 0); + }, $HashNode_compile$5.$$arity = 0); - Opal.defn(self, '$compile_merge', TMP_HashNode_compile_merge_8 = function $$compile_merge() { - var $a, TMP_6, TMP_7, self = this, result = nil, seq = nil; + Opal.def(self, '$compile_merge', $HashNode_compile_merge$6 = function $$compile_merge() { + var $a, $$7, $$8, self = this, result = nil, seq = nil; self.$helper("hash"); $a = [[], []], (result = $a[0]), (seq = $a[1]), $a; - $send(self.$children(), 'each', [], (TMP_6 = function(child){var self = TMP_6.$$s || this; -if (child == null) child = nil; - if (child.$type()['$==']("kwsplat")) { + $send(self.$children(), 'each', [], ($$7 = function(child){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (child == null) { + child = nil; + }; + if (child.$type()['$==']("kwsplat")) { if ($truthy(seq['$empty?']())) { - } else { + } else { result['$<<'](self.$expr($send(self, 's', ["hash"].concat(Opal.to_a(seq))))) }; result['$<<'](self.$expr(child)); return (seq = []); - } else { + } else { return seq['$<<'](child) - }}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); + };}, $$7.$$s = self, $$7.$$arity = 1, $$7)); if ($truthy(seq['$empty?']())) { - } else { + } else { result['$<<'](self.$expr($send(self, 's', ["hash"].concat(Opal.to_a(seq))))) }; - return $send(result, 'each_with_index', [], (TMP_7 = function(fragment, idx){var self = TMP_7.$$s || this; -if (fragment == null) fragment = nil;if (idx == null) idx = nil; - if (idx['$=='](0)) { + return $send(result, 'each_with_index', [], ($$8 = function(fragment, idx){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (fragment == null) { + fragment = nil; + }; + + if (idx == null) { + idx = nil; + }; + if (idx['$=='](0)) { return self.$push(fragment) - } else { + } else { return self.$push(".$merge(", fragment, ")") - }}, TMP_7.$$s = self, TMP_7.$$arity = 2, TMP_7)); - }, TMP_HashNode_compile_merge_8.$$arity = 0); + };}, $$8.$$s = self, $$8.$$arity = 2, $$8)); + }, $HashNode_compile_merge$6.$$arity = 0); - Opal.defn(self, '$compile_hash', TMP_HashNode_compile_hash_10 = function $$compile_hash() { - var TMP_9, self = this; + Opal.def(self, '$compile_hash', $HashNode_compile_hash$9 = function $$compile_hash() { + var $$10, self = this; self.$helper("hash"); - $send(self.$children(), 'each_with_index', [], (TMP_9 = function(pair, idx){var self = TMP_9.$$s || this, $a, $b, key = nil, value = nil; -if (pair == null) pair = nil;if (idx == null) idx = nil; - + $send(self.$children(), 'each_with_index', [], ($$10 = function(pair, idx){var self = $$10.$$s == null ? this : $$10.$$s, $a, $b, key = nil, value = nil; + + + + if (pair == null) { + pair = nil; + }; + + if (idx == null) { + idx = nil; + }; $b = pair.$children(), $a = Opal.to_ary($b), (key = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $b; if (idx['$=='](0)) { - } else { + } else { self.$push(", ") }; - return self.$push(self.$expr(key), ", ", self.$expr(value));}, TMP_9.$$s = self, TMP_9.$$arity = 2, TMP_9)); + return self.$push(self.$expr(key), ", ", self.$expr(value));}, $$10.$$s = self, $$10.$$arity = 2, $$10)); return self.$wrap("$hash(", ")"); - }, TMP_HashNode_compile_hash_10.$$arity = 0); - return (Opal.defn(self, '$compile_hash2', TMP_HashNode_compile_hash2_13 = function $$compile_hash2() { - var $a, TMP_11, TMP_12, self = this, hash_obj = nil, hash_keys = nil; + }, $HashNode_compile_hash$9.$$arity = 0); + return (Opal.def(self, '$compile_hash2', $HashNode_compile_hash2$11 = function $$compile_hash2() { + var $a, $$12, $$13, self = this, hash_obj = nil, hash_keys = nil; $a = [$hash2([], {}), []], (hash_obj = $a[0]), (hash_keys = $a[1]), $a; self.$helper("hash2"); - $send(self.$keys().$size(), 'times', [], (TMP_11 = function(idx){var self = TMP_11.$$s || this, key = nil, $writer = nil; -if (idx == null) idx = nil; - + $send(self.$keys().$size(), 'times', [], ($$12 = function(idx){var self = $$12.$$s == null ? this : $$12.$$s, key = nil, $writer = nil; + + + + if (idx == null) { + idx = nil; + }; key = self.$keys()['$[]'](idx).$children()['$[]'](0).$to_s().$inspect(); if ($truthy(hash_obj['$include?'](key))) { - } else { + } else { hash_keys['$<<'](key) }; $writer = [key, self.$expr(self.$values()['$[]'](idx))]; $send(hash_obj, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)); - $send(hash_keys, 'each_with_index', [], (TMP_12 = function(key, idx){var self = TMP_12.$$s || this; -if (key == null) key = nil;if (idx == null) idx = nil; - + return $writer[$rb_minus($writer["length"], 1)];;}, $$12.$$s = self, $$12.$$arity = 1, $$12)); + $send(hash_keys, 'each_with_index', [], ($$13 = function(key, idx){var self = $$13.$$s == null ? this : $$13.$$s; + + + + if (key == null) { + key = nil; + }; + + if (idx == null) { + idx = nil; + }; if (idx['$=='](0)) { - } else { + } else { self.$push(", ") }; self.$push("" + (key) + ": "); - return self.$push(hash_obj['$[]'](key));}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12)); + return self.$push(hash_obj['$[]'](key));}, $$13.$$s = self, $$13.$$arity = 2, $$13)); return self.$wrap("" + "$hash2([" + (hash_keys.$join(", ")) + "], {", "})"); - }, TMP_HashNode_compile_hash2_13.$$arity = 0), nil) && 'compile_hash2'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); - (function($base, $super, $parent_nesting) { - function $KwSplatNode(){}; - var self = $KwSplatNode = $klass($base, $super, 'KwSplatNode', $KwSplatNode); + }, $HashNode_compile_hash2$11.$$arity = 0), nil) && 'compile_hash2'; + })($nesting[0], $$($nesting, 'Base'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'KwSplatNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_KwSplatNode_compile_14; + var $nesting = [self].concat($parent_nesting), $KwSplatNode_compile$14; self.$handle("kwsplat"); self.$children("value"); - return (Opal.defn(self, '$compile', TMP_KwSplatNode_compile_14 = function $$compile() { + return (Opal.def(self, '$compile', $KwSplatNode_compile$14 = function $$compile() { var self = this; return self.$push("Opal.to_hash(", self.$expr(self.$value()), ")") - }, TMP_KwSplatNode_compile_14.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting); + }, $KwSplatNode_compile$14.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/array"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["opal/nodes/array"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$require', '$handle', '$empty?', '$children', '$push', '$each', '$==', '$type', '$expr', '$<<', '$fragment']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ArrayNode(){}; - var self = $ArrayNode = $klass($base, $super, 'ArrayNode', $ArrayNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ArrayNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ArrayNode_compile_2; + var $nesting = [self].concat($parent_nesting), $ArrayNode_compile$1; self.$handle("array"); - return (Opal.defn(self, '$compile', TMP_ArrayNode_compile_2 = function $$compile() { - var $a, TMP_1, self = this, code = nil, work = nil, join = nil; + return (Opal.def(self, '$compile', $ArrayNode_compile$1 = function $$compile() { + var $a, $$2, self = this, code = nil, work = nil, join = nil; if ($truthy(self.$children()['$empty?']())) { return self.$push("[]")}; $a = [[], []], (code = $a[0]), (work = $a[1]), $a; - $send(self.$children(), 'each', [], (TMP_1 = function(child){var self = TMP_1.$$s || this, splat = nil, part = nil; -if (child == null) child = nil; - + $send(self.$children(), 'each', [], ($$2 = function(child){var self = $$2.$$s == null ? this : $$2.$$s, splat = nil, part = nil; + + + + if (child == null) { + child = nil; + }; splat = child.$type()['$==']("splat"); part = self.$expr(child); if ($truthy(splat)) { @@ -26165,81 +37614,83 @@ if (child == null) child = nil; if ($truthy(work['$empty?']())) { if ($truthy(code['$empty?']())) { code['$<<'](self.$fragment("[].concat("))['$<<'](part)['$<<'](self.$fragment(")")) - } else { + } else { code['$<<'](self.$fragment(".concat("))['$<<'](part)['$<<'](self.$fragment(")")) } - } else { + } else { if ($truthy(code['$empty?']())) { code['$<<'](self.$fragment("["))['$<<'](work)['$<<'](self.$fragment("]")) - } else { + } else { code['$<<'](self.$fragment(".concat(["))['$<<'](work)['$<<'](self.$fragment("])")) }; code['$<<'](self.$fragment(".concat("))['$<<'](part)['$<<'](self.$fragment(")")); }; return (work = []); - } else { + } else { if ($truthy(work['$empty?']())) { - } else { + } else { work['$<<'](self.$fragment(", ")) }; return work['$<<'](part); - };}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); if ($truthy(work['$empty?']())) { - } else { + } else { join = [self.$fragment("["), work, self.$fragment("]")]; if ($truthy(code['$empty?']())) { code = join - } else { + } else { code.$push([self.$fragment(".concat("), join, self.$fragment(")")]) }; }; return self.$push(code); - }, TMP_ArrayNode_compile_2.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + }, $ArrayNode_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/defined"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; +Opal.modules["opal/nodes/defined"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $slice = Opal.slice, $send = Opal.send, $range = Opal.range; Opal.add_stubs(['$require', '$handle', '$children', '$type', '$value', '$===', '$push', '$inspect', '$to_s', '$==', '$size', '$[]', '$compile_defined_send', '$wrap', '$compile_defined_ivar', '$compile_defined_super', '$compile_defined_yield', '$compile_defined_xstr', '$compile_defined_const', '$compile_defined_cvar', '$compile_defined_gvar', '$compile_defined_back_ref', '$compile_defined_nth_ref', '$compile_defined_array', '$respond_to?', '$__send__', '$new_temp', '$scope', '$expr', '$wrap_with_try_catch', '$mid_to_jsid', '$compile_defined', '$compile_send_recv_doesnt_raise', '$each', '$s', '$uses_block!', '$block_name', '$find_parent_def', '$nil?', '$class_variable_owner', '$helper', '$include?', '$each_with_index']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $DefinedNode(){}; - var self = $DefinedNode = $klass($base, $super, 'DefinedNode', $DefinedNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DefinedNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DefinedNode_compile_1, TMP_DefinedNode_compile_defined_2, TMP_DefinedNode_wrap_with_try_catch_3, TMP_DefinedNode_compile_send_recv_doesnt_raise_4, TMP_DefinedNode_compile_defined_send_6, TMP_DefinedNode_compile_defined_ivar_7, TMP_DefinedNode_compile_defined_super_8, TMP_DefinedNode_compile_defined_yield_9, TMP_DefinedNode_compile_defined_xstr_10, TMP_DefinedNode_compile_defined_const_11, TMP_DefinedNode_compile_defined_cvar_12, TMP_DefinedNode_compile_defined_gvar_13, TMP_DefinedNode_compile_defined_back_ref_14, TMP_DefinedNode_compile_defined_nth_ref_15, TMP_DefinedNode_compile_defined_array_17; + var $nesting = [self].concat($parent_nesting), $DefinedNode_compile$1, $DefinedNode_compile_defined$2, $DefinedNode_wrap_with_try_catch$3, $DefinedNode_compile_send_recv_doesnt_raise$4, $DefinedNode_compile_defined_send$5, $DefinedNode_compile_defined_ivar$7, $DefinedNode_compile_defined_super$8, $DefinedNode_compile_defined_yield$9, $DefinedNode_compile_defined_xstr$10, $DefinedNode_compile_defined_const$11, $DefinedNode_compile_defined_cvar$12, $DefinedNode_compile_defined_gvar$13, $DefinedNode_compile_defined_back_ref$14, $DefinedNode_compile_defined_nth_ref$15, $DefinedNode_compile_defined_array$16; self.$handle("defined?"); self.$children("value"); - Opal.defn(self, '$compile', TMP_DefinedNode_compile_1 = function $$compile() { - var $a, self = this, $case = nil; + Opal.def(self, '$compile', $DefinedNode_compile$1 = function $$compile() { + var self = this, $case = nil, $ret_or_1 = nil; return (function() {$case = self.$value().$type(); if ("self"['$===']($case) || "nil"['$===']($case) || "false"['$===']($case) || "true"['$===']($case)) {return self.$push(self.$value().$type().$to_s().$inspect())} else if ("lvasgn"['$===']($case) || "ivasgn"['$===']($case) || "gvasgn"['$===']($case) || "cvasgn"['$===']($case) || "casgn"['$===']($case) || "op_asgn"['$===']($case) || "or_asgn"['$===']($case) || "and_asgn"['$===']($case)) {return self.$push("'assignment'")} else if ("lvar"['$===']($case)) {return self.$push("'local-variable'")} - else if ("begin"['$===']($case)) {if ($truthy((($a = self.$value().$children().$size()['$=='](1)) ? self.$value().$children()['$[]'](0).$type()['$==']("masgn") : self.$value().$children().$size()['$=='](1)))) { + else if ("begin"['$===']($case)) {if ($truthy((function() {if ($truthy(($ret_or_1 = self.$value().$children().$size()['$=='](1)))) { + return self.$value().$children()['$[]'](0).$type()['$==']("masgn") + } else { + return $ret_or_1 + }; return nil; })())) { return self.$push("'assignment'") - } else { + } else { return self.$push("'expression'") }} else if ("send"['$===']($case)) { @@ -26248,9 +37699,9 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { else if ("ivar"['$===']($case)) { self.$compile_defined_ivar(self.$value()); return self.$wrap("(", " ? 'instance-variable' : nil)");} - else if ("zsuper"['$===']($case) || "super"['$===']($case)) {return self.$compile_defined_super(self.$value())} + else if ("zsuper"['$===']($case) || "super"['$===']($case)) {return self.$compile_defined_super()} else if ("yield"['$===']($case)) { - self.$compile_defined_yield(self.$value()); + self.$compile_defined_yield(); return self.$wrap("(", " ? 'yield' : nil)");} else if ("xstr"['$===']($case)) {return self.$compile_defined_xstr(self.$value())} else if ("const"['$===']($case)) { @@ -26263,33 +37714,33 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { self.$compile_defined_gvar(self.$value()); return self.$wrap("(", " ? 'global-variable' : nil)");} else if ("back_ref"['$===']($case)) { - self.$compile_defined_back_ref(self.$value()); + self.$compile_defined_back_ref(); return self.$wrap("(", " ? 'global-variable' : nil)");} else if ("nth_ref"['$===']($case)) { - self.$compile_defined_nth_ref(self.$value()); + self.$compile_defined_nth_ref(); return self.$wrap("(", " ? 'global-variable' : nil)");} else if ("array"['$===']($case)) { self.$compile_defined_array(self.$value()); return self.$wrap("(", " ? 'expression' : nil)");} else {return self.$push("'expression'")}})() - }, TMP_DefinedNode_compile_1.$$arity = 0); + }, $DefinedNode_compile$1.$$arity = 0); - Opal.defn(self, '$compile_defined', TMP_DefinedNode_compile_defined_2 = function $$compile_defined(node) { + Opal.def(self, '$compile_defined', $DefinedNode_compile_defined$2 = function $$compile_defined(node) { var self = this, type = nil, node_tmp = nil; type = node.$type(); if ($truthy(self['$respond_to?']("" + "compile_defined_" + (type)))) { return self.$__send__("" + "compile_defined_" + (type), node) - } else { + } else { node_tmp = self.$scope().$new_temp(); self.$push("" + "(" + (node_tmp) + " = ", self.$expr(node), ")"); return node_tmp; }; - }, TMP_DefinedNode_compile_defined_2.$$arity = 1); + }, $DefinedNode_compile_defined$2.$$arity = 1); - Opal.defn(self, '$wrap_with_try_catch', TMP_DefinedNode_wrap_with_try_catch_3 = function $$wrap_with_try_catch(code) { + Opal.def(self, '$wrap_with_try_catch', $DefinedNode_wrap_with_try_catch$3 = function $$wrap_with_try_catch(code) { var self = this, returning_tmp = nil; @@ -26304,16 +37755,16 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { self.$push(" } else { throw $err; }"); self.$push("}})())"); return returning_tmp; - }, TMP_DefinedNode_wrap_with_try_catch_3.$$arity = 1); + }, $DefinedNode_wrap_with_try_catch$3.$$arity = 1); - Opal.defn(self, '$compile_send_recv_doesnt_raise', TMP_DefinedNode_compile_send_recv_doesnt_raise_4 = function $$compile_send_recv_doesnt_raise(recv_code) { + Opal.def(self, '$compile_send_recv_doesnt_raise', $DefinedNode_compile_send_recv_doesnt_raise$4 = function $$compile_send_recv_doesnt_raise(recv_code) { var self = this; return self.$wrap_with_try_catch(recv_code) - }, TMP_DefinedNode_compile_send_recv_doesnt_raise_4.$$arity = 1); + }, $DefinedNode_compile_send_recv_doesnt_raise$4.$$arity = 1); - Opal.defn(self, '$compile_defined_send', TMP_DefinedNode_compile_defined_send_6 = function $$compile_defined_send(node) { - var $a, TMP_5, self = this, recv = nil, method_name = nil, args = nil, mid = nil, recv_code = nil, recv_tmp = nil, recv_value_tmp = nil, meth_tmp = nil; + Opal.def(self, '$compile_defined_send', $DefinedNode_compile_defined_send$5 = function $$compile_defined_send(node) { + var $a, $$6, self = this, recv = nil, method_name = nil, args = nil, mid = nil, recv_code = nil, recv_tmp = nil, recv_value_tmp = nil, meth_tmp = nil; $a = [].concat(Opal.to_a(node)), (recv = ($a[0] == null ? nil : $a[0])), (method_name = ($a[1] == null ? nil : $a[1])), (args = $slice.call($a, 2)), $a; @@ -26328,7 +37779,7 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { self.$push(" && ");}; recv_tmp = self.$scope().$new_temp(); self.$push("" + "(" + (recv_tmp) + " = ", recv_code, "" + ", " + (recv_tmp) + ") && "); - } else { + } else { recv_tmp = "self" }; recv_value_tmp = self.$scope().$new_temp(); @@ -26336,18 +37787,23 @@ Opal.modules["opal/nodes/defined"] = function(Opal) { meth_tmp = self.$scope().$new_temp(); self.$push("" + "(((" + (meth_tmp) + " = " + (recv_value_tmp) + (mid) + ") && !" + (meth_tmp) + ".$$stub)"); self.$push("" + " || " + (recv_value_tmp) + "['$respond_to_missing?']('" + (method_name) + "'))"); - $send(args, 'each', [], (TMP_5 = function(arg){var self = TMP_5.$$s || this, $case = nil; -if (arg == null) arg = nil; - return (function() {$case = arg.$type(); + $send(args, 'each', [], ($$6 = function(arg){var self = $$6.$$s == null ? this : $$6.$$s, $case = nil; + + + + if (arg == null) { + arg = nil; + }; + return (function() {$case = arg.$type(); if ("block_pass"['$===']($case)) {return nil} else { self.$push(" && "); - return self.$compile_defined(arg);}})()}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); + return self.$compile_defined(arg);}})();}, $$6.$$s = self, $$6.$$arity = 1, $$6)); self.$wrap("(", ")"); return "" + (meth_tmp) + "()"; - }, TMP_DefinedNode_compile_defined_send_6.$$arity = 1); + }, $DefinedNode_compile_defined_send$5.$$arity = 1); - Opal.defn(self, '$compile_defined_ivar', TMP_DefinedNode_compile_defined_ivar_7 = function $$compile_defined_ivar(node) { + Opal.def(self, '$compile_defined_ivar', $DefinedNode_compile_defined_ivar$7 = function $$compile_defined_ivar(node) { var self = this, name = nil, tmp = nil; @@ -26355,49 +37811,53 @@ if (arg == null) arg = nil; tmp = self.$scope().$new_temp(); self.$push("" + "(" + (tmp) + " = self['" + (name) + "'], " + (tmp) + " != null && " + (tmp) + " !== nil)"); return tmp; - }, TMP_DefinedNode_compile_defined_ivar_7.$$arity = 1); + }, $DefinedNode_compile_defined_ivar$7.$$arity = 1); - Opal.defn(self, '$compile_defined_super', TMP_DefinedNode_compile_defined_super_8 = function $$compile_defined_super(node) { + Opal.def(self, '$compile_defined_super', $DefinedNode_compile_defined_super$8 = function $$compile_defined_super() { var self = this; return self.$push(self.$expr(self.$s("defined_super"))) - }, TMP_DefinedNode_compile_defined_super_8.$$arity = 1); + }, $DefinedNode_compile_defined_super$8.$$arity = 0); - Opal.defn(self, '$compile_defined_yield', TMP_DefinedNode_compile_defined_yield_9 = function $$compile_defined_yield(node) { - var $a, $b, self = this, block_name = nil, parent = nil; + Opal.def(self, '$compile_defined_yield', $DefinedNode_compile_defined_yield$9 = function $$compile_defined_yield() { + var self = this, block_name = nil, $ret_or_2 = nil; self.$scope()['$uses_block!'](); - block_name = ($truthy($a = self.$scope().$block_name()) ? $a : (parent = ($truthy($b = self.$scope().$find_parent_def()) ? parent.$block_name() : $b))); + block_name = (function() {if ($truthy(($ret_or_2 = self.$scope().$block_name()))) { + return $ret_or_2 + } else { + return self.$scope().$find_parent_def().$block_name() + }; return nil; })(); self.$push("" + "(" + (block_name) + " != null && " + (block_name) + " !== nil)"); return block_name; - }, TMP_DefinedNode_compile_defined_yield_9.$$arity = 1); + }, $DefinedNode_compile_defined_yield$9.$$arity = 0); - Opal.defn(self, '$compile_defined_xstr', TMP_DefinedNode_compile_defined_xstr_10 = function $$compile_defined_xstr(node) { + Opal.def(self, '$compile_defined_xstr', $DefinedNode_compile_defined_xstr$10 = function $$compile_defined_xstr(node) { var self = this; return self.$push("(typeof(", self.$expr(node), ") !== \"undefined\")") - }, TMP_DefinedNode_compile_defined_xstr_10.$$arity = 1); + }, $DefinedNode_compile_defined_xstr$10.$$arity = 1); - Opal.defn(self, '$compile_defined_const', TMP_DefinedNode_compile_defined_const_11 = function $$compile_defined_const(node) { + Opal.def(self, '$compile_defined_const', $DefinedNode_compile_defined_const$11 = function $$compile_defined_const(node) { var $a, self = this, const_scope = nil, const_name = nil, const_tmp = nil, const_scope_tmp = nil; $a = [].concat(Opal.to_a(node)), (const_scope = ($a[0] == null ? nil : $a[0])), (const_name = ($a[1] == null ? nil : $a[1])), $a; const_tmp = self.$scope().$new_temp(); if ($truthy(const_scope['$nil?']())) { - self.$push("" + "(" + (const_tmp) + " = Opal.const_get_relative($nesting, '" + (const_name) + "', 'skip_raise'))") + self.$push("" + "(" + (const_tmp) + " = $$($nesting, '" + (const_name) + "', 'skip_raise'))") } else if (const_scope['$=='](self.$s("cbase"))) { - self.$push("" + "(" + (const_tmp) + " = Opal.const_get_qualified('::', '" + (const_name) + "', 'skip_raise'))") - } else { + self.$push("" + "(" + (const_tmp) + " = $$$('::', '" + (const_name) + "', 'skip_raise'))") + } else { const_scope_tmp = self.$compile_defined(const_scope); - self.$push("" + " && (" + (const_tmp) + " = Opal.const_get_qualified(" + (const_scope_tmp) + ", '" + (const_name) + "', 'skip_raise'))"); + self.$push("" + " && (" + (const_tmp) + " = $$$(" + (const_scope_tmp) + ", '" + (const_name) + "', 'skip_raise'))"); }; return const_tmp; - }, TMP_DefinedNode_compile_defined_const_11.$$arity = 1); + }, $DefinedNode_compile_defined_const$11.$$arity = 1); - Opal.defn(self, '$compile_defined_cvar', TMP_DefinedNode_compile_defined_cvar_12 = function $$compile_defined_cvar(node) { + Opal.def(self, '$compile_defined_cvar', $DefinedNode_compile_defined_cvar$12 = function $$compile_defined_cvar(node) { var $a, self = this, cvar_name = nil, _ = nil, cvar_tmp = nil; @@ -26405,9 +37865,9 @@ if (arg == null) arg = nil; cvar_tmp = self.$scope().$new_temp(); self.$push("" + "(" + (cvar_tmp) + " = " + (self.$class_variable_owner()) + ".$$cvars['" + (cvar_name) + "'], " + (cvar_tmp) + " != null)"); return cvar_tmp; - }, TMP_DefinedNode_compile_defined_cvar_12.$$arity = 1); + }, $DefinedNode_compile_defined_cvar$12.$$arity = 1); - Opal.defn(self, '$compile_defined_gvar', TMP_DefinedNode_compile_defined_gvar_13 = function $$compile_defined_gvar(node) { + Opal.def(self, '$compile_defined_gvar', $DefinedNode_compile_defined_gvar$13 = function $$compile_defined_gvar(node) { var self = this, name = nil, gvar_temp = nil; @@ -26416,13 +37876,13 @@ if (arg == null) arg = nil; gvar_temp = self.$scope().$new_temp(); if ($truthy(["~", "!"]['$include?'](name))) { self.$push("" + "(" + (gvar_temp) + " = ", self.$expr(node), " || true)") - } else { + } else { self.$push("" + "(" + (gvar_temp) + " = $gvars[" + (name.$inspect()) + "], " + (gvar_temp) + " != null)") }; return gvar_temp; - }, TMP_DefinedNode_compile_defined_gvar_13.$$arity = 1); + }, $DefinedNode_compile_defined_gvar$13.$$arity = 1); - Opal.defn(self, '$compile_defined_back_ref', TMP_DefinedNode_compile_defined_back_ref_14 = function $$compile_defined_back_ref(node) { + Opal.def(self, '$compile_defined_back_ref', $DefinedNode_compile_defined_back_ref$14 = function $$compile_defined_back_ref() { var self = this, back_ref_temp = nil; @@ -26430,9 +37890,9 @@ if (arg == null) arg = nil; back_ref_temp = self.$scope().$new_temp(); self.$push("" + "(" + (back_ref_temp) + " = $gvars['~'], " + (back_ref_temp) + " != null && " + (back_ref_temp) + " !== nil)"); return back_ref_temp; - }, TMP_DefinedNode_compile_defined_back_ref_14.$$arity = 1); + }, $DefinedNode_compile_defined_back_ref$14.$$arity = 0); - Opal.defn(self, '$compile_defined_nth_ref', TMP_DefinedNode_compile_defined_nth_ref_15 = function $$compile_defined_nth_ref(node) { + Opal.def(self, '$compile_defined_nth_ref', $DefinedNode_compile_defined_nth_ref$15 = function $$compile_defined_nth_ref() { var self = this, nth_ref_tmp = nil; @@ -26440,71 +37900,82 @@ if (arg == null) arg = nil; nth_ref_tmp = self.$scope().$new_temp(); self.$push("" + "(" + (nth_ref_tmp) + " = $gvars['~'], " + (nth_ref_tmp) + " != null && " + (nth_ref_tmp) + " != nil)"); return nth_ref_tmp; - }, TMP_DefinedNode_compile_defined_nth_ref_15.$$arity = 1); - return (Opal.defn(self, '$compile_defined_array', TMP_DefinedNode_compile_defined_array_17 = function $$compile_defined_array(node) { - var TMP_16, self = this; + }, $DefinedNode_compile_defined_nth_ref$15.$$arity = 0); + return (Opal.def(self, '$compile_defined_array', $DefinedNode_compile_defined_array$16 = function $$compile_defined_array(node) { + var $$17, self = this; - return $send(node.$children(), 'each_with_index', [], (TMP_16 = function(child, idx){var self = TMP_16.$$s || this; -if (child == null) child = nil;if (idx == null) idx = nil; - + return $send(node.$children(), 'each_with_index', [], ($$17 = function(child, idx){var self = $$17.$$s == null ? this : $$17.$$s; + + + + if (child == null) { + child = nil; + }; + + if (idx == null) { + idx = nil; + }; if (idx['$=='](0)) { - } else { + } else { self.$push(" && ") }; - return self.$compile_defined(child);}, TMP_16.$$s = self, TMP_16.$$arity = 2, TMP_16)) - }, TMP_DefinedNode_compile_defined_array_17.$$arity = 1), nil) && 'compile_defined_array'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + return self.$compile_defined(child);}, $$17.$$s = self, $$17.$$arity = 2, $$17)) + }, $DefinedNode_compile_defined_array$16.$$arity = 1), nil) && 'compile_defined_array'; + })($nesting[0], $$($nesting, 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/masgn"] = function(Opal) { +Opal.modules["opal/nodes/masgn"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$require', '$handle', '$children', '$new_temp', '$scope', '$==', '$type', '$rhs', '$push', '$expr', '$any?', '$size', '$compile_masgn', '$lhs', '$queue_temp', '$take_while', '$!=', '$drop', '$each_with_index', '$compile_assignment', '$empty?', '$shift', '$[]', '$<<', '$dup', '$s', '$!', '$>=', '$updated', '$include?', '$+', '$last', '$raise']); + Opal.add_stubs(['$require', '$freeze', '$handle', '$children', '$new_temp', '$scope', '$==', '$type', '$rhs', '$push', '$expr', '$any?', '$size', '$compile_masgn', '$lhs', '$queue_temp', '$take_while', '$!=', '$drop', '$each_with_index', '$compile_assignment', '$empty?', '$shift', '$[]', '$helper', '$<<', '$dup', '$s', '$!', '$>=', '$updated', '$include?', '$+', '$last', '$raise']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $MassAssignNode(){}; - var self = $MassAssignNode = $klass($base, $super, 'MassAssignNode', $MassAssignNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'MassAssignNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_MassAssignNode_compile_2, TMP_MassAssignNode_compile_masgn_6, TMP_MassAssignNode_compile_assignment_7; + var $nesting = [self].concat($parent_nesting), $MassAssignNode_compile$1, $MassAssignNode_compile_masgn$3, $MassAssignNode_compile_assignment$7; - Opal.const_set($nesting[0], 'SIMPLE_ASSIGNMENT', ["lvasgn", "ivasgn", "lvar", "gvasgn", "cdecl", "casgn"]); + Opal.const_set($nesting[0], 'SIMPLE_ASSIGNMENT', ["lvasgn", "ivasgn", "lvar", "gvasgn", "cdecl", "casgn"].$freeze()); self.$handle("masgn"); self.$children("lhs", "rhs"); - Opal.defn(self, '$compile', TMP_MassAssignNode_compile_2 = function $$compile() { - var TMP_1, self = this, array = nil, rhs_len = nil, retval = nil; + Opal.def(self, '$compile', $MassAssignNode_compile$1 = function $$compile() { + var $$2, self = this, array = nil, rhs_len = nil, retval = nil; array = self.$scope().$new_temp(); if (self.$rhs().$type()['$==']("array")) { self.$push("" + (array) + " = ", self.$expr(self.$rhs())); - rhs_len = (function() {if ($truthy($send(self.$rhs().$children(), 'any?', [], (TMP_1 = function(c){var self = TMP_1.$$s || this; -if (c == null) c = nil; - return c.$type()['$==']("splat")}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)))) { + rhs_len = (function() {if ($truthy($send(self.$rhs().$children(), 'any?', [], ($$2 = function(c){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (c == null) { + c = nil; + }; + return c.$type()['$==']("splat");}, $$2.$$s = self, $$2.$$arity = 1, $$2)))) { return nil - } else { + } else { return self.$rhs().$children().$size() }; return nil; })(); self.$compile_masgn(self.$lhs().$children(), array, rhs_len); @@ -26517,7 +37988,7 @@ if (c == null) c = nil; self.$compile_masgn(self.$lhs().$children(), array); self.$push("" + ", " + (retval)); self.$scope().$queue_temp(retval); - } else { + } else { retval = self.$scope().$new_temp(); self.$push("" + (retval) + " = ", self.$expr(self.$rhs())); @@ -26527,71 +37998,102 @@ if (c == null) c = nil; self.$scope().$queue_temp(retval); }; return self.$scope().$queue_temp(array); - }, TMP_MassAssignNode_compile_2.$$arity = 0); + }, $MassAssignNode_compile$1.$$arity = 0); - Opal.defn(self, '$compile_masgn', TMP_MassAssignNode_compile_masgn_6 = function $$compile_masgn(lhs_items, array, len) { - var TMP_3, TMP_4, TMP_5, self = this, pre_splat = nil, post_splat = nil, splat = nil, part = nil, tmp = nil; + Opal.def(self, '$compile_masgn', $MassAssignNode_compile_masgn$3 = function $$compile_masgn(lhs_items, array, len) { + var $$4, $$5, $$6, self = this, pre_splat = nil, post_splat = nil, splat = nil, part = nil, tmp = nil; + + if (len == null) { len = nil; - } - - pre_splat = $send(lhs_items, 'take_while', [], (TMP_3 = function(child){var self = TMP_3.$$s || this; -if (child == null) child = nil; - return child.$type()['$!=']("splat")}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); + }; + pre_splat = $send(lhs_items, 'take_while', [], ($$4 = function(child){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (child == null) { + child = nil; + }; + return child.$type()['$!=']("splat");}, $$4.$$s = self, $$4.$$arity = 1, $$4)); post_splat = lhs_items.$drop(pre_splat.$size()); - $send(pre_splat, 'each_with_index', [], (TMP_4 = function(child, idx){var self = TMP_4.$$s || this; -if (child == null) child = nil;if (idx == null) idx = nil; - return self.$compile_assignment(child, array, idx, len)}, TMP_4.$$s = self, TMP_4.$$arity = 2, TMP_4)); + $send(pre_splat, 'each_with_index', [], ($$5 = function(child, idx){var self = $$5.$$s == null ? this : $$5.$$s; + + + + if (child == null) { + child = nil; + }; + + if (idx == null) { + idx = nil; + }; + return self.$compile_assignment(child, array, idx, len);}, $$5.$$s = self, $$5.$$arity = 2, $$5)); if ($truthy(post_splat['$empty?']())) { return nil - } else { + } else { splat = post_splat.$shift(); if ($truthy(post_splat['$empty?']())) { if ($truthy((part = splat.$children()['$[]'](0)))) { + self.$helper("slice"); part = part.$dup()['$<<'](self.$s("js_tmp", "" + "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ")")); self.$push(", "); return self.$push(self.$expr(part)); - } else { + } else { return nil } - } else { + } else { tmp = self.$scope().$new_temp(); self.$push("" + ", " + (tmp) + " = " + (array) + ".length - " + (post_splat.$size())); self.$push("" + ", " + (tmp) + " = (" + (tmp) + " < " + (pre_splat.$size()) + ") ? " + (pre_splat.$size()) + " : " + (tmp)); if ($truthy((part = splat.$children()['$[]'](0)))) { + self.$helper("slice"); part = part.$dup()['$<<'](self.$s("js_tmp", "" + "$slice.call(" + (array) + ", " + (pre_splat.$size()) + ", " + (tmp) + ")")); self.$push(", "); self.$push(self.$expr(part));}; - $send(post_splat, 'each_with_index', [], (TMP_5 = function(child, idx){var self = TMP_5.$$s || this; -if (child == null) child = nil;if (idx == null) idx = nil; - if (idx['$=='](0)) { + $send(post_splat, 'each_with_index', [], ($$6 = function(child, idx){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (child == null) { + child = nil; + }; + + if (idx == null) { + idx = nil; + }; + if (idx['$=='](0)) { return self.$compile_assignment(child, array, tmp) - } else { + } else { return self.$compile_assignment(child, array, "" + (tmp) + " + " + (idx)) - }}, TMP_5.$$s = self, TMP_5.$$arity = 2, TMP_5)); + };}, $$6.$$s = self, $$6.$$arity = 2, $$6)); return self.$scope().$queue_temp(tmp); }; }; - }, TMP_MassAssignNode_compile_masgn_6.$$arity = -3); - return (Opal.defn(self, '$compile_assignment', TMP_MassAssignNode_compile_assignment_7 = function $$compile_assignment(child, array, idx, len) { - var $a, self = this, assign = nil, part = nil, tmp = nil; + }, $MassAssignNode_compile_masgn$3.$$arity = -3); + return (Opal.def(self, '$compile_assignment', $MassAssignNode_compile_assignment$7 = function $$compile_assignment(child, array, idx, len) { + var self = this, assign = nil, $ret_or_1 = nil, part = nil, tmp = nil; + + if (len == null) { len = nil; - } - - if ($truthy(($truthy($a = len['$!']()) ? $a : $rb_ge(idx, len)))) { - assign = self.$s("js_tmp", "" + "(" + (array) + "[" + (idx) + "] == null ? nil : " + (array) + "[" + (idx) + "])") - } else { - assign = self.$s("js_tmp", "" + (array) + "[" + (idx) + "]") }; + assign = (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = len['$!']()))) { + return $ret_or_1 + } else { + return $rb_ge(idx, len) + }; return nil; })())) { + return self.$s("js_tmp", "" + "(" + (array) + "[" + (idx) + "] == null ? nil : " + (array) + "[" + (idx) + "])") + } else { + return self.$s("js_tmp", "" + (array) + "[" + (idx) + "]") + }; return nil; })(); part = child.$updated(); - if ($truthy(Opal.const_get_relative($nesting, 'SIMPLE_ASSIGNMENT')['$include?'](child.$type()))) { + if ($truthy($$($nesting, 'SIMPLE_ASSIGNMENT')['$include?'](child.$type()))) { part = part.$updated(nil, $rb_plus(part.$children(), [assign])) } else if (child.$type()['$==']("send")) { part = part.$updated(nil, $rb_plus(part.$children(), [assign])) @@ -26605,50 +38107,52 @@ if (child == null) child = nil;if (idx == null) idx = nil; self.$push(")"); self.$scope().$queue_temp(tmp); return nil; - } else { + } else { self.$raise("" + "Bad child node in masgn LHS: " + (child) + ". LHS: " + (self.$lhs())) }; self.$push(", "); return self.$push(self.$expr(part)); - }, TMP_MassAssignNode_compile_assignment_7.$$arity = -4), nil) && 'compile_assignment'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + }, $MassAssignNode_compile_assignment$7.$$arity = -4), nil) && 'compile_assignment'; + })($nesting[0], $$($nesting, 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes/arglist"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/nodes/arglist"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$require', '$handle', '$each', '$children', '$==', '$type', '$expr', '$empty?', '$<<', '$fragment', '$push']); self.$require("opal/nodes/base"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Nodes, self = $Nodes = $module($base, 'Nodes'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ArglistNode(){}; - var self = $ArglistNode = $klass($base, $super, 'ArglistNode', $ArglistNode); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ArglistNode'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ArglistNode_compile_2; + var $nesting = [self].concat($parent_nesting), $ArglistNode_compile$1; self.$handle("arglist"); - return (Opal.defn(self, '$compile', TMP_ArglistNode_compile_2 = function $$compile() { - var $a, TMP_1, self = this, code = nil, work = nil, join = nil; + return (Opal.def(self, '$compile', $ArglistNode_compile$1 = function $$compile() { + var $a, $$2, self = this, code = nil, work = nil, join = nil; $a = [[], []], (code = $a[0]), (work = $a[1]), $a; - $send(self.$children(), 'each', [], (TMP_1 = function(current){var self = TMP_1.$$s || this, splat = nil, arg = nil; -if (current == null) current = nil; - + $send(self.$children(), 'each', [], ($$2 = function(current){var self = $$2.$$s == null ? this : $$2.$$s, splat = nil, arg = nil; + + + + if (current == null) { + current = nil; + }; splat = current.$type()['$==']("splat"); arg = self.$expr(current); if ($truthy(splat)) { @@ -26656,47 +38160,295 @@ if (current == null) current = nil; if ($truthy(work['$empty?']())) { if ($truthy(code['$empty?']())) { code['$<<'](arg) - } else { + } else { code['$<<'](self.$fragment(".concat("))['$<<'](arg)['$<<'](self.$fragment(")")) } - } else { + } else { if ($truthy(code['$empty?']())) { code['$<<'](self.$fragment("["))['$<<'](work)['$<<'](self.$fragment("]")) - } else { + } else { code['$<<'](self.$fragment(".concat(["))['$<<'](work)['$<<'](self.$fragment("])")) }; code['$<<'](self.$fragment(".concat("))['$<<'](arg)['$<<'](self.$fragment(")")); }; return (work = []); - } else { + } else { if ($truthy(work['$empty?']())) { - } else { + } else { work['$<<'](self.$fragment(", ")) }; return work['$<<'](arg); - };}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); if ($truthy(work['$empty?']())) { - } else { + } else { join = work; if ($truthy(code['$empty?']())) { code = join - } else { - code['$<<'](self.$fragment(".concat("))['$<<'](join)['$<<'](self.$fragment(")")) + } else { + code['$<<'](self.$fragment(".concat(["))['$<<'](join)['$<<'](self.$fragment("])")) }; }; return $send(self, 'push', Opal.to_a(code)); - }, TMP_ArglistNode_compile_2.$$arity = 0), nil) && 'compile'; - })($nesting[0], Opal.const_get_relative($nesting, 'Base'), $nesting) + }, $ArglistNode_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting); +}; + +Opal.modules["opal/nodes/x_string"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $lambda = Opal.lambda; + + Opal.add_stubs(['$handle', '$unpack_return', '$children', '$strip_empty_children', '$single_line?', '$compile_single_line', '$each', '$compile_child', '$recv?', '$wrap', '$push', '$private', '$type', '$===', '$source', '$expression', '$loc', '$new', '$scope', '$expr', '$raise', '$shift', '$empty?', '$s', '$==', '$strip', '$=~', '$!', '$pop', '$extract_last_value', '$rstrip', '$expr?', '$end_with?', '$warning', '$compiler', '$line', '$[]', '$size', '$none?', '$first', '$dup', '$nil?', '$any?', '$last']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'XStringNode'); + + var $nesting = [self].concat($parent_nesting), $XStringNode_compile$1, $XStringNode_compile_child$3, $XStringNode_compile_single_line$4, $XStringNode_extract_last_value$6, $XStringNode_single_line$ques$7, $XStringNode_unpack_return$9, $XStringNode_strip_empty_children$10; + + self.$$prototype.should_add_semicolon = self.$$prototype.returning = nil; + + self.$handle("xstr"); + + Opal.def(self, '$compile', $XStringNode_compile$1 = function $$compile() { + var $$2, self = this, unpacked_children = nil, stripped_children = nil; + + + self.should_add_semicolon = false; + unpacked_children = self.$unpack_return(self.$children()); + stripped_children = self.$strip_empty_children(unpacked_children); + if ($truthy(self['$single_line?'](stripped_children))) { + self.$compile_single_line(stripped_children) + } else { + $send(unpacked_children, 'each', [], ($$2 = function(c){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (c == null) { + c = nil; + }; + return self.$compile_child(c);}, $$2.$$s = self, $$2.$$arity = 1, $$2)) + }; + if ($truthy(self['$recv?']())) { + self.$wrap("(", ")")}; + if ($truthy(self.should_add_semicolon)) { + return self.$push(";") + } else { + return nil + }; + }, $XStringNode_compile$1.$$arity = 0); + self.$private(); + + Opal.def(self, '$compile_child', $XStringNode_compile_child$3 = function $$compile_child(child) { + var self = this, $case = nil, value = nil; + + return (function() {$case = child.$type(); + if ("str"['$===']($case)) { + value = child.$loc().$expression().$source(); + return self.$push($$($nesting, 'Fragment').$new(value, self.$scope(), child));} + else if ("begin"['$===']($case) || "gvar"['$===']($case) || "ivar"['$===']($case) || "nil"['$===']($case)) {return self.$push(self.$expr(child))} + else {return self.$raise("" + "Unsupported xstr part: " + (child.$type()))}})() + }, $XStringNode_compile_child$3.$$arity = 1); + + Opal.def(self, '$compile_single_line', $XStringNode_compile_single_line$4 = function $$compile_single_line(children) { + var $$5, self = this, has_embeded_return = nil, first_child = nil, single_child = nil, $ret_or_1 = nil, first_value = nil, $ret_or_2 = nil, last_child = nil, $ret_or_3 = nil, last_value = nil; + + + has_embeded_return = false; + first_child = children.$shift(); + single_child = children['$empty?'](); + first_child = (function() {if ($truthy(($ret_or_1 = first_child))) { + return $ret_or_1 + } else { + return self.$s("nil") + }; return nil; })(); + if (first_child.$type()['$==']("str")) { + + first_value = first_child.$loc().$expression().$source().$strip(); + has_embeded_return = first_value['$=~'](/^return\b/);}; + if ($truthy((function() {if ($truthy(($ret_or_2 = self.returning))) { + return has_embeded_return['$!']() + } else { + return $ret_or_2 + }; return nil; })())) { + self.$push("return ")}; + last_child = (function() {if ($truthy(($ret_or_3 = children.$pop()))) { + return $ret_or_3 + } else { + return first_child + }; return nil; })(); + if (last_child.$type()['$==']("str")) { + last_value = self.$extract_last_value(last_child)}; + if ($truthy(single_child)) { + } else { + + self.should_add_semicolon = false; + self.$compile_child(first_child); + $send(children, 'each', [], ($$5 = function(c){var self = $$5.$$s == null ? this : $$5.$$s; + + + + if (c == null) { + c = nil; + }; + return self.$compile_child(c);}, $$5.$$s = self, $$5.$$arity = 1, $$5)); + }; + if (last_child.$type()['$==']("str")) { + return self.$push($$($nesting, 'Fragment').$new(last_value, self.$scope(), last_child)) + } else { + return self.$compile_child(last_child) + }; + }, $XStringNode_compile_single_line$4.$$arity = 1); + + Opal.def(self, '$extract_last_value', $XStringNode_extract_last_value$6 = function $$extract_last_value(last_child) { + var self = this, last_value = nil, $ret_or_4 = nil, $ret_or_5 = nil; + + + last_value = last_child.$loc().$expression().$source().$rstrip(); + if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.returning))) { + return $ret_or_5 + } else { + return self['$expr?']() + }; return nil; })()))) { + return last_value['$end_with?'](";") + } else { + return $ret_or_4 + }; return nil; })())) { + + self.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional", last_child.$line()); + last_value = last_value['$[]']($range(0, -2, false));}; + if ($truthy(self.returning)) { + self.should_add_semicolon = true}; + return last_value; + }, $XStringNode_extract_last_value$6.$$arity = 1); + + Opal.def(self, '$single_line?', $XStringNode_single_line$ques$7 = function(children) { + var $$8, self = this, $ret_or_6 = nil; + + if ($truthy(($ret_or_6 = children.$size()['$=='](1)))) { + return $ret_or_6 + } else { + return $send(children, 'none?', [], ($$8 = function(c){var self = $$8.$$s == null ? this : $$8.$$s, $ret_or_7 = nil; + + + + if (c == null) { + c = nil; + }; + if ($truthy(($ret_or_7 = c.$type()['$==']("str")))) { + return c.$loc().$expression().$source()['$end_with?']("\n") + } else { + return $ret_or_7 + };}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + } + }, $XStringNode_single_line$ques$7.$$arity = 1); + + Opal.def(self, '$unpack_return', $XStringNode_unpack_return$9 = function $$unpack_return(children) { + var self = this, first_child = nil; + + + first_child = children.$first(); + self.returning = false; + if (first_child.$type()['$==']("js_return")) { + + self.returning = true; + children = first_child.$children();}; + return children; + }, $XStringNode_unpack_return$9.$$arity = 1); + return (Opal.def(self, '$strip_empty_children', $XStringNode_strip_empty_children$10 = function $$strip_empty_children(children) { + var $$11, $a, self = this, empty_line = nil, $ret_or_10 = nil, $ret_or_11 = nil; + + + children = children.$dup(); + empty_line = $lambda(($$11 = function(child){var self = $$11.$$s == null ? this : $$11.$$s, $ret_or_8 = nil, $ret_or_9 = nil; + + + + if (child == null) { + child = nil; + }; + if ($truthy(($ret_or_8 = child['$nil?']()))) { + return $ret_or_8 + } else { + + if ($truthy(($ret_or_9 = child.$type()['$==']("str")))) { + return child.$loc().$expression().$source().$rstrip()['$empty?']() + } else { + return $ret_or_9 + }; + };}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + while ($truthy((function() {if ($truthy(($ret_or_10 = children['$any?']()))) { + return empty_line['$[]'](children.$first()) + } else { + return $ret_or_10 + }; return nil; })())) { + children.$shift() + }; + while ($truthy((function() {if ($truthy(($ret_or_11 = children['$any?']()))) { + return empty_line['$[]'](children.$last()) + } else { + return $ret_or_11 + }; return nil; })())) { + children.$pop() + }; + return children; + }, $XStringNode_strip_empty_children$10.$$arity = 1), nil) && 'strip_empty_children'; + })($nesting[0], $$($nesting, 'Base'), $nesting) + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["opal/nodes/lambda"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; + + Opal.add_stubs(['$require', '$handle', '$children', '$helper', '$defines_lambda', '$scope', '$push', '$expr', '$iter']); + + self.$require("opal/nodes/call"); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Nodes'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'LambdaNode'); + + var $nesting = [self].concat($parent_nesting), $LambdaNode_compile$1; + + + self.$handle("lambda"); + self.$children("iter"); + return (Opal.def(self, '$compile', $LambdaNode_compile$1 = function $$compile() { + var $$2, self = this; + + + self.$helper("lambda"); + return $send(self.$scope(), 'defines_lambda', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; + + return self.$push("$lambda(", self.$expr(self.$iter()), ")")}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + }, $LambdaNode_compile$1.$$arity = 0), nil) && 'compile'; + })($nesting[0], $$($nesting, 'Base'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/nodes"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["opal/nodes"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -26710,16 +38462,8 @@ Opal.modules["opal/nodes"] = function(Opal) { self.$require("opal/nodes/module"); self.$require("opal/nodes/class"); self.$require("opal/nodes/singleton_class"); - self.$require("opal/nodes/inline_args"); - self.$require("opal/nodes/args/normarg"); - self.$require("opal/nodes/args/optarg"); - self.$require("opal/nodes/args/mlhsarg"); - self.$require("opal/nodes/args/restarg"); - self.$require("opal/nodes/args/kwarg"); - self.$require("opal/nodes/args/kwoptarg"); - self.$require("opal/nodes/args/kwrestarg"); - self.$require("opal/nodes/args/post_kwargs"); - self.$require("opal/nodes/args/post_args"); + self.$require("opal/nodes/args"); + self.$require("opal/nodes/args/arity_check"); self.$require("opal/nodes/iter"); self.$require("opal/nodes/def"); self.$require("opal/nodes/defs"); @@ -26736,430 +38480,861 @@ Opal.modules["opal/nodes"] = function(Opal) { self.$require("opal/nodes/array"); self.$require("opal/nodes/defined"); self.$require("opal/nodes/masgn"); - return self.$require("opal/nodes/arglist"); + self.$require("opal/nodes/arglist"); + self.$require("opal/nodes/x_string"); + return self.$require("opal/nodes/lambda"); +}; + +Opal.modules["opal/eof_content"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; + + Opal.add_stubs(['$empty?', '$[]', '$last_token_position', '$drop_while', '$lines', '$==', '$join', '$private', '$last', '$end_pos']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'EofContent'); + + var $nesting = [self].concat($parent_nesting), $EofContent_initialize$1, $EofContent_eof$2, $EofContent_last_token_position$4; + + self.$$prototype.tokens = self.$$prototype.source = nil; + + Opal.const_set($nesting[0], 'DATA_SEPARATOR', "__END__\n"); + + Opal.def(self, '$initialize', $EofContent_initialize$1 = function $$initialize(tokens, source) { + var self = this; + + + self.tokens = tokens; + return (self.source = source); + }, $EofContent_initialize$1.$$arity = 2); + + Opal.def(self, '$eof', $EofContent_eof$2 = function $$eof() { + var $$3, self = this, eof_content = nil, $ret_or_1 = nil; + + + if ($truthy(self.tokens['$empty?']())) { + return nil}; + eof_content = self.source['$[]'](Opal.Range.$new(self.$last_token_position(), -1, false)); + if ($truthy(eof_content)) { + } else { + return nil + }; + eof_content = $send(eof_content.$lines(), 'drop_while', [], ($$3 = function(line){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (line == null) { + line = nil; + }; + return line['$==']("\n");}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + if (eof_content['$[]'](0)['$==']("__END__\n")) { + + eof_content = (function() {if ($truthy(($ret_or_1 = eof_content['$[]']($range(1, -1, false))))) { + return $ret_or_1 + } else { + return [] + }; return nil; })(); + return eof_content.$join(); + } else if (eof_content['$=='](["__END__"])) { + return "" + } else { + return nil + }; + }, $EofContent_eof$2.$$arity = 0); + self.$private(); + return (Opal.def(self, '$last_token_position', $EofContent_last_token_position$4 = function $$last_token_position() { + var $a, $b, self = this, _ = nil, last_token_info = nil, last_token_range = nil; + + + $b = self.tokens.$last(), $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_info = ($a[1] == null ? nil : $a[1])), $b; + $b = last_token_info, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_range = ($a[1] == null ? nil : $a[1])), $b; + return last_token_range.$end_pos(); + }, $EofContent_last_token_position$4.$$arity = 0), nil) && 'last_token_position'; + })($nesting[0], null, $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["opal/errors"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; + + Opal.add_stubs(['$attr_reader', '$attr_accessor', '$new', '$respond_to?', '$location', '$location=', '$-', '$diagnostic', '$diagnostic=', '$to_a', '$backtrace', '$unshift', '$to_s', '$set_backtrace', '$path', '$lineno', '$+', '$label', '$line', '$lineno=', '$source_line', '$label=', '$expression']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting), $Opal_opal_location_from_error$2, $Opal_add_opal_location_to_error$3; + + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Error'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'GemNotFound'); + + var $nesting = [self].concat($parent_nesting), $GemNotFound_initialize$1; + + + self.$attr_reader("gem_name"); + return (Opal.def(self, '$initialize', $GemNotFound_initialize$1 = function $$initialize(gem_name) { + var $iter = $GemNotFound_initialize$1.$$p, $yield = $iter || nil, self = this; + + if ($iter) $GemNotFound_initialize$1.$$p = null; + + self.gem_name = gem_name; + return $send2(self, $find_super(self, 'initialize', $GemNotFound_initialize$1, false, true), 'initialize', ["" + "can't find gem " + (gem_name)], null); + }, $GemNotFound_initialize$1.$$arity = 1), nil) && 'initialize'; + })($nesting[0], $$($nesting, 'Error'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'CompilationError'); + + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("location") + })($nesting[0], $$($nesting, 'Error'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ParsingError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'CompilationError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RewritingError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'ParsingError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SyntaxError'); + + var $nesting = [self].concat($parent_nesting); + + return self.$attr_accessor("location") + })($nesting[0], $$$('::', 'SyntaxError'), $nesting); + Opal.defs(self, '$opal_location_from_error', $Opal_opal_location_from_error$2 = function $$opal_location_from_error(error) { + var self = this, opal_location = nil, $writer = nil; + + + opal_location = $$($nesting, 'OpalBacktraceLocation').$new(); + if ($truthy(error['$respond_to?']("location"))) { + + $writer = [error.$location()]; + $send(opal_location, 'location=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];}; + if ($truthy(error['$respond_to?']("diagnostic"))) { + + $writer = [error.$diagnostic()]; + $send(opal_location, 'diagnostic=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];}; + return opal_location; + }, $Opal_opal_location_from_error$2.$$arity = 1); + Opal.defs(self, '$add_opal_location_to_error', $Opal_add_opal_location_to_error$3 = function $$add_opal_location_to_error(opal_location, error) { + var self = this, backtrace = nil; + + + backtrace = error.$backtrace().$to_a(); + backtrace.$unshift(opal_location.$to_s()); + error.$set_backtrace(backtrace); + return error; + }, $Opal_add_opal_location_to_error$3.$$arity = 2); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'OpalBacktraceLocation'); + + var $nesting = [self].concat($parent_nesting), $OpalBacktraceLocation_initialize$4, $OpalBacktraceLocation_to_s$5, $OpalBacktraceLocation_diagnostic$eq$6, $OpalBacktraceLocation_location$eq$7; + + + self.$attr_accessor("path", "lineno", "label"); + + Opal.def(self, '$initialize', $OpalBacktraceLocation_initialize$4 = function $$initialize(path, lineno, label) { + var $a, self = this; + + + + if (path == null) { + path = nil; + }; + + if (lineno == null) { + lineno = nil; + }; + + if (label == null) { + label = nil; + }; + return $a = [path, lineno, label], (self.path = $a[0]), (self.lineno = $a[1]), (self.label = $a[2]), $a; + }, $OpalBacktraceLocation_initialize$4.$$arity = -1); + + Opal.def(self, '$to_s', $OpalBacktraceLocation_to_s$5 = function $$to_s() { + var self = this, string = nil; + + + string = self.$path(); + if ($truthy(self.$lineno())) { + string = $rb_plus(string, "" + ":" + (self.$lineno()))}; + string = $rb_plus(string, ":in "); + if ($truthy(self.$label())) { + string = $rb_plus(string, "" + "`" + (self.$label()) + "'") + } else { + string = $rb_plus(string, "unknown") + }; + return string; + }, $OpalBacktraceLocation_to_s$5.$$arity = 0); + $alias(self, "line", "lineno"); + + Opal.def(self, '$diagnostic=', $OpalBacktraceLocation_diagnostic$eq$6 = function(diagnostic) { + var self = this, $writer = nil; + + + if ($truthy(diagnostic)) { + } else { + return nil + }; + + $writer = [diagnostic.$location()]; + $send(self, 'location=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; + }, $OpalBacktraceLocation_diagnostic$eq$6.$$arity = 1); + return (Opal.def(self, '$location=', $OpalBacktraceLocation_location$eq$7 = function(location) { + var self = this, $writer = nil; + + + if ($truthy(location)) { + } else { + return nil + }; + + $writer = [location.$line()]; + $send(self, 'lineno=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(location['$respond_to?']("source_line"))) { + + $writer = [location.$source_line()]; + $send(self, 'label=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } else if ($truthy(location['$respond_to?']("expression"))) { + + $writer = [location.$expression().$source_line()]; + $send(self, 'label=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } else { + return nil + }; + }, $OpalBacktraceLocation_location$eq$7.$$arity = 1), nil) && 'location='; + })($nesting[0], null, $nesting); + })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/eof_content"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; +Opal.modules["opal/magic_comments"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_ge(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$empty?', '$[]', '$last_token_position', '$drop_while', '$lines', '$==', '$join', '$private', '$last', '$end_pos']); + Opal.add_stubs(['$freeze', '$line', '$loc', '$take', '$each', '$>=', '$any?', '$scan', '$text', '$to_sym', '$===', '$[]=', '$-']); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var self = $module($base, 'MagicComments'); - (function($base, $super, $parent_nesting) { - function $EofContent(){}; - var self = $EofContent = $klass($base, $super, 'EofContent', $EofContent); + var $nesting = [self].concat($parent_nesting), $MagicComments_parse$1; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_EofContent_initialize_1, TMP_EofContent_eof_3, TMP_EofContent_last_token_position_4; + + Opal.const_set($nesting[0], 'MAGIC_COMMENT_RE', /^# *(\w+) *: *(\S+.*?) *$/.$freeze()); + Opal.const_set($nesting[0], 'EMACS_MAGIC_COMMENT_RE', /^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()); + return (Opal.defs(self, '$parse', $MagicComments_parse$1 = function $$parse(sexp, comments) { + var $$2, self = this, flags = nil, first_line = nil; - def.tokens = def.source = nil; - - Opal.const_set($nesting[0], 'DATA_SEPARATOR', "__END__\n"); - Opal.defn(self, '$initialize', TMP_EofContent_initialize_1 = function $$initialize(tokens, source) { - var self = this; - + flags = $hash2([], {}); + if ($truthy(sexp)) { - self.tokens = tokens; - return (self.source = source); - }, TMP_EofContent_initialize_1.$$arity = 2); - - Opal.defn(self, '$eof', TMP_EofContent_eof_3 = function $$eof() { - var TMP_2, $a, self = this, eof_content = nil; + first_line = sexp.$loc().$line(); + comments = comments.$take(first_line);}; + $send(comments, 'each', [], ($$2 = function(comment){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $ret_or_1 = nil, $ret_or_2 = nil, parts = nil; - if ($truthy(self.tokens['$empty?']())) { - return nil}; - eof_content = self.source['$[]'](Opal.Range.$new(self.$last_token_position(), -1, false)); - if ($truthy(eof_content)) { - } else { - return nil - }; - eof_content = $send(eof_content.$lines(), 'drop_while', [], (TMP_2 = function(line){var self = TMP_2.$$s || this; -if (line == null) line = nil; - return line['$==']("\n")}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - if (eof_content['$[]'](0)['$==']("__END__\n")) { - - eof_content = ($truthy($a = eof_content['$[]']($range(1, -1, false))) ? $a : []); - return eof_content.$join(); - } else if (eof_content['$=='](["__END__"])) { - return "" - } else { - return nil + + if (comment == null) { + comment = nil; }; - }, TMP_EofContent_eof_3.$$arity = 0); - self.$private(); - return (Opal.defn(self, '$last_token_position', TMP_EofContent_last_token_position_4 = function $$last_token_position() { - var $a, $b, self = this, _ = nil, last_token_info = nil, last_token_range = nil; + if ($truthy((function() {if ($truthy(($ret_or_1 = first_line))) { + return $rb_ge(comment.$loc().$line(), first_line) + } else { + return $ret_or_1 + }; return nil; })())) { + return nil;}; + if ($truthy((function() {if ($truthy(($ret_or_2 = (parts = comment.$text().$scan($$($nesting, 'MAGIC_COMMENT_RE')))['$any?']()))) { + return $ret_or_2 + } else { + return (parts = comment.$text().$scan($$($nesting, 'EMACS_MAGIC_COMMENT_RE')))['$any?']() + }; return nil; })())) { + return $send(parts, 'each', [], ($$3 = function(key, value){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil, $case = nil; - - $b = self.tokens.$last(), $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_info = ($a[1] == null ? nil : $a[1])), $b; - $b = last_token_info, $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (last_token_range = ($a[1] == null ? nil : $a[1])), $b; - return last_token_range.$end_pos(); - }, TMP_EofContent_last_token_position_4.$$arity = 0), nil) && 'last_token_position'; - })($nesting[0], null, $nesting) - })($nesting[0], $nesting) + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + $writer = [key.$to_sym(), (function() {$case = value; + if ("true"['$===']($case)) {return true} + else if ("false"['$===']($case)) {return false} + else {return value}})()]; + $send(flags, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 2, $$3)) + } else { + return nil + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + return flags; + }, $MagicComments_parse$1.$$arity = 2), nil) && 'parse'; + })($$($nesting, 'Opal'), $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/compiler"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } +Opal.modules["opal/compiler"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $hash2 = Opal.hash2, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $alias = Opal.alias, $slice = Opal.slice; - Opal.add_stubs(['$require', '$compile', '$new', '$[]', '$define_method', '$fetch', '$!', '$include?', '$raise', '$+', '$inspect', '$compiler_option', '$attr_reader', '$attr_accessor', '$parse', '$flatten', '$process', '$join', '$map', '$to_proc', '$file', '$source=', '$-', '$default_parser', '$tokenize', '$message', '$backtrace', '$s', '$associate_locations', '$eof', '$warn', '$to_s', '$empty?', '$gsub', '$<<', '$helpers', '$new_temp', '$queue_temp', '$push_while', '$indent', '$pop_while', '$in_while?', '$==', '$fragment', '$scope', '$handlers', '$type', '$compile_to_fragments', '$error', '$returns', '$===', '$updated', '$any?', '$children', '$select', '$end_with?', '$loc', '$uses_block!', '$block_name', '$find_parent_def']); + Opal.add_stubs(['$require', '$compile', '$new', '$freeze', '$join', '$dirname', '$first', '$split', '$basename', '$to_s', '$cleanpath', '$Pathname', '$fetch', '$define_method', '$option_value', '$key?', '$[]', '$!', '$include?', '$raise', '$inspect', '$[]=', '$-', '$compiler_option', '$attr_reader', '$attr_accessor', '$parse', '$re_raise_with_location', '$flatten', '$process', '$end_with?', '$code', '$last', '$<<', '$fragment', '$s', '$map', '$to_proc', '$file', '$source=', '$default_parser', '$tokenize', '$requirable?', '$eval?', '$tap', '$meta', '$associate_locations', '$eof', '$magic_comments', '$to_sym', '$strip', '$async_await_before_typecasting', '$===', '$async_await_set_to_regexp', '$to_a', '$gsub', '$escape', '$location=', '$opal_location_from_error', '$path=', '$label', '$lines', '$to_i', '$line', '$label=', '$message', '$set_backtrace', '$backtrace', '$add_opal_location_to_error', '$warn', '$empty?', '$+', '$start_with?', '$helpers', '$new_temp', '$queue_temp', '$push_while', '$pop_while', '$in_while?', '$nil?', '$scope', '$handlers', '$type', '$compile_to_fragments', '$error', '$returns', '$updated', '$children', '$==', '$uses_block!', '$block_name', '$find_parent_def', '$cache', '$source_map']); self.$require("set"); self.$require("opal/parser"); self.$require("opal/fragment"); self.$require("opal/nodes"); self.$require("opal/eof_content"); + self.$require("opal/errors"); + self.$require("opal/magic_comments"); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Opal_compile_1; + var $nesting = [self].concat($parent_nesting), $Opal_compile$1; - Opal.defs(self, '$compile', TMP_Opal_compile_1 = function $$compile(source, options) { + Opal.defs(self, '$compile', $Opal_compile$1 = function $$compile(source, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return Opal.const_get_relative($nesting, 'Compiler').$new(source, options).$compile() - }, TMP_Opal_compile_1.$$arity = -2); - (function($base, $super, $parent_nesting) { - function $Compiler(){}; - var self = $Compiler = $klass($base, $super, 'Compiler', $Compiler); + }; + return $$($nesting, 'Compiler').$new(source, options).$compile(); + }, $Opal_compile$1.$$arity = -2); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Compiler'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Compiler_compiler_option_4, TMP_Compiler_initialize_5, TMP_Compiler_compile_6, TMP_Compiler_parse_7, TMP_Compiler_source_map_8, TMP_Compiler_helpers_9, TMP_Compiler_operator_helpers_10, TMP_Compiler_method_calls_11, TMP_Compiler_error_12, TMP_Compiler_warning_13, TMP_Compiler_parser_indent_14, TMP_Compiler_s_15, TMP_Compiler_fragment_16, TMP_Compiler_unique_temp_17, TMP_Compiler_helper_18, TMP_Compiler_indent_19, TMP_Compiler_with_temp_20, TMP_Compiler_in_while_21, TMP_Compiler_in_ensure_23, TMP_Compiler_in_ensure$q_24, TMP_Compiler_in_case_25, TMP_Compiler_in_while$q_26, TMP_Compiler_process_27, TMP_Compiler_handlers_28, TMP_Compiler_requires_29, TMP_Compiler_required_trees_30, TMP_Compiler_returns_35, TMP_Compiler_handle_block_given_call_36; + var $nesting = [self].concat($parent_nesting), $Compiler_module_name$2, $Compiler_compiler_option$3, $Compiler_option_value$5, $Compiler_initialize$6, $Compiler_compile$7, $Compiler_parse$9, $Compiler_source_map$12, $Compiler_helpers$13, $Compiler_operator_helpers$15, $Compiler_method_calls$16, $Compiler_async_await$17, $Compiler_async_await_set_to_regexp$19, $Compiler_error$21, $Compiler_re_raise_with_location$22, $Compiler_warning$23, $Compiler_parser_indent$24, $Compiler_s$25, $Compiler_fragment$26, $Compiler_unique_temp$27, $Compiler_helper$28, $Compiler_indent$29, $Compiler_with_temp$30, $Compiler_in_while$31, $Compiler_in_case$32, $Compiler_in_while$ques$33, $Compiler_process$34, $Compiler_handlers$35, $Compiler_requires$36, $Compiler_required_trees$37, $Compiler_autoloads$38, $Compiler_returns$39, $Compiler_handle_block_given_call$41, $Compiler_marshal_dump$42, $Compiler_marshal_load$43; - def.sexp = def.fragments = def.source = def.buffer = def.parser = def.helpers = def.operator_helpers = def.method_calls = def.indent = def.unique = def.scope = def.in_ensure = def.case_stmt = def.handlers = def.requires = def.required_trees = nil; + self.$$prototype.option_values = self.$$prototype.options = self.$$prototype.magic_comments = self.$$prototype.fragments = self.$$prototype.source = self.$$prototype.buffer = self.$$prototype.source_map = self.$$prototype.result = self.$$prototype.helpers = self.$$prototype.operator_helpers = self.$$prototype.method_calls = self.$$prototype.async_await = self.$$prototype.indent = self.$$prototype.unique = self.$$prototype.scope = self.$$prototype.case_stmt = self.$$prototype.handlers = self.$$prototype.requires = self.$$prototype.required_trees = self.$$prototype.autoloads = nil; Opal.const_set($nesting[0], 'INDENT', " "); - Opal.const_set($nesting[0], 'COMPARE', ["<", ">", "<=", ">="]); - Opal.defs(self, '$compiler_option', TMP_Compiler_compiler_option_4 = function $$compiler_option(name, default_value, options) { - var $a, TMP_2, self = this, mid = nil, valid_values = nil; + Opal.const_set($nesting[0], 'COMPARE', ["<", ">", "<=", ">="].$freeze()); + Opal.defs(self, '$module_name', $Compiler_module_name$2 = function $$module_name(path) { + var self = this; - if (options == null) { - options = $hash2([], {}); - } - mid = options['$[]']("as"); - valid_values = options['$[]']("valid_values"); - return $send(self, 'define_method', [($truthy($a = mid) ? $a : name)], (TMP_2 = function(){var self = TMP_2.$$s || this, TMP_3, $b, value = nil; - if (self.options == null) self.options = nil; - - - value = $send(self.options, 'fetch', [name], (TMP_3 = function(){var self = TMP_3.$$s || this; - - return default_value}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)); - if ($truthy(($truthy($b = valid_values) ? valid_values['$include?'](value)['$!']() : $b))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), $rb_plus("" + "invalid value " + (value.$inspect()) + " for option " + (name.$inspect()) + " ", "" + "(valid values: " + (valid_values.$inspect()) + ")"))}; - return value;}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); - }, TMP_Compiler_compiler_option_4.$$arity = -3); - self.$compiler_option("file", "(file)"); - self.$compiler_option("method_missing", true, $hash2(["as"], {"as": "method_missing?"})); - self.$compiler_option("arity_check", false, $hash2(["as"], {"as": "arity_check?"})); - self.$compiler_option("freezing", true, $hash2(["as"], {"as": "freezing?"})); - self.$compiler_option("tainting", true, $hash2(["as"], {"as": "tainting?"})); - self.$compiler_option("irb", false, $hash2(["as"], {"as": "irb?"})); - self.$compiler_option("dynamic_require_severity", "ignore", $hash2(["valid_values"], {"valid_values": ["error", "warning", "ignore"]})); - self.$compiler_option("requirable", false, $hash2(["as"], {"as": "requirable?"})); - self.$compiler_option("inline_operators", true, $hash2(["as"], {"as": "inline_operators?"})); - self.$compiler_option("eval", false, $hash2(["as"], {"as": "eval?"})); - self.$compiler_option("enable_source_location", false, $hash2(["as"], {"as": "enable_source_location?"})); - self.$compiler_option("parse_comments", false, $hash2(["as"], {"as": "parse_comments?"})); + path = $$($nesting, 'File').$join($$($nesting, 'File').$dirname(path), $$($nesting, 'File').$basename(path).$split(".").$first()); + return self.$Pathname(path).$cleanpath().$to_s(); + }, $Compiler_module_name$2.$$arity = 1); + Opal.defs(self, '$compiler_option', $Compiler_compiler_option$3 = function $$compiler_option(name, config) { + var $$4, self = this, method_name = nil; + + + + if (config == null) { + config = $hash2([], {}); + }; + method_name = config.$fetch("as", name); + return $send(self, 'define_method', [method_name], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; + + return self.$option_value(name, config)}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + }, $Compiler_compiler_option$3.$$arity = -2); + + Opal.def(self, '$option_value', $Compiler_option_value$5 = function $$option_value(name, config) { + var self = this, default_value = nil, valid_values = nil, magic_comment = nil, value = nil, $ret_or_1 = nil, $ret_or_2 = nil, $writer = nil; + + + if ($truthy(self.option_values['$key?'](name))) { + return self.option_values['$[]'](name)}; + default_value = config['$[]']("default"); + valid_values = config['$[]']("valid_values"); + magic_comment = config['$[]']("magic_comment"); + value = self.options.$fetch(name, default_value); + if ($truthy((function() {if ($truthy(($ret_or_1 = magic_comment))) { + return self.magic_comments['$key?'](name) + } else { + return $ret_or_1 + }; return nil; })())) { + value = self.magic_comments.$fetch(name)}; + if ($truthy((function() {if ($truthy(($ret_or_2 = valid_values))) { + return valid_values['$include?'](value)['$!']() + } else { + return $ret_or_2 + }; return nil; })())) { + self.$raise($$($nesting, 'ArgumentError'), "" + ("" + "invalid value " + (value.$inspect()) + " for option " + (name.$inspect()) + " ") + ("" + "(valid values: " + (valid_values.$inspect()) + ")"))}; + + $writer = [name, value]; + $send(self.option_values, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; + }, $Compiler_option_value$5.$$arity = 2); + self.$compiler_option("file", $hash2(["default"], {"default": "(file)"})); + self.$compiler_option("method_missing", $hash2(["default", "as"], {"default": true, "as": "method_missing?"})); + self.$compiler_option("arity_check", $hash2(["default", "as"], {"default": false, "as": "arity_check?"})); + self.$compiler_option("freezing", $hash2(["default", "as"], {"default": true, "as": "freezing?"})); + self.$compiler_option("irb", $hash2(["default", "as"], {"default": false, "as": "irb?"})); + self.$compiler_option("dynamic_require_severity", $hash2(["default", "valid_values"], {"default": "ignore", "valid_values": ["error", "warning", "ignore"]})); + self.$compiler_option("requirable", $hash2(["default", "as"], {"default": false, "as": "requirable?"})); + self.$compiler_option("esm", $hash2(["default", "as"], {"default": false, "as": "esm?"})); + self.$compiler_option("inline_operators", $hash2(["default", "as"], {"default": true, "as": "inline_operators?"})); + self.$compiler_option("eval", $hash2(["default", "as"], {"default": false, "as": "eval?"})); + self.$compiler_option("enable_source_location", $hash2(["default", "as"], {"default": false, "as": "enable_source_location?"})); + self.$compiler_option("use_strict", $hash2(["default", "as", "magic_comment"], {"default": false, "as": "use_strict?", "magic_comment": true})); + self.$compiler_option("parse_comments", $hash2(["default", "as"], {"default": false, "as": "parse_comments?"})); + self.$compiler_option("scope_variables", $hash2(["default"], {"default": []})); + self.$compiler_option("await", $hash2(["default", "as", "magic_comment"], {"default": false, "as": "async_await", "magic_comment": true})); self.$attr_reader("result"); self.$attr_reader("fragments"); self.$attr_accessor("scope"); self.$attr_reader("case_stmt"); self.$attr_reader("eof_content"); self.$attr_reader("comments"); + self.$attr_reader("magic_comments"); - Opal.defn(self, '$initialize', TMP_Compiler_initialize_5 = function $$initialize(source, options) { + Opal.def(self, '$initialize', $Compiler_initialize$6 = function $$initialize(source, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - + }; self.source = source; self.indent = ""; self.unique = 0; self.options = options; - self.comments = Opal.const_get_relative($nesting, 'Hash').$new([]); - return (self.case_stmt = nil); - }, TMP_Compiler_initialize_5.$$arity = -2); + self.comments = $$($nesting, 'Hash').$new([]); + self.case_stmt = nil; + self.option_values = $hash2([], {}); + return (self.magic_comments = $hash2([], {})); + }, $Compiler_initialize$6.$$arity = -2); - Opal.defn(self, '$compile', TMP_Compiler_compile_6 = function $$compile() { - var self = this; + Opal.def(self, '$compile', $Compiler_compile$7 = function $$compile() { + var $$8, self = this; self.$parse(); - self.fragments = self.$process(self.sexp).$flatten(); + self.fragments = $send(self, 're_raise_with_location', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + if (self.sexp == null) self.sexp = nil; + + return self.$process(self.sexp).$flatten()}, $$8.$$s = self, $$8.$$arity = 0, $$8)); + if ($truthy(self.fragments.$last().$code()['$end_with?']("\n"))) { + } else { + self.fragments['$<<'](self.$fragment("\n", nil, self.$s("newline"))) + }; return (self.result = $send(self.fragments, 'map', [], "code".$to_proc()).$join("")); - }, TMP_Compiler_compile_6.$$arity = 0); + }, $Compiler_compile$7.$$arity = 0); - Opal.defn(self, '$parse', TMP_Compiler_parse_7 = function $$parse() { - var $a, $b, self = this, $writer = nil, sexp = nil, comments = nil, tokens = nil, error = nil; + Opal.def(self, '$parse', $Compiler_parse$9 = function $$parse() { + var $a, $b, $$10, $$11, self = this, $writer = nil, sexp = nil, comments = nil, tokens = nil, kind = nil, $ret_or_3 = nil; - self.buffer = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Opal'), 'Source'), 'Buffer').$new(self.$file(), 1); + self.buffer = $$$($$$($$$('::', 'Opal'), 'Parser'), 'SourceBuffer').$new(self.$file(), 1); $writer = [self.source]; $send(self.buffer, 'source=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - self.parser = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Parser').$default_parser(); - - try { - $b = self.parser.$tokenize(self.buffer), $a = Opal.to_ary($b), (sexp = ($a[0] == null ? nil : $a[0])), (comments = ($a[1] == null ? nil : $a[1])), (tokens = ($a[2] == null ? nil : $a[2])), $b - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_qualified(Opal.const_get_qualified('::', 'Parser'), 'SyntaxError')])) {error = $err; - try { - self.$raise(Opal.const_get_qualified('::', 'SyntaxError'), error.$message(), error.$backtrace()) - } finally { Opal.pop_exception() } - } else { throw $err; } - };; - self.sexp = self.$s("top", ($truthy($a = sexp) ? $a : self.$s("nil"))); - self.comments = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Parser'), 'Source'), 'Comment').$associate_locations(sexp, comments); - return (self.eof_content = Opal.const_get_relative($nesting, 'EofContent').$new(tokens, self.source).$eof()); - }, TMP_Compiler_parse_7.$$arity = 0); - - Opal.defn(self, '$source_map', TMP_Compiler_source_map_8 = function $$source_map(source_file) { - var $a, self = this; + self.parser = $$$($$($nesting, 'Opal'), 'Parser').$default_parser(); + $b = $send(self, 're_raise_with_location', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; + if (self.parser == null) self.parser = nil; + if (self.buffer == null) self.buffer = nil; + + return self.parser.$tokenize(self.buffer)}, $$10.$$s = self, $$10.$$arity = 0, $$10)), $a = Opal.to_ary($b), (sexp = ($a[0] == null ? nil : $a[0])), (comments = ($a[1] == null ? nil : $a[1])), (tokens = ($a[2] == null ? nil : $a[2])), $b; + kind = (function() { + if ($truthy(self['$requirable?']())) {return "require"} + else if ($truthy(self['$eval?']())) {return "eval"} + else {return "main"}})(); + self.sexp = $send(self.$s("top", (function() {if ($truthy(($ret_or_3 = sexp))) { + return $ret_or_3 + } else { + return self.$s("nil") + }; return nil; })()), 'tap', [], ($$11 = function(i){var self = $$11.$$s == null ? this : $$11.$$s; - if (source_file == null) { - source_file = nil; + + + if (i == null) { + i = nil; + }; + $writer = ["kind", kind]; + $send(i.$meta(), '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + self.comments = $$$($$$($$$('::', 'Parser'), 'Source'), 'Comment').$associate_locations(sexp, comments); + self.magic_comments = $$($nesting, 'MagicComments').$parse(sexp, comments); + return (self.eof_content = $$($nesting, 'EofContent').$new(tokens, self.source).$eof()); + }, $Compiler_parse$9.$$arity = 0); + + Opal.def(self, '$source_map', $Compiler_source_map$12 = function $$source_map() { + var self = this, $ret_or_4 = nil; + + if ($truthy(($ret_or_4 = self.source_map))) { + return $ret_or_4 + } else { + return $$$($$$($$$('::', 'Opal'), 'SourceMap'), 'File').$new(self.fragments, self.$file(), self.source, self.result) } - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'SourceMap').$new(self.fragments, ($truthy($a = source_file) ? $a : self.$file())) - }, TMP_Compiler_source_map_8.$$arity = -1); + }, $Compiler_source_map$12.$$arity = 0); - Opal.defn(self, '$helpers', TMP_Compiler_helpers_9 = function $$helpers() { - var $a, self = this; + Opal.def(self, '$helpers', $Compiler_helpers$13 = function $$helpers() { + var $$14, self = this, $ret_or_5 = nil; + + return (self.helpers = (function() {if ($truthy(($ret_or_5 = self.helpers))) { + return $ret_or_5 + } else { + return $$($nesting, 'Set').$new($send(self.$magic_comments()['$[]']("helpers").$to_s().$split(","), 'map', [], ($$14 = function(h){var self = $$14.$$s == null ? this : $$14.$$s; - return (self.helpers = ($truthy($a = self.helpers) ? $a : Opal.const_get_relative($nesting, 'Set').$new(["breaker", "slice"]))) - }, TMP_Compiler_helpers_9.$$arity = 0); + + + if (h == null) { + h = nil; + }; + return h.$strip().$to_sym();}, $$14.$$s = self, $$14.$$arity = 1, $$14))) + }; return nil; })()) + }, $Compiler_helpers$13.$$arity = 0); - Opal.defn(self, '$operator_helpers', TMP_Compiler_operator_helpers_10 = function $$operator_helpers() { - var $a, self = this; + Opal.def(self, '$operator_helpers', $Compiler_operator_helpers$15 = function $$operator_helpers() { + var self = this, $ret_or_6 = nil; - return (self.operator_helpers = ($truthy($a = self.operator_helpers) ? $a : Opal.const_get_relative($nesting, 'Set').$new())) - }, TMP_Compiler_operator_helpers_10.$$arity = 0); + return (self.operator_helpers = (function() {if ($truthy(($ret_or_6 = self.operator_helpers))) { + return $ret_or_6 + } else { + return $$($nesting, 'Set').$new() + }; return nil; })()) + }, $Compiler_operator_helpers$15.$$arity = 0); - Opal.defn(self, '$method_calls', TMP_Compiler_method_calls_11 = function $$method_calls() { - var $a, self = this; + Opal.def(self, '$method_calls', $Compiler_method_calls$16 = function $$method_calls() { + var self = this, $ret_or_7 = nil; + + return (self.method_calls = (function() {if ($truthy(($ret_or_7 = self.method_calls))) { + return $ret_or_7 + } else { + return $$($nesting, 'Set').$new() + }; return nil; })()) + }, $Compiler_method_calls$16.$$arity = 0); + $alias(self, "async_await_before_typecasting", "async_await"); + + Opal.def(self, '$async_await', $Compiler_async_await$17 = function $$async_await() { + var $a, $$18, self = this, original = nil, $case = nil; + + if ($truthy((($a = self['async_await'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { + return self.async_await + } else { + + original = self.$async_await_before_typecasting(); + return (self.async_await = (function() {$case = original; + if ($$($nesting, 'String')['$===']($case)) {return self.$async_await_set_to_regexp($send(original.$split(","), 'map', [], ($$18 = function(h){var self = $$18.$$s == null ? this : $$18.$$s; - return (self.method_calls = ($truthy($a = self.method_calls) ? $a : Opal.const_get_relative($nesting, 'Set').$new())) - }, TMP_Compiler_method_calls_11.$$arity = 0); + + + if (h == null) { + h = nil; + }; + return h.$strip().$to_sym();}, $$18.$$s = self, $$18.$$arity = 1, $$18)))} + else if ($$($nesting, 'Array')['$===']($case) || $$($nesting, 'Set')['$===']($case)) {return self.$async_await_set_to_regexp($send(original.$to_a(), 'map', [], "to_sym".$to_proc()))} + else if ($$($nesting, 'Regexp')['$===']($case) || true['$===']($case) || false['$===']($case)) {return original} + else {return self.$raise("" + "A value of await compiler option can be either " + "a Set, an Array, a String or a Boolean.")}})()); + } + }, $Compiler_async_await$17.$$arity = 0); - Opal.defn(self, '$error', TMP_Compiler_error_12 = function $$error(msg, line) { - var self = this; + Opal.def(self, '$async_await_set_to_regexp', $Compiler_async_await_set_to_regexp$19 = function $$async_await_set_to_regexp(set) { + var $$20, self = this; + + + set = $send(set, 'map', [], ($$20 = function(name){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (name == null) { + name = nil; + }; + return $$($nesting, 'Regexp').$escape(name.$to_s()).$gsub("\\*", ".*?");}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + set = set.$join("|"); + return Opal.regexp(["^(", set, ")$"]); + }, $Compiler_async_await_set_to_regexp$19.$$arity = 1); + + Opal.def(self, '$error', $Compiler_error$21 = function $$error(msg, line) { + var self = this, error = nil, $writer = nil; + + if (line == null) { line = nil; + }; + error = $$$($$$('::', 'Opal'), 'SyntaxError').$new(msg); + + $writer = [$$$($$($nesting, 'Opal'), 'OpalBacktraceLocation').$new(self.$file(), line)]; + $send(error, 'location=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + return self.$raise(error); + }, $Compiler_error$21.$$arity = -2); + + Opal.def(self, '$re_raise_with_location', $Compiler_re_raise_with_location$22 = function $$re_raise_with_location() { + var $iter = $Compiler_re_raise_with_location$22.$$p, $yield = $iter || nil, self = this, error = nil, opal_location = nil, $writer = nil, $ret_or_8 = nil, new_error = nil; + + if ($iter) $Compiler_re_raise_with_location$22.$$p = null; + try { + return Opal.yieldX($yield, []); + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'StandardError'), $$$($$$('::', 'Opal'), 'SyntaxError')])) {(error = $err) + try { + + opal_location = $$$('::', 'Opal').$opal_location_from_error(error); + + $writer = [self.$file()]; + $send(opal_location, 'path=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(($ret_or_8 = opal_location.$label()))) { + $ret_or_8 + } else { + + $writer = [self.source.$lines()['$[]']($rb_minus(opal_location.$line().$to_i(), 1)).$strip()]; + $send(opal_location, 'label=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + new_error = $$$($$$('::', 'Opal'), 'SyntaxError').$new(error.$message()); + new_error.$set_backtrace(error.$backtrace()); + $$$('::', 'Opal').$add_opal_location_to_error(opal_location, new_error); + return self.$raise(new_error); + } finally { Opal.pop_exception(); } + } else { throw $err; } } - return self.$raise(Opal.const_get_relative($nesting, 'SyntaxError'), "" + (msg) + " :" + (self.$file()) + ":" + (line)) - }, TMP_Compiler_error_12.$$arity = -2); + }, $Compiler_re_raise_with_location$22.$$arity = 0); - Opal.defn(self, '$warning', TMP_Compiler_warning_13 = function $$warning(msg, line) { + Opal.def(self, '$warning', $Compiler_warning$23 = function $$warning(msg, line) { var self = this; + + if (line == null) { line = nil; - } - return self.$warn("" + "WARNING: " + (msg) + " -- " + (self.$file()) + ":" + (line)) - }, TMP_Compiler_warning_13.$$arity = -2); + }; + return self.$warn("" + "warning: " + (msg) + " -- " + (self.$file()) + ":" + (line)); + }, $Compiler_warning$23.$$arity = -2); - Opal.defn(self, '$parser_indent', TMP_Compiler_parser_indent_14 = function $$parser_indent() { + Opal.def(self, '$parser_indent', $Compiler_parser_indent$24 = function $$parser_indent() { var self = this; return self.indent - }, TMP_Compiler_parser_indent_14.$$arity = 0); + }, $Compiler_parser_indent$24.$$arity = 0); - Opal.defn(self, '$s', TMP_Compiler_s_15 = function $$s(type, $a_rest) { - var self = this, children; + Opal.def(self, '$s', $Compiler_s$25 = function $$s(type, $a) { + var $post_args, children, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - children = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - children[$arg_idx - 1] = arguments[$arg_idx]; - } - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Opal'), 'AST'), 'Node').$new(type, children) - }, TMP_Compiler_s_15.$$arity = -2); + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + children = $post_args;; + return $$$($$$($$$('::', 'Opal'), 'AST'), 'Node').$new(type, children); + }, $Compiler_s$25.$$arity = -2); - Opal.defn(self, '$fragment', TMP_Compiler_fragment_16 = function $$fragment(str, scope, sexp) { + Opal.def(self, '$fragment', $Compiler_fragment$26 = function $$fragment(str, scope, sexp) { var self = this; + + if (sexp == null) { sexp = nil; - } - return Opal.const_get_relative($nesting, 'Fragment').$new(str, scope, sexp) - }, TMP_Compiler_fragment_16.$$arity = -3); + }; + return $$($nesting, 'Fragment').$new(str, scope, sexp); + }, $Compiler_fragment$26.$$arity = -3); - Opal.defn(self, '$unique_temp', TMP_Compiler_unique_temp_17 = function $$unique_temp(name) { - var $a, self = this, unique = nil; + Opal.def(self, '$unique_temp', $Compiler_unique_temp$27 = function $$unique_temp(name) { + var self = this, $ret_or_9 = nil, unique = nil; name = name.$to_s(); - if ($truthy(($truthy($a = name) ? name['$empty?']()['$!']() : $a))) { - name = (("" + "_") + (name)).$gsub("?", "$q").$gsub("!", "$B").$gsub("=", "$eq").$gsub("<", "$lt").$gsub(">", "$gt").$gsub(/[^\w\$]/, "$")}; + if ($truthy((function() {if ($truthy(($ret_or_9 = name))) { + return name['$empty?']()['$!']() + } else { + return $ret_or_9 + }; return nil; })())) { + name = name.$to_s().$gsub("<=>", "$lt_eq_gt").$gsub("===", "$eq_eq_eq").$gsub("==", "$eq_eq").$gsub("=~", "$eq_tilde").$gsub("!~", "$excl_tilde").$gsub("!=", "$not_eq").$gsub("<=", "$lt_eq").$gsub(">=", "$gt_eq").$gsub("=", "$eq").$gsub("?", "$ques").$gsub("!", "$excl").$gsub("/", "$slash").$gsub("%", "$percent").$gsub("+", "$plus").$gsub("-", "$minus").$gsub("<", "$lt").$gsub(">", "$gt").$gsub(/[^\w\$]/, "$")}; unique = (self.unique = $rb_plus(self.unique, 1)); - return "" + "TMP" + (name) + "_" + (unique); - }, TMP_Compiler_unique_temp_17.$$arity = 1); + return "" + ((function() {if ($truthy(name['$start_with?']("$"))) { + return nil + } else { + return "$" + }; return nil; })()) + (name) + "$" + (unique); + }, $Compiler_unique_temp$27.$$arity = 1); - Opal.defn(self, '$helper', TMP_Compiler_helper_18 = function $$helper(name) { + Opal.def(self, '$helper', $Compiler_helper$28 = function $$helper(name) { var self = this; return self.$helpers()['$<<'](name) - }, TMP_Compiler_helper_18.$$arity = 1); + }, $Compiler_helper$28.$$arity = 1); - Opal.defn(self, '$indent', TMP_Compiler_indent_19 = function $$indent() { - var self = this, $iter = TMP_Compiler_indent_19.$$p, block = $iter || nil, indent = nil, res = nil; + Opal.def(self, '$indent', $Compiler_indent$29 = function $$indent() { + var $iter = $Compiler_indent$29.$$p, $yield = $iter || nil, self = this, indent = nil, res = nil; - if ($iter) TMP_Compiler_indent_19.$$p = null; + if ($iter) $Compiler_indent$29.$$p = null; indent = self.indent; - self.indent = $rb_plus(self.indent, Opal.const_get_relative($nesting, 'INDENT')); + self.indent = $rb_plus(self.indent, $$($nesting, 'INDENT')); self.space = "" + "\n" + (self.indent); - res = Opal.yieldX(block, []); + res = Opal.yieldX($yield, []); self.indent = indent; self.space = "" + "\n" + (self.indent); return res; - }, TMP_Compiler_indent_19.$$arity = 0); + }, $Compiler_indent$29.$$arity = 0); - Opal.defn(self, '$with_temp', TMP_Compiler_with_temp_20 = function $$with_temp() { - var self = this, $iter = TMP_Compiler_with_temp_20.$$p, block = $iter || nil, tmp = nil, res = nil; + Opal.def(self, '$with_temp', $Compiler_with_temp$30 = function $$with_temp() { + var $iter = $Compiler_with_temp$30.$$p, $yield = $iter || nil, self = this, tmp = nil, res = nil; - if ($iter) TMP_Compiler_with_temp_20.$$p = null; + if ($iter) $Compiler_with_temp$30.$$p = null; tmp = self.scope.$new_temp(); - res = Opal.yield1(block, tmp); + res = Opal.yield1($yield, tmp); self.scope.$queue_temp(tmp); return res; - }, TMP_Compiler_with_temp_20.$$arity = 0); + }, $Compiler_with_temp$30.$$arity = 0); - Opal.defn(self, '$in_while', TMP_Compiler_in_while_21 = function $$in_while() { - var TMP_22, self = this, $iter = TMP_Compiler_in_while_21.$$p, $yield = $iter || nil, result = nil; + Opal.def(self, '$in_while', $Compiler_in_while$31 = function $$in_while() { + var $iter = $Compiler_in_while$31.$$p, $yield = $iter || nil, self = this, result = nil; - if ($iter) TMP_Compiler_in_while_21.$$p = null; + if ($iter) $Compiler_in_while$31.$$p = null; if (($yield !== nil)) { - } else { + } else { return nil }; self.while_loop = self.scope.$push_while(); - result = $send(self, 'indent', [], (TMP_22 = function(){var self = TMP_22.$$s || this; - - return Opal.yieldX($yield, []);}, TMP_22.$$s = self, TMP_22.$$arity = 0, TMP_22)); - self.scope.$pop_while(); - return result; - }, TMP_Compiler_in_while_21.$$arity = 0); - - Opal.defn(self, '$in_ensure', TMP_Compiler_in_ensure_23 = function $$in_ensure() { - var self = this, $iter = TMP_Compiler_in_ensure_23.$$p, $yield = $iter || nil, result = nil; - - if ($iter) TMP_Compiler_in_ensure_23.$$p = null; - - if (($yield !== nil)) { - } else { - return nil - }; - self.in_ensure = true; result = Opal.yieldX($yield, []); - self.in_ensure = false; + self.scope.$pop_while(); return result; - }, TMP_Compiler_in_ensure_23.$$arity = 0); + }, $Compiler_in_while$31.$$arity = 0); - Opal.defn(self, '$in_ensure?', TMP_Compiler_in_ensure$q_24 = function() { - var self = this; - - return self.in_ensure['$!']()['$!']() - }, TMP_Compiler_in_ensure$q_24.$$arity = 0); - - Opal.defn(self, '$in_case', TMP_Compiler_in_case_25 = function $$in_case() { - var self = this, $iter = TMP_Compiler_in_case_25.$$p, $yield = $iter || nil, old = nil; + Opal.def(self, '$in_case', $Compiler_in_case$32 = function $$in_case() { + var $iter = $Compiler_in_case$32.$$p, $yield = $iter || nil, self = this, old = nil; - if ($iter) TMP_Compiler_in_case_25.$$p = null; + if ($iter) $Compiler_in_case$32.$$p = null; if (($yield !== nil)) { - } else { + } else { return nil }; old = self.case_stmt; self.case_stmt = $hash2([], {}); Opal.yieldX($yield, []); return (self.case_stmt = old); - }, TMP_Compiler_in_case_25.$$arity = 0); + }, $Compiler_in_case$32.$$arity = 0); - Opal.defn(self, '$in_while?', TMP_Compiler_in_while$q_26 = function() { + Opal.def(self, '$in_while?', $Compiler_in_while$ques$33 = function() { var self = this; return self.scope['$in_while?']() - }, TMP_Compiler_in_while$q_26.$$arity = 0); + }, $Compiler_in_while$ques$33.$$arity = 0); - Opal.defn(self, '$process', TMP_Compiler_process_27 = function $$process(sexp, level) { + Opal.def(self, '$process', $Compiler_process$34 = function $$process(sexp, level) { var self = this, handler = nil; + + if (level == null) { level = "expr"; - } - - if (sexp['$=='](nil)) { + }; + if ($truthy(sexp['$nil?']())) { return self.$fragment("", self.$scope())}; if ($truthy((handler = self.$handlers()['$[]'](sexp.$type())))) { return handler.$new(sexp, level, self).$compile_to_fragments() - } else { + } else { return self.$error("" + "Unsupported sexp: " + (sexp.$type())) }; - }, TMP_Compiler_process_27.$$arity = -2); + }, $Compiler_process$34.$$arity = -2); - Opal.defn(self, '$handlers', TMP_Compiler_handlers_28 = function $$handlers() { - var $a, self = this; + Opal.def(self, '$handlers', $Compiler_handlers$35 = function $$handlers() { + var self = this, $ret_or_10 = nil; - return (self.handlers = ($truthy($a = self.handlers) ? $a : Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Nodes'), 'Base').$handlers())) - }, TMP_Compiler_handlers_28.$$arity = 0); + return (self.handlers = (function() {if ($truthy(($ret_or_10 = self.handlers))) { + return $ret_or_10 + } else { + return $$$($$$($$($nesting, 'Opal'), 'Nodes'), 'Base').$handlers() + }; return nil; })()) + }, $Compiler_handlers$35.$$arity = 0); - Opal.defn(self, '$requires', TMP_Compiler_requires_29 = function $$requires() { - var $a, self = this; + Opal.def(self, '$requires', $Compiler_requires$36 = function $$requires() { + var self = this, $ret_or_11 = nil; + + return (self.requires = (function() {if ($truthy(($ret_or_11 = self.requires))) { + return $ret_or_11 + } else { + return [] + }; return nil; })()) + }, $Compiler_requires$36.$$arity = 0); + + Opal.def(self, '$required_trees', $Compiler_required_trees$37 = function $$required_trees() { + var self = this, $ret_or_12 = nil; - return (self.requires = ($truthy($a = self.requires) ? $a : [])) - }, TMP_Compiler_requires_29.$$arity = 0); + return (self.required_trees = (function() {if ($truthy(($ret_or_12 = self.required_trees))) { + return $ret_or_12 + } else { + return [] + }; return nil; })()) + }, $Compiler_required_trees$37.$$arity = 0); - Opal.defn(self, '$required_trees', TMP_Compiler_required_trees_30 = function $$required_trees() { - var $a, self = this; + Opal.def(self, '$autoloads', $Compiler_autoloads$38 = function $$autoloads() { + var self = this, $ret_or_13 = nil; - return (self.required_trees = ($truthy($a = self.required_trees) ? $a : [])) - }, TMP_Compiler_required_trees_30.$$arity = 0); + return (self.autoloads = (function() {if ($truthy(($ret_or_13 = self.autoloads))) { + return $ret_or_13 + } else { + return [] + }; return nil; })()) + }, $Compiler_autoloads$38.$$arity = 0); - Opal.defn(self, '$returns', TMP_Compiler_returns_35 = function $$returns(sexp) { - var $a, $b, TMP_31, TMP_32, TMP_33, TMP_34, self = this, $case = nil, when_sexp = nil, then_sexp = nil, body_sexp = nil, resbodies = nil, else_sexp = nil, klass = nil, lvar = nil, body = nil, rescue_sexp = nil, ensure_body = nil, rest = nil, last = nil, strs = nil, multiline = nil, first_child = nil, rest_children = nil, old_value = nil, cond = nil, true_body = nil, false_body = nil; + Opal.def(self, '$returns', $Compiler_returns$39 = function $$returns(sexp) { + var $a, $b, $$40, self = this, $case = nil, when_sexp = nil, then_sexp = nil, body_sexp = nil, resbodies = nil, else_sexp = nil, klass = nil, lvar = nil, body = nil, rescue_sexp = nil, ensure_body = nil, rest = nil, last = nil, cond = nil, true_body = nil, false_body = nil, $ret_or_14 = nil; if ($truthy(sexp)) { - } else { + } else { return self.$returns(self.$s("nil")) }; return (function() {$case = sexp.$type(); - if ("undef"['$===']($case)) {return self.$returns(self.$s("begin", sexp, self.$s("nil")))} - else if ("break"['$===']($case) || "next"['$===']($case) || "redo"['$===']($case)) {return sexp} + if ("undef"['$===']($case)) {return self.$returns(sexp.$updated("begin", [sexp, self.$s("nil")]))} + else if ("break"['$===']($case) || "next"['$===']($case) || "redo"['$===']($case) || "retry"['$===']($case)) {return sexp} else if ("yield"['$===']($case)) {return sexp.$updated("returnable_yield", nil)} else if ("when"['$===']($case)) { $a = [].concat(Opal.to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (when_sexp = $slice.call($a, 0, $b)), (then_sexp = ($a[$b] == null ? nil : $a[$b])), $a; return sexp.$updated(nil, [].concat(Opal.to_a(when_sexp)).concat([self.$returns(then_sexp)]));} else if ("rescue"['$===']($case)) { $a = [].concat(Opal.to_a(sexp)), (body_sexp = ($a[0] == null ? nil : $a[0])), $b = $a.length - 1, $b = ($b < 1) ? 1 : $b, (resbodies = $slice.call($a, 1, $b)), (else_sexp = ($a[$b] == null ? nil : $a[$b])), $a; - resbodies = $send(resbodies, 'map', [], (TMP_31 = function(resbody){var self = TMP_31.$$s || this; -if (resbody == null) resbody = nil; - return self.$returns(resbody)}, TMP_31.$$s = self, TMP_31.$$arity = 1, TMP_31)); + resbodies = $send(resbodies, 'map', [], ($$40 = function(resbody){var self = $$40.$$s == null ? this : $$40.$$s; + + + + if (resbody == null) { + resbody = nil; + }; + return self.$returns(resbody);}, $$40.$$s = self, $$40.$$arity = 1, $$40)); if ($truthy(else_sexp)) { else_sexp = self.$returns(else_sexp)}; return sexp.$updated(nil, [self.$returns(body_sexp)].concat(Opal.to_a(resbodies)).concat([else_sexp]));} @@ -27169,110 +39344,123 @@ if (resbody == null) resbody = nil; else if ("ensure"['$===']($case)) { $a = [].concat(Opal.to_a(sexp)), (rescue_sexp = ($a[0] == null ? nil : $a[0])), (ensure_body = ($a[1] == null ? nil : $a[1])), $a; sexp = sexp.$updated(nil, [self.$returns(rescue_sexp), ensure_body]); - return self.$s("js_return", sexp);} + return sexp.$updated("js_return", [sexp]);} else if ("begin"['$===']($case) || "kwbegin"['$===']($case)) { $a = [].concat(Opal.to_a(sexp)), $b = $a.length - 1, $b = ($b < 0) ? 0 : $b, (rest = $slice.call($a, 0, $b)), (last = ($a[$b] == null ? nil : $a[$b])), $a; return sexp.$updated(nil, [].concat(Opal.to_a(rest)).concat([self.$returns(last)]));} else if ("while"['$===']($case) || "until"['$===']($case) || "while_post"['$===']($case) || "until_post"['$===']($case)) {return sexp} else if ("return"['$===']($case) || "js_return"['$===']($case) || "returnable_yield"['$===']($case)) {return sexp} - else if ("xstr"['$===']($case)) {if ($truthy(sexp.$children()['$any?']())) { - - strs = $send($send(sexp.$children(), 'select', [], (TMP_32 = function(child){var self = TMP_32.$$s || this; -if (child == null) child = nil; - return child.$type()['$==']("str")}, TMP_32.$$s = self, TMP_32.$$arity = 1, TMP_32)), 'map', [], (TMP_33 = function(child){var self = TMP_33.$$s || this; -if (child == null) child = nil; - return child.$children()['$[]'](0)}, TMP_33.$$s = self, TMP_33.$$arity = 1, TMP_33)); - multiline = $send(strs, 'any?', [], (TMP_34 = function(str){var self = TMP_34.$$s || this; -if (str == null) str = nil; - return str['$end_with?'](";\n")}, TMP_34.$$s = self, TMP_34.$$arity = 1, TMP_34)); - $a = [].concat(Opal.to_a(sexp)), (first_child = ($a[0] == null ? nil : $a[0])), (rest_children = $slice.call($a, 1)), $a; - if ($truthy(multiline)) { - return sexp - } else if (first_child.$type()['$==']("str")) { - - old_value = first_child.$children()['$[]'](0); - if ($truthy(old_value['$include?']("return"))) { - return sexp - } else { - - first_child = self.$s("js_return", first_child); - return sexp.$updated(nil, [first_child].concat(Opal.to_a(rest_children))); - }; - } else { - return self.$s("js_return", sexp) - }; - } else { - return self.$returns(self.$s("str", "")) - }} + else if ("xstr"['$===']($case)) {return sexp.$updated(nil, [$send(self, 's', ["js_return"].concat(Opal.to_a(sexp.$children())))])} else if ("if"['$===']($case)) { $a = [].concat(Opal.to_a(sexp)), (cond = ($a[0] == null ? nil : $a[0])), (true_body = ($a[1] == null ? nil : $a[1])), (false_body = ($a[2] == null ? nil : $a[2])), $a; return sexp.$updated(nil, [cond, self.$returns(true_body), self.$returns(false_body)]);} - else {return self.$s("js_return", sexp).$updated(nil, nil, $hash2(["location"], {"location": sexp.$loc()}))}})(); - }, TMP_Compiler_returns_35.$$arity = 1); - return (Opal.defn(self, '$handle_block_given_call', TMP_Compiler_handle_block_given_call_36 = function $$handle_block_given_call(sexp) { - var $a, self = this, scope = nil; + else {if ($truthy((function() {if ($truthy(($ret_or_14 = sexp.$type()['$==']("send")))) { + return sexp.$children()['$[]'](1)['$==']("debugger") + } else { + return $ret_or_14 + }; return nil; })())) { + return sexp.$updated("begin", [sexp, self.$s("js_return", self.$s("nil"))]) + } else { + return sexp.$updated("js_return", [sexp]) + }}})(); + }, $Compiler_returns$39.$$arity = 1); + + Opal.def(self, '$handle_block_given_call', $Compiler_handle_block_given_call$41 = function $$handle_block_given_call(sexp) { + var self = this, $ret_or_15 = nil, scope = nil; self.scope['$uses_block!'](); if ($truthy(self.scope.$block_name())) { return self.$fragment("" + "(" + (self.scope.$block_name()) + " !== nil)", self.$scope(), sexp) - } else if ($truthy(($truthy($a = (scope = self.scope.$find_parent_def())) ? scope.$block_name() : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_15 = (scope = self.scope.$find_parent_def())))) { + return scope.$block_name() + } else { + return $ret_or_15 + }; return nil; })())) { return self.$fragment("" + "(" + (scope.$block_name()) + " !== nil)", scope, sexp) - } else { + } else { return self.$fragment("false", scope, sexp) }; - }, TMP_Compiler_handle_block_given_call_36.$$arity = 1), nil) && 'handle_block_given_call'; + }, $Compiler_handle_block_given_call$41.$$arity = 1); + + Opal.def(self, '$marshal_dump', $Compiler_marshal_dump$42 = function $$marshal_dump() { + var self = this, $ret_or_16 = nil; + + return [self.options, self.option_values, (self.source_map = (function() {if ($truthy(($ret_or_16 = self.source_map))) { + return $ret_or_16 + } else { + return self.$source_map().$cache() + }; return nil; })()), self.magic_comments, self.result, self.required_trees, self.requires, self.autoloads] + }, $Compiler_marshal_dump$42.$$arity = 0); + return (Opal.def(self, '$marshal_load', $Compiler_marshal_load$43 = function $$marshal_load(src) { + var $a, $b, self = this; + + return $b = src, $a = Opal.to_ary($b), (self.options = ($a[0] == null ? nil : $a[0])), (self.option_values = ($a[1] == null ? nil : $a[1])), (self.source_map = ($a[2] == null ? nil : $a[2])), (self.magic_comments = ($a[3] == null ? nil : $a[3])), (self.result = ($a[4] == null ? nil : $a[4])), (self.required_trees = ($a[5] == null ? nil : $a[5])), (self.requires = ($a[6] == null ? nil : $a[6])), (self.autoloads = ($a[7] == null ? nil : $a[7])), $b + }, $Compiler_marshal_load$43.$$arity = 1), nil) && 'marshal_load'; })($nesting[0], null, $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -(function(Opal) { +Opal.queue(function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var TMP_1, self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $send = Opal.send, $truthy = Opal.truthy; + var $$1, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$require', '$ready?', '$each_with_index', '$[]', '$attr', '$<<', '$then', '$get', '$body', '$[]=', '$-', '$html', '$when', '$compile', '$new', '$join', '$message', '$each', '$const_get', '$flatten', '$compact', '$collect', '$data', '$==', '$underscore', '$create_element', '$render']); + self.$require("corelib/string/unpack"); self.$require("opal/compiler"); - return $send(Opal.const_get_relative($nesting, 'Document'), 'ready?', [], (TMP_1 = function(){var self = TMP_1.$$s || this, TMP_2, TMP_4, promises = nil, code = nil; + window.HyperstackOpts = {'transport': 'none'}; + return $send($$($nesting, 'Document'), 'ready?', [], ($$1 = function(){var self = $$1.$$s == null ? this : $$1.$$s, $$2, $$4, promises = nil, code = nil; - + promises = []; code = []; - $send(Opal.const_get_relative($nesting, 'Element')['$[]']("script[type=\"text/ruby\"]"), 'each_with_index', [], (TMP_2 = function(script_tag, index){var self = TMP_2.$$s || this, TMP_3, src = nil, $writer = nil; -if (script_tag == null) script_tag = nil;if (index == null) index = nil; - + $send($$($nesting, 'Element')['$[]']("script[type=\"text/ruby\"]"), 'each_with_index', [], ($$2 = function(script_tag, index){var self = $$2.$$s == null ? this : $$2.$$s, $$3, src = nil, $writer = nil; + + + + if (script_tag == null) { + script_tag = nil; + }; + + if (index == null) { + index = nil; + }; src = script_tag.$attr("src"); if ($truthy(src)) { - return promises['$<<']($send(Opal.const_get_relative($nesting, 'HTTP').$get(src), 'then', [], (TMP_3 = function(response){var self = TMP_3.$$s || this, $writer = nil; -if (response == null) response = nil; - + return promises['$<<']($send($$($nesting, 'HTTP').$get(src), 'then', [], ($$3 = function(response){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; + + + + if (response == null) { + response = nil; + }; $writer = [index, response.$body()]; $send(code, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3))) - } else { + return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 1, $$3))) + } else { $writer = [index, script_tag.$html()]; $send(code, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - };}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)); - return $send($send(Opal.const_get_relative($nesting, 'Promise'), 'when', Opal.to_a(promises)), 'then', [], (TMP_4 = function(){var self = TMP_4.$$s || this, TMP_5, compiled_code = nil, continue_to_mounting = nil, e = nil, message = nil; + };}, $$2.$$s = self, $$2.$$arity = 2, $$2)); + return $send($send($$($nesting, 'Promise'), 'when', Opal.to_a(promises)), 'then', [], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s, $$5, compiled_code = nil, continue_to_mounting = nil, e = nil, message = nil; - + compiled_code = nil; continue_to_mounting = nil; try { - compiled_code = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'Compiler').$new(code.$join("\n")).$compile() + compiled_code = $$$($$($nesting, 'Opal'), 'Compiler').$new(code.$join("\n")).$compile() } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { message = "" + "Error raised while compiling: " + (e.$message()); console.error(message); - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } };; if ($truthy(compiled_code)) { @@ -27282,43 +39470,56 @@ if (response == null) response = nil; eval(compiled_code); continue_to_mounting = true; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { message = "" + "Error raised during execution: " + (e.$message()); console.error(message); - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } };}; if ($truthy(continue_to_mounting)) { - return $send(Opal.const_get_relative($nesting, 'Element')['$[]']("[data-hyperstack-mount]"), 'each', [], (TMP_5 = function(mount_point){var self = TMP_5.$$s || this, TMP_6, component_name = nil, component = nil, params = nil, element = nil; -if (mount_point == null) mount_point = nil; - + return $send($$($nesting, 'Element')['$[]']("[data-hyperstack-mount]"), 'each', [], ($$5 = function(mount_point){var self = $$5.$$s == null ? this : $$5.$$s, $$6, component_name = nil, component = nil, params = nil, element = nil; + + + + if (mount_point == null) { + mount_point = nil; + }; component_name = mount_point.$attr("data-hyperstack-mount"); component = nil; try { - component = Opal.const_get_relative($nesting, 'Object').$const_get(component_name) + component = $$($nesting, 'Object').$const_get(component_name) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { try { message = "" + "Could not find Component class named " + (component_name); console.error(message); return nil;; - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } };; - params = $send(Opal.const_get_relative($nesting, 'Hash'), '[]', Opal.to_a($send(Opal.const_get_relative($nesting, 'Hash').$new(mount_point.$data()), 'collect', [], (TMP_6 = function(name, value){var self = TMP_6.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - if (name['$==']("reactrbMount")) { + params = $send($$($nesting, 'Hash'), '[]', Opal.to_a($send($$($nesting, 'Hash').$new(mount_point.$data()), 'collect', [], ($$6 = function(name, value){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + if (name['$==']("reactrbMount")) { return nil - } else { + } else { return [name.$underscore(), value] - }}, TMP_6.$$s = self, TMP_6.$$arity = 2, TMP_6)).$compact().$flatten(1))); - element = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'ReactAPI').$create_element(component, params); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'ReactAPI').$render(element, mount_point);}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)) - } else { + };}, $$6.$$s = self, $$6.$$arity = 2, $$6)).$compact().$flatten(1))); + element = $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'ReactAPI').$create_element(component, params); + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'ReactAPI').$render(element, mount_point);}, $$5.$$s = self, $$5.$$arity = 1, $$5)) + } else { return nil - };}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4));}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); -})(Opal); + };}, $$4.$$s = self, $$4.$$arity = 0, $$4));}, $$1.$$s = self, $$1.$$arity = 0, $$1)); +}); diff --git a/dist/hyperstack-compiler.min.js b/dist/hyperstack-compiler.min.js index 3c8c8e7..56a8012 100644 --- a/dist/hyperstack-compiler.min.js +++ b/dist/hyperstack-compiler.min.js @@ -1,25 +1,29 @@ -Opal.modules.set=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e"},f.$$arity=0),e.defn(D,"$==",g=function(t){var n,r,$=this;return!!s($["$equal?"](t))||(s(t["$instance_of?"]($.$class()))?$.hash["$=="](t.$instance_variable_get("@hash")):!!s(s(n=t["$is_a?"](e.const_get_relative(M,"Set")))?$.$size()["$=="](t.$size()):n)&&o(t,"all?",[],((r=function(e){var t=r.$$s||this;return null==t.hash&&(t.hash=i),null==e&&(e=i),t.hash["$include?"](e)}).$$s=$,r.$$arity=1,r)))},g.$$arity=1),e.defn(D,"$add",h=function(n){var r=this,$=i;return $=[n,!0],o(r.hash,"[]=",e.to_a($)),$[t($.length,1)],r},h.$$arity=1),e.alias(D,"<<","add"),e.defn(D,"$classify",m=function(){var n,r,$=this,a=m.$$p,s=a||i,c=i;return a&&(m.$$p=null),s===i?$.$enum_for("classify"):(c=o(e.const_get_relative(M,"Hash"),"new",[],((n=function(r,$){var a=n.$$s||this,s=i;return null==r&&(r=i),null==$&&($=i),s=[$,a.$class().$new()],o(r,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=$,n.$$arity=2,n)),o($,"each",[],((r=function(t){r.$$s;return null==t&&(t=i),c["$[]"](e.yield1(s,t)).$add(t)}).$$s=$,r.$$arity=1,r)),c)},m.$$arity=0),e.defn(D,"$collect!",y=function(){var t,n=this,r=y.$$p,$=r||i,a=i;return r&&(y.$$p=null),$===i?n.$enum_for("collect!"):(a=n.$class().$new(),o(n,"each",[],((t=function(n){t.$$s;return null==n&&(n=i),a["$<<"](e.yield1($,n))}).$$s=n,t.$$arity=1,t)),n.$replace(a))},y.$$arity=0),e.alias(D,"map!","collect!"),e.defn(D,"$delete",v=function(e){var t=this;return t.hash.$delete(e),t},v.$$arity=1),e.defn(D,"$delete?",b=function(e){var t=this;return s(t["$include?"](e))?(t.$delete(e),t):i},b.$$arity=1),e.defn(D,"$delete_if",k=function(){try{var t,n,r=this,$=k.$$p,a=$||i;return $&&(k.$$p=null),s(a!==i)||e.ret(r.$enum_for("delete_if")),o(o(r,"select",[],((t=function(n){t.$$s;return null==n&&(n=i),e.yield1(a,n)}).$$s=r,t.$$arity=1,t)),"each",[],((n=function(e){var t=n.$$s||this;return null==t.hash&&(t.hash=i),null==e&&(e=i),t.hash.$delete(e)}).$$s=r,n.$$arity=1,n)),r}catch(c){if(c===e.returner)return c.$v;throw c}},k.$$arity=0),e.defn(D,"$add?",x=function(e){var t=this;return s(t["$include?"](e))?i:t.$add(e)},x.$$arity=1),e.defn(D,"$each",E=function(){var e=this,t=E.$$p,n=t||i;return t&&(E.$$p=null),n===i?e.$enum_for("each"):(o(e.hash,"each_key",[],n.$to_proc()),e)},E.$$arity=0),e.defn(D,"$empty?",w=function(){return this.hash["$empty?"]()},w.$$arity=0),e.defn(D,"$eql?",R=function(e){var t,n=this;return n.hash["$eql?"](o(e,"instance_eval",[],((t=function(){var e=t.$$s||this;return null==e.hash&&(e.hash=i),e.hash}).$$s=n,t.$$arity=0,t)))},R.$$arity=1),e.defn(D,"$clear",N=function(){var e=this;return e.hash.$clear(),e},N.$$arity=0),e.defn(D,"$include?",A=function(e){return this.hash["$include?"](e)},A.$$arity=1),e.alias(D,"member?","include?"),e.defn(D,"$merge",S=function(e){var t,n=this;return o(e,"each",[],((t=function(e){var n=t.$$s||this;return null==e&&(e=i),n.$add(e)}).$$s=n,t.$$arity=1,t)),n},S.$$arity=1),e.defn(D,"$replace",T=function(e){var t=this;return t.$clear(),t.$merge(e),t},T.$$arity=1),e.defn(D,"$size",q=function(){return this.hash.$size()},q.$$arity=0),e.alias(D,"length","size"),e.defn(D,"$subtract",O=function(e){var t,n=this;return o(e,"each",[],((t=function(e){var n=t.$$s||this;return null==e&&(e=i),n.$delete(e)}).$$s=n,t.$$arity=1,t)),n},O.$$arity=1),e.defn(D,"$|",I=function(t){var n=this;return s(t["$respond_to?"]("each"))||n.$raise(e.const_get_relative(M,"ArgumentError"),"value must be enumerable"),n.$dup().$merge(t)},I.$$arity=1),e.defn(D,"$superset?",z=function(t){var r,$=this;return s(t["$is_a?"](e.const_get_relative(M,"Set")))||$.$raise(e.const_get_relative(M,"ArgumentError"),"value must be a set"),!s(n($.$size(),t.$size()))&&o(t,"all?",[],((r=function(e){var t=r.$$s||this;return null==e&&(e=i),t["$include?"](e)}).$$s=$,r.$$arity=1,r))},z.$$arity=1),e.alias(D,">=","superset?"),e.defn(D,"$proper_superset?",C=function(t){var n,$=this;return s(t["$is_a?"](e.const_get_relative(M,"Set")))||$.$raise(e.const_get_relative(M,"ArgumentError"),"value must be a set"),!s(r($.$size(),t.$size()))&&o(t,"all?",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=i),t["$include?"](e)}).$$s=$,n.$$arity=1,n))},C.$$arity=1),e.alias(D,">","proper_superset?"),e.defn(D,"$subset?",P=function(t){var r,$=this;return s(t["$is_a?"](e.const_get_relative(M,"Set")))||$.$raise(e.const_get_relative(M,"ArgumentError"),"value must be a set"),!s(n(t.$size(),$.$size()))&&o($,"all?",[],((r=function(e){r.$$s;return null==e&&(e=i),t["$include?"](e)}).$$s=$,r.$$arity=1,r))},P.$$arity=1),e.alias(D,"<=","subset?"),e.defn(D,"$proper_subset?",B=function(t){var n,$=this;return s(t["$is_a?"](e.const_get_relative(M,"Set")))||$.$raise(e.const_get_relative(M,"ArgumentError"),"value must be a set"),!s(r(t.$size(),$.$size()))&&o($,"all?",[],((n=function(e){n.$$s;return null==e&&(e=i),t["$include?"](e)}).$$s=$,n.$$arity=1,n))},B.$$arity=1),e.alias(D,"<","proper_subset?"),e.alias(D,"+","|"),e.alias(D,"union","|"),e.defn(D,"$to_a",G=function(){return this.hash.$keys()},G.$$arity=0)}($[0],0,$),function(t,n){var r,$=c(t,"Enumerable"),a=($.$$proto,[$].concat(n));e.defn($,"$to_set",r=function(t){var n,$=this,s=r.$$p,c=s||i;null==t&&(t=e.const_get_relative(a,"Set"));var _=arguments.length,u=_-1;u<0&&(u=0),n=new Array(u);for(var l=1;l<_;l++)n[l-1]=arguments[l];return s&&(r.$$p=null),o(t,"new",[$].concat(e.to_a(n)),c.$to_proc())},r.$$arity=-1)}($[0],$)},Opal.modules["ast/node"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}e.top;var r=[],$=e.nil,i=(e.breaker,e.slice,e.module),a=e.klass,s=e.hash2,o=e.truthy,c=e.send;return e.add_stubs(["$attr_reader","$to_sym","$freeze","$to_a","$assign_properties","$hash","$class","$eql?","$type","$children","$each","$instance_variable_set","$protected","$private","$==","$nil?","$send","$original_dup","$equal?","$respond_to?","$to_ast","$updated","$+","$*","$fancy_type","$is_a?","$to_sexp","$inspect","$map","$to_sexp_array","$gsub","$to_s"]),function(r,_){var u=i(r,"AST"),l=(u.$$proto,[u].concat(_));!function(r,$super,i){function _(){}var u,l,d,p,f,g,h,m,y,v,b,k,x,E=_=a(r,null,"Node",_),w=E.$$proto,R=[E].concat(i);w.type=w.children=$,E.$attr_reader("type"),E.$attr_reader("children"),e.alias(E,"to_a","children"),E.$attr_reader("hash"),e.defn(E,"$initialize",u=function(e,t,n){var r,$=this;return null==t&&(t=[]),null==n&&(n=s([],{})),r=[e.$to_sym(),t.$to_a().$freeze()],$.type=r[0],$.children=r[1],$.$assign_properties(n),$.hash=[$.type,$.children,$.$class()].$hash(),$.$freeze()},u.$$arity=-2),e.defn(E,"$eql?",l=function(e){var t,n,r=this;return o(t=o(n=r.$class()["$eql?"](e.$class()))?r.type["$eql?"](e.$type()):n)?r.children["$eql?"](e.$children()):t},l.$$arity=1),e.defn(E,"$assign_properties",d=function(e){var t,n=this;return c(e,"each",[],((t=function(e,n){var r=t.$$s||this;return null==e&&(e=$),null==n&&(n=$),r.$instance_variable_set("@"+e,n)}).$$s=n,t.$$arity=2,t)),$},d.$$arity=1),E.$protected("assign_properties"),e.alias(E,"original_dup","dup"),E.$private("original_dup"),e.defn(E,"$dup",p=function(){return this},p.$$arity=0),e.alias(E,"clone","dup"),e.defn(E,"$updated",f=function(e,t,n){var r,i=this,a=$,c=$,_=$;return null==e&&(e=$),null==t&&(t=$),null==n&&(n=$),a=o(r=e)?r:i.type,c=o(r=t)?r:i.children,_=o(r=n)?r:s([],{}),o(o(r=i.type["$=="](a)?i.children["$=="](c):i.type["$=="](a))?n["$nil?"]():r)?i:i.$original_dup().$send("initialize",a,c,_)},f.$$arity=-1),e.defn(E,"$==",g=function(e){var t=this;return!!o(t["$equal?"](e))||!!o(e["$respond_to?"]("to_ast"))&&((e=e.$to_ast()).$type()["$=="](t.$type())?e.$children()["$=="](t.$children()):e.$type()["$=="](t.$type()))},g.$$arity=1),e.defn(E,"$concat",h=function(e){var n=this;return n.$updated($,t(n.children,e.$to_a()))},h.$$arity=1),e.alias(E,"+","concat"),e.defn(E,"$append",m=function(e){var n=this;return n.$updated($,t(n.children,[e]))},m.$$arity=1),e.alias(E,"<<","append"),e.defn(E,"$to_sexp",y=function(r){var i,a=this,s=$,_=$;return null==r&&(r=0),s=n(" ",r),_=s+"("+a.$fancy_type(),c(a.$children(),"each",[],((i=function(n){i.$$s;return null==n&&(n=$),_=o(n["$is_a?"](e.const_get_relative(R,"Node")))?t(_,"\n"+n.$to_sexp(t(r,1))):t(_," "+n.$inspect())}).$$s=a,i.$$arity=1,i)),_=t(_,")")},y.$$arity=-1),e.alias(E,"to_s","to_sexp"),e.defn(E,"$inspect",v=function(r){var i,a=this,s=$,_=$;return null==r&&(r=0),s=n(" ",r),_=s+"s(:"+a.type,c(a.$children(),"each",[],((i=function(n){i.$$s;return null==n&&(n=$),_=o(n["$is_a?"](e.const_get_relative(R,"Node")))?t(_,",\n"+n.$inspect(t(r,1))):t(_,", "+n.$inspect())}).$$s=a,i.$$arity=1,i)),_=t(_,")")},v.$$arity=-1),e.defn(E,"$to_ast",b=function(){return this},b.$$arity=0),e.defn(E,"$to_sexp_array",k=function(){var t,n=this,r=$;return r=c(n.$children(),"map",[],((t=function(n){t.$$s;return null==n&&(n=$),o(n["$is_a?"](e.const_get_relative(R,"Node")))?n.$to_sexp_array():n}).$$s=n,t.$$arity=1,t)),[n.$type()].concat(e.to_a(r))},k.$$arity=0),E.$protected(),e.defn(E,"$fancy_type",x=function(){return this.type.$to_s().$gsub("_","-")},x.$$arity=0)}(l[0],0,l)}(r[0],r)},Opal.modules["ast/processor/mixin"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),$=e.klass,i=e.truthy,a=e.send;return e.add_stubs(["$nil?","$to_ast","$type","$respond_to?","$send","$handler_missing","$map","$to_a","$process"]),function(t,s){var o=r(t,"AST"),c=(o.$$proto,[o].concat(s));!function(t,$super,s){function o(){}var c=o=$(t,null,"Processor",o),_=(c.$$proto,[c].concat(s));(function(t,$){var s,o,c,_=r(t,"Mixin");_.$$proto,[_].concat($);e.defn(_,"$process",s=function(e){var t=this,r=n,$=n;return i(e["$nil?"]())?n:(r="on_"+(e=e.$to_ast()).$type(),$=i(t["$respond_to?"](r))?t.$send(r,e):t.$handler_missing(e),i($)&&(e=$),e)},s.$$arity=1),e.defn(_,"$process_all",o=function(e){var t,r=this;return a(e.$to_a(),"map",[],((t=function(e){var r=t.$$s||this;return null==e&&(e=n),r.$process(e)}).$$s=r,t.$$arity=1,t))},o.$$arity=1),e.defn(_,"$handler_missing",c=function(){return n},c.$$arity=1)})(_[0],_)}(c[0],0,c)}(t[0],t)},Opal.modules["ast/processor"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.module),r=e.klass;return e.add_stubs(["$require","$include"]),function(t,$){var i=n(t,"AST"),a=(i.$$proto,[i].concat($));!function(t,$super,n){function $(){}var i=$=r(t,null,"Processor",$),a=(i.$$proto,[i].concat(n));i.$require("ast/processor/mixin"),i.$include(e.const_get_relative(a,"Mixin"))}(a[0],0,a)}(t[0],t)},Opal.modules["ast/sexp"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.module);return e.add_stubs(["$new"]),function(t,r){var $=n(t,"AST"),i=($.$$proto,[$].concat(r));!function(t,r){var $,i=n(t,"Sexp"),a=(i.$$proto,[i].concat(r));e.defn(i,"$s",$=function(t){var n,r=arguments.length,$=r-1;$<0&&($=0),n=new Array($);for(var i=1;i=t:e["$>="](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function s(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}e.top;var o=[],c=e.nil,_=(e.breaker,e.slice,e.module),u=e.klass,l=e.truthy,d=e.gvars,p=e.send;return e.add_stubs(["$[]","$class","$<","$size","$[]=","$-","$__send__","$_racc_setup","$raise","$_racc_init_sysvars","$catch","$!=","$next_token","$racc_read_token","$+","$>=","$==","$_racc_evalact","$!","$>","$push","$racc_shift","$-@","$_racc_do_reduce","$===","$racc_accept","$throw","$on_error","$<=","$pop","$racc_e_pop","$inspect","$racc_next_state","$*","$racc_reduce","$sprintf","$token_to_str","$print","$racc_token2str","$puts","$racc_print_stacks","$empty?","$each","$racc_print_states","$each_index"]),function(t,n){var r=_(t,"Racc"),$=(r.$$proto,[r].concat(n));!function(e,$super,t){function n(){}var r=n=u(e,$super,"ParseError",n);r.$$proto,[r].concat(t)}($[0],e.const_get_relative($,"StandardError"),$)}(o[0],o),l(e.const_get_qualified("::","ParseError","skip_raise")?"constant":c)||e.const_set(o[0],"ParseError",e.const_get_qualified(e.const_get_relative(o,"Racc"),"ParseError")),function(o,f){var g=_(o,"Racc"),h=(g.$$proto,[g].concat(f));l(e.const_get_relative(h,"Racc_No_Extensions","skip_raise")?"constant":c)||e.const_set(h[0],"Racc_No_Extensions",!1),function(o,$super,_){function f(){}var g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I,z,C,P,B,G,D,L=f=u(o,null,"Parser",f),M=L.$$proto,j=[L].concat(_);M.yydebug=M.racc_debug_out=M.racc_error_status=M.racc_t=M.racc_vstack=M.racc_val=M.racc_state=M.racc_tstack=c,e.const_set(j[0],"Racc_Runtime_Version","1.4.6"),e.const_set(j[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),e.const_set(j[0],"Racc_Runtime_Core_Version_R","1.4.6"),e.const_set(j[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),e.const_set(j[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),e.const_set(j[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),e.const_set(j[0],"Racc_Runtime_Core_Version",e.const_get_relative(j,"Racc_Runtime_Core_Version_R")),e.const_set(j[0],"Racc_Runtime_Core_Revision",e.const_get_relative(j,"Racc_Runtime_Core_Revision_R")),e.const_set(j[0],"Racc_Runtime_Type","ruby"),e.defs(e.const_get_relative(j,"Parser"),"$racc_runtime_type",g=function(){return e.const_get_relative(j,"Racc_Runtime_Type")},g.$$arity=0),e.defn(L,"$_racc_setup",h=function(){var r,$,i,a=this,s=c,o=c;return null==d.stderr&&(d.stderr=c),l(e.const_get_qualified(a.$class(),"Racc_debug_parser"))||(a.yydebug=!1),l(null!=(r=a.yydebug)&&r!==c?"instance-variable":c)||(a.yydebug=!1),l(a.yydebug)&&(l(null!=($=a.racc_debug_out)&&$!==c?"instance-variable":c)||(a.racc_debug_out=d.stderr),a.racc_debug_out=l(i=a.racc_debug_out)?i:d.stderr),s=e.const_get_qualified(a.$class(),"Racc_arg"),l(t(s.$size(),14))&&(o=[13,!0],p(s,"[]=",e.to_a(o)),o[n(o.length,1)]),s},h.$$arity=0),e.defn(L,"$_racc_init_sysvars",m=function(){var e=this;return e.racc_state=[0],e.racc_tstack=[],e.racc_vstack=[],e.racc_t=c,e.racc_val=c,e.racc_read_next=!0,e.racc_user_yyerror=!1,e.racc_error_status=0},m.$$arity=0),e.defn(L,"$do_parse",y=function(){var t=this;return t.$__send__(e.const_get_relative(j,"Racc_Main_Parsing_Routine"),t.$_racc_setup(),!1)},y.$$arity=0),e.defn(L,"$next_token",v=function(){var t=this;return t.$raise(e.const_get_relative(j,"NotImplementedError"),t.$class()+"#next_token is not defined")},v.$$arity=0),e.defn(L,"$_racc_do_parse_rb",b=function(t){var n,i,a,s=this,o=c,_=c,u=c,d=c,f=c,g=c,h=c,m=c;return i=t,n=e.to_ary(i),o=null==n[0]?c:n[0],_=null==n[1]?c:n[1],u=null==n[2]?c:n[2],d=null==n[3]?c:n[3],null==n[4]?c:n[4],null==n[5]?c:n[5],null==n[6]?c:n[6],null==n[7]?c:n[7],null==n[8]?c:n[8],null==n[9]?c:n[9],f=null==n[10]?c:n[10],null==n[11]?c:n[11],null==n[12]?c:n[12],null==n[13]?c:n[13],s.$_racc_init_sysvars(),g=h=m=c,p(s,"catch",["racc_end_parse"],((a=function(){var n,i,s=a.$$s||this;for(null==s.racc_state&&(s.racc_state=c),null==s.racc_read_next&&(s.racc_read_next=c),null==s.racc_t&&(s.racc_t=c),null==s.yydebug&&(s.yydebug=c),null==s.racc_val&&(s.racc_val=c);l(!0);)for(l(m=d["$[]"](s.racc_state["$[]"](-1)))?(l(s.racc_read_next)&&l(s.racc_t["$!="](0))&&(i=s.$next_token(),n=e.to_ary(i),g=null==n[0]?c:n[0],s.racc_val=null==n[1]?c:n[1],l(g)?s.racc_t=l(n=f["$[]"](g))?n:1:s.racc_t=0,l(s.yydebug)&&s.$racc_read_token(s.racc_t,g,s.racc_val),s.racc_read_next=!1),m=r(m,s.racc_t),l(l(n=l(i=$(m,0))?h=o["$[]"](m):i)?_["$[]"](m)["$=="](s.racc_state["$[]"](-1)):n)||(h=u["$[]"](s.racc_state["$[]"](-1)))):h=u["$[]"](s.racc_state["$[]"](-1));l(h=s.$_racc_evalact(h,t)););}).$$s=s,a.$$arity=0,a))},b.$$arity=2),e.defn(L,"$yyparse",k=function(t,n){var r=this;return r.$__send__(e.const_get_relative(j,"Racc_YY_Parse_Method"),t,n,r.$_racc_setup(),!0)},k.$$arity=2),e.defn(L,"$_racc_yyparse_rb",x=function(t,n,i){var a,s,o,_=this,u=c,d=c,f=c,g=c,h=c,m=c,y=c;return s=i,a=e.to_ary(s),u=null==a[0]?c:a[0],d=null==a[1]?c:a[1],f=null==a[2]?c:a[2],g=null==a[3]?c:a[3],null==a[4]?c:a[4],null==a[5]?c:a[5],null==a[6]?c:a[6],null==a[7]?c:a[7],null==a[8]?c:a[8],null==a[9]?c:a[9],h=null==a[10]?c:a[10],null==a[11]?c:a[11],null==a[12]?c:a[12],null==a[13]?c:a[13],_.$_racc_init_sysvars(),m=c,y=c,p(_,"catch",["racc_end_parse"],((o=function(){var e,a=o.$$s||this;for(null==a.racc_state&&(a.racc_state=c);!l(y=g["$[]"](a.racc_state["$[]"](-1)));)for(;l(m=a.$_racc_evalact(f["$[]"](a.racc_state["$[]"](-1)),i)););return p(t,"__send__",[n],((e=function(t,n){var a,s,o,_,p,v=e.$$s||this;for(null==v.racc_t&&(v.racc_t=c),null==v.racc_state&&(v.racc_state=c),null==v.racc_read_next&&(v.racc_read_next=c),null==t&&(t=c),null==n&&(n=c),l(t)?v.racc_t=l(a=h["$[]"](t))?a:1:v.racc_t=0,v.racc_val=n,v.racc_read_next=!1,y=r(y,v.racc_t),l(l(a=l(s=$(y,0))?m=u["$[]"](y):s)?d["$[]"](y)["$=="](v.racc_state["$[]"](-1)):a)||(m=f["$[]"](v.racc_state["$[]"](-1)));l(m=v.$_racc_evalact(m,i)););for(;l(l(s=l(o=(y=g["$[]"](v.racc_state["$[]"](-1)))["$!"]())?o:v.racc_read_next["$!"]())?s:v.racc_t["$=="](0));)for(l(l(s=l(o=l(_=l(p=y)?y=r(y,v.racc_t):p)?$(y,0):_)?m=u["$[]"](y):o)?d["$[]"](y)["$=="](v.racc_state["$[]"](-1)):s)||(m=f["$[]"](v.racc_state["$[]"](-1)));l(m=v.$_racc_evalact(m,i)););}).$$s=a,e.$$arity=2,e))}).$$s=_,o.$$arity=0,o))},x.$$arity=4),e.defn(L,"$_racc_evalact",E=function(s,o){var _,u,d,f,g=this,h=c,m=c,y=c,v=c,b=c,k=c,x=c,E=c;if(u=o,h=null==(_=e.to_ary(u))[0]?c:_[0],m=null==_[1]?c:_[1],null==_[2]?c:_[2],y=null==_[3]?c:_[3],null==_[4]?c:_[4],null==_[5]?c:_[5],null==_[6]?c:_[6],null==_[7]?c:_[7],null==_[8]?c:_[8],null==_[9]?c:_[9],null==_[10]?c:_[10],v=null==_[11]?c:_[11],b=null==_[12]?c:_[12],null==_[13]?c:_[13],null==_[14]?c:_[14],l(l(_=i(s,0))?t(s,v):_))l(i(g.racc_error_status,0))&&(g.racc_t["$=="](1)||(g.racc_error_status=n(g.racc_error_status,1))),g.racc_vstack.$push(g.racc_val),g.racc_state.$push(s),g.racc_read_next=!0,l(g.yydebug)&&(g.racc_tstack.$push(g.racc_t),g.$racc_shift(g.racc_t,g.racc_tstack,g.racc_vstack));else if(l(l(_=t(s,0))?i(s,b["$-@"]()):_)){if(k=p(g,"catch",["racc_jump"],((d=function(){var e=d.$$s||this;return null==e.racc_state&&(e.racc_state=c),e.racc_state.$push(e.$_racc_do_reduce(o,s)),!1}).$$s=g,d.$$arity=0,d)),l(k)){if(x=k,1["$==="](x))return g.racc_user_yyerror=!0,b["$-@"]();if(2["$==="](x))return v;g.$raise("[Racc Bug] unknown jump code")}}else if(s["$=="](v))l(g.yydebug)&&g.$racc_accept(),g.$throw("racc_end_parse",g.racc_vstack["$[]"](0));else{if(s["$=="](b["$-@"]())){for(x=g.racc_error_status,(0)["$==="](x)?l(o["$[]"](21))||g.$on_error(g.racc_t,g.racc_val,g.racc_vstack):3["$==="](x)&&(g.racc_t["$=="](0)&&g.$throw("racc_end_parse",c),g.racc_read_next=!0),g.racc_user_yyerror=!1,g.racc_error_status=3;l(!0)&&(!l(E=y["$[]"](g.racc_state["$[]"](-1)))||(E=r(E,1),!l(l(u=l(f=$(E,0))?s=h["$[]"](E):f)?m["$[]"](E)["$=="](g.racc_state["$[]"](-1)):u)));)l(a(g.racc_state.$size(),1))&&g.$throw("racc_end_parse",c),g.racc_state.$pop(),g.racc_vstack.$pop(),l(g.yydebug)&&(g.racc_tstack.$pop(),g.$racc_e_pop(g.racc_state,g.racc_tstack,g.racc_vstack));return s}g.$raise("[Racc Bug] unknown action "+s.$inspect())}return l(g.yydebug)&&g.$racc_next_state(g.racc_state["$[]"](-1),g.racc_state),c},E.$$arity=2),e.defn(L,"$_racc_do_reduce",w=function(t,i){var a,o,_=this,u=c,d=c,f=c,g=c,h=c,m=c,y=c,v=c,b=c,k=c,x=c,E=c,w=c,R=c,N=c,A=c,S=c,T=c,q=c,O=c;return o=t,null==(a=e.to_ary(o))[0]?c:a[0],null==a[1]?c:a[1],null==a[2]?c:a[2],null==a[3]?c:a[3],u=null==a[4]?c:a[4],d=null==a[5]?c:a[5],f=null==a[6]?c:a[6],g=null==a[7]?c:a[7],h=null==a[8]?c:a[8],m=null==a[9]?c:a[9],null==a[10]?c:a[10],null==a[11]?c:a[11],null==a[12]?c:a[12],y=null==a[13]?c:a[13],v=_.racc_state,b=_.racc_vstack,k=_.racc_tstack,x=s(i,-3),E=m["$[]"](x),w=m["$[]"](r(x,1)),R=m["$[]"](r(x,2)),N=[],l(_.yydebug)&&(A=k["$[]"](E["$-@"](),E)),S=b["$[]"](E["$-@"](),E),l(_.yydebug)&&(T=[E["$-@"](),E,N],p(k,"[]=",e.to_a(T)),T[n(T.length,1)]),T=[E["$-@"](),E,N],p(b,"[]=",e.to_a(T)),T[n(T.length,1)],T=[E["$-@"](),E,N],p(v,"[]=",e.to_a(T)),T[n(T.length,1)],l(y)?b.$push(_.$__send__(R,S,b,S["$[]"](0))):b.$push(_.$__send__(R,S,b)),k.$push(w),l(_.yydebug)&&_.$racc_reduce(A,w,k,b),q=n(w,h),l(x=g["$[]"](q))&&(x=r(x,v["$[]"](-1)),l(l(a=l(o=$(x,0))?O=u["$[]"](x):o)?d["$[]"](x)["$=="](q):a))?O:f["$[]"](q)},w.$$arity=2),e.defn(L,"$on_error",R=function(t,n){var r,$=this;return $.$raise(e.const_get_relative(j,"ParseError"),$.$sprintf("\nparse error on value %s (%s)",n.$inspect(),l(r=$.$token_to_str(t))?r:"?"))},R.$$arity=3),e.defn(L,"$yyerror",N=function(){return this.$throw("racc_jump",1)},N.$$arity=0),e.defn(L,"$yyaccept",A=function(){return this.$throw("racc_jump",2)},A.$$arity=0),e.defn(L,"$yyerrok",S=function(){return this.racc_error_status=0},S.$$arity=0),e.defn(L,"$racc_read_token",T=function(e,t,n){var r=this;return r.racc_debug_out.$print("read "),r.racc_debug_out.$print(t.$inspect(),"(",r.$racc_token2str(e),") "),r.racc_debug_out.$puts(n.$inspect()),r.racc_debug_out.$puts()},T.$$arity=3),e.defn(L,"$racc_shift",q=function(e,t,n){var r=this;return r.racc_debug_out.$puts("shift "+r.$racc_token2str(e)),r.$racc_print_stacks(t,n),r.racc_debug_out.$puts()},q.$$arity=3),e.defn(L,"$racc_reduce",O=function(e,t,n,r){var $,i=this,a=c;return(a=i.racc_debug_out).$print("reduce "),l(e["$empty?"]())?a.$print(" "):p(e,"each",[],(($=function(e){var t=$.$$s||this;return null==e&&(e=c),a.$print(" ",t.$racc_token2str(e))}).$$s=i,$.$$arity=1,$)),a.$puts(" --> "+i.$racc_token2str(t)),i.$racc_print_stacks(n,r),i.racc_debug_out.$puts()},O.$$arity=4),e.defn(L,"$racc_accept",I=function(){var e=this;return e.racc_debug_out.$puts("accept"),e.racc_debug_out.$puts()},I.$$arity=0),e.defn(L,"$racc_e_pop",z=function(e,t,n){var r=this;return r.racc_debug_out.$puts("error recovering mode: pop token"),r.$racc_print_states(e),r.$racc_print_stacks(t,n),r.racc_debug_out.$puts()},z.$$arity=3),e.defn(L,"$racc_next_state",C=function(e,t){var n=this;return n.racc_debug_out.$puts("goto "+e),n.$racc_print_states(t),n.racc_debug_out.$puts()},C.$$arity=2),e.defn(L,"$racc_print_stacks",P=function(e,t){var n,r=this,$=c;return($=r.racc_debug_out).$print(" ["),p(e,"each_index",[],((n=function(r){var i=n.$$s||this;return null==r&&(r=c),$.$print(" (",i.$racc_token2str(e["$[]"](r))," ",t["$[]"](r).$inspect(),")")}).$$s=r,n.$$arity=1,n)),$.$puts(" ]")},P.$$arity=2),e.defn(L,"$racc_print_states",B=function(e){var t,n=this,r=c;return(r=n.racc_debug_out).$print(" ["),p(e,"each",[],((t=function(e){t.$$s;return null==e&&(e=c),r.$print(" ",e)}).$$s=n,t.$$arity=1,t)),r.$puts(" ]")},B.$$arity=1),e.defn(L,"$racc_token2str",G=function(t){var n,r=this;return l(n=e.const_get_qualified(r.$class(),"Racc_token_to_s_table")["$[]"](t))?n:r.$raise("[Racc Bug] can't convert token "+t+" to string")},G.$$arity=1),e.defn(L,"$token_to_str",D=function(t){var n=this;return e.const_get_qualified(n.$class(),"Racc_token_to_s_table")["$[]"](t)},D.$$arity=1)}(h[0],0,h)}(o[0],o)},Opal.modules["parser/compatibility/ruby1_8"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.klass),$=e.truthy,i=e.send,a=e.gvars;return e.add_stubs(["$is_a?","$gsub","$[]","$to_sym","$original_percent"]),function(t,$super,s){function o(){}var c,_=o=r(t,null,"String",o),u=(_.$$proto,[_].concat(s));return e.alias(_,"original_percent","%"),e.defn(_,"$%",c=function(t){var r,s,o=this,c=arguments.length,_=c-1;_<0&&(_=0),s=new Array(_);for(var l=1;l floating literal anymore; put 0 before dot",bare_backslash:"bare backslash only allowed before newline",unexpected:"unexpected `%{character}'",embedded_document:"embedded document meets end of file (and they embark on a romantic journey)",invalid_escape_use:"invalid character syntax; use ?%{escape}",ambiguous_literal:"ambiguous first argument; put parentheses or a space even after the operator",ambiguous_prefix:"`%{prefix}' interpreted as argument prefix",nth_ref_alias:"cannot define an alias for a back-reference variable",begin_in_method:"BEGIN in method",backref_assignment:"cannot assign to a back-reference variable",invalid_assignment:"cannot assign to a keyword",module_name_const:"class or module name must be a constant literal",unexpected_token:"unexpected token %{token}",argument_const:"formal argument cannot be a constant",argument_ivar:"formal argument cannot be an instance variable",argument_gvar:"formal argument cannot be a global variable",argument_cvar:"formal argument cannot be a class variable",duplicate_argument:"duplicate argument name",empty_symbol:"empty symbol literal",odd_hash:"odd number of entries for a hash",singleton_literal:"cannot define a singleton method for a literal",dynamic_const:"dynamic constant assignment",const_reassignment:"constant re-assignment", -module_in_def:"module definition in method body",class_in_def:"class definition in method body",unexpected_percent_str:"%{type}: unknown type of percent-literal",block_and_blockarg:"both block argument and literal block are passed",masgn_as_condition:"multiple assignment in conditional context",block_given_to_yield:"block given to yield",invalid_regexp:"%{message}",useless_else:"else without rescue is useless",invalid_encoding:"literal contains escape sequences incompatible with UTF-8",invalid_action:"cannot %{action}",clobbered:"clobbered by: %{action}"}).$freeze())}(t[0],t)},Opal.modules["parser/ast/processor"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice),$=e.module,i=e.klass,a=e.truthy;return e.add_stubs(["$updated","$process_all","$on_var","$!","$nil?","$process","$on_vasgn","$on_argument","$warn"]),function(t,s){var o=$(t,"Parser"),c=(o.$$proto,[o].concat(s));!function(t,s){var o=$(t,"AST"),c=(o.$$proto,[o].concat(s));!function(t,$super,$){function s(){}var o,c,_,u,l,d,p,f,g,h,m,y,v,b,k,x,E=s=i(t,$super,"Processor",s);E.$$proto,[E].concat($);e.defn(E,"$process_regular_node",o=function(e){var t=this;return e.$updated(n,t.$process_all(e))},o.$$arity=1),e.alias(E,"on_dstr","process_regular_node"),e.alias(E,"on_dsym","process_regular_node"),e.alias(E,"on_regexp","process_regular_node"),e.alias(E,"on_xstr","process_regular_node"),e.alias(E,"on_splat","process_regular_node"),e.alias(E,"on_array","process_regular_node"),e.alias(E,"on_pair","process_regular_node"),e.alias(E,"on_hash","process_regular_node"),e.alias(E,"on_irange","process_regular_node"),e.alias(E,"on_erange","process_regular_node"),e.defn(E,"$on_var",c=function(e){return e},c.$$arity=1),e.defn(E,"$process_variable_node",_=function(e){return this.$on_var(e)},_.$$arity=1),e.alias(E,"on_lvar","process_variable_node"),e.alias(E,"on_ivar","process_variable_node"),e.alias(E,"on_gvar","process_variable_node"),e.alias(E,"on_cvar","process_variable_node"),e.alias(E,"on_back_ref","process_variable_node"),e.alias(E,"on_nth_ref","process_variable_node"),e.defn(E,"$on_vasgn",u=function(t){var r,$=this,i=n,s=n;return i=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],s=null==r[1]?n:r[1],a(s["$nil?"]()["$!"]())?t.$updated(n,[i,$.$process(s)]):t},u.$$arity=1),e.defn(E,"$process_var_asgn_node",l=function(e){return this.$on_vasgn(e)},l.$$arity=1),e.alias(E,"on_lvasgn","process_var_asgn_node"),e.alias(E,"on_ivasgn","process_var_asgn_node"),e.alias(E,"on_gvasgn","process_var_asgn_node"),e.alias(E,"on_cvasgn","process_var_asgn_node"),e.alias(E,"on_and_asgn","process_regular_node"),e.alias(E,"on_or_asgn","process_regular_node"),e.defn(E,"$on_op_asgn",d=function(t){var r,$=this,i=n,a=n,s=n;return i=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],a=null==r[1]?n:r[1],s=null==r[2]?n:r[2],t.$updated(n,[$.$process(i),a,$.$process(s)])},d.$$arity=1),e.alias(E,"on_mlhs","process_regular_node"),e.alias(E,"on_masgn","process_regular_node"),e.defn(E,"$on_const",p=function(t){var r,$=this,i=n,a=n;return i=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],a=null==r[1]?n:r[1],t.$updated(n,[$.$process(i),a])},p.$$arity=1),e.defn(E,"$on_casgn",f=function(t){var r,$=this,i=n,s=n,o=n;return i=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],s=null==r[1]?n:r[1],o=null==r[2]?n:r[2],a(o["$nil?"]()["$!"]())?t.$updated(n,[$.$process(i),s,$.$process(o)]):t.$updated(n,[$.$process(i),s])},f.$$arity=1),e.alias(E,"on_args","process_regular_node"),e.defn(E,"$on_argument",g=function(t){var r,$=this,i=n,s=n;return i=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],s=null==r[1]?n:r[1],a(s["$nil?"]()["$!"]())?t.$updated(n,[i,$.$process(s)]):t},g.$$arity=1),e.defn(E,"$process_argument_node",h=function(e){return this.$on_argument(e)},h.$$arity=1),e.alias(E,"on_arg","process_argument_node"),e.alias(E,"on_optarg","process_argument_node"),e.alias(E,"on_restarg","process_argument_node"),e.alias(E,"on_blockarg","process_argument_node"),e.alias(E,"on_shadowarg","process_argument_node"),e.alias(E,"on_kwarg","process_argument_node"),e.alias(E,"on_kwoptarg","process_argument_node"),e.alias(E,"on_kwrestarg","process_argument_node"),e.alias(E,"on_procarg0","process_argument_node"),e.alias(E,"on_arg_expr","process_regular_node"),e.alias(E,"on_restarg_expr","process_regular_node"),e.alias(E,"on_blockarg_expr","process_regular_node"),e.alias(E,"on_block_pass","process_regular_node"),e.alias(E,"on_module","process_regular_node"),e.alias(E,"on_class","process_regular_node"),e.alias(E,"on_sclass","process_regular_node"),e.defn(E,"$on_def",m=function(t){var r,$=this,i=n,a=n,s=n;return i=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],a=null==r[1]?n:r[1],s=null==r[2]?n:r[2],t.$updated(n,[i,$.$process(a),$.$process(s)])},m.$$arity=1),e.defn(E,"$on_defs",y=function(t){var r,$=this,i=n,a=n,s=n,o=n;return i=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],a=null==r[1]?n:r[1],s=null==r[2]?n:r[2],o=null==r[3]?n:r[3],t.$updated(n,[$.$process(i),a,$.$process(s),$.$process(o)])},y.$$arity=1),e.alias(E,"on_undef","process_regular_node"),e.alias(E,"on_alias","process_regular_node"),e.defn(E,"$on_send",v=function(t){var $,i=this,s=n,o=n,c=n;return s=null==($=[].concat(e.to_a(t)))[0]?n:$[0],o=null==$[1]?n:$[1],c=r.call($,2),a(s)&&(s=i.$process(s)),t.$updated(n,[s,o].concat(e.to_a(i.$process_all(c))))},v.$$arity=1),e.alias(E,"on_csend","on_send"),e.alias(E,"on_block","process_regular_node"),e.alias(E,"on_while","process_regular_node"),e.alias(E,"on_while_post","process_regular_node"),e.alias(E,"on_until","process_regular_node"),e.alias(E,"on_until_post","process_regular_node"),e.alias(E,"on_for","process_regular_node"),e.alias(E,"on_return","process_regular_node"),e.alias(E,"on_break","process_regular_node"),e.alias(E,"on_next","process_regular_node"),e.alias(E,"on_redo","process_regular_node"),e.alias(E,"on_retry","process_regular_node"),e.alias(E,"on_super","process_regular_node"),e.alias(E,"on_yield","process_regular_node"),e.alias(E,"on_defined?","process_regular_node"),e.alias(E,"on_not","process_regular_node"),e.alias(E,"on_and","process_regular_node"),e.alias(E,"on_or","process_regular_node"),e.alias(E,"on_if","process_regular_node"),e.alias(E,"on_when","process_regular_node"),e.alias(E,"on_case","process_regular_node"),e.alias(E,"on_iflipflop","process_regular_node"),e.alias(E,"on_eflipflop","process_regular_node"),e.alias(E,"on_match_current_line","process_regular_node"),e.alias(E,"on_match_with_lvasgn","process_regular_node"),e.alias(E,"on_resbody","process_regular_node"),e.alias(E,"on_rescue","process_regular_node"),e.alias(E,"on_ensure","process_regular_node"),e.alias(E,"on_begin","process_regular_node"),e.alias(E,"on_kwbegin","process_regular_node"),e.alias(E,"on_preexe","process_regular_node"),e.alias(E,"on_postexe","process_regular_node"),e.defn(E,"$process_variable_node",b=function(e){var t=this;return t.$warn("Parser::AST::Processor#process_variable_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_var instead."),t.$on_var(e)},b.$$arity=1),e.defn(E,"$process_var_asgn_node",k=function(e){var t=this;return t.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_vasgn instead."),t.$on_vasgn(e)},k.$$arity=1),e.defn(E,"$process_argument_node",x=function(e){var t=this;return t.$warn("Parser::AST::Processor#process_argument_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_argument instead."),t.$on_argument(e)},x.$$arity=1)}(c[0],e.const_get_qualified(e.const_get_qualified("::","AST"),"Processor"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/meta"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.module),r=e.send;return e.add_stubs(["$freeze","$to_set","$map","$to_proc"]),function(t,$){var i=n(t,"Parser"),a=(i.$$proto,[i].concat($));!function(t,$){var i=n(t,"Meta"),a=(i.$$proto,[i].concat($));e.const_set(a[0],"NODE_TYPES",r(["true","false","nil","int","float","str","dstr","sym","dsym","xstr","regopt","regexp","array","splat","array","pair","kwsplat","hash","irange","erange","self","lvar","ivar","cvar","gvar","const","defined?","lvasgn","ivasgn","cvasgn","gvasgn","casgn","mlhs","masgn","op_asgn","op_asgn","and_asgn","ensure","rescue","arg_expr","or_asgn","and_asgn","or_asgn","back_ref","nth_ref","match_with_lvasgn","match_current_line","module","class","sclass","def","defs","undef","alias","args","cbase","arg","optarg","restarg","blockarg","block_pass","args","def","kwarg","kwoptarg","kwrestarg","send","csend","super","zsuper","yield","block","and","not","or","if","when","case","while","until","while_post","until_post","for","break","next","redo","return","resbody","kwbegin","begin","retry","preexe","postexe","iflipflop","eflipflop","shadowarg","complex","rational","__FILE__","__LINE__"],"map",[],"to_sym".$to_proc()).$to_set().$freeze())}(a[0],a)}(t[0],t)},Opal.modules["parser/source/buffer"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var i=[],a=e.nil,s=(e.breaker,e.slice,e.module),o=e.klass,c=e.truthy,_=e.gvars,u=e.hash2,l=e.send;return e.add_stubs(["$attr_reader","$empty?","$=~","$==","$[]","$freeze","$match","$find","$encoding","$recognize_encoding","$force_encoding","$nil?","$encode","$open","$read","$source=","$-","$raise","$frozen?","$dup","$reencode_string","$class","$valid_encoding?","$name","$raw_source=","$gsub","$!","$ascii_only?","$!=","$line_for","$+","$[]=","$to_a","$lines","$end_with?","$<<","$each","$chomp!","$fetch","$source_lines","$<=","$>","$size","$line_begins","$new","$-@","$private","$index","$unshift","$length","$respond_to?","$bsearch"]),function(i,d){var p=s(i,"Parser"),f=(p.$$proto,[p].concat(d));!function(i,d){var p=s(i,"Source"),f=(p.$$proto,[p].concat(d));!function(i,$super,s){function d(){}var p,f,g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O=d=o(i,null,"Buffer",d),I=O.$$proto,z=[O].concat(s);I.name=I.source=I.slice_source=I.first_line=I.line_for_position=I.column_for_position=I.lines=I.line_begins=a,O.$attr_reader("name","first_line"),e.const_set(z[0],"ENCODING_RE",new RegExp("\\#.*coding\\s*[:=]\\s*((utf8-mac)|([A-Za-z0-9_-]+?)(-unix|-dos|-mac)|([A-Za-z0-9_-]+))")),e.defs(O,"$recognize_encoding",p=function(t){var n,r,$=a,i=a,s=a,o=a;return c(t["$empty?"]())?a:(t["$=~"](/^(.*)\n?(.*\n)?/),$=(n=[(r=_["~"])===a?a:r["$[]"](1),(r=_["~"])===a?a:r["$[]"](2)])[0],i=n[1],c($["$=~"](/^\xef\xbb\xbf/))?e.const_get_qualified(e.const_get_relative(z,"Encoding"),"UTF_8"):(s=$["$[]"](0,2)["$=="]("#!".$force_encoding("ASCII-8BIT").$freeze())?i:$,c(o=e.const_get_relative(z,"ENCODING_RE").$match(s))?e.const_get_relative(z,"Encoding").$find(c(n=c(r=o["$[]"](2))?r:o["$[]"](3))?n:o["$[]"](5)):a))},p.$$arity=1),e.defs(O,"$reencode_string",f=function(t){var n=this,r=a,$=a;return r=t.$encoding(),$=n.$recognize_encoding(t.$force_encoding(e.const_get_qualified(e.const_get_relative(z,"Encoding"),"BINARY"))),c($["$nil?"]())?t.$force_encoding(r):$["$=="](e.const_get_qualified(e.const_get_relative(z,"Encoding"),"BINARY"))?t:t.$force_encoding($).$encode(e.const_get_qualified(e.const_get_relative(z,"Encoding"),"UTF_8"))},f.$$arity=1),e.defn(O,"$initialize",g=function(e,t){var n=this;return null==t&&(t=1),n.name=e,n.source=a,n.first_line=t,n.lines=a,n.line_begins=a,n.slice_source=a,n.line_for_position=u([],{}),n.column_for_position=u([],{})},g.$$arity=-2),e.defn(O,"$read",h=function(){var n,r=this;return l(e.const_get_relative(z,"File"),"open",[r.name,"rb".$force_encoding("ASCII-8BIT")],((n=function(r){var $=n.$$s||this,i=a;return null==r&&(r=a),i=[r.$read()],l($,"source=",e.to_a(i)),i[t(i.length,1)]}).$$s=r,n.$$arity=1,n)),r},h.$$arity=0),e.defn(O,"$source",m=function(){var t=this;return c(t.source["$nil?"]())&&t.$raise(e.const_get_relative(z,"RuntimeError"),"Cannot extract source from uninitialized Source::Buffer".$force_encoding("ASCII-8BIT")),t.source},m.$$arity=0),e.defn(O,"$source=",y=function(n){var r=this,$=a;return c(e.const_get_relative(z,"Encoding","skip_raise")?"constant":a)&&(c(n["$frozen?"]())&&(n=n.$dup()),n=r.$class().$reencode_string(n),c(n["$valid_encoding?"]())||r.$raise(e.const_get_relative(z,"EncodingError"),"invalid byte sequence in "+n.$encoding().$name())),$=[n],l(r,"raw_source=",e.to_a($)),$[t($.length,1)]},y.$$arity=1),e.defn(O,"$raw_source=",v=function(t){var n,r,$,i=this;return c(i.source)&&i.$raise(e.const_get_relative(z,"ArgumentError"),"Source::Buffer is immutable".$force_encoding("ASCII-8BIT")),i.source=t.$gsub("\r\n".$force_encoding("ASCII-8BIT").$freeze(),"\n".$force_encoding("ASCII-8BIT").$freeze()).$freeze(),c(c(n=c(r=c($=e.const_get_relative(z,"Encoding","skip_raise")?"constant":a)?i.source["$ascii_only?"]()["$!"]():$)?i.source.$encoding()["$!="](e.const_get_qualified(e.const_get_relative(z,"Encoding"),"UTF_32LE")):r)?i.source.$encoding()["$!="](e.const_get_qualified(e.const_get_relative(z,"Encoding"),"BINARY")):n)?i.slice_source=i.source.$encode(e.const_get_qualified(e.const_get_relative(z,"Encoding"),"UTF_32LE")):a},v.$$arity=1),e.defn(O,"$slice",b=function(e){var t=this;return c(t.slice_source["$nil?"]())?t.source["$[]"](e):t.slice_source["$[]"](e).$encode(t.source.$encoding())},b.$$arity=1),e.defn(O,"$decompose_position",k=function(r){var $,i,s=this,o=a,c=a;return i=s.$line_for(r),o=null==($=e.to_ary(i))[0]?a:$[0],c=null==$[1]?a:$[1],[n(s.first_line,o),t(r,c)]},k.$$arity=1),e.defn(O,"$line_for_position",x=function(r){var $,i,s,o=this,_=a,u=a;return c($=o.line_for_position["$[]"](r))?$:(_=[r,(s=o.$line_for(r),i=e.to_ary(s),u=null==i[0]?a:i[0],null==i[1]?a:i[1],n(o.first_line,u))],l(o.line_for_position,"[]=",e.to_a(_)),_[t(_.length,1)])},x.$$arity=1),e.defn(O,"$column_for_position",E=function(n){var r,$,i,s=this,o=a,_=a;return c(r=s.column_for_position["$[]"](n))?r:(o=[n,(i=s.$line_for(n),$=e.to_ary(i),null==$[0]?a:$[0],_=null==$[1]?a:$[1],t(n,_))],l(s.column_for_position,"[]=",e.to_a(o)),o[t(o.length,1)])},E.$$arity=1),e.defn(O,"$source_lines",w=function(){var e,t,n=this,r=a;return n.lines=c(e=n.lines)?e:(r=n.source.$lines().$to_a(),c(n.source["$end_with?"]("\n".$force_encoding("ASCII-8BIT").$freeze()))&&r["$<<"]("".$force_encoding("ASCII-8BIT")),l(r,"each",[],((t=function(e){t.$$s;return null==e&&(e=a),e["$chomp!"]("\n".$force_encoding("ASCII-8BIT").$freeze()),e.$freeze()}).$$s=n,t.$$arity=1,t)),r.$freeze())},w.$$arity=0),e.defn(O,"$source_line",R=function(e){var n=this;return n.$source_lines().$fetch(t(e,n.first_line)).$dup()},R.$$arity=1),e.defn(O,"$line_range",N=function(i){var s,o=this,_=a;return _=n(t(i,o.first_line),1),c(c(s=r(_,0))?s:$(_,o.$line_begins().$size()))?o.$raise(e.const_get_relative(z,"IndexError"),"Parser::Source::Buffer: range for line "+i+" requested, valid line numbers are "+o.first_line+".."+t(n(o.first_line,o.$line_begins().$size()),1)):_["$=="](o.$line_begins().$size())?e.const_get_relative(z,"Range").$new(o,o.$line_begins()["$[]"](_["$-@"]())["$[]"](1),o.source.$size()):e.const_get_relative(z,"Range").$new(o,o.$line_begins()["$[]"](_["$-@"]())["$[]"](1),t(o.$line_begins()["$[]"](t(_["$-@"](),1))["$[]"](1),1))},N.$$arity=1),e.defn(O,"$last_line",A=function(){var e=this;return t(n(e.$line_begins().$size(),e.first_line),1)},A.$$arity=0),O.$private(),e.defn(O,"$line_begins",S=function(){var e,t=this,r=a;if(c(t.line_begins));else for(e=[[[0,0]],0],t.line_begins=e[0],r=e[1];c(r=t.source.$index("\n".$force_encoding("ASCII-8BIT").$freeze(),r));)r=n(r,1),t.line_begins.$unshift([t.line_begins.$length(),r]);return t.line_begins},S.$$arity=0),c([]["$respond_to?"]("bsearch"))?e.defn(O,"$line_for",T=function(e){var t,n=this;return l(n.$line_begins(),"bsearch",[],((t=function(n,$){t.$$s;return null==n&&(n=a),null==$&&($=a),r($,e)}).$$s=n,t.$$arity=2,t))},T.$$arity=1):e.defn(O,"$line_for",q=function(e){var t,n=this;return l(n.$line_begins(),"find",[],((t=function(n,$){t.$$s;return null==n&&(n=a),null==$&&($=a),r($,e)}).$$s=n,t.$$arity=2,t))},q.$$arity=1)}(f[0],0,f)}(f[0],f)}(i[0],i)},Opal.modules["parser/source/range"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}e.top;var i=[],a=e.nil,s=(e.breaker,e.slice,e.module),o=e.klass,c=e.truthy;return e.add_stubs(["$attr_reader","$<","$raise","$nil?","$freeze","$new","$-","$line_for_position","$alias_method","$column_for_position","$!=","$line","$begin","$end","$inspect","$column","$source_line","$slice","$begin_pos","$end_pos","$include?","$source","$to_a","$decompose_position","$join","$name","$+","$min","$max","$disjoint?","$>=","$==","$is_a?","$source_buffer"]),function(i,_){var u=s(i,"Parser"),l=(u.$$proto,[u].concat(_));!function(i,_){var u=s(i,"Source"),l=(u.$$proto,[u].concat(_));!function(i,$super,s){function _(){}var u,l,d,p,f,g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I=_=o(i,null,"Range",_),z=I.$$proto,C=[I].concat(s);z.source_buffer=z.begin_pos=z.end_pos=a,I.$attr_reader("source_buffer"),I.$attr_reader("begin_pos","end_pos"),e.defn(I,"$initialize",u=function(n,r,$){var i,a=this;return c(t($,r))&&a.$raise(e.const_get_relative(C,"ArgumentError"),"Parser::Source::Range: end_pos must not be less than begin_pos"),c(n["$nil?"]())&&a.$raise(e.const_get_relative(C,"ArgumentError"),"Parser::Source::Range: source_buffer must not be nil"),a.source_buffer=n,i=[r,$],a.begin_pos=i[0],a.end_pos=i[1],a.$freeze()},u.$$arity=3),e.defn(I,"$begin",l=function(){var t=this;return e.const_get_relative(C,"Range").$new(t.source_buffer,t.begin_pos,t.begin_pos)},l.$$arity=0),e.defn(I,"$end",d=function(){var t=this;return e.const_get_relative(C,"Range").$new(t.source_buffer,t.end_pos,t.end_pos)},d.$$arity=0),e.defn(I,"$size",p=function(){var e=this;return n(e.end_pos,e.begin_pos)},p.$$arity=0),e.alias(I,"length","size"),e.defn(I,"$line",f=function(){var e=this;return e.source_buffer.$line_for_position(e.begin_pos)},f.$$arity=0),I.$alias_method("first_line","line"),e.defn(I,"$column",g=function(){var e=this;return e.source_buffer.$column_for_position(e.begin_pos)},g.$$arity=0),e.defn(I,"$last_line",h=function(){var e=this;return e.source_buffer.$line_for_position(e.end_pos)},h.$$arity=0),e.defn(I,"$last_column",m=function(){var e=this;return e.source_buffer.$column_for_position(e.end_pos)},m.$$arity=0),e.defn(I,"$column_range",y=function(){var t=this;return c(t.$begin().$line()["$!="](t.$end().$line()))&&t.$raise(e.const_get_relative(C,"RangeError"),t.$inspect()+" spans more than one line"),e.Range.$new(t.$begin().$column(),t.$end().$column(),!0)},y.$$arity=0),e.defn(I,"$source_line",v=function(){var e=this;return e.source_buffer.$source_line(e.$line())},v.$$arity=0),e.defn(I,"$source",b=function(){var t=this;return t.source_buffer.$slice(e.Range.$new(t.$begin_pos(),t.$end_pos(),!0))},b.$$arity=0),e.defn(I,"$is?",k=function(){var e,t=this,n=arguments.length,r=n-0;r<0&&(r=0),e=new Array(r);for(var $=0;$"},O.$$arity=0)}(l[0],0,l)}(l[0],l)}(i[0],i)},Opal.modules["parser/source/comment"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),$=e.klass,i=e.truthy;return e.add_stubs(["$attr_reader","$alias_method","$new","$associate","$associate_locations","$freeze","$source","$text","$===","$==","$type","$is_a?","$location","$to_s","$expression","$inspect"]),function(t,a){var s=r(t,"Parser"),o=(s.$$proto,[s].concat(a));!function(t,a){var s=r(t,"Source"),o=(s.$$proto,[s].concat(a));!function(t,$super,r){function a(){}var s,o,c,_,u,l,d,p,f=a=$(t,null,"Comment",a),g=f.$$proto,h=[f].concat(r);g.location=n,f.$attr_reader("text"),f.$attr_reader("location"),f.$alias_method("loc","location"),e.defs(f,"$associate",s=function(t,n){return e.const_get_relative(h,"Associator").$new(t,n).$associate()},s.$$arity=2),e.defs(f,"$associate_locations",o=function(t,n){return e.const_get_relative(h,"Associator").$new(t,n).$associate_locations()},o.$$arity=2),e.defn(f,"$initialize",c=function(t){var n=this;return n.location=e.const_get_qualified(e.const_get_qualified(e.const_get_relative(h,"Parser"),"Source"),"Map").$new(t),n.text=t.$source().$freeze(),n.$freeze()},c.$$arity=1),e.defn(f,"$type",_=function(){var e=n;return e=this.$text(),/^#/["$==="](e)?"inline":/^=begin/["$==="](e)?"document":n},_.$$arity=0),e.defn(f,"$inline?",u=function(){return this.$type()["$=="]("inline")},u.$$arity=0),e.defn(f,"$document?",l=function(){return this.$type()["$=="]("document")},l.$$arity=0),e.defn(f,"$==",d=function(t){var n,r=this;return i(n=t["$is_a?"](e.const_get_qualified(e.const_get_relative(h,"Source"),"Comment")))?r.location["$=="](t.$location()):n},d.$$arity=1),e.defn(f,"$inspect",p=function(){var e=this;return"#"},p.$$arity=0)}(o[0],0,o)}(o[0],o)}(t[0],t)},Opal.modules["parser/source/comment/associator"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var $=[],i=e.nil,a=(e.breaker,e.slice,e.module),s=e.klass,o=e.send,c=e.truthy;return e.add_stubs(["$attr_accessor","$do_associate","$private","$new","$[]=","$-","$advance_comment","$advance_through_directives","$visit","$process_leading_comments","$location","$<=","$line","$last_line","$is_a?","$each","$children","$loc","$expression","$process_trailing_comments","$==","$type","$current_comment_before?","$associate_and_advance_comment","$current_comment_before_end?","$current_comment_decorates?","$+","$[]","$!","$end_pos","$begin_pos","$<<","$=~","$text"]),function($,_){var u=a($,"Parser"),l=(u.$$proto,[u].concat(_));!function($,_){var u=a($,"Source"),l=(u.$$proto,[u].concat(_));!function($,$super,a){function _(){}var u,l,d,p,f,g,h,m,y,v,b,k,x,E=_=s($,null,"Associator",_),w=E.$$proto,R=[E].concat(a);w.skip_directives=w.ast=w.mapping=w.current_comment=w.comment_num=w.comments=w.map_using_locations=i,E.$attr_accessor("skip_directives"),e.defn(E,"$initialize",u=function(e,t){var n=this;return n.ast=e,n.comments=t,n.skip_directives=!0},u.$$arity=2),e.defn(E,"$associate",l=function(){var e=this;return e.map_using_locations=!1,e.$do_associate()},l.$$arity=0),e.defn(E,"$associate_locations",d=function(){var e=this;return e.map_using_locations=!0,e.$do_associate()},d.$$arity=0),E.$private(),e.defn(E,"$do_associate",p=function(){var n,r=this;return r.mapping=o(e.const_get_relative(R,"Hash"),"new",[],((n=function(r,$){n.$$s;var a=i;return null==r&&(r=i),null==$&&($=i),a=[$,[]],o(r,"[]=",e.to_a(a)),a[t(a.length,1)]}).$$s=r,n.$$arity=2,n)),r.comment_num=-1,r.$advance_comment(),c(r.skip_directives)&&r.$advance_through_directives(),c(r.ast)&&r.$visit(r.ast),r.mapping},p.$$arity=0),e.defn(E,"$visit",f=function(t){var r,$,a=this,s=i;return a.$process_leading_comments(t),c(a.current_comment)?(s=t.$location(),c(c(r=n(a.current_comment.$location().$line(),s.$last_line()))?r:s["$is_a?"](e.const_get_qualified(e.const_get_relative(R,"Map"),"Heredoc")))?(o(t.$children(),"each",[],(($=function(t){var n,r,a=$.$$s||this;return null==t&&(t=i),c(c(n=c(r=t["$is_a?"](e.const_get_qualified(e.const_get_relative(R,"AST"),"Node")))?t.$loc():r)?t.$loc().$expression():n)?a.$visit(t):i}).$$s=a,$.$$arity=1,$)),a.$process_trailing_comments(t)):i):i},f.$$arity=1),e.defn(E,"$process_leading_comments",g=function(e){var t=this;if(e.$type()["$=="]("begin"))return i;for(;c(t["$current_comment_before?"](e));)t.$associate_and_advance_comment(e)},g.$$arity=1),e.defn(E,"$process_trailing_comments",h=function(e){for(var t=this;c(t["$current_comment_before_end?"](e));)t.$associate_and_advance_comment(e);for(;c(t["$current_comment_decorates?"](e));)t.$associate_and_advance_comment(e)},h.$$arity=1),e.defn(E,"$advance_comment",m=function(){var e=this;return e.comment_num=r(e.comment_num,1),e.current_comment=e.comments["$[]"](e.comment_num)},m.$$arity=0),e.defn(E,"$current_comment_before?",y=function(e){var t=this,r=i,$=i;return!c(t.current_comment["$!"]())&&(r=t.current_comment.$location().$expression(),$=e.$location().$expression(),n(r.$end_pos(),$.$begin_pos()))},y.$$arity=1),e.defn(E,"$current_comment_before_end?",v=function(e){var t=this,r=i,$=i;return!c(t.current_comment["$!"]())&&(r=t.current_comment.$location().$expression(),$=e.$location().$expression(),n(r.$end_pos(),$.$end_pos()))},v.$$arity=1),e.defn(E,"$current_comment_decorates?",b=function(e){var t=this;return!c(t.current_comment["$!"]())&&t.current_comment.$location().$line()["$=="](e.$location().$last_line())},b.$$arity=1),e.defn(E,"$associate_and_advance_comment",k=function(e){var t=this,n=i;return n=c(t.map_using_locations)?e.$location():e,t.mapping["$[]"](n)["$<<"](t.current_comment),t.$advance_comment()},k.$$arity=1),e.defn(E,"$advance_through_directives",x=function(){var t,n=this;return c(c(t=n.current_comment)?n.current_comment.$text()["$=~"](/^#!/):t)&&n.$advance_comment(),c(c(t=n.current_comment)?n.current_comment.$text()["$=~"](e.const_get_qualified(e.const_get_relative(R,"Buffer"),"ENCODING_RE")):t)?n.$advance_comment():i},x.$$arity=0)}(e.const_get_relative(l,"Comment"),0,l)}(l[0],l)}($[0],$)},Opal.modules["parser/source/rewriter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e=","$==","$[]","$all?","$intersect","$nil?","$max","$sort_by","$push","$join","$first","$max_by","$merge_replacements","$replace_actions","$disjoint?","$<","$process"]),function(a,p){var f=o(a,"Parser"),g=(f.$$proto,[f].concat(p));!function(a,p){var f=o(a,"Source"),g=(f.$$proto,[f].concat(p));!function(a,$super,o){function p(){}var f,g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I,z,C,P,B,G,D,L,M,j,H,F,U,Y,X=p=c(a,null,"Rewriter",p),K=X.$$proto,V=[X].concat(o);K.diagnostics=K.insert_before_multi_order=K.insert_after_multi_order=K.source_buffer=K.queue=K.clobber=K.insertions=K.pending_queue=K.pending_clobber=K.pending_insertions=s,X.$attr_reader("source_buffer"),X.$attr_reader("diagnostics"),e.defn(X,"$initialize",f=function(n){var r,$=this,i=s;return $.diagnostics=e.const_get_qualified(e.const_get_relative(V,"Diagnostic"),"Engine").$new(),i=[_($,"lambda",[],(r=function(e){r.$$s;return null==u.stderr&&(u.stderr=s),null==e&&(e=s),u.stderr.$puts(e.$render())},r.$$s=$,r.$$arity=1,r))],_($.diagnostics,"consumer=",e.to_a(i)),i[t(i.length,1)],$.source_buffer=n,$.queue=[],$.clobber=0,$.insertions=0,$.insert_before_multi_order=0,$.insert_after_multi_order=0},f.$$arity=1),e.defn(X,"$remove",g=function(t){return this.$append(e.const_get_qualified(e.const_get_relative(V,"Rewriter"),"Action").$new(t,"".$freeze()))},g.$$arity=1),e.defn(X,"$insert_before",h=function(t,n){return this.$append(e.const_get_qualified(e.const_get_relative(V,"Rewriter"),"Action").$new(t.$begin(),n))},h.$$arity=2),e.defn(X,"$insert_before_multi",m=function(n,r){var $=this;return $.insert_before_multi_order=t($.insert_before_multi_order,1),$.$append(e.const_get_qualified(e.const_get_relative(V,"Rewriter"),"Action").$new(n.$begin(),r,!0,$.insert_before_multi_order))},m.$$arity=2),e.defn(X,"$insert_after",y=function(t,n){return this.$append(e.const_get_qualified(e.const_get_relative(V,"Rewriter"),"Action").$new(t.$end(),n))},y.$$arity=2),e.defn(X,"$insert_after_multi",v=function(t,r){var $=this;return $.insert_after_multi_order=n($.insert_after_multi_order,1),$.$append(e.const_get_qualified(e.const_get_relative(V,"Rewriter"),"Action").$new(t.$end(),r,!0,$.insert_after_multi_order))},v.$$arity=2),e.defn(X,"$replace",b=function(t,n){return this.$append(e.const_get_qualified(e.const_get_relative(V,"Rewriter"),"Action").$new(t,n))},b.$$arity=2),e.defn(X,"$process",k=function(){var r,$=this,i=s,a=s;return l($["$in_transaction?"]())&&$.$raise("Do not call "+$.$class()+"#process inside a transaction"),i=0,a=$.source_buffer.$source().$dup(),_($.queue.$sort(),"each",[],((r=function($){r.$$s;var o=s,c=s,u=s;return null==$&&($=s),c=n(o=n($.$range().$begin_pos(),i),$.$range().$length()),u=[e.Range.$new(o,c,!0),$.$replacement()],_(a,"[]=",e.to_a(u)),u[t(u.length,1)],i=n(i,t($.$replacement().$length(),$.$range().$length()))}).$$s=$,r.$$arity=1,r)),a},k.$$arity=0),e.defn(X,"$transaction",x=function(){var t=this,n=x.$$p,r=n||s;return n&&(x.$$p=null),function(){try{return r!==s||t.$raise(t.$class()+"#transaction requires block"),l(t["$in_transaction?"]())&&t.$raise("Nested transaction is not supported"),t.pending_queue=t.queue.$dup(),t.pending_clobber=t.clobber,t.pending_insertions=t.insertions,e.yieldX(r,[]),t.queue=t.pending_queue,t.clobber=t.pending_clobber,t.insertions=t.pending_insertions,t}finally{t.pending_queue=s,t.pending_clobber=s,t.pending_insertions=s}}()},x.$$arity=0),X.$private(),e.defn(X,"$append",E=function(e){var t,n,r,$=this,i=s,a=s,o=s,c=s;if(i=e.$range(),l(i["$empty?"]())){if(l(e.$replacement()["$empty?"]()))return $;l(l(t=e["$allow_multiple_insertions?"]()["$!"]())?a=$["$clobbered_insertion?"](i):t)&&$.$raise_clobber_error(e,[a]),$.$record_insertion(i),l(o=$["$adjacent_updates?"](i))?(a=_(o,"find",[],((n=function(t){var r,$=n.$$s||this;return null==t&&(t=s),l(r=t.$range()["$overlaps?"](i))?$["$replace_compatible_with_insertion?"](t,e)["$!"]():r}).$$s=$,n.$$arity=1,n)),l(a)&&$.$raise_clobber_error(e,[a]),$["$merge_actions!"](e,o)):$.$active_queue()["$<<"](e)}else l(c=$["$adjacent_insertions?"](i))&&_(c,"each",[],((r=function(t){var n,$=r.$$s||this;return null==t&&(t=s),l(l(n=i["$overlaps?"](t.$range()))?$["$replace_compatible_with_insertion?"](e,t)["$!"]():n)?$.$raise_clobber_error(e,[t]):(e=$.$merge_actions(e,[t]),$.$active_queue().$delete(t))}).$$s=$,r.$$arity=1,r)), -l(o=$["$adjacent_updates?"](i))?l($["$can_merge?"](e,o))?($.$record_replace(i),$["$merge_actions!"](e,o)):$.$raise_clobber_error(e,o):($.$record_replace(i),$.$active_queue()["$<<"](e));return $},E.$$arity=1),e.defn(X,"$record_insertion",w=function(n){var r=this,$=s;return $=[r.$active_insertions()["$|"](1["$<<"](n.$begin_pos()))],_(r,"active_insertions=",e.to_a($)),$[t($.length,1)]},w.$$arity=1),e.defn(X,"$record_replace",R=function(n){var r=this,$=s;return $=[r.$active_clobber()["$|"](r.$clobbered_position_mask(n))],_(r,"active_clobber=",e.to_a($)),$[t($.length,1)]},R.$$arity=1),e.defn(X,"$clobbered_position_mask",N=function(e){return t(1["$<<"](e.$size()),1)["$<<"](e.$begin_pos())},N.$$arity=1),e.defn(X,"$adjacent_position_mask",A=function(e){return t(1["$<<"](n(e.$size(),2)),1)["$<<"](t(e.$begin_pos(),1))},A.$$arity=1),e.defn(X,"$adjacent_insertion_mask",S=function(e){return t(1["$<<"](n(e.$size(),1)),1)["$<<"](e.$begin_pos())},S.$$arity=1),e.defn(X,"$clobbered_insertion?",T=function(e){var t,n=this,$=s;return $=e.$begin_pos(),l(n.$active_insertions()["$&"](1["$<<"]($))["$!="](0))?_(n.$active_queue(),"find",[],((t=function(e){var n;t.$$s;return null==e&&(e=s),l(n=r(e.$range().$begin_pos(),$))?r($,e.$range().$end_pos()):n}).$$s=n,t.$$arity=1,t)):s},T.$$arity=1),e.defn(X,"$adjacent_insertions?",q=function(e){var t,n=this,r=s;return l(n.$active_insertions()["$&"](n.$adjacent_insertion_mask(e))["$!="](0))?(r=_(n.$active_queue(),"select",[],((t=function(n){var r,$=t.$$s||this;return null==n&&(n=s),l(r=n.$range()["$empty?"]())?$["$adjacent?"](e,n.$range()):r}).$$s=n,t.$$arity=1,t)),l(r["$empty?"]())?s:r):s},q.$$arity=1),e.defn(X,"$adjacent_updates?",O=function(e){var t,n=this;return l(n.$active_clobber()["$&"](n.$adjacent_position_mask(e))["$!="](0))?_(n.$active_queue(),"select",[],((t=function(n){var r=t.$$s||this;return null==n&&(n=s),r["$adjacent?"](e,n.$range())}).$$s=n,t.$$arity=1,t)):s},O.$$arity=1),e.defn(X,"$replace_compatible_with_insertion?",I=function(e,n){var r,i,a=s;return l(r=l(i=$(t(e.$replacement().$length(),e.$range().$size()),n.$range().$size()))?a=t(n.$range().$begin_pos(),e.$range().$begin_pos()):i)?e.$replacement()["$[]"](a,n.$replacement().$length())["$=="](n.$replacement()):r},I.$$arity=2),e.defn(X,"$can_merge?",z=function(e,n){var r,$=this,i=s;return i=e.$range(),_(n,"all?",[],((r=function(n){r.$$s;var $,a=s,o=s,c=s,_=s,u=s,d=s,p=s;return null==n&&(n=s),a=i.$intersect(n.$range()),!!l(a["$nil?"]())||(o=t(a.$begin_pos(),i.$begin_pos()),c=t(a.$begin_pos(),n.$range().$begin_pos()),_=[t(n.$range().$length(),c),t(n.$replacement().$length(),c)].$max(),u=[t(i.$length(),o),t(e.$replacement().$length(),o)].$max(),d=l($=e.$replacement()["$[]"](o,_))?$:"".$freeze(),p=l($=n.$replacement()["$[]"](c,u))?$:"".$freeze(),d["$=="](p))}).$$s=$,r.$$arity=1,r))},z.$$arity=2),e.defn(X,"$merge_actions",C=function(t,n){var r,$,i=this,a=s,o=s;return o=(a=_(n.$push(t),"sort_by",[],((r=function(e){r.$$s;return null==e&&(e=s),[e.$range().$begin_pos(),e.$range().$end_pos()]}).$$s=i,r.$$arity=1,r))).$first().$range().$join(_(a,"max_by",[],($=function(e){$.$$s;return null==e&&(e=s),e.$range().$end_pos()},$.$$s=i,$.$$arity=1,$)).$range()),e.const_get_qualified(e.const_get_relative(V,"Rewriter"),"Action").$new(o,i.$merge_replacements(a))},C.$$arity=2),e.defn(X,"$merge_actions!",P=function(e,t){var n=this,r=s;return r=n.$merge_actions(e,t),n.$active_queue().$delete(e),n.$replace_actions(t,r)},P.$$arity=2),e.defn(X,"$merge_replacements",B=function(r){var $,a=this,o=s,c=s;return o="",c=s,_(r,"each",[],(($=function(r){$.$$s;var a,_=s;return null==r&&(r=s),l(l(a=c["$!"]())?a:r.$range()["$disjoint?"](c.$range()))?o["$<<"](r.$replacement()):(_=t([n(c.$range().$begin_pos(),c.$replacement().$length()),c.$range().$end_pos()].$max(),r.$range().$begin_pos()),l(i(_,r.$replacement().$size()))&&o["$<<"](r.$replacement()["$[]"](e.Range.$new(_,-1,!1)))),c=r}).$$s=a,$.$$arity=1,$)),o},B.$$arity=1),e.defn(X,"$replace_actions",G=function(e,t){var n,r=this;return _(e,"each",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=s),t.$active_queue().$delete(e)}).$$s=r,n.$$arity=1,n)),r.$active_queue()["$<<"](t)},G.$$arity=2),e.defn(X,"$raise_clobber_error",D=function(t,n){var r=this,$=s;return $=e.const_get_relative(V,"Diagnostic").$new("error","invalid_action",d(["action"],{action:t}),t.$range()),r.diagnostics.$process($),$=e.const_get_relative(V,"Diagnostic").$new("note","clobbered",d(["action"],{action:n["$[]"](0)}),n["$[]"](0).$range()),r.diagnostics.$process($),r.$raise(e.const_get_relative(V,"ClobberingError"),"Parser::Source::Rewriter detected clobbering")},D.$$arity=2),e.defn(X,"$in_transaction?",L=function(){return this.pending_queue["$nil?"]()["$!"]()},L.$$arity=0),e.defn(X,"$active_queue",M=function(){var e,t=this;return l(e=t.pending_queue)?e:t.queue},M.$$arity=0),e.defn(X,"$active_clobber",j=function(){var e,t=this;return l(e=t.pending_clobber)?e:t.clobber},j.$$arity=0),e.defn(X,"$active_insertions",H=function(){var e,t=this;return l(e=t.pending_insertions)?e:t.insertions},H.$$arity=0),e.defn(X,"$active_clobber=",F=function(e){var t=this;return l(t.pending_clobber)?t.pending_clobber=e:t.clobber=e},F.$$arity=1),e.defn(X,"$active_insertions=",U=function(e){var t=this;return l(t.pending_insertions)?t.pending_insertions=e:t.insertions=e},U.$$arity=1),e.defn(X,"$adjacent?",Y=function(e,t){var n;return l(n=r(e.$begin_pos(),t.$end_pos()))?r(t.$begin_pos(),e.$end_pos()):n},Y.$$arity=2)}(g[0],0,g)}(g[0],g)}(a[0],a)},Opal.modules["parser/source/rewriter/action"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),$=e.klass,i=e.truthy;return e.add_stubs(["$include","$attr_reader","$alias_method","$freeze","$<=>","$begin_pos","$range","$zero?","$order","$==","$length","$empty?","$inspect"]),function(t,a){var s=r(t,"Parser"),o=(s.$$proto,[s].concat(a));!function(t,a){var s=r(t,"Source"),o=(s.$$proto,[s].concat(a));!function(t,$super,r){function a(){}var s,o,c,_=a=$(t,null,"Action",a),u=_.$$proto,l=[_].concat(r);u.range=u.replacement=n,_.$include(e.const_get_relative(l,"Comparable")),_.$attr_reader("range","replacement","allow_multiple_insertions","order"),_.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),e.defn(_,"$initialize",s=function(e,t,n,r){var $=this;return null==t&&(t=""),null==n&&(n=!1),null==r&&(r=0),$.range=e,$.replacement=t,$.allow_multiple_insertions=n,$.order=r,$.$freeze()},s.$$arity=-2),e.defn(_,"$<=>",o=function(e){var t=this,r=n;return r=t.$range().$begin_pos()["$<=>"](e.$range().$begin_pos()),i(r["$zero?"]())?t.$order()["$<=>"](e.$order()):r},o.$$arity=1),e.defn(_,"$to_s",c=function(){var e=this;return i(e.range.$length()["$=="](0)?e.replacement["$empty?"]():e.range.$length()["$=="](0))?"do nothing":e.range.$length()["$=="](0)?"insert "+e.replacement.$inspect():i(e.replacement["$empty?"]())?"remove "+e.range.$length()+" character(s)":"replace "+e.range.$length()+" character(s) with "+e.replacement.$inspect()},c.$$arity=0)}(e.const_get_relative(o,"Rewriter"),0,o)}(o[0],o)}(t[0],t)},Opal.modules["parser/source/map"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.breaker,e.slice,e.module),i=e.klass,a=e.send,s=e.hash2,o=e.range;return e.add_stubs(["$attr_reader","$freeze","$line","$alias_method","$column","$last_line","$last_column","$with","$update_expression","$==","$class","$reduce","$map","$instance_variables","$instance_variable_get","$send","$inject","$to_sym","$[]","$[]=","$-","$protected","$tap","$dup","$to_proc"]),function(n,c){var _=$(n,"Parser"),u=(_.$$proto,[_].concat(c));!function(n,c){var _=$(n,"Source"),u=(_.$$proto,[_].concat(c));!function(n,$super,$){function c(){}var _,u,l,d,p,f,g,h,m,y,v,b,k=c=i(n,null,"Map",c),x=k.$$proto;[k].concat($);x.node=x.expression=r,k.$attr_reader("node"),k.$attr_reader("expression"),e.defn(k,"$initialize",_=function(e){return this.expression=e},_.$$arity=1),e.defn(k,"$initialize_copy",u=function(){var t=this,n=u.$$p,$=r,i=r,s=r;for(n&&(u.$$p=null),i=0,s=arguments.length,$=new Array(s);it:e["$>"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}e.top;var a=[],s=e.nil,o=(e.breaker,e.slice,e.module),c=e.klass,_=e.truthy,u=e.hash2,l=e.send;return e.add_stubs(["$freeze","$attr_reader","$include?","$raise","$join","$inspect","$dup","$%","$[]","$==","$line","$last_line","$is?","$+","$message","$render_line","$first_line_only","$last_line_only","$-","$source_buffer","$decompose_position","$end_pos","$>","$private","$source_line","$*","$length","$each","$line_range","$intersect","$column_range","$size","$[]=","$!","$>=","$map","$name","$!=","$resize","$=~","$source","$new","$begin_pos"]),function(a,d){var p=o(a,"Parser"),f=(p.$$proto,[p].concat(d));!function(a,$super,o){function d(){}var p,f,g,h,m,y,v=d=c(a,null,"Diagnostic",d),b=v.$$proto,k=[v].concat(o);b.reason=b.arguments=b.location=b.level=b.highlights=s,e.const_set(k[0],"LEVELS",["note","warning","error","fatal"].$freeze()),v.$attr_reader("level","reason","arguments"),v.$attr_reader("location","highlights"),e.defn(v,"$initialize",p=function(t,n,r,$,i){var a,s=this;return null==i&&(i=[]),_(e.const_get_relative(k,"LEVELS")["$include?"](t))||s.$raise(e.const_get_relative(k,"ArgumentError"),"Diagnostic#level must be one of "+e.const_get_relative(k,"LEVELS").$join(", ")+"; "+t.$inspect()+" provided."),_($)||s.$raise("Expected a location"),s.level=t,s.reason=n,s.arguments=(_(a=r)?a:u([],{})).$dup().$freeze(),s.location=$,s.highlights=i.$dup().$freeze(),s.$freeze()},p.$$arity=-5),e.defn(v,"$message",f=function(){var t=this;return e.const_get_relative(k,"MESSAGES")["$[]"](t.reason)["$%"](t.arguments)},f.$$arity=0),e.defn(v,"$render",g=function(){var $,i,a=this,o=s,c=s,u=s,l=s,d=s;return _(_($=a.location.$line()["$=="](a.location.$last_line()))?$:a.location["$is?"]("\n"))?t([a.location+": "+a.level+": "+a.$message()],a.$render_line(a.location)):(o=a.$first_line_only(a.location),c=a.$last_line_only(a.location),u=t(n(a.location.$last_line(),a.location.$line()),1),i=a.location.$source_buffer().$decompose_position(a.location.$end_pos()),l=null==($=e.to_ary(i))[0]?s:$[0],d=null==$[1]?s:$[1],t(t([a.location+"-"+l+":"+d+": "+a.level+": "+a.$message()],a.$render_line(o,r(u,2),!1)),a.$render_line(c,!1,!0)))},g.$$arity=0),v.$private(),e.defn(v,"$render_line",h=function(r,a,o){var c,u,d,p=this,f=s,g=s,h=s;return null==a&&(a=!1),null==o&&(o=!1),f=r.$source_line(),g=$(" ",f.$length()),l(p.highlights,"each",[],((c=function(t){c.$$s;var i=s,a=s;return null==t&&(t=s),i=r.$source_buffer().$line_range(r.$line()),_(t=t.$intersect(i))?(a=[t.$column_range(),$("~",t.$size())],l(g,"[]=",e.to_a(a)),a[n(a.length,1)]):s}).$$s=p,c.$$arity=1,c)),_(r["$is?"]("\n"))?g=t(g,"^"):_(_(u=o["$!"]())?i(r.$size(),1):u)?(h=[r.$column_range(),t("^",$("~",n(r.$size(),1)))],l(g,"[]=",e.to_a(h)),h[n(h.length,1)]):(h=[r.$column_range(),$("~",r.$size())],l(g,"[]=",e.to_a(h)),h[n(h.length,1)]),_(a)&&(g=t(g,"...")),l([f,g],"map",[],((d=function(e){d.$$s;return null==e&&(e=s),r.$source_buffer().$name()+":"+r.$line()+": "+e}).$$s=p,d.$$arity=1,d))},h.$$arity=-2),e.defn(v,"$first_line_only",m=function(e){return _(e.$line()["$!="](e.$last_line()))?e.$resize(e.$source()["$=~"](/\n/)):e},m.$$arity=1),e.defn(v,"$last_line_only",y=function(n){return _(n.$line()["$!="](n.$last_line()))?e.const_get_qualified(e.const_get_relative(k,"Source"),"Range").$new(n.$source_buffer(),t(n.$begin_pos(),n.$source()["$=~"](/[^\n]*$/)),n.$end_pos()):n},y.$$arity=1)}(f[0],0,f)}(a[0],a)},Opal.modules["parser/diagnostic/engine"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),$=e.klass,i=e.truthy;return e.add_stubs(["$attr_accessor","$ignore?","$call","$raise?","$raise","$protected","$==","$level"]),function(t,a){var s=r(t,"Parser"),o=(s.$$proto,[s].concat(a));!function(t,$super,r){function a(){}var s,o,c,_,u=a=$(t,null,"Engine",a),l=u.$$proto,d=[u].concat(r);l.consumer=l.ignore_warnings=l.all_errors_are_fatal=n,u.$attr_accessor("consumer"),u.$attr_accessor("all_errors_are_fatal"),u.$attr_accessor("ignore_warnings"),e.defn(u,"$initialize",s=function(e){var t=this;return null==e&&(e=n),t.consumer=e,t.all_errors_are_fatal=!1,t.ignore_warnings=!1},s.$$arity=-1),e.defn(u,"$process",o=function(t){var n=this;return i(n["$ignore?"](t))||i(n.consumer)&&n.consumer.$call(t),i(n["$raise?"](t))&&n.$raise(e.const_get_qualified(e.const_get_relative(d,"Parser"),"SyntaxError"),t),n},o.$$arity=1),u.$protected(),e.defn(u,"$ignore?",c=function(e){var t;return i(t=this.ignore_warnings)?e.$level()["$=="]("warning"):t},c.$$arity=1),e.defn(u,"$raise?",_=function(e){var t,n;return i(t=i(n=this.all_errors_are_fatal)?e.$level()["$=="]("error"):n)?t:e.$level()["$=="]("fatal")},_.$$arity=1)}(e.const_get_relative(o,"Diagnostic"),0,o)}(t[0],t)},Opal.modules["parser/static_environment"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),$=e.klass;return e.add_stubs(["$reset","$[]","$push","$dup","$pop","$add","$to_sym","$include?"]),function(t,i){var a=r(t,"Parser"),s=(a.$$proto,[a].concat(i));!function(t,$super,r){function i(){}var a,s,o,c,_,u,l,d=i=$(t,null,"StaticEnvironment",i),p=d.$$proto,f=[d].concat(r);p.stack=p.variables=n,e.defn(d,"$initialize",a=function(){return this.$reset()},a.$$arity=0),e.defn(d,"$reset",s=function(){var t=this;return t.variables=e.const_get_relative(f,"Set")["$[]"](),t.stack=[]},s.$$arity=0),e.defn(d,"$extend_static",o=function(){var t=this;return t.stack.$push(t.variables),t.variables=e.const_get_relative(f,"Set")["$[]"](),t},o.$$arity=0),e.defn(d,"$extend_dynamic",c=function(){var e=this;return e.stack.$push(e.variables),e.variables=e.variables.$dup(),e},c.$$arity=0),e.defn(d,"$unextend",_=function(){var e=this;return e.variables=e.stack.$pop(),e},_.$$arity=0),e.defn(d,"$declare",u=function(e){var t=this;return t.variables.$add(e.$to_sym()),t},u.$$arity=1),e.defn(d,"$declared?",l=function(e){return this.variables["$include?"](e.$to_sym())},l.$$arity=1)}(s[0],0,s)}(t[0],t)},Opal.modules["parser/lexer"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}e.top;var a=[],s=e.nil,o=(e.breaker,e.slice,e.klass),c=e.send,_=e.hash,u=e.truthy,l=e.hash2,d=e.range,p=e.gvars;return e.add_stubs(["$attr_accessor","$private","$_lex_trans_keys=","$-","$_lex_key_spans=","$_lex_index_offsets=","$_lex_indicies=","$_lex_trans_targs=","$_lex_trans_actions=","$_lex_to_state_actions=","$_lex_from_state_actions=","$_lex_eof_trans=","$lex_start=","$lex_error=","$lex_en_interp_words=","$lex_en_interp_string=","$lex_en_plain_words=","$lex_en_plain_string=","$lex_en_interp_backslash_delimited=","$lex_en_plain_backslash_delimited=","$lex_en_interp_backslash_delimited_words=","$lex_en_plain_backslash_delimited_words=","$lex_en_regexp_modifiers=","$lex_en_expr_variable=","$lex_en_expr_fname=","$lex_en_expr_endfn=","$lex_en_expr_dot=","$lex_en_expr_arg=","$lex_en_expr_cmdarg=","$lex_en_expr_endarg=","$lex_en_expr_mid=","$lex_en_expr_beg=","$lex_en_expr_labelarg=","$lex_en_expr_value=","$lex_en_expr_end=","$lex_en_leading_dot=","$lex_en_line_comment=","$lex_en_line_begin=","$freeze","$ord","$union","$chars","$attr_reader","$reset","$lex_en_line_begin","$class","$new","$source","$==","$encoding","$unpack","$[]","$lex_en_expr_dot","$lex_en_expr_fname","$lex_en_expr_value","$lex_en_expr_beg","$lex_en_expr_mid","$lex_en_expr_arg","$lex_en_expr_cmdarg","$lex_en_expr_end","$lex_en_expr_endarg","$lex_en_expr_endfn","$lex_en_expr_labelarg","$lex_en_interp_string","$lex_en_interp_words","$lex_en_plain_string","$fetch","$invert","$push","$count","$pop","$any?","$shift","$send","$+","$size","$<=","$===","$<<","$>","$!=","$emit_comment","$literal","$flush_string","$extend_content","$emit","$heredoc?","$saved_herebody_s=","$start_interp_brace","$[]=","$diagnostic","$range","$str_s","$gsub","$tok","$version?","$nest_and_try_closing","$heredoc_e","$pop_literal","$infer_indent_level","$words?","$!","$eof_codepoint?","$extend_space","$extend_string","$>=","$active?","$slice","$chr","$munge_escape?","$regexp?","$match","$scan","$join","$=~","$to_i","$stack_pop","$emit_table","$push_literal","$arg_or_cmdarg","$emit_do","$start_with?","$nil?","$declared?","$force_encoding","$dup","$lexpop","$include?","$inspect","$last","$end_with?","$empty?","$index","$call","$to_f","$Float","$length","$lambda","$Rational","$Complex","$each","$split","$encode_escape","$%","$end_interp_brace_and_try_closing","$saved_herebody_s","$&","$|","$lex_error","$protected","$process","$backslash_delimited?","$interpolate?","$lex_en_interp_backslash_delimited_words","$lex_en_plain_backslash_delimited_words","$lex_en_plain_words","$lex_en_interp_backslash_delimited","$lex_en_plain_backslash_delimited","$dedent_level","$type","$lex_en_regexp_modifiers","$upcase"]),function(a,$super,f){function g(){}var h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I,z,C,P,B,G,D,L,M,j,H,F,U,Y=g=o(a,null,"Lexer",g),X=Y.$$proto,K=[Y].concat(f),V=s;return X.source_buffer=X.source_pts=X.cs=X.cmdarg_stack=X.cmdarg=X.cond_stack=X.cond=X.dedent_level=X.token_queue=X.p=X.herebody_s=X.sharp_s=X.ts=X.top=X.stack=X.te=X.version=X.escape_s=X.escape=X.act=X.static_env=X.lambda_stack=X.paren_nest=X.num_digits_s=X.num_suffix_s=X.num_base=X.num_xfrm=X.newline_s=X.eq_begin_s=X.in_kwarg=X.tokens=X.command_state=X.comments=X.diagnostics=X.literal_stack=s,function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(Y),K), -V=[[0,0,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,127,0,127,0,127,0,127,0,45,0,77,0,77,0,92,0,26,0,26,0,45,0,99,0,26,67,99,45,45,0,92,0,77,0,102,0,127,0,127,0,127,0,127,0,45,0,77,0,77,0,92,0,26,0,26,0,45,0,99,0,26,67,99,45,45,0,92,0,77,0,102,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,26,0,127,58,58,58,58,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,58,58,98,98,101,101,103,103,105,105,110,110,0,122,61,61,0,127,0,127,61,126,0,127,0,127,93,93,0,127,0,127,10,10,10,34,10,10,10,39,0,127,10,96,0,45,0,77,0,77,0,92,0,26,0,26,0,45,0,99,0,26,67,99,45,45,0,92,0,77,0,102,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,46,46,46,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0,92,9,32,36,123,0,127,48,57,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,0,45,0,92,0,92,0,0,0,0,0,92,0,45,10,10,0,92,0,123,0,26,0,26,0,26,0,0,0,102,0,102,0,102,0,0,0,125,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,0,0,125,0,26,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,125,0,0,48,102,0,0,0,92,36,123,0,127,48,57,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,0,45,0,92,0,92,0,0,0,0,0,92,0,45,10,10,0,92,0,123,0,26,0,26,0,26,0,0,0,102,0,102,0,102,0,0,0,125,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,0,0,125,0,26,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,125,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,48,57,0,26,0,35,9,32,36,123,0,127,48,57,0,32,9,32,65,122,65,122,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,65,122,0,122,38,61,0,0,42,61,61,61,48,61,48,62,46,46,46,46,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,124,124,60,61,0,0,62,62,61,126,61,62,0,122,0,0,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,0,45,0,92,0,92,0,0,0,0,0,92,0,45,10,10,0,92,0,123,0,26,0,26,0,26,0,0,0,102,0,102,0,102,0,0,0,125,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,0,0,125,0,26,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,48,101,48,95,46,120,48,114,43,57,48,105,0,0,105,105,0,0,48,114,48,114,48,114,48,114,105,114,0,0,105,105,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,46,9,46,46,46,10,61,10,10,10,101,10,110,10,100,10,10,0]],c(Y,"_lex_trans_keys=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(Y),K),V=[[0,1,1,1,1,1,1,1,1,1,27,128,128,128,128,46,78,78,93,27,27,46,100,27,33,1,93,78,103,128,128,128,128,46,78,78,93,27,27,46,100,27,33,1,93,78,103,128,128,128,128,128,128,128,128,128,128,128,128,128,27,128,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,1,1,1,1,1,1,123,1,128,128,66,128,128,1,128,128,1,25,1,30,128,87,46,78,78,93,27,27,46,100,27,33,1,93,78,103,128,128,128,128,128,128,1,1,128,15,10,10,10,10,128,1,84,84,84,84,84,84,1,1,38,1,96,24,0,1,1,1,24,1,1,93,24,88,128,10,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,46,93,93,0,0,93,46,1,93,124,27,27,27,0,103,103,103,0,126,126,126,126,126,0,126,126,0,126,27,126,126,126,126,126,126,126,126,126,0,126,0,55,0,93,88,128,10,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,46,93,93,0,0,93,46,1,93,124,27,27,27,0,103,103,103,0,126,126,126,126,126,0,126,126,0,126,27,126,126,126,126,126,126,126,126,126,0,126,0,55,0,93,24,27,93,27,36,88,128,10,27,36,24,88,128,10,33,24,58,58,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,128,128,24,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,58,123,24,0,20,1,14,15,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,1,2,0,1,66,2,123,0,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,46,93,93,0,0,93,46,1,93,124,27,27,27,0,103,103,103,0,126,126,126,126,126,0,126,126,0,126,27,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,0,55,0,128,128,128,0,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,54,48,75,67,15,58,0,1,0,67,67,67,67,10,0,1,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,84,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,0,38,38,1,52,1,92,101,91,1]],c(Y,"_lex_key_spans=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(Y),K),V=[[0,0,2,4,6,8,10,12,14,16,18,46,175,304,433,562,609,688,767,861,889,917,964,1065,1093,1127,1129,1223,1302,1406,1535,1664,1793,1922,1969,2048,2127,2221,2249,2277,2324,2425,2453,2487,2489,2583,2662,2766,2895,3024,3153,3282,3411,3540,3669,3798,3927,4056,4185,4314,4443,4471,4600,4602,4604,4733,4735,4737,4739,4741,4870,4999,5128,5257,5386,5515,5644,5773,5902,6031,6160,6289,6418,6547,6676,6805,6934,7063,7065,7067,7069,7071,7081,7083,7085,7087,7089,7091,7093,7095,7097,7226,7228,7357,7359,7361,7363,7365,7367,7369,7493,7495,7624,7753,7820,7949,8078,8080,8209,8338,8340,8366,8368,8399,8528,8616,8663,8742,8821,8915,8943,8971,9018,9119,9147,9181,9183,9277,9356,9460,9589,9718,9847,9976,10105,10234,10236,10238,10367,10383,10394,10405,10416,10427,10556,10558,10643,10728,10813,10898,10983,11068,11070,11072,11111,11113,11210,11235,11236,11238,11240,11242,11267,11269,11271,11365,11390,11479,11608,11619,11741,11742,11743,11752,11761,11762,11763,11857,11858,11859,11860,11954,11956,11957,11958,11959,12053,12100,12194,12288,12289,12290,12384,12431,12433,12527,12652,12680,12708,12736,12737,12841,12945,13049,13050,13177,13304,13431,13558,13685,13686,13813,13940,13941,14068,14096,14223,14350,14477,14604,14731,14858,14985,15112,15239,15240,15367,15368,15424,15425,15519,15608,15737,15748,15870,15871,15872,15881,15890,15891,15892,15986,15987,15988,15989,16083,16085,16086,16087,16088,16182,16229,16323,16417,16418,16419,16513,16560,16562,16656,16781,16809,16837,16865,16866,16970,17074,17178,17179,17306,17433,17560,17687,17814,17815,17942,18069,18070,18197,18225,18352,18479,18606,18733,18860,18987,19114,19241,19368,19369,19496,19497,19553,19554,19648,19673,19701,19795,19823,19860,19949,20078,20089,20117,20154,20179,20268,20397,20408,20442,20467,20526,20585,20615,20744,20755,20884,21013,21142,21271,21296,21297,21364,21366,21368,21497,21626,21637,21639,21641,21643,21645,21647,21650,21652,21719,21721,21724,21853,21982,22111,22240,22369,22498,22627,22629,22631,22760,22889,23018,23147,23276,23405,23534,23663,23792,23921,24050,24179,24308,24437,24566,24695,24824,24953,25082,25211,25340,25469,25598,25727,25856,25985,26114,26243,26372,26501,26630,26759,26888,27017,27146,27275,27404,27533,27662,27791,27920,28049,28178,28307,28436,28565,28694,28823,28952,29081,29210,29339,29468,29597,29726,29855,29984,30113,30242,30371,30500,30629,30758,30887,31016,31145,31274,31403,31532,31661,31790,31919,32048,32177,32306,32435,32564,32693,32822,32951,33080,33209,33338,33340,33469,33598,33623,33625,33627,33629,33630,33759,33888,33890,33891,33916,33917,33984,33986,33988,33990,33992,33994,33997,33999,34066,34068,34071,34200,34202,34204,34206,34334,34463,34526,34580,34634,34635,34689,34744,34746,34748,34750,34775,34776,34905,34906,35023,35024,35026,35028,35029,35083,35085,35087,35089,35114,35116,35245,35247,35249,35251,35253,35382,35511,35640,35641,35770,35772,35897,35922,35924,35926,35928,35929,35931,35932,36061,36190,36215,36216,36218,36220,36222,36223,36352,36481,36610,36739,36868,36997,37126,37255,37384,37513,37642,37771,37900,38029,38158,38287,38416,38545,38550,38551,38618,38620,38621,38622,38623,38648,38650,38675,38742,38744,38746,38805,38929,38954,38955,38976,38978,38993,39009,39011,39013,39041,39170,39299,39301,39302,39369,39372,39373,39374,39375,39376,39443,39572,39583,39585,39587,39589,39592,39594,39596,39599,39601,39604,39605,39607,39674,39677,39801,39802,39931,40060,40182,40183,40184,40193,40202,40203,40204,40298,40299,40300,40301,40395,40397,40398,40399,40400,40494,40541,40635,40729,40730,40731,40825,40872,40874,40968,41093,41121,41149,41177,41178,41282,41386,41490,41491,41618,41745,41872,41999,42126,42127,42254,42381,42382,42509,42537,42664,42791,42918,43045,43172,43299,43426,43553,43680,43807,43934,44061,44188,44315,44316,44317,44373,44374,44503,44632,44761,44762,44764,44765,44894,45023,45152,45281,45410,45539,45668,45797,45926,46055,46184,46313,46442,46571,46700,46829,46958,47087,47216,47345,47474,47603,47732,47861,47990,48119,48248,48377,48506,48635,48764,48893,49022,49151,49280,49409,49538,49667,49796,49925,50054,50183,50312,50441,50570,50699,50828,50957,51086,51215,51344,51473,51602,51731,51860,51989,52118,52247,52376,52505,52572,52701,52830,52959,53088,53217,53346,53475,53604,53733,53862,53991,54120,54249,54378,54507,54636,54765,54894,55023,55152,55281,55410,55539,55668,55797,55798,55863,55957,55982,55983,55985,55987,55989,55990,56119,56248,56273,56274,56276,56278,56280,56281,56410,56539,56541,56542,56567,56568,56635,56637,56639,56768,56897,56908,56910,56935,56936,56937,56958,56961,56974,56976,57031,57080,57156,57224,57240,57299,57300,57302,57303,57371,57439,57507,57575,57586,57587,57589,57590,57658,57726,57794,57862,57930,57998,58066,58134,58204,58272,58342,58410,58412,58415,58417,58484,58486,58489,58618,58747,58748,58877,59006,59135,59264,59393,59522,59523,59525,59526,59655,59784,59913,60042,60171,60300,60429,60558,60687,60816,60945,61074,61203,61332,61461,61590,61719,61848,61977,62106,62235,62364,62493,62622,62751,62880,63009,63138,63267,63396,63525,63654,63783,63912,64041,64170,64299,64384,64513,64642,64771,64900,65029,65158,65287,65416,65545,65674,65803,65932,66061,66190,66319,66448,66577,66706,66835,66964,67093,67222,67351,67480,67609,67738,67867,67996,68125,68254,68383,68512,68641,68770,68899,69028,69157,69286,69415,69544,69673,69802,69931,70060,70189,70318,70447,70576,70705,70834,70963,71092,71221,71350,71479,71608,71737,71866,71995,72124,72253,72382,72511,72640,72769,72770,72835,72836,72875,72914,72916,72969,72971,73064,73166,73258]],c(Y,"_lex_index_offsets=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(Y),K), -V=[[1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,0,0,10,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,12,14,12,14,14,12,12,14,14,14,15,14,14,16,16,16,16,16,16,16,16,16,16,14,14,14,14,14,14,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,14,12,12,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,14,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,14,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,13,18,19,19,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,20,19,18,21,21,21,18,21,21,21,21,21,22,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,18,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,23,21,18,21,21,21,18,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,18,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,24,21,18,25,25,25,18,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,18,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,27,25,18,28,28,28,18,28,28,28,28,28,29,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,18,28,18,28,28,28,18,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,18,28,18,19,19,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,18,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,30,19,18,31,31,31,18,31,31,31,31,31,32,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,18,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,33,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,34,31,31,31,31,31,31,35,31,18,31,31,31,18,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,18,31,36,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,37,18,37,18,18,38,38,38,18,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,18,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,40,38,18,21,21,21,18,21,21,21,21,21,22,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,18,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,24,21,18,41,41,41,18,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,18,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,42,42,42,42,42,41,41,41,41,41,41,41,42,42,42,42,42,42,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,41,42,42,42,42,42,42,41,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,45,45,43,45,43,45,45,43,43,45,45,45,46,45,45,47,47,47,47,47,47,47,47,47,47,45,45,45,45,45,45,45,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,43,45,43,43,44,45,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,43,43,43,45,43,44,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,45,45,45,45,45,45,45,45,45,45,43,43,43,43,43,43,43,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,43,43,43,43,45,43,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,43,43,43,43,43,45,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,43,43,43,43,43,43,48,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,43,43,43,43,44,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,43,43,43,43,43,44,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,43,43,43,43,43,43,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,43,43,43,43,44,43,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,43,43,43,43,43,44,49,50,50,50,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,51,50,49,52,52,52,49,52,52,52,52,52,53,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,49,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,54,52,49,52,52,52,49,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,49,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,55,52,49,56,56,56,49,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,49,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,49,59,59,59,49,59,59,59,59,59,60,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,49,59,49,59,59,59,49,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,59,49,59,49,50,50,50,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,49,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,61,50,49,62,62,62,49,62,62,62,62,62,63,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,49,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,64,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,65,62,62,62,62,62,62,66,62,49,62,62,62,49,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,49,62,67,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,68,49,68,49,49,69,69,69,49,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,49,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,70,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,71,69,49,52,52,52,49,52,52,52,52,52,53,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,49,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,55,52,49,72,72,72,49,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,49,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,73,73,73,73,72,72,72,72,72,72,72,73,73,73,73,73,73,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,72,73,73,73,73,73,73,72,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,76,76,74,76,74,76,76,74,74,76,76,76,77,76,76,78,78,78,78,78,78,78,78,78,78,76,76,76,76,76,76,76,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,74,76,74,74,75,76,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,74,74,74,76,74,75,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,76,76,76,76,76,76,76,76,76,76,74,74,74,74,74,74,74,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,74,74,74,74,76,74,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,74,74,74,74,74,76,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,74,74,74,74,74,74,79,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,74,74,74,74,75,74,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,74,74,74,74,74,75,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,74,74,74,74,75,74,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,74,74,74,74,74,75,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,82,82,80,82,80,82,82,80,80,82,82,82,83,82,82,84,84,84,84,84,84,84,84,84,84,82,82,82,82,82,82,82,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,80,82,80,80,81,82,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,80,80,80,82,80,81,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,82,82,82,82,82,82,82,82,82,82,80,80,80,80,80,80,80,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,80,80,80,80,82,80,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,82,80,80,80,80,80,82,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,80,80,80,80,80,80,85,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,80,80,80,80,81,80,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,80,80,80,80,80,81,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,80,80,80,80,80,80,80,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,80,80,80,80,81,80,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,80,80,80,80,80,81,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,87,87,88,87,88,87,87,88,88,87,87,87,89,87,87,90,90,90,90,90,90,90,90,90,90,87,87,87,87,87,87,87,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,87,88,88,86,87,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,88,88,88,87,88,86,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,87,87,87,87,87,87,87,87,87,87,88,88,88,88,88,88,88,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,88,88,88,88,87,88,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,87,88,88,88,88,88,87,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,91,91,91,91,91,91,91,91,91,91,88,88,88,88,88,88,92,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,88,88,88,88,91,88,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,88,88,88,88,88,91,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,93,93,93,93,93,93,93,93,93,93,88,88,88,88,88,88,88,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,88,88,88,88,93,88,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,88,88,88,88,88,93,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,94,95,95,95,95,95,95,95,95,95,95,94,94,94,94,94,94,94,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,94,94,94,94,95,94,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,94,94,94,94,94,95,96,97,97,97,96,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,96,97,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,100,98,98,98,98,98,98,98,98,98,98,98,98,98,98,99,99,99,99,99,99,99,99,99,99,101,98,98,98,98,100,98,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,98,98,98,98,99,98,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,98,98,98,98,98,99,101,98,98,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,105,103,103,103,103,103,103,103,103,103,103,103,103,103,103,104,104,104,104,104,104,104,104,104,104,106,103,103,103,103,105,103,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,103,103,103,103,104,103,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,103,103,103,103,103,104,106,103,108,107,109,107,110,107,107,107,107,107,107,107,107,107,107,112,107,112,112,112,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,112,107,107,107,107,113,114,107,115,107,116,117,118,119,120,113,107,107,107,107,107,107,107,107,107,107,121,107,122,118,123,124,107,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,125,126,118,127,111,107,111,111,111,111,111,111,111,111,128,111,111,111,111,111,111,111,111,129,111,111,130,111,131,111,111,111,132,133,107,127,107,111,107,107,107,107,107,107,107,107,107,134,107,134,134,134,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,134,107,107,107,107,135,136,107,137,107,138,139,140,141,142,135,107,107,107,107,107,107,107,107,107,107,143,107,144,140,145,146,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,147,148,140,109,104,107,104,104,104,104,104,104,104,104,149,104,104,104,104,104,104,104,104,150,104,104,151,104,152,104,104,104,153,154,107,109,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,155,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,156,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,157,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,158,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,159,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,155,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,104,104,104,104,104,160,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,104,104,104,161,104,104,104,104,104,104,104,162,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,163,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,164,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,155,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,165,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,104,104,104,155,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,166,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,167,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,105,107,107,107,107,107,107,107,107,107,107,107,107,107,107,104,104,104,104,104,104,104,104,104,104,106,107,107,107,107,105,107,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,104,107,104,104,104,104,104,104,104,104,104,104,104,159,104,104,104,104,104,104,104,104,104,104,104,104,104,104,107,107,107,107,107,104,169,168,170,168,171,168,140,168,172,168,168,168,168,168,168,168,173,168,174,168,175,168,140,168,176,168,140,168,177,168,171,168,179,178,180,180,180,180,180,180,180,180,180,182,180,182,182,182,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,182,180,180,180,180,180,180,180,183,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,180,184,180,180,181,180,181,181,181,185,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,180,180,180,180,180,181,186,180,180,180,180,180,180,180,180,180,180,188,180,188,188,188,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,188,180,180,180,180,180,180,180,189,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,180,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,180,190,180,180,187,180,187,187,187,191,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,187,180,180,180,180,180,187,192,193,195,194,196,194,197,194,198,194,199,194,200,201,201,201,200,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,200,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,201,201,201,201,201,201,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,201,203,192,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,206,206,204,206,204,206,206,204,204,206,206,206,207,206,206,208,208,208,208,208,208,208,208,208,208,206,206,206,206,206,206,206,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,204,206,204,204,205,206,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,204,204,204,206,204,205,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,206,206,206,206,206,206,206,206,206,206,204,204,204,204,204,204,204,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,204,204,204,204,206,204,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,206,204,204,204,204,204,206,209,206,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,206,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,210,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,204,204,204,204,205,204,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,204,204,204,204,204,205,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,204,204,204,204,205,204,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,204,204,204,204,204,205,209,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,212,204,204,204,204,213,204,204,204,204,204,214,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,203,204,204,204,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,204,204,204,204,211,215,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,204,204,204,214,204,211,217,217,217,217,217,217,217,217,217,217,218,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,217,216,216,216,216,216,216,216,216,216,216,217,217,217,217,217,217,217,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,217,217,217,217,216,217,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,216,217,217,217,217,217,216,220,219,204,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,212,221,212,218,217,204,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,221,213,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,212,204,204,204,204,213,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,204,204,204,204,211,215,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,211,204,204,204,204,204,211,204,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,215,221,215,222,223,223,223,222,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,224,223,222,225,225,225,222,225,225,225,225,225,226,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,222,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,227,225,222,225,225,225,222,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,222,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,228,225,222,229,229,229,222,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,222,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,230,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,231,229,222,232,232,232,222,232,232,232,232,232,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,222,232,222,232,232,232,222,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,222,232,222,223,223,223,222,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,222,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,234,223,222,235,235,235,222,235,235,235,235,235,236,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,222,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,237,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,238,235,235,235,235,235,235,239,235,222,235,235,235,222,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,235,222,235,240,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,222,241,222,241,222,222,242,242,242,222,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,222,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,243,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,244,242,222,225,225,225,222,225,225,225,225,225,226,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,222,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,225,228,225,222,245,245,245,222,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,222,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,246,246,246,246,246,246,246,246,246,246,245,245,245,245,245,245,245,246,246,246,246,246,246,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,246,246,246,246,246,246,245,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,247,247,247,247,247,247,247,247,247,247,249,192,192,250,192,248,192,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,192,192,192,192,247,192,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,192,192,192,192,192,247,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,248,204,204,204,204,204,204,204,204,204,204,204,204,204,204,247,247,247,247,247,247,247,247,247,247,249,204,204,250,204,248,204,247,247,247,247,247,247,251,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,204,204,204,204,247,204,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,204,204,204,204,204,247,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,248,204,204,204,204,204,204,204,204,204,204,204,204,204,204,247,247,247,247,247,247,247,247,247,247,249,204,204,250,204,248,204,247,247,247,247,247,247,247,247,252,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,204,204,204,204,247,204,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,204,204,204,204,204,247,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,248,204,204,204,204,204,204,204,204,204,204,204,204,204,204,247,247,247,247,247,247,247,247,247,247,249,204,204,250,204,248,204,247,247,247,247,247,247,247,247,247,247,247,247,247,253,247,247,247,247,247,247,247,247,247,247,247,247,204,204,204,204,247,204,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,204,204,204,204,204,247,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,248,204,204,204,204,204,204,204,204,204,204,204,204,204,204,247,247,247,247,247,247,247,247,247,247,249,204,204,250,204,248,204,247,247,247,253,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,204,204,204,204,247,204,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,204,204,204,204,204,247,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,254,256,254,254,254,254,254,254,254,254,254,254,254,254,254,254,255,255,255,255,255,255,255,255,255,255,257,254,254,254,254,256,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,254,254,255,254,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,254,254,254,254,254,255,257,254,254,258,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,260,260,260,260,260,260,260,260,260,260,259,259,259,259,259,259,259,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,259,259,259,259,260,259,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,260,259,259,259,259,259,260,262,261,262,261,261,263,263,263,263,263,263,263,263,263,263,261,263,263,263,263,263,263,263,263,263,263,261,264,264,264,264,264,264,264,264,264,264,261,266,266,266,266,266,266,266,266,266,266,265,267,267,267,267,267,267,267,267,267,267,265,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,268,268,268,268,268,268,268,268,268,268,259,259,259,259,259,259,259,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,259,259,259,259,268,259,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,259,259,259,259,259,268,269,265,270,271,270,270,270,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,270,265,265,272,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,273,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,274,265,275,276,275,275,275,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,275,265,265,277,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,278,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,279,265,281,282,281,281,281,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,281,280,280,283,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,284,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,285,280,287,288,287,287,287,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,287,286,286,289,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,290,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,291,286,287,288,287,287,287,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,287,286,286,289,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,292,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,291,286,287,293,287,287,287,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,287,286,286,289,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,290,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,291,286,294,265,271,265,296,295,296,296,296,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,295,296,295,295,295,295,295,297,295,295,295,295,295,295,295,298,295,299,295,301,300,300,300,301,300,300,300,300,302,303,302,302,302,300,300,300,300,300,300,300,300,300,300,300,300,301,300,300,300,300,300,302,300,300,304,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,305,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,300,306,300,300,307,300,302,308,302,302,302,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,308,302,308,309,310,311,312,313,315,314,317,318,317,317,317,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,317,316,303,314,319,314,321,320,320,320,321,320,320,320,320,322,323,322,322,322,320,320,320,320,320,320,320,320,320,320,320,320,321,320,320,320,320,320,322,320,320,324,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,320,325,320,322,326,322,322,322,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,326,322,326,328,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,329,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,327,330,327,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,331,13,13,13,13,13,13,13,13,13,13,331,331,331,331,331,331,331,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,331,331,331,331,13,331,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,331,331,331,331,331,13,16,16,16,16,16,16,16,16,16,16,331,334,333,333,333,334,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,334,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,335,335,335,335,335,335,335,335,333,333,333,333,333,333,333,333,333,333,333,336,333,333,333,333,333,333,333,333,333,337,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,338,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,333,339,333,333,340,333,341,342,344,344,344,344,344,344,344,344,343,345,345,345,345,345,345,345,345,343,343,346,346,38,38,38,346,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,346,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,347,38,348,349,350,350,38,38,38,350,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,350,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,39,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,38,351,38,37,350,352,353,354,354,25,25,25,354,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,354,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,355,25,350,19,19,19,350,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,350,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,356,19,346,25,25,25,346,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,346,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,27,25,346,357,357,357,346,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,346,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,358,357,359,360,360,357,357,357,360,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,360,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,361,357,360,19,19,19,360,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,360,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,356,19,362,360,360,25,25,25,360,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,360,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,27,25,363,364,364,364,363,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,363,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,365,365,365,365,365,365,365,365,365,365,364,364,364,364,364,364,364,365,365,365,365,365,365,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,365,365,365,365,365,365,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,364,366,364,363,367,367,367,363,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,363,367,363,368,368,368,363,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,363,368,363,369,369,369,363,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,363,369,363,363,367,367,367,363,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,363,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,370,370,370,370,370,370,370,370,370,370,367,367,367,367,367,367,367,370,370,370,370,370,370,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,370,370,370,370,370,370,367,363,368,368,368,363,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,363,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,371,371,371,371,371,371,371,371,371,371,368,368,368,368,368,368,368,371,371,371,371,371,371,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,371,371,371,371,371,371,368,363,369,369,369,363,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,363,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,372,372,372,372,372,372,372,372,372,372,369,369,369,369,369,369,369,372,372,372,372,372,372,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,372,372,372,372,372,372,369,373,376,375,375,375,376,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,376,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,377,377,377,377,377,377,377,377,377,377,375,375,375,375,375,375,375,377,377,377,377,377,377,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,377,377,377,377,377,377,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,367,375,376,378,378,378,376,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,376,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,379,379,379,379,379,379,379,379,379,379,378,378,378,378,378,378,378,379,379,379,379,379,379,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,379,379,379,379,379,379,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,380,378,376,381,381,381,376,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,376,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,382,382,382,382,382,382,382,382,382,382,381,381,381,381,381,381,381,382,382,382,382,382,382,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,382,382,382,382,382,382,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,383,381,376,384,384,384,376,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,385,385,385,385,385,385,385,385,385,385,384,384,384,384,384,384,384,385,385,385,385,385,385,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,385,385,385,385,385,385,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,376,384,384,384,376,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,385,385,385,385,385,385,385,385,385,385,384,384,384,384,384,384,384,385,385,385,385,385,385,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,385,385,385,385,385,385,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,386,376,385,385,385,376,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,376,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,386,385,376,385,385,385,376,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,376,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,385,374,385,374,376,382,382,382,376,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,376,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,382,369,382,374,369,369,369,374,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,369,374,369,376,378,378,378,376,378,378,378,378,387,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,376,378,378,378,378,378,387,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,388,388,388,388,388,388,388,388,388,388,378,378,378,378,378,378,378,388,388,388,388,388,388,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,388,388,388,388,388,388,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,389,378,376,384,384,384,376,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,390,390,390,390,390,390,390,390,390,390,384,384,384,384,384,384,384,390,390,390,390,390,390,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,390,390,390,390,390,390,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,376,384,384,384,376,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,391,391,391,391,391,391,391,391,391,391,384,384,384,384,384,384,384,391,391,391,391,391,391,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,391,391,391,391,391,391,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,389,384,376,384,384,384,376,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,392,392,392,392,392,392,392,392,392,392,384,384,384,384,384,384,384,392,392,392,392,392,392,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,392,392,392,392,392,392,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,389,384,376,384,384,384,376,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,393,393,393,393,393,393,393,393,393,393,384,384,384,384,384,384,384,393,393,393,393,393,393,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,393,393,393,393,393,393,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,389,384,376,384,384,384,376,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,394,394,394,394,394,394,394,394,394,394,384,384,384,384,384,384,384,394,394,394,394,394,394,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,394,394,394,394,394,394,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,389,384,376,384,384,384,376,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,395,395,395,395,395,395,395,395,395,395,384,384,384,384,384,384,384,395,395,395,395,395,395,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,395,395,395,395,395,395,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,389,384,376,384,384,384,376,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,387,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,396,396,396,396,396,396,396,396,396,396,384,384,384,384,384,384,384,396,396,396,396,396,396,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,396,396,396,396,396,396,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,389,384,376,384,384,384,376,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,376,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,396,396,396,396,396,396,396,396,396,396,384,384,384,384,384,384,384,396,396,396,396,396,396,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,396,396,396,396,396,396,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,384,386,384,397,376,381,381,381,376,381,381,381,381,387,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,376,381,381,381,381,381,387,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,392,392,392,392,392,392,392,392,392,392,381,381,381,381,381,381,381,392,392,392,392,392,392,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,392,392,392,392,392,392,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,381,389,381,398,400,400,400,400,400,400,400,400,400,400,399,399,399,399,399,399,399,400,400,400,400,400,400,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,399,400,400,400,400,400,400,399,399,402,401,401,401,402,401,401,401,401,401,403,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,402,401,401,401,401,401,401,401,401,404,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,401,405,401,407,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,408,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,406,409,406,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,410,44,44,44,44,44,44,44,44,44,44,410,410,410,410,410,410,410,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,410,410,410,410,44,410,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,410,410,410,410,410,44,47,47,47,47,47,47,47,47,47,47,410,413,412,412,412,413,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,413,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,414,414,414,414,414,414,414,414,412,412,412,412,412,412,412,412,412,412,412,415,412,412,412,412,412,412,412,412,412,416,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,417,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,412,418,412,412,419,412,420,421,423,423,423,423,423,423,423,423,422,424,424,424,424,424,424,424,424,422,422,425,425,69,69,69,425,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,425,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,70,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,426,69,427,428,429,429,69,69,69,429,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,429,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,70,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,69,430,69,68,429,431,432,433,433,56,56,56,433,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,433,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,434,56,429,50,50,50,429,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,429,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,435,50,425,56,56,56,425,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,425,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,425,436,436,436,425,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,425,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,437,436,438,439,439,436,436,436,439,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,439,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,436,440,436,439,50,50,50,439,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,439,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,435,50,441,439,439,56,56,56,439,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,439,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,57,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,56,58,56,442,443,443,443,442,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,442,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,444,444,444,444,444,444,444,444,444,444,443,443,443,443,443,443,443,444,444,444,444,444,444,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,444,444,444,444,444,444,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,443,445,443,442,446,446,446,442,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,442,446,442,447,447,447,442,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,442,447,442,448,448,448,442,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,442,448,442,442,446,446,446,442,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,442,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,449,449,449,449,449,449,449,449,449,449,446,446,446,446,446,446,446,449,449,449,449,449,449,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,446,449,449,449,449,449,449,446,442,447,447,447,442,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,442,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,450,450,450,450,450,450,450,450,450,450,447,447,447,447,447,447,447,450,450,450,450,450,450,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,447,450,450,450,450,450,450,447,442,448,448,448,442,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,442,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,451,451,451,451,451,451,451,451,451,451,448,448,448,448,448,448,448,451,451,451,451,451,451,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,451,451,451,451,451,451,448,452,455,454,454,454,455,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,455,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,456,456,456,456,456,456,456,456,456,456,454,454,454,454,454,454,454,456,456,456,456,456,456,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,456,456,456,456,456,456,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,446,454,455,457,457,457,455,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,455,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,458,458,458,458,458,458,458,458,458,458,457,457,457,457,457,457,457,458,458,458,458,458,458,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,458,458,458,458,458,458,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,459,457,455,460,460,460,455,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,455,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,461,461,461,461,461,461,461,461,461,461,460,460,460,460,460,460,460,461,461,461,461,461,461,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,461,461,461,461,461,461,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,462,460,455,463,463,463,455,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,464,464,464,464,464,464,464,464,464,464,463,463,463,463,463,463,463,464,464,464,464,464,464,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,464,464,464,464,464,464,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,455,463,463,463,455,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,464,464,464,464,464,464,464,464,464,464,463,463,463,463,463,463,463,464,464,464,464,464,464,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,464,464,464,464,464,464,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,465,455,464,464,464,455,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,455,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,465,464,455,464,464,464,455,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,455,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,453,464,453,455,461,461,461,455,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,455,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,448,461,453,448,448,448,453,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,448,453,448,455,457,457,457,455,457,457,457,457,466,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,455,457,457,457,457,457,466,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,467,467,467,467,467,467,467,467,467,467,457,457,457,457,457,457,457,467,467,467,467,467,467,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,467,467,467,467,467,467,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,457,468,457,455,463,463,463,455,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,469,469,469,469,469,469,469,469,469,469,463,463,463,463,463,463,463,469,469,469,469,469,469,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,469,469,469,469,469,469,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,455,463,463,463,455,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,470,470,470,470,470,470,470,470,470,470,463,463,463,463,463,463,463,470,470,470,470,470,470,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,470,470,470,470,470,470,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,468,463,455,463,463,463,455,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,471,471,471,471,471,471,471,471,471,471,463,463,463,463,463,463,463,471,471,471,471,471,471,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,471,471,471,471,471,471,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,468,463,455,463,463,463,455,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,472,472,472,472,472,472,472,472,472,472,463,463,463,463,463,463,463,472,472,472,472,472,472,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,472,472,472,472,472,472,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,468,463,455,463,463,463,455,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,473,473,473,473,473,473,473,473,473,473,463,463,463,463,463,463,463,473,473,473,473,473,473,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,473,473,473,473,473,473,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,468,463,455,463,463,463,455,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,474,474,474,474,474,474,474,474,474,474,463,463,463,463,463,463,463,474,474,474,474,474,474,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,474,474,474,474,474,474,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,468,463,455,463,463,463,455,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,466,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,475,475,475,475,475,475,475,475,475,475,463,463,463,463,463,463,463,475,475,475,475,475,475,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,475,475,475,475,475,475,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,468,463,455,463,463,463,455,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,455,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,475,475,475,475,475,475,475,475,475,475,463,463,463,463,463,463,463,475,475,475,475,475,475,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,475,475,475,475,475,475,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,465,463,476,455,460,460,460,455,460,460,460,460,466,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,455,460,460,460,460,460,466,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,471,471,471,471,471,471,471,471,471,471,460,460,460,460,460,460,460,471,471,471,471,471,471,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,471,471,471,471,471,471,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,460,468,460,477,479,479,479,479,479,479,479,479,479,479,478,478,478,478,478,478,478,479,479,479,479,479,479,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,478,479,479,479,479,479,479,478,478,481,480,480,480,481,480,480,480,480,482,483,482,482,482,480,480,480,480,480,480,480,480,480,480,480,480,481,480,480,480,480,480,482,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,480,484,480,482,485,482,482,482,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,485,482,485,486,487,487,487,486,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,487,486,487,489,488,488,488,489,488,488,488,488,488,490,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,489,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,488,491,488,492,493,493,493,492,493,493,493,493,493,494,493,493,493,493,493,493,493,493,493,493,493,493,493,493,493,492,493,496,495,495,495,496,495,495,495,495,495,497,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,496,495,495,495,495,495,495,495,495,498,495,500,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,501,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,499,502,499,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,75,75,75,75,75,75,75,75,75,75,503,503,503,503,503,503,503,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,503,503,503,503,75,503,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,503,503,503,503,503,75,78,78,78,78,78,78,78,78,78,78,503,505,504,504,504,505,504,504,504,504,504,506,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,505,504,508,507,507,507,508,507,507,507,507,509,510,509,509,509,507,507,507,507,507,507,507,507,507,507,507,507,508,507,507,507,507,507,509,507,507,511,507,509,512,509,509,509,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,509,512,514,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,515,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,513,516,513,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,517,81,81,81,81,81,81,81,81,81,81,517,517,517,517,517,517,517,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,517,517,517,517,81,517,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,517,517,517,517,517,81,84,84,84,84,84,84,84,84,84,84,517,519,518,518,518,519,518,518,518,518,520,521,520,520,520,518,518,518,518,518,518,518,518,518,518,518,518,519,518,518,518,518,518,520,518,520,522,520,520,520,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522,520,522,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,523,523,523,523,523,523,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,523,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,525,525,525,525,525,525,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,525,526,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,527,88,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,86,86,86,86,86,86,86,86,86,86,528,528,528,528,528,528,528,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,528,528,528,528,86,528,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,86,528,528,528,528,528,86,90,90,90,90,90,90,90,90,90,90,528,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,91,91,91,91,91,91,91,91,91,91,529,529,529,529,529,529,529,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,529,529,529,529,91,529,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,529,529,529,529,529,91,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,93,93,93,93,93,93,93,93,93,93,530,530,530,530,530,530,530,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,530,530,530,530,93,530,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,93,530,530,530,530,530,93,532,533,533,533,532,533,533,533,533,534,535,534,534,534,533,533,533,533,533,533,533,533,533,533,533,533,532,533,533,533,533,533,534,536,533,537,538,539,540,533,533,533,541,542,533,542,533,543,533,533,533,533,533,533,533,533,533,533,544,533,545,546,547,533,533,548,549,548,548,550,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,551,552,533,543,553,543,554,555,556,557,558,559,531,531,560,531,531,531,561,562,563,531,531,564,565,566,567,531,568,531,569,531,533,570,533,542,533,531,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,572,571,571,571,571,571,571,571,571,571,571,571,571,571,571,531,531,531,531,531,531,531,531,531,531,571,571,571,572,571,572,571,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,571,571,571,571,531,571,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,571,571,571,571,571,531,534,573,534,534,534,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,573,534,573,574,543,575,575,543,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,575,543,575,576,577,578,579,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,95,95,580,95,580,95,95,580,580,95,95,95,582,95,95,583,583,583,583,583,583,583,583,583,583,95,95,95,95,95,95,95,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,580,95,580,580,581,95,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,580,580,580,95,580,581,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,584,581,581,581,581,581,581,581,581,581,581,584,584,584,584,584,584,584,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,584,584,584,584,581,584,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,581,584,584,584,584,584,581,583,583,583,583,583,583,583,583,583,583,584,585,575,543,575,543,575,543,575,587,586,543,588,575,543,575,589,543,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,580,543,580,543,575,543,543,575,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,571,572,571,571,571,571,571,571,571,571,571,571,571,571,571,571,548,548,548,548,548,548,548,548,548,548,571,571,571,572,571,572,571,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,571,571,571,571,548,571,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,571,571,571,571,571,548,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,572,590,590,590,590,590,590,590,590,590,590,590,590,590,590,548,548,548,548,548,548,548,548,548,548,590,590,590,572,590,572,590,548,548,548,548,591,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,548,590,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,590,548,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,572,590,590,590,590,590,590,590,590,590,590,590,590,590,590,548,548,548,548,548,548,548,548,548,548,590,590,590,572,590,572,590,548,548,548,548,548,548,592,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,548,590,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,590,548,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,572,590,590,590,590,590,590,590,590,590,590,590,590,590,590,548,548,548,548,548,548,548,548,548,548,590,590,590,572,590,572,590,548,548,548,548,548,548,548,548,593,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,548,590,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,590,548,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,572,590,590,590,590,590,590,590,590,590,590,590,590,590,590,548,548,548,548,548,548,548,548,548,548,590,590,590,572,590,572,590,548,548,548,548,548,548,548,548,548,548,548,548,548,594,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,548,590,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,590,548,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,572,590,590,590,590,590,590,590,590,590,590,590,590,590,590,548,548,548,548,548,548,548,548,548,548,590,590,590,572,590,572,590,548,548,548,548,548,548,548,548,548,548,548,548,548,595,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,548,590,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,590,548,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,572,590,590,590,590,590,590,590,590,590,590,590,590,590,590,548,548,548,548,548,548,548,548,548,548,590,590,590,572,590,572,590,548,548,548,594,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,548,590,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,548,590,590,590,590,590,548,589,580,535,580,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,597,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,598,599,531,531,531,531,531,600,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,601,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,602,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,603,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,604,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,605,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,606,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,607,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,608,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,609,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,610,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,611,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,607,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,612,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,611,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,613,531,614,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,615,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,616,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,609,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,617,531,531,531,531,531,531,531,531,531,531,531,531,618,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,619,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,620,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,621,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,622,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,623,531,531,531,531,531,531,531,531,531,531,624,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,625,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,626,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,616,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,627,531,531,531,531,531,531,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,628,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,572,629,629,629,629,629,629,629,629,629,629,629,629,629,629,531,531,531,531,531,531,531,531,531,531,629,629,629,572,629,572,629,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,629,629,629,629,531,629,531,531,531,531,531,531,531,531,630,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,629,629,629,629,629,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,631,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,632,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,633,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,634,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,635,531,636,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,637,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,609,531,531,531,638,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,531,531,531,639,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,640,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,625,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,641,531,531,531,531,531,531,531,531,531,531,531,531,531,563,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,623,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,609,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,609,531,531,531,531,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,642,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,643,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,644,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,625,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,645,531,531,531,646,531,531,531,531,531,647,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,647,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,609,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,648,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,649,531,531,531,531,531,531,531,531,531,531,531,531,531,531,650,651,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,609,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,652,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,625,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,653,531,531,654,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,609,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,620,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,655,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,656,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,638,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,657,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,563,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,658,531,531,531,531,531,531,531,531,531,652,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,620,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,531,531,659,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,660,531,531,531,531,531,531,531,661,531,531,531,531,531,531,531,662,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,638,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,626,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,646,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,663,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,620,531,531,531,644,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,664,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,665,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,572,596,596,596,596,596,596,596,596,596,596,596,596,596,596,531,531,531,531,531,531,531,531,531,531,596,596,596,572,596,572,596,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,531,596,531,531,531,531,531,531,531,531,531,531,531,614,531,531,531,531,531,531,531,531,531,531,531,531,531,531,596,596,596,596,596,531,543,575,667,668,668,668,667,668,668,668,668,669,668,669,669,669,668,668,668,668,668,668,668,668,668,668,668,668,667,668,668,668,668,668,669,668,668,670,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,668,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,668,671,668,668,666,668,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,666,668,668,668,668,668,666,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,672,100,672,672,672,672,672,672,672,672,672,672,672,672,672,672,99,99,99,99,99,99,99,99,99,99,101,672,672,672,672,100,672,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,672,672,672,672,99,672,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,672,672,672,672,672,99,669,673,669,669,669,673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,673,669,673,674,675,676,677,678,672,679,681,682,682,682,681,682,682,682,682,683,684,683,683,683,682,682,682,682,682,682,682,682,682,682,682,682,681,682,682,682,682,682,683,685,682,686,682,687,688,682,682,682,689,690,682,690,682,687,682,682,682,682,682,682,682,682,682,682,682,682,691,692,693,682,682,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,695,696,682,687,680,687,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,682,697,682,690,682,680,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,698,699,698,698,698,698,698,698,698,698,698,698,698,698,698,698,680,680,680,680,680,680,680,680,680,680,698,698,698,698,698,699,698,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,698,698,698,698,680,698,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,680,698,698,698,698,698,680,701,700,702,683,703,683,683,683,703,703,703,703,703,703,703,703,703,703,703,703,703,703,703,703,703,703,683,703,704,687,705,705,687,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,705,687,705,706,707,708,709,687,705,687,705,687,705,687,710,705,687,705,712,687,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,711,687,711,687,705,687,687,705,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,713,699,713,713,713,713,713,713,713,713,713,713,713,713,713,713,694,694,694,694,694,694,694,694,694,694,713,713,713,713,713,699,713,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,713,713,713,713,694,713,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,694,713,713,713,713,713,694,712,711,684,711,687,705,715,714,714,714,715,714,714,714,714,716,717,716,716,716,714,714,714,714,714,714,714,714,714,714,714,714,715,714,714,714,714,714,716,714,714,718,714,109,719,714,720,714,721,109,140,722,142,109,714,714,714,714,714,714,714,714,714,714,723,714,724,140,725,726,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,140,727,140,109,714,714,714,714,714,714,714,714,714,714,728,714,714,714,714,714,714,714,714,729,714,714,730,714,731,714,714,714,153,154,714,109,714,732,732,732,732,732,732,732,732,732,716,732,716,716,716,732,732,732,732,732,732,732,732,732,732,732,732,732,732,732,732,732,732,716,732,732,732,732,135,136,732,137,732,138,139,140,141,142,135,732,732,732,732,732,732,732,732,732,732,143,732,144,140,145,146,732,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,147,148,140,109,104,732,104,104,104,104,104,104,104,104,149,104,104,104,104,104,104,104,104,150,104,104,151,104,152,104,104,104,153,154,732,109,732,104,733,734,734,734,733,734,734,734,734,140,735,140,140,140,734,734,734,734,734,734,734,734,734,734,734,734,733,734,734,734,734,734,140,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,734,140,734,140,735,140,140,140,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,140,103,103,103,103,103,109,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,140,103,140,735,140,140,140,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,140,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,140,103,736,140,735,140,140,140,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737,140,737,737,737,737,737,737,737,737,737,738,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737,737,140,737,140,735,140,140,140,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,140,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,140,140,103,739,733,140,733,741,740,743,744,743,743,743,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,743,742,745,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,105,733,733,733,733,733,733,733,733,733,733,733,733,733,733,104,104,104,104,104,104,104,104,104,104,106,733,733,733,733,105,733,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,733,733,733,733,104,733,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,104,733,733,733,733,733,104,746,140,735,140,140,140,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,140,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,140,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,109,733,747,748,749,750,751,752,140,735,140,140,140,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,140,733,733,733,733,733,733,733,733,733,109,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,733,140,733,140,740,109,753,109,753,754,755,754,754,754,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,754,742,756,753,757,757,757,757,757,757,757,757,757,112,757,112,112,112,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,757,112,757,757,757,757,113,114,757,115,757,116,117,118,119,120,113,757,757,757,757,757,757,757,757,757,757,121,757,122,118,123,124,757,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,125,126,118,127,111,757,111,111,111,111,111,111,111,111,128,111,111,111,111,111,111,111,111,129,111,111,130,111,131,111,111,111,132,133,757,127,757,111,140,753,758,753,759,753,760,753,761,179,179,179,761,179,179,179,179,762,179,762,762,762,179,179,179,179,179,179,179,179,179,179,179,179,761,179,179,179,179,179,762,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,179,179,179,179,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,179,763,179,179,181,179,181,181,181,185,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,179,179,179,179,179,181,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,178,764,178,178,178,178,178,178,178,178,178,178,178,178,178,178,181,181,181,181,181,181,181,181,181,181,179,178,178,178,178,764,178,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,178,178,178,178,181,178,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,178,178,178,178,178,181,765,765,765,765,765,765,765,765,765,182,765,182,182,182,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,182,765,765,765,765,765,765,765,183,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,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,765,184,765,765,181,765,181,181,181,185,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,181,765,765,765,765,765,181,766,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,764,765,765,765,765,765,765,765,765,765,765,765,765,765,765,181,181,181,181,181,181,181,181,181,181,179,765,765,765,765,764,765,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,765,765,765,765,181,765,181,181,181,181,181,181,181,181,181,181,181,181,181,181,767,181,181,181,181,181,181,181,181,181,181,181,765,765,765,765,765,181,186,765,769,768,768,768,769,768,768,768,768,770,768,770,770,770,768,768,768,768,768,768,768,768,768,768,768,768,769,768,768,768,768,768,770,768,768,771,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,772,768,768,768,768,768,768,768,773,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,768,774,768,770,775,770,770,770,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,775,770,775,776,777,778,779,781,780,782,783,780,784,786,787,787,787,786,787,787,787,787,788,789,788,788,788,787,787,787,787,787,787,787,787,787,787,787,787,786,787,787,787,787,787,788,787,787,790,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,787,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,787,791,787,787,785,787,785,785,785,785,785,785,785,785,792,785,785,785,785,785,785,785,785,793,785,785,794,785,795,785,785,785,787,787,787,787,787,785,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,796,785,785,785,785,785,785,785,785,785,785,796,796,796,796,796,796,796,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,796,796,796,796,785,796,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,796,796,796,796,796,785,788,797,788,788,788,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,788,797,798,799,800,801,802,804,803,805,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,807,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,808,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,809,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,810,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,811,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,807,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,785,785,785,785,785,812,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,785,785,785,813,785,785,785,785,785,785,785,814,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,815,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,816,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,807,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,817,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,785,785,785,807,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,818,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,819,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,806,806,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,785,806,785,785,785,785,785,785,785,785,785,785,785,811,785,785,785,785,785,785,785,785,785,785,785,785,785,785,806,806,806,806,806,785,821,203,203,203,821,203,203,203,203,822,823,822,822,822,203,203,203,203,203,203,203,203,203,203,203,203,821,203,203,203,203,203,822,824,203,825,203,826,827,203,828,203,829,830,203,831,832,833,203,203,203,203,203,203,203,203,203,203,834,203,835,836,837,838,203,839,840,839,839,841,839,839,839,839,839,839,839,839,839,839,839,839,839,839,839,839,839,839,839,839,839,842,843,203,844,845,203,846,847,848,849,850,851,820,820,852,820,820,820,853,854,855,820,820,856,857,858,859,820,860,820,861,820,862,863,203,844,203,820,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,820,820,820,820,820,820,820,820,820,820,249,192,192,250,192,248,192,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,192,192,192,192,820,192,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,192,192,192,192,192,820,865,864,864,866,864,867,869,870,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,871,868,873,872,874,875,876,822,877,822,822,822,877,877,877,877,877,877,877,877,877,877,877,877,877,877,877,877,877,877,822,877,879,878,881,882,881,881,881,880,880,880,880,880,880,880,880,880,880,880,880,880,880,880,880,880,880,881,880,203,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,203,883,884,885,886,887,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,889,889,889,889,889,889,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,889,891,201,201,201,891,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,891,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,201,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,201,201,201,201,201,201,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,201,893,892,892,892,892,892,892,892,892,892,892,892,892,892,892,892,892,892,892,892,892,892,892,203,892,894,896,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,203,895,203,192,897,897,897,897,897,897,897,897,897,897,892,892,892,203,892,897,897,897,897,897,897,897,897,897,897,892,892,892,203,203,892,898,883,203,883,883,899,899,899,883,899,899,899,899,899,899,899,899,899,899,899,899,899,899,899,899,899,899,899,899,899,883,899,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,901,902,883,903,206,904,902,883,883,905,906,883,906,883,206,883,883,883,883,883,883,883,883,883,883,907,883,908,909,910,883,911,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,912,883,883,206,900,206,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,883,913,883,906,883,900,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,915,914,914,914,914,914,914,914,914,914,914,914,914,914,914,900,900,900,900,900,900,900,900,900,900,914,914,914,916,914,915,914,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,914,914,914,914,900,914,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,914,914,914,914,914,900,918,917,919,921,922,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,920,923,920,925,926,924,927,928,929,930,206,914,914,206,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,206,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,205,205,205,205,205,205,205,205,205,205,914,914,914,914,914,914,914,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,914,914,914,914,205,914,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,205,914,914,914,914,914,205,208,208,208,208,208,208,208,208,208,208,914,206,914,206,914,206,914,206,931,914,206,914,206,914,206,206,914,206,914,932,933,883,934,203,883,844,203,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,203,883,203,893,883,937,936,936,936,937,936,936,936,936,938,939,938,938,938,936,936,936,936,936,936,936,936,936,936,936,936,937,936,936,936,936,936,938,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,936,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,936,941,936,936,940,936,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,940,936,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,942,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,942,942,942,942,943,942,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,942,942,942,942,942,943,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,944,945,945,945,945,945,945,945,945,945,945,944,944,944,944,944,944,944,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,944,944,944,944,945,944,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,945,944,944,944,944,944,945,948,947,947,947,948,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,948,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,949,949,949,949,949,949,949,949,947,947,947,947,947,947,947,947,947,947,947,950,947,947,947,947,947,947,947,947,947,951,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,952,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,947,953,947,947,954,947,955,956,958,958,958,958,958,958,958,958,957,959,959,959,959,959,959,959,959,957,957,960,960,242,242,242,960,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,960,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,243,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,961,242,962,963,964,964,242,242,242,964,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,964,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,243,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,242,965,242,241,964,966,967,968,968,229,229,229,968,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,968,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,230,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,969,229,964,223,223,223,964,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,964,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,970,223,960,229,229,229,960,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,960,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,230,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,231,229,960,971,971,971,960,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,960,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,972,971,973,974,974,971,971,971,974,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,974,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,971,975,971,974,223,223,223,974,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,974,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,970,223,976,974,974,229,229,229,974,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,974,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,230,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,229,231,229,977,978,978,978,977,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,977,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,979,979,979,979,979,979,979,979,979,979,978,978,978,978,978,978,978,979,979,979,979,979,979,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,979,979,979,979,979,979,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,978,980,978,977,981,981,981,977,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,977,981,977,982,982,982,977,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,977,982,977,983,983,983,977,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,977,983,977,977,981,981,981,977,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,977,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,984,984,984,984,984,984,984,984,984,984,981,981,981,981,981,981,981,984,984,984,984,984,984,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,984,984,984,984,984,984,981,977,982,982,982,977,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,977,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,985,985,985,985,985,985,985,985,985,985,982,982,982,982,982,982,982,985,985,985,985,985,985,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,982,985,985,985,985,985,985,982,977,983,983,983,977,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,977,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,986,986,986,986,986,986,986,986,986,986,983,983,983,983,983,983,983,986,986,986,986,986,986,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,986,986,986,986,986,986,983,987,990,989,989,989,990,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,990,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,991,991,991,991,991,991,991,991,991,991,989,989,989,989,989,989,989,991,991,991,991,991,991,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,991,991,991,991,991,991,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,981,989,990,992,992,992,990,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,990,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,993,993,993,993,993,993,993,993,993,993,992,992,992,992,992,992,992,993,993,993,993,993,993,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,993,993,993,993,993,993,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,994,992,990,995,995,995,990,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,990,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,996,996,996,996,996,996,996,996,996,996,995,995,995,995,995,995,995,996,996,996,996,996,996,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,996,996,996,996,996,996,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,997,995,990,998,998,998,990,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,999,999,999,999,999,999,999,999,999,999,998,998,998,998,998,998,998,999,999,999,999,999,999,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,999,999,999,999,999,999,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,990,998,998,998,990,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,999,999,999,999,999,999,999,999,999,999,998,998,998,998,998,998,998,999,999,999,999,999,999,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,999,999,999,999,999,999,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,1e3,990,999,999,999,990,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,990,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,1e3,999,990,999,999,999,990,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,990,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,999,988,999,988,990,996,996,996,990,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,990,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,996,983,996,988,983,983,983,988,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,983,988,983,990,992,992,992,990,992,992,992,992,1001,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,990,992,992,992,992,992,1001,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,992,992,992,992,992,992,992,1002,1002,1002,1002,1002,1002,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,1002,1002,1002,1002,1002,1002,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,992,1003,992,990,998,998,998,990,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1004,1004,1004,1004,1004,1004,1004,1004,1004,1004,998,998,998,998,998,998,998,1004,1004,1004,1004,1004,1004,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1004,1004,1004,1004,1004,1004,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,998,998,998,998,998,998,998,1005,1005,1005,1005,1005,1005,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1005,1005,1005,1005,1005,1005,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1e3,998,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,998,998,998,998,998,998,998,1006,1006,1006,1006,1006,1006,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1006,1006,1006,1006,1006,1006,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1e3,998,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1007,1007,1007,1007,1007,1007,1007,1007,1007,1007,998,998,998,998,998,998,998,1007,1007,1007,1007,1007,1007,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1007,1007,1007,1007,1007,1007,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1e3,998,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,998,998,998,998,998,998,998,1008,1008,1008,1008,1008,1008,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1008,1008,1008,1008,1008,1008,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1e3,998,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,998,998,998,998,998,998,998,1009,1009,1009,1009,1009,1009,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1009,1009,1009,1009,1009,1009,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1e3,998,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,998,998,998,998,998,998,998,1010,1010,1010,1010,1010,1010,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1010,1010,1010,1010,1010,1010,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1e3,998,990,998,998,998,990,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,998,998,998,998,998,998,998,1010,1010,1010,1010,1010,1010,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1010,1010,1010,1010,1010,1010,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1e3,998,990,995,995,995,990,995,995,995,995,1001,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,990,995,995,995,995,995,1001,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,995,995,995,995,995,995,995,1011,1011,1011,1011,1011,1011,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,1011,1011,1011,1011,1011,1011,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,1003,995,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1012,1012,1012,1012,1012,1012,1012,1012,1012,1012,998,998,998,998,998,998,998,1012,1012,1012,1012,1012,1012,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1012,1012,1012,1012,1012,1012,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1003,998,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,998,998,998,998,998,998,998,1013,1013,1013,1013,1013,1013,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1013,1013,1013,1013,1013,1013,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1003,998,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1014,1014,1014,1014,1014,1014,1014,1014,1014,1014,998,998,998,998,998,998,998,1014,1014,1014,1014,1014,1014,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1014,1014,1014,1014,1014,1014,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1003,998,990,998,998,998,990,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,990,998,998,998,998,998,1001,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,998,998,998,998,998,998,998,1010,1010,1010,1010,1010,1010,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1010,1010,1010,1010,1010,1010,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,998,1003,998,1015,1016,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1017,1017,1017,1017,1017,1017,1017,1018,1018,1018,1018,1018,1018,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1018,1018,1018,1018,1018,1018,1017,1017,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,192,248,192,192,192,192,192,192,192,192,192,192,192,192,192,192,247,247,247,247,247,247,247,247,247,247,249,192,192,250,192,248,192,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,192,192,192,192,247,192,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,192,192,192,192,192,247,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,248,883,883,883,883,883,883,883,883,883,883,883,883,883,883,247,247,247,247,247,247,247,247,247,247,249,883,883,250,883,248,883,247,247,247,247,1019,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,883,883,883,883,247,883,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,883,883,883,883,883,247,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,248,883,883,883,883,883,883,883,883,883,883,883,883,883,883,247,247,247,247,247,247,247,247,247,247,249,883,883,250,883,248,883,247,247,247,247,247,247,247,247,247,247,247,247,247,1020,247,247,247,247,247,247,247,247,247,247,247,247,883,883,883,883,247,883,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,883,883,883,883,883,247,1021,1022,883,878,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1024,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,1025,1026,820,820,820,820,820,1027,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,1028,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,1029,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1030,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,1031,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,1032,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,1033,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,1034,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1035,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1036,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,1037,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,1038,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,1034,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,1039,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,1038,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,1040,820,1041,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,1042,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,1043,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1036,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1044,820,820,820,820,820,820,820,820,820,820,820,820,1045,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,1046,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,1047,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1048,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,1049,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,1050,820,820,820,820,820,820,820,820,820,820,1051,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1052,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,1053,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1043,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1054,820,820,820,820,820,820,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,1055,820,1056,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1057,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1036,820,820,820,1054,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1058,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1059,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1052,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,1060,820,820,820,820,820,820,820,820,820,820,820,820,820,855,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,1050,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1036,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,1061,820,820,820,820,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1062,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,1063,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1064,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,1052,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1065,820,820,820,1066,820,820,820,820,820,1067,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1067,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1036,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1068,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,1069,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1070,1071,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1036,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,1072,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1073,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1074,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1077,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1078,1075,1075,1079,1075,1077,1075,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1075,1075,1075,1075,1076,1075,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1075,1075,1075,1075,1075,1076,869,1080,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,871,868,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1081,820,820,1082,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1036,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1047,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1083,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1084,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,1054,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1085,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,855,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,1086,820,820,820,820,820,820,820,820,820,1087,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1047,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1052,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,1088,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,1089,820,820,820,820,820,820,820,1090,820,820,820,820,820,820,820,1091,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1054,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1092,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1093,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1061,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,1094,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,1061,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,1095,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1047,820,820,820,1096,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,1097,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1061,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,1098,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,1099,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,248,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,820,820,820,820,820,820,820,820,820,820,249,1023,1023,250,1023,248,1023,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,820,1023,820,820,820,820,820,820,820,820,820,820,820,1041,820,820,820,820,820,820,820,820,820,820,820,820,820,820,1023,1023,1023,1023,1023,820,1100,203,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,883,893,883,1102,1101,1101,1101,1102,1101,1101,1101,1101,1103,1104,1103,1103,1103,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1102,1101,1101,1101,1101,1101,1103,1101,1101,1105,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1106,1101,1103,1107,1103,1103,1103,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1103,1107,1108,1109,1110,1111,1112,1114,1113,1115,1117,1118,1118,1118,1117,1118,1118,1118,1118,1119,1120,1119,1119,1119,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1117,1118,1118,1118,1118,1118,1119,1118,1121,1122,1118,1118,1118,1121,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1118,1123,1118,1118,1116,1118,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1118,1118,1118,1118,1118,1116,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,256,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,1124,255,255,255,255,255,255,255,255,255,255,257,1124,1124,1124,1124,256,1124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,1124,1124,1124,1124,255,1124,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,1124,1124,1124,1124,1124,255,1119,1125,1119,1119,1119,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1119,1125,1126,1127,1128,1129,1130,1131,1124,1132,1134,1135,1135,1135,1134,1135,1135,1135,1135,1136,1137,1136,1136,1136,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1134,1135,1135,1135,1135,1135,1136,1138,1139,1140,1141,1142,1143,1139,1144,1145,1146,1142,1147,1148,1149,1142,1150,1151,1151,1151,1151,1151,1151,1151,1151,1151,1152,1153,1154,1155,1156,1157,1158,1159,1160,1159,1159,1161,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1162,1163,1164,1142,1165,1139,1166,1167,1168,1169,1170,1171,1133,1133,1172,1133,1133,1133,1173,1174,1175,1133,1133,1176,1177,1178,1179,1133,1180,1133,1181,1133,1182,1183,1184,1142,1135,1133,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,1185,265,265,265,265,265,265,265,265,265,265,265,265,265,265,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,265,265,265,265,265,1185,265,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,265,265,265,265,1133,265,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,265,265,265,265,265,1133,1187,1186,1188,1136,1189,1136,1136,1136,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1136,1189,1190,1192,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1192,1191,1193,1194,1195,1196,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,260,260,1197,260,1197,260,260,1197,1197,260,260,260,1198,260,260,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,260,260,260,260,260,260,260,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1197,260,1197,1197,268,260,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1197,1197,1197,260,1197,268,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,268,268,268,268,268,268,268,268,268,268,1200,1200,1200,1200,1200,1200,1200,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1200,1200,1200,1200,268,1200,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1200,1200,1200,1200,1200,268,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1200,1201,1191,1142,1191,1191,1191,1191,1191,1191,1191,1202,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1201,1191,1203,1204,1142,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1201,1191,1201,1205,1191,1207,1206,264,264,264,264,264,264,264,264,264,264,1206,1147,1208,264,264,264,264,264,264,264,264,264,264,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1210,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1211,1209,1209,1209,1209,1209,1210,1209,263,263,263,263,263,263,263,263,263,263,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,262,1209,1213,1212,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1212,1212,1212,1212,1212,1212,1212,1212,1215,1212,1216,1217,1212,1212,1212,1212,1212,1212,1212,1212,1212,1218,1212,1212,1212,1212,1212,1212,1212,1212,1219,1212,1212,1212,1212,1212,1212,1220,1212,1212,1215,1212,1216,1217,1212,1212,1212,1221,1212,1212,1212,1212,1212,1218,1212,1212,1222,1212,1212,1212,1212,1212,1219,1212,266,266,266,266,266,266,266,266,266,266,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1224,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1225,1223,1223,1223,1223,1223,1224,1223,1223,1223,1226,1223,1223,1223,1223,1223,1223,1223,1223,1227,1223,1228,265,1228,265,265,267,267,267,267,267,267,267,267,267,267,265,267,267,267,267,267,267,267,267,267,267,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1229,1228,1229,1229,1229,1229,1229,1229,1229,1229,1229,1230,1229,1231,1233,1232,1234,1214,1214,1214,1214,1214,1214,1214,1214,1214,1214,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1220,1212,1212,1212,1212,1212,1212,1212,1212,1212,1221,1212,1212,1212,1212,1212,1212,1212,1212,1222,1212,1235,1235,1235,1235,1235,1235,1235,1235,1235,1235,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1236,1212,1212,1212,1212,1212,1212,1212,1212,1212,1221,1212,1212,1212,1212,1212,1212,1212,1212,1222,1212,1238,1238,1238,1238,1238,1238,1238,1238,1238,1238,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1239,1237,1237,1237,1237,1237,1237,1237,1237,1237,1240,1237,1237,1237,1237,1237,1237,1237,1237,1241,1237,1238,1238,1238,1238,1238,1238,1238,1238,1238,1238,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1242,1237,1237,1237,1237,1237,1237,1237,1237,1237,1240,1237,1237,1237,1237,1237,1237,1237,1237,1241,1237,1240,1237,1237,1237,1237,1237,1237,1237,1237,1241,1237,1243,1245,1244,1246,1248,1248,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1247,1249,1247,1247,1247,1247,1247,1247,1247,1247,1247,1250,1247,1247,1247,1247,1247,1247,1247,1247,1251,1247,1252,1252,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1253,1237,1237,1237,1237,1237,1237,1237,1237,1237,1240,1237,1237,1237,1237,1237,1237,1237,1237,1241,1237,1252,1252,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1242,1237,1237,1237,1237,1237,1237,1237,1237,1237,1240,1237,1237,1237,1237,1237,1237,1237,1237,1241,1237,1255,1255,1255,1255,1255,1255,1255,1255,1255,1255,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1254,1256,1254,1254,1254,1254,1254,1254,1254,1254,1254,1257,1254,1254,1254,1254,1254,1254,1254,1254,1258,1254,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1261,1259,1259,1259,1259,1259,1259,1259,1259,1259,1262,1259,1259,1259,1259,1259,1259,1259,1259,1263,1259,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1264,1264,1264,1264,1264,1264,1264,1265,1265,1265,1265,1265,1265,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1264,1266,1264,1265,1265,1265,1265,1265,1265,1264,1264,1267,1264,1264,1264,1264,1264,1264,1264,1264,1268,1264,1269,1269,1269,1269,1269,1269,1269,1269,1269,1269,1237,1237,1237,1237,1237,1237,1237,1269,1269,1269,1269,1269,1269,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1270,1237,1269,1269,1269,1269,1269,1269,1237,1237,1240,1237,1237,1237,1237,1237,1237,1237,1237,1241,1237,1269,1269,1269,1269,1269,1269,1269,1269,1269,1269,1237,1237,1237,1237,1237,1237,1237,1269,1269,1269,1269,1269,1269,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1242,1237,1269,1269,1269,1269,1269,1269,1237,1237,1240,1237,1237,1237,1237,1237,1237,1237,1237,1241,1237,1272,1271,1273,1273,1273,1273,1273,1273,1273,1273,1273,1273,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1274,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1275,1271,1271,1271,1271,1271,1274,1271,1271,1271,1276,1271,1271,1271,1271,1271,1271,1271,1271,1277,1271,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1271,1279,1271,1271,1271,1271,1271,1271,1271,1271,1271,1276,1271,1271,1271,1271,1271,1271,1271,1271,1277,1271,1280,1237,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1282,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1283,1237,1237,1237,1237,1237,1282,1237,1237,1237,1240,1237,1237,1237,1237,1237,1237,1237,1237,1241,1237,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1237,1242,1237,1237,1237,1237,1237,1237,1237,1237,1237,1240,1237,1237,1237,1237,1237,1237,1237,1237,1241,1237,1202,1208,1142,1284,1191,1192,1191,1285,1192,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1192,1208,1192,1191,1192,1142,1191,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,1197,268,268,268,268,268,268,268,268,268,268,1197,1197,1197,1197,1197,1197,1286,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1197,1197,1197,1197,268,1197,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1197,1197,1197,1197,1197,268,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,265,1185,265,265,265,265,265,265,265,265,265,265,265,265,265,265,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1287,265,265,265,265,1185,265,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,265,265,265,265,1159,265,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,265,265,265,265,265,1159,1288,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1185,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1287,1289,1289,1289,1289,1185,1289,1159,1159,1159,1159,1290,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1159,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1289,1159,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1185,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1287,1289,1289,1289,1289,1185,1289,1159,1159,1159,1159,1159,1159,1291,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1159,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1289,1159,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1185,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1287,1289,1289,1289,1289,1185,1289,1159,1159,1159,1159,1159,1159,1159,1159,1292,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1159,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1289,1159,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1185,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1287,1289,1289,1289,1289,1185,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1293,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1159,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1289,1159,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1185,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1287,1289,1289,1289,1289,1185,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1294,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1159,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1289,1159,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1185,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1287,1289,1289,1289,1289,1185,1289,1159,1159,1159,1293,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1159,1289,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1289,1289,1289,1289,1289,1159,1295,1297,1296,1298,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1300,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1301,1302,1133,1133,1133,1133,1133,1303,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1304,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1305,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1306,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1307,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1308,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1309,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1310,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1311,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1312,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1313,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1314,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1315,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1316,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1317,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1318,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1314,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1319,1133,1320,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1321,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1322,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1323,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1324,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1325,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1326,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1327,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1328,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1324,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1329,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1330,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1331,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1332,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1333,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1334,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1324,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1335,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1336,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1337,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1338,1338,1338,1338,1338,1338,1338,1338,1338,270,271,270,270,270,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,270,1185,1338,272,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1338,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1338,1338,273,1338,1338,1185,1338,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1338,274,1338,1338,1133,1338,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1338,1338,1338,1338,1338,1133,287,288,287,287,287,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,287,286,286,289,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,292,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,291,286,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1340,1133,1133,1133,1133,1133,1133,1133,1133,1133,1341,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1342,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1185,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1343,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1343,1343,1343,1343,1343,1185,1343,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1343,1343,1343,1343,1133,1343,1133,1133,1133,1133,1133,1133,1133,1133,1344,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1343,1343,1343,1343,1343,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1345,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1346,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1347,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1348,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1349,1133,1350,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1351,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1324,1133,1133,1133,1352,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1324,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1317,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1353,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1354,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1334,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1355,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1175,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1356,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1357,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1317,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1324,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1358,1133,1133,1133,1133,1133,1133,1133,1324,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1359,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1360,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1361,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1334,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1362,1133,1133,1133,1363,1133,1133,1133,1133,1133,1364,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1365,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1331,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1317,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1366,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1367,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1368,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1369,1370,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1317,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1371,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1372,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1358,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1373,1133,1133,1374,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1317,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1375,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1331,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1376,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1377,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1378,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1317,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1379,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1380,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1366,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1381,1133,1133,1133,1133,1133,1133,1133,1133,1133,1382,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1328,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1357,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1383,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1384,1133,1133,1133,1133,1133,1133,1133,1385,1133,1133,1133,1133,1133,1133,1133,1386,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1387,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1323,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1388,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1389,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1358,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1390,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1358,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1391,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1328,1133,1133,1133,1392,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1393,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1358,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1394,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1395,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1396,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1185,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1185,1299,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1133,1299,1133,1133,1133,1366,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1299,1299,1299,1299,1299,1133,1397,1201,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1142,1191,1398,1400,1399,1400,1400,1400,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1399,1400,1399,1399,1399,1399,1399,1401,1399,1399,1399,1399,1399,1399,1399,298,1399,296,1402,296,296,296,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,1402,296,1402,1402,1402,1402,1402,297,1402,1402,1402,1402,1402,1402,1402,298,1402,299,1402,1404,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1405,1403,1404,1403,1404,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1407,1403,1404,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1408,1403,1404,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,1409,1403,1411,1409,0]], -c(Y,"_lex_indicies=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(Y),K),V=[[165,2,3,4,171,6,7,8,9,10,165,165,174,177,174,12,178,14,174,185,186,189,190,196,191,192,193,19,194,195,198,200,201,202,203,204,25,18,187,188,27,236,237,239,241,239,30,242,32,239,249,250,253,254,260,255,256,257,37,258,259,262,264,265,266,267,268,43,36,251,252,45,300,301,308,310,308,48,311,50,313,316,313,52,317,54,323,322,0,56,324,325,58,326,327,327,327,327,440,61,62,63,440,468,64,65,468,468,472,472,69,64,70,470,471,473,474,472,468,475,476,478,66,67,479,480,68,472,71,72,77,84,482,483,70,470,471,473,474,472,468,475,476,478,66,67,479,480,68,71,72,77,84,482,483,481,73,74,75,76,78,79,82,80,81,83,85,86,468,88,89,90,92,95,93,94,96,98,499,499,499,500,100,502,101,503,102,500,100,502,101,503,537,537,537,105,106,107,108,548,537,537,553,537,537,574,537,112,575,581,115,118,120,122,123,124,118,119,585,119,585,121,537,599,600,603,604,610,605,606,607,129,608,609,612,614,615,616,617,618,135,128,601,602,137,654,655,139,539,103,541,141,142,657,758,144,145,146,758,766,766,766,149,787,786,766,789,791,776,823,155,156,157,161,162,155,156,157,161,162,158,158,156,157,159,160,158,158,156,157,159,160,870,156,766,939,163,164,939,939,165,165,166,167,168,170,172,173,165,165,165,169,165,169,165,1,165,165,165,5,174,174,175,174,176,179,174,174,11,13,174,174,174,180,181,182,15,21,26,205,28,174,174,174,183,184,174,16,174,174,174,17,174,174,174,20,197,199,22,174,174,23,24,174,206,210,214,207,208,209,211,212,213,174,174,215,219,225,216,223,224,217,221,222,218,220,174,226,235,234,227,228,229,230,231,232,233,174,174,174,238,239,239,239,240,243,239,29,31,239,239,239,244,245,246,33,39,44,269,46,239,239,239,247,248,239,34,239,239,239,35,239,239,239,38,261,263,40,239,239,41,42,239,270,274,278,271,272,273,275,276,277,239,239,279,283,289,280,287,288,281,285,286,282,284,239,290,299,298,291,292,293,294,295,296,297,239,239,239,302,303,303,304,303,305,303,303,303,306,306,306,307,306,306,306,308,308,308,309,308,47,49,308,308,312,312,312,313,313,314,313,315,313,313,51,53,313,313,318,318,319,318,318,320,321,320,55,57,322,322,322,328,327,327,329,330,331,332,334,337,338,339,340,327,341,342,344,346,347,348,352,354,355,356,372,377,384,389,396,403,406,407,411,405,415,423,427,429,434,436,439,327,327,327,327,327,327,333,327,333,327,335,59,336,327,60,327,327,343,345,327,349,350,351,347,353,327,357,358,367,370,359,360,361,362,363,364,365,366,328,368,369,371,373,376,374,375,378,381,379,380,382,383,385,387,386,388,390,391,327,392,393,394,395,327,397,400,398,399,401,402,404,408,409,410,412,414,413,416,417,418,420,419,421,422,424,425,426,428,430,431,432,433,435,437,438,441,440,440,442,443,445,440,440,440,444,440,444,446,440,448,447,447,451,452,453,454,447,456,457,458,459,461,463,464,465,466,467,447,449,447,450,447,447,447,447,447,455,447,455,460,447,462,447,468,468,469,484,485,471,487,488,475,489,490,491,492,493,495,496,497,498,468,468,468,468,468,468,472,477,468,468,468,468,468,468,468,468,468,486,468,486,468,468,468,468,494,468,87,91,97,499,501,504,99,499,499,500,505,505,506,507,509,511,512,505,505,508,505,508,505,510,505,505,505,514,513,513,515,516,517,519,521,522,527,534,513,513,513,513,518,513,518,513,520,513,513,514,523,524,525,526,528,529,532,530,531,533,535,536,538,537,546,547,549,550,552,554,555,556,558,559,560,562,563,584,587,588,589,657,658,659,660,661,557,663,679,684,691,696,698,704,707,708,712,706,716,727,731,734,742,746,749,750,537,103,540,537,537,542,544,545,537,543,537,537,537,537,537,104,537,537,537,537,537,551,537,551,537,537,109,537,537,110,537,537,557,537,561,537,564,573,537,111,576,577,578,537,579,113,582,114,116,583,537,565,567,537,566,537,537,568,571,572,537,569,570,537,537,537,537,580,117,586,537,537,590,537,537,537,591,593,537,592,537,592,537,594,595,596,125,131,136,619,138,537,537,537,597,598,537,126,537,537,537,127,537,537,537,130,611,613,132,537,537,133,134,537,620,624,628,621,622,623,625,626,627,537,537,629,633,639,630,637,638,631,635,636,632,634,537,640,648,653,641,642,643,644,645,646,647,649,650,651,652,537,537,537,656,140,143,537,662,537,664,665,674,677,666,667,668,669,670,671,672,673,538,675,676,678,680,683,681,682,685,688,686,687,689,690,692,694,693,695,697,699,701,700,702,703,705,538,709,710,711,713,715,714,717,718,719,724,720,721,722,537,538,539,103,723,544,725,726,728,729,730,732,733,735,736,737,740,738,739,741,743,744,745,747,748,537,751,751,752,753,754,756,751,751,751,755,751,755,751,757,751,759,758,758,760,761,758,762,764,758,758,758,758,763,758,763,765,758,767,766,766,770,771,772,766,773,775,778,779,780,781,782,766,783,784,788,811,815,766,816,818,820,766,821,822,824,828,830,831,766,833,851,856,863,871,878,885,890,891,895,889,900,910,916,919,928,932,936,937,938,768,766,769,766,766,766,766,766,766,774,766,774,766,147,777,766,766,766,766,766,766,766,785,766,766,148,150,766,151,795,803,806,790,807,808,796,800,801,766,790,151,792,793,152,766,792,766,766,794,766,797,799,766,797,798,800,801,799,766,766,802,766,766,804,799,800,801,804,805,766,797,799,800,801,766,797,799,800,801,766,809,799,800,801,809,810,766,151,811,790,812,800,801,813,799,151,813,790,814,817,819,153,154,766,766,825,826,827,822,829,766,766,832,766,766,834,835,844,849,836,837,838,839,840,841,842,843,767,845,846,847,848,767,850,852,855,853,854,767,767,857,860,858,859,861,862,767,864,866,865,867,868,869,766,766,872,767,873,766,874,875,876,877,768,879,882,880,881,883,884,886,887,888,767,892,893,894,896,898,899,897,767,901,902,903,906,904,905,907,908,909,911,913,912,914,915,917,918,920,921,923,926,922,924,925,927,929,930,931,933,934,935,766,766,939,940,941,939,943,942,944,942,945,946,947,942,942]],c(Y,"_lex_trans_targs=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(Y),K),V=[[1,0,0,0,0,0,0,0,0,0,2,3,4,0,5,0,0,0,6,0,7,0,8,0,7,0,0,0,0,8,7,0,8,0,7,7,0,0,0,0,0,0,0,9,0,10,0,0,0,11,0,7,0,8,0,7,0,0,0,0,8,7,0,8,0,7,7,0,0,0,0,0,0,0,12,0,13,0,0,0,14,0,15,0,0,0,0,16,0,0,0,0,0,0,17,18,19,20,21,0,0,0,22,23,0,0,24,25,26,27,28,29,29,30,31,29,32,31,33,31,29,29,30,29,34,29,29,35,29,29,29,29,29,29,0,36,37,0,38,37,39,37,0,0,36,0,40,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,42,43,44,45,0,0,0,45,28,46,29,29,29,46,47,48,49,0,0,0,0,0,50,51,0,52,53,0,54,0,0,0,0,0,0,0,0,0,55,55,56,0,28,0,57,0,7,0,8,0,7,0,0,0,0,8,7,0,8,0,7,7,0,0,0,0,0,0,0,0,58,0,0,0,0,58,59,0,0,0,60,61,62,63,0,7,7,64,65,65,0,0,0,28,0,0,0,29,66,29,29,29,67,68,69,68,68,68,0,70,71,70,70,70,72,73,74,75,0,76,77,78,81,82,0,28,0,7,0,7,83,84,85,67,86,0,87,0,88,89,90,0,91,92,0,93,7,7,94,95,0,0,96,97,98,99,99,99,99,99,99,99,99,100,101,102,0,0,103,0,104,105,106,0,107,108,109,0,7,0,0,110,111,0,28,112,0,0,0,0,0,0,0,0,0,113,114,0,0,0,0,0,0,0,0,0,0,0,115,0,0,0,0,0,0,0,0,0,0,116,117,118,0,119,120,121,7,7,122,0,0,123,124,125,99,99,99,99,99,99,99,99,126,127,128,0,0,129,0,130,131,132,0,133,134,135,0,7,0,0,136,137,0,28,138,0,0,0,0,0,0,0,0,0,139,140,0,0,0,0,0,0,0,0,0,0,0,141,0,0,0,0,0,0,0,0,0,0,142,143,144,0,145,146,0,147,0,148,149,150,151,152,153,0,154,155,156,157,158,159,7,160,0,0,161,162,163,164,165,166,167,0,168,7,169,170,0,0,171,172,173,174,0,175,176,177,0,178,0,0,179,180,181,182,183,184,0,28,0,0,7,7,0,0,0,185,0,0,0,0,186,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,187,188,189,190,191,192,67,193,0,194,0,0,0,195,0,196,197,0,0,198,0,0,0,199,0,200,0,0,0,0,0,0,0,0,0,0,0,0,199,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,201,0,0,0,0,202,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,7,203,204,0,0,0,205,206,207,67,208,0,28,209,0,210,211,0,28,0,0,212,0,0,0,0,0,0,0,0,0,0,213,0,214,0,215,216,217,218,219,67,220,0,0,221,0,222,223,224,225,28,0,27,0,0,27,0,0,0,0,0,0,7,7,7,226,227,228,229,230,231,232,0,233,234,235,236,237,238,239,240,241,67,242,0,243,244,245,246,247,248,0,0,0,249,7,7,0,250,251,252,253,254,0,0,0,0,0,255,256,67,257,0,258,28,259,260,261,262,263,264,0,28,0,0,0,0,0,0,265,266,267,268,67,269,0,270,28,271,272,273,0,0,0,0,0,0,0,0,0,0,0,0,274,275,0,8,0,0,7,276,0,0,0,0,0,0,7,7,0,277,0,277,277,277,0,0,277,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,0,277,278,279,0,280,281,0,58,0,282,0,283,284,285,286,287,29,288,289,290,291,292,67,293,0,294,295,0,296,297,0,298,299,276,300,0,301,0,0,302,0,0,0,0,303,0,0,0,0,0,0,304,0,0,305,0,306,307,0,0,0,308,0,0,309,310,311,312,0,0,0,313,314,0,315,316,317,0,7,318,319,320,0,321,99,99,99,99,99,99,99,99,322,323,324,0,0,325,0,326,327,328,0,329,330,331,0,7,0,0,332,333,0,28,334,0,0,0,0,0,0,0,0,0,335,336,0,0,0,0,0,0,0,0,0,0,0,337,0,0,0,0,0,0,0,0,0,0,0,0,0,0,338,339,340,0,0,0,341,28,342,274,274,274,274,274,274,274,274,274,274,274,274,58,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,343,274,274,274,274,274,274,274,274,274,274,274,274,344,345,346,347,348,348,344,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,349,350,351,0,28,0,0,352,353,354,67,355,0,356,28,357,7,358,359,0,28,360,0,0,361,362,363,364,67,365,0,28,366,367,368,369,0,28,0,370,0,7,0,0,0,0,0,371,0,0,372,372,0,373,0,0,0,374,7,375,375,375,0,0,376,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,377,378,0,379,380,381,382,383,384,67,385,0,386,0,0,387,388,389,390,391,392,393,0,394,395,0,0,396,397,398,0,0,399,0,0,398,400,400,401,402,0,403,403,0,404,405,406,407,0,408,398,398,409,0,0,410,410,0,411,412,0,413,414,415,415,416,416,0,0,417,418,418,419,419,420,421,421,422,422,423,424,424,425,425,0,0,426,427,428,429,430,431,431,428,430,432,372,433,0,0,0,0,0,434,435,375,375,375,436,375,437,438,28,439,440,0,0,0,0,0,0,0,0,0,0,0,0,441,0,0,0,0,436,0,0,0,0,0,442,443,0,0,0,0,0,0,444,0,0,0,0,0,443,445,446,0,447,0,448,0,0,0,0,449,0,0,0,0,0,0,0,0,0,450,0,0,0,0,0,0,0,449,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,451,452,453,7,76,454,0,455,0,456,0,0,0,457,458]],c(Y,"_lex_trans_actions=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(Y),K),V=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,0,0,0,0,0,0,0,0,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,0,0,79,0,79,0,0,0,79,79,0,0,0,0,79,0,79,0,79,0,0,0,0,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,79,0,0,0,0,0,0,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,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,79,0,0,0,0,0,79,0,0,0,0,0,0,0,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,0,0,0,0,0,0,79,0,0,0,0,0,0,0,79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,79,0,0,79,0,0,0,0,0]],c(Y,"_lex_to_state_actions=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(Y),K),V=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,0,0,0,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,0,80,0,80,0,0,0,80,80,0,0,0,0,80,0,80,0,80,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,80,0,0,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,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,80,0,0,0,0,0,80,0,0,0,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,0,0,0,0,0,80,0,0,0,0,0,0,0,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,80,0,0,80,0,0,0,0,0]],c(Y,"_lex_from_state_actions=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(Y),K),V=[[0,1,1,1,1,1,1,1,1,1,1,13,13,13,13,19,19,19,19,19,19,19,19,19,19,19,19,19,19,44,44,44,44,50,50,50,50,50,50,50,50,50,50,50,50,50,50,75,75,75,75,81,81,81,81,0,0,0,0,95,97,99,99,99,104,104,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,169,169,169,169,169,169,169,169,169,169,169,169,179,181,181,181,193,195,195,195,195,195,201,193,205,205,205,205,205,205,205,205,205,205,205,205,205,205,223,223,223,223,223,223,223,223,223,223,223,223,223,223,193,205,205,205,205,255,255,255,260,262,262,262,266,266,260,266,266,266,266,266,266,266,266,266,296,296,0,309,310,311,313,315,317,315,315,0,327,328,332,332,333,342,343,344,344,344,347,347,349,350,351,351,351,353,354,355,355,351,347,347,360,361,361,361,361,361,364,364,364,364,364,364,364,364,374,375,375,375,375,387,387,387,375,375,375,375,387,387,387,387,387,387,387,387,387,398,387,399,400,400,0,407,411,411,412,421,422,423,423,423,426,426,428,429,430,430,430,432,433,434,434,430,426,426,439,440,440,440,440,440,443,443,443,443,443,443,443,443,453,454,454,454,454,466,466,466,454,454,454,454,466,466,466,466,466,466,466,466,466,477,466,478,479,479,0,486,487,0,493,0,500,504,504,0,0,513,514,518,518,0,523,0,526,0,529,529,530,531,0,572,574,575,576,577,579,581,585,585,576,576,576,576,587,576,576,581,576,576,572,591,591,591,591,591,591,581,581,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,630,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,597,576,0,673,674,675,677,673,680,0,699,701,703,704,705,706,707,709,706,706,706,706,706,712,706,706,714,712,712,706,0,733,734,104,104,737,738,104,734,734,741,743,746,734,747,734,748,749,751,753,734,741,754,754,743,754,758,754,754,754,754,0,179,766,767,766,766,0,776,777,779,781,783,781,785,0,797,798,799,800,802,804,806,807,807,807,807,807,807,807,807,807,807,807,807,807,807,807,807,0,193,865,868,869,873,875,876,877,878,879,881,884,885,887,889,892,893,895,896,193,893,893,884,884,884,884,915,918,920,921,925,928,929,930,931,915,915,915,915,915,915,915,915,915,915,915,884,935,884,884,884,936,943,943,945,947,956,957,958,958,958,961,961,963,964,965,965,965,967,968,969,969,965,961,961,974,975,975,975,975,975,978,978,978,978,978,978,978,978,988,989,989,989,989,1001,1001,1001,989,989,989,989,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1016,1017,1018,1018,193,884,884,1022,884,879,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1076,869,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1101,884,0,1108,1109,1110,1112,1114,1116,0,1125,1126,1127,1128,1130,1125,1133,0,266,1187,1189,1190,1191,1192,1194,1196,1198,1201,1201,1192,1192,1204,1205,1192,1192,1207,1209,1210,1210,1213,1224,266,1230,1232,1233,1235,1213,1213,1238,1238,1238,1244,1245,1247,1248,1238,1238,1255,1260,1265,1238,1238,1272,1272,1238,1238,1209,1192,1192,1209,1192,1192,1198,266,1289,1290,1290,1290,1290,1290,1290,1296,1198,1299,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1339,1340,1300,1300,1344,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1398,1192,1399,0,1403,1403,0,1407,1407,1407,1407,1411]],c(Y,"_lex_eof_trans=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_start")}(e.get_singleton_class(Y),K),V=[165],c(Y,"lex_start=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_error")}(e.get_singleton_class(Y),K),V=[0],c(Y,"lex_error=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_interp_words")}(e.get_singleton_class(Y),K),V=[174],c(Y,"lex_en_interp_words=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_interp_string")}(e.get_singleton_class(Y),K),V=[239],c(Y,"lex_en_interp_string=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_plain_words")}(e.get_singleton_class(Y),K),V=[303],c(Y,"lex_en_plain_words=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_plain_string")}(e.get_singleton_class(Y),K),V=[306],c(Y,"lex_en_plain_string=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_interp_backslash_delimited")}(e.get_singleton_class(Y),K),V=[308],c(Y,"lex_en_interp_backslash_delimited=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_plain_backslash_delimited")}(e.get_singleton_class(Y),K),V=[312],c(Y,"lex_en_plain_backslash_delimited=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_interp_backslash_delimited_words")}(e.get_singleton_class(Y),K),V=[313],c(Y,"lex_en_interp_backslash_delimited_words=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_plain_backslash_delimited_words")}(e.get_singleton_class(Y),K),V=[318],c(Y,"lex_en_plain_backslash_delimited_words=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_regexp_modifiers")}(e.get_singleton_class(Y),K),V=[320],c(Y,"lex_en_regexp_modifiers=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(Y),K),V=[322],c(Y,"lex_en_expr_variable=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(Y),K),V=[327],c(Y,"lex_en_expr_fname=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(Y),K),V=[440],c(Y,"lex_en_expr_endfn=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(Y),K),V=[447],c(Y,"lex_en_expr_dot=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(Y),K),V=[468],c(Y,"lex_en_expr_arg=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(Y),K),V=[499],c(Y,"lex_en_expr_cmdarg=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(Y),K),V=[505],c(Y,"lex_en_expr_endarg=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(Y),K),V=[513],c(Y,"lex_en_expr_mid=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(Y),K),V=[537],c(Y,"lex_en_expr_beg=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(Y),K),V=[751],c(Y,"lex_en_expr_labelarg=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(Y),K),V=[758],c(Y,"lex_en_expr_value=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(Y),K),V=[766],c(Y,"lex_en_expr_end=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(Y),K),V=[939],c(Y,"lex_en_leading_dot=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(Y),K),V=[942],c(Y,"lex_en_line_comment=",e.to_a(V)),V[t(V.length,1)],function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(Y),K),V=[165],c(Y,"lex_en_line_begin=",e.to_a(V)),V[t(V.length,1)],e.const_set(K[0],"ESCAPES",_("a".$ord(),"\x07","b".$ord(),"\b","e".$ord(),"\x1b","f".$ord(),"\f","n".$ord(),"\n","r".$ord(),"\r","s".$ord()," ","t".$ord(),"\t","v".$ord(),"\x0B","\\".$ord(),"\\").$freeze()),e.const_set(K[0],"REGEXP_META_CHARACTERS",c(e.const_get_relative(K,"Regexp"),"union",e.to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()),e.const_set(K[0],"RBRACE_OR_RBRACK",["}","]"].$freeze()),Y.$attr_reader("source_buffer"),Y.$attr_accessor("diagnostics"),Y.$attr_accessor("static_env"),Y.$attr_accessor("force_utf32"),Y.$attr_accessor("cond","cmdarg","in_kwarg"),Y.$attr_accessor("tokens","comments"),e.defn(Y,"$initialize",h=function(e){var t=this;return t.version=e,t.static_env=s,t.tokens=s,t.comments=s,t.$reset()},h.$$arity=1),e.defn(Y,"$reset",m=function(t){var n=this;return null==t&&(t=!0),u(t)&&(n.cs=n.$class().$lex_en_line_begin(),n.cond=e.const_get_relative(K,"StackState").$new("cond"),n.cmdarg=e.const_get_relative(K,"StackState").$new("cmdarg"),n.cond_stack=[],n.cmdarg_stack=[]),n.force_utf32=!1,n.source_pts=s,n.p=0,n.ts=s,n.te=s,n.act=0,n.stack=[],n.top=0,n.token_queue=[],n.literal_stack=[],n.eq_begin_s=s,n.sharp_s=s,n.newline_s=s,n.num_base=s,n.num_digits_s=s,n.num_suffix_s=s,n.num_xfrm=s,n.escape_s=s,n.escape=s,n.herebody_s=s,n.paren_nest=0,n.lambda_stack=[],n.dedent_level=s,n.command_state=!1,n.in_kwarg=!1},m.$$arity=-1),e.defn(Y,"$source_buffer=",y=function(t){var n,r=this,$=s;return r.source_buffer=t,u(r.source_buffer)?($=r.source_buffer.$source(),u(u(n=e.const_get_relative(K,"Encoding","skip_raise")?"constant":s)?$.$encoding()["$=="](e.const_get_qualified(e.const_get_relative(K,"Encoding"),"UTF_8")):n)?r.source_pts=$.$unpack("U*"):r.source_pts=$.$unpack("C*"),r.source_pts["$[]"](0)["$=="](65279)?r.p=1:s):r.source_pts=s},y.$$arity=1),e.defn(Y,"$encoding",v=function(){return this.source_buffer.$source().$encoding()},v.$$arity=0),e.const_set(K[0],"LEX_STATES",l(["line_begin","expr_dot","expr_fname","expr_value","expr_beg","expr_mid","expr_arg","expr_cmdarg","expr_end","expr_endarg","expr_endfn","expr_labelarg","interp_string","interp_words","plain_string","plain_words"],{line_begin:Y.$lex_en_line_begin(),expr_dot:Y.$lex_en_expr_dot(),expr_fname:Y.$lex_en_expr_fname(),expr_value:Y.$lex_en_expr_value(),expr_beg:Y.$lex_en_expr_beg(),expr_mid:Y.$lex_en_expr_mid(),expr_arg:Y.$lex_en_expr_arg(),expr_cmdarg:Y.$lex_en_expr_cmdarg(),expr_end:Y.$lex_en_expr_end(),expr_endarg:Y.$lex_en_expr_endarg(),expr_endfn:Y.$lex_en_expr_endfn(),expr_labelarg:Y.$lex_en_expr_labelarg(),interp_string:Y.$lex_en_interp_string(),interp_words:Y.$lex_en_interp_words(),plain_string:Y.$lex_en_plain_string(),plain_words:Y.$lex_en_plain_string()})),e.defn(Y,"$state",b=function(){var t=this;return e.const_get_relative(K,"LEX_STATES").$invert().$fetch(t.cs,t.cs)},b.$$arity=0),e.defn(Y,"$state=",k=function(t){return this.cs=e.const_get_relative(K,"LEX_STATES").$fetch(t)},k.$$arity=1),e.defn(Y,"$push_cmdarg",x=function(){var t=this;return t.cmdarg_stack.$push(t.cmdarg),t.cmdarg=e.const_get_relative(K,"StackState").$new("cmdarg."+t.cmdarg_stack.$count())},x.$$arity=0),e.defn(Y,"$pop_cmdarg",E=function(){var e=this;return e.cmdarg=e.cmdarg_stack.$pop()},E.$$arity=0),e.defn(Y,"$push_cond",w=function(){var t=this;return t.cond_stack.$push(t.cond),t.cond=e.const_get_relative(K,"StackState").$new("cond."+t.cond_stack.$count())},w.$$arity=0),e.defn(Y,"$pop_cond",R=function(){var e=this;return e.cond=e.cond_stack.$pop()},R.$$arity=0),e.defn(Y,"$dedent_level",N=function(){var e,t=this,n=s;return n=(e=[t.dedent_level,s])[0],t.dedent_level=e[1],n},N.$$arity=0),e.defn(Y,"$advance",A=function(){var a,o,_,f,g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I,z,C,P,B,G,D,L,M,j,H,F,U,Y,X,V,W,Q,J,Z,ee,te,ne,re,$e,ie,ae,se,oe=this,ce=s,_e=s,ue=s,le=s,de=s,pe=s,fe=s,ge=s,he=s,me=s,ye=s,ve=s,be=s,ke=s,xe=s,Ee=s,we=s,Re=s,Ne=s,Ae=s,Se=s,Te=s,qe=s,Oe=s,Ie=s,ze=s,Ce=s,Pe=s,Be=s,Ge=s,De=s,Le=s,Me=s,je=s,He=s,Fe=s,Ue=s,Ye=s,Xe=s,Ke=s,Ve=s,We=s,Qe=s,Je=s,Ze=s,et=s,tt=s,nt=s,rt=s;if(u(oe.token_queue["$any?"]()))return oe.token_queue.$shift();for(ce=oe.$class(),_e=ce.$send("_lex_trans_keys"),ue=ce.$send("_lex_key_spans"),le=ce.$send("_lex_index_offsets"),de=ce.$send("_lex_indicies"),pe=ce.$send("_lex_trans_targs"),fe=ce.$send("_lex_trans_actions"),ge=ce.$send("_lex_to_state_actions"),he=ce.$send("_lex_from_state_actions"),me=ce.$send("_lex_eof_trans"),ye=n(oe.source_pts.$size(),2),a=[oe.p,ye],ve=a[0],be=a[1],oe.command_state=u(a=oe.cs["$=="](ce.$lex_en_expr_value()))?a:oe.cs["$=="](ce.$lex_en_line_begin()),!1,o=s,a=e.to_ary(o),ke=null==a[0]?s:a[0],xe=null==a[1]?s:a[1],Ee=null==a[2]?s:a[2],we=null==a[3]?s:a[3],null==a[4]?s:a[4],null==a[5]?s:a[5],Re=0,Ne=10,Ae=15,Se=20,Te=30,qe=40;u(!0);){if(u(r(Re,0))){if(ve["$=="](ye)){Re=Te;continue}if(oe.cs["$=="](0)){Re=qe;continue}}if(u(r(Re,Ne))&&(Oe=he["$[]"](oe.cs),80["$==="](Oe)&&(oe.ts=ve),Ee=oe.cs["$<<"](1),we=le["$[]"](oe.cs),ke=ue["$[]"](oe.cs),Ie=u(o=oe.source_pts["$[]"](ve))?o:0,xe=u(u(o=u(_=$(ke,0))?r(_e["$[]"](Ee),Ie):_)?r(Ie,_e["$[]"](n(Ee,1))):o)?de["$[]"](t(n(we,Ie),_e["$[]"](Ee))):de["$[]"](n(we,ke))),u(r(Re,Ae))&&(oe.cs=pe["$[]"](xe),u(fe["$[]"](xe)["$!="](0))))if(Oe=fe["$[]"](xe),28["$==="](Oe))oe.newline_s=ve;else if(99["$==="](Oe))oe.escape_s=ve,oe.escape=s;else if(29["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s);else if(67["$==="](Oe))oe.sharp_s=t(ve,1);else if(70["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve);else if(279["$==="](Oe))ze=ve;else if(36["$==="](Oe))ze=ve;else if(38["$==="](Oe))ze=ve;else if(40["$==="](Oe))ze=ve;else if(55["$==="](Oe))Ce=ve;else if(319["$==="](Oe))oe.escape=s;else if(348["$==="](Oe))ze=ve;else if(424["$==="](Oe))oe.num_base=16,oe.num_digits_s=ve;else if(418["$==="](Oe))oe.num_base=10,oe.num_digits_s=ve;else if(421["$==="](Oe))oe.num_base=8,oe.num_digits_s=ve;else if(415["$==="](Oe))oe.num_base=2,oe.num_digits_s=ve;else if(430["$==="](Oe))oe.num_base=10,oe.num_digits_s=oe.ts;else if(398["$==="](Oe))oe.num_base=8,oe.num_digits_s=oe.ts;else if(410["$==="](Oe))oe.num_suffix_s=ve;else if(405["$==="](Oe))oe.num_suffix_s=ve;else if(403["$==="](Oe))oe.num_suffix_s=ve;else if(76["$==="](Oe))ze=ve;else if(7["$==="](Oe))oe.te=n(ve,1);else{if(96["$==="](Oe)){oe.te=n(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DBEG","#{".$freeze()),u(Pe["$heredoc?"]())&&(Be=[oe.herebody_s],c(Pe,"saved_herebody_s=",e.to_a(Be)),Be[t(Be.length,1)],oe.herebody_s=s),Pe.$start_interp_brace(),Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=758,Re=Se;continue}if(5["$==="](Oe)){oe.te=n(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DVAR",s,oe.ts,n(oe.ts,1)),ve=oe.ts,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(92["$==="](Oe)){if(oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(o=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():o)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(91["$==="](Oe)){if(oe.te=n(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else{if(97["$==="](Oe)){oe.te=ve,ve=t(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DVAR",s,oe.ts,n(oe.ts,1)),ve=oe.ts,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(94["$==="](Oe))oe.te=ve,ve=t(ve,1),oe.$literal().$extend_space(oe.ts,oe.te);else if(95["$==="](Oe)){if(oe.te=ve,ve=t(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(6["$==="](Oe))ve=t(oe.te,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(o=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):o)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(o=oe.escape)?o:oe.$tok(),oe.ts,oe.te);else if(4["$==="](Oe)){if(ve=t(oe.te,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else{if(123["$==="](Oe)){oe.te=n(ve,1),(Pe=oe.$literal()).$flush_string(), -Pe.$extend_content(),oe.$emit("tSTRING_DBEG","#{".$freeze()),u(Pe["$heredoc?"]())&&(Be=[oe.herebody_s],c(Pe,"saved_herebody_s=",e.to_a(Be)),Be[t(Be.length,1)],oe.herebody_s=s),Pe.$start_interp_brace(),Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=758,Re=Se;continue}if(10["$==="](Oe)){oe.te=n(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DVAR",s,oe.ts,n(oe.ts,1)),ve=oe.ts,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(120["$==="](Oe)){if(oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(o=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():o)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(119["$==="](Oe)){if(oe.te=n(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else{if(124["$==="](Oe)){oe.te=ve,ve=t(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DVAR",s,oe.ts,n(oe.ts,1)),ve=oe.ts,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(122["$==="](Oe)){if(oe.te=ve,ve=t(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(11["$==="](Oe))ve=t(oe.te,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(o=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):o)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(o=oe.escape)?o:oe.$tok(),oe.ts,oe.te);else if(9["$==="](Oe)){if(ve=t(oe.te,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(146["$==="](Oe)){if(oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(o=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():o)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(145["$==="](Oe)){if(oe.te=n(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(148["$==="](Oe))oe.te=ve,ve=t(ve,1),oe.$literal().$extend_space(oe.ts,oe.te);else if(149["$==="](Oe)){if(oe.te=ve,ve=t(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(152["$==="](Oe)){if(oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(o=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():o)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(151["$==="](Oe)){if(oe.te=n(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(154["$==="](Oe)){if(oe.te=ve,ve=t(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else{if(161["$==="](Oe)){oe.te=n(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DBEG","#{".$freeze()),u(Pe["$heredoc?"]())&&(Be=[oe.herebody_s],c(Pe,"saved_herebody_s=",e.to_a(Be)),Be[t(Be.length,1)],oe.herebody_s=s),Pe.$start_interp_brace(),Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=758,Re=Se;continue}if(13["$==="](Oe)){oe.te=n(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DVAR",s,oe.ts,n(oe.ts,1)),ve=oe.ts,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(158["$==="](Oe)){if(oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(o=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():o)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(157["$==="](Oe)){if(oe.te=n(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else{if(162["$==="](Oe)){oe.te=ve,ve=t(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DVAR",s,oe.ts,n(oe.ts,1)),ve=oe.ts,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(160["$==="](Oe)){if(oe.te=ve,ve=t(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(12["$==="](Oe)){if(ve=t(oe.te,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(164["$==="](Oe)){if(oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(o=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():o)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(163["$==="](Oe)){if(oe.te=n(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else{if(171["$==="](Oe)){oe.te=n(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DBEG","#{".$freeze()),u(Pe["$heredoc?"]())&&(Be=[oe.herebody_s],c(Pe,"saved_herebody_s=",e.to_a(Be)),Be[t(Be.length,1)],oe.herebody_s=s),Pe.$start_interp_brace(),Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=758,Re=Se;continue}if(15["$==="](Oe)){oe.te=n(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DVAR",s,oe.ts,n(oe.ts,1)),ve=oe.ts,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(167["$==="](Oe)){if(oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(o=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():o)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(166["$==="](Oe)){if(oe.te=n(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else{if(172["$==="](Oe)){oe.te=ve,ve=t(ve,1),(Pe=oe.$literal()).$flush_string(),Pe.$extend_content(),oe.$emit("tSTRING_DVAR",s,oe.ts,n(oe.ts,1)),ve=oe.ts,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(169["$==="](Oe))oe.te=ve,ve=t(ve,1),oe.$literal().$extend_space(oe.ts,oe.te);else if(170["$==="](Oe)){if(oe.te=ve,ve=t(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(14["$==="](Oe)){if(ve=t(oe.te,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(174["$==="](Oe)){if(oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(o=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():o)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(173["$==="](Oe)){if(oe.te=n(ve,1),De=oe.$tok(),u(u(o=i(oe.version,22))?oe.cond["$active?"]()["$!"]():o)&&(Le=oe.source_buffer.$slice(e.Range.$new(oe.te,n(oe.te,2),!0))),Pe=oe.$literal(),u(u(o=Pe["$heredoc?"]()["$!"]())?Me=Pe.$nest_and_try_closing(De,oe.ts,oe.te,Le):o)){Me["$[]"](0)["$=="]("tLABEL_END")?(ve=n(ve,1),oe.$pop_literal(),oe.cs=751):oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$extend_string(De,oe.ts,oe.te)}else if(176["$==="](Oe))oe.te=ve,ve=t(ve,1),oe.$literal().$extend_space(oe.ts,oe.te);else{if(177["$==="](Oe)){oe.te=n(ve,1),oe.$emit("tREGEXP_OPT",oe.$tok(oe.ts,t(oe.te,1)),oe.ts,t(oe.te,1)),ve=t(ve,1),oe.cs=766,Re=Se;continue}if(178["$==="](Oe)){oe.te=ve,ve=t(ve,1),He=oe.$tok().$scan(/[^imxouesn]/),u(He["$any?"]())&&oe.$diagnostic("error","regexp_options",l(["options"],{options:He.$join()})),oe.$emit("tREGEXP_OPT"),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(16["$==="](Oe)){oe.te=n(ve,1),u(oe.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?oe.$emit("tNTH_REF",oe.$tok(n(oe.ts,1)).$to_i()):u(oe.$tok()["$=~"](/^\$([&`'+])$/))?oe.$emit("tBACK_REF"):oe.$emit("tGVAR"),oe.cs=oe.$stack_pop(),ve=n(ve,1),Re=qe;continue}if(179["$==="](Oe)){oe.te=ve,ve=t(ve,1),u(oe.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?oe.$emit("tNTH_REF",oe.$tok(n(oe.ts,1)).$to_i()):u(oe.$tok()["$=~"](/^\$([&`'+])$/))?oe.$emit("tBACK_REF"):oe.$emit("tGVAR"),oe.cs=oe.$stack_pop(),ve=n(ve,1),Re=qe;continue}if(181["$==="](Oe)){oe.te=ve,ve=t(ve,1),u(oe.$tok()["$=~"](/^@@[0-9]/))&&oe.$diagnostic("error","cvar_name",l(["name"],{name:oe.$tok()})),oe.$emit("tCVAR"),oe.cs=oe.$stack_pop(),ve=n(ve,1),Re=qe;continue}if(180["$==="](Oe)){oe.te=ve,ve=t(ve,1),u(oe.$tok()["$=~"](/^@[0-9]/))&&oe.$diagnostic("error","ivar_name",l(["name"],{name:oe.$tok()})),oe.$emit("tIVAR"),oe.cs=oe.$stack_pop(),ve=n(ve,1),Re=qe;continue}if(202["$==="](Oe)){oe.te=n(ve,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS_BEGIN")),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(188["$==="](Oe)){oe.te=n(ve,1),oe.$emit("tIDENTIFIER"),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(18["$==="](Oe)){oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=766,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(185["$==="](Oe)){oe.te=n(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(197["$==="](Oe)){oe.te=n(ve,1),ve=t(ve=t(ve,1),1),oe.cs=766,Re=Se;continue}if(20["$==="](Oe)){if(oe.te=n(ve,1),u(oe["$version?"](23))){Fe=(o=[oe.$tok()["$[]"](d(0,-2,!1)),oe.$tok()["$[]"](-1).$chr()])[0],Ue=o[1],oe.cs=oe.$push_literal(Fe,Ue,oe.ts),Re=Se;continue}ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(184["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),oe.cs=766,Re=Se;continue}if(183["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(201["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS_BEGIN")),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(198["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit("tCONSTANT"),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(200["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit("tIDENTIFIER"),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(195["$==="](Oe)){oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(191["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(196["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=537,Re=Se;continue}if(189["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(194["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=766,Re=Se;continue}if(19["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(17["$==="](Oe)){ve=t(ve=t(oe.te,1),1),oe.cs=766,Re=Se;continue}if(187["$==="](Oe)){if(Oe=oe.act,39["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS_BEGIN")),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(40["$==="](Oe)){ve=t(oe.te,1),oe.$emit("tCONSTANT"),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(41["$==="](Oe)){ve=t(oe.te,1),oe.$emit("tIDENTIFIER"),oe.cs=440,ve=n(ve,1),Re=qe;continue}}else{if(22["$==="](Oe)){oe.te=n(ve,1),oe.$emit("tLABEL",oe.$tok(oe.ts,t(oe.te,2)),oe.ts,t(oe.te,1)),ve=t(ve,1),oe.cs=751,ve=n(ve,1),Re=qe;continue}if(204["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),oe.cs=766,Re=Se;continue}if(203["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(206["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(205["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=766,Re=Se;continue}if(21["$==="](Oe)){ve=t(ve=t(oe.te,1),1),oe.cs=766,Re=Se;continue}if(212["$==="](Oe)){oe.te=n(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=468,ve=n(ve,1),Re=qe;continue}if(211["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),oe.cs=766,Re=Se;continue}if(210["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(222["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit("tCONSTANT"),oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(213["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit("tIDENTIFIER"),oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(218["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=468,ve=n(ve,1),Re=qe;continue}if(216["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(221["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=766,Re=Se;continue}if(245["$==="](Oe)){oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(228["$==="](Oe)){oe.te=n(ve,1),oe.$tok(ze,n(ze,1))["$=="]("/".$freeze())&&oe.$diagnostic("warning","ambiguous_literal",s,oe.$range(ze,n(ze,1))),ve=t(ze,1),oe.cs=537,Re=Se;continue}if(234["$==="](Oe)){oe.te=n(ve,1),ve=t(ve=t(ve,1),1),oe.cs=537,Re=Se;continue}if(24["$==="](Oe)){oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=537,Re=Se;continue}if(236["$==="](Oe)){oe.te=n(ve,1),ve=t(ze,1),oe.cs=766,Re=Se;continue}if(39["$==="](Oe)){oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(223["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),oe.cs=537,Re=Se;continue}if(224["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(235["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=537,Re=Se;continue}if(231["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$diagnostic("warning","ambiguous_prefix",l(["prefix"],{prefix:oe.$tok(ze,oe.te)}),oe.$range(ze,oe.te)),ve=t(ze,1),oe.cs=537,Re=Se;continue}if(233["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=537,Re=Se;continue}if(227["$==="](Oe)){oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(226["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(244["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=537,Re=Se;continue}if(25["$==="](Oe))ve=t(oe.te,1);else{if(41["$==="](Oe)){ve=t(ve=t(oe.te,1),1),oe.cs=537,Re=Se;continue}if(23["$==="](Oe)){if(Oe=oe.act,67["$==="](Oe)){ve=t(oe.te,1),oe.$tok(ze,n(ze,1))["$=="]("/".$freeze())&&oe.$diagnostic("warning","ambiguous_literal",s,oe.$range(ze,n(ze,1))),ve=t(ze,1),oe.cs=537,Re=Se;continue}if(68["$==="](Oe)){ve=t(oe.te,1),oe.$diagnostic("warning","ambiguous_prefix",l(["prefix"],{prefix:oe.$tok(ze,oe.te)}),oe.$range(ze,oe.te)),ve=t(ze,1),oe.cs=537,Re=Se;continue}if(73["$==="](Oe)){ve=t(oe.te,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}ve=t(oe.te,1)}else{if(43["$==="](Oe)){oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=468,Re=Se;continue}if(249["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(250["$==="](Oe)){oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=468,Re=Se;continue}if(44["$==="](Oe)){ve=t(oe.te,1),ve=t(oe.ts,1),oe.cs=468,Re=Se;continue}if(42["$==="](Oe)){if(Oe=oe.act,80["$==="](Oe)){ve=t(oe.te,1),u(oe.cond["$active?"]())?oe.$emit("kDO_COND","do".$freeze(),t(oe.te,2),oe.te):oe.$emit("kDO","do".$freeze(),t(oe.te,2),oe.te),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(81["$==="](Oe)){ve=t(oe.te,1),ve=t(oe.ts,1),oe.cs=468,Re=Se;continue}}else{if(260["$==="](Oe)){oe.te=n(ve,1),oe.$emit_do(!0),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(253["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),oe.cs=766,Re=Se;continue}if(254["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(255["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(258["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=766,Re=Se;continue}if(264["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),oe.cs=537,Re=Se;continue}if(263["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(272["$==="](Oe)){oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=537,Re=Se;continue}if(266["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(270["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=537,Re=Se;continue}if(265["$==="](Oe)){if(Oe=oe.act,88["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(89["$==="](Oe)){ve=t(oe.te,1),ve=t(oe.ts,1),oe.cs=537,Re=Se;continue}}else if(300["$==="](Oe)){if(oe.te=n(ve,1),ve=t(ve,1),u(oe.$tok()["$start_with?"]("-".$freeze()))){oe.$emit("tUMINUS_NUM","-".$freeze(),oe.ts,n(oe.ts,1)),oe.cs=766,ve=n(ve,1),Re=qe;continue}}else{if(301["$==="](Oe)){oe.te=n(ve,1),Fe=Ue=oe.$tok()["$[]"](0).$chr(),ve=t(ve,1),oe.cs=oe.$push_literal(Fe,Ue,oe.ts),Re=Se;continue}if(295["$==="](Oe)){oe.te=n(ve,1),Fe=(o=[oe.source_buffer.$slice(oe.ts).$chr(),oe.$tok()["$[]"](-1).$chr()])[0],Ue=o[1],oe.cs=oe.$push_literal(Fe,Ue,oe.ts),Re=Se;continue}if(51["$==="](Oe)){oe.te=n(ve,1),Fe=(o=[oe.$tok()["$[]"](d(0,-2,!1)),oe.$tok()["$[]"](-1).$chr()])[0],Ue=o[1],oe.cs=oe.$push_literal(Fe,Ue,oe.ts),Re=Se;continue}if(302["$==="](Oe)){oe.te=n(ve,1),Fe=(o=[oe.$tok(),oe.$tok()["$[]"](-1).$chr()])[0],Ue=o[1],oe.cs=oe.$push_literal(Fe,Ue,oe.ts),Re=Se;continue}if(54["$==="](Oe)){oe.te=n(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1)),oe.ts),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(316["$==="](Oe)){oe.te=n(ve,1),Ye=l([" ","\r","\n","\t","\x0B","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\x0B":"\\v","\f":"\\f"})["$[]"](oe.source_buffer.$slice(n(oe.ts,1))),oe.$diagnostic("warning","invalid_escape_use",l(["escape"],{escape:Ye}),oe.$range()),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(315["$==="](Oe))oe.te=n(ve,1),oe.$diagnostic("fatal","incomplete_escape",s,oe.$range(oe.ts,n(oe.ts,1)));else{if(303["$==="](Oe)){oe.te=n(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION_BEGIN")),ve=n(ve,1),Re=qe;continue}if(48["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),u(oe["$version?"](18))?(Xe=oe.$tok(oe.ts,t(oe.te,2)),oe.$emit(u(oe.source_buffer.$slice(oe.ts)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",Xe,oe.ts,t(oe.te,2)),ve=t(ve,1),u(u(o=oe.static_env["$nil?"]()["$!"]())?oe.static_env["$declared?"](Xe):o)?oe.cs=766:oe.cs=oe.$arg_or_cmdarg()):(oe.$emit("tLABEL",oe.$tok(oe.ts,t(oe.te,2)),oe.ts,t(oe.te,1)),oe.cs=751),ve=n(ve,1),Re=qe;continue}if(289["$==="](Oe)){oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=165,Re=Se;continue}if(52["$==="](Oe)){oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(275["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(299["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit("tSTAR","*".$freeze()),ve=n(ve,1),Re=qe;continue}if(296["$==="](Oe)){oe.te=ve,ve=t(ve,1),Fe=(o=[oe.$tok()["$[]"](d(0,-2,!1)),oe.$tok()["$[]"](-1).$chr()])[0],Ue=o[1],oe.cs=oe.$push_literal(Fe,Ue,oe.ts),Re=Se;continue}if(294["$==="](Oe))oe.te=ve,ve=t(ve,1),oe.$diagnostic("fatal","string_eof",s,oe.$range(oe.ts,n(oe.ts,1)));else{if(304["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1)),oe.ts),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(314["$==="](Oe))oe.te=ve,ve=t(ve,1),oe.$diagnostic("fatal","incomplete_escape",s,oe.$range(oe.ts,n(oe.ts,1)));else{if(320["$==="](Oe)){oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(297["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION_BEGIN")),ve=n(ve,1),Re=qe;continue}if(342["$==="](Oe)){if(oe.te=ve,ve=t(ve,1),oe.$emit("tIDENTIFIER"),u(u(o=oe.static_env["$nil?"]()["$!"]())?oe.static_env["$declared?"](oe.$tok()):o)){oe.cs=440,ve=n(ve,1),Re=qe;continue}oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(286["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(288["$==="](Oe)){oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=165,Re=Se;continue}if(291["$==="](Oe)){oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(50["$==="](Oe))ve=t(oe.te,1),oe.$diagnostic("fatal","string_eof",s,oe.$range(oe.ts,n(oe.ts,1)));else{if(57["$==="](Oe)){ve=t(oe.te,1),Ke=u(o=oe.escape)?o:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((o=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(49["$==="](Oe))ve=t(oe.te,1);else{if(53["$==="](Oe)){ve=t(oe.te,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(47["$==="](Oe)){if(Oe=oe.act,111["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION_BEGIN")),ve=n(ve,1),Re=qe;continue}if(112["$==="](Oe)){ve=t(oe.te,1),oe.$emit("kRESCUE","rescue".$freeze(),oe.ts,ze),ve=t(ze,1),oe.cs=513,ve=n(ve,1),Re=qe;continue}if(113["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS_BEGIN")),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(115["$==="](Oe)){ve=t(oe.te,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(116["$==="](Oe)){if(ve=t(oe.te,1),oe.$emit("tIDENTIFIER"),u(u(_=oe.static_env["$nil?"]()["$!"]())?oe.static_env["$declared?"](oe.$tok()):_)){oe.cs=440,ve=n(ve,1),Re=qe;continue}oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(119["$==="](Oe)){ve=t(oe.te,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}}else{if(350["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),oe.cs=537,Re=Se;continue}if(351["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(352["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(356["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=537,Re=Se;continue}if(60["$==="](Oe)){oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(360["$==="](Oe)){oe.te=n(ve,1),oe.cs=oe.$push_literal(oe.$tok(),oe.$tok(),oe.ts),Re=Se;continue}if(359["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),oe.cs=537,Re=Se;continue}if(358["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(362["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(361["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=537,Re=Se;continue}if(59["$==="](Oe)){ve=t(ve=t(oe.te,1),1),oe.cs=537,Re=Se;continue}if(392["$==="](Oe)){oe.te=n(ve,1),oe.$emit("tLAMBDA","->".$freeze(),oe.ts,n(oe.ts,2)),oe.lambda_stack.$push(oe.paren_nest),oe.cs=440,ve=n(ve,1),Re=qe;continue}if(74["$==="](Oe)){oe.te=n(ve,1),oe.$emit("kCLASS","class".$freeze(),oe.ts,n(oe.ts,5)),oe.$emit("tLSHFT","<<".$freeze(),t(oe.te,2),oe.te),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(370["$==="](Oe)){oe.te=n(ve,1),Fe=(_=[oe.$tok(),oe.$tok()["$[]"](-1).$chr()])[0],Ue=_[1],oe.cs=oe.$push_literal(Fe,Ue,oe.ts,s,!1,!1,!0),Re=Se;continue}if(62["$==="](Oe)){oe.te=n(ve,1),ve=t(oe.ts,1),Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(389["$==="](Oe)){oe.te=n(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=447,ve=n(ve,1),Re=qe;continue}if(383["$==="](Oe)){oe.te=n(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(376["$==="](Oe)){oe.te=n(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cond.$lexpop(),oe.cmdarg.$lexpop(),u(e.const_get_relative(K,"RBRACE_OR_RBRACK")["$include?"](oe.$tok()))&&(oe.cs=505),ve=n(ve,1),Re=qe;continue}if(388["$==="](Oe)){oe.te=n(ve,1),oe.$emit("tOP_ASGN",oe.$tok(oe.ts,t(oe.te,1))),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(374["$==="](Oe)){oe.te=n(ve,1),oe.$emit("tEH","?".$freeze()),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(371["$==="](Oe)){oe.te=n(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(373["$==="](Oe)){oe.te=n(ve,1),oe.$emit("tSEMI",";".$freeze()),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(438["$==="](Oe))oe.te=n(ve,1),oe.$diagnostic("error","bare_backslash",s,oe.$range(oe.ts,n(oe.ts,1))),ve=t(ve,1);else if(369["$==="](Oe))oe.te=n(ve,1),oe.$diagnostic("fatal","unexpected",l(["character"],{character:oe.$tok().$inspect()["$[]"](d(1,-2,!1))}));else{if(368["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(448["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=327,ve=n(ve,1),Re=qe;continue}if(446["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit("kCLASS","class".$freeze(),oe.ts,n(oe.ts,5)),oe.$emit("tLSHFT","<<".$freeze(),t(oe.te,2),oe.te),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(445["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(395["$==="](Oe))oe.te=ve,ve=t(ve,1),oe.$diagnostic("error","no_dot_digit_literal");else{if(435["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit("tCONSTANT"),oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(387["$==="](Oe)){oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),Be=[oe.top,oe.cs],c(oe.stack,"[]=",e.to_a(Be)),Be[t(Be.length,1)],oe.top=n(oe.top,1),oe.cs=322,Re=Se;continue}if(393["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=447,ve=n(ve,1),Re=qe;continue}if(440["$==="](Oe)){if(oe.te=ve,ve=t(ve,1),oe.$emit("tIDENTIFIER"),u(u(_=oe.static_env["$nil?"]()["$!"]())?oe.static_env["$declared?"](oe.$tok()):_)){oe.cs=440,ve=n(ve,1),Re=qe;continue}oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(382["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(394["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(380["$==="](Oe))oe.te=ve,ve=t(ve,1);else if(386["$==="](Oe))oe.te=ve, -ve=t(ve,1),oe.$diagnostic("fatal","unexpected",l(["character"],{character:oe.$tok().$inspect()["$[]"](d(1,-2,!1))}));else if(63["$==="](Oe))ve=t(oe.te,1),oe.$diagnostic("error","no_dot_digit_literal");else if(61["$==="](Oe))ve=t(oe.te,1),oe.$diagnostic("fatal","unexpected",l(["character"],{character:oe.$tok().$inspect()["$[]"](d(1,-2,!1))}));else if(64["$==="](Oe)){if(Oe=oe.act,132["$==="](Oe)){ve=t(oe.te,1),oe.lambda_stack.$last()["$=="](oe.paren_nest)?(oe.lambda_stack.$pop(),oe.$tok()["$=="]("{".$freeze())?oe.$emit("tLAMBEG","{".$freeze()):oe.$emit("kDO_LAMBDA","do".$freeze())):oe.$tok()["$=="]("{".$freeze())?oe.$emit("tLCURLY","{".$freeze()):oe.$emit_do(),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(133["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=327,ve=n(ve,1),Re=qe;continue}if(134["$==="](Oe)){ve=t(oe.te,1),oe.$emit("kCLASS","class".$freeze(),oe.ts,n(oe.ts,5)),oe.$emit("tLSHFT","<<".$freeze(),t(oe.te,2),oe.te),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(135["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(136["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(137["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=513,ve=n(ve,1),Re=qe;continue}if(138["$==="](Oe)){if(ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),u(u(_=oe["$version?"](18))?oe.$tok()["$=="]("not".$freeze()):_)){oe.cs=537,ve=n(ve,1),Re=qe;continue}oe.cs=468,ve=n(ve,1),Re=qe;continue}if(139["$==="](Oe)){ve=t(oe.te,1),u(oe["$version?"](18))?(oe.$emit("tIDENTIFIER"),u(u(_=oe.static_env["$nil?"]()["$!"]())?oe.static_env["$declared?"](oe.$tok()):_)||(oe.cs=oe.$arg_or_cmdarg())):oe.$emit("k__ENCODING__","__ENCODING__".$freeze()),ve=n(ve,1),Re=qe;continue}if(140["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),ve=n(ve,1),Re=qe;continue}if(141["$==="](Oe)){ve=t(oe.te,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(_=u(f=Ve["$empty?"]())?oe.num_base["$=="](8):f)?oe["$version?"](18):_)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((_=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(143["$==="](Oe)){if(ve=t(oe.te,1),!u(oe["$version?"](18,19,20))){oe.$emit("tINTEGER",oe.$tok(oe.ts,t(oe.te,1)).$to_i(),oe.ts,t(oe.te,1)),ve=n(ve=t(ve,1),1),Re=qe;continue}oe.$diagnostic("error","trailing_in_number",l(["character"],{character:oe.$tok(t(oe.te,1),oe.te)}),oe.$range(t(oe.te,1),oe.te))}else if(144["$==="](Oe)){if(ve=t(oe.te,1),!u(oe["$version?"](18,19,20))){oe.$emit("tFLOAT",oe.$tok(oe.ts,t(oe.te,1)).$to_f(),oe.ts,t(oe.te,1)),ve=n(ve=t(ve,1),1),Re=qe;continue}oe.$diagnostic("error","trailing_in_number",l(["character"],{character:oe.$tok(t(oe.te,1),oe.te)}),oe.$range(t(oe.te,1),oe.te))}else{if(145["$==="](Oe)){ve=t(oe.te,1),Ve=oe.$tok(oe.ts,oe.num_suffix_s),u(oe["$version?"](18,19,20))?(oe.$emit("tFLOAT",oe.$Float(Ve),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve),ve=n(ve,1),Re=qe;continue}if(147["$==="](Oe)){ve=t(oe.te,1),oe.$emit("tCONSTANT"),oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(151["$==="](Oe)){if(ve=t(oe.te,1),oe.$emit("tIDENTIFIER"),u(u(_=oe.static_env["$nil?"]()["$!"]())?oe.static_env["$declared?"](oe.$tok()):_)){oe.cs=440,ve=n(ve,1),Re=qe;continue}oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(152["$==="](Oe)){ve=t(oe.te,1),ze["$=="](oe.te)?oe.$emit("tFID"):(oe.$emit("tIDENTIFIER",oe.$tok(oe.ts,ze),oe.ts,ze),ve=t(ze,1)),oe.cs=468,ve=n(ve,1),Re=qe;continue}}}else{if(78["$==="](Oe)){oe.te=n(ve,1),ve=t(ze,1),oe.cs=766,Re=Se;continue}if(453["$==="](Oe)){oe.te=n(ve,1),oe.$emit("tNL",s,oe.newline_s,n(oe.newline_s,1)),ve=t(ve,1),oe.cs=165,ve=n(ve,1),Re=qe;continue}if(454["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit("tNL",s,oe.newline_s,n(oe.newline_s,1)),ve=t(ve,1),oe.cs=165,ve=n(ve,1),Re=qe;continue}if(75["$==="](Oe)){ve=t(oe.te,1),oe.$emit("tNL",s,oe.newline_s,n(oe.newline_s,1)),ve=t(ve,1),oe.cs=165,ve=n(ve,1),Re=qe;continue}if(457["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.$emit_comment(oe.eq_begin_s,oe.te),oe.cs=165,Re=Se;continue}if(456["$==="](Oe))oe.te=ve,ve=t(ve,1),oe.$diagnostic("fatal","embedded_document",s,oe.$range(oe.eq_begin_s,n(oe.eq_begin_s,"=begin".$length())));else{if(89["$==="](Oe)){oe.te=n(ve,1),oe.eq_begin_s=oe.ts,oe.cs=942,Re=Se;continue}if(2["$==="](Oe))oe.te=n(ve,1),ve=t(ye,3);else{if(81["$==="](Oe)){oe.te=n(ve,1),ve=t(ve,1),oe.cs=758,Re=Se;continue}if(82["$==="](Oe)){oe.te=n(ve,1),ve=n(ve=t(ve,1),1),Re=qe;continue}if(83["$==="](Oe))oe.te=ve,ve=t(ve,1);else{if(88["$==="](Oe)){oe.te=ve,ve=t(ve,1),oe.eq_begin_s=oe.ts,oe.cs=942,Re=Se;continue}if(87["$==="](Oe)){oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=758,Re=Se;continue}if(1["$==="](Oe)){ve=t(ve=t(oe.te,1),1),oe.cs=758,Re=Se;continue}if(73["$==="](Oe))oe.newline_s=ve,oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve);else if(93["$==="](Oe)){if(oe.newline_s=ve,oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(_=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():_)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(121["$==="](Oe)){if(oe.newline_s=ve,oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(_=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():_)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(147["$==="](Oe)){if(oe.newline_s=ve,oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(_=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():_)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(153["$==="](Oe)){if(oe.newline_s=ve,oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(_=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():_)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(159["$==="](Oe)){if(oe.newline_s=ve,oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(_=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():_)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(165["$==="](Oe)){if(oe.newline_s=ve,oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(_=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():_)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(168["$==="](Oe)){if(oe.newline_s=ve,oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(_=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():_)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else if(175["$==="](Oe)){if(oe.newline_s=ve,oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(_=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():_)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string())}else{if(246["$==="](Oe)){oe.newline_s=ve,oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(237["$==="](Oe)){oe.newline_s=ve,oe.te=n(ve,1),ve=t(ze,1),oe.cs=766,Re=Se;continue}if(229["$==="](Oe)){oe.newline_s=ve,oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(317["$==="](Oe)){oe.newline_s=ve,oe.te=n(ve,1),Ye=l([" ","\r","\n","\t","\x0B","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\x0B":"\\v","\f":"\\f"})["$[]"](oe.source_buffer.$slice(n(oe.ts,1))),oe.$diagnostic("warning","invalid_escape_use",l(["escape"],{escape:Ye}),oe.$range()),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(290["$==="](Oe)){oe.newline_s=ve,oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=165,Re=Se;continue}if(458["$==="](Oe)){oe.newline_s=ve,oe.te=n(ve,1),oe.$emit_comment(oe.eq_begin_s,oe.te),oe.cs=165,Re=Se;continue}if(455["$==="](Oe))oe.newline_s=ve,oe.te=n(ve,1);else{if(90["$==="](Oe)){oe.newline_s=ve,oe.te=n(ve,1),oe.eq_begin_s=oe.ts,oe.cs=942,Re=Se;continue}if(3["$==="](Oe))oe.newline_s=ve,oe.te=n(ve,1),ve=t(ye,3);else{if(412["$==="](Oe)){oe.num_xfrm=c(oe,"lambda",[],((g=function(e){var t=g.$$s||this;return null==e&&(e=s),t.$emit("tRATIONAL",t.$Rational(e))}).$$s=oe,g.$$arity=1,g)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(_=u(f=Ve["$empty?"]())?oe.num_base["$=="](8):f)?oe["$version?"](18):_)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((_=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(411["$==="](Oe)){oe.num_xfrm=c(oe,"lambda",[],((h=function(e){var t=h.$$s||this;return null==e&&(e=s),t.$emit("tIMAGINARY",t.$Complex(0,e))}).$$s=oe,h.$$arity=1,h)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(_=u(f=Ve["$empty?"]())?oe.num_base["$=="](8):f)?oe["$version?"](18):_)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((_=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(413["$==="](Oe)){oe.num_xfrm=c(oe,"lambda",[],((m=function(e){var t=m.$$s||this;return null==e&&(e=s),t.$emit("tIMAGINARY",t.$Complex(0,t.$Rational(e)))}).$$s=oe,m.$$arity=1,m)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(_=u(f=Ve["$empty?"]())?oe.num_base["$=="](8):f)?oe["$version?"](18):_)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((_=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(406["$==="](Oe)){oe.num_xfrm=c(oe,"lambda",[],((y=function(e){var t=y.$$s||this;return null==e&&(e=s),t.$emit("tIMAGINARY",t.$Complex(0,t.$Float(e)))}).$$s=oe,y.$$arity=1,y)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.ts,oe.num_suffix_s),u(oe["$version?"](18,19,20))?(oe.$emit("tFLOAT",oe.$Float(Ve),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve),ve=n(ve,1),Re=qe;continue}if(407["$==="](Oe)){oe.num_xfrm=c(oe,"lambda",[],((v=function(e){var t=v.$$s||this;return null==e&&(e=s),t.$emit("tRATIONAL",t.$Rational(e))}).$$s=oe,v.$$arity=1,v)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.ts,oe.num_suffix_s),u(oe["$version?"](18,19,20))?(oe.$emit("tFLOAT",oe.$Float(Ve),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve),ve=n(ve,1),Re=qe;continue}if(408["$==="](Oe)){oe.num_xfrm=c(oe,"lambda",[],((b=function(e){var t=b.$$s||this;return null==e&&(e=s),t.$emit("tIMAGINARY",t.$Complex(0,t.$Rational(e)))}).$$s=oe,b.$$arity=1,b)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.ts,oe.num_suffix_s),u(oe["$version?"](18,19,20))?(oe.$emit("tFLOAT",oe.$Float(Ve),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve),ve=n(ve,1),Re=qe;continue}if(116["$==="](Oe))oe.escape="",Je=oe.$tok(n(oe.escape_s,2),t(ve,1)),Ze=n(oe.escape_s,2),function(){var t=e.new_brk();try{c(Je.$split(/[ \t]/),"each",[],((k=function(r){var $=k.$$s||this,a=s;return null==$.escape&&($.escape=s),null==r&&(r=s),a=r.$to_i(16),u(i(a,1114112))&&($.$diagnostic("error","unicode_point_too_large",s,$.$range(Ze,n(Ze,r.$length()))),e.brk(s,t)),$.escape=n($.escape,a.$chr(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"UTF_8"))),Ze=n(Ze,n(r.$length(),1))}).$$s=oe,k.$$brk=t,k.$$arity=1,k))}catch(r){if(r===t)return r.$v;throw r}}(),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(_=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):_)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(_=oe.escape)?_:oe.$tok(),oe.ts,oe.te);else if(142["$==="](Oe))oe.escape="",Je=oe.$tok(n(oe.escape_s,2),t(ve,1)),Ze=n(oe.escape_s,2),function(){var t=e.new_brk();try{c(Je.$split(/[ \t]/),"each",[],((x=function(r){var $=x.$$s||this,a=s;return null==$.escape&&($.escape=s),null==r&&(r=s),a=r.$to_i(16),u(i(a,1114112))&&($.$diagnostic("error","unicode_point_too_large",s,$.$range(Ze,n(Ze,r.$length()))),e.brk(s,t)),$.escape=n($.escape,a.$chr(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"UTF_8"))),Ze=n(Ze,n(r.$length(),1))}).$$s=oe,x.$$brk=t,x.$$arity=1,x))}catch(r){if(r===t)return r.$v;throw r}}(),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(_=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):_)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(_=oe.escape)?_:oe.$tok(),oe.ts,oe.te);else{if(338["$==="](Oe)){oe.escape="",Je=oe.$tok(n(oe.escape_s,2),t(ve,1)),Ze=n(oe.escape_s,2),function(){var t=e.new_brk();try{c(Je.$split(/[ \t]/),"each",[],((E=function(r){var $=E.$$s||this,a=s;return null==$.escape&&($.escape=s),null==r&&(r=s),a=r.$to_i(16),u(i(a,1114112))&&($.$diagnostic("error","unicode_point_too_large",s,$.$range(Ze,n(Ze,r.$length()))),e.brk(s,t)),$.escape=n($.escape,a.$chr(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"UTF_8"))),Ze=n(Ze,n(r.$length(),1))}).$$s=oe,E.$$brk=t,E.$$arity=1,E))}catch(r){if(r===t)return r.$v;throw r}}(),oe.te=ve,ve=t(ve,1),Ke=u(_=oe.escape)?_:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((_=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(100["$==="](Oe))et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(f=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):f)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(f=oe.escape)?f:oe.$tok(),oe.ts,oe.te);else if(126["$==="](Oe))et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(f=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):f)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(f=oe.escape)?f:oe.$tok(),oe.ts,oe.te);else{if(322["$==="](Oe)){et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.te=ve,ve=t(ve,1),Ke=u(f=oe.escape)?f:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((f=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(103["$==="](Oe))oe.$diagnostic("fatal","invalid_escape"),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(w=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):w)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(w=oe.escape)?w:oe.$tok(),oe.ts,oe.te);else if(129["$==="](Oe))oe.$diagnostic("fatal","invalid_escape"),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(w=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):w)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(w=oe.escape)?w:oe.$tok(),oe.ts,oe.te);else{if(325["$==="](Oe)){oe.$diagnostic("fatal","invalid_escape"),oe.te=ve,ve=t(ve,1),Ke=u(w=oe.escape)?w:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((w=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(105["$==="](Oe))oe.escape="\x7f",oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(R=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):R)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(R=oe.escape)?R:oe.$tok(),oe.ts,oe.te);else if(131["$==="](Oe))oe.escape="\x7f",oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(R=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):R)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(R=oe.escape)?R:oe.$tok(),oe.ts,oe.te);else{if(327["$==="](Oe)){oe.escape="\x7f",oe.te=ve,ve=t(ve,1),Ke=u(R=oe.escape)?R:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((R=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(102["$==="](Oe))oe.escape=oe.$encode_escape(oe.$tok(oe.escape_s,ve).$to_i(8)["$%"](256)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(N=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):N)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(N=oe.escape)?N:oe.$tok(),oe.ts,oe.te);else if(128["$==="](Oe))oe.escape=oe.$encode_escape(oe.$tok(oe.escape_s,ve).$to_i(8)["$%"](256)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(N=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):N)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(N=oe.escape)?N:oe.$tok(),oe.ts,oe.te);else{if(324["$==="](Oe)){oe.escape=oe.$encode_escape(oe.$tok(oe.escape_s,ve).$to_i(8)["$%"](256)),oe.te=ve,ve=t(ve,1),Ke=u(N=oe.escape)?N:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((N=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(118["$==="](Oe))oe.escape=oe.$encode_escape(oe.$tok(n(oe.escape_s,1),ve).$to_i(16)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(A=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):A)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(A=oe.escape)?A:oe.$tok(),oe.ts,oe.te);else if(144["$==="](Oe))oe.escape=oe.$encode_escape(oe.$tok(n(oe.escape_s,1),ve).$to_i(16)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(A=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):A)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(A=oe.escape)?A:oe.$tok(),oe.ts,oe.te);else{if(340["$==="](Oe)){oe.escape=oe.$encode_escape(oe.$tok(n(oe.escape_s,1),ve).$to_i(16)),oe.te=ve,ve=t(ve,1),Ke=u(A=oe.escape)?A:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((A=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(113["$==="](Oe))oe.escape=oe.$tok(n(oe.escape_s,1),ve).$to_i(16).$chr(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"UTF_8")),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(S=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):S)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(S=oe.escape)?S:oe.$tok(),oe.ts,oe.te);else if(139["$==="](Oe))oe.escape=oe.$tok(n(oe.escape_s,1),ve).$to_i(16).$chr(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"UTF_8")),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(S=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):S)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(S=oe.escape)?S:oe.$tok(),oe.ts,oe.te);else{if(335["$==="](Oe)){oe.escape=oe.$tok(n(oe.escape_s,1),ve).$to_i(16).$chr(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"UTF_8")),oe.te=ve,ve=t(ve,1),Ke=u(S=oe.escape)?S:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((S=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(117["$==="](Oe))oe.$diagnostic("fatal","invalid_hex_escape",s,oe.$range(t(oe.escape_s,1),n(ve,2))),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(T=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):T)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(T=oe.escape)?T:oe.$tok(),oe.ts,oe.te);else if(143["$==="](Oe))oe.$diagnostic("fatal","invalid_hex_escape",s,oe.$range(t(oe.escape_s,1),n(ve,2))),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(T=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):T)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(T=oe.escape)?T:oe.$tok(),oe.ts,oe.te);else{if(339["$==="](Oe)){oe.$diagnostic("fatal","invalid_hex_escape",s,oe.$range(t(oe.escape_s,1),n(ve,2))),oe.te=ve,ve=t(ve,1),Ke=u(T=oe.escape)?T:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((T=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(112["$==="](Oe))oe.$diagnostic("fatal","invalid_unicode_escape",s,oe.$range(t(oe.escape_s,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(q=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):q)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(q=oe.escape)?q:oe.$tok(),oe.ts,oe.te);else if(138["$==="](Oe))oe.$diagnostic("fatal","invalid_unicode_escape",s,oe.$range(t(oe.escape_s,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(q=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):q)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(q=oe.escape)?q:oe.$tok(),oe.ts,oe.te);else{if(334["$==="](Oe)){oe.$diagnostic("fatal","invalid_unicode_escape",s,oe.$range(t(oe.escape_s,1),ve)),oe.te=ve,ve=t(ve,1),Ke=u(q=oe.escape)?q:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((q=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(115["$==="](Oe))oe.$diagnostic("fatal","unterminated_unicode",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(), -u(Pe["$munge_escape?"](je))?u(u(O=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):O)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(O=oe.escape)?O:oe.$tok(),oe.ts,oe.te);else if(141["$==="](Oe))oe.$diagnostic("fatal","unterminated_unicode",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(O=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):O)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(O=oe.escape)?O:oe.$tok(),oe.ts,oe.te);else{if(337["$==="](Oe)){oe.$diagnostic("fatal","unterminated_unicode",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Ke=u(O=oe.escape)?O:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((O=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(101["$==="](Oe))oe.$diagnostic("fatal","escape_eof",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(I=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):I)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(I=oe.escape)?I:oe.$tok(),oe.ts,oe.te);else if(127["$==="](Oe))oe.$diagnostic("fatal","escape_eof",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(I=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):I)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(I=oe.escape)?I:oe.$tok(),oe.ts,oe.te);else{if(323["$==="](Oe)){oe.$diagnostic("fatal","escape_eof",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Ke=u(I=oe.escape)?I:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((I=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(150["$==="](Oe))oe.escape_s=ve,oe.escape=s,oe.te=n(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(z=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):z)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(z=oe.escape)?z:oe.$tok(),oe.ts,oe.te);else if(155["$==="](Oe))oe.escape_s=ve,oe.escape=s,oe.te=n(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(z=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):z)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(z=oe.escape)?z:oe.$tok(),oe.ts,oe.te);else if(66["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.newline_s=ve;else if(30["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),ze=ve;else if(32["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),ze=ve;else if(34["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),ze=ve;else if(190["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else if(209["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else if(217["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else{if(33["$==="](Oe)){u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=n(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(248["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else{if(240["$==="](Oe)){u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=766,Re=Se;continue}if(259["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else if(271["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else{if(267["$==="](Oe)){u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve=t(ve,1),1),oe.cs=766,Re=Se;continue}if(287["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else if(357["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else{if(353["$==="](Oe)){if(u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1),u(oe.in_kwarg)){ve=t(ve,1),oe.cs=766,Re=Se;continue}oe.cs=165,Re=Se;continue}if(366["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else{if(363["$==="](Oe)){u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1),oe.cs=165,Re=Se;continue}if(439["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else{if(381["$==="](Oe)){u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1),oe.cs=939,Re=Se;continue}if(84["$==="](Oe))u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.te=ve,ve=t(ve,1);else{if(239["$==="](Oe)){if(oe.cond.$push(!1),oe.cmdarg.$push(!1),Pe=oe.$literal(),u(Pe)&&Pe.$start_interp_brace(),oe.te=ve,ve=t(ve,1),oe.lambda_stack.$last()["$=="](oe.paren_nest)){ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}oe.$emit("tLCURLY","{".$freeze(),t(oe.te,1),oe.te),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(261["$==="](Oe))oe.cond.$push(!1),oe.cmdarg.$push(!1),Pe=oe.$literal(),u(Pe)&&Pe.$start_interp_brace(),oe.te=ve,ve=t(ve,1),oe.lambda_stack.$last()["$=="](oe.paren_nest)?(oe.lambda_stack.$pop(),oe.$emit("tLAMBEG","{".$freeze())):oe.$emit("tLBRACE_ARG","{".$freeze()),oe.cs=758;else{if(349["$==="](Oe)){oe.cond.$push(!1),oe.cmdarg.$push(!1),Pe=oe.$literal(),u(Pe)&&Pe.$start_interp_brace(),oe.te=ve,ve=t(ve,1),oe.lambda_stack.$last()["$=="](oe.paren_nest)?(oe.lambda_stack.$pop(),oe.$emit("tLAMBEG","{".$freeze())):oe.$emit("tLBRACE","{".$freeze()),ve=n(ve,1),Re=qe;continue}if(451["$==="](Oe)){oe.cond.$push(!1),oe.cmdarg.$push(!1),Pe=oe.$literal(),u(Pe)&&Pe.$start_interp_brace(),oe.te=ve,ve=t(ve,1),oe.lambda_stack.$last()["$=="](oe.paren_nest)?(oe.lambda_stack.$pop(),oe.$tok()["$=="]("{".$freeze())?oe.$emit("tLAMBEG","{".$freeze()):oe.$emit("kDO_LAMBDA","do".$freeze())):oe.$tok()["$=="]("{".$freeze())?oe.$emit("tLCURLY","{".$freeze()):oe.$emit_do(),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(452["$==="](Oe)){if(Pe=oe.$literal(),u(Pe)&&u(Pe.$end_interp_brace_and_try_closing())){u(oe["$version?"](18,19))?oe.$emit("tRCURLY","}".$freeze(),t(ve,1),ve):oe.$emit("tSTRING_DEND","}".$freeze(),t(ve,1),ve),u(Pe.$saved_herebody_s())&&(oe.herebody_s=Pe.$saved_herebody_s()),ve=t(ve,1),oe.cs=oe.$stack_pop(),ve=n(ve,1),Re=qe;continue}oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cond.$lexpop(),oe.cmdarg.$lexpop(),u(e.const_get_relative(K,"RBRACE_OR_RBRACK")["$include?"](oe.$tok()))&&(oe.cs=505),ve=n(ve,1),Re=qe;continue}if(68["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve);else if(71["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.newline_s=ve;else if(193["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(208["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(220["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else{if(242["$==="](Oe)){oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1),oe.cs=766,Re=Se;continue}if(257["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(269["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(293["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(355["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(365["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(385["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(86["$==="](Oe))oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else{if(214["$==="](Oe)){ze=ve,oe.te=ve,ve=t(ve,1),oe.$emit("tFID",oe.$tok(oe.ts,ze),oe.ts,ze),oe.cs=oe.$arg_or_cmdarg(),ve=n(ve=t(ze,1),1),Re=qe;continue}if(305["$==="](Oe)){ze=ve,oe.te=ve,ve=t(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1),ze),oe.ts,ze),ve=t(ze,1),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(278["$==="](Oe)){ze=ve,oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(378["$==="](Oe)){if(ze=ve,Oe=oe.act,132["$==="](Oe)){ve=t(oe.te,1),oe.lambda_stack.$last()["$=="](oe.paren_nest)?(oe.lambda_stack.$pop(),oe.$tok()["$=="]("{".$freeze())?oe.$emit("tLAMBEG","{".$freeze()):oe.$emit("kDO_LAMBDA","do".$freeze())):oe.$tok()["$=="]("{".$freeze())?oe.$emit("tLCURLY","{".$freeze()):oe.$emit_do(),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(133["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=327,ve=n(ve,1),Re=qe;continue}if(134["$==="](Oe)){ve=t(oe.te,1),oe.$emit("kCLASS","class".$freeze(),oe.ts,n(oe.ts,5)),oe.$emit("tLSHFT","<<".$freeze(),t(oe.te,2),oe.te),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(135["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(136["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(137["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),oe.cs=513,ve=n(ve,1),Re=qe;continue}if(138["$==="](Oe)){if(ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),u(u(z=oe["$version?"](18))?oe.$tok()["$=="]("not".$freeze()):z)){oe.cs=537,ve=n(ve,1),Re=qe;continue}oe.cs=468,ve=n(ve,1),Re=qe;continue}if(139["$==="](Oe)){ve=t(oe.te,1),u(oe["$version?"](18))?(oe.$emit("tIDENTIFIER"),u(u(z=oe.static_env["$nil?"]()["$!"]())?oe.static_env["$declared?"](oe.$tok()):z)||(oe.cs=oe.$arg_or_cmdarg())):oe.$emit("k__ENCODING__","__ENCODING__".$freeze()),ve=n(ve,1),Re=qe;continue}if(140["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS")),ve=n(ve,1),Re=qe;continue}if(141["$==="](Oe)){ve=t(oe.te,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(z=u(C=Ve["$empty?"]())?oe.num_base["$=="](8):C)?oe["$version?"](18):z)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((z=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(143["$==="](Oe)){if(ve=t(oe.te,1),!u(oe["$version?"](18,19,20))){oe.$emit("tINTEGER",oe.$tok(oe.ts,t(oe.te,1)).$to_i(),oe.ts,t(oe.te,1)),ve=n(ve=t(ve,1),1),Re=qe;continue}oe.$diagnostic("error","trailing_in_number",l(["character"],{character:oe.$tok(t(oe.te,1),oe.te)}),oe.$range(t(oe.te,1),oe.te))}else if(144["$==="](Oe)){if(ve=t(oe.te,1),!u(oe["$version?"](18,19,20))){oe.$emit("tFLOAT",oe.$tok(oe.ts,t(oe.te,1)).$to_f(),oe.ts,t(oe.te,1)),ve=n(ve=t(ve,1),1),Re=qe;continue}oe.$diagnostic("error","trailing_in_number",l(["character"],{character:oe.$tok(t(oe.te,1),oe.te)}),oe.$range(t(oe.te,1),oe.te))}else{if(145["$==="](Oe)){ve=t(oe.te,1),Ve=oe.$tok(oe.ts,oe.num_suffix_s),u(oe["$version?"](18,19,20))?(oe.$emit("tFLOAT",oe.$Float(Ve),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve),ve=n(ve,1),Re=qe;continue}if(147["$==="](Oe)){ve=t(oe.te,1),oe.$emit("tCONSTANT"),oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(151["$==="](Oe)){if(ve=t(oe.te,1),oe.$emit("tIDENTIFIER"),u(u(z=oe.static_env["$nil?"]()["$!"]())?oe.static_env["$declared?"](oe.$tok()):z)){oe.cs=440,ve=n(ve,1),Re=qe;continue}oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(152["$==="](Oe)){ve=t(oe.te,1),ze["$=="](oe.te)?oe.$emit("tFID"):(oe.$emit("tIDENTIFIER",oe.$tok(oe.ts,ze),oe.ts,ze),ve=t(ze,1)),oe.cs=468,ve=n(ve,1),Re=qe;continue}}}else{if(215["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),oe.$emit("tFID",oe.$tok(oe.ts,ze),oe.ts,ze),oe.cs=oe.$arg_or_cmdarg(),ve=n(ve=t(ze,1),1),Re=qe;continue}if(306["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1),ze),oe.ts,ze),ve=t(ze,1),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(280["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(379["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),ze["$=="](oe.te)?oe.$emit("tFID"):(oe.$emit("tIDENTIFIER",oe.$tok(oe.ts,ze),oe.ts,ze),ve=t(ze,1)),oe.cs=468,ve=n(ve,1),Re=qe;continue}if(307["$==="](Oe)){ze=ve,oe.te=ve,ve=t(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1),ze),oe.ts,ze),ve=t(ze,1),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(281["$==="](Oe)){ze=ve,oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(308["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1),ze),oe.ts,ze),ve=t(ze,1),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(282["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(312["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1),ze),oe.ts,ze),ve=t(ze,1),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(285["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(311["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1),ze),oe.ts,ze),ve=t(ze,1),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(284["$==="](Oe)){if(ze=t(ve,2),Oe=oe.act,111["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION_BEGIN")),ve=n(ve,1),Re=qe;continue}if(112["$==="](Oe)){ve=t(oe.te,1),oe.$emit("kRESCUE","rescue".$freeze(),oe.ts,ze),ve=t(ze,1),oe.cs=513,ve=n(ve,1),Re=qe;continue}if(113["$==="](Oe)){ve=t(oe.te,1),oe.$emit_table(e.const_get_relative(K,"KEYWORDS_BEGIN")),oe.cs=758,ve=n(ve,1),Re=qe;continue}if(115["$==="](Oe)){ve=t(oe.te,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(116["$==="](Oe)){if(ve=t(oe.te,1),oe.$emit("tIDENTIFIER"),u(u(z=oe.static_env["$nil?"]()["$!"]())?oe.static_env["$declared?"](oe.$tok()):z)){oe.cs=440,ve=n(ve,1),Re=qe;continue}oe.cs=oe.$arg_or_cmdarg(),ve=n(ve,1),Re=qe;continue}if(119["$==="](Oe)){ve=t(oe.te,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}}else{if(309["$==="](Oe)){ze=t(ve,3),oe.te=ve,ve=t(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1),ze),oe.ts,ze),ve=t(ze,1),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(283["$==="](Oe)){ze=t(ve,3),oe.te=ve,ve=t(ve,1),ve=t(oe.ts,1),oe.cs=766,Re=Se;continue}if(310["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),oe.$emit("tSYMBOL",oe.$tok(n(oe.ts,1),ze),oe.ts,ze),ve=t(ze,1),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(434["$==="](Oe)){ze=t(ve,2),oe.te=ve,ve=t(ve,1),oe.$emit("tCONSTANT",oe.$tok(oe.ts,ze),oe.ts,ze),ve=n(ve=t(ze,1),1),Re=qe;continue}if(238["$==="](Oe)){oe.cond.$push(!1),oe.cmdarg.$push(!1),oe.te=ve,ve=t(ve,1),oe.$emit("tLBRACK","[".$freeze(),t(oe.te,1),oe.te),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(341["$==="](Oe)){oe.cond.$push(!1),oe.cmdarg.$push(!1),oe.te=ve,ve=t(ve,1),oe.$emit("tLBRACK","[".$freeze()),ve=n(ve,1),Re=qe;continue}if(437["$==="](Oe)){oe.cond.$push(!1),oe.cmdarg.$push(!1),oe.te=ve,ve=t(ve,1),oe.$emit("tLBRACK2","[".$freeze()),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(230["$==="](Oe)){if(oe.cond.$push(!1),oe.cmdarg.$push(!1),oe.paren_nest=n(oe.paren_nest,1),oe.te=ve,ve=t(ve,1),u(oe["$version?"](18))){oe.$emit("tLPAREN2","(".$freeze(),t(oe.te,1),oe.te),oe.cs=758,ve=n(ve,1),Re=qe;continue}oe.$emit("tLPAREN_ARG","(".$freeze(),t(oe.te,1),oe.te),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(243["$==="](Oe)){oe.cond.$push(!1),oe.cmdarg.$push(!1),oe.paren_nest=n(oe.paren_nest,1),oe.te=ve,ve=t(ve,1),oe.$emit("tLPAREN2","(".$freeze()),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(251["$==="](Oe)){if(oe.cond.$push(!1),oe.cmdarg.$push(!1),oe.paren_nest=n(oe.paren_nest,1),oe.te=ve,ve=t(ve,1),oe.$emit("tLPAREN_ARG","(".$freeze(),t(oe.te,1),oe.te),u(oe["$version?"](18))){oe.cs=758,ve=n(ve,1),Re=qe;continue}oe.cs=537,ve=n(ve,1),Re=qe;continue}if(298["$==="](Oe)){oe.cond.$push(!1),oe.cmdarg.$push(!1),oe.paren_nest=n(oe.paren_nest,1),oe.te=ve,ve=t(ve,1),oe.$emit("tLPAREN","(".$freeze()),ve=n(ve,1),Re=qe;continue}if(390["$==="](Oe)){oe.cond.$push(!1),oe.cmdarg.$push(!1),oe.paren_nest=n(oe.paren_nest,1),oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cs=537,ve=n(ve,1),Re=qe;continue}if(391["$==="](Oe)){oe.paren_nest=t(oe.paren_nest,1),oe.te=ve,ve=t(ve,1),oe.$emit_table(e.const_get_relative(K,"PUNCTUATION")),oe.cond.$lexpop(),oe.cmdarg.$lexpop(),u(e.const_get_relative(K,"RBRACE_OR_RBRACK")["$include?"](oe.$tok()))&&(oe.cs=505),ve=n(ve,1),Re=qe;continue}if(56["$==="](Oe))Ce=ve,oe.newline_s=ve;else if(313["$==="](Oe)){if(tt=ve,oe.te=ve,ve=t(ve,1),oe.$tok(oe.ts,Ce)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/),nt=u(z=((C=p["~"])===s?s:C["$[]"](1))["$empty?"]()["$!"]())?z:((C=p["~"])===s?s:C["$[]"](2))["$empty?"]()["$!"](),rt=((z=p["~"])===s?s:z["$[]"](2))["$empty?"]()["$!"](),Fe=u(((z=p["~"])===s?s:z["$[]"](3))["$empty?"]())?'<<"'.$freeze():n("<<".$freeze(),(z=p["~"])===s?s:z["$[]"](3)),Ue=(z=p["~"])===s?s:z["$[]"](4),u(u(z=rt)?oe["$version?"](18,19,20,21,22):z)){oe.$emit("tLSHFT","<<".$freeze(),oe.ts,n(oe.ts,2)),ve=n(oe.ts,1),oe.cs=537,ve=n(ve,1),Re=qe;continue}oe.cs=oe.$push_literal(Fe,Ue,oe.ts,Ce,nt,rt),oe.herebody_s=u(z=oe.herebody_s)?z:tt,ve=t(oe.herebody_s,1)}else{if(318["$==="](Oe)){oe.escape=s,oe.te=ve,ve=t(ve,1),Ke=u(z=oe.escape)?z:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((z=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(345["$==="](Oe)){ze=ve,oe.te=ve,ve=t(ve,1),oe.$emit("kRESCUE","rescue".$freeze(),oe.ts,ze),ve=t(ze,1),oe.cs=513,ve=n(ve,1),Re=qe;continue}if(425["$==="](Oe))oe.num_base=16,oe.num_digits_s=ve,oe.num_suffix_s=ve;else if(419["$==="](Oe))oe.num_base=10,oe.num_digits_s=ve,oe.num_suffix_s=ve;else if(422["$==="](Oe))oe.num_base=8,oe.num_digits_s=ve,oe.num_suffix_s=ve;else if(416["$==="](Oe))oe.num_base=2,oe.num_digits_s=ve,oe.num_suffix_s=ve;else if(431["$==="](Oe))oe.num_base=10,oe.num_digits_s=oe.ts,oe.num_suffix_s=ve;else if(400["$==="](Oe))oe.num_base=8,oe.num_digits_s=oe.ts,oe.num_suffix_s=ve;else if(432["$==="](Oe))oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((P=function(e){var t=P.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,P.$$arity=1,P));else{if(77["$==="](Oe)){ze=ve,oe.te=n(ve,1),ve=t(ze,1),oe.cs=766,Re=Se;continue}if(8["$==="](Oe))oe.te=n(ve,1),oe.newline_s=ve;else if(199["$==="](Oe))oe.te=n(ve,1),oe.act=39;else if(186["$==="](Oe))oe.te=n(ve,1),oe.act=40;else if(182["$==="](Oe))oe.te=n(ve,1),oe.act=41;else if(26["$==="](Oe))oe.te=n(ve,1),oe.act=67;else if(232["$==="](Oe))oe.te=n(ve,1),oe.act=68;else if(27["$==="](Oe))oe.te=n(ve,1),oe.act=73;else if(225["$==="](Oe))oe.te=n(ve,1),oe.act=74;else if(252["$==="](Oe))oe.te=n(ve,1),oe.act=80;else if(45["$==="](Oe))oe.te=n(ve,1),oe.act=81;else if(273["$==="](Oe))oe.te=n(ve,1),oe.act=88;else if(262["$==="](Oe))oe.te=n(ve,1),oe.act=89;else if(276["$==="](Oe))oe.te=n(ve,1),oe.act=111;else if(344["$==="](Oe))oe.te=n(ve,1),oe.act=112;else if(343["$==="](Oe))oe.te=n(ve,1),oe.act=113;else if(58["$==="](Oe))oe.te=n(ve,1),oe.act=115;else if(274["$==="](Oe))oe.te=n(ve,1),oe.act=116;else if(277["$==="](Oe))oe.te=n(ve,1),oe.act=119;else if(447["$==="](Oe))oe.te=n(ve,1),oe.act=132;else if(442["$==="](Oe))oe.te=n(ve,1),oe.act=133;else if(450["$==="](Oe))oe.te=n(ve,1),oe.act=135;else if(443["$==="](Oe))oe.te=n(ve,1),oe.act=136;else if(444["$==="](Oe))oe.te=n(ve,1),oe.act=137;else if(449["$==="](Oe))oe.te=n(ve,1),oe.act=138;else if(441["$==="](Oe))oe.te=n(ve,1),oe.act=139;else if(436["$==="](Oe))oe.te=n(ve,1),oe.act=140;else if(372["$==="](Oe))oe.te=n(ve,1),oe.act=141;else if(402["$==="](Oe))oe.te=n(ve,1),oe.act=144;else if(65["$==="](Oe))oe.te=n(ve,1),oe.act=145;else if(375["$==="](Oe))oe.te=n(ve,1),oe.act=147;else if(367["$==="](Oe))oe.te=n(ve,1),oe.act=151;else if(377["$==="](Oe))oe.te=n(ve,1),oe.act=152;else if(156["$==="](Oe)){if(oe.newline_s=ve,oe.te=n(ve,1),Pe=oe.$literal(),oe.te["$=="](ye)&&oe.$diagnostic("fatal","string_eof",s,oe.$range(Pe.$str_s(),n(Pe.$str_s(),1))),u(Pe["$heredoc?"]())){if(Ge=oe.$tok(oe.herebody_s,oe.ts).$gsub(/\r+$/,"".$freeze()),u(oe["$version?"](18,19,20))&&(Ge=Ge.$gsub(/\r.*$/,"".$freeze())),u(Pe.$nest_and_try_closing(Ge,oe.herebody_s,oe.ts))){oe.herebody_s=oe.te,ve=t(Pe.$heredoc_e(),1),oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}Pe.$infer_indent_level(Ge),oe.herebody_s=oe.te}else{if(u(Pe.$nest_and_try_closing(oe.$tok(),oe.ts,oe.te))){oe.cs=oe.$pop_literal(),ve=n(ve,1),Re=qe;continue}u(oe.herebody_s)&&(ve=t(oe.herebody_s,1),oe.herebody_s=s)}u(u(C=Pe["$words?"]())?oe["$eof_codepoint?"](oe.source_pts["$[]"](ve))["$!"]():C)?Pe.$extend_space(oe.ts,oe.te):(Pe.$extend_string(oe.$tok(),oe.ts,oe.te),Pe.$flush_string()),oe.escape_s=ve,oe.escape=s}else if(106["$==="](Oe))et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(C=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):C)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(C=oe.escape)?C:oe.$tok(),oe.ts,oe.te);else if(132["$==="](Oe))et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(C=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):C)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(C=oe.escape)?C:oe.$tok(),oe.ts,oe.te);else{if(328["$==="](Oe)){et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.te=ve,ve=t(ve,1),Ke=u(C=oe.escape)?C:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((C=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(111["$==="](Oe))et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(B=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):B)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(B=oe.escape)?B:oe.$tok(),oe.ts,oe.te);else if(137["$==="](Oe))et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(B=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):B)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(B=oe.escape)?B:oe.$tok(),oe.ts,oe.te);else{if(333["$==="](Oe)){et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Ke=u(B=oe.escape)?B:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((B=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(110["$==="](Oe))oe.escape=oe.source_buffer.$slice(t(ve,1)).$chr(),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(G=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):G)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(G=oe.escape)?G:oe.$tok(),oe.ts,oe.te);else if(136["$==="](Oe))oe.escape=oe.source_buffer.$slice(t(ve,1)).$chr(),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(G=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):G)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(G=oe.escape)?G:oe.$tok(),oe.ts,oe.te);else{if(332["$==="](Oe)){oe.escape=oe.source_buffer.$slice(t(ve,1)).$chr(),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Ke=u(G=oe.escape)?G:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((G=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(108["$==="](Oe))oe.escape="\x7f",oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(D=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):D)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(D=oe.escape)?D:oe.$tok(),oe.ts,oe.te);else if(134["$==="](Oe))oe.escape="\x7f",oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(D=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):D)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(D=oe.escape)?D:oe.$tok(),oe.ts,oe.te);else{if(330["$==="](Oe)){oe.escape="\x7f",oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Ke=u(D=oe.escape)?D:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((D=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(104["$==="](Oe))oe.escape=oe.source_buffer.$slice(t(ve,1)).$chr(),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(L=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):L)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(L=oe.escape)?L:oe.$tok(),oe.ts,oe.te);else if(130["$==="](Oe))oe.escape=oe.source_buffer.$slice(t(ve,1)).$chr(),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(L=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):L)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(L=oe.escape)?L:oe.$tok(),oe.ts,oe.te);else{if(326["$==="](Oe)){oe.escape=oe.source_buffer.$slice(t(ve,1)).$chr(),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.te=ve,ve=t(ve,1),Ke=u(L=oe.escape)?L:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((L=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(114["$==="](Oe))oe.$diagnostic("fatal","invalid_unicode_escape",s,oe.$range(t(oe.escape_s,1),ve)),oe.$diagnostic("fatal","unterminated_unicode",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(M=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):M)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(M=oe.escape)?M:oe.$tok(),oe.ts,oe.te);else if(140["$==="](Oe))oe.$diagnostic("fatal","invalid_unicode_escape",s,oe.$range(t(oe.escape_s,1),ve)),oe.$diagnostic("fatal","unterminated_unicode",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(M=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):M)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(M=oe.escape)?M:oe.$tok(),oe.ts,oe.te);else{if(336["$==="](Oe)){oe.$diagnostic("fatal","invalid_unicode_escape",s,oe.$range(t(oe.escape_s,1),ve)),oe.$diagnostic("fatal","unterminated_unicode",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Ke=u(M=oe.escape)?M:oe.$tok(n(oe.ts,1)), -u(oe["$version?"](18))?u((M=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(98["$==="](Oe))oe.escape_s=ve,oe.escape=s,oe.$diagnostic("fatal","escape_eof",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(j=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):j)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(j=oe.escape)?j:oe.$tok(),oe.ts,oe.te);else if(125["$==="](Oe))oe.escape_s=ve,oe.escape=s,oe.$diagnostic("fatal","escape_eof",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(j=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):j)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(j=oe.escape)?j:oe.$tok(),oe.ts,oe.te);else{if(321["$==="](Oe)){oe.escape_s=ve,oe.escape=s,oe.$diagnostic("fatal","escape_eof",s,oe.$range(t(ve,1),ve)),oe.te=ve,ve=t(ve,1),Ke=u(j=oe.escape)?j:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((j=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(69["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.newline_s=ve;else if(192["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(207["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(219["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else{if(241["$==="](Oe)){oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1),oe.cs=766,Re=Se;continue}if(256["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(268["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(292["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(354["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(364["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(384["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(85["$==="](Oe))oe.sharp_s=t(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.te=ve,ve=t(ve,1);else if(427["$==="](Oe))oe.num_base=10,oe.num_digits_s=oe.ts,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((H=function(e){var t=H.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,H.$$arity=1,H));else if(397["$==="](Oe))oe.num_base=8,oe.num_digits_s=oe.ts,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((F=function(e){var t=F.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,F.$$arity=1,F));else{if(409["$==="](Oe)){oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((U=function(e){var t=U.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,U.$$arity=1,U)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(Y=u(X=Ve["$empty?"]())?oe.num_base["$=="](8):X)?oe["$version?"](18):Y)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((Y=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(404["$==="](Oe)){oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((V=function(e){var t=V.$$s||this;return null==e&&(e=s),t.$emit("tFLOAT",t.$Float(e))}).$$s=oe,V.$$arity=1,V)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.ts,oe.num_suffix_s),u(oe["$version?"](18,19,20))?(oe.$emit("tFLOAT",oe.$Float(Ve),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve),ve=n(ve,1),Re=qe;continue}if(401["$==="](Oe)){oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((W=function(e){var t=W.$$s||this;return null==e&&(e=s),t.$emit("tFLOAT",t.$Float(e))}).$$s=oe,W.$$arity=1,W)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.ts,oe.num_suffix_s),u(oe["$version?"](18,19,20))?(oe.$emit("tFLOAT",oe.$Float(Ve),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve),ve=n(ve,1),Re=qe;continue}if(247["$==="](Oe))oe.te=n(ve,1),oe.newline_s=ve,oe.act=74;else if(35["$==="](Oe))oe.te=n(ve,1),u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.act=73;else if(46["$==="](Oe))oe.te=n(ve,1),u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),oe.act=81;else if(72["$==="](Oe))oe.te=n(ve,1),oe.$emit_comment(oe.sharp_s,ve["$=="](ye)?t(ve,2):ve),oe.act=134;else if(37["$==="](Oe))oe.te=n(ve,1),ze=ve,oe.act=68;else if(347["$==="](Oe))oe.te=n(ve,1),ze=ve,oe.act=115;else if(346["$==="](Oe))oe.te=n(ve,1),ze=ve,oe.act=116;else if(428["$==="](Oe))oe.te=n(ve,1),oe.num_base=10,oe.num_digits_s=oe.ts,oe.act=141;else if(109["$==="](Oe))et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(Y=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):Y)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(Y=oe.escape)?Y:oe.$tok(),oe.ts,oe.te);else if(135["$==="](Oe))et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(Y=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):Y)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(Y=oe.escape)?Y:oe.$tok(),oe.ts,oe.te);else{if(331["$==="](Oe)){et=oe.source_pts["$[]"](t(ve,1)),u((oe.escape=e.const_get_relative(K,"ESCAPES")["$[]"](et))["$nil?"]())&&(oe.escape=oe.$encode_escape(oe.source_buffer.$slice(t(ve,1)))),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Ke=u(Y=oe.escape)?Y:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((Y=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(107["$==="](Oe))oe.escape=oe.source_buffer.$slice(t(ve,1)).$chr(),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(X=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):X)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(X=oe.escape)?X:oe.$tok(),oe.ts,oe.te);else if(133["$==="](Oe))oe.escape=oe.source_buffer.$slice(t(ve,1)).$chr(),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Pe=oe.$literal(),je=oe.source_buffer.$slice(oe.escape_s).$chr(),u(Pe["$munge_escape?"](je))?u(u(X=Pe["$regexp?"]())?e.const_get_relative(K,"REGEXP_META_CHARACTERS").$match(je):X)?Pe.$extend_string(oe.$tok(),oe.ts,oe.te):Pe.$extend_string(je,oe.ts,oe.te):u(Pe["$regexp?"]())?Pe.$extend_string(oe.$tok().$gsub("\\\n".$freeze(),"".$freeze()),oe.ts,oe.te):Pe.$extend_string(u(X=oe.escape)?X:oe.$tok(),oe.ts,oe.te);else{if(329["$==="](Oe)){oe.escape=oe.source_buffer.$slice(t(ve,1)).$chr(),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$&"](159)),oe.escape=oe.$encode_escape(oe.escape["$[]"](0).$ord()["$|"](128)),oe.te=ve,ve=t(ve,1),Ke=u(X=oe.escape)?X:oe.$tok(n(oe.ts,1)),u(oe["$version?"](18))?u((X=e.const_get_relative(K,"Encoding","skip_raise"))?"constant":s)?oe.$emit("tINTEGER",Ke.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(K,"Encoding"),"BINARY"))["$[]"](0).$ord()):oe.$emit("tINTEGER",Ke["$[]"](0).$ord()):oe.$emit("tCHARACTER",Ke),oe.cs=766,ve=n(ve,1),Re=qe;continue}if(423["$==="](Oe)){oe.num_base=16,oe.num_digits_s=ve,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((Q=function(e){var t=Q.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,Q.$$arity=1,Q)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(J=u(Z=Ve["$empty?"]())?oe.num_base["$=="](8):Z)?oe["$version?"](18):J)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((J=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(417["$==="](Oe)){oe.num_base=10,oe.num_digits_s=ve,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((ee=function(e){var t=ee.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,ee.$$arity=1,ee)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(J=u(Z=Ve["$empty?"]())?oe.num_base["$=="](8):Z)?oe["$version?"](18):J)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((J=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(420["$==="](Oe)){oe.num_base=8,oe.num_digits_s=ve,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((te=function(e){var t=te.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,te.$$arity=1,te)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(J=u(Z=Ve["$empty?"]())?oe.num_base["$=="](8):Z)?oe["$version?"](18):J)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((J=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(414["$==="](Oe)){oe.num_base=2,oe.num_digits_s=ve,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((ne=function(e){var t=ne.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,ne.$$arity=1,ne)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(J=u(Z=Ve["$empty?"]())?oe.num_base["$=="](8):Z)?oe["$version?"](18):J)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((J=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(426["$==="](Oe)){oe.num_base=10,oe.num_digits_s=oe.ts,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((re=function(e){var t=re.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,re.$$arity=1,re)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(J=u(Z=Ve["$empty?"]())?oe.num_base["$=="](8):Z)?oe["$version?"](18):J)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((J=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}if(396["$==="](Oe)){oe.num_base=8,oe.num_digits_s=oe.ts,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],(($e=function(e){var t=$e.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,$e.$$arity=1,$e)),oe.te=ve,ve=t(ve,1),Ve=oe.$tok(oe.num_digits_s,oe.num_suffix_s),u(Ve["$end_with?"]("_".$freeze()))?oe.$diagnostic("error","trailing_in_number",l(["character"],{character:"_".$freeze()}),oe.$range(t(oe.te,1),oe.te)):u(u(J=u(Z=Ve["$empty?"]())?oe.num_base["$=="](8):Z)?oe["$version?"](18):J)?Ve="0".$freeze():u(Ve["$empty?"]())?oe.$diagnostic("error","empty_numeric"):u((J=oe.num_base["$=="](8))?We=Ve.$index(/[89]/):oe.num_base["$=="](8))&&(Qe=n(oe.num_digits_s,We),oe.$diagnostic("error","invalid_octal",s,oe.$range(Qe,n(Qe,1)))),u(oe["$version?"](18,19,20))?(oe.$emit("tINTEGER",Ve.$to_i(oe.num_base),oe.ts,oe.num_suffix_s),ve=t(oe.num_suffix_s,1)):oe.num_xfrm.$call(Ve.$to_i(oe.num_base)),ve=n(ve,1),Re=qe;continue}31["$==="](Oe)?(oe.te=n(ve,1),u(oe.herebody_s)&&(ve=oe.herebody_s,oe.herebody_s=s),ze=ve,oe.act=68):433["$==="](Oe)?(oe.te=n(ve,1),oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((ie=function(e){var t=ie.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,ie.$$arity=1,ie)),oe.act=143):429["$==="](Oe)?(oe.te=n(ve,1),oe.num_base=10,oe.num_digits_s=oe.ts,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((ae=function(e){var t=ae.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,ae.$$arity=1,ae)),oe.act=143):399["$==="](Oe)&&(oe.te=n(ve,1),oe.num_base=8,oe.num_digits_s=oe.ts,oe.num_suffix_s=ve,oe.num_xfrm=c(oe,"lambda",[],((se=function(e){var t=se.$$s||this;return null==e&&(e=s),t.$emit("tINTEGER",e)}).$$s=oe,se.$$arity=1,se)),oe.act=143)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if(u(r(Re,Se))){if(Oe=ge["$[]"](oe.cs),79["$==="](Oe)&&(oe.ts=s),oe.cs["$=="](0)){Re=qe;continue}if(ve=n(ve,1),u(ve["$!="](ye))){Re=Ne;continue}}if(u(r(Re,Te))&&ve["$=="](be)&&u($(me["$[]"](oe.cs),0)))xe=t(me["$[]"](oe.cs),1),Re=Ae;else if(u(r(Re,qe)))break}return oe.p=ve,u(oe.token_queue["$any?"]())?oe.token_queue.$shift():oe.cs["$=="](ce.$lex_error())?[!1,["$error".$freeze(),oe.$range(t(ve,1),ve)]]:(be=oe.source_pts.$size(),[!1,["$eof".$freeze(),oe.$range(be,be)]])},A.$$arity=0),Y.$protected(),e.defn(Y,"$eof_codepoint?",S=function(e){return[4,26,0]["$include?"](e)},S.$$arity=1),e.defn(Y,"$version?",T=function(){var e,t=this,n=arguments.length,r=n-0;r<0&&(r=0),e=new Array(r);for(var $=0;$","=~","!~","==","!=",">",">>",">=","<","<<","<=","=>","::","===","<=>","[]","[]=","{","}","`","!@","&."],{"=":"tEQL","&":"tAMPER2","|":"tPIPE","!":"tBANG","^":"tCARET","+":"tPLUS","-":"tMINUS","*":"tSTAR2","/":"tDIVIDE","%":"tPERCENT","~":"tTILDE",",":"tCOMMA",";":"tSEMI",".":"tDOT","..":"tDOT2","...":"tDOT3","[":"tLBRACK2","]":"tRBRACK","(":"tLPAREN2",")":"tRPAREN","?":"tEH",":":"tCOLON","&&":"tANDOP","||":"tOROP","-@":"tUMINUS","+@":"tUPLUS","~@":"tTILDE","**":"tPOW","->":"tLAMBDA","=~":"tMATCH","!~":"tNMATCH","==":"tEQ","!=":"tNEQ",">":"tGT",">>":"tRSHFT",">=":"tGEQ","<":"tLT","<<":"tLSHFT","<=":"tLEQ","=>":"tASSOC","::":"tCOLON2","===":"tEQQ","<=>":"tCMP","[]":"tAREF","[]=":"tASET","{":"tLCURLY","}":"tRCURLY","`":"tBACK_REF2","!@":"tBANG","&.":"tANDDOT"})),e.const_set(K[0],"PUNCTUATION_BEGIN",l(["&","*","**","+","-","::","(","{","["],{"&":"tAMPER","*":"tSTAR","**":"tDSTAR","+":"tUPLUS","-":"tUMINUS","::":"tCOLON3","(":"tLPAREN","{":"tLBRACE","[":"tLBRACK"})),e.const_set(K[0],"KEYWORDS",l(["if","unless","while","until","rescue","defined?","BEGIN","END"],{"if":"kIF_MOD",unless:"kUNLESS_MOD","while":"kWHILE_MOD",until:"kUNTIL_MOD",rescue:"kRESCUE_MOD","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),e.const_set(K[0],"KEYWORDS_BEGIN",l(["if","unless","while","until","rescue","defined?"],{"if":"kIF",unless:"kUNLESS","while":"kWHILE",until:"kUNTIL",rescue:"kRESCUE","defined?":"kDEFINED"})),c(["class","module","def","undef","begin","end","then","elsif","else","ensure","case","when","for","break","next","redo","retry","in","do","return","yield","super","self","nil","true","false","and","or","not","alias","__FILE__","__LINE__","__ENCODING__"],"each",[],((U=function(n){U.$$s;return null==n&&(n=s),V=[n,(V=[n,"k"+n.$upcase()],c(e.const_get_relative(K,"KEYWORDS"),"[]=",e.to_a(V)),V[t(V.length,1)])],c(e.const_get_relative(K,"KEYWORDS_BEGIN"),"[]=",e.to_a(V)),V[t(V.length,1)]}).$$s=Y,U.$$arity=1,U))}(e.const_get_relative(a,"Parser"),0,a)},Opal.modules["parser/lexer/literal"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var $=[],i=e.nil,a=(e.breaker,e.slice,e.module),s=e.klass,o=e.hash2,c=e.truthy,_=e.send;return e.add_stubs(["$attr_reader","$attr_accessor","$coerce_encoding","$include?","$send","$+","$[]","$fetch","$==","$!","$heredoc?","$start_with?","$freeze","$clear_buffer","$emit_start_tok","$type","$words?","$=~","$delimiter?","$-","$extend_space","$!=","$flush_string","$emit","$each_char","$===","$%","$nil?","$>","$empty?","$extend_content","$protected","$lstrip","$force_encoding","$dup","$encoding","$source","$source_buffer","$length"]),function($,u){var l=a($,"Parser"),d=(l.$$proto,[l].concat(u));!function($,$super,a){function u(){}var l,d,p,f,g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I=u=s($,null,"Literal",u),z=I.$$proto,C=[I].concat(a);z.lexer=z.start_tok=z.str_type=z.monolithic=z.interpolate=z.heredoc_e=z.end_delim=z.start_delim=z.nesting=z.label_allowed=z.buffer=z.str_s=z.dedent_body=z.interp_braces=z.buffer_s=z.buffer_e=z.space_emitted=z.indent=i,e.const_set(C[0],"DELIMITERS",o(["(","[","{","<"],{"(":")".$force_encoding("ASCII-8BIT"),"[":"]".$force_encoding("ASCII-8BIT"),"{":"}".$force_encoding("ASCII-8BIT"),"<":">".$force_encoding("ASCII-8BIT")})),e.const_set(C[0],"TYPES",o(["'","<<'","%q",'"','<<"',"%","%Q","%w","%W","%i","%I",":'","%s",':"',"/","%r","%x","`","<<`"],{"'":["tSTRING_BEG",!1],"<<'":["tSTRING_BEG",!1],"%q":["tSTRING_BEG",!1],'"':["tSTRING_BEG",!0],'<<"':["tSTRING_BEG",!0],"%":["tSTRING_BEG",!0],"%Q":["tSTRING_BEG",!0],"%w":["tQWORDS_BEG",!1],"%W":["tWORDS_BEG",!0],"%i":["tQSYMBOLS_BEG",!1],"%I":["tSYMBOLS_BEG",!0],":'":["tSYMBEG",!1],"%s":["tSYMBEG",!1],':"':["tSYMBEG",!0],"/":["tREGEXP_BEG",!0],"%r":["tREGEXP_BEG",!0],"%x":["tXSTRING_BEG",!0],"`":["tXSTRING_BEG",!0],"<<`":["tXSTRING_BEG",!0]})),I.$attr_reader("heredoc_e","str_s","dedent_level"),I.$attr_accessor("saved_herebody_s"),e.defn(I,"$initialize",l=function(n,r,$,a,s,_,u,l){var d,p,f=this;return null==s&&(s=i),null==_&&(_=!1),null==u&&(u=!1),null==l&&(l=!1),f.lexer=n,f.nesting=1,r=f.$coerce_encoding(r),$=f.$coerce_encoding($),c(e.const_get_relative(C,"TYPES")["$include?"](r))||n.$send("diagnostic","error","unexpected_percent_str",o(["type"],{type:r}),f.lexer.$send("range",a,t(a,2))),f.str_type=r,f.str_s=a,p=e.const_get_relative(C,"TYPES")["$[]"](r),d=e.to_ary(p),f.start_tok=null==d[0]?i:d[0],f.interpolate=null==d[1]?i:d[1],f.start_delim=c(e.const_get_relative(C,"DELIMITERS")["$include?"]($))?$:i,f.end_delim=e.const_get_relative(C,"DELIMITERS").$fetch($,$),f.heredoc_e=s,f.indent=_,f.label_allowed=l,f.dedent_body=u,f.dedent_level=i,f.interp_braces=0,f.space_emitted=!0,f.monolithic=c(d=(p=f.start_tok["$=="]("tSTRING_BEG"))?["'".$force_encoding("ASCII-8BIT"),'"'.$force_encoding("ASCII-8BIT")]["$include?"](r):f.start_tok["$=="]("tSTRING_BEG"))?f["$heredoc?"]()["$!"]():d,c(f.str_type["$start_with?"]("%".$force_encoding("ASCII-8BIT").$freeze()))&&(f.str_type=t(f.str_type,$)),f.$clear_buffer(),c(f.monolithic)?i:f.$emit_start_tok()},l.$$arity=-5),e.defn(I,"$interpolate?",d=function(){return this.interpolate},d.$$arity=0),e.defn(I,"$words?",p=function(){var e,t,n,r=this;return c(e=c(t=c(n=r.$type()["$=="]("tWORDS_BEG"))?n:r.$type()["$=="]("tQWORDS_BEG"))?t:r.$type()["$=="]("tSYMBOLS_BEG"))?e:r.$type()["$=="]("tQSYMBOLS_BEG")},p.$$arity=0),e.defn(I,"$regexp?",f=function(){return this.$type()["$=="]("tREGEXP_BEG")},f.$$arity=0),e.defn(I,"$heredoc?",g=function(){return this.heredoc_e["$!"]()["$!"]()},g.$$arity=0),e.defn(I,"$backslash_delimited?",h=function(){return this.end_delim["$=="]("\\".$force_encoding("ASCII-8BIT").$freeze())},h.$$arity=0),e.defn(I,"$type",m=function(){return this.start_tok},m.$$arity=0),e.defn(I,"$munge_escape?",y=function(e){var t,n=this;return e=n.$coerce_encoding(e),!!c(c(t=n["$words?"]())?e["$=~"](/[ \t\v\r\f\n]/):t)||["\\".$force_encoding("ASCII-8BIT").$freeze(),n.start_delim,n.end_delim]["$include?"](e)},y.$$arity=1),e.defn(I,"$nest_and_try_closing",v=function(e,r,$,a){var s,o,_,u,l=this;return null==a&&(a=i),e=l.$coerce_encoding(e),c(c(s=l.start_delim)?l.start_delim["$=="](e):s)?l.nesting=t(l.nesting,1):c(l["$delimiter?"](e))&&(l.nesting=n(l.nesting,1)),l.nesting["$=="](0)?(c(l["$words?"]())&&l.$extend_space(r,r),c(c(s=c(o=c(_=c(u=a)?l.label_allowed:u)?a["$[]"](0)["$=="](":".$force_encoding("ASCII-8BIT")):_)?a["$[]"](1)["$!="](":".$force_encoding("ASCII-8BIT")):o)?l.start_tok["$=="]("tSTRING_BEG"):s)?(l.$flush_string(),l.$emit("tLABEL_END",l.end_delim,r,t($,1))):c(l.monolithic)?l.$emit("tSTRING",l.buffer,l.str_s,$):(c(l["$heredoc?"]())||l.$flush_string(),l.$emit("tSTRING_END",l.end_delim,r,$))):i},v.$$arity=-4),e.defn(I,"$infer_indent_level",b=function($){var a,s=this,o=i;return c(s.dedent_body["$!"]())?i:(o=0,function(){var u=e.new_brk();try{return _($,"each_char",[],((a=function($){var s,_=a.$$s||this,l=i;return null==_.dedent_level&&(_.dedent_level=i),null==$&&($=i),l=$," "["$==="](l)?o=t(o,1):"\t"["$==="](l)?o=t(o,n(8,o["$%"](8))):(c(c(s=_.dedent_level["$nil?"]())?s:r(_.dedent_level,o))&&(_.dedent_level=o),void e.brk(i,u))}).$$s=s,a.$$brk=u,a.$$arity=1,a))}catch(l){if(l===u)return l.$v;throw l}}())},b.$$arity=1),e.defn(I,"$start_interp_brace",k=function(){var e=this;return e.interp_braces=t(e.interp_braces,1)},k.$$arity=0),e.defn(I,"$end_interp_brace_and_try_closing",x=function(){var e=this;return e.interp_braces=n(e.interp_braces,1),e.interp_braces["$=="](0)},x.$$arity=0),e.defn(I,"$extend_string",E=function(e,n,r){var $,i=this;return i.buffer_s=c($=i.buffer_s)?$:n,i.buffer_e=r,i.buffer=t(i.buffer,e)},E.$$arity=3),e.defn(I,"$flush_string",w=function(){var e=this;return c(e.monolithic)&&(e.$emit_start_tok(),e.monolithic=!1),c(e.buffer["$empty?"]())?i:(e.$emit("tSTRING_CONTENT",e.buffer,e.buffer_s,e.buffer_e),e.$clear_buffer(),e.$extend_content())},w.$$arity=0),e.defn(I,"$extend_content",R=function(){return this.space_emitted=!1},R.$$arity=0),e.defn(I,"$extend_space",N=function(e,t){var n=this;return n.$flush_string(),c(n.space_emitted)?i:(n.$emit("tSPACE",i,e,t),n.space_emitted=!0)},N.$$arity=2),I.$protected(),e.defn(I,"$delimiter?",A=function(e){var t=this;return c(t.indent)?t.end_delim["$=="](e.$lstrip()):t.end_delim["$=="](e)},A.$$arity=1),e.defn(I,"$coerce_encoding",S=function(t){return c(e.const_get_relative(C,"Encoding","skip_raise")?"constant":i)?t.$dup().$force_encoding(e.const_get_qualified(e.const_get_relative(C,"Encoding"),"BINARY")):t},S.$$arity=1),e.defn(I,"$clear_buffer",T=function(){var t=this;return t.buffer="".$force_encoding("ASCII-8BIT"),c(e.const_get_relative(C,"Encoding","skip_raise")?"constant":i)&&t.buffer.$force_encoding(t.lexer.$source_buffer().$source().$encoding()),t.buffer_s=i,t.buffer_e=i},T.$$arity=0),e.defn(I,"$emit_start_tok",q=function(){var e,n=this,r=i;return r=c(e=n.heredoc_e)?e:t(n.str_s,n.str_type.$length()),n.$emit(n.start_tok,n.str_type,n.str_s,r)},q.$$arity=0),e.defn(I,"$emit",O=function(e,t,n,r){return this.lexer.$send("emit",e,t,n,r)},O.$$arity=4)}(e.const_get_relative(d,"Lexer"),0,d)}($[0],$)},Opal.modules["parser/lexer/stack_state"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),$=e.klass,i=e.truthy;return e.add_stubs(["$freeze","$clear","$|","$<<","$&","$>>","$==","$push","$pop","$[]","$to_s"]),function(t,a){var s=r(t,"Parser"),o=(s.$$proto,[s].concat(a));!function(t,$super,r){function a(){}var s,o,c,_,u,l,d,p=a=$(t,null,"StackState",a),f=p.$$proto;[p].concat(r);f.stack=f.name=n,e.defn(p,"$initialize",s=function(e){var t=this;return t.name=e.$freeze(),t.$clear()},s.$$arity=1),e.defn(p,"$clear",o=function(){return this.stack=0},o.$$arity=0),e.defn(p,"$push",c=function(e){var t=this,r=n;return r=i(e)?1:0,t.stack=t.stack["$<<"](1)["$|"](r),e},c.$$arity=1),e.defn(p,"$pop",_=function(){var e=this,t=n;return t=e.stack["$&"](1),e.stack=e.stack["$>>"](1),t["$=="](1)},_.$$arity=0),e.defn(p,"$lexpop",u=function(){var e,t=this;return t.$push(i(e=t.$pop())?e:t.$pop())},u.$$arity=0),e.defn(p,"$active?",l=function(){return this.stack["$[]"](0)["$=="](1)},l.$$arity=0),e.defn(p,"$to_s",d=function(){var e=this;return"["+e.stack.$to_s(2)+" <= "+e.name+"]"},d.$$arity=0),e.alias(p,"inspect","to_s")}(e.const_get_relative(o,"Lexer"),0,o)}(t[0],t)},Opal.modules["parser/lexer/dedenter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var $=[],i=e.nil,a=(e.breaker,e.slice),s=e.module,o=e.klass,c=e.send,_=e.truthy;return e.add_stubs(["$-","$length","$each_with_index","$chars","$==","$>=","$slice!","$+","$===","$%"]),function($,u){var l=s($,"Parser"),d=(l.$$proto,[l].concat(u));!function($,$super,s){function u(){}var l,d,p,f=u=o($,null,"Dedenter",u),g=f.$$proto;[f].concat(s);g.at_line_begin=i,e.defn(f,"$initialize",l=function(e){var t=this;return t.dedent_level=e,t.at_line_begin=!0,t.indent_level=0},l.$$arity=1),e.defn(f,"$dedent",d=function($){var s,o=this,u=i,l=i,d=i,p=i;return u=l=d=0,p=t($.$length(),1),c($.$chars(),"each_with_index",[],((s=function(o,c){var f,g=s.$$s||this,h=i;return null==g.at_line_begin&&(g.at_line_begin=i),null==g.indent_level&&(g.indent_level=i),null==g.dedent_level&&(g.dedent_level=i),null==o&&(o=i),null==c&&(c=i),_(g.at_line_begin)?_(_(f=o["$=="]("\n"))?f:n(g.indent_level,g.dedent_level))&&($["$slice!"](e.Range.$new(u,l,!0)),d=r(d,t(t(l,u),1)),g.at_line_begin=!1,o["$=="]("\n"))?s.apply(null,a.call(arguments)):(h=o," "["$==="](h)?(g.indent_level=r(g.indent_level,1),l=r(l,1)):"\t"["$==="](h)?(g.indent_level=r(g.indent_level,t(8,g.indent_level["$%"](8))),l=r(l,1)):i):_((f=o["$=="]("\n"))?c["$=="](p):o["$=="]("\n"))?(g.at_line_begin=!0,g.indent_level=0,u=l=r(t(c,d),1)):i}).$$s=o,s.$$arity=2,s)),_(o.at_line_begin)&&$["$slice!"](e.Range.$new(u,l,!1)),i},d.$$arity=1), -e.defn(f,"$interrupt",p=function(){return this.at_line_begin=!1},p.$$arity=0)}(e.const_get_relative(d,"Lexer"),0,d)}($[0],$)},Opal.modules["parser/builders/default"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}e.top;var i=[],a=e.nil,s=(e.breaker,e.slice),o=e.module,c=e.klass,_=e.hash2,u=e.truthy,l=e.send,d=e.range;return e.add_stubs(["$attr_accessor","$n0","$token_map","$numeric","$n","$value","$new","$loc","$private","$updated","$-@","$join","$expression","$string_value","$delimited_string_map","$unquoted_map","$collapse_string_parts?","$nil?","$first","$children","$string_map","$prefix_string_map","$to_sym","$collection_map","$==","$version","$empty?","$diagnostic","$!","$type","$dedent","$each","$interrupt","$map","$uniq","$sort","$each_char","$to_proc","$static_regexp","$message","$<<","$regexp_map","$unary_op_map","$===","$binary_op_map","$!=","$%","$size","$last","$each_slice","$pair_keyword_map","$pair_quoted_map","$symbol_compose","$variable_map","$name","$source_buffer","$dup","$line","$declared?","$static_env","$var_send_map","$constant_map","$in_def?","$declare","$with_expression","$with_operator","$join_exprs","$[]","$module_definition_map","$definition_map","$keyword_map","$check_duplicate_args","$arg_prefix_map","$kwarg_map","$emit_procarg0","$class","$resize","$-","$end","$call_type_for_dot","$send_map","$emit_lambda","$expr_map","$keyword","$include?","$block_map","$array","$+","$send_index_map","$send_binary_op_map","$static_regexp_node","$names","$send_unary_op_map","$check_condition","$condition_map","$keyword_mod_map","$ternary_map","$for_map","$>","$count","$rescue_body_map","$any?","$eh_keyword_map","$push","$none?","$one?","$begin","$<=","$[]=","$arg_name_collides?","$begin_pos","$end_pos","$start_with?","$static_string","$encode","$valid_encoding?","$process","$diagnostics","$send"]),function(i,p){var f=o(i,"Parser"),g=(f.$$proto,[f].concat(p));!function(i,$super,o){function p(){}var f,g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I,z,C,P,B,G,D,L,M,j,H,F,U,Y,X,K,V,W,Q,J,Z,ee,te,ne,re,$e,ie,ae,se,oe,ce,_e,ue,le,de,pe,fe,ge,he,me,ye,ve,be,ke,xe,Ee,we,Re,Ne,Ae,Se,Te,qe,Oe,Ie,ze,Ce,Pe,Be,Ge,De,Le,Me,je,He,Fe,Ue,Ye,Xe,Ke,Ve,We,Qe,Je,Ze,et,tt,nt,rt,$t,it,at,st,ot,ct,_t,ut,lt,dt,pt,ft,gt,ht,mt,yt,vt,bt,kt,xt,Et,wt,Rt,Nt,At,St,Tt,qt,Ot,It,zt,Ct,Pt,Bt,Gt,Dt,Lt,Mt,jt,Ht,Ft,Ut,Yt,Xt,Kt,Vt,Wt,Qt,Jt,Zt,en,tn,nn,rn,$n=p=c(i,null,"Default",p),an=$n.$$proto,sn=[$n].concat(o);an.parser=an.emit_file_line_as_literals=a,function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("emit_lambda")}(e.get_singleton_class($n),sn),$n.emit_lambda=!1,function(e,t){e.$$proto,[e].concat(t);e.$attr_accessor("emit_procarg0")}(e.get_singleton_class($n),sn),$n.emit_procarg0=!1,function(t,n){var r;t.$$proto,[t].concat(n);e.defn(t,"$modernize",r=function(){var e=this;return e.emit_lambda=!0,e.emit_procarg0=!0},r.$$arity=0)}(e.get_singleton_class($n),sn),$n.$attr_accessor("parser"),$n.$attr_accessor("emit_file_line_as_literals"),e.defn($n,"$initialize",f=function(){return this.emit_file_line_as_literals=!0},f.$$arity=0),e.defn($n,"$nil",g=function(e){var t=this;return t.$n0("nil",t.$token_map(e))},g.$$arity=1),e.defn($n,"$true",h=function(e){var t=this;return t.$n0("true",t.$token_map(e))},h.$$arity=1),e.defn($n,"$false",m=function(e){var t=this;return t.$n0("false",t.$token_map(e))},m.$$arity=1),e.defn($n,"$integer",y=function(e){return this.$numeric("int",e)},y.$$arity=1),e.defn($n,"$float",v=function(e){return this.$numeric("float",e)},v.$$arity=1),e.defn($n,"$rational",b=function(e){return this.$numeric("rational",e)},b.$$arity=1),e.defn($n,"$complex",k=function(e){return this.$numeric("complex",e)},k.$$arity=1),e.defn($n,"$numeric",x=function(t,n){var r=this;return r.$n(t,[r.$value(n)],e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Operator").$new(a,r.$loc(n)))},x.$$arity=2),$n.$private("numeric"),e.defn($n,"$negate",E=function(t,n){var r,$=this,i=a,s=a;return i=null==(r=[].concat(e.to_a(n)))[0]?a:r[0],s=$.$loc(t),n.$updated(a,[i["$-@"]()],_(["location"],{location:e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Operator").$new(s,s.$join(n.$loc().$expression()))}))},E.$$arity=2),e.defn($n,"$__LINE__",w=function(e){var t=this;return t.$n0("__LINE__",t.$token_map(e))},w.$$arity=1),e.defn($n,"$string",R=function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$delimited_string_map(e))},R.$$arity=1),e.defn($n,"$string_internal",N=function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$unquoted_map(e))},N.$$arity=1),e.defn($n,"$string_compose",A=function(t,n,r){var $,i=this;return u(i["$collapse_string_parts?"](n))?u(u($=t["$nil?"]())?r["$nil?"]():$)?n.$first():i.$n("str",n.$first().$children(),i.$string_map(t,n,r)):i.$n("dstr",[].concat(e.to_a(n)),i.$string_map(t,n,r))},A.$$arity=3),e.defn($n,"$character",S=function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$prefix_string_map(e))},S.$$arity=1),e.defn($n,"$__FILE__",T=function(e){var t=this;return t.$n0("__FILE__",t.$token_map(e))},T.$$arity=1),e.defn($n,"$symbol",q=function(e){var t=this;return t.$n("sym",[t.$string_value(e).$to_sym()],t.$prefix_string_map(e))},q.$$arity=1),e.defn($n,"$symbol_internal",O=function(e){var t=this;return t.$n("sym",[t.$string_value(e).$to_sym()],t.$unquoted_map(e))},O.$$arity=1),e.defn($n,"$symbol_compose",I=function(t,n,r){var $=this,i=a;return u($["$collapse_string_parts?"](n))?(i=n.$first(),$.$n("sym",[i.$children().$first().$to_sym()],$.$collection_map(t,i.$loc().$expression(),r))):u($.parser.$version()["$=="](18)?n["$empty?"]():$.parser.$version()["$=="](18))?$.$diagnostic("error","empty_symbol",a,$.$loc(t).$join($.$loc(r))):$.$n("dsym",[].concat(e.to_a(n)),$.$collection_map(t,n,r))},I.$$arity=3),e.defn($n,"$xstring_compose",z=function(t,n,r){var $=this;return $.$n("xstr",[].concat(e.to_a(n)),$.$string_map(t,n,r))},z.$$arity=3),e.defn($n,"$dedent_string",C=function(t,n){var r,$,i=this,s=a,o=a;return u(n["$nil?"]()["$!"]())&&(s=e.const_get_qualified(e.const_get_relative(sn,"Lexer"),"Dedenter").$new(n),t.$type()["$=="]("str")?(o=t.$children().$first(),s.$dedent(o)):u(u(r=t.$type()["$=="]("dstr"))?r:t.$type()["$=="]("xstr"))&&l(t.$children(),"each",[],(($=function(e){$.$$s;return null==e&&(e=a),e.$type()["$=="]("str")?(o=e.$children().$first(),s.$dedent(o)):s.$interrupt()}).$$s=i,$.$$arity=1,$))),t},C.$$arity=2),e.defn($n,"$regexp_options",P=function(e){var t=this,n=a;return n=l(t.$value(e).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc()),t.$n("regopt",n,t.$token_map(e))},P.$$arity=1),e.defn($n,"$regexp_compose",B=function(t,n,r,$){var i=this,s=a;try{i.$static_regexp(n,$)}catch(o){if(!e.rescue(o,[e.const_get_relative(sn,"RegexpError")]))throw o;s=o;try{i.$diagnostic("error","invalid_regexp",_(["message"],{message:s.$message()}),i.$loc(t).$join(i.$loc(r)))}finally{e.pop_exception()}}return i.$n("regexp",n["$<<"]($),i.$regexp_map(t,r,$))},B.$$arity=4),e.defn($n,"$array",G=function(e,t,n){var r=this;return r.$n("array",t,r.$collection_map(e,t,n))},G.$$arity=3),e.defn($n,"$splat",D=function(e,t){var n=this;return null==t&&(t=a),u(t["$nil?"]())?n.$n0("splat",n.$unary_op_map(e)):n.$n("splat",[t],n.$unary_op_map(e,t))},D.$$arity=-2),e.defn($n,"$word",L=function(t){var n=this;return u(n["$collapse_string_parts?"](t))?t.$first():n.$n("dstr",[].concat(e.to_a(t)),n.$collection_map(a,t,a))},L.$$arity=1),e.defn($n,"$words_compose",M=function(t,n,r){var $=this;return $.$n("array",[].concat(e.to_a(n)),$.$collection_map(t,n,r))},M.$$arity=3),e.defn($n,"$symbols_compose",j=function(t,n,r){var $,i=this;return n=l(n,"map",[],(($=function(t){$.$$s;var n,r=a,i=a;return null==t&&(t=a),r=t.$type(),"str"["$==="](r)?(n=[].concat(e.to_a(t)),i=null==n[0]?a:n[0],t.$updated("sym",[i.$to_sym()])):"dstr"["$==="](r)?t.$updated("dsym"):t}).$$s=i,$.$$arity=1,$)),i.$n("array",[].concat(e.to_a(n)),i.$collection_map(t,n,r))},j.$$arity=3),e.defn($n,"$pair",H=function(e,t,n){var r=this;return r.$n("pair",[e,n],r.$binary_op_map(e,t,n))},H.$$arity=3),e.defn($n,"$pair_list_18",F=function(e){var t,n=this;return u(e.$size()["$%"](2)["$!="](0))?n.$diagnostic("error","odd_hash",a,e.$last().$loc().$expression()):l(e.$each_slice(2),"map",[],((t=function(e,n){var r=t.$$s||this;return null==e&&(e=a),null==n&&(n=a),r.$n("pair",[e,n],r.$binary_op_map(e,a,n))}).$$s=n,t.$$arity=2,t))},F.$$arity=1),e.defn($n,"$pair_keyword",U=function(t,n){var r,$,i=this,s=a,o=a,c=a;return $=i.$pair_keyword_map(t,n),s=null==(r=e.to_ary($))[0]?a:r[0],o=null==r[1]?a:r[1],c=i.$n("sym",[i.$value(t).$to_sym()],s),i.$n("pair",[c,n],o)},U.$$arity=2),e.defn($n,"$pair_quoted",Y=function(t,n,r,$){var i,s,o=this,c=a,_=a;return s=o.$pair_quoted_map(t,r,$),r=null==(i=e.to_ary(s))[0]?a:i[0],c=null==i[1]?a:i[1],_=o.$symbol_compose(t,n,r),o.$n("pair",[_,$],c)},Y.$$arity=4),e.defn($n,"$kwsplat",X=function(e,t){var n=this;return n.$n("kwsplat",[t],n.$unary_op_map(e,t))},X.$$arity=2),e.defn($n,"$associate",K=function(t,n,r){var $=this;return $.$n("hash",[].concat(e.to_a(n)),$.$collection_map(t,n,r))},K.$$arity=3),e.defn($n,"$range_inclusive",V=function(e,t,n){var r=this;return r.$n("irange",[e,n],r.$binary_op_map(e,t,n))},V.$$arity=3),e.defn($n,"$range_exclusive",W=function(e,t,n){var r=this;return r.$n("erange",[e,n],r.$binary_op_map(e,t,n))},W.$$arity=3),e.defn($n,"$self",Q=function(e){var t=this;return t.$n0("self",t.$token_map(e))},Q.$$arity=1),e.defn($n,"$ident",J=function(e){var t=this;return t.$n("ident",[t.$value(e).$to_sym()],t.$variable_map(e))},J.$$arity=1),e.defn($n,"$ivar",Z=function(e){var t=this;return t.$n("ivar",[t.$value(e).$to_sym()],t.$variable_map(e))},Z.$$arity=1),e.defn($n,"$gvar",ee=function(e){var t=this;return t.$n("gvar",[t.$value(e).$to_sym()],t.$variable_map(e))},ee.$$arity=1),e.defn($n,"$cvar",te=function(e){var t=this;return t.$n("cvar",[t.$value(e).$to_sym()],t.$variable_map(e))},te.$$arity=1),e.defn($n,"$back_ref",ne=function(e){var t=this;return t.$n("back_ref",[t.$value(e).$to_sym()],t.$token_map(e))},ne.$$arity=1),e.defn($n,"$nth_ref",re=function(e){var t=this;return t.$n("nth_ref",[t.$value(e)],t.$token_map(e))},re.$$arity=1),e.defn($n,"$accessible",$e=function(t){var n,r=this,$=a,i=a;return $=t.$type(),"__FILE__"["$==="]($)?u(r.emit_file_line_as_literals)?r.$n("str",[t.$loc().$expression().$source_buffer().$name()],t.$loc().$dup()):t:"__LINE__"["$==="]($)?u(r.emit_file_line_as_literals)?r.$n("int",[t.$loc().$expression().$line()],t.$loc().$dup()):t:"__ENCODING__"["$==="]($)?r.$n("const",[r.$n("const",[a,"Encoding"],a),"UTF_8"],t.$loc().$dup()):"ident"["$==="]($)?(n=[].concat(e.to_a(t)),i=null==n[0]?a:n[0],u(r.parser.$static_env()["$declared?"](i))?t.$updated("lvar"):(n=[].concat(e.to_a(t)),i=null==n[0]?a:n[0],r.$n("send",[a,i],r.$var_send_map(t)))):t},$e.$$arity=1),e.defn($n,"$const",ie=function(e){var t=this;return t.$n("const",[a,t.$value(e).$to_sym()],t.$constant_map(a,a,e))},ie.$$arity=1),e.defn($n,"$const_global",ae=function(e,t){var n=this,r=a;return r=n.$n0("cbase",n.$token_map(e)),n.$n("const",[r,n.$value(t).$to_sym()],n.$constant_map(r,e,t))},ae.$$arity=2),e.defn($n,"$const_fetch",se=function(e,t,n){var r=this;return r.$n("const",[e,r.$value(n).$to_sym()],r.$constant_map(e,t,n))},se.$$arity=3),e.defn($n,"$__ENCODING__",oe=function(e){var t=this;return t.$n0("__ENCODING__",t.$token_map(e))},oe.$$arity=1),e.defn($n,"$assignable",ce=function(t){var n,r=this,$=a,i=a;return $=t.$type(),"cvar"["$==="]($)?t.$updated("cvasgn"):"ivar"["$==="]($)?t.$updated("ivasgn"):"gvar"["$==="]($)?t.$updated("gvasgn"):"const"["$==="]($)?(u(r.parser["$in_def?"]())&&r.$diagnostic("error","dynamic_const",a,t.$loc().$expression()),t.$updated("casgn")):"ident"["$==="]($)?(n=[].concat(e.to_a(t)),i=null==n[0]?a:n[0],r.parser.$static_env().$declare(i),t.$updated("lvasgn")):"nil"["$==="]($)||"self"["$==="]($)||"true"["$==="]($)||"false"["$==="]($)||"__FILE__"["$==="]($)||"__LINE__"["$==="]($)||"__ENCODING__"["$==="]($)?r.$diagnostic("error","invalid_assignment",a,t.$loc().$expression()):"back_ref"["$==="]($)||"nth_ref"["$==="]($)?r.$diagnostic("error","backref_assignment",a,t.$loc().$expression()):a},ce.$$arity=1),e.defn($n,"$const_op_assignable",_e=function(e){return e.$updated("casgn")},_e.$$arity=1),e.defn($n,"$assign",ue=function(e,t,n){var r=this;return e["$<<"](n).$updated(a,a,_(["location"],{location:e.$loc().$with_operator(r.$loc(t)).$with_expression(r.$join_exprs(e,n))}))},ue.$$arity=3),e.defn($n,"$op_assign",le=function(e,t,n){var r=this,$=a,i=a,s=a;return $=e.$type(),"gvasgn"["$==="]($)||"ivasgn"["$==="]($)||"lvasgn"["$==="]($)||"cvasgn"["$==="]($)||"casgn"["$==="]($)||"send"["$==="]($)||"csend"["$==="]($)?(i=r.$value(t)["$[]"](d(0,-1,!1)).$to_sym(),s=e.$loc().$with_operator(r.$loc(t)).$with_expression(r.$join_exprs(e,n)),$=i,"&&"["$==="]($)?r.$n("and_asgn",[e,n],s):"||"["$==="]($)?r.$n("or_asgn",[e,n],s):r.$n("op_asgn",[e,i,n],s)):"back_ref"["$==="]($)||"nth_ref"["$==="]($)?r.$diagnostic("error","backref_assignment",a,e.$loc().$expression()):a},le.$$arity=3),e.defn($n,"$multi_lhs",de=function(t,n,r){var $=this;return $.$n("mlhs",[].concat(e.to_a(n)),$.$collection_map(t,n,r))},de.$$arity=3),e.defn($n,"$multi_assign",pe=function(e,t,n){var r=this;return r.$n("masgn",[e,n],r.$binary_op_map(e,t,n))},pe.$$arity=3),e.defn($n,"$def_class",fe=function(e,t,n,r,$,i){var a=this;return a.$n("class",[t,r,$],a.$module_definition_map(e,t,n,i))},fe.$$arity=6),e.defn($n,"$def_sclass",ge=function(e,t,n,r,$){var i=this;return i.$n("sclass",[n,r],i.$module_definition_map(e,a,t,$))},ge.$$arity=5),e.defn($n,"$def_module",he=function(e,t,n,r){var $=this;return $.$n("module",[t,n],$.$module_definition_map(e,t,a,r))},he.$$arity=4),e.defn($n,"$def_method",me=function(e,t,n,r,$){var i=this;return i.$n("def",[i.$value(t).$to_sym(),n,r],i.$definition_map(e,a,t,$))},me.$$arity=5),e.defn($n,"$def_singleton",ye=function(e,t,n,r,$,i,s){var o=this,c=a;return c=t.$type(),"int"["$==="](c)||"str"["$==="](c)||"dstr"["$==="](c)||"sym"["$==="](c)||"dsym"["$==="](c)||"regexp"["$==="](c)||"array"["$==="](c)||"hash"["$==="](c)?o.$diagnostic("error","singleton_literal",a,t.$loc().$expression()):o.$n("defs",[t,o.$value(r).$to_sym(),$,i],o.$definition_map(e,n,r,s))},ye.$$arity=7),e.defn($n,"$undef_method",ve=function(t,n){var r=this;return r.$n("undef",[].concat(e.to_a(n)),r.$keyword_map(t,a,n,a))},ve.$$arity=2),e.defn($n,"$alias",be=function(e,t,n){var r=this;return r.$n("alias",[t,n],r.$keyword_map(e,a,[t,n],a))},be.$$arity=3),e.defn($n,"$args",ke=function(e,t,n,r){var $=this;return null==r&&(r=!0),u(r)&&(t=$.$check_duplicate_args(t)),$.$n("args",t,$.$collection_map(e,t,n))},ke.$$arity=-4),e.defn($n,"$arg",xe=function(e){var t=this;return t.$n("arg",[t.$value(e).$to_sym()],t.$variable_map(e))},xe.$$arity=1),e.defn($n,"$optarg",Ee=function(e,t,n){var r=this;return r.$n("optarg",[r.$value(e).$to_sym(),n],r.$variable_map(e).$with_operator(r.$loc(t)).$with_expression(r.$loc(e).$join(n.$loc().$expression())))},Ee.$$arity=3),e.defn($n,"$restarg",we=function(e,t){var n=this;return null==t&&(t=a),u(t)?n.$n("restarg",[n.$value(t).$to_sym()],n.$arg_prefix_map(e,t)):n.$n0("restarg",n.$arg_prefix_map(e))},we.$$arity=-2),e.defn($n,"$kwarg",Re=function(e){var t=this;return t.$n("kwarg",[t.$value(e).$to_sym()],t.$kwarg_map(e))},Re.$$arity=1),e.defn($n,"$kwoptarg",Ne=function(e,t){var n=this;return n.$n("kwoptarg",[n.$value(e).$to_sym(),t],n.$kwarg_map(e,t))},Ne.$$arity=2),e.defn($n,"$kwrestarg",Ae=function(e,t){var n=this;return null==t&&(t=a),u(t)?n.$n("kwrestarg",[n.$value(t).$to_sym()],n.$arg_prefix_map(e,t)):n.$n0("kwrestarg",n.$arg_prefix_map(e))},Ae.$$arity=-2),e.defn($n,"$shadowarg",Se=function(e){var t=this;return t.$n("shadowarg",[t.$value(e).$to_sym()],t.$variable_map(e))},Se.$$arity=1),e.defn($n,"$blockarg",Te=function(e,t){var n=this;return n.$n("blockarg",[n.$value(t).$to_sym()],n.$arg_prefix_map(e,t))},Te.$$arity=2),e.defn($n,"$procarg0",qe=function(e){return u(this.$class().$emit_procarg0())?e.$updated("procarg0"):e},qe.$$arity=1),e.defn($n,"$arg_expr",Oe=function(e){var t=this;return e.$type()["$=="]("lvasgn")?e.$updated("arg"):t.$n("arg_expr",[e],e.$loc().$dup())},Oe.$$arity=1),e.defn($n,"$restarg_expr",Ie=function(e,t){var n=this;return null==t&&(t=a),u(t["$nil?"]())?n.$n0("restarg",n.$token_map(e)):t.$type()["$=="]("lvasgn")?t.$updated("restarg"):n.$n("restarg_expr",[t],t.$loc().$dup())},Ie.$$arity=-2),e.defn($n,"$blockarg_expr",ze=function(e,t){var n=this;return t.$type()["$=="]("lvasgn")?t.$updated("blockarg"):n.$n("blockarg_expr",[t],t.$loc().$dup())},ze.$$arity=2),e.defn($n,"$objc_kwarg",Ce=function(n,r,$){var i=this,s=a,o=a;return s=i.$loc(n),o=u(r["$nil?"]())?(s=s.$resize(t(s.$size(),1))).$end().$resize(1):i.$loc(r),i.$n("objc_kwarg",[i.$value(n).$to_sym(),i.$value($).$to_sym()],e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"ObjcKwarg").$new(s,o,i.$loc($),s.$join(i.$loc($))))},Ce.$$arity=3),e.defn($n,"$objc_restarg",Pe=function(e,t){var n=this;return null==t&&(t=a),u(t["$nil?"]())?n.$n0("restarg",n.$arg_prefix_map(e)):t.$type()["$=="]("arg")?t.$updated("restarg",a,_(["location"],{location:t.$loc().$with_operator(n.$loc(e))})):n.$n("objc_restarg",[t],n.$unary_op_map(e,t))},Pe.$$arity=-2),e.defn($n,"$call_type_for_dot",Be=function(e){var t,n=this;return u(u(t=e["$nil?"]()["$!"]())?n.$value(e)["$=="]("anddot"):t)?"csend":"send"},Be.$$arity=1),e.defn($n,"$call_method",Ge=function(t,n,r,$,i,s){var o=this,c=a;return null==$&&($=a),null==i&&(i=[]),null==s&&(s=a),c=o.$call_type_for_dot(n),u(r["$nil?"]())?o.$n(c,[t,"call"].concat(e.to_a(i)),o.$send_map(t,n,a,$,i,s)):o.$n(c,[t,o.$value(r).$to_sym()].concat(e.to_a(i)),o.$send_map(t,n,r,$,i,s))},Ge.$$arity=-4),e.defn($n,"$call_lambda",De=function(e){var t=this;return u(t.$class().$emit_lambda())?t.$n0("lambda",t.$expr_map(t.$loc(e))):t.$n("send",[a,"lambda"],t.$send_map(a,a,e))},De.$$arity=1),e.defn($n,"$block",Le=function(t,n,r,$,i){var o,c=this,_=a,l=a,d=a,p=a;return null==(o=[].concat(e.to_a(t)))[0]?a:o[0],null==o[1]?a:o[1],_=s.call(o,2),t.$type()["$=="]("yield")&&c.$diagnostic("error","block_given_to_yield",a,t.$loc().$keyword(),[c.$loc(n)]),l=_.$last(),u(u(o=l)?l.$type()["$=="]("block_pass"):o)&&c.$diagnostic("error","block_and_blockarg",a,l.$loc().$expression(),[c.$loc(n)]),u(["send","csend","super","zsuper","lambda"]["$include?"](t.$type()))?c.$n("block",[t,r,$],c.$block_map(t.$loc().$expression(),n,i)):(d=null==(o=[].concat(e.to_a(t)))[0]?a:o[0],p=c.$n("block",[d,r,$],c.$block_map(d.$loc().$expression(),n,i)),c.$n(t.$type(),[p],t.$loc().$with_expression(c.$join_exprs(t,p))))},Le.$$arity=5),e.defn($n,"$block_pass",Me=function(e,t){var n=this;return n.$n("block_pass",[t],n.$unary_op_map(e,t))},Me.$$arity=2),e.defn($n,"$objc_varargs",je=function(t,n){var r,$=this,i=a,s=a,o=a;return i=null==(r=[].concat(e.to_a(t)))[0]?a:r[0],s=null==r[1]?a:r[1],o=$.$array(a,[s].concat(e.to_a(n)),a).$updated("objc_varargs"),t.$updated(a,[i,o],_(["location"],{location:t.$loc().$with_expression(t.$loc().$expression().$join(o.$loc().$expression()))}))},je.$$arity=2),e.defn($n,"$attr_asgn",He=function(e,t,r){var $=this,i=a,s=a;return i=n($.$value(r),"=").$to_sym(),s=$.$call_type_for_dot(t),$.$n(s,[e,i],$.$send_map(e,t,r))},He.$$arity=3),e.defn($n,"$index",Fe=function(t,n,r,$){var i=this;return i.$n("send",[t,"[]"].concat(e.to_a(r)),i.$send_index_map(t,n,$))},Fe.$$arity=4),e.defn($n,"$index_asgn",Ue=function(t,n,r,$){var i=this;return i.$n("send",[t,"[]="].concat(e.to_a(r)),i.$send_index_map(t,n,$))},Ue.$$arity=4),e.defn($n,"$binary_op",Ye=function(e,t,n){var r=this,$=a,i=a,s=a;return $=r.$send_binary_op_map(e,t,n),r.parser.$version()["$=="](18)&&((i=r.$value(t))["$=="]("!=")?s=r.$n("send",[e,"==",n],$):i["$=="]("!~")&&(s=r.$n("send",[e,"=~",n],$)),u(["!=","!~"]["$include?"](i)))?r.$n("not",[s],r.$expr_map($.$expression())):r.$n("send",[e,r.$value(t).$to_sym(),n],$)},Ye.$$arity=3),e.defn($n,"$match_op",Xe=function(e,t,n){var r,$=this,i=a,s=a;return i=$.$send_binary_op_map(e,t,n),u(s=$.$static_regexp_node(e))?(l(s.$names(),"each",[],((r=function(e){var t=r.$$s||this;return null==t.parser&&(t.parser=a),null==e&&(e=a),t.parser.$static_env().$declare(e)}).$$s=$,r.$$arity=1,r)),$.$n("match_with_lvasgn",[e,n],i)):$.$n("send",[e,"=~",n],i)},Xe.$$arity=3),e.defn($n,"$unary_op",Ke=function(e,t){var r=this,$=a,i=a;return $=r.$value(e),i="+"["$==="]($)||"-"["$==="]($)?n(r.$value(e),"@"):r.$value(e),r.$n("send",[t,i.$to_sym()],r.$send_unary_op_map(e,t))},Ke.$$arity=2),e.defn($n,"$not_op",Ve=function(e,t,n,r){var $=this,i=a;return null==t&&(t=a),null==n&&(n=a),null==r&&(r=a),$.parser.$version()["$=="](18)?$.$n("not",[n],$.$unary_op_map(e,n)):u(n["$nil?"]())?(i=$.$n0("begin",$.$collection_map(t,a,r)),$.$n("send",[i,"!"],$.$send_unary_op_map(e,i))):$.$n("send",[n,"!"],$.$send_map(a,a,e,t,[n],r))},Ve.$$arity=-2),e.defn($n,"$logical_op",We=function(e,t,n,r){var $=this;return $.$n(e,[t,r],$.$binary_op_map(t,n,r))},We.$$arity=4),e.defn($n,"$condition",Qe=function(e,t,n,r,$,i,a){var s=this;return s.$n("if",[s.$check_condition(t),r,i],s.$condition_map(e,t,n,r,$,i,a))},Qe.$$arity=7),e.defn($n,"$condition_mod",Je=function(e,t,n,r){var $,i=this;return i.$n("if",[i.$check_condition(r),e,t],i.$keyword_mod_map(u($=e)?$:t,n,r))},Je.$$arity=4),e.defn($n,"$ternary",Ze=function(e,t,n,r,$){var i=this;return i.$n("if",[i.$check_condition(e),n,$],i.$ternary_map(e,t,n,r,$))},Ze.$$arity=5),e.defn($n,"$when",et=function(e,t,n,r){var $=this,i=a;return i=t["$<<"](r),$.$n("when",i,$.$keyword_map(e,n,i,a))},et.$$arity=4),e.defn($n,"$case",tt=function(t,n,r,$,i,s){var o=this;return o.$n("case",[n].concat(e.to_a(r["$<<"](i))),o.$condition_map(t,n,a,a,$,i,s))},tt.$$arity=6),e.defn($n,"$loop",nt=function(e,t,n,r,$,i){var s=this;return s.$n(e,[s.$check_condition(n),$],s.$keyword_map(t,r,a,i))},nt.$$arity=6),e.defn($n,"$loop_mod",rt=function(e,t,n,r){var $=this;return t.$type()["$=="]("kwbegin")&&(e+="_post"),$.$n(e,[$.$check_condition(r),t],$.$keyword_mod_map(t,n,r))},rt.$$arity=4),e.defn($n,"$for",$t=function(e,t,n,r,$,i,a){var s=this;return s.$n("for",[t,r,i],s.$for_map(e,n,$,a))},$t.$$arity=7),e.defn($n,"$keyword_cmd",it=function(e,t,n,$,i){var s=this,o=a;return null==n&&(n=a),null==$&&($=[]),null==i&&(i=a),u(e["$=="]("yield")?r($.$count(),0):e["$=="]("yield"))&&(o=$.$last()).$type()["$=="]("block_pass")&&s.$diagnostic("error","block_given_to_yield",a,s.$loc(t),[o.$loc().$expression()]),s.$n(e,$,s.$keyword_map(t,n,$,i))},it.$$arity=-3),e.defn($n,"$preexe",at=function(e,t,n,r){var $=this;return $.$n("preexe",[n],$.$keyword_map(e,t,[],r))},at.$$arity=4),e.defn($n,"$postexe",st=function(e,t,n,r){var $=this;return $.$n("postexe",[n],$.$keyword_map(e,t,[],r))},st.$$arity=4),e.defn($n,"$rescue_body",ot=function(e,t,n,r,$,i){var a=this;return a.$n("resbody",[t,r,i],a.$rescue_body_map(e,t,n,r,$,i))},ot.$$arity=6),e.defn($n,"$begin_body",ct=function(t,r,$,i,s,o){var c=this,_=a;return null==r&&(r=[]),null==$&&($=a),null==i&&(i=a),null==s&&(s=a),null==o&&(o=a),u(r["$any?"]())?t=u($)?c.$n("rescue",[t].concat(e.to_a(n(r,[i]))),c.$eh_keyword_map(t,a,r,$,i)):c.$n("rescue",[t].concat(e.to_a(n(r,[a]))),c.$eh_keyword_map(t,a,r,a,a)):u($)&&(_=[],u(t["$nil?"]()["$!"]())&&(t.$type()["$=="]("begin")?_=n(_,t.$children()):_.$push(t)),_.$push(c.$n("begin",[i],c.$collection_map($,[i],a))),t=c.$n("begin",_,c.$collection_map(a,_,a))),u(s)&&(t=c.$n("ensure",[t,o],c.$eh_keyword_map(t,s,[o],a,a))),t},ct.$$arity=-2),e.defn($n,"$compstmt",_t=function(e){var t=this;return u(e["$none?"]())?a:u(e["$one?"]())?e.$first():t.$n("begin",e,t.$collection_map(a,e,a))},_t.$$arity=1),e.defn($n,"$begin",ut=function(e,t,n){var r,$,i=this;return u(t["$nil?"]())?i.$n0("begin",i.$collection_map(e,a,n)):u(u(r=t.$type()["$=="]("mlhs"))?r:u($=t.$type()["$=="]("begin")?t.$loc().$begin()["$nil?"]():t.$type()["$=="]("begin"))?t.$loc().$end()["$nil?"]():$)?i.$n(t.$type(),t.$children(),i.$collection_map(e,t.$children(),n)):i.$n("begin",[t],i.$collection_map(e,[t],n))},ut.$$arity=3),e.defn($n,"$begin_keyword",lt=function(e,t,n){var r,$=this;return u(t["$nil?"]())?$.$n0("kwbegin",$.$collection_map(e,a,n)):u(u(r=t.$type()["$=="]("begin")?t.$loc().$begin()["$nil?"]():t.$type()["$=="]("begin"))?t.$loc().$end()["$nil?"]():r)?$.$n("kwbegin",t.$children(),$.$collection_map(e,t.$children(),n)):$.$n("kwbegin",[t],$.$collection_map(e,[t],n))},lt.$$arity=3),$n.$private(),e.defn($n,"$check_condition",dt=function(t){var n,r=this,i=a,s=a,o=a,c=a;return i=t.$type(),"masgn"["$==="](i)?u($(r.parser.$version(),23))?r.$diagnostic("error","masgn_as_condition",a,t.$loc().$expression()):a:"begin"["$==="](i)?t.$children().$count()["$=="](1)?t.$updated(a,[r.$check_condition(t.$children().$last())]):t:"and"["$==="](i)||"or"["$==="](i)||"irange"["$==="](i)||"erange"["$==="](i)?(n=[].concat(e.to_a(t)),s=null==n[0]?a:n[0],o=null==n[1]?a:n[1],i=t.$type(),c="irange"["$==="](i)?"iflipflop":"erange"["$==="](i)?"eflipflop":a,u(u(n=["and","or"]["$include?"](t.$type()))?r.parser.$version()["$=="](18):n)?t:t.$updated(c,[r.$check_condition(s),r.$check_condition(o)])):"regexp"["$==="](i)?r.$n("match_current_line",[t],r.$expr_map(t.$loc().$expression())):t},dt.$$arity=1),e.defn($n,"$check_duplicate_args",pt=function(n,r){var $,i=this;return null==r&&(r=_([],{})),l(n,"each",[],(($=function(n){var i,s=$.$$s||this,o=a,c=a,_=a,d=a,p=a;return null==n&&(n=a),o=n.$type(),"arg"["$==="](o)||"optarg"["$==="](o)||"restarg"["$==="](o)||"blockarg"["$==="](o)||"kwarg"["$==="](o)||"kwoptarg"["$==="](o)||"kwrestarg"["$==="](o)||"shadowarg"["$==="](o)||"procarg0"["$==="](o)?(i=[].concat(e.to_a(n)),c=null==i[0]?a:i[0],_=r["$[]"](c),i=[].concat(e.to_a(_)),d=null==i[0]?a:i[0],u(_["$nil?"]())?(p=[c,n],l(r,"[]=",e.to_a(p)),p[t(p.length,1)]):u(s["$arg_name_collides?"](c,d))?s.$diagnostic("error","duplicate_argument",a,n.$loc().$name(),[_.$loc().$name()]):a):"mlhs"["$==="](o)?s.$check_duplicate_args(n.$children(),r):a}).$$s=i,$.$$arity=1,$))},pt.$$arity=-2),e.defn($n,"$arg_name_collides?",ft=function(e,t){var n,r,$=a;return $=this.parser.$version(),18["$==="]($)?e["$=="](t):19["$==="]($)?u(n=e["$!="]("_"))?e["$=="](t):n:u(n=u(r=e)?e["$[]"](0)["$!="]("_"):r)?e["$=="](t):n},ft.$$arity=2),e.defn($n,"$n",gt=function(t,n,r){return e.const_get_qualified(e.const_get_relative(sn,"AST"),"Node").$new(t,n,_(["location"],{location:r}))},gt.$$arity=3),e.defn($n,"$n0",ht=function(e,t){return this.$n(e,[],t)},ht.$$arity=2),e.defn($n,"$join_exprs",mt=function(e,t){return e.$loc().$expression().$join(t.$loc().$expression())},mt.$$arity=2),e.defn($n,"$token_map",yt=function(t){var n=this;return e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map").$new(n.$loc(t))},yt.$$arity=1),e.defn($n,"$delimited_string_map",vt=function(r){var $=this,i=a,s=a,o=a;return i=$.$loc(r),s=e.const_get_qualified(e.const_get_relative(sn,"Source"),"Range").$new(i.$source_buffer(),i.$begin_pos(),n(i.$begin_pos(),1)),o=e.const_get_qualified(e.const_get_relative(sn,"Source"),"Range").$new(i.$source_buffer(),t(i.$end_pos(),1),i.$end_pos()),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Collection").$new(s,o,$.$loc(r))},vt.$$arity=1),e.defn($n,"$prefix_string_map",bt=function(t){var r=this,$=a,i=a;return $=r.$loc(t),i=e.const_get_qualified(e.const_get_relative(sn,"Source"),"Range").$new($.$source_buffer(),$.$begin_pos(),n($.$begin_pos(),1)),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Collection").$new(i,a,r.$loc(t))},bt.$$arity=1),e.defn($n,"$unquoted_map",kt=function(t){var n=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Collection").$new(a,a,n.$loc(t))},kt.$$arity=1),e.defn($n,"$pair_keyword_map",xt=function(n,r){var $=a,i=a,s=a;return $=this.$loc(n),i=e.const_get_qualified(e.const_get_relative(sn,"Source"),"Range").$new($.$source_buffer(),$.$begin_pos(),t($.$end_pos(),1)),s=e.const_get_qualified(e.const_get_relative(sn,"Source"),"Range").$new($.$source_buffer(),t($.$end_pos(),1),$.$end_pos()),[e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Collection").$new(a,a,i),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Operator").$new(s,$.$join(r.$loc().$expression()))]},xt.$$arity=2),e.defn($n,"$pair_quoted_map",Et=function(n,r,$){var i=this,s=a,o=a,c=a;return s=i.$loc(r),o=e.const_get_qualified(e.const_get_relative(sn,"Source"),"Range").$new(s.$source_buffer(),t(s.$end_pos(),2),t(s.$end_pos(),1)),c=e.const_get_qualified(e.const_get_relative(sn,"Source"),"Range").$new(s.$source_buffer(),t(s.$end_pos(),1),s.$end_pos()),[[i.$value(r),o],e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Operator").$new(c,i.$loc(n).$join($.$loc().$expression()))]},Et.$$arity=3),e.defn($n,"$expr_map",wt=function(t){return e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map").$new(t)},wt.$$arity=1),e.defn($n,"$collection_map",Rt=function(t,n,r){var $,i=this,s=a;return u(u($=t["$nil?"]())?$:r["$nil?"]())?u(n["$any?"]())&&(s=i.$join_exprs(n.$first(),n.$last())):s=i.$loc(t).$join(i.$loc(r)),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Collection").$new(i.$loc(t),i.$loc(r),s)},Rt.$$arity=3),e.defn($n,"$string_map",Nt=function(t,n,r){var $,i=this,s=a;return u(u($=t)?i.$value(t)["$start_with?"]("<<"):$)?(s=u(n["$any?"]())?i.$join_exprs(n.$first(),n.$last()):i.$loc(r).$begin(),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Heredoc").$new(i.$loc(t),s,i.$loc(r))):i.$collection_map(t,n,r)},Nt.$$arity=3),e.defn($n,"$regexp_map",At=function(t,n,r){var $=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Collection").$new($.$loc(t),$.$loc(n),$.$loc(t).$join(r.$loc().$expression()))},At.$$arity=3),e.defn($n,"$constant_map",St=function(t,n,r){var $=this,i=a;return i=u(t["$nil?"]())?$.$loc(r):t.$loc().$expression().$join($.$loc(r)),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Constant").$new($.$loc(n),$.$loc(r),i)},St.$$arity=3),e.defn($n,"$variable_map",Tt=function(t){var n=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Variable").$new(n.$loc(t))},Tt.$$arity=1),e.defn($n,"$binary_op_map",qt=function(t,n,r){var $=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Operator").$new($.$loc(n),$.$join_exprs(t,r))},qt.$$arity=3),e.defn($n,"$unary_op_map",Ot=function(t,n){var r=this,$=a;return null==n&&(n=a),$=u(n["$nil?"]())?r.$loc(t):r.$loc(t).$join(n.$loc().$expression()),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Operator").$new(r.$loc(t),$)},Ot.$$arity=-2),e.defn($n,"$arg_prefix_map",It=function(t,n){var r=this,$=a;return null==n&&(n=a),$=u(n["$nil?"]())?r.$loc(t):r.$loc(t).$join(r.$loc(n)),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Variable").$new(r.$loc(n),$)},It.$$arity=-2),e.defn($n,"$kwarg_map",zt=function(n,r){var $=this,i=a,s=a,o=a;return null==r&&(r=a),i=$.$loc(n),s=e.const_get_qualified(e.const_get_relative(sn,"Source"),"Range").$new(i.$source_buffer(),i.$begin_pos(),t(i.$end_pos(),1)),o=u(r)?$.$loc(n).$join(r.$loc().$expression()):$.$loc(n),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Variable").$new(s,o)},zt.$$arity=-2),e.defn($n,"$module_definition_map",Ct=function(t,n,r,$){var i=this,s=a;return u(n)&&(s=n.$loc().$expression()),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Definition").$new(i.$loc(t),i.$loc(r),s,i.$loc($))},Ct.$$arity=4),e.defn($n,"$definition_map",Pt=function(t,n,r,$){var i=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Definition").$new(i.$loc(t),i.$loc(n),i.$loc(r),i.$loc($))},Pt.$$arity=4),e.defn($n,"$send_map",Bt=function(t,n,r,$,i,s){var o=this,c=a,_=a;return null==$&&($=a),null==i&&(i=[]),null==s&&(s=a),u(t)?c=t.$loc().$expression():u(r)&&(c=o.$loc(r)),u(s)?_=o.$loc(s):u(i["$any?"]())?_=i.$last().$loc().$expression():u(r)&&(_=o.$loc(r)),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Send").$new(o.$loc(n),o.$loc(r),o.$loc($),o.$loc(s),c.$join(_))},Bt.$$arity=-4),e.defn($n,"$var_send_map",Gt=function(t){ -return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Send").$new(a,t.$loc().$expression(),a,a,t.$loc().$expression())},Gt.$$arity=1),e.defn($n,"$send_binary_op_map",Dt=function(t,n,r){var $=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Send").$new(a,$.$loc(n),a,a,$.$join_exprs(t,r))},Dt.$$arity=3),e.defn($n,"$send_unary_op_map",Lt=function(t,n){var r=this,$=a;return $=u(n["$nil?"]())?r.$loc(t):r.$loc(t).$join(n.$loc().$expression()),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Send").$new(a,r.$loc(t),a,a,$)},Lt.$$arity=2),e.defn($n,"$send_index_map",Mt=function(t,n,r){var $=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Send").$new(a,$.$loc(n).$join($.$loc(r)),a,a,t.$loc().$expression().$join($.$loc(r)))},Mt.$$arity=3),e.defn($n,"$block_map",jt=function(t,n,r){var $=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Collection").$new($.$loc(n),$.$loc(r),t.$join($.$loc(r)))},jt.$$arity=3),e.defn($n,"$keyword_map",Ht=function(t,n,$,i){var s,o=this,c=a;return $=u(s=$)?s:[],c=u(i)?o.$loc(i):u(u(s=$["$any?"]())?$.$last()["$nil?"]()["$!"]():s)?$.$last().$loc().$expression():u(u(s=$["$any?"]())?r($.$count(),1):s)?$["$[]"](-2).$loc().$expression():o.$loc(t),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Keyword").$new(o.$loc(t),o.$loc(n),o.$loc(i),o.$loc(t).$join(c))},Ht.$$arity=4),e.defn($n,"$keyword_mod_map",Ft=function(t,n,r){var $=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Keyword").$new($.$loc(n),a,a,$.$join_exprs(t,r))},Ft.$$arity=3),e.defn($n,"$condition_map",Ut=function(t,n,r,$,i,s,o){var c,_=this,l=a;return l=u(o)?_.$loc(o):u(u(c=s)?s.$loc().$expression():c)?s.$loc().$expression():u(_.$loc(i))?_.$loc(i):u(u(c=$)?$.$loc().$expression():c)?$.$loc().$expression():u(_.$loc(r))?_.$loc(r):n.$loc().$expression(),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Condition").$new(_.$loc(t),_.$loc(r),_.$loc(i),_.$loc(o),_.$loc(t).$join(l))},Ut.$$arity=7),e.defn($n,"$ternary_map",Yt=function(t,n,r,$,i){var a=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Ternary").$new(a.$loc(n),a.$loc($),a.$join_exprs(t,i))},Yt.$$arity=5),e.defn($n,"$for_map",Xt=function(t,n,r,$){var i=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"For").$new(i.$loc(t),i.$loc(n),i.$loc(r),i.$loc($),i.$loc(t).$join(i.$loc($)))},Xt.$$arity=4),e.defn($n,"$rescue_body_map",Kt=function(t,n,r,$,i,s){var o,c=this,_=a;return u(s)&&(_=s.$loc().$expression()),u(u(o=_["$nil?"]())?i:o)&&(_=c.$loc(i)),u(u(o=_["$nil?"]())?$:o)&&(_=$.$loc().$expression()),u(u(o=_["$nil?"]())?n:o)&&(_=n.$loc().$expression()),u(_["$nil?"]())&&(_=c.$loc(t)),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"RescueBody").$new(c.$loc(t),c.$loc(r),c.$loc(i),c.$loc(t).$join(_))},Kt.$$arity=6),e.defn($n,"$eh_keyword_map",Vt=function(t,n,r,$,i){var s=this,o=a,c=a;return o=u(t["$nil?"]())?u(n["$nil?"]())?r.$first().$loc().$expression():s.$loc(n):t.$loc().$expression(),c=u($)?u(i["$nil?"]())?s.$loc($):i.$loc().$expression():u(r.$last()["$nil?"]()["$!"]())?r.$last().$loc().$expression():s.$loc(n),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(sn,"Source"),"Map"),"Condition").$new(s.$loc(n),a,s.$loc($),a,o.$join(c))},Vt.$$arity=5),e.defn($n,"$static_string",Wt=function(t){try{var n,r=this;return l(t,"map",[],(n=function(t){var r=n.$$s||this,$=a,i=a;return null==t&&(t=a),function(){if($=t.$type(),"str"["$==="]($))return t.$children()["$[]"](0);if("begin"["$==="]($)){if(u(i=r.$static_string(t.$children())))return i;e.ret(a)}else e.ret(a)}()},n.$$s=r,n.$$arity=1,n)).$join()}catch($){if($===e.returner)return $.$v;throw $}},Wt.$$arity=1),e.defn($n,"$static_regexp",Qt=function(t,n){var r=a;return r=this.$static_string(t),u(r["$nil?"]())?a:(u(e.const_get_relative(sn,"Encoding","skip_raise")?"constant":a)&&(r=u(n.$children()["$include?"]("u"))?r.$encode(e.const_get_qualified(e.const_get_relative(sn,"Encoding"),"UTF_8")):u(n.$children()["$include?"]("e"))?r.$encode(e.const_get_qualified(e.const_get_relative(sn,"Encoding"),"EUC_JP")):u(n.$children()["$include?"]("s"))?r.$encode(e.const_get_qualified(e.const_get_relative(sn,"Encoding"),"WINDOWS_31J")):u(n.$children()["$include?"]("n"))?r.$encode(e.const_get_qualified(e.const_get_relative(sn,"Encoding"),"BINARY")):r),e.const_get_relative(sn,"Regexp").$new(r,u(n.$children()["$include?"]("x"))?e.const_get_qualified(e.const_get_relative(sn,"Regexp"),"EXTENDED"):a))},Qt.$$arity=2),e.defn($n,"$static_regexp_node",Jt=function(e){var t,n=this,r=a,$=a;return e.$type()["$=="]("regexp")?(r=(t=[e.$children()["$[]"](d(0,-2,!1)),e.$children()["$[]"](-1)])[0],$=t[1],n.$static_regexp(r,$)):a},Jt.$$arity=1),e.defn($n,"$collapse_string_parts?",Zt=function(e){var t;return u(t=e["$one?"]())?["str","dstr"]["$include?"](e.$first().$type()):t},Zt.$$arity=1),e.defn($n,"$value",en=function(e){return e["$[]"](0)},en.$$arity=1),u(e.const_get_relative(sn,"Encoding","skip_raise")?"constant":a)?e.defn($n,"$string_value",tn=function(e){var t=this;return u(e["$[]"](0)["$valid_encoding?"]())||t.$diagnostic("error","invalid_encoding",a,e["$[]"](1)),e["$[]"](0)},tn.$$arity=1):e.alias($n,"string_value","value"),e.defn($n,"$loc",nn=function(e){var t;return u(u(t=e)?e["$[]"](0):t)?e["$[]"](1):a},nn.$$arity=1),e.defn($n,"$diagnostic",rn=function(t,n,r,$,i){var s=this;return null==i&&(i=[]),s.parser.$diagnostics().$process(e.const_get_relative(sn,"Diagnostic").$new(t,n,r,$,i)),t["$=="]("error")?s.parser.$send("yyerror"):a},rn.$$arity=-5)}(e.const_get_relative(g,"Builders"),0,g)}(i[0],i)},Opal.modules["parser/base"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var r=[],$=e.nil,i=(e.breaker,e.slice,e.module),a=e.klass,s=e.send,o=e.gvars,c=e.truthy,_=e.hash2;return e.add_stubs(["$default_parser","$setup_source_buffer","$default_encoding","$parse","$parse_with_comments","$read","$new","$all_errors_are_fatal=","$diagnostics","$-","$ignore_warnings=","$lambda","$puts","$render","$consumer=","$respond_to?","$force_encoding","$dup","$==","$name","$raw_source=","$source=","$private_class_method","$attr_reader","$version","$diagnostics=","$static_env=","$parser=","$class","$[]","$reset","$source_buffer=","$do_parse","$comments=","$comments","$tokens=","$!","$raise","$tokens","$>","$private","$advance","$===","$diagnostic","$map","$process","$yyerror","$token_to_str"]),function(r,u){var l=i(r,"Parser"),d=(l.$$proto,[l].concat(u));!function(r,$super,i){function u(){}var l,d,p,f,g,h,m,y,v,b,k,x,E,w,R,N,A=u=a(r,$super,"Base",u),S=A.$$proto,T=[A].concat(i);S.diagnostics=S.lexer=S.static_env=S.builder=S.def_level=$,e.defs(A,"$parse",l=function(e,t,n){var r=this,i=$,a=$;return null==t&&(t="(string)"),null==n&&(n=1),i=r.$default_parser(),a=r.$setup_source_buffer(t,n,e,i.$default_encoding()),i.$parse(a)},l.$$arity=-2),e.defs(A,"$parse_with_comments",d=function(e,t,n){var r=this,i=$,a=$;return null==t&&(t="(string)"),null==n&&(n=1),i=r.$default_parser(),a=r.$setup_source_buffer(t,n,e,i.$default_encoding()),i.$parse_with_comments(a)},d.$$arity=-2),e.defs(A,"$parse_file",p=function(t){return this.$parse(e.const_get_relative(T,"File").$read(t),t)},p.$$arity=1),e.defs(A,"$parse_file_with_comments",f=function(t){return this.$parse_with_comments(e.const_get_relative(T,"File").$read(t),t)},f.$$arity=1),e.defs(A,"$default_parser",g=function(){var n,r=this,i=$,a=$;return i=r.$new(),a=[!0],s(i.$diagnostics(),"all_errors_are_fatal=",e.to_a(a)),a[t(a.length,1)],a=[!0],s(i.$diagnostics(),"ignore_warnings=",e.to_a(a)),a[t(a.length,1)],a=[s(r,"lambda",[],(n=function(e){n.$$s;return null==o.stderr&&(o.stderr=$),null==e&&(e=$),o.stderr.$puts(e.$render())},n.$$s=r,n.$$arity=1,n))],s(i.$diagnostics(),"consumer=",e.to_a(a)),a[t(a.length,1)],i},g.$$arity=0),e.defs(A,"$setup_source_buffer",h=function(n,r,i,a){var o=this,_=$,u=$;return c(i["$respond_to?"]("force_encoding"))&&(i=i.$dup().$force_encoding(a)),_=e.const_get_qualified(e.const_get_relative(T,"Source"),"Buffer").$new(n,r),o.$name()["$=="]("Parser::Ruby18")?(u=[i],s(_,"raw_source=",e.to_a(u)),u[t(u.length,1)]):(u=[i],s(_,"source=",e.to_a(u)),u[t(u.length,1)]),_},h.$$arity=4),A.$private_class_method("setup_source_buffer"),A.$attr_reader("diagnostics"),A.$attr_reader("builder"),A.$attr_reader("static_env"),A.$attr_reader("source_buffer"),e.defn(A,"$initialize",m=function(n){var r,i=this,a=$;return null==n&&(n=e.const_get_qualified(e.const_get_qualified(e.const_get_relative(T,"Parser"),"Builders"),"Default").$new()),i.diagnostics=e.const_get_qualified(e.const_get_relative(T,"Diagnostic"),"Engine").$new(),i.static_env=e.const_get_relative(T,"StaticEnvironment").$new(),i.lexer=e.const_get_relative(T,"Lexer").$new(i.$version()),a=[i.diagnostics],s(i.lexer,"diagnostics=",e.to_a(a)),a[t(a.length,1)],a=[i.static_env],s(i.lexer,"static_env=",e.to_a(a)),a[t(a.length,1)],i.builder=n,a=[i],s(i.builder,"parser=",e.to_a(a)),a[t(a.length,1)],c(c(r=e.const_get_qualified(i.$class(),"Racc_debug_parser"))?e.const_get_relative(T,"ENV")["$[]"]("RACC_DEBUG"):r)&&(i.yydebug=!0),i.$reset()},m.$$arity=-1),e.defn(A,"$reset",y=function(){var e=this;return e.source_buffer=$,e.def_level=0,e.lexer.$reset(),e.static_env.$reset(),e},y.$$arity=0),e.defn(A,"$parse",v=function(n){var r=this,i=$;return function(){try{return i=[n],s(r.lexer,"source_buffer=",e.to_a(i)),i[t(i.length,1)],r.source_buffer=n,r.$do_parse()}finally{r.source_buffer=$,i=[$],s(r.lexer,"source_buffer=",e.to_a(i)),i[t(i.length,1)]}}()},v.$$arity=1),e.defn(A,"$parse_with_comments",b=function(n){var r=this,i=$;return function(){try{return i=[[]],s(r.lexer,"comments=",e.to_a(i)),i[t(i.length,1)],[r.$parse(n),r.lexer.$comments()]}finally{i=[$],s(r.lexer,"comments=",e.to_a(i)),i[t(i.length,1)]}}()},b.$$arity=1),e.defn(A,"$tokenize",k=function(n,r){var i=this,a=$,o=$;return null==r&&(r=!1),function(){try{a=[[]],s(i.lexer,"tokens=",e.to_a(a)),a[t(a.length,1)],a=[[]],s(i.lexer,"comments=",e.to_a(a)),a[t(a.length,1)];try{o=i.$parse(n)}catch(_){if(!e.rescue(_,[e.const_get_qualified(e.const_get_relative(T,"Parser"),"SyntaxError")]))throw _;try{c(r["$!"]())&&i.$raise()}finally{e.pop_exception()}}return[o,i.lexer.$comments(),i.lexer.$tokens()]}finally{a=[$],s(i.lexer,"tokens=",e.to_a(a)),a[t(a.length,1)],a=[$],s(i.lexer,"comments=",e.to_a(a)),a[t(a.length,1)]}}()},k.$$arity=-2),e.defn(A,"$in_def?",x=function(){return n(this.def_level,0)},x.$$arity=0),A.$private(),e.defn(A,"$next_token",E=function(){return this.lexer.$advance()},E.$$arity=0),e.defn(A,"$check_kwarg_name",w=function(e){var t=this,n=$;return n=e["$[]"](0),/^[a-z_]/["$==="](n)?$:/^[A-Z]/["$==="](n)?t.$diagnostic("error","argument_const",$,e):$},w.$$arity=1),e.defn(A,"$diagnostic",R=function(t,n,r,i,a){var o,c,_,u=this,l=$,d=$;return null==a&&(a=[]),c=i,o=e.to_ary(c),null==o[0]?$:o[0],l=null==o[1]?$:o[1],d=s(a,"map",[],((_=function(t){var n,r;_.$$s;return null==t&&(t=$),r=t,n=e.to_ary(r),null==n[0]?$:n[0],null==n[1]?$:n[1]}).$$s=u,_.$$arity=1,_)),u.diagnostics.$process(e.const_get_relative(T,"Diagnostic").$new(t,n,r,l,d)),t["$=="]("error")?u.$yyerror():$},R.$$arity=-5),e.defn(A,"$on_error",N=function(t,n){var r,i,a=this,s=$,o=$;return s=a.$token_to_str(t),i=n,null==(r=e.to_ary(i))[0]?$:r[0],o=null==r[1]?$:r[1],a.diagnostics.$process(e.const_get_relative(T,"Diagnostic").$new("error","unexpected_token",_(["token"],{token:s}),o))},N.$$arity=3)}(d[0],e.const_get_qualified(e.const_get_relative(d,"Racc"),"Parser"),d)}(r[0],r)},Opal.modules["parser/rewriter"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),$=e.klass;return e.add_stubs(["$new","$process","$include?","$type","$remove","$insert_before","$insert_after","$replace"]),function(t,i){var a=r(t,"Parser"),s=(a.$$proto,[a].concat(i));!function(t,$super,r){function i(){}var a,s,o,c,_,u,l=i=$(t,$super,"Rewriter",i),d=l.$$proto,p=[l].concat(r);d.source_rewriter=n,e.defn(l,"$rewrite",a=function(t,n){var r=this;return r.source_rewriter=e.const_get_qualified(e.const_get_relative(p,"Source"),"Rewriter").$new(t),r.$process(n),r.source_rewriter.$process()},a.$$arity=2),e.defn(l,"$assignment?",s=function(e){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](e.$type())},s.$$arity=1),e.defn(l,"$remove",o=function(e){return this.source_rewriter.$remove(e)},o.$$arity=1),e.defn(l,"$insert_before",c=function(e,t){return this.source_rewriter.$insert_before(e,t)},c.$$arity=2),e.defn(l,"$insert_after",_=function(e,t){return this.source_rewriter.$insert_after(e,t)},_.$$arity=2),e.defn(l,"$replace",u=function(e,t){return this.source_rewriter.$replace(e,t)},u.$$arity=2)}(s[0],e.const_get_qualified(e.const_get_qualified(e.const_get_relative(s,"Parser"),"AST"),"Processor"),s)}(t[0],t)},Opal.modules.parser=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e|\&|\||\^|\%|\~|\[/["$=~"](e.$to_s()))?"['$"+e+"']":t(".$",e)},_.$$arity=1),e.defn(y,"$indent",u=function(){var e=this,t=u.$$p,n=t||$;return t&&(u.$$p=null),s(e.$compiler(),"indent",[],n.$to_proc())},u.$$arity=0),e.defn(y,"$current_indent",l=function(){return this.$compiler().$parser_indent()},l.$$arity=0),e.defn(y,"$line",d=function(){var t,n=this,r=arguments.length,$=r-0;$<0&&($=0),t=new Array($);for(var i=0;i>","$&","$attr_accessor","$extract_flags_and_value","$select!","$flags","$=~","$warning","$compiler","$===","$compile_dynamic_regexp","$compile_static_regexp","$any?","$expr","$new","$map","$to_proc","$flags=","$s","$value=","$include?","$is_a?","$==","$updated","$delete","$source","$expression","$loc","$regexp","$each","$first","$raise","$each_with_index","$compile_inline?","$helper","$compile_inline","$compile_range_initialize","$start","$finish","$numerator","$denominator","$real","$imag"]),$.$require("opal/nodes/base"),function($,i){var p=o($,"Opal"),f=(p.$$proto,[p].concat(i));!function($,i){var p=o($,"Nodes"),f=(p.$$proto,[p].concat(i));!function(t,$super,n){function r(){}var $,i,a=r=c(t,$super,"ValueNode",r);a.$$proto,[a].concat(n);a.$handle("true","false","self","nil"),e.defn(a,"$compile",$=function(){var e=this;return e.$push(e.$type().$to_s())},$.$$arity=0),e.defs(a,"$truthy_optimize?",i=function(){return!0},i.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f),function(t,$super,n){function r(){}var $,i,s=r=c(t,$super,"NumericNode",r);s.$$proto,[s].concat(n);s.$handle("int","float"),s.$children("value"),e.defn(s,"$compile",$=function(){var e=this;return e.$push(e.$value().$to_s()),_(e["$recv?"]())?e.$wrap("(",")"):a},$.$$arity=0),e.defs(s,"$truthy_optimize?",i=function(){return!0},i.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f),function($,$super,i){function s(){}var o,p,f,g=s=c($,$super,"StringNode",s),h=(g.$$proto,[g].concat(i));g.$handle("str"),g.$children("value"),e.const_set(h[0],"ESCAPE_CHARS",u(["a","e"],{a:"\\u0007",e:"\\u001b"})),e.const_set(h[0],"ESCAPE_REGEX",new RegExp("(\\\\+)(["+e.const_get_relative(h,"ESCAPE_CHARS").$keys().$join("")+"])")),e.defn(g,"$translate_escape_chars",o=function(n){var r,$=this;return l(n,"gsub",[e.const_get_relative(h,"ESCAPE_REGEX")],((r=function(n){var $;r.$$s;return null==n&&(n=a),_((($=d["~"])===a?a:$["$[]"](1)).$length()["$even?"]())?n:t((($=d["~"])===a?a:$["$[]"](1)).$chop(),e.const_get_relative(h,"ESCAPE_CHARS")["$[]"](($=d["~"])===a?a:$["$[]"](2)))}).$$s=$,r.$$arity=1,r))},o.$$arity=1),e.defn(g,"$compile",p=function(){var t,n,r=this,$=a,i=a,s=a,o=a;return s=(i=($=r.$value()).$encoding())["$!="](e.const_get_qualified(e.const_get_relative(h,"Encoding"),"UTF_8")),_(s)&&($=$.$force_encoding("UTF-8")),o=l($.$inspect(),"gsub",[/\\u\{([0-9a-f]+)\}/],((t=function(e){var n,r=t.$$s||this,$=a;return null==e&&(e=a),$=((n=d["~"])===a?a:n["$[]"](1)).$to_i(16),r.$to_utf16($)}).$$s=r,t.$$arity=1,t)),r.$push(r.$translate_escape_chars(o)),_(_(n=s)?e.const_get_relative(h,"RUBY_ENGINE")["$!="]("opal"):n)?r.$push('.$force_encoding("',i.$name(),'")'):a},p.$$arity=0),e.defn(g,"$to_utf16",f=function(e){var $,i=this,s=a,o=a,c=a,u=a;return s=1023,o=l(i,"lambda",[],(($=function(e){$.$$s;return null==e&&(e=a),t("\\u",e.$to_s(16).$upcase())}).$$s=i,$.$$arity=1,$)),_(n(e,65535))?o.$call(e):(c=t(55296,(e=r(e,65536))["$>>"](10)),u=t(56320,e["$&"](s)),t(o.$call(c),o.$call(u)))},f.$$arity=1)}(f[0],e.const_get_relative(f,"Base"),f),function(t,$super,n){function r(){}var $,i=r=c(t,$super,"SymbolNode",r);i.$$proto,[i].concat(n);i.$handle("sym"),i.$children("value"),e.defn(i,"$compile",$=function(){var e=this;return e.$push(e.$value().$to_s().$inspect())},$.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f),function(t,$super,n){function $(){}var i,o,u,d,p,f,g=$=c(t,$super,"RegexpNode",$),h=g.$$proto,m=[g].concat(n);h.sexp=a,g.$handle("regexp"),g.$attr_accessor("value","flags"),e.const_set(m[0],"SUPPORTED_FLAGS",/[gimuy]/),e.defn(g,"$initialize",i=function(){var t=this,n=i.$$p,r=a,$=a,s=a;for(n&&(i.$$p=null),$=0,s=arguments.length,r=new Array(s);$/["$==="](r)?($="named captures are not supported in javascript: "+n.$inspect(),t.$push("self.$raise(new SyntaxError('"+$+"'))")):t.$push(""+e.const_get_relative(m,"Regexp").$new(n).$inspect()+t.$flags().$join())},d.$$arity=0),e.defn(g,"$extract_flags_and_value",p=function(){var t,n,$,i=this,o=a,c=a,u=a,d=a,p=a;return n=(n=(t=[].concat(e.to_a(i.$children()))).length-1)<0?0:n,o=s.call(t,0,n),c=null==t[n]?a:t[n],u=[l(c.$children(),"map",[],"to_s".$to_proc())],l(i,"flags=",e.to_a(u)),u[r(u.length,1)],d=o.$length(),(0)["$==="](d)?(u=[i.$s("str","")],l(i,"value=",e.to_a(u)),u[r(u.length,1)]):1["$==="](d)?(u=[o["$[]"](0)],l(i,"value=",e.to_a(u)),u[r(u.length,1)]):(u=[l(i,"s",["dstr"].concat(e.to_a(o)))],l(i,"value=",e.to_a(u)),u[r(u.length,1)]),_(i.$flags()["$include?"]("x"))&&(p=l(i.$value().$children(),"map",[],(($=function(t){var n,r=$.$$s||this,i=a;return null==t&&(t=a),_(_(n=t["$is_a?"](e.const_get_qualified(e.const_get_qualified(e.const_get_qualified("::","Opal"),"AST"),"Node")))?t.$type()["$=="]("str"):n)?(i=t.$children()["$[]"](0).$gsub(/^\s*\#.*/,"").$gsub(/\s/,""),r.$s("str",i)):t}).$$s=i,$.$$arity=1,$)),u=[i.$value().$updated(a,p)],l(i,"value=",e.to_a(u)),u[r(u.length,1)],i.$flags().$delete("x")),i.$value().$type()["$=="]("str")?(u=[i.$s("str",i.$value().$children()["$[]"](0).$gsub("\\A","^").$gsub("\\z","$"))],l(i,"value=",e.to_a(u)),u[r(u.length,1)]):a},p.$$arity=0),e.defn(g,"$raw_value",f=function(){var t=this,n=a;return n=[t.sexp.$loc().$expression().$source()],l(t,"value=",e.to_a(n)),n[r(n.length,1)]},f.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f),function(t,$super,n){function r(){}var $,i=r=c(t,$super,"MatchCurrentLineNode",r);i.$$proto,[i].concat(n);i.$handle("match_current_line"),i.$children("regexp"),e.defn(i,"$compile",$=function(){var e=this,t=a,n=a;return t=e.$s("gvar","$_"),n=e.$s("send",t,"=~",e.$regexp()),e.$push(e.$expr(n))},$.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f),function(t,$super,n){function r(){}var $,i=r=c(t,$super,"XStringNode",r),s=(i.$$proto,[i].concat(n));i.$handle("xstr"),e.defn(i,"$compile",$=function(){var t,n=this;return l(n.$children(),"each",[],((t=function(n){var r=t.$$s||this,$=a,i=a,o=a;return null==n&&(n=a),$=n.$type(),"str"["$==="]($)?(i=n.$loc().$expression().$source(),r.$push(e.const_get_relative(s,"Fragment").$new(i,a))):"begin"["$==="]($)?r.$push(r.$expr(n)):"gvar"["$==="]($)||"ivar"["$==="]($)?r.$push(r.$expr(n)):"js_return"["$==="]($)?(r.$push("return "),o=n.$children().$first(),i=o.$loc().$expression().$source(),r.$push(e.const_get_relative(s,"Fragment").$new(i,a))):r.$raise("Unsupported xstr part: "+n.$type())}).$$s=n,t.$$arity=1,t)),_(n["$recv?"]())?n.$wrap("(",")"):a},$.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f),function(t,$super,n){function r(){}var $,i=r=c(t,$super,"DynamicStringNode",r);i.$$proto,[i].concat(n);i.$handle("dstr"),e.defn(i,"$compile",$=function(){var e,t=this;return t.$push('""'),l(t.$children(),"each_with_index",[],((e=function(t,n){var r=e.$$s||this;return null==t&&(t=a),null==n&&(n=a),r.$push(" + "),t.$type()["$=="]("str")?r.$push(t.$children()["$[]"](0).$inspect()):r.$push("(",r.$expr(t),")"),_(r["$recv?"]())?r.$wrap("(",")"):a}).$$s=t,e.$$arity=2,e))},$.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f),function(e,$super,t){function n(){}var r=n=c(e,$super,"DynamicSymbolNode",n);r.$$proto,[r].concat(t);r.$handle("dsym")}(f[0],e.const_get_relative(f,"DynamicStringNode"),f),function(t,$super,n){function r(){}var $,i,a,s,o=r=c(t,$super,"RangeNode",r),u=(o.$$proto,[o].concat(n));o.$children("start","finish"),e.const_set(u[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"]),e.defn(o,"$compile",$=function(){var e=this;return _(e["$compile_inline?"]())?(e.$helper("range"),e.$compile_inline()):e.$compile_range_initialize()},$.$$arity=0),e.defn(o,"$compile_inline?",i=function(){var t,n=this;return _(t=n.$start().$type()["$=="](n.$finish().$type())?e.const_get_relative(u,"SIMPLE_CHILDREN_TYPES")["$include?"](n.$start().$type()):n.$start().$type()["$=="](n.$finish().$type()))?e.const_get_relative(u,"SIMPLE_CHILDREN_TYPES")["$include?"](n.$finish().$type()):t},i.$$arity=0),e.defn(o,"$compile_inline",a=function(){return this.$raise(e.const_get_relative(u,"NotImplementedError"))},a.$$arity=0),e.defn(o,"$compile_range_initialize",s=function(){return this.$raise(e.const_get_relative(u,"NotImplementedError"))},s.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f),function(t,$super,n){function r(){}var $,i,a=r=c(t,$super,"InclusiveRangeNode",r);a.$$proto,[a].concat(n);a.$handle("irange"),e.defn(a,"$compile_inline",$=function(){var e=this;return e.$push("$range(",e.$expr(e.$start()),", ",e.$expr(e.$finish()),", false)")},$.$$arity=0),e.defn(a,"$compile_range_initialize",i=function(){var e=this;return e.$push("Opal.Range.$new(",e.$expr(e.$start()),", ",e.$expr(e.$finish()),", false)")},i.$$arity=0)}(f[0],e.const_get_relative(f,"RangeNode"),f),function(t,$super,n){function r(){}var $,i,a=r=c(t,$super,"ExclusiveRangeNode",r);a.$$proto,[a].concat(n);a.$handle("erange"),e.defn(a,"$compile_inline",$=function(){var e=this;return e.$push("$range(",e.$expr(e.$start()),", ",e.$expr(e.$finish()),", true)")},$.$$arity=0),e.defn(a,"$compile_range_initialize",i=function(){var e=this;return e.$push("Opal.Range.$new(",e.$expr(e.$start()),",",e.$expr(e.$finish()),", true)")},i.$$arity=0)}(f[0],e.const_get_relative(f,"RangeNode"),f),function(t,$super,n){function r(){}var $,i=r=c(t,$super,"RationalNode",r);i.$$proto,[i].concat(n);i.$handle("rational"),i.$children("value"),e.defn(i,"$compile",$=function(){var e=this;return e.$push("Opal.Rational.$new("+e.$value().$numerator()+", "+e.$value().$denominator()+")")},$.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f),function(t,$super,n){function r(){}var $,i=r=c(t,$super,"ComplexNode",r);i.$$proto,[i].concat(n);i.$handle("complex"),i.$children("value"),e.defn(i,"$compile",$=function(){var e=this;return e.$push("Opal.Complex.$new("+e.$value().$real()+", "+e.$value().$imag()+")")},$.$$arity=0)}(f[0],e.const_get_relative(f,"Base"),f)}(f[0],f)}(i[0],i)},Opal.modules["opal/nodes/variables"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.breaker,e.slice,e.module),i=e.klass,a=e.truthy,s=e.send,o=e.range;return e.add_stubs(["$require","$handle","$children","$irb?","$compiler","$top?","$scope","$using_irb?","$push","$to_s","$var_name","$with_temp","$property","$wrap","$add_local","$expr","$value","$recv?","$expr?","$[]","$name","$add_ivar","$helper","$add_gvar","$===","$handle_global_match","$handle_post_match","$handle_pre_match","$raise","$index","$class_variable_owner"]),t.$require("opal/nodes/base"),function(t,n){var c=$(t,"Opal"),_=(c.$$proto,[c].concat(n));!function(t,n){var c=$(t,"Nodes"),_=(c.$$proto,[c].concat(n));!function(t,$super,n){function $(){}var o,c,_=$=i(t,$super,"LocalVariableNode",$);_.$$proto,[_].concat(n);_.$handle("lvar"),_.$children("var_name"),e.defn(_,"$using_irb?",o=function(){var e,t=this;return a(e=t.$compiler()["$irb?"]())?t.$scope()["$top?"]():e},o.$$arity=0),e.defn(_,"$compile",c=function(){var e,t=this;return a(t["$using_irb?"]())?s(t,"with_temp",[],((e=function(t){var n=e.$$s||this;return null==t&&(t=r),n.$push(n.$property(n.$var_name().$to_s())),n.$wrap("(("+t+" = Opal.irb_vars",") == null ? nil : "+t+")")}).$$s=t,e.$$arity=1,e)):t.$push(t.$var_name().$to_s())},c.$$arity=0)}(_[0],e.const_get_relative(_,"Base"),_),function(t,$super,n){function $(){}var s,o,c=$=i(t,$super,"LocalAssignNode",$);c.$$proto,[c].concat(n);c.$handle("lvasgn"),c.$children("var_name","value"),e.defn(c,"$using_irb?",s=function(){var e,t=this;return a(e=t.$compiler()["$irb?"]())?t.$scope()["$top?"]():e},s.$$arity=0),e.defn(c,"$compile",o=function(){var e,t,n=this;return a(n["$using_irb?"]())?n.$push("Opal.irb_vars"+n.$property(n.$var_name().$to_s())+" = "):(n.$add_local(n.$var_name().$to_s()),n.$push(n.$var_name()+" = ")),n.$push(n.$expr(n.$value())),a(a(e=a(t=n["$recv?"]())?t:n["$expr?"]())?n.$value():e)?n.$wrap("(",")"):r},o.$$arity=0)}(_[0],e.const_get_relative(_,"Base"),_),function(t,$super,n){function $(){}var a,s=$=i(t,$super,"LocalDeclareNode",$);s.$$proto,[s].concat(n);s.$handle("lvdeclare"), -s.$children("var_name"),e.defn(s,"$compile",a=function(){var e=this;return e.$add_local(e.$var_name().$to_s()),r},a.$$arity=0)}(_[0],e.const_get_relative(_,"Base"),_),function(t,$super,n){function $(){}var a,s,c=$=i(t,$super,"InstanceVariableNode",$);c.$$proto,[c].concat(n);c.$handle("ivar"),c.$children("name"),e.defn(c,"$var_name",a=function(){return this.$name().$to_s()["$[]"](o(1,-1,!1))},a.$$arity=0),e.defn(c,"$compile",s=function(){var e=this,t=r;return t=e.$property(e.$var_name()),e.$add_ivar(t),e.$push("self"+t)},s.$$arity=0)}(_[0],e.const_get_relative(_,"Base"),_),function(t,$super,n){function $(){}var s,c,_=$=i(t,$super,"InstanceAssignNode",$);_.$$proto,[_].concat(n);_.$handle("ivasgn"),_.$children("name","value"),e.defn(_,"$var_name",s=function(){return this.$name().$to_s()["$[]"](o(1,-1,!1))},s.$$arity=0),e.defn(_,"$compile",c=function(){var e,t,n=this,$=r;return $=n.$property(n.$var_name()),n.$push("self"+$+" = "),n.$push(n.$expr(n.$value())),a(a(e=a(t=n["$recv?"]())?t:n["$expr?"]())?n.$value():e)?n.$wrap("(",")"):r},c.$$arity=0)}(_[0],e.const_get_relative(_,"Base"),_),function(t,$super,n){function $(){}var a,s,c=$=i(t,$super,"GlobalVariableNode",$);c.$$proto,[c].concat(n);c.$handle("gvar"),c.$children("name"),e.defn(c,"$var_name",a=function(){return this.$name().$to_s()["$[]"](o(1,-1,!1))},a.$$arity=0),e.defn(c,"$compile",s=function(){var e=this,t=r;return e.$helper("gvars"),t=e.$property(e.$var_name()),e.$add_gvar(t),e.$push("$gvars"+t)},s.$$arity=0)}(_[0],e.const_get_relative(_,"Base"),_),function(t,$super,n){function $(){}var a,o,c,_,u=$=i(t,$super,"BackRefNode",$),l=(u.$$proto,[u].concat(n));u.$handle("back_ref"),e.defn(u,"$compile",a=function(){var t=this,n=a.$$p,$=r,i=r,o=r,c=r;for(n&&(a.$$p=null),o=0,c=arguments.length,i=new Array(c);ot:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e","$<","$equal?","$<=>","$normalize","$raise","$class"]),function(r,s){var o,c,_,u,l,d,p,f,g=i(r,"Comparable"),h=(g.$$proto,[g].concat(s));e.defs(g,"$normalize",o=function(r){return a(e.const_get_relative(h,"Integer")["$==="](r))?r:a(t(r,0))?1:a(n(r,0))?-1:0},o.$$arity=1),e.defn(g,"$==",c=function(t){var n=this,r=$;try{return!!a(n["$equal?"](t))||n["$<=>"]!=e.Kernel["$<=>"]&&(n.$$comparable?(delete n.$$comparable,!1):!!a(r=n["$<=>"](t))&&0==e.const_get_relative(h,"Comparable").$normalize(r))}catch(i){if(!e.rescue(i,[e.const_get_relative(h,"StandardError")]))throw i;try{return!1}finally{e.pop_exception()}}},c.$$arity=1),e.defn(g,"$>",_=function(t){var n=this,r=$;return a(r=n["$<=>"](t))||n.$raise(e.const_get_relative(h,"ArgumentError"),"comparison of "+n.$class()+" with "+t.$class()+" failed"),e.const_get_relative(h,"Comparable").$normalize(r)>0},_.$$arity=1),e.defn(g,"$>=",u=function(t){var n=this,r=$;return a(r=n["$<=>"](t))||n.$raise(e.const_get_relative(h,"ArgumentError"),"comparison of "+n.$class()+" with "+t.$class()+" failed"),e.const_get_relative(h,"Comparable").$normalize(r)>=0},u.$$arity=1),e.defn(g,"$<",l=function(t){var n=this,r=$;return a(r=n["$<=>"](t))||n.$raise(e.const_get_relative(h,"ArgumentError"),"comparison of "+n.$class()+" with "+t.$class()+" failed"),e.const_get_relative(h,"Comparable").$normalize(r)<0},l.$$arity=1),e.defn(g,"$<=",d=function(t){var n=this,r=$;return a(r=n["$<=>"](t))||n.$raise(e.const_get_relative(h,"ArgumentError"),"comparison of "+n.$class()+" with "+t.$class()+" failed"),e.const_get_relative(h,"Comparable").$normalize(r)<=0},d.$$arity=1),e.defn(g,"$between?",p=function(e,r){var $=this;return!n($,e)&&!t($,r)},p.$$arity=2),e.defn(g,"$clamp",f=function(r,i){var s=this,o=$;return o=r["$<=>"](i),a(o)||s.$raise(e.const_get_relative(h,"ArgumentError"),"comparison of "+r.$class()+" with "+i.$class()+" failed"),a(t(e.const_get_relative(h,"Comparable").$normalize(o),0))&&s.$raise(e.const_get_relative(h,"ArgumentError"),"min argument must be smaller than max argument"),a(n(e.const_get_relative(h,"Comparable").$normalize(s["$<=>"](r)),0))?r:a(t(e.const_get_relative(h,"Comparable").$normalize(s["$<=>"](i)),0))?i:s},f.$$arity=2)}(r[0],r)},Opal.modules.pathname=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var n=e.top,r=[],$=e.nil,i=(e.breaker,e.slice,e.klass),a=e.truthy,s=e.send,o=e.module;return e.add_stubs(["$require","$include","$quote","$===","$to_s","$path","$respond_to?","$to_path","$is_a?","$nil?","$raise","$class","$==","$attr_reader","$!","$relative?","$chop_basename","$basename","$=~","$new","$source","$[]","$rindex","$sub","$absolute?","$expand_path","$plus","$unshift","$length","$!=","$empty?","$first","$shift","$+","$join","$dirname","$pop","$reverse_each","$directory?","$extname","$<=>","$nonzero?","$proc","$casecmp","$cleanpath","$inspect","$include?","$fill","$map","$entries"]),n.$require("corelib/comparable"),function(n,$super,r){function o(){}var c,_,u,l,d,p,f,g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I,z=o=i(n,null,"Pathname",o),C=z.$$proto,P=[z].concat(r);C.path=$,z.$include(e.const_get_relative(P,"Comparable")),e.const_set(P[0],"SEPARATOR_PAT",new RegExp(e.const_get_relative(P,"Regexp").$quote(e.const_get_qualified(e.const_get_relative(P,"File"),"SEPARATOR")))),e.defn(z,"$initialize",c=function(t){var n=this;return a(e.const_get_relative(P,"Pathname")["$==="](t))?n.path=t.$path().$to_s():a(t["$respond_to?"]("to_path"))?n.path=t.$to_path():a(t["$is_a?"](e.const_get_relative(P,"String")))?n.path=t:a(t["$nil?"]())?n.$raise(e.const_get_relative(P,"TypeError"),"no implicit conversion of nil into String"):n.$raise(e.const_get_relative(P,"TypeError"),"no implicit conversion of "+t.$class()+" into String"),n.path["$=="]("\0")?n.$raise(e.const_get_relative(P,"ArgumentError")):$},c.$$arity=1),z.$attr_reader("path"),e.defn(z,"$==",_=function(e){var t=this;return e.$path()["$=="](t.path)},_.$$arity=1),e.defn(z,"$absolute?",u=function(){return this["$relative?"]()["$!"]()},u.$$arity=0),e.defn(z,"$relative?",l=function(){var t,n,r=this,i=$,s=$;for(i=r.path;a(s=r.$chop_basename(i));)n=s,i=null==(t=e.to_ary(n))[0]?$:t[0];return i["$=="]("")},l.$$arity=0),e.defn(z,"$chop_basename",d=function(t){var n=$;return n=e.const_get_relative(P,"File").$basename(t),a(e.const_get_relative(P,"Regexp").$new("^"+e.const_get_qualified(e.const_get_relative(P,"Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](n))?$:[t["$[]"](0,t.$rindex(n)),n]},d.$$arity=1),e.defn(z,"$root?",p=function(){return this.path["$=="]("/")},p.$$arity=0),e.defn(z,"$parent",f=function(){var t=this,n=$;return(n=t.path.$sub(/\/([^\/]+\/?$)/,""))["$=="]("")&&(n=a(t["$absolute?"]())?"/":"."),e.const_get_relative(P,"Pathname").$new(n)},f.$$arity=0),e.defn(z,"$sub",g=function(){var t,n=this,r=arguments.length,$=r-0;$<0&&($=0),t=new Array($);for(var i=0;i",S=function(e){return this.$path()["$<=>"](e.$path())},S.$$arity=1),e.alias(z,"eql?","=="),e.alias(z,"===","=="),e.alias(z,"to_str","to_path"),e.alias(z,"to_s","to_path"),e.const_set(P[0],"SAME_PATHS",a(e.const_get_qualified(e.const_get_relative(P,"File"),"FNM_SYSCASE")["$nonzero?"]())?s(z,"proc",[],((T=function(e,t){return T.$$s,null==e&&(e=$),null==t&&(t=$),e.$casecmp(t)["$=="](0)}).$$s=z,T.$$arity=2,T)):s(z,"proc",[],((q=function(e,t){return q.$$s,null==e&&(e=$),null==t&&(t=$),e["$=="](t)}).$$s=z,q.$$arity=2,q))),e.defn(z,"$relative_path_from",O=function(n){var r,i,o=this,c=$,_=$,u=$,l=$,d=$,p=$,f=$,g=$;for(c=o.$cleanpath().$to_s(),n=n.$cleanpath().$to_s(),_=c,u=[];a(l=o.$chop_basename(_));)i=l,_=null==(r=e.to_ary(i))[0]?$:r[0],d=null==r[1]?$:r[1],a(d["$!="]("."))&&u.$unshift(d);for(p=n,f=[];a(l=o.$chop_basename(p));)i=l,p=null==(r=e.to_ary(i))[0]?$:r[0],d=null==r[1]?$:r[1],a(d["$!="]("."))&&f.$unshift(d);for(a(e.const_get_relative(P,"SAME_PATHS")["$[]"](_,p))||o.$raise(e.const_get_relative(P,"ArgumentError"),"different prefix: "+_.$inspect()+" and "+n.$inspect());a(a(r=a(i=u["$empty?"]()["$!"]())?f["$empty?"]()["$!"]():i)?e.const_get_relative(P,"SAME_PATHS")["$[]"](u.$first(),f.$first()):r);)u.$shift(),f.$shift();return a(f["$include?"](".."))&&o.$raise(e.const_get_relative(P,"ArgumentError"),"base_directory has ..: "+n.$inspect()),f.$fill(".."),g=t(f,u),a(g["$empty?"]())?e.const_get_relative(P,"Pathname").$new("."):e.const_get_relative(P,"Pathname").$new(s(e.const_get_relative(P,"File"),"join",e.to_a(g)))},O.$$arity=1),e.defn(z,"$entries",I=function(){var t,n=this;return s(e.const_get_relative(P,"Dir").$entries(n.path),"map",[],((t=function(e){var n=t.$$s||this;return null==e&&(e=$),n.$class().$new(e)}).$$s=n,t.$$arity=1,t))},I.$$arity=0)}(r[0],0,r),function(t,n){var r,$=o(t,"Kernel"),i=($.$$proto,[$].concat(n));e.defn($,"$Pathname",r=function(t){return e.const_get_relative(i,"Pathname").$new(t)},r.$$arity=1)}(r[0],r)},Opal.modules["opal/nodes/runtime_helpers"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.breaker,e.slice,e.module),i=e.klass,a=e.send,s=e.truthy;return e.add_stubs(["$require","$new","$children","$==","$s","$include?","$to_sym","$<<","$define_method","$to_proc","$meth","$__send__","$raise","$helper","$[]","$arglist","$js_truthy","$js_falsy"]),t.$require("set"),t.$require("opal/nodes/base"),function(t,n){var o=$(t,"Opal"),c=(o.$$proto,[o].concat(n));!function(t,n){var o=$(t,"Nodes"),c=(o.$$proto,[o].concat(n));!function(t,$super,n){function $(){}var o,c,_,u,l,d,p=$=i(t,$super,"RuntimeHelpers",$),f=(p.$$proto,[p].concat(n));e.const_set(f[0],"HELPERS",e.const_get_relative(f,"Set").$new()),p.$children("recvr","meth","arglist"),e.defs(p,"$s",o=function(t){var n,r=arguments.length,$=r-1;$<0&&($=0),n=new Array($);for(var i=1;i",">="],{"+":"plus","-":"minus","*":"times","/":"divide","<":"lt","<=":"le",">":"gt",">=":"ge"})),e.defs(X,"$add_special",d=function(n,r){var $=this,a=d.$$p,s=a||i,o=i;return null==r&&(r=c([],{})),a&&(d.$$p=null),o=[n,r],_(e.const_get_relative(V,"SPECIALS"),"[]=",e.to_a(o)),o[t(o.length,1)],_($,"define_method",["handle_"+n],s.$to_proc())},d.$$arity=-2),e.defn(X,"$initialize",p=function(){var t,n,r=this,$=p.$$p,s=i,o=i,c=i,l=i,d=i,f=i;for($&&(p.$$p=null),d=0,f=arguments.length,l=new Array(f);dt:e["$>"](t)}var i=e.top,a=[],s=e.nil,o=(e.breaker,e.slice,e.module),c=e.klass,_=e.send,u=e.hash2,l=e.truthy;return e.add_stubs(["$require","$attr_accessor","$attr_writer","$attr_reader","$children","$args","$each_with_index","$type","$===","$<<","$any?","$[]","$length","$!=","$map!","$inline_args","$updated","$optimize_args!","$select","$==","$find","$include?","$s","$post_args","$each","$push","$process","$post_args_sexp","$uses_block?","$scope","$identity","$block_name","$add_temp","$line","$inline_args=","$-","$first","$pop","$[]=","$meta","$keyword_args","$all?","$rest_arg","$opt_args","$has_only_optional_kwargs?","$negative_arity","$positive_arity","$size","$has_required_kwargs?","$+","$-@","$map","$build_parameter","$block_arg","$join","$!","$empty?","$<","$>"]),i.$require("opal/nodes/scope"),function(i,a){var d=o(i,"Opal"),p=(d.$$proto,[d].concat(a));!function(i,a){var d=o(i,"Nodes"),p=(d.$$proto,[d].concat(a));!function(i,$super,a){function o(){}var d,p,f,g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I,z,C=o=c(i,$super,"NodeWithArgs",o),P=C.$$proto,B=[C].concat(a);P.opt_args=P.rest_arg=P.keyword_args=P.in_mlhs=P.arity_checks=s,C.$attr_accessor("mlhs_args"),C.$attr_accessor("used_kwargs"),C.$attr_accessor("mlhs_mapping"),C.$attr_accessor("working_arguments"),C.$attr_writer("inline_args"),C.$attr_accessor("kwargs_initialized"),C.$attr_reader("inline_args","post_args"),e.defn(C,"$initialize",d=function(){var t=this,n=d.$$p,r=s,$=s,i=s;for(n&&(d.$$p=null),$=0,i=arguments.length,r=new Array(i);$ "+u)):o.arity_checks["$<<"]("$arity !== "+c),o.arity_checks)},z.$$arity=0)}(p[0],e.const_get_relative(p,"ScopeNode"),p)}(p[0],p)}(a[0],a)},Opal.modules["opal/nodes/iter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var r=e.top,$=[],i=e.nil,a=(e.breaker,e.slice),s=e.module,o=e.klass,c=e.send,_=e.truthy;return e.add_stubs(["$require","$handle","$children","$attr_accessor","$extract_block_arg","$extract_shadow_args","$extract_underscore_args","$split_args","$in_scope","$process","$inline_args_sexp","$identify!","$scope","$add_temp","$compile_block_arg","$compile_shadow_args","$compile_inline_args","$compile_post_args","$compile_norm_args","$arity_check?","$compiler","$compile_arity_check","$stmt","$returned_body","$to_vars","$line","$unshift","$push","$contains_break?","$arity","$parameters_code","$has_top_level_mlhs_arg?","$has_trailing_comma_in_args?","$select","$args","$==","$type","$each","$norm_args","$block_arg","$block_name=","$-","$[]","$updated","$s","$body","$shadow_args","$<<","$locals","$add_arg","$each_with_index","$first","$returns","$keys","$mlhs_mapping","$any?","$loc","$expression","$source","$match","$>","$size","$arity_checks","$!","$top?","$def?","$class_scope?","$parent","$mid","$class?","$name","$module?","$identity","$join","$new","$found_break?"]),r.$require("opal/nodes/node_with_args"),r.$require("opal/rewriters/break_finder"),function(r,$){var u=s(r,"Opal"),l=(u.$$proto,[u].concat($));!function(r,$){var u=s(r,"Nodes"),l=(u.$$proto,[u].concat($));!function(r,$super,$){function s(){}var u,l,d,p,f,g,h,m,y,v,b,k,x,E,w=s=o(r,$super,"IterNode",s),R=w.$$proto,N=[w].concat($);R.norm_args=R.sexp=i,w.$handle("iter"),w.$children("args","body"),w.$attr_accessor("block_arg","shadow_args"),e.defn(w,"$compile",u=function(){var e,t=this,n=i,r=i,$=i,a=i;return n=i,t.$extract_block_arg(),t.$extract_shadow_args(),t.$extract_underscore_args(),t.$split_args(),r=$=a=i,c(t,"in_scope",[],((e=function(){var t=e.$$s||this;return n=t.$process(t.$inline_args_sexp()),$=t.$scope()["$identify!"](),t.$add_temp("self = "+$+".$$s || this"),t.$compile_block_arg(),t.$compile_shadow_args(),t.$compile_inline_args(),t.$compile_post_args(),t.$compile_norm_args(),_(t.$compiler()["$arity_check?"]())&&t.$compile_arity_check(),a=t.$stmt(t.$returned_body()),r=t.$scope().$to_vars()}).$$s=t,e.$$arity=0,e)),t.$line(a),t.$unshift(r),t.$unshift("("+$+" = function(",n,"){"),t.$push("}, "+$+".$$s = self,"),_(t["$contains_break?"]())&&t.$push(" "+$+".$$brk = $brk,"),t.$push(" "+$+".$$arity = "+t.$arity()+","),_(t.$compiler()["$arity_check?"]())&&t.$push(" "+$+".$$parameters = "+t.$parameters_code()+","),_(t["$has_top_level_mlhs_arg?"]())&&t.$push(" "+$+".$$has_top_level_mlhs_arg = true,"),_(t["$has_trailing_comma_in_args?"]())&&t.$push(" "+$+".$$has_trailing_comma_in_args = true,"),t.$push(" "+$+")")},u.$$arity=0),e.defn(w,"$norm_args",l=function(){var e,t,n=this;return n.norm_args=_(e=n.norm_args)?e:c(n.$args().$children(),"select",[],((t=function(e){t.$$s;return null==e&&(e=i),e.$type()["$=="]("arg")}).$$s=n,t.$$arity=1,t))},l.$$arity=0),e.defn(w,"$compile_norm_args",d=function(){var t,n=this;return c(n.$norm_args(),"each",[],((t=function(n){var r,$=t.$$s||this,a=i;return null==n&&(n=i),a=null==(r=[].concat(e.to_a(n)))[0]?i:r[0],null==r[1]?i:r[1],$.$push("if ("+a+" == null) "+a+" = nil;")}).$$s=n,t.$$arity=1,t))},d.$$arity=0),e.defn(w,"$compile_block_arg",p=function(){var n=this,r=i,$=i;return _(n.$block_arg())?(r=[n.$block_arg()],c(n.$scope(),"block_name=",e.to_a(r)),r[t(r.length,1)],n.$scope().$add_temp(n.$block_arg()),$=n.$scope()["$identify!"](),n.$line(n.$block_arg()+" = "+$+".$$p || nil;"),n.$line("if ("+n.$block_arg()+") "+$+".$$p = null;")):i},p.$$arity=0),e.defn(w,"$extract_block_arg",f=function(){var t,n,r,$=this,s=i,o=i;return n=$.$args().$children(),r=(r=(t=e.to_ary(n)).length-1)<0?0:r,s=a.call(t,0,r),o=null==t[r]?i:t[r],_(_(t=o)?o.$type()["$=="]("blockarg"):t)?($.block_arg=o.$children()["$[]"](0),$.sexp=$.sexp.$updated(i,[c($,"s",["args"].concat(e.to_a(s))),$.$body()])):i},f.$$arity=0),e.defn(w,"$compile_shadow_args",g=function(){var e,t=this;return c(t.$shadow_args(),"each",[],((e=function(t){var n=e.$$s||this,r=i;return null==t&&(t=i),r=t.$children()["$[]"](0),n.$scope().$locals()["$<<"](r),n.$scope().$add_arg(r)}).$$s=t,e.$$arity=1,e))},g.$$arity=0),e.defn(w,"$extract_shadow_args",h=function(){var e,t=this,n=i;return t.shadow_args=[],n=[],_(t.$args())?(c(t.$args().$children(),"each_with_index",[],((e=function(t,r){var $=e.$$s||this;return null==$.shadow_args&&($.shadow_args=i),null==t&&(t=i),null==r&&(r=i),t.$type()["$=="]("shadowarg")?$.shadow_args["$<<"](t):n["$<<"](t)}).$$s=t,e.$$arity=2,e)),t.sexp=t.sexp.$updated(i,[t.$args().$updated(i,n),t.$body()])):i},h.$$arity=0),e.defn(w,"$extract_underscore_args",m=function(){var e,t=this,n=i,r=i;return n=[],r=!1,c(t.$args().$children(),"each",[],((e=function(t){e.$$s;return null==t&&(t=i),t.$children().$first()["$=="]("_")?_(r)?i:(r=!0,n["$<<"](t)):n["$<<"](t)}).$$s=t,e.$$arity=1,e)),t.sexp=t.sexp.$updated(i,[t.$args().$updated(i,n),t.$body()])},m.$$arity=0),e.defn(w,"$returned_body",y=function(){var e,t=this;return t.$compiler().$returns(_(e=t.$body())?e:t.$s("nil"))},y.$$arity=0),e.defn(w,"$mlhs_args",v=function(){return this.$scope().$mlhs_mapping().$keys()},v.$$arity=0),e.defn(w,"$has_top_level_mlhs_arg?",b=function(){var e,t=this;return c(t.$args().$children(),"any?",[],((e=function(t){e.$$s;return null==t&&(t=i),t.$type()["$=="]("mlhs")}).$$s=t,e.$$arity=1,e))},b.$$arity=0),e.defn(w,"$has_trailing_comma_in_args?",k=function(){var e,t=this;return _(_(e=t.$args().$loc())?t.$args().$loc().$expression():e)?t.$args().$loc().$expression().$source().$match(/,\s*\|/):i},k.$$arity=0),e.defn(w,"$compile_arity_check",x=function(){var e,t,r=this,$=i,a=i,s=i;if(_(n(r.$arity_checks().$size(),0))){for($=r.$scope();_((_(e=_(t=$["$top?"]())?t:$["$def?"]())?e:$["$class_scope?"]())["$!"]());)$=$.$parent();return a=_($["$top?"]())?"'
'":_($["$def?"]())?"'"+$.$mid()+"'":_($["$class?"]())?"''":_($["$module?"]())?"''":i,s=r.$scope().$identity(),r.$line("if ("+s+".$$is_lambda || "+s+".$$define_meth) {"),r.$line(" var $arity = arguments.length;"),r.$line(" if ("+r.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+r.$arity()+", "+a+"); }"),r.$line("}")}return i},x.$$arity=0),e.defn(w,"$contains_break?",E=function(){var t=this,n=i;return(n=e.const_get_qualified(e.const_get_qualified(e.const_get_relative(N,"Opal"),"Rewriters"),"BreakFinder").$new()).$process(t.sexp),n["$found_break?"]()},E.$$arity=0)}(l[0],e.const_get_relative(l,"NodeWithArgs"),l)}(l[0],l)}($[0],$)},Opal.modules["opal/nodes/def"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var $=e.top,i=[],a=e.nil,s=(e.breaker,e.slice),o=e.module,c=e.klass,_=e.truthy,u=e.send;return e.add_stubs(["$require","$handle","$children","$attr_accessor","$args","$==","$type","$[]","$updated","$mid","$s","$stmts","$extract_block_arg","$split_args","$block_arg","$in_scope","$mid=","$scope","$-","$defs=","$uses_block!","$add_arg","$block_name=","$process","$inline_args_sexp","$stmt","$returns","$compiler","$add_temp","$compile_inline_args","$compile_post_args","$identify!","$identity","$compile_block_arg","$arity_check?","$compile_arity_check","$uses_zuper","$add_local","$line","$unshift","$current_indent","$to_vars","$catch_return","$push","$valid_name?","$arity","$parameters_code","$parse_comments?","$comments_code","$enable_source_location?","$source_location","$wrap_with_definition","$iter?","$module?","$class?","$sclass?","$eval?","$top?","$def?","$raise","$expr?","$wrap","$>","$size","$arity_checks","$inspect","$to_s","$join","$name","$source_buffer","$expression","$loc","$+","$map","$comments","$text"]),$.$require("opal/nodes/node_with_args"),function($,i){var l=o($,"Opal"),d=(l.$$proto,[l].concat(i));!function($,i){var l=o($,"Nodes"),d=(l.$$proto,[l].concat(i));!function($,$super,i){function o(){}var l,d,p,f,g,h,m=o=c($,$super,"DefNode",o),y=m.$$proto;[m].concat(i);y.sexp=a,m.$handle("def"),m.$children("mid","args","stmts"),m.$attr_accessor("block_arg"),e.defn(m,"$extract_block_arg",l=function(){var t,n,r,$=this,i=a,o=a;return n=$.$args().$children(),r=(r=(t=e.to_ary(n)).length-1)<0?0:r,i=s.call(t,0,r),o=null==t[r]?a:t[r],_(_(t=o)?o.$type()["$=="]("blockarg"):t)?($.block_arg=o.$children()["$[]"](0),$.sexp=$.sexp.$updated(a,[$.$mid(),u($,"s",["args"].concat(e.to_a(i))),$.$stmts()])):a},l.$$arity=0),e.defn(m,"$compile",d=function(){var n,r=this,$=a,i=a,s=a,o=a;return r.$extract_block_arg(),r.$split_args(),$=a,i=a,_(r.$block_arg())&&(s=r.$block_arg()),u(r,"in_scope",[],((n=function(){var r,o=n.$$s||this,c=a,l=a;return null==o.sexp&&(o.sexp=a),c=[o.$mid()],u(o.$scope(),"mid=",e.to_a(c)),c[t(c.length,1)],o.sexp.$type()["$=="]("defs")&&(c=[!0],u(o.$scope(),"defs=",e.to_a(c)),c[t(c.length,1)]),_(s)&&(o.$scope()["$uses_block!"](),o.$scope().$add_arg(s)),c=[_(r=s)?r:"$yield"],u(o.$scope(),"block_name=",e.to_a(c)),c[t(c.length,1)],$=o.$process(o.$inline_args_sexp()),l=o.$stmt(o.$compiler().$returns(o.$stmts())),o.$add_temp("self = this"),o.$compile_inline_args(),o.$compile_post_args(),o.$scope()["$identify!"](),i=o.$scope().$identity(),o.$compile_block_arg(),_(o.$compiler()["$arity_check?"]())&&o.$compile_arity_check(),_(o.$scope().$uses_zuper())&&(o.$add_local("$zuper"),o.$add_local("$zuper_i"),o.$add_local("$zuper_ii"),o.$line("// Prepare super implicit arguments"),o.$line("for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) {"),o.$line(" $zuper[$zuper_i] = arguments[$zuper_i];"),o.$line("}")),o.$unshift("\n"+o.$current_indent(),o.$scope().$to_vars()),o.$line(l),_(o.$scope().$catch_return())?(o.$unshift("try {\n"),o.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),o.$push(" throw $returner; }")):a}).$$s=r,n.$$arity=0,n)),o=_(r["$valid_name?"](r.$mid()))?" $$"+r.$mid():"",r.$unshift(") {"),r.$unshift($),r.$unshift("function"+o+"("),_(i)&&r.$unshift(i+" = "),r.$line("}"),r.$push(", "+i+".$$arity = "+r.$arity()),_(r.$compiler()["$arity_check?"]())&&r.$push(", "+i+".$$parameters = "+r.$parameters_code()),_(r.$compiler()["$parse_comments?"]())&&r.$push(", "+i+".$$comments = "+r.$comments_code()),_(r.$compiler()["$enable_source_location?"]())&&r.$push(", "+i+".$$source_location = "+r.$source_location()),r.$wrap_with_definition()},d.$$arity=0),e.defn(m,"$wrap_with_definition",p=function(){var e,t=this;return _(t.$scope()["$iter?"]())?t.$unshift("Opal.def(self, '$"+t.$mid()+"', "):_(_(e=t.$scope()["$module?"]())?e:t.$scope()["$class?"]())?t.$unshift("Opal.defn(self, '$"+t.$mid()+"', "):_(t.$scope()["$sclass?"]())?t.$unshift("Opal.defn(self, '$"+t.$mid()+"', "):_(t.$compiler()["$eval?"]())?t.$unshift("Opal.def(self, '$"+t.$mid()+"', "):_(t.$scope()["$top?"]())?t.$unshift("Opal.defn(Opal.Object, '$"+t.$mid()+"', "):_(t.$scope()["$def?"]())?t.$unshift("Opal.def(self, '$"+t.$mid()+"', "):t.$raise("Unsupported use of `def`; please file a bug at https://github.com/opal/opal/issues/new reporting this message."),t.$push(")"),_(t["$expr?"]())?t.$wrap("(",", nil) && '"+t.$mid()+"'"):t.$unshift("\n"+t.$current_indent())},p.$$arity=0),e.defn(m,"$compile_arity_check",f=function(){var e=this,t=a;return _(n(e.$arity_checks().$size(),0))?(t=e.$scope().$mid().$to_s().$inspect(),e.$line("var $arity = arguments.length;"),e.$push(" if ("+e.$arity_checks().$join(" || ")+") { Opal.ac($arity, "+e.$arity()+", this, "+t+"); }")):a},f.$$arity=0),e.defn(m,"$source_location",g=function(){var e=this;return"['"+e.sexp.$loc().$expression().$source_buffer().$name()+".rb', "+e.sexp.$loc().$line()+"]"},g.$$arity=0),e.defn(m,"$comments_code",h=function(){var e,t=this;return r(r("[",u(t.$comments(),"map",[],(e=function(t){e.$$s;return null==t&&(t=a),t.$text().$inspect()},e.$$s=t,e.$$arity=1,e)).$join(", ")),"]")},h.$$arity=0)}(d[0],e.const_get_relative(d,"NodeWithArgs"),d)}(d[0],d)}(i[0],i)},Opal.modules["opal/nodes/defs"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.breaker,e.slice),i=e.module,a=e.klass,s=e.truthy,o=e.send;return e.add_stubs(["$require","$handle","$children","$args","$==","$type","$[]","$updated","$recvr","$mid","$s","$stmts","$unshift","$expr","$push"]),t.$require("opal/nodes/def"),function(t,n){var c=i(t,"Opal"),_=(c.$$proto,[c].concat(n));!function(t,n){var c=i(t,"Nodes"),_=(c.$$proto,[c].concat(n));!function(t,$super,n){function i(){}var c,_,u=i=a(t,$super,"DefsNode",i),l=u.$$proto;[u].concat(n);l.sexp=r,u.$handle("defs"),u.$children("recvr","mid","args","stmts"),e.defn(u,"$extract_block_arg",c=function(){var t,n,i,a=this,c=r,_=r;return n=a.$args().$children(),i=(i=(t=e.to_ary(n)).length-1)<0?0:i,c=$.call(t,0,i),_=null==t[i]?r:t[i],s(s(t=_)?_.$type()["$=="]("blockarg"):t)?(a.block_arg=_.$children()["$[]"](0),a.sexp=a.sexp.$updated(r,[a.$recvr(),a.$mid(),o(a,"s",["args"].concat(e.to_a(c))),a.$stmts()])):r},c.$$arity=0),e.defn(u,"$wrap_with_definition",_=function(){var e=this;return e.$unshift("Opal.defs(",e.$expr(e.$recvr()),", '$"+e.$mid()+"', "),e.$push(")")},_.$$arity=0)}(_[0],e.const_get_relative(_,"DefNode"),_)}(_[0],_)}(n[0],n)},Opal.modules["opal/nodes/if"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.breaker,e.slice,e.module),i=e.klass,a=e.truthy,s=e.send;return e.add_stubs(["$require","$handle","$children","$truthy","$falsy","$push","$js_truthy","$test","$indent","$line","$stmt","$==","$type","$needs_wrapper?","$wrap","$returns","$compiler","$true_body","$s","$false_body","$expr?","$recv?"]),t.$require("opal/nodes/base"),function(t,n){var o=$(t,"Opal"),c=(o.$$proto,[o].concat(n));!function(t,n){var o=$(t,"Nodes"),c=(o.$$proto,[o].concat(n));!function(t,$super,n){function $(){}var o,c,_,u,l=$=i(t,$super,"IfNode",$);l.$$proto,[l].concat(n);l.$handle("if"),l.$children("test","true_body","false_body"),e.defn(l,"$compile",o=function(){var e,t,n,$=this,i=r,o=r;return e=[$.$truthy(),$.$falsy()],i=e[0],o=e[1],$.$push("if (",$.$js_truthy($.$test()),") {"),a(i)&&s($,"indent",[],((t=function(){var e=t.$$s||this;return e.$line(e.$stmt(i))}).$$s=$,t.$$arity=0,t)),a(o)?o.$type()["$=="]("if")?$.$line("} else ",$.$stmt(o)):(s($,"indent",[],((n=function(){var e=n.$$s||this;return e.$line("} else {"),e.$line(e.$stmt(o))}).$$s=$,n.$$arity=0,n)),$.$line("}")):$.$push("}"),a($["$needs_wrapper?"]())?$.$wrap("(function() {","; return nil; })()"):r},o.$$arity=0),e.defn(l,"$truthy",c=function(){var e,t=this;return a(t["$needs_wrapper?"]())?t.$compiler().$returns(a(e=t.$true_body())?e:t.$s("nil")):t.$true_body()},c.$$arity=0),e.defn(l,"$falsy",_=function(){var e,t=this;return a(t["$needs_wrapper?"]())?t.$compiler().$returns(a(e=t.$false_body())?e:t.$s("nil")):t.$false_body()},_.$$arity=0),e.defn(l,"$needs_wrapper?",u=function(){var e,t=this;return a(e=t["$expr?"]())?e:t["$recv?"]()},u.$$arity=0)}(c[0],e.const_get_relative(c,"Base"),c),function(t,$super,n){function r(){}var $,a=r=i(t,$super,"IFlipFlop",r);a.$$proto,[a].concat(n);a.$handle("iflipflop"),e.defn(a,"$compile",$=function(){return this.$push("true")},$.$$arity=0)}(c[0],e.const_get_relative(c,"Base"),c),function(t,$super,n){function r(){}var $,a=r=i(t,$super,"EFlipFlop",r);a.$$proto,[a].concat(n);a.$handle("eflipflop"),e.defn(a,"$compile",$=function(){return this.$push("true")},$.$$arity=0)}(c[0],e.const_get_relative(c,"Base"),c)}(c[0],c)}(n[0],n)},Opal.modules["opal/nodes/logic"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var r=e.top,$=[],i=e.nil,a=(e.breaker,e.slice,e.module),s=e.klass,o=e.truthy,c=e.send;return e.add_stubs(["$require","$handle","$in_while?","$push","$expr_or_nil","$value","$wrap","$size","$children","$===","$s","$first","$compile_while","$iter?","$scope","$compile_iter","$error","$[]","$while_loop","$stmt?","$line","$break_val","$nil?","$expr","$[]=","$-","$identity","$==","$empty_splat?","$recv","$type","$rhs","$compile_if","$compile_ternary","$raise","$helper","$with_temp","$lhs","$indent","$js_truthy_optimize","$>","$find_parent_def","$expr?","$def?","$return_in_iter?","$return_expr_in_def?","$scope_to_catch_return","$catch_return=","$return_val","$to_s"]),r.$require("opal/nodes/base"),function(r,$){var _=a(r,"Opal"),u=(_.$$proto,[_].concat($));!function(r,$){var _=a(r,"Nodes"),u=(_.$$proto,[_].concat($));!function(t,$super,n){function r(){}var $,a,_=r=s(t,$super,"NextNode",r);_.$$proto,[_].concat(n);_.$handle("next"),e.defn(_,"$compile",$=function(){var e=this;return o(e["$in_while?"]())?e.$push("continue;"):(e.$push(e.$expr_or_nil(e.$value())),e.$wrap("return ",";"))},$.$$arity=0),e.defn(_,"$value",a=function(){var t=this,n=i;return n=t.$children().$size(),(0)["$==="](n)?t.$s("nil"):1["$==="](n)?t.$children().$first():c(t,"s",["array"].concat(e.to_a(t.$children())))},a.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var $,i,a,c,_=r=s(t,$super,"BreakNode",r);_.$$proto,[_].concat(n);_.$handle("break"),_.$children("value"),e.defn(_,"$compile",$=function(){var e=this;return o(e["$in_while?"]())?e.$compile_while():o(e.$scope()["$iter?"]())?e.$compile_iter():e.$error("void value expression: cannot use break outside of iter/while")},$.$$arity=0),e.defn(_,"$compile_while",i=function(){var e=this;return o(e.$while_loop()["$[]"]("closure"))?e.$push("return ",e.$expr_or_nil(e.$value())):e.$push("break;")},i.$$arity=0),e.defn(_,"$compile_iter",a=function(){var e=this;return o(e["$stmt?"]())||e.$error("break must be used as a statement"),e.$line("Opal.brk(",e.$break_val(),", $brk)")},a.$$arity=0),e.defn(_,"$break_val",c=function(){var e=this;return o(e.$value()["$nil?"]())?e.$expr(e.$s("nil")):e.$expr(e.$value())},c.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(n,$super,r){function $(){}var a,_,u,l=$=s(n,$super,"RedoNode",$);l.$$proto,[l].concat(r);l.$handle("redo"),e.defn(l,"$compile",a=function(){var e=this;return o(e["$in_while?"]())?e.$compile_while():o(e.$scope()["$iter?"]())?e.$compile_iter():e.$push("REDO()")},a.$$arity=0),e.defn(l,"$compile_while",_=function(){var n=this,r=i;return r=["use_redo",!0],c(n.$while_loop(),"[]=",e.to_a(r)),r[t(r.length,1)],n.$push(n.$while_loop()["$[]"]("redo_var")+" = true")},_.$$arity=0),e.defn(l,"$compile_iter",u=function(){var e=this;return e.$push("return "+e.$scope().$identity()+".apply(null, $slice.call(arguments))")},u.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var $,i,a=r=s(t,$super,"SplatNode",r);a.$$proto,[a].concat(n);a.$handle("splat"),a.$children("value"),e.defn(a,"$empty_splat?",$=function(){var e=this;return e.$value()["$=="](e.$s("array"))},$.$$arity=0),e.defn(a,"$compile",i=function(){var e=this;return o(e["$empty_splat?"]())?e.$push("[]"):e.$push("Opal.to_a(",e.$recv(e.$value()),")")},i.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var $,i,a,o=r=s(t,$super,"BinaryOp",r),c=(o.$$proto,[o].concat(n));e.defn(o,"$compile",$=function(){var e=this;return e.$rhs().$type()["$=="]("break")?e.$compile_if():e.$compile_ternary()},$.$$arity=0),e.defn(o,"$compile_ternary",i=function(){return this.$raise(e.const_get_relative(c,"NotImplementedError"))},i.$$arity=0),e.defn(o,"$compile_if",a=function(){return this.$raise(e.const_get_relative(c,"NotImplementedError"))},a.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var $,a,o=r=s(t,$super,"OrNode",r);o.$$proto,[o].concat(n);o.$handle("or"),o.$children("lhs","rhs"),e.defn(o,"$compile_ternary",$=function(){var e,t=this;return t.$helper("truthy"),c(t,"with_temp",[],((e=function(t){var n=e.$$s||this;return null==t&&(t=i),n.$push("($truthy("+t+" = ",n.$expr(n.$lhs()),") ? "+t+" : ",n.$expr(n.$rhs()),")")}).$$s=t,e.$$arity=1,e))},$.$$arity=0),e.defn(o,"$compile_if",a=function(){var e,t=this;return t.$helper("truthy"),c(t,"with_temp",[],((e=function(t){var n,r,$=e.$$s||this;return null==t&&(t=i),$.$push("if ($truthy("+t+" = ",$.$expr($.$lhs()),")) {"),c($,"indent",[],((n=function(){return(n.$$s||this).$line(t)}).$$s=$,n.$$arity=0,n)),$.$line("} else {"),c($,"indent",[],((r=function(){var e=r.$$s||this;return e.$line(e.$expr(e.$rhs()))}).$$s=$,r.$$arity=0,r)),$.$line("}")}).$$s=t,e.$$arity=1,e))},a.$$arity=0)}(u[0],e.const_get_relative(u,"BinaryOp"),u),function(t,$super,n){function r(){}var $,a,_=r=s(t,$super,"AndNode",r);_.$$proto,[_].concat(n);_.$handle("and"),_.$children("lhs","rhs"),e.defn(_,"$compile_ternary",$=function(){var e,t=this,n=i;return n=i,c(t,"with_temp",[],((e=function(t){var r=e.$$s||this;return null==t&&(t=i),o(n=r.$js_truthy_optimize(r.$lhs()))?(r.$push("(("+t+" = ",n),r.$push(") ? "),r.$push(r.$expr(r.$rhs())),r.$push(" : ",r.$expr(r.$lhs()),")")):(r.$helper("truthy"),r.$push("($truthy("+t+" = ",r.$expr(r.$lhs()),") ? ",r.$expr(r.$rhs())," : "+t+")"))}).$$s=t,e.$$arity=1,e))},$.$$arity=0),e.defn(_,"$compile_if",a=function(){var e,t,n,r=this,$=i;return r.$helper("truthy"),$=o(e=r.$js_truthy_optimize(r.$lhs()))?e:r.$expr(r.$lhs()),r.$line("if ($truthy(",$,")) {"),c(r,"indent",[],((t=function(){var e=t.$$s||this;return e.$line(e.$expr(e.$rhs()))}).$$s=r,t.$$arity=0,t)),r.$line("} else {"),c(r,"indent",[],((n=function(){var e=n.$$s||this;return e.$line(e.$expr(e.$lhs()))}).$$s=r,n.$$arity=0,n)),r.$line("}")},a.$$arity=0)}(u[0],e.const_get_relative(u,"BinaryOp"),u),function(r,$super,$){function a(){}var _,u,l,d,p,f=a=s(r,$super,"ReturnNode",a),g=(f.$$proto,[f].concat($));f.$handle("return"),f.$children("value"),e.defn(f,"$return_val",_=function(){var t=this;return o(t.$value()["$nil?"]())?t.$expr(t.$s("nil")):o(n(t.$children().$size(),1))?t.$expr(c(t,"s",["array"].concat(e.to_a(t.$children())))):t.$expr(t.$value())},_.$$arity=0),e.defn(f,"$return_in_iter?",u=function(){var e,t=this,n=i;return o(o(e=t.$scope()["$iter?"]())?n=t.$scope().$find_parent_def():e)?n:i},u.$$arity=0),e.defn(f,"$return_expr_in_def?",l=function(){var e,t=this;return o(o(e=t["$expr?"]())?t.$scope()["$def?"]():e)?t.$scope():i},l.$$arity=0),e.defn(f,"$scope_to_catch_return",d=function(){var e,t=this;return o(e=t["$return_in_iter?"]())?e:t["$return_expr_in_def?"]()},d.$$arity=0),e.defn(f,"$compile",p=function(){var n=this,r=i,$=i;return o(r=n.$scope_to_catch_return())?($=[!0],c(r,"catch_return=",e.to_a($)),$[t($.length,1)],n.$push("Opal.ret(",n.$return_val(),")")):o(n["$stmt?"]())?n.$push("return ",n.$return_val()):n.$raise(e.const_get_relative(g,"SyntaxError"),"void value expression: cannot return as an expression")},p.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var $,i=r=s(t,$super,"JSReturnNode",r);i.$$proto,[i].concat(n);i.$handle("js_return"),i.$children("value"),e.defn(i,"$compile",$=function(){var e=this;return e.$push("return "),e.$push(e.$expr(e.$value()))},$.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var $,i=r=s(t,$super,"JSTempNode",r);i.$$proto,[i].concat(n);i.$handle("js_tmp"),i.$children("value"),e.defn(i,"$compile",$=function(){var e=this;return e.$push(e.$value().$to_s())},$.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var $,i=r=s(t,$super,"BlockPassNode",r);i.$$proto,[i].concat(n);i.$handle("block_pass"),i.$children("value"),e.defn(i,"$compile",$=function(){var e=this;return e.$push(e.$expr(e.$s("send",e.$value(),"to_proc",e.$s("arglist"))))},$.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u)}(u[0],u)}($[0],$)},Opal.modules["opal/nodes/definitions"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],i=e.nil,a=(e.breaker,e.slice),s=e.module,o=e.klass,c=e.send,_=e.truthy -;return e.add_stubs(["$require","$handle","$children","$each","$line","$expr","$push","$new_name","$old_name","$empty?","$stmt?","$compile_children","$simple_children?","$compile_inline_children","$>","$size","$wrap","$==","$returned_children","$+","$returns","$compiler","$s","$process","$none?","$include?","$type","$each_with_index","$reject","$map","$to_proc"]),r.$require("opal/nodes/base"),function(r,$){var u=s(r,"Opal"),l=(u.$$proto,[u].concat($));!function(r,$){var u=s(r,"Nodes"),l=(u.$$proto,[u].concat($));!function(t,$super,n){function r(){}var $,a=r=o(t,$super,"UndefNode",r);a.$$proto,[a].concat(n);a.$handle("undef"),a.$children("value"),e.defn(a,"$compile",$=function(){var e,t=this;return c(t.$children(),"each",[],((e=function(t){var n=e.$$s||this;return null==t&&(t=i),n.$line("Opal.udef(self, '$' + ",n.$expr(t),");")}).$$s=t,e.$$arity=1,e))},$.$$arity=0)}(l[0],e.const_get_relative(l,"Base"),l),function(t,$super,n){function r(){}var $,i=r=o(t,$super,"AliasNode",r);i.$$proto,[i].concat(n);i.$handle("alias"),i.$children("new_name","old_name"),e.defn(i,"$compile",$=function(){var e=this;return e.$push("Opal.alias(self, ",e.$expr(e.$new_name()),", ",e.$expr(e.$old_name()),")")},$.$$arity=0)}(l[0],e.const_get_relative(l,"Base"),l),function(r,$super,$){function s(){}var u,l,d,p,f,g=s=o(r,$super,"BeginNode",s),h=g.$$proto,m=[g].concat($);h.level=h.returned_children=i,g.$handle("begin"),e.defn(g,"$compile",u=function(){var e=this;return _(e.$children()["$empty?"]())?e.$push("nil"):_(e["$stmt?"]())?e.$compile_children(e.$children(),e.level):_(e["$simple_children?"]())?(e.$compile_inline_children(e.$children(),e.level),_(t(e.$children().$size(),1))?e.$wrap("(",")"):i):e.$children().$size()["$=="](1)?e.$compile_inline_children(e.$returned_children(),e.level):(e.$compile_children(e.$returned_children(),e.level),e.$wrap("(function() {","})()"))},u.$$arity=0),e.defn(g,"$returned_children",l=function(){var t,r,$,s=this,o=i,c=i;return s.returned_children=_(t=s.returned_children)?t:($=($=(r=[].concat(e.to_a(s.$children()))).length-1)<0?0:$,o=a.call(r,0,$),c=null==r[$]?i:r[$],_(c)?n(o,[s.$compiler().$returns(c)]):[s.$s("nil")])},l.$$arity=0),e.defn(g,"$compile_children",d=function(e,t){var n,r=this;return c(e,"each",[],((n=function(e){var r=n.$$s||this;return null==e&&(e=i),r.$line(r.$process(e,t),";")}).$$s=r,n.$$arity=1,n))},d.$$arity=2),e.const_set(m[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"]),e.defn(g,"$simple_children?",p=function(){var t,n=this;return c(n.$children(),"none?",[],((t=function(n){t.$$s;return null==n&&(n=i),e.const_get_relative(m,"COMPLEX_CHILDREN")["$include?"](n.$type())}).$$s=n,t.$$arity=1,t))},p.$$arity=0),e.defn(g,"$compile_inline_children",f=function(e,t){var n,r,$=this;return c(c(c(e,"map",[],((n=function(e){var r=n.$$s||this;return null==e&&(e=i),r.$process(e,t)}).$$s=$,n.$$arity=1,n)),"reject",[],"empty?".$to_proc()),"each_with_index",[],((r=function(e,t){var n=r.$$s||this;return null==e&&(e=i),null==t&&(t=i),t["$=="](0)||n.$push(", "),n.$push(e)}).$$s=$,r.$$arity=2,r))},f.$$arity=2)}(l[0],e.const_get_relative(l,"ScopeNode"),l),function(e,$super,t){function n(){}var r=n=o(e,$super,"KwBeginNode",n);r.$$proto,[r].concat(t);r.$handle("kwbegin")}(l[0],e.const_get_relative(l,"BeginNode"),l)}(l[0],l)}($[0],$)},Opal.modules["opal/nodes/yield"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.breaker,e.slice,e.module),i=e.klass,a=e.truthy,s=e.send;return e.add_stubs(["$require","$find_yielding_scope","$uses_block!","$block_name","$yields_single_arg?","$push","$expr","$first","$wrap","$s","$uses_splat?","$scope","$def?","$parent","$!","$==","$size","$any?","$type","$handle","$compile_call","$children"]),t.$require("opal/nodes/base"),function(t,n){var o=$(t,"Opal"),c=(o.$$proto,[o].concat(n));!function(t,n){var o=$(t,"Nodes"),c=(o.$$proto,[o].concat(n));!function(t,$super,n){function $(){}var o,c,_,u,l=$=i(t,$super,"BaseYieldNode",$);l.$$proto,[l].concat(n);e.defn(l,"$compile_call",o=function(t){var n,$=this,i=r,o=r;return(i=$.$find_yielding_scope())["$uses_block!"](),o=a(n=i.$block_name())?n:"$yield",a($["$yields_single_arg?"](t))?($.$push($.$expr(t.$first())),$.$wrap("Opal.yield1("+o+", ",")")):($.$push($.$expr(s($,"s",["arglist"].concat(e.to_a(t))))),a($["$uses_splat?"](t))?$.$wrap("Opal.yieldX("+o+", ",")"):$.$wrap("Opal.yieldX("+o+", [","])"))},o.$$arity=2),e.defn(l,"$find_yielding_scope",c=function(){var e,t=r;for(t=this.$scope();a(t)&&!a(a(e=t.$block_name())?e:t["$def?"]());)t=t.$parent();return t},c.$$arity=0),e.defn(l,"$yields_single_arg?",_=function(e){var t;return a(t=this["$uses_splat?"](e)["$!"]())?e.$size()["$=="](1):t},_.$$arity=1),e.defn(l,"$uses_splat?",u=function(e){var t,n=this;return s(e,"any?",[],((t=function(e){t.$$s;return null==e&&(e=r),e.$type()["$=="]("splat")}).$$s=n,t.$$arity=1,t))},u.$$arity=1)}(c[0],e.const_get_relative(c,"Base"),c),function(t,$super,n){function $(){}var a,s=$=i(t,$super,"YieldNode",$),o=s.$$proto;[s].concat(n);o.level=r,s.$handle("yield"),e.defn(s,"$compile",a=function(){var e=this;return e.$compile_call(e.$children(),e.level)},a.$$arity=0)}(c[0],e.const_get_relative(c,"BaseYieldNode"),c),function(t,$super,n){function $(){}var a,s=$=i(t,$super,"ReturnableYieldNode",$),o=s.$$proto;[s].concat(n);o.level=r,s.$handle("returnable_yield"),e.defn(s,"$compile",a=function(){var e=this;return e.$compile_call(e.$children(),e.level),e.$wrap("return ",";")},a.$$arity=0)}(c[0],e.const_get_relative(c,"BaseYieldNode"),c)}(c[0],c)}(n[0],n)},Opal.modules["opal/nodes/rescue"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var n=e.top,r=[],$=e.nil,i=(e.breaker,e.slice,e.module),a=e.klass,s=e.send,o=e.truthy,c=e.range;return e.add_stubs(["$require","$handle","$children","$push","$in_ensure","$line","$stmt","$body_sexp","$indent","$has_rescue_else?","$unshift","$rescue_else_code","$process","$compiler","$ensr_sexp","$wrap_in_closure?","$wrap","$returns","$begn","$ensr","$s","$recv?","$expr?","$rescue_else_sexp","$scope","$stmt?","$detect","$[]","$!=","$type","$rescue_else_sexp=","$-","$handle_rescue_else_manually?","$body_code","$each_with_index","$==","$nil?","$body","$!","$in_ensure?","$expr","$klasses","$lvar","$rescue_body","$klasses_sexp"]),n.$require("opal/nodes/base"),function(n,r){var _=i(n,"Opal"),u=(_.$$proto,[_].concat(r));!function(n,r){var _=i(n,"Nodes"),u=(_.$$proto,[_].concat(r));!function(t,$super,n){function r(){}var i,c,_,u,l,d=r=a(t,$super,"EnsureNode",r);d.$$proto,[d].concat(n);d.$handle("ensure"),d.$children("begn","ensr"),e.defn(d,"$compile",i=function(){var e,t,n=this;return n.$push("try {"),s(n,"in_ensure",[],((e=function(){var t=e.$$s||this;return t.$line(t.$stmt(t.$body_sexp()))}).$$s=n,e.$$arity=0,e)),n.$line("} finally {"),s(n,"indent",[],((t=function(){var e,n=t.$$s||this;return null==n.level&&(n.level=$),o(n["$has_rescue_else?"]())?(n.$unshift("var $no_errors = true; "),n.$line("var $rescue_else_result;"),n.$line("if ($no_errors) { "),s(n,"indent",[],((e=function(){var t,n=e.$$s||this;return n.$line("$rescue_else_result = (function() {"),s(n,"indent",[],((t=function(){var e=t.$$s||this;return e.$line(e.$stmt(e.$rescue_else_code()))}).$$s=n,t.$$arity=0,t)),n.$line("})();")}).$$s=n,e.$$arity=0,e)),n.$line("}"),n.$line(n.$compiler().$process(n.$ensr_sexp(),n.level)),n.$line("if ($no_errors) { return $rescue_else_result; }")):n.$line(n.$compiler().$process(n.$ensr_sexp(),n.level))}).$$s=n,t.$$arity=0,t)),n.$line("}"),o(n["$wrap_in_closure?"]())?n.$wrap("(function() { ","; })()"):$},i.$$arity=0),e.defn(d,"$body_sexp",c=function(){var e=this;return o(e["$wrap_in_closure?"]())?e.$compiler().$returns(e.$begn()):e.$begn()},c.$$arity=0),e.defn(d,"$ensr_sexp",_=function(){var e,t=this;return o(e=t.$ensr())?e:t.$s("nil")},_.$$arity=0),e.defn(d,"$wrap_in_closure?",u=function(){var e,t,n=this;return o(e=o(t=n["$recv?"]())?t:n["$expr?"]())?e:n["$has_rescue_else?"]()},u.$$arity=0),e.defn(d,"$rescue_else_code",l=function(){var e=this,t=$;return t=e.$scope().$rescue_else_sexp(),o(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t},l.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(n,$super,r){function i(){}var _,u,l,d,p=i=a(n,$super,"RescueNode",i);p.$$proto,[p].concat(r);p.$handle("rescue"),p.$children("body"),e.defn(p,"$compile",_=function(){var n,r,i,a,_,u=this,l=$;return l=[s(u.$children()["$[]"](c(1,-1,!1)),"detect",[],(n=function(e){var t;n.$$s;return null==e&&(e=$),o(t=e)?e.$type()["$!="]("resbody"):t},n.$$s=u,n.$$arity=1,n))],s(u.$scope(),"rescue_else_sexp=",e.to_a(l)),l[t(l.length,1)],!1,o(u["$handle_rescue_else_manually?"]())&&u.$line("var $no_errors = true;"),u.$push("try {"),s(u,"indent",[],((r=function(){var e=r.$$s||this;return e.$line(e.$stmt(e.$body_code()))}).$$s=u,r.$$arity=0,r)),u.$line("} catch ($err) {"),s(u,"indent",[],((i=function(){var e,t=i.$$s||this;return o(t["$has_rescue_else?"]())&&t.$line("$no_errors = false;"),s(t.$children()["$[]"](c(1,-1,!1)),"each_with_index",[],((e=function(t,n){var r,i=e.$$s||this;return null==i.level&&(i.level=$),null==t&&(t=$),null==n&&(n=$),o(o(r=t)?t.$type()["$=="]("resbody"):r)?(!0,n["$=="](0)||i.$push(" else "),i.$line(i.$process(t,i.level))):$}).$$s=t,e.$$arity=2,e)),t.$push(" else { throw $err; }")}).$$s=u,i.$$arity=0,i)),u.$line("}"),o(u["$handle_rescue_else_manually?"]())&&(u.$push("finally {"),s(u,"indent",[],((a=function(){var e,t=a.$$s||this;return t.$line("if ($no_errors) { "),s(t,"indent",[],((e=function(){var t=e.$$s||this;return t.$line(t.$stmt(t.$rescue_else_code()))}).$$s=t,e.$$arity=0,e)),t.$line("}")}).$$s=u,a.$$arity=0,a)),u.$push("}")),o(o(_=u["$expr?"]())?_:u["$recv?"]())?u.$wrap("(function() { ","})()"):$},_.$$arity=0),e.defn(p,"$body_code",u=function(){var e,t=this,n=$;return n=o(o(e=t.$body()["$nil?"]())?e:t.$body().$type()["$=="]("resbody"))?t.$s("nil"):t.$body(),o(t["$stmt?"]())||(n=t.$compiler().$returns(n)),n},u.$$arity=0),e.defn(p,"$rescue_else_code",l=function(){var e=this,t=$;return t=e.$scope().$rescue_else_sexp(),o(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t},l.$$arity=0),e.defn(p,"$handle_rescue_else_manually?",d=function(){var e,t=this;return o(e=t.$scope()["$in_ensure?"]()["$!"]())?t.$scope()["$has_rescue_else?"]():e},d.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var i,c,_,u=r=a(t,$super,"ResBodyNode",r);u.$$proto,[u].concat(n);u.$handle("resbody"),u.$children("klasses_sexp","lvar","body"),e.defn(u,"$compile",i=function(){var e,t=this;return t.$push("if (Opal.rescue($err, ",t.$expr(t.$klasses()),")) {"),s(t,"indent",[],((e=function(){var t,n=e.$$s||this;return o(n.$lvar())&&n.$push(n.$expr(n.$lvar()),"$err;"),n.$line("try {"),s(n,"indent",[],((t=function(){var e=t.$$s||this;return e.$line(e.$stmt(e.$rescue_body()))}).$$s=n,t.$$arity=0,t)),n.$line("} finally { Opal.pop_exception() }")}).$$s=t,e.$$arity=0,e)),t.$line("}")},i.$$arity=0),e.defn(u,"$klasses",c=function(){var e,t=this;return o(e=t.$klasses_sexp())?e:t.$s("array",t.$s("const",$,"StandardError"))},c.$$arity=0),e.defn(u,"$rescue_body",_=function(){var e,t=this,n=$;return n=o(e=t.$body())?e:t.$s("nil"),o(t["$stmt?"]())||(n=t.$compiler().$returns(n)),n},_.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var i,s=r=a(t,$super,"RetryNode",r);s.$$proto,[s].concat(n);s.$handle("retry"),e.defn(s,"$compile",i=function(){var e=this;return e.$push(e.$stmt(e.$s("send",$,"retry")))},i.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u)}(u[0],u)}(r[0],r)},Opal.modules["opal/nodes/case"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var n=e.top,r=[],$=e.nil,i=(e.breaker,e.slice,e.module),a=e.klass,s=e.send,o=e.truthy,c=e.range;return e.add_stubs(["$require","$handle","$children","$in_case","$compiler","$compile_code","$needs_closure?","$wrap","$condition","$[]=","$case_stmt","$-","$add_local","$push","$expr","$each_with_index","$case_parts","$line","$type","$===","$returns","$==","$stmt","$!","$stmt?","$[]","$when_checks","$js_truthy","$s","$process","$body_code","$last"]),n.$require("opal/nodes/base"),function(n,r){var _=i(n,"Opal"),u=(_.$$proto,[_].concat(r));!function(n,r){var _=i(n,"Nodes"),u=(_.$$proto,[_].concat(r));!function(n,$super,r){function i(){}var _,u,l,d,p,f=i=a(n,$super,"CaseNode",i);f.$$proto,[f].concat(r);f.$handle("case"),f.$children("condition"),e.defn(f,"$compile",_=function(){var e,t=this;return s(t.$compiler(),"in_case",[],((e=function(){var t=e.$$s||this;return t.$compile_code(),o(t["$needs_closure?"]())?t.$wrap("(function() {","})()"):$}).$$s=t,e.$$arity=0,e))},_.$$arity=0),e.defn(f,"$compile_code",u=function(){var n,r,i=this,a=$,c=$;return a=!1,o(i.$condition())&&(c=["cond",!0],s(i.$case_stmt(),"[]=",e.to_a(c)),c[t(c.length,1)],i.$add_local("$case"),i.$push("$case = ",i.$expr(i.$condition()),";")),s(i.$case_parts(),"each_with_index",[],((n=function(e,t){var r=n.$$s||this,i=$;return null==e&&(e=$),null==t&&(t=$),o(e)?(r.$line(),i=e.$type(),"when"["$==="](i)?(o(r["$needs_closure?"]())&&(e=r.$compiler().$returns(e)),t["$=="](0)||r.$push("else "),r.$push(r.$stmt(e))):(a=!0,o(r["$needs_closure?"]())&&(e=r.$compiler().$returns(e)),r.$push("else {",r.$stmt(e),"}"))):$}).$$s=i,n.$$arity=2,n)),o(o(r=i["$needs_closure?"]())?a["$!"]():r)?(i.$line(),i.$push("else { return nil }")):$},u.$$arity=0),e.defn(f,"$needs_closure?",l=function(){return this["$stmt?"]()["$!"]()},l.$$arity=0),e.defn(f,"$case_parts",d=function(){return this.$children()["$[]"](c(1,-1,!1))},d.$$arity=0),e.defn(f,"$case_stmt",p=function(){return this.$compiler().$case_stmt()},p.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u),function(t,$super,n){function r(){}var i,_,u,l,d=r=a(t,$super,"WhenNode",r),p=d.$$proto;[d].concat(n);p.level=$,d.$handle("when"),d.$children("whens","body"),e.defn(d,"$compile",i=function(){var e,t=this;return t.$push("if ("),s(t.$when_checks(),"each_with_index",[],((e=function(t,n){var r=e.$$s||this,i=$;return null==t&&(t=$),null==n&&(n=$),n["$=="](0)||r.$push(" || "),t.$type()["$=="]("splat")?(r.$push("(function($splt) { for (var i = 0, ii = $splt.length; i < ii; i++) {"),o(r.$case_stmt()["$[]"]("cond"))?r.$push("if ($splt[i]['$===']($case)) { return true; }"):r.$push("if (",r.$js_truthy(t),")) { return true; }"),r.$push("} return false; })(",r.$expr(t.$children()["$[]"](0)),")")):o(r.$case_stmt()["$[]"]("cond"))?(i=r.$s("send",t,"===",r.$s("arglist",r.$s("js_tmp","$case"))),r.$push(r.$expr(i))):r.$push(r.$js_truthy(t))}).$$s=t,e.$$arity=2,e)),t.$push(") {",t.$process(t.$body_code(),t.level),"}")},i.$$arity=0),e.defn(d,"$when_checks",_=function(){return this.$children()["$[]"](c(0,-2,!1))},_.$$arity=0),e.defn(d,"$case_stmt",u=function(){return this.$compiler().$case_stmt()},u.$$arity=0),e.defn(d,"$body_code",l=function(){var e,t=this;return o(e=t.$children().$last())?e:t.$s("nil")},l.$$arity=0)}(u[0],e.const_get_relative(u,"Base"),u)}(u[0],u)}(r[0],r)},Opal.modules["opal/nodes/super"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var n=e.top,r=[],$=e.nil,i=(e.breaker,e.slice),a=e.module,s=e.klass,o=e.send,c=e.truthy;return e.add_stubs(["$require","$include?","$type","$s","$helper","$push","$compile_receiver","$compile_method","$compile_arguments","$compile_block_pass","$private","$def?","$scope","$find_parent_def","$==","$raise_exception?","$implicit_args?","$to_s","$mid","$def_scope","$identify!","$defs","$name","$parent","$method_id","$def_scope_identity","$defined_check_param","$get_super_chain","$join","$map","$implicit_arguments_param","$super_method_invocation","$iter?","$super_block_invocation","$raise","$handle","$method_missing?","$compiler","$wrap","$uses_block!","$compile_using_send","$iter","$uses_zuper=","$-","$formal_block_parameter","$!","$[]","$<<","$empty?","$children","$arglist","$expr","$===","$extract_block_arg","$block_arg"]),n.$require("opal/nodes/base"),function(n,r){var _=a(n,"Opal"),u=(_.$$proto,[_].concat(r));!function(n,r){var _=a(n,"Nodes"),u=(_.$$proto,[_].concat(r));!function(t,$super,n){function r(){}var a,_,u,l,d,p,f,g,h,m,y,v,b=r=s(t,$super,"BaseSuperNode",r),k=b.$$proto;[b].concat(n);k.sexp=k.def_scope=$,e.defn(b,"$initialize",a=function(){var t,n,r=this,s=a.$$p,_=$,u=$,l=$,d=$,p=$,f=$;for(s&&(a.$$p=null),p=0,f=arguments.length,d=new Array(f);p=t:e["$>="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],i=e.nil,a=(e.breaker,e.slice,e.module),s=e.klass,o=e.truthy,c=e.send;return e.add_stubs(["$require","$handle","$children","$new_temp","$scope","$==","$type","$rhs","$push","$expr","$any?","$size","$compile_masgn","$lhs","$queue_temp","$take_while","$!=","$drop","$each_with_index","$compile_assignment","$empty?","$shift","$[]","$<<","$dup","$s","$!","$>=","$updated","$include?","$+","$last","$raise"]),r.$require("opal/nodes/base"),function(r,$){var _=a(r,"Opal"),u=(_.$$proto,[_].concat($));!function(r,$){var _=a(r,"Nodes"),u=(_.$$proto,[_].concat($));!function(r,$super,$){function a(){}var _,u,l,d=a=s(r,$super,"MassAssignNode",a),p=(d.$$proto,[d].concat($));e.const_set(p[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"]),d.$handle("masgn"),d.$children("lhs","rhs"),e.defn(d,"$compile",_=function(){var e,t=this,n=i,r=i,$=i;return n=t.$scope().$new_temp(),t.$rhs().$type()["$=="]("array")?(t.$push(n+" = ",t.$expr(t.$rhs())),r=o(c(t.$rhs().$children(),"any?",[],((e=function(t){return e.$$s,null==t&&(t=i),t.$type()["$=="]("splat")}).$$s=t,e.$$arity=1,e)))?i:t.$rhs().$children().$size(),t.$compile_masgn(t.$lhs().$children(),n,r),t.$push(", "+n)):(t.$rhs().$type()["$=="]("begin"),$=t.$scope().$new_temp(),t.$push($+" = ",t.$expr(t.$rhs())),t.$push(", "+n+" = Opal.to_ary("+$+")"),t.$compile_masgn(t.$lhs().$children(),n),t.$push(", "+$),t.$scope().$queue_temp($)),t.$scope().$queue_temp(n)},_.$$arity=0),e.defn(d,"$compile_masgn",u=function(e,t,n){var r,$,a,s=this,_=i,u=i,l=i,d=i,p=i;return null==n&&(n=i),_=c(e,"take_while",[],((r=function(e){r.$$s;return null==e&&(e=i),e.$type()["$!="]("splat")}).$$s=s,r.$$arity=1,r)),u=e.$drop(_.$size()),c(_,"each_with_index",[],(($=function(e,r){var a=$.$$s||this;return null==e&&(e=i),null==r&&(r=i),a.$compile_assignment(e,t,r,n)}).$$s=s,$.$$arity=2,$)),o(u["$empty?"]())?i:(l=u.$shift(),o(u["$empty?"]())?o(d=l.$children()["$[]"](0))?(d=d.$dup()["$<<"](s.$s("js_tmp","$slice.call("+t+", "+_.$size()+")")),s.$push(", "),s.$push(s.$expr(d))):i:(p=s.$scope().$new_temp(),s.$push(", "+p+" = "+t+".length - "+u.$size()),s.$push(", "+p+" = ("+p+" < "+_.$size()+") ? "+_.$size()+" : "+p),o(d=l.$children()["$[]"](0))&&(d=d.$dup()["$<<"](s.$s("js_tmp","$slice.call("+t+", "+_.$size()+", "+p+")")),s.$push(", "),s.$push(s.$expr(d))),c(u,"each_with_index",[],((a=function(e,n){var r=a.$$s||this;return null==e&&(e=i),null==n&&(n=i),n["$=="](0)?r.$compile_assignment(e,t,p):r.$compile_assignment(e,t,p+" + "+n)}).$$s=s,a.$$arity=2,a)),s.$scope().$queue_temp(p)))},u.$$arity=-3),e.defn(d,"$compile_assignment",l=function(r,$,a,s){var c,_=this,u=i,l=i,d=i;if(null==s&&(s=i),u=o(o(c=s["$!"]())?c:t(a,s))?_.$s("js_tmp","("+$+"["+a+"] == null ? nil : "+$+"["+a+"])"):_.$s("js_tmp",$+"["+a+"]"),l=r.$updated(),o(e.const_get_relative(p,"SIMPLE_ASSIGNMENT")["$include?"](r.$type())))l=l.$updated(i,n(l.$children(),[u]));else if(r.$type()["$=="]("send"))l=l.$updated(i,n(l.$children(),[u]));else if(r.$type()["$=="]("attrasgn"))l.$last()["$<<"](u);else{if(r.$type()["$=="]("mlhs"))return d=_.$scope().$new_temp(),_.$push(", ("+d+" = Opal.to_ary("+u.$children()["$[]"](0)+")"),_.$compile_masgn(r.$children(),d),_.$push(")"),_.$scope().$queue_temp(d),i;_.$raise("Bad child node in masgn LHS: "+r+". LHS: "+_.$lhs())}return _.$push(", "),_.$push(_.$expr(l))},l.$$arity=-4)}(u[0],e.const_get_relative(u,"Base"),u)}(u[0],u)}($[0],$)},Opal.modules["opal/nodes/arglist"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.breaker,e.slice,e.module),i=e.klass,a=e.send,s=e.truthy;return e.add_stubs(["$require","$handle","$each","$children","$==","$type","$expr","$empty?","$<<","$fragment","$push"]),t.$require("opal/nodes/base"),function(t,n){var o=$(t,"Opal"),c=(o.$$proto,[o].concat(n));!function(t,n){var o=$(t,"Nodes"),c=(o.$$proto,[o].concat(n));!function(t,$super,n){function $(){}var o,c=$=i(t,$super,"ArglistNode",$);c.$$proto,[c].concat(n);c.$handle("arglist"),e.defn(c,"$compile",o=function(){var t,n,$=this,i=r,o=r,c=r;return i=(t=[[],[]])[0],o=t[1],a($.$children(),"each",[],((n=function(e){var t=n.$$s||this,$=r,a=r;return null==e&&(e=r),$=e.$type()["$=="]("splat"),a=t.$expr(e),s($)?(s(o["$empty?"]())?s(i["$empty?"]())?i["$<<"](a):i["$<<"](t.$fragment(".concat("))["$<<"](a)["$<<"](t.$fragment(")")):(s(i["$empty?"]())?i["$<<"](t.$fragment("["))["$<<"](o)["$<<"](t.$fragment("]")):i["$<<"](t.$fragment(".concat(["))["$<<"](o)["$<<"](t.$fragment("])")),i["$<<"](t.$fragment(".concat("))["$<<"](a)["$<<"](t.$fragment(")"))),o=[]):(s(o["$empty?"]())||o["$<<"](t.$fragment(", ")),o["$<<"](a))}).$$s=$,n.$$arity=1,n)),s(o["$empty?"]())||(c=o,s(i["$empty?"]())?i=c:i["$<<"]($.$fragment(".concat("))["$<<"](c)["$<<"]($.$fragment(")"))),a($,"push",e.to_a(i))},o.$$arity=0)}(c[0],e.const_get_relative(c,"Base"),c)}(c[0],c)}(n[0],n)},Opal.modules["opal/nodes"]=function(e){var t=e.top;e.nil,e.breaker,e.slice;return e.add_stubs(["$require"]),t.$require("opal/nodes/base"),t.$require("opal/nodes/literal"),t.$require("opal/nodes/variables"),t.$require("opal/nodes/constants"),t.$require("opal/nodes/call"),t.$require("opal/nodes/csend"),t.$require("opal/nodes/call_special"),t.$require("opal/nodes/module"),t.$require("opal/nodes/class"),t.$require("opal/nodes/singleton_class"),t.$require("opal/nodes/inline_args"),t.$require("opal/nodes/args/normarg"),t.$require("opal/nodes/args/optarg"),t.$require("opal/nodes/args/mlhsarg"),t.$require("opal/nodes/args/restarg"),t.$require("opal/nodes/args/kwarg"),t.$require("opal/nodes/args/kwoptarg"),t.$require("opal/nodes/args/kwrestarg"),t.$require("opal/nodes/args/post_kwargs"),t.$require("opal/nodes/args/post_args"),t.$require("opal/nodes/iter"),t.$require("opal/nodes/def"),t.$require("opal/nodes/defs"),t.$require("opal/nodes/if"),t.$require("opal/nodes/logic"),t.$require("opal/nodes/definitions"),t.$require("opal/nodes/yield"),t.$require("opal/nodes/rescue"),t.$require("opal/nodes/case"),t.$require("opal/nodes/super"),t.$require("opal/nodes/top"),t.$require("opal/nodes/while"),t.$require("opal/nodes/hash"),t.$require("opal/nodes/array"),t.$require("opal/nodes/defined"),t.$require("opal/nodes/masgn"),t.$require("opal/nodes/arglist")},Opal.modules["opal/eof_content"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),$=e.klass,i=e.truthy,a=e.send,s=e.range;return e.add_stubs(["$empty?","$[]","$last_token_position","$drop_while","$lines","$==","$join","$private","$last","$end_pos"]),function(t,o){var c=r(t,"Opal"),_=(c.$$proto,[c].concat(o));!function(t,$super,r){function o(){}var c,_,u,l=o=$(t,null,"EofContent",o),d=l.$$proto,p=[l].concat(r);d.tokens=d.source=n,e.const_set(p[0],"DATA_SEPARATOR","__END__\n"),e.defn(l,"$initialize",c=function(e,t){var n=this;return n.tokens=e,n.source=t},c.$$arity=2),e.defn(l,"$eof",_=function(){var t,r,$=this,o=n;return i($.tokens["$empty?"]())?n:(o=$.source["$[]"](e.Range.$new($.$last_token_position(),-1,!1)),i(o)?(o=a(o.$lines(),"drop_while",[],((t=function(e){t.$$s;return null==e&&(e=n),e["$=="]("\n")}).$$s=$,t.$$arity=1,t)))["$[]"](0)["$=="]("__END__\n")?(o=i(r=o["$[]"](s(1,-1,!1)))?r:[]).$join():o["$=="](["__END__"])?"":n:n)},_.$$arity=0),l.$private(),e.defn(l,"$last_token_position",u=function(){var t,r;return r=this.tokens.$last(),null==(t=e.to_ary(r))[0]?n:t[0],r=null==t[1]?n:t[1],null==(t=e.to_ary(r))[0]?n:t[0],(null==t[1]?n:t[1]).$end_pos()},u.$$arity=0)}(_[0],0,_)}(t[0],t)},Opal.modules["opal/compiler"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],i=e.nil,a=(e.breaker,e.slice),s=e.module,o=e.hash2,c=e.klass,_=e.send,u=e.truthy;return e.add_stubs(["$require","$compile","$new","$[]","$define_method","$fetch","$!","$include?","$raise","$+","$inspect","$compiler_option","$attr_reader","$attr_accessor","$parse","$flatten","$process","$join","$map","$to_proc","$file","$source=","$-","$default_parser","$tokenize","$message","$backtrace","$s","$associate_locations","$eof","$warn","$to_s","$empty?","$gsub","$<<","$helpers","$new_temp","$queue_temp","$push_while","$indent","$pop_while","$in_while?","$==","$fragment","$scope","$handlers","$type","$compile_to_fragments","$error","$returns","$===","$updated","$any?","$children","$select","$end_with?","$loc","$uses_block!","$block_name","$find_parent_def"]),r.$require("set"),r.$require("opal/parser"),r.$require("opal/fragment"),r.$require("opal/nodes"),r.$require("opal/eof_content"),function(r,$){var l,d=s(r,"Opal"),p=(d.$$proto,[d].concat($));e.defs(d,"$compile",l=function(t,n){return null==n&&(n=o([],{})),e.const_get_relative(p,"Compiler").$new(t,n).$compile()},l.$$arity=-2),function(r,$super,$){function s(){}var l,d,p,f,g,h,m,y,v,b,k,x,E,w,R,N,A,S,T,q,O,I,z,C,P,B,G,D,L=s=c(r,null,"Compiler",s),M=L.$$proto,j=[L].concat($);M.sexp=M.fragments=M.source=M.buffer=M.parser=M.helpers=M.operator_helpers=M.method_calls=M.indent=M.unique=M.scope=M.in_ensure=M.case_stmt=M.handlers=M.requires=M.required_trees=i,e.const_set(j[0],"INDENT"," "),e.const_set(j[0],"COMPARE",["<",">","<=",">="]),e.defs(L,"$compiler_option",l=function(n,r,$){var a,s,c=this,l=i,d=i;return null==$&&($=o([],{})),l=$["$[]"]("as"),d=$["$[]"]("valid_values"),_(c,"define_method",[u(a=l)?a:n],((s=function(){var $,a,o=s.$$s||this,c=i;return null==o.options&&(o.options=i),c=_(o.options,"fetch",[n],(($=function(){$.$$s;return r}).$$s=o,$.$$arity=0,$)),u(u(a=d)?d["$include?"](c)["$!"]():a)&&o.$raise(e.const_get_relative(j,"ArgumentError"),t("invalid value "+c.$inspect()+" for option "+n.$inspect()+" ","(valid values: "+d.$inspect()+")")),c}).$$s=c,s.$$arity=0,s))},l.$$arity=-3),L.$compiler_option("file","(file)"),L.$compiler_option("method_missing",!0,o(["as"],{as:"method_missing?"})),L.$compiler_option("arity_check",!1,o(["as"],{as:"arity_check?"})),L.$compiler_option("freezing",!0,o(["as"],{as:"freezing?"})),L.$compiler_option("tainting",!0,o(["as"],{as:"tainting?"})),L.$compiler_option("irb",!1,o(["as"],{as:"irb?"})),L.$compiler_option("dynamic_require_severity","ignore",o(["valid_values"],{valid_values:["error","warning","ignore"]})),L.$compiler_option("requirable",!1,o(["as"],{as:"requirable?"})),L.$compiler_option("inline_operators",!0,o(["as"],{as:"inline_operators?"})),L.$compiler_option("eval",!1,o(["as"],{as:"eval?"})),L.$compiler_option("enable_source_location",!1,o(["as"],{as:"enable_source_location?"})),L.$compiler_option("parse_comments",!1,o(["as"],{as:"parse_comments?"})),L.$attr_reader("result"),L.$attr_reader("fragments"),L.$attr_accessor("scope"),L.$attr_reader("case_stmt"),L.$attr_reader("eof_content"),L.$attr_reader("comments"),e.defn(L,"$initialize",d=function(t,n){var r=this;return null==n&&(n=o([],{})),r.source=t,r.indent="",r.unique=0,r.options=n,r.comments=e.const_get_relative(j,"Hash").$new([]),r.case_stmt=i},d.$$arity=-2),e.defn(L,"$compile",p=function(){var e=this;return e.$parse(),e.fragments=e.$process(e.sexp).$flatten(),e.result=_(e.fragments,"map",[],"code".$to_proc()).$join("")},p.$$arity=0),e.defn(L,"$parse",f=function(){var t,r,$=this,a=i,s=i,o=i,c=i,l=i;$.buffer=e.const_get_qualified(e.const_get_qualified(e.const_get_qualified("::","Opal"),"Source"),"Buffer").$new($.$file(),1),a=[$.source],_($.buffer,"source=",e.to_a(a)),a[n(a.length,1)],$.parser=e.const_get_qualified(e.const_get_relative(j,"Opal"),"Parser").$default_parser();try{r=$.parser.$tokenize($.buffer),s=null==(t=e.to_ary(r))[0]?i:t[0],o=null==t[1]?i:t[1],c=null==t[2]?i:t[2]}catch(d){if(!e.rescue(d,[e.const_get_qualified(e.const_get_qualified("::","Parser"),"SyntaxError")]))throw d;l=d;try{$.$raise(e.const_get_qualified("::","SyntaxError"),l.$message(),l.$backtrace())}finally{e.pop_exception()}}return $.sexp=$.$s("top",u(t=s)?t:$.$s("nil")),$.comments=e.const_get_qualified(e.const_get_qualified(e.const_get_qualified("::","Parser"),"Source"),"Comment").$associate_locations(s,o),$.eof_content=e.const_get_relative(j,"EofContent").$new(c,$.source).$eof()},f.$$arity=0),e.defn(L,"$source_map",g=function(t){var n,r=this;return null==t&&(t=i),e.const_get_qualified(e.const_get_relative(j,"Opal"),"SourceMap").$new(r.fragments,u(n=t)?n:r.$file())},g.$$arity=-1),e.defn(L,"$helpers",h=function(){var t,n=this;return n.helpers=u(t=n.helpers)?t:e.const_get_relative(j,"Set").$new(["breaker","slice"])},h.$$arity=0),e.defn(L,"$operator_helpers",m=function(){var t,n=this;return n.operator_helpers=u(t=n.operator_helpers)?t:e.const_get_relative(j,"Set").$new()},m.$$arity=0),e.defn(L,"$method_calls",y=function(){var t,n=this;return n.method_calls=u(t=n.method_calls)?t:e.const_get_relative(j,"Set").$new()},y.$$arity=0),e.defn(L,"$error",v=function(t,n){var r=this;return null==n&&(n=i),r.$raise(e.const_get_relative(j,"SyntaxError"),t+" :"+r.$file()+":"+n)},v.$$arity=-2),e.defn(L,"$warning",b=function(e,t){var n=this;return null==t&&(t=i),n.$warn("WARNING: "+e+" -- "+n.$file()+":"+t)},b.$$arity=-2),e.defn(L,"$parser_indent",k=function(){return this.indent},k.$$arity=0),e.defn(L,"$s",x=function(t){var n,r=arguments.length,$=r-1;$<0&&($=0),n=new Array($);for(var i=1;i","$gt").$gsub(/[^\w\$]/,"$")),"TMP"+e+"_"+(r.unique=t(r.unique,1))},w.$$arity=1),e.defn(L,"$helper",R=function(e){return this.$helpers()["$<<"](e)},R.$$arity=1),e.defn(L,"$indent",N=function(){var n=this,r=N.$$p,$=r||i,a=i,s=i;return r&&(N.$$p=null),a=n.indent,n.indent=t(n.indent,e.const_get_relative(j,"INDENT")),n.space="\n"+n.indent,s=e.yieldX($,[]),n.indent=a,n.space="\n"+n.indent,s},N.$$arity=0),e.defn(L,"$with_temp",A=function(){var t=this,n=A.$$p,r=n||i,$=i,a=i;return n&&(A.$$p=null),$=t.scope.$new_temp(),a=e.yield1(r,$),t.scope.$queue_temp($),a},A.$$arity=0),e.defn(L,"$in_while",S=function(){var t,n=this,r=S.$$p,$=r||i,a=i;return r&&(S.$$p=null),$===i?i:(n.while_loop=n.scope.$push_while(),a=_(n,"indent",[],((t=function(){t.$$s;return e.yieldX($,[])}).$$s=n,t.$$arity=0,t)),n.scope.$pop_while(),a)},S.$$arity=0),e.defn(L,"$in_ensure",T=function(){var t=this,n=T.$$p,r=n||i,$=i;return n&&(T.$$p=null),r===i?i:(t.in_ensure=!0,$=e.yieldX(r,[]),t.in_ensure=!1,$)},T.$$arity=0),e.defn(L,"$in_ensure?",q=function(){return this.in_ensure["$!"]()["$!"]()},q.$$arity=0),e.defn(L,"$in_case",O=function(){var t=this,n=O.$$p,r=n||i,$=i;return n&&(O.$$p=null),r===i?i:($=t.case_stmt,t.case_stmt=o([],{}),e.yieldX(r,[]),t.case_stmt=$)},O.$$arity=0),e.defn(L,"$in_while?",I=function(){return this.scope["$in_while?"]()},I.$$arity=0),e.defn(L,"$process",z=function(e,t){var n=this,r=i;return null==t&&(t="expr"),e["$=="](i)?n.$fragment("",n.$scope()):u(r=n.$handlers()["$[]"](e.$type()))?r.$new(e,t,n).$compile_to_fragments():n.$error("Unsupported sexp: "+e.$type())},z.$$arity=-2),e.defn(L,"$handlers",C=function(){var t,n=this;return n.handlers=u(t=n.handlers)?t:e.const_get_qualified(e.const_get_qualified(e.const_get_relative(j,"Opal"),"Nodes"),"Base").$handlers()},C.$$arity=0),e.defn(L,"$requires",P=function(){var e,t=this;return t.requires=u(e=t.requires)?e:[]},P.$$arity=0),e.defn(L,"$required_trees",B=function(){var e,t=this;return t.required_trees=u(e=t.required_trees)?e:[]},B.$$arity=0),e.defn(L,"$returns",G=function(t){var n,r,$,s,c,l,d=this,p=i,f=i,g=i,h=i,m=i,y=i,v=i,b=i,k=i,x=i,E=i,w=i,R=i,N=i,A=i,S=i,T=i,q=i,O=i,I=i,z=i;return u(t)?(p=t.$type(),"undef"["$==="](p)?d.$returns(d.$s("begin",t,d.$s("nil"))):"break"["$==="](p)||"next"["$==="](p)||"redo"["$==="](p)?t:"yield"["$==="](p)?t.$updated("returnable_yield",i):"when"["$==="](p)?(n=[].concat(e.to_a(t)),r=(r=n.length-1)<0?0:r,f=a.call(n,0,r),g=null==n[r]?i:n[r],t.$updated(i,[].concat(e.to_a(f)).concat([d.$returns(g)]))):"rescue"["$==="](p)?(n=[].concat(e.to_a(t)),h=null==n[0]?i:n[0],r=(r=n.length-1)<1?1:r,m=a.call(n,1,r),y=null==n[r]?i:n[r],m=_(m,"map",[],(($=function(e){var t=$.$$s||this;return null==e&&(e=i),t.$returns(e)}).$$s=d,$.$$arity=1,$)),u(y)&&(y=d.$returns(y)),t.$updated(i,[d.$returns(h)].concat(e.to_a(m)).concat([y]))):"resbody"["$==="](p)?(n=[].concat(e.to_a(t)),v=null==n[0]?i:n[0],b=null==n[1]?i:n[1],k=null==n[2]?i:n[2],t.$updated(i,[v,b,d.$returns(k)])):"ensure"["$==="](p)?(n=[].concat(e.to_a(t)),x=null==n[0]?i:n[0],E=null==n[1]?i:n[1],t=t.$updated(i,[d.$returns(x),E]),d.$s("js_return",t)):"begin"["$==="](p)||"kwbegin"["$==="](p)?(n=[].concat(e.to_a(t)),r=(r=n.length-1)<0?0:r,w=a.call(n,0,r),R=null==n[r]?i:n[r],t.$updated(i,[].concat(e.to_a(w)).concat([d.$returns(R)]))):"while"["$==="](p)||"until"["$==="](p)||"while_post"["$==="](p)||"until_post"["$==="](p)?t:"return"["$==="](p)||"js_return"["$==="](p)||"returnable_yield"["$==="](p)?t:"xstr"["$==="](p)?u(t.$children()["$any?"]())?(N=_(_(t.$children(),"select",[],((s=function(e){return s.$$s,null==e&&(e=i),e.$type()["$=="]("str")}).$$s=d,s.$$arity=1,s)),"map",[],((c=function(e){return c.$$s,null==e&&(e=i),e.$children()["$[]"](0)}).$$s=d,c.$$arity=1,c)),A=_(N,"any?",[],((l=function(e){return l.$$s,null==e&&(e=i),e["$end_with?"](";\n")}).$$s=d,l.$$arity=1,l)),n=[].concat(e.to_a(t)),S=null==n[0]?i:n[0],T=a.call(n,1),u(A)?t:S.$type()["$=="]("str")?(q=S.$children()["$[]"](0),u(q["$include?"]("return"))?t:(S=d.$s("js_return",S),t.$updated(i,[S].concat(e.to_a(T))))):d.$s("js_return",t)):d.$returns(d.$s("str","")):"if"["$==="](p)?(n=[].concat(e.to_a(t)),O=null==n[0]?i:n[0],I=null==n[1]?i:n[1],z=null==n[2]?i:n[2],t.$updated(i,[O,d.$returns(I),d.$returns(z)])):d.$s("js_return",t).$updated(i,i,o(["location"],{location:t.$loc()}))):d.$returns(d.$s("nil"))},G.$$arity=1),e.defn(L,"$handle_block_given_call",D=function(e){var t,n=this,r=i;return n.scope["$uses_block!"](),u(n.scope.$block_name())?n.$fragment("("+n.scope.$block_name()+" !== nil)",n.$scope(),e):u(u(t=r=n.scope.$find_parent_def())?r.$block_name():t)?n.$fragment("("+r.$block_name()+" !== nil)",r,e):n.$fragment("false",r,e)},D.$$arity=1)}(p[0],0,p)}($[0],$)},function(Opal){function $rb_minus(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var TMP_1,self=Opal.top,$nesting=[],nil=Opal.nil,$breaker=Opal.breaker,$slice=Opal.slice,$send=Opal.send,$truthy=Opal.truthy;Opal.add_stubs(["$require","$ready?","$each_with_index","$[]","$attr","$<<","$then","$get","$body","$[]=","$-","$html","$when","$compile","$new","$join","$message","$each","$const_get","$flatten","$compact","$collect","$data","$==","$underscore","$create_element","$render"]),self.$require("opal/compiler"),$send(Opal.const_get_relative($nesting,"Document"),"ready?",[],(TMP_1=function(){var self=TMP_1.$$s||this,TMP_2,TMP_4,promises=nil,code=nil;return promises=[],code=[],$send(Opal.const_get_relative($nesting,"Element")["$[]"]('script[type="text/ruby"]'),"each_with_index",[],(TMP_2=function(e,t){var n,r=TMP_2.$$s||this,$=nil,i=nil;return null==e&&(e=nil),null==t&&(t=nil),$=e.$attr("src"),$truthy($)?promises["$<<"]($send(Opal.const_get_relative($nesting,"HTTP").$get($),"then",[],((n=function(e){n.$$s;var r=nil;return null==e&&(e=nil),r=[t,e.$body()],$send(code,"[]=",Opal.to_a(r)),r[$rb_minus(r.length,1)]}).$$s=r,n.$$arity=1,n))):(i=[t,e.$html()],$send(code,"[]=",Opal.to_a(i)),i[$rb_minus(i.length,1)])},TMP_2.$$s=self,TMP_2.$$arity=2,TMP_2)),$send($send(Opal.const_get_relative($nesting,"Promise"),"when",Opal.to_a(promises)),"then",[],(TMP_4=function(){var self=TMP_4.$$s||this,TMP_5,compiled_code=nil,continue_to_mounting=nil,e=nil,message=nil;compiled_code=nil,continue_to_mounting=nil;try{compiled_code=Opal.const_get_qualified(Opal.const_get_relative($nesting,"Opal"),"Compiler").$new(code.$join("\n")).$compile()}catch($err){if(!Opal.rescue($err,[Opal.const_get_relative($nesting,"Exception")]))throw $err;e=$err;try{message="Error raised while compiling: "+e.$message(),console.error(message)}finally{Opal.pop_exception()}}if($truthy(compiled_code))try{eval(compiled_code),continue_to_mounting=!0}catch($err){if(!Opal.rescue($err,[Opal.const_get_relative($nesting,"Exception")]))throw $err;e=$err;try{message="Error raised during execution: "+e.$message(),console.error(message)}finally{Opal.pop_exception()}}return $truthy(continue_to_mounting)?$send(Opal.const_get_relative($nesting,"Element")["$[]"]("[data-hyperstack-mount]"),"each",[],(TMP_5=function(e){var t,n=TMP_5.$$s||this,r=nil,$=nil,i=nil,a=nil;null==e&&(e=nil),r=e.$attr("data-hyperstack-mount"),$=nil;try{$=Opal.const_get_relative($nesting,"Object").$const_get(r)}catch($err){if(!Opal.rescue($err,[Opal.const_get_relative($nesting,"Exception")]))throw $err;try{return message="Could not find Component class named "+r,console.error(message),nil}finally{Opal.pop_exception()}}return i=$send(Opal.const_get_relative($nesting,"Hash"),"[]",Opal.to_a($send(Opal.const_get_relative($nesting,"Hash").$new(e.$data()),"collect",[],(t=function(e,n){t.$$s;return null==e&&(e=nil),null==n&&(n=nil),e["$=="]("reactrbMount")?nil:[e.$underscore(),n]},t.$$s=n,t.$$arity=2,t)).$compact().$flatten(1))),a=Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting,"Hyperstack"),"Component"),"ReactAPI").$create_element($,i),Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting,"Hyperstack"),"Component"),"ReactAPI").$render(a,e)},TMP_5.$$s=self,TMP_5.$$arity=1,TMP_5)):nil},TMP_4.$$s=self,TMP_4.$$arity=0,TMP_4))},TMP_1.$$s=self,TMP_1.$$arity=0,TMP_1))}(Opal); \ No newline at end of file +Opal.modules.base64=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.hash2,i=e.truthy;return e.add_stubs(["$raise","$delete"]),function(t,s){var o,c,_,u,l,d,p,f,h=n(t,"Base64"),m=[h].concat(s),g="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return p=function(e){for(var t,r,n=String(e),a=0,i=g,s="";n.charAt(0|a)||(i="=",a%1);s+=i.charAt(63&t>>8-a%1*8))(r=n.charCodeAt(a+=.75))>255&&h.$raise($(m,"ArgumentError"),"invalid character (failed: The string to be encoded contains characters outside of the Latin1 range.)"),t=t<<8|r;return s},f=function(e){var t=String(e).replace(/=+$/,"");t.length%4==1&&h.$raise($(m,"ArgumentError"),"invalid base64 (failed: The string to be decoded is not correctly encoded.)");for(var r,n,a=0,i=0,s="";n=t.charAt(i++);~n&&(r=a%4?64*r+n:n,a++%4)?s+=String.fromCharCode(255&r>>(-2*a&6)):0)n=g.indexOf(n);return s},e.defs(h,"$decode64",o=function(e){return f(e.replace(/\r?\n/g,""))},o.$$arity=1),e.defs(h,"$encode64",c=function(e){return p(e).replace(/(.{60})/g,"$1\n").replace(/([^\n])$/g,"$1\n")},c.$$arity=1),e.defs(h,"$strict_decode64",_=function(e){return f(e)},_.$$arity=1),e.defs(h,"$strict_encode64",u=function(e){return p(e)},u.$$arity=1),e.defs(h,"$urlsafe_decode64",l=function(e){return f(e.replace(/\-/g,"+").replace(/_/g,"/"))},l.$$arity=1),e.defs(h,"$urlsafe_encode64",d=function(t,$){var n,s=r;if(null==$)$=a([],{});else if(!$.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(n=$.$$smap.padding)&&(n=!0),s=p(t).replace(/\+/g,"-").replace(/\//g,"_"),i(n)||(s=s.$delete("=")),s},d.$$arity=-2),r&&"urlsafe_encode64"}(t[0],t)},Opal.modules["corelib/pack_unpack/format_string_parser"]=function(e){e.top;var t=[],r=(e.nil,e.$$$,e.$$),$=e.module;return e.add_stubs(["$raise"]),function(e,t){var n=$(e,"PackUnpack"),a=[n].concat(t),i=["C","S","L","Q","J","c","s","l","q","j","n","N","v","V","U","w","D","d","F","f","E","e","G","g","A","a","Z","B","b","H","h","u","M","m","P","p","@","X","x"],s=["!","_",">","<"];n.eachDirectiveAndCount=function(e,t){function $(){c=null,_=0,u=[],l=!1}function o(){null!=c?(!/[sSiIlLqQjJ]/.test(c)&&u.length>0&&n.$raise(r(a,"ArgumentError"),"'"+u[0]+"' allowed only after types sSiIlLqQjJ"),-1!==u.indexOf("<")&&-1!==u.indexOf(">")&&n.$raise(r(a,"RangeError"),"Can't use both '<' and '>'"),l||(_=1),-1!==u.indexOf(">")&&(c+=">"),t(c,_),$()):$()}var c,_,u,l;$();for(var d=0;d=a/2&&(e-=a),e})}}function c(e){return function(t){return e(t).map(function(e){return String.fromCharCode(e)})}}function _(e){return function(t){return e(t).join("")}}function u(e){return function(t){return[e(t)]}}function l(e){var t=e.map(function(e){return e.charCodeAt(0)});return function(e){return function(r){for(var $=e(r);-1!==t.indexOf($[$.length-1]);)$=$.slice(0,$.length-1);return $}}}function d(e){return function(t){return e(t).map(function(e){return e.reverse()})}}function p(e){return function(t){for(var r=e(t),$=0,n=0,a=[];;){if(!($45)return"";for(n+=i;i>0;){var s=r[$],o=r[$+1],c=r[$+2],_=(s-32&63)<<2|(o-32&63)>>4,u=(o-32&63)<<4|(c-32&63)>>2,l=(c-32&63)<<6|r[$+3]-32&63;a.push(255&_),a.push(255&u),a.push(255&l),$+=4,i-=3}++$}}return a.slice(0,n)}}function f(e){return function(t){for(var r=e(t),$=[],n="",a=0;a>7==0)return{chunk:[i],rest:e.slice($)};i>>6==2&&I.$raise(n(C,"ArgumentError"),"malformed UTF-8 character"),i>>5==6?r=1:i>>4==14?r=2:i>>3==30?r=3:i>>2==62?r=4:i>>1==126?r=5:I.$raise("malformed UTF-8 character"),r>a&&(q=r+1,P=a+1,I.$raise(n(C,"ArgumentError"),"malformed UTF-8 character (expected "+q+" bytes, given "+P+" bytes)"));for(var s=i&(1<<8-r-1)-1,o=0;o>6!=2&&I.$raise("Invalid multibyte sequence"),s=s<<6|63&i;return s<=65535?{chunk:[s],rest:e.slice($)}:{chunk:[55296+((s-=65536)>>10&1023),56320+(1023&s)],rest:e.slice($)}}function b(e){var t=e.indexOf(32);return-1===t?{chunk:e,rest:[]}:{chunk:e.slice(0,t),rest:e.slice(t,e.length)}}function k(e,t){for(var r="";t>0&&e.length>0;){var $=e[0],n=Math.min(t,8);Math.ceil(n/8);if(e=e.slice(1,e.length),null!=$){var a=$.toString(2);a=Array(8-a.length+1).join("0").concat(a).split("").reverse().join("");for(var i=0;i0&&e.length>0;){var $=e[0],n=Math.min(t,8);Math.ceil(n/8);if(e=e.slice(1,e.length),null!=$){var a=$.toString(2);a=Array(8-a.length+1).join("0").concat(a);for(var i=0;i0&&e.length>0;){var $=e[0].toString(16);e=e.slice(1,e.length),$=Array(2-$.length+1).join("0").concat($),1===t?(r.push($[0]),t--):(r.push($[0],$[1]),t-=2)}return{chunk:r,rest:e}}function z(e,t){for(var r=[];t>0&&e.length>0;){var $=e[0].toString(16);e=e.slice(1,e.length),$=Array(2-$.length+1).join("0").concat($),1===t?(r.push($[1]),t--):(r.push($[1],$[0]),t-=2)}return{chunk:r,rest:e}}function A(e){return function(t,r){var $,n=[];if(r===Infinity)for(;t.length>0;)t=($=e(t)).rest,n=n.concat($.chunk);else for(var a=0;a":i(d(s(2,g))),"L>":i(d(s(4,g))),"Q>":i(d(s(8,g))),c:o(1,g),s:o(2,i(s(2,g))),l:o(4,i(s(4,g))),q:o(8,i(s(8,g))),j:null,"s>":o(2,i(d(s(2,g)))),"l>":o(4,i(d(s(4,g)))),"q>":o(8,i(d(s(8,g)))),n:null,N:null,v:null,V:null,U:g,w:f(g),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:u(_(c(D(g)))),a:u(_(c(g))),Z:_(c(g)),B:_(g),b:_(g),H:_(g),h:_(g),u:_(c(p(g))),M:m(_(c(g))),m:h(_(c(g))),P:null,p:null},G={C:A(y(1)),S:A(y(2)),L:A(y(4)),Q:A(y(8)),J:null,"S>":A(y(2)),"L>":A(y(4)),"Q>":A(y(8)),c:A(y(1)),s:A(y(2)),l:A(y(4)),q:A(y(8)),j:null,"s>":A(y(2)),"l>":A(y(4)),"q>":A(y(8)),n:null,N:null,v:null,V:null,U:A(v),w:A(w),D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:A(y(1)),a:A(y(1)),Z:E,B:x,b:k,H:R,h:z,u:A(b),M:N,m:N,P:null,p:null},M={C:!0,S:!0,L:!0,Q:!0,J:null,"S>":!0,"L>":!0,"Q>":!0,c:!0,s:!0,l:!0,q:!0,j:null,"s>":!0,"l>":!0,"q>":!0,n:null,N:null,v:null,V:null,U:!1,w:!1,D:null,d:null,F:null,f:null,E:null,e:null,G:null,g:null,A:!1,a:!1,Z:!1,B:!1,b:!1,H:!1,h:!1,u:!1,M:!1,m:!1,P:null,p:null},j={"C*":L.C,"c*":L.c,"A*":L.A,"a*":L.a,"M*":u(L.M),"m*":u(L.m),"S*":L.S,"s*":L.s,"L*":L.L,"l*":L.l,"Q*":L.Q,"q*":L.q,"S>*":L["S>"],"s>*":L["s>"],"L>*":L["L>"],"l>*":L["l>"],"Q>*":L["Q>"],"q>*":L["q>"]};return S("S>","n"),S("L>","N"),S("S","v"),S("L","V"),e.def(I,"$unpack",O=function(e){function t(e,t){for(;e.length65535&&o++;return i.slice(0,s)}var c=a.$bytes(),_=j[e];return _?_(c):(B(e,function(e,$){var n=r(e,$);if($!==Infinity){var s=M[e];null==s&&a.$raise("Unsupported unpack directive "+e.$inspect()+" (no autocompletion rule defined)"),s&&t(n,$)}i=i.concat(n)}),i)},O.$$arity=1),e.def(I,"$unpack1",T=function(e){var t=this;return e=n(C,"Opal")["$coerce_to!"](e,n(C,"String"),"to_str").$gsub(/\s/,"").$delete("\0"),t.$unpack(e["$[]"](0))["$[]"](0)},T.$$arity=1),$&&"unpack1"}(r[0],0,r)},Opal.modules.set=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e"},m.$$arity=0),e.def(Y,"$==",g=function(e){var t,r=this,$=a;return!!c(r["$equal?"](e))||(c(e["$instance_of?"](r.$class()))?r.hash["$=="](e.$instance_variable_get("@hash")):!!c(c($=e["$is_a?"](i(X,"Set")))?r.$size()["$=="](e.$size()):$)&&_(e,"all?",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==r.hash&&(r.hash=a),null==e&&(e=a),r.hash["$include?"](e)}).$$s=r,t.$$arity=1,t)))},g.$$arity=1),e.def(Y,"$add",y=function(r){var $=this,n=a;return n=[r,!0],_($.hash,"[]=",e.to_a(n)),n[t(n.length,1)],$},y.$$arity=1),u(Y,"<<","add"),e.def(Y,"$classify",v=function(){var r,$,n=v.$$p,s=n||a,o=this,c=a;return n&&(v.$$p=null),n&&(v.$$p=null),s===a?o.$enum_for("classify"):(c=_(i(X,"Hash"),"new",[],((r=function($,n){var i=null==r.$$s?this:r.$$s,s=a;return null==$&&($=a),null==n&&(n=a),s=[n,i.$class().$new()],_($,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,r.$$arity=2,r)),_(o,"each",[],(($=function(t){null==$.$$s||$.$$s;return null==t&&(t=a),c["$[]"](e.yield1(s,t)).$add(t)}).$$s=o,$.$$arity=1,$)),c)},v.$$arity=0),e.def(Y,"$collect!",b=function(){var t,r=b.$$p,$=r||a,n=this,i=a;return r&&(b.$$p=null),r&&(b.$$p=null),$===a?n.$enum_for("collect!"):(i=n.$class().$new(),_(n,"each",[],((t=function(r){null==t.$$s||t.$$s;return null==r&&(r=a),i["$<<"](e.yield1($,r))}).$$s=n,t.$$arity=1,t)),n.$replace(i))},b.$$arity=0),u(Y,"map!","collect!"),e.def(Y,"$delete",k=function(e){var t=this;return t.hash.$delete(e),t},k.$$arity=1),e.def(Y,"$delete?",x=function(e){var t=this;return c(t["$include?"](e))?(t.$delete(e),t):a},x.$$arity=1),e.def(Y,"$delete_if",w=function(){var t,r,$=w.$$p,n=$||a,i=this;return $&&(w.$$p=null),n===a?i.$enum_for("delete_if"):(_(_(i,"select",[],((t=function(r){null==t.$$s||t.$$s;return null==r&&(r=a),e.yield1(n,r)}).$$s=i,t.$$arity=1,t)),"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==t.hash&&(t.hash=a),null==e&&(e=a),t.hash.$delete(e)}).$$s=i,r.$$arity=1,r)),i)},w.$$arity=0),e.def(Y,"$keep_if",E=function(){var t,r,$=E.$$p,n=$||a,i=this;return $&&(E.$$p=null),n===a?i.$enum_for("keep_if"):(_(_(i,"reject",[],((t=function(r){null==t.$$s||t.$$s;return null==r&&(r=a),e.yield1(n,r)}).$$s=i,t.$$arity=1,t)),"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==t.hash&&(t.hash=a),null==e&&(e=a),t.hash.$delete(e)}).$$s=i,r.$$arity=1,r)),i)},E.$$arity=0),e.def(Y,"$reject!",R=function(){var e=R.$$p,t=e||a,r=this,$=a;return e&&(R.$$p=null),e&&(R.$$p=null),t===a?r.$enum_for("reject!"):($=r.$size(),_(r,"delete_if",[],t.$to_proc()),r.$size()["$=="]($)?a:r)},R.$$arity=0),e.def(Y,"$select!",z=function(){var e=z.$$p,t=e||a,r=this,$=a;return e&&(z.$$p=null),e&&(z.$$p=null),t===a?r.$enum_for("select!"):($=r.$size(),_(r,"keep_if",[],t.$to_proc()),r.$size()["$=="]($)?a:r)},z.$$arity=0),u(Y,"filter!","select!"),e.def(Y,"$add?",A=function(e){var t=this;return c(t["$include?"](e))?a:t.$add(e)},A.$$arity=1),e.def(Y,"$each",N=function(){var e=N.$$p,t=e||a,r=this;return e&&(N.$$p=null),e&&(N.$$p=null),t===a?r.$enum_for("each"):(_(r.hash,"each_key",[],t.$to_proc()),r)},N.$$arity=0),e.def(Y,"$empty?",S=function(){return this.hash["$empty?"]()},S.$$arity=0),e.def(Y,"$eql?",O=function(e){var t,r=this;return r.hash["$eql?"](_(e,"instance_eval",[],((t=function(){var e=null==t.$$s?this:t.$$s;return null==e.hash&&(e.hash=a),e.hash}).$$s=r,t.$$arity=0,t)))},O.$$arity=1),e.def(Y,"$clear",T=function(){var e=this;return e.hash.$clear(),e},T.$$arity=0),e.def(Y,"$include?",I=function(e){return this.hash["$include?"](e)},I.$$arity=1),u(Y,"member?","include?"),e.def(Y,"$merge",C=function(e){var t,r=this;return _(e,"each",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==e&&(e=a),r.$add(e)}).$$s=r,t.$$arity=1,t)),r},C.$$arity=1),e.def(Y,"$replace",q=function(e){var t=this;return t.$clear(),t.$merge(e),t},q.$$arity=1),e.def(Y,"$size",P=function(){return this.hash.$size()},P.$$arity=0),u(Y,"length","size"),e.def(Y,"$subtract",B=function(e){var t,r=this;return _(e,"each",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==e&&(e=a),r.$delete(e)}).$$s=r,t.$$arity=1,t)),r},B.$$arity=1),e.def(Y,"$|",D=function(e){var t=this;return c(e["$respond_to?"]("each"))||t.$raise(i(X,"ArgumentError"),"value must be enumerable"),t.$dup().$merge(e)},D.$$arity=1),e.def(Y,"$superset?",L=function(e){var t,$=this;return c(e["$is_a?"](i(X,"Set")))||$.$raise(i(X,"ArgumentError"),"value must be a set"),!c(r($.$size(),e.$size()))&&_(e,"all?",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==e&&(e=a),r["$include?"](e)}).$$s=$,t.$$arity=1,t))},L.$$arity=1),u(Y,">=","superset?"),e.def(Y,"$proper_superset?",G=function(e){var t,r=this;return c(e["$is_a?"](i(X,"Set")))||r.$raise(i(X,"ArgumentError"),"value must be a set"),!c($(r.$size(),e.$size()))&&_(e,"all?",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==e&&(e=a),r["$include?"](e)}).$$s=r,t.$$arity=1,t))},G.$$arity=1),u(Y,">","proper_superset?"),e.def(Y,"$subset?",M=function(e){var t,$=this;return c(e["$is_a?"](i(X,"Set")))||$.$raise(i(X,"ArgumentError"),"value must be a set"),!c(r(e.$size(),$.$size()))&&_($,"all?",[],((t=function(r){null==t.$$s||t.$$s;return null==r&&(r=a),e["$include?"](r)}).$$s=$,t.$$arity=1,t))},M.$$arity=1),u(Y,"<=","subset?"),e.def(Y,"$proper_subset?",j=function(e){var t,r=this;return c(e["$is_a?"](i(X,"Set")))||r.$raise(i(X,"ArgumentError"),"value must be a set"),!c($(e.$size(),r.$size()))&&_(r,"all?",[],((t=function(r){null==t.$$s||t.$$s;return null==r&&(r=a),e["$include?"](r)}).$$s=r,t.$$arity=1,t))},j.$$arity=1),u(Y,"<","proper_subset?"),e.def(Y,"$intersect?",F=function(e){var t,$,n=this;return c(e["$is_a?"](i(X,"Set")))||n.$raise(i(X,"ArgumentError"),"value must be a set"),c(r(n.$size(),e.$size()))?_(n,"any?",[],((t=function(r){null==t.$$s||t.$$s;return null==r&&(r=a),e["$include?"](r)}).$$s=n,t.$$arity=1,t)):_(e,"any?",[],(($=function(e){var t=null==$.$$s?this:$.$$s;return null==e&&(e=a),t["$include?"](e)}).$$s=n,$.$$arity=1,$))},F.$$arity=1),e.def(Y,"$disjoint?",U=function(e){return this["$intersect?"](e)["$!"]()},U.$$arity=1),u(Y,"+","|"),u(Y,"union","|"),e.def(Y,"$to_a",H=function(){return this.hash.$keys()},H.$$arity=0)}(n[0],0,n),function(t,r){var $,n=l(t,"Enumerable"),s=[n].concat(r);return e.def(n,"$to_set",$=function(){var t,r,n,o=$.$$p,c=o||a,u=this;return o&&($.$$p=null),o&&($.$$p=null),(t=e.slice.call(arguments,0,arguments.length)).length>0&&(r=t[0],t.splice(0,1)),null==r&&(r=i(s,"Set")),n=t,_(r,"new",[u].concat(e.to_a(n)),c.$to_proc())},$.$$arity=-1),a&&"to_set"}(n[0],n)},Opal.modules["ast/node"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}e.top;var $=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.alias,c=e.hash2,_=e.truthy,u=e.send;return e.add_stubs(["$attr_reader","$to_sym","$freeze","$to_a","$assign_properties","$hash","$class","$eql?","$type","$children","$each","$instance_variable_set","$protected","$private","$==","$nil?","$original_dup","$send","$equal?","$respond_to?","$to_ast","$updated","$+","$*","$fancy_type","$is_a?","$to_sexp","$inspect","$map","$to_sexp_array","$gsub","$to_s"]),function($,l){var d=[i($,"AST")].concat(l);return function($,$super,i){var l,d,p,f,h,m,g,y,v,b,k,x,w,E,R=s($,null,"Node"),z=[R].concat(i);return R.$$prototype.type=R.$$prototype.children=n,R.$attr_reader("type"),R.$attr_reader("children"),o(R,"to_a","children"),R.$attr_reader("hash"),e.def(R,"$initialize",l=function(e,t,r){var $,n=this;return null==t&&(t=[]),null==r&&(r=c([],{})),$=[e.$to_sym(),t.$to_a().$freeze()],n.type=$[0],n.children=$[1],n.$assign_properties(r),n.hash=[n.type,n.children,n.$class()].$hash(),n.$freeze()},l.$$arity=-2),e.def(R,"$eql?",d=function(e){var t=this,r=n,$=n;return _(r=_($=t.$class()["$eql?"](e.$class()))?t.type["$eql?"](e.$type()):$)?t.children["$eql?"](e.$children()):r},d.$$arity=1),e.def(R,"$assign_properties",p=function(e){var t,r=this;return u(e,"each",[],((t=function(e,r){var $=null==t.$$s?this:t.$$s;return null==e&&(e=n),null==r&&(r=n),$.$instance_variable_set("@"+e,r)}).$$s=r,t.$$arity=2,t)),n},p.$$arity=1),R.$protected("assign_properties"),o(R,"original_dup","dup"),R.$private("original_dup"),e.def(R,"$dup",f=function(){return this},f.$$arity=0),o(R,"clone","dup"),e.def(R,"$updated",h=function(e,t,r){var $=this,a=n,i=n,s=n,o=n,u=n,l=n,d=n,p=n,f=n;return null==e&&(e=n),null==t&&(t=n),null==r&&(r=n),a=_(i=e)?i:$.type,s=_(o=t)?o:$.children,u=_(l=r)?l:c([],{}),_(_(d=_(p=$.type["$=="](a))?$.children["$=="](s):p)?r["$nil?"]():d)?$:((f=$.$original_dup()).$send("initialize",a,s,u),f)},h.$$arity=-1),e.def(R,"$==",m=function(e){var t=this,r=n;return!!_(t["$equal?"](e))||!!_(e["$respond_to?"]("to_ast"))&&(e=e.$to_ast(),_(r=e.$type()["$=="](t.$type()))?e.$children()["$=="](t.$children()):r)},m.$$arity=1),e.def(R,"$concat",g=function(e){var r=this;return r.$updated(n,t(r.children,e.$to_a()))},g.$$arity=1),o(R,"+","concat"),e.def(R,"$append",y=function(e){var r=this;return r.$updated(n,t(r.children,[e]))},y.$$arity=1),o(R,"<<","append"),e.def(R,"$to_sexp",v=function(e){var $,i=this,s=n,o=n;return null==e&&(e=0),s=r(" ",e),o=s+"("+i.$fancy_type(),u(i.$children(),"each",[],(($=function(r){null==$.$$s||$.$$s;return null==r&&(r=n),o=_(r["$is_a?"](a(z,"Node")))?t(o,"\n"+r.$to_sexp(t(e,1))):t(o," "+r.$inspect())}).$$s=i,$.$$arity=1,$)),o=t(o,")")},v.$$arity=-1),o(R,"to_s","to_sexp"),e.def(R,"$inspect",b=function(e){var $,i=this,s=n,o=n;return null==e&&(e=0),s=r(" ",e),o=s+"s(:"+i.type,u(i.$children(),"each",[],(($=function(r){null==$.$$s||$.$$s;return null==r&&(r=n),o=_(r["$is_a?"](a(z,"Node")))?t(o,",\n"+r.$inspect(t(e,1))):t(o,", "+r.$inspect())}).$$s=i,$.$$arity=1,$)),o=t(o,")")},b.$$arity=-1),e.def(R,"$to_ast",k=function(){return this},k.$$arity=0),e.def(R,"$to_sexp_array",x=function(){var t,r=this,$=n;return $=u(r.$children(),"map",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=n),_(e["$is_a?"](a(z,"Node")))?e.$to_sexp_array():e}).$$s=r,t.$$arity=1,t)),[r.$type()].concat(e.to_a($))},x.$$arity=0),e.def(R,"$deconstruct",w=function(){var t=this;return[t.$type()].concat(e.to_a(t.$children()))},w.$$arity=0),R.$protected(),e.def(R,"$fancy_type",E=function(){return this.type.$to_s().$gsub("_","-")},E.$$arity=0),n&&"fancy_type"}(d[0],0,d)}($[0],$)},Opal.modules["ast/processor/mixin"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$,e.module),n=e.klass,a=e.truthy,i=e.send;return e.add_stubs(["$nil?","$to_ast","$type","$respond_to?","$send","$handler_missing","$map","$to_a","$process"]),function(t,s){var o=[$(t,"AST")].concat(s);return function(t,$super,s){var o=[n(t,null,"Processor")].concat(s);return function(t,n){var s,o,c,_=$(t,"Mixin");[_].concat(n);return e.def(_,"$process",s=function(e){var t=this,$=r,n=r;return a(e["$nil?"]())?r:($="on_"+(e=e.$to_ast()).$type(),n=a(t["$respond_to?"]($))?t.$send($,e):t.$handler_missing(e),a(n)&&(e=n),e)},s.$$arity=1),e.def(_,"$process_all",o=function(e){var t,$=this;return i(e.$to_a(),"map",[],((t=function(e){var $=null==t.$$s?this:t.$$s;return null==e&&(e=r),$.$process(e)}).$$s=$,t.$$arity=1,t))},o.$$arity=1),e.def(_,"$handler_missing",c=function(){return r},c.$$arity=1),r&&"handler_missing"}(o[0],o)}(o[0],0,o)}(t[0],t)},Opal.modules["ast/processor"]=function(e){e.top;var t=[],r=(e.nil,e.$$$,e.$$),$=e.module,n=e.klass;return e.add_stubs(["$require","$include"]),function(e,t){var a=[$(e,"AST")].concat(t);return function(e,$super,t){var $=n(e,null,"Processor"),a=[$].concat(t);return $.$require("ast/processor/mixin"),$.$include(r(a,"Mixin"))}(a[0],0,a)}(t[0],t)},Opal.modules["ast/sexp"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module;return e.add_stubs(["$new"]),function(t,a){var i=[n(t,"AST")].concat(a);return function(t,a){var i,s=n(t,"Sexp"),o=[s].concat(a);return e.def(s,"$s",i=function(t){var r;return r=e.slice.call(arguments,1,arguments.length),$(o,"Node").$new(t,r)},i.$$arity=-2),r&&"s"}(i[0],i)}(t[0],t)},Opal.modules.ast=function(e){e.top;var t=[],r=(e.nil,e.$$$,e.$$,e.module);return e.add_stubs(["$require"]),function(e,t){var $=r(e,"AST");[$].concat(t);return $.$require("ast/node"),$.$require("ast/processor"),$.$require("ast/sexp")}(t[0],t)},Opal.modules["parser/ast/node"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,n=e.$$$,a=(e.$$,e.module),i=e.klass,s=e.alias,o=e.truthy,c=e.send;return e.add_stubs(["$attr_reader","$[]","$frozen?","$dup","$node=","$-"]),function(r,_){var u=[a(r,"Parser")].concat(_);return function(r,_){var u=[a(r,"AST")].concat(_);return function(r,$super,n){var a,_=i(r,$super,"Node");[_].concat(n);return _.$attr_reader("location"),s(_,"loc","location"),e.def(_,"$assign_properties",a=function(r){var n=this,a=$,i=$;return o(a=r["$[]"]("location"))?(o(a["$frozen?"]())&&(a=a.$dup()),i=[n],c(a,"node=",e.to_a(i)),i[t(i.length,1)],n.location=a):$},a.$$arity=1),$&&"assign_properties"}(u[0],n(n("::","AST"),"Node"),u)}(u[0],u)}(r[0],r)},Opal.modules["opal/ast/node"]=function(e){var t=e.top,r=[],$=e.nil,n=e.$$$,a=(e.$$,e.module),i=e.klass,s=e.truthy,o=e.hash2,c=e.send2,_=e.find_super;return e.add_stubs(["$require","$attr_reader","$[]","$frozen?","$dup","$merge!","$loc","$line","$column"]),t.$require("ast"),t.$require("parser/ast/node"),function(t,r){var u=[a(t,"Opal")].concat(r);return function(t,r){var u=[a(t,"AST")].concat(r);return function(t,$super,r){var n,a,u,l=i(t,$super,"Node");[l].concat(r);return l.$$prototype.meta=$,l.$attr_reader("meta"),e.def(l,"$assign_properties",n=function(e){var t=n.$$p,r=this,a=$,i=$;return t&&(n.$$p=null),s(a=e["$[]"]("meta"))?(s(a["$frozen?"]())&&(a=a.$dup()),r.meta["$merge!"](a)):r.meta=s(i=r.meta)?i:o([],{}),c(r,_(r,"assign_properties",n,!1,!0),"assign_properties",[e],t)},n.$$arity=1),e.def(l,"$line",a=function(){var e=this;return s(e.$loc())?e.$loc().$line():$},a.$$arity=0),e.def(l,"$column",u=function(){var e=this;return s(e.$loc())?e.$loc().$column():$},u.$$arity=0),$&&"column"}(u[0],n(n(n("::","Parser"),"AST"),"Node"),u)}(u[0],u)}(r[0],r)},Opal.modules["racc/parser"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function s(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}e.top;var o=[],c=e.nil,_=e.$$$,u=e.$$,l=e.module,d=e.klass,p=e.truthy,f=e.gvars,h=e.send;return e.add_stubs(["$[]","$class","$<","$size","$[]=","$-","$__send__","$_racc_setup","$raise","$_racc_init_sysvars","$catch","$!=","$next_token","$racc_read_token","$+","$>=","$==","$_racc_evalact","$!","$>","$push","$racc_shift","$-@","$_racc_do_reduce","$===","$racc_accept","$throw","$on_error","$<=","$pop","$racc_e_pop","$inspect","$racc_next_state","$*","$racc_reduce","$sprintf","$token_to_str","$print","$racc_token2str","$puts","$racc_print_stacks","$empty?","$each","$racc_print_states","$each_index"]),function(e,t){var r=[l(e,"Racc")].concat(t);(function(e,$super,t){[d(e,$super,"ParseError")].concat(t)})(r[0],u(r,"StandardError"),r)}(o[0],o),p(_("::","ParseError","skip_raise")?"constant":c)||e.const_set(o[0],"ParseError",_(u(o,"Racc"),"ParseError")),function(o,m){var g=[l(o,"Racc")].concat(m);return p(u(g,"Racc_No_Extensions","skip_raise")?"constant":c)||e.const_set(g[0],"Racc_No_Extensions",!1),function(o,$super,l){var m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M=d(o,null,"Parser"),j=[M].concat(l);return M.$$prototype.yydebug=M.$$prototype.racc_debug_out=M.$$prototype.racc_error_status=M.$$prototype.racc_t=M.$$prototype.racc_vstack=M.$$prototype.racc_val=M.$$prototype.racc_state=M.$$prototype.racc_tstack=c,e.const_set(j[0],"Racc_Runtime_Version","1.4.6"),e.const_set(j[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),e.const_set(j[0],"Racc_Runtime_Core_Version_R","1.4.6"),e.const_set(j[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),e.const_set(j[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),e.const_set(j[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),e.const_set(j[0],"Racc_Runtime_Core_Version",u(j,"Racc_Runtime_Core_Version_R")),e.const_set(j[0],"Racc_Runtime_Core_Revision",u(j,"Racc_Runtime_Core_Revision_R")),e.const_set(j[0],"Racc_Runtime_Type","ruby"),e.defs(u(j,"Parser"),"$racc_runtime_type",m=function(){return u(j,"Racc_Runtime_Type")},m.$$arity=0),e.def(M,"$_racc_setup",g=function(){var $,n,a=this,i=c,s=c,o=c;return null==f.stderr&&(f.stderr=c),p(_(a.$class(),"Racc_debug_parser"))||(a.yydebug=!1),p(null!=($=a.yydebug)&&$!==c?"instance-variable":c)||(a.yydebug=!1),p(a.yydebug)&&(p(null!=(n=a.racc_debug_out)&&n!==c?"instance-variable":c)||(a.racc_debug_out=f.stderr),a.racc_debug_out=p(i=a.racc_debug_out)?i:f.stderr),s=_(a.$class(),"Racc_arg"),p(t(s.$size(),14))&&(o=[13,!0],h(s,"[]=",e.to_a(o)),o[r(o.length,1)]),s},g.$$arity=0),e.def(M,"$_racc_init_sysvars",y=function(){var e=this;return e.racc_state=[0],e.racc_tstack=[],e.racc_vstack=[],e.racc_t=c,e.racc_val=c,e.racc_read_next=!0,e.racc_user_yyerror=!1,e.racc_error_status=0},y.$$arity=0),e.def(M,"$do_parse",v=function(){var e=this;return e.$__send__(u(j,"Racc_Main_Parsing_Routine"),e.$_racc_setup(),!1)},v.$$arity=0),e.def(M,"$next_token",b=function(){var e=this;return e.$raise(u(j,"NotImplementedError"),e.$class()+"#next_token is not defined")},b.$$arity=0),e.def(M,"$_racc_do_parse_rb",k=function(t){var r,a,i,s=this,o=c,_=c,u=c,l=c,d=c,f=c,m=c,g=c;return a=t,r=e.to_ary(a),o=null==r[0]?c:r[0],_=null==r[1]?c:r[1],u=null==r[2]?c:r[2],l=null==r[3]?c:r[3],null==r[4]?c:r[4],null==r[5]?c:r[5],null==r[6]?c:r[6],null==r[7]?c:r[7],null==r[8]?c:r[8],null==r[9]?c:r[9],d=null==r[10]?c:r[10],null==r[11]?c:r[11],null==r[12]?c:r[12],null==r[13]?c:r[13],s.$_racc_init_sysvars(),f=m=g=c,h(s,"catch",["racc_end_parse"],((i=function(){var r,a,s=null==i.$$s?this:i.$$s,h=c,y=c,v=c;for(null==s.racc_state&&(s.racc_state=c),null==s.racc_read_next&&(s.racc_read_next=c),null==s.racc_t&&(s.racc_t=c),null==s.yydebug&&(s.yydebug=c),null==s.racc_val&&(s.racc_val=c);p(!0);)for(p(g=l["$[]"](s.racc_state["$[]"](-1)))?(p(s.racc_read_next)&&p(s.racc_t["$!="](0))&&(a=s.$next_token(),r=e.to_ary(a),f=null==r[0]?c:r[0],s.racc_val=null==r[1]?c:r[1],p(f)?s.racc_t=p(h=d["$[]"](f))?h:1:s.racc_t=0,p(s.yydebug)&&s.$racc_read_token(s.racc_t,f,s.racc_val),s.racc_read_next=!1),g=$(g,s.racc_t),p(p(y=p(v=n(g,0))?m=o["$[]"](g):v)?_["$[]"](g)["$=="](s.racc_state["$[]"](-1)):y)||(m=u["$[]"](s.racc_state["$[]"](-1)))):m=u["$[]"](s.racc_state["$[]"](-1));p(m=s.$_racc_evalact(m,t)););}).$$s=s,i.$$arity=0,i))},k.$$arity=2),e.def(M,"$yyparse",x=function(e,t){var r=this;return r.$__send__(u(j,"Racc_YY_Parse_Method"),e,t,r.$_racc_setup(),!0)},x.$$arity=2),e.def(M,"$_racc_yyparse_rb",w=function(t,r,a){var i,s,o,_=this,u=c,l=c,d=c,f=c,m=c,g=c,y=c;return s=a,i=e.to_ary(s),u=null==i[0]?c:i[0],l=null==i[1]?c:i[1],d=null==i[2]?c:i[2],f=null==i[3]?c:i[3],null==i[4]?c:i[4],null==i[5]?c:i[5],null==i[6]?c:i[6],null==i[7]?c:i[7],null==i[8]?c:i[8],null==i[9]?c:i[9],m=null==i[10]?c:i[10],null==i[11]?c:i[11],null==i[12]?c:i[12],null==i[13]?c:i[13],_.$_racc_init_sysvars(),g=c,y=c,h(_,"catch",["racc_end_parse"],((o=function(){var e,i=null==o.$$s?this:o.$$s;for(null==i.racc_state&&(i.racc_state=c);!p(y=f["$[]"](i.racc_state["$[]"](-1)));)for(;p(g=i.$_racc_evalact(d["$[]"](i.racc_state["$[]"](-1)),a)););return h(t,"__send__",[r],((e=function(t,r){var i=null==e.$$s?this:e.$$s,s=c,o=c,_=c,h=c,v=c,b=c,k=c,x=c,w=c;for(null==i.racc_t&&(i.racc_t=c),null==i.racc_state&&(i.racc_state=c),null==i.racc_read_next&&(i.racc_read_next=c),null==t&&(t=c),null==r&&(r=c),p(t)?i.racc_t=p(s=m["$[]"](t))?s:1:i.racc_t=0,i.racc_val=r,i.racc_read_next=!1,y=$(y,i.racc_t),p(p(o=p(_=n(y,0))?g=u["$[]"](y):_)?l["$[]"](y)["$=="](i.racc_state["$[]"](-1)):o)||(g=d["$[]"](i.racc_state["$[]"](-1)));p(g=i.$_racc_evalact(g,a)););for(;p(p(h=p(v=(y=f["$[]"](i.racc_state["$[]"](-1)))["$!"]())?v:i.racc_read_next["$!"]())?h:i.racc_t["$=="](0));)for(p(p(b=p(k=p(x=p(w=y)?y=$(y,i.racc_t):w)?n(y,0):x)?g=u["$[]"](y):k)?l["$[]"](y)["$=="](i.racc_state["$[]"](-1)):b)||(g=d["$[]"](i.racc_state["$[]"](-1)));p(g=i.$_racc_evalact(g,a)););}).$$s=i,e.$$arity=2,e))}).$$s=_,o.$$arity=0,o))},w.$$arity=4),e.def(M,"$_racc_evalact",E=function(s,o){var _,u,l,d=this,f=c,m=c,g=c,y=c,v=c,b=c,k=c,x=c,w=c,E=c,R=c,z=c;if(u=o,_=e.to_ary(u),f=null==_[0]?c:_[0],m=null==_[1]?c:_[1],null==_[2]?c:_[2],g=null==_[3]?c:_[3],null==_[4]?c:_[4],null==_[5]?c:_[5],null==_[6]?c:_[6],null==_[7]?c:_[7],null==_[8]?c:_[8],null==_[9]?c:_[9],null==_[10]?c:_[10],y=null==_[11]?c:_[11],v=null==_[12]?c:_[12],null==_[13]?c:_[13],null==_[14]?c:_[14],p(p(b=a(s,0))?t(s,y):b))p(a(d.racc_error_status,0))&&(d.racc_t["$=="](1)||(d.racc_error_status=r(d.racc_error_status,1))),d.racc_vstack.$push(d.racc_val),d.racc_state.$push(s),d.racc_read_next=!0,p(d.yydebug)&&(d.racc_tstack.$push(d.racc_t),d.$racc_shift(d.racc_t,d.racc_tstack,d.racc_vstack));else if(p(p(k=t(s,0))?a(s,v["$-@"]()):k)){if(x=h(d,"catch",["racc_jump"],((l=function(){var e=null==l.$$s?this:l.$$s;return null==e.racc_state&&(e.racc_state=c), +e.racc_state.$push(e.$_racc_do_reduce(o,s)),!1}).$$s=d,l.$$arity=0,l)),p(x)){if(w=x,1["$==="](w))return d.racc_user_yyerror=!0,v["$-@"]();if(2["$==="](w))return y;d.$raise("[Racc Bug] unknown jump code")}}else if(s["$=="](y))p(d.yydebug)&&d.$racc_accept(),d.$throw("racc_end_parse",d.racc_vstack["$[]"](0));else{if(s["$=="](v["$-@"]())){for(w=d.racc_error_status,(0)["$==="](w)?p(o["$[]"](21))||d.$on_error(d.racc_t,d.racc_val,d.racc_vstack):3["$==="](w)&&(d.racc_t["$=="](0)&&d.$throw("racc_end_parse",c),d.racc_read_next=!0),d.racc_user_yyerror=!1,d.racc_error_status=3;p(!0)&&(!p(E=g["$[]"](d.racc_state["$[]"](-1)))||(E=$(E,1),!p(p(R=p(z=n(E,0))?s=f["$[]"](E):z)?m["$[]"](E)["$=="](d.racc_state["$[]"](-1)):R)));)p(i(d.racc_state.$size(),1))&&d.$throw("racc_end_parse",c),d.racc_state.$pop(),d.racc_vstack.$pop(),p(d.yydebug)&&(d.racc_tstack.$pop(),d.$racc_e_pop(d.racc_state,d.racc_tstack,d.racc_vstack));return s}d.$raise("[Racc Bug] unknown action "+s.$inspect())}return p(d.yydebug)&&d.$racc_next_state(d.racc_state["$[]"](-1),d.racc_state),c},E.$$arity=2),e.def(M,"$_racc_do_reduce",R=function(t,a){var i,o,_=this,u=c,l=c,d=c,f=c,m=c,g=c,y=c,v=c,b=c,k=c,x=c,w=c,E=c,R=c,z=c,A=c,N=c,S=c,O=c,T=c,I=c,C=c;return o=t,null==(i=e.to_ary(o))[0]?c:i[0],null==i[1]?c:i[1],null==i[2]?c:i[2],null==i[3]?c:i[3],u=null==i[4]?c:i[4],l=null==i[5]?c:i[5],d=null==i[6]?c:i[6],f=null==i[7]?c:i[7],m=null==i[8]?c:i[8],g=null==i[9]?c:i[9],null==i[10]?c:i[10],null==i[11]?c:i[11],null==i[12]?c:i[12],y=null==i[13]?c:i[13],v=_.racc_state,b=_.racc_vstack,k=_.racc_tstack,x=s(a,-3),w=g["$[]"](x),E=g["$[]"]($(x,1)),R=g["$[]"]($(x,2)),z=[],p(_.yydebug)&&(A=k["$[]"](w["$-@"](),w)),N=b["$[]"](w["$-@"](),w),p(_.yydebug)&&(S=[w["$-@"](),w,z],h(k,"[]=",e.to_a(S)),S[r(S.length,1)]),S=[w["$-@"](),w,z],h(b,"[]=",e.to_a(S)),S[r(S.length,1)],S=[w["$-@"](),w,z],h(v,"[]=",e.to_a(S)),S[r(S.length,1)],p(y)?b.$push(_.$__send__(R,N,b,N["$[]"](0))):b.$push(_.$__send__(R,N,b)),k.$push(E),p(_.yydebug)&&_.$racc_reduce(A,E,k,b),O=r(E,m),p(x=f["$[]"](O))&&(x=$(x,v["$[]"](-1)),p(p(T=p(I=n(x,0))?C=u["$[]"](x):I)?l["$[]"](x)["$=="](O):T))?C:d["$[]"](O)},R.$$arity=2),e.def(M,"$on_error",z=function(e,t){var r=this,$=c;return r.$raise(u(j,"ParseError"),r.$sprintf("\nparse error on value %s (%s)",t.$inspect(),p($=r.$token_to_str(e))?$:"?"))},z.$$arity=3),e.def(M,"$yyerror",A=function(){return this.$throw("racc_jump",1)},A.$$arity=0),e.def(M,"$yyaccept",N=function(){return this.$throw("racc_jump",2)},N.$$arity=0),e.def(M,"$yyerrok",S=function(){return this.racc_error_status=0},S.$$arity=0),e.def(M,"$racc_read_token",O=function(e,t,r){var $=this;return $.racc_debug_out.$print("read "),$.racc_debug_out.$print(t.$inspect(),"(",$.$racc_token2str(e),") "),$.racc_debug_out.$puts(r.$inspect()),$.racc_debug_out.$puts()},O.$$arity=3),e.def(M,"$racc_shift",T=function(e,t,r){var $=this;return $.racc_debug_out.$puts("shift "+$.$racc_token2str(e)),$.$racc_print_stacks(t,r),$.racc_debug_out.$puts()},T.$$arity=3),e.def(M,"$racc_reduce",I=function(e,t,r,$){var n,a=this,i=c;return(i=a.racc_debug_out).$print("reduce "),p(e["$empty?"]())?i.$print(" "):h(e,"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=c),i.$print(" ",t.$racc_token2str(e))}).$$s=a,n.$$arity=1,n)),i.$puts(" --> "+a.$racc_token2str(t)),a.$racc_print_stacks(r,$),a.racc_debug_out.$puts()},I.$$arity=4),e.def(M,"$racc_accept",C=function(){var e=this;return e.racc_debug_out.$puts("accept"),e.racc_debug_out.$puts()},C.$$arity=0),e.def(M,"$racc_e_pop",q=function(e,t,r){var $=this;return $.racc_debug_out.$puts("error recovering mode: pop token"),$.$racc_print_states(e),$.$racc_print_stacks(t,r),$.racc_debug_out.$puts()},q.$$arity=3),e.def(M,"$racc_next_state",P=function(e,t){var r=this;return r.racc_debug_out.$puts("goto "+e),r.$racc_print_states(t),r.racc_debug_out.$puts()},P.$$arity=2),e.def(M,"$racc_print_stacks",B=function(e,t){var r,$=this,n=c;return(n=$.racc_debug_out).$print(" ["),h(e,"each_index",[],((r=function($){var a=null==r.$$s?this:r.$$s;return null==$&&($=c),n.$print(" (",a.$racc_token2str(e["$[]"]($))," ",t["$[]"]($).$inspect(),")")}).$$s=$,r.$$arity=1,r)),n.$puts(" ]")},B.$$arity=2),e.def(M,"$racc_print_states",D=function(e){var t,r=this,$=c;return($=r.racc_debug_out).$print(" ["),h(e,"each",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=c),$.$print(" ",e)}).$$s=r,t.$$arity=1,t)),$.$puts(" ]")},D.$$arity=1),e.def(M,"$racc_token2str",L=function(e){var t=this,r=c;return p(r=_(t.$class(),"Racc_token_to_s_table")["$[]"](e))?r:t.$raise("[Racc Bug] can't convert token "+e+" to string")},L.$$arity=1),e.def(M,"$token_to_str",G=function(e){return _(this.$class(),"Racc_token_to_s_table")["$[]"](e)},G.$$arity=1),c&&"token_to_str"}(g[0],0,g)}(o[0],o)},Opal.modules["parser/version"]=function(e){e.top;var t=[],r=(e.nil,e.$$$,e.$$,e.module);return function(t,$){var n=[r(t,"Parser")].concat($);return e.const_set(n[0],"VERSION","3.0.2.0")}(t[0],t)},Opal.modules["racc/parser"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function s(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}e.top;var o=[],c=e.nil,_=e.$$$,u=e.$$,l=e.module,d=e.klass,p=e.truthy,f=e.gvars,h=e.send;return e.add_stubs(["$[]","$class","$<","$size","$[]=","$-","$__send__","$_racc_setup","$raise","$_racc_init_sysvars","$catch","$!=","$next_token","$racc_read_token","$+","$>=","$==","$_racc_evalact","$!","$>","$push","$racc_shift","$-@","$_racc_do_reduce","$===","$racc_accept","$throw","$on_error","$<=","$pop","$racc_e_pop","$inspect","$racc_next_state","$*","$racc_reduce","$sprintf","$token_to_str","$print","$racc_token2str","$puts","$racc_print_stacks","$empty?","$each","$racc_print_states","$each_index"]),function(e,t){var r=[l(e,"Racc")].concat(t);(function(e,$super,t){[d(e,$super,"ParseError")].concat(t)})(r[0],u(r,"StandardError"),r)}(o[0],o),p(_("::","ParseError","skip_raise")?"constant":c)||e.const_set(o[0],"ParseError",_(u(o,"Racc"),"ParseError")),function(o,m){var g=[l(o,"Racc")].concat(m);return p(u(g,"Racc_No_Extensions","skip_raise")?"constant":c)||e.const_set(g[0],"Racc_No_Extensions",!1),function(o,$super,l){var m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M=d(o,null,"Parser"),j=[M].concat(l);return M.$$prototype.yydebug=M.$$prototype.racc_debug_out=M.$$prototype.racc_error_status=M.$$prototype.racc_t=M.$$prototype.racc_vstack=M.$$prototype.racc_val=M.$$prototype.racc_state=M.$$prototype.racc_tstack=c,e.const_set(j[0],"Racc_Runtime_Version","1.4.6"),e.const_set(j[0],"Racc_Runtime_Revision",["originalRevision:","1.8"]["$[]"](1)),e.const_set(j[0],"Racc_Runtime_Core_Version_R","1.4.6"),e.const_set(j[0],"Racc_Runtime_Core_Revision_R",["originalRevision:","1.8"]["$[]"](1)),e.const_set(j[0],"Racc_Main_Parsing_Routine","_racc_do_parse_rb"),e.const_set(j[0],"Racc_YY_Parse_Method","_racc_yyparse_rb"),e.const_set(j[0],"Racc_Runtime_Core_Version",u(j,"Racc_Runtime_Core_Version_R")),e.const_set(j[0],"Racc_Runtime_Core_Revision",u(j,"Racc_Runtime_Core_Revision_R")),e.const_set(j[0],"Racc_Runtime_Type","ruby"),e.defs(u(j,"Parser"),"$racc_runtime_type",m=function(){return u(j,"Racc_Runtime_Type")},m.$$arity=0),e.def(M,"$_racc_setup",g=function(){var $,n,a=this,i=c,s=c,o=c;return null==f.stderr&&(f.stderr=c),p(_(a.$class(),"Racc_debug_parser"))||(a.yydebug=!1),p(null!=($=a.yydebug)&&$!==c?"instance-variable":c)||(a.yydebug=!1),p(a.yydebug)&&(p(null!=(n=a.racc_debug_out)&&n!==c?"instance-variable":c)||(a.racc_debug_out=f.stderr),a.racc_debug_out=p(i=a.racc_debug_out)?i:f.stderr),s=_(a.$class(),"Racc_arg"),p(t(s.$size(),14))&&(o=[13,!0],h(s,"[]=",e.to_a(o)),o[r(o.length,1)]),s},g.$$arity=0),e.def(M,"$_racc_init_sysvars",y=function(){var e=this;return e.racc_state=[0],e.racc_tstack=[],e.racc_vstack=[],e.racc_t=c,e.racc_val=c,e.racc_read_next=!0,e.racc_user_yyerror=!1,e.racc_error_status=0},y.$$arity=0),e.def(M,"$do_parse",v=function(){var e=this;return e.$__send__(u(j,"Racc_Main_Parsing_Routine"),e.$_racc_setup(),!1)},v.$$arity=0),e.def(M,"$next_token",b=function(){var e=this;return e.$raise(u(j,"NotImplementedError"),e.$class()+"#next_token is not defined")},b.$$arity=0),e.def(M,"$_racc_do_parse_rb",k=function(t){var r,a,i,s=this,o=c,_=c,u=c,l=c,d=c,f=c,m=c,g=c;return a=t,r=e.to_ary(a),o=null==r[0]?c:r[0],_=null==r[1]?c:r[1],u=null==r[2]?c:r[2],l=null==r[3]?c:r[3],null==r[4]?c:r[4],null==r[5]?c:r[5],null==r[6]?c:r[6],null==r[7]?c:r[7],null==r[8]?c:r[8],null==r[9]?c:r[9],d=null==r[10]?c:r[10],null==r[11]?c:r[11],null==r[12]?c:r[12],null==r[13]?c:r[13],s.$_racc_init_sysvars(),f=m=g=c,h(s,"catch",["racc_end_parse"],((i=function(){var r,a,s=null==i.$$s?this:i.$$s,h=c,y=c,v=c;for(null==s.racc_state&&(s.racc_state=c),null==s.racc_read_next&&(s.racc_read_next=c),null==s.racc_t&&(s.racc_t=c),null==s.yydebug&&(s.yydebug=c),null==s.racc_val&&(s.racc_val=c);p(!0);)for(p(g=l["$[]"](s.racc_state["$[]"](-1)))?(p(s.racc_read_next)&&p(s.racc_t["$!="](0))&&(a=s.$next_token(),r=e.to_ary(a),f=null==r[0]?c:r[0],s.racc_val=null==r[1]?c:r[1],p(f)?s.racc_t=p(h=d["$[]"](f))?h:1:s.racc_t=0,p(s.yydebug)&&s.$racc_read_token(s.racc_t,f,s.racc_val),s.racc_read_next=!1),g=$(g,s.racc_t),p(p(y=p(v=n(g,0))?m=o["$[]"](g):v)?_["$[]"](g)["$=="](s.racc_state["$[]"](-1)):y)||(m=u["$[]"](s.racc_state["$[]"](-1)))):m=u["$[]"](s.racc_state["$[]"](-1));p(m=s.$_racc_evalact(m,t)););}).$$s=s,i.$$arity=0,i))},k.$$arity=2),e.def(M,"$yyparse",x=function(e,t){var r=this;return r.$__send__(u(j,"Racc_YY_Parse_Method"),e,t,r.$_racc_setup(),!0)},x.$$arity=2),e.def(M,"$_racc_yyparse_rb",w=function(t,r,a){var i,s,o,_=this,u=c,l=c,d=c,f=c,m=c,g=c,y=c;return s=a,i=e.to_ary(s),u=null==i[0]?c:i[0],l=null==i[1]?c:i[1],d=null==i[2]?c:i[2],f=null==i[3]?c:i[3],null==i[4]?c:i[4],null==i[5]?c:i[5],null==i[6]?c:i[6],null==i[7]?c:i[7],null==i[8]?c:i[8],null==i[9]?c:i[9],m=null==i[10]?c:i[10],null==i[11]?c:i[11],null==i[12]?c:i[12],null==i[13]?c:i[13],_.$_racc_init_sysvars(),g=c,y=c,h(_,"catch",["racc_end_parse"],((o=function(){var e,i=null==o.$$s?this:o.$$s;for(null==i.racc_state&&(i.racc_state=c);!p(y=f["$[]"](i.racc_state["$[]"](-1)));)for(;p(g=i.$_racc_evalact(d["$[]"](i.racc_state["$[]"](-1)),a)););return h(t,"__send__",[r],((e=function(t,r){var i=null==e.$$s?this:e.$$s,s=c,o=c,_=c,h=c,v=c,b=c,k=c,x=c,w=c;for(null==i.racc_t&&(i.racc_t=c),null==i.racc_state&&(i.racc_state=c),null==i.racc_read_next&&(i.racc_read_next=c),null==t&&(t=c),null==r&&(r=c),p(t)?i.racc_t=p(s=m["$[]"](t))?s:1:i.racc_t=0,i.racc_val=r,i.racc_read_next=!1,y=$(y,i.racc_t),p(p(o=p(_=n(y,0))?g=u["$[]"](y):_)?l["$[]"](y)["$=="](i.racc_state["$[]"](-1)):o)||(g=d["$[]"](i.racc_state["$[]"](-1)));p(g=i.$_racc_evalact(g,a)););for(;p(p(h=p(v=(y=f["$[]"](i.racc_state["$[]"](-1)))["$!"]())?v:i.racc_read_next["$!"]())?h:i.racc_t["$=="](0));)for(p(p(b=p(k=p(x=p(w=y)?y=$(y,i.racc_t):w)?n(y,0):x)?g=u["$[]"](y):k)?l["$[]"](y)["$=="](i.racc_state["$[]"](-1)):b)||(g=d["$[]"](i.racc_state["$[]"](-1)));p(g=i.$_racc_evalact(g,a)););}).$$s=i,e.$$arity=2,e))}).$$s=_,o.$$arity=0,o))},w.$$arity=4),e.def(M,"$_racc_evalact",E=function(s,o){var _,u,l,d=this,f=c,m=c,g=c,y=c,v=c,b=c,k=c,x=c,w=c,E=c,R=c,z=c;if(u=o,_=e.to_ary(u),f=null==_[0]?c:_[0],m=null==_[1]?c:_[1],null==_[2]?c:_[2],g=null==_[3]?c:_[3],null==_[4]?c:_[4],null==_[5]?c:_[5],null==_[6]?c:_[6],null==_[7]?c:_[7],null==_[8]?c:_[8],null==_[9]?c:_[9],null==_[10]?c:_[10],y=null==_[11]?c:_[11],v=null==_[12]?c:_[12],null==_[13]?c:_[13],null==_[14]?c:_[14],p(p(b=a(s,0))?t(s,y):b))p(a(d.racc_error_status,0))&&(d.racc_t["$=="](1)||(d.racc_error_status=r(d.racc_error_status,1))),d.racc_vstack.$push(d.racc_val),d.racc_state.$push(s),d.racc_read_next=!0,p(d.yydebug)&&(d.racc_tstack.$push(d.racc_t),d.$racc_shift(d.racc_t,d.racc_tstack,d.racc_vstack));else if(p(p(k=t(s,0))?a(s,v["$-@"]()):k)){if(x=h(d,"catch",["racc_jump"],((l=function(){var e=null==l.$$s?this:l.$$s;return null==e.racc_state&&(e.racc_state=c),e.racc_state.$push(e.$_racc_do_reduce(o,s)),!1}).$$s=d,l.$$arity=0,l)),p(x)){if(w=x,1["$==="](w))return d.racc_user_yyerror=!0,v["$-@"]();if(2["$==="](w))return y;d.$raise("[Racc Bug] unknown jump code")}}else if(s["$=="](y))p(d.yydebug)&&d.$racc_accept(),d.$throw("racc_end_parse",d.racc_vstack["$[]"](0));else{if(s["$=="](v["$-@"]())){for(w=d.racc_error_status,(0)["$==="](w)?p(o["$[]"](21))||d.$on_error(d.racc_t,d.racc_val,d.racc_vstack):3["$==="](w)&&(d.racc_t["$=="](0)&&d.$throw("racc_end_parse",c),d.racc_read_next=!0),d.racc_user_yyerror=!1,d.racc_error_status=3;p(!0)&&(!p(E=g["$[]"](d.racc_state["$[]"](-1)))||(E=$(E,1),!p(p(R=p(z=n(E,0))?s=f["$[]"](E):z)?m["$[]"](E)["$=="](d.racc_state["$[]"](-1)):R)));)p(i(d.racc_state.$size(),1))&&d.$throw("racc_end_parse",c),d.racc_state.$pop(),d.racc_vstack.$pop(),p(d.yydebug)&&(d.racc_tstack.$pop(),d.$racc_e_pop(d.racc_state,d.racc_tstack,d.racc_vstack));return s}d.$raise("[Racc Bug] unknown action "+s.$inspect())}return p(d.yydebug)&&d.$racc_next_state(d.racc_state["$[]"](-1),d.racc_state),c},E.$$arity=2),e.def(M,"$_racc_do_reduce",R=function(t,a){var i,o,_=this,u=c,l=c,d=c,f=c,m=c,g=c,y=c,v=c,b=c,k=c,x=c,w=c,E=c,R=c,z=c,A=c,N=c,S=c,O=c,T=c,I=c,C=c;return o=t,null==(i=e.to_ary(o))[0]?c:i[0],null==i[1]?c:i[1],null==i[2]?c:i[2],null==i[3]?c:i[3],u=null==i[4]?c:i[4],l=null==i[5]?c:i[5],d=null==i[6]?c:i[6],f=null==i[7]?c:i[7],m=null==i[8]?c:i[8],g=null==i[9]?c:i[9],null==i[10]?c:i[10],null==i[11]?c:i[11],null==i[12]?c:i[12],y=null==i[13]?c:i[13],v=_.racc_state,b=_.racc_vstack,k=_.racc_tstack,x=s(a,-3),w=g["$[]"](x),E=g["$[]"]($(x,1)),R=g["$[]"]($(x,2)),z=[],p(_.yydebug)&&(A=k["$[]"](w["$-@"](),w)),N=b["$[]"](w["$-@"](),w),p(_.yydebug)&&(S=[w["$-@"](),w,z],h(k,"[]=",e.to_a(S)),S[r(S.length,1)]),S=[w["$-@"](),w,z],h(b,"[]=",e.to_a(S)),S[r(S.length,1)],S=[w["$-@"](),w,z],h(v,"[]=",e.to_a(S)),S[r(S.length,1)],p(y)?b.$push(_.$__send__(R,N,b,N["$[]"](0))):b.$push(_.$__send__(R,N,b)),k.$push(E),p(_.yydebug)&&_.$racc_reduce(A,E,k,b),O=r(E,m),p(x=f["$[]"](O))&&(x=$(x,v["$[]"](-1)),p(p(T=p(I=n(x,0))?C=u["$[]"](x):I)?l["$[]"](x)["$=="](O):T))?C:d["$[]"](O)},R.$$arity=2),e.def(M,"$on_error",z=function(e,t){var r=this,$=c;return r.$raise(u(j,"ParseError"),r.$sprintf("\nparse error on value %s (%s)",t.$inspect(),p($=r.$token_to_str(e))?$:"?"))},z.$$arity=3),e.def(M,"$yyerror",A=function(){return this.$throw("racc_jump",1)},A.$$arity=0),e.def(M,"$yyaccept",N=function(){return this.$throw("racc_jump",2)},N.$$arity=0),e.def(M,"$yyerrok",S=function(){return this.racc_error_status=0},S.$$arity=0),e.def(M,"$racc_read_token",O=function(e,t,r){var $=this;return $.racc_debug_out.$print("read "),$.racc_debug_out.$print(t.$inspect(),"(",$.$racc_token2str(e),") "),$.racc_debug_out.$puts(r.$inspect()),$.racc_debug_out.$puts()},O.$$arity=3),e.def(M,"$racc_shift",T=function(e,t,r){var $=this;return $.racc_debug_out.$puts("shift "+$.$racc_token2str(e)),$.$racc_print_stacks(t,r),$.racc_debug_out.$puts()},T.$$arity=3),e.def(M,"$racc_reduce",I=function(e,t,r,$){var n,a=this,i=c;return(i=a.racc_debug_out).$print("reduce "),p(e["$empty?"]())?i.$print(" "):h(e,"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=c),i.$print(" ",t.$racc_token2str(e))}).$$s=a,n.$$arity=1,n)),i.$puts(" --> "+a.$racc_token2str(t)),a.$racc_print_stacks(r,$),a.racc_debug_out.$puts()},I.$$arity=4),e.def(M,"$racc_accept",C=function(){var e=this;return e.racc_debug_out.$puts("accept"),e.racc_debug_out.$puts()},C.$$arity=0),e.def(M,"$racc_e_pop",q=function(e,t,r){var $=this;return $.racc_debug_out.$puts("error recovering mode: pop token"),$.$racc_print_states(e),$.$racc_print_stacks(t,r),$.racc_debug_out.$puts()},q.$$arity=3),e.def(M,"$racc_next_state",P=function(e,t){var r=this;return r.racc_debug_out.$puts("goto "+e),r.$racc_print_states(t),r.racc_debug_out.$puts()},P.$$arity=2),e.def(M,"$racc_print_stacks",B=function(e,t){var r,$=this,n=c;return(n=$.racc_debug_out).$print(" ["),h(e,"each_index",[],((r=function($){var a=null==r.$$s?this:r.$$s;return null==$&&($=c),n.$print(" (",a.$racc_token2str(e["$[]"]($))," ",t["$[]"]($).$inspect(),")")}).$$s=$,r.$$arity=1,r)),n.$puts(" ]")},B.$$arity=2),e.def(M,"$racc_print_states",D=function(e){var t,r=this,$=c;return($=r.racc_debug_out).$print(" ["),h(e,"each",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=c),$.$print(" ",e)}).$$s=r,t.$$arity=1,t)),$.$puts(" ]")},D.$$arity=1),e.def(M,"$racc_token2str",L=function(e){var t=this,r=c;return p(r=_(t.$class(),"Racc_token_to_s_table")["$[]"](e))?r:t.$raise("[Racc Bug] can't convert token "+e+" to string")},L.$$arity=1),e.def(M,"$token_to_str",G=function(e){return _(this.$class(),"Racc_token_to_s_table")["$[]"](e)},G.$$arity=1),c&&"token_to_str"}(g[0],0,g)}(o[0],o)},Opal.modules["parser/messages"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.hash2,i=e.truthy;return e.add_stubs(["$freeze","$[]","$===","$empty?","$format"]),function(t,s){var o=[n(t,"Parser")].concat(s);return e.const_set(o[0],"MESSAGES",a(["unicode_point_too_large","invalid_escape","incomplete_escape","invalid_hex_escape","invalid_unicode_escape","unterminated_unicode","escape_eof","string_eof","regexp_options","cvar_name","ivar_name","trailing_in_number","empty_numeric","invalid_octal","no_dot_digit_literal","bare_backslash","unexpected","embedded_document","heredoc_id_has_newline","heredoc_id_ends_with_nl","unterminated_heredoc_id","invalid_escape_use","ambiguous_literal","ambiguous_regexp","ambiguous_prefix","triple_dot_at_eol","nth_ref_alias","begin_in_method","backref_assignment","invalid_assignment","module_name_const","unexpected_token","argument_const","argument_ivar","argument_gvar","argument_cvar","duplicate_argument","empty_symbol","odd_hash","singleton_literal","dynamic_const","const_reassignment","module_in_def","class_in_def","unexpected_percent_str","block_and_blockarg","masgn_as_condition","block_given_to_yield","invalid_regexp","invalid_return","csend_in_lhs_of_masgn","cant_assign_to_numparam","reserved_for_numparam","ordinary_param_defined","numparam_used_in_outer_scope","circular_argument_reference","pm_interp_in_var_name","lvar_name","undefined_lvar","duplicate_variable_name","duplicate_pattern_key","endless_setter","useless_else","invalid_encoding","invalid_action","clobbered","different_replacements","swallowed_insertions","swallowed_insertions_conflict","crossing_deletions","crossing_deletions_conflict","crossing_insertions","crossing_insertions_conflict"],{unicode_point_too_large:"invalid Unicode codepoint (too large)",invalid_escape:"invalid escape character syntax",incomplete_escape:"incomplete character syntax",invalid_hex_escape:"invalid hex escape",invalid_unicode_escape:"invalid Unicode escape",unterminated_unicode:"unterminated Unicode escape",escape_eof:"escape sequence meets end of file",string_eof:"unterminated string meets end of file",regexp_options:"unknown regexp options: %{options}",cvar_name:"`%{name}' is not allowed as a class variable name",ivar_name:"`%{name}' is not allowed as an instance variable name",trailing_in_number:"trailing `%{character}' in number",empty_numeric:"numeric literal without digits",invalid_octal:"invalid octal digit",no_dot_digit_literal:"no . floating literal anymore; put 0 before dot",bare_backslash:"bare backslash only allowed before newline",unexpected:"unexpected `%{character}'",embedded_document:"embedded document meets end of file (and they embark on a romantic journey)",heredoc_id_has_newline:"here document identifier across newlines, never match",heredoc_id_ends_with_nl:"here document identifier ends with a newline",unterminated_heredoc_id:"unterminated heredoc id",invalid_escape_use:"invalid character syntax; use ?%{escape}",ambiguous_literal:"ambiguous first argument; put parentheses or a space even after the operator",ambiguous_regexp:"ambiguity between regexp and two divisions: wrap regexp in parentheses or add a space after `/' operator",ambiguous_prefix:"`%{prefix}' interpreted as argument prefix",triple_dot_at_eol:"... at EOL, should be parenthesized",nth_ref_alias:"cannot define an alias for a back-reference variable",begin_in_method:"BEGIN in method",backref_assignment:"cannot assign to a back-reference variable",invalid_assignment:"cannot assign to a keyword",module_name_const:"class or module name must be a constant literal",unexpected_token:"unexpected token %{token}",argument_const:"formal argument cannot be a constant",argument_ivar:"formal argument cannot be an instance variable",argument_gvar:"formal argument cannot be a global variable",argument_cvar:"formal argument cannot be a class variable",duplicate_argument:"duplicate argument name",empty_symbol:"empty symbol literal",odd_hash:"odd number of entries for a hash",singleton_literal:"cannot define a singleton method for a literal",dynamic_const:"dynamic constant assignment",const_reassignment:"constant re-assignment",module_in_def:"module definition in method body",class_in_def:"class definition in method body",unexpected_percent_str:"%{type}: unknown type of percent-literal",block_and_blockarg:"both block argument and literal block are passed",masgn_as_condition:"multiple assignment in conditional context",block_given_to_yield:"block given to yield",invalid_regexp:"%{message}",invalid_return:"Invalid return in class/module body",csend_in_lhs_of_masgn:"&. inside multiple assignment destination",cant_assign_to_numparam:"cannot assign to numbered parameter %{name}",reserved_for_numparam:"%{name} is reserved for numbered parameter",ordinary_param_defined:"ordinary parameter is defined",numparam_used_in_outer_scope:"numbered parameter is already used in an outer scope",circular_argument_reference:"circular argument reference %{var_name}",pm_interp_in_var_name:"symbol literal with interpolation is not allowed",lvar_name:"`%{name}' is not allowed as a local variable name",undefined_lvar:"no such local variable: `%{name}'",duplicate_variable_name:"duplicate variable name %{name}",duplicate_pattern_key:"duplicate hash pattern key %{name}",endless_setter:"setter method cannot be defined in an endless method definition",useless_else:"else without rescue is useless",invalid_encoding:"literal contains escape sequences incompatible with UTF-8",invalid_action:"cannot %{action}",clobbered:"clobbered by: %{action}",different_replacements:"different replacements: %{replacement} vs %{other_replacement}",swallowed_insertions:"this replacement:",swallowed_insertions_conflict:"swallows some inner rewriting actions:",crossing_deletions:"the deletion of:",crossing_deletions_conflict:"is crossing:",crossing_insertions:"the rewriting action on:",crossing_insertions_conflict:"is crossing that on:"}).$freeze()),function(t,a){var s,o=n(t,"Messages"),c=[o].concat(a);return e.defs(o,"$compile",s=function(e,t){var n=this,a=r,s=r;return a=$(c,"MESSAGES")["$[]"](e),i(i(s=$(c,"Hash")["$==="](t))?t["$empty?"]():s)?a:n.$format(a,t)},s.$$arity=2),r&&"compile"}(o[0],o)}(t[0],t)},Opal.modules["parser/deprecation"]=function(e){e.top;var t=[],r=e.nil,$=e.$$$,n=(e.$$,e.module),a=e.truthy;return e.add_stubs(["$attr_writer","$warn"]),function(t,i){var s=[n(t,"Parser")].concat(i);return function(t,i){var s,o=n(t,"Deprecation");[o].concat(i);return o.$attr_writer("warned_of_deprecation"),e.def(o,"$warn_of_deprecation",s=function(){var e=this,t=r,n=r;return null==e.warned_of_deprecation&&(e.warned_of_deprecation=r),e.warned_of_deprecation=a(t=e.warned_of_deprecation)?t:!a(n=e.$warn($(e,"DEPRECATION_WARNING")))||n},s.$$arity=0),r&&"warn_of_deprecation"}(s[0],s)}(t[0],t)},Opal.modules["parser/ast/processor"]=function(e){e.top;var t=[],r=e.nil,$=e.$$$,n=e.$$,a=e.module,i=e.klass,s=e.alias,o=e.truthy,c=e.slice;return e.add_stubs(["$updated","$process_all","$on_var","$!","$nil?","$process","$on_vasgn","$on_argument","$is_a?","$[]","$children","$process_regular_node","$warn"]),function(t,_){var u=[a(t,"Parser")].concat(_);return function(t,_){var u=[a(t,"AST")].concat(_);return function(t,$super,$){var a,_,u,l,d,p,f,h,m,g,y,v,b,k,x,w,E,R,z,A=i(t,$super,"Processor"),N=[A].concat($);return e.def(A,"$process_regular_node",a=function(e){var t=this;return e.$updated(r,t.$process_all(e))},a.$$arity=1),s(A,"on_dstr","process_regular_node"),s(A,"on_dsym","process_regular_node"),s(A,"on_regexp","process_regular_node"),s(A,"on_xstr","process_regular_node"),s(A,"on_splat","process_regular_node"),s(A,"on_kwsplat","process_regular_node"),s(A,"on_array","process_regular_node"),s(A,"on_pair","process_regular_node"),s(A,"on_hash","process_regular_node"),s(A,"on_kwargs","process_regular_node"),s(A,"on_irange","process_regular_node"),s(A,"on_erange","process_regular_node"),e.def(A,"$on_var",_=function(e){return e},_.$$arity=1),e.def(A,"$process_variable_node",u=function(e){return this.$on_var(e)},u.$$arity=1),s(A,"on_lvar","process_variable_node"),s(A,"on_ivar","process_variable_node"),s(A,"on_gvar","process_variable_node"),s(A,"on_cvar","process_variable_node"),s(A,"on_back_ref","process_variable_node"),s(A,"on_nth_ref","process_variable_node"),e.def(A,"$on_vasgn",l=function(t){var $,n=this,a=r,i=r;return a=null==($=[].concat(e.to_a(t)))[0]?r:$[0],i=null==$[1]?r:$[1],o(i["$nil?"]()["$!"]())?t.$updated(r,[a,n.$process(i)]):t},l.$$arity=1),e.def(A,"$process_var_asgn_node",d=function(e){return this.$on_vasgn(e)},d.$$arity=1),s(A,"on_lvasgn","process_var_asgn_node"),s(A,"on_ivasgn","process_var_asgn_node"),s(A,"on_gvasgn","process_var_asgn_node"),s(A,"on_cvasgn","process_var_asgn_node"),s(A,"on_and_asgn","process_regular_node"),s(A,"on_or_asgn","process_regular_node"),e.def(A,"$on_op_asgn",p=function(t){var $,n=this,a=r,i=r,s=r;return a=null==($=[].concat(e.to_a(t)))[0]?r:$[0],i=null==$[1]?r:$[1],s=null==$[2]?r:$[2],t.$updated(r,[n.$process(a),i,n.$process(s)])},p.$$arity=1),s(A,"on_mlhs","process_regular_node"),s(A,"on_masgn","process_regular_node"),e.def(A,"$on_const",f=function(t){var $,n=this,a=r,i=r;return a=null==($=[].concat(e.to_a(t)))[0]?r:$[0],i=null==$[1]?r:$[1],t.$updated(r,[n.$process(a),i])},f.$$arity=1),e.def(A,"$on_casgn",h=function(t){var $,n=this,a=r,i=r,s=r;return a=null==($=[].concat(e.to_a(t)))[0]?r:$[0],i=null==$[1]?r:$[1],s=null==$[2]?r:$[2],o(s["$nil?"]()["$!"]())?t.$updated(r,[n.$process(a),i,n.$process(s)]):t.$updated(r,[n.$process(a),i])},h.$$arity=1),s(A,"on_args","process_regular_node"),e.def(A,"$on_argument",m=function(t){var $,n=this,a=r,i=r;return a=null==($=[].concat(e.to_a(t)))[0]?r:$[0],i=null==$[1]?r:$[1],o(i["$nil?"]()["$!"]())?t.$updated(r,[a,n.$process(i)]):t},m.$$arity=1),e.def(A,"$process_argument_node",g=function(e){return this.$on_argument(e)},g.$$arity=1),s(A,"on_arg","process_argument_node"),s(A,"on_optarg","process_argument_node"),s(A,"on_restarg","process_argument_node"),s(A,"on_blockarg","process_argument_node"),s(A,"on_shadowarg","process_argument_node"),s(A,"on_kwarg","process_argument_node"),s(A,"on_kwoptarg","process_argument_node"),s(A,"on_kwrestarg","process_argument_node"),s(A,"on_forward_arg","process_argument_node"),e.def(A,"$on_procarg0",y=function(e){var t=this;return o(e.$children()["$[]"](0)["$is_a?"](n(N,"Symbol")))?t.$on_argument(e):t.$process_regular_node(e)},y.$$arity=1),s(A,"on_arg_expr","process_regular_node"),s(A,"on_restarg_expr","process_regular_node"),s(A,"on_blockarg_expr","process_regular_node"),s(A,"on_block_pass","process_regular_node"),s(A,"on_module","process_regular_node"),s(A,"on_class","process_regular_node"),s(A,"on_sclass","process_regular_node"),e.def(A,"$on_def",v=function(t){var $,n=this,a=r,i=r,s=r;return a=null==($=[].concat(e.to_a(t)))[0]?r:$[0],i=null==$[1]?r:$[1],s=null==$[2]?r:$[2],t.$updated(r,[a,n.$process(i),n.$process(s)])},v.$$arity=1),e.def(A,"$on_defs",b=function(t){var $,n=this,a=r,i=r,s=r,o=r;return a=null==($=[].concat(e.to_a(t)))[0]?r:$[0],i=null==$[1]?r:$[1],s=null==$[2]?r:$[2],o=null==$[3]?r:$[3],t.$updated(r,[n.$process(a),i,n.$process(s),n.$process(o)])},b.$$arity=1),s(A,"on_undef","process_regular_node"),s(A,"on_alias","process_regular_node"),e.def(A,"$on_send",k=function(t){var $,n=this,a=r,i=r,s=r;return a=null==($=[].concat(e.to_a(t)))[0]?r:$[0],i=null==$[1]?r:$[1],s=c.call($,2),o(a)&&(a=n.$process(a)),t.$updated(r,[a,i].concat(e.to_a(n.$process_all(s))))},k.$$arity=1),s(A,"on_csend","on_send"),s(A,"on_index","process_regular_node"),s(A,"on_indexasgn","process_regular_node"),s(A,"on_block","process_regular_node"),s(A,"on_lambda","process_regular_node"),e.def(A,"$on_numblock",x=function(t){var $,n=this,a=r,i=r,s=r;return a=null==($=[].concat(e.to_a(t)))[0]?r:$[0],i=null==$[1]?r:$[1],s=null==$[2]?r:$[2],t.$updated(r,[n.$process(a),i,n.$process(s)])},x.$$arity=1),s(A,"on_while","process_regular_node"),s(A,"on_while_post","process_regular_node"),s(A,"on_until","process_regular_node"),s(A,"on_until_post","process_regular_node"),s(A,"on_for","process_regular_node"),s(A,"on_return","process_regular_node"),s(A,"on_break","process_regular_node"),s(A,"on_next","process_regular_node"),s(A,"on_redo","process_regular_node"),s(A,"on_retry","process_regular_node"),s(A,"on_super","process_regular_node"),s(A,"on_yield","process_regular_node"),s(A,"on_defined?","process_regular_node"),s(A,"on_not","process_regular_node"),s(A,"on_and","process_regular_node"),s(A,"on_or","process_regular_node"),s(A,"on_if","process_regular_node"),s(A,"on_when","process_regular_node"),s(A,"on_case","process_regular_node"),s(A,"on_iflipflop","process_regular_node"),s(A,"on_eflipflop","process_regular_node"),s(A,"on_match_current_line","process_regular_node"),s(A,"on_match_with_lvasgn","process_regular_node"),s(A,"on_resbody","process_regular_node"),s(A,"on_rescue","process_regular_node"),s(A,"on_ensure","process_regular_node"),s(A,"on_begin","process_regular_node"),s(A,"on_kwbegin","process_regular_node"),s(A,"on_preexe","process_regular_node"),s(A,"on_postexe","process_regular_node"),s(A,"on_case_match","process_regular_node"),s(A,"on_in_match","process_regular_node"),s(A,"on_match_pattern","process_regular_node"),s(A,"on_match_pattern_p","process_regular_node"),s(A,"on_in_pattern","process_regular_node"),s(A,"on_if_guard","process_regular_node"),s(A,"on_unless_guard","process_regular_node"),s(A,"on_match_var","process_variable_node"),s(A,"on_match_rest","process_regular_node"),s(A,"on_pin","process_regular_node"),s(A,"on_match_alt","process_regular_node"),s(A,"on_match_as","process_regular_node"),s(A,"on_array_pattern","process_regular_node"),s(A,"on_array_pattern_with_tail","process_regular_node"),s(A,"on_hash_pattern","process_regular_node"),s(A,"on_const_pattern","process_regular_node"),s(A,"on_find_pattern","process_regular_node"),e.def(A,"$process_variable_node",w=function(e){var t=this;return t.$warn("Parser::AST::Processor#process_variable_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_var instead."),t.$on_var(e)},w.$$arity=1),e.def(A,"$process_var_asgn_node",E=function(e){var t=this;return t.$warn("Parser::AST::Processor#process_var_asgn_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_vasgn instead."),t.$on_vasgn(e)},E.$$arity=1),e.def(A,"$process_argument_node",R=function(e){var t=this;return t.$warn("Parser::AST::Processor#process_argument_node is deprecated as a public API and will be removed. Please use Parser::AST::Processor#on_argument instead."),t.$on_argument(e)},R.$$arity=1),e.def(A,"$on_empty_else",z=function(e){return e},z.$$arity=1),r&&"on_empty_else"}(u[0],$($("::","AST"),"Processor"),u)}(u[0],u)}(t[0],t)},Opal.modules["parser/meta"]=function(e){e.top;var t=[],r=(e.nil,e.$$$,e.$$,e.module);return e.add_stubs(["$freeze","$to_set"]),function(t,$){var n=[r(t,"Parser")].concat($);return function(t,$){var n=[r(t,"Meta")].concat($) +;return e.const_set(n[0],"NODE_TYPES",["true","false","nil","int","float","str","dstr","sym","dsym","xstr","regopt","regexp","array","splat","pair","kwsplat","hash","irange","erange","self","lvar","ivar","cvar","gvar","const","defined?","lvasgn","ivasgn","cvasgn","gvasgn","casgn","mlhs","masgn","op_asgn","and_asgn","ensure","rescue","arg_expr","or_asgn","back_ref","nth_ref","match_with_lvasgn","match_current_line","module","class","sclass","def","defs","undef","alias","args","cbase","arg","optarg","restarg","blockarg","block_pass","kwarg","kwoptarg","kwrestarg","kwnilarg","send","csend","super","zsuper","yield","block","and","not","or","if","when","case","while","until","while_post","until_post","for","break","next","redo","return","resbody","kwbegin","begin","retry","preexe","postexe","iflipflop","eflipflop","shadowarg","complex","rational","__FILE__","__LINE__","__ENCODING__","ident","lambda","indexasgn","index","procarg0","restarg_expr","blockarg_expr","objc_kwarg","objc_restarg","objc_varargs","numargs","numblock","forward_args","forwarded_args","forward_arg","case_match","in_match","in_pattern","match_var","pin","match_alt","match_as","match_rest","array_pattern","match_with_trailing_comma","array_pattern_with_tail","hash_pattern","const_pattern","if_guard","unless_guard","match_nil_pattern","empty_else","find_pattern","kwargs","match_pattern_p","match_pattern"].$to_set().$freeze())}(n[0],n)}(t[0],t)},Opal.modules["parser/source/buffer"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}e.top;var a=[],i=e.nil,s=e.$$$,o=e.$$,c=e.module,_=e.klass,u=e.enc,l=e.truthy,d=e.gvars,p=e.hash2,f=e.send,h=e.send2,m=e.find_super;return e.add_stubs(["$attr_reader","$empty?","$=~","$start_with?","$freeze","$==","$[]","$nil?","$!=","$match","$find","$encoding","$recognize_encoding","$force_encoding","$encode","$to_s","$source=","$-","$open","$read","$raise","$frozen?","$dup","$reencode_string","$class","$valid_encoding?","$name","$raw_source=","$gsub","$!","$ascii_only?","$line_index_for_position","$line_begins","$+","$to_a","$lines","$end_with?","$<<","$each","$chomp!","$fetch","$source_lines","$<","$>=","$size","$new","$source","$source_range","$private","$index","$bsearch","$[]=","$method_defined?","$bsearch_index"]),function(a,g){var y=[c(a,"Parser")].concat(g);return function(a,g){var y=[c(a,"Source")].concat(g);return function(a,$super,c){var g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G=_(a,null,"Buffer"),M=[G].concat(c);return G.$$prototype.name=G.$$prototype.source=G.$$prototype.slice_source=G.$$prototype.first_line=G.$$prototype.lines=G.$$prototype.source_range=G.$$prototype.line_begins=G.$$prototype.line_index_for_position=G.$$prototype.line_range=i,G.$attr_reader("name","first_line"),e.const_set(M[0],"ENCODING_RE",e.regexp([u("[\\s#](en)?coding\\s*[:=]\\s*","ASCII-8BIT"),u("(","ASCII-8BIT"),u("","ASCII-8BIT"),u("(utf8-mac)","ASCII-8BIT"),u("|","ASCII-8BIT"),u("","ASCII-8BIT"),u("([A-Za-z0-9_-]+?)(-unix|-dos|-mac)","ASCII-8BIT"),u("|","ASCII-8BIT"),u("([A-Za-z0-9_-]+)","ASCII-8BIT"),u(")","ASCII-8BIT"),u("","ASCII-8BIT")])),e.defs(G,"$recognize_encoding",g=function(e){var t,r,$=i,n=i,a=i,c=i,_=i,p=i,f=i;return l(e["$empty?"]())?i:(e["$=~"](/^(.*)\n?(.*\n)?/),$=(t=[(r=d["~"])===i?i:r["$[]"](1),(r=d["~"])===i?i:r["$[]"](2)])[0],n=t[1],l($["$start_with?"](u("\xef\xbb\xbf","ASCII-8BIT").$freeze()))?s(o(M,"Encoding"),"UTF_8"):(a=$["$[]"](0,2)["$=="](u("#!","ASCII-8BIT").$freeze())?n:$,l(l(c=a["$nil?"]())?c:a["$[]"](0)["$!="](u("#","ASCII-8BIT")))?i:l(_=o(M,"ENCODING_RE").$match(a))?o(M,"Encoding").$find(l(p=l(f=_["$[]"](3))?f:_["$[]"](4))?p:_["$[]"](6)):i))},g.$$arity=1),e.defs(G,"$reencode_string",y=function(e){var t=this,r=i,$=i;return r=e.$encoding(),$=t.$recognize_encoding(e.$force_encoding(s(o(M,"Encoding"),"BINARY"))),l($["$nil?"]())?e.$force_encoding(r):$["$=="](s(o(M,"Encoding"),"BINARY"))?e:e.$force_encoding($).$encode(s(o(M,"Encoding"),"UTF_8"))},y.$$arity=1),e.def(G,"$initialize",v=function(r){var $,n,a,s,o=this,c=i;if($=e.slice.call(arguments,1,arguments.length),null==(n=e.extract_kwargs($)))n=p([],{});else if(!n.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return $.length>0&&(a=$[0],$.splice(0,1)),null==a&&(a=1),null==(s=n.$$smap.source)&&(s=i),o.name=r.$to_s(),o.source=i,o.first_line=a,o.lines=i,o.line_begins=i,o.slice_source=i,o.line_index_for_position=p([],{}),l(s)?(c=[s],f(o,"source=",e.to_a(c)),c[t(c.length,1)]):i},v.$$arity=-2),e.def(G,"$read",b=function(){var r,$=this;return f(o(M,"File"),"open",[$.name,u("rb","ASCII-8BIT")],((r=function($){var n=null==r.$$s?this:r.$$s,a=i;return null==$&&($=i),a=[$.$read()],f(n,"source=",e.to_a(a)),a[t(a.length,1)]}).$$s=$,r.$$arity=1,r)),$},b.$$arity=0),e.def(G,"$source",k=function(){var e=this;return l(e.source["$nil?"]())&&e.$raise(o(M,"RuntimeError"),u("Cannot extract source from uninitialized Source::Buffer","ASCII-8BIT")),e.source},k.$$arity=0),e.def(G,"$source=",x=function(r){var $=this,n=i;return l(r["$frozen?"]())&&(r=r.$dup()),r=$.$class().$reencode_string(r),l(r["$valid_encoding?"]())||$.$raise(o(M,"EncodingError"),""+u("invalid byte sequence in ","ASCII-8BIT")+r.$encoding().$name()),n=[r],f($,"raw_source=",e.to_a(n)),n[t(n.length,1)]},x.$$arity=1),e.def(G,"$raw_source=",w=function(e){var t=this,r=i,$=i;return l(t.source)&&t.$raise(o(M,"ArgumentError"),u("Source::Buffer is immutable","ASCII-8BIT")),t.source=e.$gsub(u("\r\n","ASCII-8BIT").$freeze(),u("\n","ASCII-8BIT").$freeze()).$freeze(),l(l(r=l($=t.source["$ascii_only?"]()["$!"]())?t.source.$encoding()["$!="](s(o(M,"Encoding"),"UTF_32LE")):$)?t.source.$encoding()["$!="](s(o(M,"Encoding"),"BINARY")):r)?t.slice_source=t.source.$encode(s(o(M,"Encoding"),"UTF_32LE")):i},w.$$arity=1),e.def(G,"$slice",E=function(e){var t=this;return l(t.slice_source["$nil?"]())?t.source["$[]"](e):t.slice_source["$[]"](e).$encode(t.source.$encoding())},E.$$arity=1),e.def(G,"$decompose_position",R=function(e){var $=this,n=i,a=i;return n=$.$line_index_for_position(e),a=$.$line_begins()["$[]"](n),[r($.first_line,n),t(e,a)]},R.$$arity=1),e.def(G,"$line_for_position",z=function(e){var t=this;return r(t.$line_index_for_position(e),t.first_line)},z.$$arity=1),e.def(G,"$column_for_position",A=function(e){var r=this,$=i;return $=r.$line_index_for_position(e),t(e,r.$line_begins()["$[]"]($))},A.$$arity=1),e.def(G,"$source_lines",N=function(){var e,t=this,r=i,$=i;return t.lines=l(r=t.lines)?r:($=t.source.$lines().$to_a(),l(t.source["$end_with?"](u("\n","ASCII-8BIT").$freeze()))&&$["$<<"](u("","ASCII-8BIT").$dup()),f($,"each",[],((e=function(t){return null==e.$$s||e.$$s,null==t&&(t=i),t["$chomp!"](u("\n","ASCII-8BIT").$freeze()),t.$freeze()}).$$s=t,e.$$arity=1,e)),$.$freeze())},N.$$arity=0),e.def(G,"$source_line",S=function(e){var r=this;return r.$source_lines().$fetch(t(e,r.first_line)).$dup()},S.$$arity=1),e.def(G,"$line_range",O=function(e){var a=this,s=i,c=i;return s=t(e,a.first_line),l(l(c=$(s,0))?c:n(r(s,1),a.$line_begins().$size()))?a.$raise(o(M,"IndexError"),u("Parser::Source::Buffer: range for line ","ASCII-8BIT")+""+e+u(" requested, valid line numbers are ","ASCII-8BIT")+a.first_line+u("..","ASCII-8BIT")+t(r(a.first_line,a.$line_begins().$size()),2)):o(M,"Range").$new(a,a.$line_begins()["$[]"](s),t(a.$line_begins()["$[]"](r(s,1)),1))},O.$$arity=1),e.def(G,"$source_range",T=function(){var e=this,t=i;return e.source_range=l(t=e.source_range)?t:o(M,"Range").$new(e,0,e.$source().$size())},T.$$arity=0),e.def(G,"$last_line",I=function(){var e=this;return t(r(e.$line_begins().$size(),e.first_line),2)},I.$$arity=0),e.def(G,"$freeze",C=function(){var e=C.$$p,t=this;return e&&(C.$$p=null),t.$source_lines(),t.$line_begins(),t.$source_range(),h(t,m(t,"freeze",C,!1,!0),"freeze",[],e)},C.$$arity=0),e.def(G,"$inspect",q=function(){var e=this;return""+u("#<","ASCII-8BIT")+e.$class()+u(" ","ASCII-8BIT")+e.$name()+u(">","ASCII-8BIT")},q.$$arity=0),G.$private(),e.def(G,"$line_begins",P=function(){var e=this,t=i,$=i,n=i;return e.line_begins=function(){if(l(t=e.line_begins))return t;for($=[0],n=0;l(n=e.source.$index(u("\n","ASCII-8BIT").$freeze(),n));)n=r(n,1),$["$<<"](n);return $["$<<"](r(e.source.$size(),1)),$}()},P.$$arity=0),e.def(G,"$line_index_for_position",B=function(r){var $=this,n=i,a=i,s=i;return l(n=$.line_index_for_position["$[]"](r))?n:(a=t($.$bsearch($.$line_begins(),r),1),l($.line_index_for_position["$frozen?"]())||(s=[r,a],f($.line_index_for_position,"[]=",e.to_a(s)),s[t(s.length,1)]),a)},B.$$arity=1),l(o(M,"Array")["$method_defined?"]("bsearch_index"))?(e.def(G,"$bsearch",D=function(e,r){var n,a=this,s=i;return l(s=f(e,"bsearch_index",[],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=i),$(r,e)}).$$s=a,n.$$arity=1,n)))?s:t(e.$size(),1)},D.$$arity=2),i&&"bsearch"):(e.def(G,"$bsearch",L=function(r,n){var a,s=this,o=i,c=i;return s.line_range=l(o=s.line_range)?o:e.Range.$new(0,r.$size(),!0),l(c=f(s.line_range,"bsearch",[],((a=function(e){null==a.$$s||a.$$s;return null==e&&(e=i),$(n,r["$[]"](e))}).$$s=s,a.$$arity=1,a)))?c:t(r.$size(),1)},L.$$arity=2),i&&"bsearch")}(y[0],0,y)}(y[0],y)}(a[0],a)},Opal.modules["parser/source/range"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}e.top;var i=[],s=e.nil,o=e.$$$,c=e.$$,_=e.module,u=e.klass,l=e.truthy,d=e.hash2,p=e.alias;return e.add_stubs(["$include","$attr_reader","$<","$raise","$nil?","$freeze","$with","$-","$line_for_position","$alias_method","$column_for_position","$!=","$line","$last_line","$inspect","$column","$last_column","$source_line","$slice","$begin_pos","$end_pos","$include?","$source","$to_a","$decompose_position","$join","$name","$+","$new","$min","$max","$disjoint?","$empty?","$>=","$!","$<=>","$contains?","$overlaps?","$==","$*","$is_a?","$source_buffer","$nonzero?","$hash"]),function(i,f){var h=[_(i,"Parser")].concat(f);return function(i,f){var h=[_(i,"Source")].concat(f);return function(i,$super,_){var f,h,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U=u(i,null,"Range"),H=[U].concat(_);return U.$$prototype.begin_pos=U.$$prototype.end_pos=U.$$prototype.source_buffer=s,U.$include(c(H,"Comparable")),U.$attr_reader("source_buffer"),U.$attr_reader("begin_pos","end_pos"),e.def(U,"$initialize",f=function(e,r,$){var n,a=this;return l(t($,r))&&a.$raise(c(H,"ArgumentError"),"Parser::Source::Range: end_pos must not be less than begin_pos"),l(e["$nil?"]())&&a.$raise(c(H,"ArgumentError"),"Parser::Source::Range: source_buffer must not be nil"),a.source_buffer=e,n=[r,$],a.begin_pos=n[0],a.end_pos=n[1],a.$freeze()},f.$$arity=3),e.def(U,"$begin",h=function(){var e=this;return e.$with(d(["end_pos"],{end_pos:e.begin_pos}))},h.$$arity=0),e.def(U,"$end",m=function(){var e=this;return e.$with(d(["begin_pos"],{begin_pos:e.end_pos}))},m.$$arity=0),e.def(U,"$size",g=function(){var e=this;return r(e.end_pos,e.begin_pos)},g.$$arity=0),p(U,"length","size"),e.def(U,"$line",y=function(){var e=this;return e.source_buffer.$line_for_position(e.begin_pos)},y.$$arity=0),U.$alias_method("first_line","line"),e.def(U,"$column",v=function(){var e=this;return e.source_buffer.$column_for_position(e.begin_pos)},v.$$arity=0),e.def(U,"$last_line",b=function(){var e=this;return e.source_buffer.$line_for_position(e.end_pos)},b.$$arity=0),e.def(U,"$last_column",k=function(){var e=this;return e.source_buffer.$column_for_position(e.end_pos)},k.$$arity=0),e.def(U,"$column_range",x=function(){var t=this;return l(t.$line()["$!="](t.$last_line()))&&t.$raise(c(H,"RangeError"),t.$inspect()+" spans more than one line"),e.Range.$new(t.$column(),t.$last_column(),!0)},x.$$arity=0),e.def(U,"$source_line",w=function(){var e=this;return e.source_buffer.$source_line(e.$line())},w.$$arity=0),e.def(U,"$source",E=function(){var t=this;return t.source_buffer.$slice(e.Range.$new(t.$begin_pos(),t.$end_pos(),!0))},E.$$arity=0),e.def(U,"$is?",R=function(){var t=this;return e.slice.call(arguments,0,arguments.length)["$include?"](t.$source())},R.$$arity=-1),e.def(U,"$to_a",z=function(){var t=this;return e.Range.$new(t.begin_pos,t.end_pos,!0).$to_a()},z.$$arity=0),e.def(U,"$to_range",A=function(){var t=this;return e.Range.$new(t.$begin_pos(),t.$end_pos(),!0)},A.$$arity=0),e.def(U,"$to_s",N=function(){var t,r,n=this,a=s,i=s;return r=n.source_buffer.$decompose_position(n.begin_pos),a=null==(t=e.to_ary(r))[0]?s:t[0],i=null==t[1]?s:t[1],[n.source_buffer.$name(),a,$(i,1)].$join(":")},N.$$arity=0),e.def(U,"$with",S=function(t){var r,$,n=this;if(null==t)t=d([],{});else if(!t.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(r=t.$$smap.begin_pos)&&(r=n.begin_pos),null==($=t.$$smap.end_pos)&&($=n.end_pos),c(H,"Range").$new(n.source_buffer,r,$)},S.$$arity=-1),e.def(U,"$adjust",O=function(t){var r,n,a=this;if(null==t)t=d([],{});else if(!t.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(r=t.$$smap.begin_pos)&&(r=0),null==(n=t.$$smap.end_pos)&&(n=0),c(H,"Range").$new(a.source_buffer,$(a.begin_pos,r),$(a.end_pos,n))},O.$$arity=-1),e.def(U,"$resize",T=function(e){var t=this;return t.$with(d(["end_pos"],{end_pos:$(t.begin_pos,e)}))},T.$$arity=1),e.def(U,"$join",I=function(e){var t=this;return c(H,"Range").$new(t.source_buffer,[t.begin_pos,e.$begin_pos()].$min(),[t.end_pos,e.$end_pos()].$max())},I.$$arity=1),e.def(U,"$intersect",C=function(e){var t=this;return l(t["$disjoint?"](e))?s:c(H,"Range").$new(t.source_buffer,[t.begin_pos,e.$begin_pos()].$max(),[t.end_pos,e.$end_pos()].$min())},C.$$arity=1),e.def(U,"$disjoint?",q=function(e){var t=this,r=s,$=s;return l(l(r=t["$empty?"]())?e["$empty?"]():r)?t.begin_pos["$!="](e.$begin_pos()):l($=n(t.begin_pos,e.$end_pos()))?$:n(e.$begin_pos(),t.end_pos)},q.$$arity=1),e.def(U,"$overlaps?",P=function(e){return this["$disjoint?"](e)["$!"]()},P.$$arity=1),e.def(U,"$contains?",B=function(e){var t=this;return n($(e.$begin_pos()["$<=>"](t.begin_pos),t.end_pos["$<=>"](e.$end_pos())),l(e["$empty?"]())?2:1)},B.$$arity=1),e.def(U,"$contained?",D=function(e){var t=this;return e["$contains?"](t)},D.$$arity=1),e.def(U,"$crossing?",L=function(e){var t=this;return!!l(t["$overlaps?"](e))&&a(t.begin_pos["$<=>"](e.$begin_pos()),t.end_pos["$<=>"](e.$end_pos()))["$=="](1)},L.$$arity=1),e.def(U,"$empty?",G=function(){var e=this;return e.begin_pos["$=="](e.end_pos)},G.$$arity=0),e.def(U,"$<=>",M=function(e){var t=this,r=s,$=s;return l(l(r=e["$is_a?"](o(o(o("::","Parser"),"Source"),"Range")))?t.source_buffer["$=="](e.$source_buffer()):r)?l($=t.begin_pos["$<=>"](e.$begin_pos())["$nonzero?"]())?$:t.end_pos["$<=>"](e.$end_pos()):s},M.$$arity=1),U.$alias_method("eql?","=="),e.def(U,"$hash",j=function(){var e=this;return[e.source_buffer,e.begin_pos,e.end_pos].$hash()},j.$$arity=0),e.def(U,"$inspect",F=function(){var e=this;return"#"},F.$$arity=0),s&&"inspect"}(h[0],0,h)}(h[0],h)}(i[0],i)},Opal.modules["parser/source/comment"]=function(e){e.top;var t=[],r=e.nil,$=e.$$$,n=e.$$,a=e.module,i=e.klass,s=e.truthy;return e.add_stubs(["$attr_reader","$alias_method","$new","$associate","$associate_locations","$associate_by_identity","$freeze","$source","$start_with?","$text","$==","$type","$is_a?","$location","$to_s","$expression","$inspect"]),function(t,o){var c=[a(t,"Parser")].concat(o);return function(t,o){var c=[a(t,"Source")].concat(o);return function(t,$super,a){var o,c,_,u,l,d,p,f,h,m=i(t,null,"Comment"),g=[m].concat(a);return m.$$prototype.location=r,m.$attr_reader("text"),m.$attr_reader("location"),m.$alias_method("loc","location"),e.defs(m,"$associate",o=function(e,t){return n(g,"Associator").$new(e,t).$associate()},o.$$arity=2),e.defs(m,"$associate_locations",c=function(e,t){return n(g,"Associator").$new(e,t).$associate_locations()},c.$$arity=2),e.defs(m,"$associate_by_identity",_=function(e,t){return n(g,"Associator").$new(e,t).$associate_by_identity()},_.$$arity=2),e.def(m,"$initialize",u=function(e){var t=this;return t.location=$($(n(g,"Parser"),"Source"),"Map").$new(e),t.text=e.$source().$freeze(),t.$freeze()},u.$$arity=1),e.def(m,"$type",l=function(){var e=this;return s(e.$text()["$start_with?"]("#".$freeze()))?"inline":s(e.$text()["$start_with?"]("=begin".$freeze()))?"document":r},l.$$arity=0),e.def(m,"$inline?",d=function(){return this.$type()["$=="]("inline")},d.$$arity=0),e.def(m,"$document?",p=function(){return this.$type()["$=="]("document")},p.$$arity=0),e.def(m,"$==",f=function(e){var t=this,a=r;return s(a=e["$is_a?"]($(n(g,"Source"),"Comment")))?t.location["$=="](e.$location()):a},f.$$arity=1),e.def(m,"$inspect",h=function(){var e=this;return"#"},h.$$arity=0),r&&"inspect"}(c[0],0,c)}(c[0],c)}(t[0],t)},Opal.modules["parser/source/comment/associator"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var n=[],a=e.nil,i=e.$$$,s=e.$$,o=e.module,c=e.klass,_=e.truthy,u=e.send;return e.add_stubs(["$attr_accessor","$do_associate","$private","$freeze","$[]","$include?","$type","$sort_by","$compact","$children","$begin_pos","$expression","$loc","$select","$is_a?","$new","$[]=","$-","$==","$compare_by_identity","$advance_comment","$advance_through_directives","$visit","$process_leading_comments","$location","$<=","$line","$last_line","$each","$children_in_source_order","$process_trailing_comments","$current_comment_before?","$associate_and_advance_comment","$current_comment_before_end?","$current_comment_decorates?","$+","$!","$end_pos","$<<","$start_with?","$text","$=~"]),function(n,l){var d=[o(n,"Parser")].concat(l);return function(n,l){var d=[o(n,"Source")].concat(l);return function(n,$super,o){var l,d,p,f,h,m,g,y,v,b,k,x,w,E,R,z=c(n,null,"Associator"),A=[z].concat(o);return z.$$prototype.map_using=z.$$prototype.mapping=z.$$prototype.skip_directives=z.$$prototype.ast=z.$$prototype.current_comment=z.$$prototype.comment_num=z.$$prototype.comments=a,z.$attr_accessor("skip_directives"),e.def(z,"$initialize",l=function(e,t){var r=this;return r.ast=e,r.comments=t,r.skip_directives=!0},l.$$arity=2),e.def(z,"$associate",d=function(){var e=this;return e.map_using="eql",e.$do_associate()},d.$$arity=0),e.def(z,"$associate_locations",p=function(){var e=this;return e.map_using="location",e.$do_associate()},p.$$arity=0),e.def(z,"$associate_by_identity",f=function(){var e=this;return e.map_using="identity",e.$do_associate()},f.$$arity=0),z.$private(),e.const_set(A[0],"POSTFIX_TYPES",s(A,"Set")["$[]"]("if","while","while_post","until","until_post","masgn").$freeze()),e.def(z,"$children_in_source_order",h=function(e){var t,r,$=this;return _(s(A,"POSTFIX_TYPES")["$include?"](e.$type()))?u(e.$children().$compact(),"sort_by",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=a),e.$loc().$expression().$begin_pos()}).$$s=$,t.$$arity=1,t)):u(e.$children(),"select",[],((r=function(e){null==r.$$s||r.$$s;var t=a,$=a;return null==e&&(e=a),_(t=_($=e["$is_a?"](i(s(A,"AST"),"Node")))?e.$loc():$)?e.$loc().$expression():t}).$$s=$,r.$$arity=1,r))},h.$$arity=1),e.def(z,"$do_associate",m=function(){var r,$=this;return $.mapping=u(s(A,"Hash"),"new",[],((r=function($,n){null==r.$$s||r.$$s;var i=a;return null==$&&($=a),null==n&&(n=a),i=[n,[]],u($,"[]=",e.to_a(i)),i[t(i.length,1)]}).$$s=$,r.$$arity=2,r)),$.map_using["$=="]("identity")&&$.mapping.$compare_by_identity(),$.comment_num=-1,$.$advance_comment(),_($.skip_directives)&&$.$advance_through_directives(),_($.ast)&&$.$visit($.ast),$.mapping},m.$$arity=0),e.def(z,"$visit",g=function(e){var t,$=this,n=a,o=a;return $.$process_leading_comments(e),_($.current_comment)?(n=e.$location(),_(_(o=r($.current_comment.$location().$line(),n.$last_line()))?o:n["$is_a?"](i(s(A,"Map"),"Heredoc")))?(u($.$children_in_source_order(e),"each",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==e&&(e=a),r.$visit(e)}).$$s=$,t.$$arity=1,t)),$.$process_trailing_comments(e)):a):a},g.$$arity=1),e.def(z,"$process_leading_comments",y=function(e){var t=this;if(e.$type()["$=="]("begin"))return a;for(;_(t["$current_comment_before?"](e));)t.$associate_and_advance_comment(e)},y.$$arity=1),e.def(z,"$process_trailing_comments",v=function(e){for(var t=this;_(t["$current_comment_before_end?"](e));)t.$associate_and_advance_comment(e);for(;_(t["$current_comment_decorates?"](e));)t.$associate_and_advance_comment(e)},v.$$arity=1),e.def(z,"$advance_comment",b=function(){var e=this;return e.comment_num=$(e.comment_num,1),e.current_comment=e.comments["$[]"](e.comment_num)},b.$$arity=0),e.def(z,"$current_comment_before?",k=function(e){var t=this,$=a,n=a;return!_(t.current_comment["$!"]())&&($=t.current_comment.$location().$expression(),n=e.$location().$expression(),r($.$end_pos(),n.$begin_pos()))},k.$$arity=1),e.def(z,"$current_comment_before_end?",x=function(e){var t=this,$=a,n=a;return!_(t.current_comment["$!"]())&&($=t.current_comment.$location().$expression(),n=e.$location().$expression(),r($.$end_pos(),n.$end_pos()))},x.$$arity=1),e.def(z,"$current_comment_decorates?",w=function(e){var t=this;return!_(t.current_comment["$!"]())&&t.current_comment.$location().$line()["$=="](e.$location().$last_line())},w.$$arity=1),e.def(z,"$associate_and_advance_comment",E=function(e){var t=this,r=a;return r=t.map_using["$=="]("location")?e.$location():e,t.mapping["$[]"](r)["$<<"](t.current_comment),t.$advance_comment()},E.$$arity=1),e.const_set(A[0],"MAGIC_COMMENT_RE",/^#\s*(-\*-|)\s*(frozen_string_literal|warn_indent|warn_past_scope):.*\1$/),e.def(z,"$advance_through_directives",R=function(){var e=this,t=a,r=a,$=a;return _(_(t=e.current_comment)?e.current_comment.$text()["$start_with?"]("#!".$freeze()):t)&&e.$advance_comment(),_(_(r=e.current_comment)?e.current_comment.$text()["$=~"](s(A,"MAGIC_COMMENT_RE")):r)&&e.$advance_comment(),_(_($=e.current_comment)?e.current_comment.$text()["$=~"](i(s(A,"Buffer"),"ENCODING_RE")):$)?e.$advance_comment():a},R.$$arity=0),a&&"advance_through_directives"}(s(d,"Comment"),0,d)}(d[0],d)}(n[0],n)},Opal.modules["parser/source/rewriter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e=","$==","$[]","$all?","$intersect","$nil?","$max","$sort_by","$push","$join","$first","$max_by","$merge_replacements","$replace_actions","$disjoint?","$<","$process","$extend"]),function(i,h){var m=[_(i,"Parser")].concat(h);return function(i,h){var m=[_(i,"Source")].concat(h);return function(i,$super,_){var h,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U,H,Y,X,V,W=u(i,null,"Rewriter"),K=[W].concat(_);return W.$$prototype.diagnostics=W.$$prototype.insert_before_multi_order=W.$$prototype.insert_after_multi_order=W.$$prototype.source_buffer=W.$$prototype.queue=W.$$prototype.clobber=W.$$prototype.insertions=W.$$prototype.pending_queue=W.$$prototype.pending_clobber=W.$$prototype.pending_insertions=s,W.$attr_reader("source_buffer"),W.$attr_reader("diagnostics"),e.def(W,"$initialize",h=function(r){var $,n=this,a=s;return n.$class().$warn_of_deprecation(),n.diagnostics=o(c(K,"Diagnostic"),"Engine").$new(),a=[l(n,"lambda",[],($=function(e){null==$.$$s||$.$$s;return null==d.stderr&&(d.stderr=s),null==e&&(e=s),d.stderr.$puts(e.$render())},$.$$s=n,$.$$arity=1,$))],l(n.diagnostics,"consumer=",e.to_a(a)),a[t(a.length,1)],n.source_buffer=r,n.queue=[],n.clobber=0,n.insertions=0,n.insert_before_multi_order=0,n.insert_after_multi_order=0,n.pending_queue=s,n.pending_clobber=s,n.pending_insertions=s},h.$$arity=1),e.def(W,"$remove",m=function(e){return this.$append(o(c(K,"Rewriter"),"Action").$new(e,"".$freeze()))},m.$$arity=1),e.def(W,"$insert_before",g=function(e,t){return this.$append(o(c(K,"Rewriter"),"Action").$new(e.$begin(),t))},g.$$arity=2),e.def(W,"$wrap",y=function(e,t,r){var $=this;return $.$append(o(c(K,"Rewriter"),"Action").$new(e.$begin(),t)),$.$append(o(c(K,"Rewriter"),"Action").$new(e.$end(),r))},y.$$arity=3),e.def(W,"$insert_before_multi",v=function(e,r){var $=this;return $.insert_before_multi_order=t($.insert_before_multi_order,1),$.$append(o(c(K,"Rewriter"),"Action").$new(e.$begin(),r,!0,$.insert_before_multi_order))},v.$$arity=2),e.def(W,"$insert_after",b=function(e,t){return this.$append(o(c(K,"Rewriter"),"Action").$new(e.$end(),t))},b.$$arity=2),e.def(W,"$insert_after_multi",k=function(e,t){var $=this;return $.insert_after_multi_order=r($.insert_after_multi_order,1),$.$append(o(c(K,"Rewriter"),"Action").$new(e.$end(),t,!0,$.insert_after_multi_order))},k.$$arity=2),e.def(W,"$replace",x=function(e,t){return this.$append(o(c(K,"Rewriter"),"Action").$new(e,t))},x.$$arity=2),e.def(W,"$process",w=function(){var $,n=this,a=s,i=s;return p(n["$in_transaction?"]())&&n.$raise("Do not call "+n.$class()+"#process inside a transaction"),a=0,i=n.source_buffer.$source().$dup(),l(n.queue.$sort(),"each",[],(($=function(n){null==$.$$s||$.$$s;var o=s,c=s,_=s;return null==n&&(n=s),c=r(o=r(n.$range().$begin_pos(),a),n.$range().$length()),_=[e.Range.$new(o,c,!0),n.$replacement()],l(i,"[]=",e.to_a(_)),_[t(_.length,1)],a=r(a,t(n.$replacement().$length(),n.$range().$length()))}).$$s=n,$.$$arity=1,$)),i},w.$$arity=0),e.def(W,"$transaction",E=function(){var t=E.$$p,r=t||s,$=this;return t&&(E.$$p=null),function(){try{return r!==s||$.$raise($.$class()+"#transaction requires block"),p($["$in_transaction?"]())&&$.$raise("Nested transaction is not supported"),$.pending_queue=$.queue.$dup(),$.pending_clobber=$.clobber,$.pending_insertions=$.insertions,e.yieldX(r,[]),$.queue=$.pending_queue,$.clobber=$.pending_clobber,$.insertions=$.pending_insertions,$}finally{$.pending_queue=s,$.pending_clobber=s,$.pending_insertions=s}}()},E.$$arity=0),W.$private(),e.def(W,"$append",R=function(e){var t,r,$=this,n=s,a=s,i=s,o=s,c=s;if(n=e.$range(),p(n["$empty?"]())){if(p(e.$replacement()["$empty?"]()))return $;p(p(a=e["$allow_multiple_insertions?"]()["$!"]())?i=$["$clobbered_insertion?"](n):a)&&$.$raise_clobber_error(e,[i]),$.$record_insertion(n),p(o=$["$adjacent_updates?"](n))?(i=l(o,"find",[],((t=function(r){var $=null==t.$$s?this:t.$$s,a=s;return null==r&&(r=s),p(a=r.$range()["$overlaps?"](n))?$["$replace_compatible_with_insertion?"](r,e)["$!"]():a}).$$s=$,t.$$arity=1,t)),p(i)&&$.$raise_clobber_error(e,[i]),$["$merge_actions!"](e,o)):$.$active_queue()["$<<"](e)}else p(c=$["$adjacent_insertions?"](n))&&l(c,"each",[],((r=function(t){var $=null==r.$$s?this:r.$$s,a=s;return null==t&&(t=s),p(p(a=n["$overlaps?"](t.$range()))?$["$replace_compatible_with_insertion?"](e,t)["$!"]():a)?$.$raise_clobber_error(e,[t]):(e=$.$merge_actions(e,[t]),$.$active_queue().$delete(t))}).$$s=$,r.$$arity=1,r)),p(o=$["$adjacent_updates?"](n))?p($["$can_merge?"](e,o))?($.$record_replace(n),$["$merge_actions!"](e,o)):$.$raise_clobber_error(e,o):($.$record_replace(n),$.$active_queue()["$<<"](e));return $},R.$$arity=1),e.def(W,"$record_insertion",z=function(r){var $=this,n=s;return n=[$.$active_insertions()["$|"](1["$<<"](r.$begin_pos()))],l($,"active_insertions=",e.to_a(n)),n[t(n.length,1)]},z.$$arity=1),e.def(W,"$record_replace",A=function(r){var $=this,n=s;return n=[$.$active_clobber()["$|"]($.$clobbered_position_mask(r))],l($,"active_clobber=",e.to_a(n)),n[t(n.length,1)]},A.$$arity=1),e.def(W,"$clobbered_position_mask",N=function(e){return t(1["$<<"](e.$size()),1)["$<<"](e.$begin_pos())},N.$$arity=1),e.def(W,"$adjacent_position_mask",S=function(e){return t(1["$<<"](r(e.$size(),2)),1)["$<<"](t(e.$begin_pos(),1))},S.$$arity=1),e.def(W,"$adjacent_insertion_mask",O=function(e){return t(1["$<<"](r(e.$size(),1)),1)["$<<"](e.$begin_pos())},O.$$arity=1),e.def(W,"$clobbered_insertion?",T=function(e){var t,r=this,n=s;return n=e.$begin_pos(),p(r.$active_insertions()["$&"](1["$<<"](n))["$!="](0))?l(r.$active_queue(),"find",[],((t=function(e){null==t.$$s||t.$$s;var r=s;return null==e&&(e=s),p(r=$(e.$range().$begin_pos(),n))?$(n,e.$range().$end_pos()):r}).$$s=r,t.$$arity=1,t)):s},T.$$arity=1),e.def(W,"$adjacent_insertions?",I=function(e){var t,r=this,$=s;return p(r.$active_insertions()["$&"](r.$adjacent_insertion_mask(e))["$!="](0))?($=l(r.$active_queue(),"select",[],((t=function(r){var $=null==t.$$s?this:t.$$s,n=s;return null==r&&(r=s),p(n=r.$range()["$empty?"]())?$["$adjacent?"](e,r.$range()):n}).$$s=r,t.$$arity=1,t)),p($["$empty?"]())?s:$):s},I.$$arity=1),e.def(W,"$adjacent_updates?",C=function(e){var t,r=this;return p(r.$active_clobber()["$&"](r.$adjacent_position_mask(e))["$!="](0))?l(r.$active_queue(),"select",[],((t=function(r){var $=null==t.$$s?this:t.$$s;return null==r&&(r=s),$["$adjacent?"](e,r.$range())}).$$s=r,t.$$arity=1,t)):s},C.$$arity=1),e.def(W,"$replace_compatible_with_insertion?",q=function(e,r){var $=s,a=s,i=s;return p($=p(a=n(t(e.$replacement().$length(),e.$range().$size()),r.$range().$size()))?i=t(r.$range().$begin_pos(),e.$range().$begin_pos()):a)?e.$replacement()["$[]"](i,r.$replacement().$length())["$=="](r.$replacement()):$},q.$$arity=2),e.def(W,"$can_merge?",P=function(e,r){var $,n=this,a=s;return a=e.$range(),l(r,"all?",[],(($=function(r){null==$.$$s||$.$$s;var n=s,i=s,o=s,c=s,_=s,u=s,l=s,d=s,f=s;return null==r&&(r=s),n=a.$intersect(r.$range()),!!p(n["$nil?"]())||(i=t(n.$begin_pos(),a.$begin_pos()),o=t(n.$begin_pos(),r.$range().$begin_pos()),c=[t(r.$range().$length(),o),t(r.$replacement().$length(),o)].$max(),_=[t(a.$length(),i),t(e.$replacement().$length(),i)].$max(),u=p(l=e.$replacement()["$[]"](i,c))?l:"".$freeze(),d=p(f=r.$replacement()["$[]"](o,_))?f:"".$freeze(),u["$=="](d))}).$$s=n,$.$$arity=1,$))},P.$$arity=2),e.def(W,"$merge_actions",B=function(e,t){var r,$,n=this,a=s,i=s;return i=(a=l(t.$push(e),"sort_by",[],((r=function(e){null==r.$$s||r.$$s;return null==e&&(e=s),[e.$range().$begin_pos(),e.$range().$end_pos()]}).$$s=n,r.$$arity=1,r))).$first().$range().$join(l(a,"max_by",[],($=function(e){null==$.$$s||$.$$s;return null==e&&(e=s),e.$range().$end_pos()},$.$$s=n,$.$$arity=1,$)).$range()),o(c(K,"Rewriter"),"Action").$new(i,n.$merge_replacements(a))},B.$$arity=2),e.def(W,"$merge_actions!",D=function(e,t){var r=this,$=s;return $=r.$merge_actions(e,t),r.$active_queue().$delete(e),r.$replace_actions(t,$)},D.$$arity=2),e.def(W,"$merge_replacements",L=function($){var n,i=this,o=s,c=s;return o="".$dup(),c=s,l($,"each",[],((n=function($){null==n.$$s||n.$$s;var i=s,_=s;return null==$&&($=s),p(p(i=c["$!"]())?i:$.$range()["$disjoint?"](c.$range()))?o["$<<"]($.$replacement()):(_=t([r(c.$range().$begin_pos(),c.$replacement().$length()),c.$range().$end_pos()].$max(),$.$range().$begin_pos()),p(a(_,$.$replacement().$size()))&&o["$<<"]($.$replacement()["$[]"](e.Range.$new(_,-1,!1)))),c=$}).$$s=i,n.$$arity=1,n)),o},L.$$arity=1),e.def(W,"$replace_actions",G=function(e,t){var r,$=this;return l(e,"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==e&&(e=s),t.$active_queue().$delete(e)}).$$s=$,r.$$arity=1,r)),$.$active_queue()["$<<"](t)},G.$$arity=2),e.def(W,"$raise_clobber_error",M=function(e,t){var r=this,$=s +;return $=c(K,"Diagnostic").$new("error","invalid_action",f(["action"],{action:e}),e.$range()),r.diagnostics.$process($),$=c(K,"Diagnostic").$new("note","clobbered",f(["action"],{action:t["$[]"](0)}),t["$[]"](0).$range()),r.diagnostics.$process($),r.$raise(c(K,"ClobberingError"),"Parser::Source::Rewriter detected clobbering")},M.$$arity=2),e.def(W,"$in_transaction?",j=function(){return this.pending_queue["$nil?"]()["$!"]()},j.$$arity=0),e.def(W,"$active_queue",F=function(){var e=this,t=s;return p(t=e.pending_queue)?t:e.queue},F.$$arity=0),e.def(W,"$active_clobber",U=function(){var e=this,t=s;return p(t=e.pending_clobber)?t:e.clobber},U.$$arity=0),e.def(W,"$active_insertions",H=function(){var e=this,t=s;return p(t=e.pending_insertions)?t:e.insertions},H.$$arity=0),e.def(W,"$active_clobber=",Y=function(e){var t=this;return p(t.pending_clobber)?t.pending_clobber=e:t.clobber=e},Y.$$arity=1),e.def(W,"$active_insertions=",X=function(e){var t=this;return p(t.pending_insertions)?t.pending_insertions=e:t.insertions=e},X.$$arity=1),e.def(W,"$adjacent?",V=function(e,t){var r=s;return p(r=$(e.$begin_pos(),t.$end_pos()))?$(t.$begin_pos(),e.$end_pos()):r},V.$$arity=2),e.const_set(K[0],"DEPRECATION_WARNING",["Parser::Source::Rewriter is deprecated.","Please update your code to use Parser::Source::TreeRewriter instead"].$join("\n").$freeze()),W.$extend(c(K,"Deprecation"))}(m[0],0,m)}(m[0],m)}(i[0],i)},Opal.modules["parser/source/rewriter/action"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.truthy;return e.add_stubs(["$include","$attr_reader","$alias_method","$freeze","$<=>","$begin_pos","$range","$zero?","$order","$==","$length","$empty?","$inspect"]),function(t,s){var o=[n(t,"Parser")].concat(s);return function(t,s){var o=[n(t,"Source")].concat(s);return function(t,$super,n){var s,o,c,_=a(t,null,"Action"),u=[_].concat(n);return _.$$prototype.range=_.$$prototype.replacement=r,_.$include($(u,"Comparable")),_.$attr_reader("range","replacement","allow_multiple_insertions","order"),_.$alias_method("allow_multiple_insertions?","allow_multiple_insertions"),e.def(_,"$initialize",s=function(e,t,r,$){var n=this;return null==t&&(t=""),null==r&&(r=!1),null==$&&($=0),n.range=e,n.replacement=t,n.allow_multiple_insertions=r,n.order=$,n.$freeze()},s.$$arity=-2),e.def(_,"$<=>",o=function(e){var t=this,$=r;return $=t.$range().$begin_pos()["$<=>"](e.$range().$begin_pos()),i($["$zero?"]())?t.$order()["$<=>"](e.$order()):$},o.$$arity=1),e.def(_,"$to_s",c=function(){var e=this,t=r;return i(i(t=e.range.$length()["$=="](0))?e.replacement["$empty?"]():t)?"do nothing":e.range.$length()["$=="](0)?"insert "+e.replacement.$inspect():i(e.replacement["$empty?"]())?"remove "+e.range.$length()+" character(s)":"replace "+e.range.$length()+" character(s) with "+e.replacement.$inspect()},c.$$arity=0),r&&"to_s"}($(o,"Rewriter"),0,o)}(o[0],o)}(t[0],t)},Opal.modules["parser/source/tree_rewriter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}e.top;var a=[],i=e.nil,s=e.$$$,o=e.$$,c=e.module,_=e.klass,u=e.hash2,l=e.lambda,d=e.gvars,p=e.send,f=e.truthy,h=e.range,m=(e.hash,e.slice);return e.add_stubs(["$attr_reader","$new","$puts","$render","$consumer=","$-","$freeze","$check_policy_validity","$method","$adjust","$source_range","$empty?","$==","$source_buffer","$raise","$combine","$action_root","$merge!","$dup","$contract","$+","$begin_pos","$range","$end_pos","$check_range_validity","$moved","$to_s","$replace","$wrap","$source","$each","$ordered_replacements","$<<","$[]","$length","$join","$nested_actions","$class","$name","$action_summary","$warn_of_deprecation","$insert_before","$insert_after","$extend","$protected","$private","$as_replacements","$size","$===","$first","$map","$to_range","$inspect","$values","$<","$>","$trigger_policy","$process"]),function(a,g){var y=[c(a,"Parser")].concat(g);return function(a,g){var y=[c(a,"Source")].concat(g);return function(a,$super,c){var g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j=_(a,null,"TreeRewriter"),F=[j].concat(c);return j.$$prototype.diagnostics=j.$$prototype.source_buffer=j.$$prototype.enforcer=j.$$prototype.action_root=j.$$prototype.in_transaction=j.$$prototype.policy=i,j.$attr_reader("source_buffer"),j.$attr_reader("diagnostics"),e.def(j,"$initialize",g=function(r,$){var n,a,c,_,f=this,h=i,m=i;if(null==$)$=u([],{});else if(!$.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(n=$.$$smap.crossing_deletions)&&(n="accept"),null==(a=$.$$smap.different_replacements)&&(a="accept"),null==(c=$.$$smap.swallowed_insertions)&&(c="accept"),f.diagnostics=s(o(F,"Diagnostic"),"Engine").$new(),h=[l((_=function(e){null==_.$$s||_.$$s;return null==d.stderr&&(d.stderr=i),null==e&&(e=i),d.stderr.$puts(e.$render())},_.$$s=f,_.$$arity=1,_))],p(f.diagnostics,"consumer=",e.to_a(h)),h[t(h.length,1)],f.source_buffer=r,f.in_transaction=!1,f.policy=u(["crossing_deletions","different_replacements","swallowed_insertions"],{crossing_deletions:n,different_replacements:a,swallowed_insertions:c}).$freeze(),f.$check_policy_validity(),f.enforcer=f.$method("enforce_policy"),m=f.source_buffer.$source_range().$adjust(u(["begin_pos","end_pos"],{begin_pos:-1,end_pos:1})),f.action_root=s(o(F,"TreeRewriter"),"Action").$new(m,f.enforcer)},g.$$arity=-2),e.def(j,"$empty?",y=function(){return this.action_root["$empty?"]()},y.$$arity=0),e.def(j,"$merge!",v=function(e){var t=this;return t.$source_buffer()["$=="](e.$source_buffer())||t.$raise("TreeRewriter are not for the same source_buffer"),t.action_root=t.action_root.$combine(e.$action_root()),t},v.$$arity=1),e.def(j,"$merge",b=function(e){return this.$dup()["$merge!"](e)},b.$$arity=1),e.def(j,"$import!",k=function(t,$){var n,a=this,o=i,c=i,_=i;if(null==$)$=u([],{});else if(!$.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(n=$.$$smap.offset)&&(n=0),f(t["$empty?"]())?a:(o=t.$action_root().$contract(),c=s(s(s("::","Parser"),"Source"),"Range").$new(a.source_buffer,r(o.$range().$begin_pos(),n),r(o.$range().$end_pos(),n)),a.$check_range_validity(c),_=o.$moved(a.source_buffer,n),a.action_root=a.action_root.$combine(_),a)},k.$$arity=-2),e.def(j,"$replace",x=function(e,t){return this.$combine(e,u(["replacement"],{replacement:t}))},x.$$arity=2),e.def(j,"$wrap",w=function(e,t,r){return this.$combine(e,u(["insert_before","insert_after"],{insert_before:t.$to_s(),insert_after:r.$to_s()}))},w.$$arity=3),e.def(j,"$remove",E=function(e){return this.$replace(e,"".$freeze())},E.$$arity=1),e.def(j,"$insert_before",R=function(e,t){return this.$wrap(e,t,i)},R.$$arity=2),e.def(j,"$insert_after",z=function(e,t){return this.$wrap(e,i,t)},z.$$arity=2),e.def(j,"$process",A=function(){var t,r=this,$=i,n=i,a=i;return $=r.source_buffer.$source(),n=[],a=0,p(r.action_root.$ordered_replacements(),"each",[],((t=function(r,s){null==t.$$s||t.$$s;return null==r&&(r=i),null==s&&(s=i),n["$<<"]($["$[]"](e.Range.$new(a,r.$begin_pos(),!0)))["$<<"](s),a=r.$end_pos()}).$$s=r,t.$$arity=2,t)),n["$<<"]($["$[]"](e.Range.$new(a,$.$length(),!0))),n.$join()},A.$$arity=0),e.def(j,"$as_replacements",N=function(){return this.action_root.$ordered_replacements()},N.$$arity=0),e.def(j,"$as_nested_actions",S=function(){return this.action_root.$nested_actions()},S.$$arity=0),e.def(j,"$transaction",O=function(){var t=O.$$p,r=t||i,$=this,n=i,a=i;return t&&(O.$$p=null),function(){try{return r!==i||$.$raise($.$class()+"#transaction requires block"),n=$.in_transaction,$.in_transaction=!0,a=$.action_root,e.yieldX(r,[]),a=i,$}finally{f(a)&&($.action_root=a),$.in_transaction=n}}()},O.$$arity=0),e.def(j,"$in_transaction?",T=function(){return this.in_transaction},T.$$arity=0),e.def(j,"$inspect",I=function(){var e=this;return"#<"+e.$class()+" "+e.$source_buffer().$name()+": "+e.$action_summary()+">"},I.$$arity=0),e.def(j,"$insert_before_multi",C=function(e,t){var r=this;return r.$class().$warn_of_deprecation(),r.$insert_before(e,t)},C.$$arity=2),e.def(j,"$insert_after_multi",q=function(e,t){var r=this;return r.$class().$warn_of_deprecation(),r.$insert_after(e,t)},q.$$arity=2),e.const_set(F[0],"DEPRECATION_WARNING",["TreeRewriter#insert_before_multi and insert_before_multi exist only for legacy compatibility.","Please update your code to use `wrap`, `insert_before` or `insert_after` instead."].$join("\n").$freeze()),j.$extend(o(F,"Deprecation")),j.$protected(),j.$attr_reader("action_root"),j.$private(),e.def(j,"$action_summary",P=function(){var t,r=this,$=i,n=i,a=i,s=i;return n=($=r.$as_replacements()).$size(),(0)["$==="](n)?"empty":(h(1,3,!1)["$==="](n)||($=$.$first(3),a="\u2026"),s=p($,"map",[],((t=function(r){null==t.$$s||t.$$s;var $,n,a=i,s=i;return null==r&&(r=i),n=r,a=null==($=e.to_ary(n))[0]?i:$[0],s=null==$[1]?i:$[1],f(s["$empty?"]())?"-"+a.$to_range():a.$size()["$=="](0)?"+"+s.$inspect()+"@"+a.$begin_pos():"^"+s.$inspect()+"@"+a.$to_range()}).$$s=r,t.$$arity=1,t.$$has_top_level_mlhs_arg=!0,t)),f(a)&&s["$<<"](a),s.$join(", "))},P.$$arity=0),e.const_set(F[0],"ACTIONS",["accept","warn","raise"].$freeze()),e.def(j,"$check_policy_validity",B=function(){var e=this,r=i;return r=t(e.policy.$values(),o(F,"ACTIONS")),f(r["$empty?"]())?i:e.$raise(o(F,"ArgumentError"),"Invalid policy: "+r.$join(", "))},B.$$arity=0),e.def(j,"$combine",D=function(t,r){var $=this,n=i;return t=$.$check_range_validity(t),n=s(o(F,"TreeRewriter"),"Action").$new(t,$.enforcer,e.to_hash(r)),$.action_root=$.action_root.$combine(n),$},D.$$arity=2),e.def(j,"$check_range_validity",L=function(e){var t=this,r=i;return f(f(r=$(e.$begin_pos(),0))?r:n(e.$end_pos(),t.source_buffer.$source().$size()))&&t.$raise(o(F,"IndexError"),"The range "+e.$to_range()+" is outside the bounds of the source"),e},L.$$arity=1),e.def(j,"$enforce_policy",G=function(t){var r=G.$$p,$=r||i,n=this,a=i;return r&&(G.$$p=null),n.policy["$[]"](t)["$=="]("accept")?i:f(a=e.yieldX($,[]))?n.$trigger_policy(t,e.to_hash(a)):i},G.$$arity=1),e.const_set(F[0],"POLICY_TO_LEVEL",u(["warn","raise"],{warn:"warning",raise:"error"}).$freeze()),e.def(j,"$trigger_policy",M=function(t,r){var $,n,a,c,_,l=this,d=i,p=i,h=i,g=i;if(null==r)r=u([],{});else if(!r.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==($=r.$$smap.range)&&($=l.$raise()),null==(n=r.$$smap.conflict)&&(n=i),a=e.kwrestargs(r,{range:!0,conflict:!0}),d=f(p=l.policy["$[]"](t))?p:"raise",h=s(o(F,"Parser"),"Diagnostic").$new(o(F,"POLICY_TO_LEVEL")["$[]"](d),t,a,$),l.diagnostics.$process(h),f(n)&&(_=n,$=null==(c=e.to_ary(_))[0]?i:c[0],g=m.call(c,1),h=s(o(F,"Parser"),"Diagnostic").$new(o(F,"POLICY_TO_LEVEL")["$[]"](d),t+"_conflict",a,$,g),l.diagnostics.$process(h)),d["$=="]("raise")?l.$raise(s(o(F,"Parser"),"ClobberingError"),"Parser::Source::TreeRewriter detected clobbering"):i},M.$$arity=-2),i&&"trigger_policy"}(y[0],0,y)}(y[0],y)}(a[0],a)},Opal.modules["parser/source/tree_rewriter/action"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e","$-","$>=","$===","$<=>","$<=","$check_fusible","$<","$shift","$pop","$compact!","$each","$call","$call_enforcer_for_merge","$!=","$select"]),function(s,h){var m=[u(s,"Parser")].concat(h);return function(s,h){var m=[u(s,"Source")].concat(h);return function(s,$super,_){var u,h,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C=l(s,null,"Action");[C].concat(_);return C.$$prototype.insert_before=C.$$prototype.insert_after=C.$$prototype.children=C.$$prototype.replacement=C.$$prototype.range=C.$$prototype.enforcer=o,C.$attr_reader("range","replacement","insert_before","insert_after"),e.def(C,"$initialize",u=function(t,r,$){var n,a,i,s,c,_=this;if(null==$)$=d([],{});else if(!$.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(n=$.$$smap.insert_before)&&(n=""),null==(a=$.$$smap.replacement)&&(a=o),null==(i=$.$$smap.insert_after)&&(i=""),null==(s=$.$$smap.children)&&(s=[]),c=[t,r,s.$freeze(),n.$freeze(),a,i.$freeze()],_.range=c[0],_.enforcer=c[1],_.children=c[2],_.insert_before=c[3],_.replacement=c[4],_.insert_after=c[5],_.$freeze()},u.$$arity=-3),e.def(C,"$combine",h=function(e){var t=this;return p(e["$empty?"]())?t:t.$do_combine(e)},h.$$arity=1),e.def(C,"$empty?",m=function(){var e=this,t=o,r=o,$=o,n=o,a=o;return p(t=p(r=p($=e.insert_before["$empty?"]())?e.insert_after["$empty?"]():$)?e.children["$empty?"]():r)?p(n=e.replacement["$=="](o))?n:p(a=e.replacement["$empty?"]())?e.range["$empty?"]():a:t},m.$$arity=0),e.def(C,"$ordered_replacements",g=function(){var e=this,t=o;return t=[],p(e.insert_before["$empty?"]())||t["$<<"]([e.range.$begin(),e.insert_before]),p(e.replacement)&&t["$<<"]([e.range,e.replacement]),t.$concat(f(e.children,"flat_map",[],"ordered_replacements".$to_proc())),p(e.insert_after["$empty?"]())||t["$<<"]([e.range.$end(),e.insert_after]),t},g.$$arity=0),e.def(C,"$nested_actions",y=function(){var e=this,t=o,r=o;return t=[],p(p(r=e.insert_before["$empty?"]()["$!"]())?r:e.insert_after["$empty?"]()["$!"]())&&t["$<<"](["wrap",e.range,e.insert_before,e.insert_after]),p(e.replacement)&&t["$<<"](["replace",e.range,e.replacement]),t.$concat(f(e.children,"flat_map",[],"nested_actions".$to_proc()))},y.$$arity=0),e.def(C,"$insertion?",v=function(){var e=this,t=o,r=o,$=o;return p(t=p(r=e.$insert_before()["$empty?"]()["$!"]())?r:e.$insert_after()["$empty?"]()["$!"]())?t:p($=e.$replacement())?e.$replacement()["$empty?"]()["$!"]():$},v.$$arity=0),e.def(C,"$contract",b=function(){var e=this,t=o;return p(e["$empty?"]())&&e.$raise("Empty actions can not be contracted"),p(e["$insertion?"]())?e:(t=e.range.$with(d(["begin_pos","end_pos"],{begin_pos:e.$children().$first().$range().$begin_pos(),end_pos:e.$children().$last().$range().$end_pos()})),e.$with(d(["range"],{range:t})))},b.$$arity=0),e.def(C,"$moved",k=function(e,r){var $,n=this,a=o;return a=c(c(c("::","Parser"),"Source"),"Range").$new(e,t(n.range.$begin_pos(),r),t(n.range.$end_pos(),r)),n.$with(d(["range","children"],{range:a,children:f(n.$children(),"map",[],($=function(t){null==$.$$s||$.$$s;return null==t&&(t=o),t.$moved(e,r)},$.$$s=n,$.$$arity=1,$))}))},k.$$arity=2),C.$protected(),C.$attr_reader("children"),e.def(C,"$with",x=function(t){var r,$,n,a,i,s,o=this;if(null==t)t=d([],{});else if(!t.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(r=t.$$smap.range)&&(r=o.range),null==($=t.$$smap.enforcer)&&($=o.enforcer),null==(n=t.$$smap.children)&&(n=o.children),null==(a=t.$$smap.insert_before)&&(a=o.insert_before),null==(i=t.$$smap.replacement)&&(i=o.replacement),null==(s=t.$$smap.insert_after)&&(s=o.insert_after),p(i)&&(n=o.$swallow(n)),o.$class().$new(r,$,d(["children","insert_before","replacement","insert_after"],{children:n,insert_before:a,replacement:i,insert_after:s}))},x.$$arity=-1),e.def(C,"$do_combine",w=function(e){var t=this;return e.$range()["$=="](t.range)?t.$merge(e):t.$place_in_hierarchy(e)},w.$$arity=1),e.def(C,"$place_in_hierarchy",E=function(t){var r=this,$=o,n=o;return $=r.$analyse_hierarchy(t),p($["$[]"]("fusible"))?r.$fuse_deletions(t,$["$[]"]("fusible"),[].concat(e.to_a($["$[]"]("sibbling_left"))).concat(e.to_a($["$[]"]("child"))).concat(e.to_a($["$[]"]("sibbling_right")))):(n=p($["$[]"]("parent"))?$["$[]"]("parent").$do_combine(t):p($["$[]"]("child"))?t.$with(d(["children","enforcer"],{children:$["$[]"]("child"),enforcer:r.enforcer})).$combine_children(t.$children()):t,r.$with(d(["children"],{children:[].concat(e.to_a($["$[]"]("sibbling_left"))).concat([n]).concat(e.to_a($["$[]"]("sibbling_right")))})))},E.$$arity=1),e.def(C,"$combine_children",R=function(e){var t,r=this;return f(e,"inject",[r],((t=function(e,r){null==t.$$s||t.$$s;return null==e&&(e=o),null==r&&(r=o),e.$place_in_hierarchy(r)}).$$s=r,t.$$arity=2,t))},R.$$arity=1),e.def(C,"$fuse_deletions",z=function(t,r,$){var n=o,a=o,i=o;return n=this.$with(d(["children"],{children:$})),a=f([t].concat(e.to_a(r)),"map",[],"range".$to_proc()).$inject("join"),i=t.$with(d(["range"],{range:a})),n.$do_combine(i)},z.$$arity=3),e.def(C,"$bsearch_child_index",A=function(t){var r,$=A.$$p,n=$||o,a=this,i=o,s=o;return $&&(A.$$p=null),null==t&&(t=0),i=a.children.$size(),p(s=f(e.Range.$new(t,i,!0),"bsearch",[],((r=function(t){var $=null==r.$$s?this:r.$$s;return null==$.children&&($.children=o),null==t&&(t=o),e.yield1(n,$.children["$[]"](t))}).$$s=a,r.$$arity=1,r)))?s:i},A.$$arity=-1),e.def(C,"$analyse_hierarchy",N=function(s){var c,_,u=this,l=o,h=o,m=o,g=o,y=o,v=o,b=o,k=o,x=o,w=o,E=o,R=o,z=o;return l=s.$range(),m=(h=f(u,"bsearch_child_index",[],((c=function(e){null==c.$$s||c.$$s;return null==e&&(e=o),r(e.$range().$end_pos(),l.$begin_pos())}).$$s=u,c.$$arity=1,c)))["$=="](0)?0:$(h,1),g=f(u,"bsearch_child_index",[m],((_=function(e){null==_.$$s||_.$$s;return null==e&&(e=o),n(e.$range().$begin_pos(),l.$end_pos())}).$$s=u,_.$$arity=1,_)),v=y=$(g,h),(0)["$==="](v)||((-1)["$==="](v)?(h=$(h,1),g=t(g,1),b=u.children["$[]"](h)):(k=u.children["$[]"](h).$range().$begin_pos()["$<=>"](l.$begin_pos()),x=u.children["$[]"]($(g,1)).$range().$end_pos()["$<=>"](l.$end_pos()),p(p(w=p(E=y["$=="](1))?a(k,0):E)?n(x,0):w)?b=u.children["$[]"](h):(R=u.children["$[]"](e.Range.$new(h,g,!0)),z=u.$check_fusible(s,p(i(k,0))?R.$shift():o,p(r(x,0))?R.$pop():o)))),d(["parent","sibbling_left","sibbling_right","fusible","child"],{parent:b,sibbling_left:u.children["$[]"](e.Range.$new(0,h,!0)),sibbling_right:u.children["$[]"](e.Range.$new(g,u.children.$size(),!0)),fusible:z,child:R})},N.$$arity=1),e.def(C,"$check_fusible",S=function(t){var r,$,n=this;return(r=e.slice.call(arguments,1,arguments.length))["$compact!"](),p(r["$empty?"]())?o:(f(r,"each",[],(($=function(e){var r,n=null==$.$$s?this:$.$$s,a=o,i=o;return null==n.enforcer&&(n.enforcer=o),null==e&&(e=o),a=p(p(i=t["$insertion?"]())?i:e["$insertion?"]())?"crossing_insertions":"crossing_deletions",f(n.enforcer,"call",[a],((r=function(){null==r.$$s||r.$$s;return d(["range","conflict"],{range:t.$range(),conflict:e.$range()})}).$$s=n,r.$$arity=0,r))}).$$s=n,$.$$arity=1,$)),r)},S.$$arity=-2),e.def(C,"$merge",O=function(e){var t=this,r=o;return t.$call_enforcer_for_merge(e),t.$with(d(["insert_before","replacement","insert_after"],{insert_before:""+e.$insert_before()+t.$insert_before(),replacement:p(r=e.$replacement())?r:t.replacement,insert_after:""+t.$insert_after()+e.$insert_after()})).$combine_children(e.$children())},O.$$arity=1),e.def(C,"$call_enforcer_for_merge",T=function(e){var t,r=this;return f(r.enforcer,"call",["different_replacements"],((t=function(){var r=null==t.$$s?this:t.$$s,$=o,n=o;return null==r.replacement&&(r.replacement=o),null==r.range&&(r.range=o),p(p($=p(n=r.replacement)?e.$replacement():n)?r.replacement["$!="](e.$replacement()):$)?d(["range","replacement","other_replacement"],{range:r.range,replacement:e.$replacement(),other_replacement:r.replacement}):o}).$$s=r,t.$$arity=0,t))},T.$$arity=1),e.def(C,"$swallow",I=function(e){var t,r=this;return f(r.enforcer,"call",["swallowed_insertions"],((t=function(){var r=null==t.$$s?this:t.$$s,$=o;return null==r.range&&(r.range=o),$=f(e,"select",[],"insertion?".$to_proc()),p($["$empty?"]())?o:d(["range","conflict"],{range:r.range,conflict:f($,"map",[],"range".$to_proc())})}).$$s=r,t.$$arity=0,t)),[]},I.$$arity=1),o&&"swallow"}(_(m,"TreeRewriter"),0,m)}(m[0],m)}(s[0],s)},Opal.modules["parser/source/map"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,n=(e.$$$,e.$$,e.module),a=e.klass,i=e.send2,s=e.find_super,o=e.send,c=e.truthy,_=e.hash2,u=e.range;return e.add_stubs(["$attr_reader","$freeze","$line","$alias_method","$column","$last_line","$last_column","$with","$update_expression","$==","$class","$reduce","$map","$instance_variables","$instance_variable_get","$send","$inject","$to_sym","$[]","$[]=","$-","$protected","$tap","$dup","$to_proc"]),function(r,l){var d=[n(r,"Parser")].concat(l);return function(r,l){var d=[n(r,"Source")].concat(l);return function(r,$super,n){var l,d,p,f,h,m,g,y,v,b,k,x,w=a(r,null,"Map");[w].concat(n);return w.$$prototype.node=w.$$prototype.expression=$,w.$attr_reader("node"),w.$attr_reader("expression"),e.def(w,"$initialize",l=function(e){return this.expression=e},l.$$arity=1),e.def(w,"$initialize_copy",d=function(e){var t=d.$$p,r=this;return t&&(d.$$p=null),i(r,s(r,"initialize_copy",d,!1,!0),"initialize_copy",[e],t),r.node=$},d.$$arity=1),e.def(w,"$node=",p=function(e){var t=this;return t.node=e,t.$freeze(),t.node},p.$$arity=1),e.def(w,"$line",f=function(){return this.expression.$line()},f.$$arity=0),w.$alias_method("first_line","line"),e.def(w,"$column",h=function(){return this.expression.$column()},h.$$arity=0),e.def(w,"$last_line",m=function(){return this.expression.$last_line()},m.$$arity=0),e.def(w,"$last_column",g=function(){return this.expression.$last_column()},g.$$arity=0),e.def(w,"$with_expression",y=function(e){var t,r=this;return o(r,"with",[],((t=function(r){null==t.$$s||t.$$s;return null==r&&(r=$),r.$update_expression(e)}).$$s=r,t.$$arity=1,t))},y.$$arity=1),e.def(w,"$==",v=function(e){var t,r=this,n=$;return c(n=e.$class()["$=="](r.$class()))?o(r.$instance_variables(),"map",[],(t=function(r){var n=null==t.$$s?this:t.$$s;return null==r&&(r=$),n.$instance_variable_get(r)["$=="](e.$send("instance_variable_get",r))},t.$$s=r,t.$$arity=1,t)).$reduce("&"):n},v.$$arity=1),e.def(w,"$to_hash",b=function(){var r,n=this;return o(n.$instance_variables(),"inject",[_([],{})],((r=function(n,a){var i=null==r.$$s?this:r.$$s,s=$;return null==n&&(n=$),null==a&&(a=$),a.$to_sym()["$=="]("@node")?n:(s=[a["$[]"](u(1,-1,!1)).$to_sym(),i.$instance_variable_get(a)],o(n,"[]=",e.to_a(s)),s[t(s.length,1)],n)}).$$s=n,r.$$arity=2,r))},b.$$arity=0),w.$protected(),e.def(w,"$with",k=function(){var e=k.$$p,t=e||$,r=this;return e&&(k.$$p=null),e&&(k.$$p=null),o(r.$dup(),"tap",[],t.$to_proc())},k.$$arity=0),e.def(w,"$update_expression",x=function(e){return this.expression=e},x.$$arity=1),$&&"update_expression"}(d[0],0,d)}(d[0],d)}(r[0],r)},Opal.modules["parser/source/map/operator"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"Operator");[o].concat($);return o.$attr_reader("operator"),e.def(o,"$initialize",n=function(e,t){var r=n.$$p,$=this;return r&&(n.$$p=null),$.operator=e,i($,s($,"initialize",n,!1,!0),"initialize",[t],null)},n.$$arity=2),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/source/map/collection"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"Collection");[o].concat($);return o.$attr_reader("begin"),o.$attr_reader("end"),e.def(o,"$initialize",n=function(e,t,r){var $,a=n.$$p,o=this;return a&&(n.$$p=null),$=[e,t],o.begin=$[0],o.end=$[1],i(o,s(o,"initialize",n,!1,!0),"initialize",[r],null)},n.$$arity=3),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/source/map/constant"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super,o=e.send;return e.add_stubs(["$attr_reader","$with","$update_operator","$protected"]),function(t,c){var _=[n(t,"Parser")].concat(c);return function(t,c){var _=[n(t,"Source")].concat(c);return function(t,$super,$){var n,c,_,u=a(t,$super,"Constant");[u].concat($);return u.$attr_reader("double_colon"),u.$attr_reader("name"),u.$attr_reader("operator"),e.def(u,"$initialize",n=function(e,t,r){var $,a=n.$$p,o=this;return a&&(n.$$p=null),$=[e,t],o.double_colon=$[0],o.name=$[1],i(o,s(o,"initialize",n,!1,!0),"initialize",[r],null)},n.$$arity=3),e.def(u,"$with_operator",c=function(e){var t,$=this;return o($,"with",[],((t=function($){null==t.$$s||t.$$s;return null==$&&($=r),$.$update_operator(e)}).$$s=$,t.$$arity=1,t))},c.$$arity=1),u.$protected(),e.def(u,"$update_operator",_=function(e){return this.operator=e},_.$$arity=1),r&&"update_operator"}($(_,"Map"),$(_,"Map"),_)}(_[0],_)}(t[0],t)},Opal.modules["parser/source/map/variable"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super,o=e.send;return e.add_stubs(["$attr_reader","$with","$update_operator","$protected"]),function(t,c){var _=[n(t,"Parser")].concat(c);return function(t,c){var _=[n(t,"Source")].concat(c);return function(t,$super,$){var n,c,_,u=a(t,$super,"Variable");[u].concat($);return u.$attr_reader("name"),u.$attr_reader("operator"),e.def(u,"$initialize",n=function(e,t){var r=n.$$p,$=this;return r&&(n.$$p=null),null==t&&(t=e),$.name=e,i($,s($,"initialize",n,!1,!0),"initialize",[t],null)},n.$$arity=-2),e.def(u,"$with_operator",c=function(e){var t,$=this;return o($,"with",[],((t=function($){null==t.$$s||t.$$s;return null==$&&($=r),$.$update_operator(e)}).$$s=$,t.$$arity=1,t))},c.$$arity=1),u.$protected(),e.def(u,"$update_operator",_=function(e){return this.operator=e},_.$$arity=1),r&&"update_operator"}($(_,"Map"),$(_,"Map"),_)}(_[0],_)}(t[0],t)},Opal.modules["parser/source/map/keyword"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"Keyword");[o].concat($);return o.$attr_reader("keyword"),o.$attr_reader("begin"),o.$attr_reader("end"),e.def(o,"$initialize",n=function(e,t,r,$){var a,o=n.$$p,c=this;return o&&(n.$$p=null),c.keyword=e,a=[t,r],c.begin=a[0],c.end=a[1],i(c,s(c,"initialize",n,!1,!0),"initialize",[$],null)},n.$$arity=4),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/source/map/definition"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader","$join"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"Definition");[o].concat($);return o.$$prototype.keyword=o.$$prototype.end=r,o.$attr_reader("keyword"),o.$attr_reader("operator"),o.$attr_reader("name"),o.$attr_reader("end"),e.def(o,"$initialize",n=function(e,t,r,$){var a=n.$$p,o=this;return a&&(n.$$p=null),o.keyword=e,o.operator=t,o.name=r,o.end=$,i(o,s(o,"initialize",n,!1,!0),"initialize",[o.keyword.$join(o.end)],null)},n.$$arity=4),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/source/map/method_definition"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super,o=e.truthy;return e.add_stubs(["$attr_reader","$join"]),function(t,c){var _=[n(t,"Parser")].concat(c);return function(t,c){var _=[n(t,"Source")].concat(c);return function(t,$super,$){var n,c=a(t,$super,"MethodDefinition");[c].concat($);return c.$$prototype.keyword=r,c.$attr_reader("keyword"),c.$attr_reader("operator"),c.$attr_reader("name"),c.$attr_reader("end"),c.$attr_reader("assignment"),e.def(c,"$initialize",n=function(e,t,$,a,c,_){var u=n.$$p,l=this,d=r;return u&&(n.$$p=null),l.keyword=e,l.operator=t,l.name=$,l.end=a,l.assignment=c,i(l,s(l,"initialize",n,!1,!0),"initialize",[l.keyword.$join(o(d=a)?d:_)],null)},n.$$arity=6),r&&"initialize"}($(_,"Map"),$(_,"Map"),_)}(_[0],_)}(t[0],t)},Opal.modules["parser/source/map/send"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super,o=e.send;return e.add_stubs(["$attr_reader","$with","$update_operator","$protected"]),function(t,c){var _=[n(t,"Parser")].concat(c);return function(t,c){var _=[n(t,"Source")].concat(c);return function(t,$super,$){var n,c,_,u=a(t,$super,"Send");[u].concat($);return u.$attr_reader("dot"),u.$attr_reader("selector"),u.$attr_reader("operator"),u.$attr_reader("begin"),u.$attr_reader("end"),e.def(u,"$initialize",n=function(e,t,r,$,a){var o,c=n.$$p,_=this;return c&&(n.$$p=null),_.dot=e,_.selector=t,o=[r,$],_.begin=o[0],_.end=o[1],i(_,s(_,"initialize",n,!1,!0),"initialize",[a],null)},n.$$arity=5),e.def(u,"$with_operator",c=function(e){var t,$=this;return o($,"with",[],((t=function($){null==t.$$s||t.$$s;return null==$&&($=r),$.$update_operator(e)}).$$s=$,t.$$arity=1,t))},c.$$arity=1),u.$protected(),e.def(u,"$update_operator",_=function(e){return this.operator=e},_.$$arity=1),r&&"update_operator"}($(_,"Map"),$(_,"Map"),_)}(_[0],_)}(t[0],t)},Opal.modules["parser/source/map/index"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super,o=e.send;return e.add_stubs(["$attr_reader","$with","$update_operator","$protected"]),function(t,c){var _=[n(t,"Parser")].concat(c);return function(t,c){var _=[n(t,"Source")].concat(c);return function(t,$super,$){var n,c,_,u=a(t,$super,"Index");[u].concat($);return u.$attr_reader("begin"),u.$attr_reader("end"),u.$attr_reader("operator"),e.def(u,"$initialize",n=function(e,t,$){var a,o=n.$$p,c=this;return o&&(n.$$p=null),a=[e,t],c.begin=a[0],c.end=a[1],c.operator=r,i(c,s(c,"initialize",n,!1,!0),"initialize",[$],null)},n.$$arity=3),e.def(u,"$with_operator",c=function(e){var t,$=this;return o($,"with",[],((t=function($){null==t.$$s||t.$$s;return null==$&&($=r),$.$update_operator(e)}).$$s=$,t.$$arity=1,t))},c.$$arity=1),u.$protected(),e.def(u,"$update_operator",_=function(e){return this.operator=e},_.$$arity=1),r&&"update_operator"}($(_,"Map"),$(_,"Map"),_)}(_[0],_)}(t[0],t)},Opal.modules["parser/source/map/condition"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"Condition");[o].concat($);return o.$attr_reader("keyword"),o.$attr_reader("begin"),o.$attr_reader("else"),o.$attr_reader("end"),e.def(o,"$initialize",n=function(e,t,r,$,a){var o,c=n.$$p,_=this;return c&&(n.$$p=null),_.keyword=e,o=[t,r,$],_.begin=o[0],_["else"]=o[1],_.end=o[2],i(_,s(_,"initialize",n,!1,!0),"initialize",[a],null)},n.$$arity=5),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/source/map/ternary"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"Ternary");[o].concat($);return o.$attr_reader("question"),o.$attr_reader("colon"),e.def(o,"$initialize",n=function(e,t,r){var $,a=n.$$p,o=this;return a&&(n.$$p=null),$=[e,t],o.question=$[0],o.colon=$[1],i(o,s(o,"initialize",n,!1,!0),"initialize",[r],null)},n.$$arity=3),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/source/map/for"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"For");[o].concat($);return o.$attr_reader("keyword","in"),o.$attr_reader("begin","end"),e.def(o,"$initialize",n=function(e,t,r,$,a){var o,c=n.$$p,_=this;return c&&(n.$$p=null),o=[e,t],_.keyword=o[0],_["in"]=o[1],o=[r,$],_.begin=o[0],_.end=o[1],i(_,s(_,"initialize",n,!1,!0),"initialize",[a],null)},n.$$arity=5),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c) +}(t[0],t)},Opal.modules["parser/source/map/rescue_body"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"RescueBody");[o].concat($);return o.$attr_reader("keyword"),o.$attr_reader("assoc"),o.$attr_reader("begin"),e.def(o,"$initialize",n=function(e,t,r,$){var a=n.$$p,o=this;return a&&(n.$$p=null),o.keyword=e,o.assoc=t,o.begin=r,i(o,s(o,"initialize",n,!1,!0),"initialize",[$],null)},n.$$arity=4),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/source/map/heredoc"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"Heredoc");[o].concat($);return o.$attr_reader("heredoc_body"),o.$attr_reader("heredoc_end"),e.def(o,"$initialize",n=function(e,t,r){var $=n.$$p,a=this;return $&&(n.$$p=null),a.heredoc_body=t,a.heredoc_end=r,i(a,s(a,"initialize",n,!1,!0),"initialize",[e],null)},n.$$arity=3),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/source/map/objc_kwarg"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,o){var c=[n(t,"Source")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"ObjcKwarg");[o].concat($);return o.$attr_reader("keyword"),o.$attr_reader("operator"),o.$attr_reader("argument"),e.def(o,"$initialize",n=function(e,t,r,$){var a,o=n.$$p,c=this;return o&&(n.$$p=null),a=[e,t,r],c.keyword=a[0],c.operator=a[1],c.argument=a[2],i(c,s(c,"initialize",n,!1,!0),"initialize",[$],null)},n.$$arity=4),r&&"initialize"}($(c,"Map"),$(c,"Map"),c)}(c[0],c)}(t[0],t)},Opal.modules["parser/syntax_error"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.send2,s=e.find_super;return e.add_stubs(["$attr_reader","$message"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,$super,$){var n,o=a(t,$super,"SyntaxError");[o].concat($);return o.$attr_reader("diagnostic"),e.def(o,"$initialize",n=function(e){var t=n.$$p,r=this;return t&&(n.$$p=null),r.diagnostic=e,i(r,s(r,"initialize",n,!1,!0),"initialize",[e.$message()],null)},n.$$arity=1),r&&"initialize"}(c[0],$(c,"StandardError"),c)}(t[0],t)},Opal.modules["parser/clobbering_error"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass;return function(e,t){var i=[n(e,"Parser")].concat(t);return function(e,$super,t){[a(e,$super,"ClobberingError")].concat(t);return r}(i[0],$(i,"RuntimeError"),i)}(t[0],t)},Opal.modules["parser/diagnostic"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}e.top;var i=[],s=e.nil,o=(e.$$$,e.$$),c=e.module,_=e.klass,u=e.truthy,l=e.hash2,d=e.send;return e.add_stubs(["$freeze","$attr_reader","$include?","$raise","$join","$inspect","$dup","$compile","$==","$line","$last_line","$is?","$+","$message","$render_line","$first_line_only","$last_line_only","$-","$source_buffer","$decompose_position","$end_pos","$>","$private","$source_line","$*","$length","$each","$line_range","$intersect","$column_range","$size","$[]=","$!","$>=","$map","$name","$!=","$resize","$=~","$source","$adjust"]),function(i,p){var f=[c(i,"Parser")].concat(p);return function(i,$super,c){var p,f,h,m,g,y,v=_(i,null,"Diagnostic"),b=[v].concat(c);return v.$$prototype.reason=v.$$prototype.arguments=v.$$prototype.location=v.$$prototype.level=v.$$prototype.highlights=s,e.const_set(b[0],"LEVELS",["note","warning","error","fatal"].$freeze()),v.$attr_reader("level","reason","arguments"),v.$attr_reader("location","highlights"),e.def(v,"$initialize",p=function(e,t,r,$,n){var a=this,i=s;return null==n&&(n=[]),u(o(b,"LEVELS")["$include?"](e))||a.$raise(o(b,"ArgumentError"),"Diagnostic#level must be one of "+o(b,"LEVELS").$join(", ")+"; "+e.$inspect()+" provided."),u($)||a.$raise("Expected a location"),a.level=e,a.reason=t,a.arguments=(u(i=r)?i:l([],{})).$dup().$freeze(),a.location=$,a.highlights=n.$dup().$freeze(),a.$freeze()},p.$$arity=-5),e.def(v,"$message",f=function(){var e=this;return o(b,"Messages").$compile(e.reason,e.arguments)},f.$$arity=0),e.def(v,"$render",h=function(){var n,a,i=this,o=s,c=s,_=s,l=s,d=s,p=s;return u(u(o=i.location.$line()["$=="](i.location.$last_line()))?o:i.location["$is?"]("\n"))?t([i.location+": "+i.level+": "+i.$message()],i.$render_line(i.location)):(c=i.$first_line_only(i.location),_=i.$last_line_only(i.location),l=t(r(i.location.$last_line(),i.location.$line()),1),a=i.location.$source_buffer().$decompose_position(i.location.$end_pos()),d=null==(n=e.to_ary(a))[0]?s:n[0],p=null==n[1]?s:n[1],t(t([i.location+"-"+d+":"+p+": "+i.level+": "+i.$message()],i.$render_line(c,$(l,2),!1)),i.$render_line(_,!1,!0)))},h.$$arity=0),v.$private(),e.def(v,"$render_line",m=function($,i,o){var c,_,l=this,p=s,f=s,h=s,m=s;return null==i&&(i=!1),null==o&&(o=!1),p=$.$source_line(),f=n(" ",p.$length()),d(l.highlights,"each",[],((c=function(t){null==c.$$s||c.$$s;var a=s,i=s;return null==t&&(t=s),a=$.$source_buffer().$line_range($.$line()),u(t=t.$intersect(a))?(i=[t.$column_range(),n("~",t.$size())],d(f,"[]=",e.to_a(i)),i[r(i.length,1)]):s}).$$s=l,c.$$arity=1,c)),u($["$is?"]("\n"))?f=t(f,"^"):u(u(h=o["$!"]())?a($.$size(),1):h)?(m=[$.$column_range(),t("^",n("~",r($.$size(),1)))],d(f,"[]=",e.to_a(m)),m[r(m.length,1)]):(m=[$.$column_range(),n("~",$.$size())],d(f,"[]=",e.to_a(m)),m[r(m.length,1)]),u(i)&&(f=t(f,"...")),d([p,f],"map",[],((_=function(e){null==_.$$s||_.$$s;return null==e&&(e=s),$.$source_buffer().$name()+":"+$.$line()+": "+e}).$$s=l,_.$$arity=1,_))},m.$$arity=-2),e.def(v,"$first_line_only",g=function(e){return u(e.$line()["$!="](e.$last_line()))?e.$resize(e.$source()["$=~"](/\n/)):e},g.$$arity=1),e.def(v,"$last_line_only",y=function(e){return u(e.$line()["$!="](e.$last_line()))?e.$adjust(l(["begin_pos"],{begin_pos:e.$source()["$=~"](/[^\n]*$/)})):e},y.$$arity=1),s&&"last_line_only"}(f[0],0,f)}(i[0],i)},Opal.modules["parser/diagnostic/engine"]=function(e){e.top;var t=[],r=e.nil,$=e.$$$,n=e.$$,a=e.module,i=e.klass,s=e.truthy;return e.add_stubs(["$attr_accessor","$ignore?","$call","$raise?","$raise","$protected","$==","$level"]),function(t,o){var c=[a(t,"Parser")].concat(o);return function(t,$super,a){var o,c,_,u,l=i(t,null,"Engine"),d=[l].concat(a);return l.$$prototype.consumer=l.$$prototype.ignore_warnings=l.$$prototype.all_errors_are_fatal=r,l.$attr_accessor("consumer"),l.$attr_accessor("all_errors_are_fatal"),l.$attr_accessor("ignore_warnings"),e.def(l,"$initialize",o=function(e){var t=this;return null==e&&(e=r),t.consumer=e,t.all_errors_are_fatal=!1,t.ignore_warnings=!1},o.$$arity=-1),e.def(l,"$process",c=function(e){var t=this;return s(t["$ignore?"](e))||s(t.consumer)&&t.consumer.$call(e),s(t["$raise?"](e))&&t.$raise($(n(d,"Parser"),"SyntaxError"),e),t},c.$$arity=1),l.$protected(),e.def(l,"$ignore?",_=function(e){var t=r;return s(t=this.ignore_warnings)?e.$level()["$=="]("warning"):t},_.$$arity=1),e.def(l,"$raise?",u=function(e){var t=r,$=r;return s(t=s($=this.all_errors_are_fatal)?e.$level()["$=="]("error"):$)?t:e.$level()["$=="]("fatal")},u.$$arity=1),r&&"raise?"}(n(c,"Diagnostic"),0,c)}(t[0],t)},Opal.modules["parser/static_environment"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass;return e.add_stubs(["$reset","$[]","$push","$dup","$pop","$add","$to_sym","$include?","$declare","$declared?","$empty?"]),function(t,i){var s=[n(t,"Parser")].concat(i);return function(t,$super,n){var i,s,o,c,_,u,l,d,p,f,h=a(t,null,"StaticEnvironment"),m=[h].concat(n);return h.$$prototype.stack=h.$$prototype.variables=r,e.const_set(m[0],"FORWARD_ARGS","FORWARD_ARGS"),e.def(h,"$initialize",i=function(){return this.$reset()},i.$$arity=0),e.def(h,"$reset",s=function(){var e=this;return e.variables=$(m,"Set")["$[]"](),e.stack=[]},s.$$arity=0),e.def(h,"$extend_static",o=function(){var e=this;return e.stack.$push(e.variables),e.variables=$(m,"Set")["$[]"](),e},o.$$arity=0),e.def(h,"$extend_dynamic",c=function(){var e=this;return e.stack.$push(e.variables),e.variables=e.variables.$dup(),e},c.$$arity=0),e.def(h,"$unextend",_=function(){var e=this;return e.variables=e.stack.$pop(),e},_.$$arity=0),e.def(h,"$declare",u=function(e){var t=this;return t.variables.$add(e.$to_sym()),t},u.$$arity=1),e.def(h,"$declared?",l=function(e){return this.variables["$include?"](e.$to_sym())},l.$$arity=1),e.def(h,"$declare_forward_args",d=function(){return this.$declare($(m,"FORWARD_ARGS"))},d.$$arity=0),e.def(h,"$declared_forward_args?",p=function(){return this["$declared?"]($(m,"FORWARD_ARGS"))},p.$$arity=0),e.def(h,"$empty?",f=function(){return this.stack["$empty?"]()},f.$$arity=0),r&&"empty?"}(s[0],0,s)}(t[0],t)},Opal.modules["parser/lexer"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e","$!=","$emit_comment","$tok","$literal","$flush_string","$extend_content","$emit","$heredoc?","$saved_herebody_s=","$start_interp_brace","$[]=","$diagnostic","$range","$str_s","$gsub","$version?","$nest_and_try_closing","$heredoc_e","$pop_literal","$infer_indent_level","$words?","$!","$eof_codepoint?","$extend_space","$extend_string","$>=","$active?","$slice","$start_with?","$chr","$munge_escape?","$regexp?","$match","$squiggly_heredoc?","$supports_line_continuation_via_slash?","$scan","$join","$=~","$to_i","$stack_pop","$emit_table","$push_literal","$arg_or_cmdarg","$<","$emit_do","$nil?","$declared?","$last","$getbyte","$inspect","$end_with?","$empty?","$index","$call","$Float","$to_f","$length","$lambda","$Rational","$Complex","$each","$encode_escape","$%","$end_interp_brace_and_try_closing","$lexpop","$saved_herebody_s","$next_state_for_literal","$rstrip","$&","$|","$include?","$lex_error","$protected","$force_encoding","$process","$backslash_delimited?","$interpolate?","$lex_en_interp_backslash_delimited_words","$lex_en_plain_backslash_delimited_words","$lex_en_plain_words","$lex_en_interp_backslash_delimited","$lex_en_plain_backslash_delimited","$dedent_level","$type","$lex_en_regexp_modifiers","$upcase"]),function(s,$super,g){var y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U,H,Y,X,V=u(s,null,"Lexer"),W=[V].concat(g),K=o;return V.$$prototype.source_buffer=V.$$prototype.source_pts=V.$$prototype.cs=V.$$prototype.cmdarg_stack=V.$$prototype.cmdarg=V.$$prototype.cond_stack=V.$$prototype.cond=V.$$prototype.dedent_level=V.$$prototype.token_queue=V.$$prototype.p=V.$$prototype.command_start=V.$$prototype.herebody_s=V.$$prototype.sharp_s=V.$$prototype.ts=V.$$prototype.te=V.$$prototype.top=V.$$prototype.stack=V.$$prototype.version=V.$$prototype.escape_s=V.$$prototype.escape=V.$$prototype.act=V.$$prototype.static_env=V.$$prototype.lambda_stack=V.$$prototype.paren_nest=V.$$prototype.num_digits_s=V.$$prototype.num_suffix_s=V.$$prototype.num_base=V.$$prototype.num_xfrm=V.$$prototype.newline_s=V.$$prototype.eq_begin_s=V.$$prototype.cs_before_block_comment=V.$$prototype.in_kwarg=V.$$prototype.tokens=V.$$prototype.comments=V.$$prototype.diagnostics=V.$$prototype.literal_stack=o,function(e,t){[e].concat(t);e.$attr_accessor("_lex_trans_keys"),e.$private("_lex_trans_keys","_lex_trans_keys=")}(e.get_singleton_class(V),W),K=[[0,0,101,101,103,103,105,105,110,110,69,69,78,78,68,68,95,95,95,95,0,26,0,127,0,127,0,127,0,127,0,45,0,77,0,77,0,92,0,26,0,26,0,45,0,99,0,26,67,99,45,45,0,92,0,77,0,102,0,127,0,127,0,127,0,127,0,45,0,77,0,77,0,92,0,26,0,26,0,45,0,99,0,26,67,99,45,45,0,92,0,77,0,102,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,26,0,127,58,58,58,58,0,127,58,58,60,60,62,62,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,115,115,99,99,117,117,101,101,108,116,101,101,115,115,115,115,105,105,108,108,105,105,108,108,58,58,0,127,10,10,0,127,9,92,10,10,9,92,58,58,98,98,101,101,103,103,105,105,110,110,0,122,61,61,9,92,9,92,9,92,9,92,9,92,10,10,0,127,0,127,61,126,93,93,0,127,0,127,10,10,34,34,10,10,39,39,0,127,10,96,96,96,0,45,0,77,0,77,0,92,0,26,0,26,0,45,0,99,0,26,67,99,45,45,0,92,0,77,0,102,0,127,0,127,0,127,0,127,0,127,0,127,58,58,58,58,0,127,43,57,48,57,48,57,48,57,48,57,115,115,99,99,117,117,101,101,99,99,117,117,101,101,0,127,58,58,9,92,9,92,9,92,9,92,9,92,9,92,60,60,10,10,9,92,9,92,10,10,10,10,10,10,10,10,46,46,0,95,9,32,0,0,10,10,10,10,98,98,9,32,10,10,95,95,0,92,9,32,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,0,45,0,92,0,92,0,0,0,0,0,92,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,36,123,0,127,48,57,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,0,45,0,92,0,92,0,0,0,0,0,92,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,92,9,32,0,26,0,92,0,26,0,35,36,123,0,127,48,57,0,127,0,26,0,35,9,32,36,123,0,127,48,57,0,127,0,32,9,32,65,122,65,122,36,64,0,127,48,57,0,127,0,127,0,127,0,127,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,115,115,38,38,42,42,64,64,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,127,0,127,0,127,0,127,0,127,93,93,10,10,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,124,124,0,127,0,127,9,32,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,38,38,42,42,64,64,60,61,62,62,61,126,61,61,61,62,0,127,93,93,10,10,124,124,0,126,0,127,0,61,9,61,9,61,0,0,9,61,9,62,46,46,46,46,58,58,9,32,0,0,0,127,0,0,9,124,0,0,10,10,10,10,0,0,9,61,58,58,60,60,62,62,9,32,10,10,0,127,102,102,101,101,110,110,104,104,0,127,0,127,0,127,0,0,0,127,10,10,0,123,9,32,10,10,10,10,10,10,0,0,111,111,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,58,61,0,0,61,126,61,61,0,0,0,0,0,0,9,32,61,61,9,32,61,126,10,10,10,10,65,122,0,122,38,61,0,0,42,61,61,61,9,92,9,92,9,92,46,46,46,46,0,26,0,127,0,127,61,61,0,0,61,126,61,62,0,0,0,0,0,0,0,0,61,126,0,127,48,57,38,38,42,42,64,64,60,61,62,62,61,61,61,62,0,127,48,57,0,127,124,124,64,64,60,61,0,0,10,34,10,39,96,96,62,62,61,126,61,62,0,122,0,0,0,127,0,127,0,120,0,0,0,0,48,55,48,55,0,0,0,0,0,92,0,0,0,0,0,0,0,92,45,45,0,0,0,0,0,0,0,92,0,45,0,92,0,92,0,0,0,0,0,92,0,45,10,10,0,92,48,123,48,102,48,102,48,102,0,0,0,125,0,125,0,0,0,125,0,0,0,125,0,125,0,125,0,125,0,0,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,125,0,0,0,0,48,102,0,0,0,127,0,127,0,127,0,0,10,10,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,61,126,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,92,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,9,32,0,0,10,10,10,10,10,10,0,0,0,127,0,127,61,61,0,0,9,32,0,0,61,126,10,10,10,10,0,127,0,127,48,57,61,61,38,61,0,0,0,0,42,61,61,62,46,57,46,46,10,10,48,101,48,95,46,120,48,114,43,57,48,105,102,102,0,0,101,105,0,0,0,0,48,114,48,114,48,114,48,114,105,114,102,102,0,0,101,105,115,115,0,0,0,0,48,114,48,114,48,114,48,114,48,114,48,114,48,114,48,114,46,114,48,114,46,114,48,114,58,58,60,61,62,62,61,126,61,61,61,62,0,127,0,127,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,0,10,10,0,0,0,0,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,9,92,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,127,0,0,61,124,0,0,9,92,9,92,9,92,10,10,46,46,10,10,10,61,10,10,10,101,10,110,10,100,10,10,0]],l(V,"_lex_trans_keys=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("_lex_key_spans"),e.$private("_lex_key_spans","_lex_key_spans=")}(e.get_singleton_class(V),W),K=[[0,1,1,1,1,1,1,1,1,1,27,128,128,128,128,46,78,78,93,27,27,46,100,27,33,1,93,78,103,128,128,128,128,46,78,78,93,27,27,46,100,27,33,1,93,78,103,128,128,128,128,128,128,128,128,128,128,128,128,128,27,128,1,1,128,1,1,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,1,1,1,9,1,1,1,1,1,1,1,1,128,1,128,84,1,84,1,1,1,1,1,1,123,1,84,84,84,84,84,1,128,128,66,1,128,128,1,1,1,1,128,87,1,46,78,78,93,27,27,46,100,27,33,1,93,78,103,128,128,128,128,128,128,1,1,128,15,10,10,10,10,1,1,1,1,1,1,1,128,1,84,84,84,84,84,84,1,1,84,84,1,1,1,1,1,96,24,0,1,1,1,24,1,1,93,24,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,46,93,93,0,0,93,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,88,128,10,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,46,93,93,0,0,93,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,0,0,55,0,93,24,27,93,27,36,88,128,10,128,27,36,24,88,128,10,128,33,24,58,58,29,128,10,128,128,128,128,24,0,66,1,1,128,128,10,1,1,1,1,1,2,1,66,1,2,128,128,128,128,128,128,128,1,1,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,1,128,128,24,1,1,1,0,128,128,1,0,24,0,66,1,1,1,1,1,2,1,66,1,2,128,1,1,1,127,128,62,53,53,0,53,54,1,1,1,24,0,128,0,116,0,1,1,0,53,1,1,1,24,1,128,1,1,1,1,128,128,128,0,128,1,124,24,1,1,1,0,1,0,128,128,24,0,1,1,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,4,0,66,1,0,0,0,24,1,24,66,1,1,58,123,24,0,20,1,84,84,84,1,1,27,128,128,1,0,66,2,0,0,0,0,66,128,10,1,1,1,2,1,1,2,128,10,128,1,1,2,0,25,30,1,1,66,2,123,0,128,128,121,0,0,8,8,0,0,93,0,0,0,93,1,0,0,0,93,46,93,93,0,0,93,46,1,93,76,55,55,55,0,126,126,0,126,0,126,126,126,126,0,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,126,0,0,55,0,128,128,128,0,1,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,66,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,93,24,0,1,1,1,0,128,128,24,0,1,1,1,0,128,128,1,0,24,0,66,1,1,128,128,10,1,24,0,0,20,2,12,1,1,54,48,75,67,15,58,1,0,5,0,0,67,67,67,67,10,1,0,5,1,0,0,67,67,67,67,67,67,67,67,69,67,69,67,1,2,1,66,1,2,128,128,0,128,128,128,128,128,128,0,1,0,0,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,84,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,0,64,0,84,84,84,1,1,1,52,1,92,101,91,1]],l(V,"_lex_key_spans=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("_lex_index_offsets"),e.$private("_lex_index_offsets","_lex_index_offsets=")}(e.get_singleton_class(V),W),K=[[0,0,2,4,6,8,10,12,14,16,18,46,175,304,433,562,609,688,767,861,889,917,964,1065,1093,1127,1129,1223,1302,1406,1535,1664,1793,1922,1969,2048,2127,2221,2249,2277,2324,2425,2453,2487,2489,2583,2662,2766,2895,3024,3153,3282,3411,3540,3669,3798,3927,4056,4185,4314,4443,4471,4600,4602,4604,4733,4735,4737,4739,4741,4870,4999,5128,5257,5386,5515,5644,5773,5902,6031,6160,6289,6418,6547,6676,6805,6934,7063,7065,7067,7069,7071,7081,7083,7085,7087,7089,7091,7093,7095,7097,7226,7228,7357,7442,7444,7529,7531,7533,7535,7537,7539,7541,7665,7667,7752,7837,7922,8007,8092,8094,8223,8352,8419,8421,8550,8679,8681,8683,8685,8687,8816,8904,8906,8953,9032,9111,9205,9233,9261,9308,9409,9437,9471,9473,9567,9646,9750,9879,10008,10137,10266,10395,10524,10526,10528,10657,10673,10684,10695,10706,10717,10719,10721,10723,10725,10727,10729,10731,10860,10862,10947,11032,11117,11202,11287,11372,11374,11376,11461,11546,11548,11550,11552,11554,11556,11653,11678,11679,11681,11683,11685,11710,11712,11714,11808,11833,11922,12051,12062,12191,12313,12314,12315,12324,12333,12334,12335,12429,12430,12431,12432,12526,12528,12529,12530,12531,12625,12672,12766,12860,12861,12862,12956,13003,13005,13099,13176,13232,13288,13344,13345,13472,13599,13600,13727,13728,13855,13982,14109,14236,14237,14364,14491,14618,14745,14872,14999,15e3,15001,15057,15058,15152,15241,15370,15381,15510,15632,15633,15634,15643,15652,15653,15654,15748,15749,15750,15751,15845,15847,15848,15849,15850,15944,15991,16085,16179,16180,16181,16275,16322,16324,16418,16495,16551,16607,16663,16664,16791,16918,16919,17046,17047,17174,17301,17428,17555,17556,17683,17810,17937,18064,18191,18318,18319,18320,18376,18377,18471,18496,18524,18618,18646,18683,18772,18901,18912,19041,19069,19106,19131,19220,19349,19360,19489,19523,19548,19607,19666,19696,19825,19836,19965,20094,20223,20352,20377,20378,20445,20447,20449,20578,20707,20718,20720,20722,20724,20726,20728,20731,20733,20800,20802,20805,20934,21063,21192,21321,21450,21579,21708,21710,21712,21841,21970,22099,22228,22357,22486,22615,22744,22873,23002,23131,23260,23389,23518,23647,23776,23905,24034,24163,24292,24421,24550,24679,24808,24937,25066,25195,25324,25453,25582,25711,25840,25969,26098,26227,26356,26485,26614,26743,26872,27001,27130,27259,27388,27517,27646,27775,27904,28033,28162,28291,28420,28549,28678,28807,28936,29065,29194,29323,29452,29581,29710,29839,29968,30097,30226,30355,30484,30613,30742,30871,31e3,31129,31258,31387,31516,31645,31774,31903,32032,32161,32290,32419,32421,32550,32679,32704,32706,32708,32710,32711,32840,32969,32971,32972,32997,32998,33065,33067,33069,33071,33073,33075,33078,33080,33147,33149,33152,33281,33283,33285,33287,33415,33544,33607,33661,33715,33716,33770,33825,33827,33829,33831,33856,33857,33986,33987,34104,34105,34107,34109,34110,34164,34166,34168,34170,34195,34197,34326,34328,34330,34332,34334,34463,34592,34721,34722,34851,34853,34978,35003,35005,35007,35009,35010,35012,35013,35142,35271,35296,35297,35299,35301,35303,35304,35433,35562,35691,35820,35949,36078,36207,36336,36465,36594,36723,36852,36981,37110,37239,37368,37497,37626,37631,37632,37699,37701,37702,37703,37704,37729,37731,37756,37823,37825,37827,37886,38010,38035,38036,38057,38059,38144,38229,38314,38316,38318,38346,38475,38604,38606,38607,38674,38677,38678,38679,38680,38681,38748,38877,38888,38890,38892,38894,38897,38899,38901,38904,39033,39044,39173,39175,39177,39180,39181,39207,39238,39240,39242,39309,39312,39436,39437,39566,39695,39817,39818,39819,39828,39837,39838,39839,39933,39934,39935,39936,40030,40032,40033,40034,40035,40129,40176,40270,40364,40365,40366,40460,40507,40509,40603,40680,40736,40792,40848,40849,40976,41103,41104,41231,41232,41359,41486,41613,41740,41741,41868,41995,42122,42249,42376,42503,42630,42757,42884,43011,43138,43265,43392,43519,43646,43773,43900,44027,44154,44155,44156,44212,44213,44342,44471,44600,44601,44603,44604,44733,44862,44991,45120,45249,45378,45507,45636,45765,45894,46023,46152,46281,46410,46539,46668,46797,46926,47055,47184,47313,47442,47571,47700,47829,47958,48087,48216,48345,48474,48603,48732,48861,48990,49119,49248,49377,49506,49635,49764,49893,50022,50151,50280,50409,50538,50667,50796,50925,51054,51183,51312,51441,51570,51699,51828,51957,52086,52215,52344,52473,52540,52669,52798,52927,53056,53185,53314,53443,53572,53701,53830,53959,54088,54217,54346,54475,54604,54733,54862,54991,55120,55249,55378,55507,55636,55765,55766,55831,55925,55950,55951,55953,55955,55957,55958,56087,56216,56241,56242,56244,56246,56248,56249,56378,56507,56509,56510,56535,56536,56603,56605,56607,56736,56865,56876,56878,56903,56904,56905,56926,56929,56942,56944,56946,57001,57050,57126,57194,57210,57269,57271,57272,57278,57279,57280,57348,57416,57484,57552,57563,57565,57566,57572,57574,57575,57576,57644,57712,57780,57848,57916,57984,58052,58120,58190,58258,58328,58396,58398,58401,58403,58470,58472,58475,58604,58733,58734,58863,58992,59121,59250,59379,59508,59509,59511,59512,59513,59642,59771,59900,60029,60158,60287,60416,60545,60674,60803,60932,61061,61190,61319,61448,61577,61706,61835,61964,62093,62222,62351,62480,62609,62738,62867,62996,63125,63254,63383,63512,63641,63770,63899,64028,64157,64286,64371,64500,64629,64758,64887,65016,65145,65274,65403,65532,65661,65790,65919,66048,66177,66306,66435,66564,66693,66822,66951,67080,67209,67338,67467,67596,67725,67854,67983,68112,68241,68370,68499,68628,68757,68886,69015,69144,69273,69402,69531,69660,69789,69918,70047,70176,70305,70434,70563,70692,70821,70950,71079,71208,71337,71466,71595,71724,71853,71982,72111,72240,72369,72498,72627,72756,72757,72822,72823,72908,72993,73078,73080,73082,73084,73137,73139,73232,73334,73426]],l(V,"_lex_index_offsets=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("_lex_indicies"),e.$private("_lex_indicies","_lex_indicies=")}(e.get_singleton_class(V),W), +K=[[1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,9,0,10,0,0,0,10,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,0,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,12,14,12,14,14,12,12,14,14,14,15,14,14,16,16,16,16,16,16,16,16,16,16,14,14,14,14,14,14,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,14,12,12,13,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,14,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,12,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,14,12,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,12,12,12,12,12,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,18,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,17,17,17,17,17,17,17,17,17,17,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,13,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,20,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,24,22,19,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,25,22,19,26,26,26,19,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,19,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,26,19,29,29,29,19,29,29,29,29,29,30,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,19,29,19,29,29,29,19,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,19,29,19,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,31,20,19,32,32,32,19,32,32,32,32,32,33,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,19,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,34,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,35,32,32,32,32,32,32,36,32,19,32,32,32,19,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,19,32,37,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,38,19,38,19,19,39,39,39,19,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,19,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,41,39,19,22,22,22,19,22,22,22,22,22,23,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,19,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,25,22,19,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,19,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,43,43,43,43,42,42,42,42,42,42,42,43,43,43,43,43,43,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,42,43,43,43,43,43,43,42,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,46,46,44,46,44,46,46,44,44,46,46,46,47,46,46,48,48,48,48,48,48,48,48,48,48,46,46,46,46,46,46,46,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,44,46,44,44,45,46,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,44,44,44,46,44,45,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,46,46,46,46,46,46,46,46,46,46,44,44,44,44,44,44,44,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,44,44,44,44,46,44,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,46,44,44,44,44,44,46,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,49,49,49,49,49,49,49,49,49,49,44,44,44,44,44,44,50,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,44,44,44,44,45,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,44,44,44,44,44,45,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,44,49,49,49,49,49,49,49,49,49,49,44,44,44,44,44,44,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,44,44,44,44,45,44,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,44,44,44,44,44,45,51,52,52,52,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,53,52,51,54,54,54,51,54,54,54,54,54,55,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,51,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,56,54,51,54,54,54,51,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,51,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,57,54,51,58,58,58,51,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,51,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,59,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,60,58,51,61,61,61,51,61,61,61,61,61,62,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,51,61,51,61,61,61,51,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,61,51,61,51,52,52,52,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,51,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,63,52,51,64,64,64,51,64,64,64,64,64,65,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,51,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,66,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,67,64,64,64,64,64,64,68,64,51,64,64,64,51,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,64,51,64,69,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,51,70,51,70,51,51,71,71,71,51,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,51,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,73,71,51,54,54,54,51,54,54,54,54,54,55,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,51,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,54,57,54,51,74,74,74,51,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,51,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,75,75,75,75,74,74,74,74,74,74,74,75,75,75,75,75,75,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,74,75,75,75,75,75,75,74,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,78,78,76,78,76,78,78,76,76,78,78,78,79,78,78,80,80,80,80,80,80,80,80,80,80,78,78,78,78,78,78,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,78,76,76,77,78,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,76,76,78,76,77,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,78,78,78,78,78,78,78,78,78,78,76,76,76,76,76,76,76,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,76,76,76,76,78,76,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,78,76,76,76,76,76,78,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,81,81,81,81,81,81,81,81,81,81,76,76,76,76,76,76,82,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,76,76,76,77,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,76,76,76,76,77,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,76,81,81,81,81,81,81,81,81,81,81,76,76,76,76,76,76,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,76,76,76,77,76,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,76,76,76,76,76,77,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,85,85,83,85,83,85,85,83,83,85,85,85,86,85,85,87,87,87,87,87,87,87,87,87,87,85,85,85,85,85,85,85,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,83,85,83,83,84,85,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,83,83,83,85,83,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,85,85,85,85,85,85,85,85,85,85,83,83,83,83,83,83,83,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,83,83,83,83,85,83,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,85,83,83,83,83,83,85,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,88,88,88,88,88,88,88,88,88,88,83,83,83,83,83,83,89,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,83,83,83,83,84,83,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,83,83,83,83,83,84,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,83,88,88,88,88,88,88,88,88,88,88,83,83,83,83,83,83,83,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,83,83,83,83,84,83,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,83,83,83,83,83,84,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,91,91,92,91,92,91,91,92,92,91,91,91,93,91,91,94,94,94,94,94,94,94,94,94,94,91,91,91,91,91,91,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,92,91,92,92,90,91,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,92,92,92,91,92,90,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,91,91,91,91,91,91,91,91,91,91,92,92,92,92,92,92,92,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,92,92,92,92,91,92,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,92,92,92,92,92,91,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,95,95,95,95,95,95,95,95,95,95,92,92,92,92,92,92,96,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,92,92,92,92,95,92,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,92,92,92,92,92,95,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,97,97,97,97,97,97,97,97,97,97,92,92,92,92,92,92,92,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,92,92,92,92,97,92,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,92,92,92,92,92,97,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,98,99,99,99,99,99,99,99,99,99,99,98,98,98,98,98,98,98,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,98,98,98,98,99,98,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,98,98,98,98,98,99,100,101,101,101,100,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,100,101,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,102,104,102,102,102,102,102,102,102,102,102,102,102,102,102,102,103,103,103,103,103,103,103,103,103,103,105,102,102,102,102,104,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,102,102,102,103,102,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,102,102,102,102,102,103,105,102,102,106,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,109,107,107,107,107,107,107,107,107,107,107,107,107,107,107,108,108,108,108,108,108,108,108,108,108,110,107,107,107,107,109,107,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,107,107,107,108,107,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,107,107,107,107,107,108,110,107,112,111,113,111,114,111,111,111,111,111,111,111,111,111,111,116,111,116,116,116,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,116,111,111,111,111,117,118,111,119,111,120,121,122,123,124,117,111,111,111,111,111,111,111,111,111,111,125,111,126,122,127,128,111,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,129,130,122,131,115,111,115,115,115,115,115,115,115,115,132,115,115,115,115,115,115,115,115,133,115,115,134,115,135,115,115,115,136,137,111,131,111,115,111,111,111,111,111,111,111,111,111,138,111,138,138,138,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,111,138,111,111,111,111,139,140,111,141,111,142,143,144,145,146,139,111,111,111,111,111,111,111,111,111,111,147,111,148,144,149,150,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,151,152,144,113,108,111,108,108,108,108,108,108,108,108,153,108,108,108,108,108,108,108,108,154,108,108,155,108,156,108,108,108,157,158,111,113,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,159,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,160,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,161,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,162,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,163,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,159,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,108,108,108,108,108,164,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,108,108,108,165,108,108,108,108,108,108,108,166,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,167,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,168,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,159,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,169,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,108,108,108,159,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,170,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,171,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,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,111,111,111,111,111,111,111,109,111,111,111,111,111,111,111,111,111,111,111,111,111,111,108,108,108,108,108,108,108,108,108,108,110,111,111,111,111,109,111,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,108,111,108,108,108,108,108,108,108,108,108,108,108,163,108,108,108,108,108,108,108,108,108,108,108,108,108,108,111,111,111,111,111,108,173,172,174,172,175,172,144,172,176,172,172,172,172,172,172,172,177,172,178,172,179,172,144,172,180,172,144,172,181,172,175,172,183,182,184,184,184,184,184,184,184,184,184,186,184,186,186,186,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,186,184,184,184,184,184,184,184,187,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,184,188,184,184,185,184,185,185,185,189,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,184,184,184,184,184,185,190,184,184,184,184,184,184,184,184,184,184,192,184,192,192,192,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,192,184,184,184,184,184,184,184,193,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,184,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,184,194,184,184,191,184,191,191,191,195,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,191,184,184,184,184,184,191,197,196,197,197,197,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,197,196,196,196,196,196,196,196,198,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,199,196,200,196,201,196,201,201,201,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,201,196,196,196,196,196,196,196,202,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,203,196,204,205,207,206,208,206,209,206,210,206,211,206,212,213,213,213,212,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,212,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,213,213,213,213,213,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,213,215,204,216,217,216,216,216,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,216,204,204,218,204,204,204,204,204,204,204,204,204,204,204,204,219,219,219,219,219,219,219,219,219,219,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,220,204,221,222,221,221,221,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,221,204,204,223,204,204,204,204,204,204,204,204,204,204,204,204,224,224,224,224,224,224,224,224,224,224,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,225,204,227,228,227,227,227,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,227,226,226,229,226,226,226,226,226,226,226,226,226,226,226,226,230,230,230,230,230,230,230,230,230,230,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,226,231,226,233,234,233,233,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,235,232,232,232,232,232,232,232,232,232,232,232,232,236,236,236,236,236,236,236,236,236,236,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,237,232,233,238,233,233,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,235,232,232,232,232,232,232,232,232,232,232,232,232,236,236,236,236,236,236,236,236,236,236,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,237,232,217,204,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,241,241,239,241,239,241,241,239,239,241,241,241,242,241,241,243,243,243,243,243,243,243,243,243,243,241,241,241,241,241,241,241,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,239,241,239,239,240,241,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,239,239,239,241,239,240,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,241,241,241,241,241,241,241,241,241,241,239,239,239,239,239,239,239,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,239,239,239,239,241,239,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,241,239,239,239,239,239,241,244,241,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,241,239,244,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,246,239,239,239,239,247,239,239,239,239,239,248,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,215,239,239,239,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,239,239,239,239,245,249,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,239,239,239,248,239,245,251,251,251,251,251,251,251,251,251,251,252,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,251,250,250,250,250,250,250,250,250,250,250,251,251,251,251,251,251,251,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,251,251,251,251,250,251,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,250,251,251,251,251,251,250,254,253,257,256,252,251,257,258,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,246,239,239,239,239,247,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,239,239,239,239,245,249,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,245,239,239,239,239,239,245,260,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,259,257,259,257,260,261,262,262,262,261,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,261,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,263,262,261,264,264,264,261,264,264,264,264,264,265,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,261,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,266,264,261,264,264,264,261,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,261,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,267,264,261,268,268,268,261,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,261,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,270,268,261,271,271,271,261,271,271,271,271,271,272,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,261,271,261,271,271,271,261,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,271,261,271,261,262,262,262,261,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,261,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,273,262,261,274,274,274,261,274,274,274,274,274,275,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,261,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,276,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,277,274,274,274,274,274,274,278,274,261,274,274,274,261,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,274,261,274,279,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,261,280,261,280,261,261,281,281,281,261,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,261,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,282,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,283,281,261,264,264,264,261,264,264,264,264,264,265,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,261,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,264,267,264,261,284,284,284,261,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,261,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,285,285,285,285,285,285,285,285,285,285,284,284,284,284,284,284,284,285,285,285,285,285,285,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,285,285,285,285,285,285,284,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,287,204,204,204,204,204,204,204,204,204,204,204,204,204,204,286,286,286,286,286,286,286,286,286,286,288,204,204,289,204,287,204,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,204,204,204,204,286,204,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,204,204,204,204,204,286,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,287,239,239,239,239,239,239,239,239,239,239,239,239,239,239,286,286,286,286,286,286,286,286,286,286,288,239,239,289,239,287,239,286,286,286,286,286,286,290,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,239,239,239,239,286,239,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,239,239,239,239,239,286,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,287,239,239,239,239,239,239,239,239,239,239,239,239,239,239,286,286,286,286,286,286,286,286,286,286,288,239,239,289,239,287,239,286,286,286,286,286,286,286,286,291,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,239,239,239,239,286,239,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,239,239,239,239,239,286,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,287,239,239,239,239,239,239,239,239,239,239,239,239,239,239,286,286,286,286,286,286,286,286,286,286,288,239,239,289,239,287,239,286,286,286,286,286,286,286,286,286,286,286,286,286,292,286,286,286,286,286,286,286,286,286,286,286,286,239,239,239,239,286,239,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,239,239,239,239,239,286,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,287,239,239,239,239,239,239,239,239,239,239,239,239,239,239,286,286,286,286,286,286,286,286,286,286,288,239,239,289,239,287,239,286,286,286,292,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,239,239,239,239,286,239,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,239,239,239,239,239,286,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,293,295,293,293,293,293,293,293,293,293,293,293,293,293,293,293,294,294,294,294,294,294,294,294,294,294,296,293,293,293,293,295,293,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,293,293,293,293,294,293,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,293,293,293,293,293,294,296,293,293,297,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,299,299,299,299,299,299,299,299,299,299,298,298,298,298,298,298,298,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,298,298,298,298,299,298,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,299,298,298,298,298,298,299,301,300,301,300,300,302,302,302,302,302,302,302,302,302,302,300,302,302,302,302,302,302,302,302,302,302,300,303,303,303,303,303,303,303,303,303,303,300,305,305,305,305,305,305,305,305,305,305,304,306,306,306,306,306,306,306,306,306,306,304,308,307,309,307,310,307,311,307,313,312,314,312,315,312,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,316,316,316,316,316,316,316,316,316,316,298,298,298,298,298,298,298,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,298,298,298,298,316,298,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,298,298,298,298,298,316,317,304,318,319,318,318,318,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,318,304,304,320,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,321,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,322,304,323,324,323,323,323,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,323,304,304,325,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,326,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,327,304,329,330,329,329,329,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,329,328,328,331,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,332,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,328,333,328,335,336,335,335,335,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,335,334,334,337,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,338,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,339,334,335,336,335,335,335,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,335,334,334,337,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,340,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,339,334,335,341,335,335,335,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,335,334,334,337,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,338,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,339,334,342,304,319,304,344,345,344,344,344,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,344,343,343,346,343,343,347,343,343,343,343,343,343,343,348,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,343,349,343,351,345,351,351,351,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,351,350,350,346,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,350,349,350,354,353,356,355,357,352,358,352,359,343,361,360,360,360,361,360,360,360,360,362,363,362,362,362,360,360,360,360,360,360,360,360,360,360,360,360,361,360,360,360,360,360,362,360,360,364,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,365,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,360,366,360,360,367,360,362,368,362,362,362,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,368,362,368,369,370,371,372,373,375,374,377,378,377,377,377,376,376,376,376,376,376,376,376,376,376,376,376,376,376,376,376,376,376,377,376,363,374,379,374,381,380,380,380,381,380,380,380,380,382,383,382,382,382,380,380,380,380,380,380,380,380,380,380,380,380,381,380,380,380,380,380,382,380,380,384,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,380,385,380,382,386,382,382,382,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,386,382,386,388,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,389,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,387,390,387,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,391,13,13,13,13,13,13,13,13,13,13,391,391,391,391,391,391,391,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,391,391,391,391,13,391,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,391,391,391,391,391,13,16,16,16,16,16,16,16,16,16,16,391,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,392,13,13,13,13,13,13,13,13,13,13,392,392,392,392,392,392,392,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,392,392,392,392,17,392,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,392,392,392,392,392,17,395,394,394,394,395,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,395,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,396,396,396,396,396,396,396,396,394,394,394,394,394,394,394,394,394,394,394,397,394,394,394,394,394,394,394,394,394,398,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,399,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,394,400,394,394,401,394,402,403,405,405,405,405,405,405,405,405,404,406,406,406,406,406,406,406,406,404,404,407,407,39,39,39,407,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,407,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,408,39,409,410,411,411,39,39,39,411,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,411,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,40,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,39,412,39,38,411,413,414,415,415,26,26,26,415,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,415,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,416,26,411,20,20,20,411,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,411,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,417,20,407,26,26,26,407,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,407,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,26,407,418,418,418,407,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,407,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,419,418,420,421,421,418,418,418,421,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,421,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,418,422,418,421,20,20,20,421,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,421,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,417,20,423,421,421,26,26,26,421,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,421,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,28,26,425,425,425,425,425,425,425,425,425,425,424,424,424,424,424,424,424,425,425,425,425,425,425,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,425,425,425,425,425,425,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,426,424,427,427,427,427,427,427,427,427,427,427,424,424,424,424,424,424,424,427,427,427,427,427,427,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,427,427,427,427,427,427,424,428,428,428,428,428,428,428,428,428,428,424,424,424,424,424,424,424,428,428,428,428,428,428,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,428,428,428,428,428,428,424,429,429,429,429,429,429,429,429,429,429,424,424,424,424,424,424,424,429,429,429,429,429,429,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,424,429,429,429,429,429,429,424,430,433,432,432,432,433,432,432,432,432,434,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,433,432,432,432,432,432,434,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,435,435,435,435,435,435,435,435,435,435,432,432,432,432,432,432,432,435,435,435,435,435,435,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,435,435,435,435,435,435,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,436,432,433,432,432,432,433,432,432,432,432,431,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,433,432,432,432,432,432,431,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,437,437,437,437,437,437,437,437,437,437,432,432,432,432,432,432,432,437,437,437,437,437,437,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,437,437,437,437,437,437,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,432,438,432,431,433,437,437,437,433,437,437,437,437,431,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,433,437,437,437,437,437,431,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437,431,437,439,433,440,440,440,433,440,440,440,440,434,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,434,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,435,435,435,435,435,435,435,435,435,435,440,440,440,440,440,440,440,435,435,435,435,435,435,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,435,435,435,435,435,435,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,431,440,433,440,440,440,433,440,440,440,440,431,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,431,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,437,437,437,437,437,437,437,437,437,437,440,440,440,440,440,440,440,437,437,437,437,437,437,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,437,437,437,437,437,437,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,433,440,440,440,433,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,442,442,442,442,442,442,442,442,442,442,440,440,440,440,440,440,440,442,442,442,442,442,442,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,442,442,442,442,442,442,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,443,440,433,440,440,440,433,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,435,435,435,435,435,435,435,435,435,435,440,440,440,440,440,440,440,435,435,435,435,435,435,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,435,435,435,435,435,435,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,443,440,444,433,440,440,440,433,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,445,445,445,445,445,445,445,445,445,445,440,440,440,440,440,440,440,445,445,445,445,445,445,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,445,445,445,445,445,445,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,443,440,433,440,440,440,433,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,446,446,446,446,446,446,446,446,446,446,440,440,440,440,440,440,440,446,446,446,446,446,446,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,446,446,446,446,446,446,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,443,440,433,440,440,440,433,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,447,447,447,447,447,447,447,447,447,447,440,440,440,440,440,440,440,447,447,447,447,447,447,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,447,447,447,447,447,447,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,443,440,433,440,440,440,433,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,448,448,448,448,448,448,448,448,448,448,440,440,440,440,440,440,440,448,448,448,448,448,448,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,448,448,448,448,448,448,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,443,440,433,440,440,440,433,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,441,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,449,449,449,449,449,449,449,449,449,449,440,440,440,440,440,440,440,449,449,449,449,449,449,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,449,449,449,449,449,449,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,443,440,433,440,440,440,433,440,440,440,440,431,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,433,440,440,440,440,440,431,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,449,449,449,449,449,449,449,449,449,449,440,440,440,440,440,440,440,449,449,449,449,449,449,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,449,449,449,449,449,449,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,440,431,440,450,451,453,453,453,453,453,453,453,453,453,453,452,452,452,452,452,452,452,453,453,453,453,453,453,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,452,453,453,453,453,453,453,452,452,455,454,454,454,455,454,454,454,454,454,456,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,455,454,454,454,454,454,454,454,454,457,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,454,458,454,460,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,461,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,462,459,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,463,45,45,45,45,45,45,45,45,45,45,463,463,463,463,463,463,463,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,463,463,463,463,45,463,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,463,463,463,463,463,45,48,48,48,48,48,48,48,48,48,48,463,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,464,45,45,45,45,45,45,45,45,45,45,464,464,464,464,464,464,464,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,464,464,464,464,49,464,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,49,464,464,464,464,464,49,467,466,466,466,467,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,467,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,468,468,468,468,468,468,468,468,466,466,466,466,466,466,466,466,466,466,466,469,466,466,466,466,466,466,466,466,466,470,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,471,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,466,472,466,466,473,466,474,475,477,477,477,477,477,477,477,477,476,478,478,478,478,478,478,478,478,476,476,479,479,71,71,71,479,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,479,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,480,71,481,482,483,483,71,71,71,483,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,483,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,72,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,71,484,71,70,483,485,486,487,487,58,58,58,487,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,487,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,59,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,488,58,483,52,52,52,483,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,483,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,489,52,479,58,58,58,479,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,479,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,59,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,60,58,479,490,490,490,479,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,479,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,491,490,492,493,493,490,490,490,493,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,493,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,490,494,490,493,52,52,52,493,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,493,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,52,489,52,495,493,493,58,58,58,493,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,493,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,59,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,58,60,58,497,497,497,497,497,497,497,497,497,497,496,496,496,496,496,496,496,497,497,497,497,497,497,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,497,497,497,497,497,497,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,498,496,499,499,499,499,499,499,499,499,499,499,496,496,496,496,496,496,496,499,499,499,499,499,499,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,499,499,499,499,499,499,496,500,500,500,500,500,500,500,500,500,500,496,496,496,496,496,496,496,500,500,500,500,500,500,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,500,500,500,500,500,500,496,501,501,501,501,501,501,501,501,501,501,496,496,496,496,496,496,496,501,501,501,501,501,501,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,496,501,501,501,501,501,501,496,502,505,504,504,504,505,504,504,504,504,506,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,505,504,504,504,504,504,506,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,507,507,507,507,507,507,507,507,507,507,504,504,504,504,504,504,504,507,507,507,507,507,507,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,507,507,507,507,507,507,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,508,504,505,504,504,504,505,504,504,504,504,503,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,505,504,504,504,504,504,503,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,509,509,509,509,509,509,509,509,509,509,504,504,504,504,504,504,504,509,509,509,509,509,509,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,509,509,509,509,509,509,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,504,510,504,503,505,509,509,509,505,509,509,509,509,503,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,505,509,509,509,509,509,503,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,503,509,511,505,512,512,512,505,512,512,512,512,506,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,506,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,507,507,507,507,507,507,507,507,507,507,512,512,512,512,512,512,512,507,507,507,507,507,507,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,507,507,507,507,507,507,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,503,512,505,512,512,512,505,512,512,512,512,503,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,503,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,509,509,509,509,509,509,509,509,509,509,512,512,512,512,512,512,512,509,509,509,509,509,509,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,509,509,509,509,509,509,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,505,512,512,512,505,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,514,514,514,514,514,514,514,514,514,514,512,512,512,512,512,512,512,514,514,514,514,514,514,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,514,514,514,514,514,514,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,515,512,505,512,512,512,505,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,507,507,507,507,507,507,507,507,507,507,512,512,512,512,512,512,512,507,507,507,507,507,507,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,507,507,507,507,507,507,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,515,512,516,505,512,512,512,505,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,517,517,517,517,517,517,517,517,517,517,512,512,512,512,512,512,512,517,517,517,517,517,517,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,517,517,517,517,517,517,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,515,512,505,512,512,512,505,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,518,518,518,518,518,518,518,518,518,518,512,512,512,512,512,512,512,518,518,518,518,518,518,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,518,518,518,518,518,518,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,515,512,505,512,512,512,505,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,519,519,519,519,519,519,519,519,519,519,512,512,512,512,512,512,512,519,519,519,519,519,519,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,519,519,519,519,519,519,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,515,512,505,512,512,512,505,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,520,520,520,520,520,520,520,520,520,520,512,512,512,512,512,512,512,520,520,520,520,520,520,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,520,520,520,520,520,520,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,515,512,505,512,512,512,505,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,513,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,521,521,521,521,521,521,521,521,521,521,512,512,512,512,512,512,512,521,521,521,521,521,521,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,521,521,521,521,521,521,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,515,512,505,512,512,512,505,512,512,512,512,503,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,505,512,512,512,512,512,503,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,521,521,521,521,521,521,521,521,521,521,512,512,512,512,512,512,512,521,521,521,521,521,521,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,521,521,521,521,521,521,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,512,503,512,522,523,525,525,525,525,525,525,525,525,525,525,524,524,524,524,524,524,524,525,525,525,525,525,525,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,525,525,525,525,525,525,524,524,527,526,526,526,527,526,526,526,526,528,529,528,528,528,526,526,526,526,526,526,526,526,526,526,526,526,527,526,526,526,526,526,528,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,530,526,528,531,528,528,528,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,528,531,532,533,533,533,532,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,532,533,535,534,534,534,535,534,534,534,534,534,536,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,535,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,534,537,534,538,539,539,539,538,539,539,539,539,539,540,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,538,539,542,541,541,541,542,541,541,541,541,541,543,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,542,541,541,541,541,541,541,541,541,544,541,546,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,547,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,548,545,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549,77,77,77,77,77,77,77,77,77,77,549,549,549,549,549,549,549,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,549,549,549,549,77,549,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,77,549,549,549,549,549,77,80,80,80,80,80,80,80,80,80,80,549,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,77,77,77,77,77,77,77,77,77,77,550,550,550,550,550,550,550,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,550,550,550,550,81,550,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,81,550,550,550,550,550,81,552,551,551,551,552,551,551,551,551,551,553,551,551,551,551,551,551,551,551,551,551,551,551,551,551,551,552,551,555,554,554,554,555,554,554,554,554,556,557,556,556,556,554,554,554,554,554,554,554,554,554,554,554,554,555,554,554,554,554,554,556,554,554,558,554,556,559,556,556,556,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,556,559,561,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,562,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,560,563,560,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,564,84,84,84,84,84,84,84,84,84,84,564,564,564,564,564,564,564,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,564,564,564,564,84,564,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,84,564,564,564,564,564,84,87,87,87,87,87,87,87,87,87,87,564,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,84,84,84,84,84,84,84,84,84,84,565,565,565,565,565,565,565,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,565,565,565,565,88,565,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,88,565,565,565,565,565,88,567,566,566,566,567,566,566,566,566,568,569,568,568,568,566,566,566,566,566,566,566,566,566,566,566,566,567,566,566,566,566,566,568,566,568,570,568,568,568,570,570,570,570,570,570,570,570,570,570,570,570,570,570,570,570,570,570,568,570,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,571,571,571,571,571,571,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,571,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,573,573,573,573,573,573,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,572,573,574,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,92,575,92,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,576,90,90,90,90,90,90,90,90,90,90,576,576,576,576,576,576,576,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,576,576,576,576,90,576,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,90,576,576,576,576,576,90,94,94,94,94,94,94,94,94,94,94,576,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,577,95,95,95,95,95,95,95,95,95,95,577,577,577,577,577,577,577,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,577,577,577,577,95,577,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,577,577,577,577,577,95,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,578,97,97,97,97,97,97,97,97,97,97,578,578,578,578,578,578,578,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,578,578,578,578,97,578,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,97,578,578,578,578,578,97,580,581,581,581,580,581,581,581,581,582,583,582,582,582,581,581,581,581,581,581,581,581,581,581,581,581,580,581,581,581,581,581,582,584,581,585,586,587,588,581,581,581,589,590,581,590,581,591,581,581,581,581,581,581,581,581,581,581,592,581,593,594,595,581,581,596,597,596,596,598,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,599,600,581,591,601,591,602,603,604,605,606,607,579,579,608,579,579,579,609,610,611,579,579,612,613,614,615,579,616,579,617,579,581,618,581,590,581,579,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,620,619,619,619,619,619,619,619,619,619,619,619,619,619,619,579,579,579,579,579,579,579,579,579,579,619,619,619,620,619,620,619,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,619,619,619,619,579,619,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,619,619,619,619,619,579,582,621,582,582,582,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,621,582,621,622,591,623,623,591,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,591,623,624,625,626,627,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,99,99,628,99,628,99,99,628,628,99,99,99,630,99,99,631,631,631,631,631,631,631,631,631,631,99,99,99,99,99,99,99,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,628,99,628,628,629,99,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,628,628,628,99,628,629,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,632,629,629,629,629,629,629,629,629,629,629,632,632,632,632,632,632,632,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,632,632,632,632,629,632,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,629,632,632,632,632,632,629,631,631,631,631,631,631,631,631,631,631,632,633,623,591,623,591,623,591,623,635,634,591,636,623,591,623,637,591,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,628,591,628,591,623,591,591,623,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,619,620,619,619,619,619,619,619,619,619,619,619,619,619,619,619,596,596,596,596,596,596,596,596,596,596,619,619,619,620,619,620,619,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,619,619,619,619,596,619,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,619,619,619,619,619,596,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,620,638,638,638,638,638,638,638,638,638,638,638,638,638,638,596,596,596,596,596,596,596,596,596,596,638,638,638,620,638,620,638,596,596,596,596,639,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,596,638,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,638,596,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,620,638,638,638,638,638,638,638,638,638,638,638,638,638,638,596,596,596,596,596,596,596,596,596,596,638,638,638,620,638,620,638,596,596,596,596,596,596,640,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,596,638,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,638,596,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,620,638,638,638,638,638,638,638,638,638,638,638,638,638,638,596,596,596,596,596,596,596,596,596,596,638,638,638,620,638,620,638,596,596,596,596,596,596,596,596,641,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,596,638,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,638,596,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,620,638,638,638,638,638,638,638,638,638,638,638,638,638,638,596,596,596,596,596,596,596,596,596,596,638,638,638,620,638,620,638,596,596,596,596,596,596,596,596,596,596,596,596,596,642,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,596,638,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,638,596,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,620,638,638,638,638,638,638,638,638,638,638,638,638,638,638,596,596,596,596,596,596,596,596,596,596,638,638,638,620,638,620,638,596,596,596,596,596,596,596,596,596,596,596,596,596,643,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,596,638,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,638,596,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,620,638,638,638,638,638,638,638,638,638,638,638,638,638,638,596,596,596,596,596,596,596,596,596,596,638,638,638,620,638,620,638,596,596,596,642,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,596,638,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,596,638,638,638,638,638,596,637,628,583,628,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,645,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,646,647,579,579,579,579,579,648,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,649,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,650,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,651,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,652,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,653,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,654,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,655,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,656,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,657,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,658,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,659,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,655,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,660,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,659,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,661,579,662,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,663,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,664,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,657,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,665,579,579,579,579,579,579,579,579,579,579,579,579,666,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,667,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,668,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,669,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,670,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,671,579,579,579,579,579,579,579,579,579,579,672,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,673,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,674,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,664,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,675,579,579,579,579,579,579,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,676,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,677,620,677,677,677,677,677,677,677,677,677,677,677,677,677,677,579,579,579,579,579,579,579,579,579,579,677,677,677,620,677,620,677,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,677,677,677,677,579,677,579,579,579,579,579,579,579,579,678,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,677,677,677,677,677,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,679,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,680,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,681,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,682,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,683,579,684,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,685,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,657,579,579,579,686,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,579,579,579,687,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,688,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,673,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,689,579,579,579,579,579,579,579,579,579,579,579,579,579,611,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,671,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,657,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,657,579,579,579,579,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,690,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,691,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,692,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,673,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,693,579,579,579,694,579,579,579,579,579,695,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,695,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,657,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,696,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,697,579,579,579,579,579,579,579,579,579,579,579,579,579,579,698,699,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,657,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,700,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,673,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,701,579,579,702,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,657,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,668,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,703,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,704,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,686,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,705,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,611,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,706,579,579,579,579,579,579,579,579,579,700,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,668,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,579,579,707,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,708,579,579,579,579,579,579,579,709,579,579,579,579,579,579,579,710,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,686,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,674,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,694,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,711,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,668,579,579,579,692,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,712,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,713,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,644,620,644,644,644,644,644,644,644,644,644,644,644,644,644,644,579,579,579,579,579,579,579,579,579,579,644,644,644,620,644,620,644,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,579,644,579,579,579,579,579,579,579,579,579,579,579,662,579,579,579,579,579,579,579,579,579,579,579,579,579,579,644,644,644,644,644,579,591,623,715,716,716,716,715,716,716,716,716,717,716,717,717,717,716,716,716,716,716,716,716,716,716,716,716,716,715,716,716,716,716,716,717,716,716,718,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,716,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,716,719,716,716,714,716,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,714,716,716,716,716,716,714,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,720,104,720,720,720,720,720,720,720,720,720,720,720,720,720,720,103,103,103,103,103,103,103,103,103,103,105,720,720,720,720,104,720,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,720,720,720,720,103,720,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,103,720,720,720,720,720,103,717,721,717,717,717,721,721,721,721,721,721,721,721,721,721,721,721,721,721,721,721,721,721,717,721,722,723,724,725,726,720,727,729,730,730,730,729,730,730,730,730,731,732,731,731,731,730,730,730,730,730,730,730,730,730,730,730,730,729,730,730,730,730,730,731,733,730,734,730,735,736,730,730,730,737,738,730,738,730,735,730,730,730,730,730,730,730,730,730,730,730,730,739,740,741,730,730,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,743,744,730,735,728,735,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,730,745,730,738,730,728,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,746,747,746,746,746,746,746,746,746,746,746,746,746,746,746,746,728,728,728,728,728,728,728,728,728,728,746,746,746,746,746,747,746,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,746,746,746,746,728,746,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,746,746,746,746,746,728,749,748,750,731,751,731,731,731,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,731,751,752,735,753,753,735,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,753,735,753,754,755,756,757,735,753,735,753,735,753,735,758,753,735,753,760,735,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,759,735,759,735,753,735,735,753,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,761,747,761,761,761,761,761,761,761,761,761,761,761,761,761,761,742,742,742,742,742,742,742,742,742,742,761,761,761,761,761,747,761,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,761,761,761,761,742,761,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,742,761,761,761,761,761,742,760,759,732,759,735,753,763,762,762,762,763,762,762,762,762,764,765,764,764,764,762,762,762,762,762,762,762,762,762,762,762,762,763,762,762,762,762,762,764,762,762,766,762,113,767,762,768,762,769,113,144,770,146,113,762,762,762,762,762,762,762,762,762,762,771,762,772,144,773,774,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,762,144,775,144,113,762,762,762,762,762,762,762,762,762,762,776,762,762,762,762,762,762,762,762,777,762,762,778,762,779,762,762,762,157,158,762,113,762,780,780,780,780,780,780,780,780,780,764,780,764,764,764,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,780,764,780,780,780,780,139,140,780,141,780,142,143,144,145,146,139,780,780,780,780,780,780,780,780,780,780,147,780,148,144,149,150,780,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,151,152,144,113,108,780,108,108,108,108,108,108,108,108,153,108,108,108,108,108,108,108,108,154,108,108,155,108,156,108,108,108,157,158,780,113,780,108,781,782,782,782,781,782,782,782,782,144,783,144,144,144,782,782,782,782,782,782,782,782,782,782,782,782,781,782,782,782,782,782,144,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,144,782,144,783,144,144,144,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,144,107,107,107,107,107,113,107,107,107,107,107,107,107,144,107,107,107,107,107,107,107,107,107,107,107,107,107,107,144,107,144,783,144,144,144,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,144,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,144,107,784,144,783,144,144,144,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,144,785,785,785,785,785,785,785,785,785,786,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,785,144,785,144,783,144,144,144,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,144,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,107,144,144,107,787,781,144,781,789,788,791,792,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,791,790,793,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,109,781,781,781,781,781,781,781,781,781,781,781,781,781,781,108,108,108,108,108,108,108,108,108,108,110,781,781,781,781,109,781,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,781,781,781,781,108,781,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,108,781,781,781,781,781,108,794,144,783,144,144,144,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,144,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,144,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,113,781,795,796,797,798,799,800,144,783,144,144,144,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,144,781,781,781,781,781,781,781,781,781,113,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,144,781,144,788,113,801,113,801,802,803,802,802,802,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,802,790,804,801,805,805,805,805,805,805,805,805,805,116,805,116,116,116,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,116,805,805,805,805,117,118,805,119,805,120,121,122,123,124,117,805,805,805,805,805,805,805,805,805,805,125,805,126,122,127,128,805,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,115,129,130,122,131,115,805,115,115,115,115,115,115,115,115,132,115,115,115,115,115,115,115,115,133,115,115,134,115,135,115,115,115,136,137,805,131,805,115,144,801,806,801,807,801,808,801,809,183,183,183,809,183,183,183,183,810,183,810,810,810,183,183,183,183,183,183,183,183,183,183,183,183,809,183,183,183,183,183,810,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,183,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,183,811,183,183,185,183,185,185,185,189,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,183,183,183,183,183,185,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,182,812,182,182,182,182,182,182,182,182,182,182,182,182,182,182,185,185,185,185,185,185,185,185,185,185,183,182,182,182,182,812,182,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,182,182,182,182,185,182,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,182,182,182,182,182,185,813,813,813,813,813,813,813,813,813,186,813,186,186,186,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,186,813,813,813,813,813,813,813,187,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,813,188,813,813,185,813,185,185,185,189,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,813,813,813,813,813,185,814,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,812,813,813,813,813,813,813,813,813,813,813,813,813,813,813,185,185,185,185,185,185,185,185,185,185,183,813,813,813,813,812,813,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,185,813,813,813,813,185,813,185,185,185,185,185,185,185,185,185,185,185,185,185,185,815,185,185,185,185,185,185,185,185,185,185,185,813,813,813,813,813,185,190,813,817,816,816,816,817,816,816,816,816,818,816,818,818,818,816,816,816,816,816,816,816,816,816,816,816,816,817,816,816,816,816,816,818,816,816,819,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,820,816,816,816,816,816,816,816,821,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,816,822,816,818,823,818,818,818,823,823,823,823,823,823,823,823,823,823,823,823,823,823,823,823,823,823,818,823,824,825,826,827,829,828,830,831,828,832,834,835,835,835,834,835,835,835,835,836,837,836,836,836,835,835,835,835,835,835,835,835,835,835,835,835,834,835,835,835,835,835,836,835,835,838,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,835,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,835,839,835,835,833,835,833,833,833,833,833,833,833,833,840,833,833,833,833,833,833,833,833,841,833,833,842,833,843,833,833,833,835,835,835,835,835,833,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,833,833,833,833,833,833,833,833,833,833,844,844,844,844,844,844,844,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,844,844,844,844,833,844,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,844,844,844,844,844,833,836,845,836,836,836,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,836,845,846,847,848,849,850,852,851,853,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,855,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,856,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,857,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,858,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,859,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,855,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,833,833,833,833,833,860,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,833,833,833,861,833,833,833,833,833,833,833,862,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,863,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,864,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,855,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,865,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,833,833,833,855,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,866,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,867,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,854,854,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,833,854,833,833,833,833,833,833,833,833,833,833,833,859,833,833,833,833,833,833,833,833,833,833,833,833,833,833,854,854,854,854,854,833,869,215,215,215,869,215,215,215,215,870,871,870,870,870,215,215,215,215,215,215,215,215,215,215,215,215,869,215,215,215,215,215,870,872,215,873,215,874,875,215,876,215,877,878,215,879,880,881,215,215,215,215,215,215,215,215,215,215,882,215,883,884,885,886,215,887,888,887,887,889,887,887,887,887,887,887,887,887,887,887,887,887,887,887,887,887,887,887,887,887,887,890,891,215,892,893,215,894,895,896,897,898,899,868,868,900,868,868,868,901,902,903,868,868,904,905,906,907,868,908,868,909,868,910,911,215,892,215,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,916,915,915,917,915,918,920,921,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,922,919,924,923,925,926,927,870,928,870,870,870,928,928,928,928,928,928,928,928,928,928,928,928,928,928,928,928,928,928,870,928,930,929,932,933,932,932,932,931,931,931,931,931,931,931,931,931,931,931,931,931,931,931,931,931,931,932,931,215,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,215,934,935,936,937,938,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,940,940,940,940,940,940,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,941,940,942,213,213,213,942,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,942,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,213,213,213,213,213,213,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,214,213,944,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,215,943,945,947,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,946,215,946,215,204,216,217,216,216,216,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,216,943,943,218,943,943,943,943,943,943,943,943,943,943,943,943,219,219,219,219,219,219,219,219,219,219,943,943,943,215,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,220,943,233,234,233,233,233,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,233,232,232,235,232,232,232,232,232,232,232,232,232,232,232,232,236,236,236,236,236,236,236,236,236,236,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,232,237,232,216,217,216,216,216,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,216,943,943,218,943,943,943,943,943,943,943,943,943,943,943,943,219,219,219,219,219,219,219,219,219,219,943,943,943,215,215,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,943,220,943,949,934,951,950,934,952,952,952,934,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,952,934,952,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,954,955,934,956,241,957,955,934,934,958,959,934,959,934,241,934,934,934,934,934,934,934,934,934,934,960,934,961,962,963,934,964,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,965,934,934,241,953,241,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,934,966,934,967,934,953,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,969,968,968,968,968,968,968,968,968,968,968,968,968,968,968,953,953,953,953,953,953,953,953,953,953,968,968,968,970,968,969,968,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,968,968,968,968,953,968,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,953,968,968,968,968,968,953,972,971,973,975,976,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,974,977,974,979,980,978,981,982,983,984,241,968,968,985,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,241,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,240,240,240,240,240,240,240,240,240,240,968,968,968,968,968,968,968,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,968,968,968,968,240,968,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,240,968,968,968,968,968,240,243,243,243,243,243,243,243,243,243,243,968,986,968,241,968,241,968,241,987,968,241,968,241,968,241,241,968,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,990,990,990,990,990,990,990,990,990,990,988,988,988,988,988,988,991,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,988,988,988,988,989,988,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,989,988,988,988,988,988,989,993,993,993,993,993,993,993,993,993,993,992,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,994,996,996,996,996,996,996,996,996,996,996,994,994,994,994,994,994,994,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,994,994,994,994,995,994,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,995,994,994,994,994,994,995,986,968,985,968,997,998,934,999,256,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,246,257,246,258,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,247,257,247,257,260,215,934,892,215,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,215,934,215,944,934,1003,1002,1002,1002,1003,1002,1002,1002,1002,1004,1005,1004,1004,1004,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1003,1002,1002,1002,1002,1002,1004,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1002,1007,1002,1002,1006,1002,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1002,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1008,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1008,1008,1008,1008,1009,1008,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1008,1008,1008,1008,1008,1009,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1010,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1010,1010,1010,1010,1010,1010,1010,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1010,1010,1010,1010,1011,1010,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1010,1010,1010,1010,1010,1011,1014,1013,1013,1013,1014,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1014,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1015,1015,1015,1015,1015,1015,1015,1015,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1016,1013,1013,1013,1013,1013,1013,1013,1013,1013,1017,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1018,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1013,1019,1013,1013,1020,1013,1021,1022,1024,1024,1024,1024,1024,1024,1024,1024,1023,1025,1025,1025,1025,1025,1025,1025,1025,1023,1023,1026,1026,281,281,281,1026,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,1026,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,282,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,1027,281,1028,1029,1030,1030,281,281,281,1030,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,1030,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,282,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,1031,281,280,1030,1032,1033,1034,1034,268,268,268,1034,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1034,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1035,268,1030,262,262,262,1030,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,1030,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,1036,262,1026,268,268,268,1026,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1026,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,270,268,1026,1037,1037,1037,1026,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1026,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1038,1037,1039,1040,1040,1037,1037,1037,1040,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1040,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1037,1041,1037,1040,262,262,262,1040,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,1040,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,262,1036,262,1042,1040,1040,268,268,268,1040,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,1040,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,269,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,268,270,268,1044,1044,1044,1044,1044,1044,1044,1044,1044,1044,1043,1043,1043,1043,1043,1043,1043,1044,1044,1044,1044,1044,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1044,1044,1044,1044,1044,1044,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1045,1043,1046,1046,1046,1046,1046,1046,1046,1046,1046,1046,1043,1043,1043,1043,1043,1043,1043,1046,1046,1046,1046,1046,1046,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1046,1046,1046,1046,1046,1046,1043,1047,1047,1047,1047,1047,1047,1047,1047,1047,1047,1043,1043,1043,1043,1043,1043,1043,1047,1047,1047,1047,1047,1047,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1047,1047,1047,1047,1047,1047,1043,1048,1048,1048,1048,1048,1048,1048,1048,1048,1048,1043,1043,1043,1043,1043,1043,1043,1048,1048,1048,1048,1048,1048,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1043,1048,1048,1048,1048,1048,1048,1043,1049,1052,1051,1051,1051,1052,1051,1051,1051,1051,1053,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1052,1051,1051,1051,1051,1051,1053,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1054,1054,1054,1054,1054,1054,1054,1054,1054,1054,1051,1051,1051,1051,1051,1051,1051,1054,1054,1054,1054,1054,1054,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1054,1054,1054,1054,1054,1054,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1055,1051,1052,1051,1051,1051,1052,1051,1051,1051,1051,1050,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1052,1051,1051,1051,1051,1051,1050,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1051,1051,1051,1051,1051,1051,1051,1056,1056,1056,1056,1056,1056,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1056,1056,1056,1056,1056,1056,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1057,1051,1050,1052,1056,1056,1056,1052,1056,1056,1056,1056,1050,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1052,1056,1056,1056,1056,1056,1050,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1050,1056,1058,1052,1059,1059,1059,1052,1059,1059,1059,1059,1053,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1053,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1059,1059,1059,1059,1059,1059,1059,1060,1060,1060,1060,1060,1060,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1060,1060,1060,1060,1060,1060,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1050,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1050,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1050,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1056,1056,1056,1056,1056,1056,1056,1056,1056,1056,1059,1059,1059,1059,1059,1059,1059,1056,1056,1056,1056,1056,1056,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1056,1056,1056,1056,1056,1056,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1062,1062,1062,1062,1062,1062,1062,1062,1062,1062,1059,1059,1059,1059,1059,1059,1059,1062,1062,1062,1062,1062,1062,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1062,1062,1062,1062,1062,1062,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1060,1060,1060,1060,1060,1060,1060,1060,1060,1060,1059,1059,1059,1059,1059,1059,1059,1060,1060,1060,1060,1060,1060,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1060,1060,1060,1060,1060,1060,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1064,1052,1059,1059,1059,1052,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1065,1065,1065,1065,1065,1065,1065,1065,1065,1065,1059,1059,1059,1059,1059,1059,1059,1065,1065,1065,1065,1065,1065,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1065,1065,1065,1065,1065,1065,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1059,1059,1059,1059,1059,1059,1059,1066,1066,1066,1066,1066,1066,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1066,1066,1066,1066,1066,1066,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1067,1067,1067,1067,1067,1067,1067,1067,1067,1067,1059,1059,1059,1059,1059,1059,1059,1067,1067,1067,1067,1067,1067,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1067,1067,1067,1067,1067,1067,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1068,1068,1068,1068,1068,1068,1068,1068,1068,1068,1059,1059,1059,1059,1059,1059,1059,1068,1068,1068,1068,1068,1068,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1068,1068,1068,1068,1068,1068,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1061,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1050,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1050,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1050,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1071,1071,1071,1071,1071,1071,1071,1071,1071,1071,1059,1059,1059,1059,1059,1059,1059,1071,1071,1071,1071,1071,1071,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1071,1071,1071,1071,1071,1071,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1072,1072,1072,1072,1072,1072,1072,1072,1072,1072,1059,1059,1059,1059,1059,1059,1059,1072,1072,1072,1072,1072,1072,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1072,1072,1072,1072,1072,1072,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1059,1059,1059,1059,1059,1059,1059,1073,1073,1073,1073,1073,1073,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1073,1073,1073,1073,1073,1073,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1050,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1074,1074,1074,1074,1074,1074,1074,1074,1074,1074,1059,1059,1059,1059,1059,1059,1059,1074,1074,1074,1074,1074,1074,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1074,1074,1074,1074,1074,1074,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1050,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1059,1059,1059,1059,1059,1059,1059,1075,1075,1075,1075,1075,1075,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1075,1075,1075,1075,1075,1075,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1050,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1059,1059,1059,1059,1059,1059,1059,1076,1076,1076,1076,1076,1076,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1076,1076,1076,1076,1076,1076,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1050,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1059,1059,1059,1059,1059,1059,1059,1077,1077,1077,1077,1077,1077,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1077,1077,1077,1077,1077,1077,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1050,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1050,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1078,1078,1078,1078,1078,1078,1078,1078,1078,1078,1059,1059,1059,1059,1059,1059,1059,1078,1078,1078,1078,1078,1078,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1078,1078,1078,1078,1078,1078,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1059,1059,1059,1059,1059,1059,1059,1079,1079,1079,1079,1079,1079,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1079,1079,1079,1079,1079,1079,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1059,1059,1059,1059,1059,1059,1059,1080,1080,1080,1080,1080,1080,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1080,1080,1080,1080,1080,1080,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1081,1081,1081,1081,1081,1081,1081,1081,1081,1081,1059,1059,1059,1059,1059,1059,1059,1081,1081,1081,1081,1081,1081,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1081,1081,1081,1081,1081,1081,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1052,1059,1059,1059,1052,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1052,1059,1059,1059,1059,1059,1070,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1069,1069,1069,1069,1069,1069,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1063,1059,1082,1083,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1084,1084,1084,1084,1084,1084,1084,1085,1085,1085,1085,1085,1085,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1085,1085,1085,1085,1085,1085,1084,1084,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,287,204,204,204,204,204,204,204,204,204,204,204,204,204,204,286,286,286,286,286,286,286,286,286,286,288,204,204,289,204,287,204,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,204,204,204,204,286,204,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,204,204,204,204,204,286,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,287,934,934,934,934,934,934,934,934,934,934,934,934,934,934,286,286,286,286,286,286,286,286,286,286,288,934,934,289,934,287,934,286,286,286,286,1086,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,934,934,934,934,286,934,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,934,934,934,934,934,286,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,287,934,934,934,934,934,934,934,934,934,934,934,934,934,934,286,286,286,286,286,286,286,286,286,286,288,934,934,289,934,287,934,286,286,286,286,286,286,286,286,286,286,286,286,286,1087,286,286,286,286,286,286,286,286,286,286,286,286,934,934,934,934,286,934,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,286,934,934,934,934,934,286,1088,1089,934,929,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,1090,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,1091,1092,868,868,868,868,868,1093,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,1094,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,1095,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1096,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,1097,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,1098,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,1099,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,1100,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,1101,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,1102,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,204,287,204,204,204,204,204,204,204,204,204,204,204,204,204,204,868,868,868,868,868,868,868,868,868,868,288,204,204,289,204,287,204,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,204,204,204,204,868,204,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,204,204,204,204,204,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,1103,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,1104,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,1100,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,1105,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,1104,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,1106,868,1107,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,1108,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,1109,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1102,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1110,868,868,868,868,868,868,868,868,868,868,868,868,1111,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,1112,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,1113,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1114,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,1115,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,1116,868,868,868,868,868,868,868,868,868,868,1117,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1118,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,1119,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1109,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1120,868,868,868,868,868,868,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,1121,868,1122,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1123,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1102,868,868,868,1120,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1124,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1125,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1118,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,1126,868,868,868,868,868,868,868,868,868,868,868,868,868,903,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,1116,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1102,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,1127,868,868,868,868,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1128,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,1129,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1130,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,1118,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1131,868,868,868,1132,868,868,868,868,868,1133,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1133,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1102,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1134,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,1135,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1136,1137,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1102,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,1138,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1139,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1140,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1143,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1141,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1144,1141,1141,1145,1141,1143,1141,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1141,1141,1141,1141,1142,1141,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1142,1141,1141,1141,1141,1141,1142,920,1146,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,919,922,919,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1147,868,868,1148,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1102,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1113,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1149,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1150,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,1120,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1151,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,903,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,1152,868,868,868,868,868,868,868,868,868,1153,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1113,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1118,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,1154,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,1155,868,868,868,868,868,868,868,1156,868,868,868,868,868,868,868,1157,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1120,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1158,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1159,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,1127,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,1160,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,1127,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,1161,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1113,868,868,868,1162,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,1163,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1127,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,1164,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,1165,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,912,912,912,912,912,912,912,912,912,913,912,913,913,913,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,912,913,287,912,912,912,912,912,912,912,912,912,912,912,912,912,912,868,868,868,868,868,868,868,868,868,868,288,912,912,289,912,287,912,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,914,912,912,868,912,868,868,868,868,868,868,868,868,868,868,868,1107,868,868,868,868,868,868,868,868,868,868,868,868,868,868,912,912,912,912,912,868,1166,215,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,1167,934,1169,1168,1168,1168,1169,1168,1168,1168,1168,1170,1171,1170,1170,1170,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1169,1168,1168,1168,1168,1168,1170,1168,1168,1172,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1173,1168,1170,1174,1170,1170,1170,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1170,1174,1175,1176,1177,1178,1179,1181,1180,1182,1184,1185,1185,1185,1184,1185,1185,1185,1185,1186,1187,1186,1186,1186,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1184,1185,1185,1185,1185,1185,1186,1185,1188,1189,1185,1185,1185,1188,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1185,1190,1185,1185,1183,1185,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183,1185,1185,1185,1185,1185,1183,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,295,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,294,294,294,294,294,294,294,294,294,294,296,1191,1191,1191,1191,295,1191,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,1191,1191,1191,1191,294,1191,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,294,1191,1191,1191,1191,1191,294,1186,1192,1186,1186,1186,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1186,1192,1193,1194,1195,1196,1197,1198,1191,1199,1201,1202,1202,1202,1201,1202,1202,1202,1202,1203,1204,1203,1203,1203,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1202,1201,1202,1202,1202,1202,1202,1203,1205,1206,1207,1208,1209,1210,1206,1211,1212,1213,1209,1214,1215,1216,1209,1217,1218,1218,1218,1218,1218,1218,1218,1218,1218,1219,1220,1221,1222,1223,1224,1225,1226,1227,1226,1226,1228,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1229,1230,1231,1209,1232,1206,1233,1234,1235,1236,1237,1238,1200,1200,1239,1200,1200,1200,1240,1241,1242,1200,1200,1243,1244,1245,1246,1200,1247,1200,1248,1200,1249,1250,1251,1252,1202,1200,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,1253,304,304,304,304,304,304,304,304,304,304,304,304,304,304,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,304,304,304,304,304,1253,304,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,304,304,304,304,1200,304,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,304,304,304,304,304,1200,1255,1254,1256,1203,1257,1203,1203,1203,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1257,1203,1257,1258,1260,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1260,1259,1261,1262,1263,1264,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,299,299,1265,299,1265,299,299,1265,1265,299,299,299,1266,299,299,1267,1267,1267,1267,1267,1267,1267,1267,1267,1267,299,299,299,299,299,299,299,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,1265,299,1265,1265,316,299,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,1265,1265,1265,299,1265,316,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,1268,316,316,316,316,316,316,316,316,316,316,1268,1268,1268,1268,1268,1268,1268,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,1268,1268,1268,1268,316,1268,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,1268,1268,1268,1268,1268,316,1267,1267,1267,1267,1267,1267,1267,1267,1267,1267,1268,1269,304,1209,1270,1270,1270,1270,1270,1270,1270,1271,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1269,1270,1272,1273,1209,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1274,1269,1274,1269,1275,1270,1277,1276,303,303,303,303,303,303,303,303,303,303,1276,1279,1278,1280,1278,303,303,303,303,303,303,303,303,303,303,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1282,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1283,1281,1281,1281,1281,1281,1282,1281,302,302,302,302,302,302,302,302,302,302,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,1281,301,1281,1285,1284,1286,1286,1286,1286,1286,1286,1286,1286,1286,1286,1284,1284,1284,1284,1284,1284,1284,1284,1287,1284,1288,1289,1284,1284,1284,1284,1284,1284,1284,1284,1284,1290,1284,1284,1284,1284,1284,1284,1284,1284,1291,1284,1284,1284,1284,1284,1284,1292,1284,1284,1287,1284,1288,1289,1284,1284,1284,1293,1284,1284,1284,1284,1284,1290,1284,1284,1294,1284,1284,1284,1284,1284,1291,1284,305,305,305,305,305,305,305,305,305,305,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1296,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1295,1297,1295,1295,1295,1295,1295,1296,1295,1295,1295,1298,1295,1295,1295,1295,1295,1295,1295,1295,1299,1295,1300,304,1300,304,304,306,306,306,306,306,306,306,306,306,306,304,306,306,306,306,306,306,306,306,306,306,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1300,1301,1301,1301,1301,1301,1301,1301,1301,1301,1302,1301,1304,1303,1305,1307,1306,1306,1306,1308,1306,1309,1310,1286,1286,1286,1286,1286,1286,1286,1286,1286,1286,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1292,1284,1284,1284,1284,1284,1284,1284,1284,1284,1293,1284,1284,1284,1284,1284,1284,1284,1284,1294,1284,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1284,1312,1284,1284,1284,1284,1284,1284,1284,1284,1284,1293,1284,1284,1284,1284,1284,1284,1284,1284,1294,1284,1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1315,1313,1313,1313,1313,1313,1313,1313,1313,1313,1316,1313,1313,1313,1313,1313,1313,1313,1313,1317,1313,1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1318,1313,1313,1313,1313,1313,1313,1313,1313,1313,1316,1313,1313,1313,1313,1313,1313,1313,1313,1317,1313,1316,1313,1313,1313,1313,1313,1313,1313,1313,1317,1313,1320,1319,1321,1323,1322,1322,1322,1324,1322,1326,1325,1327,1328,1330,1330,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1331,1329,1329,1329,1329,1329,1329,1329,1329,1329,1332,1329,1329,1329,1329,1329,1329,1329,1329,1333,1329,1334,1334,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1335,1313,1313,1313,1313,1313,1313,1313,1313,1313,1316,1313,1313,1313,1313,1313,1313,1313,1313,1317,1313,1334,1334,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1318,1313,1313,1313,1313,1313,1313,1313,1313,1313,1316,1313,1313,1313,1313,1313,1313,1313,1313,1317,1313,1337,1337,1337,1337,1337,1337,1337,1337,1337,1337,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1336,1338,1336,1336,1336,1336,1336,1336,1336,1336,1336,1339,1336,1336,1336,1336,1336,1336,1336,1336,1340,1336,1342,1342,1342,1342,1342,1342,1342,1342,1342,1342,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1343,1341,1341,1341,1341,1341,1341,1341,1341,1341,1344,1341,1341,1341,1341,1341,1341,1341,1341,1345,1341,1347,1347,1347,1347,1347,1347,1347,1347,1347,1347,1346,1346,1346,1346,1346,1346,1346,1347,1347,1347,1347,1347,1347,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1346,1348,1346,1347,1347,1347,1347,1347,1347,1346,1346,1349,1346,1346,1346,1346,1346,1346,1346,1346,1350,1346,1351,1351,1351,1351,1351,1351,1351,1351,1351,1351,1313,1313,1313,1313,1313,1313,1313,1351,1351,1351,1351,1351,1351,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1352,1313,1351,1351,1351,1351,1351,1351,1313,1313,1316,1313,1313,1313,1313,1313,1313,1313,1313,1317,1313,1351,1351,1351,1351,1351,1351,1351,1351,1351,1351,1313,1313,1313,1313,1313,1313,1313,1351,1351,1351,1351,1351,1351,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1318,1313,1351,1351,1351,1351,1351,1351,1313,1313,1316,1313,1313,1313,1313,1313,1313,1313,1313,1317,1313,1354,1353,1355,1355,1355,1355,1355,1355,1355,1355,1355,1355,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1356,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1357,1353,1353,1353,1353,1353,1356,1353,1353,1353,1358,1353,1353,1353,1353,1353,1353,1353,1353,1359,1353,1360,1360,1360,1360,1360,1360,1360,1360,1360,1360,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1353,1361,1353,1353,1353,1353,1353,1353,1353,1353,1353,1358,1353,1353,1353,1353,1353,1353,1353,1353,1359,1353,1362,1313,1363,1363,1363,1363,1363,1363,1363,1363,1363,1363,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1364,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1365,1313,1313,1313,1313,1313,1364,1313,1313,1313,1316,1313,1313,1313,1313,1313,1313,1313,1313,1317,1313,1363,1363,1363,1363,1363,1363,1363,1363,1363,1363,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,1318,1313,1313,1313,1313,1313,1313,1313,1313,1313,1316,1313,1313,1313,1313,1313,1313,1313,1313,1317,1313,1271,1278,1209,1366,1270,1260,1270,1367,1368,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1278,1260,1278,1260,1270,1260,1209,1270,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,1265,316,316,316,316,316,316,316,316,316,316,1265,1265,1265,1265,1265,1265,1369,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,1265,1265,1265,1265,316,1265,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,316,1265,1265,1265,1265,1265,316,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,304,1253,304,304,304,304,304,304,304,304,304,304,304,304,304,304,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1370,304,304,304,304,1253,304,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,304,304,304,304,1226,304,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,304,304,304,304,304,1226,1371,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1253,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1370,1372,1372,1372,1372,1253,1372,1226,1226,1226,1226,1373,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1226,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1372,1226,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1253,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1370,1372,1372,1372,1372,1253,1372,1226,1226,1226,1226,1226,1226,1374,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1226,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1372,1226,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1253,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1370,1372,1372,1372,1372,1253,1372,1226,1226,1226,1226,1226,1226,1226,1226,1375,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1226,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1372,1226,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1253,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1370,1372,1372,1372,1372,1253,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1376,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1226,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1372,1226,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1253,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1370,1372,1372,1372,1372,1253,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1377,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1226,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1372,1226,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1253,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1370,1372,1372,1372,1372,1253,1372,1226,1226,1226,1376,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1226,1372,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1226,1372,1372,1372,1372,1372,1226,1378,1380,1379,1381,1382,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1384,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1385,1386,1200,1200,1200,1200,1200,1387,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1388,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1389,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1390,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1391,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1392,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1393,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1394,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1395,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1396,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1397,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1398,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1399,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1400,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1401,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1402,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1398,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1403,1200,1404,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1405,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1406,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1407,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1408,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1409,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1410,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1411,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1412,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1408,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1413,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1414,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1415,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1416,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1417,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1418,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1408,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1419,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1420,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1421,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1422,1422,1422,1422,1422,1422,1422,1422,1422,318,319,318,318,318,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,318,1253,1422,320,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1422,1422,321,1422,1422,1253,1422,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1422,322,1422,1422,1200,1422,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1422,1422,1422,1422,1422,1200,335,336,335,335,335,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,335,334,334,337,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,340,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,334,339,334,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1424,1200,1200,1200,1200,1200,1200,1200,1200,1200,1425,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1426,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1253,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1427,1427,1427,1427,1427,1253,1427,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1427,1427,1427,1427,1200,1427,1200,1200,1200,1200,1200,1200,1200,1200,1428,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1427,1427,1427,1427,1427,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1429,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1430,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1431,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1432,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1433,1200,1434,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1435,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1408,1200,1200,1200,1436,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1408,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1401,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1437,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1438,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1418,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1439,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1242,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1440,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1441,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1401,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1408,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1442,1200,1200,1200,1200,1200,1200,1200,1408,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1443,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1444,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1445,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1418,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1446,1200,1200,1200,1447,1200,1200,1200,1200,1200,1448,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1449,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1415,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1401,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1450,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1451,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1452,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1453,1454,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1401,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1455,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1456,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1442,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1457,1200,1200,1458,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1401,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1459,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1415,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1460,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1461,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1462,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1401,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1463,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1464,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1450,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1465,1200,1200,1200,1200,1200,1200,1200,1200,1200,1466,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1412,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1441,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1467,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1468,1200,1200,1200,1200,1200,1200,1200,1469,1200,1200,1200,1200,1200,1200,1200,1470,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1471,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1407,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1472,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1473,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1442,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1474,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1442,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1475,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1412,1200,1200,1200,1476,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1477,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1442,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1478,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1479,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1480,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1253,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1253,1383,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1200,1383,1200,1200,1200,1450,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1200,1383,1383,1383,1383,1383,1200,1481,1269,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1259,1209,1259,1482,1484,1483,1484,1484,1484,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1484,1483,1483,1485,1483,1483,1486,1483,1483,1483,1483,1483,1483,1483,348,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1483,1487,1483,344,345,344,344,344,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,344,1488,1488,346,1488,1488,347,1488,1488,1488,1488,1488,1488,1488,348,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,349,1488,351,1489,351,351,351,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,351,1489,1489,346,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,1489,349,1489,354,353,359,1488,357,1488,1491,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1492,1490,1491,1490,1491,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1494,1490,1491,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1495,1490,1491,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1496,1490,1498,1496,0]], +l(V,"_lex_indicies=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("_lex_trans_targs"),e.$private("_lex_trans_targs","_lex_trans_targs=")}(e.get_singleton_class(V),W),K=[[185,2,3,4,191,6,7,8,9,10,185,185,194,197,194,12,198,199,14,194,206,207,210,211,217,212,213,214,19,215,216,219,221,222,223,224,225,25,18,208,209,27,248,249,251,253,251,30,254,255,32,251,262,263,266,267,273,268,269,270,37,271,272,275,277,278,279,280,281,43,36,264,265,45,304,305,312,314,312,48,315,316,50,318,321,318,52,322,323,54,329,328,0,56,330,331,58,332,333,333,333,333,446,61,62,63,446,474,64,65,474,474,478,478,69,64,70,476,477,479,480,478,474,481,482,484,66,67,485,486,68,478,71,72,77,84,488,489,70,476,477,479,480,478,474,481,482,484,66,67,485,486,68,71,72,77,84,488,489,487,73,74,75,76,78,79,82,80,81,83,85,86,474,88,89,90,92,95,93,94,96,98,505,505,505,506,100,508,101,509,102,506,100,508,101,509,543,103,543,104,105,103,543,104,543,543,543,108,109,110,111,554,543,543,559,543,114,115,116,543,119,114,115,116,543,119,117,117,115,116,565,118,117,117,115,116,565,118,115,543,581,543,121,582,588,125,597,598,130,131,125,126,596,126,596,543,127,128,129,599,132,543,613,614,617,618,624,619,620,621,137,622,623,626,628,629,630,631,632,143,136,615,616,145,668,669,147,545,106,547,149,150,671,773,152,153,154,773,781,781,781,157,803,802,781,805,807,781,162,163,164,811,781,166,167,822,791,844,170,171,172,176,177,170,171,172,176,177,173,173,171,172,174,175,173,173,171,172,174,175,892,171,781,961,178,963,180,184,961,182,961,179,961,181,963,181,963,183,963,961,185,185,186,187,188,190,192,193,185,185,185,189,185,189,185,1,185,185,185,5,194,194,195,194,196,200,194,194,11,13,194,194,194,194,201,202,203,15,21,26,226,28,194,194,194,204,205,194,16,194,194,194,17,194,194,194,20,218,220,22,194,194,23,24,194,227,231,228,229,230,194,194,232,233,236,238,247,234,235,194,237,239,241,240,194,242,243,244,245,246,194,194,194,250,251,251,251,252,256,251,29,31,251,251,251,251,257,258,259,33,39,44,282,46,251,251,251,260,261,251,34,251,251,251,35,251,251,251,38,274,276,40,251,251,41,42,251,283,287,284,285,286,251,251,288,289,292,294,303,290,291,251,293,295,297,296,251,298,299,300,301,302,251,251,251,306,307,307,308,307,309,307,307,307,310,310,310,311,310,310,310,312,312,312,313,312,47,49,312,312,312,317,317,317,318,318,319,318,320,318,318,51,53,318,318,318,324,324,325,324,324,326,327,326,55,57,328,328,328,334,333,333,335,336,337,338,340,343,344,345,346,333,347,348,350,352,353,354,358,360,361,362,378,383,390,395,402,409,412,413,417,411,421,429,433,435,440,442,445,333,333,333,333,333,333,339,333,339,333,341,59,342,333,60,333,333,349,351,333,355,356,357,353,359,333,363,364,373,376,365,366,367,368,369,370,371,372,334,374,375,377,379,382,380,381,384,387,385,386,388,389,391,393,392,394,396,397,333,398,399,400,401,333,403,406,404,405,407,408,410,414,415,416,418,420,419,422,423,424,426,425,427,428,430,431,432,434,436,437,438,439,441,443,444,447,446,446,448,449,451,446,446,446,450,446,450,452,446,454,453,453,457,458,459,460,453,462,463,464,465,467,469,470,471,472,473,453,455,453,456,453,453,453,453,453,461,453,461,466,453,468,453,474,474,475,490,491,477,493,494,481,495,496,497,498,499,501,502,503,504,474,474,474,474,474,474,478,483,474,474,474,474,474,474,474,474,474,492,474,492,474,474,474,474,500,474,87,91,97,505,507,510,99,505,505,506,511,511,512,513,515,517,518,511,511,514,511,514,511,516,511,511,511,520,519,519,521,522,523,525,527,528,533,540,519,519,519,519,524,519,524,519,526,519,519,520,529,530,531,532,534,535,538,536,537,539,541,542,544,543,552,553,555,556,558,560,561,562,564,566,567,569,570,595,601,602,603,671,672,673,674,675,563,677,694,699,706,711,713,719,722,723,727,721,731,742,746,749,757,761,764,765,543,103,104,543,106,546,543,543,548,550,551,543,549,543,543,543,543,543,107,543,543,543,543,543,557,543,557,543,543,112,543,543,113,543,543,563,543,568,543,543,543,571,580,543,120,583,584,585,543,586,122,589,590,123,593,594,543,572,574,543,573,543,543,575,578,579,543,576,577,543,543,543,543,543,543,587,543,581,591,592,543,591,543,581,591,124,600,543,543,543,604,543,543,543,605,607,543,606,543,606,543,608,609,610,133,139,144,633,146,543,543,543,611,612,543,134,543,543,543,135,543,543,543,138,625,627,140,543,543,141,142,543,634,638,635,636,637,543,543,639,640,643,654,667,641,642,543,644,645,646,648,647,543,649,650,651,652,653,655,662,656,657,658,659,660,661,663,664,665,666,543,543,543,670,148,151,543,676,678,679,689,692,680,681,682,683,684,685,686,687,688,690,691,693,695,698,696,697,700,703,701,702,704,705,707,709,708,710,712,714,716,715,717,718,720,688,724,725,726,728,730,729,732,733,734,739,735,736,737,543,544,545,106,738,550,740,741,743,744,745,747,748,750,751,752,755,753,754,756,758,759,760,762,763,543,563,766,766,767,768,769,771,766,766,766,770,766,770,766,772,766,774,773,773,775,776,773,777,779,773,773,773,773,778,773,778,780,773,782,781,781,785,786,787,781,788,790,793,794,795,796,797,781,798,799,804,832,836,781,837,839,841,781,842,843,845,849,851,852,854,855,873,878,885,893,900,907,912,913,917,911,922,932,938,941,950,954,958,959,960,793,783,781,784,781,781,781,781,781,781,789,781,789,781,155,792,781,781,781,781,781,781,781,781,781,800,781,801,781,781,156,158,781,159,813,824,827,806,828,829,814,818,820,781,806,159,808,810,160,781,808,781,809,781,781,161,812,781,781,815,817,781,815,816,818,820,817,781,819,781,781,821,823,781,165,781,781,781,825,817,818,820,825,826,781,815,817,818,820,781,815,817,818,820,781,830,817,818,820,830,831,781,159,832,806,833,818,820,834,817,159,834,806,835,838,840,781,168,169,781,781,846,847,848,843,850,781,781,853,781,781,781,856,857,866,871,858,859,860,861,862,863,864,865,782,867,868,869,870,782,872,874,877,875,876,782,782,879,882,880,881,883,884,782,886,888,887,889,890,891,781,781,894,782,895,781,896,897,898,899,783,901,904,902,903,905,906,908,909,910,782,914,915,916,918,920,921,919,782,923,924,925,928,926,927,929,930,931,933,935,934,936,937,939,940,942,943,945,948,944,946,947,949,951,952,953,955,956,957,781,781,961,962,964,965,966,961,961,968,967,969,967,970,971,972,967,967]],l(V,"_lex_trans_targs=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("_lex_trans_actions"),e.$private("_lex_trans_actions","_lex_trans_actions=")}(e.get_singleton_class(V),W),K=[[1,0,0,0,0,0,0,0,0,0,2,3,4,0,5,0,0,0,0,6,0,7,0,8,0,7,0,0,0,0,8,7,0,8,0,7,7,0,0,0,0,0,0,0,9,0,10,0,0,0,0,11,0,7,0,8,0,7,0,0,0,0,8,7,0,8,0,7,7,0,0,0,0,0,0,0,12,0,13,0,0,0,0,14,0,15,0,0,0,0,0,16,0,0,0,0,0,0,17,18,19,20,21,0,0,0,22,23,0,0,24,25,26,27,28,29,29,30,31,29,32,31,33,31,29,29,30,29,34,29,29,35,29,29,29,29,29,29,0,36,37,0,38,37,39,37,0,0,36,0,40,0,0,0,0,0,0,0,0,27,0,0,0,0,0,0,0,0,0,0,0,0,41,0,0,0,0,0,0,0,0,0,42,43,44,45,0,0,0,45,28,46,29,29,29,46,47,0,48,0,28,29,49,29,50,51,52,0,0,0,0,0,53,54,0,55,0,28,0,56,0,29,57,29,58,29,59,60,61,60,62,60,0,63,64,63,65,63,66,67,0,68,0,0,0,0,69,69,0,0,70,70,71,0,28,72,0,0,0,69,0,73,0,7,0,8,0,7,0,0,0,0,8,7,0,8,0,7,7,0,0,0,0,0,0,0,0,74,0,0,0,0,74,75,0,0,0,76,77,78,79,0,7,7,80,81,81,82,0,0,0,0,83,0,0,0,0,0,0,28,0,0,0,29,57,29,29,29,59,60,61,60,60,60,0,63,64,63,63,63,84,66,85,86,0,87,0,88,89,0,90,0,91,59,92,0,93,28,94,95,98,99,0,28,0,7,0,7,100,101,102,59,103,0,104,0,105,106,107,0,108,109,0,110,7,7,111,112,0,0,113,114,115,116,117,117,117,117,117,117,117,117,118,119,120,0,0,121,0,122,123,124,0,125,126,127,0,7,0,0,128,129,0,28,130,0,0,0,0,0,131,132,0,0,0,0,0,0,0,133,0,0,0,0,134,0,0,0,0,0,135,136,137,0,138,139,140,7,7,141,0,0,142,143,144,145,117,117,117,117,117,117,117,117,146,147,148,0,0,149,0,150,151,152,0,153,154,155,0,7,0,0,156,157,0,28,158,0,0,0,0,0,159,160,0,0,0,0,0,0,0,161,0,0,0,0,162,0,0,0,0,0,163,164,165,0,166,167,0,168,0,169,170,171,172,173,174,0,175,176,177,178,179,180,7,181,0,0,182,183,184,185,186,187,188,189,0,190,7,191,192,0,0,193,194,195,196,197,0,198,199,200,0,201,0,0,202,203,204,205,206,207,0,28,0,0,7,7,0,0,0,208,0,0,0,0,209,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,210,211,212,213,214,215,59,216,0,217,0,0,0,218,0,219,220,0,0,221,0,0,0,222,0,223,0,0,0,0,0,0,0,0,0,0,0,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,0,0,0,0,225,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,7,226,227,0,0,0,228,229,230,59,231,0,28,232,0,233,234,0,28,0,0,235,0,0,0,0,0,0,0,0,0,0,236,0,237,0,238,239,240,241,242,59,243,0,0,244,0,245,246,247,248,28,0,27,0,0,27,0,0,0,0,0,0,7,7,7,249,250,251,252,253,254,255,0,256,257,258,259,260,261,262,263,264,59,265,0,266,267,268,269,270,271,0,0,0,272,7,7,0,273,274,275,276,277,0,0,0,0,0,278,279,59,280,0,281,28,282,283,284,285,286,287,0,28,0,0,0,0,0,0,288,289,290,291,59,292,0,293,28,294,295,296,0,0,0,0,0,0,0,0,0,0,0,0,297,298,0,8,0,0,7,299,0,0,299,299,0,0,7,300,0,300,0,300,300,300,0,0,300,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,0,0,301,302,302,303,304,0,305,306,0,74,0,307,0,308,309,310,311,312,29,313,314,315,316,317,59,318,0,319,320,0,321,322,0,323,324,299,325,0,326,327,328,0,0,329,0,0,0,0,330,0,0,0,0,0,0,0,331,0,0,332,0,333,334,0,0,0,335,0,0,336,337,338,339,340,341,0,342,343,343,0,344,0,345,346,346,0,0,347,348,349,0,350,351,352,0,7,353,354,355,0,356,117,117,117,117,117,117,117,117,357,358,359,0,0,360,0,361,362,363,0,364,365,366,0,7,0,0,367,368,0,28,369,0,0,0,0,0,370,371,0,0,0,0,0,0,0,372,0,0,0,0,0,373,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,374,375,376,0,0,0,377,28,297,297,297,297,297,297,297,297,297,297,297,297,74,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,378,297,297,297,297,297,297,297,297,297,297,297,297,379,380,381,382,383,383,379,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,384,385,386,387,0,28,0,0,388,389,390,59,391,0,392,28,393,7,394,395,0,28,396,0,0,397,398,399,400,59,401,0,28,402,403,404,405,0,28,0,406,0,7,407,0,0,0,0,408,0,0,409,409,0,410,0,0,0,411,7,412,412,412,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,413,414,415,0,416,417,418,419,420,421,59,422,0,423,0,0,424,425,426,427,428,429,430,431,432,0,433,0,434,435,0,0,436,437,438,0,0,439,0,0,438,440,440,441,442,0,443,444,0,445,446,447,0,448,449,0,0,450,451,438,438,452,0,0,453,453,0,454,0,455,456,7,0,457,0,458,459,460,461,461,462,462,0,0,463,464,464,465,465,466,467,467,468,468,469,470,470,471,471,0,0,472,473,474,475,476,477,477,474,476,478,409,479,0,0,0,480,0,0,481,482,412,412,412,483,412,484,485,28,486,487,488,0,0,0,0,0,0,0,0,0,0,0,0,489,0,0,0,0,483,0,0,0,0,0,490,491,0,0,0,0,0,0,492,0,0,0,0,0,491,493,494,0,495,0,496,0,0,0,0,497,0,0,0,0,0,0,0,0,0,498,0,0,0,0,0,0,0,497,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,499,500,501,502,502,88,502,503,504,0,505,0,506,0,0,0,507,508]],l(V,"_lex_trans_actions=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("_lex_to_state_actions"),e.$private("_lex_to_state_actions","_lex_to_state_actions=")}(e.get_singleton_class(V),W),K=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,96,0,96,0,0,0,0,96,96,0,0,0,0,0,96,0,96,0,96,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,96,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,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,96,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,0,96,0,0,0,0,0,0,0,96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,96,0,0,0,0,0,96,0,0,0,0,0]],l(V,"_lex_to_state_actions=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("_lex_from_state_actions"),e.$private("_lex_from_state_actions","_lex_from_state_actions=")}(e.get_singleton_class(V),W),K=[[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,97,0,97,0,0,0,0,97,97,0,0,0,0,0,97,0,97,0,97,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,97,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,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,97,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,0,97,0,0,0,0,0,0,0,97,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,97,0,0,0,0,0,97,0,0,0,0,0]],l(V,"_lex_from_state_actions=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("_lex_eof_trans"),e.$private("_lex_eof_trans","_lex_eof_trans=")}(e.get_singleton_class(V),W),K=[[0,1,1,1,1,1,1,1,1,1,1,13,13,13,13,20,20,20,20,20,20,20,20,20,20,20,20,20,20,45,45,45,45,52,52,52,52,52,52,52,52,52,52,52,52,52,52,77,77,77,77,84,84,84,84,0,0,0,0,99,101,103,103,103,108,108,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,112,173,173,173,173,173,173,173,173,173,173,173,173,183,185,185,185,197,197,197,205,207,207,207,207,207,213,205,205,205,205,205,205,205,240,240,240,240,240,240,205,256,205,256,240,240,205,262,262,262,262,262,262,262,262,262,262,262,262,262,262,205,240,240,240,240,294,294,294,299,301,301,301,305,305,308,308,308,308,313,313,313,299,305,305,305,305,305,305,305,305,305,344,351,353,353,353,353,344,0,369,370,371,373,375,377,375,375,0,387,388,392,392,393,394,403,404,405,405,405,408,408,410,411,412,412,412,414,415,416,416,412,408,408,421,422,422,422,422,422,425,425,425,425,431,432,432,432,432,440,432,432,432,432,445,432,432,432,432,432,432,451,452,453,453,0,460,464,464,465,466,475,476,477,477,477,480,480,482,483,484,484,484,486,487,488,488,484,480,480,493,494,494,494,494,494,497,497,497,497,503,504,504,504,504,512,504,504,504,504,517,504,504,504,504,504,504,523,524,525,525,0,532,533,0,539,0,546,550,550,551,0,0,560,561,565,565,566,0,571,0,574,0,577,577,578,579,0,620,622,623,624,625,627,629,633,633,624,624,624,624,635,624,624,629,624,624,620,639,639,639,639,639,639,629,629,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,678,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,645,624,0,721,722,723,725,721,728,0,747,749,751,752,753,754,755,757,754,754,754,754,754,760,754,754,762,760,760,754,0,781,782,108,108,785,786,108,782,782,789,791,794,782,795,782,796,797,799,801,782,789,802,802,791,802,806,802,802,802,802,0,183,814,815,814,814,0,824,825,827,829,831,829,833,0,845,846,847,848,850,852,854,855,855,855,855,855,855,855,855,855,855,855,855,855,855,855,855,0,913,916,919,920,924,926,927,928,929,930,932,935,936,938,940,943,944,946,947,205,944,949,944,935,951,935,935,969,972,974,975,979,982,983,984,985,969,969,969,969,969,969,969,969,969,969,989,993,995,969,969,935,1e3,1001,1001,1001,935,935,935,1002,1009,1009,1011,1013,1022,1023,1024,1024,1024,1027,1027,1029,1030,1031,1031,1031,1033,1034,1035,1035,1031,1027,1027,1040,1041,1041,1041,1041,1041,1044,1044,1044,1044,1050,1051,1051,1051,1051,1059,1051,1051,1051,1051,1065,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1051,1083,1084,1085,1085,205,935,935,1089,935,930,913,913,913,913,913,913,913,913,913,913,913,205,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,1142,920,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,1167,935,0,1175,1176,1177,1179,1181,1183,0,1192,1193,1194,1195,1197,1192,1200,0,305,1255,1257,1258,1259,1260,1262,1264,1266,1269,1269,305,1271,1273,1274,1275,1271,1277,1279,1279,1282,1282,1285,1296,305,1302,1304,1306,1307,1310,1311,1285,1285,1314,1314,1314,1320,1322,1323,1326,1328,1329,1330,1314,1314,1337,1342,1347,1314,1314,1354,1354,1314,1314,1279,1271,1271,1279,1271,1271,1266,305,1372,1373,1373,1373,1373,1373,1373,1379,1266,1382,1383,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1423,1424,1384,1384,1428,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1482,1260,1483,0,1489,1490,1489,1489,1489,0,1494,1494,1494,1494,1498]],l(V,"_lex_eof_trans=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_start")}(e.get_singleton_class(V),W),K=[185],l(V,"lex_start=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_error")}(e.get_singleton_class(V),W),K=[0],l(V,"lex_error=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_interp_words")}(e.get_singleton_class(V),W),K=[194],l(V,"lex_en_interp_words=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_interp_string")}(e.get_singleton_class(V),W),K=[251],l(V,"lex_en_interp_string=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_plain_words")}(e.get_singleton_class(V),W),K=[307],l(V,"lex_en_plain_words=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_plain_string")}(e.get_singleton_class(V),W),K=[310],l(V,"lex_en_plain_string=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_interp_backslash_delimited")}(e.get_singleton_class(V),W),K=[312],l(V,"lex_en_interp_backslash_delimited=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_plain_backslash_delimited")}(e.get_singleton_class(V),W),K=[317],l(V,"lex_en_plain_backslash_delimited=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_interp_backslash_delimited_words")}(e.get_singleton_class(V),W),K=[318],l(V,"lex_en_interp_backslash_delimited_words=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_plain_backslash_delimited_words")}(e.get_singleton_class(V),W),K=[324],l(V,"lex_en_plain_backslash_delimited_words=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_regexp_modifiers")}(e.get_singleton_class(V),W),K=[326],l(V,"lex_en_regexp_modifiers=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_variable")}(e.get_singleton_class(V),W),K=[328],l(V,"lex_en_expr_variable=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_fname")}(e.get_singleton_class(V),W),K=[333],l(V,"lex_en_expr_fname=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_endfn")}(e.get_singleton_class(V),W),K=[446],l(V,"lex_en_expr_endfn=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_dot")}(e.get_singleton_class(V),W),K=[453],l(V,"lex_en_expr_dot=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_arg")}(e.get_singleton_class(V),W),K=[474],l(V,"lex_en_expr_arg=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_cmdarg")}(e.get_singleton_class(V),W),K=[505],l(V,"lex_en_expr_cmdarg=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_endarg")}(e.get_singleton_class(V),W),K=[511],l(V,"lex_en_expr_endarg=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_mid")}(e.get_singleton_class(V),W),K=[519],l(V,"lex_en_expr_mid=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_beg")}(e.get_singleton_class(V),W),K=[543],l(V,"lex_en_expr_beg=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_labelarg")}(e.get_singleton_class(V),W),K=[766],l(V,"lex_en_expr_labelarg=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_value")}(e.get_singleton_class(V),W),K=[773],l(V,"lex_en_expr_value=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_expr_end")}(e.get_singleton_class(V),W),K=[781],l(V,"lex_en_expr_end=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_leading_dot")}(e.get_singleton_class(V),W),K=[961],l(V,"lex_en_leading_dot=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_line_comment")}(e.get_singleton_class(V),W),K=[967],l(V,"lex_en_line_comment=",e.to_a(K)),K[t(K.length,1)],function(e,t){[e].concat(t);e.$attr_accessor("lex_en_line_begin")}(e.get_singleton_class(V),W),K=[185],l(V,"lex_en_line_begin=",e.to_a(K)),K[t(K.length,1)],e.const_set(W[0],"ESCAPES",d("a".$ord(),"\x07","b".$ord(),"\b","e".$ord(),"\x1b","f".$ord(),"\f","n".$ord(),"\n","r".$ord(),"\r","s".$ord()," ","t".$ord(),"\t","v".$ord(),"\x0B","\\".$ord(),"\\").$freeze()),e.const_set(W[0],"REGEXP_META_CHARACTERS",l(_(W,"Regexp"),"union",e.to_a("\\$()*+.<>?[]^{|}".$chars())).$freeze()),V.$attr_reader("source_buffer"),V.$attr_accessor("diagnostics"),V.$attr_accessor("static_env"),V.$attr_accessor("force_utf32"),V.$attr_accessor("cond","cmdarg","in_kwarg","context","command_start"),V.$attr_accessor("tokens","comments"),V.$attr_reader("paren_nest","cmdarg_stack","cond_stack","lambda_stack"),e.def(V,"$initialize",y=function(e){var t=this;return t.version=e,t.static_env=o,t.context=o,t.tokens=o,t.comments=o,t.$reset()},y.$$arity=1),e.def(V,"$reset",v=function(e){var t=this;return null==e&&(e=!0),p(e)&&(t.cs=t.$class().$lex_en_line_begin(),t.cond=_(W,"StackState").$new("cond"),t.cmdarg=_(W,"StackState").$new("cmdarg"),t.cond_stack=[],t.cmdarg_stack=[]),t.force_utf32=!1,t.source_pts=o,t.p=0,t.ts=o,t.te=o,t.act=0,t.stack=[],t.top=0,t.token_queue=[],t.literal_stack=[],t.eq_begin_s=o,t.sharp_s=o,t.newline_s=o,t.num_base=o,t.num_digits_s=o,t.num_suffix_s=o,t.num_xfrm=o,t.escape_s=o,t.escape=o,t.herebody_s=o,t.paren_nest=0,t.lambda_stack=[],t.dedent_level=o,t.command_start=!0,t.in_kwarg=!1,t.cs_before_block_comment=t.$class().$lex_en_line_begin()},v.$$arity=-1),e.def(V,"$source_buffer=",b=function(e){var t=this,r=o;return t.source_buffer=e,p(t.source_buffer)?((r=t.source_buffer.$source()).$encoding()["$=="](c(_(W,"Encoding"),"UTF_8"))?t.source_pts=r.$unpack("U*"):t.source_pts=r.$unpack("C*"),t.source_pts["$[]"](0)["$=="](65279)?t.p=1:o):t.source_pts=o},b.$$arity=1),e.def(V,"$encoding",k=function(){return this.source_buffer.$source().$encoding()},k.$$arity=0),e.const_set(W[0],"LEX_STATES",f(["line_begin","expr_dot","expr_fname","expr_value","expr_beg","expr_mid","expr_arg","expr_cmdarg","expr_end","expr_endarg","expr_endfn","expr_labelarg","interp_string","interp_words","plain_string","plain_words"],{line_begin:V.$lex_en_line_begin(),expr_dot:V.$lex_en_expr_dot(),expr_fname:V.$lex_en_expr_fname(),expr_value:V.$lex_en_expr_value(),expr_beg:V.$lex_en_expr_beg(),expr_mid:V.$lex_en_expr_mid(),expr_arg:V.$lex_en_expr_arg(),expr_cmdarg:V.$lex_en_expr_cmdarg(),expr_end:V.$lex_en_expr_end(),expr_endarg:V.$lex_en_expr_endarg(),expr_endfn:V.$lex_en_expr_endfn(),expr_labelarg:V.$lex_en_expr_labelarg(),interp_string:V.$lex_en_interp_string(),interp_words:V.$lex_en_interp_words(),plain_string:V.$lex_en_plain_string(),plain_words:V.$lex_en_plain_string()})),e.def(V,"$state",x=function(){var e=this;return _(W,"LEX_STATES").$invert().$fetch(e.cs,e.cs)},x.$$arity=0),e.def(V,"$state=",w=function(e){return this.cs=_(W,"LEX_STATES").$fetch(e)},w.$$arity=1),e.def(V,"$push_cmdarg",E=function(){var e=this;return e.cmdarg_stack.$push(e.cmdarg),e.cmdarg=_(W,"StackState").$new("cmdarg."+e.cmdarg_stack.$count())},E.$$arity=0),e.def(V,"$pop_cmdarg",R=function(){var e=this;return e.cmdarg=e.cmdarg_stack.$pop()},R.$$arity=0),e.def(V,"$push_cond",z=function(){var e=this;return e.cond_stack.$push(e.cond),e.cond=_(W,"StackState").$new("cond."+e.cond_stack.$count())},z.$$arity=0),e.def(V,"$pop_cond",A=function(){var e=this;return e.cond=e.cond_stack.$pop()},A.$$arity=0),e.def(V,"$dedent_level",N=function(){var e,t=this,r=o;return r=(e=[t.dedent_level,o])[0],t.dedent_level=e[1],r},N.$$arity=0),e.def(V,"$advance",S=function(){var s,u,d,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U,H,Y=this,X=o,V=o,K=o,Q=o,J=o,Z=o,ee=o,te=o,re=o,$e=o,ne=o,ae=o,ie=o,se=o,oe=o,ce=o,_e=o,ue=o,le=o,de=o,pe=o,fe=o,he=o,me=o,ge=o,ye=o,ve=o,be=o,ke=o,xe=o,we=o,Ee=o,Re=o,ze=o,Ae=o,Ne=o,Se=o,Oe=o,Te=o,Ie=o,Ce=o,qe=o,Pe=o,Be=o,De=o,Le=o,Ge=o,Me=o,je=o,Fe=o,Ue=o,He=o,Ye=o,Xe=o,Ve=o,We=o,Ke=o,Qe=o,Je=o,Ze=o,et=o,tt=o,rt=o,$t=o,nt=o,at=o,it=o,st=o,ot=o,ct=o,_t=o,ut=o,lt=o,dt=o,pt=o,ft=o,ht=o,mt=o,gt=o,yt=o,vt=o,bt=o,kt=o,xt=o,wt=o,Et=o,Rt=o,zt=o,At=o,Nt=o,St=o,Ot=o,Tt=o,It=o,Ct=o,qt=o,Pt=o,Bt=o,Dt=o,Lt=o,Gt=o,Mt=o,jt=o,Ft=o,Ut=o,Ht=o,Yt=o,Xt=o,Vt=o,Wt=o,Kt=o,Qt=o,Jt=o,Zt=o,er=o,tr=o,rr=o,$r=o,nr=o,ar=o,ir=o,sr=o,or=o,cr=o,_r=o,ur=o,lr=o,dr=o,pr=o,fr=o,hr=o,mr=o,gr=o,yr=o,vr=o,br=o,kr=o,xr=o,wr=o,Er=o,Rr=o,zr=o,Ar=o,Nr=o,Sr=o,Or=o,Tr=o,Ir=o,Cr=o,qr=o,Pr=o,Br=o,Dr=o,Lr=o,Gr=o,Mr=o,jr=o,Fr=o,Ur=o,Hr=o,Yr=o,Xr=o,Vr=o,Wr=o,Kr=o,Qr=o,Jr=o,Zr=o,e$=o,t$=o,r$=o,$$=o,n$=o,a$=o,i$=o,s$=o,o$=o,c$=o,_$=o,u$=o,l$=o,d$=o,p$=o,f$=o,h$=o,m$=o,g$=o,y$=o,v$=o,b$=o,k$=o,x$=o,w$=o,E$=o,R$=o,z$=o,A$=o,N$=o,S$=o,O$=o,T$=o,I$=o,C$=o,q$=o,P$=o,B$=o,D$=o,L$=o,G$=o,M$=o,j$=o,F$=o,U$=o,H$=o,Y$=o,X$=o,V$=o,W$=o,K$=o,Q$=o,J$=o,Z$=o,en=o,tn=o,rn=o,$n=o,nn=o,an=o,sn=o,on=o,cn=o,_n=o,un=o,ln=o,dn=o,pn=o,fn=o,hn=o,mn=o,gn=o,yn=o,vn=o,bn=o,kn=o,xn=o,wn=o,En=o,Rn=o,zn=o,An=o,Nn=o,Sn=o,On=o,Tn=o,In=o,Cn=o,qn=o,Pn=o,Bn=o,Dn=o,Ln=o,Gn=o,Mn=o,jn=o,Fn=o,Un=o,Hn=o,Yn=o,Xn=o,Vn=o,Wn=o,Kn=o,Qn=o,Jn=o,Zn=o,ea=o,ta=o,ra=o,$a=o,na=o,aa=o,ia=o,sa=o,oa=o,ca=o,_a=o,ua=o,la=o,da=o,pa=o,fa=o,ha=o,ma=o,ga=o,ya=o,va=o,ba=o,ka=o,xa=o,wa=o,Ea=o,Ra=o,za=o,Aa=o,Na=o,Sa=o,Oa=o,Ta=o,Ia=o,Ca=o,qa=o,Pa=o,Ba=o,Da=o,La=o,Ga=o,Ma=o,ja=o,Fa=o,Ua=o,Ha=o,Ya=o,Xa=o,Va=o,Wa=o,Ka=o,Qa=o,Ja=o,Za=o,ei=o,ti=o,ri=o,$i=o,ni=o,ai=o,ii=o,si=o,oi=o,ci=o,_i=o,ui=o,li=o,di=o,pi=o,fi=o,hi=o,mi=o,gi=o,yi=o,vi=o,bi=o,ki=o,xi=o,wi=o,Ei=o,Ri=o,zi=o,Ai=o,Ni=o,Si=o,Oi=o,Ti=o,Ii=o,Ci=o,qi=o,Pi=o,Bi=o,Di=o,Li=o,Gi=o,Mi=o,ji=o,Fi=o,Ui=o,Hi=o,Yi=o,Xi=o,Vi=o,Wi=o,Ki=o,Qi=o,Ji=o,Zi=o,es=o,ts=o,rs=o,$s=o,ns=o,as=o,is=o,ss=o,os=o,cs=o,_s=o,us=o,ls=o,ds=o,ps=o,fs=o,hs=o,ms=o,gs=o,ys=o,vs=o,bs=o,ks=o,xs=o,ws=o,Es=o,Rs=o,zs=o,As=o,Ns=o,Ss=o,Os=o,Ts=o,Is=o,Cs=o,qs=o,Ps=o,Bs=o,Ds=o,Ls=o,Gs=o,Ms=o,js=o,Fs=o,Us=o,Hs=o,Ys=o,Xs=o,Vs=o,Ws=o,Ks=o,Qs=o,Js=o,Zs=o,eo=o,to=o;if(p(Y.token_queue["$any?"]()))return Y.token_queue.$shift();for(X=Y.$class(),V=X.$send("_lex_trans_keys"),K=X.$send("_lex_key_spans"),Q=X.$send("_lex_index_offsets"),J=X.$send("_lex_indicies"),Z=X.$send("_lex_trans_targs"),ee=X.$send("_lex_trans_actions"),te=X.$send("_lex_to_state_actions"),re=X.$send("_lex_from_state_actions"),$e=X.$send("_lex_eof_trans"),ne=r(Y.source_pts.$size(),2),s=[Y.p,ne],ae=s[0],ie=s[1],se=Y.command_start,Y.command_start=!1,!1,u=o,s=e.to_ary(u),oe=null==s[0]?o:s[0],ce=null==s[1]?o:s[1],_e=null==s[2]?o:s[2],ue=null==s[3]?o:s[3],null==s[4]?o:s[4],null==s[5]?o:s[5],le=0,de=10,pe=15,fe=20,he=30,me=40;p(!0);){if(p($(le,0))){if(ae["$=="](ne)){le=he;continue}if(Y.cs["$=="](0)){le=me;continue}}if(p($(le,de))&&(ge=re["$[]"](Y.cs),97["$==="](ge)&&(Y.ts=ae),_e=Y.cs["$<<"](1),ue=Q["$[]"](Y.cs),oe=K["$[]"](Y.cs),ye=p(ve=Y.source_pts["$[]"](ae))?ve:0,ce=p(p(be=p(ke=n(oe,0))?$(V["$[]"](_e),ye):ke)?$(ye,V["$[]"](r(_e,1))):be)?J["$[]"](t(r(ue,ye),V["$[]"](_e))):J["$[]"](r(ue,oe))),p($(le,pe))&&(Y.cs=Z["$[]"](ce),p(ee["$[]"](ce)["$!="](0))))if(ge=ee["$[]"](ce),28["$==="](ge))Y.newline_s=ae;else if(117["$==="](ge))Y.escape_s=ae,Y.escape=o;else if(29["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o);else if(59["$==="](ge))Y.sharp_s=t(ae,1);else if(63["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae);else if(304["$==="](ge))xe=ae;else if(36["$==="](ge))xe=ae;else if(38["$==="](ge))xe=ae;else if(40["$==="](ge))xe=ae;else if(70["$==="](ge))we=ae;else if(343["$==="](ge))xe=t(ae,1),Ee="ivar_name";else if(346["$==="](ge))xe=t(ae,2),Ee="cvar_name";else if(354["$==="](ge))Y.escape=o;else if(383["$==="](ge))xe=ae;else if(302["$==="](ge))Re=Y.$tok(),ze=Y.ts,Ae=Y.te;else if(470["$==="](ge))Y.num_base=16,Y.num_digits_s=ae;else if(464["$==="](ge))Y.num_base=10,Y.num_digits_s=ae;else if(467["$==="](ge))Y.num_base=8,Y.num_digits_s=ae;else if(461["$==="](ge))Y.num_base=2,Y.num_digits_s=ae;else if(476["$==="](ge))Y.num_base=10,Y.num_digits_s=Y.ts;else if(438["$==="](ge))Y.num_base=8,Y.num_digits_s=Y.ts;else if(453["$==="](ge))Y.num_suffix_s=ae;else if(446["$==="](ge))Y.num_suffix_s=ae;else if(443["$==="](ge))Y.num_suffix_s=ae;else if(88["$==="](ge))xe=ae;else if(7["$==="](ge))Y.te=r(ae,1);else{if(113["$==="](ge)){Y.te=r(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DBEG","#{".$freeze()),p(Ne["$heredoc?"]())&&(Se=[Y.herebody_s],l(Ne,"saved_herebody_s=",e.to_a(Se)),Se[t(Se.length,1)],Y.herebody_s=o),Ne.$start_interp_brace(),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(5["$==="](ge)){Y.te=r(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DVAR",o,Y.ts,r(Y.ts,1)),ae=Y.ts,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(109["$==="](ge)){if(Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)} +p(p(Te=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():Te)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(108["$==="](ge)){if(Y.te=r(ae,1),Ie=Y.$tok(),p(p(Ce=a(Y.version,22))?Y.cond["$active?"]()["$!"]():Ce)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(Pe=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):Pe)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(115["$==="](ge))Y.te=ae,ae=t(ae,1),p(a(Y.version,27))?Y.$literal().$extend_string(Y.$tok(),Y.ts,Y.te):(De=p(Y.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",Y.$diagnostic("error",De,f(["name"],{name:Y.$tok(r(Y.ts,1),Y.te)}),Y.$range(r(Y.ts,1),Y.te)));else{if(114["$==="](ge)){Y.te=ae,ae=t(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DVAR",o,Y.ts,r(Y.ts,1)),ae=Y.ts,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(111["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$literal().$extend_space(Y.ts,Y.te);else if(112["$==="](ge)){if(Y.te=ae,ae=t(ae,1),Ie=Y.$tok(),p(p(Le=a(Y.version,22))?Y.cond["$active?"]()["$!"]():Le)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(Ge=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):Ge)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(6["$==="](ge))ae=t(Y.te,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(je=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):je)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Fe=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Fe)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Ue=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Ue)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(He=Y.escape)?He:Y.$tok(),Y.ts,Y.te);else if(4["$==="](ge)){if(ae=t(Y.te,1),Ie=Y.$tok(),p(p(Ye=a(Y.version,22))?Y.cond["$active?"]()["$!"]():Ye)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(Xe=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):Xe)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else{if(142["$==="](ge)){Y.te=r(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DBEG","#{".$freeze()),p(Ne["$heredoc?"]())&&(Se=[Y.herebody_s],l(Ne,"saved_herebody_s=",e.to_a(Se)),Se[t(Se.length,1)],Y.herebody_s=o),Ne.$start_interp_brace(),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(10["$==="](ge)){Y.te=r(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DVAR",o,Y.ts,r(Y.ts,1)),ae=Y.ts,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(139["$==="](ge)){if(Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(Ve=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():Ve)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(138["$==="](ge)){if(Y.te=r(ae,1),Ie=Y.$tok(),p(p(We=a(Y.version,22))?Y.cond["$active?"]()["$!"]():We)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(Ke=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):Ke)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(144["$==="](ge))Y.te=ae,ae=t(ae,1),p(a(Y.version,27))?Y.$literal().$extend_string(Y.$tok(),Y.ts,Y.te):(De=p(Y.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",Y.$diagnostic("error",De,f(["name"],{name:Y.$tok(r(Y.ts,1),Y.te)}),Y.$range(r(Y.ts,1),Y.te)));else{if(143["$==="](ge)){Y.te=ae,ae=t(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DVAR",o,Y.ts,r(Y.ts,1)),ae=Y.ts,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(141["$==="](ge)){if(Y.te=ae,ae=t(ae,1),Ie=Y.$tok(),p(p(Qe=a(Y.version,22))?Y.cond["$active?"]()["$!"]():Qe)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(Je=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):Je)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(11["$==="](ge))ae=t(Y.te,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Ze=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Ze)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(et=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):et)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(tt=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):tt)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(rt=Y.escape)?rt:Y.$tok(),Y.ts,Y.te);else if(9["$==="](ge)){if(ae=t(Y.te,1),Ie=Y.$tok(),p(p($t=a(Y.version,22))?Y.cond["$active?"]()["$!"]():$t)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(nt=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):nt)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(167["$==="](ge)){if(Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(at=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():at)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(166["$==="](ge)){if(Y.te=r(ae,1),Ie=Y.$tok(),p(p(it=a(Y.version,22))?Y.cond["$active?"]()["$!"]():it)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(st=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):st)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(169["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$literal().$extend_space(Y.ts,Y.te);else if(170["$==="](ge)){if(Y.te=ae,ae=t(ae,1),Ie=Y.$tok(),p(p(ot=a(Y.version,22))?Y.cond["$active?"]()["$!"]():ot)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(ct=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):ct)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(173["$==="](ge)){if(Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(_t=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():_t)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(172["$==="](ge)){if(Y.te=r(ae,1),Ie=Y.$tok(),p(p(ut=a(Y.version,22))?Y.cond["$active?"]()["$!"]():ut)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(lt=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):lt)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(175["$==="](ge)){if(Y.te=ae,ae=t(ae,1),Ie=Y.$tok(),p(p(dt=a(Y.version,22))?Y.cond["$active?"]()["$!"]():dt)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(pt=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):pt)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else{if(182["$==="](ge)){Y.te=r(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DBEG","#{".$freeze()),p(Ne["$heredoc?"]())&&(Se=[Y.herebody_s],l(Ne,"saved_herebody_s=",e.to_a(Se)),Se[t(Se.length,1)],Y.herebody_s=o),Ne.$start_interp_brace(),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(13["$==="](ge)){Y.te=r(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DVAR",o,Y.ts,r(Y.ts,1)),ae=Y.ts,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(179["$==="](ge)){if(Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(ft=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():ft)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(178["$==="](ge)){if(Y.te=r(ae,1),Ie=Y.$tok(),p(p(ht=a(Y.version,22))?Y.cond["$active?"]()["$!"]():ht)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(mt=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):mt)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(184["$==="](ge))Y.te=ae,ae=t(ae,1),p(a(Y.version,27))?Y.$literal().$extend_string(Y.$tok(),Y.ts,Y.te):(De=p(Y.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",Y.$diagnostic("error",De,f(["name"],{name:Y.$tok(r(Y.ts,1),Y.te)}),Y.$range(r(Y.ts,1),Y.te)));else{if(183["$==="](ge)){Y.te=ae,ae=t(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DVAR",o,Y.ts,r(Y.ts,1)),ae=Y.ts,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(181["$==="](ge)){if(Y.te=ae,ae=t(ae,1),Ie=Y.$tok(),p(p(gt=a(Y.version,22))?Y.cond["$active?"]()["$!"]():gt)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(yt=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):yt)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(12["$==="](ge)){if(ae=t(Y.te,1),Ie=Y.$tok(),p(p(vt=a(Y.version,22))?Y.cond["$active?"]()["$!"]():vt)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(bt=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):bt)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(186["$==="](ge)){if(Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(kt=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():kt)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(185["$==="](ge)){if(Y.te=r(ae,1),Ie=Y.$tok(),p(p(xt=a(Y.version,22))?Y.cond["$active?"]()["$!"]():xt)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(wt=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):wt)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else{if(193["$==="](ge)){Y.te=r(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DBEG","#{".$freeze()),p(Ne["$heredoc?"]())&&(Se=[Y.herebody_s],l(Ne,"saved_herebody_s=",e.to_a(Se)),Se[t(Se.length,1)],Y.herebody_s=o),Ne.$start_interp_brace(),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(15["$==="](ge)){Y.te=r(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DVAR",o,Y.ts,r(Y.ts,1)),ae=Y.ts,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(189["$==="](ge)){if(Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(Et=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():Et)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(188["$==="](ge)){if(Y.te=r(ae,1),Ie=Y.$tok(),p(p(Rt=a(Y.version,22))?Y.cond["$active?"]()["$!"]():Rt)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(zt=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):zt)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(195["$==="](ge))Y.te=ae,ae=t(ae,1),p(a(Y.version,27))?Y.$literal().$extend_string(Y.$tok(),Y.ts,Y.te):(De=p(Y.$tok()["$start_with?"]("#@@"))?"cvar_name":"ivar_name",Y.$diagnostic("error",De,f(["name"],{name:Y.$tok(r(Y.ts,1),Y.te)}),Y.$range(r(Y.ts,1),Y.te)));else{if(194["$==="](ge)){Y.te=ae,ae=t(ae,1),(Ne=Y.$literal()).$flush_string(),Ne.$extend_content(),Y.$emit("tSTRING_DVAR",o,Y.ts,r(Y.ts,1)),ae=Y.ts,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(191["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$literal().$extend_space(Y.ts,Y.te);else if(192["$==="](ge)){if(Y.te=ae,ae=t(ae,1),Ie=Y.$tok(),p(p(At=a(Y.version,22))?Y.cond["$active?"]()["$!"]():At)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(Nt=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):Nt)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(14["$==="](ge)){if(ae=t(Y.te,1),Ie=Y.$tok(),p(p(St=a(Y.version,22))?Y.cond["$active?"]()["$!"]():St)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(Ot=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):Ot)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(197["$==="](ge)){if(Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(Tt=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():Tt)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(196["$==="](ge)){if(Y.te=r(ae,1),Ie=Y.$tok(),p(p(It=a(Y.version,22))?Y.cond["$active?"]()["$!"]():It)&&(qe=Y.source_buffer.$slice(e.Range.$new(Y.te,r(Y.te,2),!0))),Ne=Y.$literal(),p(p(Ct=Ne["$heredoc?"]()["$!"]())?Be=Ne.$nest_and_try_closing(Ie,Y.ts,Y.te,qe):Ct)){Be["$[]"](0)["$=="]("tLABEL_END")?(ae=r(ae,1),Y.$pop_literal(),Y.cs=766):Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$extend_string(Ie,Y.ts,Y.te)}else if(199["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$literal().$extend_space(Y.ts,Y.te);else{if(200["$==="](ge)){Y.te=r(ae,1),Y.$emit("tREGEXP_OPT",Y.$tok(Y.ts,t(Y.te,1)),Y.ts,t(Y.te,1)),ae=t(ae,1),Y.cs=781,le=fe;continue}if(201["$==="](ge)){Y.te=ae,ae=t(ae,1),qt=Y.$tok().$scan(/[^imxouesn]/),p(qt["$any?"]())&&Y.$diagnostic("error","regexp_options",f(["options"],{options:qt.$join()})),Y.$emit("tREGEXP_OPT"),Y.cs=781,ae=r(ae,1),le=me;continue}if(16["$==="](ge)){Y.te=r(ae,1),p(Y.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?Y.$emit("tNTH_REF",Y.$tok(r(Y.ts,1)).$to_i()):p(Y.$tok()["$=~"](/^\$([&`'+])$/))?Y.$emit("tBACK_REF"):Y.$emit("tGVAR"),Y.cs=Y.$stack_pop(),ae=r(ae,1),le=me;continue}if(202["$==="](ge)){Y.te=ae,ae=t(ae,1),p(Y.$tok()["$=~"](/^\$([1-9][0-9]*)$/))?Y.$emit("tNTH_REF",Y.$tok(r(Y.ts,1)).$to_i()):p(Y.$tok()["$=~"](/^\$([&`'+])$/))?Y.$emit("tBACK_REF"):Y.$emit("tGVAR"),Y.cs=Y.$stack_pop(),ae=r(ae,1),le=me;continue}if(204["$==="](ge)){Y.te=ae,ae=t(ae,1),p(Y.$tok()["$=~"](/^@@[0-9]/))&&Y.$diagnostic("error","cvar_name",f(["name"],{name:Y.$tok()})),Y.$emit("tCVAR"),Y.cs=Y.$stack_pop(),ae=r(ae,1),le=me;continue}if(203["$==="](ge)){Y.te=ae,ae=t(ae,1),p(Y.$tok()["$=~"](/^@[0-9]/))&&Y.$diagnostic("error","ivar_name",f(["name"],{name:Y.$tok()})),Y.$emit("tIVAR"),Y.cs=Y.$stack_pop(),ae=r(ae,1),le=me;continue}if(225["$==="](ge)){Y.te=r(ae,1),Y.$emit_table(_(W,"KEYWORDS_BEGIN")),Y.cs=446,ae=r(ae,1),le=me;continue}if(211["$==="](ge)){Y.te=r(ae,1),Y.$emit("tIDENTIFIER"),Y.cs=446,ae=r(ae,1),le=me;continue}if(18["$==="](ge)){Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=781,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(208["$==="](ge)){Y.te=r(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=446,ae=r(ae,1),le=me;continue}if(220["$==="](ge)){Y.te=r(ae,1),ae=t(ae=t(ae,1),1),Y.cs=781,le=fe;continue}if(20["$==="](ge)){if(Y.te=r(ae,1),p(Y["$version?"](23))){Pt=(u=[Y.$tok()["$[]"](h(0,-2,!1)),Y.$tok()["$[]"](-1).$chr()])[0],Bt=u[1],Y.cs=Y.$push_literal(Pt,Bt,Y.ts),le=fe;continue}ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(207["$==="](ge)){Y.te=r(ae,1),ae=t(ae,1),Y.cs=781,le=fe;continue}if(206["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(224["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"KEYWORDS_BEGIN")),Y.cs=446,ae=r(ae,1),le=me;continue}if(221["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("tCONSTANT"),Y.cs=446,ae=r(ae,1),le=me;continue}if(223["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("tIDENTIFIER"),Y.cs=446,ae=r(ae,1),le=me;continue}if(218["$==="](ge)){Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(214["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=446,ae=r(ae,1),le=me;continue}if(219["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=543,le=fe;continue}if(212["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(217["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=781,le=fe;continue}if(19["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=446,ae=r(ae,1),le=me;continue}if(17["$==="](ge)){ae=t(ae=t(Y.te,1),1),Y.cs=781,le=fe;continue}if(210["$==="](ge)){if(ge=Y.act,43["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS_BEGIN")),Y.cs=446,ae=r(ae,1),le=me;continue}if(44["$==="](ge)){ae=t(Y.te,1),Y.$emit("tCONSTANT"),Y.cs=446,ae=r(ae,1),le=me;continue}if(45["$==="](ge)){ae=t(Y.te,1),Y.$emit("tIDENTIFIER"),Y.cs=446,ae=r(ae,1),le=me;continue}}else{if(22["$==="](ge)){Y.te=r(ae,1),Y.$emit("tLABEL",Y.$tok(Y.ts,t(Y.te,2)),Y.ts,t(Y.te,1)),ae=t(ae,1),Y.cs=766,ae=r(ae,1),le=me;continue}if(227["$==="](ge)){Y.te=r(ae,1),ae=t(ae,1),Y.cs=781,le=fe;continue}if(226["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(229["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(228["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=781,le=fe;continue}if(21["$==="](ge)){ae=t(ae=t(Y.te,1),1),Y.cs=781,le=fe;continue}if(235["$==="](ge)){Y.te=r(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=474,ae=r(ae,1),le=me;continue}if(234["$==="](ge)){Y.te=r(ae,1),ae=t(ae,1),Y.cs=781,le=fe;continue}if(233["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(245["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("tCONSTANT"),Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(236["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("tIDENTIFIER"),Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(241["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=474,ae=r(ae,1),le=me;continue}if(239["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(244["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=781,le=fe;continue}if(268["$==="](ge)){Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(251["$==="](ge)){Y.te=r(ae,1),Y.$tok(xe,r(xe,1))["$=="]("/".$freeze())&&(p(i(Y.version,30))?Y.$diagnostic("warning","ambiguous_literal",o,Y.$range(xe,r(xe,1))):Y.$diagnostic("warning","ambiguous_regexp",o,Y.$range(xe,r(xe,1)))),ae=t(xe,1),Y.cs=543,le=fe;continue}if(257["$==="](ge)){Y.te=r(ae,1),ae=t(ae=t(ae,1),1),Y.cs=543,le=fe;continue}if(24["$==="](ge)){Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=543,le=fe;continue}if(259["$==="](ge)){Y.te=r(ae,1),ae=t(xe,1),Y.cs=781,le=fe;continue}if(39["$==="](ge)){Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(246["$==="](ge)){Y.te=r(ae,1),ae=t(ae,1),Y.cs=543,le=fe;continue}if(247["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(258["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=543,le=fe;continue}if(254["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$diagnostic("warning","ambiguous_prefix",f(["prefix"],{prefix:Y.$tok(xe,Y.te)}),Y.$range(xe,Y.te)),ae=t(xe,1),Y.cs=543,le=fe;continue}if(256["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=543,le=fe;continue}if(250["$==="](ge)){Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(249["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(267["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=543,le=fe;continue}if(25["$==="](ge))ae=t(Y.te,1);else{if(41["$==="](ge)){ae=t(ae=t(Y.te,1),1),Y.cs=543,le=fe;continue}if(23["$==="](ge)){if(ge=Y.act,71["$==="](ge)){ae=t(Y.te,1),Y.$tok(xe,r(xe,1))["$=="]("/".$freeze())&&(p(i(Y.version,30))?Y.$diagnostic("warning","ambiguous_literal",o,Y.$range(xe,r(xe,1))):Y.$diagnostic("warning","ambiguous_regexp",o,Y.$range(xe,r(xe,1)))),ae=t(xe,1),Y.cs=543,le=fe;continue}if(72["$==="](ge)){ae=t(Y.te,1),Y.$diagnostic("warning","ambiguous_prefix",f(["prefix"],{prefix:Y.$tok(xe,Y.te)}),Y.$range(xe,Y.te)),ae=t(xe,1),Y.cs=543,le=fe;continue}if(77["$==="](ge)){ae=t(Y.te,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}ae=t(Y.te,1)}else{if(43["$==="](ge)){Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=474,le=fe;continue}if(272["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(273["$==="](ge)){Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=474,le=fe;continue}if(44["$==="](ge)){ae=t(Y.te,1),ae=t(Y.ts,1),Y.cs=474,le=fe;continue}if(42["$==="](ge)){if(ge=Y.act,84["$==="](ge)){ae=t(Y.te,1),p(Y.cond["$active?"]())?Y.$emit("kDO_COND","do".$freeze(),t(Y.te,2),Y.te):Y.$emit("kDO","do".$freeze(),t(Y.te,2),Y.te),Y.cs=773,ae=r(ae,1),le=me;continue}if(85["$==="](ge)){ae=t(Y.te,1),ae=t(Y.ts,1),Y.cs=474,le=fe;continue}}else{if(283["$==="](ge)){Y.te=r(ae,1),Y.$emit_do(!0),Y.cs=773,ae=r(ae,1),le=me;continue}if(276["$==="](ge)){Y.te=r(ae,1),ae=t(ae,1),Y.cs=781,le=fe;continue}if(277["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(278["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(281["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=781,le=fe;continue}if(287["$==="](ge)){Y.te=r(ae,1),ae=t(ae,1),Y.cs=543,le=fe;continue}if(286["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(295["$==="](ge)){Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=543,le=fe;continue}if(289["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(293["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=543,le=fe;continue}if(288["$==="](ge)){if(ge=Y.act,92["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),Y.cs=543,ae=r(ae,1),le=me;continue}if(93["$==="](ge)){ae=t(Y.te,1),ae=t(Y.ts,1),Y.cs=543,le=fe;continue}}else{if(56["$==="](ge)){Y.te=r(ae,1),Y.$emit("tUNARY_NUM",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=t(ae,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(328["$==="](ge)){Y.te=r(ae,1),Pt=Bt=Y.$tok()["$[]"](0).$chr(),ae=t(ae,1),Y.cs=Y.$push_literal(Pt,Bt,Y.ts),le=fe;continue}if(320["$==="](ge)){Y.te=r(ae,1),Pt=(u=[Y.source_buffer.$slice(Y.ts).$chr(),Y.$tok()["$[]"](-1).$chr()])[0],Bt=u[1],Y.cs=Y.$push_literal(Pt,Bt,Y.ts),le=fe;continue}if(54["$==="](ge)){Y.te=r(ae,1),Pt=(u=[Y.$tok()["$[]"](h(0,-2,!1)),Y.$tok()["$[]"](-1).$chr()])[0],Bt=u[1],Y.cs=Y.$push_literal(Pt,Bt,Y.ts),le=fe;continue}if(341["$==="](ge)){Y.te=r(ae,1),ae=t(ae=t(ae,1),1),Y.$emit("tSYMBEG",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),Y.cs=333,le=fe;continue}if(329["$==="](ge)){Y.te=r(ae,1),Pt=(u=[Y.$tok(),Y.$tok()["$[]"](-1).$chr()])[0],Bt=u[1],Y.cs=Y.$push_literal(Pt,Bt,Y.ts),le=fe;continue}if(340["$==="](ge)){Y.te=r(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1),r(Y.ts,2))),Y.cs=781,ae=r(ae,1),le=me;continue}if(68["$==="](ge)){Y.te=r(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1)),Y.ts),Y.cs=781,ae=r(ae,1),le=me;continue}if(351["$==="](ge)){Y.te=r(ae,1),Dt=f([" ","\r","\n","\t","\x0B","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\x0B":"\\v","\f":"\\f"})["$[]"](Y.source_buffer.$slice(r(Y.ts,1))),Y.$diagnostic("warning","invalid_escape_use",f(["escape"],{escape:Dt}),Y.$range()),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(350["$==="](ge))Y.te=r(ae,1),Y.$diagnostic("fatal","incomplete_escape",o,Y.$range(Y.ts,r(Y.ts,1)));else{if(330["$==="](ge)){Y.te=r(ae,1),Y.$emit_table(_(W,"PUNCTUATION_BEGIN")),ae=r(ae,1),le=me;continue}if(51["$==="](ge)){Y.te=r(ae,1),ae=t(ae,1),p(Y["$version?"](18))?(Lt=Y.$tok(Y.ts,t(Y.te,2)),Y.$emit(p(Y.source_buffer.$slice(Y.ts)["$=~"](/[A-Z]/))?"tCONSTANT":"tIDENTIFIER",Lt,Y.ts,t(Y.te,2)),ae=t(ae,1),p(p(Gt=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Lt):Gt)?Y.cs=781:Y.cs=Y.$arg_or_cmdarg(se)):(Y.$emit("tLABEL",Y.$tok(Y.ts,t(Y.te,2)),Y.ts,t(Y.te,1)),Y.cs=766),ae=r(ae,1),le=me;continue}if(327["$==="](ge)){Y.te=r(ae,1),p(a(Y.version,30))?p(p(Mt=Y.lambda_stack["$any?"]())?r(Y.lambda_stack.$last(),1)["$=="](Y.paren_nest):Mt)?Y.$emit("tDOT3"):Y.$emit("tBDOT3"):p(a(Y.version,27))?Y.$emit("tBDOT3"):Y.$emit("tDOT3"),Y.cs=543,ae=r(ae,1),le=me;continue}if(48["$==="](ge)){Y.te=r(ae,1),Y.$emit("tIDENTIFIER",Re,ze,Ae),ae=t(Ae,1),p(p(jt=p(Ft=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Re):Ft)?i(Y.version,25):jt)?Y.cs=446:Y.cs=505,ae=r(ae,1),le=me;continue}if(314["$==="](ge)){Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs_before_block_comment=Y.cs,Y.cs=185,le=fe;continue}if(55["$==="](ge)){Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(298["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(325["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("tUNARY_NUM",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=t(ae,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(324["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("tSTAR","*".$freeze()),ae=r(ae,1),le=me;continue}if(321["$==="](ge)){Y.te=ae,ae=t(ae,1),Pt=(u=[Y.$tok()["$[]"](h(0,-2,!1)),Y.$tok()["$[]"](-1).$chr()])[0],Bt=u[1],Y.cs=Y.$push_literal(Pt,Bt,Y.ts),le=fe;continue}if(319["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$diagnostic("fatal","string_eof",o,Y.$range(Y.ts,r(Y.ts,1)));else if(348["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$diagnostic("error","unterminated_heredoc_id",o,Y.$range(Y.ts,r(Y.ts,1)));else{if(331["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1)),Y.ts),Y.cs=781,ae=r(ae,1),le=me;continue}if(344["$==="](ge)){Y.te=ae,ae=t(ae,1),p(a(Y.version,27))?Y.$diagnostic("error",Ee,f(["name"],{name:Y.$tok(xe,Y.te)}),Y.$range(xe,Y.te)):(Y.$emit("tCOLON",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=Y.ts),Y.cs=781,ae=r(ae,1),le=me;continue}if(349["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$diagnostic("fatal","incomplete_escape",o,Y.$range(Y.ts,r(Y.ts,1)));else{if(355["$==="](ge)){Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(322["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION_BEGIN")),ae=r(ae,1),le=me;continue}if(326["$==="](ge)){Y.te=ae,ae=t(ae,1),p(a(Y.version,27))?Y.$emit("tBDOT2"):Y.$emit("tDOT2"),Y.cs=543,ae=r(ae,1),le=me;continue}if(301["$==="](ge)){if(Y.te=ae,ae=t(ae,1),Y.$emit("tIDENTIFIER"),p(p(Ut=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Y.$tok()):Ut)){Y.cs=446,ae=r(ae,1),le=me;continue}Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(311["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(313["$==="](ge)){Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs_before_block_comment=Y.cs,Y.cs=185,le=fe;continue}if(316["$==="](ge)){Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(53["$==="](ge))ae=t(Y.te,1),Y.$diagnostic("fatal","string_eof",o,Y.$range(Y.ts,r(Y.ts,1)));else if(72["$==="](ge))ae=t(Y.te,1),Y.$diagnostic("error","unterminated_heredoc_id",o,Y.$range(Y.ts,r(Y.ts,1)));else{if(73["$==="](ge)){ae=t(Y.te,1),Ht=p(Yt=Y.escape)?Yt:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(47["$==="](ge)){if(ae=t(Y.te,1),Y.$emit("tIDENTIFIER"),p(p(Xt=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Y.$tok()):Xt)){Y.cs=446,ae=r(ae,1),le=me;continue}Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(52["$==="](ge))ae=t(Y.te,1);else{if(67["$==="](ge)){ae=t(Y.te,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(50["$==="](ge)){if(ge=Y.act,98["$==="](ge)){ae=t(Y.te,1),Y.$emit("tUNARY_NUM",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=t(ae,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(105["$==="](ge))ae=t(Y.te,1),Y.$diagnostic("error","unterminated_heredoc_id",o,Y.$range(Y.ts,r(Y.ts,1)));else{if(116["$==="](ge)){if(ae=t(Y.te,1),p(a(Y.version,27))){Y.$emit("tPIPE",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=t(ae,1),Y.cs=543,ae=r(ae,1),le=me;continue}ae=t(ae,2),Y.cs=781,le=fe;continue}if(120["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"PUNCTUATION_BEGIN")),ae=r(ae,1),le=me;continue}if(121["$==="](ge)){ae=t(Y.te,1),Y.$emit("kRESCUE","rescue".$freeze(),Y.ts,xe),ae=t(xe,1),Y.cs=519,ae=r(ae,1),le=me +;continue}if(122["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS_BEGIN")),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(126["$==="](ge)){ae=t(Y.te,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(127["$==="](ge)){if(ae=t(Y.te,1),Y.$emit("tIDENTIFIER"),p(p(Vt=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Y.$tok()):Vt)){Y.cs=446,ae=r(ae,1),le=me;continue}Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(131["$==="](ge)){ae=t(Y.te,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}}}else{if(386["$==="](ge)){Y.te=r(ae,1),ae=t(ae,1),Y.cs=543,le=fe;continue}if(387["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(388["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(392["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=543,le=fe;continue}if(76["$==="](ge)){Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(396["$==="](ge)){Y.te=r(ae,1),Y.cs=Y.$push_literal(Y.$tok(),Y.$tok(),Y.ts),le=fe;continue}if(395["$==="](ge)){Y.te=r(ae,1),ae=t(ae,1),Y.cs=543,le=fe;continue}if(394["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(398["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(397["$==="](ge)){Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=543,le=fe;continue}if(75["$==="](ge)){ae=t(ae=t(Y.te,1),1),Y.cs=543,le=fe;continue}if(431["$==="](ge)){Y.te=r(ae,1),Y.$emit("tLAMBDA","->".$freeze(),Y.ts,r(Y.ts,2)),Y.lambda_stack.$push(Y.paren_nest),Y.cs=446,ae=r(ae,1),le=me;continue}if(85["$==="](ge)){Y.te=r(ae,1),Y.$emit("kCLASS","class".$freeze(),Y.ts,r(Y.ts,5)),Y.$emit("tLSHFT","<<".$freeze(),t(Y.te,2),Y.te),Y.cs=773,ae=r(ae,1),le=me;continue}if(406["$==="](ge)){Y.te=r(ae,1),Pt=(u=[Y.$tok(),Y.$tok()["$[]"](-1).$chr()])[0],Bt=u[1],Y.cs=Y.$push_literal(Pt,Bt,Y.ts,o,!1,!1,!0),le=fe;continue}if(78["$==="](ge)){Y.te=r(ae,1),ae=t(Y.ts,1),Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(427["$==="](ge)){Y.te=r(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=453,ae=r(ae,1),le=me;continue}if(480["$==="](ge)){Y.te=r(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=773,ae=r(ae,1),le=me;continue}if(420["$==="](ge)){Y.te=r(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=773,ae=r(ae,1),le=me;continue}if(425["$==="](ge)){Y.te=r(ae,1),Y.$emit("tOP_ASGN",Y.$tok(Y.ts,t(Y.te,1))),Y.cs=543,ae=r(ae,1),le=me;continue}if(411["$==="](ge)){Y.te=r(ae,1),Y.$emit("tEH","?".$freeze()),Y.cs=773,ae=r(ae,1),le=me;continue}if(408["$==="](ge)){Y.te=r(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=543,ae=r(ae,1),le=me;continue}if(410["$==="](ge)){Y.te=r(ae,1),Y.$emit("tSEMI",";".$freeze()),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(485["$==="](ge))Y.te=r(ae,1),Y.$diagnostic("error","bare_backslash",o,Y.$range(Y.ts,r(Y.ts,1))),ae=t(ae,1);else if(405["$==="](ge))Y.te=r(ae,1),Y.$diagnostic("fatal","unexpected",f(["character"],{character:Y.$tok().$inspect()["$[]"](h(1,-2,!1))}));else{if(404["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(496["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"KEYWORDS")),Y.cs=333,ae=r(ae,1),le=me;continue}if(494["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("kCLASS","class".$freeze(),Y.ts,r(Y.ts,5)),Y.$emit("tLSHFT","<<".$freeze(),t(Y.te,2),Y.te),Y.cs=773,ae=r(ae,1),le=me;continue}if(493["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"KEYWORDS")),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(435["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$diagnostic("error","no_dot_digit_literal");else{if(482["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("tCONSTANT"),Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(424["$==="](ge)){Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Se=[Y.top,Y.cs],l(Y.stack,"[]=",e.to_a(Se)),Se[t(Se.length,1)],Y.top=r(Y.top,1),Y.cs=328,le=fe;continue}if(432["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=453,ae=r(ae,1),le=me;continue}if(488["$==="](ge)){if(Y.te=ae,ae=t(ae,1),Y.$emit("tIDENTIFIER"),p(p(Wt=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Y.$tok()):Wt)){Y.cs=446,ae=r(ae,1),le=me;continue}Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(430["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=773,ae=r(ae,1),le=me;continue}if(426["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=773,ae=r(ae,1),le=me;continue}if(419["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=543,ae=r(ae,1),le=me;continue}if(433["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=543,ae=r(ae,1),le=me;continue}if(417["$==="](ge))Y.te=ae,ae=t(ae,1);else if(423["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$diagnostic("fatal","unexpected",f(["character"],{character:Y.$tok().$inspect()["$[]"](h(1,-2,!1))}));else{if(83["$==="](ge)){ae=t(Y.te,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Qt=p(Jt=Kt["$empty?"]())?Y.num_base["$=="](8):Jt)?Y["$version?"](18):Qt)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(Zt=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):Zt)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(79["$==="](ge))ae=t(Y.te,1),Y.$diagnostic("error","no_dot_digit_literal");else{if(82["$==="](ge)){ae=t(Y.te,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(77["$==="](ge))ae=t(Y.te,1),Y.$diagnostic("fatal","unexpected",f(["character"],{character:Y.$tok().$inspect()["$[]"](h(1,-2,!1))}));else if(80["$==="](ge)){if(ge=Y.act,144["$==="](ge)){ae=t(Y.te,1),Y.lambda_stack.$last()["$=="](Y.paren_nest)?(Y.lambda_stack.$pop(),Y.$tok()["$=="]("{".$freeze())?Y.$emit("tLAMBEG","{".$freeze()):Y.$emit("kDO_LAMBDA","do".$freeze())):Y.$tok()["$=="]("{".$freeze())?Y.$emit("tLCURLY","{".$freeze()):Y.$emit_do(),Y.$tok()["$=="]("{".$freeze())&&(Y.paren_nest=r(Y.paren_nest,1)),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(145["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),Y.cs=333,ae=r(ae,1),le=me;continue}if(146["$==="](ge)){ae=t(Y.te,1),Y.$emit("kCLASS","class".$freeze(),Y.ts,r(Y.ts,5)),Y.$emit("tLSHFT","<<".$freeze(),t(Y.te,2),Y.te),Y.cs=773,ae=r(ae,1),le=me;continue}if(147["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),Y.cs=543,ae=r(ae,1),le=me;continue}if(148["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(149["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),Y.cs=519,ae=r(ae,1),le=me;continue}if(150["$==="](ge)){if(ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),p(p(rr=Y["$version?"](18))?Y.$tok()["$=="]("not".$freeze()):rr)){Y.cs=543,ae=r(ae,1),le=me;continue}Y.cs=474,ae=r(ae,1),le=me;continue}if(151["$==="](ge)){ae=t(Y.te,1),p(Y["$version?"](18))?(Y.$emit("tIDENTIFIER"),p(p($r=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Y.$tok()):$r)||(Y.cs=Y.$arg_or_cmdarg(se))):Y.$emit("k__ENCODING__","__ENCODING__".$freeze()),ae=r(ae,1),le=me;continue}if(152["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),ae=r(ae,1),le=me;continue}if(153["$==="](ge)){ae=t(Y.te,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(nr=p(ar=Kt["$empty?"]())?Y.num_base["$=="](8):ar)?Y["$version?"](18):nr)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(ir=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):ir)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(155["$==="](ge)){if(ae=t(Y.te,1),!p(Y["$version?"](18,19,20))){Y.$emit("tINTEGER",Y.$tok(Y.ts,t(Y.te,1)).$to_i(),Y.ts,t(Y.te,1)),ae=r(ae=t(ae,1),1),le=me;continue}Y.$diagnostic("error","trailing_in_number",f(["character"],{character:Y.$tok(t(Y.te,1),Y.te)}),Y.$range(t(Y.te,1),Y.te))}else if(156["$==="](ge)){if(ae=t(Y.te,1),!p(Y["$version?"](18,19,20))){Y.$emit("tFLOAT",Y.$tok(Y.ts,t(Y.te,1)).$to_f(),Y.ts,t(Y.te,1)),ae=r(ae=t(ae,1),1),le=me;continue}Y.$diagnostic("error","trailing_in_number",f(["character"],{character:Y.$tok(t(Y.te,1),Y.te)}),Y.$range(t(Y.te,1),Y.te))}else{if(157["$==="](ge)){ae=t(Y.te,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(159["$==="](ge)){ae=t(Y.te,1),Y.$emit("tCONSTANT"),Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(163["$==="](ge)){if(ae=t(Y.te,1),Y.$emit("tIDENTIFIER"),p(p(sr=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Y.$tok()):sr)){Y.cs=446,ae=r(ae,1),le=me;continue}Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(164["$==="](ge)){ae=t(Y.te,1),xe["$=="](Y.te)?Y.$emit("tFID"):(Y.$emit("tIDENTIFIER",Y.$tok(Y.ts,xe),Y.ts,xe),ae=t(xe,1)),Y.cs=474,ae=r(ae,1),le=me;continue}if(166["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=773,ae=r(ae,1),le=me;continue}if(167["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=543,ae=r(ae,1),le=me;continue}}}else{if(95["$==="](ge)){Y.te=r(ae,1),ae=t(xe,1),Y.cs=781,le=fe;continue}if(501["$==="](ge)){Y.te=r(ae,1),Y.$emit("tNL",o,Y.newline_s,r(Y.newline_s,1)),ae=t(ae,1),Y.cs=185,ae=r(ae,1),le=me;continue}if(504["$==="](ge)){if(Y.te=ae,ae=t(ae,1),p(i(Y.version,27))){Y.$emit("tNL",o,Y.newline_s,r(Y.newline_s,1)),ae=t(ae,1),Y.cs=185,ae=r(ae,1),le=me;continue}}else{if(503["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit("tNL",o,Y.newline_s,r(Y.newline_s,1)),ae=t(ae,1),Y.cs=185,ae=r(ae,1),le=me;continue}if(90["$==="](ge)){if(ae=t(Y.te,1),p(i(Y.version,27))){Y.$emit("tNL",o,Y.newline_s,r(Y.newline_s,1)),ae=t(ae,1),Y.cs=185,ae=r(ae,1),le=me;continue}}else{if(86["$==="](ge)){ae=t(Y.te,1),Y.$emit("tNL",o,Y.newline_s,r(Y.newline_s,1)),ae=t(ae,1),Y.cs=185,ae=r(ae,1),le=me;continue}if(91["$==="](ge)){if(ge=Y.act,180["$==="](ge)){if(ae=t(Y.te,1),p(i(Y.version,27))){Y.$emit("tNL",o,Y.newline_s,r(Y.newline_s,1)),ae=t(ae,1),Y.cs=185,ae=r(ae,1),le=me;continue}}else if(182["$==="](ge)){ae=t(Y.te,1),Y.$emit("tNL",o,Y.newline_s,r(Y.newline_s,1)),ae=t(ae,1),Y.cs=185,ae=r(ae,1),le=me;continue}}else{if(507["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.$emit_comment(Y.eq_begin_s,Y.te),Y.cs=Y.cs_before_block_comment,le=fe;continue}if(506["$==="](ge))Y.te=ae,ae=t(ae,1),Y.$diagnostic("fatal","embedded_document",o,Y.$range(Y.eq_begin_s,r(Y.eq_begin_s,"=begin".$length())));else{if(106["$==="](ge)){Y.te=r(ae,1),Y.eq_begin_s=Y.ts,Y.cs=967,le=fe;continue}if(2["$==="](ge))Y.te=r(ae,1),ae=t(ne,3);else{if(98["$==="](ge)){Y.te=r(ae,1),se=!0,ae=t(ae,1),Y.cs=773,le=fe;continue}if(99["$==="](ge)){Y.te=r(ae,1),ae=r(ae=t(ae,1),1),le=me;continue}if(100["$==="](ge))Y.te=ae,ae=t(ae,1);else{if(105["$==="](ge)){Y.te=ae,ae=t(ae,1),Y.eq_begin_s=Y.ts,Y.cs=967,le=fe;continue}if(104["$==="](ge)){Y.te=ae,se=!0,ae=t(ae=t(ae,1),1),Y.cs=773,le=fe;continue}if(1["$==="](ge)){se=!0,ae=t(ae=t(Y.te,1),1),Y.cs=773,le=fe;continue}if(66["$==="](ge))Y.newline_s=ae,Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae);else if(110["$==="](ge)){if(Y.newline_s=ae,Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(or=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():or)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(140["$==="](ge)){if(Y.newline_s=ae,Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(cr=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():cr)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(168["$==="](ge)){if(Y.newline_s=ae,Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(_r=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():_r)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(174["$==="](ge)){if(Y.newline_s=ae,Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(ur=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():ur)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(180["$==="](ge)){if(Y.newline_s=ae,Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(lr=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():lr)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(187["$==="](ge)){if(Y.newline_s=ae,Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(dr=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():dr)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(190["$==="](ge)){if(Y.newline_s=ae,Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(pr=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():pr)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else if(198["$==="](ge)){if(Y.newline_s=ae,Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(fr=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():fr)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string())}else{if(269["$==="](ge)){Y.newline_s=ae,Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(260["$==="](ge)){Y.newline_s=ae,Y.te=r(ae,1),ae=t(xe,1),Y.cs=781,le=fe;continue}if(252["$==="](ge)){Y.newline_s=ae,Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(352["$==="](ge)){Y.newline_s=ae,Y.te=r(ae,1),Dt=f([" ","\r","\n","\t","\x0B","\f"],{" ":"\\s","\r":"\\r","\n":"\\n","\t":"\\t","\x0B":"\\v","\f":"\\f"})["$[]"](Y.source_buffer.$slice(r(Y.ts,1))),Y.$diagnostic("warning","invalid_escape_use",f(["escape"],{escape:Dt}),Y.$range()),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(315["$==="](ge)){Y.newline_s=ae,Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs_before_block_comment=Y.cs,Y.cs=185,le=fe;continue}if(434["$==="](ge)){Y.newline_s=ae,Y.te=r(ae,1),Y.paren_nest["$=="](0)&&Y.$diagnostic("warning","triple_dot_at_eol",o,Y.$range(Y.ts,t(Y.te,1))),Y.$emit("tDOT3","...".$freeze(),Y.ts,t(Y.te,1)),ae=t(ae,1),Y.cs=543,ae=r(ae,1),le=me;continue}if(508["$==="](ge)){Y.newline_s=ae,Y.te=r(ae,1),Y.$emit_comment(Y.eq_begin_s,Y.te),Y.cs=Y.cs_before_block_comment,le=fe;continue}if(505["$==="](ge))Y.newline_s=ae,Y.te=r(ae,1);else{if(107["$==="](ge)){Y.newline_s=ae,Y.te=r(ae,1),Y.eq_begin_s=Y.ts,Y.cs=967,le=fe;continue}if(3["$==="](ge))Y.newline_s=ae,Y.te=r(ae,1),ae=t(ne,3);else{if(456["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((d=function(e){var t=null==d.$$s?this:d.$$s;return null==e&&(e=o),t.$emit("tRATIONAL",t.$Rational(e))}).$$s=Y,d.$$arity=1,d)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(hr=p(mr=Kt["$empty?"]())?Y.num_base["$=="](8):mr)?Y["$version?"](18):hr)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(gr=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):gr)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(454["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((g=function(e){var t=null==g.$$s?this:g.$$s;return null==e&&(e=o),t.$emit("tIMAGINARY",t.$Complex(0,e))}).$$s=Y,g.$$arity=1,g)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(yr=p(vr=Kt["$empty?"]())?Y.num_base["$=="](8):vr)?Y["$version?"](18):yr)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(br=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):br)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(459["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((y=function(e){var t=null==y.$$s?this:y.$$s;return null==e&&(e=o),t.$emit("tIMAGINARY",t.$Complex(0,t.$Rational(e)))}).$$s=Y,y.$$arity=1,y)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(kr=p(xr=Kt["$empty?"]())?Y.num_base["$=="](8):xr)?Y["$version?"](18):kr)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(wr=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):wr)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(457["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((v=function(e){var r=null==v.$$s?this:v.$$s;return null==r.ts&&(r.ts=o),null==r.te&&(r.te=o),null==e&&(e=o),r.$emit("tINTEGER",e,r.ts,t(r.te,2)),ae=t(ae,2)}).$$s=Y,v.$$arity=1,v)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Er=p(Rr=Kt["$empty?"]())?Y.num_base["$=="](8):Rr)?Y["$version?"](18):Er)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(zr=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):zr)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(455["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((b=function(e){var r=null==b.$$s?this:b.$$s;return null==r.ts&&(r.ts=o),null==r.te&&(r.te=o),null==e&&(e=o),r.$emit("tINTEGER",e,r.ts,t(r.te,2)),ae=t(ae,2)}).$$s=Y,b.$$arity=1,b)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Ar=p(Nr=Kt["$empty?"]())?Y.num_base["$=="](8):Nr)?Y["$version?"](18):Ar)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(Sr=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):Sr)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(458["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((k=function(e){var r=null==k.$$s?this:k.$$s;return null==r.ts&&(r.ts=o),null==r.te&&(r.te=o),null==e&&(e=o),r.$emit("tINTEGER",e,r.ts,t(r.te,6)),ae=t(ae,6)}).$$s=Y,k.$$arity=1,k)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Or=p(Tr=Kt["$empty?"]())?Y.num_base["$=="](8):Tr)?Y["$version?"](18):Or)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(Ir=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):Ir)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(447["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((x=function(e){var t=null==x.$$s?this:x.$$s;return null==e&&(e=o),t.$emit("tIMAGINARY",t.$Complex(0,t.$Float(e)))}).$$s=Y,x.$$arity=1,x)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(448["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((w=function(e){var r=null==w.$$s?this:w.$$s;return null==r.ts&&(r.ts=o),null==r.te&&(r.te=o),null==e&&(e=o),r.$emit("tFLOAT",r.$Float(e),r.ts,t(r.te,2)),ae=t(ae,2)}).$$s=Y,w.$$arity=1,w)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(449["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((E=function(e){var t=null==E.$$s?this:E.$$s;return null==e&&(e=o),t.$emit("tRATIONAL",t.$Rational(e))}).$$s=Y,E.$$arity=1,E)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(451["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((R=function(e){var t=null==R.$$s?this:R.$$s;return null==e&&(e=o),t.$emit("tIMAGINARY",t.$Complex(0,t.$Rational(e)))}).$$s=Y,R.$$arity=1,R)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(450["$==="](ge)){Y.num_xfrm=l(Y,"lambda",[],((z=function(e){var r=null==z.$$s?this:z.$$s;return null==r.ts&&(r.ts=o),null==r.te&&(r.te=o),null==e&&(e=o),r.$emit("tFLOAT",r.$Float(e),r.ts,t(r.te,6)),ae=t(ae,6)}).$$s=Y,z.$$arity=1,z)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(134["$==="](ge))Y.escape="",Cr=Y.$tok(r(Y.escape_s,2),t(ae,1)),qr=r(Y.escape_s,2),p(i(Y.version,24))&&(p(p(Pr=Cr["$start_with?"](" "))?Pr:Cr["$start_with?"]("\t"))&&Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(r(Y.escape_s,2),r(Y.escape_s,3))),p(Br=Cr.$index(/[ \t]{2}/))&&Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(r(r(qr,Br),1),r(r(qr,Br),2))),p(p(Dr=Cr["$end_with?"](" "))?Dr:Cr["$end_with?"]("\t"))&&Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(ae,1),ae))),function(){var t=e.new_brk();try{l(Cr.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],((A=function($){var n,i,s=null==A.$$s?this:A.$$s,u=o,l=o,d=o;return null==s.escape&&(s.escape=o),null==$&&($=o),i=$,u=null==(n=e.to_ary(i))[0]?o:n[0],l=null==n[1]?o:n[1],p(l)?qr=r(qr,l.$length()):(d=u.$to_i(16),p(a(d,1114112))&&(s.$diagnostic("error","unicode_point_too_large",o,s.$range(qr,r(qr,u.$length()))),e.brk(o,t)),s.escape=r(s.escape,d.$chr(c(_(W,"Encoding"),"UTF_8"))),qr=r(qr,u.$length()))}).$$s=Y,A.$$brk=t,A.$$arity=1,A.$$has_top_level_mlhs_arg=!0,A))}catch($){if($===t)return $.$v;throw $}}(),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Lr=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Lr)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Gr=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Gr)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Mr=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Mr)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(jr=Y.escape)?jr:Y.$tok(),Y.ts,Y.te);else if(162["$==="](ge))Y.escape="",Cr=Y.$tok(r(Y.escape_s,2),t(ae,1)),qr=r(Y.escape_s,2),p(i(Y.version,24))&&(p(p(Fr=Cr["$start_with?"](" "))?Fr:Cr["$start_with?"]("\t"))&&Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(r(Y.escape_s,2),r(Y.escape_s,3))),p(Br=Cr.$index(/[ \t]{2}/))&&Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(r(r(qr,Br),1),r(r(qr,Br),2))),p(p(Ur=Cr["$end_with?"](" "))?Ur:Cr["$end_with?"]("\t"))&&Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(ae,1),ae))),function(){var t=e.new_brk();try{l(Cr.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],((N=function($){var n,i,s=null==N.$$s?this:N.$$s,u=o,l=o,d=o;return null==s.escape&&(s.escape=o),null==$&&($=o),i=$,u=null==(n=e.to_ary(i))[0]?o:n[0],l=null==n[1]?o:n[1],p(l)?qr=r(qr,l.$length()):(d=u.$to_i(16),p(a(d,1114112))&&(s.$diagnostic("error","unicode_point_too_large",o,s.$range(qr,r(qr,u.$length()))),e.brk(o,t)),s.escape=r(s.escape,d.$chr(c(_(W,"Encoding"),"UTF_8"))),qr=r(qr,u.$length()))}).$$s=Y,N.$$brk=t,N.$$arity=1,N.$$has_top_level_mlhs_arg=!0,N))}catch($){if($===t)return $.$v;throw $}}(),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Hr=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Hr)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Yr=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Yr)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Xr=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Xr)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Vr=Y.escape)?Vr:Y.$tok(),Y.ts,Y.te);else{if(373["$==="](ge)){Y.escape="",Cr=Y.$tok(r(Y.escape_s,2),t(ae,1)),qr=r(Y.escape_s,2),p(i(Y.version,24))&&(p(p(Wr=Cr["$start_with?"](" "))?Wr:Cr["$start_with?"]("\t"))&&Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(r(Y.escape_s,2),r(Y.escape_s,3))),p(Br=Cr.$index(/[ \t]{2}/))&&Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(r(r(qr,Br),1),r(r(qr,Br),2))),p(p(Kr=Cr["$end_with?"](" "))?Kr:Cr["$end_with?"]("\t"))&&Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(ae,1),ae))),function(){var t=e.new_brk();try{l(Cr.$scan(/([0-9a-fA-F]+)|([ \t]+)/),"each",[],((S=function($){var n,i,s=null==S.$$s?this:S.$$s,u=o,l=o,d=o;return null==s.escape&&(s.escape=o),null==$&&($=o),i=$,u=null==(n=e.to_ary(i))[0]?o:n[0],l=null==n[1]?o:n[1],p(l)?qr=r(qr,l.$length()):(d=u.$to_i(16),p(a(d,1114112))&&(s.$diagnostic("error","unicode_point_too_large",o,s.$range(qr,r(qr,u.$length()))),e.brk(o,t)),s.escape=r(s.escape,d.$chr(c(_(W,"Encoding"),"UTF_8"))),qr=r(qr,u.$length()))}).$$s=Y,S.$$brk=t,S.$$arity=1,S.$$has_top_level_mlhs_arg=!0,S))}catch($){if($===t)return $.$v;throw $}}(),Y.te=ae,ae=t(ae,1),Ht=p(Qr=Y.escape)?Qr:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(118["$==="](ge))Jr=Y.source_pts["$[]"](t(ae,1)),p(p(Zr=a(Y.version,30))?p(e$=Jr["$=="](117))?e$:Jr["$=="](85):Zr)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(t$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):t$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(r$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):r$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p($$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):$$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(n$=Y.escape)?n$:Y.$tok(),Y.ts,Y.te);else if(146["$==="](ge))Jr=Y.source_pts["$[]"](t(ae,1)),p(p(a$=a(Y.version,30))?p(i$=Jr["$=="](117))?i$:Jr["$=="](85):a$)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(), +Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(s$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):s$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(o$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):o$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(c$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):c$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(_$=Y.escape)?_$:Y.$tok(),Y.ts,Y.te);else{if(357["$==="](ge)){Jr=Y.source_pts["$[]"](t(ae,1)),p(p(u$=a(Y.version,30))?p(l$=Jr["$=="](117))?l$:Jr["$=="](85):u$)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.te=ae,ae=t(ae,1),Ht=p(d$=Y.escape)?d$:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(121["$==="](ge))Y.$diagnostic("fatal","invalid_escape"),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(p$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):p$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(f$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):f$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(h$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):h$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(m$=Y.escape)?m$:Y.$tok(),Y.ts,Y.te);else if(149["$==="](ge))Y.$diagnostic("fatal","invalid_escape"),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(g$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):g$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(y$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):y$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(v$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):v$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(b$=Y.escape)?b$:Y.$tok(),Y.ts,Y.te);else{if(360["$==="](ge)){Y.$diagnostic("fatal","invalid_escape"),Y.te=ae,ae=t(ae,1),Ht=p(k$=Y.escape)?k$:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(123["$==="](ge))Y.escape="\x7f",Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(x$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):x$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(w$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):w$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(E$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):E$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(R$=Y.escape)?R$:Y.$tok(),Y.ts,Y.te);else if(151["$==="](ge))Y.escape="\x7f",Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(z$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):z$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(A$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):A$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(N$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):N$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(S$=Y.escape)?S$:Y.$tok(),Y.ts,Y.te);else{if(362["$==="](ge)){Y.escape="\x7f",Y.te=ae,ae=t(ae,1),Ht=p(O$=Y.escape)?O$:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(120["$==="](ge))Y.escape=Y.$encode_escape(Y.$tok(Y.escape_s,ae).$to_i(8)["$%"](256)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(T$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):T$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(I$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):I$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(C$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):C$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(q$=Y.escape)?q$:Y.$tok(),Y.ts,Y.te);else if(148["$==="](ge))Y.escape=Y.$encode_escape(Y.$tok(Y.escape_s,ae).$to_i(8)["$%"](256)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(P$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):P$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(B$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):B$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(D$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):D$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(L$=Y.escape)?L$:Y.$tok(),Y.ts,Y.te);else{if(359["$==="](ge)){Y.escape=Y.$encode_escape(Y.$tok(Y.escape_s,ae).$to_i(8)["$%"](256)),Y.te=ae,ae=t(ae,1),Ht=p(G$=Y.escape)?G$:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(137["$==="](ge))Y.escape=Y.$encode_escape(Y.$tok(r(Y.escape_s,1),ae).$to_i(16)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(M$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):M$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(j$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):j$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(F$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):F$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(U$=Y.escape)?U$:Y.$tok(),Y.ts,Y.te);else if(165["$==="](ge))Y.escape=Y.$encode_escape(Y.$tok(r(Y.escape_s,1),ae).$to_i(16)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(H$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):H$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Y$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Y$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(X$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):X$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(V$=Y.escape)?V$:Y.$tok(),Y.ts,Y.te);else{if(376["$==="](ge)){Y.escape=Y.$encode_escape(Y.$tok(r(Y.escape_s,1),ae).$to_i(16)),Y.te=ae,ae=t(ae,1),Ht=p(W$=Y.escape)?W$:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(136["$==="](ge))Y.$diagnostic("fatal","invalid_hex_escape",o,Y.$range(t(Y.escape_s,1),r(ae,2))),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(K$=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):K$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Q$=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Q$)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(J$=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):J$)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Z$=Y.escape)?Z$:Y.$tok(),Y.ts,Y.te);else if(164["$==="](ge))Y.$diagnostic("fatal","invalid_hex_escape",o,Y.$range(t(Y.escape_s,1),r(ae,2))),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(en=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):en)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(tn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):tn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(rn=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):rn)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p($n=Y.escape)?$n:Y.$tok(),Y.ts,Y.te);else{if(375["$==="](ge)){Y.$diagnostic("fatal","invalid_hex_escape",o,Y.$range(t(Y.escape_s,1),r(ae,2))),Y.te=ae,ae=t(ae,1),Ht=p(nn=Y.escape)?nn:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(131["$==="](ge))Y.escape=Y.$tok(r(Y.escape_s,1),ae).$to_i(16).$chr(c(_(W,"Encoding"),"UTF_8")),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(an=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):an)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(sn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):sn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(on=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):on)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(cn=Y.escape)?cn:Y.$tok(),Y.ts,Y.te);else if(159["$==="](ge))Y.escape=Y.$tok(r(Y.escape_s,1),ae).$to_i(16).$chr(c(_(W,"Encoding"),"UTF_8")),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(_n=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):_n)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(un=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):un)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(ln=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):ln)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(dn=Y.escape)?dn:Y.$tok(),Y.ts,Y.te);else{if(370["$==="](ge)){Y.escape=Y.$tok(r(Y.escape_s,1),ae).$to_i(16).$chr(c(_(W,"Encoding"),"UTF_8")),Y.te=ae,ae=t(ae,1),Ht=p(pn=Y.escape)?pn:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(130["$==="](ge))Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(Y.escape_s,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(fn=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):fn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(hn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):hn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(mn=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):mn)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(gn=Y.escape)?gn:Y.$tok(),Y.ts,Y.te);else if(158["$==="](ge))Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(Y.escape_s,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(yn=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):yn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(vn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):vn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(bn=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):bn)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(kn=Y.escape)?kn:Y.$tok(),Y.ts,Y.te);else{if(369["$==="](ge)){Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(Y.escape_s,1),ae)),Y.te=ae,ae=t(ae,1),Ht=p(xn=Y.escape)?xn:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(135["$==="](ge))Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(Y.escape_s,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(wn=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):wn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(En=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):En)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Rn=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Rn)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(zn=Y.escape)?zn:Y.$tok(),Y.ts,Y.te);else if(163["$==="](ge))Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(Y.escape_s,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(An=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):An)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Nn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Nn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Sn=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Sn)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(On=Y.escape)?On:Y.$tok(),Y.ts,Y.te);else{if(374["$==="](ge)){Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(Y.escape_s,1),ae)),Y.te=ae,ae=t(ae,1),Ht=p(Tn=Y.escape)?Tn:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(132["$==="](ge))Y.$diagnostic("fatal","unterminated_unicode",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(In=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):In)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Cn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Cn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(qn=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):qn)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Pn=Y.escape)?Pn:Y.$tok(),Y.ts,Y.te);else if(160["$==="](ge))Y.$diagnostic("fatal","unterminated_unicode",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Bn=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Bn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Dn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Dn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Ln=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Ln)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Gn=Y.escape)?Gn:Y.$tok(),Y.ts,Y.te);else{if(371["$==="](ge)){Y.$diagnostic("fatal","unterminated_unicode",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ht=p(Mn=Y.escape)?Mn:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(119["$==="](ge))Y.$diagnostic("fatal","escape_eof",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(jn=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):jn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Fn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Fn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Un=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Un)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Hn=Y.escape)?Hn:Y.$tok(),Y.ts,Y.te);else if(147["$==="](ge))Y.$diagnostic("fatal","escape_eof",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Yn=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Yn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Xn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Xn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Vn=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Vn)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Wn=Y.escape)?Wn:Y.$tok(),Y.ts,Y.te);else{if(358["$==="](ge)){Y.$diagnostic("fatal","escape_eof",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ht=p(Kn=Y.escape)?Kn:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(171["$==="](ge))Y.escape_s=ae,Y.escape=o,Y.te=r(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Qn=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Qn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Jn=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Jn)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Zn=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Zn)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(ea=Y.escape)?ea:Y.$tok(),Y.ts,Y.te);else if(176["$==="](ge))Y.escape_s=ae,Y.escape=o,Y.te=r(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(ta=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):ta)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(ra=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):ra)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p($a=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):$a)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(na=Y.escape)?na:Y.$tok(),Y.ts,Y.te);else if(57["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.newline_s=ae;else if(30["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),xe=ae;else if(32["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),xe=ae;else if(34["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),xe=ae;else if(213["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else if(232["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else if(240["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else{if(33["$==="](ge)){p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=r(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(271["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else{if(263["$==="](ge)){p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=781,le=fe;continue}if(282["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else if(294["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else{if(290["$==="](ge)){p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae=t(ae,1),1),Y.cs=781,le=fe;continue}if(58["$==="](ge)){p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=r(ae,1),Y.$emit("tUNARY_NUM",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=t(ae,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(49["$==="](ge)){p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=r(ae,1),Y.$emit("tIDENTIFIER",Re,ze,Ae),ae=t(Ae,1),p(p(aa=p(ia=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Re):ia)?i(Y.version,25):aa)?Y.cs=446:Y.cs=505,ae=r(ae,1),le=me;continue}if(312["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else if(393["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else{if(389["$==="](ge)){if(p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1),p(Y.in_kwarg)){ae=t(ae,1),Y.cs=781,le=fe;continue}Y.cs=185,le=fe;continue}if(402["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else{if(399["$==="](ge)){p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1),Y.cs=185,le=fe;continue}if(486["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else{if(418["$==="](ge)){p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1),Y.cs=961,le=fe;continue}if(101["$==="](ge))p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.te=ae,ae=t(ae,1);else{if(262["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Ne=Y.$literal(),p(Ne)&&Ne.$start_interp_brace(),Y.te=ae,ae=t(ae,1),Y.lambda_stack.$last()["$=="](Y.paren_nest)?(Y.lambda_stack.$pop(),Y.$emit("tLAMBEG","{".$freeze(),t(Y.te,1),Y.te)):Y.$emit("tLCURLY","{".$freeze(),t(Y.te,1),Y.te),Y.command_start=!0,Y.paren_nest=r(Y.paren_nest,1),Y.cs=773,ae=r(ae,1),le=me;continue}if(284["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Ne=Y.$literal(),p(Ne)&&Ne.$start_interp_brace(),Y.te=ae,ae=t(ae,1),Y.lambda_stack.$last()["$=="](Y.paren_nest)?(Y.lambda_stack.$pop(),Y.$emit("tLAMBEG","{".$freeze())):Y.$emit("tLBRACE_ARG","{".$freeze()),Y.paren_nest=r(Y.paren_nest,1),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(384["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Ne=Y.$literal(),p(Ne)&&Ne.$start_interp_brace(),Y.te=ae,ae=t(ae,1),Y.lambda_stack.$last()["$=="](Y.paren_nest)?(Y.lambda_stack.$pop(),Y.command_start=!0,Y.$emit("tLAMBEG","{".$freeze())):Y.$emit("tLBRACE","{".$freeze()),Y.paren_nest=r(Y.paren_nest,1),ae=r(ae,1),le=me;continue}if(499["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Ne=Y.$literal(),p(Ne)&&Ne.$start_interp_brace(),Y.te=ae,ae=t(ae,1),Y.lambda_stack.$last()["$=="](Y.paren_nest)?(Y.lambda_stack.$pop(),Y.$tok()["$=="]("{".$freeze())?Y.$emit("tLAMBEG","{".$freeze()):Y.$emit("kDO_LAMBDA","do".$freeze())):Y.$tok()["$=="]("{".$freeze())?Y.$emit("tLCURLY","{".$freeze()):Y.$emit_do(),Y.$tok()["$=="]("{".$freeze())&&(Y.paren_nest=r(Y.paren_nest,1)),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(500["$==="](ge)){if(Ne=Y.$literal(),p(Ne)&&p(Ne.$end_interp_brace_and_try_closing())){p(Y["$version?"](18,19))?(Y.$emit("tRCURLY","}".$freeze(),t(ae,1),ae),Y.cond.$lexpop(),Y.cmdarg.$lexpop()):Y.$emit("tSTRING_DEND","}".$freeze(),t(ae,1),ae),p(Ne.$saved_herebody_s())&&(Y.herebody_s=Ne.$saved_herebody_s()),ae=t(ae,1),Y.cs=Y.$next_state_for_literal(Ne),ae=r(ae,1),le=me;continue}Y.paren_nest=t(Y.paren_nest,1),Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),p(i(Y.version,24))?(Y.cond.$lexpop(),Y.cmdarg.$lexpop()):(Y.cond.$pop(),Y.cmdarg.$pop()),p(p(sa=Y.$tok()["$=="]("}".$freeze()))?sa:Y.$tok()["$=="]("]".$freeze()))&&(p(a(Y.version,25))?Y.cs=781:Y.cs=511),ae=r(ae,1),le=me;continue}if(60["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae);else if(64["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.newline_s=ae;else if(216["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(231["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(243["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else{if(265["$==="](ge)){Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1),Y.cs=781,le=fe;continue}if(280["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(292["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(318["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(391["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(401["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(422["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(103["$==="](ge))Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else{if(237["$==="](ge)){xe=ae,Y.te=ae,ae=t(ae,1),Y.$emit("tFID",Y.$tok(Y.ts,xe),Y.ts,xe),Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae=t(xe,1),1),le=me;continue}if(332["$==="](ge)){xe=ae,Y.te=ae,ae=t(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1),xe),Y.ts,xe),ae=t(xe,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(303["$==="](ge)){xe=ae,Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(415["$==="](ge)){if(xe=ae,ge=Y.act,144["$==="](ge)){ae=t(Y.te,1),Y.lambda_stack.$last()["$=="](Y.paren_nest)?(Y.lambda_stack.$pop(),Y.$tok()["$=="]("{".$freeze())?Y.$emit("tLAMBEG","{".$freeze()):Y.$emit("kDO_LAMBDA","do".$freeze())):Y.$tok()["$=="]("{".$freeze())?Y.$emit("tLCURLY","{".$freeze()):Y.$emit_do(),Y.$tok()["$=="]("{".$freeze())&&(Y.paren_nest=r(Y.paren_nest,1)),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(145["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),Y.cs=333,ae=r(ae,1),le=me;continue}if(146["$==="](ge)){ae=t(Y.te,1),Y.$emit("kCLASS","class".$freeze(),Y.ts,r(Y.ts,5)),Y.$emit("tLSHFT","<<".$freeze(),t(Y.te,2),Y.te),Y.cs=773,ae=r(ae,1),le=me;continue}if(147["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),Y.cs=543,ae=r(ae,1),le=me;continue}if(148["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(149["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),Y.cs=519,ae=r(ae,1),le=me;continue}if(150["$==="](ge)){if(ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),p(p(oa=Y["$version?"](18))?Y.$tok()["$=="]("not".$freeze()):oa)){Y.cs=543,ae=r(ae,1),le=me;continue}Y.cs=474,ae=r(ae,1),le=me;continue}if(151["$==="](ge)){ae=t(Y.te,1),p(Y["$version?"](18))?(Y.$emit("tIDENTIFIER"),p(p(ca=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Y.$tok()):ca)||(Y.cs=Y.$arg_or_cmdarg(se))):Y.$emit("k__ENCODING__","__ENCODING__".$freeze()),ae=r(ae,1),le=me;continue}if(152["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS")),ae=r(ae,1),le=me;continue}if(153["$==="](ge)){ae=t(Y.te,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(_a=p(ua=Kt["$empty?"]())?Y.num_base["$=="](8):ua)?Y["$version?"](18):_a)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(la=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):la)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(155["$==="](ge)){if(ae=t(Y.te,1),!p(Y["$version?"](18,19,20))){Y.$emit("tINTEGER",Y.$tok(Y.ts,t(Y.te,1)).$to_i(),Y.ts,t(Y.te,1)),ae=r(ae=t(ae,1),1),le=me;continue}Y.$diagnostic("error","trailing_in_number",f(["character"],{character:Y.$tok(t(Y.te,1),Y.te)}),Y.$range(t(Y.te,1),Y.te))}else if(156["$==="](ge)){if(ae=t(Y.te,1),!p(Y["$version?"](18,19,20))){Y.$emit("tFLOAT",Y.$tok(Y.ts,t(Y.te,1)).$to_f(),Y.ts,t(Y.te,1)),ae=r(ae=t(ae,1),1),le=me;continue}Y.$diagnostic("error","trailing_in_number",f(["character"],{character:Y.$tok(t(Y.te,1),Y.te)}),Y.$range(t(Y.te,1),Y.te))}else{if(157["$==="](ge)){ae=t(Y.te,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(159["$==="](ge)){ae=t(Y.te,1),Y.$emit("tCONSTANT"),Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(163["$==="](ge)){if(ae=t(Y.te,1),Y.$emit("tIDENTIFIER"),p(p(da=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Y.$tok()):da)){Y.cs=446,ae=r(ae,1),le=me;continue}Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue}if(164["$==="](ge)){ae=t(Y.te,1),xe["$=="](Y.te)?Y.$emit("tFID"):(Y.$emit("tIDENTIFIER",Y.$tok(Y.ts,xe),Y.ts,xe),ae=t(xe,1)),Y.cs=474,ae=r(ae,1),le=me;continue}if(166["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=773,ae=r(ae,1),le=me;continue}if(167["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=543,ae=r(ae,1),le=me;continue}}}else{if(238["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),Y.$emit("tFID",Y.$tok(Y.ts,xe),Y.ts,xe),Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae=t(xe,1),1),le=me;continue}if(333["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1),xe),Y.ts,xe),ae=t(xe,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(305["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(416["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),xe["$=="](Y.te)?Y.$emit("tFID"):(Y.$emit("tIDENTIFIER",Y.$tok(Y.ts,xe),Y.ts,xe),ae=t(xe,1)),Y.cs=474,ae=r(ae,1),le=me;continue}if(334["$==="](ge)){xe=ae,Y.te=ae,ae=t(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1),xe),Y.ts,xe),ae=t(xe,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(306["$==="](ge)){xe=ae,Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(335["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1),xe),Y.ts,xe),ae=t(xe,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(307["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(339["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1),xe),Y.ts,xe),ae=t(xe,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(310["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(338["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1),xe),Y.ts,xe),ae=t(xe,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(309["$==="](ge)){if(xe=t(ae,2),ge=Y.act,98["$==="](ge)){ae=t(Y.te,1),Y.$emit("tUNARY_NUM",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=t(ae,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(105["$==="](ge))ae=t(Y.te,1),Y.$diagnostic("error","unterminated_heredoc_id",o,Y.$range(Y.ts,r(Y.ts,1)));else{if(116["$==="](ge)){if(ae=t(Y.te,1),p(a(Y.version,27))){Y.$emit("tPIPE",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=t(ae,1),Y.cs=543,ae=r(ae,1),le=me;continue}ae=t(ae,2),Y.cs=781,le=fe;continue}if(120["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"PUNCTUATION_BEGIN")),ae=r(ae,1),le=me;continue}if(121["$==="](ge)){ae=t(Y.te,1),Y.$emit("kRESCUE","rescue".$freeze(),Y.ts,xe),ae=t(xe,1),Y.cs=519,ae=r(ae,1),le=me;continue}if(122["$==="](ge)){ae=t(Y.te,1),Y.$emit_table(_(W,"KEYWORDS_BEGIN")),Y.command_start=!0,Y.cs=773,ae=r(ae,1),le=me;continue}if(126["$==="](ge)){ae=t(Y.te,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(127["$==="](ge)){if(ae=t(Y.te,1),Y.$emit("tIDENTIFIER"),p(p(pa=Y.static_env["$nil?"]()["$!"]())?Y.static_env["$declared?"](Y.$tok()):pa)){Y.cs=446,ae=r(ae,1),le=me;continue}Y.cs=Y.$arg_or_cmdarg(se),ae=r(ae,1),le=me;continue} +if(131["$==="](ge)){ae=t(Y.te,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}}}else{if(336["$==="](ge)){xe=t(ae,3),Y.te=ae,ae=t(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1),xe),Y.ts,xe),ae=t(xe,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(308["$==="](ge)){xe=t(ae,3),Y.te=ae,ae=t(ae,1),ae=t(Y.ts,1),Y.cs=781,le=fe;continue}if(337["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),Y.$emit("tSYMBOL",Y.$tok(r(Y.ts,1),xe),Y.ts,xe),ae=t(xe,1),Y.cs=781,ae=r(ae,1),le=me;continue}if(481["$==="](ge)){xe=t(ae,2),Y.te=ae,ae=t(ae,1),Y.$emit("tCONSTANT",Y.$tok(Y.ts,xe),Y.ts,xe),ae=r(ae=t(xe,1),1),le=me;continue}if(261["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Y.paren_nest=r(Y.paren_nest,1),Y.te=ae,ae=t(ae,1),Y.$emit("tLBRACK","[".$freeze(),t(Y.te,1),Y.te),Y.cs=543,ae=r(ae,1),le=me;continue}if(377["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Y.paren_nest=r(Y.paren_nest,1),Y.te=ae,ae=t(ae,1),Y.$emit("tLBRACK","[".$freeze()),ae=r(ae,1),le=me;continue}if(484["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Y.paren_nest=r(Y.paren_nest,1),Y.te=ae,ae=t(ae,1),Y.$emit("tLBRACK2","[".$freeze()),Y.cs=543,ae=r(ae,1),le=me;continue}if(487["$==="](ge)){Y.paren_nest=t(Y.paren_nest,1),Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),p(i(Y.version,24))?(Y.cond.$lexpop(),Y.cmdarg.$lexpop()):(Y.cond.$pop(),Y.cmdarg.$pop()),p(p(fa=Y.$tok()["$=="]("}".$freeze()))?fa:Y.$tok()["$=="]("]".$freeze()))&&(p(a(Y.version,25))?Y.cs=781:Y.cs=511),ae=r(ae,1),le=me;continue}if(253["$==="](ge)){if(Y.cond.$push(!1),Y.cmdarg.$push(!1),Y.paren_nest=r(Y.paren_nest,1),p(Y["$version?"](18))&&(Y.command_start=!0),Y.te=ae,ae=t(ae,1),p(Y["$version?"](18))){Y.$emit("tLPAREN2","(".$freeze(),t(Y.te,1),Y.te),Y.cs=773,ae=r(ae,1),le=me;continue}Y.$emit("tLPAREN_ARG","(".$freeze(),t(Y.te,1),Y.te),Y.cs=543,ae=r(ae,1),le=me;continue}if(266["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Y.paren_nest=r(Y.paren_nest,1),p(Y["$version?"](18))&&(Y.command_start=!0),Y.te=ae,ae=t(ae,1),Y.$emit("tLPAREN2","(".$freeze()),Y.cs=543,ae=r(ae,1),le=me;continue}if(274["$==="](ge)){if(Y.cond.$push(!1),Y.cmdarg.$push(!1),Y.paren_nest=r(Y.paren_nest,1),p(Y["$version?"](18))&&(Y.command_start=!0),Y.te=ae,ae=t(ae,1),Y.$emit("tLPAREN_ARG","(".$freeze(),t(Y.te,1),Y.te),p(Y["$version?"](18))){Y.cs=773,ae=r(ae,1),le=me;continue}Y.cs=543,ae=r(ae,1),le=me;continue}if(323["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Y.paren_nest=r(Y.paren_nest,1),p(Y["$version?"](18))&&(Y.command_start=!0),Y.te=ae,ae=t(ae,1),Y.$emit("tLPAREN","(".$freeze()),ae=r(ae,1),le=me;continue}if(428["$==="](ge)){Y.cond.$push(!1),Y.cmdarg.$push(!1),Y.paren_nest=r(Y.paren_nest,1),p(Y["$version?"](18))&&(Y.command_start=!0),Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),Y.cs=543,ae=r(ae,1),le=me;continue}if(429["$==="](ge)){Y.paren_nest=t(Y.paren_nest,1),Y.te=ae,ae=t(ae,1),Y.$emit_table(_(W,"PUNCTUATION")),p(i(Y.version,24))?(Y.cond.$lexpop(),Y.cmdarg.$lexpop()):(Y.cond.$pop(),Y.cmdarg.$pop()),p(p(ha=Y.$tok()["$=="]("}".$freeze()))?ha:Y.$tok()["$=="]("]".$freeze()))&&(p(a(Y.version,25))?Y.cs=781:Y.cs=511),ae=r(ae,1),le=me;continue}if(71["$==="](ge))we=ae,Y.newline_s=ae;else if(347["$==="](ge)){if(ma=ae,Y.te=ae,ae=t(ae,1),Y.$tok(Y.ts,we)["$=~"](/^<<(-?)(~?)(["'`]?)(.*)\3$/m),ga=p(ya=((u=m["~"])===o?o:u["$[]"](1))["$empty?"]()["$!"]())?ya:((u=m["~"])===o?o:u["$[]"](2))["$empty?"]()["$!"](),va=((u=m["~"])===o?o:u["$[]"](2))["$empty?"]()["$!"](),Pt=p(((u=m["~"])===o?o:u["$[]"](3))["$empty?"]())?'<<"'.$freeze():r("<<".$freeze(),(u=m["~"])===o?o:u["$[]"](3)),Bt=(u=m["~"])===o?o:u["$[]"](4),p(a(Y.version,27))?p(p(ba=n(Bt.$count("\n"),0))?ba:n(Bt.$count("\r"),0))&&Y.$diagnostic("error","unterminated_heredoc_id",o,Y.$range(Y.ts,r(Y.ts,1))):p(a(Y.version,24))&&p(n(Bt.$count("\n"),0))&&(p(Bt["$end_with?"]("\n"))?(Y.$diagnostic("warning","heredoc_id_ends_with_nl",o,Y.$range(Y.ts,r(Y.ts,1))),Bt=Bt.$rstrip()):Y.$diagnostic("fatal","heredoc_id_has_newline",o,Y.$range(Y.ts,r(Y.ts,1)))),p(p(ka=va)?Y["$version?"](18,19,20,21,22):ka)){Y.$emit("tLSHFT","<<".$freeze(),Y.ts,r(Y.ts,2)),ae=r(Y.ts,1),Y.cs=543,ae=r(ae,1),le=me;continue}Y.cs=Y.$push_literal(Pt,Bt,Y.ts,we,ga,va),Y.herebody_s=p(xa=Y.herebody_s)?xa:ma,ae=t(Y.herebody_s,1)}else{if(342["$==="](ge)){xe=t(ae,1),Ee="ivar_name",Y.te=ae,ae=t(ae,1),p(a(Y.version,27))?Y.$diagnostic("error",Ee,f(["name"],{name:Y.$tok(xe,Y.te)}),Y.$range(xe,Y.te)):(Y.$emit("tCOLON",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=Y.ts),Y.cs=781,ae=r(ae,1),le=me;continue}if(345["$==="](ge)){xe=t(ae,2),Ee="cvar_name",Y.te=ae,ae=t(ae,1),p(a(Y.version,27))?Y.$diagnostic("error",Ee,f(["name"],{name:Y.$tok(xe,Y.te)}),Y.$range(xe,Y.te)):(Y.$emit("tCOLON",Y.$tok(Y.ts,r(Y.ts,1)),Y.ts,r(Y.ts,1)),ae=Y.ts),Y.cs=781,ae=r(ae,1),le=me;continue}if(353["$==="](ge)){Y.escape=o,Y.te=ae,ae=t(ae,1),Ht=p(wa=Y.escape)?wa:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(380["$==="](ge)){xe=ae,Y.te=ae,ae=t(ae,1),Y.$emit("kRESCUE","rescue".$freeze(),Y.ts,xe),ae=t(xe,1),Y.cs=519,ae=r(ae,1),le=me;continue}if(471["$==="](ge))Y.num_base=16,Y.num_digits_s=ae,Y.num_suffix_s=ae;else if(465["$==="](ge))Y.num_base=10,Y.num_digits_s=ae,Y.num_suffix_s=ae;else if(468["$==="](ge))Y.num_base=8,Y.num_digits_s=ae,Y.num_suffix_s=ae;else if(462["$==="](ge))Y.num_base=2,Y.num_digits_s=ae,Y.num_suffix_s=ae;else if(477["$==="](ge))Y.num_base=10,Y.num_digits_s=Y.ts,Y.num_suffix_s=ae;else if(440["$==="](ge))Y.num_base=8,Y.num_digits_s=Y.ts,Y.num_suffix_s=ae;else if(478["$==="](ge))Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((O=function(e){var t=null==O.$$s?this:O.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,O.$$arity=1,O));else{if(89["$==="](ge)){xe=ae,Y.te=r(ae,1),ae=t(xe,1),Y.cs=781,le=fe;continue}if(8["$==="](ge))Y.te=r(ae,1),Y.newline_s=ae;else if(444["$==="](ge))Y.te=r(ae,1),Y.num_suffix_s=ae;else if(222["$==="](ge))Y.te=r(ae,1),Y.act=43;else if(209["$==="](ge))Y.te=r(ae,1),Y.act=44;else if(205["$==="](ge))Y.te=r(ae,1),Y.act=45;else if(26["$==="](ge))Y.te=r(ae,1),Y.act=71;else if(255["$==="](ge))Y.te=r(ae,1),Y.act=72;else if(27["$==="](ge))Y.te=r(ae,1),Y.act=77;else if(248["$==="](ge))Y.te=r(ae,1),Y.act=78;else if(275["$==="](ge))Y.te=r(ae,1),Y.act=84;else if(45["$==="](ge))Y.te=r(ae,1),Y.act=85;else if(296["$==="](ge))Y.te=r(ae,1),Y.act=92;else if(285["$==="](ge))Y.te=r(ae,1),Y.act=93;else if(69["$==="](ge))Y.te=r(ae,1),Y.act=105;else if(385["$==="](ge))Y.te=r(ae,1),Y.act=116;else if(299["$==="](ge))Y.te=r(ae,1),Y.act=120;else if(379["$==="](ge))Y.te=r(ae,1),Y.act=121;else if(378["$==="](ge))Y.te=r(ae,1),Y.act=122;else if(74["$==="](ge))Y.te=r(ae,1),Y.act=126;else if(297["$==="](ge))Y.te=r(ae,1),Y.act=127;else if(300["$==="](ge))Y.te=r(ae,1),Y.act=131;else if(495["$==="](ge))Y.te=r(ae,1),Y.act=144;else if(490["$==="](ge))Y.te=r(ae,1),Y.act=145;else if(498["$==="](ge))Y.te=r(ae,1),Y.act=147;else if(491["$==="](ge))Y.te=r(ae,1),Y.act=148;else if(492["$==="](ge))Y.te=r(ae,1),Y.act=149;else if(497["$==="](ge))Y.te=r(ae,1),Y.act=150;else if(489["$==="](ge))Y.te=r(ae,1),Y.act=151;else if(483["$==="](ge))Y.te=r(ae,1),Y.act=152;else if(409["$==="](ge))Y.te=r(ae,1),Y.act=153;else if(442["$==="](ge))Y.te=r(ae,1),Y.act=156;else if(81["$==="](ge))Y.te=r(ae,1),Y.act=157;else if(412["$==="](ge))Y.te=r(ae,1),Y.act=159;else if(403["$==="](ge))Y.te=r(ae,1),Y.act=163;else if(414["$==="](ge))Y.te=r(ae,1),Y.act=164;else if(407["$==="](ge))Y.te=r(ae,1),Y.act=166;else if(413["$==="](ge))Y.te=r(ae,1),Y.act=167;else if(87["$==="](ge))Y.te=r(ae,1),Y.act=180;else if(502["$==="](ge))Y.te=r(ae,1),Y.act=182;else if(177["$==="](ge)){if(Y.newline_s=ae,Y.te=r(ae,1),Ne=Y.$literal(),Y.te["$=="](ne)&&Y.$diagnostic("fatal","string_eof",o,Y.$range(Ne.$str_s(),r(Ne.$str_s(),1))),p(Ne["$heredoc?"]())){if(Oe=Y.$tok(Y.herebody_s,Y.ts).$gsub(/\r+$/,"".$freeze()),p(Y["$version?"](18,19,20))&&(Oe=Oe.$gsub(/\r.*$/,"".$freeze())),p(Ne.$nest_and_try_closing(Oe,Y.herebody_s,Y.ts))){Y.herebody_s=Y.te,ae=t(Ne.$heredoc_e(),1),Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}Ne.$infer_indent_level(Oe),Y.herebody_s=Y.te}else{if(p(Ne.$nest_and_try_closing(Y.$tok(),Y.ts,Y.te))){Y.cs=Y.$pop_literal(),ae=r(ae,1),le=me;continue}p(Y.herebody_s)&&(ae=t(Y.herebody_s,1),Y.herebody_s=o)}p(p(Ea=Ne["$words?"]())?Y["$eof_codepoint?"](Y.source_pts["$[]"](ae))["$!"]():Ea)?Ne.$extend_space(Y.ts,Y.te):(Ne.$extend_string(Y.$tok(),Y.ts,Y.te),Ne.$flush_string()),Y.escape_s=ae,Y.escape=o}else if(124["$==="](ge))Jr=Y.source_pts["$[]"](t(ae,1)),p(p(Ra=a(Y.version,30))?p(za=Jr["$=="](117))?za:Jr["$=="](85):Ra)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Aa=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Aa)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Na=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Na)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Sa=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Sa)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Oa=Y.escape)?Oa:Y.$tok(),Y.ts,Y.te);else if(152["$==="](ge))Jr=Y.source_pts["$[]"](t(ae,1)),p(p(Ta=a(Y.version,30))?p(Ia=Jr["$=="](117))?Ia:Jr["$=="](85):Ta)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Ca=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Ca)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(qa=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):qa)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Pa=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Pa)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Ba=Y.escape)?Ba:Y.$tok(),Y.ts,Y.te);else{if(363["$==="](ge)){Jr=Y.source_pts["$[]"](t(ae,1)),p(p(Da=a(Y.version,30))?p(La=Jr["$=="](117))?La:Jr["$=="](85):Da)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.te=ae,ae=t(ae,1),Ht=p(Ga=Y.escape)?Ga:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(129["$==="](ge))Jr=Y.source_pts["$[]"](t(ae,1)),p(p(Ma=a(Y.version,30))?p(ja=Jr["$=="](117))?ja:Jr["$=="](85):Ma)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Fa=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Fa)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Ua=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Ua)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Ha=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Ha)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Ya=Y.escape)?Ya:Y.$tok(),Y.ts,Y.te);else if(157["$==="](ge))Jr=Y.source_pts["$[]"](t(ae,1)),p(p(Xa=a(Y.version,30))?p(Va=Jr["$=="](117))?Va:Jr["$=="](85):Xa)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Wa=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Wa)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Ka=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Ka)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Qa=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Qa)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Ja=Y.escape)?Ja:Y.$tok(),Y.ts,Y.te);else{if(368["$==="](ge)){Jr=Y.source_pts["$[]"](t(ae,1)),p(p(Za=a(Y.version,30))?p(ei=Jr["$=="](117))?ei:Jr["$=="](85):Za)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ht=p(ti=Y.escape)?ti:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(122["$==="](ge))Y.escape=Y.source_buffer.$slice(t(ae,1)).$chr(),p(p(ri=a(Y.version,27))?p($i=h(0,8,!1)["$include?"](Y.escape.$ord()))?$i:h(14,31,!1)["$include?"](Y.escape.$ord()):ri)&&Y.$diagnostic("fatal","invalid_escape"),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(ni=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):ni)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(ai=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):ai)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(ii=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):ii)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(si=Y.escape)?si:Y.$tok(),Y.ts,Y.te);else if(150["$==="](ge))Y.escape=Y.source_buffer.$slice(t(ae,1)).$chr(),p(p(oi=a(Y.version,27))?p(ci=h(0,8,!1)["$include?"](Y.escape.$ord()))?ci:h(14,31,!1)["$include?"](Y.escape.$ord()):oi)&&Y.$diagnostic("fatal","invalid_escape"),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(_i=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):_i)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(ui=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):ui)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(li=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):li)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(di=Y.escape)?di:Y.$tok(),Y.ts,Y.te);else{if(361["$==="](ge)){Y.escape=Y.source_buffer.$slice(t(ae,1)).$chr(),p(p(pi=a(Y.version,27))?p(fi=h(0,8,!1)["$include?"](Y.escape.$ord()))?fi:h(14,31,!1)["$include?"](Y.escape.$ord()):pi)&&Y.$diagnostic("fatal","invalid_escape"),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.te=ae,ae=t(ae,1),Ht=p(hi=Y.escape)?hi:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(128["$==="](ge))Y.escape=Y.source_buffer.$slice(t(ae,1)).$chr(),p(p(mi=a(Y.version,27))?p(gi=h(0,8,!1)["$include?"](Y.escape.$ord()))?gi:h(14,31,!1)["$include?"](Y.escape.$ord()):mi)&&Y.$diagnostic("fatal","invalid_escape"),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(yi=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):yi)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(vi=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):vi)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(bi=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):bi)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(ki=Y.escape)?ki:Y.$tok(),Y.ts,Y.te);else if(156["$==="](ge))Y.escape=Y.source_buffer.$slice(t(ae,1)).$chr(),p(p(xi=a(Y.version,27))?p(wi=h(0,8,!1)["$include?"](Y.escape.$ord()))?wi:h(14,31,!1)["$include?"](Y.escape.$ord()):xi)&&Y.$diagnostic("fatal","invalid_escape"),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Ei=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Ei)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Ri=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Ri)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(zi=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):zi)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Ai=Y.escape)?Ai:Y.$tok(),Y.ts,Y.te);else{if(367["$==="](ge)){Y.escape=Y.source_buffer.$slice(t(ae,1)).$chr(),p(p(Ni=a(Y.version,27))?p(Si=h(0,8,!1)["$include?"](Y.escape.$ord()))?Si:h(14,31,!1)["$include?"](Y.escape.$ord()):Ni)&&Y.$diagnostic("fatal","invalid_escape"),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ht=p(Oi=Y.escape)?Oi:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(126["$==="](ge))Y.escape="\x7f",Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Ti=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Ti)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Ii=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Ii)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Ci=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Ci)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(qi=Y.escape)?qi:Y.$tok(),Y.ts,Y.te);else if(154["$==="](ge))Y.escape="\x7f",Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Pi=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Pi)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Bi=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Bi)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Di=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Di)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Li=Y.escape)?Li:Y.$tok(),Y.ts,Y.te);else{if(365["$==="](ge)){Y.escape="\x7f",Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ht=p(Gi=Y.escape)?Gi:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(133["$==="](ge))Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(Y.escape_s,1),ae)),Y.$diagnostic("fatal","unterminated_unicode",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Mi=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Mi)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(ji=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):ji)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Fi=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Fi)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Ui=Y.escape)?Ui:Y.$tok(),Y.ts,Y.te);else if(161["$==="](ge))Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(Y.escape_s,1),ae)),Y.$diagnostic("fatal","unterminated_unicode",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Hi=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Hi)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Yi=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Yi)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Xi=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Xi)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Vi=Y.escape)?Vi:Y.$tok(),Y.ts,Y.te);else{if(372["$==="](ge)){Y.$diagnostic("fatal","invalid_unicode_escape",o,Y.$range(t(Y.escape_s,1),ae)),Y.$diagnostic("fatal","unterminated_unicode",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ht=p(Wi=Y.escape)?Wi:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(116["$==="](ge))Y.escape_s=ae,Y.escape=o,Y.$diagnostic("fatal","escape_eof",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Ki=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Ki)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Qi=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Qi)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Ji=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Ji)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Zi=Y.escape)?Zi:Y.$tok(),Y.ts,Y.te);else if(145["$==="](ge))Y.escape_s=ae,Y.escape=o,Y.$diagnostic("fatal","escape_eof",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(es=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):es)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(ts=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):ts)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(rs=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):rs)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p($s=Y.escape)?$s:Y.$tok(),Y.ts,Y.te);else{if(356["$==="](ge)){Y.escape_s=ae,Y.escape=o,Y.$diagnostic("fatal","escape_eof",o,Y.$range(t(ae,1),ae)),Y.te=ae,ae=t(ae,1),Ht=p(ns=Y.escape)?ns:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(61["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.newline_s=ae;else if(215["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(230["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(242["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else{if(264["$==="](ge)){Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1),Y.cs=781,le=fe;continue}if(279["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(291["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(317["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(390["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(400["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(421["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(102["$==="](ge))Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.te=ae,ae=t(ae,1);else if(473["$==="](ge))Y.num_base=10,Y.num_digits_s=Y.ts,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((T=function(e){var t=null==T.$$s?this:T.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,T.$$arity=1,T));else if(437["$==="](ge))Y.num_base=8,Y.num_digits_s=Y.ts,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((I=function(e){var t=null==I.$$s?this:I.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,I.$$arity=1,I));else{if(452["$==="](ge)){Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((C=function(e){var t=null==C.$$s?this:C.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,C.$$arity=1,C)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(as=p(is=Kt["$empty?"]())?Y.num_base["$=="](8):is)?Y["$version?"](18):as)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(ss=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):ss)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(445["$==="](ge)){Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((q=function(e){var t=null==q.$$s?this:q.$$s;return null==e&&(e=o),t.$emit("tFLOAT",t.$Float(e))}).$$s=Y,q.$$arity=1,q)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(441["$==="](ge)){Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((P=function(e){var t=null==P.$$s?this:P.$$s;return null==e&&(e=o),t.$emit("tFLOAT",t.$Float(e))}).$$s=Y,P.$$arity=1,P)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.ts,Y.num_suffix_s),p(Y["$version?"](18,19,20))?(Y.$emit("tFLOAT",Y.$Float(Kt),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt),ae=r(ae,1),le=me;continue}if(270["$==="](ge))Y.te=r(ae,1),Y.newline_s=ae,Y.act=78;else if(35["$==="](ge))Y.te=r(ae,1),p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.act=77;else if(46["$==="](ge))Y.te=r(ae,1),p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.act=85;else if(94["$==="](ge))Y.te=r(ae,1),p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),Y.act=180;else if(65["$==="](ge))Y.te=r(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.act=98;else if(84["$==="](ge))Y.te=r(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.act=146;else if(93["$==="](ge))Y.te=r(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.act=180;else if(37["$==="](ge))Y.te=r(ae,1),xe=ae,Y.act=72;else if(382["$==="](ge))Y.te=r(ae,1),xe=ae,Y.act=126;else if(381["$==="](ge))Y.te=r(ae,1),xe=ae,Y.act=127;else if(474["$==="](ge))Y.te=r(ae,1),Y.num_base=10,Y.num_digits_s=Y.ts,Y.act=153;else if(127["$==="](ge))Jr=Y.source_pts["$[]"](t(ae,1)),p(p(os=a(Y.version,30))?p(cs=Jr["$=="](117))?cs:Jr["$=="](85):os)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(_s=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):_s)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(us=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):us)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(ls=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):ls)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(ds=Y.escape)?ds:Y.$tok(),Y.ts,Y.te);else if(155["$==="](ge))Jr=Y.source_pts["$[]"](t(ae,1)),p(p(ps=a(Y.version,30))?p(fs=Jr["$=="](117))?fs:Jr["$=="](85):ps)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(hs=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):hs)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(ms=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):ms)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(gs=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):gs)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(ys=Y.escape)?ys:Y.$tok(),Y.ts,Y.te);else{if(366["$==="](ge)){Jr=Y.source_pts["$[]"](t(ae,1)),p(p(vs=a(Y.version,30))?p(bs=Jr["$=="](117))?bs:Jr["$=="](85):vs)&&Y.$diagnostic("fatal","invalid_escape"),p((Y.escape=_(W,"ESCAPES")["$[]"](Jr))["$nil?"]())&&(Y.escape=Y.$encode_escape(Y.source_buffer.$slice(t(ae,1)))),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ht=p(ks=Y.escape)?ks:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(125["$==="](ge))Y.escape=Y.source_buffer.$slice(t(ae,1)).$chr(),p(p(xs=a(Y.version,27))?p(ws=h(0,8,!1)["$include?"](Y.escape.$ord()))?ws:h(14,31,!1)["$include?"](Y.escape.$ord()):xs)&&Y.$diagnostic("fatal","invalid_escape"),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(),p(Ne["$munge_escape?"](Me))?p(p(Es=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Es)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Rs=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Rs)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(zs=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):zs)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(As=Y.escape)?As:Y.$tok(),Y.ts,Y.te);else if(153["$==="](ge))Y.escape=Y.source_buffer.$slice(t(ae,1)).$chr(),p(p(Ns=a(Y.version,27))?p(Ss=h(0,8,!1)["$include?"](Y.escape.$ord()))?Ss:h(14,31,!1)["$include?"](Y.escape.$ord()):Ns)&&Y.$diagnostic("fatal","invalid_escape"),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ne=Y.$literal(),Me=Y.source_buffer.$slice(Y.escape_s).$chr(), +p(Ne["$munge_escape?"](Me))?p(p(Os=Ne["$regexp?"]())?_(W,"REGEXP_META_CHARACTERS").$match(Me):Os)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):Ne.$extend_string(Me,Y.ts,Y.te):p(p(Ts=Ne["$squiggly_heredoc?"]())?Me["$=="]("\n".$freeze()):Ts)?Ne.$extend_string(Y.$tok(),Y.ts,Y.te):p(p(Is=Ne["$supports_line_continuation_via_slash?"]())?Me["$=="]("\n".$freeze()):Is)?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):p(Ne["$regexp?"]())?Ne.$extend_string(Y.$tok().$gsub("\\\n".$freeze(),"".$freeze()),Y.ts,Y.te):Ne.$extend_string(p(Cs=Y.escape)?Cs:Y.$tok(),Y.ts,Y.te);else{if(364["$==="](ge)){Y.escape=Y.source_buffer.$slice(t(ae,1)).$chr(),p(p(qs=a(Y.version,27))?p(Ps=h(0,8,!1)["$include?"](Y.escape.$ord()))?Ps:h(14,31,!1)["$include?"](Y.escape.$ord()):qs)&&Y.$diagnostic("fatal","invalid_escape"),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$&"](159)),Y.escape=Y.$encode_escape(Y.escape["$[]"](0).$ord()["$|"](128)),Y.te=ae,ae=t(ae,1),Ht=p(Bs=Y.escape)?Bs:Y.$tok(r(Y.ts,1)),p(Y["$version?"](18))?Y.$emit("tINTEGER",Ht.$getbyte(0)):Y.$emit("tCHARACTER",Ht),Y.cs=781,ae=r(ae,1),le=me;continue}if(469["$==="](ge)){Y.num_base=16,Y.num_digits_s=ae,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((B=function(e){var t=null==B.$$s?this:B.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,B.$$arity=1,B)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Ds=p(Ls=Kt["$empty?"]())?Y.num_base["$=="](8):Ls)?Y["$version?"](18):Ds)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(Gs=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):Gs)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(463["$==="](ge)){Y.num_base=10,Y.num_digits_s=ae,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((D=function(e){var t=null==D.$$s?this:D.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,D.$$arity=1,D)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Ms=p(js=Kt["$empty?"]())?Y.num_base["$=="](8):js)?Y["$version?"](18):Ms)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(Fs=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):Fs)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(466["$==="](ge)){Y.num_base=8,Y.num_digits_s=ae,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((L=function(e){var t=null==L.$$s?this:L.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,L.$$arity=1,L)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Us=p(Hs=Kt["$empty?"]())?Y.num_base["$=="](8):Hs)?Y["$version?"](18):Us)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(Ys=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):Ys)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(460["$==="](ge)){Y.num_base=2,Y.num_digits_s=ae,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((G=function(e){var t=null==G.$$s?this:G.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,G.$$arity=1,G)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Xs=p(Vs=Kt["$empty?"]())?Y.num_base["$=="](8):Vs)?Y["$version?"](18):Xs)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(Ws=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):Ws)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(472["$==="](ge)){Y.num_base=10,Y.num_digits_s=Y.ts,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((M=function(e){var t=null==M.$$s?this:M.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,M.$$arity=1,M)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Ks=p(Qs=Kt["$empty?"]())?Y.num_base["$=="](8):Qs)?Y["$version?"](18):Ks)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(Js=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):Js)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}if(436["$==="](ge)){Y.num_base=8,Y.num_digits_s=Y.ts,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((j=function(e){var t=null==j.$$s?this:j.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,j.$$arity=1,j)),Y.te=ae,ae=t(ae,1),Kt=Y.$tok(Y.num_digits_s,Y.num_suffix_s),p(Kt["$end_with?"]("_".$freeze()))?Y.$diagnostic("error","trailing_in_number",f(["character"],{character:"_".$freeze()}),Y.$range(t(Y.te,1),Y.te)):p(p(Zs=p(eo=Kt["$empty?"]())?Y.num_base["$=="](8):eo)?Y["$version?"](18):Zs)?Kt="0".$freeze():p(Kt["$empty?"]())?Y.$diagnostic("error","empty_numeric"):p(p(to=Y.num_base["$=="](8))?er=Kt.$index(/[89]/):to)&&(tr=r(Y.num_digits_s,er),Y.$diagnostic("error","invalid_octal",o,Y.$range(tr,r(tr,1)))),p(Y["$version?"](18,19,20))?(Y.$emit("tINTEGER",Kt.$to_i(Y.num_base),Y.ts,Y.num_suffix_s),ae=t(Y.num_suffix_s,1)):Y.num_xfrm.$call(Kt.$to_i(Y.num_base)),ae=r(ae,1),le=me;continue}31["$==="](ge)?(Y.te=r(ae,1),p(Y.herebody_s)&&(ae=Y.herebody_s,Y.herebody_s=o),xe=ae,Y.act=72):62["$==="](ge)?(Y.te=r(ae,1),Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.act=98):92["$==="](ge)?(Y.te=r(ae,1),Y.sharp_s=t(ae,1),Y.$emit_comment(Y.sharp_s,ae["$=="](ne)?t(ae,2):ae),Y.act=180):479["$==="](ge)?(Y.te=r(ae,1),Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((F=function(e){var t=null==F.$$s?this:F.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,F.$$arity=1,F)),Y.act=155):475["$==="](ge)?(Y.te=r(ae,1),Y.num_base=10,Y.num_digits_s=Y.ts,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((U=function(e){var t=null==U.$$s?this:U.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,U.$$arity=1,U)),Y.act=155):439["$==="](ge)&&(Y.te=r(ae,1),Y.num_base=8,Y.num_digits_s=Y.ts,Y.num_suffix_s=ae,Y.num_xfrm=l(Y,"lambda",[],((H=function(e){var t=null==H.$$s?this:H.$$s;return null==e&&(e=o),t.$emit("tINTEGER",e)}).$$s=Y,H.$$arity=1,H)),Y.act=155)}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}if(p($(le,fe))){if(ge=te["$[]"](Y.cs),96["$==="](ge)&&(Y.ts=o),Y.cs["$=="](0)){le=me;continue}if(ae=r(ae,1),p(ae["$!="](ne))){le=de;continue}}if(p($(le,he))&&ae["$=="](ie)&&p(n($e["$[]"](Y.cs),0)))ce=t($e["$[]"](Y.cs),1),le=pe;else if(p($(le,me)))break}return p(!1),Y.p=ae,p(Y.token_queue["$any?"]())?Y.token_queue.$shift():Y.cs["$=="](X.$lex_error())?[!1,["$error".$freeze(),Y.$range(t(ae,1),ae)]]:(ie=Y.source_pts.$size(),[!1,["$eof".$freeze(),Y.$range(ie,ie)]])},S.$$arity=0),V.$protected(),e.def(V,"$eof_codepoint?",O=function(e){return[4,26,0]["$include?"](e)},O.$$arity=1),e.def(V,"$version?",T=function(){var t=this;return e.slice.call(arguments,0,arguments.length)["$include?"](t.version)},T.$$arity=-1),e.def(V,"$stack_pop",I=function(){var e=this;return e.top=t(e.top,1),e.stack["$[]"](e.top)},I.$$arity=0),e.def(V,"$encode_escape",C=function(e){var t=this;return e.$chr().$force_encoding(t.source_buffer.$source().$encoding())},C.$$arity=1),e.def(V,"$tok",q=function(t,r){var $=this;return null==t&&(t=$.ts),null==r&&(r=$.te),$.source_buffer.$slice(e.Range.$new(t,r,!0))},q.$$arity=-1),e.def(V,"$range",P=function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),c(c(_(W,"Parser"),"Source"),"Range").$new(r.source_buffer,e,t)},P.$$arity=-1),e.def(V,"$emit",B=function(e,t,r,$){var n=this,a=o;return null==t&&(t=n.$tok()),null==r&&(r=n.ts),null==$&&($=n.te),a=[e,[t,n.$range(r,$)]],n.token_queue.$push(a),p(n.tokens)&&n.tokens.$push(a),a},B.$$arity=-2),e.def(V,"$emit_table",D=function(e,t,r){var $=this,n=o;return null==t&&(t=$.ts),null==r&&(r=$.te),n=$.$tok(t,r),$.$emit(e["$[]"](n),n,t,r)},D.$$arity=-2),e.def(V,"$emit_do",L=function(e){var t=this,r=o;return null==e&&(e=!1),p(t.cond["$active?"]())?t.$emit("kDO_COND","do".$freeze()):p(p(r=t.cmdarg["$active?"]())?r:e)?t.$emit("kDO_BLOCK","do".$freeze()):t.$emit("kDO","do".$freeze())},L.$$arity=-1),e.def(V,"$arg_or_cmdarg",G=function(e){var t=this;return p(e)?t.$class().$lex_en_expr_cmdarg():t.$class().$lex_en_expr_arg()},G.$$arity=1),e.def(V,"$emit_comment",M=function(e,t){var r=this;return null==e&&(e=r.ts),null==t&&(t=r.te),p(r.comments)&&r.comments.$push(c(c(_(W,"Parser"),"Source"),"Comment").$new(r.$range(e,t))),p(r.tokens)&&r.tokens.$push(["tCOMMENT",[r.$tok(e,t),r.$range(e,t)]]),o},M.$$arity=-1),e.def(V,"$diagnostic",j=function(e,t,r,$,n){var a=this;return null==r&&(r=o),null==$&&($=a.$range()),null==n&&(n=[]),a.diagnostics.$process(c(_(W,"Parser"),"Diagnostic").$new(e,t,r,$,n))},j.$$arity=-3),e.def(V,"$push_literal",F=function(){var t,r=this,$=o;return t=e.slice.call(arguments,0,arguments.length),$=l(_(W,"Literal"),"new",[r].concat(e.to_a(t))),r.literal_stack.$push($),r.$next_state_for_literal($)},F.$$arity=-1),e.def(V,"$next_state_for_literal",U=function(e){var t=this,r=o,$=o,n=o;return p(p(r=e["$words?"]())?e["$backslash_delimited?"]():r)?p(e["$interpolate?"]())?t.$class().$lex_en_interp_backslash_delimited_words():t.$class().$lex_en_plain_backslash_delimited_words():p(p($=e["$words?"]())?e["$backslash_delimited?"]()["$!"]():$)?p(e["$interpolate?"]())?t.$class().$lex_en_interp_words():t.$class().$lex_en_plain_words():p(p(n=e["$words?"]()["$!"]())?e["$backslash_delimited?"]():n)?p(e["$interpolate?"]())?t.$class().$lex_en_interp_backslash_delimited():t.$class().$lex_en_plain_backslash_delimited():p(e["$interpolate?"]())?t.$class().$lex_en_interp_string():t.$class().$lex_en_plain_string()},U.$$arity=1),e.def(V,"$literal",H=function(){return this.literal_stack.$last()},H.$$arity=0),e.def(V,"$pop_literal",Y=function(){var e=this,t=o;return t=e.literal_stack.$pop(),e.dedent_level=t.$dedent_level(),t.$type()["$=="]("tREGEXP_BEG")?e.$class().$lex_en_regexp_modifiers():e.$class().$lex_en_expr_end()},Y.$$arity=0),e.const_set(W[0],"PUNCTUATION",f(["=","&","|","!","^","+","-","*","/","%","~",",",";",".","..","...","[","]","(",")","?",":","&&","||","-@","+@","~@","**","->","=~","!~","==","!=",">",">>",">=","<","<<","<=","=>","::","===","<=>","[]","[]=","{","}","`","!@","&."],{"=":"tEQL","&":"tAMPER2","|":"tPIPE","!":"tBANG","^":"tCARET","+":"tPLUS","-":"tMINUS","*":"tSTAR2","/":"tDIVIDE","%":"tPERCENT","~":"tTILDE",",":"tCOMMA",";":"tSEMI",".":"tDOT","..":"tDOT2","...":"tDOT3","[":"tLBRACK2","]":"tRBRACK","(":"tLPAREN2",")":"tRPAREN","?":"tEH",":":"tCOLON","&&":"tANDOP","||":"tOROP","-@":"tUMINUS","+@":"tUPLUS","~@":"tTILDE","**":"tPOW","->":"tLAMBDA","=~":"tMATCH","!~":"tNMATCH","==":"tEQ","!=":"tNEQ",">":"tGT",">>":"tRSHFT",">=":"tGEQ","<":"tLT","<<":"tLSHFT","<=":"tLEQ","=>":"tASSOC","::":"tCOLON2","===":"tEQQ","<=>":"tCMP","[]":"tAREF","[]=":"tASET","{":"tLCURLY","}":"tRCURLY","`":"tBACK_REF2","!@":"tBANG","&.":"tANDDOT"})),e.const_set(W[0],"PUNCTUATION_BEGIN",f(["&","*","**","+","-","::","(","{","["],{"&":"tAMPER","*":"tSTAR","**":"tDSTAR","+":"tUPLUS","-":"tUMINUS","::":"tCOLON3","(":"tLPAREN","{":"tLBRACE","[":"tLBRACK"})),e.const_set(W[0],"KEYWORDS",f(["if","unless","while","until","rescue","defined?","BEGIN","END"],{"if":"kIF_MOD",unless:"kUNLESS_MOD","while":"kWHILE_MOD",until:"kUNTIL_MOD",rescue:"kRESCUE_MOD","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),e.const_set(W[0],"KEYWORDS_BEGIN",f(["if","unless","while","until","rescue","defined?","BEGIN","END"],{"if":"kIF",unless:"kUNLESS","while":"kWHILE",until:"kUNTIL",rescue:"kRESCUE","defined?":"kDEFINED",BEGIN:"klBEGIN",END:"klEND"})),l(["class","module","def","undef","begin","end","then","elsif","else","ensure","case","when","for","break","next","redo","retry","in","do","return","yield","super","self","nil","true","false","and","or","not","alias","__FILE__","__LINE__","__ENCODING__"],"each",[],((X=function(r){null==X.$$s||X.$$s;return null==r&&(r=o),K=[r,(K=[r,"k"+r.$upcase()],l(_(W,"KEYWORDS"),"[]=",e.to_a(K)),K[t(K.length,1)])],l(_(W,"KEYWORDS_BEGIN"),"[]=",e.to_a(K)),K[t(K.length,1)]}).$$s=V,X.$$arity=1,X))}(_(s,"Parser"),0,s)},Opal.modules["parser/lexer/literal"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var n=[],a=e.nil,i=(e.$$$,e.$$),s=e.module,o=e.klass,c=e.hash2,_=e.enc,u=e.truthy,l=e.send;return e.add_stubs(["$attr_reader","$attr_accessor","$coerce_encoding","$include?","$send","$+","$[]","$fetch","$==","$!","$heredoc?","$start_with?","$freeze","$clear_buffer","$emit_start_tok","$type","$words?","$=~","$delimiter?","$-","$extend_space","$!=","$flush_string","$emit","$each_char","$===","$%","$nil?","$>","$<<","$empty?","$extend_content","$protected","$lstrip","$b","$dup","$force_encoding","$encoding","$source","$source_buffer","$length"]),function(n,d){var p=[s(n,"Parser")].concat(d);return function(n,$super,s){var d,p,f,h,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B=o(n,null,"Literal"),D=[B].concat(s);return B.$$prototype.lexer=B.$$prototype.start_tok=B.$$prototype.str_type=B.$$prototype.monolithic=B.$$prototype.interpolate=B.$$prototype.heredoc_e=B.$$prototype.dedent_body=B.$$prototype.end_delim=B.$$prototype.start_delim=B.$$prototype.nesting=B.$$prototype.label_allowed=B.$$prototype.buffer=B.$$prototype.str_s=B.$$prototype.interp_braces=B.$$prototype.buffer_s=B.$$prototype.buffer_e=B.$$prototype.space_emitted=B.$$prototype.indent=a,e.const_set(D[0],"DELIMITERS",c(["(","[","{","<"],{"(":_(")","ASCII-8BIT"),"[":_("]","ASCII-8BIT"),"{":_("}","ASCII-8BIT"),"<":_(">","ASCII-8BIT")})),e.const_set(D[0],"TYPES",c(["'","<<'","%q",'"','<<"',"%","%Q","%w","%W","%i","%I",":'","%s",':"',"/","%r","%x","`","<<`"],{"'":["tSTRING_BEG",!1],"<<'":["tSTRING_BEG",!1],"%q":["tSTRING_BEG",!1],'"':["tSTRING_BEG",!0],'<<"':["tSTRING_BEG",!0],"%":["tSTRING_BEG",!0],"%Q":["tSTRING_BEG",!0],"%w":["tQWORDS_BEG",!1],"%W":["tWORDS_BEG",!0],"%i":["tQSYMBOLS_BEG",!1],"%I":["tSYMBOLS_BEG",!0],":'":["tSYMBEG",!1],"%s":["tSYMBEG",!1],':"':["tSYMBEG",!0],"/":["tREGEXP_BEG",!0],"%r":["tREGEXP_BEG",!0],"%x":["tXSTRING_BEG",!0],"`":["tXSTRING_BEG",!0],"<<`":["tXSTRING_BEG",!0]})),B.$attr_reader("heredoc_e","str_s","dedent_level"),B.$attr_accessor("saved_herebody_s"),e.def(B,"$initialize",d=function(r,$,n,s,o,l,d,p){var f,h,m=this,g=a,y=a;return null==o&&(o=a),null==l&&(l=!1),null==d&&(d=!1),null==p&&(p=!1),m.lexer=r,m.nesting=1,$=m.$coerce_encoding($),n=m.$coerce_encoding(n),u(i(D,"TYPES")["$include?"]($))||r.$send("diagnostic","error","unexpected_percent_str",c(["type"],{type:$}),m.lexer.$send("range",s,t(s,2))),m.str_type=$,m.str_s=s,h=i(D,"TYPES")["$[]"]($),f=e.to_ary(h),m.start_tok=null==f[0]?a:f[0],m.interpolate=null==f[1]?a:f[1],m.start_delim=u(i(D,"DELIMITERS")["$include?"](n))?n:a,m.end_delim=i(D,"DELIMITERS").$fetch(n,n),m.heredoc_e=o,m.indent=l,m.label_allowed=p,m.dedent_body=d,m.dedent_level=a,m.interp_braces=0,m.space_emitted=!0,m.monolithic=u(g=u(y=m.start_tok["$=="]("tSTRING_BEG"))?[_("'","ASCII-8BIT"),_('"',"ASCII-8BIT")]["$include?"]($):y)?m["$heredoc?"]()["$!"]():g,u(m.str_type["$start_with?"](_("%","ASCII-8BIT").$freeze()))&&(m.str_type=t(m.str_type,n)),m.$clear_buffer(),u(m.monolithic)?a:m.$emit_start_tok()},d.$$arity=-5),e.def(B,"$interpolate?",p=function(){return this.interpolate},p.$$arity=0),e.def(B,"$words?",f=function(){var e=this,t=a,r=a,$=a;return u(t=u(r=u($=e.$type()["$=="]("tWORDS_BEG"))?$:e.$type()["$=="]("tQWORDS_BEG"))?r:e.$type()["$=="]("tSYMBOLS_BEG"))?t:e.$type()["$=="]("tQSYMBOLS_BEG")},f.$$arity=0),e.def(B,"$regexp?",h=function(){return this.$type()["$=="]("tREGEXP_BEG")},h.$$arity=0),e.def(B,"$heredoc?",m=function(){return this.heredoc_e["$!"]()["$!"]()},m.$$arity=0),e.def(B,"$plain_heredoc?",g=function(){var e=this,t=a;return u(t=e["$heredoc?"]())?e.dedent_body["$!"]():t},g.$$arity=0),e.def(B,"$squiggly_heredoc?",y=function(){var e=this,t=a;return u(t=e["$heredoc?"]())?e.dedent_body:t},y.$$arity=0),e.def(B,"$backslash_delimited?",v=function(){return this.end_delim["$=="](_("\\","ASCII-8BIT").$freeze())},v.$$arity=0),e.def(B,"$type",b=function(){return this.start_tok},b.$$arity=0),e.def(B,"$munge_escape?",k=function(e){var t=this,r=a;return e=t.$coerce_encoding(e),!!u(u(r=t["$words?"]())?e["$=~"](/[ \t\v\r\f\n]/):r)||[_("\\","ASCII-8BIT").$freeze(),t.start_delim,t.end_delim]["$include?"](e)},k.$$arity=1),e.def(B,"$nest_and_try_closing",x=function(e,$,n,i){var s=this,o=a,c=a,l=a,d=a,p=a;return null==i&&(i=a),e=s.$coerce_encoding(e),u(u(o=s.start_delim)?s.start_delim["$=="](e):o)?s.nesting=t(s.nesting,1):u(s["$delimiter?"](e))&&(s.nesting=r(s.nesting,1)),s.nesting["$=="](0)?(u(s["$words?"]())&&s.$extend_space($,$),u(u(c=u(l=u(d=u(p=i)?s.label_allowed:p)?i["$[]"](0)["$=="](_(":","ASCII-8BIT")):d)?i["$[]"](1)["$!="](_(":","ASCII-8BIT")):l)?s.start_tok["$=="]("tSTRING_BEG"):c)?(s.$flush_string(),s.$emit("tLABEL_END",s.end_delim,$,t(n,1))):u(s.monolithic)?s.$emit("tSTRING",s.buffer,s.str_s,n):(u(s["$heredoc?"]())||s.$flush_string(),s.$emit("tSTRING_END",s.end_delim,$,n))):a},x.$$arity=-4),e.def(B,"$infer_indent_level",w=function(n){var i,s=this,o=a;return u(s.dedent_body["$!"]())?a:(o=0,function(){var c=e.new_brk();try{return l(n,"each_char",[],((i=function(n){var s=null==i.$$s?this:i.$$s,_=a,l=a;return null==s.dedent_level&&(s.dedent_level=a),null==n&&(n=a),_=n," "["$==="](_)?o=t(o,1):"\t"["$==="](_)?o=t(o,r(8,o["$%"](8))):(u(u(l=s.dedent_level["$nil?"]())?l:$(s.dedent_level,o))&&(s.dedent_level=o),void e.brk(a,c))}).$$s=s,i.$$brk=c,i.$$arity=1,i))}catch(_){if(_===c)return _.$v;throw _}}())},w.$$arity=1),e.def(B,"$start_interp_brace",E=function(){var e=this;return e.interp_braces=t(e.interp_braces,1)},E.$$arity=0),e.def(B,"$end_interp_brace_and_try_closing",R=function(){var e=this;return e.interp_braces=r(e.interp_braces,1),e.interp_braces["$=="](0)},R.$$arity=0),e.def(B,"$extend_string",z=function(e,t,r){var $=this,n=a;return $.buffer_s=u(n=$.buffer_s)?n:t,$.buffer_e=r,$.buffer["$<<"](e)},z.$$arity=3),e.def(B,"$flush_string",A=function(){var e=this;return u(e.monolithic)&&(e.$emit_start_tok(),e.monolithic=!1),u(e.buffer["$empty?"]())?a:(e.$emit("tSTRING_CONTENT",e.buffer,e.buffer_s,e.buffer_e),e.$clear_buffer(),e.$extend_content())},A.$$arity=0),e.def(B,"$extend_content",N=function(){return this.space_emitted=!1},N.$$arity=0),e.def(B,"$extend_space",S=function(e,t){var r=this;return r.$flush_string(),u(r.space_emitted)?a:(r.$emit("tSPACE",a,e,t),r.space_emitted=!0)},S.$$arity=2),e.def(B,"$supports_line_continuation_via_slash?",O=function(){var e=this,t=a;return u(t=e["$words?"]()["$!"]())?e.interpolate:t},O.$$arity=0),B.$protected(),e.def(B,"$delimiter?",T=function(e){var t=this;return u(t.indent)?t.end_delim["$=="](e.$lstrip()):t.end_delim["$=="](e)},T.$$arity=1),e.def(B,"$coerce_encoding",I=function(e){return e.$b()},I.$$arity=1),e.def(B,"$clear_buffer",C=function(){var e=this;return e.buffer=_("","ASCII-8BIT").$dup(),e.buffer.$force_encoding(e.lexer.$source_buffer().$source().$encoding()),e.buffer_s=a,e.buffer_e=a},C.$$arity=0),e.def(B,"$emit_start_tok",q=function(){var e=this,r=a,$=a;return r=u($=e.heredoc_e)?$:t(e.str_s,e.str_type.$length()),e.$emit(e.start_tok,e.str_type,e.str_s,r)},q.$$arity=0),e.def(B,"$emit",P=function(e,t,r,$){return this.lexer.$send("emit",e,t,r,$)},P.$$arity=4),a&&"emit"}(i(p,"Lexer"),0,p)}(n[0],n)},Opal.modules["parser/lexer/stack_state"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.truthy,s=e.alias;return e.add_stubs(["$freeze","$clear","$|","$<<","$&","$>>","$==","$[]","$to_s"]),function(t,o){var c=[n(t,"Parser")].concat(o);return function(t,$super,$){var n,o,c,_,u,l,d,p,f=a(t,null,"StackState");[f].concat($);return f.$$prototype.stack=f.$$prototype.name=r,e.def(f,"$initialize",n=function(e){var t=this;return t.name=e.$freeze(),t.$clear()},n.$$arity=1),e.def(f,"$clear",o=function(){return this.stack=0},o.$$arity=0),e.def(f,"$push",c=function(e){var t=this,$=r;return $=i(e)?1:0,t.stack=t.stack["$<<"](1)["$|"]($),e},c.$$arity=1),e.def(f,"$pop",_=function(){var e=this,t=r;return t=e.stack["$&"](1),e.stack=e.stack["$>>"](1),t["$=="](1)},_.$$arity=0),e.def(f,"$lexpop",u=function(){var e=this;return e.stack=e.stack["$>>"](1)["$|"](e.stack["$&"](1)),e.stack["$[]"](0)["$=="](1)},u.$$arity=0),e.def(f,"$active?",l=function(){return this.stack["$[]"](0)["$=="](1)},l.$$arity=0),e.def(f,"$empty?",d=function(){return this.stack["$=="](0)},d.$$arity=0),e.def(f,"$to_s",p=function(){var e=this;return"["+e.stack.$to_s(2)+" <= "+e.name+"]"},p.$$arity=0),s(f,"inspect","to_s")}($(c,"Lexer"),0,c)}(t[0],t)},Opal.modules["parser/lexer/dedenter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e/t:e["$/"](t)}e.top;var s=[],o=e.nil,c=e.$$$,_=e.$$,u=e.module,l=e.klass,d=e.send,p=e.truthy,f=e.slice;return e.add_stubs(["$encoding","$split","$force_encoding","$map!","$each","$each_char","$<=","$===","$+","$-","$>","$*","$/","$slice!","$replace","$join","$end_with?"]),function(s,h){var m=[u(s,"Parser")].concat(h);return function(s,$super,u){var h,m,g,y=l(s,null,"Dedenter"),v=[y].concat(u);return y.$$prototype.at_line_begin=o,e.const_set(v[0],"TAB_WIDTH",8),e.def(y,"$initialize",h=function(e){var t=this;return t.dedent_level=e,t.at_line_begin=!0,t.indent_level=0},h.$$arity=1),e.def(y,"$dedent",m=function(s){var u,l,h,m,g=this,y=o,b=o,k=o;return y=s.$encoding(),b=s.$force_encoding(c(_(v,"Encoding"),"BINARY")).$split("\\\n"),d(b,"map!",[],((u=function(e){null==u.$$s||u.$$s;return null==e&&(e=o),e.$force_encoding(y)}).$$s=g,u.$$arity=1,u)),p(g.at_line_begin)?k=b:(h=b,null==(l=e.to_ary(h))[0]?o:l[0],k=f.call(l,1)),function(){var s=e.new_brk();try{d(k,"each",[],((m=function(s){var c,u=null==m.$$s?this:m.$$s,l=o,f=o;return null==u.dedent_level&&(u.dedent_level=o),null==s&&(s=o),l=u.dedent_level,f=0,function(){var h=e.new_brk();try{d(s,"each_char",[],((c=function(s){var u=null==c.$$s?this:c.$$s,d=o;return null==u.dedent_level&&(u.dedent_level=o),null==s&&(s=o),p(t(l,0))&&e.brk(o,h),d=s," "["$==="](d)?(f=r(f,1),l=$(l,1)):"\t"["$==="](d)?(p(n(a(_(v,"TAB_WIDTH"),r(i(f,_(v,"TAB_WIDTH")),1)),u.dedent_level))&&e.brk(o,h),f=r(f,1),l=$(l,_(v,"TAB_WIDTH"))):void e.brk(o,h)}).$$s=u,c.$$brk=h,c.$$arity=1,c))}catch(m){if(m===h)return m.$v;throw m}}(),s["$slice!"](0,f)}).$$s=g,m.$$brk=s,m.$$arity=1,m))}catch(c){if(c===s)return c.$v;throw c}}(),s.$replace(b.$join()),g.at_line_begin=s["$end_with?"]("\n")},m.$$arity=1),e.def(y,"$interrupt",g=function(){return this.at_line_begin=!1},g.$$arity=0),o&&"interrupt"}(_(m,"Lexer"),0,m)}(s[0],s)},Opal.modules["parser/builders/default"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e","$count","$rescue_body_map","$any?","$eh_keyword_map","$push","$none?","$one?","$begin","$guard_map","$check_lvar_name","$check_duplicate_pattern_variable","$adjust","$length","$match_hash_var_from_str","$match_var","$check_duplicate_pattern_key","$pair_keyword","$static_string","$pair_quoted","$match_hash_var","$<=","$check_duplicate_arg","$is_a?","$[]=","$arg_name_collides?","$<","$in_dynamic_block?","$=~","$has_numparams?","$max_numparam_stack","$start_with?","$pattern_variables","$pattern_hash_keys","$with","$begin_pos","$end_pos","$encode","$valid_encoding?","$process","$diagnostics","$send","$kwargs?"]),function(i,m){var g=[_(i,"Parser")].concat(m);return function(i,$super,_){var m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U,H,Y,X,V,W,K,Q,J,Z,ee,te,re,$e,ne,ae,ie,se,oe,ce,_e,ue,le,de,pe,fe,he,me,ge,ye,ve,be,ke,xe,we,Ee,Re,ze,Ae,Ne,Se,Oe,Te,Ie,Ce,qe,Pe,Be,De,Le,Ge,Me,je,Fe,Ue,He,Ye,Xe,Ve,We,Ke,Qe,Je,Ze,et,tt,rt,$t,nt,at,it,st,ot,ct,_t,ut,lt,dt,pt,ft,ht,mt,gt,yt,vt,bt,kt,xt,wt,Et,Rt,zt,At,Nt,St,Ot,Tt,It,Ct,qt,Pt,Bt,Dt,Lt,Gt,Mt,jt,Ft,Ut,Ht,Yt,Xt,Vt,Wt,Kt,Qt,Jt,Zt,er,tr,rr,$r,nr,ar,ir,sr,or,cr,_r,ur,lr,dr,pr,fr,hr,mr,gr,yr,vr,br,kr,xr,wr,Er,Rr,zr,Ar,Nr,Sr,Or,Tr,Ir,Cr,qr,Pr,Br,Dr,Lr,Gr,Mr,jr,Fr,Ur,Hr,Yr,Xr,Vr=u(i,null,"Default"),Wr=[Vr].concat(_);return Vr.$$prototype.parser=Vr.$$prototype.emit_file_line_as_literals=s,function(e,t){[e].concat(t);e.$attr_accessor("emit_lambda")}(e.get_singleton_class(Vr),Wr),Vr.emit_lambda=!1,function(e,t){[e].concat(t);e.$attr_accessor("emit_procarg0")}(e.get_singleton_class(Vr),Wr),Vr.emit_procarg0=!1,function(e,t){[e].concat(t);e.$attr_accessor("emit_encoding")}(e.get_singleton_class(Vr),Wr),Vr.emit_encoding=!1,function(e,t){[e].concat(t);e.$attr_accessor("emit_index")}(e.get_singleton_class(Vr),Wr),Vr.emit_index=!1,function(e,t){[e].concat(t);e.$attr_accessor("emit_arg_inside_procarg0")}(e.get_singleton_class(Vr),Wr),Vr.emit_arg_inside_procarg0=!1,function(e,t){[e].concat(t);e.$attr_accessor("emit_forward_arg")}(e.get_singleton_class(Vr),Wr),Vr.emit_forward_arg=!1,function(e,t){[e].concat(t);e.$attr_accessor("emit_kwargs")}(e.get_singleton_class(Vr),Wr),Vr.emit_kwargs=!1,function(e,t){[e].concat(t);e.$attr_accessor("emit_match_pattern")}(e.get_singleton_class(Vr),Wr),Vr.emit_match_pattern=!1,function(t,r){var $;[t].concat(r);e.def(t,"$modernize",$=function(){var e=this;return e.emit_lambda=!0,e.emit_procarg0=!0,e.emit_encoding=!0,e.emit_index=!0,e.emit_arg_inside_procarg0=!0,e.emit_forward_arg=!0,e.emit_kwargs=!0,e.emit_match_pattern=!0},$.$$arity=0)}(e.get_singleton_class(Vr),Wr),Vr.$attr_accessor("parser"),Vr.$attr_accessor("emit_file_line_as_literals"),e.def(Vr,"$initialize",m=function(){return this.emit_file_line_as_literals=!0},m.$$arity=0),e.def(Vr,"$nil",g=function(e){var t=this;return t.$n0("nil",t.$token_map(e))},g.$$arity=1),e.def(Vr,"$true",y=function(e){var t=this;return t.$n0("true",t.$token_map(e))},y.$$arity=1),e.def(Vr,"$false",v=function(e){var t=this;return t.$n0("false",t.$token_map(e))},v.$$arity=1),e.def(Vr,"$integer",b=function(e){return this.$numeric("int",e)},b.$$arity=1),e.def(Vr,"$float",k=function(e){return this.$numeric("float",e)},k.$$arity=1),e.def(Vr,"$rational",x=function(e){return this.$numeric("rational",e)},x.$$arity=1),e.def(Vr,"$complex",w=function(e){return this.$numeric("complex",e)},w.$$arity=1),e.def(Vr,"$numeric",E=function(e,t){var r=this;return r.$n(e,[r.$value(t)],o(o(c(Wr,"Source"),"Map"),"Operator").$new(s,r.$loc(t)))},E.$$arity=2),Vr.$private("numeric"),e.def(Vr,"$unary_num",R=function(t,r){var $,n=this,a=s,i=s,_=s;return a=null==($=[].concat(e.to_a(r)))[0]?s:$[0],i=n.$loc(t),_=n.$value(t),"+"["$==="](_)?a=a["$+@"]():"-"["$==="](_)&&(a=a["$-@"]()),r.$updated(s,[a],l(["location"],{location:o(o(c(Wr,"Source"),"Map"),"Operator").$new(i,i.$join(r.$loc().$expression()))}))},R.$$arity=2),e.def(Vr,"$__LINE__",z=function(e){var t=this;return t.$n0("__LINE__",t.$token_map(e))},z.$$arity=1),e.def(Vr,"$string",A=function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$delimited_string_map(e))},A.$$arity=1),e.def(Vr,"$string_internal",N=function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$unquoted_map(e))},N.$$arity=1),e.def(Vr,"$string_compose",S=function(t,r,$){var n=this,a=s;return d(n["$collapse_string_parts?"](r))?d(d(a=t["$nil?"]())?$["$nil?"]():a)?r.$first():n.$n("str",r.$first().$children(),n.$string_map(t,r,$)):n.$n("dstr",[].concat(e.to_a(r)),n.$string_map(t,r,$))},S.$$arity=3),e.def(Vr,"$character",O=function(e){var t=this;return t.$n("str",[t.$string_value(e)],t.$prefix_string_map(e))},O.$$arity=1),e.def(Vr,"$__FILE__",T=function(e){var t=this;return t.$n0("__FILE__",t.$token_map(e))},T.$$arity=1),e.def(Vr,"$symbol",I=function(e){var t=this;return t.$n("sym",[t.$string_value(e).$to_sym()],t.$prefix_string_map(e))},I.$$arity=1),e.def(Vr,"$symbol_internal",C=function(e){var t=this;return t.$n("sym",[t.$string_value(e).$to_sym()],t.$unquoted_map(e))},C.$$arity=1),e.def(Vr,"$symbol_compose",q=function(t,r,$){var n=this,a=s,i=s;return d(n["$collapse_string_parts?"](r))?(a=r.$first(),n.$n("sym",[a.$children().$first().$to_sym()],n.$collection_map(t,a.$loc().$expression(),$))):d(d(i=n.parser.$version()["$=="](18))?r["$empty?"]():i)?n.$diagnostic("error","empty_symbol",s,n.$loc(t).$join(n.$loc($))):n.$n("dsym",[].concat(e.to_a(r)),n.$collection_map(t,r,$))},q.$$arity=3),e.def(Vr,"$xstring_compose",P=function(t,r,$){var n=this;return n.$n("xstr",[].concat(e.to_a(r)),n.$string_map(t,r,$))},P.$$arity=3),e.def(Vr,"$dedent_string",B=function(e,t){var r,$=this,n=s,a=s,i=s,_=s;return d(t["$nil?"]()["$!"]())&&(n=o(c(Wr,"Lexer"),"Dedenter").$new(t),a=e.$type(),"str"["$==="](a)?(i=e.$children().$first(),n.$dedent(i)):("dstr"["$==="](a)||"xstr"["$==="](a))&&(_=p(e.$children(),"map",[],((r=function(e){null==r.$$s||r.$$s;if(null==e&&(e=s),e.$type()["$=="]("str")){if(i=e.$children().$first(),n.$dedent(i),d(i["$empty?"]()))return s}else n.$interrupt();return e}).$$s=$,r.$$arity=1,r)),e=e.$updated(s,_.$compact()))),e},B.$$arity=2),e.def(Vr,"$regexp_options",D=function(e){var t=this,r=s;return r=p(t.$value(e).$each_char().$sort().$uniq(),"map",[],"to_sym".$to_proc()),t.$n("regopt",r,t.$token_map(e))},D.$$arity=1), +e.def(Vr,"$regexp_compose",L=function(t,r,$,n){var a=this,i=s;try{a.$static_regexp(r,n)}catch(o){if(!e.rescue(o,[c(Wr,"RegexpError")]))throw o;i=o;try{a.$diagnostic("error","invalid_regexp",l(["message"],{message:i.$message()}),a.$loc(t).$join(a.$loc($)))}finally{e.pop_exception()}}return a.$n("regexp",r["$<<"](n),a.$regexp_map(t,$,n))},L.$$arity=4),e.def(Vr,"$array",G=function(e,t,r){var $=this;return $.$n("array",t,$.$collection_map(e,t,r))},G.$$arity=3),e.def(Vr,"$splat",M=function(e,t){var r=this;return null==t&&(t=s),d(t["$nil?"]())?r.$n0("splat",r.$unary_op_map(e)):r.$n("splat",[t],r.$unary_op_map(e,t))},M.$$arity=-2),e.def(Vr,"$word",j=function(t){var r=this;return d(r["$collapse_string_parts?"](t))?t.$first():r.$n("dstr",[].concat(e.to_a(t)),r.$collection_map(s,t,s))},j.$$arity=1),e.def(Vr,"$words_compose",F=function(t,r,$){var n=this;return n.$n("array",[].concat(e.to_a(r)),n.$collection_map(t,r,$))},F.$$arity=3),e.def(Vr,"$symbols_compose",U=function(t,r,$){var n,a=this;return r=p(r,"map",[],((n=function(t){null==n.$$s||n.$$s;var r,$=s,a=s;return null==t&&(t=s),$=t.$type(),"str"["$==="]($)?(r=[].concat(e.to_a(t)),a=null==r[0]?s:r[0],t.$updated("sym",[a.$to_sym()])):"dstr"["$==="]($)?t.$updated("dsym"):t}).$$s=a,n.$$arity=1,n)),a.$n("array",[].concat(e.to_a(r)),a.$collection_map(t,r,$))},U.$$arity=3),e.def(Vr,"$pair",H=function(e,t,r){var $=this;return $.$n("pair",[e,r],$.$binary_op_map(e,t,r))},H.$$arity=3),e.def(Vr,"$pair_list_18",Y=function(e){var t,r=this;return d(e.$size()["$%"](2)["$!="](0))?r.$diagnostic("error","odd_hash",s,e.$last().$loc().$expression()):p(e.$each_slice(2),"map",[],((t=function(e,r){var $=null==t.$$s?this:t.$$s;return null==e&&(e=s),null==r&&(r=s),$.$n("pair",[e,r],$.$binary_op_map(e,s,r))}).$$s=r,t.$$arity=2,t))},Y.$$arity=1),e.def(Vr,"$pair_keyword",X=function(t,r){var $,n,a=this,i=s,o=s,c=s;return n=a.$pair_keyword_map(t,r),i=null==($=e.to_ary(n))[0]?s:$[0],o=null==$[1]?s:$[1],c=a.$n("sym",[a.$value(t).$to_sym()],i),a.$n("pair",[c,r],o)},X.$$arity=2),e.def(Vr,"$pair_quoted",V=function(t,r,$,n){var a,i,o=this,c=s,_=s;return i=o.$pair_quoted_map(t,$,n),$=null==(a=e.to_ary(i))[0]?s:a[0],c=null==a[1]?s:a[1],_=o.$symbol_compose(t,r,$),o.$n("pair",[_,n],c)},V.$$arity=4),e.def(Vr,"$kwsplat",W=function(e,t){var r=this;return r.$n("kwsplat",[t],r.$unary_op_map(e,t))},W.$$arity=2),e.def(Vr,"$associate",K=function(t,r,$){var n=this;return n.$n("hash",[].concat(e.to_a(r)),n.$collection_map(t,r,$))},K.$$arity=3),e.def(Vr,"$range_inclusive",Q=function(e,t,r){var $=this;return $.$n("irange",[e,r],$.$range_map(e,t,r))},Q.$$arity=3),e.def(Vr,"$range_exclusive",J=function(e,t,r){var $=this;return $.$n("erange",[e,r],$.$range_map(e,t,r))},J.$$arity=3),e.def(Vr,"$self",Z=function(e){var t=this;return t.$n0("self",t.$token_map(e))},Z.$$arity=1),e.def(Vr,"$ident",ee=function(e){var t=this;return t.$n("ident",[t.$value(e).$to_sym()],t.$variable_map(e))},ee.$$arity=1),e.def(Vr,"$ivar",te=function(e){var t=this;return t.$n("ivar",[t.$value(e).$to_sym()],t.$variable_map(e))},te.$$arity=1),e.def(Vr,"$gvar",re=function(e){var t=this;return t.$n("gvar",[t.$value(e).$to_sym()],t.$variable_map(e))},re.$$arity=1),e.def(Vr,"$cvar",$e=function(e){var t=this;return t.$n("cvar",[t.$value(e).$to_sym()],t.$variable_map(e))},$e.$$arity=1),e.def(Vr,"$back_ref",ne=function(e){var t=this;return t.$n("back_ref",[t.$value(e).$to_sym()],t.$token_map(e))},ne.$$arity=1),e.def(Vr,"$nth_ref",ae=function(e){var t=this;return t.$n("nth_ref",[t.$value(e)],t.$token_map(e))},ae.$$arity=1),e.def(Vr,"$accessible",ie=function(t){var r,$=this,n=s,a=s;return n=t.$type(),"__FILE__"["$==="](n)?d($.emit_file_line_as_literals)?$.$n("str",[t.$loc().$expression().$source_buffer().$name()],t.$loc().$dup()):t:"__LINE__"["$==="](n)?d($.emit_file_line_as_literals)?$.$n("int",[t.$loc().$expression().$line()],t.$loc().$dup()):t:"__ENCODING__"["$==="](n)?d($.$class().$emit_encoding()["$!"]())?$.$n("const",[$.$n("const",[s,"Encoding"],s),"UTF_8"],t.$loc().$dup()):t:"ident"["$==="](n)?(r=[].concat(e.to_a(t)),a=null==r[0]?s:r[0],d($.parser.$static_env()["$declared?"](a))?(a.$to_s()["$=="]($.$parser().$current_arg_stack().$top())&&$.$diagnostic("error","circular_argument_reference",l(["var_name"],{var_name:a.$to_s()}),t.$loc().$expression()),t.$updated("lvar")):(r=[].concat(e.to_a(t)),a=null==r[0]?s:r[0],$.$n("send",[s,a],$.$var_send_map(t)))):t},ie.$$arity=1),e.def(Vr,"$const",se=function(e){var t=this;return t.$n("const",[s,t.$value(e).$to_sym()],t.$constant_map(s,s,e))},se.$$arity=1),e.def(Vr,"$const_global",oe=function(e,t){var r=this,$=s;return $=r.$n0("cbase",r.$token_map(e)),r.$n("const",[$,r.$value(t).$to_sym()],r.$constant_map($,e,t))},oe.$$arity=2),e.def(Vr,"$const_fetch",ce=function(e,t,r){var $=this;return $.$n("const",[e,$.$value(r).$to_sym()],$.$constant_map(e,t,r))},ce.$$arity=3),e.def(Vr,"$__ENCODING__",_e=function(e){var t=this;return t.$n0("__ENCODING__",t.$token_map(e))},_e.$$arity=1),e.def(Vr,"$assignable",ue=function(t){var r,$=this,n=s,a=s,i=s,o=s;return n=t.$type(),"cvar"["$==="](n)?t.$updated("cvasgn"):"ivar"["$==="](n)?t.$updated("ivasgn"):"gvar"["$==="](n)?t.$updated("gvasgn"):"const"["$==="](n)?(d($.parser.$context()["$dynamic_const_definition_allowed?"]())||$.$diagnostic("error","dynamic_const",s,t.$loc().$expression()),t.$updated("casgn")):"ident"["$==="](n)?(r=[].concat(e.to_a(t)),a=null==r[0]?s:r[0],i=t.$children()["$[]"](0).$to_s(),o=t.$loc().$expression(),$.$check_assignment_to_numparam(i,o),$.$check_reserved_for_numparam(i,o),$.parser.$static_env().$declare(a),t.$updated("lvasgn")):"nil"["$==="](n)||"self"["$==="](n)||"true"["$==="](n)||"false"["$==="](n)||"__FILE__"["$==="](n)||"__LINE__"["$==="](n)||"__ENCODING__"["$==="](n)?$.$diagnostic("error","invalid_assignment",s,t.$loc().$expression()):"back_ref"["$==="](n)||"nth_ref"["$==="](n)?$.$diagnostic("error","backref_assignment",s,t.$loc().$expression()):s},ue.$$arity=1),e.def(Vr,"$const_op_assignable",le=function(e){return e.$updated("casgn")},le.$$arity=1),e.def(Vr,"$assign",de=function(e,t,r){var $=this;return e["$<<"](r).$updated(s,s,l(["location"],{location:e.$loc().$with_operator($.$loc(t)).$with_expression($.$join_exprs(e,r))}))},de.$$arity=3),e.def(Vr,"$op_assign",pe=function(e,t,r){var $=this,n=s,a=s,i=s;return n=e.$type(),"gvasgn"["$==="](n)||"ivasgn"["$==="](n)||"lvasgn"["$==="](n)||"cvasgn"["$==="](n)||"casgn"["$==="](n)||"send"["$==="](n)||"csend"["$==="](n)||"index"["$==="](n)?(a=$.$value(t)["$[]"](f(0,-1,!1)).$to_sym(),i=e.$loc().$with_operator($.$loc(t)).$with_expression($.$join_exprs(e,r)),e.$type()["$=="]("index")&&(e=e.$updated("indexasgn")),n=a,"&&"["$==="](n)?$.$n("and_asgn",[e,r],i):"||"["$==="](n)?$.$n("or_asgn",[e,r],i):$.$n("op_asgn",[e,a,r],i)):"back_ref"["$==="](n)||"nth_ref"["$==="](n)?$.$diagnostic("error","backref_assignment",s,e.$loc().$expression()):s},pe.$$arity=3),e.def(Vr,"$multi_lhs",fe=function(t,r,$){var n=this;return n.$n("mlhs",[].concat(e.to_a(r)),n.$collection_map(t,r,$))},fe.$$arity=3),e.def(Vr,"$multi_assign",he=function(e,t,r){var $=this;return $.$n("masgn",[e,r],$.$binary_op_map(e,t,r))},he.$$arity=3),e.def(Vr,"$def_class",me=function(e,t,r,$,n,a){var i=this;return i.$n("class",[t,$,n],i.$module_definition_map(e,t,r,a))},me.$$arity=6),e.def(Vr,"$def_sclass",ge=function(e,t,r,$,n){var a=this;return a.$n("sclass",[r,$],a.$module_definition_map(e,s,t,n))},ge.$$arity=5),e.def(Vr,"$def_module",ye=function(e,t,r,$){var n=this;return n.$n("module",[t,r],n.$module_definition_map(e,t,s,$))},ye.$$arity=4),e.def(Vr,"$def_method",ve=function(e,t,r,$,n){var a=this;return a.$check_reserved_for_numparam(a.$value(t),a.$loc(t)),a.$n("def",[a.$value(t).$to_sym(),r,$],a.$definition_map(e,s,t,n))},ve.$$arity=5),e.def(Vr,"$def_endless_method",be=function(e,t,r,$,n){var a=this;return a.$check_reserved_for_numparam(a.$value(t),a.$loc(t)),a.$n("def",[a.$value(t).$to_sym(),r,n],a.$endless_definition_map(e,s,t,$,n))},be.$$arity=5),e.def(Vr,"$def_singleton",ke=function(e,t,r,$,n,a,i){var s=this;return s.$validate_definee(t),s.$check_reserved_for_numparam(s.$value($),s.$loc($)),s.$n("defs",[t,s.$value($).$to_sym(),n,a],s.$definition_map(e,r,$,i))},ke.$$arity=7),e.def(Vr,"$def_endless_singleton",xe=function(e,t,r,$,n,a,i){var s=this;return s.$validate_definee(t),s.$check_reserved_for_numparam(s.$value($),s.$loc($)),s.$n("defs",[t,s.$value($).$to_sym(),n,i],s.$endless_definition_map(e,r,$,a,i))},xe.$$arity=7),e.def(Vr,"$undef_method",we=function(t,r){var $=this;return $.$n("undef",[].concat(e.to_a(r)),$.$keyword_map(t,s,r,s))},we.$$arity=2),e.def(Vr,"$alias",Ee=function(e,t,r){var $=this;return $.$n("alias",[t,r],$.$keyword_map(e,s,[t,r],s))},Ee.$$arity=3),e.def(Vr,"$args",Re=function(e,t,r,$){var n=this;return null==$&&($=!0),d($)&&(t=n.$check_duplicate_args(t)),n.$n("args",t,n.$collection_map(e,t,r))},Re.$$arity=-4),e.def(Vr,"$numargs",ze=function(e){return this.$n("numargs",[e],s)},ze.$$arity=1),e.def(Vr,"$forward_only_args",Ae=function(e,t,r){var $=this,n=s;return d($.$class().$emit_forward_arg())?(n=$.$forward_arg(t),$.$n("args",[n],$.$collection_map(e,[n],r))):$.$n("forward_args",[],$.$collection_map(e,$.$token_map(t),r))},Ae.$$arity=3),e.def(Vr,"$forward_arg",Ne=function(e){var t=this;return t.$n("forward_arg",[],t.$token_map(e))},Ne.$$arity=1),e.def(Vr,"$arg",Se=function(e){var t=this;return t.$check_reserved_for_numparam(t.$value(e),t.$loc(e)),t.$n("arg",[t.$value(e).$to_sym()],t.$variable_map(e))},Se.$$arity=1),e.def(Vr,"$optarg",Oe=function(e,t,r){var $=this;return $.$check_reserved_for_numparam($.$value(e),$.$loc(e)),$.$n("optarg",[$.$value(e).$to_sym(),r],$.$variable_map(e).$with_operator($.$loc(t)).$with_expression($.$loc(e).$join(r.$loc().$expression())))},Oe.$$arity=3),e.def(Vr,"$restarg",Te=function(e,t){var r=this;return null==t&&(t=s),d(t)?(r.$check_reserved_for_numparam(r.$value(t),r.$loc(t)),r.$n("restarg",[r.$value(t).$to_sym()],r.$arg_prefix_map(e,t))):r.$n0("restarg",r.$arg_prefix_map(e))},Te.$$arity=-2),e.def(Vr,"$kwarg",Ie=function(e){var t=this;return t.$check_reserved_for_numparam(t.$value(e),t.$loc(e)),t.$n("kwarg",[t.$value(e).$to_sym()],t.$kwarg_map(e))},Ie.$$arity=1),e.def(Vr,"$kwoptarg",Ce=function(e,t){var r=this;return r.$check_reserved_for_numparam(r.$value(e),r.$loc(e)),r.$n("kwoptarg",[r.$value(e).$to_sym(),t],r.$kwarg_map(e,t))},Ce.$$arity=2),e.def(Vr,"$kwrestarg",qe=function(e,t){var r=this;return null==t&&(t=s),d(t)?(r.$check_reserved_for_numparam(r.$value(t),r.$loc(t)),r.$n("kwrestarg",[r.$value(t).$to_sym()],r.$arg_prefix_map(e,t))):r.$n0("kwrestarg",r.$arg_prefix_map(e))},qe.$$arity=-2),e.def(Vr,"$kwnilarg",Pe=function(e,t){var r=this;return r.$n0("kwnilarg",r.$arg_prefix_map(e,t))},Pe.$$arity=2),e.def(Vr,"$shadowarg",Be=function(e){var t=this;return t.$check_reserved_for_numparam(t.$value(e),t.$loc(e)),t.$n("shadowarg",[t.$value(e).$to_sym()],t.$variable_map(e))},Be.$$arity=1),e.def(Vr,"$blockarg",De=function(e,t){var r=this;return r.$check_reserved_for_numparam(r.$value(t),r.$loc(t)),r.$n("blockarg",[r.$value(t).$to_sym()],r.$arg_prefix_map(e,t))},De.$$arity=2),e.def(Vr,"$procarg0",Le=function(e){var t=this,r=s;return d(t.$class().$emit_procarg0())?d(d(r=e.$type()["$=="]("arg"))?t.$class().$emit_arg_inside_procarg0():r)?t.$n("procarg0",[e],o(o(c(Wr,"Source"),"Map"),"Collection").$new(s,s,e.$location().$expression())):e.$updated("procarg0"):e},Le.$$arity=1),e.def(Vr,"$arg_expr",Ge=function(e){var t=this;return e.$type()["$=="]("lvasgn")?e.$updated("arg"):t.$n("arg_expr",[e],e.$loc().$dup())},Ge.$$arity=1),e.def(Vr,"$restarg_expr",Me=function(e,t){var r=this;return null==t&&(t=s),d(t["$nil?"]())?r.$n0("restarg",r.$token_map(e)):t.$type()["$=="]("lvasgn")?t.$updated("restarg"):r.$n("restarg_expr",[t],t.$loc().$dup())},Me.$$arity=-2),e.def(Vr,"$blockarg_expr",je=function(e,t){var r=this;return t.$type()["$=="]("lvasgn")?t.$updated("blockarg"):r.$n("blockarg_expr",[t],t.$loc().$dup())},je.$$arity=2),e.def(Vr,"$objc_kwarg",Fe=function(e,r,$){var n=this,a=s,i=s;return a=n.$loc(e),i=d(r["$nil?"]())?(a=a.$resize(t(a.$size(),1))).$end().$resize(1):n.$loc(r),n.$n("objc_kwarg",[n.$value(e).$to_sym(),n.$value($).$to_sym()],o(o(c(Wr,"Source"),"Map"),"ObjcKwarg").$new(a,i,n.$loc($),a.$join(n.$loc($))))},Fe.$$arity=3),e.def(Vr,"$objc_restarg",Ue=function(e,t){var r=this;return null==t&&(t=s),d(t["$nil?"]())?r.$n0("restarg",r.$arg_prefix_map(e)):t.$type()["$=="]("arg")?t.$updated("restarg",s,l(["location"],{location:t.$loc().$with_operator(r.$loc(e))})):r.$n("objc_restarg",[t],r.$unary_op_map(e,t))},Ue.$$arity=-2),e.def(Vr,"$call_type_for_dot",He=function(e){var t=this,r=s;return d(d(r=e["$nil?"]()["$!"]())?t.$value(e)["$=="]("anddot"):r)?"csend":"send"},He.$$arity=1),e.def(Vr,"$forwarded_args",Ye=function(e){var t=this;return t.$n("forwarded_args",[],t.$token_map(e))},Ye.$$arity=1),e.def(Vr,"$call_method",Xe=function(t,r,$,n,a,i){var o=this,c=s;return null==n&&(n=s),null==a&&(a=[]),null==i&&(i=s),c=o.$call_type_for_dot(r),d(o.$class().$emit_kwargs())&&o.$rewrite_hash_args_to_kwargs(a),d($["$nil?"]())?o.$n(c,[t,"call"].concat(e.to_a(a)),o.$send_map(t,r,s,n,a,i)):o.$n(c,[t,o.$value($).$to_sym()].concat(e.to_a(a)),o.$send_map(t,r,$,n,a,i))},Xe.$$arity=-4),e.def(Vr,"$call_lambda",Ve=function(e){var t=this;return d(t.$class().$emit_lambda())?t.$n0("lambda",t.$expr_map(t.$loc(e))):t.$n("send",[s,"lambda"],t.$send_map(s,s,e))},Ve.$$arity=1),e.def(Vr,"$block",We=function(t,r,$,n,a){var i,o=this,c=s,_=s,u=s,l=s,p=s,f=s,m=s;return null==(i=[].concat(e.to_a(t)))[0]?s:i[0],null==i[1]?s:i[1],c=h.call(i,2),t.$type()["$=="]("yield")&&o.$diagnostic("error","block_given_to_yield",s,t.$loc().$keyword(),[o.$loc(r)]),_=c.$last(),d(d(u=_)?d(l=_.$type()["$=="]("block_pass"))?l:_.$type()["$=="]("forwarded_args"):u)&&o.$diagnostic("error","block_and_blockarg",s,_.$loc().$expression(),[o.$loc(r)]),$.$type()["$=="]("numargs")?(p="numblock",$=$.$children()["$[]"](0)):p="block",d(["send","csend","index","super","zsuper","lambda"]["$include?"](t.$type()))?o.$n(p,[t,$,n],o.$block_map(t.$loc().$expression(),r,a)):(f=null==(i=[].concat(e.to_a(t)))[0]?s:i[0],m=o.$n(p,[f,$,n],o.$block_map(f.$loc().$expression(),r,a)),o.$n(t.$type(),[m],t.$loc().$with_expression(o.$join_exprs(t,m))))},We.$$arity=5),e.def(Vr,"$block_pass",Ke=function(e,t){var r=this;return r.$n("block_pass",[t],r.$unary_op_map(e,t))},Ke.$$arity=2),e.def(Vr,"$objc_varargs",Qe=function(t,r){var $,n=this,a=s,i=s,o=s;return a=null==($=[].concat(e.to_a(t)))[0]?s:$[0],i=null==$[1]?s:$[1],o=n.$array(s,[i].concat(e.to_a(r)),s).$updated("objc_varargs"),t.$updated(s,[a,o],l(["location"],{location:t.$loc().$with_expression(t.$loc().$expression().$join(o.$loc().$expression()))}))},Qe.$$arity=2),e.def(Vr,"$attr_asgn",Je=function(e,t,$){var n=this,a=s,i=s;return a=r(n.$value($),"=").$to_sym(),i=n.$call_type_for_dot(t),n.$n(i,[e,a],n.$send_map(e,t,$))},Je.$$arity=3),e.def(Vr,"$index",Ze=function(t,r,$,n){var a=this;return d(a.$class().$emit_kwargs())&&a.$rewrite_hash_args_to_kwargs($),d(a.$class().$emit_index())?a.$n("index",[t].concat(e.to_a($)),a.$index_map(t,r,n)):a.$n("send",[t,"[]"].concat(e.to_a($)),a.$send_index_map(t,r,n))},Ze.$$arity=4),e.def(Vr,"$index_asgn",et=function(t,r,$,n){var a=this;return d(a.$class().$emit_index())?a.$n("indexasgn",[t].concat(e.to_a($)),a.$index_map(t,r,n)):a.$n("send",[t,"[]="].concat(e.to_a($)),a.$send_index_map(t,r,n))},et.$$arity=4),e.def(Vr,"$binary_op",tt=function(e,t,r){var $=this,n=s,a=s,i=s;return n=$.$send_binary_op_map(e,t,r),$.parser.$version()["$=="](18)&&((a=$.$value(t))["$=="]("!=")?i=$.$n("send",[e,"==",r],n):a["$=="]("!~")&&(i=$.$n("send",[e,"=~",r],n)),d(["!=","!~"]["$include?"](a)))?$.$n("not",[i],$.$expr_map(n.$expression())):$.$n("send",[e,$.$value(t).$to_sym(),r],n)},tt.$$arity=3),e.def(Vr,"$match_op",rt=function(e,t,r){var $,n=this,a=s,i=s;return a=n.$send_binary_op_map(e,t,r),d(i=n.$static_regexp_node(e))?(p(i.$names(),"each",[],(($=function(e){var t=null==$.$$s?this:$.$$s;return null==t.parser&&(t.parser=s),null==e&&(e=s),t.parser.$static_env().$declare(e)}).$$s=n,$.$$arity=1,$)),n.$n("match_with_lvasgn",[e,r],a)):n.$n("send",[e,"=~",r],a)},rt.$$arity=3),e.def(Vr,"$unary_op",$t=function(e,t){var $=this,n=s,a=s;return n=$.$value(e),a="+"["$==="](n)||"-"["$==="](n)?r($.$value(e),"@"):$.$value(e),$.$n("send",[t,a.$to_sym()],$.$send_unary_op_map(e,t))},$t.$$arity=2),e.def(Vr,"$not_op",nt=function(e,t,r,$){var n=this,a=s;return null==t&&(t=s),null==r&&(r=s),null==$&&($=s),n.parser.$version()["$=="](18)?n.$n("not",[n.$check_condition(r)],n.$unary_op_map(e,r)):d(r["$nil?"]())?(a=n.$n0("begin",n.$collection_map(t,s,$)),n.$n("send",[a,"!"],n.$send_unary_op_map(e,a))):n.$n("send",[n.$check_condition(r),"!"],n.$send_map(s,s,e,t,[r],$))},nt.$$arity=-2),e.def(Vr,"$logical_op",at=function(e,t,r,$){var n=this;return n.$n(e,[t,$],n.$binary_op_map(t,r,$))},at.$$arity=4),e.def(Vr,"$condition",it=function(e,t,r,$,n,a,i){var s=this;return s.$n("if",[s.$check_condition(t),$,a],s.$condition_map(e,t,r,$,n,a,i))},it.$$arity=7),e.def(Vr,"$condition_mod",st=function(e,t,r,$){var n=this,a=s;return n.$n("if",[n.$check_condition($),e,t],n.$keyword_mod_map(d(a=e)?a:t,r,$))},st.$$arity=4),e.def(Vr,"$ternary",ot=function(e,t,r,$,n){var a=this;return a.$n("if",[a.$check_condition(e),r,n],a.$ternary_map(e,t,r,$,n))},ot.$$arity=5),e.def(Vr,"$when",ct=function(e,t,r,$){var n=this,a=s;return a=t["$<<"]($),n.$n("when",a,n.$keyword_map(e,r,a,s))},ct.$$arity=4),e.def(Vr,"$case",_t=function(t,r,$,n,a,i){var o=this;return o.$n("case",[r].concat(e.to_a($["$<<"](a))),o.$condition_map(t,r,s,s,n,a,i))},_t.$$arity=6),e.def(Vr,"$loop",ut=function(e,t,r,$,n,a){var i=this;return i.$n(e,[i.$check_condition(r),n],i.$keyword_map(t,$,s,a))},ut.$$arity=6),e.def(Vr,"$loop_mod",lt=function(e,t,r,$){var n=this;return t.$type()["$=="]("kwbegin")&&(e+="_post"),n.$n(e,[n.$check_condition($),t],n.$keyword_mod_map(t,r,$))},lt.$$arity=4),e.def(Vr,"$for",dt=function(e,t,r,$,n,a,i){var s=this;return s.$n("for",[t,$,a],s.$for_map(e,r,n,i))},dt.$$arity=7),e.def(Vr,"$keyword_cmd",pt=function(e,t,r,n,a){var i=this,o=s,c=s,_=s;return null==r&&(r=s),null==n&&(n=[]),null==a&&(a=s),d(d(o=e["$=="]("yield"))?$(n.$count(),0):o)&&(c=n.$last()).$type()["$=="]("block_pass")&&i.$diagnostic("error","block_given_to_yield",s,i.$loc(t),[c.$loc().$expression()]),d(d(_=["yield","super"]["$include?"](e))?i.$class().$emit_kwargs():_)&&i.$rewrite_hash_args_to_kwargs(n),i.$n(e,n,i.$keyword_map(t,r,n,a))},pt.$$arity=-3),e.def(Vr,"$preexe",ft=function(e,t,r,$){var n=this;return n.$n("preexe",[r],n.$keyword_map(e,t,[],$))},ft.$$arity=4),e.def(Vr,"$postexe",ht=function(e,t,r,$){var n=this;return n.$n("postexe",[r],n.$keyword_map(e,t,[],$))},ht.$$arity=4),e.def(Vr,"$rescue_body",mt=function(e,t,r,$,n,a){var i=this;return i.$n("resbody",[t,$,a],i.$rescue_body_map(e,t,r,$,n,a))},mt.$$arity=6),e.def(Vr,"$begin_body",gt=function(t,$,n,a,i,o){var c=this,_=s;return null==$&&($=[]),null==n&&(n=s),null==a&&(a=s),null==i&&(i=s),null==o&&(o=s),d($["$any?"]())?t=d(n)?c.$n("rescue",[t].concat(e.to_a(r($,[a]))),c.$eh_keyword_map(t,s,$,n,a)):c.$n("rescue",[t].concat(e.to_a(r($,[s]))),c.$eh_keyword_map(t,s,$,s,s)):d(n)&&(_=[],d(t["$nil?"]()["$!"]())&&(t.$type()["$=="]("begin")?_=r(_,t.$children()):_.$push(t)),_.$push(c.$n("begin",[a],c.$collection_map(n,[a],s))),t=c.$n("begin",_,c.$collection_map(s,_,s))),d(i)&&(t=c.$n("ensure",[t,o],c.$eh_keyword_map(t,i,[o],s,s))),t},gt.$$arity=-2),e.def(Vr,"$compstmt",yt=function(e){var t=this;return d(e["$none?"]())?s:d(e["$one?"]())?e.$first():t.$n("begin",e,t.$collection_map(s,e,s))},yt.$$arity=1),e.def(Vr,"$begin",vt=function(e,t,r){var $=this,n=s,a=s,i=s;return d(t["$nil?"]())?$.$n0("begin",$.$collection_map(e,s,r)):d(d(n=t.$type()["$=="]("mlhs"))?n:d(a=d(i=t.$type()["$=="]("begin"))?t.$loc().$begin()["$nil?"]():i)?t.$loc().$end()["$nil?"]():a)?$.$n(t.$type(),t.$children(),$.$collection_map(e,t.$children(),r)):$.$n("begin",[t],$.$collection_map(e,[t],r))},vt.$$arity=3),e.def(Vr,"$begin_keyword",bt=function(e,t,r){var $=this,n=s,a=s;return d(t["$nil?"]())?$.$n0("kwbegin",$.$collection_map(e,s,r)):d(d(n=d(a=t.$type()["$=="]("begin"))?t.$loc().$begin()["$nil?"]():a)?t.$loc().$end()["$nil?"]():n)?$.$n("kwbegin",t.$children(),$.$collection_map(e,t.$children(),r)):$.$n("kwbegin",[t],$.$collection_map(e,[t],r))},bt.$$arity=3),e.def(Vr,"$case_match",kt=function(t,r,$,n,a,i){var o=this,c=s;return d(d(c=n)?a["$!"]():c)&&(a=o.$n("empty_else",s,o.$token_map(n))),o.$n("case_match",[r].concat(e.to_a($["$<<"](a))),o.$condition_map(t,r,s,s,n,a,i))},kt.$$arity=6),e.def(Vr,"$in_match",xt=function(e,t,r){var $=this;return $.$n("in_match",[e,r],$.$binary_op_map(e,t,r))},xt.$$arity=3),e.def(Vr,"$match_pattern",wt=function(e,t,r){var $=this;return $.$n("match_pattern",[e,r],$.$binary_op_map(e,t,r))},wt.$$arity=3),e.def(Vr,"$match_pattern_p",Et=function(e,t,r){var $=this;return $.$n("match_pattern_p",[e,r],$.$binary_op_map(e,t,r))},Et.$$arity=3),e.def(Vr,"$in_pattern",Rt=function(e,t,r,$,n){var a=this,i=s;return i=[t,r,n],a.$n("in_pattern",i,a.$keyword_map(e,$,i.$compact(),s))},Rt.$$arity=5),e.def(Vr,"$if_guard",zt=function(e,t){var r=this;return r.$n("if_guard",[t],r.$guard_map(e,t))},zt.$$arity=2),e.def(Vr,"$unless_guard",At=function(e,t){var r=this;return r.$n("unless_guard",[t],r.$guard_map(e,t))},At.$$arity=2),e.def(Vr,"$match_var",Nt=function(e){var t=this,r=s,$=s;return r=t.$value(e).$to_sym(),$=t.$loc(e),t.$check_lvar_name(r,$),t.$check_duplicate_pattern_variable(r,$),t.parser.$static_env().$declare(r),t.$n("match_var",[r],t.$variable_map(e))},Nt.$$arity=1),e.def(Vr,"$match_hash_var",St=function(e){var t=this,r=s,$=s,n=s;return r=t.$value(e).$to_sym(),n=($=t.$loc(e)).$adjust(l(["end_pos"],{end_pos:-1})),t.$check_lvar_name(r,n),t.$check_duplicate_pattern_variable(r,n),t.parser.$static_env().$declare(r),t.$n("match_var",[r],o(o(c(Wr,"Source"),"Map"),"Variable").$new(n,$))},St.$$arity=1),e.def(Vr,"$match_hash_var_from_str",Ot=function(t,r,n){var a,i=this,_=s,u=s,p=s,f=s,h=s,m=s,g=s;return d($(r.$length(),1))&&i.$diagnostic("error","pm_interp_in_var_name",s,i.$loc(t).$join(i.$loc(n))),_=r["$[]"](0),u=_.$type(),"str"["$==="](u)?(a=[].concat(e.to_a(_)),p=null==a[0]?s:a[0],f=_.$loc().$expression(),i.$check_lvar_name(p,f),i.$check_duplicate_pattern_variable(p,f),i.parser.$static_env().$declare(p),d(h=_.$loc().$begin())&&(f=f.$adjust(l(["begin_pos"],{begin_pos:h.$length()}))),d(m=_.$loc().$end())&&(f=f.$adjust(l(["end_pos"],{end_pos:m.$length()["$-@"]()}))),g=i.$loc(t).$join(_.$loc().$expression()).$join(i.$loc(n)),i.$n("match_var",[p.$to_sym()],o(o(c(Wr,"Source"),"Map"),"Variable").$new(f,g))):"begin"["$==="](u)?i.$match_hash_var_from_str(t,_.$children(),n):i.$diagnostic("error","pm_interp_in_var_name",s,i.$loc(t).$join(i.$loc(n)))},Ot.$$arity=3),e.def(Vr,"$match_rest",Tt=function(e,t){var r=this,$=s;return null==t&&(t=s),d(t["$nil?"]())?r.$n0("match_rest",r.$unary_op_map(e)):($=r.$match_var(t),r.$n("match_rest",[$],r.$unary_op_map(e,$)))},Tt.$$arity=-2),e.def(Vr,"$hash_pattern",It=function(e,t,r){var $=this,n=s;return n=$.$check_duplicate_args(t),$.$n("hash_pattern",n,$.$collection_map(e,n,r))},It.$$arity=3),e.def(Vr,"$array_pattern",Ct=function(e,t,r){var $,n=this,a=s,i=s,o=s;return d(t["$nil?"]())?n.$n("array_pattern",s,n.$collection_map(e,[],r)):(a=!1,i=p(t,"map",[],(($=function(e){null==$.$$s||$.$$s;return null==e&&(e=s),e.$type()["$=="]("match_with_trailing_comma")?(a=!0,e.$children().$first()):(a=!1,e)}).$$s=n,$.$$arity=1,$)),o=d(a)?"array_pattern_with_tail":"array_pattern",n.$n(o,i,n.$collection_map(e,t,r)))},Ct.$$arity=3),e.def(Vr,"$find_pattern",qt=function(e,t,r){var $=this;return $.$n("find_pattern",t,$.$collection_map(e,t,r))},qt.$$arity=3),e.def(Vr,"$match_with_trailing_comma",Pt=function(e,t){var r=this;return r.$n("match_with_trailing_comma",[e],r.$expr_map(e.$loc().$expression().$join(r.$loc(t))))},Pt.$$arity=2),e.def(Vr,"$const_pattern",Bt=function(e,t,r,$){var n=this;return n.$n("const_pattern",[e,r],o(o(c(Wr,"Source"),"Map"),"Collection").$new(n.$loc(t),n.$loc($),e.$loc().$expression().$join(n.$loc($))))},Bt.$$arity=4),e.def(Vr,"$pin",Dt=function(e,t){var r=this;return r.$n("pin",[t],r.$send_unary_op_map(e,t))},Dt.$$arity=2),e.def(Vr,"$match_alt",Lt=function(e,t,r){var $=this,n=s;return n=$.$binary_op_map(e,t,r),$.$n("match_alt",[e,r],n)},Lt.$$arity=3),e.def(Vr,"$match_as",Gt=function(e,t,r){var $=this,n=s;return n=$.$binary_op_map(e,t,r),$.$n("match_as",[e,r],n)},Gt.$$arity=3),e.def(Vr,"$match_nil_pattern",Mt=function(e,t){var r=this;return r.$n0("match_nil_pattern",r.$arg_prefix_map(e,t))},Mt.$$arity=2),e.def(Vr,"$match_pair",jt=function(t,r,$){var n,a,i=this,o=s,c=s,_=s,u=s,l=s;return t["$=="]("label")?(i.$check_duplicate_pattern_key(r["$[]"](0),r["$[]"](1)),i.$pair_keyword(r,$)):(a=r,o=null==(n=e.to_ary(a))[0]?s:n[0],c=null==n[1]?s:n[1],_=null==n[2]?s:n[2],u=i.$loc(o).$join(i.$loc(_)),d(l=i.$static_string(c))?i.$check_duplicate_pattern_key(l,u):i.$diagnostic("error","pm_interp_in_var_name",s,u),i.$pair_quoted(o,c,_,$))},jt.$$arity=3),e.def(Vr,"$match_label",Ft=function(t,r){var $,n,a=this,i=s,o=s,c=s;return t["$=="]("label")?a.$match_hash_var(r):(n=r,i=null==($=e.to_ary(n))[0]?s:$[0],o=null==$[1]?s:$[1],c=null==$[2]?s:$[2],a.$match_hash_var_from_str(i,o,c))},Ft.$$arity=2),Vr.$private(),e.def(Vr,"$check_condition",Ut=function(t){var r,$=this,a=s,i=s,o=s,c=s,_=s;return a=t.$type(),"masgn"["$==="](a)?d(n($.parser.$version(),23))?$.$diagnostic("error","masgn_as_condition",s,t.$loc().$expression()):t:"begin"["$==="](a)?t.$children().$count()["$=="](1)?t.$updated(s,[$.$check_condition(t.$children().$last())]):t:"and"["$==="](a)||"or"["$==="](a)||"irange"["$==="](a)||"erange"["$==="](a)?(r=[].concat(e.to_a(t)),i=null==r[0]?s:r[0],o=null==r[1]?s:r[1],a=t.$type(),c="irange"["$==="](a)?"iflipflop":"erange"["$==="](a)?"eflipflop":s,d(d(_=["and","or"]["$include?"](t.$type()))?$.parser.$version()["$=="](18):_)?t:t.$updated(c,[$.$check_condition(i),$.$check_condition(o)])):"regexp"["$==="](a)?$.$n("match_current_line",[t],$.$expr_map(t.$loc().$expression())):t},Ut.$$arity=1),e.def(Vr,"$check_duplicate_args",Ht=function(e,t){var r,$=this;return null==t&&(t=l([],{})),p(e,"each",[],((r=function(e){var $=null==r.$$s?this:r.$$s,n=s;return null==e&&(e=s),n=e.$type(),"arg"["$==="](n)||"optarg"["$==="](n)||"restarg"["$==="](n)||"blockarg"["$==="](n)||"kwarg"["$==="](n)||"kwoptarg"["$==="](n)||"kwrestarg"["$==="](n)||"shadowarg"["$==="](n)?$.$check_duplicate_arg(e,t):"procarg0"["$==="](n)?d(e.$children()["$[]"](0)["$is_a?"](c(Wr,"Symbol")))?$.$check_duplicate_arg(e,t):$.$check_duplicate_args(e.$children(),t):"mlhs"["$==="](n)?$.$check_duplicate_args(e.$children(),t):s}).$$s=$,r.$$arity=1,r))},Ht.$$arity=-2),e.def(Vr,"$check_duplicate_arg",Yt=function(r,$){var n,a=this,i=s,o=s,c=s,_=s;return null==$&&($=l([],{})),i=null==(n=[].concat(e.to_a(r)))[0]?s:n[0],o=$["$[]"](i),c=null==(n=[].concat(e.to_a(o)))[0]?s:n[0],d(o["$nil?"]())?(_=[i,r],p($,"[]=",e.to_a(_)),_[t(_.length,1)]):d(a["$arg_name_collides?"](i,c))?a.$diagnostic("error","duplicate_argument",s,r.$loc().$name(),[o.$loc().$name()]):s},Yt.$$arity=-2),e.def(Vr,"$check_assignment_to_numparam",Xt=function(e,t){var r=this,$=s,n=s,i=s;return d(a(r.parser.$version(),27))?s:($=d(n=d(i=r.parser.$context()["$in_dynamic_block?"]())?e["$=~"](/^_([1-9])$/):i)?r.parser.$max_numparam_stack()["$has_numparams?"]():n,d($)?r.$diagnostic("error","cant_assign_to_numparam",l(["name"],{name:e}),t):s)},Xt.$$arity=2),e.def(Vr,"$check_reserved_for_numparam",Vt=function(e,t){var r=this;return d(a(r.parser.$version(),30))?s:d(e["$=~"](/^_([1-9])$/))?r.$diagnostic("error","reserved_for_numparam",l(["name"],{name:e}),t):s},Vt.$$arity=2),e.def(Vr,"$arg_name_collides?",Wt=function(e,t){var r=s,$=s,n=s,a=s;return r=this.parser.$version(),18["$==="](r)?e["$=="](t):19["$==="](r)?d($=e["$!="]("_"))?e["$=="](t):$:d(n=d(a=e)?e["$[]"](0)["$!="]("_"):a)?e["$=="](t):n},Wt.$$arity=2),e.def(Vr,"$check_lvar_name",Kt=function(e,t){var r=this;return d(e["$=~"](/^[[[:lower:]]_][[[:alnum:]]_]*$/))?s:r.$diagnostic("error","lvar_name",l(["name"],{name:e}),t)},Kt.$$arity=2),e.def(Vr,"$check_duplicate_pattern_variable",Qt=function(e,t){var r=this;return d(e.$to_s()["$start_with?"]("_"))?s:(d(r.parser.$pattern_variables()["$declared?"](e))&&r.$diagnostic("error","duplicate_variable_name",l(["name"],{name:e.$to_s()}),t),r.parser.$pattern_variables().$declare(e))},Qt.$$arity=2),e.def(Vr,"$check_duplicate_pattern_key",Jt=function(e,t){var r=this;return d(r.parser.$pattern_hash_keys()["$declared?"](e))&&r.$diagnostic("error","duplicate_pattern_key",l(["name"],{name:e.$to_s()}),t),r.parser.$pattern_hash_keys().$declare(e)},Jt.$$arity=2),e.def(Vr,"$n",Zt=function(e,t,r){return o(c(Wr,"AST"),"Node").$new(e,t,l(["location"],{location:r}))},Zt.$$arity=3),e.def(Vr,"$n0",er=function(e,t){return this.$n(e,[],t)},er.$$arity=2),e.def(Vr,"$join_exprs",tr=function(e,t){return e.$loc().$expression().$join(t.$loc().$expression())},tr.$$arity=2),e.def(Vr,"$token_map",rr=function(e){var t=this;return o(c(Wr,"Source"),"Map").$new(t.$loc(e))},rr.$$arity=1),e.def(Vr,"$delimited_string_map",$r=function(e){var $=this,n=s,a=s,i=s;return a=(n=$.$loc(e)).$with(l(["end_pos"],{end_pos:r(n.$begin_pos(),1)})),i=n.$with(l(["begin_pos"],{begin_pos:t(n.$end_pos(),1)})),o(o(c(Wr,"Source"),"Map"),"Collection").$new(a,i,$.$loc(e))},$r.$$arity=1),e.def(Vr,"$prefix_string_map",nr=function(e){var t=this,$=s,n=s;return n=($=t.$loc(e)).$with(l(["end_pos"],{end_pos:r($.$begin_pos(),1)})),o(o(c(Wr,"Source"),"Map"),"Collection").$new(n,s,t.$loc(e))},nr.$$arity=1),e.def(Vr,"$unquoted_map",ar=function(e){var t=this;return o(o(c(Wr,"Source"),"Map"),"Collection").$new(s,s,t.$loc(e))},ar.$$arity=1),e.def(Vr,"$pair_keyword_map",ir=function(e,r){var $=s,n=s,a=s;return n=($=this.$loc(e)).$adjust(l(["end_pos"],{end_pos:-1})),a=$.$with(l(["begin_pos"],{begin_pos:t($.$end_pos(),1)})),[o(o(c(Wr,"Source"),"Map"),"Collection").$new(s,s,n),o(o(c(Wr,"Source"),"Map"),"Operator").$new(a,$.$join(r.$loc().$expression()))]},ir.$$arity=2),e.def(Vr,"$pair_quoted_map",sr=function(e,r,$){var n=this,a=s,i=s,_=s;return i=(a=n.$loc(r)).$with(l(["begin_pos","end_pos"],{begin_pos:t(a.$end_pos(),2),end_pos:t(a.$end_pos(),1)})),_=a.$with(l(["begin_pos"],{begin_pos:t(a.$end_pos(),1)})),[[n.$value(r),i],o(o(c(Wr,"Source"),"Map"),"Operator").$new(_,n.$loc(e).$join($.$loc().$expression()))]},sr.$$arity=3),e.def(Vr,"$expr_map",or=function(e){return o(c(Wr,"Source"),"Map").$new(e)},or.$$arity=1),e.def(Vr,"$collection_map",cr=function(e,t,r){var $=this,n=s,a=s;return d(d(n=e["$nil?"]())?n:r["$nil?"]())?d(t["$any?"]())?a=$.$join_exprs(t.$first(),t.$last()):d(e["$nil?"]()["$!"]())?a=$.$loc(e):d(r["$nil?"]()["$!"]())&&(a=$.$loc(r)):a=$.$loc(e).$join($.$loc(r)),o(o(c(Wr,"Source"),"Map"),"Collection").$new($.$loc(e),$.$loc(r),a)},cr.$$arity=3),e.def(Vr,"$string_map",_r=function(e,t,r){var $=this,n=s,a=s;return d(d(n=e)?$.$value(e)["$start_with?"]("<<"):n)?(a=d(t["$any?"]())?$.$join_exprs(t.$first(),t.$last()):$.$loc(r).$begin(),o(o(c(Wr,"Source"),"Map"),"Heredoc").$new($.$loc(e),a,$.$loc(r))):$.$collection_map(e,t,r)},_r.$$arity=3),e.def(Vr,"$regexp_map",ur=function(e,t,r){var $=this;return o(o(c(Wr,"Source"),"Map"),"Collection").$new($.$loc(e),$.$loc(t),$.$loc(e).$join(r.$loc().$expression()))},ur.$$arity=3),e.def(Vr,"$constant_map",lr=function(e,t,r){var $=this,n=s;return n=d(e["$nil?"]())?$.$loc(r):e.$loc().$expression().$join($.$loc(r)),o(o(c(Wr,"Source"),"Map"),"Constant").$new($.$loc(t),$.$loc(r),n)},lr.$$arity=3),e.def(Vr,"$variable_map",dr=function(e){var t=this;return o(o(c(Wr,"Source"),"Map"),"Variable").$new(t.$loc(e))},dr.$$arity=1),e.def(Vr,"$binary_op_map",pr=function(e,t,r){var $=this;return o(o(c(Wr,"Source"),"Map"),"Operator").$new($.$loc(t),$.$join_exprs(e,r))},pr.$$arity=3),e.def(Vr,"$unary_op_map",fr=function(e,t){var r=this,$=s;return null==t&&(t=s),$=d(t["$nil?"]())?r.$loc(e):r.$loc(e).$join(t.$loc().$expression()),o(o(c(Wr,"Source"),"Map"),"Operator").$new(r.$loc(e),$)},fr.$$arity=-2),e.def(Vr,"$range_map",hr=function(e,t,r){var $=this,n=s,a=s;return d(d(n=e)?r:n)?a=$.$join_exprs(e,r):d(e)?a=e.$loc().$expression().$join($.$loc(t)):d(r)&&(a=$.$loc(t).$join(r.$loc().$expression())),o(o(c(Wr,"Source"),"Map"),"Operator").$new($.$loc(t),a)},hr.$$arity=3),e.def(Vr,"$arg_prefix_map",mr=function(e,t){var r=this,$=s;return null==t&&(t=s),$=d(t["$nil?"]())?r.$loc(e):r.$loc(e).$join(r.$loc(t)),o(o(c(Wr,"Source"),"Map"),"Variable").$new(r.$loc(t),$)},mr.$$arity=-2),e.def(Vr,"$kwarg_map",gr=function(e,t){var r=this,$=s,n=s;return null==t&&(t=s),$=r.$loc(e).$adjust(l(["end_pos"],{end_pos:-1})),n=d(t)?r.$loc(e).$join(t.$loc().$expression()):r.$loc(e),o(o(c(Wr,"Source"),"Map"),"Variable").$new($,n)},gr.$$arity=-2), +e.def(Vr,"$module_definition_map",yr=function(e,t,r,$){var n=this,a=s;return d(t)&&(a=t.$loc().$expression()),o(o(c(Wr,"Source"),"Map"),"Definition").$new(n.$loc(e),n.$loc(r),a,n.$loc($))},yr.$$arity=4),e.def(Vr,"$definition_map",vr=function(e,t,r,$){var n=this;return o(o(c(Wr,"Source"),"Map"),"MethodDefinition").$new(n.$loc(e),n.$loc(t),n.$loc(r),n.$loc($),s,s)},vr.$$arity=4),e.def(Vr,"$endless_definition_map",br=function(e,t,r,$,n){var a=this,i=s;return i=n.$loc().$expression(),o(o(c(Wr,"Source"),"Map"),"MethodDefinition").$new(a.$loc(e),a.$loc(t),a.$loc(r),s,a.$loc($),i)},br.$$arity=5),e.def(Vr,"$send_map",kr=function(e,t,r,$,n,a){var i=this,_=s,u=s;return null==$&&($=s),null==n&&(n=[]),null==a&&(a=s),d(e)?_=e.$loc().$expression():d(r)&&(_=i.$loc(r)),d(a)?u=i.$loc(a):d(n["$any?"]())?u=n.$last().$loc().$expression():d(r)&&(u=i.$loc(r)),o(o(c(Wr,"Source"),"Map"),"Send").$new(i.$loc(t),i.$loc(r),i.$loc($),i.$loc(a),_.$join(u))},kr.$$arity=-4),e.def(Vr,"$var_send_map",xr=function(e){return o(o(c(Wr,"Source"),"Map"),"Send").$new(s,e.$loc().$expression(),s,s,e.$loc().$expression())},xr.$$arity=1),e.def(Vr,"$send_binary_op_map",wr=function(e,t,r){var $=this;return o(o(c(Wr,"Source"),"Map"),"Send").$new(s,$.$loc(t),s,s,$.$join_exprs(e,r))},wr.$$arity=3),e.def(Vr,"$send_unary_op_map",Er=function(e,t){var r=this,$=s;return $=d(t["$nil?"]())?r.$loc(e):r.$loc(e).$join(t.$loc().$expression()),o(o(c(Wr,"Source"),"Map"),"Send").$new(s,r.$loc(e),s,s,$)},Er.$$arity=2),e.def(Vr,"$index_map",Rr=function(e,t,r){var $=this;return o(o(c(Wr,"Source"),"Map"),"Index").$new($.$loc(t),$.$loc(r),e.$loc().$expression().$join($.$loc(r)))},Rr.$$arity=3),e.def(Vr,"$send_index_map",zr=function(e,t,r){var $=this;return o(o(c(Wr,"Source"),"Map"),"Send").$new(s,$.$loc(t).$join($.$loc(r)),s,s,e.$loc().$expression().$join($.$loc(r)))},zr.$$arity=3),e.def(Vr,"$block_map",Ar=function(e,t,r){var $=this;return o(o(c(Wr,"Source"),"Map"),"Collection").$new($.$loc(t),$.$loc(r),e.$join($.$loc(r)))},Ar.$$arity=3),e.def(Vr,"$keyword_map",Nr=function(e,t,r,n){var a=this,i=s,_=s,u=s,l=s;return r=d(i=r)?i:[],_=d(n)?a.$loc(n):d(d(u=r["$any?"]())?r.$last()["$nil?"]()["$!"]():u)?r.$last().$loc().$expression():d(d(l=r["$any?"]())?$(r.$count(),1):l)?r["$[]"](-2).$loc().$expression():a.$loc(e),o(o(c(Wr,"Source"),"Map"),"Keyword").$new(a.$loc(e),a.$loc(t),a.$loc(n),a.$loc(e).$join(_))},Nr.$$arity=4),e.def(Vr,"$keyword_mod_map",Sr=function(e,t,r){var $=this;return o(o(c(Wr,"Source"),"Map"),"Keyword").$new($.$loc(t),s,s,$.$join_exprs(e,r))},Sr.$$arity=3),e.def(Vr,"$condition_map",Or=function(e,t,r,$,n,a,i){var _=this,u=s,l=s,p=s;return u=d(i)?_.$loc(i):d(d(l=a)?a.$loc().$expression():l)?a.$loc().$expression():d(_.$loc(n))?_.$loc(n):d(d(p=$)?$.$loc().$expression():p)?$.$loc().$expression():d(_.$loc(r))?_.$loc(r):t.$loc().$expression(),o(o(c(Wr,"Source"),"Map"),"Condition").$new(_.$loc(e),_.$loc(r),_.$loc(n),_.$loc(i),_.$loc(e).$join(u))},Or.$$arity=7),e.def(Vr,"$ternary_map",Tr=function(e,t,r,$,n){var a=this;return o(o(c(Wr,"Source"),"Map"),"Ternary").$new(a.$loc(t),a.$loc($),a.$join_exprs(e,n))},Tr.$$arity=5),e.def(Vr,"$for_map",Ir=function(e,t,r,$){var n=this;return o(o(c(Wr,"Source"),"Map"),"For").$new(n.$loc(e),n.$loc(t),n.$loc(r),n.$loc($),n.$loc(e).$join(n.$loc($)))},Ir.$$arity=4),e.def(Vr,"$rescue_body_map",Cr=function(e,t,r,$,n,a){var i=this,_=s,u=s,l=s,p=s;return d(a)&&(_=a.$loc().$expression()),d(d(u=_["$nil?"]())?n:u)&&(_=i.$loc(n)),d(d(l=_["$nil?"]())?$:l)&&(_=$.$loc().$expression()),d(d(p=_["$nil?"]())?t:p)&&(_=t.$loc().$expression()),d(_["$nil?"]())&&(_=i.$loc(e)),o(o(c(Wr,"Source"),"Map"),"RescueBody").$new(i.$loc(e),i.$loc(r),i.$loc(n),i.$loc(e).$join(_))},Cr.$$arity=6),e.def(Vr,"$eh_keyword_map",qr=function(e,t,r,$,n){var a=this,i=s,_=s;return i=d(e["$nil?"]())?d(t["$nil?"]())?r.$first().$loc().$expression():a.$loc(t):e.$loc().$expression(),_=d($)?d(n["$nil?"]())?a.$loc($):n.$loc().$expression():d(r.$last()["$nil?"]()["$!"]())?r.$last().$loc().$expression():a.$loc(t),o(o(c(Wr,"Source"),"Map"),"Condition").$new(a.$loc(t),s,a.$loc($),s,i.$join(_))},qr.$$arity=5),e.def(Vr,"$guard_map",Pr=function(e,t){var r=s,$=s;return r=this.$loc(e),$=t.$loc().$expression(),o(o(c(Wr,"Source"),"Map"),"Keyword").$new(r,s,s,r.$join($))},Pr.$$arity=2),e.def(Vr,"$static_string",Br=function(t){try{var r,$=this;return p(t,"map",[],(r=function(t){var $=null==r.$$s?this:r.$$s,n=s,a=s;return null==t&&(t=s),function(){if(n=t.$type(),"str"["$==="](n))return t.$children()["$[]"](0);if("begin"["$==="](n)){if(d(a=$.$static_string(t.$children())))return a;e.ret(s)}else e.ret(s)}()},r.$$s=$,r.$$arity=1,r)).$join()}catch(n){if(n===e.returner)return n.$v;throw n}},Br.$$arity=1),e.def(Vr,"$static_regexp",Dr=function(e,t){var r=s;return r=this.$static_string(e),d(r["$nil?"]())?s:(r=d(t.$children()["$include?"]("u"))?r.$encode(o(c(Wr,"Encoding"),"UTF_8")):d(t.$children()["$include?"]("e"))?r.$encode(o(c(Wr,"Encoding"),"EUC_JP")):d(t.$children()["$include?"]("s"))?r.$encode(o(c(Wr,"Encoding"),"WINDOWS_31J")):d(t.$children()["$include?"]("n"))?r.$encode(o(c(Wr,"Encoding"),"BINARY")):r,c(Wr,"Regexp").$new(r,d(t.$children()["$include?"]("x"))?o(c(Wr,"Regexp"),"EXTENDED"):s))},Dr.$$arity=2),e.def(Vr,"$static_regexp_node",Lr=function(e){var t,r=this,$=s,n=s;return e.$type()["$=="]("regexp")?($=(t=[e.$children()["$[]"](f(0,-2,!1)),e.$children()["$[]"](-1)])[0],n=t[1],r.$static_regexp($,n)):s},Lr.$$arity=1),e.def(Vr,"$collapse_string_parts?",Gr=function(e){var t=s;return d(t=e["$one?"]())?["str","dstr"]["$include?"](e.$first().$type()):t},Gr.$$arity=1),e.def(Vr,"$value",Mr=function(e){return e["$[]"](0)},Mr.$$arity=1),e.def(Vr,"$string_value",jr=function(e){var t=this;return d(e["$[]"](0)["$valid_encoding?"]())||t.$diagnostic("error","invalid_encoding",s,e["$[]"](1)),e["$[]"](0)},jr.$$arity=1),e.def(Vr,"$loc",Fr=function(e){var t=s;return d(d(t=e)?e["$[]"](0):t)?e["$[]"](1):s},Fr.$$arity=1),e.def(Vr,"$diagnostic",Ur=function(e,t,r,$,n){var a=this;return null==n&&(n=[]),a.parser.$diagnostics().$process(c(Wr,"Diagnostic").$new(e,t,r,$,n)),e["$=="]("error")?a.parser.$send("yyerror"):s},Ur.$$arity=-5),e.def(Vr,"$validate_definee",Hr=function(e){var t=this,r=s;return r=e.$type(),!("int"["$==="](r)||"str"["$==="](r)||"dstr"["$==="](r)||"sym"["$==="](r)||"dsym"["$==="](r)||"regexp"["$==="](r)||"array"["$==="](r)||"hash"["$==="](r))||(t.$diagnostic("error","singleton_literal",s,e.$loc().$expression()),!1)},Hr.$$arity=1),e.def(Vr,"$rewrite_hash_args_to_kwargs",Yr=function(r){var n=this,a=s,i=s,o=s,c=s;return d(d(a=r["$any?"]())?n["$kwargs?"](r.$last()):a)?(i=[t(r.$length(),1),r["$[]"](t(r.$length(),1)).$updated("kwargs")],p(r,"[]=",e.to_a(i)),i[t(i.length,1)]):d(d(o=d(c=$(r.$length(),1))?r.$last().$type()["$=="]("block_pass"):c)?n["$kwargs?"](r["$[]"](t(r.$length(),2))):o)?(i=[t(r.$length(),2),r["$[]"](t(r.$length(),2)).$updated("kwargs")],p(r,"[]=",e.to_a(i)),i[t(i.length,1)]):s},Yr.$$arity=1),e.def(Vr,"$kwargs?",Xr=function(e){var t=s,r=s;return d(t=d(r=e.$type()["$=="]("hash"))?e.$loc().$begin()["$nil?"]():r)?e.$loc().$end()["$nil?"]():t},Xr.$$arity=1),s&&"kwargs?"}(c(g,"Builders"),0,g)}(i[0],i)},Opal.modules["parser/context"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var r=[],$=e.nil,n=(e.$$$,e.$$,e.module),a=e.klass,i=e.truthy,s=e.send,o=e.alias;return e.add_stubs(["$attr_reader","$freeze","$<<","$pop","$clear","$empty?","$==","$last","$include?","$rindex","$stack","$nil?","$!","$>","$in_block?","$in_lambda?"]),function(r,c){var _=[n(r,"Parser")].concat(c);return function(r,$super,n){var c,_,u,l,d,p,f,h,m,g,y,v=a(r,null,"Context");[v].concat(n);return v.$$prototype.stack=$,v.$attr_reader("stack"),e.def(v,"$initialize",c=function(){var e=this;return e.stack=[],e.$freeze()},c.$$arity=0),e.def(v,"$push",_=function(e){return this.stack["$<<"](e)},_.$$arity=1),e.def(v,"$pop",u=function(){return this.stack.$pop()},u.$$arity=0),e.def(v,"$reset",l=function(){return this.stack.$clear()},l.$$arity=0),e.def(v,"$empty?",d=function(){return this.stack["$empty?"]()},d.$$arity=0),e.def(v,"$in_class?",p=function(){return this.stack.$last()["$=="]("class")},p.$$arity=0),e.def(v,"$indirectly_in_def?",f=function(){var e=this,t=$;return i(t=e.stack["$include?"]("def"))?t:e.stack["$include?"]("defs")},f.$$arity=0),e.def(v,"$class_definition_allowed?",h=function(){var e,r=this,n=$,a=$,o=$,c=$;return n=s(r.$stack(),"rindex",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=$),["def","defs"]["$include?"](t)}).$$s=r,e.$$arity=1,e)),a=r.$stack().$rindex("sclass"),i(o=n["$nil?"]())?o:i(c=a["$nil?"]()["$!"]())?t(a,n):c},h.$$arity=0),o(v,"module_definition_allowed?","class_definition_allowed?"),o(v,"dynamic_const_definition_allowed?","class_definition_allowed?"),e.def(v,"$in_block?",m=function(){return this.stack.$last()["$=="]("block")},m.$$arity=0),e.def(v,"$in_lambda?",g=function(){return this.stack.$last()["$=="]("lambda")},g.$$arity=0),e.def(v,"$in_dynamic_block?",y=function(){var e=this,t=$;return i(t=e["$in_block?"]())?t:e["$in_lambda?"]()},y.$$arity=0),$&&"in_dynamic_block?"}(_[0],0,_)}(r[0],r)},Opal.modules["parser/max_numparam_stack"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var $=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.truthy,c=e.send;return e.add_stubs(["$attr_reader","$==","$size","$set","$top","$>","$max","$last","$push","$pop","$private","$-","$length","$[]="]),function($,_){var u=[i($,"Parser")].concat(_);return function($,$super,i){var _,u,l,d,p,f,h,m,g,y,v=s($,null,"MaxNumparamStack"),b=[v].concat(i);return v.$$prototype.stack=n,v.$attr_reader("stack"),e.const_set(b[0],"ORDINARY_PARAMS",-1),e.def(v,"$initialize",_=function(){return this.stack=[]},_.$$arity=0),e.def(v,"$empty?",u=function(){return this.stack.$size()["$=="](0)},u.$$arity=0),e.def(v,"$has_ordinary_params!",l=function(){return this.$set(a(b,"ORDINARY_PARAMS"))},l.$$arity=0),e.def(v,"$has_ordinary_params?",d=function(){return this.$top()["$=="](a(b,"ORDINARY_PARAMS"))},d.$$arity=0),e.def(v,"$has_numparams?",p=function(){var e=this,r=n;return o(r=e.$top())?t(e.$top(),0):r},p.$$arity=0),e.def(v,"$register",f=function(e){var t=this;return t.$set([t.$top(),e].$max())},f.$$arity=1),e.def(v,"$top",h=function(){return this.stack.$last()},h.$$arity=0),e.def(v,"$push",m=function(){return this.stack.$push(0)},m.$$arity=0),e.def(v,"$pop",g=function(){return this.stack.$pop()},g.$$arity=0),v.$private(),e.def(v,"$set",y=function(t){var $=this,a=n;return a=[r($.stack.$length(),1),t],c($.stack,"[]=",e.to_a(a)),a[r(a.length,1)]},y.$$arity=1),n&&"set"}(u[0],0,u)}($[0],$)},Opal.modules["parser/current_arg_stack"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,n=(e.$$$,e.$$,e.module),a=e.klass,i=e.send;return e.add_stubs(["$attr_reader","$freeze","$==","$size","$<<","$-","$length","$[]=","$pop","$clear","$last"]),function(r,s){var o=[n(r,"Parser")].concat(s);return function(r,$super,n){var s,o,c,_,u,l,d,p=a(r,null,"CurrentArgStack");[p].concat(n);return p.$$prototype.stack=$,p.$attr_reader("stack"),e.def(p,"$initialize",s=function(){var e=this;return e.stack=[],e.$freeze()},s.$$arity=0),e.def(p,"$empty?",o=function(){return this.stack.$size()["$=="](0)},o.$$arity=0),e.def(p,"$push",c=function(e){return this.stack["$<<"](e)},c.$$arity=1),e.def(p,"$set",_=function(r){var n=this,a=$;return a=[t(n.stack.$length(),1),r],i(n.stack,"[]=",e.to_a(a)),a[t(a.length,1)]},_.$$arity=1),e.def(p,"$pop",u=function(){return this.stack.$pop()},u.$$arity=0),e.def(p,"$reset",l=function(){return this.stack.$clear()},l.$$arity=0),e.def(p,"$top",d=function(){return this.stack.$last()},d.$$arity=0),$&&"top"}(o[0],0,o)}(r[0],r)},Opal.modules["parser/variables_stack"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass;return e.add_stubs(["$push","$empty?","$<<","$new","$pop","$clear","$last","$to_sym","$include?"]),function(t,i){var s=[n(t,"Parser")].concat(i);return function(t,$super,n){var i,s,o,c,_,u,l,d=a(t,null,"VariablesStack"),p=[d].concat(n);return d.$$prototype.stack=r,e.def(d,"$initialize",i=function(){var e=this;return e.stack=[],e.$push()},i.$$arity=0),e.def(d,"$empty?",s=function(){return this.stack["$empty?"]()},s.$$arity=0),e.def(d,"$push",o=function(){return this.stack["$<<"]($(p,"Set").$new())},o.$$arity=0),e.def(d,"$pop",c=function(){return this.stack.$pop()},c.$$arity=0),e.def(d,"$reset",_=function(){return this.stack.$clear()},_.$$arity=0),e.def(d,"$declare",u=function(e){return this.stack.$last()["$<<"](e.$to_sym())},u.$$arity=1),e.def(d,"$declared?",l=function(e){return this.stack.$last()["$include?"](e.$to_sym())},l.$$arity=1),r&&"declared?"}(s[0],0,s)}(t[0],t)},Opal.modules["parser/base"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.module,s=e.klass,o=e.send,c=e.gvars,_=e.truthy,u=e.hash2;return e.add_stubs(["$default_parser","$setup_source_buffer","$default_encoding","$parse","$parse_with_comments","$read","$new","$all_errors_are_fatal=","$diagnostics","$-","$ignore_warnings=","$lambda","$puts","$render","$consumer=","$force_encoding","$dup","$==","$name","$raw_source=","$source=","$private_class_method","$attr_reader","$version","$diagnostics=","$static_env=","$context=","$parser=","$class","$[]","$reset","$source_buffer=","$do_parse","$comments=","$comments","$tokens=","$!","$raise","$tokens","$private","$advance","$===","$diagnostic","$map","$process","$yyerror","$token_to_str"]),function(r,l){var d=[i(r,"Parser")].concat(l);return function(r,$super,i){var l,d,p,f,h,m,g,y,v,b,k,x,w,E,R,z=s(r,$super,"Base"),A=[z].concat(i);return z.$$prototype.diagnostics=z.$$prototype.lexer=z.$$prototype.static_env=z.$$prototype.context=z.$$prototype.builder=z.$$prototype.current_arg_stack=z.$$prototype.pattern_variables=z.$$prototype.pattern_hash_keys=$,e.defs(z,"$parse",l=function(e,t,r){var n=this,a=$,i=$;return null==t&&(t="(string)"),null==r&&(r=1),a=n.$default_parser(),i=n.$setup_source_buffer(t,r,e,a.$default_encoding()),a.$parse(i)},l.$$arity=-2),e.defs(z,"$parse_with_comments",d=function(e,t,r){var n=this,a=$,i=$;return null==t&&(t="(string)"),null==r&&(r=1),a=n.$default_parser(),i=n.$setup_source_buffer(t,r,e,a.$default_encoding()),a.$parse_with_comments(i)},d.$$arity=-2),e.defs(z,"$parse_file",p=function(e){return this.$parse(a(A,"File").$read(e),e)},p.$$arity=1),e.defs(z,"$parse_file_with_comments",f=function(e){return this.$parse_with_comments(a(A,"File").$read(e),e)},f.$$arity=1),e.defs(z,"$default_parser",h=function(){var r,n=this,a=$,i=$;return a=n.$new(),i=[!0],o(a.$diagnostics(),"all_errors_are_fatal=",e.to_a(i)),i[t(i.length,1)],i=[!0],o(a.$diagnostics(),"ignore_warnings=",e.to_a(i)),i[t(i.length,1)],i=[o(n,"lambda",[],(r=function(e){null==r.$$s||r.$$s;return null==c.stderr&&(c.stderr=$),null==e&&(e=$),c.stderr.$puts(e.$render())},r.$$s=n,r.$$arity=1,r))],o(a.$diagnostics(),"consumer=",e.to_a(i)),i[t(i.length,1)],a},h.$$arity=0),e.defs(z,"$setup_source_buffer",m=function(r,i,s,c){var _=this,u=$,l=$;return s=s.$dup().$force_encoding(c),u=n(a(A,"Source"),"Buffer").$new(r,i),_.$name()["$=="]("Parser::Ruby18")?(l=[s],o(u,"raw_source=",e.to_a(l)),l[t(l.length,1)]):(l=[s],o(u,"source=",e.to_a(l)),l[t(l.length,1)]),u},m.$$arity=4),z.$private_class_method("setup_source_buffer"),z.$attr_reader("lexer"),z.$attr_reader("diagnostics"),z.$attr_reader("builder"),z.$attr_reader("static_env"),z.$attr_reader("source_buffer"),z.$attr_reader("context"),z.$attr_reader("max_numparam_stack"),z.$attr_reader("current_arg_stack"),z.$attr_reader("pattern_variables"),z.$attr_reader("pattern_hash_keys"),e.def(z,"$initialize",g=function(r){var i=this,s=$,c=$;return null==r&&(r=n(n(a(A,"Parser"),"Builders"),"Default").$new()),i.diagnostics=n(a(A,"Diagnostic"),"Engine").$new(),i.static_env=a(A,"StaticEnvironment").$new(),i.context=a(A,"Context").$new(),i.max_numparam_stack=a(A,"MaxNumparamStack").$new(),i.current_arg_stack=a(A,"CurrentArgStack").$new(),i.pattern_variables=a(A,"VariablesStack").$new(),i.pattern_hash_keys=a(A,"VariablesStack").$new(),i.lexer=a(A,"Lexer").$new(i.$version()),s=[i.diagnostics],o(i.lexer,"diagnostics=",e.to_a(s)),s[t(s.length,1)],s=[i.static_env],o(i.lexer,"static_env=",e.to_a(s)),s[t(s.length,1)],s=[i.context],o(i.lexer,"context=",e.to_a(s)),s[t(s.length,1)],i.builder=r,s=[i],o(i.builder,"parser=",e.to_a(s)),s[t(s.length,1)],i.last_token=$,_(_(c=n(i.$class(),"Racc_debug_parser"))?a(A,"ENV")["$[]"]("RACC_DEBUG"):c)&&(i.yydebug=!0),i.$reset()},g.$$arity=-1),e.def(z,"$reset",y=function(){var e=this;return e.source_buffer=$,e.lexer.$reset(),e.static_env.$reset(),e.context.$reset(),e.current_arg_stack.$reset(),e.pattern_variables.$reset(),e.pattern_hash_keys.$reset(),e},y.$$arity=0),e.def(z,"$parse",v=function(r){var n=this,a=$,i=$;return function(){try{return a=[r],o(n.lexer,"source_buffer=",e.to_a(a)),a[t(a.length,1)],n.source_buffer=r,_(i=n.$do_parse())?i:$}finally{n.source_buffer=$,a=[$],o(n.lexer,"source_buffer=",e.to_a(a)),a[t(a.length,1)]}}()},v.$$arity=1),e.def(z,"$parse_with_comments",b=function(r){var n=this,a=$;return function(){try{return a=[[]],o(n.lexer,"comments=",e.to_a(a)),a[t(a.length,1)],[n.$parse(r),n.lexer.$comments()]}finally{a=[$],o(n.lexer,"comments=",e.to_a(a)),a[t(a.length,1)]}}()},b.$$arity=1),e.def(z,"$tokenize",k=function(r,i){var s=this,c=$,u=$;return null==i&&(i=!1),function(){try{c=[[]],o(s.lexer,"tokens=",e.to_a(c)),c[t(c.length,1)],c=[[]],o(s.lexer,"comments=",e.to_a(c)),c[t(c.length,1)];try{u=s.$parse(r)}catch(l){if(!e.rescue(l,[n(a(A,"Parser"),"SyntaxError")]))throw l;try{_(i["$!"]())&&s.$raise()}finally{e.pop_exception()}}return[u,s.lexer.$comments(),s.lexer.$tokens()]}finally{c=[$],o(s.lexer,"tokens=",e.to_a(c)),c[t(c.length,1)],c=[$],o(s.lexer,"comments=",e.to_a(c)),c[t(c.length,1)]}}()},k.$$arity=-2),z.$private(),e.def(z,"$next_token",x=function(){var e=this,t=$;return t=e.lexer.$advance(),e.last_token=t,t},x.$$arity=0),e.def(z,"$check_kwarg_name",w=function(e){var t=this,r=$;return r=e["$[]"](0),/^[a-z_]/["$==="](r)?$:/^[A-Z]/["$==="](r)?t.$diagnostic("error","argument_const",$,e):$},w.$$arity=1),e.def(z,"$diagnostic",E=function(t,r,n,i,s){var c,_,u,l=this,d=$,p=$;return null==s&&(s=[]),_=i,c=e.to_ary(_),null==c[0]?$:c[0],d=null==c[1]?$:c[1],p=o(s,"map",[],((u=function(t){var r,n;null==u.$$s||u.$$s;return null==t&&(t=$),n=t,r=e.to_ary(n),null==r[0]?$:r[0],null==r[1]?$:r[1]}).$$s=l,u.$$arity=1,u)),l.diagnostics.$process(a(A,"Diagnostic").$new(t,r,n,d,p)),t["$=="]("error")?l.$yyerror():$},E.$$arity=-5),e.def(z,"$on_error",R=function(t,r){var n,i,s=this,o=$,c=$;return o=s.$token_to_str(t),i=r,null==(n=e.to_ary(i))[0]?$:n[0],c=null==n[1]?$:n[1],s.diagnostics.$process(a(A,"Diagnostic").$new("error","unexpected_token",u(["token"],{token:o}),c))},R.$$arity=3),$&&"on_error"}(d[0],n(a(d,"Racc"),"Parser"),d)}(r[0],r)},Opal.modules["parser/rewriter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.module,s=e.klass,o=e.send,c=e.send2,_=e.find_super;return e.add_stubs(["$new","$process","$include?","$type","$remove","$wrap","$insert_before","$insert_after","$replace","$freeze","$join","$extend","$warn_of_deprecation","$class","$warned_of_deprecation=","$-"]),function(r,u){var l=[i(r,"Parser")].concat(u);return function(r,$super,i){var u,l,d,p,f,h,m,g,y=s(r,$super,"Rewriter"),v=[y].concat(i);return y.$$prototype.source_rewriter=$,e.def(y,"$rewrite",u=function(e,t){var r=this;return r.source_rewriter=n(a(v,"Source"),"Rewriter").$new(e),r.$process(t),r.source_rewriter.$process()},u.$$arity=2),e.def(y,"$assignment?",l=function(e){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](e.$type())},l.$$arity=1),e.def(y,"$remove",d=function(e){return this.source_rewriter.$remove(e)},d.$$arity=1),e.def(y,"$wrap",p=function(e,t,r){return this.source_rewriter.$wrap(e,t,r)},p.$$arity=3),e.def(y,"$insert_before",f=function(e,t){return this.source_rewriter.$insert_before(e,t)},f.$$arity=2),e.def(y,"$insert_after",h=function(e,t){return this.source_rewriter.$insert_after(e,t)},h.$$arity=2),e.def(y,"$replace",m=function(e,t){return this.source_rewriter.$replace(e,t)},m.$$arity=2),e.const_set(v[0],"DEPRECATION_WARNING",["Parser::Rewriter is deprecated.","Please update your code to use Parser::TreeRewriter instead"].$join("\n").$freeze()),y.$extend(a(v,"Deprecation")),e.def(y,"$initialize",g=function(){var r,i=g.$$p,s=this,u=$;return i&&(g.$$p=null),r=e.slice.call(arguments,0,arguments.length),s.$class().$warn_of_deprecation(),u=[!0],o(n(a(v,"Source"),"Rewriter"),"warned_of_deprecation=",e.to_a(u)),u[t(u.length,1)],c(s,_(s,"initialize",g,!1,!0),"initialize",e.to_a(r),i)},g.$$arity=-1),$&&"initialize"}(l[0],n(n(a(l,"Parser"),"AST"),"Processor"),l)}(r[0],r)},Opal.modules["parser/tree_rewriter"]=function(e){e.top;var t=[],r=e.nil,$=e.$$$,n=e.$$,a=e.module,i=e.klass,s=e.hash2;e.hash;return e.add_stubs(["$new","$process","$include?","$type","$remove","$wrap","$insert_before","$insert_after","$replace"]),function(t,o){var c=[a(t,"Parser")].concat(o);return function(t,$super,a){var o,c,_,u,l,d,p,f=i(t,$super,"TreeRewriter"),h=[f].concat(a);return f.$$prototype.source_rewriter=r,e.def(f,"$rewrite",o=function(t,r,a){var i,o=this;if(null==a)a=s([],{});else if(!a.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return i=e.kwrestargs(a,{}),o.source_rewriter=$($(n(h,"Parser"),"Source"),"TreeRewriter").$new(t,e.to_hash(i)),o.$process(r),o.source_rewriter.$process()},o.$$arity=-3),e.def(f,"$assignment?",c=function(e){return["lvasgn","ivasgn","gvasgn","cvasgn","casgn"]["$include?"](e.$type())},c.$$arity=1),e.def(f,"$remove",_=function(e){return this.source_rewriter.$remove(e)},_.$$arity=1),e.def(f,"$wrap",u=function(e,t,r){return this.source_rewriter.$wrap(e,t,r)},u.$$arity=3),e.def(f,"$insert_before",l=function(e,t){return this.source_rewriter.$insert_before(e,t)},l.$$arity=2),e.def(f,"$insert_after",d=function(e,t){return this.source_rewriter.$insert_after(e,t)},d.$$arity=2),e.def(f,"$replace",p=function(e,t){return this.source_rewriter.$replace(e,t)},p.$$arity=2),r&&"replace"}(c[0],$($(n(c,"Parser"),"AST"),"Processor"),c)}(t[0],t)},Opal.modules.parser=function(e){var t=e.top,r=[],$=(e.nil,e.$$$),n=e.$$,a=e.truthy,i=e.module;return e.add_stubs(["$=~","$require","$raise"]),a(n(r,"RUBY_VERSION")["$=~"](/^1\.[89]\./))&&(t.$require("parser/version"),t.$raise(n(r,"LoadError"),"parser v"+$(n(r,"Parser"),"VERSION")+" cannot run on Ruby "+n(r,"RUBY_VERSION")+".\nPlease upgrade to Ruby 2.0.0 or higher, or use an older version of the parser gem.\n")),t.$require("set"),t.$require("racc/parser"),t.$require("ast"),function(e,t){var r=i(e,"Parser"),$=[r].concat(t);return r.$require("parser/version"),r.$require("parser/messages"),r.$require("parser/deprecation"),function(e,t){var r=i(e,"AST");[r].concat(t);r.$require("parser/ast/node"),r.$require("parser/ast/processor"),r.$require("parser/meta")}($[0],$),function(e,t){var r=i(e,"Source");[r].concat(t);r.$require("parser/source/buffer"),r.$require("parser/source/range"),r.$require("parser/source/comment"),r.$require("parser/source/comment/associator"),r.$require("parser/source/rewriter"),r.$require("parser/source/rewriter/action"),r.$require("parser/source/tree_rewriter"),r.$require("parser/source/tree_rewriter/action"),r.$require("parser/source/map"),r.$require("parser/source/map/operator"),r.$require("parser/source/map/collection"),r.$require("parser/source/map/constant"),r.$require("parser/source/map/variable"),r.$require("parser/source/map/keyword"),r.$require("parser/source/map/definition"),r.$require("parser/source/map/method_definition"),r.$require("parser/source/map/send"),r.$require("parser/source/map/index"),r.$require("parser/source/map/condition"),r.$require("parser/source/map/ternary"),r.$require("parser/source/map/for"),r.$require("parser/source/map/rescue_body"),r.$require("parser/source/map/heredoc"),r.$require("parser/source/map/objc_kwarg")}($[0],$),r.$require("parser/syntax_error"),r.$require("parser/clobbering_error"),r.$require("parser/diagnostic"),r.$require("parser/diagnostic/engine"),r.$require("parser/static_environment"),r.$require("parser/lexer"),r.$require("parser/lexer/literal"),r.$require("parser/lexer/stack_state"),r.$require("parser/lexer/dedenter"),function(e,t){var r=i(e,"Builders");[r].concat(t);r.$require("parser/builders/default")}($[0],$),r.$require("parser/context"),r.$require("parser/max_numparam_stack"),r.$require("parser/current_arg_stack"),r.$require("parser/variables_stack"),r.$require("parser/base"),r.$require("parser/rewriter"),r.$require("parser/tree_rewriter")}(r[0],r)},Opal.modules["parser/ruby30"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var n=e.top,a=[],i=e.nil,s=e.$$$,o=e.$$,c=e.module,_=e.klass,u=e.truthy,l=e.send,d=e.hash,p=e.hash2,f=e.slice;return e.add_stubs(["$require","$!","$include?","$[]","$end_with?","$diagnostic","$new","$each","$split","$empty?","$to_i","$[]=","$-","$+","$push","$pop","$compstmt","$<<","$preexe","$nil?","$begin_body","$state=","$alias","$gvar","$back_ref","$undef_method","$condition_mod","$loop_mod","$rescue_body","$postexe","$multi_assign","$assign","$array","$op_assign","$index","$call_method","$const_op_assignable","$const_fetch","$logical_op","$not_op","$command_start=","$in_kwarg","$in_kwarg=","$match_pattern","$match_pattern_p","$cond","$extend_static","$cmdarg","$block","$keyword_cmd","$multi_lhs","$begin","$splat","$concat","$assignable","$index_asgn","$==","$attr_asgn","$const_global","$const","$symbol_internal","$range_inclusive","$range_exclusive","$binary_op","$unary_op","$match_op","$ternary","$endless_method_name","$def_endless_method","$unextend","$def_endless_singleton","$associate","$declared_forward_args?","$forwarded_args","$block_pass","$begin_keyword","$condition","$loop","$case","$case_match","$for","$class_definition_allowed?","$def_class","$def_sclass","$module_definition_allowed?","$def_module","$def_method","$def_singleton","$in_class?","$arg","$restarg","$size","$procarg0","$args","$has_ordinary_params!","$set","$declare","$shadowarg","$extend_dynamic","$call_lambda","$has_numparams?","$numargs","$top","$any?","$when","$in_pattern","$if_guard","$unless_guard","$match_with_trailing_comma","$array_pattern","$find_pattern","$hash_pattern","$match_as","$match_alt","$const_pattern","$match_rest","$match_pair","$match_label","$match_nil_pattern","$accessible","$match_var","$declared?","$static_env","$ident","$pin","$string_compose","$dedent_string","$dedent_level","$string","$character","$xstring_compose","$regexp_options","$regexp_compose","$words_compose","$word","$symbols_compose","$string_internal","$ivar","$cvar","$symbol","$symbol_compose","$respond_to?","$negate","$unary_num","$integer","$float","$rational","$complex","$nil","$self","$true","$false","$__FILE__","$__LINE__","$__ENCODING__","$type","$children","$=~","$in_dynamic_block?","$context","$expression","$loc","$has_ordinary_params?","$max_numparam_stack","$dup","$stack","$reverse_each","$>","$register","$nth_ref","$forward_arg","$declare_forward_args","$forward_only_args","$check_kwarg_name","$kwoptarg","$kwarg","$kwnilarg","$kwrestarg","$optarg","$blockarg","$pair","$pair_keyword","$pair_quoted","$kwsplat","$yyerrok"]),n.$require("racc/parser.rb"),n.$require("parser"),function(n,a){var h=[c(n,"Parser")].concat(a);return function(n,$super,a){var c,h,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U,H,Y,X,V,W,K,Q,J,Z,ee,te,re,$e,ne,ae,ie,se,oe,ce,_e,ue,le,de,pe,fe,he,me,ge,ye,ve,be,ke,xe,we,Ee,Re,ze,Ae,Ne,Se,Oe,Te,Ie,Ce,qe,Pe,Be,De,Le,Ge,Me,je,Fe,Ue,He,Ye,Xe,Ve,We,Ke,Qe,Je,Ze,et,tt,rt,$t,nt,at,it,st,ot,ct,_t,ut,lt,dt,pt,ft,ht,mt,gt,yt,vt,bt,kt,xt,wt,Et,Rt,zt,At,Nt,St,Ot,Tt,It,Ct,qt,Pt,Bt,Dt,Lt,Gt,Mt,jt,Ft,Ut,Ht,Yt,Xt,Vt,Wt,Kt,Qt,Jt,Zt,er,tr,rr,$r,nr,ar,ir,sr,or,cr,_r,ur,lr,dr,pr,fr,hr,mr,gr,yr,vr,br,kr,xr,wr,Er,Rr,zr,Ar,Nr,Sr,Or,Tr,Ir,Cr,qr,Pr,Br,Dr,Lr,Gr,Mr,jr,Fr,Ur,Hr,Yr,Xr,Vr,Wr,Kr,Qr,Jr,Zr,e$,t$,r$,$$,n$,a$,i$,s$,o$,c$,_$,u$,l$,d$,p$,f$,h$,m$,g$,y$,v$,b$,k$,x$,w$,E$,R$,z$,A$,N$,S$,O$,T$,I$,C$,q$,P$,B$,D$,L$,G$,M$,j$,F$,U$,H$,Y$,X$,V$,W$,K$,Q$,J$,Z$,en,tn,rn,$n,nn,an,sn,on,cn,_n,un,ln,dn,pn,fn,hn,mn,gn,yn,vn,bn,kn,xn,wn,En,Rn,zn,An,Nn,Sn,On,Tn,In,Cn,qn,Pn,Bn,Dn,Ln,Gn,Mn,jn,Fn,Un,Hn,Yn,Xn,Vn,Wn,Kn,Qn,Jn,Zn,ea,ta,ra,$a,na,aa,ia,sa,oa,ca,_a,ua,la,da,pa,fa,ha,ma,ga,ya,va,ba,ka,xa,wa,Ea,Ra,za,Aa,Na,Sa,Oa,Ta,Ia,Ca,qa,Pa,Ba,Da,La,Ga,Ma,ja,Fa,Ua,Ha,Ya,Xa,Va,Wa,Ka,Qa,Ja,Za,ei,ti,ri,$i,ni,ai,ii,si,oi,ci,_i,ui,li,di,pi,fi,hi,mi,gi,yi,vi,bi,ki,xi,wi,Ei,Ri,zi,Ai,Ni,Si,Oi,Ti,Ii,Ci,qi,Pi,Bi,Di,Li,Gi,Mi,ji,Fi,Ui,Hi,Yi,Xi,Vi,Wi,Ki,Qi,Ji,Zi,es,ts,rs,$s,ns,as,is,ss,os,cs,_s,us,ls,ds,ps,fs,hs,ms,gs,ys,vs,bs,ks,xs,ws,Es,Rs,zs,As,Ns,Ss,Os,Ts,Is,Cs,qs,Ps,Bs,Ds,Ls,Gs,Ms,js,Fs,Us,Hs,Ys,Xs,Vs,Ws,Ks,Qs,Js,Zs,eo,to,ro,$o,no,ao,io,so,oo,co,_o,uo,lo,po,fo,ho,mo,go,yo,vo,bo,ko,xo,wo,Eo,Ro,zo,Ao,No,So,Oo,To,Io,Co,qo,Po,Bo,Do,Lo,Go,Mo,jo,Fo,Uo,Ho,Yo,Xo,Vo,Wo,Ko,Qo,Jo,Zo,ec,tc,rc,$c,nc,ac,ic,sc,oc,cc=_(n,$super,"Ruby30"),_c=[cc].concat(a),uc=i,lc=i,dc=i,pc=i,fc=i,hc=i,mc=i,gc=i,yc=i,vc=i,bc=i,kc=i,xc=i,wc=i,Ec=i,Rc=i,zc=i;return cc.$$prototype.current_arg_stack=cc.$$prototype.max_numparam_stack=cc.$$prototype.builder=cc.$$prototype.lexer=cc.$$prototype.pattern_variables=cc.$$prototype.static_env=cc.$$prototype.context=cc.$$prototype.last_token=cc.$$prototype.pattern_hash_keys=i,e.def(cc,"$version",c=function(){return 30},c.$$arity=0),e.def(cc,"$default_encoding",h=function(){return s(o(_c,"Encoding"),"UTF_8")},h.$$arity=0),e.def(cc,"$endless_method_name",m=function(e){var t=this,r=i;return u(u(r=["===","==","!=","<=",">="]["$include?"](e["$[]"](0))["$!"]())?e["$[]"](0)["$end_with?"]("="):r)?t.$diagnostic("error","endless_setter",i,e):i},m.$$arity=1), +uc=["-704,677,614,1080,867,962,-120,-704,-704,-704,218,219,802,-704,-704","-603,-704,101,102,867,228,-113,-603,-116,-704,-704,657,1147,655,-713","863,-119,-118,1150,-114,1075,-704,-704,614,-704,-704,-704,-704,-704","-112,-119,229,614,614,917,1121,-118,423,1074,621,-117,867,425,424,807","-117,229,807,-115,-113,-498,-704,-704,-704,-704,-704,-704,-704,-704","-704,-704,-704,-704,-704,-704,-603,-112,-704,-704,-704,1081,682,-704","-700,-117,-704,-120,656,-704,654,103,104,-701,-704,229,-704,226,-704","-704,229,-704,-704,-704,-704,-704,-599,-704,-704,-704,961,-111,123,-599","-599,-599,123,122,-599,-599,-599,122,-599,-704,-701,-106,-704,-704,-107","-704,-599,-704,-599,-599,-599,-113,-110,-109,-704,-105,-113,-116,-599","-599,614,-599,-599,-599,-599,-599,-116,-114,123,-115,-117,951,-120,122","-112,-119,-108,123,123,-112,-119,-118,122,122,-106,-104,-118,229,-599","-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-599,-103","614,-599,-599,-599,-106,-599,-599,298,849,-599,349,123,-599,-599,476","-599,122,-599,-120,-599,-713,-599,-599,-120,-599,-599,-599,-599,-599","-314,-599,1155,-599,298,218,219,-314,-314,-314,917,-700,621,-314,-314","-106,-314,-599,-106,1156,-599,-599,-599,-599,-314,-599,-713,-599,218","219,-106,229,-599,946,917,-599,-314,-314,-114,-314,-314,-314,-314,-314","-120,785,123,218,219,1040,-107,122,-116,-114,363,-115,-117,-116,-114","298,-115,-117,229,786,1040,297,-314,-314,-314,-314,-314,-314,-314,-314","-314,-314,-314,-314,-314,-314,298,1040,-314,-314,-314,-608,681,-314","348,123,-314,297,-608,-314,122,-105,101,102,-314,123,-314,-608,-314","-314,122,-314,-314,-314,-314,-314,-725,-314,-704,-314,287,-700,-107","862,676,-704,-704,-704,229,293,-704,-704,-704,-314,-704,123,-314,-314","1168,-314,122,-314,-704,-704,-704,-704,-704,229,-314,1169,293,-118,297","-108,-704,-704,-608,-704,-704,-704,-704,-704,-107,-609,1173,-107,-98","-105,642,-602,-609,642,771,297,1177,642,-602,-107,-84,-609,103,104,-115","-115,-704,-704,-704,-704,-704,-704,-704,-704,-704,-704,-704,-704,-704","-704,363,552,-704,-704,-704,642,864,-704,1179,-105,-704,627,-105,-704","-704,628,-704,1181,-704,552,-704,-108,-704,-704,-105,-704,-704,-704","-704,-704,-609,-704,-704,-704,644,643,-602,644,643,640,642,644,643,642","833,1183,642,-704,-110,642,-704,-704,-704,-704,1134,-704,-725,-704,1134","-314,-119,-108,-704,-611,-108,-116,-314,-314,-314,644,643,-314,-314","-314,224,-314,-108,1183,-119,835,627,544,-601,-314,892,-314,-314,-314","873,-601,542,971,-698,869,762,-314,-314,870,-314,-314,-314,-314,-314","220,644,643,640,644,643,640,644,643,645,644,643,653,849,-610,123,123","1116,742,-113,122,122,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314","-314,-314,-314,-314,225,-610,-314,-314,-314,-599,865,-314,-601,1197","-314,-114,-599,-314,-314,642,-314,-698,-314,1173,-314,-599,-314,-314","-105,-314,-314,-314,-314,-314,123,-314,217,-314,627,122,-114,-112,892","579,-698,576,575,574,584,577,677,-314,-103,-604,-314,-314,-314,-314","587,-314,-604,-314,-701,-704,-112,676,-314,1119,1120,-118,-704,-704","-704,-700,-599,606,-704,-704,608,-704,582,218,219,644,643,649,-607,-704","-704,592,591,595,594,-607,946,917,588,-108,87,-704,-704,229,-704,-704","-704,-704,-704,216,-611,-117,88,579,-106,576,575,574,584,577,-604,642","89,215,229,132,-115,229,587,1040,1171,-704,-704,-704,-704,-704,-704","-704,-704,-704,-704,-704,-704,-704,-704,1209,226,-704,-704,-704,582","682,-704,-607,1183,-704,642,-104,-704,592,591,595,594,-704,1183,-704","588,-704,-704,-113,-704,-704,-704,-704,-704,-314,-704,-704,-704,887","888,1183,-314,-314,-314,644,643,658,-314,-314,-605,-314,-704,-111,119","-704,-704,-605,-107,-314,-704,-606,-599,595,594,-120,573,-704,-606,-599","-116,-314,-314,1173,-314,-314,-314,-314,-314,1183,644,643,647,579,224","576,575,574,584,577,-596,624,126,127,128,129,130,-596,587,229,622,-314","-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-605","730,-314,-314,-314,582,681,-314,218,219,-314,-606,-599,-314,592,591","595,594,-314,229,-314,588,-314,-314,229,-314,-314,-314,-314,-314,-596","-314,606,-314,225,608,251,-596,-596,-596,-596,251,-596,-596,-596,224","-596,-314,251,251,-314,-314,291,-109,-596,-314,-596,-596,-596,229,606","573,-314,608,-98,-118,-596,-596,745,-596,-596,-596,-596,-596,229,-315","558,224,606,-305,224,605,-315,756,223,762,-305,291,763,229,765,-315","229,221,768,-305,-596,-596,-596,-596,-596,-596,-596,-596,-596,-596,-596","-596,-596,-596,225,771,-596,-596,-596,772,-596,-596,224,251,-596,774","776,-596,-596,1149,-596,686,-596,787,-596,788,-596,-596,632,-596,-596","-596,-596,-596,-315,-596,225,-596,-305,225,126,127,128,129,130,248,-314","790,293,250,249,-596,792,-314,-596,-596,-596,-596,-701,-596,224,-596","-314,793,229,795,-596,669,675,-596,320,77,78,24,11,65,667,225,798,71","72,674,229,803,75,-697,73,74,76,33,34,79,80,126,127,128,129,130,81,31","30,111,110,112,113,804,579,21,576,575,574,-314,577,10,51,322,12,115","114,116,105,64,107,106,108,225,109,117,118,-315,101,102,47,48,46,-314","-315,-596,808,224,268,269,-314,778,-596,-315,554,-701,670,-697,666,-314","782,-596,43,474,665,36,-287,832,66,67,224,836,68,837,38,663,662,1154","50,-288,-697,659,251,850,267,266,1152,22,510,634,510,229,99,87,90,91","867,92,94,93,95,983,-315,868,626,88,98,625,-314,891,-596,587,225,82","248,89,103,104,250,249,44,45,320,77,78,24,11,65,867,894,415,71,72,896","287,225,75,-704,73,74,76,33,34,79,80,621,902,904,906,588,81,31,30,111","110,112,113,524,526,21,526,1001,756,229,610,10,51,322,12,115,114,116","105,64,107,106,108,609,109,117,118,224,101,102,47,48,46,224,1149,-704","293,-349,293,756,630,251,-704,632,-349,229,917,-700,599,632,-617,-704","43,-349,938,36,939,229,66,67,224,559,68,917,38,948,949,473,50,579,-704","576,575,574,251,577,474,22,229,555,549,229,99,87,90,91,293,92,94,93","95,983,225,363,959,88,98,363,225,229,-704,587,-349,82,229,89,103,104","-289,302,44,45,320,77,78,24,11,65,229,545,970,71,72,538,537,225,75,716","73,74,76,33,34,79,80,243,229,-83,132,588,81,31,30,111,110,112,113,229","229,21,997,1001,998,999,1002,10,51,322,12,115,114,116,105,64,107,106","108,526,109,117,118,524,101,102,47,48,46,251,255,256,257,258,268,269","263,264,259,260,522,244,245,904,1008,261,262,229,43,3,242,36,584,756","66,67,510,1026,68,-287,38,248,587,254,50,250,249,1030,246,247,267,266","252,22,253,229,1033,1035,99,87,90,91,771,92,94,93,95,786,1038,1040,1040","88,98,229,265,595,594,1048,1050,82,588,89,103,104,1059,1060,44,45,320","77,78,24,11,65,1065,827,828,71,72,829,117,118,75,1066,73,74,76,33,34","79,80,126,127,128,129,130,81,31,30,111,110,112,113,1067,-290,21,229","229,229,1071,671,10,51,322,12,115,114,116,105,64,107,106,108,228,109","117,118,229,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259","260,229,244,245,229,867,261,262,1079,43,478,477,36,229,1088,66,67,771","1091,68,1094,38,248,1096,254,50,250,249,1098,246,247,267,266,252,22","253,229,1100,475,99,87,90,91,1115,92,94,93,95,1116,1125,426,867,88,98","1135,265,1137,-260,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71","72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,",",,942,10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,251,255,256,257,258,268,269,263,264,259,260,,244,245,,","261,262,,43,,,36,584,,66,67,,,68,,38,248,587,254,50,250,249,,246,247","267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265,595,594",",,82,588,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74","76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,671,10,51,322","12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,251","255,256,257,258,268,269,263,264,259,260,,244,245,,,261,262,,43,,,36",",,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253,,,","99,87,90,91,,92,94,93,95,,,,,88,98,,265,,,,,82,,89,103,104,,,44,45,320","77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111","110,112,113,,,21,,,,,914,10,51,322,12,115,114,116,105,64,107,106,108",",109,117,118,,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259","260,,244,245,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249",",246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265",",,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74","76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,1130,21,576,575,574,,577","10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47","48,46,251,255,256,257,258,268,269,263,264,259,260,,244,245,,,261,262",",43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22","253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,229,265,,,,,82,,89,103,104",",,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,",",81,31,30,111,110,112,113,,1130,21,576,575,574,,577,10,51,322,12,115","114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,255,256","257,258,268,269,263,264,259,260,,244,245,,,261,262,,43,,,36,,,66,67",",,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,265,,,,,82,,89,103,104,,,44,45,320,77,78","24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110","112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259,260,,244","245,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247","267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265,,,,,82",",89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34","79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,255,256,257,258","268,269,263,264,259,260,,244,245,,,261,262,,43,,,36,,,66,67,,,68,,38","248,,254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90,91,,92,94","93,95,,,,,88,98,,265,,,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,",",,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,","21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,251,255,256,257,258,268,269,263,264,259,260,,244,245,,","261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266","252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265,,,,,82,,89,103","104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80",",,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116,105","64,107,106,108,,109,117,118,,101,102,47,48,46,251,255,256,257,258,268","269,263,264,259,260,,244,245,,,261,262,,43,,,324,,,66,67,,,68,,38,248",",254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,265,,,,,82,,89,103,104,,,44,45,7,77,78,24,11,65,,,,71","72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,",",,,10,51,9,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47","48,46,251,255,256,257,258,268,269,263,264,259,260,,244,245,,,261,262",",43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22","253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,265,,,,,82,,89,103,104,,","44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81","31,30,111,110,112,113,,579,21,576,575,574,,577,10,51,322,12,115,114","116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,579,,576,575,574",",577,,778,,579,,576,575,574,,577,782,,43,,,324,,,66,67,,251,68,,38,",",,50,,778,,579,,576,575,574,22,577,782,778,,99,87,90,91,,92,94,93,95",",,248,,88,98,250,249,,246,247,,82,,89,103,104,,778,44,45,320,77,78,24","11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112","113,,,21,,,251,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,251,255,256,257,258,268,269,248,,259,260,250,249",",246,247,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246","247,267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,579,,576","575,574,82,577,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75",",73,74,76,33,34,79,80,778,,,,,81,31,30,111,110,112,113,,,21,,,,,,10","51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48","46,251,-726,-726,-726,-726,268,269,,,-726,-726,,,,,,261,262,,43,,,36",",,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253,,,","99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320","77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111","110,112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109","117,118,,101,102,47,48,46,251,-726,-726,-726,-726,268,269,,,-726,-726",",,,,,261,262,,43,,,324,,,66,67,,,68,,38,248,,254,50,250,249,,246,247","267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89","103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79","80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,-726,-726,-726","-726,268,269,,,-726,-726,,,,,,261,262,,43,,,36,,,66,67,,,68,,38,248",",254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,","10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47","48,46,251,-726,-726,-726,-726,268,269,,,-726,-726,,,,,,261,262,,43,",",36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253",",,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,7","77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111","110,112,113,,,21,,,,,,10,51,9,12,115,114,116,105,64,107,106,108,,109","117,118,,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259,260",",-726,-726,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,","246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,",",,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76","33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115","114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,255,256","257,258,268,269,263,264,259,260,,-726,-726,,,261,262,,43,,,36,,,66,67",",,68,,38,248,,254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320,77,78,24","11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112","113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,251,255,256,257,258,268,269,263,,259,260,,,,,,261","262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252","22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,","44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81","31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107","106,108,,109,117,118,,101,102,47,48,46,251,,,,,,,,,,,,,,,,261,262,,43",",,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,,,252,22,253,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320,77","78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110","112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,251,255,256,257,258,268,269,263,264,259,260,,-726","-726,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247","267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89","103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79","80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,-726,-726,-726","-726,268,269,,,-726,-726,,,,,,261,262,,43,,,36,,,66,67,,,68,,38,248",",254,50,250,249,,246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,","10,51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47","48,46,251,255,256,257,258,268,269,263,264,259,260,,-726,-726,,,261,262",",43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,,246,247,267,266,252,22","253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44","45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31","30,111,110,112,113,,,21,,,,,,10,51,322,12,115,114,116,105,64,107,106","108,,109,117,118,,101,102,47,48,46,251,-726,-726,-726,-726,268,269,",",-726,-726,,,,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249",",246,247,267,266,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,",",,,,82,,89,103,104,,,44,45,320,77,78,24,11,65,,,,71,72,,,,75,,73,74","76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,322,12","115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,251,,",",,,,,,,,,,,,,261,262,,43,,,36,,,66,67,,,68,,38,248,,254,50,250,249,","246,247,,,252,22,253,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78","24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31","30,111,110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109","117,118,,101,102,47,48,46,251,,,,,,,,,,,,,,,,261,262,,234,,,240,,,66","67,,,68,,,248,,254,50,250,249,,246,247,,,,22,,,,,99,87,90,91,,92,94","93,95,,,,,88,98,,,,,,,82,,89,103,104,-270,,44,45,,,,-270,-270,-270,",",-270,-270,-270,,-270,251,,,,,,,-270,-270,-270,,,,,,,261,262,,-270,-270",",-270,-270,-270,-270,-270,,,,,,248,,508,457,250,249,509,246,247,,,,",",166,167,,163,145,146,147,154,151,153,,,148,149,-270,,,168,169,155,156","-270,,,,,293,-270,,,,,,,160,159,,144,165,162,161,170,157,158,152,150","142,164,143,-270,-270,171,,,,,,,,,,,,,-270,,,-270,,,,,-270,77,78,24","11,65,,-270,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110","112,113,,,21,,,,,,10,51,9,12,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,251,,,,,,,,,,,,,,,,261,262,,43,,,36,,,66,67,,","68,,38,248,,254,50,250,249,,246,247,,,,22,,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76","33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,",",,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,","75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51",",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,",",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87","90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45",",75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51",",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,",",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,-429,,44,45,,,,-429,-429","-429,,,-429,-429,-429,,-429,,,,,,,,-429,-429,-429,-429,,,,,,,,,-429","-429,,-429,-429,-429,-429,-429,,,,,,,,,,,,,,,,,,,,,,,-429,-429,-429","-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,-429,,,-429,-429,-429",",,-429,,293,-429,,,-429,-429,,-429,,-429,,-429,,-429,-429,,-429,-429","-429,-429,-429,-321,-429,-429,-429,,,,-321,-321,-321,,,-321,-321,-321",",-321,-429,,,-429,-429,,-429,-321,-429,-321,-321,,,,,-429,,,,-321,-321",",-321,-321,-321,-321,-321,,,,,,,,,,,,,,,,,,,,,,,-321,-321,-321,-321","-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,,,-321,-321,-321,",",-321,,302,-321,,,-321,-321,,-321,,-321,,-321,,-321,-321,,-321,-321","-321,-321,-321,,-321,,-321,,,,,,,,,,,,,,-321,,,-321,-321,,-321,,-321","77,78,24,,65,,-321,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30","111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314","109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,",",68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88","98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80",",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107","106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240",",,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93","95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76","33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,",",,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,","75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51",",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,",",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,","75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,",",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46",",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44","45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241",",,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48","46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,",",99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71","72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113",",,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102","47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239",",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104","71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112","113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,",",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110","112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50",",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103","104,-306,,44,45,,,,-306,-306,-306,,,-306,-306,-306,,-306,,,,,,,,-306",",-306,-306,-306,,,,111,110,112,113,-306,-306,,-306,-306,-306,-306,-306",",,,,115,114,116,,,,,,,,,,,101,102,,,345,-306,-306,-306,-306,-306,-306","-306,-306,-306,-306,-306,-306,-306,-306,,,-306,-306,-306,,,-306,,,-306",",,-306,-306,,-306,,-306,,-306,,-306,-306,,-306,-306,-306,-306,-306,","-306,,-306,,99,87,90,91,,92,94,93,95,,,,-306,88,98,-306,-306,-306,-306",",-306,82,-306,89,103,104,,-306,77,78,24,11,65,,,,71,72,,,,75,,73,74","76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,,12,115","114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,",",,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,99,87,90,91,","92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,","73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51",",,115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,",",,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,,,50,,,315,,,,,,239,",",,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104","71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112","113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50",",,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82","65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111","110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,",",50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82","65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111","110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,",",50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82","65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111","110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,",",50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,123,,,,,122,82",",89,103,104,,,44,45,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79","80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10,51,9,12,115,114,116,105","64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,43",",,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95",",,,,88,98,,,,,,415,82,,89,103,104,,,44,45,77,78,24,,65,,,,71,72,,,,75",",73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,","115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,",",,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,","75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51",",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,",",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,","75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51",",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,",",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,","75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,",",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46",",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,77,78,24","11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112","113,,,21,,,,,,10,51,,12,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50",",,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65","89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110","112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50",",,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,229,,,77,78,24,82","65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344","111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109","117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68",",,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78","24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81","336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106","108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66","67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,",",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80",",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64","107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,","240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,",",,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342","79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105","64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234",",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95",",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341","342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,",",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76","341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114","116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,",",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92","94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73","74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,",",115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,",",,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,","75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,",",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46",",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44","45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241",",,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48","46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,",",99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71","72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113",",,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102","47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239",",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104","71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112","113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,",",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110","112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50",",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65","89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111","110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,",",50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82","65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344","111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109","117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68",",,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78","24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81","336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106","108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66","67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,",",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80",",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64","107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,","240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,",",,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342","79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105","64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234",",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95",",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341","342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,",",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76","341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114","116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,",",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92","94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73","74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,",",115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,",",,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,","75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,",",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46",",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44","45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241",",,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48","46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,",",99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71","72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113",",,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102","47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239",",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104","71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112","113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,",",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110","112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50",",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65","89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111","110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109","117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68",",,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,",",77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,",",,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107","106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240",",,66,67,,,68,,739,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,",",88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34","79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115,114,116,105","64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234",",,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,",",,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341","342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,",",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76","33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,",",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76","341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114","116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,",",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92","94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73","74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115","114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,",",,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,","99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71","72,44,512,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,","241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109,117,118,,101,102","47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315",",,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89","103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110","112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109,117","118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311",",309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,229",",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80",",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64","107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,","240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,",",,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342","79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105","64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234",",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95",",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341","342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,",",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76","341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114","116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,",",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92","94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73","74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,",",115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,",",,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,77,78,24,11,65",",,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,",",21,,,,,,10,51,,12,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,",",,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110","112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50",",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65","89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111","110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,",",50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82","65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344","111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109","117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68",",,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78","24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81","336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106","108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66","67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,",",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,",",,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107","106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240",",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88","98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79","80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105","64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234",",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95",",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33","34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115,114,116,105","64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234",",,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,",",,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341","342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,",",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76","341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114","116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,",",,,,,234,,,240,558,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,","92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,","73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51",",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,",",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87","90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45",",75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,",",,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48","46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,431,,,,50,,,,,,,,,239",",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104","71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112","113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,",",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110","112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50",",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65","89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110","112,113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50",",,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65","89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111","110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109","117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68",",739,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98",",,,77,78,24,82,65,89,103,104,71,72,44,512,,75,,73,74,76,33,34,79,80",",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107","106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240",",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88","98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80",",,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115,114,116,105,64,107","106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240",",,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88","98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80",",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107","106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240",",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88","98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80",",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107","106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240",",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88","98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80",",,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107","106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240",",,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88","98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79","80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105","64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,","234,,,240,,,66,67,,,68,,,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92","94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73","74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,",",115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,",",,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,739,,309,,50,,,315,,,,,,239",",,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104","71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112","113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,",",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,",",44,45,77,78,24,11,65,,,,71,72,,,,75,,73,74,76,33,34,79,80,,,,,,81,31","30,111,110,112,113,,,21,,,,,,10,51,,12,115,114,116,105,64,107,106,108",",109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,","68,,38,,,,50,,,,,,,,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77","78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81","31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108","314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66","67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,",",,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34","79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105","64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234",",,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95",",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341","342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,",",234,,,240,,,66,67,,,68,,841,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94","93,95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,77,78,24,11,65,,,,71,72",",,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,","10,51,,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48","46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,","99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72","44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,","241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102","47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239",",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104","71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113",",,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50",",,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82","65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111","110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314,109","117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68",",311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98",",,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80",",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64","107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,","240,,,66,67,,,68,,311,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95",",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341","342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,",",,,,234,,,240,,,66,67,,,68,,,,,,50,,,315,,,,,,239,,,,,99,312,90,91,","92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,","73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51",",,115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,",",,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,739,,,,50,,,315,,,,,,239,",",,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,-270,,44","45,,,,-270,-270,-270,,,-270,-270,-270,,-270,,,,,,,,-270,-270,-270,-270",",,,,,,,,-270,-270,,-270,-270,-270,-270,-270,,,,,,,,,,,,,,,,,,,,,,,-270","-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,,,-270","-270,-270,,,-270,,293,-270,,,-270,-270,,-270,,-270,,-270,,-270,-270",",-270,-270,-270,-270,-270,,-270,-270,-270,,,,,,,,,,,,,,-270,,,-270,-270",",-270,,-270,77,78,24,,65,,-270,,71,72,,,,75,,73,74,76,341,342,79,80",",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64","107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,","240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,",",,88,98,,,,,,,82,,89,103,104,-705,,44,45,,,,-705,-705,-705,,,-705,-705","-705,,-705,,,,,,,,-705,-705,-705,-705,-705,,,,,,,,-705,-705,,-705,-705","-705,-705,-705,,,,,,,,,,,,,,,,,,,,,,,-705,-705,-705,-705,-705,-705,-705","-705,-705,-705,-705,-705,-705,-705,,,-705,-705,-705,,,-705,,,-705,,","-705,-705,,-705,,-705,,-705,,-705,-705,,-705,-705,-705,-705,-705,,-705","-705,-705,,,,,,,,,,,,,,-705,,,-705,-705,-705,-705,,-705,-706,-705,,",",,-705,-706,-706,-706,,,-706,-706,-706,,-706,,,,,,,,-706,-706,-706,-706","-706,,,,,,,,-706,-706,,-706,-706,-706,-706,-706,,,,,,,,,,,,,,,,,,,,",",,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706,-706",",,-706,-706,-706,,,-706,,,-706,,,-706,-706,,-706,,-706,,-706,,-706,-706",",-706,-706,-706,-706,-706,,-706,-706,-706,,,,,,,,,,,,,,-706,,,-706,-706","-706,-706,,-706,,-706,,77,78,24,-706,65,,,,71,72,,,,75,,73,74,76,341","342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116","105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,",",234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93","95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76","341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114","116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,",",,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92","94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73","74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,,51,,,115","114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,",",,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99,87,90,91,","92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,","73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,","115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48,46,,,",",,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,,,,239",",,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104","71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112","113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,",",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110","112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118",",101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50",",,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65","89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111","110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,",",50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82","65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344","111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109","117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68",",,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78","24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81","336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106","108,,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66","67,,,68,,,,,,50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,",",,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,33,34,79,80,,",",,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107","106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240",",,66,67,,,68,,311,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93","95,,,,,88,98,,,,,,,82,,89,103,104,,,44,45,77,78,24,11,65,,,,71,72,,",",75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,,,10","51,322,12,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48","46,,,,,,,,,,,,,,,,,,,,43,,,36,,,66,67,,,68,,38,,,,50,,,,,,,,,22,,,,","99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,415,82,,89,103,104,,,44,45,77","78,24,,65,,,,71,72,,,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111","110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117","118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,",",50,,,,,,,,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82","65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344","111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,314","109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,",",68,,,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98",",,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73,74,76,341,342,79,80",",,,,,81,336,344,111,110,112,113,,,241,,,,,,,51,,,115,114,116,105,64","107,106,108,314,109,117,118,,101,102,47,48,46,,,,,,,,,,,,,,,,,,,,234",",,240,,,66,67,,,68,,739,,309,,50,,,315,,,,,,239,,,,,99,312,90,91,,92","94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,,75,,73","74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51,,,115","114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,,,,,,,",",,,,,,,,,234,,,240,,,66,67,,,68,,431,,,,50,,,,,,,,,239,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44,45,","75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,,,,,51",",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46,,,,",",,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,431,,,,50,,,,,,,,,239,,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,",",,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46",",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,21,,,,",",,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46",",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,22,,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,",",,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,47,48,46",",,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,,,,,239,,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,44","45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112,113,,,241,,,",",,,51,,,115,114,116,105,64,107,106,108,314,109,117,118,,101,102,47,48","46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,311,,309,,50,,,315,,,",",,239,,,,,99,312,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112","113,,,241,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,",",,,239,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,44,45,,75,,73,74,76,33,34,79,80,,,,,,81,31,30,111,110,112","113,,,21,,,,,,,51,,,115,114,116,105,64,107,106,108,,109,117,118,,101","102,47,48,46,,,,,,,,,,,,,,,,,,,,234,,,240,,,66,67,,,68,,,,,,50,,,,,",",,,22,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,44,45,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110","112,113,,,241,,,,,,,337,,,115,114,116,105,64,107,106,108,,109,117,118",",101,102,,,345,,,,,,,,,,,,,,,,,,,,1102,,,240,,,66,67,,,68,,,,,,,,,,",",,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103","104,71,72,,,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112","113,,,241,,,,,,,337,,,115,114,116,105,64,107,106,108,,109,117,118,,101","102,,,345,,,,,,,,,,,,,,,,,,,,390,,,36,,,66,67,,,68,,38,,,,,,,,,,,,,",",,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104","71,72,,,,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113",",,241,,,,,,,337,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102",",,345,,,,,,,,,,,,,,,,,,,,333,,,329,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99","87,90,91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,",",,75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,",",,,,,337,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,,,345",",,,,,,,,,,,,,,,,,,,333,,,329,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90","91,,92,94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,","73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,337",",,115,114,116,105,64,107,106,108,,109,117,118,,101,102,,,345,,,,,,,",",,,,,,,,,,,,333,,,329,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92","94,93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76","341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115","114,116,105,64,107,106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,",",,,,,,333,,,329,,,66,67,,,68,,328,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94","93,95,,,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341","342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114","116,105,64,107,106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,",",,333,,,329,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95",",,,,88,98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342","79,80,,,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116","105,64,107,106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,1102",",,240,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88","98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342,79,80",",,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,395,64","107,106,396,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,402,,,397,,","240,,,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88","98,,,,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342,79,80",",,,,,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,105,64","107,106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,333,,,329",",,66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,",",,77,78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342,79,80,,,,",",81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,395,64,107","106,396,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,397,,,240,,,66","67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,77","78,24,82,65,89,103,104,71,72,,,,75,,73,74,76,341,342,79,80,,,,,,81,336","344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,105,64,107,106,108",",109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,333,,,240,,,66,67,,,68",",,579,,576,575,574,584,577,,,,,,,,,587,,99,87,90,91,,92,94,93,95,,,",",88,98,,,,347,,582,82,,89,103,104,77,78,24,,65,595,594,,71,72,588,,","75,,73,74,76,341,342,79,80,,,,,,81,336,344,111,110,112,113,,,241,,,",",,,337,,,115,114,116,105,64,107,106,108,,109,117,118,,101,102,,,345",",,,,,,,,,,,,,,,,,,,333,,,240,,,66,67,,,68,,,579,,576,575,574,584,577",",,,,,,,,587,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,540,,582,82,,89,103","104,77,78,24,,65,595,594,,71,72,588,,,75,,73,74,76,341,342,79,80,,,",",,81,336,344,111,110,112,113,,,241,,,,,,,337,,,115,114,116,105,64,107","106,108,,109,117,118,,101,102,,,345,,,,,,,,,,,,,,,,,,,,1108,,,240,,","66,67,,,68,,,,,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,",",,,82,,89,103,104,182,193,183,206,179,199,189,188,209,210,204,187,186","181,207,211,212,191,180,194,198,200,192,185,,,,201,208,203,202,195,205","190,178,197,196,,,,,,177,184,175,176,172,173,174,135,137,,,136,,,,,",",,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156",",,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143",",,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199,189,188,209,210,204","187,186,181,207,211,212,191,180,194,198,200,192,185,,,,201,208,203,202","195,205,190,178,197,196,,,,,,177,184,175,176,172,173,174,135,137,134",",136,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169","155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142","164,143,,,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199,189,188,209","210,204,187,186,181,207,211,212,191,180,194,198,200,192,185,,,,201,208","203,202,195,205,190,178,197,196,,,,,,177,184,175,176,172,173,174,135","137,,,136,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168","169,155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150","142,164,143,,,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199,189,188","209,210,204,187,186,181,207,211,212,191,180,194,198,200,192,185,,,,201","208,203,202,195,205,190,178,197,196,,,,,,177,184,175,176,172,173,174","135,137,,,136,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149",",,,168,169,155,156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158","152,150,142,164,143,,,171,99,,,,,,,,,,,,,,98,182,193,183,206,179,199","189,188,209,210,204,187,186,181,207,211,212,191,180,194,198,200,192","185,,,,201,208,203,281,280,282,279,178,197,196,,,,,,177,184,175,176","276,277,278,274,137,107,106,275,,109,,,,,,166,167,,163,145,146,147,154","151,153,,,148,149,,,,168,169,155,156,,,,,,286,,,,,,,,160,159,,144,165","162,161,170,157,158,152,150,142,164,143,,,171,111,110,112,113,,,,,,",",,,,,,115,114,116,716,,,579,719,576,575,574,584,577,101,102,,,345,,",",587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,,,,592,591,595,594,,",",588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,","82,,89,103,104,,,704,705,,115,114,116,716,,,579,719,576,575,574,584","577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,",",,592,591,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98","111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716,,,579,719","576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,","582,698,,,699,,,,,,,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95",",,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716",",,579,719,576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718",",,700,,,582,698,,,699,,,,,592,591,595,594,,,,588,,,,717,,,,99,87,90","91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705",",115,114,116,716,,,579,719,576,575,574,584,577,101,102,,,345,,,,587",",,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,,,,,,595,594,,,,588,,,,717",",,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104",",,704,705,,115,114,116,716,,,579,719,576,575,574,584,577,101,102,,,345",",,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,882,,,,,595,594,,,","588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112,113,,,82",",89,103,104,,,704,705,,115,114,116,716,,,579,719,576,575,574,584,577","101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,,,,,","595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82",",89,103,104,,,704,705,182,193,183,206,179,199,189,188,209,210,204,187","186,181,207,211,212,191,180,194,198,200,192,185,,,,201,208,203,202,195","205,190,178,197,196,,,,,,177,184,175,176,172,173,174,135,137,,,136,",",,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155","156,,,,,,,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164","143,,,171,111,110,112,113,,,579,,576,575,574,584,577,,,,115,114,116","716,,587,,719,983,,,,,101,102,,,345,587,,,,,,,,,582,,,,,,,,,,718,595","594,700,,,588,698,,,699,,882,,,,,,,588,,,,,,,717,,,,99,984,90,91,,92","94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114","116,716,,,579,719,576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,",",,,,,,718,,,700,,,582,698,,,699,,882,,,592,591,595,594,,,,588,,,,717",",,,99,87,90,91,,92,94,93,95,,,,,88,98,229,111,110,112,113,,82,,89,103","104,,,704,705,,,115,114,116,716,,,579,719,576,575,574,584,577,101,102",",,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699,,,,,592,591,595","594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88,98,111,110,112","113,,,82,,89,103,104,,,704,705,,115,114,116,716,,,579,719,576,575,574","584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,,582,698,,,699",",,,,592,591,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95,,,,,88","98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716,,,579","719,576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700",",,582,698,,,699,,996,,,,,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94","93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114","116,716,,,,719,983,,,,,101,102,,,345,587,,,,,,,,,,,,,,,,,,,718,,,700",",,,698,,,699,,882,,,,,,,588,,,,,,,717,,,,99,984,90,91,,92,94,93,95,",",,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716",",,,719,983,,,,,101,102,,,345,587,,,,,,,,,,,,,,,,,,,718,,,700,,,,698",",,699,,882,,,,,,,588,,,,,,,717,,,,99,984,90,91,,92,94,93,95,,,,,88,98","111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716,,,579,719","576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718,,,700,,","582,698,,,699,,,,,,,595,594,,,,588,,,,717,,,,99,87,90,91,,92,94,93,95",",,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114,116,716",",,579,719,576,575,574,584,577,101,102,,,345,,,,587,,,,,,,,,,,,,,,,718",",,700,,,582,698,,,699,,,,,,,595,594,,,,588,,,,717,,,,99,87,90,91,,92","94,93,95,,,,,88,98,111,110,112,113,,,82,,89,103,104,,,704,705,,115,114","116,716,,,,719,,,,,,101,102,,,345,,,,,,,,111,110,112,113,,,,,,,,,718",",,700,115,114,116,698,,,699,,882,,,,,101,102,,,345,,,,,717,,,,99,87","90,91,,92,94,93,95,,,,,88,98,,,,,,,82,,89,103,104,,,704,705,579,,576","575,574,584,577,,,,,99,87,90,91,587,92,94,93,95,,,,,88,98,111,110,112","113,,,82,,89,103,104,582,638,,,,115,114,116,,592,591,595,594,,,,588",",101,102,,,345,111,110,112,113,,,,,,,,,,,,,115,114,116,,,,,,,,,,,101","102,,,345,,,,,,,,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,,,,,,,82",",89,103,104,,,,,,,,,99,87,90,91,,92,94,93,95,,,,,88,98,843,457,,,844",",82,,89,103,104,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168","169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152","150,142,164,143,811,457,171,,812,,,,,,,,166,167,,163,145,146,147,154","151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165","162,161,170,157,158,152,150,142,164,143,453,457,171,,454,,,,,,,,166","167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293",",,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143,460","464,171,,459,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,",",,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158","152,150,142,164,143,813,464,171,,814,,,,,,,,166,167,,163,145,146,147","154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144","165,162,161,170,157,158,152,150,142,164,143,752,464,171,,753,,,,,,,","166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,",",,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143","687,457,171,,688,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149",",,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157","158,152,150,142,164,143,1187,464,171,,1186,,,,,,,,166,167,,163,145,146","147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159",",144,165,162,161,170,157,158,152,150,142,164,143,816,464,171,,817,,",",,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156",",,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164","143,687,457,171,,688,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148","149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170","157,158,152,150,142,164,143,689,464,171,,690,,,,,,,,166,167,,163,145","146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160","159,,144,165,162,161,170,157,158,152,150,142,164,143,749,457,171,,750",",,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169,155","156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150,142","164,143,508,457,171,,509,,,,,,,,166,167,,163,145,146,147,154,151,153",",,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161","170,157,158,152,150,142,164,143,1190,457,171,,1191,,,,,,,,166,167,,163","145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,",",160,159,,144,165,162,161,170,157,158,152,150,142,164,143,689,464,171",",690,,,,,,,,166,167,,163,145,146,147,154,151,153,,,148,149,,,,168,169","155,156,,,,,,293,,,,,,,,160,159,,144,165,162,161,170,157,158,152,150","142,164,143,1192,464,171,,1193,,,,,,,,166,167,,163,145,146,147,154,151","153,,,148,149,,,,168,169,155,156,,,,,,293,,,,,,,,160,159,,144,165,162","161,170,157,158,152,150,142,164,143,846,464,171,,845,,,,,,,,166,167",",163,145,146,147,154,151,153,,,148,149,,,,168,169,155,156,,,,,,293,",",,,,,,160,159,,144,165,162,161,170,157,158,152,150,142,164,143,,579","171,576,575,574,584,577,,579,,576,575,574,584,577,587,,,,,,,,587,,,",",,,,,,,,,,582,,,,,,,,582,592,591,595,594,,,,588,592,591,595,594,,,,588"], +lc=dc=s("::","Array").$new(28007,i),pc=0,l(uc,"each",[],((g=function($){var n,a=null==g.$$s?this:g.$$s;return null==$&&($=i),l($.$split(",",-1),"each",[],((n=function($){null==n.$$s||n.$$s;var a=i;return null==$&&($=i),u($["$empty?"]())||(a=[pc,$.$to_i()],l(dc,"[]=",e.to_a(a)),a[t(a.length,1)]),pc=r(pc,1)}).$$s=a,n.$$arity=1,n))}).$$s=cc,g.$$arity=1,g)), +uc=["846,844,1049,996,1053,824,391,846,846,846,759,759,616,846,846,282,846","46,46,874,21,1106,282,813,846,846,412,1099,411,699,688,625,814,1102","953,985,846,846,809,846,846,846,846,846,1105,1155,699,380,1029,1196","1053,1193,134,985,619,812,1003,134,134,1196,844,21,619,811,388,874,846","846,846,846,846,846,846,846,846,846,846,846,846,846,282,387,846,846","846,996,846,846,813,688,846,1109,412,846,411,46,46,814,846,1003,846","438,846,846,759,846,846,846,846,846,108,846,846,846,824,391,616,108","108,108,1049,616,108,108,108,1049,108,846,1193,749,846,846,813,846,108","846,108,108,108,1106,625,814,846,953,1106,846,108,108,1051,108,108,108","108,108,1192,1203,809,1190,1191,809,438,809,1105,1155,812,380,1029,1105","1155,1193,380,1029,811,388,1193,51,108,108,108,108,108,108,108,108,108","108,108,108,108,108,387,379,108,108,108,749,108,108,727,967,108,43,318","108,108,235,108,318,108,1109,108,869,108,108,1109,108,108,108,108,108","845,108,1108,108,69,635,635,845,845,845,1058,1192,1058,845,845,749,845","108,749,1111,108,108,108,108,845,108,870,108,469,469,749,869,108,797","797,108,845,845,967,845,845,845,845,845,235,589,1051,505,505,1112,752","1051,1192,1203,52,1190,1191,1192,1203,29,1190,1191,870,589,1113,727","845,845,845,845,845,845,845,845,845,845,845,845,845,845,338,1114,845","845,845,330,845,845,40,379,845,69,330,845,379,911,345,345,845,635,845","330,845,845,635,845,845,845,845,845,52,845,689,845,25,752,752,687,843","689,689,689,469,29,689,689,689,845,689,597,845,845,1126,845,597,845","689,689,689,689,689,505,845,1127,338,845,29,750,689,689,330,689,689","689,689,689,752,331,1136,752,744,911,650,281,331,1073,1138,338,1141","1085,281,752,744,331,345,345,687,843,689,689,689,689,689,689,689,689","689,689,689,689,689,689,53,349,689,689,689,652,689,689,1142,911,689","397,911,689,689,397,689,1143,689,475,689,750,689,689,911,689,689,689","689,689,331,689,689,689,650,650,281,1073,1073,1073,528,1085,1085,406","650,1144,407,689,349,410,689,689,689,689,1073,689,53,689,1085,690,349","750,689,233,750,689,690,690,690,652,652,690,690,690,332,690,750,1146","475,652,873,332,280,690,873,690,690,690,697,280,332,866,396,697,1151","690,690,697,690,690,690,690,690,17,528,528,528,406,406,406,407,407,407","410,410,410,672,232,384,5,1161,528,233,384,5,690,690,690,690,690,690","690,690,690,690,690,690,690,690,332,41,690,690,690,396,690,690,280,1167","690,866,396,690,690,409,690,396,690,1172,690,396,690,690,672,690,690","690,690,690,957,690,15,690,718,957,672,232,718,904,396,904,904,904,904","904,454,690,41,279,690,690,690,690,904,690,279,690,1186,460,41,453,690","1052,1052,690,460,460,460,1187,396,375,460,460,375,460,904,16,16,409","409,409,278,460,460,904,904,904,904,278,1162,1162,904,454,85,460,460","1189,460,460,460,460,460,14,42,454,85,363,453,363,363,363,363,363,279","413,85,12,904,9,453,1128,363,1194,1128,460,460,460,460,460,460,460,460","460,460,460,460,460,460,1199,19,460,460,460,363,460,460,278,1200,460","408,42,460,363,363,363,363,460,1201,460,363,460,460,42,460,460,460,460","460,459,460,460,460,701,701,1202,459,459,459,413,413,413,459,459,277","459,460,19,3,460,460,277,460,459,460,276,275,771,771,19,363,460,276","275,460,459,459,1208,459,459,459,459,459,1214,408,408,408,765,389,765","765,765,765,765,274,389,368,368,368,368,368,274,765,513,389,459,459","459,459,459,459,459,459,459,459,459,459,459,459,277,514,459,459,459","765,459,459,378,378,459,276,275,459,765,765,765,765,459,515,459,765","459,459,519,459,459,459,459,459,105,459,796,459,389,796,488,105,105","105,274,487,105,105,105,273,105,459,486,485,459,459,273,459,105,459","105,105,105,535,372,765,459,372,536,459,105,105,539,105,105,105,105","105,541,545,546,18,371,334,27,371,545,550,18,560,334,27,561,564,565","545,566,18,567,334,105,105,105,105,105,105,105,105,105,105,105,105,105","105,273,568,105,105,105,570,105,105,1148,484,105,571,581,105,105,1148","105,471,105,593,105,596,105,105,1148,105,105,105,105,105,545,105,18","105,334,27,533,533,533,533,533,484,753,598,461,484,484,105,600,753,105","105,105,105,753,105,437,105,753,601,602,603,105,437,452,105,815,815","815,815,815,815,437,1148,613,815,815,451,449,617,815,395,815,815,815","815,815,815,815,321,321,321,321,321,815,815,815,815,815,815,815,618","582,815,582,582,582,753,582,815,815,815,815,815,815,815,815,815,815","815,815,437,815,815,815,628,815,815,815,815,815,817,628,395,620,350","49,49,817,582,395,628,350,817,439,395,435,817,582,395,815,350,432,815","430,647,815,815,1107,655,815,657,815,429,427,1107,815,664,395,421,483","673,49,49,1107,815,678,401,683,691,815,815,815,815,692,815,815,815,815","1071,628,694,392,815,815,390,817,717,395,1071,350,815,483,815,815,815","483,483,815,815,820,820,820,820,820,820,720,721,386,820,820,724,726","1107,820,816,820,820,820,820,820,820,820,385,732,733,734,1071,820,820","820,820,820,820,820,736,738,820,376,1071,746,748,374,820,820,820,820","820,820,820,820,820,820,820,820,373,820,820,820,1101,820,820,820,820","820,399,1101,816,751,54,754,755,399,758,816,1101,54,369,761,816,365","399,361,816,820,54,780,820,781,783,820,820,231,359,820,799,820,805,806","231,820,782,816,782,782,782,355,782,231,820,810,353,346,819,820,820","820,820,344,820,820,820,820,883,1101,340,823,820,820,339,399,825,816","883,54,820,337,820,820,820,840,336,820,820,831,831,831,831,831,831,842","333,851,831,831,327,326,231,831,867,831,831,831,831,831,831,831,23,325","323,322,883,831,831,831,831,831,831,831,875,876,831,880,883,881,882","885,831,831,831,831,831,831,831,831,831,831,831,831,310,831,831,831","307,831,831,831,831,831,23,23,23,23,23,23,23,23,23,23,23,306,23,23,897","900,23,23,901,831,1,23,831,768,910,831,831,292,915,831,918,831,23,768","23,831,23,23,919,23,23,23,23,23,831,23,922,924,925,831,831,831,831,927","831,831,831,831,929,931,932,934,831,831,937,23,768,768,944,947,831,768","831,831,831,954,956,831,831,1007,1007,1007,1007,1007,1007,963,643,643","1007,1007,643,643,643,1007,964,1007,1007,1007,1007,1007,1007,1007,8","8,8,8,8,1007,1007,1007,1007,1007,1007,1007,965,966,1007,976,977,978","979,442,1007,1007,1007,1007,1007,1007,1007,1007,1007,1007,1007,1007","241,1007,1007,1007,988,1007,1007,1007,1007,1007,442,442,442,442,442","442,442,442,442,442,442,989,442,442,990,994,442,442,995,1007,237,236","1007,1000,1010,1007,1007,1011,1013,1007,1014,1007,442,1015,442,1007","442,442,1017,442,442,442,442,442,1007,442,1018,1019,234,1007,1007,1007","1007,1045,1007,1007,1007,1007,1046,1062,213,1072,1007,1007,1080,442","1082,442,,,1007,,1007,1007,1007,,,1007,1007,612,612,612,612,612,612",",,,612,612,,,,612,,612,612,612,612,612,612,612,,,,,,612,612,612,612","612,612,612,,,612,,,,,791,612,612,612,612,612,612,612,612,612,612,612","612,,612,612,612,,612,612,612,612,612,791,791,791,791,791,791,791,791","791,791,791,,791,791,,,791,791,,612,,,612,1088,,612,612,,,612,,612,791","1088,791,612,791,791,,791,791,791,791,791,612,791,,,,612,612,612,612",",612,612,612,612,,,,,612,612,,791,1088,1088,,,612,1088,612,612,612,",",612,612,615,615,615,615,615,615,,,,615,615,,,,615,,615,615,615,615","615,615,615,,,,,,615,615,615,615,615,615,615,,,615,,,,,448,615,615,615","615,615,615,615,615,615,615,615,615,,615,615,615,,615,615,615,615,615","448,448,448,448,448,448,448,448,448,448,448,,448,448,,,448,448,,615",",,615,,,615,615,,,615,,615,448,,448,615,448,448,,448,448,448,448,448","615,448,,,,615,615,615,615,,615,615,615,615,,,,,615,615,,448,,,,,615",",615,615,615,,,615,615,1026,1026,1026,1026,1026,1026,,,,1026,1026,,",",1026,,1026,1026,1026,1026,1026,1026,1026,,,,,,1026,1026,1026,1026,1026","1026,1026,,,1026,,,,,760,1026,1026,1026,1026,1026,1026,1026,1026,1026","1026,1026,1026,,1026,1026,1026,,1026,1026,1026,1026,1026,760,760,760","760,760,760,760,760,760,760,760,,760,760,,,760,760,,1026,,,1026,,,1026","1026,,,1026,,1026,760,,760,1026,760,760,,760,760,760,760,760,1026,760",",,,1026,1026,1026,1026,,1026,1026,1026,1026,,,,,1026,1026,,760,,,,,1026",",1026,1026,1026,,,1026,1026,215,215,215,215,215,215,,,,215,215,,,,215",",215,215,215,215,215,215,215,,,,,,215,215,215,215,215,215,215,,1171","215,1171,1171,1171,,1171,215,215,215,215,215,215,215,215,215,215,215","215,,215,215,215,,215,215,215,215,215,502,502,502,502,502,502,502,502","502,502,502,,502,502,,,502,502,,215,,,215,,,215,215,,,215,,215,502,","502,215,502,502,,502,502,502,502,502,215,502,,,,215,215,215,215,,215","215,215,215,,,,,215,215,502,502,,,,,215,,215,215,215,,,215,215,1063","1063,1063,1063,1063,1063,,,,1063,1063,,,,1063,,1063,1063,1063,1063,1063","1063,1063,,,,,,1063,1063,1063,1063,1063,1063,1063,,1065,1063,1065,1065","1065,,1065,1063,1063,1063,1063,1063,1063,1063,1063,1063,1063,1063,1063",",1063,1063,1063,,1063,1063,1063,1063,1063,848,848,848,848,848,848,848","848,848,848,848,,848,848,,,848,848,,1063,,,1063,,,1063,1063,,,1063,","1063,848,,848,1063,848,848,,848,848,848,848,848,1063,848,,,,1063,1063","1063,1063,,1063,1063,1063,1063,,,,,1063,1063,,848,,,,,1063,,1063,1063","1063,,,1063,1063,1064,1064,1064,1064,1064,1064,,,,1064,1064,,,,1064",",1064,1064,1064,1064,1064,1064,1064,,,,,,1064,1064,1064,1064,1064,1064","1064,,,1064,,,,,,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064,1064","1064,,1064,1064,1064,,1064,1064,1064,1064,1064,304,304,304,304,304,304","304,304,304,304,304,,304,304,,,304,304,,1064,,,1064,,,1064,1064,,,1064",",1064,304,,304,1064,304,304,,304,304,304,304,304,1064,304,,,,1064,1064","1064,1064,,1064,1064,1064,1064,,,,,1064,1064,,304,,,,,1064,,1064,1064","1064,,,1064,1064,636,636,636,636,636,636,,,,636,636,,,,636,,636,636","636,636,636,636,636,,,,,,636,636,636,636,636,636,636,,,636,,,,,,636","636,636,636,636,636,636,636,636,636,636,636,,636,636,636,,636,636,636","636,636,1047,1047,1047,1047,1047,1047,1047,1047,1047,1047,1047,,1047","1047,,,1047,1047,,636,,,636,,,636,636,,,636,,636,1047,,1047,636,1047","1047,,1047,1047,1047,1047,1047,636,1047,,,,636,636,636,636,,636,636","636,636,,,,,636,636,,1047,,,,,636,,636,636,636,,,636,636,383,383,383","383,383,383,,,,383,383,,,,383,,383,383,383,383,383,383,383,,,,,,383","383,383,383,383,383,383,,,383,,,,,,383,383,383,383,383,383,383,383,383","383,383,383,,383,383,383,,383,383,383,383,383,557,557,557,557,557,557","557,557,557,557,557,,557,557,,,557,557,,383,,,383,,,383,383,,,383,,383","557,,557,383,557,557,,557,557,557,557,557,383,557,,,,383,383,383,383",",383,383,383,383,,,,,383,383,,557,,,,,383,,383,383,383,,,383,383,36","36,36,36,36,36,,,,36,36,,,,36,,36,36,36,36,36,36,36,,,,,,36,36,36,36","36,36,36,,,36,,,,,,36,36,36,36,36,36,36,36,36,36,36,36,,36,36,36,,36","36,36,36,36,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,1006,","1006,1006,,,1006,1006,,36,,,36,,,36,36,,,36,,36,1006,,1006,36,1006,1006",",1006,1006,1006,1006,1006,36,1006,,,,36,36,36,36,,36,36,36,36,,,,,36","36,,1006,,,,,36,,36,36,36,,,36,36,132,132,132,132,132,132,,,,132,132",",,,132,,132,132,132,132,132,132,132,,,,,,132,132,132,132,132,132,132",",,132,,,,,,132,132,132,132,132,132,132,132,132,132,132,132,,132,132","132,,132,132,132,132,132,1024,1024,1024,1024,1024,1024,1024,1024,1024","1024,1024,,1024,1024,,,1024,1024,,132,,,132,,,132,132,,,132,,132,1024",",1024,132,1024,1024,,1024,1024,1024,1024,1024,132,1024,,,,132,132,132","132,,132,132,132,132,,,,,132,132,,1024,,,,,132,,132,132,132,,,132,132","329,329,329,329,329,329,,,,329,329,,,,329,,329,329,329,329,329,329,329",",,,,,329,329,329,329,329,329,329,,938,329,938,938,938,,938,329,329,329","329,329,329,329,329,329,329,329,329,,329,329,329,,329,329,329,329,329","778,,778,778,778,,778,,938,,939,,939,939,939,,939,938,,329,,,329,,,329","329,,499,329,,329,,,,329,,778,,1116,,1116,1116,1116,329,1116,778,939",",329,329,329,329,,329,329,329,329,,,499,,329,329,499,499,,499,499,,329",",329,329,329,,1116,329,329,382,382,382,382,382,382,,,,382,382,,,,382",",382,382,382,382,382,382,382,,,,,,382,382,382,382,382,382,382,,,382",",,498,,,382,382,382,382,382,382,382,382,382,382,382,382,,382,382,382",",382,382,382,382,382,500,500,500,500,500,500,500,498,,500,500,498,498",",498,498,500,500,,382,,,382,,,382,382,,,382,,382,500,,500,382,500,500",",500,500,500,500,500,382,500,,,,382,382,382,382,,382,382,382,382,,,",",382,382,,1115,,1115,1115,1115,382,1115,382,382,382,,,382,382,1117,1117","1117,1117,1117,1117,,,,1117,1117,,,,1117,,1117,1117,1117,1117,1117,1117","1117,1115,,,,,1117,1117,1117,1117,1117,1117,1117,,,1117,,,,,,1117,1117","1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,,1117,1117,1117,,1117","1117,1117,1117,1117,496,496,496,496,496,496,496,,,496,496,,,,,,496,496",",1117,,,1117,,,1117,1117,,,1117,,1117,496,,496,1117,496,496,,496,496","496,496,496,1117,496,,,,1117,1117,1117,1117,,1117,1117,1117,1117,,,",",1117,1117,,,,,,,1117,,1117,1117,1117,,,1117,1117,324,324,324,324,324","324,,,,324,324,,,,324,,324,324,324,324,324,324,324,,,,,,324,324,324","324,324,324,324,,,324,,,,,,324,324,324,324,324,324,324,324,324,324,324","324,,324,324,324,,324,324,324,324,324,497,497,497,497,497,497,497,,","497,497,,,,,,497,497,,324,,,324,,,324,324,,,324,,324,497,,497,324,497","497,,497,497,497,497,497,324,497,,,,324,324,324,324,,324,324,324,324",",,,,324,324,,,,,,,324,,324,324,324,,,324,324,905,905,905,905,905,905",",,,905,905,,,,905,,905,905,905,905,905,905,905,,,,,,905,905,905,905","905,905,905,,,905,,,,,,905,905,905,905,905,905,905,905,905,905,905,905",",905,905,905,,905,905,905,905,905,495,495,495,495,495,495,495,,,495","495,,,,,,495,495,,905,,,905,,,905,905,,,905,,905,495,,495,905,495,495",",495,495,495,495,495,905,495,,,,905,905,905,905,,905,905,905,905,,,",",905,905,,,,,,,905,,905,905,905,,,905,905,1163,1163,1163,1163,1163,1163",",,,1163,1163,,,,1163,,1163,1163,1163,1163,1163,1163,1163,,,,,,1163,1163","1163,1163,1163,1163,1163,,,1163,,,,,,1163,1163,1163,1163,1163,1163,1163","1163,1163,1163,1163,1163,,1163,1163,1163,,1163,1163,1163,1163,1163,493","493,493,493,493,493,493,,,493,493,,,,,,493,493,,1163,,,1163,,,1163,1163",",,1163,,1163,493,,493,1163,493,493,,493,493,493,493,493,1163,493,,,","1163,1163,1163,1163,,1163,1163,1163,1163,,,,,1163,1163,,,,,,,1163,,1163","1163,1163,,,1163,1163,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,352,352","352,352,352,352,352,352,352,352,352,,352,352,,,352,352,,2,,,2,,,2,2",",,2,,2,352,,352,2,352,352,,352,352,352,352,352,2,352,,,,2,2,2,2,,2,2","2,2,,,,,2,2,,,,,,,2,,2,2,2,,,2,2,367,367,367,367,367,367,,,,367,367",",,,367,,367,367,367,367,367,367,367,,,,,,367,367,367,367,367,367,367",",,367,,,,,,367,367,367,367,367,367,367,367,367,367,367,367,,367,367","367,,367,367,367,367,367,351,351,351,351,351,351,351,351,351,351,351",",351,351,,,351,351,,367,,,367,,,367,367,,,367,,367,351,,351,367,351","351,,351,351,351,351,351,367,351,,,,367,367,367,367,,367,367,367,367",",,,,367,367,,,,,,,367,,367,367,367,,,367,367,366,366,366,366,366,366",",,,366,366,,,,366,,366,366,366,366,366,366,366,,,,,,366,366,366,366","366,366,366,,,366,,,,,,366,366,366,366,366,366,366,366,366,366,366,366",",366,366,366,,366,366,366,366,366,501,501,501,501,501,501,501,501,,501","501,,,,,,501,501,,366,,,366,,,366,366,,,366,,366,501,,501,366,501,501",",501,501,501,501,501,366,501,,,,366,366,366,366,,366,366,366,366,,,",",366,366,,,,,,,366,,366,366,366,,,366,366,917,917,917,917,917,917,,",",917,917,,,,917,,917,917,917,917,917,917,917,,,,,,917,917,917,917,917","917,917,,,917,,,,,,917,917,917,917,917,917,917,917,917,917,917,917,","917,917,917,,917,917,917,917,917,556,,,,,,,,,,,,,,,,556,556,,917,,,917",",,917,917,,,917,,917,556,,556,917,556,556,,556,556,,,556,917,556,,,","917,917,917,917,,917,917,917,917,,,,,917,917,,,,,,,917,,917,917,917",",,917,917,360,360,360,360,360,360,,,,360,360,,,,360,,360,360,360,360","360,360,360,,,,,,360,360,360,360,360,360,360,,,360,,,,,,360,360,360","360,360,360,360,360,360,360,360,360,,360,360,360,,360,360,360,360,360","481,481,481,481,481,481,481,481,481,481,481,,481,481,,,481,481,,360",",,360,,,360,360,,,360,,360,481,,481,360,481,481,,481,481,481,481,481","360,481,,,,360,360,360,360,,360,360,360,360,,,,,360,360,,,,,,,360,,360","360,360,,,360,360,1104,1104,1104,1104,1104,1104,,,,1104,1104,,,,1104",",1104,1104,1104,1104,1104,1104,1104,,,,,,1104,1104,1104,1104,1104,1104","1104,,,1104,,,,,,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104","1104,,1104,1104,1104,,1104,1104,1104,1104,1104,494,494,494,494,494,494","494,,,494,494,,,,,,494,494,,1104,,,1104,,,1104,1104,,,1104,,1104,494",",494,1104,494,494,,494,494,494,494,494,1104,494,,,,1104,1104,1104,1104",",1104,1104,1104,1104,,,,,1104,1104,,,,,,,1104,,1104,1104,1104,,,1104","1104,952,952,952,952,952,952,,,,952,952,,,,952,,952,952,952,952,952","952,952,,,,,,952,952,952,952,952,952,952,,,952,,,,,,952,952,952,952","952,952,952,952,952,952,952,952,,952,952,952,,952,952,952,952,952,482","482,482,482,482,482,482,482,482,482,482,,482,482,,,482,482,,952,,,952",",,952,952,,,952,,952,482,,482,952,482,482,,482,482,482,482,482,952,482",",,,952,952,952,952,,952,952,952,952,,,,,952,952,,,,,,,952,,952,952,952",",,952,952,958,958,958,958,958,958,,,,958,958,,,,958,,958,958,958,958","958,958,958,,,,,,958,958,958,958,958,958,958,,,958,,,,,,958,958,958","958,958,958,958,958,958,958,958,958,,958,958,958,,958,958,958,958,958","492,492,492,492,492,492,492,,,492,492,,,,,,492,492,,958,,,958,,,958","958,,,958,,958,492,,492,958,492,492,,492,492,492,492,492,958,492,,,","958,958,958,958,,958,958,958,958,,,,,958,958,,,,,,,958,,958,958,958",",,958,958,240,240,240,240,240,240,,,,240,240,,,,240,,240,240,240,240","240,240,240,,,,,,240,240,240,240,240,240,240,,,240,,,,,,240,240,240","240,240,240,240,240,240,240,240,240,,240,240,240,,240,240,240,240,240","503,,,,,,,,,,,,,,,,503,503,,240,,,240,,,240,240,,,240,,240,503,,503","240,503,503,,503,503,,,503,240,503,,,,240,240,240,240,,240,240,240,240",",,,,240,240,,,,129,129,129,240,129,240,240,240,129,129,240,240,,129",",129,129,129,129,129,129,129,,,,,,129,129,129,129,129,129,129,,,129",",,,,,,129,,,129,129,129,129,129,129,129,129,,129,129,129,,129,129,129","129,129,489,,,,,,,,,,,,,,,,489,489,,129,,,129,,,129,129,,,129,,,489",",489,129,489,489,,489,489,,,,129,,,,,129,129,129,129,,129,129,129,129",",,,,129,129,,,,,,,129,,129,129,129,507,,129,129,,,,507,507,507,,,507","507,507,,507,491,,,,,,,507,507,507,,,,,,,491,491,,507,507,,507,507,507","507,507,,,,,,491,,289,289,491,491,289,491,491,,,,,,289,289,,289,289","289,289,289,289,289,,,289,289,507,,,289,289,289,289,507,,,,,507,507",",,,,,,289,289,,289,289,289,289,289,289,289,289,289,289,289,289,507,507","289,,,,,,,,,,,,,507,,,507,,,,,507,7,7,7,7,7,,507,,7,7,,,,7,,7,7,7,7","7,7,7,,,,,,7,7,7,7,7,7,7,,,7,,,,,,7,7,7,7,7,7,7,7,7,7,7,7,,7,7,7,,7","7,7,7,7,490,,,,,,,,,,,,,,,,490,490,,7,,,7,,,7,7,,,7,,7,490,,490,7,490","490,,490,490,,,,7,,,,,7,7,7,7,,7,7,7,7,,,,,7,7,,,,1152,1152,1152,7,1152","7,7,7,1152,1152,7,7,,1152,,1152,1152,1152,1152,1152,1152,1152,,,,,,1152","1152,1152,1152,1152,1152,1152,,,1152,,,,,,,1152,,,1152,1152,1152,1152","1152,1152,1152,1152,1152,1152,1152,1152,,1152,1152,1152,1152,1152,,",",,,,,,,,,,,,,,,,,1152,,,1152,,,1152,1152,,,1152,,1152,,1152,,1152,,","1152,,,,,,1152,,,,,1152,1152,1152,1152,,1152,1152,1152,1152,,,,,1152","1152,,,,22,22,22,1152,22,1152,1152,1152,22,22,1152,1152,,22,,22,22,22","22,22,22,22,,,,,,22,22,22,22,22,22,22,,,22,,,,,,,22,,,22,22,22,22,22","22,22,22,,22,22,22,,22,22,22,22,22,,,,,,,,,,,,,,,,,,,,22,,,22,,,22,22",",,22,,,,,,22,,,,,,,,,22,,,,,22,22,22,22,,22,22,22,22,,,,,22,22,,,,1120","1120,1120,22,1120,22,22,22,1120,1120,22,22,,1120,,1120,1120,1120,1120","1120,1120,1120,,,,,,1120,1120,1120,1120,1120,1120,1120,,,1120,,,,,,","1120,,,1120,1120,1120,1120,1120,1120,1120,1120,,1120,1120,1120,,1120","1120,1120,1120,1120,,,,,,,,,,,,,,,,,,,,1120,,,1120,,,1120,1120,,,1120",",,,,,1120,,,,,,,,,1120,,,,,1120,1120,1120,1120,,1120,1120,1120,1120",",,,,1120,1120,,,,,,,1120,,1120,1120,1120,30,,1120,1120,,,,30,30,30,",",30,30,30,,30,,,,,,,,30,30,30,30,,,,,,,,,30,30,,30,30,30,30,30,,,,,",",,,,,,,,,,,,,,,,,30,30,30,30,30,30,30,30,30,30,30,30,30,30,,,30,30,30",",,30,,30,30,,,30,30,,30,,30,,30,,30,30,,30,30,30,30,30,31,30,30,30,",",,31,31,31,,,31,31,31,,31,30,,,30,30,,30,31,30,31,31,,,,,30,,,,31,31",",31,31,31,31,31,,,,,,,,,,,,,,,,,,,,,,,31,31,31,31,31,31,31,31,31,31","31,31,31,31,,,31,31,31,,,31,,31,31,,,31,31,,31,,31,,31,,31,31,,31,31","31,31,31,,31,,31,,,,,,,,,,,,,,31,,,31,31,,31,,31,32,32,32,,32,,31,,32","32,,,,32,,32,32,32,32,32,32,32,,,,,,32,32,32,32,32,32,32,,,32,,,,,,","32,,,32,32,32,32,32,32,32,32,32,32,32,32,,32,32,32,32,32,,,,,,,,,,,",",,,,,,,,32,,,32,,,32,32,,,32,,32,,32,,32,,,32,,,,,,32,,,,,32,32,32,32",",32,32,32,32,,,,,32,32,,,,33,33,33,32,33,32,32,32,33,33,32,32,,33,,33","33,33,33,33,33,33,,,,,,33,33,33,33,33,33,33,,,33,,,,,,,33,,,33,33,33","33,33,33,33,33,33,33,33,33,,33,33,33,33,33,,,,,,,,,,,,,,,,,,,,33,,,33",",,33,33,,,33,,33,,33,,33,,,33,,,,,,33,,,,,33,33,33,33,,33,33,33,33,",",,,33,33,,,,34,34,34,33,34,33,33,33,34,34,33,33,,34,,34,34,34,34,34","34,34,,,,,,34,34,34,34,34,34,34,,,34,,,,,,,34,,,34,34,34,34,34,34,34","34,34,34,34,34,,34,34,34,34,34,,,,,,,,,,,,,,,,,,,,34,,,34,,,34,34,,","34,,34,,34,,34,,,34,,,,,,34,,,,,34,34,34,34,,34,34,34,34,,,,,34,34,",",,1119,1119,1119,34,1119,34,34,34,1119,1119,34,34,,1119,,1119,1119,1119","1119,1119,1119,1119,,,,,,1119,1119,1119,1119,1119,1119,1119,,,1119,",",,,,,1119,,,1119,1119,1119,1119,1119,1119,1119,1119,,1119,1119,1119",",1119,1119,1119,1119,1119,,,,,,,,,,,,,,,,,,,,1119,,,1119,,,1119,1119",",,1119,,,,,,1119,,,,,,,,,1119,,,,,1119,1119,1119,1119,,1119,1119,1119","1119,,,,,1119,1119,,,,44,44,44,1119,44,1119,1119,1119,44,44,1119,1119",",44,,44,44,44,44,44,44,44,,,,,,44,44,44,44,44,44,44,,,44,,,,,,,44,,","44,44,44,44,44,44,44,44,,44,44,44,,44,44,44,44,44,,,,,,,,,,,,,,,,,,",",44,,,44,,,44,44,,,44,,,,,,44,,,,,,,,,44,,,,,44,44,44,44,,44,44,44,44",",,,,44,44,,,,45,45,45,44,45,44,44,44,45,45,44,44,,45,,45,45,45,45,45","45,45,,,,,,45,45,45,45,45,45,45,,,45,,,,,,,45,,,45,45,45,45,45,45,45","45,,45,45,45,,45,45,45,45,45,,,,,,,,,,,,,,,,,,,,45,,,45,,,45,45,,,45",",,,,,45,,,,,,,,,45,,,,,45,45,45,45,,45,45,45,45,,,,,45,45,,,,47,47,47","45,47,45,45,45,47,47,45,45,,47,,47,47,47,47,47,47,47,,,,,,47,47,47,47","47,47,47,,,47,,,,,,,47,,,47,47,47,47,47,47,47,47,,47,47,47,,47,47,47","47,47,,,,,,,,,,,,,,,,,,,,47,,,47,,,47,47,,,47,,,,,,47,,,,,,,,,47,,,",",47,47,47,47,,47,47,47,47,,,,,47,47,,,,48,48,48,47,48,47,47,47,48,48","47,47,,48,,48,48,48,48,48,48,48,,,,,,48,48,48,48,48,48,48,,,48,,,,,",",48,,,48,48,48,48,48,48,48,48,,48,48,48,,48,48,48,48,48,,,,,,,,,,,,",",,,,,,,48,,,48,,,48,48,,,48,,,,,,48,,,,,,,,,48,,,,,48,48,48,48,,48,48","48,48,,,,,48,48,,,,50,50,50,48,50,48,48,48,50,50,48,48,,50,,50,50,50","50,50,50,50,,,,,,50,50,50,50,50,50,50,,,50,,,,,,,50,,,50,50,50,50,50","50,50,50,,50,50,50,,50,50,50,50,50,,,,,,,,,,,,,,,,,,,,50,,,50,,,50,50",",,50,,,,,,50,,,,,,,,,50,,,,,50,50,50,50,,50,50,50,50,,,,,50,50,,,,,",",50,,50,50,50,64,,50,50,,,,64,64,64,,,64,64,64,,64,,,,,,,,64,,64,64","64,,,,704,704,704,704,64,64,,64,64,64,64,64,,,,,704,704,704,,,,,,,,",",,704,704,,,704,64,64,64,64,64,64,64,64,64,64,64,64,64,64,,,64,64,64",",,64,,,64,,,64,64,,64,,64,,64,,64,64,,64,64,64,64,64,,64,,64,,704,704","704,704,,704,704,704,704,,,,64,704,704,64,64,64,64,,64,704,64,704,704","704,,64,66,66,66,66,66,,,,66,66,,,,66,,66,66,66,66,66,66,66,,,,,,66","66,66,66,66,66,66,,,66,,,,,,66,66,,66,66,66,66,66,66,66,66,66,,66,66","66,,66,66,66,66,66,,,,,,,,,,,,,,,,,,,,66,,,66,,,66,66,,,66,,66,,,,66",",,,,,,,,66,,,,,66,66,66,66,,66,66,66,66,,,,,66,66,,,,67,67,67,66,67","66,66,66,67,67,66,66,,67,,67,67,67,67,67,67,67,,,,,,67,67,67,67,67,67","67,,,67,,,,,,,67,,,67,67,67,67,67,67,67,67,67,67,67,67,,67,67,67,67","67,,,,,,,,,,,,,,,,,,,,67,,,67,,,67,67,,,67,,67,,,,67,,,67,,,,,,67,,",",,67,67,67,67,,67,67,67,67,,,,,67,67,,,,68,68,68,67,68,67,67,67,68,68","67,67,,68,,68,68,68,68,68,68,68,,,,,,68,68,68,68,68,68,68,,,68,,,,,",",68,,,68,68,68,68,68,68,68,68,68,68,68,68,,68,68,68,68,68,,,,,,,,,,",",,,,,,,,,68,,,68,,,68,68,,,68,,,,,,68,,,68,,,,,,68,,,,,68,68,68,68,","68,68,68,68,,,,,68,68,,,,71,71,71,68,71,68,68,68,71,71,68,68,,71,,71","71,71,71,71,71,71,,,,,,71,71,71,71,71,71,71,,,71,,,,,,,71,,,71,71,71","71,71,71,71,71,,71,71,71,,71,71,71,71,71,,,,,,,,,,,,,,,,,,,,71,,,71",",,71,71,,,71,,,,,,71,,,,,,,,,71,,,,,71,71,71,71,,71,71,71,71,,,,,71","71,,,,72,72,72,71,72,71,71,71,72,72,71,71,,72,,72,72,72,72,72,72,72",",,,,,72,72,72,72,72,72,72,,,72,,,,,,,72,,,72,72,72,72,72,72,72,72,,72","72,72,,72,72,72,72,72,,,,,,,,,,,,,,,,,,,,72,,,72,,,72,72,,,72,,,,,,72",",,,,,,,,72,,,,,72,72,72,72,,72,72,72,72,,,,,72,72,,,,75,75,75,72,75","72,72,72,75,75,72,72,,75,,75,75,75,75,75,75,75,,,,,,75,75,75,75,75,75","75,,,75,,,,,,,75,,,75,75,75,75,75,75,75,75,,75,75,75,,75,75,75,75,75",",,,,,,,,,,,,,,,,,,,75,,,75,,,75,75,,,75,,,,,,75,,,,,,,,,75,,,,,75,75","75,75,,75,75,75,75,,,,,75,75,75,,,,,75,75,,75,75,75,,,75,75,121,121","121,121,121,,,,121,121,,,,121,,121,121,121,121,121,121,121,,,,,,121","121,121,121,121,121,121,,,121,,,,,,121,121,121,121,121,121,121,121,121","121,121,121,,121,121,121,,121,121,121,121,121,,,,,,,,,,,,,,,,,,,,121",",,121,,,121,121,,,121,,121,,,,121,,,,,,,,,121,,,,,121,121,121,121,,121","121,121,121,,,,,121,121,,,,,,121,121,,121,121,121,,,121,121,126,126","126,,126,,,,126,126,,,,126,,126,126,126,126,126,126,126,,,,,,126,126","126,126,126,126,126,,,126,,,,,,,126,,,126,126,126,126,126,126,126,126",",126,126,126,,126,126,126,126,126,,,,,,,,,,,,,,,,,,,,126,,,126,,,126","126,,,126,,,,,,126,,,,,,,,,126,,,,,126,126,126,126,,126,126,126,126",",,,,126,126,,,,127,127,127,126,127,126,126,126,127,127,126,126,,127",",127,127,127,127,127,127,127,,,,,,127,127,127,127,127,127,127,,,127",",,,,,,127,,,127,127,127,127,127,127,127,127,,127,127,127,,127,127,127","127,127,,,,,,,,,,,,,,,,,,,,127,,,127,,,127,127,,,127,,,,,,127,,,,,,",",,127,,,,,127,127,127,127,,127,127,127,127,,,,,127,127,,,,128,128,128","127,128,127,127,127,128,128,127,127,,128,,128,128,128,128,128,128,128",",,,,,128,128,128,128,128,128,128,,,128,,,,,,,128,,,128,128,128,128,128","128,128,128,,128,128,128,,128,128,128,128,128,,,,,,,,,,,,,,,,,,,,128",",,128,,,128,128,,,128,,,,,,128,,,,,,,,,128,,,,,128,128,128,128,,128","128,128,128,,,,,128,128,,,,512,512,512,128,512,128,128,128,512,512,128","128,,512,,512,512,512,512,512,512,512,,,,,,512,512,512,512,512,512,512",",,512,,,,,,,512,,,512,512,512,512,512,512,512,512,,512,512,512,,512","512,512,512,512,,,,,,,,,,,,,,,,,,,,512,,,512,,,512,512,,,512,,,,,,512",",,,,,,,,512,,,,,512,512,512,512,,512,512,512,512,,,,,512,512,,,,,,,512",",512,512,512,,,512,512,130,130,130,130,130,,,,130,130,,,,130,,130,130","130,130,130,130,130,,,,,,130,130,130,130,130,130,130,,,130,,,,,,130","130,,130,130,130,130,130,130,130,130,130,,130,130,130,,130,130,130,130","130,,,,,,,,,,,,,,,,,,,,130,,,130,,,130,130,,,130,,130,,,,130,,,,,,,",",130,,,,,130,130,130,130,,130,130,130,130,,,,,130,130,,,,228,228,228","130,228,130,130,130,228,228,130,130,,228,,228,228,228,228,228,228,228",",,,,,228,228,228,228,228,228,228,,,228,,,,,,,228,,,228,228,228,228,228","228,228,228,,228,228,228,,228,228,228,228,228,,,,,,,,,,,,,,,,,,,,228",",,228,,,228,228,,,228,,,,,,228,,,,,,,,,228,,,,,228,228,228,228,,228","228,228,228,,,,,228,228,228,,,239,239,239,228,239,228,228,228,239,239","228,228,,239,,239,239,239,239,239,239,239,,,,,,239,239,239,239,239,239","239,,,239,,,,,,,239,,,239,239,239,239,239,239,239,239,,239,239,239,","239,239,239,239,239,,,,,,,,,,,,,,,,,,,,239,,,239,,,239,239,,,239,,,",",,239,,,,,,,,,239,,,,,239,239,239,239,,239,239,239,239,,,,,239,239,",",,244,244,244,239,244,239,239,239,244,244,239,239,,244,,244,244,244","244,244,244,244,,,,,,244,244,244,244,244,244,244,,,244,,,,,,,244,,,244","244,244,244,244,244,244,244,,244,244,244,,244,244,244,244,244,,,,,,",",,,,,,,,,,,,,244,,,244,,,244,244,,,244,,,,,,244,,,,,,,,,244,,,,,244","244,244,244,,244,244,244,244,,,,,244,244,,,,245,245,245,244,245,244","244,244,245,245,244,244,,245,,245,245,245,245,245,245,245,,,,,,245,245","245,245,245,245,245,,,245,,,,,,,245,,,245,245,245,245,245,245,245,245",",245,245,245,,245,245,245,245,245,,,,,,,,,,,,,,,,,,,,245,,,245,,,245","245,,,245,,,,,,245,,,,,,,,,245,,,,,245,245,245,245,,245,245,245,245",",,,,245,245,,,,246,246,246,245,246,245,245,245,246,246,245,245,,246",",246,246,246,246,246,246,246,,,,,,246,246,246,246,246,246,246,,,246",",,,,,,246,,,246,246,246,246,246,246,246,246,,246,246,246,,246,246,246","246,246,,,,,,,,,,,,,,,,,,,,246,,,246,,,246,246,,,246,,,,,,246,,,,,,",",,246,,,,,246,246,246,246,,246,246,246,246,,,,,246,246,,,,247,247,247","246,247,246,246,246,247,247,246,246,,247,,247,247,247,247,247,247,247",",,,,,247,247,247,247,247,247,247,,,247,,,,,,,247,,,247,247,247,247,247","247,247,247,,247,247,247,,247,247,247,247,247,,,,,,,,,,,,,,,,,,,,247",",,247,,,247,247,,,247,,,,,,247,,,,,,,,,247,,,,,247,247,247,247,,247","247,247,247,,,,,247,247,,,,248,248,248,247,248,247,247,247,248,248,247","247,,248,,248,248,248,248,248,248,248,,,,,,248,248,248,248,248,248,248",",,248,,,,,,,248,,,248,248,248,248,248,248,248,248,,248,248,248,,248","248,248,248,248,,,,,,,,,,,,,,,,,,,,248,,,248,,,248,248,,,248,,,,,,248",",,,,,,,,248,,,,,248,248,248,248,,248,248,248,248,,,,,248,248,,,,249","249,249,248,249,248,248,248,249,249,248,248,,249,,249,249,249,249,249","249,249,,,,,,249,249,249,249,249,249,249,,,249,,,,,,,249,,,249,249,249","249,249,249,249,249,,249,249,249,,249,249,249,249,249,,,,,,,,,,,,,,",",,,,,249,,,249,,,249,249,,,249,,,,,,249,,,,,,,,,249,,,,,249,249,249","249,,249,249,249,249,,,,,249,249,,,,250,250,250,249,250,249,249,249","250,250,249,249,,250,,250,250,250,250,250,250,250,,,,,,250,250,250,250","250,250,250,,,250,,,,,,,250,,,250,250,250,250,250,250,250,250,,250,250","250,,250,250,250,250,250,,,,,,,,,,,,,,,,,,,,250,,,250,,,250,250,,,250",",,,,,250,,,,,,,,,250,,,,,250,250,250,250,,250,250,250,250,,,,,250,250",",,,251,251,251,250,251,250,250,250,251,251,250,250,,251,,251,251,251","251,251,251,251,,,,,,251,251,251,251,251,251,251,,,251,,,,,,,251,,,251","251,251,251,251,251,251,251,,251,251,251,,251,251,251,251,251,,,,,,",",,,,,,,,,,,,,251,,,251,,,251,251,,,251,,,,,,251,,,,,,,,,251,,,,,251","251,251,251,,251,251,251,251,,,,,251,251,,,,252,252,252,251,252,251","251,251,252,252,251,251,,252,,252,252,252,252,252,252,252,,,,,,252,252","252,252,252,252,252,,,252,,,,,,,252,,,252,252,252,252,252,252,252,252",",252,252,252,,252,252,252,252,252,,,,,,,,,,,,,,,,,,,,252,,,252,,,252","252,,,252,,,,,,252,,,,,,,,,252,,,,,252,252,252,252,,252,252,252,252",",,,,252,252,,,,253,253,253,252,253,252,252,252,253,253,252,252,,253",",253,253,253,253,253,253,253,,,,,,253,253,253,253,253,253,253,,,253",",,,,,,253,,,253,253,253,253,253,253,253,253,,253,253,253,,253,253,253","253,253,,,,,,,,,,,,,,,,,,,,253,,,253,,,253,253,,,253,,,,,,253,,,,,,",",,253,,,,,253,253,253,253,,253,253,253,253,,,,,253,253,,,,254,254,254","253,254,253,253,253,254,254,253,253,,254,,254,254,254,254,254,254,254",",,,,,254,254,254,254,254,254,254,,,254,,,,,,,254,,,254,254,254,254,254","254,254,254,,254,254,254,,254,254,254,254,254,,,,,,,,,,,,,,,,,,,,254",",,254,,,254,254,,,254,,,,,,254,,,,,,,,,254,,,,,254,254,254,254,,254","254,254,254,,,,,254,254,,,,255,255,255,254,255,254,254,254,255,255,254","254,,255,,255,255,255,255,255,255,255,,,,,,255,255,255,255,255,255,255",",,255,,,,,,,255,,,255,255,255,255,255,255,255,255,,255,255,255,,255","255,255,255,255,,,,,,,,,,,,,,,,,,,,255,,,255,,,255,255,,,255,,,,,,255",",,,,,,,,255,,,,,255,255,255,255,,255,255,255,255,,,,,255,255,,,,256","256,256,255,256,255,255,255,256,256,255,255,,256,,256,256,256,256,256","256,256,,,,,,256,256,256,256,256,256,256,,,256,,,,,,,256,,,256,256,256","256,256,256,256,256,,256,256,256,,256,256,256,256,256,,,,,,,,,,,,,,",",,,,,256,,,256,,,256,256,,,256,,,,,,256,,,,,,,,,256,,,,,256,256,256","256,,256,256,256,256,,,,,256,256,,,,257,257,257,256,257,256,256,256","257,257,256,256,,257,,257,257,257,257,257,257,257,,,,,,257,257,257,257","257,257,257,,,257,,,,,,,257,,,257,257,257,257,257,257,257,257,,257,257","257,,257,257,257,257,257,,,,,,,,,,,,,,,,,,,,257,,,257,,,257,257,,,257",",,,,,257,,,,,,,,,257,,,,,257,257,257,257,,257,257,257,257,,,,,257,257",",,,258,258,258,257,258,257,257,257,258,258,257,257,,258,,258,258,258","258,258,258,258,,,,,,258,258,258,258,258,258,258,,,258,,,,,,,258,,,258","258,258,258,258,258,258,258,,258,258,258,,258,258,258,258,258,,,,,,",",,,,,,,,,,,,,258,,,258,,,258,258,,,258,,,,,,258,,,,,,,,,258,,,,,258","258,258,258,,258,258,258,258,,,,,258,258,,,,259,259,259,258,259,258","258,258,259,259,258,258,,259,,259,259,259,259,259,259,259,,,,,,259,259","259,259,259,259,259,,,259,,,,,,,259,,,259,259,259,259,259,259,259,259",",259,259,259,,259,259,259,259,259,,,,,,,,,,,,,,,,,,,,259,,,259,,,259","259,,,259,,,,,,259,,,,,,,,,259,,,,,259,259,259,259,,259,259,259,259",",,,,259,259,,,,260,260,260,259,260,259,259,259,260,260,259,259,,260",",260,260,260,260,260,260,260,,,,,,260,260,260,260,260,260,260,,,260",",,,,,,260,,,260,260,260,260,260,260,260,260,,260,260,260,,260,260,260","260,260,,,,,,,,,,,,,,,,,,,,260,,,260,,,260,260,,,260,,,,,,260,,,,,,",",,260,,,,,260,260,260,260,,260,260,260,260,,,,,260,260,,,,261,261,261","260,261,260,260,260,261,261,260,260,,261,,261,261,261,261,261,261,261",",,,,,261,261,261,261,261,261,261,,,261,,,,,,,261,,,261,261,261,261,261","261,261,261,,261,261,261,,261,261,261,261,261,,,,,,,,,,,,,,,,,,,,261",",,261,,,261,261,,,261,,,,,,261,,,,,,,,,261,,,,,261,261,261,261,,261","261,261,261,,,,,261,261,,,,262,262,262,261,262,261,261,261,262,262,261","261,,262,,262,262,262,262,262,262,262,,,,,,262,262,262,262,262,262,262",",,262,,,,,,,262,,,262,262,262,262,262,262,262,262,,262,262,262,,262","262,262,262,262,,,,,,,,,,,,,,,,,,,,262,,,262,,,262,262,,,262,,,,,,262",",,,,,,,,262,,,,,262,262,262,262,,262,262,262,262,,,,,262,262,,,,263","263,263,262,263,262,262,262,263,263,262,262,,263,,263,263,263,263,263","263,263,,,,,,263,263,263,263,263,263,263,,,263,,,,,,,263,,,263,263,263","263,263,263,263,263,,263,263,263,,263,263,263,263,263,,,,,,,,,,,,,,",",,,,,263,,,263,,,263,263,,,263,,,,,,263,,,,,,,,,263,,,,,263,263,263","263,,263,263,263,263,,,,,263,263,,,,264,264,264,263,264,263,263,263","264,264,263,263,,264,,264,264,264,264,264,264,264,,,,,,264,264,264,264","264,264,264,,,264,,,,,,,264,,,264,264,264,264,264,264,264,264,,264,264","264,,264,264,264,264,264,,,,,,,,,,,,,,,,,,,,264,,,264,,,264,264,,,264",",,,,,264,,,,,,,,,264,,,,,264,264,264,264,,264,264,264,264,,,,,264,264",",,,265,265,265,264,265,264,264,264,265,265,264,264,,265,,265,265,265","265,265,265,265,,,,,,265,265,265,265,265,265,265,,,265,,,,,,,265,,,265","265,265,265,265,265,265,265,,265,265,265,,265,265,265,265,265,,,,,,",",,,,,,,,,,,,,265,,,265,,,265,265,,,265,,,,,,265,,,,,,,,,265,,,,,265","265,265,265,,265,265,265,265,,,,,265,265,,,,270,270,270,265,270,265","265,265,270,270,265,265,,270,,270,270,270,270,270,270,270,,,,,,270,270","270,270,270,270,270,,,270,,,,,,,270,,,270,270,270,270,270,270,270,270",",270,270,270,,270,270,270,270,270,,,,,,,,,,,,,,,,,,,,270,,,270,,,270","270,,,270,,,,,,270,,,,,,,,,270,,,,,270,270,270,270,,270,270,270,270",",,,,270,270,,,,971,971,971,270,971,270,270,270,971,971,270,270,,971",",971,971,971,971,971,971,971,,,,,,971,971,971,971,971,971,971,,,971",",,,,,,971,,,971,971,971,971,971,971,971,971,,971,971,971,,971,971,971","971,971,,,,,,,,,,,,,,,,,,,,971,,,971,,,971,971,,,971,,,,,,971,,,,,,",",,971,,,,,971,971,971,971,,971,971,971,971,,,,,971,971,,,,970,970,970","971,970,971,971,971,970,970,971,971,,970,,970,970,970,970,970,970,970",",,,,,970,970,970,970,970,970,970,,,970,,,,,,,970,,,970,970,970,970,970","970,970,970,970,970,970,970,,970,970,970,970,970,,,,,,,,,,,,,,,,,,,","970,,,970,,,970,970,,,970,,,,970,,970,,,970,,,,,,970,,,,,970,970,970","970,,970,970,970,970,,,,,970,970,,,,951,951,951,970,951,970,970,970","951,951,970,970,,951,,951,951,951,951,951,951,951,,,,,,951,951,951,951","951,951,951,,,951,,,,,,,951,,,951,951,951,951,951,951,951,951,,951,951","951,,951,951,951,951,951,,,,,,,,,,,,,,,,,,,,951,,,951,,,951,951,,,951",",951,,,,951,,,,,,,,,951,,,,,951,951,951,951,,951,951,951,951,,,,,951","951,,,,946,946,946,951,946,951,951,951,946,946,951,951,,946,,946,946","946,946,946,946,946,,,,,,946,946,946,946,946,946,946,,,946,,,,,,,946",",,946,946,946,946,946,946,946,946,,946,946,946,,946,946,946,946,946",",,,,,,,,,,,,,,,,,,,946,,,946,,,946,946,,,946,,,,,,946,,,,,,,,,946,,",",,946,946,946,946,,946,946,946,946,,,,,946,946,,,,942,942,942,946,942","946,946,946,942,942,946,946,,942,,942,942,942,942,942,942,942,,,,,,942","942,942,942,942,942,942,,,942,,,,,,,942,,,942,942,942,942,942,942,942","942,,942,942,942,,942,942,942,942,942,,,,,,,,,,,,,,,,,,,,942,,,942,",",942,942,,,942,,,,,,942,,,,,,,,,942,,,,,942,942,942,942,,942,942,942","942,,,,,942,942,,,,286,286,286,942,286,942,942,942,286,286,942,942,","286,,286,286,286,286,286,286,286,,,,,,286,286,286,286,286,286,286,,","286,,,,,,,286,,,286,286,286,286,286,286,286,286,,286,286,286,,286,286","286,286,286,,,,,,,,,,,,,,,,,,,,286,,,286,,,286,286,,,286,,,,,,286,,",",,,,,,286,,,,,286,286,286,286,,286,286,286,286,,,,,286,286,,,,914,914","914,286,914,286,286,286,914,914,286,286,,914,,914,914,914,914,914,914","914,,,,,,914,914,914,914,914,914,914,,,914,,,,,,,914,,,914,914,914,914","914,914,914,914,,914,914,914,,914,914,914,914,914,,,,,,,,,,,,,,,,,,",",914,,,914,,,914,914,,,914,,,,,,914,,,,,,,,,914,,,,,914,914,914,914",",914,914,914,914,,,,,914,914,,,,293,293,293,914,293,914,914,914,293","293,914,914,,293,,293,293,293,293,293,293,293,,,,,,293,293,293,293,293","293,293,,,293,,,,,,,293,,,293,293,293,293,293,293,293,293,293,293,293","293,,293,293,293,293,293,,,,,,,,,,,,,,,,,,,,293,,,293,,,293,293,,,293",",293,,293,,293,,,293,,,,,,293,,,,,293,293,293,293,,293,293,293,293,",",,,293,293,,,,294,294,294,293,294,293,293,293,294,294,293,293,,294,","294,294,294,294,294,294,294,,,,,,294,294,294,294,294,294,294,,,294,",",,,,,294,,,294,294,294,294,294,294,294,294,294,294,294,294,,294,294","294,294,294,,,,,,,,,,,,,,,,,,,,294,,,294,,,294,294,,,294,,294,,294,","294,,,294,,,,,,294,,,,,294,294,294,294,,294,294,294,294,,,,,294,294",",,,302,302,302,294,302,294,294,294,302,302,294,294,,302,,302,302,302","302,302,302,302,,,,,,302,302,302,302,302,302,302,,,302,,,,,,,302,,,302","302,302,302,302,302,302,302,302,302,302,302,,302,302,302,302,302,,,",",,,,,,,,,,,,,,,,302,,,302,,,302,302,,,302,,302,,302,,302,,,302,,,,,","302,,,,,302,302,302,302,,302,302,302,302,,,,,302,302,302,,,894,894,894","302,894,302,302,302,894,894,302,302,,894,,894,894,894,894,894,894,894",",,,,,894,894,894,894,894,894,894,,,894,,,,,,,894,,,894,894,894,894,894","894,894,894,,894,894,894,,894,894,894,894,894,,,,,,,,,,,,,,,,,,,,894",",,894,,,894,894,,,894,,,,,,894,,,,,,,,,894,,,,,894,894,894,894,,894","894,894,894,,,,,894,894,,,,309,309,309,894,309,894,894,894,309,309,894","894,,309,,309,309,309,309,309,309,309,,,,,,309,309,309,309,309,309,309",",,309,,,,,,,309,,,309,309,309,309,309,309,309,309,,309,309,309,,309","309,309,309,309,,,,,,,,,,,,,,,,,,,,309,,,309,,,309,309,,,309,,,,,,309",",,,,,,,,309,,,,,309,309,309,309,,309,309,309,309,,,,,309,309,,,,311","311,311,309,311,309,309,309,311,311,309,309,,311,,311,311,311,311,311","311,311,,,,,,311,311,311,311,311,311,311,,,311,,,,,,,311,,,311,311,311","311,311,311,311,311,,311,311,311,,311,311,311,311,311,,,,,,,,,,,,,,",",,,,,311,,,311,,,311,311,,,311,,,,,,311,,,,,,,,,311,,,,,311,311,311","311,,311,311,311,311,,,,,311,311,,,,314,314,314,311,314,311,311,311","314,314,311,311,,314,,314,314,314,314,314,314,314,,,,,,314,314,314,314","314,314,314,,,314,,,,,,,314,,,314,314,314,314,314,314,314,314,,314,314","314,,314,314,314,314,314,,,,,,,,,,,,,,,,,,,,314,,,314,,,314,314,,,314",",,,,,314,,,,,,,,,314,,,,,314,314,314,314,,314,314,314,314,,,,,314,314",",,,315,315,315,314,315,314,314,314,315,315,314,314,,315,,315,315,315","315,315,315,315,,,,,,315,315,315,315,315,315,315,,,315,,,,,,,315,,,315","315,315,315,315,315,315,315,,315,315,315,,315,315,315,315,315,,,,,,",",,,,,,,,,,,,,315,,,315,,,315,315,,,315,,,,,,315,,,,,,,,,315,,,,,315","315,315,315,,315,315,315,315,,,,,315,315,,,,,,,315,,315,315,315,,,315","315,320,320,320,320,320,,,,320,320,,,,320,,320,320,320,320,320,320,320",",,,,,320,320,320,320,320,320,320,,,320,,,,,,320,320,,320,320,320,320","320,320,320,320,320,,320,320,320,,320,320,320,320,320,,,,,,,,,,,,,,",",,,,,320,,,320,,,320,320,,,320,,320,,,,320,,,,,,,,,320,,,,,320,320,320","320,,320,320,320,320,,,,,320,320,,,,865,865,865,320,865,320,320,320","865,865,320,320,,865,,865,865,865,865,865,865,865,,,,,,865,865,865,865","865,865,865,,,865,,,,,,,865,,,865,865,865,865,865,865,865,865,,865,865","865,,865,865,865,865,865,,,,,,,,,,,,,,,,,,,,865,,,865,,,865,865,,,865",",,,,,865,,,,,,,,,865,,,,,865,865,865,865,,865,865,865,865,,,,,865,865",",,,864,864,864,865,864,865,865,865,864,864,865,865,,864,,864,864,864","864,864,864,864,,,,,,864,864,864,864,864,864,864,,,864,,,,,,,864,,,864","864,864,864,864,864,864,864,,864,864,864,,864,864,864,864,864,,,,,,",",,,,,,,,,,,,,864,,,864,,,864,864,,,864,,,,,,864,,,,,,,,,864,,,,,864","864,864,864,,864,864,864,864,,,,,864,864,,,,863,863,863,864,863,864","864,864,863,863,864,864,,863,,863,863,863,863,863,863,863,,,,,,863,863","863,863,863,863,863,,,863,,,,,,,863,,,863,863,863,863,863,863,863,863",",863,863,863,,863,863,863,863,863,,,,,,,,,,,,,,,,,,,,863,,,863,,,863","863,,,863,,,,,,863,,,,,,,,,863,,,,,863,863,863,863,,863,863,863,863",",,,,863,863,,,,862,862,862,863,862,863,863,863,862,862,863,863,,862",",862,862,862,862,862,862,862,,,,,,862,862,862,862,862,862,862,,,862",",,,,,,862,,,862,862,862,862,862,862,862,862,,862,862,862,,862,862,862","862,862,,,,,,,,,,,,,,,,,,,,862,,,862,,,862,862,,,862,,,,,,862,,,,,,",",,862,,,,,862,862,862,862,,862,862,862,862,,,,,862,862,,,,849,849,849","862,849,862,862,862,849,849,862,862,,849,,849,849,849,849,849,849,849",",,,,,849,849,849,849,849,849,849,,,849,,,,,,,849,,,849,849,849,849,849","849,849,849,,849,849,849,,849,849,849,849,849,,,,,,,,,,,,,,,,,,,,849",",,849,,,849,849,,,849,,,,,,849,,,,,,,,,849,,,,,849,849,849,849,,849","849,849,849,,,,,849,849,,,,841,841,841,849,841,849,849,849,841,841,849","849,,841,,841,841,841,841,841,841,841,,,,,,841,841,841,841,841,841,841",",,841,,,,,,,841,,,841,841,841,841,841,841,841,841,,841,841,841,,841","841,841,841,841,,,,,,,,,,,,,,,,,,,,841,,,841,,,841,841,,,841,,,,,,841",",,,,,,,,841,,,,,841,841,841,841,,841,841,841,841,,,,,841,841,,,,821","821,821,841,821,841,841,841,821,821,841,841,,821,,821,821,821,821,821","821,821,,,,,,821,821,821,821,821,821,821,,,821,,,,,,,821,,,821,821,821","821,821,821,821,821,,821,821,821,,821,821,821,821,821,,,,,,,,,,,,,,",",,,,,821,,,821,,,821,821,,,821,,,,,,821,,,,,,,,,821,,,,,821,821,821","821,,821,821,821,821,,,,,821,821,,,,356,356,356,821,356,821,821,821","356,356,821,821,,356,,356,356,356,356,356,356,356,,,,,,356,356,356,356","356,356,356,,,356,,,,,,,356,,,356,356,356,356,356,356,356,356,,356,356","356,,356,356,356,356,356,,,,,,,,,,,,,,,,,,,,356,,,356,,,356,356,,,356",",,,,,356,,,,,,,,,356,,,,,356,356,356,356,,356,356,356,356,,,,,356,356",",,,358,358,358,356,358,356,356,356,358,358,356,356,,358,,358,358,358","358,358,358,358,,,,,,358,358,358,358,358,358,358,,,358,,,,,,,358,,,358","358,358,358,358,358,358,358,,358,358,358,,358,358,358,358,358,,,,,,",",,,,,,,,,,,,,358,,,358,358,,358,358,,,358,,,,,,358,,,,,,,,,358,,,,,358","358,358,358,,358,358,358,358,,,,,358,358,,,,776,776,776,358,776,358","358,358,776,776,358,358,,776,,776,776,776,776,776,776,776,,,,,,776,776","776,776,776,776,776,,,776,,,,,,,776,,,776,776,776,776,776,776,776,776",",776,776,776,,776,776,776,776,776,,,,,,,,,,,,,,,,,,,,776,,,776,,,776","776,,,776,,,,,,776,,,,,,,,,776,,,,,776,776,776,776,,776,776,776,776",",,,,776,776,,,,762,762,762,776,762,776,776,776,762,762,776,776,,762",",762,762,762,762,762,762,762,,,,,,762,762,762,762,762,762,762,,,762",",,,,,,762,,,762,762,762,762,762,762,762,762,,762,762,762,,762,762,762","762,762,,,,,,,,,,,,,,,,,,,,762,,,762,,,762,762,,,762,,762,,,,762,,,",",,,,,762,,,,,762,762,762,762,,762,762,762,762,,,,,762,762,,,,742,742","742,762,742,762,762,762,742,742,762,762,,742,,742,742,742,742,742,742","742,,,,,,742,742,742,742,742,742,742,,,742,,,,,,,742,,,742,742,742,742","742,742,742,742,,742,742,742,,742,742,742,742,742,,,,,,,,,,,,,,,,,,",",742,,,742,,,742,742,,,742,,,,,,742,,,,,,,,,742,,,,,742,742,742,742",",742,742,742,742,,,,,742,742,,,,739,739,739,742,739,742,742,742,739","739,742,742,,739,,739,739,739,739,739,739,739,,,,,,739,739,739,739,739","739,739,,,739,,,,,,,739,,,739,739,739,739,739,739,739,739,,739,739,739",",739,739,739,739,739,,,,,,,,,,,,,,,,,,,,739,,,739,,,739,739,,,739,,",",,,739,,,,,,,,,739,,,,,739,739,739,739,,739,739,739,739,,,,,739,739",",,,381,381,381,739,381,739,739,739,381,381,739,739,,381,,381,381,381","381,381,381,381,,,,,,381,381,381,381,381,381,381,,,381,,,,,,,381,,,381","381,381,381,381,381,381,381,,381,381,381,,381,381,381,381,381,,,,,,",",,,,,,,,,,,,,381,,,381,,,381,381,,,381,,,,,,381,,,,,,,,,381,,,,,381","381,381,381,,381,381,381,381,,,,,381,381,,,,730,730,730,381,730,381","381,381,730,730,381,381,,730,,730,730,730,730,730,730,730,,,,,,730,730","730,730,730,730,730,,,730,,,,,,,730,,,730,730,730,730,730,730,730,730","730,730,730,730,,730,730,730,730,730,,,,,,,,,,,,,,,,,,,,730,,,730,,","730,730,,,730,,730,,730,,730,,,730,,,,,,730,,,,,730,730,730,730,,730","730,730,730,,,,,730,730,,,,682,682,682,730,682,730,730,730,682,682,730","730,,682,,682,682,682,682,682,682,682,,,,,,682,682,682,682,682,682,682",",,682,,,,,,,682,,,682,682,682,682,682,682,682,682,,682,682,682,,682","682,682,682,682,,,,,,,,,,,,,,,,,,,,682,,,682,,,682,682,,,682,,,,,,682",",,,,,,,,682,,,,,682,682,682,682,,682,682,682,682,,,,,682,682,,,,402","402,402,682,402,682,682,682,402,402,682,682,,402,,402,402,402,402,402","402,402,,,,,,402,402,402,402,402,402,402,,,402,,,,,,,402,,,402,402,402","402,402,402,402,402,,402,402,402,,402,402,402,402,402,,,,,,,,,,,,,,",",,,,,402,,,402,,,402,402,,,402,,,,,,402,,,,,,,,,402,,,,,402,402,402","402,,402,402,402,402,,,,,402,402,,,,681,681,681,402,681,402,402,402","681,681,402,402,,681,,681,681,681,681,681,681,681,,,,,,681,681,681,681","681,681,681,,,681,,,,,,,681,,,681,681,681,681,681,681,681,681,,681,681","681,,681,681,681,681,681,,,,,,,,,,,,,,,,,,,,681,,,681,,,681,681,,,681",",,,,,681,,,,,,,,,681,,,,,681,681,681,681,,681,681,681,681,,,,,681,681",",,,677,677,677,681,677,681,681,681,677,677,681,681,,677,,677,677,677","677,677,677,677,,,,,,677,677,677,677,677,677,677,,,677,,,,,,,677,,,677","677,677,677,677,677,677,677,,677,677,677,,677,677,677,677,677,,,,,,",",,,,,,,,,,,,,677,,,677,,,677,677,,,677,,,,,,677,,,,,,,,,677,,,,,677","677,677,677,,677,677,677,677,,,,,677,677,,,,676,676,676,677,676,677","677,677,676,676,677,677,,676,,676,676,676,676,676,676,676,,,,,,676,676","676,676,676,676,676,,,676,,,,,,,676,,,676,676,676,676,676,676,676,676",",676,676,676,,676,676,676,676,676,,,,,,,,,,,,,,,,,,,,676,,,676,,,676","676,,,676,,,,,,676,,,,,,,,,676,,,,,676,676,676,676,,676,676,676,676",",,,,676,676,,,,675,675,675,676,675,676,676,676,675,675,676,676,,675",",675,675,675,675,675,675,675,,,,,,675,675,675,675,675,675,675,,,675",",,,,,,675,,,675,675,675,675,675,675,675,675,675,675,675,675,,675,675","675,675,675,,,,,,,,,,,,,,,,,,,,675,,,675,,,675,675,,,675,,,,675,,675",",,675,,,,,,675,,,,,675,675,675,675,,675,675,675,675,,,,,675,675,,,,674","674,674,675,674,675,675,675,674,674,675,675,,674,,674,674,674,674,674","674,674,,,,,,674,674,674,674,674,674,674,,,674,,,,,,,674,,,674,674,674","674,674,674,674,674,674,674,674,674,,674,674,674,674,674,,,,,,,,,,,",",,,,,,,,674,,,674,,,674,674,,,674,,674,,674,,674,,,674,,,,,,674,,,,","674,674,674,674,,674,674,674,674,,,,,674,674,,,,671,671,671,674,671","674,674,674,671,671,674,674,,671,,671,671,671,671,671,671,671,,,,,,671","671,671,671,671,671,671,,,671,,,,,,,671,,,671,671,671,671,671,671,671","671,,671,671,671,,671,671,671,671,671,,,,,,,,,,,,,,,,,,,,671,,,671,",",671,671,,,671,,,,,,671,,,,,,,,,671,,,,,671,671,671,671,,671,671,671","671,,,,,671,671,,,,,,,671,,671,671,671,,,671,671,670,670,670,670,670",",,,670,670,,,,670,,670,670,670,670,670,670,670,,,,,,670,670,670,670","670,670,670,,,670,,,,,,670,670,,670,670,670,670,670,670,670,670,670",",670,670,670,,670,670,670,670,670,,,,,,,,,,,,,,,,,,,,670,,,670,,,670","670,,,670,,670,,,,670,,,,,,,,,670,,,,,670,670,670,670,,670,670,670,670",",,,,670,670,,,,667,667,667,670,667,670,670,670,667,667,670,670,,667",",667,667,667,667,667,667,667,,,,,,667,667,667,667,667,667,667,,,667",",,,,,,667,,,667,667,667,667,667,667,667,667,667,667,667,667,,667,667","667,667,667,,,,,,,,,,,,,,,,,,,,667,,,667,,,667,667,,,667,,667,,667,","667,,,667,,,,,,667,,,,,667,667,667,667,,667,667,667,667,,,,,667,667",",,,666,666,666,667,666,667,667,667,666,666,667,667,,666,,666,666,666","666,666,666,666,,,,,,666,666,666,666,666,666,666,,,666,,,,,,,666,,,666","666,666,666,666,666,666,666,,666,666,666,,666,666,666,666,666,,,,,,",",,,,,,,,,,,,,666,,,666,,,666,666,,,666,,,,,,666,,,,,,,,,666,,,,,666","666,666,666,,666,666,666,666,,,,,666,666,,,,665,665,665,666,665,666","666,666,665,665,666,666,,665,,665,665,665,665,665,665,665,,,,,,665,665","665,665,665,665,665,,,665,,,,,,,665,,,665,665,665,665,665,665,665,665",",665,665,665,,665,665,665,665,665,,,,,,,,,,,,,,,,,,,,665,,,665,,,665","665,,,665,,665,,,,665,,,,,,,,,665,,,,,665,665,665,665,,665,665,665,665",",,,,665,665,,,,,,,665,,665,665,665,,,665,665,663,663,663,663,663,,,","663,663,,,,663,,663,663,663,663,663,663,663,,,,,,663,663,663,663,663","663,663,,,663,,,,,,663,663,,663,663,663,663,663,663,663,663,663,,663","663,663,,663,663,663,663,663,,,,,,,,,,,,,,,,,,,,663,,,663,,,663,663",",,663,,663,,,,663,,,,,,,,,663,,,,,663,663,663,663,,663,663,663,663,",",,,663,663,,,,431,431,431,663,431,663,663,663,431,431,663,663,,431,","431,431,431,431,431,431,431,,,,,,431,431,431,431,431,431,431,,,431,",",,,,,431,,,431,431,431,431,431,431,431,431,,431,431,431,,431,431,431","431,431,,,,,,,,,,,,,,,,,,,,431,,,431,,,431,431,,,431,,,,,,431,,,,,,",",,431,,,,,431,431,431,431,,431,431,431,431,,,,,431,431,,,,632,632,632","431,632,431,431,431,632,632,431,431,,632,,632,632,632,632,632,632,632",",,,,,632,632,632,632,632,632,632,,,632,,,,,,,632,,,632,632,632,632,632","632,632,632,632,632,632,632,,632,632,632,632,632,,,,,,,,,,,,,,,,,,,","632,,,632,,,632,632,,,632,,632,,632,,632,,,632,,,,,,632,,,,,632,632","632,632,,632,632,632,632,,,,,632,632,,,,622,622,622,632,622,632,632","632,622,622,632,632,,622,,622,622,622,622,622,622,622,,,,,,622,622,622","622,622,622,622,,,622,,,,,,,622,,,622,622,622,622,622,622,622,622,622","622,622,622,,622,622,622,622,622,,,,,,,,,,,,,,,,,,,,622,,,622,,,622","622,,,622,,622,,622,,622,,,622,,,,,,622,,,,,622,622,622,622,,622,622","622,622,,,,,622,622,,,,621,621,621,622,621,622,622,622,621,621,622,622",",621,,621,621,621,621,621,621,621,,,,,,621,621,621,621,621,621,621,",",621,,,,,,,621,,,621,621,621,621,621,621,621,621,,621,621,621,,621,621","621,621,621,,,,,,,,,,,,,,,,,,,,621,,,621,,,621,621,,,621,,621,,,,621",",,,,,,,,621,,,,,621,621,621,621,,621,621,621,621,,,,,621,621,,,,608","608,608,621,608,621,621,621,608,608,621,621,,608,,608,608,608,608,608","608,608,,,,,,608,608,608,608,608,608,608,,,608,,,,,,,608,,,608,608,608","608,608,608,608,608,608,608,608,608,,608,608,608,608,608,,,,,,,,,,,",",,,,,,,,608,,,608,,,608,608,,,608,,,,,,608,,,608,,,,,,608,,,,,608,608","608,608,,608,608,608,608,,,,,608,608,,,,605,605,605,608,605,608,608","608,605,605,608,608,,605,,605,605,605,605,605,605,605,,,,,,605,605,605","605,605,605,605,,,605,,,,,,,605,,,605,605,605,605,605,605,605,605,605","605,605,605,,605,605,605,605,605,,,,,,,,,,,,,,,,,,,,605,,,605,,,605","605,,,605,,605,,,,605,,,605,,,,,,605,,,,,605,605,605,605,,605,605,605","605,,,,,605,605,,,,,,,605,,605,605,605,455,,605,605,,,,455,455,455,",",455,455,455,,455,,,,,,,,455,455,455,455,,,,,,,,,455,455,,455,455,455","455,455,,,,,,,,,,,,,,,,,,,,,,,455,455,455,455,455,455,455,455,455,455","455,455,455,455,,,455,455,455,,,455,,455,455,,,455,455,,455,,455,,455",",455,455,,455,455,455,455,455,,455,455,455,,,,,,,,,,,,,,455,,,455,455",",455,,455,599,599,599,,599,,455,,599,599,,,,599,,599,599,599,599,599","599,599,,,,,,599,599,599,599,599,599,599,,,599,,,,,,,599,,,599,599,599","599,599,599,599,599,,599,599,599,,599,599,599,599,599,,,,,,,,,,,,,,",",,,,,599,,,599,,,599,599,,,599,,,,,,599,,,,,,,,,599,,,,,599,599,599","599,,599,599,599,599,,,,,599,599,,,,,,,599,,599,599,599,464,,599,599",",,,464,464,464,,,464,464,464,,464,,,,,,,,464,464,464,464,464,,,,,,,","464,464,,464,464,464,464,464,,,,,,,,,,,,,,,,,,,,,,,464,464,464,464,464","464,464,464,464,464,464,464,464,464,,,464,464,464,,,464,,,464,,,464","464,,464,,464,,464,,464,464,,464,464,464,464,464,,464,464,464,,,,,,",",,,,,,,464,,,464,464,464,464,,464,465,464,,,,,464,465,465,465,,,465","465,465,,465,,,,,,,,465,465,465,465,465,,,,,,,,465,465,,465,465,465","465,465,,,,,,,,,,,,,,,,,,,,,,,465,465,465,465,465,465,465,465,465,465","465,465,465,465,,,465,465,465,,,465,,,465,,,465,465,,465,,465,,465,","465,465,,465,465,465,465,465,,465,465,465,,,,,,,,,,,,,,465,,,465,465","465,465,,465,,465,,585,585,585,465,585,,,,585,585,,,,585,,585,585,585","585,585,585,585,,,,,,585,585,585,585,585,585,585,,,585,,,,,,,585,,,585","585,585,585,585,585,585,585,,585,585,585,,585,585,585,585,585,,,,,,",",,,,,,,,,,,,,585,,,585,,,585,585,,,585,,,,,,585,,,,,,,,,585,,,,,585","585,585,585,,585,585,585,585,,,,,585,585,,,,559,559,559,585,559,585","585,585,559,559,585,585,,559,,559,559,559,559,559,559,559,,,,,,559,559","559,559,559,559,559,,,559,,,,,,,559,,,559,559,559,559,559,559,559,559",",559,559,559,,559,559,559,559,559,,,,,,,,,,,,,,,,,,,,559,,,559,,,559","559,,,559,,,,,,559,,,,,,,,,559,,,,,559,559,559,559,,559,559,559,559",",,,,559,559,,,,558,558,558,559,558,559,559,559,558,558,559,559,,558",",558,558,558,558,558,558,558,,,,,,558,558,558,558,558,558,558,,,558",",,,,,,558,,,558,558,558,558,558,558,558,558,,558,558,558,,558,558,558","558,558,,,,,,,,,,,,,,,,,,,,558,,,558,,,558,558,,,558,,,,,,558,,,,,,",",,558,,,,,558,558,558,558,,558,558,558,558,,,,,558,558,,,,474,474,474","558,474,558,558,558,474,474,558,558,,474,,474,474,474,474,474,474,474",",,,,,474,474,474,474,474,474,474,,,474,,,,,,,474,,,474,474,474,474,474","474,474,474,474,474,474,474,,474,474,474,474,474,,,,,,,,,,,,,,,,,,,","474,,,474,,,474,474,,,474,,474,,474,,474,,,474,,,,,,474,,,,,474,474","474,474,,474,474,474,474,,,,,474,474,,,,555,555,555,474,555,474,474","474,555,555,474,474,,555,,555,555,555,555,555,555,555,,,,,,555,555,555","555,555,555,555,,,555,,,,,,,555,,,555,555,555,555,555,555,555,555,,555","555,555,,555,555,555,555,555,,,,,,,,,,,,,,,,,,,,555,,,555,,,555,555",",,555,,,,,,555,,,,,,,,,555,,,,,555,555,555,555,,555,555,555,555,,,,","555,555,,,,476,476,476,555,476,555,555,555,476,476,555,555,,476,,476","476,476,476,476,476,476,,,,,,476,476,476,476,476,476,476,,,476,,,,,",",476,,,476,476,476,476,476,476,476,476,,476,476,476,,476,476,476,476","476,,,,,,,,,,,,,,,,,,,,476,,,476,,,476,476,,,476,,,,,,476,,,,,,,,,476",",,,,476,476,476,476,,476,476,476,476,,,,,476,476,,,,477,477,477,476","477,476,476,476,477,477,476,476,,477,,477,477,477,477,477,477,477,,",",,,477,477,477,477,477,477,477,,,477,,,,,,,477,,,477,477,477,477,477","477,477,477,,477,477,477,,477,477,477,477,477,,,,,,,,,,,,,,,,,,,,477",",,477,,,477,477,,,477,,,,,,477,,,,,,,,,477,,,,,477,477,477,477,,477","477,477,477,,,,,477,477,,,,478,478,478,477,478,477,477,477,478,478,477","477,,478,,478,478,478,478,478,478,478,,,,,,478,478,478,478,478,478,478",",,478,,,,,,,478,,,478,478,478,478,478,478,478,478,,478,478,478,,478","478,478,478,478,,,,,,,,,,,,,,,,,,,,478,,,478,,,478,478,,,478,,,,,,478",",,,,,,,,478,,,,,478,478,478,478,,478,478,478,478,,,,,478,478,,,,552","552,552,478,552,478,478,478,552,552,478,478,,552,,552,552,552,552,552","552,552,,,,,,552,552,552,552,552,552,552,,,552,,,,,,,552,,,552,552,552","552,552,552,552,552,,552,552,552,,552,552,552,552,552,,,,,,,,,,,,,,",",,,,,552,,,552,,,552,552,,,552,,,,,,552,,,,,,,,,552,,,,,552,552,552","552,,552,552,552,552,,,,,552,552,,,,542,542,542,552,542,552,552,552","542,542,552,552,,542,,542,542,542,542,542,542,542,,,,,,542,542,542,542","542,542,542,,,542,,,,,,,542,,,542,542,542,542,542,542,542,542,542,542","542,542,,542,542,542,542,542,,,,,,,,,,,,,,,,,,,,542,,,542,,,542,542",",,542,,542,,542,,542,,,542,,,,,,542,,,,,542,542,542,542,,542,542,542","542,,,,,542,542,,,,,,,542,,542,542,542,,,542,542,532,532,532,532,532",",,,532,532,,,,532,,532,532,532,532,532,532,532,,,,,,532,532,532,532","532,532,532,,,532,,,,,,532,532,532,532,532,532,532,532,532,532,532,532",",532,532,532,,532,532,532,532,532,,,,,,,,,,,,,,,,,,,,532,,,532,,,532","532,,,532,,532,,,,532,,,,,,,,,532,,,,,532,532,532,532,,532,532,532,532",",,,,532,532,,,,,,532,532,,532,532,532,,,532,532,526,526,526,,526,,,","526,526,,,,526,,526,526,526,526,526,526,526,,,,,,526,526,526,526,526","526,526,,,526,,,,,,,526,,,526,526,526,526,526,526,526,526,,526,526,526",",526,526,526,526,526,,,,,,,,,,,,,,,,,,,,526,,,526,,,526,526,,,526,,",",,,526,,,,,,,,,526,,,,,526,526,526,526,,526,526,526,526,,,,,526,526",",,,524,524,524,526,524,526,526,526,524,524,526,526,,524,,524,524,524","524,524,524,524,,,,,,524,524,524,524,524,524,524,,,524,,,,,,,524,,,524","524,524,524,524,524,524,524,524,524,524,524,,524,524,524,524,524,,,",",,,,,,,,,,,,,,,,524,,,524,,,524,524,,,524,,,,524,,524,,,524,,,,,,524",",,,,524,524,524,524,,524,524,524,524,,,,,524,524,,,,522,522,522,524","522,524,524,524,522,522,524,524,,522,,522,522,522,522,522,522,522,,",",,,522,522,522,522,522,522,522,,,522,,,,,,,522,,,522,522,522,522,522","522,522,522,522,522,522,522,,522,522,522,522,522,,,,,,,,,,,,,,,,,,,","522,,,522,,,522,522,,,522,,522,,522,,522,,,522,,,,,,522,,,,,522,522","522,522,,522,522,522,522,,,,,522,522,,,,216,216,216,522,216,522,522","522,216,216,522,522,,216,,216,216,216,216,216,216,216,,,,,,216,216,216","216,216,216,216,,,216,,,,,,,216,,,216,216,216,216,216,216,216,216,,216","216,216,,216,216,216,216,216,,,,,,,,,,,,,,,,,,,,216,,,216,,,216,216",",,216,,216,,,,216,,,,,,,,,216,,,,,216,216,216,216,,216,216,216,216,",",,,216,216,,,,217,217,217,216,217,216,216,216,217,217,216,216,,217,","217,217,217,217,217,217,217,,,,,,217,217,217,217,217,217,217,,,217,",",,,,,217,,,217,217,217,217,217,217,217,217,,217,217,217,,217,217,217","217,217,,,,,,,,,,,,,,,,,,,,217,,,217,,,217,217,,,217,,217,,,,217,,,",",,,,,217,,,,,217,217,217,217,,217,217,217,217,,,,,217,217,,,,218,218","218,217,218,217,217,217,218,218,217,217,,218,,218,218,218,218,218,218","218,,,,,,218,218,218,218,218,218,218,,,218,,,,,,,218,,,218,218,218,218","218,218,218,218,,218,218,218,,218,218,218,218,218,,,,,,,,,,,,,,,,,,",",218,,,218,,,218,218,,,218,,,,,,218,,,,,,,,,218,,,,,218,218,218,218",",218,218,218,218,,,,,218,218,,,,219,219,219,218,219,218,218,218,219","219,218,218,,219,,219,219,219,219,219,219,219,,,,,,219,219,219,219,219","219,219,,,219,,,,,,,219,,,219,219,219,219,219,219,219,219,,219,219,219",",219,219,219,219,219,,,,,,,,,,,,,,,,,,,,219,,,219,,,219,219,,,219,,",",,,219,,,,,,,,,219,,,,,219,219,219,219,,219,219,219,219,,,,,219,219",",,,220,220,220,219,220,219,219,219,220,220,219,219,,220,,220,220,220","220,220,220,220,,,,,,220,220,220,220,220,220,220,,,220,,,,,,,220,,,220","220,220,220,220,220,220,220,,220,220,220,,220,220,220,220,220,,,,,,",",,,,,,,,,,,,,220,,,220,,,220,220,,,220,,,,,,220,,,,,,,,,220,,,,,220","220,220,220,,220,220,220,220,,,,,220,220,,,,221,221,221,220,221,220","220,220,221,221,220,220,,221,,221,221,221,221,221,221,221,,,,,,221,221","221,221,221,221,221,,,221,,,,,,,221,,,221,221,221,221,221,221,221,221","221,221,221,221,,221,221,221,221,221,,,,,,,,,,,,,,,,,,,,221,,,221,,","221,221,,,221,,221,,221,,221,,,221,,,,,,221,,,,,221,221,221,221,,221","221,221,221,,,,,221,221,,,,226,226,226,221,226,221,221,221,226,226,221","221,,226,,226,226,226,226,226,226,226,,,,,,226,226,226,226,226,226,226",",,226,,,,,,,226,,,226,226,226,226,226,226,226,226,,226,226,226,,226","226,226,226,226,,,,,,,,,,,,,,,,,,,,226,,,226,,,226,226,,,226,,,,,,226",",,,,,,,,226,,,,,226,226,226,226,,226,226,226,226,,,,,226,226,,,,227","227,227,226,227,226,226,226,227,227,226,226,,227,,227,227,227,227,227","227,227,,,,,,227,227,227,227,227,227,227,,,227,,,,,,,227,,,227,227,227","227,227,227,227,227,,227,227,227,,227,227,227,227,227,,,,,,,,,,,,,,",",,,,,227,,,227,,,227,227,,,227,,,,,,227,,,,,,,,,227,,,,,227,227,227","227,,227,227,227,227,,,,,227,227,,,,1020,1020,1020,227,1020,227,227","227,1020,1020,227,227,,1020,,1020,1020,1020,1020,1020,1020,1020,,,,",",1020,1020,1020,1020,1020,1020,1020,,,1020,,,,,,,1020,,,1020,1020,1020","1020,1020,1020,1020,1020,,1020,1020,1020,,1020,1020,,,1020,,,,,,,,,",",,,,,,,,,,1020,,,1020,,,1020,1020,,,1020,,,,,,,,,,,,,,,,,,,,1020,1020","1020,1020,,1020,1020,1020,1020,,,,,1020,1020,,,,76,76,76,1020,76,1020","1020,1020,76,76,,,,76,,76,76,76,76,76,76,76,,,,,,76,76,76,76,76,76,76",",,76,,,,,,,76,,,76,76,76,76,76,76,76,76,,76,76,76,,76,76,,,76,,,,,,",",,,,,,,,,,,,,76,,,76,,,76,76,,,76,,76,,,,,,,,,,,,,,,,,,76,76,76,76,","76,76,76,76,,,,,76,76,,,,745,745,745,76,745,76,76,76,745,745,,,,745",",745,745,745,745,745,745,745,,,,,,745,745,745,745,745,745,745,,,745",",,,,,,745,,,745,745,745,745,745,745,745,745,,745,745,745,,745,745,,","745,,,,,,,,,,,,,,,,,,,,745,,,745,,,745,745,,,745,,,,,,,,,,,,,,,,,,,","745,745,745,745,,745,745,745,745,,,,,745,745,,,,756,756,756,745,756","745,745,745,756,756,,,,756,,756,756,756,756,756,756,756,,,,,,756,756","756,756,756,756,756,,,756,,,,,,,756,,,756,756,756,756,756,756,756,756",",756,756,756,,756,756,,,756,,,,,,,,,,,,,,,,,,,,756,,,756,,,756,756,",",756,,,,,,,,,,,,,,,,,,,,756,756,756,756,,756,756,756,756,,,,,756,756",",,,347,347,347,756,347,756,756,756,347,347,,,,347,,347,347,347,347,347","347,347,,,,,,347,347,347,347,347,347,347,,,347,,,,,,,347,,,347,347,347","347,347,347,347,347,,347,347,347,,347,347,,,347,,,,,,,,,,,,,,,,,,,,347",",,347,,,347,347,,,347,,,,,,,,,,,,,,,,,,,,347,347,347,347,,347,347,347","347,,,,,347,347,,,,37,37,37,347,37,347,347,347,37,37,,,,37,,37,37,37","37,37,37,37,,,,,,37,37,37,37,37,37,37,,,37,,,,,,,37,,,37,37,37,37,37","37,37,37,,37,37,37,,37,37,,,37,,,,,,,,,,,,,,,,,,,,37,,,37,,,37,37,,","37,,37,,,,,,,,,,,,,,,,,,37,37,37,37,,37,37,37,37,,,,,37,37,,,,549,549","549,37,549,37,37,37,549,549,,,,549,,549,549,549,549,549,549,549,,,,",",549,549,549,549,549,549,549,,,549,,,,,,,549,,,549,549,549,549,549,549","549,549,,549,549,549,,549,549,,,549,,,,,,,,,,,,,,,,,,,,549,,,549,,,549","549,,,549,,,,,,,,,,,,,,,,,,,,549,549,549,549,,549,549,549,549,,,,,549","549,,,,1100,1100,1100,549,1100,549,549,549,1100,1100,,,,1100,,1100,1100","1100,1100,1100,1100,1100,,,,,,1100,1100,1100,1100,1100,1100,1100,,,1100",",,,,,,1100,,,1100,1100,1100,1100,1100,1100,1100,1100,,1100,1100,1100",",1100,1100,,,1100,,,,,,,,,,,,,,,,,,,,1100,,,1100,,,1100,1100,,,1100",",,,,,,,,,,,,,,,,,,,1100,1100,1100,1100,,1100,1100,1100,1100,,,,,1100","1100,,,,77,77,77,1100,77,1100,1100,1100,77,77,,,,77,,77,77,77,77,77","77,77,,,,,,77,77,77,77,77,77,77,,,77,,,,,,,77,,,77,77,77,77,77,77,77","77,,77,77,77,,77,77,,,77,,,,,,,,,,,,,,,,,77,,,77,,,77,,,77,77,,,77,",",,,,,,,,,,,,,,,,,,77,77,77,77,,77,77,77,77,,,,,77,77,,,,540,540,540","77,540,77,77,77,540,540,,,,540,,540,540,540,540,540,540,540,,,,,,540","540,540,540,540,540,540,,,540,,,,,,,540,,,540,540,540,540,540,540,540","540,,540,540,540,,540,540,,,540,,,,,,,,,,,,,,,,,,,,540,,,540,,,540,540",",,540,,,,,,,,,,,,,,,,,,,,540,540,540,540,,540,540,540,540,,,,,540,540",",,,78,78,78,540,78,540,540,540,78,78,,,,78,,78,78,78,78,78,78,78,,,",",,78,78,78,78,78,78,78,,,78,,,,,,,78,,,78,78,78,78,78,78,78,78,,78,78","78,,78,78,,,78,,,,,,,,,,,,,,,,,,,,78,,,78,,,78,78,,,78,,,,,,,,,,,,,",",,,,,,78,78,78,78,,78,78,78,78,,,,,78,78,,,,38,38,38,78,38,78,78,78","38,38,,,,38,,38,38,38,38,38,38,38,,,,,,38,38,38,38,38,38,38,,,38,,,",",,,38,,,38,38,38,38,38,38,38,38,,38,38,38,,38,38,,,38,,,,,,,,,,,,,,",",,,,,38,,,38,,,38,38,,,38,,,774,,774,774,774,774,774,,,,,,,,,774,,38","38,38,38,,38,38,38,38,,,,,38,38,,,,38,,774,38,,38,38,38,328,328,328",",328,774,774,,328,328,774,,,328,,328,328,328,328,328,328,328,,,,,,328","328,328,328,328,328,328,,,328,,,,,,,328,,,328,328,328,328,328,328,328","328,,328,328,328,,328,328,,,328,,,,,,,,,,,,,,,,,,,,328,,,328,,,328,328",",,328,,,1040,,1040,1040,1040,1040,1040,,,,,,,,,1040,,328,328,328,328",",328,328,328,328,,,,,328,328,,,,328,,1040,328,,328,328,328,1030,1030","1030,,1030,1040,1040,,1030,1030,1040,,,1030,,1030,1030,1030,1030,1030","1030,1030,,,,,,1030,1030,1030,1030,1030,1030,1030,,,1030,,,,,,,1030",",,1030,1030,1030,1030,1030,1030,1030,1030,,1030,1030,1030,,1030,1030",",,1030,,,,,,,,,,,,,,,,,,,,1030,,,1030,,,1030,1030,,,1030,,,,,,,,,,,",",,,,,,,,1030,1030,1030,1030,,1030,1030,1030,1030,,,,,1030,1030,,,,,",",1030,,1030,1030,1030,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11","11,11,11,11,11,11,11,11,,,,11,11,11,11,11,11,11,11,11,11,,,,,,11,11","11,11,11,11,11,11,11,,,11,,,,,,,,11,11,,11,11,11,11,11,11,11,,,11,11",",,,11,11,11,11,,,,,,,,,,,,,,11,11,,11,11,11,11,11,11,11,11,11,11,11","11,,,11,11,,,,,,,,,,,,,,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10","10,10,10,10,10,10,10,10,10,10,,,,10,10,10,10,10,10,10,10,10,10,,,,,","10,10,10,10,10,10,10,10,10,10,,10,,,,,,,,10,10,,10,10,10,10,10,10,10",",,10,10,,,,10,10,10,10,,,,,,,,,,,,,,10,10,,10,10,10,10,10,10,10,10,10","10,10,10,,,10,10,,,,,,,,,,,,,,10,661,661,661,661,661,661,661,661,661","661,661,661,661,661,661,661,661,661,661,661,661,661,661,661,,,,661,661","661,661,661,661,661,661,661,661,,,,,,661,661,661,661,661,661,661,661","661,,,661,,,,,,,,661,661,,661,661,661,661,661,661,661,,,661,661,,,,661","661,661,661,,,,,,,,,,,,,,661,661,,661,661,661,661,661,661,661,661,661","661,661,661,,,661,661,,,,,,,,,,,,,,661,422,422,422,422,422,422,422,422","422,422,422,422,422,422,422,422,422,422,422,422,422,422,422,422,,,,422","422,422,422,422,422,422,422,422,422,,,,,,422,422,422,422,422,422,422","422,422,,,422,,,,,,,,422,422,,422,422,422,422,422,422,422,,,422,422",",,,422,422,422,422,,,,,,,,,,,,,,422,422,,422,422,422,422,422,422,422","422,422,422,422,422,,,422,422,,,,,,,,,,,,,,422,24,24,24,24,24,24,24","24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,,,,24,24,24,24,24","24,24,24,24,24,,,,,,24,24,24,24,24,24,24,24,24,24,24,24,,24,,,,,,24","24,,24,24,24,24,24,24,24,,,24,24,,,,24,24,24,24,,,,,,24,,,,,,,,24,24",",24,24,24,24,24,24,24,24,24,24,24,24,,,24,998,998,998,998,,,,,,,,,,",",,998,998,998,998,,,364,998,364,364,364,364,364,998,998,,,998,,,,364",",,,,,,,,,,,,,,,998,,,998,,,364,998,,,998,,,,,364,364,364,364,,,,364",",,,998,,,,998,998,998,998,,998,998,998,998,,,,,998,998,1081,1081,1081","1081,,,998,,998,998,998,,,998,998,,1081,1081,1081,1081,,,790,1081,790","790,790,790,790,1081,1081,,,1081,,,,790,,,,,,,,,,,,,,,,1081,,,1081,",",790,1081,,,1081,,,,,790,790,790,790,,,,790,,,,1081,,,,1081,1081,1081","1081,,1081,1081,1081,1081,,,,,1081,1081,982,982,982,982,,,1081,,1081","1081,1081,,,1081,1081,,982,982,982,982,,,1209,982,1209,1209,1209,1209","1209,982,982,,,982,,,,1209,,,,,,,,,,,,,,,,982,,,982,,,1209,982,,,982",",,,,,,1209,1209,,,,1209,,,,982,,,,982,982,982,982,,982,982,982,982,",",,,982,982,1135,1135,1135,1135,,,982,,982,982,982,,,982,982,,1135,1135","1135,1135,,,772,1135,772,772,772,772,772,1135,1135,,,1135,,,,772,,,",",,,,,,,,,,,,1135,,,1135,,,772,1135,,,1135,,,,,772,772,772,772,,,,772",",,,1135,,,,1135,1135,1135,1135,,1135,1135,1135,1135,,,,,1135,1135,1197","1197,1197,1197,,,1135,,1135,1135,1135,,,1135,1135,,1197,1197,1197,1197",",,1038,1197,1038,1038,1038,1038,1038,1197,1197,,,1197,,,,1038,,,,,,",",,,,,,,,,1197,,,1197,,,1038,1197,,,1197,,,,,,,1038,1038,,,,1038,,,,1197",",,,1197,1197,1197,1197,,1197,1197,1197,1197,,,,,1197,1197,1137,1137","1137,1137,,,1197,,1197,1197,1197,,,1197,1197,,1137,1137,1137,1137,,","1035,1137,1035,1035,1035,1035,1035,1137,1137,,,1137,,,,1035,,,,,,,,",",,,,,,,1137,,,1137,,,1035,1137,,,1137,,1137,,,,,1035,1035,,,,1035,,",",1137,,,,1137,1137,1137,1137,,1137,1137,1137,1137,,,,,1137,1137,1173","1173,1173,1173,,,1137,,1137,1137,1137,,,1137,1137,,1173,1173,1173,1173",",,1156,1173,1156,1156,1156,1156,1156,1173,1173,,,1173,,,,1156,,,,,,",",,,,,,,,,1173,,,1173,,,1156,1173,,,1173,,,,,,,1156,1156,,,,1156,,,,1173",",,,1173,1173,1173,1173,,1173,1173,1173,1173,,,,,1173,1173,,,,,,,1173",",1173,1173,1173,,,1173,1173,722,722,722,722,722,722,722,722,722,722","722,722,722,722,722,722,722,722,722,722,722,722,722,722,,,,722,722,722","722,722,722,722,722,722,722,,,,,,722,722,722,722,722,722,722,722,722",",,722,,,,,,,,722,722,,722,722,722,722,722,722,722,,,722,722,,,,722,722","722,722,,,,,,,,,,,,,,722,722,,722,722,722,722,722,722,722,722,722,722","722,722,,,722,950,950,950,950,,,1096,,1096,1096,1096,1096,1096,,,,950","950,950,950,,1096,,950,950,,,,,950,950,,,950,950,,,,,,,,,1096,,,,,,",",,,950,1096,1096,950,,,1096,950,,,950,,950,,,,,,,950,,,,,,,950,,,,950","950,950,950,,950,950,950,950,,,,,950,950,698,698,698,698,,,950,,950","950,950,,,950,950,,698,698,698,698,,,1033,698,1033,1033,1033,1033,1033","698,698,,,698,,,,1033,,,,,,,,,,,,,,,,698,,,698,,,1033,698,,,698,,698",",,1033,1033,1033,1033,,,,1033,,,,698,,,,698,698,698,698,,698,698,698","698,,,,,698,698,698,886,886,886,886,,698,,698,698,698,,,698,698,,,886","886,886,886,,,1091,886,1091,1091,1091,1091,1091,886,886,,,886,,,,1091",",,,,,,,,,,,,,,,886,,,886,,,1091,886,,,886,,,,,1091,1091,1091,1091,,",",1091,,,,886,,,,886,886,886,886,,886,886,886,886,,,,,886,886,479,479","479,479,,,886,,886,886,886,,,886,886,,479,479,479,479,,,1094,479,1094","1094,1094,1094,1094,479,479,,,479,,,,1094,,,,,,,,,,,,,,,,479,,,479,",",1094,479,,,479,,,,,1094,1094,1094,1094,,,,1094,,,,479,,,,479,479,479","479,,479,479,479,479,,,,,479,479,878,878,878,878,,,479,,479,479,479",",,479,479,,878,878,878,878,,,1183,878,1183,1183,1183,1183,1183,878,878",",,878,,,,1183,,,,,,,,,,,,,,,,878,,,878,,,1183,878,,,878,,878,,,,,1183","1183,,,,1183,,,,878,,,,878,878,878,878,,878,878,878,878,,,,,878,878","872,872,872,872,,,878,,878,878,878,,,878,878,,872,872,872,872,,,,872","872,,,,,872,872,,,872,872,,,,,,,,,,,,,,,,,,,872,,,872,,,,872,,,872,","872,,,,,,,872,,,,,,,872,,,,872,872,872,872,,872,872,872,872,,,,,872","872,871,871,871,871,,,872,,872,872,872,,,872,872,,871,871,871,871,,",",871,871,,,,,871,871,,,871,871,,,,,,,,,,,,,,,,,,,871,,,871,,,,871,,","871,,871,,,,,,,871,,,,,,,871,,,,871,871,871,871,,871,871,871,871,,,",",871,871,868,868,868,868,,,871,,871,871,871,,,871,871,,868,868,868,868",",,1181,868,1181,1181,1181,1181,1181,868,868,,,868,,,,1181,,,,,,,,,,",",,,,,868,,,868,,,1181,868,,,868,,,,,,,1181,1181,,,,1181,,,,868,,,,868","868,868,868,,868,868,868,868,,,,,868,868,480,480,480,480,,,868,,868","868,868,,,868,868,,480,480,480,480,,,1179,480,1179,1179,1179,1179,1179","480,480,,,480,,,,1179,,,,,,,,,,,,,,,,480,,,480,,,1179,480,,,480,,,,",",,1179,1179,,,,1179,,,,480,,,,480,480,480,480,,480,480,480,480,,,,,480","480,1121,1121,1121,1121,,,480,,480,480,480,,,480,480,,1121,1121,1121","1121,,,,1121,,,,,,1121,1121,,,1121,,,,,,,,705,705,705,705,,,,,,,,,1121",",,1121,705,705,705,1121,,,1121,,1121,,,,,705,705,,,705,,,,,1121,,,,1121","1121,1121,1121,,1121,1121,1121,1121,,,,,1121,1121,,,,,,,1121,,1121,1121","1121,,,1121,1121,404,,404,404,404,404,404,,,,,705,705,705,705,404,705","705,705,705,,,,,705,705,888,888,888,888,,,705,,705,705,705,404,404,",",,888,888,888,,404,404,404,404,,,,404,,888,888,,,888,887,887,887,887",",,,,,,,,,,,,887,887,887,,,,,,,,,,,887,887,,,887,,,,,,,,,,,,,,,,888,888","888,888,,888,888,888,888,,,,,888,888,,,,,,,888,,888,888,888,,,,,,,,","887,887,887,887,,887,887,887,887,,,,,887,887,668,668,,,668,,887,,887","887,887,,668,668,,668,668,668,668,668,668,668,,,668,668,,,,668,668,668","668,,,,,,668,,,,,,,,668,668,,668,668,668,668,668,668,668,668,668,668","668,668,623,623,668,,623,,,,,,,,623,623,,623,623,623,623,623,623,623",",,623,623,,,,623,623,623,623,,,,,,623,,,,,,,,623,623,,623,623,623,623","623,623,623,623,623,623,623,623,222,222,623,,222,,,,,,,,222,222,,222","222,222,222,222,222,222,,,222,222,,,,222,222,222,222,,,,,,222,,,,,,",",222,222,,222,222,222,222,222,222,222,222,222,222,222,222,223,223,222",",223,,,,,,,,223,223,,223,223,223,223,223,223,223,,,223,223,,,,223,223","223,223,,,,,,223,,,,,,,,223,223,,223,223,223,223,223,223,223,223,223","223,223,223,624,624,223,,624,,,,,,,,624,624,,624,624,624,624,624,624","624,,,624,624,,,,624,624,624,624,,,,,,624,,,,,,,,624,624,,624,624,624","624,624,624,624,624,624,624,624,624,544,544,624,,544,,,,,,,,544,544",",544,544,544,544,544,544,544,,,544,544,,,,544,544,544,544,,,,,,544,",",,,,,,544,544,,544,544,544,544,544,544,544,544,544,544,544,544,472,472","544,,472,,,,,,,,472,472,,472,472,472,472,472,472,472,,,472,472,,,,472","472,472,472,,,,,,472,,,,,,,,472,472,,472,472,472,472,472,472,472,472","472,472,472,472,1149,1149,472,,1149,,,,,,,,1149,1149,,1149,1149,1149","1149,1149,1149,1149,,,1149,1149,,,,1149,1149,1149,1149,,,,,,1149,,,",",,,,1149,1149,,1149,1149,1149,1149,1149,1149,1149,1149,1149,1149,1149","1149,630,630,1149,,630,,,,,,,,630,630,,630,630,630,630,630,630,630,",",630,630,,,,630,630,630,630,,,,,,630,,,,,,,,630,630,,630,630,630,630","630,630,630,630,630,630,630,630,553,553,630,,553,,,,,,,,553,553,,553","553,553,553,553,553,553,,,553,553,,,,553,553,553,553,,,,,,553,,,,,,",",553,553,,553,553,553,553,553,553,553,553,553,553,553,553,554,554,553",",554,,,,,,,,554,554,,554,554,554,554,554,554,554,,,554,554,,,,554,554","554,554,,,,,,554,,,,,,,,554,554,,554,554,554,554,554,554,554,554,554","554,554,554,543,543,554,,543,,,,,,,,543,543,,543,543,543,543,543,543","543,,,543,543,,,,543,543,543,543,,,,,,543,,,,,,,,543,543,,543,543,543","543,543,543,543,543,543,543,543,543,631,631,543,,631,,,,,,,,631,631",",631,631,631,631,631,631,631,,,631,631,,,,631,631,631,631,,,,,,631,",",,,,,,631,631,,631,631,631,631,631,631,631,631,631,631,631,631,1153","1153,631,,1153,,,,,,,,1153,1153,,1153,1153,1153,1153,1153,1153,1153",",,1153,1153,,,,1153,1153,1153,1153,,,,,,1153,,,,,,,,1153,1153,,1153","1153,1153,1153,1153,1153,1153,1153,1153,1153,1153,1153,473,473,1153",",473,,,,,,,,473,473,,473,473,473,473,473,473,473,,,473,473,,,,473,473","473,473,,,,,,473,,,,,,,,473,473,,473,473,473,473,473,473,473,473,473","473,473,473,1154,1154,473,,1154,,,,,,,,1154,1154,,1154,1154,1154,1154","1154,1154,1154,,,1154,1154,,,,1154,1154,1154,1154,,,,,,1154,,,,,,,,1154","1154,,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,669","669,1154,,669,,,,,,,,669,669,,669,669,669,669,669,669,669,,,669,669",",,,669,669,669,669,,,,,,669,,,,,,,,669,669,,669,669,669,669,669,669","669,669,669,669,669,669,,638,669,638,638,638,638,638,,1177,,1177,1177","1177,1177,1177,638,,,,,,,,1177,,,,,,,,,,,,,,638,,,,,,,,1177,638,638","638,638,,,,638,1177,1177,1177,1177,,,,1177"], +fc=dc=s("::","Array").$new(28007,i),pc=0,l(uc,"each",[],((y=function($){var n,a=null==y.$$s?this:y.$$s;return null==$&&($=i),l($.$split(",",-1),"each",[],((n=function($){null==n.$$s||n.$$s;var a=i;return null==$&&($=i),u($["$empty?"]())||(a=[pc,$.$to_i()],l(dc,"[]=",e.to_a(a)),a[t(a.length,1)]),pc=r(pc,1)}).$$s=a,n.$$arity=1,n))}).$$s=cc,y.$$arity=1,y)),hc=[i,1349,3855,739,i,401,i,5413,1392,558,24440,24312,556,i,509,438,592,429,800,605,i,-69,5675,1263,24824,307,i,803,i,254,5947,6057,6191,6322,6453,i,2703,23109,23895,i,175,466,569,146,6715,6846,-44,6977,7108,975,7239,45,185,323,1112,i,i,i,i,i,i,i,i,i,7380,i,7521,7652,7783,199,i,7914,8045,i,i,8176,22585,23502,23764,i,i,i,i,i,i,529,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,830,i,i,110,i,i,i,i,i,i,i,i,i,i,i,i,8319,i,i,i,i,8462,8593,8724,5138,8998,i,2847,i,-1,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,i,1400,i,1983,21406,21537,21668,21799,21930,22061,26978,27039,i,i,22192,22323,9129,i,i,1135,443,389,1466,119,1349,1407,i,9260,5007,1374,i,i,9391,9522,9653,9784,9915,10046,10177,10308,10439,10570,10701,10832,10963,11094,11225,11356,11487,11618,11749,11880,12011,12142,i,i,i,i,12273,i,i,768,698,670,669,658,556,523,417,306,-62,i,i,i,13059,i,i,5279,i,i,1260,13321,13452,i,i,i,i,i,i,i,13583,i,2271,i,1207,1190,i,13845,1232,13976,i,i,14107,14238,i,i,72,i,14381,960,1178,1144,3423,1158,1186,1142,24034,2991,228,300,409,1216,802,i,1172,1126,275,1160,1156,i,i,i,1149,255,1099,22978,i,327,968,3999,3855,1165,i,1160,15429,i,15560,1068,4431,1057,i,607,24910,1055,4143,3999,738,1067,i,748,730,1081,1049,492,1071,i,772,179,35,16215,3135,2559,400,1127,993,57,40,692,1050,-18,1078,i,i,966,479,372,i,1108,i,980,16608,i,26698,i,395,398,641,506,401,-32,-34,606,i,i,i,i,i,i,i,966,24696,i,i,i,i,961,i,1030,931,18204,929,i,i,911,i,889,15,1011,i,i,1407,i,i,i,i,i,1695,858,i,854,841,526,511,19e3,i,i,i,720,610,865,i,i,19275,19411,i,i,i,212,i,837,27222,27710,19941,345,20203,20334,20465,26016,26506,4431,4719,1014,853,783,782,775,770,5138,5413,5230,4863,3711,4575,3567,3279,3423,3110,3019,3135,4143,1983,5007,i,231,i,5279,i,i,i,i,8855,654,668,689,i,i,i,694,i,i,21275,i,21144,i,21013,i,392,i,i,i,20870,907,i,729,731,i,i,735,23633,744,20727,27527,27161,798,787,i,i,23240,750,i,20596,27405,27466,20072,4287,2559,19810,19679,878,879,i,i,759,757,762,761,778,i,782,788,i,i,i,i,i,i,i,i,i,777,961,i,i,19548,i,i,i,232,i,i,i,878,i,i,880,219,820,19134,949,960,840,881,i,18859,i,i,18728,i,i,i,1551,972,i,1695,-14,980,1002,38,1035,18597,18466,26917,27100,7,i,i,958,i,27344,27588,18335,i,i,189,2415,i,27894,i,i,i,i,1362,i,i,i,946,i,i,322,i,357,i,i,935,i,937,i,i,i,24568,i,18073,944,17930,17799,17668,26856,27832,17537,17394,442,987,17263,17132,17001,16870,990,i,i,16739,16477,992,i,i,i,251,-56,332,471,959,1007,i,992,i,i,416,25819,-84,i,646,i,i,7380,26645,i,i,i,i,i,i,i,i,i,i,i,1056,534,i,1039,995,25638,i,1122,i,1105,173,i,i,16346,i,1031,1036,1137,i,1022,i,1069,16084,i,i,15953,i,247,22716,1027,i,1031,105,343,1099,246,875,1101,1058,22847,i,1127,-26,1839,1184,15822,i,i,717,i,i,1296,i,i,649,25204,i,23942,i,15691,i,3006,i,1073,1075,1170,1079,i,i,i,i,i,i,25008,1551,i,i,i,i,702,240,i,1201,i,i,i,i,i,1208,1209,i,i,26,1100,39,31,-1,8,975,1110,964,i,1103,1119,15298,i,1237,-23,1121,i,i,i,i,i,1263,i,i,i,i,i,i,i,i,1127,15167,1140,252,-85,220,0,i,2127,15036,i,1139,i,i,i,i,i,i,i,i,i,i,14905,14774,14643,14512,417,1228,26408,121,152,26310,26212,441,-68,1169,1170,i,26114,i,1169,1171,1254,1187,i,1193,25918,26777,26743,i,i,i,i,i,13714,i,i,1234,i,i,1231,1217,i,i,539,3567,i,i,i,i,1220,291,i,i,13190,1349,i,4287,1226,1280,i,i,1245,i,1243,1244,i,1249,i,1336,i,1255,1256,i,1257,i,i,1263,2977,3016,i,i,12928,i,1388,i,12797,1389,i,i,25721,12666,4719,10,1395,i,1396,451,4863,i,i,i,i,1279,1333,1316,1311,113,i,i,12535,12404,i,i,i,i,1316,1317,1318,1316,i,i,25103,i,i,2,i,i,1337,1354,1357,i,i,i,1401,1358,-48,i,24907,i,1366,i,i,-31,i,i,2703,1407,i,i,1364,1367,i,1368,1370,1373,i,1402,1389,1375,22454,i,i,i,2847,i,1839,i,i,36,24173,i,i,25822,i,25400,i,i,25302,i,24081,i,i,i,i,1393,1398,2415,i,-10,i,136,575,-83,i,i,i,i,216,i,i,i,1523,2127,2271,2113,i,i,i,i,i,1043,1447,325,i,i,i,i,i,i,1404,25005,1406,i,i,329,i,i,1584,i,i,25921,i,i,26019,i,25708,i,i,-82,23371,1102,-22,i,4575,32,9,991,167,79,i,106,136,151,168,3215,3045,3279,i,6584,5806,26604,i,i,i,i,239,354,542,i,i,i,i,i,i,25201,245,25397,253,i,i,255,287,296,324,i,356,i,841,27283,i,499,5544,27649,27771,33,25498,i,i,i,i,399,628,3711,i,i,i,427,i,i,i,1969,437,25495,i,i,i,27902,i,26509,i,26411,i,26117,i,i,520,531,i,518,145,146,142,39,541,i,35,25299,i,557,566,576,593,143,i,i,i,i,625,25106,i,i,i,i,631,i],mc=[-1,-726,-4,-726,-2,-711,-5,-726,-8,-726,-726,-726,-726,-31,-726,-726,-36,-726,-726,-305,-48,-713,-726,-57,-726,-65,-66,-67,-71,-282,-282,-282,-318,-345,-346,-83,-13,-87,-95,-97,-726,-608,-609,-726,-726,-726,-726,-726,-726,-235,-726,-713,-623,-623,-253,-296,-297,-298,-299,-300,-301,-302,-303,-304,-699,-307,-311,-725,-689,-326,-328,-726,-726,-59,-59,-711,-726,-726,-726,-347,-348,-350,-407,-548,-549,-550,-551,-572,-554,-555,-574,-576,-559,-564,-568,-570,-586,-587,-588,-572,-590,-592,-593,-594,-595,-697,-597,-598,-698,-600,-601,-602,-603,-604,-605,-606,-607,-612,-613,1216,-3,-712,-721,-722,-723,-7,-726,-726,-726,-726,-726,-9,-4,-19,-726,-126,-127,-128,-129,-130,-131,-132,-136,-137,-138,-139,-140,-141,-142,-143,-144,-145,-146,-147,-148,-149,-150,-151,-152,-153,-154,-155,-156,-157,-158,-159,-160,-161,-162,-163,-164,-165,-166,-167,-168,-169,-170,-171,-172,-173,-174,-175,-176,-177,-178,-179,-180,-181,-182,-183,-184,-185,-186,-187,-188,-189,-190,-191,-192,-193,-194,-195,-196,-197,-198,-199,-200,-201,-202,-203,-204,-205,-206,-24,-133,-13,-726,-726,-726,-726,-726,-272,-726,-726,-709,-710,-726,-726,-713,-714,-52,-726,-608,-609,-726,-305,-726,-726,-241,-726,-13,-726,-53,-55,-218,-219,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-726,-254,-255,-256,-257,-726,-61,-62,-726,-126,-127,-166,-167,-168,-184,-189,-196,-199,-608,-609,-687,-726,-416,-418,-726,-707,-708,-72,-272,-726,-325,-422,-431,-433,-78,-428,-79,-713,-80,-260,-277,-286,-286,-281,-726,-287,-726,-572,-691,-726,-726,-81,-82,-711,-14,-726,-17,-726,-85,-13,-713,-726,-88,-91,-13,-103,-104,-726,-726,-111,-318,-321,-713,-726,-623,-623,-345,-346,-349,-429,-726,-93,-726,-99,-315,-726,-220,-221,-591,-229,-230,-726,-242,-726,-726,-13,-622,-618,-645,-645,-726,-13,-13,-309,-713,-261,-718,-718,-726,-726,-718,-726,-327,-58,-726,-726,-726,-13,-13,-711,-726,-712,-608,-609,-726,-726,-305,-726,-360,-361,-121,-122,-726,-124,-726,-305,-616,-726,-341,-645,-552,-726,-726,-726,-726,-726,-726,-726,-726,-6,-724,-25,-26,-27,-28,-29,-726,-726,-21,-22,-23,-134,-726,-32,-35,-292,-726,-726,-291,-33,-726,-37,-726,-305,-45,-47,-207,-265,-287,-49,-50,-38,-208,-265,-713,-273,-286,-286,-700,-701,-282,-426,-702,-703,-701,-700,-282,-425,-427,-702,-703,-44,-215,-51,-713,-324,-726,-726,-726,-272,-315,-726,-726,-726,-726,-726,-216,-217,-222,-223,-224,-225,-226,-227,-231,-232,-233,-234,-236,-237,-238,-239,-240,-243,-244,-245,-246,-713,-258,-63,-713,-437,-282,-700,-701,-69,-73,-646,-713,-286,-713,-283,-435,-437,-713,-320,-278,-726,-279,-726,-284,-726,-288,-726,-694,-696,-12,-712,-16,-18,-713,-84,-313,-100,-89,-726,-713,-272,-726,-726,-110,-726,-622,-591,-726,-96,-101,-726,-726,-726,-726,-259,-247,-726,-726,-540,-726,-373,-374,-713,-630,-713,-686,-686,-628,-630,-630,-644,-646,-647,-648,-649,-650,-651,-652,-653,-654,-726,-656,-658,-660,-665,-667,-668,-671,-676,-678,-679,-681,-682,-683,-726,-726,-630,-726,-726,-726,-713,-726,-262,-720,-719,-264,-720,-316,-317,-690,-13,-351,-352,-13,-726,-726,-726,-726,-726,-726,-272,-726,-726,-315,-59,-121,-122,-123,-726,-726,-272,-337,-614,-726,-13,-408,-645,-411,-553,-573,-578,-726,-580,-556,-575,-726,-577,-558,-726,-561,-726,-563,-566,-726,-567,-726,-589,-10,-20,-726,-30,-726,-295,-726,-726,-272,-726,-726,-726,-726,-430,-726,-274,-276,-726,-726,-74,-271,-423,-726,-726,-76,-424,-323,-715,-700,-701,-700,-701,-713,-54,-457,-459,-461,-464,-521,-713,-476,-479,-514,-519,-520,-726,-726,-524,-525,-526,-527,-528,-529,-530,-531,-532,-533,-534,-726,-726,-538,-56,-726,-726,-688,-726,-438,-68,-419,-435,-267,-274,-269,-726,-397,-726,-319,-286,-285,-289,-726,-692,-693,-726,-15,-86,-726,-92,-98,-713,-700,-701,-270,-704,-109,-726,-94,-726,-214,-228,-713,-249,-725,-725,-343,-619,-726,-637,-621,-726,-626,-627,-726,-726,-640,-726,-642,-726,-362,-726,-364,-366,-369,-372,-713,-659,-669,-670,-680,-684,-624,-726,-251,-344,-308,-310,-312,-718,-725,-353,-725,-60,-354,-355,-331,-332,-726,-726,-443,-334,-726,-713,-700,-701,-704,-314,-13,-121,-122,-125,-713,-13,-726,-339,-726,-726,-713,-579,-582,-583,-584,-585,-13,-557,-560,-562,-565,-569,-571,-135,-34,-293,-726,-713,-700,-701,-701,-700,-46,-266,-726,-716,-286,-40,-210,-41,-211,-75,-42,-213,-43,-212,-77,-726,-726,-726,-726,-430,-726,-726,-462,-463,-726,-726,-726,-481,-713,-713,-475,-482,-488,-726,-491,-495,-726,-478,-726,-726,-517,-518,-522,-523,-535,-122,-536,-726,-64,-417,-397,-421,-420,-726,-713,-432,-398,-713,-13,-434,-280,-290,-695,-90,-430,-102,-322,-726,-725,-358,-13,-541,-725,-542,-543,-713,-629,-630,-630,-657,-686,-666,-671,-685,-630,-630,-677,-630,-654,-672,-713,-726,-726,-371,-655,-726,-263,-726,-356,-726,-726,-333,-335,-726,-726,-13,-430,-726,-430,-726,-726,-13,-342,-409,-412,-414,-401,-726,-726,-294,-430,-39,-209,-275,-726,-458,-460,-468,-472,-713,-713,-713,-500,-502,-503,-506,-507,-572,-510,-512,-513,-713,-713,-713,-537,-473,-474,-498,-483,-486,-489,-726,-494,-713,-572,-717,-713,-515,-516,-248,-13,-70,-268,-686,-686,-378,-380,-380,-380,-396,-726,-713,-654,-662,-663,-674,-436,-250,-11,-13,-547,-359,-726,-726,-545,-620,-726,-633,-726,-635,-625,-726,-638,-726,-641,-643,-363,-365,-367,-370,-252,-329,-726,-330,-726,-448,-451,-454,-455,-456,-289,-725,-336,-338,-615,-726,-13,-13,-726,-410,-581,-465,-466,-467,-501,-505,-726,-509,-511,-469,-470,-471,-490,-484,-726,-492,-496,-477,-726,-480,-439,-726,-376,-377,-381,-387,-389,-726,-392,-726,-394,-399,-726,-726,-661,-726,-546,-13,-608,-609,-726,-726,-305,-544,-630,-630,-630,-630,-726,-726,-13,-444,-726,-726,-452,-440,-441,-442,-340,-726,-726,-713,-403,-405,-406,-499,-504,-508,-726,-487,-726,-686,-664,-379,-380,-380,-380,-380,-675,-380,-400,-673,-726,-315,-540,-272,-726,-726,-315,-726,-631,-634,-636,-639,-368,-725,-13,-449,-450,-453,-491,-413,-415,-402,-726,-485,-726,-493,-497,-375,-726,-384,-726,-386,-726,-390,-726,-393,-395,-314,-704,-539,-713,-700,-701,-704,-314,-630,-357,-725,-726,-404,-380,-380,-380,-380,-430,-632,-445,-446,-447,-492,-726,-382,-385,-388,-391,-380,-383],uc=["42,138,138,222,406,42,620,227,305,305,305,377,290,272,288,138,413,124","271,875,449,515,284,806,307,307,307,523,343,343,362,362,944,761,42,331","331,358,511,455,461,141,141,339,339,370,382,383,296,300,230,446,378","378,740,915,378,466,629,372,375,323,550,325,42,926,327,343,343,343,133","214,121,131,388,284,284,379,380,433,434,384,339,339,339,612,615,124","927,884,926,566,513,947,120,292,299,301,346,769,770,353,340,340,732","933,507,378,378,378,378,783,905,1082,581,581,561,692,720,42,1046,326","600,601,366,876,289,1014,42,737,42,737,416,417,418,419,604,607,740,125","611,340,340,340,564,597,964,8,777,4,1044,1131,8,572,572,581,1129,1167","440,889,890,440,724,1145,385,1029,924,440,995,2,925,1025,523,1174,734","547,547,931,650,652,743,303,316,317,213,639,394,646,648,651,651,924","976,988,572,925,1136,305,429,444,445,401,403,359,365,740,978,990,468","469,422,368,479,42,465,480,472,929,1000,800,273,722,728,661,356,1017","373,727,285,528,374,15,392,306,306,306,15,633,42,367,805,456,602,369","428,439,1145,820,439,958,1172,636,1045,414,439,746,1016,1131,290,1092","1018,1128,1198,637,755,15,8,505,371,305,305,960,404,691,824,420,1007","8,305,421,1063,737,737,1064,506,1056,307,517,1083,455,461,818,518,897","307,15,1161,1122,977,989,427,1051,1205,950,1163,393,1052,937,1055,1015","972,973,1208,871,1141,900,872,543,42,343,985,985,42,546,883,326,331","42,1044,886,124,1132,985,1133,339,553,874,737,343,1099,926,748,1004","1005,777,331,919,1,940,323,15,535,1123,339,323,603,541,296,42,15,751","15,378,300,42,42,933,405,407,408,751,1083,504,409,623,410,551,1054,411","893,42,42,412,635,826,532,534,616,539,581,1084,926,823,340,831,821,124","1195,447,985,548,928,1139,,467,565,,531,1138,326,,366,340,138,326,,","432,432,825,,810,668,,856,1083,,1175,572,861,834,819,834,,,673,,,1111",",751,,1166,516,15,,435,,751,435,305,519,,141,,435,907,,901,1037,910",",,1175,465,533,842,617,618,15,,,,619,679,,,714,714,,684,,660,926,,455","461,1083,721,,1206,456,,922,514,306,1142,,,1143,740,,,306,777,777,,852","854,874,874,,857,859,736,952,581,,305,,985,678,,581,1003,,679,683,,","42,343,,,991,465,,929,331,759,343,581,1089,1090,,465,339,331,,15,,,","15,,339,,,15,,,943,456,,,,,,,551,,907,456,726,,,956,737,551,,,,1199",",,,,,1053,15,,,,,,15,15,796,305,815,1207,,,,,340,,440,305,789,42,15","15,42,340,465,,440,440,,1072,465,440,440,1188,920,,,801,,,,,,42,,,,",",,,456,305,,,,822,,,456,,138,,467,1019,447,,,,465,42,,,,,851,,42,899","1176,,,,,,,673,,1124,968,777,777,,673,885,,456,,,,,141,,439,,714,797",",,799,,714,714,439,439,,29,,439,439,895,29,138,1062,898,271,,,,,838","851,,,,,29,930,,757,930,,,673,1104,343,29,29,29,921,29,,331,,,,343,",",,339,,,331,1117,,1118,,874,,15,339,1087,,,,,,,679,29,,684,551,,29,29",",,29,,,,581,912,,,,,440,1011,,,,,673,,,,,,378,,,673,,,839,,340,963,","42,932,847,934,,42,,1127,340,809,,,,29,957,673,42,,29,29,29,29,29,,29",",,,15,1019,,15,1019,,,,,,,,,853,855,673,,,858,860,673,673,,1012,15,714",",,714,714,773,775,,,,714,439,,,,,,,714,714,714,,,,963,,15,1027,,435",",1031,,15,954,1073,,42,,435,435,,,,435,435,,,,42,965,,1085,,29,29,29","29,29,29,29,378,1019,,,29,29,29,,,,,,,,,,,,29,1013,,714,,42,1189,1049",",,,42,,,,,,672,432,,,,,,1061,751,,,,673,673,673,,1011,,714,1011,,1011",",,885,,,,1023,29,,1020,,,714,,29,29,,,1028,,963,42,,29,,,,343,,,,,,","284,,,343,,,42,29,339,969,1106,29,,,,,29,,339,1058,,,853,855,860,858","15,,,,930,15,,1012,,,1012,,1012,,,,15,42,42,,1011,29,1011,,1011,,1011","29,29,,,1112,,1113,435,714,1114,,,,,340,29,29,29,,,343,1153,,,340,1011",",284,,378,378,42,,,,339,29,,,,1103,,,1170,42,,,,714,,,,,,1164,1165,","305,,,,,714,15,714,1144,1012,1146,1012,465,1012,,1012,,465,15,,1126","969,,,17,,,,,17,,,,42,,,,340,,,,1012,470,714,456,,,673,,1020,,29,1020","15,,1020,,1020,17,15,,1151,,,,,,714,,,1194,,,,1162,,866,715,715,,,,","877,,,,,17,,,1200,,1201,,1202,,1034,1036,,,,,,1039,1041,,1042,15,29",",,,,,,520,,,29,1196,,,1214,,,,15,,,,1110,,911,,29,,,1020,536,1020,,1020","17,1020,,18,,,,,18,17,,17,,,,,,,,,,15,15,231,,,,1020,,,,,,231,231,231",",18,332,332,,,,,,,29,,,29,,,953,,,,29,,,,,955,15,,,,29,18,,,29,,231","231,,15,231,389,399,399,,,,,967,,,,,,,,,,17,,17,29,,17,29,29,,,29,17",",,,,29,29,975,,,29,29,992,993,17,,15,18,,,,,231,231,231,231,18,,18,",",,,,,685,1157,1158,1159,1160,,,,1093,1095,1097,,,715,,,,,,715,715,,",",,,,,,,,,,,,,723,,,,,,,,729,,731,,,,735,,,,,,,,,17,,,,17,,,744,,17,",",,747,,,,18,231,437,231,231,437,231,,1204,,,437,231,231,1076,1077,1078",",,764,,767,,17,,18,376,,,17,17,,,29,,,,,29,29,,,,,,17,17,,,29,,,,,,",",794,,,1178,1180,1182,1184,41,1185,,29,,41,,231,,,,,,,231,231,,,709","709,,,283,231,,,,,,,,,,,41,330,330,,,,,18,,715,,18,715,715,,332,18,",",715,1210,1211,1212,1213,,29,,715,715,715,41,,,,332,1215,,29,,,387,283","283,,,,,18,,,,,,18,18,,,,,,,,,,,,29,,231,18,18,,29,,,,430,443,29,,,",",,,41,,,,231,,715,,,41,,41,17,,,,,,,,,,,,,,,,,,,913,1203,,,,,,715,,",",29,,,,,,,,,,,,715,941,,,,,,29,,,,,,,,,,,,,,,231,,,,,,,,525,,527,,,529","530,,17,,41,17,,,29,29,,,,,,,,,,,,,,,,,17,,709,41,,,,,709,709,,,,,,",",,18,,,715,,29,,974,332,17,231,,17,,,,17,332,29,,29,29,17,17,,,231,17","17,,,,,,,,,,,1009,,,,715,,,,,,,,,,29,,,,715,,715,1032,,,,29,41,,,,41",",,664,330,41,1043,,,,,18,,,18,,,,,,,231,,330,,,715,,,,,231,,,,18,41",",,,,,41,41,,1068,1069,1070,,,715,,,,,,,,41,41,,,18,,,437,231,,,18,,","1086,,,437,437,19,,,437,437,19,,,709,,,709,709,,,17,,738,709,376,17","741,,,,,709,709,709,,,17,,,19,334,334,,,,,,,,,,,,,17,,,,,,,,,,,,,,,19",",,332,,,,,,,391,400,400,,332,,784,,,,,,,,,,709,,,,,,,,,,738,,,376,,17",",,,,,,,,,,443,17,,19,,,709,,,,,,19,,19,41,,,,,,18,709,330,,,18,231,",",,,330,,,,17,18,,,,,17,,840,,,,,,,,,738,376,437,,,,,,,,708,708,,,,,",",,,,,,,,,,,,,,,,,,,,,17,,,,41,,19,41,438,,,438,,,709,,,438,738,17,18",",,,,,,908,41,,909,19,18,,,,,,,,,,,,,,,,,,918,,,,709,41,17,17,,,,231","41,,936,,,18,709,,709,,,18,,,,,,,,,,,,,,,,,,,,,,,,17,,,,,,,,,709,,,","17,19,,,,19,,,,334,19,,18,,,,,,,966,709,,,,,1101,,330,334,,,18,,,,1107",",,330,,,19,,,,,17,19,19,,,,,,,,,,707,707,,,,19,19,,,,18,18,,,,,,,,,",",,708,,,706,706,,708,708,,,,,,,,,41,,,,,41,,,1148,,,,18,,,,41,,,,710","710,,,,18,,231,231,,,,1057,,,,,,,,,,,,,,,,,,,376,,,,,,,,,231,,,,,,,",",,,18,,,,,,,,,,,,,,,,,,,41,,,,,,,,32,,,,41,32,,,,,,,,,,,,,19,,32,,,",",,334,,,,32,32,32,,32,334,,,,41,,,,,,41,,,,,,,,,,,708,,,708,708,,,,32",",708,,,32,32,,,32,708,708,708,,,,,,707,,,,,,707,707,,,,,41,,,,19,,,19",",,,,,283,706,,,,,41,706,706,,1105,,32,,,19,,32,32,32,32,32,830,32,,",",,,,,708,,,710,,,,,,710,710,19,41,41,438,,,,19,,,,,,438,438,,,,438,438",",708,,,,,,,,,,,,,,,,708,283,,,,41,,,,,,,,,,,,,41,,,,,,,,,32,32,32,32","32,32,32,,,,,32,32,32,,,712,712,334,,,,,,,32,,,,334,,,,,,,,41,,707,",",707,707,,,,,,707,,,,,,,708,707,707,707,,,,,,706,,,706,706,,32,,,,706",",,32,32,,,,706,706,706,,32,19,,,,,19,,,708,,710,,,710,710,,19,32,,,710","32,708,,708,,32,,710,710,710,,,707,438,,,,,,,,,,,,,,,,,,,,,,,32,,706","708,,,32,32,707,,,,,,,,,,,,,32,32,32,707,,,708,,,,,,19,706,710,,,,,",",32,,,19,,,,,706,,,,,,,,,,,,,,,,,710,,,,,,,,,,,,,19,,,710,,,19,,,,712",",,713,713,,712,712,,,,,,,,,,707,,,,,,,32,,,,,,,,,,,,,,,,,,,706,,19,",",,,,,,,,,,707,400,,,,,,19,,,,1109,,,707,,707,,,710,711,711,,,,32,706",",,,,,,,,32,,,238,,706,,706,,19,19,,,304,304,304,32,707,,,,,,,710,351","352,,354,355,,357,,,,,,,710,,710,707,,706,,,400,,304,304,19,,,,,,,,",",,,,19,,,,706,,,32,,,32,,,710,,712,,32,712,712,,,,,,712,,32,,,,32,,712","712,712,,710,,,,,,,,,19,,,,,,,,,,,,32,,,32,32,,,32,,713,,,,32,32,713","713,,32,32,,,,,,,,,,,,,,,,,,,,712,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,712",",,,,304,442,,,448,304,,711,,,448,712,,711,711,,,,,,,,,238,,,,,481,482","483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499","500,501,502,,,,,503,,,,,,,,,,,,,,,,,,,,,,32,304,304,,,32,32,,,,304,",",,,,32,304,712,304,,,304,304,,,,713,,,713,713,,,32,,,713,,,,,,,,713","713,713,,,,,,,,,,,712,,,,,,556,,557,,,,,,712,,712,,,,,,,,,,,,,,,,32",",,,,,,,,,,711,32,,711,711,,,,713,712,711,,,,,,,,711,711,711,,,,,,,,",",32,,,712,,,32,,304,,713,,32,,,,,,,,,,,,,,713,,,,,,,,,,,,,,,,,,,,,,",",,304,711,448,448,448,,,,,,32,,,,,,,,,,,,,,,,,,,32,,,,711,,,,,352,,",",,,,,,,304,711,304,,304,,,,,,713,,,,,,,,32,32,304,,,,,,,,,,448,,,758",",,,760,,,,,,,,,,,,,713,,,,,,,,,32,,,,304,713,,713,,,,,,32,,32,32,,791",",,,,,304,711,,304,,,,,,,,,,,,,304,304,,713,,,,,32,,,304,,,,,,,,32,,",",,,711,,713,,,,,,,,,,,,711,,711,,,304,448,304,,,,848,,,304,304,448,448",",,,448,448,,,,,,,,,,,,,,,,711,,,,,,,,,,,,,,,,,,,,,,,,711,,,,,,,,304",",,,,,,,,304,,,304,,,,,,,,,,,,,,,,,,,,304,,,,,,,,,,,,,,304,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,304,,,,,,,,448",",,,,,,,,,,,,448,448,448,448,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1006,,,,,,,",",,,,,,,,,,,,1024,,,,,,,,,,,,,,,,,,,,,,,,,,,,1047,,,,,,,,,304,,,,,,,",",,,,,,,,,,,304,448,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,304"],gc=dc=s("::","Array").$new(4136,i),pc=0,l(uc,"each",[],((v=function($){var n,a=null==v.$$s?this:v.$$s;return null==$&&($=i),l($.$split(",",-1),"each",[],((n=function($){null==n.$$s||n.$$s;var a=i;return null==$&&($=i),u($["$empty?"]())||(a=[pc,$.$to_i()],l(dc,"[]=",e.to_a(a)),a[t(a.length,1)]),pc=r(pc,1)}).$$s=a,n.$$arity=1,n))}).$$s=cc,v.$$arity=1,v)),uc=["70,73,73,33,191,70,110,35,50,50,50,105,33,42,151,73,191,114,44,168,31","90,70,111,88,88,88,92,81,81,85,85,109,12,70,70,70,35,55,53,53,75,75","45,45,85,40,40,89,89,22,28,26,26,230,13,26,28,71,88,88,62,68,63,70,222","66,81,81,81,17,17,7,9,70,70,70,19,19,24,24,19,45,45,45,108,108,114,128","180,222,90,31,13,5,54,54,54,67,132,132,78,46,46,56,226,53,26,26,26,26","124,140,185,221,221,10,37,37,70,125,11,10,10,115,169,48,138,70,93,70","93,19,19,19,19,87,87,230,6,87,46,46,46,150,150,142,8,123,2,122,145,8","216,216,221,144,186,20,195,195,20,154,227,5,198,220,20,184,3,139,14","92,186,154,215,215,139,205,205,16,61,61,61,18,150,21,206,206,206,206","220,168,168,216,139,185,50,25,26,26,72,72,80,80,230,171,171,26,26,27","8,38,70,73,39,33,193,171,41,47,49,58,76,82,142,84,91,103,191,104,23","112,86,86,86,23,113,70,116,110,89,117,118,22,22,227,119,22,120,185,121","126,6,22,68,130,145,33,135,136,143,144,146,68,23,8,26,86,50,50,147,148","31,149,8,140,8,50,2,152,93,93,153,155,171,88,157,184,53,53,71,158,161","88,23,125,162,169,169,11,163,164,165,166,23,167,124,170,139,173,175","185,176,138,56,177,33,70,81,193,193,70,35,181,11,70,70,122,182,114,188","193,189,45,33,37,93,81,142,222,31,195,195,123,70,197,1,123,62,23,63","13,45,62,35,63,89,70,23,53,23,26,89,70,70,226,201,202,203,53,184,48","204,33,207,66,169,208,71,70,70,209,26,210,7,9,19,67,221,180,222,10,46","211,214,114,109,77,193,78,224,225,,77,137,,5,128,11,,115,46,73,11,,","86,86,150,,31,33,,55,184,,184,216,55,206,31,206,,,35,,,139,,53,,168","61,23,,23,,53,23,50,61,,75,,23,92,,90,132,68,,,184,73,8,31,11,11,23",",,,5,89,,,70,70,,89,,17,222,,53,53,184,35,,13,89,,90,86,86,139,,,139","230,,,86,123,123,,28,28,37,37,,28,28,88,108,221,,50,,193,54,,221,37",",89,54,,,70,81,,,71,73,,193,70,26,81,221,132,132,,73,45,70,,23,,,,23",",45,,,23,,,87,89,,,,,,,66,,92,89,54,,,10,93,66,,,,139,,,,,,37,23,,,",",,23,23,88,50,40,111,,,,,46,,20,50,114,70,23,23,70,46,73,,20,20,,37","73,20,20,12,24,,,114,,,,,,70,,,,,,,,89,50,,,,114,,,89,,73,,77,221,77",",,,73,70,,,,,88,,70,105,132,,,,,,,35,,110,28,123,123,,35,35,,89,,,,","75,,22,,70,11,,,11,,70,70,22,22,,57,,22,22,42,57,73,10,151,44,,,,,17","88,,,,,57,133,,77,133,,,35,108,81,57,57,57,85,57,,70,,,,81,,,,45,,,70","108,,108,,37,,23,45,10,,,,,,,89,57,,89,66,,57,57,,,57,,,,221,66,,,,","20,127,,,,,35,,,,,,26,,,35,,,8,,46,35,,70,137,8,137,,70,,10,46,86,,",",57,19,35,70,,57,57,57,57,57,,57,,,,23,221,,23,221,,,,,,,,,77,77,35",",,77,77,35,35,,133,23,70,,,70,70,219,219,,,,70,22,,,,,,,70,70,70,,,","35,,23,85,,23,,85,,23,11,191,,70,,23,23,,,,23,23,,,,70,11,,191,,57,57","57,57,57,57,57,26,221,,,57,57,57,,,,,,,,,,,,57,137,,70,,70,31,19,,,","70,,,,,,32,86,,,,,,114,53,,,,35,35,35,,127,,70,127,,127,,,35,,,,11,57",",223,,,70,,57,57,,,11,,35,70,,57,,,,81,,,,,,,70,,,81,,,70,57,45,77,70","57,,,,,57,,45,11,,,77,77,77,77,23,,,,133,23,,133,,,133,,133,,,,23,70","70,,127,57,127,,127,,127,57,57,,,137,,137,23,70,137,,,,,46,57,57,57",",,81,33,,,46,127,,70,,26,26,70,,,,45,57,,,,11,,,35,70,,,,70,,,,,,19","19,,50,,,,,70,23,70,137,133,137,133,73,133,,133,,73,23,,11,77,,,29,",",,,29,,,,70,,,,46,,,,133,64,70,89,,,35,,223,,57,223,23,,223,,223,29","23,,11,,,,,,70,,,137,,,,11,,32,107,107,,,,,32,,,,,29,,,137,,137,,137",",219,219,,,,,,219,219,,219,23,57,,,,,,,64,,,57,11,,,137,,,,23,,,,23",",32,,57,,,223,64,223,,223,29,223,,30,,,,,30,29,,29,,,,,,,,,,23,23,30",",,,223,,,,,,30,30,30,,30,30,30,,,,,,,57,,,57,,,32,,,,57,,,,,32,23,,",",57,30,,,57,,30,30,,23,30,30,30,30,,,,,32,,,,,,,,,,29,,29,57,,29,57","57,,,57,29,,,,,57,57,32,,,57,57,32,32,29,,23,30,,,,,30,30,30,30,30,","30,,,,,,,64,219,219,219,219,,,,134,134,134,,,107,,,,,,107,107,,,,,,",",,,,,,,,,64,,,,,,,,64,,64,,,,64,,,,,,,,,29,,,,29,,,64,,29,,,,64,,,,30","30,30,30,30,30,30,,219,,,30,30,30,32,32,32,,,64,,64,,29,,30,83,,,29","29,,,57,,,,,57,57,,,,,,29,29,,,57,,,,,,,,64,,,134,134,134,134,69,134",",57,,69,,30,,,,,,,30,30,,,98,98,,,69,30,,,,,,,,,,,69,69,69,,,,,30,,107",",30,107,107,,30,30,,,107,134,134,134,134,,57,,107,107,107,69,,,,30,134",",57,,,69,69,69,,,,,30,,,,,,30,30,,,,,,,,,,,,57,,30,30,30,,57,,,,83,83","57,,,,,,,69,,,,30,,107,,,69,,69,29,,,,,,,,,,,,,,,,,,,64,32,,,,,,107",",,,57,,,,,,,,,,,,107,64,,,,,,57,,,,,,,,,,,,,,,30,,,,,,,,83,,83,,,83","83,,29,,69,29,,,57,57,,,,,,,,,,,,,,,,,29,,98,69,,,,,98,98,,,,,,,,,30",",,107,,57,,64,30,29,30,,29,,,,29,30,57,,57,57,29,29,,,30,29,29,,,,,",",,,,,64,,,,107,,,,,,,,,,57,,,,107,,107,64,,,,57,69,,,,69,,,83,69,69","64,,,,,30,,,30,,,,,,,30,,69,,,107,,,,,30,,,,30,69,,,,,,69,69,,64,64","64,,,107,,,,,,,,69,69,,,30,,,30,30,,,30,,,64,,,30,30,34,,,30,30,34,",",98,,,98,98,,,29,,83,98,83,29,83,,,,,98,98,98,,,29,,,34,34,34,,,,,,",",,,,,,29,,,,,,,,,,,,,,,34,,,30,,,,,,,34,34,34,,30,,83,,,,,,,,,,98,,",",,,,,,,83,,,83,,29,,,,,,,,,,,83,29,,34,,,98,,,,,,34,,34,69,,,,,,30,98","69,,,30,30,,,,,69,,,,29,30,,,,,29,,83,,,,,,,,,83,83,30,,,,,,,,97,97",",,,,,,,,,,,,,,,,,,,,,,,,,,29,,,,69,,34,69,34,,,34,,,98,,,34,83,29,30",",,,,,,83,69,,83,34,30,,,,,,,,,,,,,,,,,,83,,,,98,69,29,29,,,,30,69,,83",",,30,98,,98,,,30,,,,,,,,,,,,,,,,,,,,,,,,29,,,,,,,,,98,,,,29,34,,,,34",",,,34,34,,30,,,,,,,83,98,,,,,30,,69,34,,,30,,,,30,,,69,,,34,,,,,29,34","34,,,,,,,,,,96,96,,,,34,34,,,,30,30,,,,,,,,,,,,97,,,95,95,,97,97,,,",",,,,,69,,,,,69,,,30,,,,30,,,,69,,,,99,99,,,,30,,30,30,,,,83,,,,,,,,",",,,,,,,,,,83,,,,,,,,,30,,,,,,,,,,,30,,,,,,,,,,,,,,,,,,,69,,,,,,,,60",",,,69,60,,,,,,,,,,,,,34,,60,,,,,,34,,,,60,60,60,,60,34,,,,69,,,,,,69",",,,,,,,,,,97,,,97,97,,,,60,,97,,,60,60,,,60,97,97,97,,,,,,96,,,,,,96","96,,,,,69,,,,34,,,34,,,,,,69,95,,,,,69,95,95,,69,,60,,,34,,60,60,60","60,60,34,60,,,,,,,,97,,,99,,,,,,99,99,34,69,69,34,,,,34,,,,,,34,34,",",,34,34,,97,,,,,,,,,,,,,,,,97,69,,,,69,,,,,,,,,,,,,69,,,,,,,,,60,60","60,60,60,60,60,,,,,60,60,60,,,101,101,34,,,,,,,60,,,,34,,,,,,,,69,,96",",,96,96,,,,,,96,,,,,,,97,96,96,96,,,,,,95,,,95,95,,60,,,,95,,,60,60",",,,95,95,95,,60,34,,,,,34,,,97,,99,,,99,99,,34,60,,,99,60,97,,97,,60",",99,99,99,,,96,34,,,,,,,,,,,,,,,,,,,,,,,60,,95,97,,,60,60,96,,,,,,,",",,,,,60,60,60,96,,,97,,,,,,34,95,99,,,,,,,60,,,34,,,,,95,,,,,,,,,,,",",,,,,99,,,,,,,,,,,,,34,,,99,,,34,,,,101,,,102,102,,101,101,,,,,,,,,","96,,,,,,,60,,,,,,,,,,,,,,,,,,,95,,34,,,,,,,,,,,,96,34,,,,,,34,,,,34",",,96,,96,,,99,100,100,,,,60,95,,,,,,,,,60,,,36,,95,,95,,34,34,,,36,36","36,60,96,,,,,,,99,36,36,,36,36,,36,,,,,,,99,,99,96,,95,,,34,,36,36,34",",,,,,,,,,,,,34,,,,95,,,60,,,60,,,99,,101,,60,101,101,,,,,,101,,60,,",",60,,101,101,101,,99,,,,,,,,,34,,,,,,,,,,,,60,,,60,60,,,60,,102,,,,60","60,102,102,,60,60,,,,,,,,,,,,,,,,,,,,101,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,101,,,,,36,36,,,36,36,,100,,,36,101,,100,100,,,,,,,,,36,,,,,36,36","36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,36,,,,,36,",",,,,,,,,,,,,,,,,,,,,60,36,36,,,60,60,,,,36,,,,,,60,36,101,36,,,36,36",",,,102,,,102,102,,,60,,,102,,,,,,,,102,102,102,,,,,,,,,,,101,,,,,,36",",36,,,,,,101,,101,,,,,,,,,,,,,,,,60,,,,,,,,,,,100,60,,100,100,,,,102","101,100,,,,,,,,100,100,100,,,,,,,,,,60,,,101,,,60,,36,,102,,60,,,,,",",,,,,,,,102,,,,,,,,,,,,,,,,,,,,,,,,,36,100,36,36,36,,,,,,60,,,,,,,,",",,,,,,,,,,60,,,,100,,,,,36,,,,,,,,,,36,100,36,,36,,,,,,102,,,,,,,,60","60,36,,,,,,,,,,36,,,36,,,,36,,,,,,,,,,,,,102,,,,,,,,,60,,,,36,102,,102",",,,,,60,,60,60,,36,,,,,,36,100,,36,,,,,,,,,,,,,36,36,,102,,,,,60,,,36",",,,,,,,60,,,,,,100,,102,,,,,,,,,,,,100,,100,,,36,36,36,,,,36,,,36,36","36,36,,,,36,36,,,,,,,,,,,,,,,,100,,,,,,,,,,,,,,,,,,,,,,,,100,,,,,,,","36,,,,,,,,,36,,,36,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,,,,,,36,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,36,,",",,,,,,,,,,36,36,36,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,,,,,,,",",,,,36,,,,,,,,,,,,,,,,,,,,,,,,,,,,36,,,,,,,,,36,,,,,,,,,,,,,,,,,,,36","36,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,",",,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,36"],yc=dc=s("::","Array").$new(4136,i),pc=0,l(uc,"each",[],((b=function($){var n,a=null==b.$$s?this:b.$$s;return null==$&&($=i),l($.$split(",",-1),"each",[],((n=function($){null==n.$$s||n.$$s;var a=i;return null==$&&($=i),u($["$empty?"]())||(a=[pc,$.$to_i()],l(dc,"[]=",e.to_a(a)),a[t(a.length,1)]),pc=r(pc,1)}).$$s=a,n.$$arity=1,n))}).$$s=cc,b.$$arity=1,b)),vc=[i,347,147,169,i,89,132,67,145,64,-244,85,-527,-706,-744,i,-352,60,173,6,-59,110,28,229,-137,-18,-19,77,-169,1150,1272,-201,513,-15,1948,-14,2983,-362,-30,-28,-27,-397,-11,i,-6,6,65,196,99,-283,-24,i,i,-183,66,-254,-413,705,-288,i,2460,149,25,27,942,i,29,60,-285,1549,-2,-339,124,-9,i,31,-203,178,55,i,151,-9,175,1445,159,-22,201,-235,-8,19,-272,-280,-280,-393,i,1872,1846,1650,1090,1905,2508,2212,2434,204,162,-58,i,726,-294,-765,-379,-596,156,-164,12,71,174,-126,177,-386,-573,-152,-788,-434,-471,-819,-686,-113,-680,i,-648,i,-468,-40,406,-754,-644,42,-777,-595,-621,i,-679,-804,-909,-914,-141,-553,190,-363,-219,-11,-681,-679,-344,-3,i,-10,-6,i,i,-432,-761,-649,-894,-504,-814,-644,-679,-573,-642,-665,i,-557,i,-557,-384,-381,i,i,-610,-375,-371,i,-710,-885,-964,i,-740,-738,i,-83,i,-551,i,-545,i,-416,-754,i,i,282,278,278,281,-231,-220,282,284,287,-259,-250,i,i,-239,-164,-210,i,i,301,-599,-249,-700,89,-367,-686,-667,-931,i,i,-470],bc=[i,i,i,i,5,i,6,386,321,i,i,560,i,945,i,318,319,i,i,i,13,14,20,236,i,i,16,i,436,237,350,i,i,631,235,471,23,994,i,i,i,i,i,381,140,52,53,i,i,i,25,26,27,754,i,i,i,338,i,28,335,450,35,i,i,37,40,39,i,232,233,398,i,458,139,84,i,441,100,49,i,54,270,310,i,916,451,i,452,463,i,680,521,308,294,55,56,57,58,59,60,61,62,63,i,295,69,70,i,i,i,i,i,i,613,360,i,i,i,i,i,i,779,580,i,780,781,568,562,563,1140,1010,i,569,i,i,i,598,i,571,i,903,i,i,i,578,i,i,i,i,i,i,i,i,i,i,462,i,i,733,725,i,i,i,i,i,i,i,i,i,879,i,693,702,694,695,i,i,696,697,i,i,i,878,880,i,881,979,980,981,982,i,986,589,987,701,703,i,i,83,85,86,i,i,i,i,641,i,i,i,i,i,96,97,i,361,923,364,567,766,570,935,583,585,586,1021,590,1022,593,596,313], +kc=[0,0,"racc_error",0,150,"_reduce_1",2,148,"_reduce_2",2,149,"_reduce_3",0,151,"_reduce_4",1,151,"_reduce_5",3,151,"_reduce_6",2,151,"_reduce_7",1,153,"_reduce_none",2,153,"_reduce_9",3,156,"_reduce_10",4,157,"_reduce_11",2,158,"_reduce_12",0,162,"_reduce_13",1,162,"_reduce_14",3,162,"_reduce_15",2,162,"_reduce_16",1,163,"_reduce_none",2,163,"_reduce_18",0,174,"_reduce_19",4,155,"_reduce_20",3,155,"_reduce_21",3,155,"_reduce_22",3,155,"_reduce_23",2,155,"_reduce_24",3,155,"_reduce_25",3,155,"_reduce_26",3,155,"_reduce_27",3,155,"_reduce_28",3,155,"_reduce_29",4,155,"_reduce_30",1,155,"_reduce_none",3,155,"_reduce_32",3,155,"_reduce_33",5,155,"_reduce_34",3,155,"_reduce_35",1,155,"_reduce_none",3,167,"_reduce_37",3,167,"_reduce_38",6,167,"_reduce_39",5,167,"_reduce_40",5,167,"_reduce_41",5,167,"_reduce_42",5,167,"_reduce_43",3,167,"_reduce_44",1,175,"_reduce_none",3,175,"_reduce_46",1,175,"_reduce_none",1,173,"_reduce_none",3,173,"_reduce_49",3,173,"_reduce_50",3,173,"_reduce_51",2,173,"_reduce_52",0,185,"_reduce_53",4,173,"_reduce_54",0,186,"_reduce_55",4,173,"_reduce_56",1,173,"_reduce_none",1,166,"_reduce_none",0,190,"_reduce_59",3,187,"_reduce_60",1,189,"_reduce_61",2,192,"_reduce_62",0,196,"_reduce_63",5,193,"_reduce_64",1,169,"_reduce_none",1,169,"_reduce_none",1,198,"_reduce_none",4,198,"_reduce_68",0,205,"_reduce_69",4,202,"_reduce_70",1,204,"_reduce_none",2,197,"_reduce_72",3,197,"_reduce_73",4,197,"_reduce_74",5,197,"_reduce_75",4,197,"_reduce_76",5,197,"_reduce_77",2,197,"_reduce_78",2,197,"_reduce_79",2,197,"_reduce_80",2,197,"_reduce_81",2,197,"_reduce_82",1,168,"_reduce_83",3,168,"_reduce_84",1,210,"_reduce_85",3,210,"_reduce_86",1,209,"_reduce_none",2,209,"_reduce_88",3,209,"_reduce_89",5,209,"_reduce_90",2,209,"_reduce_91",4,209,"_reduce_92",2,209,"_reduce_93",4,209,"_reduce_94",1,209,"_reduce_95",3,209,"_reduce_96",1,213,"_reduce_none",3,213,"_reduce_98",2,212,"_reduce_99",3,212,"_reduce_100",1,215,"_reduce_101",3,215,"_reduce_102",1,214,"_reduce_103",1,214,"_reduce_104",4,214,"_reduce_105",3,214,"_reduce_106",3,214,"_reduce_107",3,214,"_reduce_108",3,214,"_reduce_109",2,214,"_reduce_110",1,214,"_reduce_111",1,170,"_reduce_112",1,170,"_reduce_113",4,170,"_reduce_114",3,170,"_reduce_115",3,170,"_reduce_116",3,170,"_reduce_117",3,170,"_reduce_118",2,170,"_reduce_119",1,170,"_reduce_120",1,218,"_reduce_121",1,218,"_reduce_none",2,219,"_reduce_123",1,219,"_reduce_124",3,219,"_reduce_125",1,191,"_reduce_none",1,191,"_reduce_none",1,191,"_reduce_none",1,191,"_reduce_none",1,191,"_reduce_none",1,164,"_reduce_131",1,164,"_reduce_none",1,165,"_reduce_133",0,223,"_reduce_134",4,165,"_reduce_135",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,220,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",1,221,"_reduce_none",3,183,"_reduce_207",3,183,"_reduce_208",6,183,"_reduce_209",5,183,"_reduce_210",5,183,"_reduce_211",5,183,"_reduce_212",5,183,"_reduce_213",4,183,"_reduce_214",3,183,"_reduce_215",3,183,"_reduce_216",3,183,"_reduce_217",2,183,"_reduce_218",2,183,"_reduce_219",2,183,"_reduce_220",2,183,"_reduce_221",3,183,"_reduce_222",3,183,"_reduce_223",3,183,"_reduce_224",3,183,"_reduce_225",3,183,"_reduce_226",3,183,"_reduce_227",4,183,"_reduce_228",2,183,"_reduce_229",2,183,"_reduce_230",3,183,"_reduce_231",3,183,"_reduce_232",3,183,"_reduce_233",3,183,"_reduce_234",1,183,"_reduce_none",3,183,"_reduce_236",3,183,"_reduce_237",3,183,"_reduce_238",3,183,"_reduce_239",3,183,"_reduce_240",2,183,"_reduce_241",2,183,"_reduce_242",3,183,"_reduce_243",3,183,"_reduce_244",3,183,"_reduce_245",3,183,"_reduce_246",3,183,"_reduce_247",6,183,"_reduce_248",4,183,"_reduce_249",6,183,"_reduce_250",4,183,"_reduce_251",6,183,"_reduce_252",1,183,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",1,229,"_reduce_none",3,226,"_reduce_258",3,226,"_reduce_259",1,230,"_reduce_none",1,231,"_reduce_none",2,231,"_reduce_none",4,231,"_reduce_263",2,231,"_reduce_264",1,224,"_reduce_none",3,224,"_reduce_266",3,236,"_reduce_267",5,236,"_reduce_268",3,236,"_reduce_269",0,238,"_reduce_270",1,238,"_reduce_none",0,178,"_reduce_272",1,178,"_reduce_none",2,178,"_reduce_none",4,178,"_reduce_275",2,178,"_reduce_276",1,208,"_reduce_277",2,208,"_reduce_278",2,208,"_reduce_279",4,208,"_reduce_280",1,208,"_reduce_281",0,241,"_reduce_282",2,201,"_reduce_283",2,240,"_reduce_284",2,239,"_reduce_285",0,239,"_reduce_286",1,233,"_reduce_287",2,233,"_reduce_288",3,233,"_reduce_289",4,233,"_reduce_290",1,172,"_reduce_291",1,172,"_reduce_none",3,171,"_reduce_293",4,171,"_reduce_294",2,171,"_reduce_295",1,228,"_reduce_none",1,228,"_reduce_none",1,228,"_reduce_none",1,228,"_reduce_none",1,228,"_reduce_none",1,228,"_reduce_none",1,228,"_reduce_none",1,228,"_reduce_none",1,228,"_reduce_none",1,228,"_reduce_none",1,228,"_reduce_306",0,263,"_reduce_307",4,228,"_reduce_308",0,264,"_reduce_309",4,228,"_reduce_310",0,265,"_reduce_311",4,228,"_reduce_312",3,228,"_reduce_313",3,228,"_reduce_314",2,228,"_reduce_315",3,228,"_reduce_316",3,228,"_reduce_317",1,228,"_reduce_318",4,228,"_reduce_319",3,228,"_reduce_320",1,228,"_reduce_321",5,228,"_reduce_322",4,228,"_reduce_323",3,228,"_reduce_324",2,228,"_reduce_325",1,228,"_reduce_none",2,228,"_reduce_327",1,228,"_reduce_none",6,228,"_reduce_329",6,228,"_reduce_330",4,228,"_reduce_331",4,228,"_reduce_332",5,228,"_reduce_333",4,228,"_reduce_334",5,228,"_reduce_335",6,228,"_reduce_336",0,266,"_reduce_337",6,228,"_reduce_338",0,267,"_reduce_339",7,228,"_reduce_340",0,268,"_reduce_341",5,228,"_reduce_342",4,228,"_reduce_343",4,228,"_reduce_344",1,228,"_reduce_345",1,228,"_reduce_346",1,228,"_reduce_347",1,228,"_reduce_348",1,177,"_reduce_none",1,207,"_reduce_350",1,255,"_reduce_none",1,255,"_reduce_none",2,255,"_reduce_353",1,188,"_reduce_none",1,188,"_reduce_none",1,256,"_reduce_none",5,256,"_reduce_357",1,160,"_reduce_none",2,160,"_reduce_359",1,259,"_reduce_none",1,259,"_reduce_none",1,269,"_reduce_362",3,269,"_reduce_363",1,272,"_reduce_364",3,272,"_reduce_365",1,271,"_reduce_none",3,271,"_reduce_367",5,271,"_reduce_368",1,271,"_reduce_369",3,271,"_reduce_370",2,273,"_reduce_371",1,273,"_reduce_372",1,274,"_reduce_none",1,274,"_reduce_none",4,277,"_reduce_375",2,277,"_reduce_376",2,277,"_reduce_377",1,277,"_reduce_378",2,281,"_reduce_379",0,281,"_reduce_380",1,282,"_reduce_none",6,283,"_reduce_382",8,283,"_reduce_383",4,283,"_reduce_384",6,283,"_reduce_385",4,283,"_reduce_386",2,283,"_reduce_none",6,283,"_reduce_388",2,283,"_reduce_389",4,283,"_reduce_390",6,283,"_reduce_391",2,283,"_reduce_392",4,283,"_reduce_393",2,283,"_reduce_394",4,283,"_reduce_395",1,283,"_reduce_none",0,287,"_reduce_397",1,287,"_reduce_398",3,288,"_reduce_399",4,288,"_reduce_400",1,289,"_reduce_401",4,289,"_reduce_402",1,290,"_reduce_403",3,290,"_reduce_404",1,291,"_reduce_405",1,291,"_reduce_none",0,295,"_reduce_407",0,296,"_reduce_408",5,254,"_reduce_409",4,293,"_reduce_410",1,293,"_reduce_411",0,299,"_reduce_412",4,294,"_reduce_413",0,300,"_reduce_414",4,294,"_reduce_415",0,302,"_reduce_416",4,298,"_reduce_417",2,199,"_reduce_418",4,199,"_reduce_419",5,199,"_reduce_420",5,199,"_reduce_421",2,253,"_reduce_422",4,253,"_reduce_423",4,253,"_reduce_424",3,253,"_reduce_425",3,253,"_reduce_426",3,253,"_reduce_427",2,253,"_reduce_428",1,253,"_reduce_429",4,253,"_reduce_430",0,304,"_reduce_431",4,252,"_reduce_432",0,305,"_reduce_433",4,252,"_reduce_434",0,306,"_reduce_435",3,203,"_reduce_436",0,307,"_reduce_437",0,308,"_reduce_438",4,301,"_reduce_439",5,257,"_reduce_440",1,309,"_reduce_441",1,309,"_reduce_none",0,312,"_reduce_443",0,313,"_reduce_444",7,258,"_reduce_445",1,311,"_reduce_446",1,311,"_reduce_none",1,310,"_reduce_448",3,310,"_reduce_449",3,310,"_reduce_450",1,314,"_reduce_none",2,314,"_reduce_452",3,314,"_reduce_453",1,314,"_reduce_454",1,314,"_reduce_455",1,314,"_reduce_456",1,184,"_reduce_none",3,319,"_reduce_458",1,319,"_reduce_none",3,321,"_reduce_460",1,321,"_reduce_none",1,323,"_reduce_462",1,324,"_reduce_463",1,322,"_reduce_none",4,322,"_reduce_465",4,322,"_reduce_466",4,322,"_reduce_467",3,322,"_reduce_468",4,322,"_reduce_469",4,322,"_reduce_470",4,322,"_reduce_471",3,322,"_reduce_472",3,322,"_reduce_473",3,322,"_reduce_474",2,322,"_reduce_475",0,328,"_reduce_476",4,322,"_reduce_477",2,322,"_reduce_478",0,329,"_reduce_479",4,322,"_reduce_480",1,315,"_reduce_481",1,315,"_reduce_482",2,315,"_reduce_483",3,315,"_reduce_484",5,315,"_reduce_485",2,315,"_reduce_486",4,315,"_reduce_487",1,315,"_reduce_none",2,330,"_reduce_489",3,330,"_reduce_490",1,317,"_reduce_491",3,317,"_reduce_492",5,316,"_reduce_493",2,333,"_reduce_494",1,333,"_reduce_495",1,332,"_reduce_496",3,332,"_reduce_497",1,331,"_reduce_none",3,318,"_reduce_499",1,318,"_reduce_500",2,318,"_reduce_501",1,318,"_reduce_502",1,334,"_reduce_503",3,334,"_reduce_504",2,336,"_reduce_505",1,336,"_reduce_506",1,337,"_reduce_507",3,337,"_reduce_508",2,339,"_reduce_509",1,339,"_reduce_510",2,341,"_reduce_511",1,335,"_reduce_none",1,335,"_reduce_none",1,325,"_reduce_none",3,325,"_reduce_515",3,325,"_reduce_516",2,325,"_reduce_517",2,325,"_reduce_518",1,325,"_reduce_none",1,325,"_reduce_none",1,325,"_reduce_none",2,325,"_reduce_522",2,325,"_reduce_523",1,342,"_reduce_none",1,342,"_reduce_none",1,342,"_reduce_none",1,342,"_reduce_none",1,342,"_reduce_none",1,342,"_reduce_none",1,342,"_reduce_none",1,342,"_reduce_none",1,342,"_reduce_532",1,342,"_reduce_none",1,320,"_reduce_534",2,343,"_reduce_535",2,326,"_reduce_536",3,326,"_reduce_537",1,326,"_reduce_538",6,159,"_reduce_539",0,159,"_reduce_540",1,344,"_reduce_541",1,344,"_reduce_none",1,344,"_reduce_none",2,345,"_reduce_544",1,345,"_reduce_none",2,161,"_reduce_546",1,161,"_reduce_none",1,242,"_reduce_none",1,242,"_reduce_none",1,243,"_reduce_550",1,347,"_reduce_551",2,347,"_reduce_552",3,348,"_reduce_553",1,348,"_reduce_554",1,348,"_reduce_555",3,244,"_reduce_556",4,245,"_reduce_557",3,246,"_reduce_558",0,351,"_reduce_559",3,351,"_reduce_560",1,352,"_reduce_561",2,352,"_reduce_562",3,248,"_reduce_563",0,354,"_reduce_564",3,354,"_reduce_565",3,247,"_reduce_566",3,249,"_reduce_567",0,355,"_reduce_568",3,355,"_reduce_569",0,356,"_reduce_570",3,356,"_reduce_571",0,338,"_reduce_572",2,338,"_reduce_573",0,349,"_reduce_574",2,349,"_reduce_575",0,350,"_reduce_576",2,350,"_reduce_577",1,353,"_reduce_578",2,353,"_reduce_579",0,358,"_reduce_580",4,353,"_reduce_581",1,357,"_reduce_582",1,357,"_reduce_583",1,357,"_reduce_584",1,357,"_reduce_none",1,222,"_reduce_none",1,222,"_reduce_none",1,359,"_reduce_588",3,360,"_reduce_589",1,346,"_reduce_590",2,346,"_reduce_591",1,225,"_reduce_592",1,225,"_reduce_593",1,225,"_reduce_594",1,225,"_reduce_595",1,216,"_reduce_596",1,216,"_reduce_597",1,216,"_reduce_598",1,216,"_reduce_599",1,216,"_reduce_600",1,217,"_reduce_601",1,217,"_reduce_602",1,217,"_reduce_603",1,217,"_reduce_604",1,217,"_reduce_605",1,217,"_reduce_606",1,217,"_reduce_607",1,250,"_reduce_608",1,250,"_reduce_609",1,176,"_reduce_610",1,176,"_reduce_611",1,181,"_reduce_612",1,181,"_reduce_613",0,361,"_reduce_614",4,260,"_reduce_615",0,260,"_reduce_616",1,227,"_reduce_none",1,227,"_reduce_618",3,362,"_reduce_619",5,362,"_reduce_620",3,362,"_reduce_621",1,262,"_reduce_none",0,364,"_reduce_623",3,262,"_reduce_624",4,363,"_reduce_625",2,363,"_reduce_626",2,363,"_reduce_627",1,363,"_reduce_628",2,366,"_reduce_629",0,366,"_reduce_630",6,297,"_reduce_631",8,297,"_reduce_632",4,297,"_reduce_633",6,297,"_reduce_634",4,297,"_reduce_635",6,297,"_reduce_636",2,297,"_reduce_637",4,297,"_reduce_638",6,297,"_reduce_639",2,297,"_reduce_640",4,297,"_reduce_641",2,297,"_reduce_642",4,297,"_reduce_643",1,297,"_reduce_644",0,297,"_reduce_645",1,237,"_reduce_646",1,292,"_reduce_647",1,292,"_reduce_648",1,292,"_reduce_649",1,292,"_reduce_650",1,270,"_reduce_none",1,270,"_reduce_652",1,368,"_reduce_653",1,369,"_reduce_654",3,369,"_reduce_655",1,284,"_reduce_656",3,284,"_reduce_657",1,370,"_reduce_658",2,371,"_reduce_659",1,371,"_reduce_660",2,372,"_reduce_661",1,372,"_reduce_662",1,278,"_reduce_663",3,278,"_reduce_664",1,365,"_reduce_665",3,365,"_reduce_666",1,340,"_reduce_none",1,340,"_reduce_none",2,276,"_reduce_669",2,275,"_reduce_670",1,275,"_reduce_671",3,373,"_reduce_672",3,374,"_reduce_673",1,285,"_reduce_674",3,285,"_reduce_675",1,367,"_reduce_676",3,367,"_reduce_677",1,375,"_reduce_none",1,375,"_reduce_none",2,286,"_reduce_680",1,286,"_reduce_681",1,376,"_reduce_none",1,376,"_reduce_none",2,280,"_reduce_684",2,279,"_reduce_685",0,279,"_reduce_686",1,194,"_reduce_none",3,194,"_reduce_688",0,251,"_reduce_689",2,251,"_reduce_none",1,235,"_reduce_691",3,235,"_reduce_692",3,377,"_reduce_693",2,377,"_reduce_694",4,377,"_reduce_695",2,377,"_reduce_696",1,206,"_reduce_none",1,206,"_reduce_none",1,206,"_reduce_none",1,200,"_reduce_none",1,200,"_reduce_none",1,200,"_reduce_none",1,200,"_reduce_none",1,303,"_reduce_none",1,303,"_reduce_none",1,303,"_reduce_none",1,195,"_reduce_none",1,195,"_reduce_none",1,180,"_reduce_709",1,180,"_reduce_710",0,152,"_reduce_none",1,152,"_reduce_none",0,182,"_reduce_none",1,182,"_reduce_none",2,211,"_reduce_715",2,179,"_reduce_716",2,327,"_reduce_717",0,234,"_reduce_none",1,234,"_reduce_none",1,234,"_reduce_none",1,261,"_reduce_721",1,261,"_reduce_none",1,154,"_reduce_none",2,154,"_reduce_none",0,232,"_reduce_725"],xc=726,wc=1216,Ec=d(!1,0,"error",1,"kCLASS",2,"kMODULE",3,"kDEF",4,"kUNDEF",5,"kBEGIN",6,"kRESCUE",7,"kENSURE",8,"kEND",9,"kIF",10,"kUNLESS",11,"kTHEN",12,"kELSIF",13,"kELSE",14,"kCASE",15,"kWHEN",16,"kWHILE",17,"kUNTIL",18,"kFOR",19,"kBREAK",20,"kNEXT",21,"kREDO",22,"kRETRY",23,"kIN",24,"kDO",25,"kDO_COND",26,"kDO_BLOCK",27,"kDO_LAMBDA",28,"kRETURN",29,"kYIELD",30,"kSUPER",31,"kSELF",32,"kNIL",33,"kTRUE",34,"kFALSE",35,"kAND",36,"kOR",37,"kNOT",38,"kIF_MOD",39,"kUNLESS_MOD",40,"kWHILE_MOD",41,"kUNTIL_MOD",42,"kRESCUE_MOD",43,"kALIAS",44,"kDEFINED",45,"klBEGIN",46,"klEND",47,"k__LINE__",48,"k__FILE__",49,"k__ENCODING__",50,"tIDENTIFIER",51,"tFID",52,"tGVAR",53,"tIVAR",54,"tCONSTANT",55,"tLABEL",56,"tCVAR",57,"tNTH_REF",58,"tBACK_REF",59,"tSTRING_CONTENT",60,"tINTEGER",61,"tFLOAT",62,"tUPLUS",63,"tUMINUS",64,"tUNARY_NUM",65,"tPOW",66,"tCMP",67,"tEQ",68,"tEQQ",69,"tNEQ",70,"tGEQ",71,"tLEQ",72,"tANDOP",73,"tOROP",74,"tMATCH",75,"tNMATCH",76,"tDOT",77,"tDOT2",78,"tDOT3",79,"tAREF",80,"tASET",81,"tLSHFT",82,"tRSHFT",83,"tCOLON2",84,"tCOLON3",85,"tOP_ASGN",86,"tASSOC",87,"tLPAREN",88,"tLPAREN2",89,"tRPAREN",90,"tLPAREN_ARG",91,"tLBRACK",92,"tLBRACK2",93,"tRBRACK",94,"tLBRACE",95,"tLBRACE_ARG",96,"tSTAR",97,"tSTAR2",98,"tAMPER",99,"tAMPER2",100,"tTILDE",101,"tPERCENT",102,"tDIVIDE",103,"tDSTAR",104,"tPLUS",105,"tMINUS",106,"tLT",107,"tGT",108,"tPIPE",109,"tBANG",110,"tCARET",111,"tLCURLY",112,"tRCURLY",113,"tBACK_REF2",114,"tSYMBEG",115,"tSTRING_BEG",116,"tXSTRING_BEG",117,"tREGEXP_BEG",118,"tREGEXP_OPT",119,"tWORDS_BEG",120,"tQWORDS_BEG",121,"tSYMBOLS_BEG",122,"tQSYMBOLS_BEG",123,"tSTRING_DBEG",124,"tSTRING_DVAR",125,"tSTRING_END",126,"tSTRING_DEND",127,"tSTRING",128,"tSYMBOL",129,"tNL",130,"tEH",131,"tCOLON",132,"tCOMMA",133,"tSPACE",134,"tSEMI",135,"tLAMBDA",136,"tLAMBEG",137,"tCHARACTER",138,"tRATIONAL",139,"tIMAGINARY",140,"tLABEL_END",141,"tANDDOT",142,"tBDOT2",143,"tBDOT3",144,"tEQL",145,"tLOWEST",146),Rc=147,zc=!0,e.const_set(_c[0],"Racc_arg",[lc,fc,mc,hc,gc,yc,bc,vc,Rc,kc,Ec,wc,xc,zc]),e.const_set(_c[0],"Racc_token_to_s_table",["$end","error","kCLASS","kMODULE","kDEF","kUNDEF","kBEGIN","kRESCUE","kENSURE","kEND","kIF","kUNLESS","kTHEN","kELSIF","kELSE","kCASE","kWHEN","kWHILE","kUNTIL","kFOR","kBREAK","kNEXT","kREDO","kRETRY","kIN","kDO","kDO_COND","kDO_BLOCK","kDO_LAMBDA","kRETURN","kYIELD","kSUPER","kSELF","kNIL","kTRUE","kFALSE","kAND","kOR","kNOT","kIF_MOD","kUNLESS_MOD","kWHILE_MOD","kUNTIL_MOD","kRESCUE_MOD","kALIAS","kDEFINED","klBEGIN","klEND","k__LINE__","k__FILE__","k__ENCODING__","tIDENTIFIER","tFID","tGVAR","tIVAR","tCONSTANT","tLABEL","tCVAR","tNTH_REF","tBACK_REF","tSTRING_CONTENT","tINTEGER","tFLOAT","tUPLUS","tUMINUS","tUNARY_NUM","tPOW","tCMP","tEQ","tEQQ","tNEQ","tGEQ","tLEQ","tANDOP","tOROP","tMATCH","tNMATCH","tDOT","tDOT2","tDOT3","tAREF","tASET","tLSHFT","tRSHFT","tCOLON2","tCOLON3","tOP_ASGN","tASSOC","tLPAREN","tLPAREN2","tRPAREN","tLPAREN_ARG","tLBRACK","tLBRACK2","tRBRACK","tLBRACE","tLBRACE_ARG","tSTAR","tSTAR2","tAMPER","tAMPER2","tTILDE","tPERCENT","tDIVIDE","tDSTAR","tPLUS","tMINUS","tLT","tGT","tPIPE","tBANG","tCARET","tLCURLY","tRCURLY","tBACK_REF2","tSYMBEG","tSTRING_BEG","tXSTRING_BEG","tREGEXP_BEG","tREGEXP_OPT","tWORDS_BEG","tQWORDS_BEG","tSYMBOLS_BEG","tQSYMBOLS_BEG","tSTRING_DBEG","tSTRING_DVAR","tSTRING_END","tSTRING_DEND","tSTRING","tSYMBOL","tNL","tEH","tCOLON","tCOMMA","tSPACE","tSEMI","tLAMBDA","tLAMBEG","tCHARACTER","tRATIONAL","tIMAGINARY","tLABEL_END","tANDDOT","tBDOT2","tBDOT3","tEQL","tLOWEST","$start","program","top_compstmt","@1","top_stmts","opt_terms","top_stmt","terms","stmt","begin_block","bodystmt","compstmt","opt_rescue","opt_else","opt_ensure","stmts","stmt_or_begin","fitem","undef_list","expr_value","command_asgn","mlhs","command_call","lhs","mrhs","mrhs_arg","expr","@2","command_rhs","var_lhs","primary_value","opt_call_args","rbracket","call_op","backref","opt_nl","arg","p_expr","@3","@4","expr_value_do","do","def_name","@5","fname","defn_head","defs_head","singleton","dot_or_colon","@6","command","block_command","block_call","operation2","command_args","cmd_brace_block","brace_body","fcall","@7","operation","k_return","call_args","mlhs_basic","mlhs_inner","rparen","mlhs_head","mlhs_item","mlhs_node","mlhs_post","user_variable","keyword_variable","cname","cpath","op","reswords","symbol","@8","arg_rhs","simple_numeric","rel_expr","f_opt_paren_args","primary","relop","arg_value","aref_args","none","args","trailer","assocs","paren_args","args_forward","opt_paren_args","opt_block_arg","block_arg","@9","literal","strings","xstring","regexp","words","qwords","symbols","qsymbols","var_ref","assoc_list","brace_block","method_call","lambda","then","if_tail","case_body","p_case_body","for_var","superclass","term","f_arglist","@10","@11","@12","@13","@14","@15","f_marg","f_norm_arg","f_margs","f_marg_list","f_rest_marg","f_any_kwrest","f_kwrest","f_no_kwarg","block_args_tail","f_block_kwarg","opt_f_block_arg","f_block_arg","opt_block_args_tail","excessed_comma","block_param","f_arg","f_block_optarg","f_rest_arg","opt_block_param","block_param_def","opt_bv_decl","bv_decls","bvar","f_bad_arg","f_larglist","lambda_body","@16","@17","f_args","do_block","@18","@19","do_body","@20","operation3","@21","@22","@23","@24","@25","cases","p_top_expr","p_cases","@26","@27","p_top_expr_body","p_args","p_find","p_args_tail","p_kwargs","p_as","p_variable","p_alt","p_expr_basic","p_lparen","p_lbracket","p_value","p_const","rbrace","@28","@29","p_args_head","p_arg","p_args_post","p_rest","p_kwarg","p_any_kwrest","p_kw","p_kw_label","string_contents","p_kwrest","kwrest_mark","p_kwnorest","p_primitive","p_var_ref","exc_list","exc_var","numeric","string","string1","xstring_contents","regexp_contents","word_list","word","string_content","symbol_list","qword_list","qsym_list","string_dvar","@30","ssym","dsym","@31","f_paren_args","args_tail","@32","f_kwarg","opt_args_tail","f_optarg","f_arg_asgn","f_arg_item","f_label","f_kw","f_block_kw","f_opt","f_block_opt","restarg_mark","blkarg_mark","assoc"]),e.const_set(_c[0],"Racc_debug_parser",!1),e.def(cc,"$_reduce_1",k=function(e,t,r){var $=this;return $.current_arg_stack.$push(i),$.max_numparam_stack.$push(),r},k.$$arity=3),e.def(cc,"$_reduce_2",x=function(e,t,r){var $=this;return r=e["$[]"](1),$.current_arg_stack.$pop(),$.max_numparam_stack.$pop(),r},x.$$arity=3),e.def(cc,"$_reduce_3",w=function(e){return this.builder.$compstmt(e["$[]"](0))},w.$$arity=3),e.def(cc,"$_reduce_4",E=function(){return[]},E.$$arity=3),e.def(cc,"$_reduce_5",R=function(e){return[e["$[]"](0)]},R.$$arity=3),e.def(cc,"$_reduce_6",z=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},z.$$arity=3),e.def(cc,"$_reduce_7",A=function(e){return[e["$[]"](1)]},A.$$arity=3),e.def(cc,"$_reduce_9",N=function(t){return l(this.builder,"preexe",[t["$[]"](0)].concat(e.to_a(t["$[]"](1))))},N.$$arity=3),e.def(cc,"$_reduce_10",S=function(e){return e},S.$$arity=3),e.def(cc,"$_reduce_11",O=function(t){var r,$,n=this,a=i,s=i,o=i,c=i,_=i,l=i;return a=t["$[]"](1),$=t["$[]"](2),r=e.to_ary($),s=null==r[0]?i:r[0],o=null==r[1]?i:r[1],$=t["$[]"](3),c=null==(r=e.to_ary($))[0]?i:r[0],_=null==r[1]?i:r[1],u(u(l=a["$empty?"]())?s["$nil?"]()["$!"]():l)&&n.$diagnostic("error","useless_else",i,s),n.builder.$begin_body(t["$[]"](0),a,s,o,c,_)},O.$$arity=3),e.def(cc,"$_reduce_12",T=function(e){return this.builder.$compstmt(e["$[]"](0))},T.$$arity=3),e.def(cc,"$_reduce_13",I=function(){return[]},I.$$arity=3),e.def(cc,"$_reduce_14",C=function(e){return[e["$[]"](0)]},C.$$arity=3),e.def(cc,"$_reduce_15",q=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},q.$$arity=3),e.def(cc,"$_reduce_16",P=function(e){return[e["$[]"](1)]},P.$$arity=3),e.def(cc,"$_reduce_18",B=function(e,t,r){return this.$diagnostic("error","begin_in_method",i,e["$[]"](0)),r},B.$$arity=3),e.def(cc,"$_reduce_19",D=function(r,$,n){var a=i;return a=["expr_fname"],l(this.lexer,"state=",e.to_a(a)),a[t(a.length,1)],n},D.$$arity=3),e.def(cc,"$_reduce_20",L=function(e){return this.builder.$alias(e["$[]"](0),e["$[]"](1),e["$[]"](3))},L.$$arity=3),e.def(cc,"$_reduce_21",G=function(e){var t=this;return t.builder.$alias(e["$[]"](0),t.builder.$gvar(e["$[]"](1)),t.builder.$gvar(e["$[]"](2)))},G.$$arity=3),e.def(cc,"$_reduce_22",M=function(e){var t=this;return t.builder.$alias(e["$[]"](0),t.builder.$gvar(e["$[]"](1)),t.builder.$back_ref(e["$[]"](2)))},M.$$arity=3),e.def(cc,"$_reduce_23",j=function(e,t,r){return this.$diagnostic("error","nth_ref_alias",i,e["$[]"](2)),r},j.$$arity=3),e.def(cc,"$_reduce_24",F=function(e){return this.builder.$undef_method(e["$[]"](0),e["$[]"](1))},F.$$arity=3),e.def(cc,"$_reduce_25",U=function(e){return this.builder.$condition_mod(e["$[]"](0),i,e["$[]"](1),e["$[]"](2))},U.$$arity=3),e.def(cc,"$_reduce_26",H=function(e){return this.builder.$condition_mod(i,e["$[]"](0),e["$[]"](1),e["$[]"](2))},H.$$arity=3),e.def(cc,"$_reduce_27",Y=function(e){return this.builder.$loop_mod("while",e["$[]"](0),e["$[]"](1),e["$[]"](2))},Y.$$arity=3),e.def(cc,"$_reduce_28",X=function(e){return this.builder.$loop_mod("until",e["$[]"](0),e["$[]"](1),e["$[]"](2))},X.$$arity=3),e.def(cc,"$_reduce_29",V=function(e){var t=this,r=i;return r=t.builder.$rescue_body(e["$[]"](1),i,i,i,i,e["$[]"](2)),t.builder.$begin_body(e["$[]"](0),[r])},V.$$arity=3),e.def(cc,"$_reduce_30",W=function(e){return this.builder.$postexe(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))},W.$$arity=3),e.def(cc,"$_reduce_32",K=function(e){return this.builder.$multi_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))},K.$$arity=3),e.def(cc,"$_reduce_33",Q=function(e){var t=this;return t.builder.$assign(e["$[]"](0),e["$[]"](1),t.builder.$array(i,e["$[]"](2),i))},Q.$$arity=3),e.def(cc,"$_reduce_34",J=function(e){var t=this,r=i,$=i;return r=t.builder.$rescue_body(e["$[]"](3),i,i,i,i,e["$[]"](4)),$=t.builder.$begin_body(e["$[]"](2),[r]),t.builder.$multi_assign(e["$[]"](0),e["$[]"](1),$)},J.$$arity=3),e.def(cc,"$_reduce_35",Z=function(e){return this.builder.$multi_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Z.$$arity=3),e.def(cc,"$_reduce_37",ee=function(e){return this.builder.$assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))},ee.$$arity=3),e.def(cc,"$_reduce_38",te=function(e){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))},te.$$arity=3),e.def(cc,"$_reduce_39",re=function(e){var t=this;return t.builder.$op_assign(t.builder.$index(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3)),e["$[]"](4),e["$[]"](5))},re.$$arity=3),e.def(cc,"$_reduce_40",$e=function(e){var t=this;return t.builder.$op_assign(t.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))},$e.$$arity=3),e.def(cc,"$_reduce_41",ne=function(e){var t=this;return t.builder.$op_assign(t.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))},ne.$$arity=3),e.def(cc,"$_reduce_42",ae=function(e){var t=this,r=i;return r=t.builder.$const_op_assignable(t.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))),t.builder.$op_assign(r,e["$[]"](3),e["$[]"](4))},ae.$$arity=3),e.def(cc,"$_reduce_43",ie=function(e){var t=this;return t.builder.$op_assign(t.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))},ie.$$arity=3),e.def(cc,"$_reduce_44",se=function(e,t,r){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2)),r},se.$$arity=3),e.def(cc,"$_reduce_46",oe=function(e){var t=this,r=i;return r=t.builder.$rescue_body(e["$[]"](1),i,i,i,i,e["$[]"](2)),t.builder.$begin_body(e["$[]"](0),[r])},oe.$$arity=3),e.def(cc,"$_reduce_49",ce=function(e){return this.builder.$logical_op("and",e["$[]"](0),e["$[]"](1),e["$[]"](2))},ce.$$arity=3),e.def(cc,"$_reduce_50",_e=function(e){return this.builder.$logical_op("or",e["$[]"](0),e["$[]"](1),e["$[]"](2))},_e.$$arity=3),e.def(cc,"$_reduce_51",ue=function(e){return this.builder.$not_op(e["$[]"](0),i,e["$[]"](2),i)},ue.$$arity=3),e.def(cc,"$_reduce_52",le=function(e){return this.builder.$not_op(e["$[]"](0),i,e["$[]"](1),i)},le.$$arity=3),e.def(cc,"$_reduce_53",de=function(r,$,n){var a=this,s=i;return s=["expr_beg"],l(a.lexer,"state=",e.to_a(s)),s[t(s.length,1)],s=[!1],l(a.lexer,"command_start=",e.to_a(s)),s[t(s.length,1)],a.pattern_variables.$push(),n=a.lexer.$in_kwarg(),s=[!0],l(a.lexer,"in_kwarg=",e.to_a(s)),s[t(s.length,1)],n},de.$$arity=3),e.def(cc,"$_reduce_54",pe=function(r){var $=this,n=i;return $.pattern_variables.$pop(),n=[r["$[]"](2)],l($.lexer,"in_kwarg=",e.to_a(n)),n[t(n.length,1)],$.builder.$match_pattern(r["$[]"](0),r["$[]"](1),r["$[]"](3))},pe.$$arity=3),e.def(cc,"$_reduce_55",fe=function(r,$,n){var a=this,s=i;return s=["expr_beg"],l(a.lexer,"state=",e.to_a(s)),s[t(s.length,1)],s=[!1],l(a.lexer,"command_start=",e.to_a(s)),s[t(s.length,1)],a.pattern_variables.$push(),n=a.lexer.$in_kwarg(),s=[!0],l(a.lexer,"in_kwarg=",e.to_a(s)),s[t(s.length,1)],n},fe.$$arity=3),e.def(cc,"$_reduce_56",he=function(r){var $=this,n=i;return $.pattern_variables.$pop(),n=[r["$[]"](2)],l($.lexer,"in_kwarg=",e.to_a(n)),n[t(n.length,1)],$.builder.$match_pattern_p(r["$[]"](0),r["$[]"](1),r["$[]"](3))},he.$$arity=3),e.def(cc,"$_reduce_59",me=function(e,t,r){return this.lexer.$cond().$push(!0),r},me.$$arity=3),e.def(cc,"$_reduce_60",ge=function(e){return this.lexer.$cond().$pop(),[e["$[]"](1),e["$[]"](2)]},ge.$$arity=3),e.def(cc,"$_reduce_61",ye=function(e){var t=this;return t.static_env.$extend_static(),t.lexer.$cmdarg().$push(!1),t.lexer.$cond().$push(!1),t.current_arg_stack.$push(i),e["$[]"](0)},ye.$$arity=3),e.def(cc,"$_reduce_62",ve=function(e){return this.context.$push("def"),[e["$[]"](0),e["$[]"](1)]},ve.$$arity=3),e.def(cc,"$_reduce_63",be=function(r,$,n){var a=i;return a=["expr_fname"],l(this.lexer,"state=",e.to_a(a)),a[t(a.length,1)],n},be.$$arity=3),e.def(cc,"$_reduce_64",ke=function(e){return this.context.$push("defs"),[e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](4)]},ke.$$arity=3),e.def(cc,"$_reduce_68",xe=function(e){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),i,e["$[]"](3),i)},xe.$$arity=3),e.def(cc,"$_reduce_69",we=function(e,t,r){return this.context.$push("block"),r},we.$$arity=3),e.def(cc,"$_reduce_70",Ee=function(t,r,$){var n=this;return $=[t["$[]"](0)].concat(e.to_a(t["$[]"](2))).concat([t["$[]"](3)]),n.context.$pop(),$},Ee.$$arity=3),e.def(cc,"$_reduce_72",Re=function(e){return this.builder.$call_method(i,i,e["$[]"](0),i,e["$[]"](1),i)},Re.$$arity=3),e.def(cc,"$_reduce_73",ze=function(t){var r,$,n=this,a=i,s=i,o=i,c=i,_=i;return a=n.builder.$call_method(i,i,t["$[]"](0),i,t["$[]"](1),i),$=t["$[]"](2),s=null==(r=e.to_ary($))[0]?i:r[0],o=null==r[1]?i:r[1],c=null==r[2]?i:r[2],_=null==r[3]?i:r[3],n.builder.$block(a,s,o,c,_)},ze.$$arity=3),e.def(cc,"$_reduce_74",Ae=function(e){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),i,e["$[]"](3),i)},Ae.$$arity=3),e.def(cc,"$_reduce_75",Ne=function(t){var r,$,n=this,a=i,s=i,o=i,c=i,_=i;return a=n.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),i,t["$[]"](3),i),$=t["$[]"](4),s=null==(r=e.to_ary($))[0]?i:r[0],o=null==r[1]?i:r[1],c=null==r[2]?i:r[2],_=null==r[3]?i:r[3],n.builder.$block(a,s,o,c,_)},Ne.$$arity=3),e.def(cc,"$_reduce_76",Se=function(e){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2),i,e["$[]"](3),i)},Se.$$arity=3),e.def(cc,"$_reduce_77",Oe=function(t){var r,$,n=this,a=i,s=i,o=i,c=i,_=i;return a=n.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),i,t["$[]"](3),i),$=t["$[]"](4),s=null==(r=e.to_ary($))[0]?i:r[0],o=null==r[1]?i:r[1],c=null==r[2]?i:r[2],_=null==r[3]?i:r[3],n.builder.$block(a,s,o,c,_)},Oe.$$arity=3),e.def(cc,"$_reduce_78",Te=function(e){return this.builder.$keyword_cmd("super",e["$[]"](0),i,e["$[]"](1),i)},Te.$$arity=3),e.def(cc,"$_reduce_79",Ie=function(e){return this.builder.$keyword_cmd("yield",e["$[]"](0),i,e["$[]"](1),i)},Ie.$$arity=3),e.def(cc,"$_reduce_80",Ce=function(e){return this.builder.$keyword_cmd("return",e["$[]"](0),i,e["$[]"](1),i)},Ce.$$arity=3),e.def(cc,"$_reduce_81",qe=function(e){return this.builder.$keyword_cmd("break",e["$[]"](0),i,e["$[]"](1),i)},qe.$$arity=3),e.def(cc,"$_reduce_82",Pe=function(e){return this.builder.$keyword_cmd("next",e["$[]"](0),i,e["$[]"](1),i)},Pe.$$arity=3),e.def(cc,"$_reduce_83",Be=function(e){return this.builder.$multi_lhs(i,e["$[]"](0),i)},Be.$$arity=3),e.def(cc,"$_reduce_84",De=function(e){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](2))},De.$$arity=3),e.def(cc,"$_reduce_85",Le=function(e){return this.builder.$multi_lhs(i,e["$[]"](0),i)},Le.$$arity=3),e.def(cc,"$_reduce_86",Ge=function(e){return this.builder.$multi_lhs(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Ge.$$arity=3),e.def(cc,"$_reduce_88",Me=function(e){return e["$[]"](0).$push(e["$[]"](1))},Me.$$arity=3),e.def(cc,"$_reduce_89",je=function(e){var t=this;return e["$[]"](0).$push(t.builder.$splat(e["$[]"](1),e["$[]"](2)))},je.$$arity=3),e.def(cc,"$_reduce_90",Fe=function(e){var t=this;return e["$[]"](0).$push(t.builder.$splat(e["$[]"](1),e["$[]"](2))).$concat(e["$[]"](4))},Fe.$$arity=3),e.def(cc,"$_reduce_91",Ue=function(e){var t=this;return e["$[]"](0).$push(t.builder.$splat(e["$[]"](1)))},Ue.$$arity=3),e.def(cc,"$_reduce_92",He=function(e){var t=this;return e["$[]"](0).$push(t.builder.$splat(e["$[]"](1))).$concat(e["$[]"](3))},He.$$arity=3),e.def(cc,"$_reduce_93",Ye=function(e){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))]},Ye.$$arity=3),e.def(cc,"$_reduce_94",Xe=function(t){return[this.builder.$splat(t["$[]"](0),t["$[]"](1))].concat(e.to_a(t["$[]"](3)))},Xe.$$arity=3),e.def(cc,"$_reduce_95",Ve=function(e){return[this.builder.$splat(e["$[]"](0))]},Ve.$$arity=3),e.def(cc,"$_reduce_96",We=function(t){return[this.builder.$splat(t["$[]"](0))].concat(e.to_a(t["$[]"](2)))},We.$$arity=3),e.def(cc,"$_reduce_98",Ke=function(e){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Ke.$$arity=3),e.def(cc,"$_reduce_99",Qe=function(e){return[e["$[]"](0)]},Qe.$$arity=3),e.def(cc,"$_reduce_100",Je=function(e){return e["$[]"](0)["$<<"](e["$[]"](1))},Je.$$arity=3),e.def(cc,"$_reduce_101",Ze=function(e){return[e["$[]"](0)]},Ze.$$arity=3),e.def(cc,"$_reduce_102",et=function(e){return e["$[]"](0)["$<<"](e["$[]"](2)) +},et.$$arity=3),e.def(cc,"$_reduce_103",tt=function(e){return this.builder.$assignable(e["$[]"](0))},tt.$$arity=3),e.def(cc,"$_reduce_104",rt=function(e){return this.builder.$assignable(e["$[]"](0))},rt.$$arity=3),e.def(cc,"$_reduce_105",$t=function(e){return this.builder.$index_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))},$t.$$arity=3),e.def(cc,"$_reduce_106",nt=function(e){var t=this;return u(e["$[]"](1)["$[]"](0)["$=="]("anddot"))&&t.$diagnostic("error","csend_in_lhs_of_masgn",i,e["$[]"](1)),t.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))},nt.$$arity=3),e.def(cc,"$_reduce_107",at=function(e){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))},at.$$arity=3),e.def(cc,"$_reduce_108",it=function(e){var t=this;return u(e["$[]"](1)["$[]"](0)["$=="]("anddot"))&&t.$diagnostic("error","csend_in_lhs_of_masgn",i,e["$[]"](1)),t.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))},it.$$arity=3),e.def(cc,"$_reduce_109",st=function(e){var t=this;return t.builder.$assignable(t.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2)))},st.$$arity=3),e.def(cc,"$_reduce_110",ot=function(e){var t=this;return t.builder.$assignable(t.builder.$const_global(e["$[]"](0),e["$[]"](1)))},ot.$$arity=3),e.def(cc,"$_reduce_111",ct=function(e){return this.builder.$assignable(e["$[]"](0))},ct.$$arity=3),e.def(cc,"$_reduce_112",_t=function(e){return this.builder.$assignable(e["$[]"](0))},_t.$$arity=3),e.def(cc,"$_reduce_113",ut=function(e){return this.builder.$assignable(e["$[]"](0))},ut.$$arity=3),e.def(cc,"$_reduce_114",lt=function(e){return this.builder.$index_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))},lt.$$arity=3),e.def(cc,"$_reduce_115",dt=function(e){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))},dt.$$arity=3),e.def(cc,"$_reduce_116",pt=function(e){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))},pt.$$arity=3),e.def(cc,"$_reduce_117",ft=function(e){return this.builder.$attr_asgn(e["$[]"](0),e["$[]"](1),e["$[]"](2))},ft.$$arity=3),e.def(cc,"$_reduce_118",ht=function(e){var t=this;return t.builder.$assignable(t.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2)))},ht.$$arity=3),e.def(cc,"$_reduce_119",mt=function(e){var t=this;return t.builder.$assignable(t.builder.$const_global(e["$[]"](0),e["$[]"](1)))},mt.$$arity=3),e.def(cc,"$_reduce_120",gt=function(e){return this.builder.$assignable(e["$[]"](0))},gt.$$arity=3),e.def(cc,"$_reduce_121",yt=function(e,t,r){return this.$diagnostic("error","module_name_const",i,e["$[]"](0)),r},yt.$$arity=3),e.def(cc,"$_reduce_123",vt=function(e){return this.builder.$const_global(e["$[]"](0),e["$[]"](1))},vt.$$arity=3),e.def(cc,"$_reduce_124",bt=function(e){return this.builder.$const(e["$[]"](0))},bt.$$arity=3),e.def(cc,"$_reduce_125",kt=function(e){return this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))},kt.$$arity=3),e.def(cc,"$_reduce_131",xt=function(e){return this.builder.$symbol_internal(e["$[]"](0))},xt.$$arity=3),e.def(cc,"$_reduce_133",wt=function(e){return[e["$[]"](0)]},wt.$$arity=3),e.def(cc,"$_reduce_134",Et=function(r,$,n){var a=i;return a=["expr_fname"],l(this.lexer,"state=",e.to_a(a)),a[t(a.length,1)],n},Et.$$arity=3),e.def(cc,"$_reduce_135",Rt=function(e){return e["$[]"](0)["$<<"](e["$[]"](3))},Rt.$$arity=3),e.def(cc,"$_reduce_207",zt=function(e){return this.builder.$assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))},zt.$$arity=3),e.def(cc,"$_reduce_208",At=function(e){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))},At.$$arity=3),e.def(cc,"$_reduce_209",Nt=function(e){var t=this;return t.builder.$op_assign(t.builder.$index(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3)),e["$[]"](4),e["$[]"](5))},Nt.$$arity=3),e.def(cc,"$_reduce_210",St=function(e){var t=this;return t.builder.$op_assign(t.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))},St.$$arity=3),e.def(cc,"$_reduce_211",Ot=function(e){var t=this;return t.builder.$op_assign(t.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))},Ot.$$arity=3),e.def(cc,"$_reduce_212",Tt=function(e){var t=this;return t.builder.$op_assign(t.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2)),e["$[]"](3),e["$[]"](4))},Tt.$$arity=3),e.def(cc,"$_reduce_213",It=function(e){var t=this,r=i;return r=t.builder.$const_op_assignable(t.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))),t.builder.$op_assign(r,e["$[]"](3),e["$[]"](4))},It.$$arity=3),e.def(cc,"$_reduce_214",Ct=function(e){var t=this,r=i;return r=t.builder.$const_op_assignable(t.builder.$const_global(e["$[]"](0),e["$[]"](1))),t.builder.$op_assign(r,e["$[]"](2),e["$[]"](3))},Ct.$$arity=3),e.def(cc,"$_reduce_215",qt=function(e){return this.builder.$op_assign(e["$[]"](0),e["$[]"](1),e["$[]"](2))},qt.$$arity=3),e.def(cc,"$_reduce_216",Pt=function(e){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Pt.$$arity=3),e.def(cc,"$_reduce_217",Bt=function(e){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Bt.$$arity=3),e.def(cc,"$_reduce_218",Dt=function(e){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),i)},Dt.$$arity=3),e.def(cc,"$_reduce_219",Lt=function(e){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),i)},Lt.$$arity=3),e.def(cc,"$_reduce_220",Gt=function(e){return this.builder.$range_inclusive(i,e["$[]"](0),e["$[]"](1))},Gt.$$arity=3),e.def(cc,"$_reduce_221",Mt=function(e){return this.builder.$range_exclusive(i,e["$[]"](0),e["$[]"](1))},Mt.$$arity=3),e.def(cc,"$_reduce_222",jt=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},jt.$$arity=3),e.def(cc,"$_reduce_223",Ft=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Ft.$$arity=3),e.def(cc,"$_reduce_224",Ut=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Ut.$$arity=3),e.def(cc,"$_reduce_225",Ht=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Ht.$$arity=3),e.def(cc,"$_reduce_226",Yt=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Yt.$$arity=3),e.def(cc,"$_reduce_227",Xt=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Xt.$$arity=3),e.def(cc,"$_reduce_228",Vt=function(e){var t=this;return t.builder.$unary_op(e["$[]"](0),t.builder.$binary_op(e["$[]"](1),e["$[]"](2),e["$[]"](3)))},Vt.$$arity=3),e.def(cc,"$_reduce_229",Wt=function(e){return this.builder.$unary_op(e["$[]"](0),e["$[]"](1))},Wt.$$arity=3),e.def(cc,"$_reduce_230",Kt=function(e){return this.builder.$unary_op(e["$[]"](0),e["$[]"](1))},Kt.$$arity=3),e.def(cc,"$_reduce_231",Qt=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Qt.$$arity=3),e.def(cc,"$_reduce_232",Jt=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Jt.$$arity=3),e.def(cc,"$_reduce_233",Zt=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Zt.$$arity=3),e.def(cc,"$_reduce_234",er=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},er.$$arity=3),e.def(cc,"$_reduce_236",tr=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},tr.$$arity=3),e.def(cc,"$_reduce_237",rr=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},rr.$$arity=3),e.def(cc,"$_reduce_238",$r=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},$r.$$arity=3),e.def(cc,"$_reduce_239",nr=function(e){return this.builder.$match_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},nr.$$arity=3),e.def(cc,"$_reduce_240",ar=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},ar.$$arity=3),e.def(cc,"$_reduce_241",ir=function(e){return this.builder.$not_op(e["$[]"](0),i,e["$[]"](1),i)},ir.$$arity=3),e.def(cc,"$_reduce_242",sr=function(e){return this.builder.$unary_op(e["$[]"](0),e["$[]"](1))},sr.$$arity=3),e.def(cc,"$_reduce_243",or=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},or.$$arity=3),e.def(cc,"$_reduce_244",cr=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},cr.$$arity=3),e.def(cc,"$_reduce_245",_r=function(e){return this.builder.$logical_op("and",e["$[]"](0),e["$[]"](1),e["$[]"](2))},_r.$$arity=3),e.def(cc,"$_reduce_246",ur=function(e){return this.builder.$logical_op("or",e["$[]"](0),e["$[]"](1),e["$[]"](2))},ur.$$arity=3),e.def(cc,"$_reduce_247",lr=function(e){return this.builder.$keyword_cmd("defined?",e["$[]"](0),i,[e["$[]"](2)],i)},lr.$$arity=3),e.def(cc,"$_reduce_248",dr=function(e){return this.builder.$ternary(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](4),e["$[]"](5))},dr.$$arity=3),e.def(cc,"$_reduce_249",pr=function(t,r,$){var n,a,s=this,o=i;return a=t["$[]"](0),null==(n=e.to_ary(a))[0]?i:n[0],o=null==n[1]?i:n[1],s.$endless_method_name(o),$=l(s.builder,"def_endless_method",e.to_a(t["$[]"](0)).concat([t["$[]"](1),t["$[]"](2),t["$[]"](3)])),s.lexer.$cmdarg().$pop(),s.lexer.$cond().$pop(),s.static_env.$unextend(),s.context.$pop(),s.current_arg_stack.$pop(),$},pr.$$arity=3),e.def(cc,"$_reduce_250",fr=function(t,r,$){var n,a,s=this,o=i,c=i,_=i;return a=t["$[]"](0),null==(n=e.to_ary(a))[0]?i:n[0],o=null==n[1]?i:n[1],s.$endless_method_name(o),c=s.builder.$rescue_body(t["$[]"](4),i,i,i,i,t["$[]"](5)),_=s.builder.$begin_body(t["$[]"](3),[c]),$=l(s.builder,"def_endless_method",e.to_a(t["$[]"](0)).concat([t["$[]"](1),t["$[]"](2),_])),s.lexer.$cmdarg().$pop(),s.lexer.$cond().$pop(),s.static_env.$unextend(),s.context.$pop(),s.current_arg_stack.$pop(),$},fr.$$arity=3),e.def(cc,"$_reduce_251",hr=function(t,r,$){var n,a,s=this,o=i;return a=t["$[]"](0),null==(n=e.to_ary(a))[0]?i:n[0],null==n[1]?i:n[1],null==n[2]?i:n[2],o=null==n[3]?i:n[3],s.$endless_method_name(o),$=l(s.builder,"def_endless_singleton",e.to_a(t["$[]"](0)).concat([t["$[]"](1),t["$[]"](2),t["$[]"](3)])),s.lexer.$cmdarg().$pop(),s.lexer.$cond().$pop(),s.static_env.$unextend(),s.context.$pop(),s.current_arg_stack.$pop(),$},hr.$$arity=3),e.def(cc,"$_reduce_252",mr=function(t,r,$){var n,a,s=this,o=i,c=i,_=i;return a=t["$[]"](0),null==(n=e.to_ary(a))[0]?i:n[0],null==n[1]?i:n[1],null==n[2]?i:n[2],o=null==n[3]?i:n[3],s.$endless_method_name(o),c=s.builder.$rescue_body(t["$[]"](4),i,i,i,i,t["$[]"](5)),_=s.builder.$begin_body(t["$[]"](3),[c]),$=l(s.builder,"def_endless_singleton",e.to_a(t["$[]"](0)).concat([t["$[]"](1),t["$[]"](2),_])),s.lexer.$cmdarg().$pop(),s.lexer.$cond().$pop(),s.static_env.$unextend(),s.context.$pop(),s.current_arg_stack.$pop(),$},mr.$$arity=3),e.def(cc,"$_reduce_258",gr=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},gr.$$arity=3),e.def(cc,"$_reduce_259",yr=function(e){return this.builder.$binary_op(e["$[]"](0),e["$[]"](1),e["$[]"](2))},yr.$$arity=3),e.def(cc,"$_reduce_263",vr=function(e){var t=this;return e["$[]"](0)["$<<"](t.builder.$associate(i,e["$[]"](2),i))},vr.$$arity=3),e.def(cc,"$_reduce_264",br=function(e){return[this.builder.$associate(i,e["$[]"](0),i)]},br.$$arity=3),e.def(cc,"$_reduce_266",kr=function(e){var t=this,r=i;return r=t.builder.$rescue_body(e["$[]"](1),i,i,i,i,e["$[]"](2)),t.builder.$begin_body(e["$[]"](0),[r])},kr.$$arity=3),e.def(cc,"$_reduce_267",xr=function(e){return e},xr.$$arity=3),e.def(cc,"$_reduce_268",wr=function(t){var r=this;return u(r.static_env["$declared_forward_args?"]())||r.$diagnostic("error","unexpected_token",p(["token"],{token:"tBDOT3"}),t["$[]"](3)),[t["$[]"](0),[].concat(e.to_a(t["$[]"](1))).concat([r.builder.$forwarded_args(t["$[]"](3))]),t["$[]"](4)]},wr.$$arity=3),e.def(cc,"$_reduce_269",Er=function(e){var t=this;return u(t.static_env["$declared_forward_args?"]())||t.$diagnostic("error","unexpected_token",p(["token"],{token:"tBDOT3"}),e["$[]"](1)),[e["$[]"](0),[t.builder.$forwarded_args(e["$[]"](1))],e["$[]"](2)]},Er.$$arity=3),e.def(cc,"$_reduce_270",Rr=function(){return[i,[],i]},Rr.$$arity=3),e.def(cc,"$_reduce_272",zr=function(){return[]},zr.$$arity=3),e.def(cc,"$_reduce_275",Ar=function(e){var t=this;return e["$[]"](0)["$<<"](t.builder.$associate(i,e["$[]"](2),i))},Ar.$$arity=3),e.def(cc,"$_reduce_276",Nr=function(e){return[this.builder.$associate(i,e["$[]"](0),i)]},Nr.$$arity=3),e.def(cc,"$_reduce_277",Sr=function(e){return[e["$[]"](0)]},Sr.$$arity=3),e.def(cc,"$_reduce_278",Or=function(e){return e["$[]"](0).$concat(e["$[]"](1))},Or.$$arity=3),e.def(cc,"$_reduce_279",Tr=function(e,t,r){return(r=[this.builder.$associate(i,e["$[]"](0),i)]).$concat(e["$[]"](1)),r},Tr.$$arity=3),e.def(cc,"$_reduce_280",Ir=function(e,t,r){var $=i;return $=this.builder.$associate(i,e["$[]"](2),i),(r=e["$[]"](0)["$<<"]($)).$concat(e["$[]"](3)),r},Ir.$$arity=3),e.def(cc,"$_reduce_281",Cr=function(e){return[e["$[]"](0)]},Cr.$$arity=3),e.def(cc,"$_reduce_282",qr=function(e,t,r){var $=this,n=i,a=i,s=i,o=i;return n=$.last_token["$[]"](0),a=u(s=n["$=="]("tLBRACK"))?s:n["$=="]("tLPAREN_ARG"),u(a)?(o=$.lexer.$cmdarg().$pop(),$.lexer.$cmdarg().$push(!0),$.lexer.$cmdarg().$push(o)):$.lexer.$cmdarg().$push(!0),r},qr.$$arity=3),e.def(cc,"$_reduce_283",Pr=function(e){var t=this,r=i,$=i;return r=t.last_token["$[]"](0)["$=="]("tLBRACE_ARG"),u(r)?($=t.lexer.$cmdarg().$pop(),t.lexer.$cmdarg().$pop(),t.lexer.$cmdarg().$push($)):t.lexer.$cmdarg().$pop(),e["$[]"](1)},Pr.$$arity=3),e.def(cc,"$_reduce_284",Br=function(e){return this.builder.$block_pass(e["$[]"](0),e["$[]"](1))},Br.$$arity=3),e.def(cc,"$_reduce_285",Dr=function(e){return[e["$[]"](1)]},Dr.$$arity=3),e.def(cc,"$_reduce_286",Lr=function(){return[]},Lr.$$arity=3),e.def(cc,"$_reduce_287",Gr=function(e){return[e["$[]"](0)]},Gr.$$arity=3),e.def(cc,"$_reduce_288",Mr=function(e){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))]},Mr.$$arity=3),e.def(cc,"$_reduce_289",jr=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},jr.$$arity=3),e.def(cc,"$_reduce_290",Fr=function(e){var t=this;return e["$[]"](0)["$<<"](t.builder.$splat(e["$[]"](2),e["$[]"](3)))},Fr.$$arity=3),e.def(cc,"$_reduce_291",Ur=function(e){return this.builder.$array(i,e["$[]"](0),i)},Ur.$$arity=3),e.def(cc,"$_reduce_293",Hr=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},Hr.$$arity=3),e.def(cc,"$_reduce_294",Yr=function(e){var t=this;return e["$[]"](0)["$<<"](t.builder.$splat(e["$[]"](2),e["$[]"](3)))},Yr.$$arity=3),e.def(cc,"$_reduce_295",Xr=function(e){return[this.builder.$splat(e["$[]"](0),e["$[]"](1))]},Xr.$$arity=3),e.def(cc,"$_reduce_306",Vr=function(e){return this.builder.$call_method(i,i,e["$[]"](0))},Vr.$$arity=3),e.def(cc,"$_reduce_307",Wr=function(e,t,r){return this.lexer.$cmdarg().$push(!1),r},Wr.$$arity=3),e.def(cc,"$_reduce_308",Kr=function(e){var t=this;return t.lexer.$cmdarg().$pop(),t.builder.$begin_keyword(e["$[]"](0),e["$[]"](2),e["$[]"](3))},Kr.$$arity=3),e.def(cc,"$_reduce_309",Qr=function(r,$,n){var a=i;return a=["expr_endarg"],l(this.lexer,"state=",e.to_a(a)),a[t(a.length,1)],n},Qr.$$arity=3),e.def(cc,"$_reduce_310",Jr=function(e){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](3))},Jr.$$arity=3),e.def(cc,"$_reduce_311",Zr=function(r,$,n){var a=i;return a=["expr_endarg"],l(this.lexer,"state=",e.to_a(a)),a[t(a.length,1)],n},Zr.$$arity=3),e.def(cc,"$_reduce_312",e$=function(e){return this.builder.$begin(e["$[]"](0),i,e["$[]"](3))},e$.$$arity=3),e.def(cc,"$_reduce_313",t$=function(e){return this.builder.$begin(e["$[]"](0),e["$[]"](1),e["$[]"](2))},t$.$$arity=3),e.def(cc,"$_reduce_314",r$=function(e){return this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))},r$.$$arity=3),e.def(cc,"$_reduce_315",$$=function(e){return this.builder.$const_global(e["$[]"](0),e["$[]"](1))},$$.$$arity=3),e.def(cc,"$_reduce_316",n$=function(e){return this.builder.$array(e["$[]"](0),e["$[]"](1),e["$[]"](2))},n$.$$arity=3),e.def(cc,"$_reduce_317",a$=function(e){return this.builder.$associate(e["$[]"](0),e["$[]"](1),e["$[]"](2))},a$.$$arity=3),e.def(cc,"$_reduce_318",i$=function(e){return this.builder.$keyword_cmd("return",e["$[]"](0))},i$.$$arity=3),e.def(cc,"$_reduce_319",s$=function(e){return this.builder.$keyword_cmd("yield",e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))},s$.$$arity=3),e.def(cc,"$_reduce_320",o$=function(e){return this.builder.$keyword_cmd("yield",e["$[]"](0),e["$[]"](1),[],e["$[]"](2))},o$.$$arity=3),e.def(cc,"$_reduce_321",c$=function(e){return this.builder.$keyword_cmd("yield",e["$[]"](0))},c$.$$arity=3),e.def(cc,"$_reduce_322",_$=function(e){return this.builder.$keyword_cmd("defined?",e["$[]"](0),e["$[]"](2),[e["$[]"](3)],e["$[]"](4))},_$.$$arity=3),e.def(cc,"$_reduce_323",u$=function(e){return this.builder.$not_op(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))},u$.$$arity=3),e.def(cc,"$_reduce_324",l$=function(e){return this.builder.$not_op(e["$[]"](0),e["$[]"](1),i,e["$[]"](2))},l$.$$arity=3),e.def(cc,"$_reduce_325",d$=function(t){var r,$,n=this,a=i,s=i,o=i,c=i,_=i;return a=n.builder.$call_method(i,i,t["$[]"](0)),$=t["$[]"](1),s=null==(r=e.to_ary($))[0]?i:r[0],o=null==r[1]?i:r[1],c=null==r[2]?i:r[2],_=null==r[3]?i:r[3],n.builder.$block(a,s,o,c,_)},d$.$$arity=3),e.def(cc,"$_reduce_327",p$=function(t){var r,$,n=this,a=i,s=i,o=i,c=i;return $=t["$[]"](1),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],c=null==r[3]?i:r[3],n.builder.$block(t["$[]"](0),a,s,o,c)},p$.$$arity=3),e.def(cc,"$_reduce_329",f$=function(t){var r,$,n=this,a=i,s=i;return $=t["$[]"](4),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],n.builder.$condition(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3),a,s,t["$[]"](5))},f$.$$arity=3),e.def(cc,"$_reduce_330",h$=function(t){var r,$,n=this,a=i,s=i;return $=t["$[]"](4),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],n.builder.$condition(t["$[]"](0),t["$[]"](1),t["$[]"](2),s,a,t["$[]"](3),t["$[]"](5))},h$.$$arity=3),e.def(cc,"$_reduce_331",m$=function(t){return l(this.builder,"loop",["while",t["$[]"](0)].concat(e.to_a(t["$[]"](1))).concat([t["$[]"](2),t["$[]"](3)]))},m$.$$arity=3),e.def(cc,"$_reduce_332",g$=function(t){return l(this.builder,"loop",["until",t["$[]"](0)].concat(e.to_a(t["$[]"](1))).concat([t["$[]"](2),t["$[]"](3)]))},g$.$$arity=3),e.def(cc,"$_reduce_333",y$=function(t){var r,$,n,a=this,s=i,o=i,c=i;return $=($=(r=[].concat(e.to_a(t["$[]"](3)))).length-1)<0?0:$,s=f.call(r,0,$),o=null==(n=e.to_ary(null==r[$]?i:r[$]))[0]?i:n[0],c=null==n[1]?i:n[1],a.builder.$case(t["$[]"](0),t["$[]"](1),s,o,c,t["$[]"](4))},y$.$$arity=3),e.def(cc,"$_reduce_334",v$=function(t){var r,$,n,a=this,s=i,o=i,c=i;return $=($=(r=[].concat(e.to_a(t["$[]"](2)))).length-1)<0?0:$,s=f.call(r,0,$),o=null==(n=e.to_ary(null==r[$]?i:r[$]))[0]?i:n[0],c=null==n[1]?i:n[1],a.builder.$case(t["$[]"](0),i,s,o,c,t["$[]"](3))},v$.$$arity=3),e.def(cc,"$_reduce_335",b$=function(t){var r,$,n,a=this,s=i,o=i,c=i;return $=($=(r=[].concat(e.to_a(t["$[]"](3)))).length-1)<0?0:$,s=f.call(r,0,$),o=null==(n=e.to_ary(null==r[$]?i:r[$]))[0]?i:n[0],c=null==n[1]?i:n[1],a.builder.$case_match(t["$[]"](0),t["$[]"](1),s,o,c,t["$[]"](4))},b$.$$arity=3),e.def(cc,"$_reduce_336",k$=function(t){return l(this.builder,"for",[t["$[]"](0),t["$[]"](1),t["$[]"](2)].concat(e.to_a(t["$[]"](3))).concat([t["$[]"](4),t["$[]"](5)]))},k$.$$arity=3),e.def(cc,"$_reduce_337",x$=function(e,t,r){var $=this;return $.static_env.$extend_static(),$.lexer.$cmdarg().$push(!1),$.lexer.$cond().$push(!1),$.context.$push("class"),r},x$.$$arity=3),e.def(cc,"$_reduce_338",w$=function(t,r,$){var n,a,s=this,o=i,c=i;return u(s.context["$class_definition_allowed?"]())||s.$diagnostic("error","class_in_def",i,t["$[]"](0)),a=t["$[]"](2),o=null==(n=e.to_ary(a))[0]?i:n[0],c=null==n[1]?i:n[1],$=s.builder.$def_class(t["$[]"](0),t["$[]"](1),o,c,t["$[]"](4),t["$[]"](5)),s.lexer.$cmdarg().$pop(),s.lexer.$cond().$pop(),s.static_env.$unextend(),s.context.$pop(),$},w$.$$arity=3),e.def(cc,"$_reduce_339",E$=function(e,t,r){var $=this;return $.static_env.$extend_static(),$.lexer.$cmdarg().$push(!1),$.lexer.$cond().$push(!1),$.context.$push("sclass"),r},E$.$$arity=3),e.def(cc,"$_reduce_340",R$=function(e,t,r){var $=this;return r=$.builder.$def_sclass(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](5),e["$[]"](6)),$.lexer.$cmdarg().$pop(),$.lexer.$cond().$pop(),$.static_env.$unextend(),$.context.$pop(),r},R$.$$arity=3),e.def(cc,"$_reduce_341",z$=function(e,t,r){var $=this;return $.static_env.$extend_static(),$.lexer.$cmdarg().$push(!1),$.context.$push("module"),r},z$.$$arity=3),e.def(cc,"$_reduce_342",A$=function(e,t,r){var $=this;return u($.context["$module_definition_allowed?"]())||$.$diagnostic("error","module_in_def",i,e["$[]"](0)),r=$.builder.$def_module(e["$[]"](0),e["$[]"](1),e["$[]"](3),e["$[]"](4)),$.lexer.$cmdarg().$pop(),$.static_env.$unextend(),$.context.$pop(),r},A$.$$arity=3),e.def(cc,"$_reduce_343",N$=function(t,r,$){var n=this;return $=l(n.builder,"def_method",e.to_a(t["$[]"](0)).concat([t["$[]"](1),t["$[]"](2),t["$[]"](3)])),n.lexer.$cmdarg().$pop(),n.lexer.$cond().$pop(),n.static_env.$unextend(),n.context.$pop(),n.current_arg_stack.$pop(),$},N$.$$arity=3),e.def(cc,"$_reduce_344",S$=function(t,r,$){var n=this;return $=l(n.builder,"def_singleton",e.to_a(t["$[]"](0)).concat([t["$[]"](1),t["$[]"](2),t["$[]"](3)])),n.lexer.$cmdarg().$pop(),n.lexer.$cond().$pop(),n.static_env.$unextend(),n.context.$pop(),n.current_arg_stack.$pop(),$},S$.$$arity=3),e.def(cc,"$_reduce_345",O$=function(e){return this.builder.$keyword_cmd("break",e["$[]"](0))},O$.$$arity=3),e.def(cc,"$_reduce_346",T$=function(e){return this.builder.$keyword_cmd("next",e["$[]"](0))},T$.$$arity=3),e.def(cc,"$_reduce_347",I$=function(e){return this.builder.$keyword_cmd("redo",e["$[]"](0))},I$.$$arity=3),e.def(cc,"$_reduce_348",C$=function(e){return this.builder.$keyword_cmd("retry",e["$[]"](0))},C$.$$arity=3),e.def(cc,"$_reduce_350",q$=function(e,t,r){var $=this;return u($.context["$in_class?"]())&&$.$diagnostic("error","invalid_return",i,e["$[]"](0)),r},q$.$$arity=3),e.def(cc,"$_reduce_353",P$=function(e){return e["$[]"](1)},P$.$$arity=3),e.def(cc,"$_reduce_357",B$=function(t){var r,$,n=this,a=i,s=i;return $=t["$[]"](4),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],[t["$[]"](0),n.builder.$condition(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3),a,s,i)]},B$.$$arity=3),e.def(cc,"$_reduce_359",D$=function(e){return e},D$.$$arity=3),e.def(cc,"$_reduce_362",L$=function(e){return this.builder.$arg(e["$[]"](0))},L$.$$arity=3),e.def(cc,"$_reduce_363",G$=function(e){return this.builder.$multi_lhs(e["$[]"](0),e["$[]"](1),e["$[]"](2))},G$.$$arity=3),e.def(cc,"$_reduce_364",M$=function(e){return[e["$[]"](0)]},M$.$$arity=3),e.def(cc,"$_reduce_365",j$=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},j$.$$arity=3),e.def(cc,"$_reduce_367",F$=function(e){return e["$[]"](0).$push(e["$[]"](2))},F$.$$arity=3),e.def(cc,"$_reduce_368",U$=function(e){return e["$[]"](0).$push(e["$[]"](2)).$concat(e["$[]"](4))},U$.$$arity=3),e.def(cc,"$_reduce_369",H$=function(e){return[e["$[]"](0)]},H$.$$arity=3),e.def(cc,"$_reduce_370",Y$=function(t){return[t["$[]"](0)].concat(e.to_a(t["$[]"](2)))},Y$.$$arity=3),e.def(cc,"$_reduce_371",X$=function(e){return this.builder.$restarg(e["$[]"](0),e["$[]"](1))},X$.$$arity=3),e.def(cc,"$_reduce_372",V$=function(e){return this.builder.$restarg(e["$[]"](0))},V$.$$arity=3),e.def(cc,"$_reduce_375",W$=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},W$.$$arity=3),e.def(cc,"$_reduce_376",K$=function(e){return e["$[]"](0).$concat(e["$[]"](1))},K$.$$arity=3),e.def(cc,"$_reduce_377",Q$=function(e){return e["$[]"](0).$concat(e["$[]"](1))},Q$.$$arity=3),e.def(cc,"$_reduce_378",J$=function(e){return[e["$[]"](0)]},J$.$$arity=3),e.def(cc,"$_reduce_379",Z$=function(e){return e["$[]"](1)},Z$.$$arity=3),e.def(cc,"$_reduce_380",en=function(){return[]},en.$$arity=3),e.def(cc,"$_reduce_382",tn=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))},tn.$$arity=3),e.def(cc,"$_reduce_383",rn=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](6)).$concat(e["$[]"](7))},rn.$$arity=3),e.def(cc,"$_reduce_384",$n=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},$n.$$arity=3),e.def(cc,"$_reduce_385",nn=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))},nn.$$arity=3),e.def(cc,"$_reduce_386",an=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},an.$$arity=3),e.def(cc,"$_reduce_388",sn=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))},sn.$$arity=3),e.def(cc,"$_reduce_389",on=function(e){var t=this,r=i;return u(u(r=e["$[]"](1)["$empty?"]())?e["$[]"](0).$size()["$=="](1):r)?[t.builder.$procarg0(e["$[]"](0)["$[]"](0))]:e["$[]"](0).$concat(e["$[]"](1))},on.$$arity=3),e.def(cc,"$_reduce_390",cn=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},cn.$$arity=3),e.def(cc,"$_reduce_391",_n=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))},_n.$$arity=3),e.def(cc,"$_reduce_392",un=function(e){return e["$[]"](0).$concat(e["$[]"](1))},un.$$arity=3),e.def(cc,"$_reduce_393",ln=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},ln.$$arity=3),e.def(cc,"$_reduce_394",dn=function(e){return e["$[]"](0).$concat(e["$[]"](1))},dn.$$arity=3),e.def(cc,"$_reduce_395",pn=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},pn.$$arity=3),e.def(cc,"$_reduce_397",fn=function(){return this.builder.$args(i,[],i)},fn.$$arity=3),e.def(cc,"$_reduce_398",hn=function(r,$,n){var a=i;return a=["expr_value"],l(this.lexer,"state=",e.to_a(a)),a[t(a.length,1)],n},hn.$$arity=3),e.def(cc,"$_reduce_399",mn=function(e){var t=this;return t.max_numparam_stack["$has_ordinary_params!"](),t.current_arg_stack.$set(i),t.builder.$args(e["$[]"](0),e["$[]"](1),e["$[]"](2))},mn.$$arity=3),e.def(cc,"$_reduce_400",gn=function(e){var t=this;return t.max_numparam_stack["$has_ordinary_params!"](),t.current_arg_stack.$set(i),t.builder.$args(e["$[]"](0),e["$[]"](1).$concat(e["$[]"](2)),e["$[]"](3))},gn.$$arity=3),e.def(cc,"$_reduce_401",yn=function(){return[]},yn.$$arity=3),e.def(cc,"$_reduce_402",vn=function(e){return e["$[]"](2)},vn.$$arity=3),e.def(cc,"$_reduce_403",bn=function(e){return[e["$[]"](0)]},bn.$$arity=3),e.def(cc,"$_reduce_404",kn=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},kn.$$arity=3),e.def(cc,"$_reduce_405",xn=function(e){var t=this;return t.static_env.$declare(e["$[]"](0)["$[]"](0)),t.builder.$shadowarg(e["$[]"](0))},xn.$$arity=3),e.def(cc,"$_reduce_407",wn=function(e,t,r){var $=this;return $.static_env.$extend_dynamic(),$.max_numparam_stack.$push(),$.context.$push("lambda"),r},wn.$$arity=3),e.def(cc,"$_reduce_408",En=function(e,t,r){var $=this;return $.context.$pop(),$.lexer.$cmdarg().$push(!1),r},En.$$arity=3),e.def(cc,"$_reduce_409",Rn=function(t){var r,$,n=this,a=i,s=i,o=i,c=i,_=i;return a=n.builder.$call_lambda(t["$[]"](0)),s=u(n.max_numparam_stack["$has_numparams?"]())?n.builder.$numargs(n.max_numparam_stack.$top()):t["$[]"](2),$=t["$[]"](4),o=null==(r=e.to_ary($))[0]?i:r[0],c=null==r[1]?i:r[1],_=null==r[2]?i:r[2],n.max_numparam_stack.$pop(),n.static_env.$unextend(),n.lexer.$cmdarg().$pop(),n.builder.$block(a,o,s,c,_)},Rn.$$arity=3),e.def(cc,"$_reduce_410",zn=function(e){var t=this;return t.max_numparam_stack["$has_ordinary_params!"](),t.builder.$args(e["$[]"](0),e["$[]"](1).$concat(e["$[]"](2)),e["$[]"](3))},zn.$$arity=3),e.def(cc,"$_reduce_411",An=function(e){var t=this;return u(e["$[]"](0)["$any?"]())&&t.max_numparam_stack["$has_ordinary_params!"](),t.builder.$args(i,e["$[]"](0),i)},An.$$arity=3),e.def(cc,"$_reduce_412",Nn=function(e,t,r){return this.context.$push("lambda"),r},Nn.$$arity=3),e.def(cc,"$_reduce_413",Sn=function(e,t,r){var $=this;return r=[e["$[]"](0),e["$[]"](2),e["$[]"](3)],$.context.$pop(),r},Sn.$$arity=3),e.def(cc,"$_reduce_414",On=function(e,t,r){return this.context.$push("lambda"),r},On.$$arity=3),e.def(cc,"$_reduce_415",Tn=function(e,t,r){var $=this;return r=[e["$[]"](0),e["$[]"](2),e["$[]"](3)],$.context.$pop(),r},Tn.$$arity=3),e.def(cc,"$_reduce_416",In=function(e,t,r){return this.context.$push("block"),r},In.$$arity=3),e.def(cc,"$_reduce_417",Cn=function(t,r,$){var n=this;return $=[t["$[]"](0)].concat(e.to_a(t["$[]"](2))).concat([t["$[]"](3)]),n.context.$pop(),$},Cn.$$arity=3),e.def(cc,"$_reduce_418",qn=function(t){var r,$,n=this,a=i,s=i,o=i,c=i;return $=t["$[]"](1),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],c=null==r[3]?i:r[3],n.builder.$block(t["$[]"](0),a,s,o,c)},qn.$$arity=3),e.def(cc,"$_reduce_419",Pn=function(t){var r,$,n=this,a=i,s=i,o=i;return $=t["$[]"](3),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],n.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),a,s,o)},Pn.$$arity=3),e.def(cc,"$_reduce_420",Bn=function(t){var r,$,n=this,a=i,s=i,o=i,c=i,_=i,u=i,l=i;return $=t["$[]"](3),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],c=n.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),a,s,o),$=t["$[]"](4),_=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],u=null==r[2]?i:r[2],l=null==r[3]?i:r[3],n.builder.$block(c,_,s,u,l)},Bn.$$arity=3),e.def(cc,"$_reduce_421",Dn=function(t){var r,$,n=this,a=i,s=i,o=i,c=i,_=i;return a=n.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),i,t["$[]"](3),i),$=t["$[]"](4),s=null==(r=e.to_ary($))[0]?i:r[0],o=null==r[1]?i:r[1],c=null==r[2]?i:r[2],_=null==r[3]?i:r[3],n.builder.$block(a,s,o,c,_)},Dn.$$arity=3),e.def(cc,"$_reduce_422",Ln=function(t){var r,$,n=this,a=i,s=i,o=i;return $=t["$[]"](1),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],n.builder.$call_method(i,i,t["$[]"](0),a,s,o)},Ln.$$arity=3),e.def(cc,"$_reduce_423",Gn=function(t){var r,$,n=this,a=i,s=i,o=i;return $=t["$[]"](3),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],n.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),a,s,o)},Gn.$$arity=3),e.def(cc,"$_reduce_424",Mn=function(t){var r,$,n=this,a=i,s=i,o=i;return $=t["$[]"](3),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],n.builder.$call_method(t["$[]"](0),t["$[]"](1),t["$[]"](2),a,s,o)},Mn.$$arity=3),e.def(cc,"$_reduce_425",jn=function(e){return this.builder.$call_method(e["$[]"](0),e["$[]"](1),e["$[]"](2))},jn.$$arity=3),e.def(cc,"$_reduce_426",Fn=function(t){var r,$,n=this,a=i,s=i,o=i;return $=t["$[]"](2),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],n.builder.$call_method(t["$[]"](0),t["$[]"](1),i,a,s,o)},Fn.$$arity=3),e.def(cc,"$_reduce_427",Un=function(t){var r,$,n=this,a=i,s=i,o=i;return $=t["$[]"](2),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],n.builder.$call_method(t["$[]"](0),t["$[]"](1),i,a,s,o)},Un.$$arity=3),e.def(cc,"$_reduce_428",Hn=function(t){var r,$,n=this,a=i,s=i,o=i;return $=t["$[]"](1),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],o=null==r[2]?i:r[2],n.builder.$keyword_cmd("super",t["$[]"](0),a,s,o)},Hn.$$arity=3),e.def(cc,"$_reduce_429",Yn=function(e){return this.builder.$keyword_cmd("zsuper",e["$[]"](0))},Yn.$$arity=3),e.def(cc,"$_reduce_430",Xn=function(e){return this.builder.$index(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))},Xn.$$arity=3),e.def(cc,"$_reduce_431",Vn=function(e,t,r){return this.context.$push("block"),r},Vn.$$arity=3),e.def(cc,"$_reduce_432",Wn=function(t,r,$){var n=this;return $=[t["$[]"](0)].concat(e.to_a(t["$[]"](2))).concat([t["$[]"](3)]),n.context.$pop(),$},Wn.$$arity=3),e.def(cc,"$_reduce_433",Kn=function(e,t,r){return this.context.$push("block"),r},Kn.$$arity=3),e.def(cc,"$_reduce_434",Qn=function(t,r,$){var n=this;return $=[t["$[]"](0)].concat(e.to_a(t["$[]"](2))).concat([t["$[]"](3)]),n.context.$pop(),$},Qn.$$arity=3),e.def(cc,"$_reduce_435",Jn=function(e,t,r){var $=this;return $.static_env.$extend_dynamic(),$.max_numparam_stack.$push(),r},Jn.$$arity=3),e.def(cc,"$_reduce_436",Zn=function(e,t,r){var $=this;return r=[u($.max_numparam_stack["$has_numparams?"]())?$.builder.$numargs($.max_numparam_stack.$top()):e["$[]"](1),e["$[]"](2)],$.max_numparam_stack.$pop(),$.static_env.$unextend(),r},Zn.$$arity=3),e.def(cc,"$_reduce_437",ea=function(e,t,r){var $=this;return $.static_env.$extend_dynamic(),$.max_numparam_stack.$push(),r},ea.$$arity=3),e.def(cc,"$_reduce_438",ta=function(e,t,r){return this.lexer.$cmdarg().$push(!1),r},ta.$$arity=3),e.def(cc,"$_reduce_439",ra=function(e,t,r){var $=this;return r=[u($.max_numparam_stack["$has_numparams?"]())?$.builder.$numargs($.max_numparam_stack.$top()):e["$[]"](2),e["$[]"](3)],$.max_numparam_stack.$pop(),$.static_env.$unextend(),$.lexer.$cmdarg().$pop(),r},ra.$$arity=3),e.def(cc,"$_reduce_440",$a=function(t){ +return[this.builder.$when(t["$[]"](0),t["$[]"](1),t["$[]"](2),t["$[]"](3))].concat(e.to_a(t["$[]"](4)))},$a.$$arity=3),e.def(cc,"$_reduce_441",na=function(e){return[e["$[]"](0)]},na.$$arity=3),e.def(cc,"$_reduce_443",aa=function(r,$,n){var a=this,s=i;return s=["expr_beg"],l(a.lexer,"state=",e.to_a(s)),s[t(s.length,1)],s=[!1],l(a.lexer,"command_start=",e.to_a(s)),s[t(s.length,1)],a.pattern_variables.$push(),a.pattern_hash_keys.$push(),n=a.lexer.$in_kwarg(),s=[!0],l(a.lexer,"in_kwarg=",e.to_a(s)),s[t(s.length,1)],n},aa.$$arity=3),e.def(cc,"$_reduce_444",ia=function(r,$,n){var a=this,s=i;return a.pattern_variables.$pop(),a.pattern_hash_keys.$pop(),s=[r["$[]"](1)],l(a.lexer,"in_kwarg=",e.to_a(s)),s[t(s.length,1)],n},ia.$$arity=3),e.def(cc,"$_reduce_445",sa=function(t){return[l(this.builder,"in_pattern",[t["$[]"](0)].concat(e.to_a(t["$[]"](2))).concat([t["$[]"](3),t["$[]"](5)]))].concat(e.to_a(t["$[]"](6)))},sa.$$arity=3),e.def(cc,"$_reduce_446",oa=function(e){return[e["$[]"](0)]},oa.$$arity=3),e.def(cc,"$_reduce_448",ca=function(e){return[e["$[]"](0),i]},ca.$$arity=3),e.def(cc,"$_reduce_449",_a=function(e){var t=this;return[e["$[]"](0),t.builder.$if_guard(e["$[]"](1),e["$[]"](2))]},_a.$$arity=3),e.def(cc,"$_reduce_450",ua=function(e){var t=this;return[e["$[]"](0),t.builder.$unless_guard(e["$[]"](1),e["$[]"](2))]},ua.$$arity=3),e.def(cc,"$_reduce_452",la=function(e){var t=this,r=i;return r=t.builder.$match_with_trailing_comma(e["$[]"](0),e["$[]"](1)),t.builder.$array_pattern(i,[r],i)},la.$$arity=3),e.def(cc,"$_reduce_453",da=function(e){return this.builder.$array_pattern(i,[e["$[]"](0)].$concat(e["$[]"](2)),i)},da.$$arity=3),e.def(cc,"$_reduce_454",pa=function(e){return this.builder.$find_pattern(i,e["$[]"](0),i)},pa.$$arity=3),e.def(cc,"$_reduce_455",fa=function(e){return this.builder.$array_pattern(i,e["$[]"](0),i)},fa.$$arity=3),e.def(cc,"$_reduce_456",ha=function(e){return this.builder.$hash_pattern(i,e["$[]"](0),i)},ha.$$arity=3),e.def(cc,"$_reduce_458",ma=function(e){return this.builder.$match_as(e["$[]"](0),e["$[]"](1),e["$[]"](2))},ma.$$arity=3),e.def(cc,"$_reduce_460",ga=function(e){return this.builder.$match_alt(e["$[]"](0),e["$[]"](1),e["$[]"](2))},ga.$$arity=3),e.def(cc,"$_reduce_462",ya=function(e,t,r){var $=this;return r=e["$[]"](0),$.pattern_hash_keys.$push(),r},ya.$$arity=3),e.def(cc,"$_reduce_463",va=function(e,t,r){var $=this;return r=e["$[]"](0),$.pattern_hash_keys.$push(),r},va.$$arity=3),e.def(cc,"$_reduce_465",ba=function(e){var t=this,r=i;return t.pattern_hash_keys.$pop(),r=t.builder.$array_pattern(i,e["$[]"](2),i),t.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))},ba.$$arity=3),e.def(cc,"$_reduce_466",ka=function(e){var t=this,r=i;return t.pattern_hash_keys.$pop(),r=t.builder.$find_pattern(i,e["$[]"](2),i),t.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))},ka.$$arity=3),e.def(cc,"$_reduce_467",xa=function(e){var t=this,r=i;return t.pattern_hash_keys.$pop(),r=t.builder.$hash_pattern(i,e["$[]"](2),i),t.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))},xa.$$arity=3),e.def(cc,"$_reduce_468",wa=function(e){var t=this,r=i;return r=t.builder.$array_pattern(e["$[]"](1),i,e["$[]"](2)),t.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](2))},wa.$$arity=3),e.def(cc,"$_reduce_469",Ea=function(e){var t=this,r=i;return t.pattern_hash_keys.$pop(),r=t.builder.$array_pattern(i,e["$[]"](2),i),t.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))},Ea.$$arity=3),e.def(cc,"$_reduce_470",Ra=function(e){var t=this,r=i;return t.pattern_hash_keys.$pop(),r=t.builder.$find_pattern(i,e["$[]"](2),i),t.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))},Ra.$$arity=3),e.def(cc,"$_reduce_471",za=function(e){var t=this,r=i;return t.pattern_hash_keys.$pop(),r=t.builder.$hash_pattern(i,e["$[]"](2),i),t.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](3))},za.$$arity=3),e.def(cc,"$_reduce_472",Aa=function(e){var t=this,r=i;return r=t.builder.$array_pattern(e["$[]"](1),i,e["$[]"](2)),t.builder.$const_pattern(e["$[]"](0),e["$[]"](1),r,e["$[]"](2))},Aa.$$arity=3),e.def(cc,"$_reduce_473",Na=function(e){return this.builder.$array_pattern(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Na.$$arity=3),e.def(cc,"$_reduce_474",Sa=function(e){return this.builder.$find_pattern(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Sa.$$arity=3),e.def(cc,"$_reduce_475",Oa=function(e){return this.builder.$array_pattern(e["$[]"](0),[],e["$[]"](1))},Oa.$$arity=3),e.def(cc,"$_reduce_476",Ta=function(r,$,n){var a=this,s=i;return a.pattern_hash_keys.$push(),n=a.lexer.$in_kwarg(),s=[!1],l(a.lexer,"in_kwarg=",e.to_a(s)),s[t(s.length,1)],n},Ta.$$arity=3),e.def(cc,"$_reduce_477",Ia=function(r){var $=this,n=i;return $.pattern_hash_keys.$pop(),n=[r["$[]"](1)],l($.lexer,"in_kwarg=",e.to_a(n)),n[t(n.length,1)],$.builder.$hash_pattern(r["$[]"](0),r["$[]"](2),r["$[]"](3))},Ia.$$arity=3),e.def(cc,"$_reduce_478",Ca=function(e){return this.builder.$hash_pattern(e["$[]"](0),[],e["$[]"](1))},Ca.$$arity=3),e.def(cc,"$_reduce_479",qa=function(e,t,r){return this.pattern_hash_keys.$push(),r},qa.$$arity=3),e.def(cc,"$_reduce_480",Pa=function(e){var t=this;return t.pattern_hash_keys.$pop(),t.builder.$begin(e["$[]"](0),e["$[]"](2),e["$[]"](3))},Pa.$$arity=3),e.def(cc,"$_reduce_481",Ba=function(e){return[e["$[]"](0)]},Ba.$$arity=3),e.def(cc,"$_reduce_482",Da=function(e){return e["$[]"](0)},Da.$$arity=3),e.def(cc,"$_reduce_483",La=function(t){return[].concat(e.to_a(t["$[]"](0))).concat([t["$[]"](1)])},La.$$arity=3),e.def(cc,"$_reduce_484",Ga=function(t){var r=i;return r=this.builder.$match_rest(t["$[]"](1),t["$[]"](2)),[].concat(e.to_a(t["$[]"](0))).concat([r])},Ga.$$arity=3),e.def(cc,"$_reduce_485",Ma=function(t){var r=i;return r=this.builder.$match_rest(t["$[]"](1),t["$[]"](2)),[].concat(e.to_a(t["$[]"](0))).concat([r]).concat(e.to_a(t["$[]"](4)))},Ma.$$arity=3),e.def(cc,"$_reduce_486",ja=function(t){var r=this;return[].concat(e.to_a(t["$[]"](0))).concat([r.builder.$match_rest(t["$[]"](1))])},ja.$$arity=3),e.def(cc,"$_reduce_487",Fa=function(t){var r=this;return[].concat(e.to_a(t["$[]"](0))).concat([r.builder.$match_rest(t["$[]"](1))]).concat(e.to_a(t["$[]"](3)))},Fa.$$arity=3),e.def(cc,"$_reduce_489",Ua=function(e){return[this.builder.$match_with_trailing_comma(e["$[]"](0),e["$[]"](1))]},Ua.$$arity=3),e.def(cc,"$_reduce_490",Ha=function(t){var r=i;return r=this.builder.$match_with_trailing_comma(t["$[]"](1),t["$[]"](2)),[].concat(e.to_a(t["$[]"](0))).concat([r])},Ha.$$arity=3),e.def(cc,"$_reduce_491",Ya=function(e){return[e["$[]"](0)]},Ya.$$arity=3),e.def(cc,"$_reduce_492",Xa=function(t){return[t["$[]"](0)].concat(e.to_a(t["$[]"](2)))},Xa.$$arity=3),e.def(cc,"$_reduce_493",Va=function(t){return[t["$[]"](0)].concat(e.to_a(t["$[]"](2))).concat([t["$[]"](4)])},Va.$$arity=3),e.def(cc,"$_reduce_494",Wa=function(e){return this.builder.$match_rest(e["$[]"](0),e["$[]"](1))},Wa.$$arity=3),e.def(cc,"$_reduce_495",Ka=function(e){return this.builder.$match_rest(e["$[]"](0))},Ka.$$arity=3),e.def(cc,"$_reduce_496",Qa=function(e){return[e["$[]"](0)]},Qa.$$arity=3),e.def(cc,"$_reduce_497",Ja=function(t){return[].concat(e.to_a(t["$[]"](0))).concat([t["$[]"](2)])},Ja.$$arity=3),e.def(cc,"$_reduce_499",Za=function(t){return[].concat(e.to_a(t["$[]"](0))).concat(e.to_a(t["$[]"](2)))},Za.$$arity=3),e.def(cc,"$_reduce_500",ei=function(e){return e["$[]"](0)},ei.$$arity=3),e.def(cc,"$_reduce_501",ti=function(e){return e["$[]"](0)},ti.$$arity=3),e.def(cc,"$_reduce_502",ri=function(e){return e["$[]"](0)},ri.$$arity=3),e.def(cc,"$_reduce_503",$i=function(e){return[e["$[]"](0)]},$i.$$arity=3),e.def(cc,"$_reduce_504",ni=function(t){return[].concat(e.to_a(t["$[]"](0))).concat([t["$[]"](2)])},ni.$$arity=3),e.def(cc,"$_reduce_505",ai=function(t){return l(this.builder,"match_pair",e.to_a(t["$[]"](0)).concat([t["$[]"](1)]))},ai.$$arity=3),e.def(cc,"$_reduce_506",ii=function(t){return l(this.builder,"match_label",e.to_a(t["$[]"](0)))},ii.$$arity=3),e.def(cc,"$_reduce_507",si=function(e){return["label",e["$[]"](0)]},si.$$arity=3),e.def(cc,"$_reduce_508",oi=function(e){return["quoted",[e["$[]"](0),e["$[]"](1),e["$[]"](2)]]},oi.$$arity=3),e.def(cc,"$_reduce_509",ci=function(e){return[this.builder.$match_rest(e["$[]"](0),e["$[]"](1))]},ci.$$arity=3),e.def(cc,"$_reduce_510",_i=function(e){return[this.builder.$match_rest(e["$[]"](0),i)]},_i.$$arity=3),e.def(cc,"$_reduce_511",ui=function(e){return[this.builder.$match_nil_pattern(e["$[]"](0),e["$[]"](1))]},ui.$$arity=3),e.def(cc,"$_reduce_515",li=function(e){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))},li.$$arity=3),e.def(cc,"$_reduce_516",di=function(e){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),e["$[]"](2))},di.$$arity=3),e.def(cc,"$_reduce_517",pi=function(e){return this.builder.$range_inclusive(e["$[]"](0),e["$[]"](1),i)},pi.$$arity=3),e.def(cc,"$_reduce_518",fi=function(e){return this.builder.$range_exclusive(e["$[]"](0),e["$[]"](1),i)},fi.$$arity=3),e.def(cc,"$_reduce_522",hi=function(e){return this.builder.$range_inclusive(i,e["$[]"](0),e["$[]"](1))},hi.$$arity=3),e.def(cc,"$_reduce_523",mi=function(e){return this.builder.$range_exclusive(i,e["$[]"](0),e["$[]"](1))},mi.$$arity=3),e.def(cc,"$_reduce_532",gi=function(e){return this.builder.$accessible(e["$[]"](0))},gi.$$arity=3),e.def(cc,"$_reduce_534",yi=function(e){return this.builder.$match_var(e["$[]"](0))},yi.$$arity=3),e.def(cc,"$_reduce_535",vi=function(e){var t=this,r=i,$=i;return r=e["$[]"](1)["$[]"](0),u(t.$static_env()["$declared?"](r))||t.$diagnostic("error","undefined_lvar",p(["name"],{name:r}),e["$[]"](1)),$=t.builder.$accessible(t.builder.$ident(e["$[]"](1))),t.builder.$pin(e["$[]"](0),$)},vi.$$arity=3),e.def(cc,"$_reduce_536",bi=function(e){return this.builder.$const_global(e["$[]"](0),e["$[]"](1))},bi.$$arity=3),e.def(cc,"$_reduce_537",ki=function(e){return this.builder.$const_fetch(e["$[]"](0),e["$[]"](1),e["$[]"](2))},ki.$$arity=3),e.def(cc,"$_reduce_538",xi=function(e){return this.builder.$const(e["$[]"](0))},xi.$$arity=3),e.def(cc,"$_reduce_539",wi=function(t){var r,$,n=this,a=i,s=i,o=i;return $=t["$[]"](2),a=null==(r=e.to_ary($))[0]?i:r[0],s=null==r[1]?i:r[1],u(t["$[]"](1))&&(o=n.builder.$array(i,t["$[]"](1),i)),[n.builder.$rescue_body(t["$[]"](0),o,a,s,t["$[]"](3),t["$[]"](4))].concat(e.to_a(t["$[]"](5)))},wi.$$arity=3),e.def(cc,"$_reduce_540",Ei=function(){return[]},Ei.$$arity=3),e.def(cc,"$_reduce_541",Ri=function(e){return[e["$[]"](0)]},Ri.$$arity=3),e.def(cc,"$_reduce_544",zi=function(e){return[e["$[]"](0),e["$[]"](1)]},zi.$$arity=3),e.def(cc,"$_reduce_546",Ai=function(e){return[e["$[]"](0),e["$[]"](1)]},Ai.$$arity=3),e.def(cc,"$_reduce_550",Ni=function(e){return this.builder.$string_compose(i,e["$[]"](0),i)},Ni.$$arity=3),e.def(cc,"$_reduce_551",Si=function(e){return[e["$[]"](0)]},Si.$$arity=3),e.def(cc,"$_reduce_552",Oi=function(e){return e["$[]"](0)["$<<"](e["$[]"](1))},Oi.$$arity=3),e.def(cc,"$_reduce_553",Ti=function(e){var t=this,r=i;return r=t.builder.$string_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2)),t.builder.$dedent_string(r,t.lexer.$dedent_level())},Ti.$$arity=3),e.def(cc,"$_reduce_554",Ii=function(e){var t=this,r=i;return r=t.builder.$string(e["$[]"](0)),t.builder.$dedent_string(r,t.lexer.$dedent_level())},Ii.$$arity=3),e.def(cc,"$_reduce_555",Ci=function(e){return this.builder.$character(e["$[]"](0))},Ci.$$arity=3),e.def(cc,"$_reduce_556",qi=function(e){var t=this,r=i;return r=t.builder.$xstring_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2)),t.builder.$dedent_string(r,t.lexer.$dedent_level())},qi.$$arity=3),e.def(cc,"$_reduce_557",Pi=function(e){var t=this,r=i;return r=t.builder.$regexp_options(e["$[]"](3)),t.builder.$regexp_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2),r)},Pi.$$arity=3),e.def(cc,"$_reduce_558",Bi=function(e){return this.builder.$words_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Bi.$$arity=3),e.def(cc,"$_reduce_559",Di=function(){return[]},Di.$$arity=3),e.def(cc,"$_reduce_560",Li=function(e){var t=this;return e["$[]"](0)["$<<"](t.builder.$word(e["$[]"](1)))},Li.$$arity=3),e.def(cc,"$_reduce_561",Gi=function(e){return[e["$[]"](0)]},Gi.$$arity=3),e.def(cc,"$_reduce_562",Mi=function(e){return e["$[]"](0)["$<<"](e["$[]"](1))},Mi.$$arity=3),e.def(cc,"$_reduce_563",ji=function(e){return this.builder.$symbols_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))},ji.$$arity=3),e.def(cc,"$_reduce_564",Fi=function(){return[]},Fi.$$arity=3),e.def(cc,"$_reduce_565",Ui=function(e){var t=this;return e["$[]"](0)["$<<"](t.builder.$word(e["$[]"](1)))},Ui.$$arity=3),e.def(cc,"$_reduce_566",Hi=function(e){return this.builder.$words_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Hi.$$arity=3),e.def(cc,"$_reduce_567",Yi=function(e){return this.builder.$symbols_compose(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Yi.$$arity=3),e.def(cc,"$_reduce_568",Xi=function(){return[]},Xi.$$arity=3),e.def(cc,"$_reduce_569",Vi=function(e){var t=this;return e["$[]"](0)["$<<"](t.builder.$string_internal(e["$[]"](1)))},Vi.$$arity=3),e.def(cc,"$_reduce_570",Wi=function(){return[]},Wi.$$arity=3),e.def(cc,"$_reduce_571",Ki=function(e){var t=this;return e["$[]"](0)["$<<"](t.builder.$symbol_internal(e["$[]"](1)))},Ki.$$arity=3),e.def(cc,"$_reduce_572",Qi=function(){return[]},Qi.$$arity=3),e.def(cc,"$_reduce_573",Ji=function(e){return e["$[]"](0)["$<<"](e["$[]"](1))},Ji.$$arity=3),e.def(cc,"$_reduce_574",Zi=function(){return[]},Zi.$$arity=3),e.def(cc,"$_reduce_575",es=function(e){return e["$[]"](0)["$<<"](e["$[]"](1))},es.$$arity=3),e.def(cc,"$_reduce_576",ts=function(){return[]},ts.$$arity=3),e.def(cc,"$_reduce_577",rs=function(e){return e["$[]"](0)["$<<"](e["$[]"](1))},rs.$$arity=3),e.def(cc,"$_reduce_578",$s=function(e){return this.builder.$string_internal(e["$[]"](0))},$s.$$arity=3),e.def(cc,"$_reduce_579",ns=function(e){return e["$[]"](1)},ns.$$arity=3),e.def(cc,"$_reduce_580",as=function(e,t,r){var $=this;return $.lexer.$cmdarg().$push(!1),$.lexer.$cond().$push(!1),r},as.$$arity=3),e.def(cc,"$_reduce_581",is=function(e){var t=this;return t.lexer.$cmdarg().$pop(),t.lexer.$cond().$pop(),t.builder.$begin(e["$[]"](0),e["$[]"](2),e["$[]"](3))},is.$$arity=3),e.def(cc,"$_reduce_582",ss=function(e){return this.builder.$gvar(e["$[]"](0))},ss.$$arity=3),e.def(cc,"$_reduce_583",os=function(e){return this.builder.$ivar(e["$[]"](0))},os.$$arity=3),e.def(cc,"$_reduce_584",cs=function(e){return this.builder.$cvar(e["$[]"](0))},cs.$$arity=3),e.def(cc,"$_reduce_588",_s=function(r){var $=this,n=i;return n=["expr_end"],l($.lexer,"state=",e.to_a(n)),n[t(n.length,1)],$.builder.$symbol(r["$[]"](0))},_s.$$arity=3),e.def(cc,"$_reduce_589",us=function(r){var $=this,n=i;return n=["expr_end"],l($.lexer,"state=",e.to_a(n)),n[t(n.length,1)],$.builder.$symbol_compose(r["$[]"](0),r["$[]"](1),r["$[]"](2))},us.$$arity=3),e.def(cc,"$_reduce_590",ls=function(e){return e["$[]"](0)},ls.$$arity=3),e.def(cc,"$_reduce_591",ds=function(e){var t=this;return u(t.builder["$respond_to?"]("negate"))?t.builder.$negate(e["$[]"](0),e["$[]"](1)):t.builder.$unary_num(e["$[]"](0),e["$[]"](1))},ds.$$arity=3),e.def(cc,"$_reduce_592",ps=function(r){var $=this,n=i;return n=["expr_end"],l($.lexer,"state=",e.to_a(n)),n[t(n.length,1)],$.builder.$integer(r["$[]"](0))},ps.$$arity=3),e.def(cc,"$_reduce_593",fs=function(r){var $=this,n=i;return n=["expr_end"],l($.lexer,"state=",e.to_a(n)),n[t(n.length,1)],$.builder.$float(r["$[]"](0))},fs.$$arity=3),e.def(cc,"$_reduce_594",hs=function(r){var $=this,n=i;return n=["expr_end"],l($.lexer,"state=",e.to_a(n)),n[t(n.length,1)],$.builder.$rational(r["$[]"](0))},hs.$$arity=3),e.def(cc,"$_reduce_595",ms=function(r){var $=this,n=i;return n=["expr_end"],l($.lexer,"state=",e.to_a(n)),n[t(n.length,1)],$.builder.$complex(r["$[]"](0))},ms.$$arity=3),e.def(cc,"$_reduce_596",gs=function(e){return this.builder.$ident(e["$[]"](0))},gs.$$arity=3),e.def(cc,"$_reduce_597",ys=function(e){return this.builder.$ivar(e["$[]"](0))},ys.$$arity=3),e.def(cc,"$_reduce_598",vs=function(e){return this.builder.$gvar(e["$[]"](0))},vs.$$arity=3),e.def(cc,"$_reduce_599",bs=function(e){return this.builder.$const(e["$[]"](0))},bs.$$arity=3),e.def(cc,"$_reduce_600",ks=function(e){return this.builder.$cvar(e["$[]"](0))},ks.$$arity=3),e.def(cc,"$_reduce_601",xs=function(e){return this.builder.$nil(e["$[]"](0))},xs.$$arity=3),e.def(cc,"$_reduce_602",ws=function(e){return this.builder.$self(e["$[]"](0))},ws.$$arity=3),e.def(cc,"$_reduce_603",Es=function(e){return this.builder.$true(e["$[]"](0))},Es.$$arity=3),e.def(cc,"$_reduce_604",Rs=function(e){return this.builder.$false(e["$[]"](0))},Rs.$$arity=3),e.def(cc,"$_reduce_605",zs=function(e){return this.builder.$__FILE__(e["$[]"](0))},zs.$$arity=3),e.def(cc,"$_reduce_606",As=function(e){return this.builder.$__LINE__(e["$[]"](0))},As.$$arity=3),e.def(cc,"$_reduce_607",Ns=function(e){return this.builder.$__ENCODING__(e["$[]"](0))},Ns.$$arity=3),e.def(cc,"$_reduce_608",Ss=function(t){var r,n=this,a=i,s=i,o=i,c=i,_=i,d=i,p=i,f=i;return u(u(a=s=t["$[]"](0))?s.$type()["$=="]("ident"):a)&&(o=s.$children()["$[]"](0),u(u(c=u(_=o["$=~"](/^_[1-9]$/))?n.$static_env()["$declared?"](o)["$!"]():_)?n.$context()["$in_dynamic_block?"]():c)&&(d=s.$loc().$expression(),u(n.$max_numparam_stack()["$has_ordinary_params?"]())&&n.$diagnostic("error","ordinary_param_defined",i,[i,d]),p=n.$context().$stack().$dup(),f=n.$max_numparam_stack().$stack().$dup(),p.$pop(),f.$pop(),function(){var t=e.new_brk();try{l(p,"reverse_each",[],((r=function(n){var a=null==r.$$s?this:r.$$s,s=i,o=i;if(null==n&&(n=i),u(u(s=n["$=="]("block"))?s:n["$=="]("lambda")))return o=$(f.$pop(),0),u(o)?a.$diagnostic("error","numparam_used_in_outer_scope",i,[i,d]):i;e.brk(i,t)}).$$s=n,r.$$brk=t,r.$$arity=1,r))}catch(a){if(a===t)return a.$v;throw a}}(),n.$static_env().$declare(o),n.$max_numparam_stack().$register(o["$[]"](1).$to_i()))),n.builder.$accessible(t["$[]"](0))},Ss.$$arity=3),e.def(cc,"$_reduce_609",Os=function(e){return this.builder.$accessible(e["$[]"](0))},Os.$$arity=3),e.def(cc,"$_reduce_610",Ts=function(e){return this.builder.$assignable(e["$[]"](0))},Ts.$$arity=3),e.def(cc,"$_reduce_611",Is=function(e){return this.builder.$assignable(e["$[]"](0))},Is.$$arity=3),e.def(cc,"$_reduce_612",Cs=function(e){return this.builder.$nth_ref(e["$[]"](0))},Cs.$$arity=3),e.def(cc,"$_reduce_613",qs=function(e){return this.builder.$back_ref(e["$[]"](0))},qs.$$arity=3),e.def(cc,"$_reduce_614",Ps=function(r,$,n){var a=i;return a=["expr_value"],l(this.lexer,"state=",e.to_a(a)),a[t(a.length,1)],n},Ps.$$arity=3),e.def(cc,"$_reduce_615",Bs=function(e){return[e["$[]"](0),e["$[]"](2)]},Bs.$$arity=3),e.def(cc,"$_reduce_616",Ds=function(){return i},Ds.$$arity=3),e.def(cc,"$_reduce_618",Ls=function(){return this.builder.$args(i,[],i)},Ls.$$arity=3),e.def(cc,"$_reduce_619",Gs=function(r,$,n){var a=this,s=i;return n=a.builder.$args(r["$[]"](0),r["$[]"](1),r["$[]"](2)),s=["expr_value"],l(a.lexer,"state=",e.to_a(s)),s[t(s.length,1)],n},Gs.$$arity=3),e.def(cc,"$_reduce_620",Ms=function(t,r,$){var n=this,a=i;return a=[].concat(e.to_a(t["$[]"](1))).concat([n.builder.$forward_arg(t["$[]"](3))]),$=n.builder.$args(t["$[]"](0),a,t["$[]"](4)),n.static_env.$declare_forward_args(),$},Ms.$$arity=3),e.def(cc,"$_reduce_621",js=function(r,$,n){var a=this,s=i;return n=a.builder.$forward_only_args(r["$[]"](0),r["$[]"](1),r["$[]"](2)),a.static_env.$declare_forward_args(),s=["expr_value"],l(a.lexer,"state=",e.to_a(s)),s[t(s.length,1)],n},js.$$arity=3),e.def(cc,"$_reduce_623",Fs=function(r,$,n){var a=this,s=i;return n=a.lexer.$in_kwarg(),s=[!0],l(a.lexer,"in_kwarg=",e.to_a(s)),s[t(s.length,1)],n},Fs.$$arity=3),e.def(cc,"$_reduce_624",Us=function(r){var $=this,n=i;return n=[r["$[]"](0)],l($.lexer,"in_kwarg=",e.to_a(n)),n[t(n.length,1)],$.builder.$args(i,r["$[]"](1),i)},Us.$$arity=3),e.def(cc,"$_reduce_625",Hs=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},Hs.$$arity=3),e.def(cc,"$_reduce_626",Ys=function(e){return e["$[]"](0).$concat(e["$[]"](1))},Ys.$$arity=3),e.def(cc,"$_reduce_627",Xs=function(e){return e["$[]"](0).$concat(e["$[]"](1))},Xs.$$arity=3),e.def(cc,"$_reduce_628",Vs=function(e){return[e["$[]"](0)]},Vs.$$arity=3),e.def(cc,"$_reduce_629",Ws=function(e){return e["$[]"](1)},Ws.$$arity=3),e.def(cc,"$_reduce_630",Ks=function(){return[]},Ks.$$arity=3),e.def(cc,"$_reduce_631",Qs=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))},Qs.$$arity=3),e.def(cc,"$_reduce_632",Js=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](6)).$concat(e["$[]"](7))},Js.$$arity=3),e.def(cc,"$_reduce_633",Zs=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},Zs.$$arity=3),e.def(cc,"$_reduce_634",eo=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))},eo.$$arity=3),e.def(cc,"$_reduce_635",to=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},to.$$arity=3),e.def(cc,"$_reduce_636",ro=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))},ro.$$arity=3),e.def(cc,"$_reduce_637",$o=function(e){return e["$[]"](0).$concat(e["$[]"](1))},$o.$$arity=3),e.def(cc,"$_reduce_638",no=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},no.$$arity=3),e.def(cc,"$_reduce_639",ao=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](4)).$concat(e["$[]"](5))},ao.$$arity=3),e.def(cc,"$_reduce_640",io=function(e){return e["$[]"](0).$concat(e["$[]"](1))},io.$$arity=3),e.def(cc,"$_reduce_641",so=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},so.$$arity=3),e.def(cc,"$_reduce_642",oo=function(e){return e["$[]"](0).$concat(e["$[]"](1))},oo.$$arity=3),e.def(cc,"$_reduce_643",co=function(e){return e["$[]"](0).$concat(e["$[]"](2)).$concat(e["$[]"](3))},co.$$arity=3),e.def(cc,"$_reduce_644",_o=function(e){return e["$[]"](0)},_o.$$arity=3),e.def(cc,"$_reduce_645",uo=function(){return[]},uo.$$arity=3),e.def(cc,"$_reduce_646",lo=function(e){return e["$[]"](0)},lo.$$arity=3),e.def(cc,"$_reduce_647",po=function(e,t,r){return this.$diagnostic("error","argument_const",i,e["$[]"](0)),r},po.$$arity=3),e.def(cc,"$_reduce_648",fo=function(e,t,r){return this.$diagnostic("error","argument_ivar",i,e["$[]"](0)),r},fo.$$arity=3),e.def(cc,"$_reduce_649",ho=function(e,t,r){return this.$diagnostic("error","argument_gvar",i,e["$[]"](0)),r},ho.$$arity=3),e.def(cc,"$_reduce_650",mo=function(e,t,r){return this.$diagnostic("error","argument_cvar",i,e["$[]"](0)),r},mo.$$arity=3),e.def(cc,"$_reduce_652",go=function(e){var t=this;return t.static_env.$declare(e["$[]"](0)["$[]"](0)),t.max_numparam_stack["$has_ordinary_params!"](),e["$[]"](0)},go.$$arity=3),e.def(cc,"$_reduce_653",yo=function(e){return this.current_arg_stack.$set(e["$[]"](0)["$[]"](0)),e["$[]"](0)},yo.$$arity=3),e.def(cc,"$_reduce_654",vo=function(e){var t=this;return t.current_arg_stack.$set(0),t.builder.$arg(e["$[]"](0))},vo.$$arity=3),e.def(cc,"$_reduce_655",bo=function(e){return this.builder.$multi_lhs(e["$[]"](0),e["$[]"](1),e["$[]"](2))},bo.$$arity=3),e.def(cc,"$_reduce_656",ko=function(e){return[e["$[]"](0)]},ko.$$arity=3),e.def(cc,"$_reduce_657",xo=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},xo.$$arity=3),e.def(cc,"$_reduce_658",wo=function(e){var t=this;return t.$check_kwarg_name(e["$[]"](0)),t.static_env.$declare(e["$[]"](0)["$[]"](0)),t.max_numparam_stack["$has_ordinary_params!"](),t.current_arg_stack.$set(e["$[]"](0)["$[]"](0)),e["$[]"](0)},wo.$$arity=3),e.def(cc,"$_reduce_659",Eo=function(e){var t=this;return t.current_arg_stack.$set(i),t.builder.$kwoptarg(e["$[]"](0),e["$[]"](1))},Eo.$$arity=3),e.def(cc,"$_reduce_660",Ro=function(e){var t=this;return t.current_arg_stack.$set(i),t.builder.$kwarg(e["$[]"](0))},Ro.$$arity=3),e.def(cc,"$_reduce_661",zo=function(e){return this.builder.$kwoptarg(e["$[]"](0),e["$[]"](1))},zo.$$arity=3),e.def(cc,"$_reduce_662",Ao=function(e){return this.builder.$kwarg(e["$[]"](0))},Ao.$$arity=3),e.def(cc,"$_reduce_663",No=function(e){return[e["$[]"](0)]},No.$$arity=3),e.def(cc,"$_reduce_664",So=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},So.$$arity=3),e.def(cc,"$_reduce_665",Oo=function(e){return[e["$[]"](0)]},Oo.$$arity=3),e.def(cc,"$_reduce_666",To=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},To.$$arity=3),e.def(cc,"$_reduce_669",Io=function(e){return[this.builder.$kwnilarg(e["$[]"](0),e["$[]"](1))]},Io.$$arity=3),e.def(cc,"$_reduce_670",Co=function(e){var t=this;return t.static_env.$declare(e["$[]"](1)["$[]"](0)),[t.builder.$kwrestarg(e["$[]"](0),e["$[]"](1))]},Co.$$arity=3),e.def(cc,"$_reduce_671",qo=function(e){return[this.builder.$kwrestarg(e["$[]"](0))]},qo.$$arity=3),e.def(cc,"$_reduce_672",Po=function(e){var t=this;return t.current_arg_stack.$set(0),t.builder.$optarg(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Po.$$arity=3),e.def(cc,"$_reduce_673",Bo=function(e){var t=this;return t.current_arg_stack.$set(0),t.builder.$optarg(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Bo.$$arity=3),e.def(cc,"$_reduce_674",Do=function(e){return[e["$[]"](0)]},Do.$$arity=3),e.def(cc,"$_reduce_675",Lo=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},Lo.$$arity=3),e.def(cc,"$_reduce_676",Go=function(e){return[e["$[]"](0)]},Go.$$arity=3),e.def(cc,"$_reduce_677",Mo=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},Mo.$$arity=3),e.def(cc,"$_reduce_680",jo=function(e){var t=this;return t.static_env.$declare(e["$[]"](1)["$[]"](0)),[t.builder.$restarg(e["$[]"](0),e["$[]"](1))]},jo.$$arity=3),e.def(cc,"$_reduce_681",Fo=function(e){return[this.builder.$restarg(e["$[]"](0))]},Fo.$$arity=3),e.def(cc,"$_reduce_684",Uo=function(e){var t=this;return t.static_env.$declare(e["$[]"](1)["$[]"](0)),t.builder.$blockarg(e["$[]"](0),e["$[]"](1))},Uo.$$arity=3),e.def(cc,"$_reduce_685",Ho=function(e){return[e["$[]"](1)]},Ho.$$arity=3),e.def(cc,"$_reduce_686",Yo=function(){return[]},Yo.$$arity=3),e.def(cc,"$_reduce_688",Xo=function(e){return e["$[]"](1)},Xo.$$arity=3),e.def(cc,"$_reduce_689",Vo=function(){return[]},Vo.$$arity=3),e.def(cc,"$_reduce_691",Wo=function(e){return[e["$[]"](0)]},Wo.$$arity=3),e.def(cc,"$_reduce_692",Ko=function(e){return e["$[]"](0)["$<<"](e["$[]"](2))},Ko.$$arity=3),e.def(cc,"$_reduce_693",Qo=function(e){return this.builder.$pair(e["$[]"](0),e["$[]"](1),e["$[]"](2))},Qo.$$arity=3),e.def(cc,"$_reduce_694",Jo=function(e){return this.builder.$pair_keyword(e["$[]"](0),e["$[]"](1))},Jo.$$arity=3),e.def(cc,"$_reduce_695",Zo=function(e){return this.builder.$pair_quoted(e["$[]"](0),e["$[]"](1),e["$[]"](2),e["$[]"](3))},Zo.$$arity=3),e.def(cc,"$_reduce_696",ec=function(e){return this.builder.$kwsplat(e["$[]"](0),e["$[]"](1))},ec.$$arity=3),e.def(cc,"$_reduce_709",tc=function(e){return["dot",e["$[]"](0)["$[]"](1)]},tc.$$arity=3),e.def(cc,"$_reduce_710",rc=function(e){return["anddot",e["$[]"](0)["$[]"](1)]},rc.$$arity=3),e.def(cc,"$_reduce_715",$c=function(e){return e["$[]"](1)},$c.$$arity=3),e.def(cc,"$_reduce_716",nc=function(e){return e["$[]"](1)},nc.$$arity=3),e.def(cc,"$_reduce_717",ac=function(e){return e["$[]"](1)},ac.$$arity=3),e.def(cc,"$_reduce_721",ic=function(e,t,r){return this.$yyerrok(),r},ic.$$arity=3),e.def(cc,"$_reduce_725",sc=function(){return i},sc.$$arity=3),e.def(cc,"$_reduce_none",oc=function(e){return e["$[]"](0)},oc.$$arity=3),i&&"_reduce_none"}(h[0],s(o(h,"Parser"),"Base"),h)}(a[0],a)},Opal.modules["opal/ast/builder"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=e.$$$,i=(e.$$,e.module),s=e.klass,o=e.send,c=e.hash2;return e.add_stubs(["$require","$emit_lambda=","$-","$new"]),r.$require("opal/ast/node"),r.$require("parser/ruby30"),function(r,$){var _=[i(r,"Opal")].concat($);return function(r,$){var _=[i(r,"AST")].concat($);return function(r,$super,$){var i,_=s(r,$super,"Builder"),u=([_].concat($),n);return u=[!0],o(_,"emit_lambda=",e.to_a(u)),u[t(u.length,1)],e.def(_,"$n",i=function(e,t,r){return a(a(a("::","Opal"),"AST"),"Node").$new(e,t,c(["location"],{location:r}))},i.$$arity=3),n&&"n"}(_[0],a(a(a("::","Parser"),"Builders"),"Default"),_)}(_[0],_)}($[0],$)},Opal.modules["opal/rewriters/base"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var $=e.top,n=[],a=e.nil,i=e.$$$,s=e.$$,o=e.module,c=e.klass,_=e.truthy,u=e.hash2,l=e.alias,d=e.send,p=e.send2,f=e.find_super;return e.add_stubs(["$require","$new","$current_node","$loc","$+","$stmts_of","$begin_with_stmts","$nil?","$include?","$type","$children","$length","$===","$[]","$s","$attr_accessor","$current_node=","$-","$location=","$raise"]),$.$require("parser"),$.$require("opal/ast/node"),function($,n){var h=[o($,"Opal")].concat(n);return function($,n){var h=[o($,"Rewriters")].concat(n);return function($,$super,n){var o,h,m,g,y,v,b,k,x=c($,$super,"Base"),w=[x].concat(n);return function(t,$super,r){var $,n,o,_,u,l,d,p,f=c(t,null,"DummyLocation"),h=[f].concat(r);e.def(f,"$node=",$=function(){return e.slice.call(arguments,0,arguments.length),a},$.$$arity=-1),e.def(f,"$expression",n=function(){return this},n.$$arity=0),e.def(f,"$begin_pos",o=function(){return 0},o.$$arity=0),e.def(f,"$end_pos",_=function(){return 0},_.$$arity=0),e.def(f,"$source",u=function(){return""},u.$$arity=0),e.def(f,"$line",l=function(){return 0},l.$$arity=0),e.def(f,"$column",d=function(){return 0},d.$$arity=0),e.def(f,"$last_line",p=function(){return i(s(h,"Float"),"INFINITY")},p.$$arity=0)}(w[0],0,w),e.const_set(w[0],"DUMMY_LOCATION",s(w,"DummyLocation").$new()),e.def(x,"$s",o=function(t){var r,$=this,n=a;return r=e.slice.call(arguments,1,arguments.length),n=_($.$current_node())?$.$current_node().$loc():s(w,"DUMMY_LOCATION"),i(i(i("::","Opal"),"AST"),"Node").$new(t,r,u(["location"],{location:n}))},o.$$arity=-2),e.defs(x,"$s",h=function(t){var r;return r=e.slice.call(arguments,1,arguments.length),i(i(i("::","Opal"),"AST"),"Node").$new(t,r,u(["location"],{location:s(w,"DUMMY_LOCATION")}))},h.$$arity=-2),l(x,"on_iter","process_regular_node"),l(x,"on_top","process_regular_node"),l(x,"on_zsuper","process_regular_node"),l(x,"on_jscall","on_send"),l(x,"on_jsattr","process_regular_node"),l(x,"on_jsattrasgn","process_regular_node"),l(x,"on_kwsplat","process_regular_node"),e.def(x,"$prepend_to_body",m=function(e,r){var $=this,n=a;return n=t($.$stmts_of(r),$.$stmts_of(e)),$.$begin_with_stmts(n)},m.$$arity=2),e.def(x,"$append_to_body",g=function(e,r){var $=this,n=a;return n=t($.$stmts_of(e),$.$stmts_of(r)),$.$begin_with_stmts(n)},g.$$arity=2),e.def(x,"$stmts_of",y=function(e){return _(e["$nil?"]())?[]:_(["begin","kwbegin"]["$include?"](e.$type()))?e.$children():[e]},y.$$arity=1),e.def(x,"$begin_with_stmts",v=function(t){var r=this,$=a;return $=t.$length(),(0)["$==="]($)?a:1["$==="]($)?t["$[]"](0):d(r,"s",["begin"].concat(e.to_a(t)))},v.$$arity=1),x.$attr_accessor("current_node"),e.def(x,"$process",b=function(t){var $=b.$$p,n=this,i=a;return $&&(b.$$p=null),function(){try{return i=[t],d(n,"current_node=",e.to_a(i)),i[r(i.length,1)],p(n,f(n,"process",b,!1,!0),"process",[t],$)}finally{i=[a],d(n,"current_node=",e.to_a(i)),i[r(i.length,1)]}}()},b.$$arity=1),e.def(x,"$error",k=function(t){var $=this,n=a,s=a;return n=i(i("::","Opal"),"RewritingError").$new(t),_($.$current_node())&&(s=[$.$current_node().$loc()],d(n,"location=",e.to_a(s)),s[r(s.length,1)]),$.$raise(n)},k.$$arity=1),a&&"error"}(h[0],i(i(i("::","Parser"),"AST"),"Processor"),h)}(h[0],h)}(n[0],n)},Opal.modules["opal/rewriters/opal_engine_check"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy,o=e.send2,c=e.find_super;return e.add_stubs(["$require","$children","$skip_check_present?","$process","$s","$skip_check_present_not?","$=="]),t.$require("opal/rewriters/base"),function(t,r){var _=[a(t,"Opal")].concat(r);return function(t,r){var _=[a(t,"Rewriters")].concat(r);return function(t,$super,r){var a,_,u,l=i(t,$super,"OpalEngineCheck"),d=[l].concat(r);return e.def(l,"$on_if",a=function(t){var r,n=a.$$p,i=this,_=$,u=$,l=$,d=$,p=$;return n&&(a.$$p=null),_=null==(r=[].concat(e.to_a(t.$children())))[0]?$:r[0],u=null==r[1]?$:r[1],l=null==r[2]?$:r[2],s(i["$skip_check_present?"](_))?i.$process(s(d=u)?d:i.$s("nil")):s(i["$skip_check_present_not?"](_))?i.$process(s(p=l)?p:i.$s("nil")):o(i,c(i,"on_if",a,!1,!0),"on_if",[t],n)},a.$$arity=1),e.def(l,"$skip_check_present?",_=function(e){var t=$;return s(t=e["$=="](n(d,"RUBY_ENGINE_CHECK")))?t:e["$=="](n(d,"RUBY_PLATFORM_CHECK"))},_.$$arity=1),e.def(l,"$skip_check_present_not?",u=function(e){var t=$;return s(t=e["$=="](n(d,"RUBY_ENGINE_CHECK_NOT")))?t:e["$=="](n(d,"RUBY_PLATFORM_CHECK_NOT"))},u.$$arity=1), +e.const_set(d[0],"RUBY_ENGINE_CHECK",l.$s("send",l.$s("const",$,"RUBY_ENGINE"),"==",l.$s("str","opal"))),e.const_set(d[0],"RUBY_ENGINE_CHECK_NOT",l.$s("send",l.$s("const",$,"RUBY_ENGINE"),"!=",l.$s("str","opal"))),e.const_set(d[0],"RUBY_PLATFORM_CHECK",l.$s("send",l.$s("const",$,"RUBY_PLATFORM"),"==",l.$s("str","opal"))),e.const_set(d[0],"RUBY_PLATFORM_CHECK_NOT",l.$s("send",l.$s("const",$,"RUBY_PLATFORM"),"!=",l.$s("str","opal")))}(_[0],n(_,"Base"),_)}(_[0],_)}(r[0],r)},Opal.modules["opal/rewriters/for_rewriter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.truthy,c=e.send,_=e.send2,u=e.find_super;return e.add_stubs(["$require","$+","$find","$map","$s","$next_tmp","$class","$type","$===","$updated","$<<","$prepend_to_body","$process","$attr_reader","$new","$to_a","$result"]),r.$require("opal/rewriters/base"),function(r,$){var l=[i(r,"Opal")].concat($);return function(r,$){var l=[i(r,"Rewriters")].concat($);return function(r,$super,$){var i,l,d,p=s(r,$super,"ForRewriter"),f=[p].concat($);return e.defs(p,"$reset_tmp_counter!",i=function(){return this.counter=0},i.$$arity=0),e.defs(p,"$next_tmp",l=function(){var e=this,r=n;return null==e.counter&&(e.counter=n),e.counter=o(r=e.counter)?r:0,e.counter=t(e.counter,1),"$for_tmp"+e.counter},l.$$arity=0),e.def(p,"$on_for",d=function(r){var $,i,s=this,o=n,_=n,u=n,l=n,d=n,p=n,h=n,m=n,g=n,y=n;return $=[].concat(e.to_a(r)),o=null==$[0]?n:$[0],_=null==$[1]?n:$[1],u=null==$[2]?n:$[2],l=a(f,"LocalVariableAssigns").$find(o),d=a(f,"LocalVariableAssigns").$find(u),p=c(t(l,d),"map",[],((i=function(e){var t=null==i.$$s?this:i.$$s;return null==e&&(e=n),t.$s("lvdeclare",e)}).$$s=s,i.$$arity=1,i)),h=s.$class().$next_tmp(),m=s.$s("js_tmp",h),y=o.$type(),g="mlhs"["$==="](y)?o.$updated("masgn",[o,m]):o["$<<"](m),u=s.$prepend_to_body(u,g),(r=r.$updated("send",[_,"each",r.$updated("iter",[s.$s("args",s.$s("arg",h)),s.$process(u)])])).$updated("begin",[].concat(e.to_a(p)).concat([r]))},d.$$arity=1),function(t,$super,r){var $,i,o,c=s(t,$super,"LocalVariableAssigns"),l=[c].concat(r);return c.$attr_reader("result"),e.defs(c,"$find",$=function(e){var t=n;return(t=this.$new()).$process(e),t.$result().$to_a()},$.$$arity=1),e.def(c,"$initialize",i=function(){return this.result=a(l,"Set").$new()},i.$$arity=0),e.def(c,"$on_lvasgn",o=function(t){var r,$=o.$$p,a=this,i=n;return $&&(o.$$p=null),i=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],null==r[1]?n:r[1],a.$result()["$<<"](i),_(a,u(a,"on_lvasgn",o,!1,!0),"on_lvasgn",[t],$)},o.$$arity=1),n&&"on_lvasgn"}(f[0],a(f,"Base"),f)}(l[0],a(l,"Base"),l)}(l[0],l)}($[0],$)},Opal.modules["opal/rewriters/explicit_writer_return"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy,o=e.send2,c=e.find_super,_=e.slice,u=e.send;return e.add_stubs(["$require","$s","$=~","$to_s","$==","$process_all","$updated"]),t.$require("opal/rewriters/base"),function(t,r){var l=[a(t,"Opal")].concat(r);return function(t,r){var l=[a(t,"Rewriters")].concat(r);return function(t,$super,r){var a,l,d,p=i(t,$super,"ExplicitWriterReturn"),f=[p].concat(r);return p.$$prototype.in_masgn=$,e.def(p,"$initialize",a=function(){return this.in_masgn=!1},a.$$arity=0),e.const_set(f[0],"TMP_NAME","$writer"),e.const_set(f[0],"GET_ARGS_NODE",p.$s("lvar",n(f,"TMP_NAME"))),e.const_set(f[0],"RETURN_ARGS_NODE",p.$s("jsattr",n(f,"GET_ARGS_NODE"),p.$s("send",p.$s("jsattr",n(f,"GET_ARGS_NODE"),p.$s("str","length")),"-",p.$s("int",1)))),e.def(p,"$on_send",l=function(t){var r,a=l.$$p,i=this,d=$,p=$,h=$,m=$,g=$;return a&&(l.$$p=null),s(i.in_masgn)?o(i,c(i,"on_send",l,!1,!0),"on_send",[t],a):(d=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],p=null==r[1]?$:r[1],h=_.call(r,2),s(s(m=p.$to_s()["$=~"](e.regexp([n(f,"REGEXP_START"),"\\w+=",n(f,"REGEXP_END")])))?m:p.$to_s()["$=="]("[]="))?(g=i.$s("lvasgn",n(f,"TMP_NAME"),u(i,"s",["array"].concat(e.to_a(i.$process_all(h))))),i.$s("begin",g,t.$updated($,[d,p,i.$s("splat",n(f,"GET_ARGS_NODE"))]),n(f,"RETURN_ARGS_NODE"))):o(i,c(i,"on_send",l,!1,!0),"on_send",[t],a))},l.$$arity=1),e.def(p,"$on_masgn",d=function(e){var t=d.$$p,r=this,n=$;return t&&(d.$$p=null),r.in_masgn=!0,n=o(r,c(r,"on_masgn",d,!1,!0),"on_masgn",[e],t),r.in_masgn=!1,n},d.$$arity=1),$&&"on_masgn"}(l[0],n(l,"Base"),l)}(l[0],l)}(r[0],r)},Opal.modules["opal/regexp_anchors"]=function(e){e.top;var t=[],r=(e.nil,e.$$$,e.$$),$=e.module;return e.add_stubs(["$new"]),function(t,n){var a=[$(t,"Opal")].concat(n);return e.const_set(a[0],"REGEXP_START","^"),e.const_set(a[0],"REGEXP_END","$"),e.const_set(a[0],"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),e.const_set(a[0],"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),e.const_set(a[0],"INLINE_IDENTIFIER_REGEXP",r(a,"Regexp").$new("[^"+r(a,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+r(a,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),e.const_set(a[0],"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),e.const_set(a[0],"CONST_NAME_REGEXP",r(a,"Regexp").$new(r(a,"REGEXP_START")+"(::)?[A-Z][^"+r(a,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+r(a,"REGEXP_END")))}(t[0],t)},Opal.modules["opal/rewriters/js_reserved_words"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy,o=e.range,c=e.send2,_=e.find_super,u=e.hash2,l=e.alias;return e.add_stubs(["$require","$freeze","$=~","$!","$valid_name?","$class","$to_sym","$valid_ivar_name?","$[]","$to_s","$updated","$fix_var_name","$fix_ivar_name"]),t.$require("opal/rewriters/base"),t.$require("opal/regexp_anchors"),function(t,r){var d=[a(t,"Opal")].concat(r);return function(t,r){var d=[a(t,"Rewriters")].concat(r);return function(t,$super,r){var a,d,p,f,h,m,g,y,v,b,k=i(t,$super,"JsReservedWords"),x=[k].concat(r);return e.const_set(x[0],"ES51_RESERVED_WORD",e.regexp([n(x,"REGEXP_START"),"(?:do|if|in|for|let|new|try|var|case|else|enum|eval|false|null|this|true|void|with|break|catch|class|const|super|throw|while|yield|delete|export|import|public|return|static|switch|typeof|default|extends|finally|package|private|continue|debugger|function|arguments|interface|protected|implements|instanceof)",n(x,"REGEXP_END")]).$freeze()),e.const_set(x[0],"ES3_RESERVED_WORD_EXCLUSIVE",e.regexp([n(x,"REGEXP_START"),"(?:int|byte|char|goto|long|final|float|short|double|native|throws|boolean|abstract|volatile|transient|synchronized)",n(x,"REGEXP_END")]).$freeze()),e.const_set(x[0],"PROTO_SPECIAL_PROPS",e.regexp([n(x,"REGEXP_START"),"(?:constructor|displayName|__proto__|__parent__|__noSuchMethod__|__count__)",n(x,"REGEXP_END")]).$freeze()),e.const_set(x[0],"PROTO_SPECIAL_METHODS",e.regexp([n(x,"REGEXP_START"),"(?:hasOwnProperty|valueOf)",n(x,"REGEXP_END")]).$freeze()),e.const_set(x[0],"IMMUTABLE_PROPS",e.regexp([n(x,"REGEXP_START"),"(?:NaN|Infinity|undefined)",n(x,"REGEXP_END")]).$freeze()),e.const_set(x[0],"BASIC_IDENTIFIER_RULES",e.regexp([n(x,"REGEXP_START"),"[$_a-z][$_a-z\\d]*",n(x,"REGEXP_END")],"i").$freeze()),e.const_set(x[0],"RESERVED_FUNCTION_NAMES",e.regexp([n(x,"REGEXP_START"),"(?:Array)",n(x,"REGEXP_END")]).$freeze()),e.defs(k,"$valid_name?",a=function(e){var t=$,r=$,a=$;return s(t=n(x,"BASIC_IDENTIFIER_RULES")["$=~"](e))?(s(r=s(a=n(x,"ES51_RESERVED_WORD")["$=~"](e))?a:n(x,"ES3_RESERVED_WORD_EXCLUSIVE")["$=~"](e))?r:n(x,"IMMUTABLE_PROPS")["$=~"](e))["$!"]():t},a.$$arity=1),e.defs(k,"$valid_ivar_name?",d=function(e){var t=$;return(s(t=n(x,"PROTO_SPECIAL_PROPS")["$=~"](e))?t:n(x,"PROTO_SPECIAL_METHODS")["$=~"](e))["$!"]()},d.$$arity=1),e.def(k,"$fix_var_name",p=function(e){return s(this.$class()["$valid_name?"](e))?e:(e+"$").$to_sym()},p.$$arity=1),e.def(k,"$fix_ivar_name",f=function(e){return s(this.$class()["$valid_ivar_name?"](e.$to_s()["$[]"](o(1,-1,!1))))?e:(e+"$").$to_sym()},f.$$arity=1),e.def(k,"$on_lvar",h=function(t){var r,n=h.$$p,a=this,i=$;return n&&(h.$$p=null),i=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],null==r[1]?$:r[1],t=t.$updated($,[a.$fix_var_name(i)]),c(a,_(a,"on_lvar",h,!1,!0),"on_lvar",[t],null)},h.$$arity=1),e.def(k,"$on_lvasgn",m=function(t){var r,n=m.$$p,a=this,i=$,o=$;return n&&(m.$$p=null),r=[].concat(e.to_a(t)),i=null==r[0]?$:r[0],o=null==r[1]?$:r[1],t=s(o)?t.$updated($,[a.$fix_var_name(i),o]):t.$updated($,[a.$fix_var_name(i)]),c(a,_(a,"on_lvasgn",m,!1,!0),"on_lvasgn",[t],null)},m.$$arity=1),e.def(k,"$on_ivar",g=function(t){var r,n=g.$$p,a=this,i=$;return n&&(g.$$p=null),i=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],null==r[1]?$:r[1],t=t.$updated($,[a.$fix_ivar_name(i)]),c(a,_(a,"on_ivar",g,!1,!0),"on_ivar",[t],null)},g.$$arity=1),e.def(k,"$on_ivasgn",y=function(t){var r,n=y.$$p,a=this,i=$,o=$;return n&&(y.$$p=null),r=[].concat(e.to_a(t)),i=null==r[0]?$:r[0],o=null==r[1]?$:r[1],t=s(o)?t.$updated($,[a.$fix_ivar_name(i),o]):t.$updated($,[a.$fix_ivar_name(i)]),c(a,_(a,"on_ivasgn",y,!1,!0),"on_ivasgn",[t],null)},y.$$arity=1),e.def(k,"$on_restarg",v=function(t){var r,n=this,a=$;return a=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],null==r[1]?$:r[1],s(a)&&(t=t.$updated($,[n.$fix_var_name(a)],u(["meta"],{meta:u(["arg_name"],{arg_name:a})}))),t},v.$$arity=1),l(k,"on_kwrestarg","on_restarg"),e.def(k,"$on_argument",b=function(t){var r,n=b.$$p,a=this,i=$,o=$,l=$,d=$;return n&&(b.$$p=null),t=c(a,_(a,"on_argument",b,!1,!0),"on_argument",[t],null),i=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],o=null==r[1]?$:r[1],l=a.$fix_var_name(i),d=s(o)?[l,o]:[l],t.$updated($,d,u(["meta"],{meta:u(["arg_name"],{arg_name:i})}))},b.$$arity=1),$&&"on_argument"}(d[0],n(d,"Base"),d)}(d[0],d)}(r[0],r)},Opal.modules["opal/rewriters/block_to_iter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass;return e.add_stubs(["$require","$s","$process","$updated","$+","$children"]),r.$require("opal/rewriters/base"),function(r,$){var o=[i(r,"Opal")].concat($);return function(r,$){var o=[i(r,"Rewriters")].concat($);return function(r,$super,$){var a,i=s(r,$super,"BlockToIter");[i].concat($);return e.def(i,"$on_block",a=function(r){var $,a=this,i=n,s=n,o=n,c=n;return i=null==($=[].concat(e.to_a(r)))[0]?n:$[0],s=null==$[1]?n:$[1],o=null==$[2]?n:$[2],c=a.$s("iter",s,o),a.$process(i.$updated(n,t(i.$children(),[c])))},a.$$arity=1),n&&"on_block"}(o[0],a(o,"Base"),o)}(o[0],o)}($[0],$)},Opal.modules["opal/rewriters/dot_js_syntax"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.slice,o=e.truthy,c=e.send2,_=e.find_super,u=e.send;return e.add_stubs(["$require","$==","$type","$===","$!=","$size","$error","$first","$to_js_attr_call","$to_js_attr_assign_call","$to_native_js_call","$s"]),t.$require("opal/rewriters/base"),function(t,r){var l=[a(t,"Opal")].concat(r);return function(t,r){var l=[a(t,"Rewriters")].concat(r);return function(t,$super,r){var n,a,l,d,p=i(t,$super,"DotJsSyntax");[p].concat(r);return e.def(p,"$on_send",n=function(t){var r,a=n.$$p,i=this,u=$,l=$,d=$,p=$,f=$,h=$,m=$,g=$,y=$;return a&&(n.$$p=null),r=[].concat(e.to_a(t)),u=null==r[0]?$:r[0],l=null==r[1]?$:r[1],d=s.call(r,2),o(o(p=u)?u.$type()["$=="]("send"):p)?(f=null==(r=[].concat(e.to_a(u)))[0]?$:r[0],h=null==r[1]?$:r[1],null==r[2]?$:r[2],h["$=="]("JS")?(m=l,"[]"["$==="](m)?(o(d.$size()["$!="](1))&&i.$error(".JS[:property] syntax supports only one argument"),g=d.$first(),t=i.$to_js_attr_call(f,g)):"[]="["$==="](m)?(o(d.$size()["$!="](2))&&i.$error(".JS[:property]= syntax supports only two arguments"),g=null==(r=[].concat(e.to_a(d)))[0]?$:r[0],y=null==r[1]?$:r[1],t=i.$to_js_attr_assign_call(f,g,y)):t=i.$to_native_js_call(f,l,d),c(i,_(i,"on_send",n,!1,!0),"on_send",[t],null)):c(i,_(i,"on_send",n,!1,!0),"on_send",[t],a)):c(i,_(i,"on_send",n,!1,!0),"on_send",[t],a)},n.$$arity=1),e.def(p,"$to_native_js_call",a=function(t,r,$){return u(this,"s",["jscall",t,r].concat(e.to_a($)))},a.$$arity=3),e.def(p,"$to_js_attr_call",l=function(e,t){return this.$s("jsattr",e,t)},l.$$arity=2),e.def(p,"$to_js_attr_assign_call",d=function(e,t,r){return this.$s("jsattrasgn",e,t,r)},d.$$arity=3),$&&"to_js_attr_assign_call"}(l[0],n(l,"Base"),l)}(l[0],l)}(r[0],r)},Opal.modules["opal/rewriters/pattern_matching"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],n=e.nil,a=e.$$$,i=e.$$,s=e.module,o=e.klass,c=e.send2,_=e.find_super,u=e.slice,l=e.truthy,d=e.send,p=e.alias;return e.add_stubs(["$require","$s","$convert_full_pattern","$raise_no_matching_pattern_error","$+","$process","$single_case_match","$private","$shift","$type","$===","$!","$empty?","$!=","$==","$class","$new","$run!","$variables","$pattern","$map","$<<","$array","$on_literal","$first","$children","$to_proc","$method","$each","$to_ast","$on_array_pattern","$compact","$[]"]),r.$require("opal/rewriters/base"),function(r,$){var f=[s(r,"Opal")].concat($);return function(r,$){var f=[s(r,"Rewriters")].concat($);return function(r,$super,$){var s,f,h,m,g,y,v,b=o(r,$super,"PatternMatching"),k=[b].concat($);return b.$$prototype.depth=n,e.def(b,"$initialize",s=function(){var e=s.$$p,t=this;return e&&(s.$$p=null),t.depth=0,c(t,_(t,"initialize",s,!1,!0),"initialize",[],e)},s.$$arity=0),e.def(b,"$on_match_pattern",f=function(t){var r,$=this,a=n,i=n;return a=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],i=null==r[1]?n:r[1],$.$s("begin",$.$s("lvasgn","$pmvar",a),$.$s("if",$.$convert_full_pattern(a,i),n,$.$raise_no_matching_pattern_error("$pmvar")))},f.$$arity=1),e.def(b,"$on_match_pattern_p",h=function(t){var r,$=this,a=n,i=n;return a=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],i=null==r[1]?n:r[1],$.$s("if",$.$convert_full_pattern(a,i),$.$s("true"),$.$s("false"))},h.$$arity=1),e.def(b,"$on_case_match",m=function(r){var $,a,i=this,s=n,o=n,c=n,_=n;return i.depth=t(i.depth,1),s="$cmvar"+i.depth,o=null==($=[].concat(e.to_a(r)))[0]?n:$[0],a=(a=$.length-1)<1?1:a,c=u.call($,1,a),_=null==$[a]?n:$[a],l(_)?i.$process(_):_=i.$raise_no_matching_pattern_error(s),i.$s("begin",i.$s("lvasgn",s,o),d(i,"single_case_match",[s].concat(e.to_a(c)).concat([_])))},m.$$arity=1),b.$private(),e.def(b,"$raise_no_matching_pattern_error",g=function(e){var t=this;return t.$s("send",n,"raise",t.$s("const",n,"NoMatchingPatternError"),t.$s("lvar",e))},g.$$arity=1),e.def(b,"$single_case_match",y=function(t){var r,$,a,i,s=this,o=n,c=n,_=n,u=n,p=n,f=n;return r=e.slice.call(arguments,1,arguments.length),$=r.splice(0,r.length-1),a=r[0],r.splice(0,1),null==a&&(a=n),o=$.$shift(),c=null==(i=[].concat(e.to_a(o)))[0]?n:i[0],_=null==i[1]?n:i[1],u=null==i[2]?n:i[2],c=s.$convert_full_pattern(t,c),l(_)&&(p=null==(i=[].concat(e.to_a(_)))[0]?n:i[0],f=_.$type(),"if_guard"["$==="](f)?c=s.$s("and",c,p):"unless_guard"["$==="](f)&&(c=s.$s("and",c,s.$s("send",p,"!")))),s.$s("if",c,s.$process(u),l($["$empty?"]()["$!"]())?d(s,"single_case_match",[t].concat(e.to_a($)).concat([a])):l(a["$!="](s.$s("empty_else")))?a:n)},y.$$arity=-3),e.def(b,"$convert_full_pattern",v=function(t,r){var $=this,a=n;return t.$class()["$=="](i(k,"Symbol"))&&(t=$.$s("lvar",t)),(a=i(k,"PatternConverter").$new(r))["$run!"](),$.$s("masgn",d($,"s",["mlhs"].concat(e.to_a(a.$variables()))),$.$s("send",$.$s("const",$.$s("cbase"),"PatternMatching"),"call",t,a.$pattern()))},v.$$arity=2),function(r,$super,$){var a,s,c,_,u,f,h,m,g,y,v,b,k,x,w,E,R,z=o(r,$super,"PatternConverter"),A=[z].concat($);return z.$$prototype.pat=z.$$prototype.outpat=z.$$prototype.variables=n,e.def(z,"$initialize",a=function(e){var t=this;return t.pat=e,t.variables=[]},a.$$arity=1),e.def(z,"$run!",s=function(){var e=this;return e.outpat=e.$process(e.pat)},s.$$arity=0),e.def(z,"$pattern",c=function(){return this.outpat},c.$$arity=0),e.def(z,"$variables",_=function(){var e,t=this;return d(t.variables,"map",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=n),r.$s("lvasgn",t)}).$$s=t,e.$$arity=1,e))},_.$$arity=0),e.def(z,"$on_match_var",u=function(t){var r,$=this,a=n;return a=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],$.variables["$<<"](a),$.$s("sym","var")},u.$$arity=1),e.def(z,"$on_match_as",f=function(t){var r,$=this,a=n,i=n;return a=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],i=null==r[1]?n:r[1],$.$process(i),$.$array($.$s("sym","save"),$.$process(a))},f.$$arity=1),e.def(z,"$on_literal",h=function(e){var t=this;return t.$array(t.$s("sym","lit"),e)},h.$$arity=1),p(z,"on_int","on_literal"),p(z,"on_float","on_literal"),p(z,"on_complex","on_literal"),p(z,"on_rational","on_literal"),p(z,"on_array","on_literal"),p(z,"on_str","on_literal"),p(z,"on_dstr","on_literal"),p(z,"on_xstr","on_literal"),p(z,"on_sym","on_literal"),p(z,"on_irange","on_literal"),p(z,"on_erange","on_literal"),p(z,"on_const","on_literal"),p(z,"on_regexp","on_literal"),p(z,"on_lambda","on_literal"),p(z,"on_begin","on_literal"),e.def(z,"$on_pin",m=function(e){return this.$on_literal(e.$children().$first())},m.$$arity=1),e.def(z,"$on_match_rest",g=function(e){var t=this;return l(e.$children()["$empty?"]())?t.$array(t.$s("sym","rest")):t.$array(t.$s("sym","rest"),t.$process(e.$children().$first()))},g.$$arity=1),e.def(z,"$on_match_alt",y=function(t){var r=this;return d(r,"array",[r.$s("sym","any")].concat(e.to_a(d(t.$children(),"map",[],r.$method("process").$to_proc()))))},y.$$arity=1),e.def(z,"$on_const_pattern",v=function(t){var r=this;return d(r,"array",[r.$s("sym","all")].concat(e.to_a(d(t.$children(),"map",[],r.$method("process").$to_proc()))))},v.$$arity=1),e.def(z,"$on_array_pattern",b=function(r,$){var a,i=this,s=n,o=n,c=n;return null==$&&($=!1),s=[].concat(e.to_a(r)),l($)&&s["$<<"](i.$s("match_rest")),o=!0,c=0,s=d(s,"each",[],((a=function(e){null==a.$$s||a.$$s;var r=n;return null==e&&(e=n),r=e.$type(),"match_rest"["$==="](r)?o=!1:c=t(c,1)}).$$s=i,a.$$arity=1,a)),i.$array(i.$s("sym","array"),i.$to_ast(o),i.$to_ast(c),i.$to_ast(d(s,"map",[],i.$method("process").$to_proc())))},b.$$arity=-2),e.def(z,"$on_array_pattern_with_tail",k=function(e){return this.$on_array_pattern(e,!0)},k.$$arity=1),e.def(z,"$on_hash_pattern",x=function(t){var r,$=this,a=n,i=n;return a=[].concat(e.to_a(t)),i=l(a["$empty?"]())?$.$to_ast(!1):$.$to_ast(!0),a=d(a,"map",[],(r=function(e){var t=null==r.$$s?this:r.$$s,$=n;return null==e&&(e=n),$=e.$type(),"pair"["$==="]($)?t.$array(e.$children()["$[]"](0),t.$process(e.$children()["$[]"](1))):"match_var"["$==="]($)?t.$array(t.$s("sym",e.$children()["$[]"](0)),t.$process(e)):"match_nil_pattern"["$==="]($)?(i=t.$to_ast(!1),n):"match_rest"["$==="]($)?(i=l(e.$children().$first())?t.$process(e.$children().$first()):t.$to_ast(!0),n):n},r.$$s=$,r.$$arity=1,r)).$compact(),$.$array($.$s("sym","hash"),i,d($,"array",e.to_a(a)))},x.$$arity=1),e.def(z,"$on_find_pattern",w=function(t){var r=this,$=n;return $=[].concat(e.to_a(t)),$=d($,"map",[],r.$method("process").$to_proc()),r.$array(r.$s("sym","find"),d(r,"array",e.to_a($)))},w.$$arity=1),z.$private(),e.def(z,"$array",E=function(){var t,r=this;return t=e.slice.call(arguments,0,arguments.length),r.$to_ast(t)},E.$$arity=-1),e.def(z,"$to_ast",R=function(t){var r=this,$=n;return $=t,i(A,"Array")["$==="]($)?d(r,"s",["array"].concat(e.to_a(t))):i(A,"Integer")["$==="]($)?r.$s("int",t):(!0)["$==="]($)?r.$s("true"):(!1)["$==="]($)?r.$s("false"):n["$==="]($)?r.$s("nil"):n},R.$$arity=1),n&&"to_ast"}(k[0],a(a(a("::","Opal"),"Rewriters"),"Base"),k)}(f[0],i(f,"Base"),f)}(f[0],f)}($[0],$)},Opal.modules["opal/rewriters/logical_operator_assignment"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.class_variable_set,c=e.truthy,_=e.class_variable_get,u=e.lambda,l=e.slice,d=e.hash2,p=e.send,f=e.send2,h=e.find_super;return e.add_stubs(["$require","$+","$updated","$s","$include?","$==","$[]","$type","$new_temp","$freeze","$call","$fetch","$error","$process"]),r.$require("opal/rewriters/base"),function(r,$){var m=[i(r,"Opal")].concat($);return function(r,$){var m=[i(r,"Rewriters")].concat($);return function(r,$super,$){var i,m,g,y,v,b,k=s(r,$super,"LogicalOperatorAssignment"),x=[k].concat($);return e.defs(k,"$reset_tmp_counter!",i=function(){return o(x[0],"@@counter",0)},i.$$arity=0),e.defs(k,"$new_temp",m=function(){var e=n;return o(x[0],"@@counter",c(null!=x[0].$$cvars["@@counter"]?"class variable":n)&&c(e=_(x[0],"@@counter",!1))?e:0),o(x[0],"@@counter",t(_(x[0],"@@counter",!1),1)),"$logical_op_recvr_tmp_"+_(x[0],"@@counter",!1)},m.$$arity=0),e.const_set(x[0],"GET_SET",u(((g=function(t,r){var $,a=null==g.$$s?this:g.$$s;return null==t&&(t=n),null==r&&(r=n),u((($=function(a,i,s){var o=null==$.$$s?this:$.$$s,_=n,u=n,l=n,d=n;return null==a&&(a=n),null==i&&(i=n),null==s&&(s=n),_=a.$updated(t),u=o.$s(s,_,i),c(c(l=["const","cvar"]["$include?"](t))?s["$=="]("or"):l)&&(d=o.$s("defined?",_),u=o.$s("if",d,o.$s("begin",u),i)),a.$updated(r,[].concat(e.to_a(a)).concat([u]))}).$$s=a,$.$$arity=3,$))}).$$s=k,g.$$arity=2,g))),e.const_set(x[0],"LocalVariableHandler",a(x,"GET_SET")["$[]"]("lvar","lvasgn")),e.const_set(x[0],"InstanceVariableHandler",a(x,"GET_SET")["$[]"]("ivar","ivasgn")),e.const_set(x[0],"ConstantHandler",a(x,"GET_SET")["$[]"]("const","casgn")),e.const_set(x[0],"GlobalVariableHandler",a(x,"GET_SET")["$[]"]("gvar","gvasgn")),e.const_set(x[0],"ClassVariableHandler",a(x,"GET_SET")["$[]"]("cvar","cvasgn")),function(t,$super,r){var $,a=s(t,$super,"SendHandler");[a].concat(r);e.defs(a,"$call",$=function(t,r,$){var a,i=this,s=n,o=n,_=n,u=n,d=n,p=n,f=n,h=n,m=n,g=n;return a=[].concat(e.to_a(t)),s=null==a[0]?n:a[0],o=null==a[1]?n:a[1],_=l.call(a,2),c(c(u=s)?s.$type()["$=="]("send"):u)&&(d=i.$new_temp(),p=i.$s("lvasgn",d,s),s=i.$s("js_tmp",d)),f=o+"=",h=t.$updated("send",[s,o].concat(e.to_a(_))),m=t.$updated("send",[s,f].concat(e.to_a(_)).concat([r])),g=i.$s($,h,m),c(p)?i.$s("begin",p,g):g},$.$$arity=3)}(x[0],k,x),function(t,$super,r){var $,a=s(t,$super,"ConditionalSendHandler");[a].concat(r);e.defs(a,"$call",$=function(t,r,$){var a,i=this,s=n,o=n,c=n,_=n,u=n,d=n,p=n,f=n;return $+="_asgn",s=null==(a=[].concat(e.to_a(t)))[0]?n:a[0],o=null==a[1]?n:a[1],c=l.call(a,2),_=i.$new_temp(),u=i.$s("lvasgn",_,s),s=i.$s("js_tmp",_),d=i.$s("send",s,"nil?"),p=t.$updated("send",[s,o].concat(e.to_a(c))),f=i.$s($,p,r),i.$s("begin",u,i.$s("if",d,i.$s("nil"),f))},$.$$arity=3)}(x[0],k,x),e.const_set(x[0],"HANDLERS",d(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:a(x,"LocalVariableHandler"),ivasgn:a(x,"InstanceVariableHandler"),casgn:a(x,"ConstantHandler"),gvasgn:a(x,"GlobalVariableHandler"),cvasgn:a(x,"ClassVariableHandler"),send:a(x,"SendHandler"),csend:a(x,"ConditionalSendHandler")}).$freeze()),e.def(k,"$on_or_asgn",y=function(t){var r,$,i=this,s=n,o=n,c=n;return r=[].concat(e.to_a(t)),s=null==r[0]?n:r[0],o=null==r[1]?n:r[1],c=p(a(x,"HANDLERS"),"fetch",[s.$type()],($=function(){return(null==$.$$s?this:$.$$s).$error("cannot handle LHS type: "+s.$type())},$.$$s=i,$.$$arity=0,$)).$call(s,o,"or"),i.$process(c)},y.$$arity=1),e.def(k,"$on_and_asgn",v=function(t){var r,$,i=this,s=n,o=n,c=n;return r=[].concat(e.to_a(t)),s=null==r[0]?n:r[0],o=null==r[1]?n:r[1],c=p(a(x,"HANDLERS"),"fetch",[s.$type()],($=function(){return(null==$.$$s?this:$.$$s).$error("cannot handle LHS type: "+s.$type())},$.$$s=i,$.$$arity=0,$)).$call(s,o,"and"),i.$process(c)},v.$$arity=1),e.const_set(x[0],"ASSIGNMENT_STRING_NODE",k.$s("str","assignment")),e.def(k,"$on_defined?",b=function(t){var r,$=b.$$p,i=this,s=n;return $&&(b.$$p=null),s=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],null==r[1]?n:r[1],c(["or_asgn","and_asgn"]["$include?"](s.$type()))?a(x,"ASSIGNMENT_STRING_NODE"):f(i,h(i,"on_defined?",b,!1,!0),"on_defined?",[t],null)},b.$$arity=1),n&&"on_defined?"}(m[0],a(m,"Base"),m)}(m[0],m)}($[0],$)},Opal.modules["opal/rewriters/binary_operator_assignment"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.class_variable_set,c=e.truthy,_=e.class_variable_get,u=e.lambda,l=e.slice,d=e.hash2,p=e.send,f=e.send2,h=e.find_super;return e.add_stubs(["$require","$+","$updated","$[]","$==","$type","$new_temp","$s","$freeze","$call","$fetch","$error","$process"]),r.$require("opal/rewriters/base"),function(r,$){var m=[i(r,"Opal")].concat($);return function(r,$){var m=[i(r,"Rewriters")].concat($);return function(r,$super,$){var i,m,g,y,v,b=s(r,$super,"BinaryOperatorAssignment"),k=[b].concat($);return e.defs(b,"$reset_tmp_counter!",i=function(){return o(k[0],"@@counter",0)},i.$$arity=0),e.defs(b,"$new_temp",m=function(){var e=n;return o(k[0],"@@counter",c(null!=k[0].$$cvars["@@counter"]?"class variable":n)&&c(e=_(k[0],"@@counter",!1))?e:0),o(k[0],"@@counter",t(_(k[0],"@@counter",!1),1)),"$binary_op_recvr_tmp_"+_(k[0],"@@counter",!1)},m.$$arity=0),e.const_set(k[0],"GET_SET",u(((g=function(t,r){var $,a=null==g.$$s?this:g.$$s;return null==t&&(t=n),null==r&&(r=n),u((($=function(a,i,s,o){null==$.$$s||$.$$s;var c=n,_=n;return null==a&&(a=n),null==i&&(i=n),null==s&&(s=n),null==o&&(o=n),c=i.$updated(t),_=a.$updated("send",[c,s,o]),i.$updated(r,[].concat(e.to_a(i)).concat([_]))}).$$s=a,$.$$arity=4,$))}).$$s=b,g.$$arity=2,g))),e.const_set(k[0],"LocalVariableHandler",a(k,"GET_SET")["$[]"]("lvar","lvasgn")),e.const_set(k[0],"InstanceVariableHandler",a(k,"GET_SET")["$[]"]("ivar","ivasgn")),e.const_set(k[0],"ConstantHandler",a(k,"GET_SET")["$[]"]("const","casgn")),e.const_set(k[0],"GlobalVariableHandler",a(k,"GET_SET")["$[]"]("gvar","gvasgn")),e.const_set(k[0],"ClassVariableHandler",a(k,"GET_SET")["$[]"]("cvar","cvasgn")),function(t,$super,r){var $,a=s(t,$super,"SendHandler");[a].concat(r);e.defs(a,"$call",$=function(t,r,$,a){var i,s=this,o=n,_=n,u=n,d=n,p=n,f=n,h=n,m=n,g=n,y=n;return i=[].concat(e.to_a(r)),o=null==i[0]?n:i[0],_=null==i[1]?n:i[1],u=l.call(i,2),c(c(d=o)?o.$type()["$=="]("send"):d)&&(p=s.$new_temp(),f=s.$s("lvasgn",p,o),o=s.$s("js_tmp",p)),h=_+"=",m=r.$updated("send",[o,_].concat(e.to_a(u))),g=t.$updated("send",[m,$,a]),y=r.$updated("send",[o,h].concat(e.to_a(u)).concat([g])),c(f)?t.$updated("begin",[f,y]):y},$.$$arity=4)}(k[0],b,k),function(t,$super,r){var $,a=s(t,$super,"ConditionalSendHandler");[a].concat(r);e.defs(a,"$call",$=function(t,r,$,a){var i,s=this,o=n,c=n,_=n,u=n,d=n,p=n,f=n,h=n;return o=null==(i=[].concat(e.to_a(r)))[0]?n:i[0],c=null==i[1]?n:i[1],_=l.call(i,2),u=s.$new_temp(),d=s.$s("lvasgn",u,o),o=s.$s("js_tmp",u),p=s.$s("send",o,"nil?"),f=r.$updated("send",[o,c].concat(e.to_a(_))),h=t.$updated("op_asgn",[f,$,a]),s.$s("begin",d,s.$s("if",p,s.$s("nil"),h))},$.$$arity=4)}(k[0],b,k),e.const_set(k[0],"HANDLERS",d(["lvasgn","ivasgn","casgn","gvasgn","cvasgn","send","csend"],{lvasgn:a(k,"LocalVariableHandler"),ivasgn:a(k,"InstanceVariableHandler"),casgn:a(k,"ConstantHandler"),gvasgn:a(k,"GlobalVariableHandler"),cvasgn:a(k,"ClassVariableHandler"),send:a(k,"SendHandler"),csend:a(k,"ConditionalSendHandler")}).$freeze()),e.def(b,"$on_op_asgn",y=function(t){var r,$,i=this,s=n,o=n,c=n,_=n;return r=[].concat(e.to_a(t)),s=null==r[0]?n:r[0],o=null==r[1]?n:r[1],c=null==r[2]?n:r[2],_=p(a(k,"HANDLERS"),"fetch",[s.$type()],($=function(){return(null==$.$$s?this:$.$$s).$error("cannot handle LHS type: "+s.$type())},$.$$s=i,$.$$arity=0,$)).$call(t,s,o,c),i.$process(_)},y.$$arity=1),e.const_set(k[0],"ASSIGNMENT_STRING_NODE",b.$s("str","assignment")),e.def(b,"$on_defined?",v=function(t){var r,$=v.$$p,i=this,s=n;return $&&(v.$$p=null),s=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],null==r[1]?n:r[1],s.$type()["$=="]("op_asgn")?a(k,"ASSIGNMENT_STRING_NODE"):f(i,h(i,"on_defined?",v,!1,!0),"on_defined?",[t],null)},v.$$arity=1),n&&"on_defined?"}(m[0],a(m,"Base"),m)}(m[0],m)}($[0],$)},Opal.modules["opal/rewriters/hashes/key_duplicates_rewriter"]=function(e){var t=e.top,r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.module,s=e.klass,o=e.send2,c=e.find_super,_=e.truthy;return e.add_stubs(["$require","$new","$include?","$type","$<<","$==","$process_regular_node","$updated","$inspect","$warn"]),t.$require("opal/rewriters/base"),t.$require("set"),function(t,r){var u=[i(t,"Opal")].concat(r);return function(t,r){var u=[i(t,"Rewriters")].concat(r);return function(t,r){var u=[i(t,"Hashes")].concat(r);return function(t,$super,r){var n,i,u,l,d=s(t,$super,"KeyDuplicatesRewriter"),p=[d].concat(r);return d.$$prototype.keys=$,e.def(d,"$initialize",n=function(){return this.keys=a(p,"UniqKeysSet").$new()},n.$$arity=0),e.def(d,"$on_hash",i=function(e){var t,r=i.$$p,n=this,s=$;return r&&(i.$$p=null),function(){try{return t=[n.keys,a(p,"UniqKeysSet").$new()],s=t[0],n.keys=t[1],o(n,c(n,"on_hash",i,!1,!0),"on_hash",[e],null)}finally{n.keys=s}}()},i.$$arity=1),e.def(d,"$on_pair",u=function(t){var r,n=u.$$p,a=this,i=$;return n&&(u.$$p=null),i=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],null==r[1]?$:r[1],_(["str","sym"]["$include?"](i.$type()))&&a.keys["$<<"](i),o(a,c(a,"on_pair",u,!1,!0),"on_pair",[t],null)},u.$$arity=1),e.def(d,"$on_kwsplat",l=function(t){var r,n=this,a=$;return a=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],null==r[1]?$:r[1],a.$type()["$=="]("hash")&&(a=n.$process_regular_node(a)),t.$updated($,[a])},l.$$arity=1),function(t,$super,r){var n,i,o=s(t,null,"UniqKeysSet"),c=[o].concat(r);return o.$$prototype.set=$,e.def(o,"$initialize",n=function(){return this.set=a(c,"Set").$new()},n.$$arity=0),e.def(o,"$<<",i=function(t){var r,n=this,i=$;return _(n.set["$include?"](t))?(r=[].concat(e.to_a(t)),i=null==r[0]?$:r[0],null==r[1]?$:r[1],i=t.$type()["$=="]("str")?i.$inspect():":"+i,a(c,"Kernel").$warn("warning: key "+i+" is duplicated and overwritten")):n.set["$<<"](t)},i.$$arity=1),$&&"<<"}(p[0],0,p)}(u[0],n(n(n("::","Opal"),"Rewriters"),"Base"),u)}(u[0],u)}(u[0],u)}(r[0],r)},Opal.modules["opal/rewriters/dump_args"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.send2,o=e.find_super,c=e.hash2;return e.add_stubs(["$require","$updated"]),t.$require("opal/rewriters/base"),function(t,r){var _=[a(t,"Opal")].concat(r);return function(t,r){var _=[a(t,"Rewriters")].concat(r);return function(t,$super,r){var n,a,_,u=i(t,$super,"DumpArgs");[u].concat(r);return e.def(u,"$on_def",n=function(t){var r,a=n.$$p,i=this,_=$;return a&&(n.$$p=null),t=s(i,o(i,"on_def",n,!1,!0),"on_def",[t],null),null==(r=[].concat(e.to_a(t)))[0]?$:r[0],_=null==r[1]?$:r[1],null==r[2]?$:r[2],t.$updated($,$,c(["meta"],{meta:c(["original_args"],{original_args:_})}))},n.$$arity=1),e.def(u,"$on_defs",a=function(t){var r,n=a.$$p,i=this,_=$;return n&&(a.$$p=null),t=s(i,o(i,"on_defs",a,!1,!0),"on_defs",[t],null),null==(r=[].concat(e.to_a(t)))[0]?$:r[0],null==r[1]?$:r[1],_=null==r[2]?$:r[2],null==r[3]?$:r[3],t.$updated($,$,c(["meta"],{meta:c(["original_args"],{original_args:_})}))},a.$$arity=1),e.def(u,"$on_iter",_=function(t){var r,n=_.$$p,a=this,i=$;return n&&(_.$$p=null),t=s(a,o(a,"on_iter",_,!1,!0),"on_iter",[t],null),i=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],null==r[1]?$:r[1],t.$updated($,$,c(["meta"],{meta:c(["original_args"],{original_args:i})}))},_.$$arity=1),$&&"on_iter"}(_[0],n(_,"Base"),_)}(_[0],_)}(r[0],r)},Opal.modules["opal/rewriters/mlhs_args"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.send2,c=e.find_super,_=e.truthy,u=e.send,l=e.hash2;return e.add_stubs(["$require","$new","$updated","$rewritten","$initialization","$s","$prepend_to_body","$attr_reader","$split!","$+","$each","$children","$==","$type","$new_mlhs_tmp","$process","$<<","$length","$[]","$empty?"]),r.$require("opal/rewriters/base"),function(r,$){var d=[i(r,"Opal")].concat($);return function(r,$){var d=[i(r,"Rewriters")].concat($);return function(r,$super,$){var i,d,p,f=s(r,$super,"MlhsArgs"),h=[f].concat($);return e.def(f,"$on_def",i=function(t){var r,$=i.$$p,s=this,u=n,l=n,d=n,p=n,f=n;return $&&(i.$$p=null),t=o(s,c(s,"on_def",i,!1,!0),"on_def",[t],null),u=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],l=null==r[1]?n:r[1],d=null==r[2]?n:r[2],p=a(h,"Arguments").$new(l),l=l.$updated(n,p.$rewritten()),_(p.$initialization())&&(d=_(f=d)?f:s.$s("nil"),d=s.$prepend_to_body(d,p.$initialization())),t.$updated(n,[u,l,d])},i.$$arity=1),e.def(f,"$on_defs",d=function(t){var r,$=d.$$p,i=this,s=n,u=n,l=n,p=n,f=n,m=n;return $&&(d.$$p=null),t=o(i,c(i,"on_defs",d,!1,!0),"on_defs",[t],null),s=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],u=null==r[1]?n:r[1],l=null==r[2]?n:r[2],p=null==r[3]?n:r[3],f=a(h,"Arguments").$new(l),l=l.$updated(n,f.$rewritten()),_(f.$initialization())&&(p=_(m=p)?m:i.$s("nil"),p=i.$prepend_to_body(p,f.$initialization())),t.$updated(n,[s,u,l,p])},d.$$arity=1),e.def(f,"$on_iter",p=function(t){var r,$=p.$$p,i=this,s=n,u=n,l=n,d=n;return $&&(p.$$p=null),t=o(i,c(i,"on_iter",p,!1,!0),"on_iter",[t],null),s=null==(r=[].concat(e.to_a(t)))[0]?n:r[0],u=null==r[1]?n:r[1], +l=a(h,"Arguments").$new(s),s=s.$updated(n,l.$rewritten()),_(l.$initialization())&&(u=_(d=u)?d:i.$s("nil"),u=i.$prepend_to_body(u,l.$initialization())),t.$updated(n,[s,u])},p.$$arity=1),function(r,$super,$){var i,o,c,d,p=s(r,$super,"Arguments"),f=[p].concat($);p.$$prototype.counter=p.$$prototype.args=p.$$prototype.initialization=n,p.$attr_reader("rewritten","initialization"),e.def(p,"$initialize",i=function(e){var t=this;return t.args=e,t.rewritten=[],t.initialization=[],t.rewriter=a(f,"MlhsRewriter").$new(),t["$split!"]()},i.$$arity=1),e.def(p,"$reset_tmp_counter!",o=function(){return this.counter=0},o.$$arity=0),e.def(p,"$new_mlhs_tmp",c=function(){var e=this,r=n;return e.counter=_(r=e.counter)?r:0,e.counter=t(e.counter,1),"$mlhs_tmp"+e.counter},c.$$arity=0),e.def(p,"$split!",d=function(){var t,r=this;return u(r.args.$children(),"each",[],((t=function(e){var r=null==t.$$s?this:t.$$s,$=n,a=n,i=n;return null==r.rewriter&&(r.rewriter=n),null==r.initialization&&(r.initialization=n),null==r.rewritten&&(r.rewritten=n),null==e&&(e=n),e.$type()["$=="]("mlhs")?($=r.$new_mlhs_tmp(),a=r.$s("lvar",$),i=r.rewriter.$process(e),r.initialization["$<<"](r.$s("masgn",i,a)),r.rewritten["$<<"](r.$s("arg",$).$updated(n,n,l(["meta"],{meta:l(["arg_name"],{arg_name:$})})))):r.rewritten["$<<"](e)}).$$s=r,t.$$arity=1,t)),r.initialization.$length()["$=="](1)?r.initialization=r.initialization["$[]"](0):_(r.initialization["$empty?"]())?r.initialization=n:r.initialization=u(r,"s",["begin"].concat(e.to_a(r.initialization)))},d.$$arity=0)}(h[0],a(h,"Base"),h),function(t,$super,r){var $,a,i=s(t,$super,"MlhsRewriter");[i].concat(r);return e.def(i,"$on_arg",$=function(e){return e.$updated("lvasgn")},$.$$arity=1),e.def(i,"$on_restarg",a=function(e){var t=this,r=n;return r=e.$children()["$[]"](0),_(r)?t.$s("splat",e.$updated("lvasgn")):t.$s("splat")},a.$$arity=1),n&&"on_restarg"}(h[0],a(h,"Base"),h)}(d[0],a(d,"Base"),d)}(d[0],d)}($[0],$)},Opal.modules["opal/rewriters/arguments"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$,e.module),n=e.klass,a=e.send,i=e.truthy;return e.add_stubs(["$attr_reader","$each","$type","$===","$<<","$any?","$raise","$!","$nil?","$has_any_kwargs?","$can_inline_kwargs?","$empty?"]),function(t,s){var o=[$(t,"Opal")].concat(s);return function(t,s){var o=[$(t,"Rewriters")].concat(s);return function(t,$super,$){var s,o,c,_,u=n(t,null,"Arguments");[u].concat($);return u.$$prototype.restarg=u.$$prototype.postargs=u.$$prototype.kwargs=u.$$prototype.kwoptargs=u.$$prototype.kwrestarg=u.$$prototype.optargs=r,u.$attr_reader("args","optargs","restarg","postargs","kwargs","kwoptargs","kwrestarg","kwnilarg","shadowargs","blockarg"),e.def(u,"$initialize",s=function(e){var t,$=this;return $.args=[],$.optargs=[],$.restarg=r,$.postargs=[],$.kwargs=[],$.kwoptargs=[],$.kwrestarg=r,$.kwnilarg=!1,$.shadowargs=[],$.blockarg=r,a(e,"each",[],((t=function(e){var $=null==t.$$s?this:t.$$s,n=r,a=r;return null==$.restarg&&($.restarg=r),null==$.optargs&&($.optargs=r),null==$.postargs&&($.postargs=r),null==$.args&&($.args=r),null==$.kwargs&&($.kwargs=r),null==$.kwoptargs&&($.kwoptargs=r),null==$.shadowargs&&($.shadowargs=r),null==e&&(e=r),n=e.$type(),"arg"["$==="](n)||"mlhs"["$==="](n)?(i(i(a=$.restarg)?a:$.optargs["$any?"]())?$.postargs:$.args)["$<<"](e):"optarg"["$==="](n)?$.optargs["$<<"](e):"restarg"["$==="](n)?$.restarg=e:"kwarg"["$==="](n)?$.kwargs["$<<"](e):"kwoptarg"["$==="](n)?$.kwoptargs["$<<"](e):"kwnilarg"["$==="](n)?$.kwnilarg=!0:"kwrestarg"["$==="](n)?$.kwrestarg=e:"shadowarg"["$==="](n)?$.shadowargs["$<<"](e):"blockarg"["$==="](n)?$.blockarg=e:$.$raise("Unsupported arg type "+e.$type())}).$$s=$,t.$$arity=1,t))},s.$$arity=1),e.def(u,"$has_post_args?",o=function(){var e=this,t=r,$=r,n=r;return i(t=i($=e.restarg["$nil?"]()["$!"]())?$:e.postargs["$any?"]())?t:i(n=e["$has_any_kwargs?"]())?e["$can_inline_kwargs?"]()["$!"]():n},o.$$arity=0),e.def(u,"$has_any_kwargs?",c=function(){var e=this,t=r,$=r;return i(t=i($=e.kwargs["$any?"]())?$:e.kwoptargs["$any?"]())?t:e.kwrestarg["$nil?"]()["$!"]()},c.$$arity=0),e.def(u,"$can_inline_kwargs?",_=function(){var e=this,t=r,$=r;return i(t=i($=e.optargs["$empty?"]())?e.restarg["$nil?"]():$)?e.postargs["$empty?"]():t},_.$$arity=0),r&&"can_inline_kwargs?"}(o[0],0,o)}(o[0],o)}(t[0],t)},Opal.modules["opal/rewriters/inline_args"]=function(e){var t=e.top,r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.module,s=e.klass,o=e.send2,c=e.find_super,_=e.truthy,u=e.hash2,l=e.send;return e.add_stubs(["$require","$s","$new","$updated","$inline","$prepend_to_body","$initialization","$attr_reader","$freeze","$children","$each","$send","$any?","$blockarg","$<<","$shadowargs","$args","$==","$[]","$has_post_args?","$length","$has_any_kwargs?","$can_inline_kwargs?","$kwargs","$kwoptargs","$kwrestarg","$postargs","$optargs","$args_to_keep","$restarg"]),t.$require("opal/rewriters/base"),t.$require("opal/rewriters/arguments"),function(t,r){var d=[i(t,"Opal")].concat(r);return function(t,r){var d=[i(t,"Rewriters")].concat(r);return function(t,$super,r){var i,d,p,f=s(t,$super,"InlineArgs"),h=[f].concat(r);return e.def(f,"$on_def",i=function(t){var r,n=i.$$p,s=this,l=$,d=$,p=$,f=$,m=$,g=$;return n&&(i.$$p=null),t=o(s,c(s,"on_def",i,!1,!0),"on_def",[t],null),l=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],d=null==r[1]?$:r[1],p=null==r[2]?$:r[2],p=_(f=p)?f:s.$s("nil"),m=a(h,"Initializer").$new(d,u(["type"],{type:"def"})),g=d.$updated($,m.$inline()),p=s.$prepend_to_body(p,m.$initialization()),t.$updated($,[l,g,p])},i.$$arity=1),e.def(f,"$on_defs",d=function(t){var r,n=d.$$p,i=this,s=$,l=$,p=$,f=$,m=$,g=$,y=$;return n&&(d.$$p=null),t=o(i,c(i,"on_defs",d,!1,!0),"on_defs",[t],null),s=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],l=null==r[1]?$:r[1],p=null==r[2]?$:r[2],f=null==r[3]?$:r[3],f=_(m=f)?m:i.$s("nil"),g=a(h,"Initializer").$new(p,u(["type"],{type:"defs"})),y=p.$updated($,g.$inline()),f=i.$prepend_to_body(f,g.$initialization()),t.$updated($,[s,l,y,f])},d.$$arity=1),e.def(f,"$on_iter",p=function(t){var r,n=p.$$p,i=this,s=$,l=$,d=$,f=$,m=$;return n&&(p.$$p=null),t=o(i,c(i,"on_iter",p,!1,!0),"on_iter",[t],null),s=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],l=null==r[1]?$:r[1],l=_(d=l)?d:i.$s("nil"),f=a(h,"Initializer").$new(s,u(["type"],{type:"iter"})),m=s.$updated($,f.$inline()),l=i.$prepend_to_body(l,f.$initialization()),t.$updated($,[m,l])},p.$$arity=1),function(t,$super,r){var n,i,o,c,d,p,f,h,m,g,y,v,b,k=s(t,$super,"Initializer"),x=[k].concat(r);return k.$$prototype.initialization=k.$$prototype.args=k.$$prototype.inline=$,k.$attr_reader("inline","initialization"),e.const_set(x[0],"STEPS",["extract_blockarg","initialize_shadowargs","extract_args","prepare_post_args","prepare_kwargs","extract_optargs","extract_restarg","extract_post_args","extract_kwargs","extract_kwoptargs","extract_kwrestarg"].$freeze()),e.def(k,"$initialize",n=function(t,r){var n,i,s=this;if(null==r)r=u([],{});else if(!r.$$is_hash)throw e.ArgumentError.$new("expected kwargs");if(!e.hasOwnProperty.call(r.$$smap,"type"))throw e.ArgumentError.$new("missing keyword: type");return n=r.$$smap.type,s.args=a(x,"Arguments").$new(t.$children()),s.inline=[],s.initialization=[],s.type=n,s.underscore_found=!1,l(a(x,"STEPS"),"each",[],((i=function(e){var t=null==i.$$s?this:i.$$s;return null==e&&(e=$),t.$send(e)}).$$s=s,i.$$arity=1,i)),_(s.initialization["$any?"]())?s.initialization=l(s,"s",["begin"].concat(e.to_a(s.initialization))):s.initialization=$},n.$$arity=2),e.def(k,"$extract_blockarg",i=function(){var e=this,t=$;return _(t=e.args.$blockarg())?e.initialization["$<<"](t.$updated("extract_blockarg")):$},i.$$arity=0),e.def(k,"$initialize_shadowargs",o=function(){var e,t=this;return l(t.args.$shadowargs(),"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==r.initialization&&(r.initialization=$),null==t&&(t=$),r.initialization["$<<"](t.$updated("initialize_shadowarg"))}).$$s=t,e.$$arity=1,e))},o.$$arity=0),e.def(k,"$extract_args",c=function(){var e,t=this;return l(t.args.$args(),"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==r.type&&(r.type=$),null==r.initialization&&(r.initialization=$),null==r.underscore_found&&(r.underscore_found=$),null==r.inline&&(r.inline=$),null==t&&(t=$),r.type["$=="]("iter")&&(r.initialization["$<<"](t.$updated("initialize_iter_arg")),t.$children()["$[]"](0)["$=="]("_")&&(_(r.underscore_found)&&(t=r.$s("fake_arg")),r.underscore_found=!0)),r.inline["$<<"](t)}).$$s=t,e.$$arity=1,e))},c.$$arity=0),e.def(k,"$prepare_post_args",d=function(){var e=this;return _(e.args["$has_post_args?"]())?e.initialization["$<<"](e.$s("prepare_post_args",e.args.$args().$length())):$},d.$$arity=0),e.def(k,"$prepare_kwargs",p=function(){var e=this;return _(e.args["$has_any_kwargs?"]())?(_(e.args["$can_inline_kwargs?"]())?e.inline["$<<"](e.$s("arg","$kwargs")):(e.initialization["$<<"](e.$s("extract_kwargs")),e.inline["$<<"](e.$s("fake_arg"))),e.initialization["$<<"](e.$s("ensure_kwargs_are_kwargs"))):$},p.$$arity=0),e.def(k,"$extract_kwargs",f=function(){var e,t=this;return l(t.args.$kwargs(),"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==r.initialization&&(r.initialization=$),null==t&&(t=$),r.initialization["$<<"](t.$updated("extract_kwarg"))}).$$s=t,e.$$arity=1,e))},f.$$arity=0),e.def(k,"$extract_kwoptargs",h=function(){var e,t=this;return l(t.args.$kwoptargs(),"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==r.initialization&&(r.initialization=$),null==t&&(t=$),r.initialization["$<<"](t.$updated("extract_kwoptarg"))}).$$s=t,e.$$arity=1,e))},h.$$arity=0),e.def(k,"$extract_kwrestarg",m=function(){var e=this,t=$;return _(t=e.args.$kwrestarg())?e.initialization["$<<"](t.$updated("extract_kwrestarg")):$},m.$$arity=0),e.def(k,"$extract_post_args",g=function(){var e,t=this;return l(t.args.$postargs(),"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==r.initialization&&(r.initialization=$),null==r.inline&&(r.inline=$),null==t&&(t=$),r.initialization["$<<"](t.$updated("extract_post_arg")),r.inline["$<<"](r.$s("fake_arg"))}).$$s=t,e.$$arity=1,e))},g.$$arity=0),e.def(k,"$extract_optargs",y=function(){var t,r=this,n=$;return n=r.args["$has_post_args?"](),l(r.args.$optargs(),"each",[],((t=function(r){var a,i=null==t.$$s?this:t.$$s,s=$,o=$;return null==i.initialization&&(i.initialization=$),null==i.inline&&(i.inline=$),null==r&&(r=$),_(n)?(s=null==(a=[].concat(e.to_a(r)))[0]?$:a[0],o=null==a[1]?$:a[1],i.initialization["$<<"](r.$updated("extract_post_optarg",[s,o,i.$args_to_keep()])),i.inline["$<<"](i.$s("fake_arg"))):(i.inline["$<<"](r.$updated("arg")),i.initialization["$<<"](r.$updated("extract_optarg")))}).$$s=r,t.$$arity=1,t))},y.$$arity=0),e.def(k,"$extract_restarg",v=function(){var e=this,t=$,r=$;return _(t=e.args.$restarg())?(r=t.$children()["$[]"](0),e.initialization["$<<"](t.$updated("extract_restarg",[r,e.$args_to_keep()])),e.inline["$<<"](e.$s("fake_arg"))):$},v.$$arity=0),e.def(k,"$args_to_keep",b=function(){return this.args.$postargs().$length()},b.$$arity=0),$&&"args_to_keep"}(h[0],n(n(n("::","Opal"),"Rewriters"),"Base"),h)}(d[0],a(d,"Base"),d)}(d[0],d)}(r[0],r)},Opal.modules["opal/rewriters/numblocks"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.send;return e.add_stubs(["$require","$children","$s","$gen_args","$map"]),t.$require("opal/rewriters/base"),function(t,r){var o=[a(t,"Opal")].concat(r);return function(t,r){var o=[a(t,"Rewriters")].concat(r);return function(t,$super,r){var n,a,o=i(t,$super,"Numblocks");[o].concat(r);return e.def(o,"$on_numblock",n=function(t){var r,n,a=this,i=$,o=$,c=$;return n=t.$children(),i=null==(r=e.to_ary(n))[0]?$:r[0],o=null==r[1]?$:r[1],c=null==r[2]?$:r[2],a.$s("block",i,s(a,"s",["args"].concat(e.to_a(a.$gen_args(o)))),c)},n.$$arity=1),e.def(o,"$gen_args",a=function(t){var r,n=this;return s(e.Range.$new(1,t,!1),"map",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==e&&(e=$),t.$s("arg","_"+e)}).$$s=n,r.$$arity=1,r))},a.$$arity=1),$&&"gen_args"}(o[0],n(o,"Base"),o)}(o[0],o)}(r[0],r)},Opal.modules["opal/rewriters/returnable_logic"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.truthy;return e.add_stubs(["$require","$+","$children","$next_tmp","$updated","$s","$process"]),r.$require("opal/rewriters/base"),function(r,$){var c=[i(r,"Opal")].concat($);return function(r,$){var c=[i(r,"Rewriters")].concat($);return function(r,$super,$){var a,i,c,_,u=s(r,$super,"ReturnableLogic");[u].concat($);return u.$$prototype.counter=n,e.def(u,"$next_tmp",a=function(){var e=this,r=n;return e.counter=o(r=e.counter)?r:0,e.counter=t(e.counter,1),"$ret_or_"+e.counter},a.$$arity=0),e.def(u,"$reset_tmp_counter!",i=function(){return this.counter=n},i.$$arity=0),e.def(u,"$on_or",c=function(t){var r,$=this,a=n,i=n,s=n;return a=null==(r=[].concat(e.to_a(t.$children())))[0]?n:r[0],i=null==r[1]?n:r[1],s=$.$next_tmp(),t.$updated("if",[$.$s("lvasgn",s,$.$process(a)),$.$s("js_tmp",s),$.$process(i)])},c.$$arity=1),e.def(u,"$on_and",_=function(t){var r,$=this,a=n,i=n,s=n;return a=null==(r=[].concat(e.to_a(t.$children())))[0]?n:r[0],i=null==r[1]?n:r[1],s=$.$next_tmp(),t.$updated("if",[$.$s("lvasgn",s,$.$process(a)),$.$process(i),$.$s("js_tmp",s)])},_.$$arity=1),n&&"on_and"}(c[0],a(c,"Base"),c)}(c[0],c)}($[0],$)},Opal.modules["opal/rewriters/forward_args"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy,o=e.range,c=e.send2,_=e.find_super;return e.add_stubs(["$require","$process","$s","$last","$children","$==","$type","$[]","$updated","$!=","$class"]),t.$require("opal/rewriters/base"),function(t,r){var u=[a(t,"Opal")].concat(r);return function(t,r){var u=[a(t,"Rewriters")].concat(r);return function(t,$super,r){var a,u,l,d=i(t,$super,"ForwardArgs"),p=[d].concat(r);return e.def(d,"$on_forward_args",a=function(){var e=this;return e.$process(e.$s("args",e.$s("forward_arg","$")))},a.$$arity=1),e.def(d,"$on_args",u=function(t){var r=u.$$p,n=this,a=$,i=$;return r&&(u.$$p=null),s(s(a=t.$children().$last())?t.$children().$last().$type()["$=="]("forward_arg"):a)?(i=t.$children()["$[]"](o(0,-2,!1)),t.$updated($,[].concat(e.to_a(i)).concat([n.$s("restarg","$fwd_rest"),n.$s("blockarg","$fwd_block")]))):c(n,_(n,"on_args",u,!1,!0),"on_args",[t],r)},u.$$arity=1),e.def(d,"$on_send",l=function(t){var r=l.$$p,a=this,i=$,u=$,d=$;return r&&(l.$$p=null),s(s(i=s(u=t.$children().$last())?t.$children().$last().$class()["$!="](n(p,"Symbol")):u)?t.$children().$last().$type()["$=="]("forwarded_args"):i)?(d=t.$children()["$[]"](o(0,-2,!1)),t.$updated($,[].concat(e.to_a(d)).concat([a.$s("splat",a.$s("lvar","$fwd_rest")),a.$s("block_pass",a.$s("lvar","$fwd_block"))]))):c(a,_(a,"on_send",l,!1,!0),"on_send",[t],r)},l.$$arity=1),$&&"on_send"}(u[0],n(u,"Base"),u)}(u[0],u)}(r[0],r)},Opal.modules["opal/rewriter"]=function(e){var t=e.top,r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.module,s=e.klass,o=e.truthy,c=e.send;return e.add_stubs(["$require","$<<","$list","$delete","$use","$disabled?","$class","$each","$new","$process"]),t.$require("opal/rewriters/opal_engine_check"),t.$require("opal/rewriters/for_rewriter"),t.$require("opal/rewriters/explicit_writer_return"),t.$require("opal/rewriters/js_reserved_words"),t.$require("opal/rewriters/block_to_iter"),t.$require("opal/rewriters/dot_js_syntax"),t.$require("opal/rewriters/pattern_matching"),t.$require("opal/rewriters/logical_operator_assignment"),t.$require("opal/rewriters/binary_operator_assignment"),t.$require("opal/rewriters/hashes/key_duplicates_rewriter"),t.$require("opal/rewriters/dump_args"),t.$require("opal/rewriters/mlhs_args"),t.$require("opal/rewriters/inline_args"),t.$require("opal/rewriters/numblocks"),t.$require("opal/rewriters/returnable_logic"),t.$require("opal/rewriters/forward_args"),function(t,r){var _=[i(t,"Opal")].concat(r);return function(t,$super,r){var i,_,u=s(t,null,"Rewriter"),l=[u].concat(r);return u.$$prototype.sexp=$,function(t,r){var n,a,i,s,c;[t].concat(r);e.def(t,"$list",n=function(){var e=this,t=$;return null==e.list&&(e.list=$),e.list=o(t=e.list)?t:[]},n.$$arity=0),e.def(t,"$use",a=function(e){return this.$list()["$<<"](e)},a.$$arity=1),e.def(t,"$delete",i=function(e){return this.$list().$delete(e)},i.$$arity=1),e.def(t,"$disable",s=function(){var t=s.$$p,r=t||$,n=this;return t&&(s.$$p=null),function(){try{return n.disabled=!0,e.yieldX(r,[])}finally{n.disabled=!1}}()},s.$$arity=0),e.def(t,"$disabled?",c=function(){var e,t=this;return null==t.disabled&&(t.disabled=$),o(null!=(e=t.disabled)&&e!==$?"instance-variable":$)?t.disabled:$},c.$$arity=0)}(e.get_singleton_class(u),l),u.$use(n(a(l,"Rewriters"),"OpalEngineCheck")),u.$use(n(a(l,"Rewriters"),"ForRewriter")),u.$use(n(a(l,"Rewriters"),"Numblocks")),u.$use(n(a(l,"Rewriters"),"ForwardArgs")),u.$use(n(a(l,"Rewriters"),"BlockToIter")),u.$use(n(a(l,"Rewriters"),"DotJsSyntax")),u.$use(n(a(l,"Rewriters"),"PatternMatching")),u.$use(n(a(l,"Rewriters"),"JsReservedWords")),u.$use(n(a(l,"Rewriters"),"LogicalOperatorAssignment")),u.$use(n(a(l,"Rewriters"),"BinaryOperatorAssignment")),u.$use(n(a(l,"Rewriters"),"ExplicitWriterReturn")),u.$use(n(n(a(l,"Rewriters"),"Hashes"),"KeyDuplicatesRewriter")),u.$use(n(a(l,"Rewriters"),"ReturnableLogic")),u.$use(n(a(l,"Rewriters"),"DumpArgs")),u.$use(n(a(l,"Rewriters"),"MlhsArgs")),u.$use(n(a(l,"Rewriters"),"InlineArgs")),e.def(u,"$initialize",i=function(e){return this.sexp=e},i.$$arity=1),e.def(u,"$process",_=function(){var e,t=this;return o(t.$class()["$disabled?"]())?t.sexp:(c(t.$class().$list(),"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s,n=$;return null==r.sexp&&(r.sexp=$),null==t&&(t=$),n=t.$new(),r.sexp=n.$process(r.sexp)}).$$s=t,e.$$arity=1,e)),t.sexp)},_.$$arity=0),$&&"process"}(_[0],0,_)}(r[0],r)},Opal.modules["opal/parser/source_buffer"]=function(e){e.top;var t=[],r=e.nil,$=e.$$$,n=e.$$,a=e.module,i=e.klass,s=e.truthy,o=e.send2,c=e.find_super;return function(t,_){var u=[a(t,"Opal")].concat(_);return function(t,_){var u=[a(t,"Parser")].concat(_);return function(t,$super,a){var _,u=i(t,$super,"SourceBuffer"),l=[u].concat(a);return e.defs(u,"$recognize_encoding",_=function(e){var t=_.$$p,a=this,i=r;return t&&(_.$$p=null),s(i=o(a,c(a,"recognize_encoding",_,!1,!0),"recognize_encoding",[e],t))?i:$(n(l,"Encoding"),"UTF_8")},_.$$arity=1),r&&"recognize_encoding"}(u[0],$($($("::","Parser"),"Source"),"Buffer"),u)}(u[0],u)}(t[0],t)},Opal.modules["opal/parser/default_config"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.module,s=e.send2,o=e.find_super,c=e.send,_=e.lambda;return e.add_stubs(["$attr_accessor","$all_errors_are_fatal=","$diagnostics","$-","$ignore_warnings=","$diagnostics_consumer","$consumer=","$extend","$diagnostics_consumer=","$new","$rewrite","$process","$default_parser","$default_parser_class"]),function(r,u){var l=[i(r,"Opal")].concat(u);return function(r,u){var l=i(r,"Parser"),d=[l].concat(u);return function(r,u){var l,d,p,f,h=i(r,"DefaultConfig"),m=[h].concat(u);(function(r,n){var a,_=i(r,"ClassMethods");[_].concat(n);_.$attr_accessor("diagnostics_consumer"),e.def(_,"$default_parser",a=function(){var r=a.$$p,n=this,i=$,_=$;return r&&(a.$$p=null),i=s(n,o(n,"default_parser",a,!1,!0),"default_parser",[],r),_=[!0],c(i.$diagnostics(),"all_errors_are_fatal=",e.to_a(_)),_[t(_.length,1)],_=[!1],c(i.$diagnostics(),"ignore_warnings=",e.to_a(_)),_[t(_.length,1)],_=[n.$diagnostics_consumer()],c(i.$diagnostics(),"consumer=",e.to_a(_)),_[t(_.length,1)],i},a.$$arity=0)})(m[0],m),e.defs(h,"$included",l=function(r){var n,i=this,s=$;return r.$extend(a(m,"ClassMethods")),s=[_((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=$),$},n.$$s=i,n.$$arity=1,n))],c(r,"diagnostics_consumer=",e.to_a(s)),s[t(s.length,1)]},l.$$arity=1),e.def(h,"$initialize",d=function(){var t=d.$$p,r=this;return t&&(d.$$p=null),e.slice.call(arguments,0,arguments.length),s(r,o(r,"initialize",d,!1,!0),"initialize",[n(n(a(m,"Opal"),"AST"),"Builder").$new()],null)},d.$$arity=-1),e.def(h,"$parse",p=function(e){var t=p.$$p,r=this,n=$;return t&&(p.$$p=null),n=s(r,o(r,"parse",p,!1,!0),"parse",[e],t),r.$rewrite(n)},p.$$arity=1),e.def(h,"$rewrite",f=function(e){return n(a(m,"Opal"),"Rewriter").$new(e).$process()},f.$$arity=1)}(d[0],d),function(t,r){var n;[t].concat(r);return t.$attr_accessor("default_parser_class"),e.def(t,"$default_parser",n=function(){return this.$default_parser_class().$default_parser()},n.$$arity=0),$&&"default_parser"}(e.get_singleton_class(l),d)}(l[0],l)}(r[0],r)},Opal.modules["opal/parser/with_ruby_lexer"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.klass,s=e.send;return e.add_stubs(["$include","$default_parser_class=","$-"]),function(r,$super,o){var c=i(r,$super,"WithRubyLexer"),_=[c].concat(o),u=$;return c.$include(n(n(a(_,"Opal"),"Parser"),"DefaultConfig")),u=[c],s(n(a(_,"Opal"),"Parser"),"default_parser_class=",e.to_a(u)),u[t(u.length,1)]}(n(a(r,"Opal"),"Parser"),n(a(r,"Parser"),"Ruby30"),r)},Opal.modules["opal/parser/patch"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var $=[],n=e.nil,a=e.$$$,i=e.$$,s=e.klass,o=e.truthy,c=e.send,_=e.hash2,u=e.module;return e.add_stubs(["$source","$unpack","$+","$to_a","$lines","$end_with?","$<<","$map","$chomp","$=~","$diagnostic","$nil?","$type","$[]","$respond_to?","$[]=","$-","$send","$value"]),function(t,$super,r){var $,a=s(t,null,"Lexer");[a].concat(r);a.$$prototype.source_buffer=n,e.def(a,"$source_buffer=",$=function(e){var t=this,r=n;return t.source_buffer=e,o(t.source_buffer)?(r=t.source_buffer.$source(),t.source_pts=r.$unpack("U*")):t.source_pts=n},$.$$arity=1)}(i($,"Parser"),0,$),function(r,$super,$){var a,i=s(r,null,"Literal");[i].concat($);i.$$prototype.buffer_s=i.$$prototype.buffer=n,e.udef(i,"$extend_string"),e.def(i,"$extend_string",a=function(e,r,$){var a=this,i=n;return a.buffer_s=o(i=a.buffer_s)?i:r,a.buffer_e=$,a.buffer=t(a.buffer,e)},a.$$arity=3)}(a(i($,"Parser"),"Lexer"),0,$),function(t,$super,r){var $,a=s(t,null,"Buffer");[a].concat(r);a.$$prototype.lines=a.$$prototype.source=n,e.def(a,"$source_lines",$=function(){var e,t=this,r=n,$=n;return t.lines=o(r=t.lines)?r:($=t.source.$lines().$to_a(),o(t.source["$end_with?"]("\n"))&&$["$<<"](""),c($,"map",[],((e=function(t){return null==e.$$s||e.$$s,null==t&&(t=n),t.$chomp("\n")}).$$s=t,e.$$arity=1,e)))},$.$$arity=0)}(a(i($,"Parser"),"Source"),0,$),function(t,$super,r){var $,a=s(t,null,"Default");[a].concat(r);e.def(a,"$check_lvar_name",$=function(e,t){var r=this;return o(e["$=~"](new RegExp("^[\\p{Ll}|_][\\p{L}\\p{Nl}\\p{Nd}_]*$","u")))?n:r.$diagnostic("error","lvar_name",_(["name"],{name:e}),t)},$.$$arity=2)}(a(i($,"Parser"),"Builders"),0,$),function(t,$){var a,i=u(t,"Mixin");[i].concat($);e.udef(i,"$process"),e.def(i,"$process",a=function(t){var $=this,a=n,i=n,s=n,u=n,l=n,d=n,p=n;return null==$._on_handler_cache&&($._on_handler_cache=n),o(t["$nil?"]())?n:($._on_handler_cache=o(a=$._on_handler_cache)?a:_([],{}),i=t.$type(),s=o(u=$._on_handler_cache["$[]"](i))?u:(l=[i,(d="on_"+i,o($["$respond_to?"](d))||(d="handler_missing"),d)],c($._on_handler_cache,"[]=",e.to_a(l)),l[r(l.length,1)]),o(p=$.$send(s,t))?p:t)},a.$$arity=1)}(a(i($,"AST"),"Processor"),$),function(t,$super,r){var $,a=s(t,null,"Default");[a].concat(r);return e.udef(a,"$string_value"),e.def(a,"$string_value",$=function(e){return this.$value(e)},$.$$arity=1),n&&"string_value"}(a(i($,"Parser"),"Builders"),0,$)},Opal.modules["opal/parser"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("opal/ast/builder"),t.$require("opal/rewriter"),t.$require("opal/parser/source_buffer"),t.$require("opal/parser/default_config"),t.$require("opal/parser/with_ruby_lexer"),t.$require("opal/parser/patch")},Opal.modules["opal/fragment"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var $=[],n=e.nil,a=e.$$$,i=e.$$,s=e.module,o=e.klass,c=e.truthy,_=e.send;return e.add_stubs(["$attr_reader","$to_s","$inspect","$type","$===","$[]","$meta","$source_map_name_for","$sexp","$==","$class","$+","$parent","$>","$!","$first","$children","$loc","$respond_to?","$dot","$selector","$operator","$begin","$line","$location","$column"]),function($,u){var l=[s($,"Opal")].concat(u);return function($,$super,s){var u,l,d,p,f,h,m,g,y=o($,null,"Fragment"),v=[y].concat(s);return y.$$prototype.code=y.$$prototype.scope=y.$$prototype.sexp=n,y.$attr_reader("code"),e.def(y,"$initialize",u=function(e,t,r){var $=this;return null==r&&(r=n),$.code=e.$to_s(),$.sexp=r,$.scope=t},u.$$arity=-3),e.def(y,"$inspect",l=function(){return"f("+this.code.$inspect()+")"},l.$$arity=0),e.def(y,"$source_map_name_for",d=function($){var s,o=this,_=n,u=n,l=n,d=n,p=n,f=n,h=n;return function(){if(_=$.$type(),"top"["$==="](_))return _=$.$meta()["$[]"]("kind"),"require"["$==="](_)?"":"eval"["$==="](_)?"(eval)":"main"["$==="](_)?"
":n;if("begin"["$==="](_)||"newline"["$==="](_)||"js_return"["$==="](_))return c(o.scope)?o.$source_map_name_for(o.scope.$sexp()):n;if("iter"["$==="](_)){for(u=o.scope,l=1;c(u)&&u.$class()["$=="](a(i(v,"Nodes"),"IterNode"));)l=t(l,1),u=u.$parent();return c(r(l,1))&&(d=" ("+l+" levels)"),"block"+d+" in "+o.$source_map_name_for(u.$sexp())}return"self"["$==="](_)?"self":"module"["$==="](_)?(s=[].concat(e.to_a($)),p=null==s[0]?n:s[0],""):"class"["$==="](_)?(s=[].concat(e.to_a($)),p=null==s[0]?n:s[0],""):"const"["$==="](_)?(s=[].concat(e.to_a($)),u=null==s[0]?n:s[0],f=null==s[1]?n:s[1],c(c(h=u["$!"]())?h:u.$type()["$=="]("cbase"))?f.$to_s():o.$source_map_name_for(u)+"::"+f):"int"["$==="](_)?$.$children().$first():"def"["$==="](_)?$.$children().$first():"defs"["$==="](_)?$.$children()["$[]"](1):"send"["$==="](_)?$.$children()["$[]"](1):"lvar"["$==="](_)||"lvasgn"["$==="](_)||"lvdeclare"["$==="](_)||"ivar"["$==="](_)||"ivasgn"["$==="](_)||"gvar"["$==="](_)||"cvar"["$==="](_)||"cvasgn"["$==="](_)||"gvars"["$==="](_)||"gvasgn"["$==="](_)||"arg"["$==="](_)?$.$children().$first():"str"["$==="](_)||"xstr"["$==="](_)?o.$source_map_name_for(o.scope.$sexp()):n}()},d.$$arity=1),e.def(y,"$source_map_name",p=function(){var e=this;return c(e.sexp)?e.$source_map_name_for(e.sexp):n},p.$$arity=0),e.def(y,"$location",f=function(){var e=this,t=n,r=n;return c(e.sexp["$!"]())?n:e.sexp.$type()["$=="]("send")?(t=e.sexp.$loc(),c(t["$respond_to?"]("dot"))?c(r=t.$dot())?r:t.$selector():c(t["$respond_to?"]("operator"))?t.$operator():e.sexp):e.sexp.$type()["$=="]("iter")?e.sexp.$loc().$begin():e.sexp},f.$$arity=0),e.def(y,"$line",h=function(){var e;return(e=this.$location())===n||null==e?n:_(e,"line",[])},h.$$arity=0),e.def(y,"$column",m=function(){var e;return(e=this.$location())===n||null==e?n:_(e,"column",[])},m.$$arity=0),e.def(y,"$skip_source_map?",g=function(){return this.sexp["$=="](!1)},g.$$arity=0),n&&"skip_source_map?"}(l[0],0,l)}($[0],$)},Opal.modules["opal/nodes/helpers"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],n=e.nil,a=e.$$$,i=e.$$,s=e.module,o=e.truthy,c=e.send,_=e.hash2;return e.add_stubs(["$require","$valid_name?","$inspect","$=~","$to_s","$+","$indent","$compiler","$to_proc","$parser_indent","$push","$fragment","$current_indent","$js_truthy_optimize","$helper","$expr","$==","$type","$[]","$children","$uses_block!","$scope","$block_name","$handlers","$include?","$truthy_optimize?","$new_temp","$wrap"]),r.$require("opal/regexp_anchors"),function(r,$){var u=[s(r,"Opal")].concat($);return function(r,$){var u=[s(r,"Nodes")].concat($);return function(r,$){var u,l,d,p,f,h,m,g,y,v,b,k=s(r,"Helpers"),x=[k].concat($);return e.def(k,"$property",u=function(e){return o(this["$valid_name?"](e))?"."+e:"["+e.$inspect()+"]"},u.$$arity=1),e.def(k,"$valid_name?",l=function(e){return a(a(i(x,"Opal"),"Rewriters"),"JsReservedWords")["$valid_name?"](e)},l.$$arity=1),e.def(k,"$mid_to_jsid",d=function(e){return o(/\=|\+|\-|\*|\/|\!|\?|<|\>|\&|\||\^|\%|\~|\[|`/["$=~"](e.$to_s()))?"['$"+e+"']":t(".$",e)},d.$$arity=1),e.def(k,"$indent",p=function(){var e=p.$$p,t=e||n,r=this;return e&&(p.$$p=null),e&&(p.$$p=null),c(r.$compiler(),"indent",[],t.$to_proc())},p.$$arity=0),e.def(k,"$current_indent",f=function(){return this.$compiler().$parser_indent()},f.$$arity=0),e.def(k,"$line",h=function(){var t,r=this;return t=e.slice.call(arguments,0,arguments.length),r.$push(r.$fragment("\n"+r.$current_indent(),_(["loc"],{loc:!1}))),c(r,"push",e.to_a(t))},h.$$arity=-1),e.def(k,"$empty_line",m=function(){var e=this;return e.$push(e.$fragment("\n",_(["loc"],{loc:!1})))},m.$$arity=0),e.def(k,"$js_truthy",g=function(e){var t=this,r=n;return o(r=t.$js_truthy_optimize(e))?r:(t.$helper("truthy"),[t.$fragment("$truthy("),t.$expr(e),t.$fragment(")")])},g.$$arity=1),e.def(k,"$js_falsy",y=function(e){var t=this;return e.$type()["$=="]("send")&&e.$children()["$[]"](1)["$=="]("block_given?")?(t.$scope()["$uses_block!"](),t.$scope().$block_name()+" === nil"):(t.$helper("falsy"),[t.$fragment("$falsy("),t.$expr(e),t.$fragment(")")])},y.$$arity=1),e.def(k,"$js_truthy_optimize",v=function(e){var t=this,r=n,$=n,s=n,c=n,_=n,u=n,l=n,d=n,p=n;return e.$type()["$=="]("send")?(r=e.$children()["$[]"](1),$=o(s=c=e.$children()["$[]"](0))?t.$compiler().$handlers()["$[]"](c.$type()):s,_=o(u=o(l=a(i(x,"Compiler"),"COMPARE")["$include?"](r.$to_s()))?$:l)?$["$truthy_optimize?"]():u,o(o(d=o(p=_)?p:r["$=="]("block_given?"))?d:r["$=="]("=="))?t.$expr(e):n):n},v.$$arity=1),e.def(k,"$conditional_send",b=function(t){var r=b.$$p,$=r||n,a=this,i=n;return r&&(b.$$p=null),i=a.$scope().$new_temp(),a.$push(i+" = ",t),a.$push(", ("+i+" === nil || "+i+" == null) ? nil : "),e.yield1($,i),a.$wrap("(",")")},b.$$arity=1),n&&"conditional_send"}(u[0],u)}(u[0],u)}($[0],$)},Opal.modules["opal/nodes/base"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var $=e.top,n=[],a=e.nil,i=e.$$$,s=e.$$,o=e.module,c=e.klass,_=e.truthy,u=e.hash2,l=e.send;return e.add_stubs(["$require","$include","$each","$[]=","$handlers","$-","$each_with_index","$define_method","$[]","$children","$attr_reader","$type","$compile","$raise","$is_a?","$fragment","$<<","$reverse_each","$unshift","$push","$new","$scope","$error","$top_scope","$loc","$==","$process","$expr","$add_scope_local","$to_sym","$add_scope_ivar","$add_scope_gvar","$add_scope_temp","$helper","$with_temp","$to_proc","$in_while?","$instance_variable_get","$has_rescue_else?","$in_ensure","$in_ensure?","$in_resbody","$in_resbody?","$in_rescue","$!","$class_scope?","$sclass?","$+","$parent","$class_variable_owner_nesting_level","$comments","$compiler","$name","$source_buffer","$expression","$start_with?","$end_with?","$line"]),$.$require("opal/nodes/helpers"),function($,n){var d=[o($,"Opal")].concat(n);return function($,n){var d=[o($,"Nodes")].concat(n);return function($,$super,n){var o,d,p,f,h,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U,H,Y,X,V,W,K,Q,J,Z,ee=c($,null,"Base"),te=[ee].concat(n);return ee.$$prototype.sexp=ee.$$prototype.fragments=ee.$$prototype.compiler=ee.$$prototype.level=a,ee.$include(s(te,"Helpers")),e.defs(ee,"$handlers",o=function(){var e=this,t=a;return null==e.handlers&&(e.handlers=a),e.handlers=_(t=e.handlers)?t:u([],{})},o.$$arity=0),e.defs(ee,"$handle",d=function(){var r,$,n=this;return r=e.slice.call(arguments,0,arguments.length),l(r,"each",[],(($=function(r){var n=null==$.$$s?this:$.$$s,i=a;return null==r&&(r=a),i=[r,n],l(s(te,"Base").$handlers(),"[]=",e.to_a(i)),i[t(i.length,1)]}).$$s=n,$.$$arity=1,$))},d.$$arity=-1),e.defs(ee,"$children",p=function(){var t,r,$=this;return t=e.slice.call(arguments,0,arguments.length),l(t,"each_with_index",[],((r=function(e,t){var $,n=null==r.$$s?this:r.$$s;return null==e&&(e=a),null==t&&(t=a),l(n,"define_method",[e],(($=function(){var e=null==$.$$s?this:$.$$s;return null==e.sexp&&(e.sexp=a),e.sexp.$children()["$[]"](t)}).$$s=n,$.$$arity=0,$))}).$$s=$,r.$$arity=2,r))},p.$$arity=-1),e.defs(ee,"$truthy_optimize?",f=function(){return!1},f.$$arity=0),ee.$attr_reader("compiler","type","sexp"),e.def(ee,"$initialize",h=function(e,t,r){var $=this;return $.sexp=e,$.type=e.$type(),$.level=t,$.compiler=r},h.$$arity=3),e.def(ee,"$children",m=function(){return this.sexp.$children()},m.$$arity=0),e.def(ee,"$compile_to_fragments",g=function(){var e,t=this +;return _(null!=(e=t.fragments)&&e!==a?"instance-variable":a)?t.fragments:(t.fragments=[],t.$compile(),t.fragments)},g.$$arity=0),e.def(ee,"$compile",y=function(){return this.$raise("Not Implemented")},y.$$arity=0),e.def(ee,"$push",v=function(){var t,r,$=this;return t=e.slice.call(arguments,0,arguments.length),l(t,"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==t.fragments&&(t.fragments=a),null==e&&(e=a),_(e["$is_a?"](s(te,"String")))&&(e=t.$fragment(e)),t.fragments["$<<"](e)}).$$s=$,r.$$arity=1,r))},v.$$arity=-1),e.def(ee,"$unshift",b=function(){var t,r,$=this;return t=e.slice.call(arguments,0,arguments.length),l(t,"reverse_each",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==t.fragments&&(t.fragments=a),null==e&&(e=a),_(e["$is_a?"](s(te,"String")))&&(e=t.$fragment(e)),t.fragments.$unshift(e)}).$$s=$,r.$$arity=1,r))},b.$$arity=-1),e.def(ee,"$wrap",k=function(e,t){var r=this;return r.$unshift(e),r.$push(t)},k.$$arity=2),e.def(ee,"$fragment",x=function(t,r){var $,n=this,o=a;if(null==r)r=u([],{});else if(!r.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==($=r.$$smap.loc)&&($=!0),i(s(te,"Opal"),"Fragment").$new(t,n.$scope(),_(o=$)?n.sexp:o)},x.$$arity=-2),e.def(ee,"$error",w=function(e){return this.compiler.$error(e)},w.$$arity=1),e.def(ee,"$scope",E=function(){return this.compiler.$scope()},E.$$arity=0),e.def(ee,"$top_scope",R=function(){return this.$scope().$top_scope()},R.$$arity=0),e.def(ee,"$s",z=function(t){var r,$=this;return r=e.slice.call(arguments,1,arguments.length),i(i(i("::","Opal"),"AST"),"Node").$new(t,r,u(["location"],{location:$.sexp.$loc()}))},z.$$arity=-2),e.def(ee,"$expr?",A=function(){return this.level["$=="]("expr")},A.$$arity=0),e.def(ee,"$recv?",N=function(){return this.level["$=="]("recv")},N.$$arity=0),e.def(ee,"$stmt?",S=function(){return this.level["$=="]("stmt")},S.$$arity=0),e.def(ee,"$process",O=function(e,t){return null==t&&(t="expr"),this.compiler.$process(e,t)},O.$$arity=-2),e.def(ee,"$expr",T=function(e){return this.compiler.$process(e,"expr")},T.$$arity=1),e.def(ee,"$recv",I=function(e){return this.compiler.$process(e,"recv")},I.$$arity=1),e.def(ee,"$stmt",C=function(e){return this.compiler.$process(e,"stmt")},C.$$arity=1),e.def(ee,"$expr_or_nil",q=function(e){var t=this;return _(e)?t.$expr(e):"nil"},q.$$arity=1),e.def(ee,"$add_local",P=function(e){return this.$scope().$add_scope_local(e.$to_sym())},P.$$arity=1),e.def(ee,"$add_ivar",B=function(e){return this.$scope().$add_scope_ivar(e)},B.$$arity=1),e.def(ee,"$add_gvar",D=function(e){return this.$scope().$add_scope_gvar(e)},D.$$arity=1),e.def(ee,"$add_temp",L=function(e){return this.$scope().$add_scope_temp(e)},L.$$arity=1),e.def(ee,"$helper",G=function(e){return this.compiler.$helper(e)},G.$$arity=1),e.def(ee,"$with_temp",M=function(){var e=M.$$p,t=e||a,r=this;return e&&(M.$$p=null),e&&(M.$$p=null),l(r.compiler,"with_temp",[],t.$to_proc())},M.$$arity=0),e.def(ee,"$in_while?",j=function(){return this.compiler["$in_while?"]()},j.$$arity=0),e.def(ee,"$while_loop",F=function(){return this.compiler.$instance_variable_get("@while_loop")},F.$$arity=0),e.def(ee,"$has_rescue_else?",U=function(){return this.$scope()["$has_rescue_else?"]()},U.$$arity=0),e.def(ee,"$in_ensure",H=function(){var e=H.$$p,t=e||a,r=this;return e&&(H.$$p=null),e&&(H.$$p=null),l(r.$scope(),"in_ensure",[],t.$to_proc())},H.$$arity=0),e.def(ee,"$in_ensure?",Y=function(){return this.$scope()["$in_ensure?"]()},Y.$$arity=0),e.def(ee,"$in_resbody",X=function(){var e=X.$$p,t=e||a,r=this;return e&&(X.$$p=null),e&&(X.$$p=null),l(r.$scope(),"in_resbody",[],t.$to_proc())},X.$$arity=0),e.def(ee,"$in_resbody?",V=function(){return this.$scope()["$in_resbody?"]()},V.$$arity=0),e.def(ee,"$in_rescue",W=function(e){var t=W.$$p,r=t||a,$=this;return t&&(W.$$p=null),t&&(W.$$p=null),l($.$scope(),"in_rescue",[e],r.$to_proc())},W.$$arity=1),e.def(ee,"$class_variable_owner_nesting_level",K=function(){var e=a,t=a,$=a;for(e=this.$scope(),t=0;_(_($=e)?e["$class_scope?"]()["$!"]():$);)_(e["$sclass?"]())&&(t=r(t,1)),e=e.$parent();return t},K.$$arity=0),e.def(ee,"$class_variable_owner",Q=function(){var e=this;return _(e.$scope())?"$nesting["+e.$class_variable_owner_nesting_level()+"]":"Opal.Object"},Q.$$arity=0),e.def(ee,"$comments",J=function(){var e=this;return e.$compiler().$comments()["$[]"](e.sexp.$loc())},J.$$arity=0),e.def(ee,"$source_location",Z=function(){var e=this,t=a;return t=e.sexp.$loc().$expression().$source_buffer().$name(),_(t["$start_with?"]("corelib/"))&&(t=""),_(t["$end_with?"](".js"))&&(t=""),"['"+t+"', "+e.sexp.$loc().$line()+"]"},Z.$$arity=0),a&&"source_location"}(d[0],0,d)}(d[0],d)}(n[0],n)},Opal.modules["opal/nodes/literal"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var a=e.top,i=[],s=e.nil,o=e.$$$,c=e.$$,_=e.module,u=e.klass,l=e.truthy,d=e.hash2,p=e.send,f=e.lambda,h=e.send2,m=e.find_super,g=e.slice;return e.add_stubs(["$require","$handle","$push","$to_s","$type","$children","$value","$recv?","$wrap","$freeze","$join","$keys","$gsub","$even?","$length","$last_match","$+","$chop","$[]","$inspect","$to_i","$to_utf16","$translate_escape_chars","$valid_encoding?","$helper","$upcase","$<=","$call","$-","$>>","$&","$attr_accessor","$extract_flags_and_value","$select!","$flags","$=~","$warning","$compiler","$==","$compile_static_regexp","$compile_dynamic_regexp","$each_with_index","$zero?","$expr","$any?","$===","$new","$map","$to_proc","$flags=","$empty?","$s","$single_line?","$value=","$include?","$is_a?","$updated","$delete","$source","$expression","$loc","$private","$>","$!=","$!","$regexp","$each","$compile_inline?","$compile_inline","$compile_range_initialize","$start","$finish","$raise","$expr_or_nil","$numerator","$denominator","$real","$imag"]),a.$require("opal/nodes/base"),function(a,i){var y=[_(a,"Opal")].concat(i);return function(a,i){var y=[_(a,"Nodes")].concat(i);return function(t,$super,r){var $,n,a=u(t,$super,"ValueNode");[a].concat(r);a.$handle("true","false","self","nil"),e.def(a,"$compile",$=function(){var e=this;return e.$push(e.$type().$to_s())},$.$$arity=0),e.defs(a,"$truthy_optimize?",n=function(){return!0},n.$$arity=0)}(y[0],c(y,"Base"),y),function(t,$super,r){var $,n,a=u(t,$super,"NumericNode");[a].concat(r);a.$handle("int","float"),a.$children("value"),e.def(a,"$compile",$=function(){var e=this;return e.$push(e.$value().$to_s()),l(e["$recv?"]())?e.$wrap("(",")"):s},$.$$arity=0),e.defs(a,"$truthy_optimize?",n=function(){return!0},n.$$arity=0)}(y[0],c(y,"Base"),y),function(n,$super,a){var i,o,_,h=u(n,$super,"StringNode"),m=[h].concat(a);h.$handle("str"),h.$children("value"),e.const_set(m[0],"ESCAPE_CHARS",d(["a","e"],{a:"\\u0007",e:"\\u001b"}).$freeze()),e.const_set(m[0],"ESCAPE_REGEX",e.regexp(["(\\\\+)([",c(m,"ESCAPE_CHARS").$keys().$join(""),"])"]).$freeze()),e.def(h,"$translate_escape_chars",i=function(e){var r,$=this;return p(e,"gsub",[c(m,"ESCAPE_REGEX")],((r=function(e){null==r.$$s||r.$$s;return null==e&&(e=s),l(c(m,"Regexp").$last_match(1).$length()["$even?"]())?e:t(c(m,"Regexp").$last_match(1).$chop(),c(m,"ESCAPE_CHARS")["$[]"](c(m,"Regexp").$last_match(2)))}).$$s=$,r.$$arity=1,r))},i.$$arity=1),e.def(h,"$compile",o=function(){var e,t=this,r=s,$=s;return r=t.$value(),$=p(r.$inspect(),"gsub",[/\\u\{([0-9a-f]+)\}/],((e=function(){var t=null==e.$$s?this:e.$$s,r=s;return r=c(m,"Regexp").$last_match(1).$to_i(16),t.$to_utf16(r)}).$$s=t,e.$$arity=0,e)),t.$push(t.$translate_escape_chars($)),l(t.$value()["$valid_encoding?"]())?s:(t.$helper("binary"),t.$wrap("$binary(",")"))},o.$$arity=0),e.def(h,"$to_utf16",_=function(e){var n,a=this,i=s,o=s,c=s,_=s;return i=1023,o=f(((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=s),t("\\u",e.$to_s(16).$upcase())}).$$s=a,n.$$arity=1,n)),l(r(e,65535))?o.$call(e):(c=t(55296,(e=$(e,65536))["$>>"](10)),_=t(56320,e["$&"](i)),t(o.$call(c),o.$call(_)))},_.$$arity=1)}(y[0],c(y,"Base"),y),function(t,$super,r){var $,n=u(t,$super,"SymbolNode");[n].concat(r);n.$handle("sym"),n.$children("value"),e.def(n,"$compile",$=function(){var e=this;return e.$push(e.$value().$to_s().$inspect())},$.$$arity=0)}(y[0],c(y,"Base"),y),function(t,$super,r){var a,i,_,d,f,y,v,b=u(t,$super,"RegexpNode"),k=[b].concat(r);b.$$prototype.sexp=s,b.$handle("regexp"),b.$attr_accessor("value","flags"),e.const_set(k[0],"SUPPORTED_FLAGS",/[gimuy]/.$freeze()),e.def(b,"$initialize",a=function(){var t,r=a.$$p,$=this;return r&&(a.$$p=null),t=e.slice.call(arguments,0,arguments.length),h($,m($,"initialize",a,!1,!0),"initialize",e.to_a(t),r),$.$extract_flags_and_value()},a.$$arity=-1),e.def(b,"$compile",i=function(){var e,t=this;return p(t.$flags(),"select!",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=s),!!l(c(k,"SUPPORTED_FLAGS")["$=~"](t))||(r.$compiler().$warning("Skipping the '"+t+"' Regexp flag as it's not widely supported by JavaScript vendors."),!1)}).$$s=t,e.$$arity=1,e)),t.$value().$type()["$=="]("str")?t.$compile_static_regexp():t.$compile_dynamic_regexp()},i.$$arity=0),e.def(b,"$compile_dynamic_regexp",_=function(){var e,t=this;return t.$push("Opal.regexp(["),p(t.$value().$children(),"each_with_index",[],((e=function(t,r){var $=null==e.$$s?this:e.$$s;return null==t&&(t=s),null==r&&(r=s),l(r["$zero?"]())||$.$push(", "),$.$push($.$expr(t))}).$$s=t,e.$$arity=2,e)),t.$push("]"),l(t.$flags()["$any?"]())&&t.$push(", '"+t.$flags().$join()+"'"),t.$push(")")},_.$$arity=0),e.def(b,"$compile_static_regexp",d=function(){var e=this,t=s,r=s;return t=e.$value().$children()["$[]"](0),r=t,""["$==="](r)?e.$push("/(?:)/"):e.$push(""+c(k,"Regexp").$new(t).$inspect()+e.$flags().$join())},d.$$arity=0),e.def(b,"$extract_flags_and_value",f=function(){var t,r,n,a=this,i=s,c=s,_=s,u=s;return r=(r=(t=[].concat(e.to_a(a.$children()))).length-1)<0?0:r,i=g.call(t,0,r),c=null==t[r]?s:t[r],_=[p(c.$children(),"map",[],"to_s".$to_proc())],p(a,"flags=",e.to_a(_)),_[$(_.length,1)],_=[l(i["$empty?"]())?a.$s("str",""):l(a["$single_line?"](i))?i["$[]"](0):p(a,"s",["dstr"].concat(e.to_a(i)))],p(a,"value=",e.to_a(_)),_[$(_.length,1)],l(a.$flags()["$include?"]("x"))&&(u=p(a.$value().$children(),"map",[],((n=function(e){var t=null==n.$$s?this:n.$$s,r=s,$=s;return null==e&&(e=s),l(l(r=e["$is_a?"](o(o(o("::","Opal"),"AST"),"Node")))?e.$type()["$=="]("str"):r)?($=e.$children()["$[]"](0).$gsub(/^\s*\#.*/,"").$gsub(/\s/,""),t.$s("str",$)):e}).$$s=a,n.$$arity=1,n)),_=[a.$value().$updated(s,u)],p(a,"value=",e.to_a(_)),_[$(_.length,1)],a.$flags().$delete("x")),a.$value().$type()["$=="]("str")?(_=[a.$s("str",a.$value().$children()["$[]"](0).$gsub("\\A","^").$gsub("\\z","$"))],p(a,"value=",e.to_a(_)),_[$(_.length,1)]):s},f.$$arity=0),e.def(b,"$raw_value",y=function(){var t=this,r=s;return r=[t.sexp.$loc().$expression().$source()],p(t,"value=",e.to_a(r)),r[$(r.length,1)]},y.$$arity=0),b.$private(),e.def(b,"$single_line?",v=function(e){var t=s,r=s;return!l(n(e.$length(),1))&&(t=e["$[]"](0),l(r=t.$type()["$!="]("str"))?r:t.$children()["$[]"](0)["$include?"]("\n")["$!"]())},v.$$arity=1)}(y[0],c(y,"Base"),y),function(t,$super,r){var $,n=u(t,$super,"MatchCurrentLineNode");[n].concat(r);n.$handle("match_current_line"),n.$children("regexp"),e.def(n,"$compile",$=function(){var e=this,t=s,r=s;return t=e.$s("gvar","$_"),r=e.$s("send",t,"=~",e.$regexp()),e.$push(e.$expr(r))},$.$$arity=0)}(y[0],c(y,"Base"),y),function(t,$super,r){var $,n=u(t,$super,"DynamicStringNode");[n].concat(r);n.$handle("dstr"),e.def(n,"$compile",$=function(){var e,t=this;return t.$push('""'),p(t.$children(),"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=s),r.$push(" + "),t.$type()["$=="]("str")?r.$push(r.$expr(t)):r.$push("(",r.$expr(t),")"),l(r["$recv?"]())?r.$wrap("(",")"):s}).$$s=t,e.$$arity=1,e))},$.$$arity=0)}(y[0],c(y,"Base"),y),function(e,$super,t){var r=u(e,$super,"DynamicSymbolNode");[r].concat(t);r.$handle("dsym")}(y[0],c(y,"DynamicStringNode"),y),function(t,$super,r){var $,n,a,i,o=u(t,$super,"RangeNode"),_=[o].concat(r);o.$children("start","finish"),e.const_set(_[0],"SIMPLE_CHILDREN_TYPES",["int","float","str","sym"].$freeze()),e.def(o,"$compile",$=function(){var e=this;return l(e["$compile_inline?"]())?(e.$helper("range"),e.$compile_inline()):e.$compile_range_initialize()},$.$$arity=0),e.def(o,"$compile_inline?",n=function(){var e=this,t=s,r=s,$=s,n=s,a=s;return l(t=l(r=e.$start()["$!"]())?r:l($=e.$start().$type())?c(_,"SIMPLE_CHILDREN_TYPES")["$include?"](e.$start().$type()):$)?l(n=e.$finish()["$!"]())?n:l(a=e.$finish().$type())?c(_,"SIMPLE_CHILDREN_TYPES")["$include?"](e.$finish().$type()):a:t},n.$$arity=0),e.def(o,"$compile_inline",a=function(){return this.$raise(c(_,"NotImplementedError"))},a.$$arity=0),e.def(o,"$compile_range_initialize",i=function(){return this.$raise(c(_,"NotImplementedError"))},i.$$arity=0)}(y[0],c(y,"Base"),y),function(t,$super,r){var $,n,a=u(t,$super,"InclusiveRangeNode");[a].concat(r);a.$handle("irange"),e.def(a,"$compile_inline",$=function(){var e=this;return e.$push("$range(",e.$expr_or_nil(e.$start()),", ",e.$expr_or_nil(e.$finish()),", false)")},$.$$arity=0),e.def(a,"$compile_range_initialize",n=function(){var e=this;return e.$push("Opal.Range.$new(",e.$expr_or_nil(e.$start()),", ",e.$expr_or_nil(e.$finish()),", false)")},n.$$arity=0)}(y[0],c(y,"RangeNode"),y),function(t,$super,r){var $,n,a=u(t,$super,"ExclusiveRangeNode");[a].concat(r);a.$handle("erange"),e.def(a,"$compile_inline",$=function(){var e=this;return e.$push("$range(",e.$expr_or_nil(e.$start()),", ",e.$expr_or_nil(e.$finish()),", true)")},$.$$arity=0),e.def(a,"$compile_range_initialize",n=function(){var e=this;return e.$push("Opal.Range.$new(",e.$expr_or_nil(e.$start()),",",e.$expr_or_nil(e.$finish()),", true)")},n.$$arity=0)}(y[0],c(y,"RangeNode"),y),function(t,$super,r){var $,n=u(t,$super,"RationalNode");[n].concat(r);n.$handle("rational"),n.$children("value"),e.def(n,"$compile",$=function(){var e=this;return e.$push("Opal.Rational.$new("+e.$value().$numerator()+", "+e.$value().$denominator()+")")},$.$$arity=0)}(y[0],c(y,"Base"),y),function(t,$super,r){var $,n=u(t,$super,"ComplexNode");[n].concat(r);return n.$handle("complex"),n.$children("value"),e.def(n,"$compile",$=function(){var e=this;return e.$push("Opal.Complex.$new("+e.$value().$real()+", "+e.$value().$imag()+")")},$.$$arity=0),s&&"compile"}(y[0],c(y,"Base"),y)}(y[0],y)}(i[0],i)},Opal.modules["opal/nodes/variables"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy,o=e.send,c=e.range,_=e.send2,u=e.find_super;return e.add_stubs(["$require","$handle","$children","$irb?","$compiler","$top?","$scope","$using_irb?","$push","$to_s","$var_name","$with_temp","$property","$wrap","$add_local","$expr","$value","$recv?","$expr?","$[]","$name","$add_ivar","$helper","$add_gvar","$===","$handle_global_match","$handle_post_match","$handle_pre_match","$raise","$index","$stmt?","$class_variable_owner","$inspect"]),t.$require("opal/nodes/base"),function(t,r){var l=[a(t,"Opal")].concat(r);return function(t,r){var l=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a,c=i(t,$super,"LocalVariableNode");[c].concat(r);c.$handle("lvar"),c.$children("var_name"),e.def(c,"$using_irb?",n=function(){var e=this,t=$;return s(t=e.$compiler()["$irb?"]())?e.$scope()["$top?"]():t},n.$$arity=0),e.def(c,"$compile",a=function(){var e,t=this;return s(t["$using_irb?"]())?o(t,"with_temp",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=$),r.$push(r.$property(r.$var_name().$to_s())),r.$wrap("(("+t+" = Opal.irb_vars",") == null ? nil : "+t+")")}).$$s=t,e.$$arity=1,e)):t.$push(t.$var_name().$to_s())},a.$$arity=0)}(l[0],n(l,"Base"),l),function(t,$super,r){var n,a,o=i(t,$super,"LocalAssignNode");[o].concat(r);o.$handle("lvasgn"),o.$children("var_name","value"),e.def(o,"$using_irb?",n=function(){var e=this,t=$;return s(t=e.$compiler()["$irb?"]())?e.$scope()["$top?"]():t},n.$$arity=0),e.def(o,"$compile",a=function(){var e=this,t=$,r=$;return s(e["$using_irb?"]())?e.$push("Opal.irb_vars"+e.$property(e.$var_name().$to_s())+" = "):(e.$add_local(e.$var_name().$to_s()),e.$push(e.$var_name()+" = ")),e.$push(e.$expr(e.$value())),s(s(t=s(r=e["$recv?"]())?r:e["$expr?"]())?e.$value():t)?e.$wrap("(",")"):$},a.$$arity=0)}(l[0],n(l,"Base"),l),function(t,$super,r){var n,a=i(t,$super,"LocalDeclareNode");[a].concat(r);a.$handle("lvdeclare"),a.$children("var_name"),e.def(a,"$compile",n=function(){var e=this;return e.$add_local(e.$var_name().$to_s()),$},n.$$arity=0)}(l[0],n(l,"Base"),l),function(t,$super,r){var n,a,s=i(t,$super,"InstanceVariableNode");[s].concat(r);s.$handle("ivar"),s.$children("name"),e.def(s,"$var_name",n=function(){return this.$name().$to_s()["$[]"](c(1,-1,!1))},n.$$arity=0),e.def(s,"$compile",a=function(){var e=this,t=$;return t=e.$property(e.$var_name()),e.$add_ivar(t),e.$push("self"+t)},a.$$arity=0)}(l[0],n(l,"Base"),l),function(t,$super,r){var n,a,o=i(t,$super,"InstanceAssignNode");[o].concat(r);o.$handle("ivasgn"),o.$children("name","value"),e.def(o,"$var_name",n=function(){return this.$name().$to_s()["$[]"](c(1,-1,!1))},n.$$arity=0),e.def(o,"$compile",a=function(){var e=this,t=$,r=$,n=$;return t=e.$property(e.$var_name()),e.$push("self"+t+" = "),e.$push(e.$expr(e.$value())),s(s(r=s(n=e["$recv?"]())?n:e["$expr?"]())?e.$value():r)?e.$wrap("(",")"):$},a.$$arity=0)}(l[0],n(l,"Base"),l),function(t,$super,r){var n,a,s=i(t,$super,"GlobalVariableNode");[s].concat(r);s.$handle("gvar"),s.$children("name"),e.def(s,"$var_name",n=function(){return this.$name().$to_s()["$[]"](c(1,-1,!1))},n.$$arity=0),e.def(s,"$compile",a=function(){var e=this,t=$;return e.$helper("gvars"),t=e.$property(e.$var_name()),e.$add_gvar(t),e.$push("$gvars"+t)},a.$$arity=0)}(l[0],n(l,"Base"),l),function(t,$super,r){var a,s,c,l,d=i(t,$super,"BackRefNode"),p=[d].concat(r);d.$handle("back_ref"),e.def(d,"$compile",a=function(){var e=a.$$p,t=this,r=$;return e&&(a.$$p=null),t.$helper("gvars"),r=t.$var_name(),"&"["$==="](r)?t.$handle_global_match():"'"["$==="](r)?t.$handle_post_match():"`"["$==="](r)?t.$handle_pre_match():"+"["$==="](r)?_(t,u(t,"compile",a,!1,!0),"compile",[],e):t.$raise(n(p,"NotImplementedError"))},a.$$arity=0),e.def(d,"$handle_global_match",s=function(){var e,t=this;return o(t,"with_temp",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=$),r.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+"['$[]'](0))")}).$$s=t,e.$$arity=1,e))},s.$$arity=0),e.def(d,"$handle_pre_match",c=function(){var e,t=this;return o(t,"with_temp",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=$),r.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+".$pre_match())")}).$$s=t,e.$$arity=1,e))},c.$$arity=0),e.def(d,"$handle_post_match",l=function(){var e,t=this;return o(t,"with_temp",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=$),r.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+".$post_match())")}).$$s=t,e.$$arity=1,e))},l.$$arity=0)}(l[0],n(l,"GlobalVariableNode"),l),function(t,$super,r){var n,a,o=i(t,$super,"GlobalAssignNode");[o].concat(r);o.$handle("gvasgn"),o.$children("name","value"),e.def(o,"$var_name",n=function(){return this.$name().$to_s()["$[]"](c(1,-1,!1))},n.$$arity=0),e.def(o,"$compile",a=function(){var e=this,t=$,r=$,n=$;return e.$helper("gvars"),t=e.$property(e.$var_name()),e.$push("$gvars"+t+" = "),e.$push(e.$expr(e.$value())),s(s(r=s(n=e["$recv?"]())?n:e["$expr?"]())?e.$value():r)?e.$wrap("(",")"):$},a.$$arity=0)}(l[0],n(l,"Base"),l),function(t,$super,r){var n,a=i(t,$super,"NthrefNode");[a].concat(r);a.$handle("nth_ref"),a.$children("index"),e.def(a,"$compile",n=function(){var e,t=this;return t.$helper("gvars"),o(t,"with_temp",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=$),r.$push("(("+t+" = $gvars['~']) === nil ? nil : "+t+"['$[]']("+r.$index()+"))")}).$$s=t,e.$$arity=1,e))},n.$$arity=0)}(l[0],n(l,"Base"),l),function(t,$super,r){var n,a=i(t,$super,"ClassVariableNode");[a].concat(r);a.$handle("cvar"),a.$children("name"),e.def(a,"$compile",n=function(){var e=this,t=$;return e.$helper("class_variable_get"),t=!1,s(e["$stmt?"]())&&(t=!0),e.$push("$class_variable_get("+e.$class_variable_owner()+", '"+e.$name()+"', "+t.$inspect()+")")},n.$$arity=0)}(l[0],n(l,"Base"),l),function(t,$super,r){var n,a=i(t,$super,"ClassVarAssignNode");[a].concat(r);return a.$handle("cvasgn"),a.$children("name","value"),e.def(a,"$compile",n=function(){var e=this;return e.$helper("class_variable_set"),e.$push("$class_variable_set("+e.$class_variable_owner()+", '"+e.$name()+"', ",e.$expr(e.$value()),")")},n.$$arity=0),$&&"compile"}(l[0],n(l,"Base"),l)}(l[0],l)}(r[0],r)},Opal.modules["opal/nodes/constants"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy;return e.add_stubs(["$require","$handle","$children","$magical_data_const?","$push","$const_scope","$recv","$name","$eval?","$compiler","$nil?","$==","$eof_content","$base","$expr","$value"]),t.$require("opal/nodes/base"),function(t,r){var o=[a(t,"Opal")].concat(r);return function(t,r){var o=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a,o=i(t,$super,"ConstNode");[o].concat(r);o.$handle("const"),o.$children("const_scope","name"),e.def(o,"$compile",n=function(){var e=this;return s(e["$magical_data_const?"]())?e.$push("$__END__"):s(e.$const_scope())?e.$push("$$$(",e.$recv(e.$const_scope()),", '"+e.$name()+"')"):(s(e.$compiler()["$eval?"]()),e.$push("$$($nesting, '"+e.$name()+"')"))},n.$$arity=0),e.def(o,"$magical_data_const?",a=function(){var e=this,t=$,r=$;return s(t=s(r=e.$const_scope()["$nil?"]())?e.$name()["$=="]("DATA"):r)?e.$compiler().$eof_content():t},a.$$arity=0)}(o[0],n(o,"Base"),o),function(t,$super,r){var $,n=i(t,$super,"CbaseNode");[n].concat(r);n.$handle("cbase"),e.def(n,"$compile",$=function(){return this.$push("'::'")},$.$$arity=0)}(o[0],n(o,"Base"),o),function(t,$super,r){var n,a=i(t,$super,"ConstAssignNode");[a].concat(r);return a.$handle("casgn"),a.$children("base","name","value"),e.def(a,"$compile",n=function(){var e=this;return s(e.$base())?e.$push("Opal.const_set(",e.$expr(e.$base()),", '"+e.$name()+"', ",e.$expr(e.$value()),")"):e.$push("Opal.const_set($nesting[0], '"+e.$name()+"', ",e.$expr(e.$value()),")")},n.$$arity=0),$&&"compile"}(o[0],n(o,"Base"),o)}(o[0],o)}(r[0],r)},Opal.modules["corelib/comparable"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e","$<","$===","$raise","$class","$<=>","$equal?"]),function($,c){function _($){return e.is_a($,e.Integer)?$:t($,0)?1:r($,0)?-1:0}function u(e,t){var r;k=t,r=n["$==="](k)||(!0)["$==="](k)||(!1)["$==="](k)||a(b,"Integer")["$==="](k)||a(b,"Float")["$==="](k)?t.$inspect():t.$$class,v.$raise(a(b,"ArgumentError"),"comparison of "+e.$class()+" with "+r+" failed")}function l(e,t){var r=e["$<=>"](t);return i(r)&&u(e,t),_(r)}var d,p,f,h,m,g,y,v=s($,"Comparable"),b=[v].concat(c),k=n;return e.def(v,"$==",d=function(t){var r=this,$=n;return!!o(r["$equal?"](t))||r["$<=>"]!=e.Kernel["$<=>"]&&(r.$$comparable?(delete r.$$comparable,!1):!!o($=r["$<=>"](t))&&0==_($))},d.$$arity=1),e.def(v,"$>",p=function(e){return l(this,e)>0},p.$$arity=1),e.def(v,"$>=",f=function(e){return l(this,e)>=0},f.$$arity=1),e.def(v,"$<",h=function(e){return l(this,e)<0},h.$$arity=1),e.def(v,"$<=",m=function(e){return l(this,e)<=0},m.$$arity=1),e.def(v,"$between?",g=function(e,$){var n=this;return!r(n,e)&&!t(n,$)},g.$$arity=2),e.def(v,"$clamp",y=function(t,r){var $,i,s=this;if(null==r&&(r=n),r===n&&(e.is_a(t,e.Range)||s.$raise(a(b,"TypeError"),"wrong argument type "+t.$class()+" (expected Range)"),i=t.excl,r=t.end,t=t.begin,r!==n&&i&&s.$raise(a(b,"ArgumentError"),"cannot clamp with an exclusive range")),t!==n&&r!==n&&l(t,r)>0&&s.$raise(a(b,"ArgumentError"),"min argument must be smaller than max argument"),t!==n){if(0==($=l(s,t)))return s;if($<0)return t}return r!==n&&($=l(s,r))>0?r:s},y.$$arity=-2),n&&"clamp"}($[0],$)},Opal.modules.pathname=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],n=e.nil,a=e.$$$,i=e.$$,s=e.klass,o=e.truthy,c=e.send,_=e.alias,u=e.module;return e.add_stubs(["$require","$include","$quote","$===","$to_s","$path","$respond_to?","$to_path","$is_a?","$nil?","$raise","$class","$==","$new","$pwd","$attr_reader","$!","$relative?","$chop_basename","$basename","$=~","$source","$[]","$rindex","$sub","$absolute?","$expand_path","$plus","$unshift","$length","$!=","$empty?","$first","$shift","$+","$join","$dirname","$pop","$reverse_each","$directory?","$extname","$<=>","$nonzero?","$proc","$casecmp","$cleanpath","$inspect","$include?","$fill","$map","$entries"]),r.$require("corelib/comparable"),function(r,$super,$){var u,l,d,p,f,h,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B=s(r,null,"Pathname"),D=[B].concat($);B.$$prototype.path=n,B.$include(i(D,"Comparable")),e.const_set(D[0],"SEPARATOR_PAT",e.regexp([i(D,"Regexp").$quote(a(i(D,"File"),"SEPARATOR"))])),e.def(B,"$initialize",u=function(e){var t=this;return o(i(D,"Pathname")["$==="](e))?t.path=e.$path().$to_s():o(e["$respond_to?"]("to_path"))?t.path=e.$to_path():o(e["$is_a?"](i(D,"String")))?t.path=e:o(e["$nil?"]())?t.$raise(i(D,"TypeError"),"no implicit conversion of nil into String"):t.$raise(i(D,"TypeError"),"no implicit conversion of "+e.$class()+" into String"),t.path["$=="]("\0")?t.$raise(i(D,"ArgumentError")):n},u.$$arity=1),e.defs(B,"$pwd",l=function(){return this.$new(i(D,"Dir").$pwd())},l.$$arity=0),B.$attr_reader("path"),e.def(B,"$==",d=function(e){var t=this;return e.$path()["$=="](t.path)},d.$$arity=1),e.def(B,"$absolute?",p=function(){return this["$relative?"]()["$!"]()},p.$$arity=0),e.def(B,"$relative?",f=function(){var t,r,$=this,a=n,i=n;for(a=$.path;o(i=$.$chop_basename(a));)r=i,a=null==(t=e.to_ary(r))[0]?n:t[0];return a["$=="]("")},f.$$arity=0),e.def(B,"$chop_basename",h=function(e){var t=n;return t=i(D,"File").$basename(e),o(i(D,"Regexp").$new("^"+a(i(D,"Pathname"),"SEPARATOR_PAT").$source()+"?$")["$=~"](t))?n:[e["$[]"](0,e.$rindex(t)),t]},h.$$arity=1),e.def(B,"$root?",m=function(){return this.path["$=="]("/")},m.$$arity=0),e.def(B,"$parent",g=function(){var e=this,t=n;return(t=e.path.$sub(/\/([^\/]+\/?$)/,""))["$=="]("")&&(t=o(e["$absolute?"]())?"/":"."),i(D,"Pathname").$new(t)},g.$$arity=0),e.def(B,"$sub",y=function(){var t,r=this;return t=e.slice.call(arguments,0,arguments.length),i(D,"Pathname").$new(c(r.path,"sub",e.to_a(t)))},y.$$arity=-1),e.def(B,"$cleanpath",v=function(){var t=this;return e.normalize(t.path)},v.$$arity=0),e.def(B,"$to_path",b=function(){return this.path},b.$$arity=0),e.def(B,"$hash",k=function(){return this.path},k.$$arity=0),e.def(B,"$expand_path",x=function(){var e=this;return i(D,"Pathname").$new(i(D,"File").$expand_path(e.path))},x.$$arity=0),e.def(B,"$+",w=function(e){var t=this;return o(i(D,"Pathname")["$==="](e))||(e=i(D,"Pathname").$new(e)),i(D,"Pathname").$new(t.$plus(t.path,e.$to_s()))},w.$$arity=1),e.def(B,"$plus",E=function(r,$){var a,s,c=this,_=n,u=n,l=n,d=n,p=n,f=n,h=n,m=n,g=n,y=n,v=n,b=n,k=n,x=n;for(_=$,u=[],l=[];o(d=c.$chop_basename(_));)s=d,_=null==(a=e.to_ary(s))[0]?n:a[0],p=null==a[1]?n:a[1],u.$unshift(_.$length()),l.$unshift(p);if(o(_["$!="]("")))return $;for(f=r;o(!0);){for(;o(o(h=l["$empty?"]()["$!"]())?l.$first()["$=="]("."):h);)u.$shift(),l.$shift();if(!o(m=c.$chop_basename(f)))break;if(s=m,a=e.to_ary(s),f=null==a[0]?n:a[0],!(g=null==a[1]?n:a[1])["$=="](".")){if(o(o(y=o(v=g["$=="](".."))?v:l["$empty?"]())?y:l.$first()["$!="](".."))){f=t(f,g);break}u.$shift(),l.$shift()}}if(m=c.$chop_basename(f),o(o(b=m["$!"]())?e.regexp([i(D,"SEPARATOR_PAT")])["$=~"](i(D,"File").$basename(f)):b))for(;o(o(k=l["$empty?"]()["$!"]())?l.$first()["$=="](".."):k);)u.$shift(),l.$shift();return o(l["$empty?"]()["$!"]())?(x=$["$[]"](e.Range.$new(u.$first(),-1,!1)),o(m)?i(D,"File").$join(f,x):t(f,x)):o(m)?f:i(D,"File").$dirname(f)},E.$$arity=2),e.def(B,"$join",R=function(){try{var r,$,a,s=this,_=n;return r=e.slice.call(arguments,0,arguments.length),o(($=r)["$empty?"]())?s:(_=$.$pop(),o(i(D,"Pathname")["$==="](_))||(_=i(D,"Pathname").$new(_)),o(_["$absolute?"]())?_:(c($,"reverse_each",[],((a=function(r){null==a.$$s||a.$$s;if(null==r&&(r=n),o(i(D,"Pathname")["$==="](r))||(r=i(D,"Pathname").$new(r)),_=t(r,_),!o(_["$absolute?"]()))return n;e.ret(_)}).$$s=s,a.$$arity=1,a)),t(s,_)))}catch(u){if(u===e.returner)return u.$v;throw u}},R.$$arity=-1),e.def(B,"$split",z=function(){var e=this;return[e.$dirname(),e.$basename()]},z.$$arity=0),e.def(B,"$dirname",A=function(){var e=this;return i(D,"Pathname").$new(i(D,"File").$dirname(e.path))},A.$$arity=0),e.def(B,"$basename",N=function(){var e=this;return i(D,"Pathname").$new(i(D,"File").$basename(e.path))},N.$$arity=0),e.def(B,"$directory?",S=function(){var e=this;return i(D,"File")["$directory?"](e.path)},S.$$arity=0),e.def(B,"$extname",O=function(){var e=this;return i(D,"File").$extname(e.path)},O.$$arity=0),e.def(B,"$<=>",T=function(e){return this.$path()["$<=>"](e.$path())},T.$$arity=1),_(B,"eql?","=="),_(B,"===","=="),_(B,"to_str","to_path"),_(B,"to_s","to_path"),e.const_set(D[0],"SAME_PATHS",o(a(i(D,"File"),"FNM_SYSCASE")["$nonzero?"]())?c(B,"proc",[],((I=function(e,t){return null==I.$$s||I.$$s,null==e&&(e=n),null==t&&(t=n),e.$casecmp(t)["$=="](0)}).$$s=B,I.$$arity=2,I)):c(B,"proc",[],((C=function(e,t){return null==C.$$s||C.$$s,null==e&&(e=n),null==t&&(t=n),e["$=="](t)}).$$s=B,C.$$arity=2,C))),e.def(B,"$relative_path_from",q=function(r){var $,a,s=this,_=n,u=n,l=n,d=n,p=n,f=n,h=n,m=n,g=n,y=n;for(_=s.$cleanpath().$to_s(),r=r.$cleanpath().$to_s(),u=_,l=[];o(d=s.$chop_basename(u));)a=d,u=null==($=e.to_ary(a))[0]?n:$[0],p=null==$[1]?n:$[1],o(p["$!="]("."))&&l.$unshift(p);for(f=r,h=[];o(d=s.$chop_basename(f));)a=d,f=null==($=e.to_ary(a))[0]?n:$[0],p=null==$[1]?n:$[1],o(p["$!="]("."))&&h.$unshift(p);for(o(i(D,"SAME_PATHS")["$[]"](u,f))||s.$raise(i(D,"ArgumentError"),"different prefix: "+u.$inspect()+" and "+r.$inspect());o(o(m=o(g=l["$empty?"]()["$!"]())?h["$empty?"]()["$!"]():g)?i(D,"SAME_PATHS")["$[]"](l.$first(),h.$first()):m);)l.$shift(),h.$shift();return o(h["$include?"](".."))&&s.$raise(i(D,"ArgumentError"),"base_directory has ..: "+r.$inspect()),h.$fill(".."),y=t(h,l),o(y["$empty?"]())?i(D,"Pathname").$new("."):i(D,"Pathname").$new(c(i(D,"File"),"join",e.to_a(y)))},q.$$arity=1),e.def(B,"$entries",P=function(){var e,t=this;return c(i(D,"Dir").$entries(t.path),"map",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=n),r.$class().$new(t)}).$$s=t,e.$$arity=1,e))},P.$$arity=0)}($[0],0,$),function(t,r){var $,a=u(t,"Kernel"),s=[a].concat(r);return e.def(a,"$Pathname",$=function(e){return i(s,"Pathname").$new(e)},$.$$arity=1),n&&"Pathname"}($[0],$)},Opal.modules["opal/rewriters/break_finder"]=function(e){var t=e.top,r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.module,s=e.klass,o=e.alias;return e.add_stubs(["$require"]),t.$require("opal/rewriter"),function(t,r){var c=[i(t,"Opal")].concat(r);return function(t,r){var c=[i(t,"Rewriters")].concat(r);return function(t,$super,r){var n,a,i,c,_=s(t,$super,"BreakFinder");[_].concat(r);return _.$$prototype.found_break=$,e.def(_,"$initialize",n=function(){return this.found_break=!1},n.$$arity=0),e.def(_,"$found_break?",a=function(){return this.found_break},a.$$arity=0),e.def(_,"$on_break",i=function(e){return this.found_break=!0,e},i.$$arity=1),e.def(_,"$stop_lookup",c=function(){return $},c.$$arity=1),o(_,"on_for","stop_lookup"),o(_,"on_while","stop_lookup"),o(_,"on_while_post","stop_lookup"),o(_,"on_until","stop_lookup"),o(_,"on_until_post","stop_lookup"),o(_,"on_block","stop_lookup")}(c[0],n(n(a(c,"Opal"),"Rewriters"),"Base"),c)}(c[0],c)}(r[0],r)},Opal.modules["opal/nodes/call"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var $=e.top,n=[],a=e.nil,i=e.$$$,s=e.$$,o=e.module,c=e.klass,_=e.hash2,u=e.send,l=e.send2,d=e.find_super,p=e.slice,f=e.truthy,h=e.range +;return e.add_stubs(["$require","$handle","$attr_reader","$freeze","$[]=","$-","$define_method","$to_proc","$include?","$type","$s","$handle_special","$record_method?","$<<","$method_calls","$compiler","$to_sym","$meth","$using_eval?","$compile_eval_var","$using_irb?","$compile_irb_var","$default_compile","$private","$iter","$new","$process","$found_break?","$splat?","$!","$empty?","$collect_refinements_temps","$scope","$auto_await?","$push","$await_encountered=","$invoke_using_refinement?","$compile_using_refined_send","$invoke_using_send?","$compile_using_send","$compile_simple_call_chain","$compile_break_catcher","$helper","$compile_receiver","$compile_method_name","$compile_arguments","$compile_block_pass","$compile_refinements","$recv","$receiver_sexp","$expr","$arglist","$children","$map","$iter_has_break?","$unshift","$line","$method_jsid","$any?","$==","$recvr","$mid_to_jsid","$to_s","$with_temp","$intern","$irb?","$top?","$variable_like?","$eval?","$scope_variables","$nil?","$updated","$async_await","$!=","$match?","$method","$arity","$[]","$each","$add_special","$inline_operators?","$operator_helpers","$fragment","$call","$resolve","$requires","$file","$dirname","$cleanpath","$join","$Pathname","$inspect","$length","$warning","$autoloads","$required_trees","$force_encoding","$encoding","$+","$handle_block_given_call","$def?","$mid","$module_name","$accepts_using?","$count","$using_refinement","$first","$refinements_temp","$arity_check?","$defines_lambda","$push_nesting?","$new_temp","$scope_locals","$source_location","$size","$last","$dynamic_require_severity","$handle_part","$===","$is_a?","$expand_path","$split","$error","$each_with_object","$pop"]),$.$require("set"),$.$require("pathname"),$.$require("opal/nodes/base"),$.$require("opal/rewriters/break_finder"),function($,n){var m=[o($,"Opal")].concat(n);return function($,n){var m=[o($,"Nodes")].concat(n);return function($,$super,n){var o,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U,H,Y,X,V,W,K,Q,J,Z,ee,te,re,$e,ne,ae,ie,se,oe,ce,_e=c($,$super,"CallNode"),ue=[_e].concat(n);return _e.$$prototype.sexp=_e.$$prototype.compiler=a,_e.$handle("send"),_e.$attr_reader("recvr","meth","arglist","iter"),e.const_set(ue[0],"SPECIALS",_([],{})),e.const_set(ue[0],"OPERATORS",_(["+","-","*","/","<","<=",">",">="],{"+":"plus","-":"minus","*":"times","/":"divide","<":"lt","<=":"le",">":"gt",">=":"ge"}).$freeze()),e.defs(_e,"$add_special",o=function(r,$){var n=o.$$p,i=n||a,c=this,l=a;return n&&(o.$$p=null),n&&(o.$$p=null),null==$&&($=_([],{})),l=[r,$],u(s(ue,"SPECIALS"),"[]=",e.to_a(l)),l[t(l.length,1)],u(c,"define_method",["handle_"+r],i.$to_proc())},o.$$arity=-2),e.def(_e,"$initialize",m=function(){var t,r,$,n=m.$$p,i=this,s=a,o=a,c=a,_=a;return n&&(m.$$p=null),t=e.slice.call(arguments,0,arguments.length),l(i,d(i,"initialize",m,!1,!0),"initialize",e.to_a(t),n),r=[].concat(e.to_a(i.sexp)),i.recvr=null==r[0]?a:r[0],i.meth=null==r[1]?a:r[1],s=p.call(r,2),$=($=(r=[].concat(e.to_a(s))).length-1)<0?0:$,o=p.call(r,0,$),c=null==r[$]?a:r[$],f(f(_=c)?["iter","block_pass"]["$include?"](c.$type()):_)?(i.iter=c,s=o):i.iter=a,i.arglist=u(i,"s",["arglist"].concat(e.to_a(s)))},m.$$arity=-1),e.def(_e,"$compile",g=function(){try{var t,r=this;return u(r,"handle_special",[],((t=function(){var r=null==t.$$s?this:t.$$s;return f(r["$record_method?"]())&&r.$compiler().$method_calls()["$<<"](r.$meth().$to_sym()),f(r["$using_eval?"]())&&e.ret(r.$compile_eval_var()),f(r["$using_irb?"]())&&e.ret(r.$compile_irb_var()),r.$default_compile()}).$$s=r,t.$$arity=0,t))}catch($){if($===e.returner)return $.$v;throw $}},g.$$arity=0),_e.$private(),e.def(_e,"$iter_has_break?",y=function(){var e=this,t=a;return!!f(e.$iter())&&((t=i(i(s(ue,"Opal"),"Rewriters"),"BreakFinder").$new()).$process(e.$iter()),t["$found_break?"]())},y.$$arity=0),e.def(_e,"$invoke_using_send?",v=function(){var e=this,t=a;return f(t=e.$iter())?t:e["$splat?"]()},v.$$arity=0),e.def(_e,"$invoke_using_refinement?",b=function(){return this.$scope().$scope().$collect_refinements_temps()["$empty?"]()["$!"]()},b.$$arity=0),e.def(_e,"$default_compile",k=function(){var r=this,$=a;return f(r["$auto_await?"]())&&(r.$push("await "),$=[!0],u(r.$scope(),"await_encountered=",e.to_a($)),$[t($.length,1)]),f(r["$invoke_using_refinement?"]())?r.$compile_using_refined_send():f(r["$invoke_using_send?"]())?r.$compile_using_send():r.$compile_simple_call_chain(),r.$compile_break_catcher()},k.$$arity=0),e.def(_e,"$compile_using_send",x=function(){var e=this;return e.$helper("send"),e.$push("$send("),e.$compile_receiver(),e.$compile_method_name(),e.$compile_arguments(),e.$compile_block_pass(),e.$push(")")},x.$$arity=0),e.def(_e,"$compile_using_refined_send",w=function(){var e=this;return e.$helper("refined_send"),e.$push("$refined_send("),e.$compile_refinements(),e.$compile_receiver(),e.$compile_method_name(),e.$compile_arguments(),e.$compile_block_pass(),e.$push(")")},w.$$arity=0),e.def(_e,"$compile_receiver",E=function(){var e=this;return e.$push(e.$recv(e.$receiver_sexp()))},E.$$arity=0),e.def(_e,"$compile_method_name",R=function(){var e=this;return e.$push(", '"+e.$meth()+"'")},R.$$arity=0),e.def(_e,"$compile_arguments",z=function(){var e=this;return e.$push(", "),f(e["$splat?"]())?e.$push(e.$expr(e.$arglist())):f(e.$arglist().$children()["$empty?"]())?e.$push("[]"):e.$push("[",e.$expr(e.$arglist()),"]")},z.$$arity=0),e.def(_e,"$compile_block_pass",A=function(){var e=this;return f(e.$iter())?e.$push(", ",e.$expr(e.$iter())):a},A.$$arity=0),e.def(_e,"$compile_refinements",N=function(){var t,r=this,$=a;return $=u(r.$scope().$collect_refinements_temps(),"map",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==e&&(e=a),r.$s("js_tmp",e)}).$$s=r,t.$$arity=1,t)),r.$push(r.$expr(u(r,"s",["array"].concat(e.to_a($)))),", ")},N.$$arity=0),e.def(_e,"$compile_break_catcher",S=function(){var e=this;return f(e["$iter_has_break?"]())?(e.$unshift("return "),e.$unshift("(function(){var $brk = Opal.new_brk(); try {"),e.$line("} catch (err) { if (err === $brk) { return err.$v } else { throw err } }})()")):a},S.$$arity=0),e.def(_e,"$compile_simple_call_chain",O=function(){var e=this;return e.$push(e.$recv(e.$receiver_sexp()),e.$method_jsid(),"(",e.$expr(e.$arglist()),")")},O.$$arity=0),e.def(_e,"$splat?",T=function(){var e,t=this;return u(t.$arglist().$children(),"any?",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=a),t.$type()["$=="]("splat")}).$$s=t,e.$$arity=1,e))},T.$$arity=0),e.def(_e,"$receiver_sexp",I=function(){var e=this,t=a;return f(t=e.$recvr())?t:e.$s("self")},I.$$arity=0),e.def(_e,"$method_jsid",C=function(){var e=this;return e.$mid_to_jsid(e.$meth().$to_s())},C.$$arity=0),e.def(_e,"$record_method?",q=function(){return!0},q.$$arity=0),e.def(_e,"$compile_irb_var",P=function(){var e,t=this;return u(t,"with_temp",[],((e=function(t){var r=null==e.$$s?this:e.$$s,$=a,n=a;return null==t&&(t=a),$=r.$meth(),n=r.$s("send",r.$s("self"),r.$meth().$intern(),r.$s("arglist")),r.$push("(("+t+" = Opal.irb_vars."+$+") == null ? ",r.$expr(n)," : "+t+")")}).$$s=t,e.$$arity=1,e))},P.$$arity=0),e.def(_e,"$compile_eval_var",B=function(){var e=this;return e.$push(e.$meth().$to_s())},B.$$arity=0),e.def(_e,"$using_irb?",D=function(){var e=this,t=a,r=a;return f(t=f(r=e.compiler["$irb?"]())?e.$scope()["$top?"]():r)?e["$variable_like?"]():t},D.$$arity=0),e.def(_e,"$using_eval?",L=function(){var e=this,t=a,r=a;return f(t=f(r=e.compiler["$eval?"]())?e.$scope()["$top?"]():r)?e.compiler.$scope_variables()["$include?"](e.$meth()):t},L.$$arity=0),e.def(_e,"$variable_like?",G=function(){var e=this,t=a,r=a;return f(t=f(r=e.$arglist()["$=="](e.$s("arglist")))?e.$recvr()["$nil?"]():r)?e.$iter()["$nil?"]():t},G.$$arity=0),e.def(_e,"$sexp_with_arglist",M=function(){var e=this;return e.sexp.$updated(a,[e.$recvr(),e.$meth(),e.$arglist()])},M.$$arity=0),e.def(_e,"$auto_await?",j=function(){var e=this,t=a,r=a,$=a;return t=e.$compiler().$async_await(),f(r=f($=t)?t["$!="](!0):$)?t["$match?"](e.$meth().$to_s()):r},j.$$arity=0),e.def(_e,"$handle_special",F=function(){var t=F.$$p,r=t||a,$=this,n=a;return t&&(F.$$p=null),t&&(F.$$p=null),f(s(ue,"SPECIALS")["$include?"]($.$meth()))?(n=$.$method("handle_"+$.$meth())).$arity()["$=="](1)?n["$[]"](r):n["$[]"]():e.yieldX(r,[])},F.$$arity=0),u(s(ue,"OPERATORS"),"each",[],((U=function(e,t){var r,$=null==U.$$s?this:U.$$s;return null==e&&(e=a),null==t&&(t=a),u($,"add_special",[e.$to_sym()],((r=function($){var n,i=null==r.$$s?this:r.$$s,s=a,o=a;return null==$&&($=a),f(i.$compiler()["$inline_operators?"]())?(f(i["$record_method?"]())&&i.$compiler().$method_calls()["$<<"](e.$to_sym()),i.$compiler().$operator_helpers()["$<<"](e.$to_sym()),s=(n=[i.$expr(i.$recvr()),i.$expr(i.$arglist())])[0],o=n[1],i.$push(i.$fragment("$rb_"+t+"(")),i.$push(s),i.$push(i.$fragment(", ")),i.$push(o),i.$push(i.$fragment(")"))):$.$call()}).$$s=$,r.$$arity=1,r))}).$$s=_e,U.$$arity=2,U)),u(_e,"add_special",["require"],((H=function(e){var t=null==H.$$s?this:H.$$s,r=a;return null==e&&(e=a),r=s(ue,"DependencyResolver").$new(t.$compiler(),t.$arglist().$children()["$[]"](0)).$resolve(),f(r["$nil?"]())||t.$compiler().$requires()["$<<"](r),e.$call()}).$$s=_e,H.$$arity=1,H)),u(_e,"add_special",["require_relative"],((Y=function(){var e=null==Y.$$s?this:Y.$$s,t=a,r=a,$=a;return t=e.$arglist().$children()["$[]"](0),r=e.$compiler().$file(),t.$type()["$=="]("str")&&($=s(ue,"File").$dirname(r),e.$compiler().$requires()["$<<"](e.$Pathname($).$join(t.$children()["$[]"](0)).$cleanpath().$to_s())),e.$push(e.$fragment("self.$require("+r.$inspect()+"+ '/../' + ")),e.$push(e.$process(e.$arglist())),e.$push(e.$fragment(")"))}).$$s=_e,Y.$$arity=0,Y)),u(_e,"add_special",["autoload"],((X=function(e){var t=null==X.$$s?this:X.$$s,r=a,$=a,n=a;return null==e&&(e=a),r=t.$arglist().$children(),f(f($=r.$length()["$=="](2))?r["$[]"](0).$type()["$=="]("sym"):$)&&(n=s(ue,"DependencyResolver").$new(t.$compiler(),r["$[]"](1),"ignore").$resolve(),f(n["$nil?"]())?t.$compiler().$warning("File for autoload of constant '"+r["$[]"](0).$children()["$[]"](0)+"' could not be bundled!"):(t.$compiler().$requires()["$<<"](n),t.$compiler().$autoloads()["$<<"](n))),e.$call()}).$$s=_e,X.$$arity=1,X)),u(_e,"add_special",["require_tree"],((V=function(t){var $,n=null==V.$$s?this:V.$$s,i=a,o=a,c=a,_=a,u=a;return null==t&&(t=a),i=null==($=[].concat(e.to_a(n.$arglist().$children())))[0]?a:$[0],o=p.call($,1),i.$type()["$=="]("str")&&(c=i.$children()["$[]"](0),n.$compiler().$required_trees()["$<<"](c),_=s(ue,"File").$dirname(n.$compiler().$file()),(u=n.$Pathname(_).$join(c).$cleanpath().$to_s()).$force_encoding(c.$encoding()),i=i.$updated(a,[u])),n.arglist=n.$arglist().$updated(a,r([i],o)),t.$call()}).$$s=_e,V.$$arity=1,V)),u(_e,"add_special",["block_given?"],((W=function(){var e=null==W.$$s?this:W.$$s;return null==e.sexp&&(e.sexp=a),e.$push(e.$compiler().$handle_block_given_call(e.sexp))}).$$s=_e,W.$$arity=0,W)),u(_e,"add_special",["__callee__"],((K=function(){var e=null==K.$$s?this:K.$$s;return f(e.$scope()["$def?"]())?e.$push(e.$fragment(e.$scope().$mid().$to_s().$inspect())):e.$push(e.$fragment("nil"))}).$$s=_e,K.$$arity=0,K)),u(_e,"add_special",["__method__"],((Q=function(){var e=null==Q.$$s?this:Q.$$s;return f(e.$scope()["$def?"]())?e.$push(e.$fragment(e.$scope().$mid().$to_s().$inspect())):e.$push(e.$fragment("nil"))}).$$s=_e,Q.$$arity=0,Q)),u(_e,"add_special",["__dir__"],((J=function(){var e=null==J.$$s?this:J.$$s;return e.$push(s(ue,"File").$dirname(i(s(ue,"Opal"),"Compiler").$module_name(e.$compiler().$file())).$inspect())}).$$s=_e,J.$$arity=0,J)),u(_e,"add_special",["using"],((Z=function(e){var t=null==Z.$$s?this:Z.$$s,r=a;return null==e&&(e=a),f(f(r=t.$scope()["$accepts_using?"]())?t.$arglist().$children().$count()["$=="](1):r)?t.$using_refinement(t.$arglist().$children().$first()):e.$call()}).$$s=_e,Z.$$arity=1,Z)),e.def(_e,"$using_refinement",ee=function(t){var r,$=this,n=a,i=a;return n=null==(r=[].concat(e.to_a($.$scope().$refinements_temp())))[0]?a:r[0],i=null==r[1]?a:r[1],f(n)?$.$push("("+i+" = "+n+".slice(), "+i+".push(",$.$expr(t),"), self)"):$.$push("("+i+" = [",$.$expr(t),"], self)")},ee.$$arity=1),u(_e,"add_special",["debugger"],((te=function(){var e=null==te.$$s?this:te.$$s;return e.$push(e.$fragment("debugger"))}).$$s=_e,te.$$arity=0,te)),u(_e,"add_special",["__OPAL_COMPILER_CONFIG__"],((re=function(){var e=null==re.$$s?this:re.$$s;return e.$push(e.$fragment("Opal.hash({ arity_check: "+e.$compiler()["$arity_check?"]()+" })"))}).$$s=_e,re.$$arity=0,re)),u(_e,"add_special",["lambda"],(($e=function(e){var t,r=null==$e.$$s?this:$e.$$s;return null==e&&(e=a),u(r.$scope(),"defines_lambda",[],((t=function(){null==t.$$s||t.$$s;return e.$call()}).$$s=r,t.$$arity=0,t))}).$$s=_e,$e.$$arity=1,$e)),u(_e,"add_special",["nesting"],((ne=function(e){var t=null==ne.$$s?this:ne.$$s,r=a;return null==e&&(e=a),r=t["$push_nesting?"](),f(r)&&t.$push("(Opal.Module.$$nesting = $nesting, "),e.$call(),f(r)?t.$push(")"):a}).$$s=_e,ne.$$arity=1,ne)),u(_e,"add_special",["constants"],((ae=function(e){var t=null==ae.$$s?this:ae.$$s,r=a;return null==e&&(e=a),r=t["$push_nesting?"](),f(r)&&t.$push("(Opal.Module.$$nesting = $nesting, "),e.$call(),f(r)?t.$push(")"):a}).$$s=_e,ae.$$arity=1,ae)),u(_e,"add_special",["eval"],((ie=function(e){var t=null==ie.$$s?this:ie.$$s,r=a,$=a,n=a;return null==e&&(e=a),f(f(r=t.$arglist().$children().$length()["$!="](1))?r:[t.$s("self"),a]["$include?"](t.$recvr())["$!"]())?e.$call():($=t.$scope().$new_temp(),n=u(t.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),t.$push("("+$+" = ",t.$expr(t.$arglist())),t.$push(", typeof Opal.compile === 'function' ? eval(Opal.compile("+$),t.$push(", {scope_variables: ",n),t.$push(", arity_check: "+t.$compiler()["$arity_check?"]()+", file: '(eval)', eval: true})) : "),t.$push("self.$eval("+$+"))"))}).$$s=_e,ie.$$arity=1,ie)),u(_e,"add_special",["binding"],((se=function(e){var t=null==se.$$s?this:se.$$s;return null==e&&(e=a),f(t.$recvr()["$nil?"]())?(t.$push("Opal.Binding.$new("),t.$push(" function($code, $value) {"),t.$push(" if (typeof $value === 'undefined') {"),t.$push(" return eval($code);"),t.$push(" }"),t.$push(" else {"),t.$push(" return eval($code + ' = $value');"),t.$push(" }"),t.$push(" },"),t.$push(" ",u(t.$scope().$scope_locals(),"map",[],"to_s".$to_proc()).$inspect(),","),t.$push(" self,"),t.$push(" ",t.$source_location()),t.$push(")")):e.$call()}).$$s=_e,se.$$arity=1,se)),u(_e,"add_special",["__await__"],((oe=function(r){var $=null==oe.$$s?this:oe.$$s,n=a;return null==r&&(r=a),f($.$compiler().$async_await())?($.$push($.$fragment("(await (")),$.$push($.$process($.$recvr())),$.$push($.$fragment("))")),n=[!0],u($.$scope(),"await_encountered=",e.to_a(n)),n[t(n.length,1)]):r.$call()}).$$s=_e,oe.$$arity=1,oe)),e.def(_e,"$push_nesting?",ce=function(){var e=this,t=a,r=a,$=a,n=a;return t=e.$children().$first(),f(r=e.$children().$size()["$=="](2))?f($=t["$nil?"]())?$:f(n=t.$type()["$=="]("const"))?t.$children().$last()["$=="]("Module"):n:r},ce.$$arity=0),function(t,$super,r){var $,n,o,_,l=c(t,null,"DependencyResolver"),d=[l].concat(r);return l.$$prototype.compiler=l.$$prototype.sexp=l.$$prototype.missing_dynamic_require=a,e.def(l,"$initialize",$=function(e,t,r){var $=this,n=a;return null==r&&(r=a),$.compiler=e,$.sexp=t,$.missing_dynamic_require=f(n=r)?n:$.compiler.$dynamic_require_severity()},$.$$arity=-3),e.def(l,"$resolve",n=function(){var e=this;return e.$handle_part(e.sexp)},n.$$arity=0),e.def(l,"$handle_part",o=function(t,r){var $,n,o,c,_=this,l=a,m=a,g=a,y=a,v=a,b=a,k=a;if(null==r&&(r=_.missing_dynamic_require),f(t)){if(l=t.$type(),"str"["$==="](l))return t.$children()["$[]"](0);if("dstr"["$==="](l))return u(t.$children(),"map",[],($=function(e){var t=null==$.$$s?this:$.$$s;return null==e&&(e=a),t.$handle_part(e)},$.$$s=_,$.$$arity=1,$)).$join();if("begin"["$==="](l)){if(t.$children().$length()["$=="](1))return _.$handle_part(t.$children()["$[]"](0))}else if("send"["$==="](l)){if(o=t.$children(),n=e.to_ary(o),m=null==n[0]?a:n[0],g=null==n[1]?a:n[1],y=p.call(n,2),v=u(y,"map",[],((c=function(e){var t=null==c.$$s?this:c.$$s;return null==e&&(e=a),t.$handle_part(e,"ignore")}).$$s=_,c.$$arity=1,c)),f(v["$include?"](a)))return a;if(f(f(b=f(k=m["$is_a?"](i(i(i("::","Opal"),"AST"),"Node")))?m.$type()["$=="]("const"):k)?m.$children().$last()["$=="]("File"):b)){if(g["$=="]("expand_path"))return u(_,"expand_path",e.to_a(v));if(g["$=="]("join"))return _.$expand_path(v.$join("/"));if(g["$=="]("dirname"))return _.$expand_path(v["$[]"](0).$split("/")["$[]"](h(0,-1,!0)).$join("/"))}else if(g["$=="]("__dir__"))return s(d,"File").$dirname(i(s(d,"Opal"),"Compiler").$module_name(_.compiler.$file()))}}return l=r,"error"["$==="](l)?_.compiler.$error("Cannot handle dynamic require",_.sexp.$line()):"warning"["$==="](l)?_.compiler.$warning("Cannot handle dynamic require",_.sexp.$line()):a},o.$$arity=-2),e.def(l,"$expand_path",_=function(e,t){var r,$=this;return null==t&&(t=""),u((t+"/"+e).$split("/"),"each_with_object",[[]],(r=function(e,t){null==r.$$s||r.$$s;return null==e&&(e=a),null==t&&(t=a),e["$=="]("")?a:e["$=="]("..")?t.$pop():t["$<<"](e)},r.$$s=$,r.$$arity=2,r)).$join("/")},_.$$arity=-2),a&&"expand_path"}(ue[0],0,ue)}(m[0],s(m,"Base"),m)}(m[0],m)}(n[0],n)},Opal.modules["opal/nodes/csend"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.send;return e.add_stubs(["$require","$handle","$helper","$conditional_send","$recv","$receiver_sexp","$push","$compile_method_name","$compile_arguments","$compile_block_pass"]),t.$require("opal/nodes/call"),function(t,r){var o=[a(t,"Opal")].concat(r);return function(t,r){var o=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"CSendNode");[a].concat(r);return a.$handle("csend"),e.def(a,"$default_compile",n=function(){var e,t=this;return t.$helper("send"),s(t,"conditional_send",[t.$recv(t.$receiver_sexp())],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=$),r.$push("$send(",t),r.$compile_method_name(),r.$compile_arguments(),r.$compile_block_pass(),r.$push(")")}).$$s=t,e.$$arity=1,e))},n.$$arity=0),$&&"default_compile"}(o[0],n(o,"CallNode"),o)}(o[0],o)}(r[0],r)},Opal.modules["opal/nodes/call_special"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.send2,o=e.find_super,c=e.truthy;return e.add_stubs(["$require","$handle","$children","$push","$recv","$recvr","$expr","$property","$value","$<<","$default_compile","$meth","$receiver_sexp","$method_jsid","$compile_arguments","$iter","$s","$lhs","$rhs","$process"]),t.$require("opal/nodes/base"),t.$require("opal/nodes/call"),function(t,r){var _=[a(t,"Opal")].concat(r);return function(t,r){var _=[a(t,"Nodes")].concat(r);return function(t,$super,r){var $,n=i(t,$super,"JsAttrNode");[n].concat(r);n.$handle("jsattr"),n.$children("recvr","property"),e.def(n,"$compile",$=function(){var e=this;return e.$push(e.$recv(e.$recvr()),"[",e.$expr(e.$property()),"]")},$.$$arity=0)}(_[0],n(_,"Base"),_),function(t,$super,r){var $,n=i(t,$super,"JsAttrAsgnNode");[n].concat(r);n.$handle("jsattrasgn"),n.$children("recvr","property","value"),e.def(n,"$compile",$=function(){var e=this;return e.$push(e.$recv(e.$recvr()),"[",e.$expr(e.$property()),"] = ",e.$expr(e.$value()))},$.$$arity=0)}(_[0],n(_,"Base"),_),function(t,$super,r){var n,a,_,u,l=i(t,$super,"JsCallNode");[l].concat(r);l.$$prototype.iter=l.$$prototype.arglist=$,l.$handle("jscall"),e.def(l,"$initialize",n=function(){var t,r=n.$$p,a=this;return r&&(n.$$p=null),t=e.slice.call(arguments,0,arguments.length),s(a,o(a,"initialize",n,!1,!0),"initialize",e.to_a(t),r),c(a.iter)&&(a.arglist=a.arglist["$<<"](a.iter)),a.iter=$},n.$$arity=-1),e.def(l,"$compile",a=function(){return this.$default_compile()},a.$$arity=0),e.def(l,"$method_jsid",_=function(){return"."+this.$meth()},_.$$arity=0),e.def(l,"$compile_using_send",u=function(){var e=this;return e.$push(e.$recv(e.$receiver_sexp()),e.$method_jsid(),".apply(null"),e.$compile_arguments(),c(e.$iter())&&e.$push(".concat(",e.$expr(e.$iter()),")"),e.$push(")")},u.$$arity=0)}(_[0],n(_,"CallNode"),_),function(t,$super,r){var n,a=i(t,$super,"Match3Node");[a].concat(r);return a.$$prototype.level=$,a.$handle("match_with_lvasgn"),a.$children("lhs","rhs"),e.def(a,"$compile",n=function(){var e=this,t=$;return t=e.$s("send",e.$lhs(),"=~",e.$rhs()),e.$push(e.$process(t,e.level))},n.$$arity=0),$&&"compile"}(_[0],n(_,"Base"),_)}(_[0],_)}(r[0],r)},Opal.modules["opal/nodes/scope"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var $=e.top,n=[],a=e.nil,i=(e.$$$,e.$$),s=e.module,o=e.klass,c=e.send2,_=e.find_super,u=e.send,l=e.truthy,d=e.hash2;return e.add_stubs(["$require","$attr_accessor","$attr_reader","$indent","$scope","$compiler","$scope=","$-","$==","$top?","$top_scope","$parent","$iter?","$!","$class?","$dup","$push","$map","$ivars","$gvars","$parser_indent","$empty?","$join","$+","$fragment","$def_in_class?","$add_proto_ivar","$include?","$<<","$has_local?","$|","$scope_locals","$has_temp?","$pop","$next_temp","$loop","$succ","$uses_block!","$identify!","$compact","$name","$scope_name","$mid","$unique_temp","$add_scope_temp","$def?","$lambda?","$type","$nil?","$rescue_else_sexp","$last","$class","$collect_refinements_temps","$add_scope_local","$new_refinements_temp"]),$.$require("opal/nodes/base"),function($,n){var p=[s($,"Opal")].concat(n);return function($,n){var p=[s($,"Nodes")].concat(n);return function($,$super,n){var s,p,f,h,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U,H,Y,X,V,W,K,Q,J,Z,ee,te,re,$e,ne,ae,ie,se=o($,$super,"ScopeNode"),oe=[se].concat(n);return se.$$prototype.type=se.$$prototype.is_lambda=se.$$prototype.lambda_definition=se.$$prototype.defs=se.$$prototype.parent=se.$$prototype.temps=se.$$prototype.locals=se.$$prototype.compiler=se.$$prototype.proto_ivars=se.$$prototype.ivars=se.$$prototype.gvars=se.$$prototype.args=se.$$prototype.queue=se.$$prototype.while_stack=se.$$prototype.identity=se.$$prototype.uses_block=se.$$prototype.rescues=se.$$prototype.in_resbody=se.$$prototype.in_ensure=se.$$prototype.next_retry_id=se.$$prototype.refinements_temp=a,se.$attr_accessor("parent"),se.$attr_accessor("name"),se.$attr_accessor("block_name"),se.$attr_reader("scope_name"),se.$attr_reader("locals"),se.$attr_reader("ivars"),se.$attr_reader("gvars"),se.$attr_accessor("mid"),se.$attr_accessor("defs"),se.$attr_reader("methods"),se.$attr_accessor("catch_return","has_break","has_retry"),se.$attr_accessor("rescue_else_sexp"),e.def(se,"$initialize",s=function(){var t,r=s.$$p,$=this;return r&&(s.$$p=null),t=e.slice.call(arguments,0,arguments.length),c($,_($,"initialize",s,!1,!0),"initialize",e.to_a(t),r),$.locals=[],$.temps=[],$.args=[],$.ivars=[],$.gvars=[],$.parent=a,$.queue=[],$.unique="a",$.while_stack=[],$.identity=a,$.defs=a,$.methods=[],$.uses_block=!1,$.in_ensure=!1,$.proto_ivars=[]},s.$$arity=-1),e.def(se,"$in_scope",p=function(){var r,$=p.$$p,n=$||a,i=this;return $&&(p.$$p=null),u(i,"indent",[],((r=function(){var $=null==r.$$s?this:r.$$s,i=a;return null==$.parent&&($.parent=a),$.parent=$.$compiler().$scope(),i=[$],u($.$compiler(),"scope=",e.to_a(i)),i[t(i.length,1)],e.yield1(n,$),i=[$.parent],u($.$compiler(),"scope=",e.to_a(i)),i[t(i.length,1)]}).$$s=i,r.$$arity=0,r))},p.$$arity=0),e.def(se,"$class_scope?",f=function(){var e=this,t=a;return l(t=e.type["$=="]("class"))?t:e.type["$=="]("module")},f.$$arity=0),e.def(se,"$class?",h=function(){return this.type["$=="]("class")},h.$$arity=0),e.def(se,"$module?",m=function(){return this.type["$=="]("module")},m.$$arity=0),e.def(se,"$sclass?",g=function(){return this.type["$=="]("sclass")},g.$$arity=0),e.def(se,"$top?",y=function(){return this.type["$=="]("top")},y.$$arity=0),e.def(se,"$top_scope",v=function(){var e=this;return l(e["$top?"]())?e:e.$parent().$top_scope()},v.$$arity=0),e.def(se,"$iter?",b=function(){return this.type["$=="]("iter")},b.$$arity=0),e.def(se,"$def?",k=function(){var e=this,t=a;return l(t=e.type["$=="]("def"))?t:e.type["$=="]("defs")},k.$$arity=0),e.def(se,"$lambda?",x=function(){var e=this,t=a;return l(t=e["$iter?"]())?e.is_lambda:t},x.$$arity=0),e.def(se,"$is_lambda!",w=function(){return this.is_lambda=!0},w.$$arity=0),e.def(se,"$defines_lambda",E=function(){var t=E.$$p,r=t||a,$=this;return t&&(E.$$p=null),$.lambda_definition=!0,e.yieldX(r,[]),$.lambda_definition=!1},E.$$arity=0),e.def(se,"$lambda_definition?",R=function(){return this.lambda_definition},R.$$arity=0),e.def(se,"$def_in_class?",z=function(){var e=this,t=a,r=a,$=a;return l(t=l(r=l($=e.defs["$!"]())?e.type["$=="]("def"):$)?e.parent:r)?e.parent["$class?"]():t},z.$$arity=0),e.def(se,"$to_vars",A=function(){var t,$,n,i,s=this,o=a,c=a,_=a,d=a,p=a,f=a,h=a;return o=s.temps.$dup(),u(o,"push",e.to_a(u(s.locals,"map",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=a),e+" = nil"}).$$s=s,t.$$arity=1,t)))),c=u(s.$ivars(),"map",[],(($=function(e){null==$.$$s||$.$$s;return null==e&&(e=a),"if (self"+e+" == null) self"+e+" = nil;\n"}).$$s=s,$.$$arity=1,$)),_=u(s.$gvars(),"map",[],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=a),"if ($gvars"+e+" == null) $gvars"+e+" = nil;\n"}).$$s=s,n.$$arity=1,n)),d=s.compiler.$parser_indent(),p=l(o["$empty?"]())?"":"var "+o.$join(", ")+";\n",l(s.$ivars()["$empty?"]())||(p=r(p,""+d+c.$join(d))),l(s.$gvars()["$empty?"]())||(p=r(p,""+d+_.$join(d))),h=l(l(f=s["$class?"]())?s.proto_ivars["$empty?"]()["$!"]():f)?p+"\n"+d+u(s.proto_ivars,"map",[],(i=function(e){null==i.$$s||i.$$s;return null==e&&(e=a),"self.$$prototype"+e},i.$$s=s,i.$$arity=1,i)).$join(" = ")+" = nil;":p,s.$fragment(h)},A.$$arity=0),e.def(se,"$add_scope_ivar",N=function(e){var t=this;return l(t["$def_in_class?"]())?t.parent.$add_proto_ivar(e):l(t.ivars["$include?"](e))?a:t.ivars["$<<"](e)},N.$$arity=1),e.def(se,"$add_scope_gvar",S=function(e){var t=this;return l(t.gvars["$include?"](e))?a:t.gvars["$<<"](e)},S.$$arity=1),e.def(se,"$add_proto_ivar",O=function(e){var t=this;return l(t.proto_ivars["$include?"](e))?a:t.proto_ivars["$<<"](e)},O.$$arity=1),e.def(se,"$add_arg",T=function(e){var t=this;return l(t.args["$include?"](e))||t.args["$<<"](e),e},T.$$arity=1),e.def(se,"$add_scope_local",I=function(e){var t=this;return l(t["$has_local?"](e))?a:t.locals["$<<"](e)},I.$$arity=1),e.def(se,"$has_local?",C=function(e){var t=this,r=a,$=a,n=a;return!!l(l(r=l($=t.locals["$include?"](e))?$:t.args["$include?"](e))?r:t.temps["$include?"](e))||!!l(l(n=t.parent)?t.type["$=="]("iter"):n)&&t.parent["$has_local?"](e)},C.$$arity=1),e.def(se,"$scope_locals",q=function(){var e=this,t=a;return e.locals["$|"](e.args)["$|"](l(l(t=e.parent)?e.type["$=="]("iter"):t)?e.parent.$scope_locals():[])},q.$$arity=0),e.def(se,"$add_scope_temp",P=function(e){var t=this;return l(t["$has_temp?"](e))?a:t.temps.$push(e)},P.$$arity=1),e.def(se,"$has_temp?",B=function(e){return this.temps["$include?"](e)},B.$$arity=1),e.def(se,"$new_temp",D=function(){var e=this,t=a;return l(e.queue["$empty?"]())?(t=e.$next_temp(),e.temps["$<<"](t),t):e.queue.$pop()},D.$$arity=0),e.def(se,"$next_temp",L=function(){var t,r=this,$=a;return $=a,function(){var n=e.new_brk();try{u(r,"loop",[],((t=function(){var r=null==t.$$s?this:t.$$s;if(null==r.unique&&(r.unique=a),$="$"+r.unique,r.unique=r.unique.$succ(),l(r["$has_local?"]($)))return a;e.brk(a,n)}).$$s=r,t.$$brk=n,t.$$arity=0,t))}catch(i){if(i===n)return i.$v;throw i}}(),$},L.$$arity=0),e.def(se,"$queue_temp",G=function(e){return this.queue["$<<"](e)},G.$$arity=1),e.def(se,"$push_while",M=function(){var e=this,t=a;return t=d([],{}),e.while_stack.$push(t),t},M.$$arity=0),e.def(se,"$pop_while",j=function(){return this.while_stack.$pop()},j.$$arity=0),e.def(se,"$in_while?",F=function(){return this.while_stack["$empty?"]()["$!"]()},F.$$arity=0),e.def(se,"$uses_block!",U=function(){var e=this,t=a;return l(l(t=e.type["$=="]("iter"))?e.parent:t)?e.parent["$uses_block!"]():(e.uses_block=!0,e["$identify!"]())},U.$$arity=0),e.def(se,"$identify!",H=function(e){var t=this,r=a,$=a,n=a;return null==e&&(e=a),l(t.identity)?t.identity:(e=l(r=e)?r:[l($=t.$parent())?l(n=t.$parent().$name())?n:t.$parent().$scope_name():$,t.$mid()].$compact().$join("_"),t.identity=t.compiler.$unique_temp(e),l(t.parent)&&t.parent.$add_scope_temp(t.identity),t.identity)},H.$$arity=-1),se.$attr_reader("identity"),e.def(se,"$find_parent_def",Y=function(){var e=a,t=a;for(e=this;l(e=e.$parent());)if(l(l(t=e["$def?"]())?t:e["$lambda?"]()))return e;return a},Y.$$arity=0),e.def(se,"$super_chain",X=function(){var e,t=a,r=a,$=a,n=a;for(t=(e=[[],this,"null","null"])[0],r=e[1],$=e[2],n=e[3];l(r);){if(!r.$type()["$=="]("iter")){if(l(["def","defs"]["$include?"](r.$type()))){$=r["$identify!"](),n="'"+r.$mid()+"'";break}break}t["$<<"](r["$identify!"]()),l(r.$parent())&&(r=r.$parent())}return[t,$,n]},X.$$arity=0),e.def(se,"$uses_block?",V=function(){return this.uses_block},V.$$arity=0),e.def(se,"$has_rescue_else?",W=function(){return this.$rescue_else_sexp()["$nil?"]()["$!"]()},W.$$arity=0),e.def(se,"$in_rescue",K=function(t){var r=K.$$p,$=r||a,n=this,i=a,s=a;return r&&(K.$$p=null),n.rescues=l(i=n.rescues)?i:[],n.rescues.$push(t),s=e.yieldX($,[]),n.rescues.$pop(),s},K.$$arity=1),e.def(se,"$current_rescue",Q=function(){return this.rescues.$last()},Q.$$arity=0),e.def(se,"$in_resbody",J=function(){var t=J.$$p,r=t||a,$=this,n=a;return t&&(J.$$p=null),r===a?a:($.in_resbody=!0,n=e.yieldX(r,[]),$.in_resbody=!1,n)},J.$$arity=0),e.def(se,"$in_resbody?",Z=function(){return this.in_resbody},Z.$$arity=0),e.def(se,"$in_ensure",ee=function(){var t=ee.$$p,r=t||a,$=this,n=a;return t&&(ee.$$p=null),r===a?a:($.in_ensure=!0,n=e.yieldX(r,[]),$.in_ensure=!1,n)},ee.$$arity=0),e.def(se,"$in_ensure?",te=function(){return this.in_ensure},te.$$arity=0),e.def(se,"$gen_retry_id",re=function(){var e=this,t=a;return e.next_retry_id=l(t=e.next_retry_id)?t:"retry_0",e.next_retry_id=e.next_retry_id.$succ()},re.$$arity=0),e.def(se,"$accepts_using?",$e=function(){var e=this;return[i(oe,"TopNode"),i(oe,"ModuleNode"),i(oe,"ClassNode"),i(oe,"IterNode")]["$include?"](e.$class())},$e.$$arity=0),e.def(se,"$collect_refinements_temps",ne=function(e){var t=this;return null==e&&(e=[]),l(t.refinements_temp)&&e["$<<"](t.refinements_temp),l(t.$parent())?t.$parent().$collect_refinements_temps(e):e},ne.$$arity=-1),e.def(se,"$new_refinements_temp",ae=function(){var e=this,t=a;return t=e.$compiler().$unique_temp("$refn"),e.$add_scope_local(t),t},ae.$$arity=0),e.def(se,"$refinements_temp",ie=function(){var e,t=this,r=a,$=a;return r=(e=[t.refinements_temp,t.$new_refinements_temp()])[0],$=e[1],t.refinements_temp=$,[r,$]},ie.$$arity=0),se.$attr_accessor("await_encountered")}(p[0],i(p,"Base"),p)}(p[0],p)}(n[0],n)},Opal.modules["opal/nodes/module"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.send,c=e.truthy;return e.add_stubs(["$require","$handle","$children","$name_and_base","$helper","$line","$in_scope","$name=","$scope","$-","$compile_body","$await_encountered","$await_encountered=","$parent","$unshift","$private","$cid","$nil?","$expr","$add_temp","$stmt","$returns","$compiler","$body","$s","$empty_line","$to_vars"]),r.$require("opal/nodes/scope"),function(r,$){var _=[i(r,"Opal")].concat($);return function(r,$){var _=[i(r,"Nodes")].concat($);return function(r,$super,$){var a,i,_,u=s(r,$super,"ModuleNode");[u].concat($);return u.$handle("module"),u.$children("cid","body"),e.def(u,"$compile",a=function(){var r,$,a,i=this,s=n,_=n,u=n,l=n,d=n,p=n;return $=i.$name_and_base(),r=e.to_ary($),s=null==r[0]?n:r[0],_=null==r[1]?n:r[1],i.$helper("module"),i.$line(" var self = $module($base, '"+s+"');"),o(i,"in_scope",[],((a=function(){var r=null==a.$$s?this:a.$$s,$=n;return $=[s],o(r.$scope(),"name=",e.to_a($)),$[t($.length,1)],r.$compile_body()}).$$s=i,a.$$arity=0,a)),c(i.$await_encountered())?(u="(await ",l=")",d="async ",p=[!0],o(i.$parent(),"await_encountered=",e.to_a(p)),p[t(p.length,1)]):(u=(r=["","",""])[0],l=r[1],d=r[2]),i.$unshift(u+"("+d+"function($base, $parent_nesting) {"),i.$line("})(",_,", $nesting)"+l)},a.$$arity=0),u.$private(),e.def(u,"$name_and_base",i=function(){var t,r,$=this,a=n,i=n;return r=$.$cid().$children(),a=null==(t=e.to_ary(r))[0]?n:t[0],i=null==t[1]?n:t[1],c(a["$nil?"]())?[i,"$nesting[0]"]:[i,$.$expr(a)]},i.$$arity=0),e.def(u,"$compile_body",_=function(){var e=this,t=n,r=n;return e.$add_temp("$nesting = [self].concat($parent_nesting)"),t=e.$stmt(e.$compiler().$returns(c(r=e.$body())?r:e.$s("nil"))),e.$empty_line(),e.$line(e.$scope().$to_vars()),e.$line(t)},_.$$arity=0),n&&"compile_body"}(_[0],a(_,"ScopeNode"),_)}(_[0],_)}($[0],$)}, +Opal.modules["opal/nodes/class"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.send,c=e.truthy;return e.add_stubs(["$require","$handle","$children","$name_and_base","$helper","$line","$in_scope","$name=","$scope","$-","$compile_body","$await_encountered","$await_encountered=","$parent","$unshift","$super_code","$sup","$expr"]),r.$require("opal/nodes/module"),function(r,$){var _=[i(r,"Opal")].concat($);return function(r,$){var _=[i(r,"Nodes")].concat($);return function(r,$super,$){var a,i,_=s(r,$super,"ClassNode");[_].concat($);return _.$handle("class"),_.$children("cid","sup","body"),e.def(_,"$compile",a=function(){var r,$,a,i=this,s=n,_=n,u=n,l=n,d=n,p=n;return $=i.$name_and_base(),r=e.to_ary($),s=null==r[0]?n:r[0],_=null==r[1]?n:r[1],i.$helper("klass"),i.$line(" var self = $klass($base, $super, '"+s+"');"),o(i,"in_scope",[],((a=function(){var r=null==a.$$s?this:a.$$s,$=n;return $=[s],o(r.$scope(),"name=",e.to_a($)),$[t($.length,1)],r.$compile_body()}).$$s=i,a.$$arity=0,a)),c(i.$await_encountered())?(u="(await ",l=")",d="async ",p=[!0],o(i.$parent(),"await_encountered=",e.to_a(p)),p[t(p.length,1)]):(u=(r=["","",""])[0],l=r[1],d=r[2]),i.$unshift(u+"("+d+"function($base, $super, $parent_nesting) {"),i.$line("})(",_,", ",i.$super_code(),", $nesting)"+l)},a.$$arity=0),e.def(_,"$super_code",i=function(){var e=this;return c(e.$sup())?e.$expr(e.$sup()):"null"},i.$$arity=0),n&&"super_code"}(_[0],a(_,"ModuleNode"),_)}(_[0],_)}($[0],$)},Opal.modules["opal/nodes/singleton_class"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.send;return e.add_stubs(["$require","$handle","$children","$push","$in_scope","$add_temp","$stmt","$returns","$compiler","$body","$line","$to_vars","$scope","$recv","$object"]),t.$require("opal/nodes/scope"),function(t,r){var o=[a(t,"Opal")].concat(r);return function(t,r){var o=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"SingletonClassNode");[a].concat(r);return a.$handle("sclass"),a.$children("object","body"),e.def(a,"$compile",n=function(){var e,t=this;return t.$push("(function(self, $parent_nesting) {"),s(t,"in_scope",[],((e=function(){var t=null==e.$$s?this:e.$$s,r=$;return t.$add_temp("$nesting = [self].concat($parent_nesting)"),r=t.$stmt(t.$compiler().$returns(t.$body())),t.$line(t.$scope().$to_vars()),t.$line(r)}).$$s=t,e.$$arity=0,e)),t.$line("})(Opal.get_singleton_class(",t.$recv(t.$object()),"), $nesting)")},n.$$arity=0),$&&"compile"}(o[0],n(o,"ScopeNode"),o)}(o[0],o)}(r[0],r)},Opal.modules["opal/nodes/args/arg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$children","$add_arg","$scope","$name","$push","$to_s"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ArgNode");[a].concat(r);return a.$handle("arg"),a.$children("name"),e.def(a,"$compile",n=function(){var e=this;return e.$scope().$add_arg(e.$name()),e.$push(e.$name().$to_s())},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/arity_check"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}var a=e.top,i=[],s=e.nil,o=e.$$$,c=e.$$,_=e.module,u=e.klass,l=e.send2,d=e.find_super,p=e.send,f=e.truthy;return e.add_stubs(["$require","$handle","$children","$new","$args_node","$args","$optargs","$restarg","$postargs","$kwargs","$kwoptargs","$kwrestarg","$kwnilarg","$arity","$arity=","$scope","$-","$arity_check?","$compiler","$empty?","$arity_checks","$helper","$inspect","$to_s","$mid","$line","$push","$join","$compact","$size","$all_args","$!","$-@","$<","$+","$>","$<<","$any?","$has_only_optional_kwargs?","$negative_arity","$positive_arity","$select","$include?","$type","$has_required_kwargs?","$all?","$==","$def?","$class_scope?","$top?","$parent","$class?","$name","$module?","$identity"]),a.$require("opal/nodes/base"),a.$require("opal/rewriters/arguments"),function(a,i){var h=[_(a,"Opal")].concat(i);return function(a,i){var h=[_(a,"Nodes")].concat(i);return function(a,$super,i){var _,h,m,g,y,v,b,k,x,w,E=u(a,$super,"ArityCheckNode"),R=[E].concat(i);E.$$prototype.kwargs=E.$$prototype.kwoptargs=E.$$prototype.kwrestarg=E.$$prototype.all_args=E.$$prototype.args=E.$$prototype.optargs=E.$$prototype.restarg=E.$$prototype.postargs=E.$$prototype.arity_checks=s,E.$handle("arity_check"),E.$children("args_node"),e.def(E,"$initialize",_=function(){var t,r=_.$$p,$=this,n=s;return r&&(_.$$p=null),t=e.slice.call(arguments,0,arguments.length),l($,d($,"initialize",_,!1,!0),"initialize",e.to_a(t),r),n=o(c(R,"Rewriters"),"Arguments").$new($.$args_node().$children()),$.args=n.$args(),$.optargs=n.$optargs(),$.restarg=n.$restarg(),$.postargs=n.$postargs(),$.kwargs=n.$kwargs(),$.kwoptargs=n.$kwoptargs(),$.kwrestarg=n.$kwrestarg(),$.kwnilarg=n.$kwnilarg()},_.$$arity=-1),e.def(E,"$compile",h=function(){var r=this,$=s,n=s;return $=[r.$arity()],p(r.$scope(),"arity=",e.to_a($)),$[t($.length,1)],f(r.$compiler()["$arity_check?"]())?f(r.$arity_checks()["$empty?"]())?s:(r.$helper("ac"),n=r.$scope().$mid().$to_s().$inspect(),r.$line("var $arity = arguments.length;"),r.$push(" if ("+r.$arity_checks().$join(" || ")+") { $ac($arity, "+r.$arity()+", this, "+n+"); }")):s},h.$$arity=0),e.def(E,"$kwargs",m=function(){var t=this;return[].concat(e.to_a(t.kwargs)).concat(e.to_a(t.kwoptargs)).concat([t.kwrestarg]).$compact()},m.$$arity=0),e.def(E,"$all_args",g=function(){var t=this,r=s;return t.all_args=f(r=t.all_args)?r:[].concat(e.to_a(t.args)).concat(e.to_a(t.optargs)).concat([t.restarg]).concat(e.to_a(t.postargs)).concat(e.to_a(t.$kwargs())).$compact()},g.$$arity=0),e.def(E,"$arity_checks",y=function(){var e,a=this,i=s,o=s,c=s,_=s,u=s;return f(null!=(e=a.arity_checks)&&e!==s?"instance-variable":s)?a.arity_checks:(i=t(i=a.$all_args().$size(),a.optargs.$size()),f(a.restarg)&&(i=t(i,1)),i=t(i,a.$kwargs().$size()),f(f(o=f(c=a.optargs["$empty?"]()["$!"]())?c:a.$kwargs()["$empty?"]()["$!"]())?o:a.restarg)&&(i=t(i["$-@"](),1)),a.arity_checks=[],f(r(i,0))?(_=$(i,1)["$-@"](),u=a.$all_args().$size(),f(n(_,0))&&a.arity_checks["$<<"]("$arity < "+_),f(a.restarg)||a.arity_checks["$<<"]("$arity > "+u)):a.arity_checks["$<<"]("$arity !== "+i),a.arity_checks)},y.$$arity=0),e.def(E,"$arity",v=function(){var e=this,t=s,r=s;return f(f(t=f(r=e.restarg)?r:e.optargs["$any?"]())?t:e["$has_only_optional_kwargs?"]())?e.$negative_arity():e.$positive_arity()},v.$$arity=0),e.def(E,"$negative_arity",b=function(){var e,r=this,n=s;return n=p(r.$all_args(),"select",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=s),["arg","mlhs"]["$include?"](t.$type())}).$$s=r,e.$$arity=1,e)).$size(),f(r["$has_required_kwargs?"]())&&(n=$(n,1)),n=t(n["$-@"](),1)},b.$$arity=0),e.def(E,"$positive_arity",k=function(){var e=this,r=s;return r=t(r=e.$all_args().$size(),e.$kwargs().$size()),f(e.$kwargs()["$any?"]())&&(r=$(r,1)),r},k.$$arity=0),e.def(E,"$has_only_optional_kwargs?",x=function(){var e,t=this,r=s;return f(r=t.$kwargs()["$any?"]())?p(t.$kwargs(),"all?",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=s),["kwoptarg","kwrestarg"]["$include?"](t.$type())}).$$s=t,e.$$arity=1,e)):r},x.$$arity=0),e.def(E,"$has_required_kwargs?",w=function(){var e,t=this;return p(t.$kwargs(),"any?",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=s),t.$type()["$=="]("kwarg")}).$$s=t,e.$$arity=1,e))},w.$$arity=0)}(h[0],c(h,"Base"),h),function(r,$super,$){var n,a=u(r,$super,"IterArityCheckNode");[a].concat($);return a.$handle("iter_arity_check"),e.def(a,"$compile",n=function(){var r=this,$=s,n=s,a=s,i=s,o=s,c=s;if($=[r.$arity()],p(r.$scope(),"arity=",e.to_a($)),$[t($.length,1)],!f(r.$compiler()["$arity_check?"]()))return s;if(f(r.$arity_checks()["$empty?"]()))return s;for(n=r.$scope();!f(f(a=f(i=n["$def?"]())?i:n["$class_scope?"]())?a:n["$top?"]());)n=n.$parent();return o=f(n["$top?"]())?"'
'":f(n["$def?"]())?"'"+n.$mid()+"'":f(n["$class?"]())?"''":f(n["$module?"]())?"''":s,c=r.$scope().$identity(),r.$line("if ("+c+".$$is_lambda || "+c+".$$define_meth) {"),r.$line(" var $arity = arguments.length;"),r.$line(" if ("+r.$arity_checks().$join(" || ")+") { Opal.block_ac($arity, "+r.$arity()+", "+o+"); }"),r.$line("}")},n.$$arity=0),s&&"compile"}(h[0],c(h,"ArityCheckNode"),h)}(h[0],h)}(i[0],i)},Opal.modules["opal/nodes/args/ensure_kwargs_are_kwargs"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$helper","$line"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"EnsureKwargsAreKwargs");[a].concat(r);return a.$handle("ensure_kwargs_are_kwargs"),e.def(a,"$compile",n=function(){var e=this;return e.$helper("hash2"),e.$line("if ($kwargs == null) {"),e.$line(" $kwargs = $hash2([], {});"),e.$line("} else if (!$kwargs.$$is_hash) {"),e.$line(" throw Opal.ArgumentError.$new('expected kwargs');"),e.$line("}")},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/extract_block_arg"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.send;return e.add_stubs(["$require","$handle","$children","$uses_block!","$scope","$add_arg","$name","$block_name=","$-","$identity","$block_name","$add_temp","$line"]),r.$require("opal/nodes/base"),function(r,$){var c=[i(r,"Opal")].concat($);return function(r,$){var c=[i(r,"Nodes")].concat($);return function(r,$){var c=[i(r,"Args")].concat($);return function(r,$super,$){var a,i=s(r,$super,"ExtractBlockarg");[i].concat($);return i.$handle("extract_blockarg"),i.$children("name"),e.def(i,"$compile",a=function(){var r=this,$=n,a=n,i=n;return r.$scope()["$uses_block!"](),r.$scope().$add_arg(r.$name()),$=[r.$name()],o(r.$scope(),"block_name=",e.to_a($)),$[t($.length,1)],a=r.$scope().$identity(),i=r.$scope().$block_name(),r.$add_temp("$iter = "+a+".$$p"),r.$add_temp(i+" = $iter || nil"),r.$line("if ($iter) "+a+".$$p = null;")},a.$$arity=0),n&&"compile"}(c[0],a(c,"Base"),c)}(c[0],c)}(c[0],c)}($[0],$)},Opal.modules["opal/nodes/args/extract_kwarg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$children","$[]","$meta","$<<","$used_kwargs","$scope","$add_temp","$lvar_name","$line","$inspect","$to_s"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ExtractKwarg");[a].concat(r);return a.$$prototype.sexp=$,a.$handle("extract_kwarg"),a.$children("lvar_name"),e.def(a,"$compile",n=function(){var e=this,t=$;return t=e.sexp.$meta()["$[]"]("arg_name"),e.$scope().$used_kwargs()["$<<"](t),e.$add_temp(e.$lvar_name()),e.$line("if (!Opal.hasOwnProperty.call($kwargs.$$smap, '"+t+"')) {"),e.$line(" throw Opal.ArgumentError.$new('missing keyword: "+t+"');"),e.$line("}"),e.$line(e.$lvar_name()+" = $kwargs.$$smap["+t.$to_s().$inspect()+"];")},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/extract_kwargs"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$add_temp","$line"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ExtractKwargs");[a].concat(r);return a.$handle("extract_kwargs"),e.def(a,"$compile",n=function(){var e=this;return e.$add_temp("$kwargs"),e.$line("$kwargs = Opal.extract_kwargs($post_args)")},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/extract_kwoptarg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$children","$[]","$meta","$<<","$used_kwargs","$scope","$add_temp","$lvar_name","$line","$inspect","$to_s","$==","$default_value","$expr"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ExtractKwoptarg");[a].concat(r);return a.$$prototype.sexp=$,a.$handle("extract_kwoptarg"),a.$children("lvar_name","default_value"),e.def(a,"$compile",n=function(){var e=this,t=$;return t=e.sexp.$meta()["$[]"]("arg_name"),e.$scope().$used_kwargs()["$<<"](t),e.$add_temp(e.$lvar_name()),e.$line(e.$lvar_name()+" = $kwargs.$$smap["+t.$to_s().$inspect()+"];"),e.$default_value().$children()["$[]"](1)["$=="]("undefined")?$:(e.$line("if ("+e.$lvar_name()+" == null) {"),e.$line(" "+e.$lvar_name()+" = ",e.$expr(e.$default_value())),e.$line("}"))},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/extract_kwrestarg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy,o=e.send;return e.add_stubs(["$require","$handle","$children","$name","$add_temp","$line","$used_kwargs","$map","$scope","$join"]),t.$require("opal/nodes/base"),function(t,r){var c=[a(t,"Opal")].concat(r);return function(t,r){var c=[a(t,"Nodes")].concat(r);return function(t,r){var c=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a,c=i(t,$super,"ExtractKwrestarg");[c].concat(r);return c.$handle("extract_kwrestarg"),c.$children("name"),e.def(c,"$compile",n=function(){var e=this,t=$,r=$;return t=s(r=e.$name())?r:"$kw_rest_arg",e.$add_temp(t),e.$line(t+" = Opal.kwrestargs($kwargs, "+e.$used_kwargs()+");")},n.$$arity=0),e.def(c,"$used_kwargs",a=function(){var e,t=this;return"{"+o(t.$scope().$used_kwargs(),"map",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=$),"'"+t+"': true"}).$$s=t,e.$$arity=1,e)).$join(",")+"}"},a.$$arity=0),$&&"used_kwargs"}(c[0],n(c,"Base"),c)}(c[0],c)}(c[0],c)}(r[0],r)},Opal.modules["opal/nodes/args/extract_optarg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$children","$==","$[]","$default_value","$line","$name","$expr"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ExtractOptargNode");[a].concat(r);return a.$handle("extract_optarg"),a.$children("name","default_value"),e.def(a,"$compile",n=function(){var e=this;return e.$default_value().$children()["$[]"](1)["$=="]("undefined")?$:(e.$line("if ("+e.$name()+" == null) {"),e.$line(" "+e.$name()+" = ",e.$expr(e.$default_value()),";"),e.$line("}"))},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/extract_post_arg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$children","$add_temp","$name","$line"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ExtractPostArg");[a].concat(r);return a.$handle("extract_post_arg"),a.$children("name"),e.def(a,"$compile",n=function(){var e=this;return e.$add_temp(e.$name()),e.$line(e.$name()+" = $post_args[0];"),e.$line("$post_args.splice(0, 1);"),e.$line("if ("+e.$name()+" == null) {"),e.$line(" "+e.$name()+" = nil"),e.$line("}")},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/extract_post_optarg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$children","$add_temp","$name","$line","$args_to_keep","$==","$[]","$default_value","$expr"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ExtractPostOptarg");[a].concat(r);return a.$handle("extract_post_optarg"),a.$children("name","default_value","args_to_keep"),e.def(a,"$compile",n=function(){var e=this;return e.$add_temp(e.$name()),e.$line("if ($post_args.length > "+e.$args_to_keep()+") {"),e.$line(" "+e.$name()+" = $post_args[0];"),e.$line(" $post_args.splice(0, 1);"),e.$line("}"),e.$default_value().$children()["$[]"](1)["$=="]("undefined")?$:(e.$line("if ("+e.$name()+" == null) {"),e.$line(" "+e.$name()+" = ",e.$expr(e.$default_value()),";"),e.$line("}"))},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/extract_restarg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy;return e.add_stubs(["$require","$handle","$children","$name","$add_temp","$==","$args_to_keep","$line"]),t.$require("opal/nodes/base"),function(t,r){var o=[a(t,"Opal")].concat(r);return function(t,r){var o=[a(t,"Nodes")].concat(r);return function(t,r){var o=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ExtractRestarg");[a].concat(r);return a.$handle("extract_restarg"),a.$children("name","args_to_keep"),e.def(a,"$compile",n=function(){var e=this,t=$,r=$;return t=s(r=e.$name())?r:"$rest_arg",e.$add_temp(t),e.$args_to_keep()["$=="](0)?e.$line(t+" = $post_args;"):e.$line(t+" = $post_args.splice(0, $post_args.length - "+e.$args_to_keep()+");")},n.$$arity=0),$&&"compile"}(o[0],n(o,"Base"),o)}(o[0],o)}(o[0],o)}(r[0],r)},Opal.modules["opal/nodes/args/fake_arg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$next_temp","$scope","$add_arg","$push"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"FakeArgNode");[a].concat(r);return a.$handle("fake_arg"),e.def(a,"$compile",n=function(){var e=this,t=$;return t=e.$scope().$next_temp(),e.$scope().$add_arg(t),e.$push(t)},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/initialize_iterarg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$children","$line","$name"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"InitializeIterarg");[a].concat(r);return a.$handle("initialize_iter_arg"),a.$children("name"),e.def(a,"$compile",n=function(){var e=this;return e.$line("if ("+e.$name()+" == null) {"),e.$line(" "+e.$name()+" = nil;"),e.$line("}")},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/initialize_shadowarg"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$children","$<<","$locals","$scope","$name","$add_arg","$line"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"InitializeShadowarg");[a].concat(r);return a.$handle("initialize_shadowarg"),a.$children("name"),e.def(a,"$compile",n=function(){var e=this;return e.$scope().$locals()["$<<"](e.$name()),e.$scope().$add_arg(e.$name()),e.$line(e.$name()+" = nil;")},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args/parameters"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$,e.module),n=e.klass,a=e.send,i=e.truthy;return e.add_stubs(["$children","$map","$public_send","$type","$join","$compact","$=="]),function(t,s){var o=[$(t,"Opal")].concat(s);return function(t,s){var o=[$(t,"Nodes")].concat(s);return function(t,s){var o=[$(t,"Args")].concat(s);return function(t,$super,$){var s,o,c,_,u,l,d,p,f,h,m,g,y=n(t,null,"Parameters");[y].concat($);return y.$$prototype.args=r,e.def(y,"$initialize",s=function(e){return this.args=e.$children()},s.$$arity=1),e.def(y,"$to_code",o=function(){var t,$=this;return"["+a($.args,"map",[],((t=function($){var n=null==t.$$s?this:t.$$s;return null==$&&($=r),a(n,"public_send",["on_"+$.$type()].concat(e.to_a($)))}).$$s=$,t.$$arity=1,t)).$compact().$join(", ")+"]"},o.$$arity=0),e.def(y,"$on_arg",c=function(e){return"['req', '"+e+"']"},c.$$arity=1),e.def(y,"$on_mlhs",_=function(){return e.slice.call(arguments,0,arguments.length),"['req']"},_.$$arity=-1),e.def(y,"$on_optarg",u=function(e){return"['opt', '"+e+"']"},u.$$arity=2),e.def(y,"$on_restarg",l=function(e){return null==e&&(e=r),i(e)?(e["$=="]("fwd_rest_arg")&&(e="*"),"['rest', '"+e+"']"):"['rest']"},l.$$arity=-1),e.def(y,"$on_kwarg",d=function(e){return"['keyreq', '"+e+"']"},d.$$arity=1),e.def(y,"$on_kwoptarg",p=function(e){return"['key', '"+e+"']"},p.$$arity=2),e.def(y,"$on_kwrestarg",f=function(e){return null==e&&(e=r),i(e)?"['keyrest', '"+e+"']":"['keyrest']"},f.$$arity=-1),e.def(y,"$on_blockarg",h=function(e){return e["$=="]("fwd_block_arg")&&(e="&"),"['block', '"+e+"']"},h.$$arity=1),e.def(y,"$on_kwnilarg",m=function(){return"['nokey']"},m.$$arity=0),e.def(y,"$on_shadowarg",g=function(){return r},g.$$arity=1),r&&"on_shadowarg"}(o[0],0,o)}(o[0],o)}(o[0],o)}(t[0],t)},Opal.modules["opal/nodes/args/prepare_post_args"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass;return e.add_stubs(["$require","$handle","$children","$add_temp","$line","$offset"]),t.$require("opal/nodes/base"),function(t,r){var s=[a(t,"Opal")].concat(r);return function(t,r){var s=[a(t,"Nodes")].concat(r);return function(t,r){var s=[a(t,"Args")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"PreparePostArgs");[a].concat(r);return a.$handle("prepare_post_args"),a.$children("offset"),e.def(a,"$compile",n=function(){var e=this;return e.$add_temp("$post_args"),e.$line("$post_args = Opal.slice.call(arguments, "+e.$offset()+", arguments.length)")},n.$$arity=0),$&&"compile"}(s[0],n(s,"Base"),s)}(s[0],s)}(s[0],s)}(r[0],r)},Opal.modules["opal/nodes/args"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var n=e.top,a=[],i=e.nil,s=(e.$$$,e.$$),o=e.module,c=e.klass,_=e.hash2,u=e.send,l=e.truthy;return e.add_stubs(["$require","$handle","$each_with_index","$children","$multiple_underscore?","$[]","$[]=","$-","$+","$>","$s","$type","$!=","$push","$process","$==","$count","$start_with?","$to_s","$first"]),n.$require("opal/nodes/base"),n.$require("opal/nodes/args/arg"),n.$require("opal/nodes/args/arity_check"),n.$require("opal/nodes/args/ensure_kwargs_are_kwargs"),n.$require("opal/nodes/args/extract_block_arg"),n.$require("opal/nodes/args/extract_kwarg"),n.$require("opal/nodes/args/extract_kwargs"),n.$require("opal/nodes/args/extract_kwoptarg"),n.$require("opal/nodes/args/extract_kwrestarg"),n.$require("opal/nodes/args/extract_optarg"),n.$require("opal/nodes/args/extract_post_arg"),n.$require("opal/nodes/args/extract_post_optarg"),n.$require("opal/nodes/args/extract_restarg"),n.$require("opal/nodes/args/fake_arg"),n.$require("opal/nodes/args/initialize_iterarg"),n.$require("opal/nodes/args/initialize_shadowarg"),n.$require("opal/nodes/args/parameters"),n.$require("opal/nodes/args/prepare_post_args"),function(n,a){var d=[o(n,"Opal")].concat(a);return function(n,a){var d=[o(n,"Nodes")].concat(a);return function(n,$super,a){var s,o,d=c(n,$super,"ArgsNode");[d].concat(a);return d.$handle("args"),e.def(d,"$compile",s=function(){var n,a=this,s=i;return s=_([],{}),u(a.$children(),"each_with_index",[],((n=function(a,o){var c=null==n.$$s?this:n.$$s,_=i;return null==a&&(a=i),null==o&&(o=i),l(c["$multiple_underscore?"](a))&&(l(s["$[]"](a))||(_=[a,0],u(s,"[]=",e.to_a(_)),_[t(_.length,1)]),_=[a,r(s["$[]"](a),1)],u(s,"[]=",e.to_a(_)),_[t(_.length,1)],l($(s["$[]"](a),1))&&(a=c.$s(a.$type(),a.$children()["$[]"](0)+"_$"+s["$[]"](a)))),l(o["$!="](0))&&c.$push(", "),c.$push(c.$process(a))}).$$s=a,n.$$arity=2,n))},s.$$arity=0),e.def(d,"$multiple_underscore?",o=function(e){var t=this,r=i,n=i,a=i;return l(r=l(n=l(a=e.$type()["$=="]("arg"))?e.$children().$count()["$=="](1):a)?e.$children().$first().$to_s()["$start_with?"]("_"):n)?$(t.$children().$count(e),1):r},o.$$arity=1),i&&"multiple_underscore?"}(d[0],s(d,"Base"),d)}(d[0],d)}(a[0],a)},Opal.modules["opal/nodes/node_with_args"]=function(e){var t=e.top,r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.module,s=e.klass,o=e.send2,c=e.find_super,_=e.truthy;return e.add_stubs(["$require","$attr_reader","$attr_accessor","$[]","$meta","$s","$original_args","$push","$process","$arity_check_node","$uses_block?","$scope","$identity","$block_name","$add_temp","$line","$to_code","$new"]),t.$require("opal/nodes/scope"),t.$require("opal/nodes/args/parameters"),function(t,r){var u=[i(t,"Opal")].concat(r);return function(t,r){var u=[i(t,"Nodes")].concat(r);return function(t,$super,r){var i,u,l,d,p,f=s(t,$super,"NodeWithArgs"),h=[f].concat(r);return f.$$prototype.sexp=$,f.$attr_reader("used_kwargs"),f.$attr_accessor("arity"),f.$attr_reader("original_args"),e.def(f,"$initialize",i=function(){var t,r=i.$$p,$=this;return r&&(i.$$p=null),t=e.slice.call(arguments,0,arguments.length),o($,c($,"initialize",i,!1,!0),"initialize",e.to_a(t),r),$.original_args=$.sexp.$meta()["$[]"]("original_args"),$.used_kwargs=[],$.arity=0},i.$$arity=-1),e.def(f,"$arity_check_node",u=function(){var e=this;return e.$s("arity_check",e.$original_args())},u.$$arity=0),e.def(f,"$compile_arity_check",l=function(){var e=this;return e.$push(e.$process(e.$arity_check_node()))},l.$$arity=0),e.def(f,"$compile_block_arg",d=function(){var e=this,t=$,r=$,n=$;return _(e.$scope()["$uses_block?"]())?(t=e.$scope().$identity(),r=_(n=e.$scope().$block_name())?n:"$yield",e.$add_temp("$iter = "+t+".$$p"),e.$add_temp(r+" = $iter || nil"),e.$line("if ($iter) "+t+".$$p = null;")):$},d.$$arity=0),e.def(f,"$parameters_code",p=function(){var e=this;return n(a(h,"Args"),"Parameters").$new(e.$original_args()).$to_code()},p.$$arity=0),$&&"parameters_code"}(u[0],a(u,"ScopeNode"),u)}(u[0],u)}(r[0],r)},Opal.modules["opal/nodes/iter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=e.$$$,i=e.$$,s=e.module,o=e.klass,c=e.truthy,_=e.send;return e.add_stubs(["$require","$handle","$children","$lambda_definition?","$scope","$is_lambda!","$in_scope","$identify!","$add_temp","$process","$inline_args","$compile_arity_check","$stmt","$returned_body","$to_vars","$line","$catch_return","$unshift","$push","$await_encountered","$contains_break?","$arity","$arity_check?","$compiler","$parameters_code","$has_top_level_mlhs_arg?","$has_trailing_comma_in_args?","$block_arg","$block_name=","$-","$each","$args","$first","$==","$<<","$updated","$body","$returns","$s","$any?","$original_args","$type","$loc","$expression","$source","$match","$new","$found_break?"]),r.$require("opal/nodes/node_with_args"),r.$require("opal/rewriters/break_finder"),function(r,$){var u=[s(r,"Opal")].concat($);return function(r,$){var u=[s(r,"Nodes")].concat($);return function(r,$super,$){var s,u,l,d,p,f,h,m,g=o(r,$super,"IterNode"),y=[g].concat($);return g.$$prototype.sexp=n,g.$handle("iter"),g.$children("inline_args","body"),e.def(g,"$compile",s=function(){var e,t=this,r=n,$=n,a=n,i=n;return c(t.$scope()["$lambda_definition?"]())&&t["$is_lambda!"](),r=n,$=a=i=n,_(t,"in_scope",[],((e=function(){var t=null==e.$$s?this:e.$$s;return a=t.$scope()["$identify!"](),t.$add_temp("self = "+a+".$$s == null ? this : "+a+".$$s"),r=t.$process(t.$inline_args()),t.$compile_arity_check(),i=t.$stmt(t.$returned_body()),$=t.$scope().$to_vars(),t.$line(i),c(t.$scope().$catch_return())?(t.$unshift("try {\n"),t.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),t.$push(" throw $returner; }")):n}).$$s=t,e.$$arity=0,e)),t.$unshift($),c(t.$await_encountered())?t.$unshift("("+a+" = async function(",r,"){"):t.$unshift("("+a+" = function(",r,"){"),t.$push("}, "+a+".$$s = self,"),c(t["$contains_break?"]())&&t.$push(" "+a+".$$brk = $brk,"),t.$push(" "+a+".$$arity = "+t.$arity()+","),c(t.$compiler()["$arity_check?"]())&&t.$push(" "+a+".$$parameters = "+t.$parameters_code()+","),c(t["$has_top_level_mlhs_arg?"]())&&t.$push(" "+a+".$$has_top_level_mlhs_arg = true,"),c(t["$has_trailing_comma_in_args?"]())&&t.$push(" "+a+".$$has_trailing_comma_in_args = true,"),t.$push(" "+a+")")},s.$$arity=0),e.def(g,"$compile_block_arg",u=function(){var r=this,$=n,a=n;return c(r.$block_arg())?($=[r.$block_arg()],_(r.$scope(),"block_name=",e.to_a($)),$[t($.length,1)],r.$scope().$add_temp(r.$block_arg()),a=r.$scope()["$identify!"](),r.$line(r.$block_arg()+" = "+a+".$$p || nil;"),r.$line("if ("+r.$block_arg()+") "+a+".$$p = null;")):n},u.$$arity=0),e.def(g,"$extract_underscore_args",l=function(){var e,t=this,r=n,$=n;return r=[],$=!1,_(t.$args().$children(),"each",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=n),t.$children().$first()["$=="]("_")?c($)?n:($=!0,r["$<<"](t)):r["$<<"](t)}).$$s=t,e.$$arity=1,e)),t.sexp=t.sexp.$updated(n,[t.$args().$updated(n,r),t.$body()])},l.$$arity=0),e.def(g,"$returned_body",d=function(){var e=this,t=n;return e.$compiler().$returns(c(t=e.$body())?t:e.$s("nil"))},d.$$arity=0),e.def(g,"$has_top_level_mlhs_arg?",p=function(){var e,t=this;return _(t.$original_args().$children(),"any?",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=n),t.$type()["$=="]("mlhs")}).$$s=t,e.$$arity=1,e))},p.$$arity=0),e.def(g,"$has_trailing_comma_in_args?",f=function(){var e=this,t=n;return c(c(t=e.$original_args().$loc())?e.$original_args().$loc().$expression():t)?e.$original_args().$loc().$expression().$source().$match(/,\s*\|/):n},f.$$arity=0),e.def(g,"$arity_check_node",h=function(){var e=this;return e.$s("iter_arity_check",e.$original_args())},h.$$arity=0),e.def(g,"$contains_break?",m=function(){var e=this,t=n;return(t=a(a(i(y,"Opal"),"Rewriters"),"BreakFinder").$new()).$process(e.sexp),t["$found_break?"]()},m.$$arity=0),n&&"contains_break?"}(u[0],i(u,"NodeWithArgs"),u)}(u[0],u)}($[0],$)},Opal.modules["opal/nodes/def"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var $=e.top,n=[],a=e.nil,i=(e.$$$,e.$$),s=e.module,o=e.klass,c=e.send,_=e.truthy;return e.add_stubs(["$require","$handle","$children","$in_scope","$mid","$mid=","$scope","$-","$==","$type","$defs=","$identify!","$identity","$block_name=","$process","$inline_args","$stmt","$returns","$compiler","$stmts","$compile_block_arg","$add_temp","$compile_arity_check","$unshift","$current_indent","$to_vars","$line","$catch_return","$push","$valid_name?","$await_encountered","$arity","$arity_check?","$parameters_code","$parse_comments?","$comments_code","$enable_source_location?","$source_location","$wrap_with_definition","$wrap","$expr?","$+","$join","$map","$comments","$inspect","$text"]),$.$require("opal/nodes/node_with_args"),function($,n){var u=[s($,"Opal")].concat(n);return function($,n){var u=[s($,"Nodes")].concat(n);return function($,$super,n){var i,s,u,l=o($,$super,"DefNode");[l].concat(n);return l.$handle("def"),l.$children("mid","inline_args","stmts"),e.def(l,"$compile",i=function(){var r,$=this,n=a,i=a,s=a;return n=a,i=a,c($,"in_scope",[],((r=function(){var $=null==r.$$s?this:r.$$s,s=a,o=a;return null==$.sexp&&($.sexp=a),s=[$.$mid()],c($.$scope(),"mid=",e.to_a(s)),s[t(s.length,1)],$.sexp.$type()["$=="]("defs")&&(s=[!0],c($.$scope(),"defs=",e.to_a(s)),s[t(s.length,1)]), +$.$scope()["$identify!"](),i=$.$scope().$identity(),s=["$yield"],c($.$scope(),"block_name=",e.to_a(s)),s[t(s.length,1)],n=$.$process($.$inline_args()),o=$.$stmt($.$compiler().$returns($.$stmts())),$.$compile_block_arg(),$.$add_temp("self = this"),$.$compile_arity_check(),$.$unshift("\n"+$.$current_indent(),$.$scope().$to_vars()),$.$line(o),_($.$scope().$catch_return())?($.$unshift("try {\n"),$.$line("} catch ($returner) { if ($returner === Opal.returner) { return $returner.$v }"),$.$push(" throw $returner; }")):a}).$$s=$,r.$$arity=0,r)),s=_($["$valid_name?"]($.$mid()))?" $$"+$.$mid():"",$.$unshift(") {"),$.$unshift(n),$.$unshift("function"+s+"("),_($.$await_encountered())&&$.$unshift("async "),_(i)&&$.$unshift(i+" = "),$.$line("}"),$.$push(", "+i+".$$arity = "+$.$arity()),_($.$compiler()["$arity_check?"]())&&$.$push(", "+i+".$$parameters = "+$.$parameters_code()),_($.$compiler()["$parse_comments?"]())&&$.$push(", "+i+".$$comments = "+$.$comments_code()),_($.$compiler()["$enable_source_location?"]())&&$.$push(", "+i+".$$source_location = "+$.$source_location()),$.$wrap_with_definition()},i.$$arity=0),e.def(l,"$wrap_with_definition",s=function(){var e=this;return e.$wrap("Opal.def(self, '$"+e.$mid()+"', ",")"),_(e["$expr?"]())?e.$wrap("(",", nil) && '"+e.$mid()+"'"):e.$unshift("\n"+e.$current_indent())},s.$$arity=0),e.def(l,"$comments_code",u=function(){var e,t=this;return r(r("[",c(t.$comments(),"map",[],(e=function(t){null==e.$$s||e.$$s;return null==t&&(t=a),t.$text().$inspect()},e.$$s=t,e.$$arity=1,e)).$join(", ")),"]")},u.$$arity=0),a&&"comments_code"}(u[0],i(u,"NodeWithArgs"),u)}(u[0],u)}(n[0],n)},Opal.modules["opal/nodes/defs"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy;return e.add_stubs(["$require","$handle","$children","$unshift","$expr","$recvr","$mid","$push","$expr?","$wrap"]),t.$require("opal/nodes/def"),function(t,r){var o=[a(t,"Opal")].concat(r);return function(t,r){var o=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"DefsNode");[a].concat(r);return a.$handle("defs"),a.$children("recvr","mid","inline_args","stmts"),e.def(a,"$wrap_with_definition",n=function(){var e=this;return e.$unshift("Opal.defs(",e.$expr(e.$recvr()),", '$"+e.$mid()+"', "),e.$push(")"),s(e["$expr?"]())?e.$wrap("(",", nil) && '"+e.$mid()+"'"):$},n.$$arity=0),$&&"wrap_with_definition"}(o[0],n(o,"DefNode"),o)}(o[0],o)}(r[0],r)},Opal.modules["opal/nodes/if"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy,o=e.send;return e.add_stubs(["$require","$handle","$children","$truthy","$falsy","$push","$js_truthy","$test","$indent","$line","$stmt","$==","$type","$needs_wrapper?","$await_encountered","$scope","$wrap","$returns","$compiler","$true_body","$s","$false_body","$expr?","$recv?","$helper","$new_temp","$top_scope","$excl","$from","$to"]),t.$require("opal/nodes/base"),function(t,r){var c=[a(t,"Opal")].concat(r);return function(t,r){var c=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a,c,_,u=i(t,$super,"IfNode");[u].concat(r);u.$handle("if"),u.$children("test","true_body","false_body"),e.def(u,"$compile",n=function(){var e,t,r=this,n=$,a=$;return n=r.$truthy(),a=r.$falsy(),r.$push("if (",r.$js_truthy(r.$test()),") {"),s(n)&&o(r,"indent",[],((e=function(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(n))}).$$s=r,e.$$arity=0,e)),s(a)?a.$type()["$=="]("if")?r.$line("} else ",r.$stmt(a)):(r.$line("} else {"),o(r,"indent",[],((t=function(){var e=null==t.$$s?this:t.$$s;return e.$line(e.$stmt(a))}).$$s=r,t.$$arity=0,t)),r.$line("}")):r.$push("}"),s(r["$needs_wrapper?"]())?s(r.$scope().$await_encountered())?r.$wrap("(await (async function() {","; return nil; })())"):r.$wrap("(function() {","; return nil; })()"):$},n.$$arity=0),e.def(u,"$truthy",a=function(){var e=this,t=$;return s(e["$needs_wrapper?"]())?e.$compiler().$returns(s(t=e.$true_body())?t:e.$s("nil")):e.$true_body()},a.$$arity=0),e.def(u,"$falsy",c=function(){var e=this,t=$;return s(e["$needs_wrapper?"]())?e.$compiler().$returns(s(t=e.$false_body())?t:e.$s("nil")):e.$false_body()},c.$$arity=0),e.def(u,"$needs_wrapper?",_=function(){var e=this,t=$;return s(t=e["$expr?"]())?t:e["$recv?"]()},_.$$arity=0)}(c[0],n(c,"Base"),c),function(t,$super,r){var n,a,s=i(t,$super,"IFlipFlop");[s].concat(r);s.$handle("iflipflop"),s.$children("from","to"),e.def(s,"$excl",n=function(){return""},n.$$arity=0),e.def(s,"$compile",a=function(){var e=this,t=$,r=$;return e.$helper("truthy"),r=(t=e.$top_scope().$new_temp())+".$$ff",e.$push("(typeof "+t+" === 'undefined' ? ("+t+" = function(from, to){"),e.$push(" if (typeof "+r+" === 'undefined') "+r+" = false;"),e.$push(" var retval = "+r+";"),e.$push(" if (!"+r+") {"),e.$push(" "+r+" = retval = $truthy(from());"),e.$push(" }"),e.$push(" "+e.$excl()+"if ("+r+") {"),e.$push(" if ($truthy(to())) "+r+" = false;"),e.$push(" }"),e.$push(" return retval;"),e.$push("}) : "+t+")("),e.$push(" function() { ",e.$stmt(e.$compiler().$returns(e.$from()))," },"),e.$push(" function() { ",e.$stmt(e.$compiler().$returns(e.$to()))," }"),e.$push(")")},a.$$arity=0)}(c[0],n(c,"Base"),c),function(t,$super,r){var n,a=i(t,$super,"EFlipFlop");[a].concat(r);return a.$handle("eflipflop"),e.def(a,"$excl",n=function(){return"else "},n.$$arity=0),$&&"excl"}(c[0],n(c,"IFlipFlop"),c)}(c[0],c)}(r[0],r)},Opal.modules["opal/nodes/logic"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var $=e.top,n=[],a=e.nil,i=(e.$$$,e.$$),s=e.module,o=e.klass,c=e.truthy,_=e.send;return e.add_stubs(["$require","$handle","$in_while?","$push","$iter?","$scope","$expr_or_nil","$value","$error","$size","$children","$===","$s","$first","$compile_while","$compile_iter","$[]","$while_loop","$stmt?","$line","$break_val","$nil?","$expr","$[]=","$-","$helper","$identity","$==","$empty_splat?","$recv","$>","$!","$lambda?","$find_parent_def","$expr?","$def?","$return_in_iter?","$return_expr_in_def?","$scope_to_catch_return","$catch_return=","$return_val","$to_s"]),$.$require("opal/nodes/base"),function($,n){var u=[s($,"Opal")].concat(n);return function($,n){var u=[s($,"Nodes")].concat(n);return function(t,$super,r){var $,n,i=o(t,$super,"NextNode");[i].concat(r);i.$handle("next"),e.def(i,"$compile",$=function(){var e=this;return c(e["$in_while?"]())?e.$push("continue;"):c(e.$scope()["$iter?"]())?e.$push("return ",e.$expr_or_nil(e.$value()),";"):e.$error("Invalid next")},$.$$arity=0),e.def(i,"$value",n=function(){var t=this,r=a;return r=t.$children().$size(),(0)["$==="](r)?t.$s("nil"):1["$==="](r)?t.$children().$first():_(t,"s",["array"].concat(e.to_a(t.$children())))},n.$$arity=0)}(u[0],i(u,"Base"),u),function(t,$super,r){var $,n,a,i,s=o(t,$super,"BreakNode");[s].concat(r);s.$handle("break"),s.$children("value"),e.def(s,"$compile",$=function(){var e=this;return c(e["$in_while?"]())?e.$compile_while():c(e.$scope()["$iter?"]())?e.$compile_iter():e.$error("void value expression: cannot use break outside of iter/while")},$.$$arity=0),e.def(s,"$compile_while",n=function(){var e=this;return c(e.$while_loop()["$[]"]("closure"))?e.$push("return ",e.$expr_or_nil(e.$value())):e.$push("break;")},n.$$arity=0),e.def(s,"$compile_iter",a=function(){var e=this;return c(e["$stmt?"]())||e.$error("break must be used as a statement"),e.$line("Opal.brk(",e.$break_val(),", $brk)")},a.$$arity=0),e.def(s,"$break_val",i=function(){var e=this;return c(e.$value()["$nil?"]())?e.$expr(e.$s("nil")):e.$expr(e.$value())},i.$$arity=0)}(u[0],i(u,"Base"),u),function(r,$super,$){var n,i,s,u=o(r,$super,"RedoNode");[u].concat($);u.$handle("redo"),e.def(u,"$compile",n=function(){var e=this;return c(e["$in_while?"]())?e.$compile_while():c(e.$scope()["$iter?"]())?e.$compile_iter():e.$push("REDO()")},n.$$arity=0),e.def(u,"$compile_while",i=function(){var r=this,$=a;return $=["use_redo",!0],_(r.$while_loop(),"[]=",e.to_a($)),$[t($.length,1)],r.$push(r.$while_loop()["$[]"]("redo_var")+" = true; continue;")},i.$$arity=0),e.def(u,"$compile_iter",s=function(){var e=this;return e.$helper("slice"),e.$push("return "+e.$scope().$identity()+".apply(null, $slice.call(arguments))")},s.$$arity=0)}(u[0],i(u,"Base"),u),function(t,$super,r){var $,n,a=o(t,$super,"SplatNode");[a].concat(r);a.$handle("splat"),a.$children("value"),e.def(a,"$empty_splat?",$=function(){var e=this;return e.$value()["$=="](e.$s("array"))},$.$$arity=0),e.def(a,"$compile",n=function(){var e=this;return c(e["$empty_splat?"]())?e.$push("[]"):e.$push("Opal.to_a(",e.$recv(e.$value()),")")},n.$$arity=0)}(u[0],i(u,"Base"),u),function($,$super,n){var i,s,u,l,d,p=o($,$super,"ReturnNode");[p].concat(n);p.$handle("return"),p.$children("value"),e.def(p,"$return_val",i=function(){var t=this;return c(t.$value()["$nil?"]())?t.$expr(t.$s("nil")):c(r(t.$children().$size(),1))?t.$expr(_(t,"s",["array"].concat(e.to_a(t.$children())))):t.$expr(t.$value())},i.$$arity=0),e.def(p,"$return_in_iter?",s=function(){var e=this,t=a,r=a,$=a;return c(c(t=c(r=e.$scope()["$iter?"]())?e.$scope()["$lambda?"]()["$!"]():r)?$=e.$scope().$find_parent_def():t)?$:a},s.$$arity=0),e.def(p,"$return_expr_in_def?",u=function(){var e=this,t=a,r=a;return c(c(t=e["$expr?"]())?c(r=e.$scope()["$def?"]())?r:e.$scope()["$lambda?"]():t)?e.$scope():a},u.$$arity=0),e.def(p,"$scope_to_catch_return",l=function(){var e=this,t=a;return c(t=e["$return_in_iter?"]())?t:e["$return_expr_in_def?"]()},l.$$arity=0),e.def(p,"$compile",d=function(){var r=this,$=a,n=a;return c($=r.$scope_to_catch_return())?(n=[!0],_($,"catch_return=",e.to_a(n)),n[t(n.length,1)],r.$push("Opal.ret(",r.$return_val(),")")):c(r["$stmt?"]())?r.$push("return ",r.$return_val()):r.$error("void value expression: cannot return as an expression")},d.$$arity=0)}(u[0],i(u,"Base"),u),function(t,$super,r){var $,n=o(t,$super,"JSReturnNode");[n].concat(r);n.$handle("js_return"),n.$children("value"),e.def(n,"$compile",$=function(){var e=this;return e.$push("return "),e.$push(e.$expr(e.$value()))},$.$$arity=0)}(u[0],i(u,"Base"),u),function(t,$super,r){var $,n=o(t,$super,"JSTempNode");[n].concat(r);n.$handle("js_tmp"),n.$children("value"),e.def(n,"$compile",$=function(){var e=this;return e.$push(e.$value().$to_s())},$.$$arity=0)}(u[0],i(u,"Base"),u),function(t,$super,r){var $,n=o(t,$super,"BlockPassNode");[n].concat(r);return n.$handle("block_pass"),n.$children("value"),e.def(n,"$compile",$=function(){var e=this;return e.$push(e.$expr(e.$s("send",e.$value(),"to_proc",e.$s("arglist"))))},$.$$arity=0),a&&"compile"}(u[0],i(u,"Base"),u)}(u[0],u)}(n[0],n)},Opal.modules["opal/nodes/definitions"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var $=e.top,n=[],a=e.nil,i=(e.$$$,e.$$),s=e.module,o=e.klass,c=e.send,_=e.range,u=e.truthy,l=e.slice,d=e.hash2;return e.add_stubs(["$require","$handle","$children","$each","$line","$expr","$type","$new_name","$===","$helper","$inspect","$[]","$to_s","$first","$old_name","$push","$error","$empty?","$stmt?","$compile_children","$simple_children?","$compile_inline_children","$>","$size","$wrap","$==","$returned_children","$await_encountered","$parent","$scope","$+","$returns","$compiler","$s","$process","$fragment","$freeze","$none?","$include?","$map","$each_with_index","$reject","$to_proc"]),$.$require("opal/nodes/base"),function($,n){var p=[s($,"Opal")].concat(n);return function($,n){var p=[s($,"Nodes")].concat(n);return function(t,$super,r){var $,n=o(t,$super,"UndefNode");[n].concat(r);n.$handle("undef"),n.$children("value"),e.def(n,"$compile",$=function(){var e,t=this;return c(t.$children(),"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=a),r.$line("Opal.udef(self, '$' + ",r.$expr(t),");")}).$$s=t,e.$$arity=1,e))},$.$$arity=0)}(p[0],i(p,"Base"),p),function(t,$super,r){var $,n=o(t,$super,"AliasNode");[n].concat(r);n.$handle("alias"),n.$children("new_name","old_name"),e.def(n,"$compile",$=function(){var e=this,t=a,r=a,$=a;return t=e.$new_name().$type(),"gvar"["$==="](t)?(e.$helper("alias_gvar"),r=e.$new_name().$children().$first().$to_s()["$[]"](_(1,-1,!1)).$inspect(),$=e.$old_name().$children().$first().$to_s()["$[]"](_(1,-1,!1)).$inspect(),e.$push("$alias_gvar(",r,", ",$,")")):"dsym"["$==="](t)||"sym"["$==="](t)?(e.$helper("alias"),e.$push("$alias(self, ",e.$expr(e.$new_name()),", ",e.$expr(e.$old_name()),")")):e.$error("Opal doesn't know yet how to alias with "+e.$new_name().$type())},$.$$arity=0)}(p[0],i(p,"Base"),p),function($,$super,n){var s,_,p,f,h,m=o($,$super,"BeginNode"),g=[m].concat(n);m.$$prototype.level=m.$$prototype.returned_children=a,m.$handle("begin"),e.def(m,"$compile",s=function(){var e=this;return u(e.$children()["$empty?"]())?e.$push("nil"):u(e["$stmt?"]())?e.$compile_children(e.$children(),e.level):u(e["$simple_children?"]())?(e.$compile_inline_children(e.$children(),e.level),u(t(e.$children().$size(),1))?e.$wrap("(",")"):a):e.$children().$size()["$=="](1)?e.$compile_inline_children(e.$returned_children(),e.level):(e.$compile_children(e.$returned_children(),e.level),u(e.$scope().$parent().$await_encountered())?e.$wrap("(await (async function() {","})())"):e.$wrap("(function() {","})()"))},s.$$arity=0),e.def(m,"$returned_children",_=function(){var t,$,n=this,i=a,s=a,o=a;return n.returned_children=u(i=n.returned_children)?i:(t=[].concat(e.to_a(n.$children())),$=($=t.length-1)<0?0:$,s=l.call(t,0,$),o=null==t[$]?a:t[$],u(o)?r(s,[n.$compiler().$returns(o)]):[n.$s("nil")])},_.$$arity=0),e.def(m,"$compile_children",p=function(e,t){var r,$=this;return c(e,"each",[],((r=function(e){var $=null==r.$$s?this:r.$$s;return null==e&&(e=a),$.$line($.$process(e,t),$.$fragment(";",d(["loc"],{loc:!1})))}).$$s=$,r.$$arity=1,r))},p.$$arity=2),e.const_set(g[0],"COMPLEX_CHILDREN",["while","while_post","until","until_post","js_return"].$freeze()),e.def(m,"$simple_children?",f=function(){var e,t=this;return c(t.$children(),"none?",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=a),i(g,"COMPLEX_CHILDREN")["$include?"](t.$type())}).$$s=t,e.$$arity=1,e))},f.$$arity=0),e.def(m,"$compile_inline_children",h=function(e,t){var r,$,n=this,i=a;return i=c(e,"map",[],((r=function(e){var $=null==r.$$s?this:r.$$s;return null==e&&(e=a),$.$process(e,t)}).$$s=n,r.$$arity=1,r)),c(c(i,"reject",[],"empty?".$to_proc()),"each_with_index",[],(($=function(e,t){var r=null==$.$$s?this:$.$$s;return null==e&&(e=a),null==t&&(t=a),t["$=="](0)||r.$push(r.$fragment(", ",d(["loc"],{loc:!1}))),r.$push(e)}).$$s=n,$.$$arity=2,$))},h.$$arity=2)}(p[0],i(p,"ScopeNode"),p),function(e,$super,t){var r=o(e,$super,"KwBeginNode");[r].concat(t);return r.$handle("kwbegin")}(p[0],i(p,"BeginNode"),p)}(p[0],p)}(n[0],n)},Opal.modules["opal/nodes/yield"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.truthy,c=e.send;return e.add_stubs(["$require","$find_yielding_scope","$uses_block!","$block_name","$block_name=","$-","$yields_single_arg?","$children","$push","$expr","$first","$wrap","$s","$uses_splat?","$scope","$def?","$parent","$!","$==","$size","$any?","$type","$handle","$compile_call"]),r.$require("opal/nodes/base"),function(r,$){var _=[i(r,"Opal")].concat($);return function(r,$){var _=[i(r,"Nodes")].concat($);return function(r,$super,$){var a,i,_,u,l=s(r,$super,"BaseYieldNode");[l].concat($);e.def(l,"$compile_call",a=function(){var r=this,$=n,a=n,i=n;return($=r.$find_yielding_scope())["$uses_block!"](),o($.$block_name())||(a=["$yield"],c($,"block_name=",e.to_a(a)),a[t(a.length,1)]),i=$.$block_name(),o(r["$yields_single_arg?"](r.$children()))?(r.$push(r.$expr(r.$children().$first())),r.$wrap("Opal.yield1("+i+", ",")")):(r.$push(r.$expr(c(r,"s",["arglist"].concat(e.to_a(r.$children()))))),o(r["$uses_splat?"](r.$children()))?r.$wrap("Opal.yieldX("+i+", ",")"):r.$wrap("Opal.yieldX("+i+", [","])"))},a.$$arity=0),e.def(l,"$find_yielding_scope",i=function(){var e=n,t=n;for(e=this.$scope();o(e)&&!o(o(t=e.$block_name())?t:e["$def?"]());)e=e.$parent();return e},i.$$arity=0),e.def(l,"$yields_single_arg?",_=function(e){var t=n;return o(t=this["$uses_splat?"](e)["$!"]())?e.$size()["$=="](1):t},_.$$arity=1),e.def(l,"$uses_splat?",u=function(e){var t,r=this;return c(e,"any?",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=n),e.$type()["$=="]("splat")}).$$s=r,t.$$arity=1,t))},u.$$arity=1)}(_[0],a(_,"Base"),_),function(t,$super,r){var $,n=s(t,$super,"YieldNode");[n].concat(r);n.$handle("yield"),e.def(n,"$compile",$=function(){return this.$compile_call()},$.$$arity=0)}(_[0],a(_,"BaseYieldNode"),_),function(t,$super,r){var $,a=s(t,$super,"ReturnableYieldNode");[a].concat(r);return a.$handle("returnable_yield"),e.def(a,"$compile",$=function(){var e=this;return e.$compile_call(),e.$wrap("return ",";")},$.$$arity=0),n&&"compile"}(_[0],a(_,"BaseYieldNode"),_)}(_[0],_)}($[0],$)},Opal.modules["opal/nodes/rescue"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.send,c=e.truthy,_=e.range;return e.add_stubs(["$require","$handle","$children","$push","$in_ensure","$line","$stmt","$body_sexp","$indent","$has_rescue_else?","$unshift","$rescue_else_code","$process","$compiler","$ensr_sexp","$wrap_in_closure?","$await_encountered","$scope","$wrap","$returns","$begn","$ensr","$s","$recv?","$expr?","$rescue_else_sexp","$stmt?","$detect","$[]","$!=","$type","$rescue_else_sexp=","$-","$handle_rescue_else_manually?","$in_rescue","$body_code","$each_with_index","$==","$retry_id","$nil?","$body","$!","$in_ensure?","$gen_retry_id","$attr_reader","$expr","$klasses","$lvar","$updated","$in_resbody","$rescue_body","$klasses_sexp","$in_resbody?","$error","$current_rescue"]),r.$require("opal/nodes/base"),function(r,$){var u=[i(r,"Opal")].concat($);return function(r,$){var u=[i(r,"Nodes")].concat($);return function(t,$super,r){var $,a,i,_,u,l=s(t,$super,"EnsureNode");[l].concat(r);l.$handle("ensure"),l.$children("begn","ensr"),e.def(l,"$compile",$=function(){var e,t,r=this;return r.$push("try {"),o(r,"in_ensure",[],((e=function(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$body_sexp()))}).$$s=r,e.$$arity=0,e)),r.$line("} finally {"),o(r,"indent",[],((t=function(){var e,r=null==t.$$s?this:t.$$s;return null==r.level&&(r.level=n),c(r["$has_rescue_else?"]())?(r.$unshift("var $no_errors = true; "),r.$line("var $rescue_else_result;"),r.$line("if ($no_errors) { "),o(r,"indent",[],((e=function(){var t,r=null==e.$$s?this:e.$$s;return r.$line("$rescue_else_result = (function() {"),o(r,"indent",[],((t=function(){var e=null==t.$$s?this:t.$$s;return e.$line(e.$stmt(e.$rescue_else_code()))}).$$s=r,t.$$arity=0,t)),r.$line("})();")}).$$s=r,e.$$arity=0,e)),r.$line("}"),r.$line(r.$compiler().$process(r.$ensr_sexp(),r.level)),r.$line("if ($no_errors) { return $rescue_else_result; }")):r.$line(r.$compiler().$process(r.$ensr_sexp(),r.level))}).$$s=r,t.$$arity=0,t)),r.$line("}"),c(r["$wrap_in_closure?"]())?c(r.$scope().$await_encountered())?r.$wrap("(await (async function() { ","; })())"):r.$wrap("(function() { ","; })()"):n},$.$$arity=0),e.def(l,"$body_sexp",a=function(){var e=this;return c(e["$wrap_in_closure?"]())?e.$compiler().$returns(e.$begn()):e.$begn()},a.$$arity=0),e.def(l,"$ensr_sexp",i=function(){var e=this,t=n;return c(t=e.$ensr())?t:e.$s("nil")},i.$$arity=0),e.def(l,"$wrap_in_closure?",_=function(){var e=this,t=n,r=n;return c(t=c(r=e["$recv?"]())?r:e["$expr?"]())?t:e["$has_rescue_else?"]()},_.$$arity=0),e.def(l,"$rescue_else_code",u=function(){var e=this,t=n;return t=e.$scope().$rescue_else_sexp(),c(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t},u.$$arity=0)}(u[0],a(u,"Base"),u),function(r,$super,$){var a,i,u,l,d,p=s(r,$super,"RescueNode");[p].concat($);p.$$prototype.retry_id=n,p.$handle("rescue"),p.$children("body"),e.def(p,"$compile",a=function(){var r,$,a=this,i=n,s=n;return i=[o(a.$children()["$[]"](_(1,-1,!1)),"detect",[],(r=function(e){null==r.$$s||r.$$s;var t=n;return null==e&&(e=n),c(t=e)?e.$type()["$!="]("resbody"):t},r.$$s=a,r.$$arity=1,r))],o(a.$scope(),"rescue_else_sexp=",e.to_a(i)),i[t(i.length,1)],!1,c(a["$handle_rescue_else_manually?"]())&&a.$line("var $no_errors = true;"),o(a,"in_rescue",[a],(($=function(){var e,t,r,a=null==$.$$s?this:$.$$s;return a.$push("try {"),o(a,"indent",[],((e=function(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$body_code()))}).$$s=a,e.$$arity=0,e)),a.$line("} catch ($err) {"),o(a,"indent",[],((t=function(){var e,r=null==t.$$s?this:t.$$s;return c(r["$has_rescue_else?"]())&&r.$line("$no_errors = false;"),o(r.$children()["$[]"](_(1,-1,!1)),"each_with_index",[],((e=function(t,r){var $=null==e.$$s?this:e.$$s,a=n;return null==$.level&&($.level=n),null==t&&(t=n),null==r&&(r=n),c(c(a=t)?t.$type()["$=="]("resbody"):a)?(!0,r["$=="](0)||$.$push(" else "),$.$line($.$process(t,$.level))):n}).$$s=r,e.$$arity=2,e)),r.$push(" else { throw $err; }")}).$$s=a,t.$$arity=0,t)),a.$line("}"),c(a["$handle_rescue_else_manually?"]())&&(a.$push("finally {"),o(a,"indent",[],((r=function(){var e,t=null==r.$$s?this:r.$$s;return t.$line("if ($no_errors) { "),o(t,"indent",[],((e=function(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$rescue_else_code()))}).$$s=t,e.$$arity=0,e)),t.$line("}")}).$$s=a,r.$$arity=0,r)),a.$push("}")),c(a.$retry_id())?a.$wrap(a.$retry_id()+": do { "," break; } while(1)"):n}).$$s=a,$.$$arity=0,$)),c(c(s=a["$expr?"]())?s:a["$recv?"]())?c(a.$scope().$await_encountered())?a.$wrap("(await (async function() { ","})())"):a.$wrap("(function() { ","})()"):n},a.$$arity=0),e.def(p,"$body_code",i=function(){var e=this,t=n,r=n;return t=c(c(r=e.$body()["$nil?"]())?r:e.$body().$type()["$=="]("resbody"))?e.$s("nil"):e.$body(),c(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t},i.$$arity=0),e.def(p,"$rescue_else_code",u=function(){var e=this,t=n;return t=e.$scope().$rescue_else_sexp(),c(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t},u.$$arity=0),e.def(p,"$handle_rescue_else_manually?",l=function(){var e=this,t=n;return c(t=e["$in_ensure?"]()["$!"]())?e["$has_rescue_else?"]():t},l.$$arity=0),e.def(p,"$gen_retry_id",d=function(){var e=this,t=n;return e.retry_id=c(t=e.retry_id)?t:e.$scope().$gen_retry_id()},d.$$arity=0),p.$attr_reader("retry_id")}(u[0],a(u,"Base"),u),function(t,$super,r){var $,a,i,_=s(t,$super,"ResBodyNode");[_].concat(r);_.$handle("resbody"),_.$children("klasses_sexp","lvar","body"),e.def(_,"$compile",$=function(){var t,r=this;return r.$push("if (Opal.rescue($err, ",r.$expr(r.$klasses()),")) {"),o(r,"indent",[],((t=function(){var r,$=null==t.$$s?this:t.$$s;return c($.$lvar())&&$.$push($.$expr($.$lvar().$updated(n,[].concat(e.to_a($.$lvar().$children())).concat([$.$s("js_tmp","$err")])))),$.$line("try {"),o($,"indent",[],((r=function(){var e,t=null==r.$$s?this:r.$$s;return o(t,"in_resbody",[],((e=function(){var t=null==e.$$s?this:e.$$s;return t.$line(t.$stmt(t.$rescue_body()))}).$$s=t,e.$$arity=0,e))}).$$s=$,r.$$arity=0,r)),$.$line("} finally { Opal.pop_exception(); }")}).$$s=r,t.$$arity=0,t)),r.$line("}")},$.$$arity=0),e.def(_,"$klasses",a=function(){var e=this,t=n;return c(t=e.$klasses_sexp())?t:e.$s("array",e.$s("const",n,"StandardError"))},a.$$arity=0),e.def(_,"$rescue_body",i=function(){var e=this,t=n,r=n;return t=c(r=e.$body())?r:e.$s("nil"),c(e["$stmt?"]())||(t=e.$compiler().$returns(t)),t},i.$$arity=0)}(u[0],a(u,"Base"),u),function(t,$super,r){var $,a=s(t,$super,"RetryNode");[a].concat(r);return a.$handle("retry"),e.def(a,"$compile",$=function(){var e=this;return c(e["$in_resbody?"]())||e.$error("Invalid retry"),e.$push("continue "+e.$scope().$current_rescue().$gen_retry_id())},$.$$arity=0),n&&"compile"}(u[0],a(u,"Base"),u)}(u[0],u)}($[0],$)},Opal.modules["opal/nodes/case"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.send,c=e.truthy,_=e.range;return e.add_stubs(["$require","$handle","$children","$in_case","$compiler","$compile_code","$needs_closure?","$await_encountered","$scope","$wrap","$condition","$[]=","$case_stmt","$-","$add_local","$push","$expr","$each_with_index","$case_parts","$line","$type","$===","$returns","$==","$stmt","$!","$stmt?","$[]","$when_checks","$js_truthy","$s","$process","$body_code","$last"]),r.$require("opal/nodes/base"),function(r,$){var u=[i(r,"Opal")].concat($);return function(r,$){var u=[i(r,"Nodes")].concat($);return function(r,$super,$){var a,i,u,l,d,p=s(r,$super,"CaseNode");[p].concat($);p.$handle("case"),p.$children("condition"),e.def(p,"$compile",a=function(){var e,t=this;return o(t.$compiler(),"in_case",[],((e=function(){var t=null==e.$$s?this:e.$$s;return t.$compile_code(),c(t["$needs_closure?"]())?c(t.$scope().$await_encountered())?t.$wrap("(await (async function() {","})())"):t.$wrap("(function() {","})()"):n}).$$s=t,e.$$arity=0,e))},a.$$arity=0),e.def(p,"$compile_code",i=function(){var r,$=this,a=n,i=n,s=n;return a=!1,c($.$condition())&&(i=["cond",!0],o($.$case_stmt(),"[]=",e.to_a(i)),i[t(i.length,1)],$.$add_local("$case"),$.$push("$case = ",$.$expr($.$condition()),";")),o($.$case_parts(),"each_with_index",[],((r=function(e,t){var $=null==r.$$s?this:r.$$s,i=n;return null==e&&(e=n),null==t&&(t=n),c(e)?($.$line(),i=e.$type(),"when"["$==="](i)?(c($["$needs_closure?"]())&&(e=$.$compiler().$returns(e)),t["$=="](0)||$.$push("else "),$.$push($.$stmt(e))):(a=!0,c($["$needs_closure?"]())&&(e=$.$compiler().$returns(e)),$.$push("else {",$.$stmt(e),"}"))):n}).$$s=$,r.$$arity=2,r)),c(c(s=$["$needs_closure?"]())?a["$!"]():s)?($.$line(),$.$push("else { return nil }")):n},i.$$arity=0),e.def(p,"$needs_closure?",u=function(){return this["$stmt?"]()["$!"]()},u.$$arity=0),e.def(p,"$case_parts",l=function(){return this.$children()["$[]"](_(1,-1,!1))},l.$$arity=0),e.def(p,"$case_stmt",d=function(){return this.$compiler().$case_stmt()},d.$$arity=0)}(u[0],a(u,"Base"),u),function(t,$super,r){var $,a,i,u,l=s(t,$super,"WhenNode");[l].concat(r);return l.$$prototype.level=n,l.$handle("when"),l.$children("whens","body"),e.def(l,"$compile",$=function(){var e,t=this;return t.$push("if ("),o(t.$when_checks(),"each_with_index",[],((e=function(t,r){var $=null==e.$$s?this:e.$$s,a=n;return null==t&&(t=n),null==r&&(r=n),r["$=="](0)||$.$push(" || "),t.$type()["$=="]("splat")?($.$push("(function($splt) { for (var i = 0, ii = $splt.length; i < ii; i++) {"),c($.$case_stmt()["$[]"]("cond"))?$.$push("if ($splt[i]['$===']($case)) { return true; }"):$.$push("if (",$.$js_truthy(t),")) { return true; }"),$.$push("} return false; })(",$.$expr(t.$children()["$[]"](0)),")")):c($.$case_stmt()["$[]"]("cond"))?(a=$.$s("send",t,"===",$.$s("arglist",$.$s("js_tmp","$case"))),$.$push($.$expr(a))):$.$push($.$js_truthy(t))}).$$s=t,e.$$arity=2,e)),t.$push(") {",t.$process(t.$body_code(),t.level),"}")},$.$$arity=0),e.def(l,"$when_checks",a=function(){return this.$children()["$[]"](_(0,-2,!1))},a.$$arity=0),e.def(l,"$case_stmt",i=function(){return this.$compiler().$case_stmt()},i.$$arity=0),e.def(l,"$body_code",u=function(){var e=this,t=n;return c(t=e.$children().$last())?t:e.$s("nil")},u.$$arity=0),n&&"body_code"}(u[0],a(u,"Base"),u)}(u[0],u)}($[0],$)},Opal.modules["opal/nodes/super"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var n=e.top,a=[],i=e.nil,s=e.$$$,o=e.$$,c=e.module,_=e.klass,u=e.send2,l=e.find_super,d=e.slice,p=e.truthy,f=e.send;return e.add_stubs(["$require","$include?","$type","$s","$helper","$push","$compile_receiver","$compile_method_body","$compile_method_name","$compile_arguments","$compile_block_pass","$private","$def?","$scope","$find_parent_def","$to_s","$mid","$def_scope","$identify!","$method_id","$def_scope_identity","$defined_check_param","$allow_stubs","$super_chain","$join","$map","$implicit_arguments_param","$super_method_invocation","$iter?","$super_block_invocation","$raise","$handle","$wrap","$uses_block!","$compile_using_send","$==","$iter","$implicit_arglist","$block_name","$!","$<<","$new","$each","$children","$original_args","$[]","$meta","$===","$+","$[]=","$-","$>","$empty?"]),n.$require("opal/nodes/base"),function(n,a){var h=[c(n,"Opal")].concat(a);return function(n,a){var h=[c(n,"Nodes")].concat(a);return function(t,$super,r){var $,n,a,s,o,c,h,m,g,y,v,b,k=_(t,$super,"BaseSuperNode");[k].concat(r);k.$$prototype.sexp=k.$$prototype.def_scope=i,e.def(k,"$initialize",$=function(){var t,r,n,a=$.$$p,s=this,o=i,c=i,_=i,h=i;return a&&($.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(s,l(s,"initialize",$,!1,!0),"initialize",e.to_a(t),a),o=[].concat(e.to_a(s.sexp)),n=(n=(r=[].concat(e.to_a(o))).length-1)<0?0:n,c=d.call(r,0,n),_=null==r[n]?i:r[n],p(p(h=_)?["iter","block_pass"]["$include?"](_.$type()):h)?(s.iter=_,o=c):s.iter=s.$s("js_tmp","null"),s.arglist=f(s,"s",["arglist"].concat(e.to_a(o))),s.recvr=s.$s("self")},$.$$arity=-1),e.def(k,"$compile_using_send",n=function(){var e=this;return e.$helper("send2"),e.$push("$send2("),e.$compile_receiver(),e.$compile_method_body(),e.$compile_method_name(),e.$compile_arguments(),e.$compile_block_pass(),e.$push(")")},n.$$arity=0),k.$private(),e.def(k,"$def_scope",a=function(){var e=this,t=i;return e.def_scope=p(t=e.def_scope)?t:p(e.$scope()["$def?"]())?e.$scope():e.$scope().$find_parent_def()},a.$$arity=0),e.def(k,"$defined_check_param",s=function(){return"false"},s.$$arity=0),e.def(k,"$implicit_arguments_param",o=function(){return"false"},o.$$arity=0),e.def(k,"$method_id",c=function(){return this.$def_scope().$mid().$to_s()},c.$$arity=0),e.def(k,"$def_scope_identity",h=function(){var e=this;return e.$def_scope()["$identify!"](e.$def_scope().$mid())},h.$$arity=0),e.def(k,"$allow_stubs",m=function(){return"true"},m.$$arity=0),e.def(k,"$super_method_invocation",g=function(){var e=this;return e.$helper("find_super"),"$find_super(self, '"+e.$method_id()+"', "+e.$def_scope_identity()+", "+e.$defined_check_param()+", "+e.$allow_stubs()+")"},g.$$arity=0),e.def(k,"$super_block_invocation",y=function(){var t,r,$,n=this,a=i,s=i;return n.$helper("find_block_super"),r=n.$scope().$super_chain(),a=null==(t=e.to_ary(r))[0]?i:t[0],s=null==t[1]?i:t[1],"$find_block_super(self, "+(null==t[2]?i:t[2])+", ("+f(a,"map",[],($=function(e){null==$.$$s||$.$$s;return null==e&&(e=i),e+".$$def"},$.$$s=n,$.$$arity=1,$)).$join(" || ")+" || "+s+"), "+n.$defined_check_param()+", "+n.$implicit_arguments_param()+")"},y.$$arity=0),e.def(k,"$compile_method_body",v=function(){var e=this;return e.$push(", "),p(e.$scope()["$def?"]())?e.$push(e.$super_method_invocation()):p(e.$scope()["$iter?"]())?e.$push(e.$super_block_invocation()):e.$raise("super must be called from method body or block")},v.$$arity=0),e.def(k,"$compile_method_name",b=function(){var t,r,$=this,n=i;return p($.$scope()["$def?"]())?$.$push(", '"+$.$method_id()+"'"):p($.$scope()["$iter?"]())?(r=$.$scope().$super_chain(),null==(t=e.to_ary(r))[0]?i:t[0],null==t[1]?i:t[1],n=null==t[2]?i:t[2],$.$push(", "+n)):i},b.$$arity=0)}(h[0],o(h,"CallNode"),h),function(t,$super,r){var $,n,a,i=_(t,$super,"DefinedSuperNode");[i].concat(r);i.$handle("defined_super"),e.def(i,"$allow_stubs",$=function(){return"false"},$.$$arity=0),e.def(i,"$defined_check_param",n=function(){return"true"},n.$$arity=0),e.def(i,"$compile",a=function(){var e=this;return e.$compile_receiver(),e.$compile_method_body(),e.$wrap("((",') != null ? "super" : nil)')},a.$$arity=0)}(h[0],o(h,"BaseSuperNode"),h),function(t,$super,r){var $,n,a=_(t,$super,"SuperNode");[a].concat(r);a.$handle("super"),e.def(a,"$initialize",$=function(){var t,r=$.$$p,n=this;return r&&($.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(n,l(n,"initialize",$,!1,!0),"initialize",e.to_a(t),r),p(n.$scope()["$def?"]())?n.$scope()["$uses_block!"]():i},$.$$arity=-1),e.def(a,"$compile",n=function(){return this.$compile_using_send()},n.$$arity=0)}(h[0],o(h,"BaseSuperNode"),h),function(n,$super,a){var c,d,h,m,g,y=_(n,$super,"ZsuperNode"),v=[y].concat(a);return y.$handle("zsuper"),e.def(y,"$implicit_arguments_param",c=function(){return"true"},c.$$arity=0),e.def(y,"$initialize",d=function(){var t,r=d.$$p,$=this;return r&&(d.$$p=null),t=e.slice.call(arguments,0,arguments.length),u($,l($,"initialize",d,!1,!0),"initialize",e.to_a(t),r),$.$iter().$type()["$=="]("iter")?i:($.$scope()["$uses_block!"](),$.iter=$.$s("js_tmp","$iter"))},d.$$arity=-1),e.def(y,"$compile",h=function(){var t=this,r=i,$=i,n=i;return p(t.$def_scope())&&(r=t.$implicit_arglist(), +p(p($=t.$block_name())?t.$iter()["$!"]():$)&&(n=t.$s("block_pass",t.$s("lvar",t.$block_name())),r["$<<"](n)),t.arglist=f(t,"s",["arglist"].concat(e.to_a(r)))),t.$compile_using_send()},h.$$arity=0),e.def(y,"$implicit_arglist",m=function(){var n,a=this,s=i,c=i,_=i;return s=[],c=[],_=o(v,"Hash").$new(0),f(a.$def_scope().$original_args().$children(),"each",[],((n=function(a){var o=null==n.$$s?this:n.$$s,u=i,l=i,d=i,h=i;return null==a&&(a=i),u=a.$meta()["$[]"]("arg_name"),l=a.$type(),"arg"["$==="](l)||"optarg"["$==="](l)?(d=o.$s("lvar",u),u["$[]"](0)["$=="]("_")&&(h=[u,t(_["$[]"](u),1)],f(_,"[]=",e.to_a(h)),h[r(h.length,1)],p($(_["$[]"](u),1))&&(d=o.$s("js_tmp",u+"_$"+_["$[]"](u)))),s["$<<"](d)):"restarg"["$==="](l)?(d=p(u)?o.$s("lvar",u):o.$s("js_tmp","$rest_arg"),s["$<<"](o.$s("splat",d))):"kwarg"["$==="](l)||"kwoptarg"["$==="](l)?c["$<<"](o.$s("pair",o.$s("sym",u),o.$s("lvar",u))):"kwrestarg"["$==="](l)?(d=p(u)?o.$s("lvar",u):o.$s("js_tmp","$kw_rest_arg"),c["$<<"](o.$s("kwsplat",d))):i}).$$s=a,n.$$arity=1,n)),p(c["$empty?"]())||s["$<<"](f(a,"s",["hash"].concat(e.to_a(c)))),s},m.$$arity=0),e.def(y,"$block_name",g=function(){var e=this,t=i;return t=e.$def_scope(),s(s(o(v,"Opal"),"Nodes"),"IterNode")["$==="](t)?e.$def_scope().$block_name():s(s(o(v,"Opal"),"Nodes"),"DefNode")["$==="](t)?e.$def_scope().$block_name():e.$raise("Don't know what to do with super in the scope "+e.$def_scope())},g.$$arity=0),i&&"block_name"}(h[0],o(h,"SuperNode"),h)}(h[0],h)}(a[0],a)},Opal.modules["opal/version"]=function(e){e.top;var t=[],r=(e.nil,e.$$$,e.$$,e.module);return function(t,$){var n=[r(t,"Opal")].concat($);return e.const_set(n[0],"VERSION","1.3.2")}(t[0],t)},Opal.modules["opal/nodes/top"]=function(e){var t=e.top,r=[],$=e.nil,n=e.$$$,a=e.$$,i=e.module,s=e.klass,o=e.send,c=e.truthy;return e.add_stubs(["$require","$handle","$children","$push","$version_comment","$in_scope","$use_strict?","$compiler","$line","$stmt","$stmts","$is_a?","$eval?","$add_temp","$add_used_helpers","$add_used_operators","$to_vars","$scope","$compile_method_stubs","$compile_irb_vars","$compile_end_construct","$opening","$closing","$await_encountered","$requirable?","$unshift","$inspect","$module_name","$file","$esm?","$returns","$body","$irb?","$each","$to_a","$helpers","$operator_helpers","$[]","$method_missing?","$method_calls","$join","$map","$empty?","$eof_content"]),t.$require("pathname"),t.$require("opal/version"),t.$require("opal/nodes/scope"),function(t,r){var _=[i(t,"Opal")].concat(r);return function(t,r){var _=[i(t,"Nodes")].concat(r);return function(t,$super,r){var i,_,u,l,d,p,f,h,m,g,y=s(t,$super,"TopNode"),v=[y].concat(r);return y.$handle("top"),y.$children("body"),e.def(y,"$compile",i=function(){var e,t=this;return t.$push(t.$version_comment()),o(t,"in_scope",[],((e=function(){var t=null==e.$$s?this:e.$$s,r=$;return c(t.$compiler()["$use_strict?"]())&&t.$line('"use strict";'),r=t.$stmt(t.$stmts()),c(r["$is_a?"](a(v,"Array")))||(r=[r]),c(t.$compiler()["$eval?"]())?t.$add_temp("$nesting = self.$$is_a_module ? [self] : [self.$$class]"):(t.$add_temp("self = Opal.top"),t.$add_temp("$nesting = []")),t.$add_temp("nil = Opal.nil"),t.$add_temp("$$$ = Opal.$$$"),t.$add_temp("$$ = Opal.$$"),t.$add_used_helpers(),t.$add_used_operators(),t.$line(t.$scope().$to_vars()),t.$compile_method_stubs(),t.$compile_irb_vars(),t.$compile_end_construct(),t.$line(r)}).$$s=t,e.$$arity=0,e)),t.$opening(),t.$closing()},i.$$arity=0),e.def(y,"$opening",_=function(){var e=this,t=$;return c(e.$await_encountered())&&(t="async "),c(e.$compiler()["$requirable?"]())?e.$unshift("Opal.modules["+n(a(v,"Opal"),"Compiler").$module_name(e.$compiler().$file()).$inspect()+"] = "+t+"function(Opal) {"):c(e.$compiler()["$eval?"]())?e.$unshift("("+t+"function(Opal, self) {"):c(e.$compiler()["$esm?"]())?e.$unshift("export default Opal.queue("+t+"function(Opal) {"):e.$unshift("Opal.queue("+t+"function(Opal) {")},_.$$arity=0),e.def(y,"$closing",u=function(){var e=this;return c(e.$compiler()["$requirable?"]())?e.$line("};\n"):c(e.$compiler()["$eval?"]())?e.$line("})(Opal, self);"):e.$line("});\n")},u.$$arity=0),e.def(y,"$stmts",l=function(){var e=this;return e.$compiler().$returns(e.$body())},l.$$arity=0),e.def(y,"$compile_irb_vars",d=function(){var e=this;return c(e.$compiler()["$irb?"]())?e.$line("if (!Opal.irb_vars) { Opal.irb_vars = {}; }"):$},d.$$arity=0),e.def(y,"$add_used_helpers",p=function(){var e,t=this;return o(t.$compiler().$helpers().$to_a(),"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s;return null==t&&(t=$),r.$add_temp("$"+t+" = Opal."+t)}).$$s=t,e.$$arity=1,e))},p.$$arity=0),e.def(y,"$add_used_operators",f=function(){var e,t=this,r=$;return r=t.$compiler().$operator_helpers().$to_a(),o(r,"each",[],((e=function(t){var r=null==e.$$s?this:e.$$s,i=$;return null==t&&(t=$),i=n(n(a(v,"Nodes"),"CallNode"),"OPERATORS")["$[]"](t),r.$line("function $rb_"+i+"(lhs, rhs) {"),r.$line(" return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs "+t+" rhs : lhs['$"+t+"'](rhs);"),r.$line("}")}).$$s=t,e.$$arity=1,e))},f.$$arity=0),e.def(y,"$compile_method_stubs",h=function(){var e,t=this,r=$,n=$;return c(t.$compiler()["$method_missing?"]())?(r=t.$compiler().$method_calls(),n=o(r.$to_a(),"map",[],(e=function(t){null==e.$$s||e.$$s;return null==t&&(t=$),"'$"+t+"'"},e.$$s=t,e.$$arity=1,e)).$join(", "),c(n["$empty?"]())?$:t.$line("Opal.add_stubs(["+n+"]);")):$},h.$$arity=0),e.def(y,"$compile_end_construct",m=function(){var e=this,t=$;return c(t=e.$compiler().$eof_content())?(e.$line("var $__END__ = Opal.Object.$new();"),e.$line("$__END__.$read = function() { return "+t.$inspect()+"; };")):$},m.$$arity=0),e.def(y,"$version_comment",g=function(){return"/* Generated by Opal "+n(a(v,"Opal"),"VERSION")+" */"},g.$$arity=0),$&&"version_comment"}(_[0],a(_,"ScopeNode"),_)}(_[0],_)}(r[0],r)},Opal.modules["opal/nodes/while"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.send,c=e.truthy;return e.add_stubs(["$require","$handle","$children","$js_truthy","$test","$with_temp","$in_while","$compiler","$wrap_in_closure?","$[]=","$while_loop","$-","$indent","$stmt","$body","$uses_redo?","$compile_with_redo","$compile_without_redo","$await_encountered","$scope","$wrap","$private","$push","$compile_while","$while_open","$while_close","$line","$[]","$expr?","$recv?"]),r.$require("opal/nodes/base"),function(r,$){var _=[i(r,"Opal")].concat($);return function(r,$){var _=[i(r,"Nodes")].concat($);return function(r,$super,$){var a,i,_,u,l,d,p,f,h=s(r,$super,"WhileNode");[h].concat($);h.$handle("while"),h.$children("test","body"),e.def(h,"$compile",a=function(){var r,$=this,a=n;return a=$.$js_truthy($.$test()),o($,"with_temp",[],((r=function($){var i,s=null==r.$$s?this:r.$$s;return null==$&&($=n),o(s.$compiler(),"in_while",[],((i=function(){var r,s=null==i.$$s?this:i.$$s,_=n,u=n;return c(s["$wrap_in_closure?"]())&&(_=["closure",!0],o(s.$while_loop(),"[]=",e.to_a(_)),_[t(_.length,1)]),_=["redo_var",$],o(s.$while_loop(),"[]=",e.to_a(_)),_[t(_.length,1)],u=o(s,"indent",[],((r=function(){var e=null==r.$$s?this:r.$$s;return e.$stmt(e.$body())}).$$s=s,r.$$arity=0,r)),c(s["$uses_redo?"]())?s.$compile_with_redo(a,u,$):s.$compile_without_redo(a,u)}).$$s=s,i.$$arity=0,i))}).$$s=$,r.$$arity=1,r)),c($["$wrap_in_closure?"]())?c($.$scope().$await_encountered())?$.$wrap("(await (async function() {","; return nil; })())"):$.$wrap("(function() {","; return nil; })()"):n},a.$$arity=0),h.$private(),e.def(h,"$compile_with_redo",i=function(e,t,r){var $=this;return $.$push(r+" = false; "),$.$compile_while([r," || ",e],[r+" = false;",t])},i.$$arity=3),e.def(h,"$compile_without_redo",_=function(e,t){return this.$compile_while([e],[t])},_.$$arity=2),e.def(h,"$compile_while",u=function(t,r){var $,n=this;return o(n,"push",[n.$while_open()].concat(e.to_a(t)).concat([n.$while_close()])),o(n,"indent",[],(($=function(){var t=null==$.$$s?this:$.$$s;return o(t,"line",e.to_a(r))}).$$s=n,$.$$arity=0,$)),n.$line("}")},u.$$arity=2),e.def(h,"$while_open",l=function(){return"while ("},l.$$arity=0),e.def(h,"$while_close",d=function(){return") {"},d.$$arity=0),e.def(h,"$uses_redo?",p=function(){return this.$while_loop()["$[]"]("use_redo")},p.$$arity=0),e.def(h,"$wrap_in_closure?",f=function(){var e=this,t=n;return c(t=e["$expr?"]())?t:e["$recv?"]()},f.$$arity=0)}(_[0],a(_,"Base"),_),function(t,$super,r){var $,n,a=s(t,$super,"UntilNode");[a].concat(r);a.$handle("until"),a.$private(),e.def(a,"$while_open",$=function(){return"while (!("},$.$$arity=0),e.def(a,"$while_close",n=function(){return")) {"},n.$$arity=0)}(_[0],a(_,"WhileNode"),_),function(t,$super,r){var $,n,a=s(t,$super,"WhilePostNode");[a].concat(r);a.$handle("while_post"),a.$private(),e.def(a,"$compile_while",$=function(t,r){var $,n=this;return n.$push("do {"),o(n,"indent",[],(($=function(){var t=null==$.$$s?this:$.$$s;return o(t,"line",e.to_a(r))}).$$s=n,$.$$arity=0,$)),o(n,"line",["} ",n.$while_open()].concat(e.to_a(t)).concat([n.$while_close()]))},$.$$arity=2),e.def(a,"$while_close",n=function(){return");"},n.$$arity=0)}(_[0],a(_,"WhileNode"),_),function(t,$super,r){var $,a,i=s(t,$super,"UntilPostNode");[i].concat(r);return i.$handle("until_post"),i.$private(),e.def(i,"$while_open",$=function(){return"while(!("},$.$$arity=0),e.def(i,"$while_close",a=function(){return"));"},a.$$arity=0),n&&"while_close"}(_[0],a(_,"WhilePostNode"),_)}(_[0],_)}($[0],$)},Opal.modules["opal/nodes/hash"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.klass,o=e.send2,c=e.find_super,_=e.send,u=e.truthy,l=e.hash2;return e.add_stubs(["$require","$handle","$attr_accessor","$each","$children","$type","$===","$<<","$[]","$all?","$keys","$include?","$has_kwsplat","$compile_merge","$simple_keys?","$compile_hash2","$compile_hash","$helper","$==","$empty?","$expr","$s","$each_with_index","$push","$wrap","$times","$size","$inspect","$to_s","$values","$[]=","$-","$join","$value"]),r.$require("opal/nodes/base"),function(r,$){var d=[i(r,"Opal")].concat($);return function(r,$){var d=[i(r,"Nodes")].concat($);return function(r,$super,$){var a,i,d,p,f,h,m=s(r,$super,"HashNode");[m].concat($);m.$handle("hash"),m.$attr_accessor("has_kwsplat","keys","values"),e.def(m,"$initialize",a=function(){var t,r,$=a.$$p,i=this;return $&&(a.$$p=null),t=e.slice.call(arguments,0,arguments.length),o(i,c(i,"initialize",a,!1,!0),"initialize",e.to_a(t),$),i.has_kwsplat=!1,i.keys=[],i.values=[],_(i.$children(),"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s,$=n;return null==t.keys&&(t.keys=n),null==t.values&&(t.values=n),null==e&&(e=n),$=e.$type(),"kwsplat"["$==="]($)?t.has_kwsplat=!0:"pair"["$==="]($)?(t.keys["$<<"](e.$children()["$[]"](0)),t.values["$<<"](e.$children()["$[]"](1))):n}).$$s=i,r.$$arity=1,r))},a.$$arity=-1),e.def(m,"$simple_keys?",i=function(){var e,t=this;return _(t.$keys(),"all?",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=n),["sym","str"]["$include?"](t.$type())}).$$s=t,e.$$arity=1,e))},i.$$arity=0),e.def(m,"$compile",d=function(){var e=this;return u(e.$has_kwsplat())?e.$compile_merge():u(e["$simple_keys?"]())?e.$compile_hash2():e.$compile_hash()},d.$$arity=0),e.def(m,"$compile_merge",p=function(){var t,r,$,a=this,i=n,s=n;return a.$helper("hash"),i=(t=[[],[]])[0],s=t[1],_(a.$children(),"each",[],((r=function(t){var $=null==r.$$s?this:r.$$s;return null==t&&(t=n),t.$type()["$=="]("kwsplat")?(u(s["$empty?"]())||i["$<<"]($.$expr(_($,"s",["hash"].concat(e.to_a(s))))),i["$<<"]($.$expr(t)),s=[]):s["$<<"](t)}).$$s=a,r.$$arity=1,r)),u(s["$empty?"]())||i["$<<"](a.$expr(_(a,"s",["hash"].concat(e.to_a(s))))),_(i,"each_with_index",[],(($=function(e,t){var r=null==$.$$s?this:$.$$s;return null==e&&(e=n),null==t&&(t=n),t["$=="](0)?r.$push(e):r.$push(".$merge(",e,")")}).$$s=a,$.$$arity=2,$))},p.$$arity=0),e.def(m,"$compile_hash",f=function(){var t,r=this;return r.$helper("hash"),_(r.$children(),"each_with_index",[],((t=function(r,$){var a,i,s=null==t.$$s?this:t.$$s,o=n,c=n;return null==r&&(r=n),null==$&&($=n),i=r.$children(),o=null==(a=e.to_ary(i))[0]?n:a[0],c=null==a[1]?n:a[1],$["$=="](0)||s.$push(", "),s.$push(s.$expr(o),", ",s.$expr(c))}).$$s=r,t.$$arity=2,t)),r.$wrap("$hash(",")")},f.$$arity=0),e.def(m,"$compile_hash2",h=function(){var r,$,a,i=this,s=n,o=n;return r=[l([],{}),[]],s=r[0],o=r[1],i.$helper("hash2"),_(i.$keys().$size(),"times",[],(($=function(r){var a=null==$.$$s?this:$.$$s,i=n,c=n;return null==r&&(r=n),i=a.$keys()["$[]"](r).$children()["$[]"](0).$to_s().$inspect(),u(s["$include?"](i))||o["$<<"](i),c=[i,a.$expr(a.$values()["$[]"](r))],_(s,"[]=",e.to_a(c)),c[t(c.length,1)]}).$$s=i,$.$$arity=1,$)),_(o,"each_with_index",[],((a=function(e,t){var r=null==a.$$s?this:a.$$s;return null==e&&(e=n),null==t&&(t=n),t["$=="](0)||r.$push(", "),r.$push(e+": "),r.$push(s["$[]"](e))}).$$s=i,a.$$arity=2,a)),i.$wrap("$hash2(["+o.$join(", ")+"], {","})")},h.$$arity=0)}(d[0],a(d,"Base"),d),function(t,$super,r){var $,a=s(t,$super,"KwSplatNode");[a].concat(r);return a.$handle("kwsplat"),a.$children("value"),e.def(a,"$compile",$=function(){var e=this;return e.$push("Opal.to_hash(",e.$expr(e.$value()),")")},$.$$arity=0),n&&"compile"}(d[0],a(d,"Base"),d)}(d[0],d)}($[0],$)},Opal.modules["opal/nodes/array"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy,o=e.send;return e.add_stubs(["$require","$handle","$empty?","$children","$push","$each","$==","$type","$expr","$<<","$fragment"]),t.$require("opal/nodes/base"),function(t,r){var c=[a(t,"Opal")].concat(r);return function(t,r){var c=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ArrayNode");[a].concat(r);return a.$handle("array"),e.def(a,"$compile",n=function(){var e,t,r=this,n=$,a=$,i=$;return s(r.$children()["$empty?"]())?r.$push("[]"):(n=(e=[[],[]])[0],a=e[1],o(r.$children(),"each",[],((t=function(e){var r=null==t.$$s?this:t.$$s,i=$,o=$;return null==e&&(e=$),i=e.$type()["$=="]("splat"),o=r.$expr(e),s(i)?(s(a["$empty?"]())?s(n["$empty?"]())?n["$<<"](r.$fragment("[].concat("))["$<<"](o)["$<<"](r.$fragment(")")):n["$<<"](r.$fragment(".concat("))["$<<"](o)["$<<"](r.$fragment(")")):(s(n["$empty?"]())?n["$<<"](r.$fragment("["))["$<<"](a)["$<<"](r.$fragment("]")):n["$<<"](r.$fragment(".concat(["))["$<<"](a)["$<<"](r.$fragment("])")),n["$<<"](r.$fragment(".concat("))["$<<"](o)["$<<"](r.$fragment(")"))),a=[]):(s(a["$empty?"]())||a["$<<"](r.$fragment(", ")),a["$<<"](o))}).$$s=r,t.$$arity=1,t)),s(a["$empty?"]())||(i=[r.$fragment("["),a,r.$fragment("]")],s(n["$empty?"]())?n=i:n.$push([r.$fragment(".concat("),i,r.$fragment(")")])),r.$push(n))},n.$$arity=0),$&&"compile"}(c[0],n(c,"Base"),c)}(c[0],c)}(r[0],r)},Opal.modules["opal/nodes/defined"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.truthy,o=e.slice,c=e.send,_=e.range;return e.add_stubs(["$require","$handle","$children","$type","$value","$===","$push","$inspect","$to_s","$==","$size","$[]","$compile_defined_send","$wrap","$compile_defined_ivar","$compile_defined_super","$compile_defined_yield","$compile_defined_xstr","$compile_defined_const","$compile_defined_cvar","$compile_defined_gvar","$compile_defined_back_ref","$compile_defined_nth_ref","$compile_defined_array","$respond_to?","$__send__","$new_temp","$scope","$expr","$wrap_with_try_catch","$mid_to_jsid","$compile_defined","$compile_send_recv_doesnt_raise","$each","$s","$uses_block!","$block_name","$find_parent_def","$nil?","$class_variable_owner","$helper","$include?","$each_with_index"]),t.$require("opal/nodes/base"),function(t,r){var u=[a(t,"Opal")].concat(r);return function(t,r){var u=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a,u,l,d,p,f,h,m,g,y,v,b,k,x,w=i(t,$super,"DefinedNode");[w].concat(r);return w.$handle("defined?"),w.$children("value"),e.def(w,"$compile",n=function(){var e=this,t=$,r=$;return t=e.$value().$type(),"self"["$==="](t)||"nil"["$==="](t)||"false"["$==="](t)||"true"["$==="](t)?e.$push(e.$value().$type().$to_s().$inspect()):"lvasgn"["$==="](t)||"ivasgn"["$==="](t)||"gvasgn"["$==="](t)||"cvasgn"["$==="](t)||"casgn"["$==="](t)||"op_asgn"["$==="](t)||"or_asgn"["$==="](t)||"and_asgn"["$==="](t)?e.$push("'assignment'"):"lvar"["$==="](t)?e.$push("'local-variable'"):"begin"["$==="](t)?s(s(r=e.$value().$children().$size()["$=="](1))?e.$value().$children()["$[]"](0).$type()["$=="]("masgn"):r)?e.$push("'assignment'"):e.$push("'expression'"):"send"["$==="](t)?(e.$compile_defined_send(e.$value()),e.$wrap("("," ? 'method' : nil)")):"ivar"["$==="](t)?(e.$compile_defined_ivar(e.$value()),e.$wrap("("," ? 'instance-variable' : nil)")):"zsuper"["$==="](t)||"super"["$==="](t)?e.$compile_defined_super():"yield"["$==="](t)?(e.$compile_defined_yield(),e.$wrap("("," ? 'yield' : nil)")):"xstr"["$==="](t)?e.$compile_defined_xstr(e.$value()):"const"["$==="](t)?(e.$compile_defined_const(e.$value()),e.$wrap("("," ? 'constant' : nil)")):"cvar"["$==="](t)?(e.$compile_defined_cvar(e.$value()),e.$wrap("("," ? 'class variable' : nil)")):"gvar"["$==="](t)?(e.$compile_defined_gvar(e.$value()),e.$wrap("("," ? 'global-variable' : nil)")):"back_ref"["$==="](t)?(e.$compile_defined_back_ref(),e.$wrap("("," ? 'global-variable' : nil)")):"nth_ref"["$==="](t)?(e.$compile_defined_nth_ref(),e.$wrap("("," ? 'global-variable' : nil)")):"array"["$==="](t)?(e.$compile_defined_array(e.$value()),e.$wrap("("," ? 'expression' : nil)")):e.$push("'expression'")},n.$$arity=0),e.def(w,"$compile_defined",a=function(e){var t=this,r=$,n=$;return r=e.$type(),s(t["$respond_to?"]("compile_defined_"+r))?t.$__send__("compile_defined_"+r,e):(n=t.$scope().$new_temp(),t.$push("("+n+" = ",t.$expr(e),")"),n)},a.$$arity=1),e.def(w,"$wrap_with_try_catch",u=function(e){var t=this,r=$;return r=t.$scope().$new_temp(),t.$push("("+r+" = (function() { try {"),t.$push(" return "+e+";"),t.$push("} catch ($err) {"),t.$push(" if (Opal.rescue($err, [Opal.Exception])) {"),t.$push(" try {"),t.$push(" return false;"),t.$push(" } finally { Opal.pop_exception() }"),t.$push(" } else { throw $err; }"),t.$push("}})())"),r},u.$$arity=1),e.def(w,"$compile_send_recv_doesnt_raise",l=function(e){return this.$wrap_with_try_catch(e)},l.$$arity=1),e.def(w,"$compile_defined_send",d=function(t){var r,n,a=this,i=$,_=$,u=$,l=$,d=$,p=$,f=$,h=$;return i=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],_=null==r[1]?$:r[1],u=o.call(r,2),l=a.$mid_to_jsid(_.$to_s()),s(i)?(d=a.$compile_defined(i),a.$push(" && "),i.$type()["$=="]("send")&&(d=a.$compile_send_recv_doesnt_raise(d),a.$push(" && ")),p=a.$scope().$new_temp(),a.$push("("+p+" = ",d,", "+p+") && ")):p="self",f=a.$scope().$new_temp(),a.$push("("+f+" = "+p+") && "),h=a.$scope().$new_temp(),a.$push("((("+h+" = "+f+l+") && !"+h+".$$stub)"),a.$push(" || "+f+"['$respond_to_missing?']('"+_+"'))"),c(u,"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s,r=$;return null==e&&(e=$),r=e.$type(),"block_pass"["$==="](r)?$:(t.$push(" && "),t.$compile_defined(e))}).$$s=a,n.$$arity=1,n)),a.$wrap("(",")"),h+"()"},d.$$arity=1),e.def(w,"$compile_defined_ivar",p=function(e){var t=this,r=$,n=$;return r=e.$children()["$[]"](0).$to_s()["$[]"](_(1,-1,!1)),n=t.$scope().$new_temp(),t.$push("("+n+" = self['"+r+"'], "+n+" != null && "+n+" !== nil)"),n},p.$$arity=1),e.def(w,"$compile_defined_super",f=function(){var e=this;return e.$push(e.$expr(e.$s("defined_super")))},f.$$arity=0),e.def(w,"$compile_defined_yield",h=function(){var e=this,t=$,r=$;return e.$scope()["$uses_block!"](),t=s(r=e.$scope().$block_name())?r:e.$scope().$find_parent_def().$block_name(),e.$push("("+t+" != null && "+t+" !== nil)"),t},h.$$arity=0),e.def(w,"$compile_defined_xstr",m=function(e){var t=this;return t.$push("(typeof(",t.$expr(e),') !== "undefined")')},m.$$arity=1),e.def(w,"$compile_defined_const",g=function(t){var r,n=this,a=$,i=$,o=$,c=$;return a=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],i=null==r[1]?$:r[1],o=n.$scope().$new_temp(),s(a["$nil?"]())?n.$push("("+o+" = $$($nesting, '"+i+"', 'skip_raise'))"):a["$=="](n.$s("cbase"))?n.$push("("+o+" = $$$('::', '"+i+"', 'skip_raise'))"):(c=n.$compile_defined(a),n.$push(" && ("+o+" = $$$("+c+", '"+i+"', 'skip_raise'))")),o},g.$$arity=1),e.def(w,"$compile_defined_cvar",y=function(t){var r,n=this,a=$,i=$;return a=null==(r=[].concat(e.to_a(t)))[0]?$:r[0],null==r[1]?$:r[1],i=n.$scope().$new_temp(),n.$push("("+i+" = "+n.$class_variable_owner()+".$$cvars['"+a+"'], "+i+" != null)"),i},y.$$arity=1),e.def(w,"$compile_defined_gvar",v=function(e){var t=this,r=$,n=$;return t.$helper("gvars"),r=e.$children()["$[]"](0).$to_s()["$[]"](_(1,-1,!1)),n=t.$scope().$new_temp(),s(["~","!"]["$include?"](r))?t.$push("("+n+" = ",t.$expr(e)," || true)"):t.$push("("+n+" = $gvars["+r.$inspect()+"], "+n+" != null)"),n},v.$$arity=1),e.def(w,"$compile_defined_back_ref",b=function(){var e=this,t=$;return e.$helper("gvars"),t=e.$scope().$new_temp(),e.$push("("+t+" = $gvars['~'], "+t+" != null && "+t+" !== nil)"),t},b.$$arity=0),e.def(w,"$compile_defined_nth_ref",k=function(){var e=this,t=$;return e.$helper("gvars"),t=e.$scope().$new_temp(),e.$push("("+t+" = $gvars['~'], "+t+" != null && "+t+" != nil)"),t},k.$$arity=0),e.def(w,"$compile_defined_array",x=function(e){var t,r=this;return c(e.$children(),"each_with_index",[],((t=function(e,r){var n=null==t.$$s?this:t.$$s;return null==e&&(e=$),null==r&&(r=$),r["$=="](0)||n.$push(" && "),n.$compile_defined(e)}).$$s=r,t.$$arity=2,t))},x.$$arity=1),$&&"compile_defined_array"}(u[0],n(u,"Base"),u)}(u[0],u)}(r[0],r)},Opal.modules["opal/nodes/masgn"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var $=e.top,n=[],a=e.nil,i=(e.$$$,e.$$),s=e.module,o=e.klass,c=e.truthy,_=e.send;return e.add_stubs(["$require","$freeze","$handle","$children","$new_temp","$scope","$==","$type","$rhs","$push","$expr","$any?","$size","$compile_masgn","$lhs","$queue_temp","$take_while","$!=","$drop","$each_with_index","$compile_assignment","$empty?","$shift","$[]","$helper","$<<","$dup","$s","$!","$>=","$updated","$include?","$+","$last","$raise"]),$.$require("opal/nodes/base"),function($,n){var u=[s($,"Opal")].concat(n);return function($,n){var u=[s($,"Nodes")].concat(n);return function($,$super,n){var s,u,l,d=o($,$super,"MassAssignNode"),p=[d].concat(n);return e.const_set(p[0],"SIMPLE_ASSIGNMENT",["lvasgn","ivasgn","lvar","gvasgn","cdecl","casgn"].$freeze()),d.$handle("masgn"),d.$children("lhs","rhs"),e.def(d,"$compile",s=function(){var e,t=this,r=a,$=a,n=a;return r=t.$scope().$new_temp(),t.$rhs().$type()["$=="]("array")?(t.$push(r+" = ",t.$expr(t.$rhs())),$=c(_(t.$rhs().$children(),"any?",[],((e=function(t){return null==e.$$s||e.$$s,null==t&&(t=a),t.$type()["$=="]("splat")}).$$s=t,e.$$arity=1,e)))?a:t.$rhs().$children().$size(),t.$compile_masgn(t.$lhs().$children(),r,$),t.$push(", "+r)):(t.$rhs().$type()["$=="]("begin"),n=t.$scope().$new_temp(),t.$push(n+" = ",t.$expr(t.$rhs())),t.$push(", "+r+" = Opal.to_ary("+n+")"),t.$compile_masgn(t.$lhs().$children(),r),t.$push(", "+n),t.$scope().$queue_temp(n)),t.$scope().$queue_temp(r)},s.$$arity=0),e.def(d,"$compile_masgn",u=function(e,t,r){var $,n,i,s=this,o=a,u=a,l=a,d=a,p=a;return null==r&&(r=a),o=_(e,"take_while",[],(($=function(e){null==$.$$s||$.$$s;return null==e&&(e=a),e.$type()["$!="]("splat")}).$$s=s,$.$$arity=1,$)),u=e.$drop(o.$size()),_(o,"each_with_index",[],((n=function(e,$){var i=null==n.$$s?this:n.$$s;return null==e&&(e=a),null==$&&($=a),i.$compile_assignment(e,t,$,r)}).$$s=s,n.$$arity=2,n)),c(u["$empty?"]())?a:(l=u.$shift(),c(u["$empty?"]())?c(d=l.$children()["$[]"](0))?(s.$helper("slice"),d=d.$dup()["$<<"](s.$s("js_tmp","$slice.call("+t+", "+o.$size()+")")),s.$push(", "),s.$push(s.$expr(d))):a:(p=s.$scope().$new_temp(),s.$push(", "+p+" = "+t+".length - "+u.$size()),s.$push(", "+p+" = ("+p+" < "+o.$size()+") ? "+o.$size()+" : "+p),c(d=l.$children()["$[]"](0))&&(s.$helper("slice"),d=d.$dup()["$<<"](s.$s("js_tmp","$slice.call("+t+", "+o.$size()+", "+p+")")),s.$push(", "),s.$push(s.$expr(d))),_(u,"each_with_index",[],((i=function(e,r){var $=null==i.$$s?this:i.$$s;return null==e&&(e=a),null==r&&(r=a),r["$=="](0)?$.$compile_assignment(e,t,p):$.$compile_assignment(e,t,p+" + "+r)}).$$s=s,i.$$arity=2,i)),s.$scope().$queue_temp(p)))},u.$$arity=-3),e.def(d,"$compile_assignment",l=function(e,$,n,s){var o=this,_=a,u=a,l=a,d=a;if(null==s&&(s=a),_=c(c(u=s["$!"]())?u:t(n,s))?o.$s("js_tmp","("+$+"["+n+"] == null ? nil : "+$+"["+n+"])"):o.$s("js_tmp",$+"["+n+"]"),l=e.$updated(),c(i(p,"SIMPLE_ASSIGNMENT")["$include?"](e.$type())))l=l.$updated(a,r(l.$children(),[_]));else if(e.$type()["$=="]("send"))l=l.$updated(a,r(l.$children(),[_]));else if(e.$type()["$=="]("attrasgn"))l.$last()["$<<"](_);else{if(e.$type()["$=="]("mlhs"))return d=o.$scope().$new_temp(),o.$push(", ("+d+" = Opal.to_ary("+_.$children()["$[]"](0)+")"),o.$compile_masgn(e.$children(),d),o.$push(")"),o.$scope().$queue_temp(d),a;o.$raise("Bad child node in masgn LHS: "+e+". LHS: "+o.$lhs())}return o.$push(", "),o.$push(o.$expr(l))},l.$$arity=-4),a&&"compile_assignment"}(u[0],i(u,"Base"),u)}(u[0],u)}(n[0],n)},Opal.modules["opal/nodes/arglist"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.send,o=e.truthy;return e.add_stubs(["$require","$handle","$each","$children","$==","$type","$expr","$empty?","$<<","$fragment","$push"]),t.$require("opal/nodes/base"),function(t,r){var c=[a(t,"Opal")].concat(r);return function(t,r){var c=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"ArglistNode");[a].concat(r);return a.$handle("arglist"),e.def(a,"$compile",n=function(){var t,r,n=this,a=$,i=$,c=$;return a=(t=[[],[]])[0],i=t[1],s(n.$children(),"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s,n=$,s=$;return null==e&&(e=$),n=e.$type()["$=="]("splat"),s=t.$expr(e),o(n)?(o(i["$empty?"]())?o(a["$empty?"]())?a["$<<"](s):a["$<<"](t.$fragment(".concat("))["$<<"](s)["$<<"](t.$fragment(")")):(o(a["$empty?"]())?a["$<<"](t.$fragment("["))["$<<"](i)["$<<"](t.$fragment("]")):a["$<<"](t.$fragment(".concat(["))["$<<"](i)["$<<"](t.$fragment("])")),a["$<<"](t.$fragment(".concat("))["$<<"](s)["$<<"](t.$fragment(")"))),i=[]):(o(i["$empty?"]())||i["$<<"](t.$fragment(", ")),i["$<<"](s))}).$$s=n,r.$$arity=1,r)),o(i["$empty?"]())||(c=i,o(a["$empty?"]())?a=c:a["$<<"](n.$fragment(".concat(["))["$<<"](c)["$<<"](n.$fragment("])"))),s(n,"push",e.to_a(a))},n.$$arity=0),$&&"compile"}(c[0],n(c,"Base"),c)}(c[0],c)}(r[0],r)},Opal.modules["opal/nodes/x_string"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$),n=e.module,a=e.klass,i=e.truthy,s=e.send,o=e.range,c=e.lambda;return e.add_stubs(["$handle","$unpack_return","$children","$strip_empty_children","$single_line?","$compile_single_line","$each","$compile_child","$recv?","$wrap","$push","$private","$type","$===","$source","$expression","$loc","$new","$scope","$expr","$raise","$shift","$empty?","$s","$==","$strip","$=~","$!","$pop","$extract_last_value","$rstrip","$expr?","$end_with?","$warning","$compiler","$line","$[]","$size","$none?","$first","$dup","$nil?","$any?","$last"]),function(t,_){var u=[n(t,"Opal")].concat(_);return function(t,_){var u=[n(t,"Nodes")].concat(_);return function(t,$super,n){var _,u,l,d,p,f,h,m=a(t,$super,"XStringNode"),g=[m].concat(n);return m.$$prototype.should_add_semicolon=m.$$prototype.returning=r,m.$handle("xstr"),e.def(m,"$compile",_=function(){var e,t=this,$=r,n=r;return t.should_add_semicolon=!1,$=t.$unpack_return(t.$children()),n=t.$strip_empty_children($),i(t["$single_line?"](n))?t.$compile_single_line(n):s($,"each",[],((e=function(t){var $=null==e.$$s?this:e.$$s;return null==t&&(t=r),$.$compile_child(t)}).$$s=t,e.$$arity=1,e)),i(t["$recv?"]())&&t.$wrap("(",")"),i(t.should_add_semicolon)?t.$push(";"):r},_.$$arity=0),m.$private(),e.def(m,"$compile_child",u=function(e){var t=this,n=r,a=r;return n=e.$type(),"str"["$==="](n)?(a=e.$loc().$expression().$source(),t.$push($(g,"Fragment").$new(a,t.$scope(),e))):"begin"["$==="](n)||"gvar"["$==="](n)||"ivar"["$==="](n)||"nil"["$==="](n)?t.$push(t.$expr(e)):t.$raise("Unsupported xstr part: "+e.$type())},u.$$arity=1),e.def(m,"$compile_single_line",l=function(e){var t,n=this,a=r,o=r,c=r,_=r,u=r,l=r,d=r,p=r,f=r;return a=!1,o=e.$shift(),c=e["$empty?"](),(o=i(_=o)?_:n.$s("nil")).$type()["$=="]("str")&&(u=o.$loc().$expression().$source().$strip(),a=u["$=~"](/^return\b/)),i(i(l=n.returning)?a["$!"]():l)&&n.$push("return "),(d=i(p=e.$pop())?p:o).$type()["$=="]("str")&&(f=n.$extract_last_value(d)),i(c)||(n.should_add_semicolon=!1,n.$compile_child(o),s(e,"each",[],((t=function(e){var $=null==t.$$s?this:t.$$s;return null==e&&(e=r),$.$compile_child(e)}).$$s=n,t.$$arity=1,t))),d.$type()["$=="]("str")?n.$push($(g,"Fragment").$new(f,n.$scope(),d)):n.$compile_child(d)},l.$$arity=1),e.def(m,"$extract_last_value",d=function(e){var t=this,$=r,n=r,a=r;return $=e.$loc().$expression().$source().$rstrip(),i(i(n=i(a=t.returning)?a:t["$expr?"]())?$["$end_with?"](";"):n)&&(t.$compiler().$warning("Removed semicolon ending x-string expression, interpreted as unintentional",e.$line()),$=$["$[]"](o(0,-2,!1))),i(t.returning)&&(t.should_add_semicolon=!0),$},d.$$arity=1),e.def(m,"$single_line?",p=function(e){var t,$=this,n=r;return i(n=e.$size()["$=="](1))?n:s(e,"none?",[],((t=function(e){null==t.$$s||t.$$s;var $=r;return null==e&&(e=r),i($=e.$type()["$=="]("str"))?e.$loc().$expression().$source()["$end_with?"]("\n"):$}).$$s=$,t.$$arity=1,t))},p.$$arity=1),e.def(m,"$unpack_return",f=function(e){var t=this,$=r;return $=e.$first(),t.returning=!1,$.$type()["$=="]("js_return")&&(t.returning=!0,e=$.$children()),e},f.$$arity=1),e.def(m,"$strip_empty_children",h=function(e){var t,$=this,n=r,a=r,s=r;for(e=e.$dup(),n=c(((t=function(e){null==t.$$s||t.$$s;var $=r,n=r;return null==e&&(e=r),i($=e["$nil?"]())?$:i(n=e.$type()["$=="]("str"))?e.$loc().$expression().$source().$rstrip()["$empty?"]():n}).$$s=$,t.$$arity=1,t));i(i(a=e["$any?"]())?n["$[]"](e.$first()):a);)e.$shift();for(;i(i(s=e["$any?"]())?n["$[]"](e.$last()):s);)e.$pop();return e},h.$$arity=1),r&&"strip_empty_children"}(u[0],$(u,"Base"),u)}(u[0],u)}(t[0],t)},Opal.modules["opal/nodes/lambda"]=function(e){var t=e.top,r=[],$=e.nil,n=(e.$$$,e.$$),a=e.module,i=e.klass,s=e.send;return e.add_stubs(["$require","$handle","$children","$helper","$defines_lambda","$scope","$push","$expr","$iter"]),t.$require("opal/nodes/call"),function(t,r){var o=[a(t,"Opal")].concat(r);return function(t,r){var o=[a(t,"Nodes")].concat(r);return function(t,$super,r){var n,a=i(t,$super,"LambdaNode");[a].concat(r);return a.$handle("lambda"),a.$children("iter"),e.def(a,"$compile",n=function(){var e,t=this;return t.$helper("lambda"),s(t.$scope(),"defines_lambda",[],((e=function(){var t=null==e.$$s?this:e.$$s;return t.$push("$lambda(",t.$expr(t.$iter()),")")}).$$s=t,e.$$arity=0,e))},n.$$arity=0),$&&"compile"}(o[0],n(o,"Base"),o)}(o[0],o)}(r[0],r)},Opal.modules["opal/nodes"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("opal/nodes/base"),t.$require("opal/nodes/literal"),t.$require("opal/nodes/variables"),t.$require("opal/nodes/constants"),t.$require("opal/nodes/call"),t.$require("opal/nodes/csend"),t.$require("opal/nodes/call_special"),t.$require("opal/nodes/module"),t.$require("opal/nodes/class"),t.$require("opal/nodes/singleton_class"),t.$require("opal/nodes/args"),t.$require("opal/nodes/args/arity_check"),t.$require("opal/nodes/iter"),t.$require("opal/nodes/def"),t.$require("opal/nodes/defs"),t.$require("opal/nodes/if"),t.$require("opal/nodes/logic"),t.$require("opal/nodes/definitions"),t.$require("opal/nodes/yield"),t.$require("opal/nodes/rescue"),t.$require("opal/nodes/case"),t.$require("opal/nodes/super"),t.$require("opal/nodes/top"),t.$require("opal/nodes/while"),t.$require("opal/nodes/hash"),t.$require("opal/nodes/array"),t.$require("opal/nodes/defined"),t.$require("opal/nodes/masgn"),t.$require("opal/nodes/arglist"),t.$require("opal/nodes/x_string"),t.$require("opal/nodes/lambda")},Opal.modules["opal/eof_content"]=function(e){e.top;var t=[],r=e.nil,$=(e.$$$,e.$$,e.module),n=e.klass,a=e.truthy,i=e.send,s=e.range;return e.add_stubs(["$empty?","$[]","$last_token_position","$drop_while","$lines","$==","$join","$private","$last","$end_pos"]),function(t,o){var c=[$(t,"Opal")].concat(o);return function(t,$super,$){var o,c,_,u=n(t,null,"EofContent"),l=[u].concat($);return u.$$prototype.tokens=u.$$prototype.source=r,e.const_set(l[0],"DATA_SEPARATOR","__END__\n"),e.def(u,"$initialize",o=function(e,t){var r=this;return r.tokens=e,r.source=t},o.$$arity=2),e.def(u,"$eof",c=function(){var t,$=this,n=r,o=r +;return a($.tokens["$empty?"]())?r:(n=$.source["$[]"](e.Range.$new($.$last_token_position(),-1,!1)),a(n)?(n=i(n.$lines(),"drop_while",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=r),e["$=="]("\n")}).$$s=$,t.$$arity=1,t)))["$[]"](0)["$=="]("__END__\n")?(n=a(o=n["$[]"](s(1,-1,!1)))?o:[]).$join():n["$=="](["__END__"])?"":r:r)},c.$$arity=0),u.$private(),e.def(u,"$last_token_position",_=function(){var t,$;return $=this.tokens.$last(),null==(t=e.to_ary($))[0]?r:t[0],$=null==t[1]?r:t[1],null==(t=e.to_ary($))[0]?r:t[0],(null==t[1]?r:t[1]).$end_pos()},_.$$arity=0),r&&"last_token_position"}(c[0],0,c)}(t[0],t)},Opal.modules["opal/errors"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var $=[],n=e.nil,a=e.$$$,i=e.$$,s=e.module,o=e.klass,c=e.send2,_=e.find_super,u=e.truthy,l=e.send,d=e.alias;return e.add_stubs(["$attr_reader","$attr_accessor","$new","$respond_to?","$location","$location=","$-","$diagnostic","$diagnostic=","$to_a","$backtrace","$unshift","$to_s","$set_backtrace","$path","$lineno","$+","$label","$line","$lineno=","$source_line","$label=","$expression"]),function($,p){var f,h,m=s($,"Opal"),g=[m].concat(p);return function(e,$super,t){[o(e,$super,"Error")].concat(t)}(g[0],i(g,"StandardError"),g),function(t,$super,r){var $,n=o(t,$super,"GemNotFound");[n].concat(r);n.$attr_reader("gem_name"),e.def(n,"$initialize",$=function(e){var t=$.$$p,r=this;return t&&($.$$p=null),r.gem_name=e,c(r,_(r,"initialize",$,!1,!0),"initialize",["can't find gem "+e],null)},$.$$arity=1)}(g[0],i(g,"Error"),g),function(e,$super,t){var r=o(e,$super,"CompilationError");[r].concat(t);r.$attr_accessor("location")}(g[0],i(g,"Error"),g),function(e,$super,t){[o(e,$super,"ParsingError")].concat(t)}(g[0],i(g,"CompilationError"),g),function(e,$super,t){[o(e,$super,"RewritingError")].concat(t)}(g[0],i(g,"ParsingError"),g),function(e,$super,t){var r=o(e,$super,"SyntaxError");[r].concat(t);r.$attr_accessor("location")}(g[0],a("::","SyntaxError"),g),e.defs(m,"$opal_location_from_error",f=function(r){var $=n,a=n;return $=i(g,"OpalBacktraceLocation").$new(),u(r["$respond_to?"]("location"))&&(a=[r.$location()],l($,"location=",e.to_a(a)),a[t(a.length,1)]),u(r["$respond_to?"]("diagnostic"))&&(a=[r.$diagnostic()],l($,"diagnostic=",e.to_a(a)),a[t(a.length,1)]),$},f.$$arity=1),e.defs(m,"$add_opal_location_to_error",h=function(e,t){var r=n;return(r=t.$backtrace().$to_a()).$unshift(e.$to_s()),t.$set_backtrace(r),t},h.$$arity=2),function($,$super,a){var i,s,c,_,p=o($,null,"OpalBacktraceLocation");[p].concat(a);return p.$attr_accessor("path","lineno","label"),e.def(p,"$initialize",i=function(e,t,r){var $,a=this;return null==e&&(e=n),null==t&&(t=n),null==r&&(r=n),$=[e,t,r],a.path=$[0],a.lineno=$[1],a.label=$[2],$},i.$$arity=-1),e.def(p,"$to_s",s=function(){var e=this,t=n;return t=e.$path(),u(e.$lineno())&&(t=r(t,":"+e.$lineno())),t=r(t,":in "),t=u(e.$label())?r(t,"`"+e.$label()+"'"):r(t,"unknown")},s.$$arity=0),d(p,"line","lineno"),e.def(p,"$diagnostic=",c=function(r){var $=this,a=n;return u(r)?(a=[r.$location()],l($,"location=",e.to_a(a)),a[t(a.length,1)]):n},c.$$arity=1),e.def(p,"$location=",_=function(r){var $=this,a=n;return u(r)?(a=[r.$line()],l($,"lineno=",e.to_a(a)),a[t(a.length,1)],u(r["$respond_to?"]("source_line"))?(a=[r.$source_line()],l($,"label=",e.to_a(a)),a[t(a.length,1)]):u(r["$respond_to?"]("expression"))?(a=[r.$expression().$source_line()],l($,"label=",e.to_a(a)),a[t(a.length,1)]):n):n},_.$$arity=1),n&&"location="}(g[0],0,g)}($[0],$)},Opal.modules["opal/magic_comments"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var $=[],n=e.nil,a=(e.$$$,e.$$),i=e.module,s=e.hash2,o=e.truthy,c=e.send;return e.add_stubs(["$freeze","$line","$loc","$take","$each","$>=","$any?","$scan","$text","$to_sym","$===","$[]=","$-"]),function($,_){var u,l=i($,"MagicComments"),d=[l].concat(_);return e.const_set(d[0],"MAGIC_COMMENT_RE",/^# *(\w+) *: *(\S+.*?) *$/.$freeze()),e.const_set(d[0],"EMACS_MAGIC_COMMENT_RE",/^# *-\*- *(\w+) *: *(\S+.*?) *-\*- *$/.$freeze()),e.defs(l,"$parse",u=function($,i){var _,u=this,l=n,p=n;return l=s([],{}),o($)&&(p=$.$loc().$line(),i=i.$take(p)),c(i,"each",[],((_=function($){var i,s=null==_.$$s?this:_.$$s,u=n,f=n,h=n;return null==$&&($=n),o(o(u=p)?t($.$loc().$line(),p):u)?n:o(o(f=(h=$.$text().$scan(a(d,"MAGIC_COMMENT_RE")))["$any?"]())?f:(h=$.$text().$scan(a(d,"EMACS_MAGIC_COMMENT_RE")))["$any?"]())?c(h,"each",[],((i=function(t,$){null==i.$$s||i.$$s;var a=n,s=n;return null==t&&(t=n),null==$&&($=n),a=[t.$to_sym(),(s=$,!!"true"["$==="](s)||!"false"["$==="](s)&&$)],c(l,"[]=",e.to_a(a)),a[r(a.length,1)]}).$$s=s,i.$$arity=2,i)):n}).$$s=u,_.$$arity=1,_)),l},u.$$arity=2),n&&"parse"}(a($,"Opal"),$)},Opal.modules["opal/compiler"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var $=e.top,n=[],a=e.nil,i=e.$$$,s=e.$$,o=e.module,c=e.hash2,_=e.klass,u=e.send,l=e.truthy,d=e.alias,p=e.slice;return e.add_stubs(["$require","$compile","$new","$freeze","$join","$dirname","$first","$split","$basename","$to_s","$cleanpath","$Pathname","$fetch","$define_method","$option_value","$key?","$[]","$!","$include?","$raise","$inspect","$[]=","$-","$compiler_option","$attr_reader","$attr_accessor","$parse","$re_raise_with_location","$flatten","$process","$end_with?","$code","$last","$<<","$fragment","$s","$map","$to_proc","$file","$source=","$default_parser","$tokenize","$requirable?","$eval?","$tap","$meta","$associate_locations","$eof","$magic_comments","$to_sym","$strip","$async_await_before_typecasting","$===","$async_await_set_to_regexp","$to_a","$gsub","$escape","$location=","$opal_location_from_error","$path=","$label","$lines","$to_i","$line","$label=","$message","$set_backtrace","$backtrace","$add_opal_location_to_error","$warn","$empty?","$+","$start_with?","$helpers","$new_temp","$queue_temp","$push_while","$pop_while","$in_while?","$nil?","$scope","$handlers","$type","$compile_to_fragments","$error","$returns","$updated","$children","$==","$uses_block!","$block_name","$find_parent_def","$cache","$source_map"]),$.$require("set"),$.$require("opal/parser"),$.$require("opal/fragment"),$.$require("opal/nodes"),$.$require("opal/eof_content"),$.$require("opal/errors"),$.$require("opal/magic_comments"),function($,n){var f,h=o($,"Opal"),m=[h].concat(n);return e.defs(h,"$compile",f=function(e,t){return null==t&&(t=c([],{})),s(m,"Compiler").$new(e,t).$compile()},f.$$arity=-2),function($,$super,n){var o,f,h,m,g,y,v,b,k,x,w,E,R,z,A,N,S,O,T,I,C,q,P,B,D,L,G,M,j,F,U,H,Y,X,V=_($,null,"Compiler"),W=[V].concat(n);return V.$$prototype.option_values=V.$$prototype.options=V.$$prototype.magic_comments=V.$$prototype.fragments=V.$$prototype.source=V.$$prototype.buffer=V.$$prototype.source_map=V.$$prototype.result=V.$$prototype.helpers=V.$$prototype.operator_helpers=V.$$prototype.method_calls=V.$$prototype.async_await=V.$$prototype.indent=V.$$prototype.unique=V.$$prototype.scope=V.$$prototype.case_stmt=V.$$prototype.handlers=V.$$prototype.requires=V.$$prototype.required_trees=V.$$prototype.autoloads=a,e.const_set(W[0],"INDENT"," "),e.const_set(W[0],"COMPARE",["<",">","<=",">="].$freeze()),e.defs(V,"$module_name",o=function(e){var t=this;return e=s(W,"File").$join(s(W,"File").$dirname(e),s(W,"File").$basename(e).$split(".").$first()),t.$Pathname(e).$cleanpath().$to_s()},o.$$arity=1),e.defs(V,"$compiler_option",f=function(e,t){var r,$=this,n=a;return null==t&&(t=c([],{})),n=t.$fetch("as",e),u($,"define_method",[n],((r=function(){return(null==r.$$s?this:r.$$s).$option_value(e,t)}).$$s=$,r.$$arity=0,r))},f.$$arity=-2),e.def(V,"$option_value",h=function(r,$){var n=this,i=a,o=a,c=a,_=a,d=a,p=a,f=a;return l(n.option_values["$key?"](r))?n.option_values["$[]"](r):(i=$["$[]"]("default"),o=$["$[]"]("valid_values"),c=$["$[]"]("magic_comment"),_=n.options.$fetch(r,i),l(l(d=c)?n.magic_comments["$key?"](r):d)&&(_=n.magic_comments.$fetch(r)),l(l(p=o)?o["$include?"](_)["$!"]():p)&&n.$raise(s(W,"ArgumentError"),"invalid value "+_.$inspect()+" for option "+r.$inspect()+" (valid values: "+o.$inspect()+")"),f=[r,_],u(n.option_values,"[]=",e.to_a(f)),f[t(f.length,1)])},h.$$arity=2),V.$compiler_option("file",c(["default"],{"default":"(file)"})),V.$compiler_option("method_missing",c(["default","as"],{"default":!0,as:"method_missing?"})),V.$compiler_option("arity_check",c(["default","as"],{"default":!1,as:"arity_check?"})),V.$compiler_option("freezing",c(["default","as"],{"default":!0,as:"freezing?"})),V.$compiler_option("irb",c(["default","as"],{"default":!1,as:"irb?"})),V.$compiler_option("dynamic_require_severity",c(["default","valid_values"],{"default":"ignore",valid_values:["error","warning","ignore"]})),V.$compiler_option("requirable",c(["default","as"],{"default":!1,as:"requirable?"})),V.$compiler_option("esm",c(["default","as"],{"default":!1,as:"esm?"})),V.$compiler_option("inline_operators",c(["default","as"],{"default":!0,as:"inline_operators?"})),V.$compiler_option("eval",c(["default","as"],{"default":!1,as:"eval?"})),V.$compiler_option("enable_source_location",c(["default","as"],{"default":!1,as:"enable_source_location?"})),V.$compiler_option("use_strict",c(["default","as","magic_comment"],{"default":!1,as:"use_strict?",magic_comment:!0})),V.$compiler_option("parse_comments",c(["default","as"],{"default":!1,as:"parse_comments?"})),V.$compiler_option("scope_variables",c(["default"],{"default":[]})),V.$compiler_option("await",c(["default","as","magic_comment"],{"default":!1,as:"async_await",magic_comment:!0})),V.$attr_reader("result"),V.$attr_reader("fragments"),V.$attr_accessor("scope"),V.$attr_reader("case_stmt"),V.$attr_reader("eof_content"),V.$attr_reader("comments"),V.$attr_reader("magic_comments"),e.def(V,"$initialize",m=function(e,t){var r=this;return null==t&&(t=c([],{})),r.source=e,r.indent="",r.unique=0,r.options=t,r.comments=s(W,"Hash").$new([]),r.case_stmt=a,r.option_values=c([],{}),r.magic_comments=c([],{})},m.$$arity=-2),e.def(V,"$compile",g=function(){var e,t=this;return t.$parse(),t.fragments=u(t,"re_raise_with_location",[],((e=function(){var t=null==e.$$s?this:e.$$s;return null==t.sexp&&(t.sexp=a),t.$process(t.sexp).$flatten()}).$$s=t,e.$$arity=0,e)),l(t.fragments.$last().$code()["$end_with?"]("\n"))||t.fragments["$<<"](t.$fragment("\n",a,t.$s("newline"))),t.result=u(t.fragments,"map",[],"code".$to_proc()).$join("")},g.$$arity=0),e.def(V,"$parse",y=function(){var r,$,n,o,c=this,_=a,d=a,p=a,f=a,h=a,m=a;return c.buffer=i(i(i("::","Opal"),"Parser"),"SourceBuffer").$new(c.$file(),1),_=[c.source],u(c.buffer,"source=",e.to_a(_)),_[t(_.length,1)],c.parser=i(s(W,"Opal"),"Parser").$default_parser(),$=u(c,"re_raise_with_location",[],((n=function(){var e=null==n.$$s?this:n.$$s;return null==e.parser&&(e.parser=a),null==e.buffer&&(e.buffer=a),e.parser.$tokenize(e.buffer)}).$$s=c,n.$$arity=0,n)),r=e.to_ary($),d=null==r[0]?a:r[0],p=null==r[1]?a:r[1],f=null==r[2]?a:r[2],h=l(c["$requirable?"]())?"require":l(c["$eval?"]())?"eval":"main",c.sexp=u(c.$s("top",l(m=d)?m:c.$s("nil")),"tap",[],((o=function(r){null==o.$$s||o.$$s;return null==r&&(r=a),_=["kind",h],u(r.$meta(),"[]=",e.to_a(_)),_[t(_.length,1)]}).$$s=c,o.$$arity=1,o)),c.comments=i(i(i("::","Parser"),"Source"),"Comment").$associate_locations(d,p),c.magic_comments=s(W,"MagicComments").$parse(d,p),c.eof_content=s(W,"EofContent").$new(f,c.source).$eof()},y.$$arity=0),e.def(V,"$source_map",v=function(){var e=this,t=a;return l(t=e.source_map)?t:i(i(i("::","Opal"),"SourceMap"),"File").$new(e.fragments,e.$file(),e.source,e.result)},v.$$arity=0),e.def(V,"$helpers",b=function(){var e,t=this,r=a;return t.helpers=l(r=t.helpers)?r:s(W,"Set").$new(u(t.$magic_comments()["$[]"]("helpers").$to_s().$split(","),"map",[],((e=function(t){return null==e.$$s||e.$$s,null==t&&(t=a),t.$strip().$to_sym()}).$$s=t,e.$$arity=1,e)))},b.$$arity=0),e.def(V,"$operator_helpers",k=function(){var e=this,t=a;return e.operator_helpers=l(t=e.operator_helpers)?t:s(W,"Set").$new()},k.$$arity=0),e.def(V,"$method_calls",x=function(){var e=this,t=a;return e.method_calls=l(t=e.method_calls)?t:s(W,"Set").$new()},x.$$arity=0),d(V,"async_await_before_typecasting","async_await"),e.def(V,"$async_await",w=function(){var e,t,r=this,$=a,n=a;return l(null!=(e=r.async_await)&&e!==a?"instance-variable":a)?r.async_await:($=r.$async_await_before_typecasting(),r.async_await=(n=$,s(W,"String")["$==="](n)?r.$async_await_set_to_regexp(u($.$split(","),"map",[],((t=function(e){return null==t.$$s||t.$$s,null==e&&(e=a),e.$strip().$to_sym()}).$$s=r,t.$$arity=1,t))):s(W,"Array")["$==="](n)||s(W,"Set")["$==="](n)?r.$async_await_set_to_regexp(u($.$to_a(),"map",[],"to_sym".$to_proc())):s(W,"Regexp")["$==="](n)||(!0)["$==="](n)||(!1)["$==="](n)?$:r.$raise("A value of await compiler option can be either a Set, an Array, a String or a Boolean.")))},w.$$arity=0),e.def(V,"$async_await_set_to_regexp",E=function(t){var r,$=this;return t=(t=u(t,"map",[],((r=function(e){null==r.$$s||r.$$s;return null==e&&(e=a),s(W,"Regexp").$escape(e.$to_s()).$gsub("\\*",".*?")}).$$s=$,r.$$arity=1,r))).$join("|"),e.regexp(["^(",t,")$"])},E.$$arity=1),e.def(V,"$error",R=function(r,$){var n=this,o=a,c=a;return null==$&&($=a),o=i(i("::","Opal"),"SyntaxError").$new(r),c=[i(s(W,"Opal"),"OpalBacktraceLocation").$new(n.$file(),$)],u(o,"location=",e.to_a(c)),c[t(c.length,1)],n.$raise(o)},R.$$arity=-2),e.def(V,"$re_raise_with_location",z=function(){var r=z.$$p,$=r||a,n=this,o=a,c=a,_=a,d=a;r&&(z.$$p=null);try{return e.yieldX($,[])}catch(p){if(!e.rescue(p,[s(W,"StandardError"),i(i("::","Opal"),"SyntaxError")]))throw p;o=p;try{return c=i("::","Opal").$opal_location_from_error(o),_=[n.$file()],u(c,"path=",e.to_a(_)),_[t(_.length,1)],l(c.$label())||(_=[n.source.$lines()["$[]"](t(c.$line().$to_i(),1)).$strip()],u(c,"label=",e.to_a(_)),_[t(_.length,1)]),(d=i(i("::","Opal"),"SyntaxError").$new(o.$message())).$set_backtrace(o.$backtrace()),i("::","Opal").$add_opal_location_to_error(c,d),n.$raise(d)}finally{e.pop_exception()}}},z.$$arity=0),e.def(V,"$warning",A=function(e,t){var r=this;return null==t&&(t=a),r.$warn("warning: "+e+" -- "+r.$file()+":"+t)},A.$$arity=-2),e.def(V,"$parser_indent",N=function(){return this.indent},N.$$arity=0),e.def(V,"$s",S=function(t){var r;return r=e.slice.call(arguments,1,arguments.length),i(i(i("::","Opal"),"AST"),"Node").$new(t,r)},S.$$arity=-2),e.def(V,"$fragment",O=function(e,t,r){return null==r&&(r=a),s(W,"Fragment").$new(e,t,r)},O.$$arity=-3),e.def(V,"$unique_temp",T=function(e){var t=this,$=a,n=a;return e=e.$to_s(),l(l($=e)?e["$empty?"]()["$!"]():$)&&(e=e.$to_s().$gsub("<=>","$lt_eq_gt").$gsub("===","$eq_eq_eq").$gsub("==","$eq_eq").$gsub("=~","$eq_tilde").$gsub("!~","$excl_tilde").$gsub("!=","$not_eq").$gsub("<=","$lt_eq").$gsub(">=","$gt_eq").$gsub("=","$eq").$gsub("?","$ques").$gsub("!","$excl").$gsub("/","$slash").$gsub("%","$percent").$gsub("+","$plus").$gsub("-","$minus").$gsub("<","$lt").$gsub(">","$gt").$gsub(/[^\w\$]/,"$")),n=t.unique=r(t.unique,1),""+(l(e["$start_with?"]("$"))?a:"$")+e+"$"+n},T.$$arity=1),e.def(V,"$helper",I=function(e){return this.$helpers()["$<<"](e)},I.$$arity=1),e.def(V,"$indent",C=function(){var t=C.$$p,$=t||a,n=this,i=a,o=a;return t&&(C.$$p=null),i=n.indent,n.indent=r(n.indent,s(W,"INDENT")),n.space="\n"+n.indent,o=e.yieldX($,[]),n.indent=i,n.space="\n"+n.indent,o},C.$$arity=0),e.def(V,"$with_temp",q=function(){var t=q.$$p,r=t||a,$=this,n=a,i=a;return t&&(q.$$p=null),n=$.scope.$new_temp(),i=e.yield1(r,n),$.scope.$queue_temp(n),i},q.$$arity=0),e.def(V,"$in_while",P=function(){var t=P.$$p,r=t||a,$=this,n=a;return t&&(P.$$p=null),r===a?a:($.while_loop=$.scope.$push_while(),n=e.yieldX(r,[]),$.scope.$pop_while(),n)},P.$$arity=0),e.def(V,"$in_case",B=function(){var t=B.$$p,r=t||a,$=this,n=a;return t&&(B.$$p=null),r===a?a:(n=$.case_stmt,$.case_stmt=c([],{}),e.yieldX(r,[]),$.case_stmt=n)},B.$$arity=0),e.def(V,"$in_while?",D=function(){return this.scope["$in_while?"]()},D.$$arity=0),e.def(V,"$process",L=function(e,t){var r=this,$=a;return null==t&&(t="expr"),l(e["$nil?"]())?r.$fragment("",r.$scope()):l($=r.$handlers()["$[]"](e.$type()))?$.$new(e,t,r).$compile_to_fragments():r.$error("Unsupported sexp: "+e.$type())},L.$$arity=-2),e.def(V,"$handlers",G=function(){var e=this,t=a;return e.handlers=l(t=e.handlers)?t:i(i(s(W,"Opal"),"Nodes"),"Base").$handlers()},G.$$arity=0),e.def(V,"$requires",M=function(){var e=this,t=a;return e.requires=l(t=e.requires)?t:[]},M.$$arity=0),e.def(V,"$required_trees",j=function(){var e=this,t=a;return e.required_trees=l(t=e.required_trees)?t:[]},j.$$arity=0),e.def(V,"$autoloads",F=function(){var e=this,t=a;return e.autoloads=l(t=e.autoloads)?t:[]},F.$$arity=0),e.def(V,"$returns",U=function(t){var r,$,n,i=this,s=a,o=a,c=a,_=a,d=a,f=a,h=a,m=a,g=a,y=a,v=a,b=a,k=a,x=a,w=a,E=a,R=a;return l(t)?(s=t.$type(),"undef"["$==="](s)?i.$returns(t.$updated("begin",[t,i.$s("nil")])):"break"["$==="](s)||"next"["$==="](s)||"redo"["$==="](s)||"retry"["$==="](s)?t:"yield"["$==="](s)?t.$updated("returnable_yield",a):"when"["$==="](s)?(r=[].concat(e.to_a(t)),$=($=r.length-1)<0?0:$,o=p.call(r,0,$),c=null==r[$]?a:r[$],t.$updated(a,[].concat(e.to_a(o)).concat([i.$returns(c)]))):"rescue"["$==="](s)?(r=[].concat(e.to_a(t)),_=null==r[0]?a:r[0],$=($=r.length-1)<1?1:$,d=p.call(r,1,$),f=null==r[$]?a:r[$],d=u(d,"map",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=a),t.$returns(e)}).$$s=i,n.$$arity=1,n)),l(f)&&(f=i.$returns(f)),t.$updated(a,[i.$returns(_)].concat(e.to_a(d)).concat([f]))):"resbody"["$==="](s)?(r=[].concat(e.to_a(t)),h=null==r[0]?a:r[0],m=null==r[1]?a:r[1],g=null==r[2]?a:r[2],t.$updated(a,[h,m,i.$returns(g)])):"ensure"["$==="](s)?(r=[].concat(e.to_a(t)),y=null==r[0]?a:r[0],v=null==r[1]?a:r[1],(t=t.$updated(a,[i.$returns(y),v])).$updated("js_return",[t])):"begin"["$==="](s)||"kwbegin"["$==="](s)?(r=[].concat(e.to_a(t)),$=($=r.length-1)<0?0:$,b=p.call(r,0,$),k=null==r[$]?a:r[$],t.$updated(a,[].concat(e.to_a(b)).concat([i.$returns(k)]))):"while"["$==="](s)||"until"["$==="](s)||"while_post"["$==="](s)||"until_post"["$==="](s)?t:"return"["$==="](s)||"js_return"["$==="](s)||"returnable_yield"["$==="](s)?t:"xstr"["$==="](s)?t.$updated(a,[u(i,"s",["js_return"].concat(e.to_a(t.$children())))]):"if"["$==="](s)?(r=[].concat(e.to_a(t)),x=null==r[0]?a:r[0],w=null==r[1]?a:r[1],E=null==r[2]?a:r[2],t.$updated(a,[x,i.$returns(w),i.$returns(E)])):l(l(R=t.$type()["$=="]("send"))?t.$children()["$[]"](1)["$=="]("debugger"):R)?t.$updated("begin",[t,i.$s("js_return",i.$s("nil"))]):t.$updated("js_return",[t])):i.$returns(i.$s("nil"))},U.$$arity=1),e.def(V,"$handle_block_given_call",H=function(e){var t=this,r=a,$=a;return t.scope["$uses_block!"](),l(t.scope.$block_name())?t.$fragment("("+t.scope.$block_name()+" !== nil)",t.$scope(),e):l(l(r=$=t.scope.$find_parent_def())?$.$block_name():r)?t.$fragment("("+$.$block_name()+" !== nil)",$,e):t.$fragment("false",$,e)},H.$$arity=1),e.def(V,"$marshal_dump",Y=function(){var e=this,t=a;return[e.options,e.option_values,e.source_map=l(t=e.source_map)?t:e.$source_map().$cache(),e.magic_comments,e.result,e.required_trees,e.requires,e.autoloads]},Y.$$arity=0),e.def(V,"$marshal_load",X=function(t){var r,$,n=this;return $=t,r=e.to_ary($),n.options=null==r[0]?a:r[0],n.option_values=null==r[1]?a:r[1],n.source_map=null==r[2]?a:r[2],n.magic_comments=null==r[3]?a:r[3],n.result=null==r[4]?a:r[4],n.required_trees=null==r[5]?a:r[5],n.requires=null==r[6]?a:r[6],n.autoloads=null==r[7]?a:r[7],$},X.$$arity=1),a&&"marshal_load"}(m[0],0,m)}(n[0],n)},Opal.queue(function(Opal){function $rb_minus(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var $$1,self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$send=Opal.send,$truthy=Opal.truthy;return Opal.add_stubs(["$require","$ready?","$each_with_index","$[]","$attr","$<<","$then","$get","$body","$[]=","$-","$html","$when","$compile","$new","$join","$message","$each","$const_get","$flatten","$compact","$collect","$data","$==","$underscore","$create_element","$render"]),self.$require("corelib/string/unpack"),self.$require("opal/compiler"),window.HyperstackOpts={transport:"none"},$send($$($nesting,"Document"),"ready?",[],($$1=function(){var self=null==$$1.$$s?this:$$1.$$s,$$2,$$4,promises=nil,code=nil;return promises=[],code=[],$send($$($nesting,"Element")["$[]"]('script[type="text/ruby"]'),"each_with_index",[],($$2=function(e,t){var r,$=null==$$2.$$s?this:$$2.$$s,n=nil,a=nil;return null==e&&(e=nil),null==t&&(t=nil),n=e.$attr("src"),$truthy(n)?promises["$<<"]($send($$($nesting,"HTTP").$get(n),"then",[],((r=function(e){null==r.$$s||r.$$s;var $=nil;return null==e&&(e=nil),$=[t,e.$body()],$send(code,"[]=",Opal.to_a($)),$[$rb_minus($.length,1)]}).$$s=$,r.$$arity=1,r))):(a=[t,e.$html()],$send(code,"[]=",Opal.to_a(a)),a[$rb_minus(a.length,1)])},$$2.$$s=self,$$2.$$arity=2,$$2)),$send($send($$($nesting,"Promise"),"when",Opal.to_a(promises)),"then",[],($$4=function(){var self=null==$$4.$$s?this:$$4.$$s,$$5,compiled_code=nil,continue_to_mounting=nil,e=nil,message=nil;compiled_code=nil,continue_to_mounting=nil;try{compiled_code=$$$($$($nesting,"Opal"),"Compiler").$new(code.$join("\n")).$compile()}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;e=$err;try{message="Error raised while compiling: "+e.$message(),console.error(message)}finally{Opal.pop_exception()}}if($truthy(compiled_code))try{eval(compiled_code),continue_to_mounting=!0}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;e=$err;try{message="Error raised during execution: "+e.$message(),console.error(message)}finally{Opal.pop_exception()}}return $truthy(continue_to_mounting)?$send($$($nesting,"Element")["$[]"]("[data-hyperstack-mount]"),"each",[],($$5=function(e){var t,r=null==$$5.$$s?this:$$5.$$s,$=nil,n=nil,a=nil,i=nil;null==e&&(e=nil),$=e.$attr("data-hyperstack-mount"),n=nil;try{n=$$($nesting,"Object").$const_get($)}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;try{return message="Could not find Component class named "+$,console.error(message),nil}finally{Opal.pop_exception()}}return a=$send($$($nesting,"Hash"),"[]",Opal.to_a($send($$($nesting,"Hash").$new(e.$data()),"collect",[],(t=function(e,r){null==t.$$s||t.$$s;return null==e&&(e=nil),null==r&&(r=nil),e["$=="]("reactrbMount")?nil:[e.$underscore(),r]},t.$$s=r,t.$$arity=2,t)).$compact().$flatten(1))),i=$$$($$$($$($nesting,"Hyperstack"),"Component"),"ReactAPI").$create_element(n,a),$$$($$$($$($nesting,"Hyperstack"),"Component"),"ReactAPI").$render(i,e)},$$5.$$s=self,$$5.$$arity=1,$$5)):nil},$$4.$$s=self,$$4.$$arity=0,$$4))},$$1.$$s=self,$$1.$$arity=0,$$1))}); \ No newline at end of file diff --git a/dist/hyperstack.js b/dist/hyperstack.js index 0ae9f71..0799e44 100644 --- a/dist/hyperstack.js +++ b/dist/hyperstack.js @@ -1,66 +1,68 @@ -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/array/extract_options"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["active_support/core_ext/array/extract_options"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; Opal.add_stubs(['$instance_of?', '$is_a?', '$last', '$extractable_options?', '$pop']); (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); + var self = $klass($base, $super, 'Hash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_extractable_options$q_1; + var $nesting = [self].concat($parent_nesting), $Hash_extractable_options$ques$1; - return (Opal.defn(self, '$extractable_options?', TMP_Hash_extractable_options$q_1 = function() { + return (Opal.def(self, '$extractable_options?', $Hash_extractable_options$ques$1 = function() { var self = this; - return self['$instance_of?'](Opal.const_get_relative($nesting, 'Hash')) - }, TMP_Hash_extractable_options$q_1.$$arity = 0), nil) && 'extractable_options?' + return self['$instance_of?']($$($nesting, 'Hash')) + }, $Hash_extractable_options$ques$1.$$arity = 0), nil) && 'extractable_options?' })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_extract_options$B_2; + var $nesting = [self].concat($parent_nesting), $Array_extract_options$excl$2; - return (Opal.defn(self, '$extract_options!', TMP_Array_extract_options$B_2 = function() { - var $a, self = this; + return (Opal.def(self, '$extract_options!', $Array_extract_options$excl$2 = function() { + var self = this, $ret_or_1 = nil; - if ($truthy(($truthy($a = self.$last()['$is_a?'](Opal.const_get_relative($nesting, 'Hash'))) ? self.$last()['$extractable_options?']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = self.$last()['$is_a?']($$($nesting, 'Hash'))))) { + return self.$last()['$extractable_options?']() + } else { + return $ret_or_1 + }; return nil; })())) { return self.$pop() - } else { + } else { return $hash2([], {}) } - }, TMP_Array_extract_options$B_2.$$arity = 0), nil) && 'extract_options!' + }, $Array_extract_options$excl$2.$$arity = 0), nil) && 'extract_options!' })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/array/wrap"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["active_support/core_ext/array/wrap"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$nil?', '$respond_to?', '$to_ary']); return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_wrap_1; + var $nesting = [self].concat($parent_nesting), $Array_wrap$1; - return Opal.defs(self, '$wrap', TMP_Array_wrap_1 = function $$wrap(object) { - var $a, self = this; + return (Opal.defs(self, '$wrap', $Array_wrap$1 = function $$wrap(object) { + var self = this, $ret_or_1 = nil; if ($truthy(object['$nil?']())) { return [] } else if ($truthy(object['$respond_to?']("to_ary"))) { - return ($truthy($a = object.$to_ary()) ? $a : [object]) + if ($truthy(($ret_or_1 = object.$to_ary()))) { + return $ret_or_1 } else { + return [object] + } + } else { return [object] } - }, TMP_Array_wrap_1.$$arity = 1) + }, $Array_wrap$1.$$arity = 1), nil) && 'wrap' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/array/grouping"] = function(Opal) { +Opal.modules["active_support/core_ext/array/grouping"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } @@ -73,101 +75,152 @@ Opal.modules["active_support/core_ext/array/grouping"] = function(Opal) { function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$==', '$%', '$-', '$size', '$concat', '$dup', '$*', '$each_slice', '$<<', '$div', '$times', '$+', '$>', '$slice', '$!=', '$each', '$inject', '$call', '$last']); return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_in_groups_of_1, TMP_Array_in_groups_5, TMP_Array_split_7; + var $nesting = [self].concat($parent_nesting), $Array_in_groups_of$1, $Array_in_groups$4, $Array_split$7; - Opal.defn(self, '$in_groups_of', TMP_Array_in_groups_of_1 = function $$in_groups_of(number, fill_with) { - var TMP_2, TMP_3, self = this, $iter = TMP_Array_in_groups_of_1.$$p, $yield = $iter || nil, collection = nil, padding = nil, groups = nil; + Opal.def(self, '$in_groups_of', $Array_in_groups_of$1 = function $$in_groups_of(number, fill_with) { + var $$2, $$3, $iter = $Array_in_groups_of$1.$$p, $yield = $iter || nil, self = this, collection = nil, padding = nil, groups = nil; + if ($iter) $Array_in_groups_of$1.$$p = null; + + if (fill_with == null) { fill_with = nil; - } - if ($iter) TMP_Array_in_groups_of_1.$$p = null; - + }; if (fill_with['$=='](false)) { collection = self - } else { + } else { padding = $rb_minus(number, self.$size()['$%'](number))['$%'](number); collection = self.$dup().$concat($rb_times([fill_with], padding)); }; if (($yield !== nil)) { - return $send(collection, 'each_slice', [number], (TMP_2 = function(slice){var self = TMP_2.$$s || this; -if (slice == null) slice = nil; - return Opal.yield1($yield, slice);}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)) - } else { + return $send(collection, 'each_slice', [number], ($$2 = function(slice){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (slice == null) { + slice = nil; + }; + return Opal.yield1($yield, slice);;}, $$2.$$s = self, $$2.$$arity = 1, $$2)) + } else { groups = []; - $send(collection, 'each_slice', [number], (TMP_3 = function(group){var self = TMP_3.$$s || this; -if (group == null) group = nil; - return groups['$<<'](group)}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); + $send(collection, 'each_slice', [number], ($$3 = function(group){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (group == null) { + group = nil; + }; + return groups['$<<'](group);}, $$3.$$s = self, $$3.$$arity = 1, $$3)); return groups; }; - }, TMP_Array_in_groups_of_1.$$arity = -2); + }, $Array_in_groups_of$1.$$arity = -2); - Opal.defn(self, '$in_groups', TMP_Array_in_groups_5 = function $$in_groups(number, fill_with) { - var TMP_4, TMP_6, self = this, $iter = TMP_Array_in_groups_5.$$p, $yield = $iter || nil, division = nil, modulo = nil, groups = nil, start = nil; + Opal.def(self, '$in_groups', $Array_in_groups$4 = function $$in_groups(number, fill_with) { + var $$5, $$6, $iter = $Array_in_groups$4.$$p, $yield = $iter || nil, self = this, division = nil, modulo = nil, groups = nil, start = nil; + if ($iter) $Array_in_groups$4.$$p = null; + + if (fill_with == null) { fill_with = nil; - } - if ($iter) TMP_Array_in_groups_5.$$p = null; - + }; division = self.$size().$div(number); modulo = self.$size()['$%'](number); groups = []; start = 0; - $send(number, 'times', [], (TMP_4 = function(index){var self = TMP_4.$$s || this, $a, $b, length = nil, last_group = nil; -if (index == null) index = nil; - - length = $rb_plus(division, (function() {if ($truthy(($truthy($a = $rb_gt(modulo, 0)) ? $rb_gt(modulo, index) : $a))) { + $send(number, 'times', [], ($$5 = function(index){var self = $$5.$$s == null ? this : $$5.$$s, length = nil, $ret_or_1 = nil, last_group = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + + + if (index == null) { + index = nil; + }; + length = $rb_plus(division, (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = $rb_gt(modulo, 0)))) { + return $rb_gt(modulo, index) + } else { + return $ret_or_1 + }; return nil; })())) { return 1 - } else { + } else { return 0 }; return nil; })()); groups['$<<']((last_group = self.$slice(start, length))); - if ($truthy(($truthy($a = ($truthy($b = fill_with['$!='](false)) ? $rb_gt(modulo, 0) : $b)) ? length['$=='](division) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = fill_with['$!='](false)))) { + return $rb_gt(modulo, 0) + } else { + return $ret_or_3 + }; return nil; })()))) { + return length['$=='](division) + } else { + return $ret_or_2 + }; return nil; })())) { last_group['$<<'](fill_with)}; - return (start = $rb_plus(start, length));}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); + return (start = $rb_plus(start, length));}, $$5.$$s = self, $$5.$$arity = 1, $$5)); if (($yield !== nil)) { - return $send(groups, 'each', [], (TMP_6 = function(g){var self = TMP_6.$$s || this; -if (g == null) g = nil; - return Opal.yield1($yield, g);}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)) - } else { + return $send(groups, 'each', [], ($$6 = function(g){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (g == null) { + g = nil; + }; + return Opal.yield1($yield, g);;}, $$6.$$s = self, $$6.$$arity = 1, $$6)) + } else { return groups }; - }, TMP_Array_in_groups_5.$$arity = -2); - return (Opal.defn(self, '$split', TMP_Array_split_7 = function $$split(value) { - var TMP_8, self = this, $iter = TMP_Array_split_7.$$p, block = $iter || nil; + }, $Array_in_groups$4.$$arity = -2); + return (Opal.def(self, '$split', $Array_split$7 = function $$split(value) { + var $iter = $Array_split$7.$$p, block = $iter || nil, $$8, self = this; + if ($iter) $Array_split$7.$$p = null; + + + if ($iter) $Array_split$7.$$p = null;; + if (value == null) { value = nil; - } - if ($iter) TMP_Array_split_7.$$p = null; - return $send(self, 'inject', [[[]]], (TMP_8 = function(results, element){var self = TMP_8.$$s || this, $a, $b; -if (results == null) results = nil;if (element == null) element = nil; - - if ($truthy(($truthy($a = ($truthy($b = block) ? block.$call(element) : $b)) ? $a : value['$=='](element)))) { + }; + return $send(self, 'inject', [[[]]], ($$8 = function(results, element){var self = $$8.$$s == null ? this : $$8.$$s, $ret_or_4 = nil, $ret_or_5 = nil; + + + + if (results == null) { + results = nil; + }; + + if (element == null) { + element = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = block))) { + return block.$call(element) + } else { + return $ret_or_5 + }; return nil; })()))) { + return $ret_or_4 + } else { + return value['$=='](element) + }; return nil; })())) { results['$<<']([]) - } else { + } else { results.$last()['$<<'](element) }; - return results;}, TMP_8.$$s = self, TMP_8.$$arity = 2, TMP_8)) - }, TMP_Array_split_7.$$arity = -1), nil) && 'split'; + return results;}, $$8.$$s = self, $$8.$$arity = 2, $$8)); + }, $Array_split$7.$$arity = -1), nil) && 'split'; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/array"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext/array"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -176,68 +229,70 @@ Opal.modules["active_support/core_ext/array"] = function(Opal) { return self.$require("active_support/core_ext/array/grouping"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/kernel/singleton_class"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send; +Opal.modules["active_support/core_ext/kernel/singleton_class"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send; Opal.add_stubs(['$class_eval', '$singleton_class', '$to_proc']); return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_class_eval_1; + var $nesting = [self].concat($parent_nesting), $Kernel_class_eval$1; - - Opal.defn(self, '$class_eval', TMP_Kernel_class_eval_1 = function $$class_eval($a_rest) { - var self = this, args, $iter = TMP_Kernel_class_eval_1.$$p, block = $iter || nil; + return (Opal.def(self, '$class_eval', $Kernel_class_eval$1 = function $$class_eval($a) { + var $iter = $Kernel_class_eval$1.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Kernel_class_eval_1.$$p = null; - return $send(self.$singleton_class(), 'class_eval', Opal.to_a(args), block.$to_proc()) - }, TMP_Kernel_class_eval_1.$$arity = -1) + if ($iter) $Kernel_class_eval$1.$$p = null; + + + if ($iter) $Kernel_class_eval$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$singleton_class(), 'class_eval', Opal.to_a(args), block.$to_proc()); + }, $Kernel_class_eval$1.$$arity = -1), nil) && 'class_eval' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/module/remove_method"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["active_support/core_ext/module/remove_method"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$method_defined?', '$private_method_defined?', '$undef_method', '$remove_possible_method', '$define_method', '$to_proc']); return (function($base, $super, $parent_nesting) { - function $Module(){}; - var self = $Module = $klass($base, $super, 'Module', $Module); + var self = $klass($base, $super, 'Module'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Module_remove_possible_method_1, TMP_Module_redefine_method_2; + var $nesting = [self].concat($parent_nesting), $Module_remove_possible_method$1, $Module_redefine_method$2; - Opal.defn(self, '$remove_possible_method', TMP_Module_remove_possible_method_1 = function $$remove_possible_method(method) { - var $a, self = this; + Opal.def(self, '$remove_possible_method', $Module_remove_possible_method$1 = function $$remove_possible_method(method) { + var self = this, $ret_or_1 = nil; - if ($truthy(($truthy($a = self['$method_defined?'](method)) ? $a : self['$private_method_defined?'](method)))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = self['$method_defined?'](method)))) { + return $ret_or_1 + } else { + return self['$private_method_defined?'](method) + }; return nil; })())) { return self.$undef_method(method) - } else { + } else { return nil } - }, TMP_Module_remove_possible_method_1.$$arity = 1); - return (Opal.defn(self, '$redefine_method', TMP_Module_redefine_method_2 = function $$redefine_method(method) { - var self = this, $iter = TMP_Module_redefine_method_2.$$p, block = $iter || nil; + }, $Module_remove_possible_method$1.$$arity = 1); + return (Opal.def(self, '$redefine_method', $Module_redefine_method$2 = function $$redefine_method(method) { + var $iter = $Module_redefine_method$2.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Module_redefine_method_2.$$p = null; + if ($iter) $Module_redefine_method$2.$$p = null; + + if ($iter) $Module_redefine_method$2.$$p = null;; self.$remove_possible_method(method); return $send(self, 'define_method', [method], block.$to_proc()); - }, TMP_Module_redefine_method_2.$$arity = 1), nil) && 'redefine_method'; + }, $Module_redefine_method$2.$$arity = 1), nil) && 'redefine_method'; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/class/attribute"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["active_support/core_ext/class/attribute"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$require', '$extract_options!', '$fetch', '$each', '$define_singleton_method', '$!', '$public_send', '$class_eval', '$singleton_class', '$remove_possible_method', '$define_method', '$singleton_class?', '$instance_variable_defined?', '$instance_variable_get', '$send', '$class', '$attr_writer', '$private', '$respond_to?', '$!=', '$first', '$ancestors']); @@ -245,131 +300,147 @@ Opal.modules["active_support/core_ext/class/attribute"] = function(Opal) { self.$require("active_support/core_ext/module/remove_method"); self.$require("active_support/core_ext/array/extract_options"); return (function($base, $super, $parent_nesting) { - function $Class(){}; - var self = $Class = $klass($base, $super, 'Class', $Class); + var self = $klass($base, $super, 'Class'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Class_class_attribute_11, TMP_Class_singleton_class$q_12; + var $nesting = [self].concat($parent_nesting), $Class_class_attribute$1, $Class_singleton_class$ques$12; - Opal.defn(self, '$class_attribute', TMP_Class_class_attribute_11 = function $$class_attribute($a_rest) { - var $b, TMP_1, self = this, attrs, options = nil, instance_reader = nil, instance_writer = nil, instance_predicate = nil; + Opal.def(self, '$class_attribute', $Class_class_attribute$1 = function $$class_attribute($a) { + var $post_args, attrs, $$2, self = this, options = nil, instance_reader = nil, $ret_or_1 = nil, instance_writer = nil, $ret_or_2 = nil, instance_predicate = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - attrs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - attrs[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + attrs = $post_args;; options = attrs['$extract_options!'](); - instance_reader = ($truthy($b = options.$fetch("instance_accessor", true)) ? options.$fetch("instance_reader", true) : $b); - instance_writer = ($truthy($b = options.$fetch("instance_accessor", true)) ? options.$fetch("instance_writer", true) : $b); + instance_reader = (function() {if ($truthy(($ret_or_1 = options.$fetch("instance_accessor", true)))) { + return options.$fetch("instance_reader", true) + } else { + return $ret_or_1 + }; return nil; })(); + instance_writer = (function() {if ($truthy(($ret_or_2 = options.$fetch("instance_accessor", true)))) { + return options.$fetch("instance_writer", true) + } else { + return $ret_or_2 + }; return nil; })(); instance_predicate = options.$fetch("instance_predicate", true); - return $send(attrs, 'each', [], (TMP_1 = function(name){var self = TMP_1.$$s || this, TMP_2, TMP_3, TMP_4, TMP_9, TMP_10, ivar = nil; -if (name == null) name = nil; - - $send(self, 'define_singleton_method', [name], (TMP_2 = function(){var self = TMP_2.$$s || this; + return $send(attrs, 'each', [], ($$2 = function(name){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $$4, $$5, $$10, $$11, ivar = nil; + + + + if (name == null) { + name = nil; + }; + $send(self, 'define_singleton_method', [name], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; - return nil}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); + return nil}, $$3.$$s = self, $$3.$$arity = 0, $$3)); if ($truthy(instance_predicate)) { - $send(self, 'define_singleton_method', ["" + (name) + "?"], (TMP_3 = function(){var self = TMP_3.$$s || this; + $send(self, 'define_singleton_method', ["" + (name) + "?"], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$public_send(name)['$!']()['$!']()}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3))}; + return self.$public_send(name)['$!']()['$!']()}, $$4.$$s = self, $$4.$$arity = 0, $$4))}; ivar = "" + "@" + (name); - $send(self, 'define_singleton_method', ["" + (name) + "="], (TMP_4 = function(val){var self = TMP_4.$$s || this, TMP_5, TMP_7; -if (val == null) val = nil; - - $send(self.$singleton_class(), 'class_eval', [], (TMP_5 = function(){var self = TMP_5.$$s || this, TMP_6; + $send(self, 'define_singleton_method', ["" + (name) + "="], ($$5 = function(val){var self = $$5.$$s == null ? this : $$5.$$s, $$6, $$8; + + if (val == null) { + val = nil; + }; + $send(self.$singleton_class(), 'class_eval', [], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s, $$7; + + self.$remove_possible_method(name); - return $send(self, 'define_method', [name], (TMP_6 = function(){var self = TMP_6.$$s || this; + return $send(self, 'define_method', [name], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; - return val}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6));}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5)); + return val}, $$7.$$s = self, $$7.$$arity = 0, $$7));}, $$6.$$s = self, $$6.$$arity = 0, $$6)); if ($truthy(self['$singleton_class?']())) { - $send(self, 'class_eval', [], (TMP_7 = function(){var self = TMP_7.$$s || this, TMP_8; + $send(self, 'class_eval', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s, $$9; - + self.$remove_possible_method(name); - return $send(self, 'define_method', [name], (TMP_8 = function(){var self = TMP_8.$$s || this; + return $send(self, 'define_method', [name], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s; - if ($truthy(self['$instance_variable_defined?'](ivar))) { + if ($truthy(self['$instance_variable_defined?'](ivar))) { return self.$instance_variable_get(ivar) - } else { + } else { return self.$singleton_class().$send(name) - }}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8));}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7))}; - return val;}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); + }}, $$9.$$s = self, $$9.$$arity = 0, $$9));}, $$8.$$s = self, $$8.$$arity = 0, $$8))}; + return val;}, $$5.$$s = self, $$5.$$arity = 1, $$5)); if ($truthy(instance_reader)) { self.$remove_possible_method(name); - $send(self, 'define_method', [name], (TMP_9 = function(){var self = TMP_9.$$s || this; + $send(self, 'define_method', [name], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - if ($truthy(self['$instance_variable_defined?'](ivar))) { + if ($truthy(self['$instance_variable_defined?'](ivar))) { return self.$instance_variable_get(ivar) - } else { + } else { return self.$class().$public_send(name) - }}, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)); + }}, $$10.$$s = self, $$10.$$arity = 0, $$10)); if ($truthy(instance_predicate)) { - $send(self, 'define_method', ["" + (name) + "?"], (TMP_10 = function(){var self = TMP_10.$$s || this; + $send(self, 'define_method', ["" + (name) + "?"], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; - return self.$public_send(name)['$!']()['$!']()}, TMP_10.$$s = self, TMP_10.$$arity = 0, TMP_10))};}; + return self.$public_send(name)['$!']()['$!']()}, $$11.$$s = self, $$11.$$arity = 0, $$11))};}; if ($truthy(instance_writer)) { return self.$attr_writer(name) - } else { + } else { return nil - };}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); - }, TMP_Class_class_attribute_11.$$arity = -1); + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $Class_class_attribute$1.$$arity = -1); self.$private(); if ($truthy(self['$respond_to?']("singleton_class?"))) { return nil - } else { - return (Opal.defn(self, '$singleton_class?', TMP_Class_singleton_class$q_12 = function() { - var $a, self = this; + } else { + return (Opal.def(self, '$singleton_class?', $Class_singleton_class$ques$12 = function() { + var self = this, $ret_or_3 = nil; - return ($truthy($a = true) ? $a : self.$ancestors().$first()['$!='](self)) - }, TMP_Class_singleton_class$q_12.$$arity = 0), nil) && 'singleton_class?' + if ($truthy(($ret_or_3 = true))) { + return $ret_or_3 + } else { + return self.$ancestors().$first()['$!='](self) + } + }, $Class_singleton_class$ques$12.$$arity = 0), nil) && 'singleton_class?' }; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/class"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext/class"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); return self.$require("active_support/core_ext/class/attribute") }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/enumerable"] = function(Opal) { +Opal.modules["active_support/core_ext/enumerable"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send; Opal.add_stubs(['$enum_for', '$new', '$destructure', '$[]=', '$-']); return (function($base, $parent_nesting) { - var $Enumerable, self = $Enumerable = $module($base, 'Enumerable'); + var self = $module($base, 'Enumerable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerable_index_by_1; + var $nesting = [self].concat($parent_nesting), $Enumerable_index_by$1; - - Opal.defn(self, '$index_by', TMP_Enumerable_index_by_1 = function $$index_by() { - var self = this, $iter = TMP_Enumerable_index_by_1.$$p, block = $iter || nil, hash = nil, $writer = nil; + return (Opal.def(self, '$index_by', $Enumerable_index_by$1 = function $$index_by() { + var $iter = $Enumerable_index_by$1.$$p, block = $iter || nil, self = this, hash = nil, $writer = nil; - if ($iter) TMP_Enumerable_index_by_1.$$p = null; + if ($iter) $Enumerable_index_by$1.$$p = null; + + if ($iter) $Enumerable_index_by$1.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("index_by") }; - hash = Opal.const_get_relative($nesting, 'Hash').$new(); + hash = $$($nesting, 'Hash').$new(); var result; self.$each._p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = $opal.$yield1(block, param); if (value === $breaker) { @@ -387,72 +458,76 @@ Opal.modules["active_support/core_ext/enumerable"] = function(Opal) { } ; return hash; - }, TMP_Enumerable_index_by_1.$$arity = 0) + }, $Enumerable_index_by$1.$$arity = 0), nil) && 'index_by' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/hash_with_indifferent_access"] = function(Opal) { +Opal.modules["active_support/hash_with_indifferent_access"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; Opal.add_stubs(['$dup', '$respond_to?', '$update', '$to_hash', '$tap', '$new', '$default', '$default=', '$-', '$default_proc', '$default_proc=']); return (function($base, $parent_nesting) { - var $ActiveSupport, self = $ActiveSupport = $module($base, 'ActiveSupport'); + var self = $module($base, 'ActiveSupport'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $HashWithIndifferentAccess(){}; - var self = $HashWithIndifferentAccess = $klass($base, $super, 'HashWithIndifferentAccess', $HashWithIndifferentAccess); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'HashWithIndifferentAccess'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_HashWithIndifferentAccess_extractable_options$q_1, TMP_HashWithIndifferentAccess_with_indifferent_access_2, TMP_HashWithIndifferentAccess_nested_under_indifferent_access_3, TMP_HashWithIndifferentAccess_initialize_4, TMP_HashWithIndifferentAccess_new_from_hash_copying_default_6; + var $nesting = [self].concat($parent_nesting), $HashWithIndifferentAccess_extractable_options$ques$1, $HashWithIndifferentAccess_with_indifferent_access$2, $HashWithIndifferentAccess_nested_under_indifferent_access$3, $HashWithIndifferentAccess_initialize$4, $HashWithIndifferentAccess_new_from_hash_copying_default$5; - Opal.defn(self, '$extractable_options?', TMP_HashWithIndifferentAccess_extractable_options$q_1 = function() { + Opal.def(self, '$extractable_options?', $HashWithIndifferentAccess_extractable_options$ques$1 = function() { var self = this; return true - }, TMP_HashWithIndifferentAccess_extractable_options$q_1.$$arity = 0); + }, $HashWithIndifferentAccess_extractable_options$ques$1.$$arity = 0); - Opal.defn(self, '$with_indifferent_access', TMP_HashWithIndifferentAccess_with_indifferent_access_2 = function $$with_indifferent_access() { + Opal.def(self, '$with_indifferent_access', $HashWithIndifferentAccess_with_indifferent_access$2 = function $$with_indifferent_access() { var self = this; return self.$dup() - }, TMP_HashWithIndifferentAccess_with_indifferent_access_2.$$arity = 0); + }, $HashWithIndifferentAccess_with_indifferent_access$2.$$arity = 0); - Opal.defn(self, '$nested_under_indifferent_access', TMP_HashWithIndifferentAccess_nested_under_indifferent_access_3 = function $$nested_under_indifferent_access() { + Opal.def(self, '$nested_under_indifferent_access', $HashWithIndifferentAccess_nested_under_indifferent_access$3 = function $$nested_under_indifferent_access() { var self = this; return self - }, TMP_HashWithIndifferentAccess_nested_under_indifferent_access_3.$$arity = 0); + }, $HashWithIndifferentAccess_nested_under_indifferent_access$3.$$arity = 0); - Opal.defn(self, '$initialize', TMP_HashWithIndifferentAccess_initialize_4 = function $$initialize(constructor) { - var self = this, $iter = TMP_HashWithIndifferentAccess_initialize_4.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $HashWithIndifferentAccess_initialize$4 = function $$initialize(constructor) { + var $iter = $HashWithIndifferentAccess_initialize$4.$$p, $yield = $iter || nil, self = this; + if ($iter) $HashWithIndifferentAccess_initialize$4.$$p = null; + + if (constructor == null) { constructor = $hash2([], {}); - } - if ($iter) TMP_HashWithIndifferentAccess_initialize_4.$$p = null; + }; if ($truthy(constructor['$respond_to?']("to_hash"))) { - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_HashWithIndifferentAccess_initialize_4, false), [], null); + $send2(self, $find_super(self, 'initialize', $HashWithIndifferentAccess_initialize$4, false, true), 'initialize', [], null); return self.$update(constructor); - } else { - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_HashWithIndifferentAccess_initialize_4, false), [constructor], null) - } - }, TMP_HashWithIndifferentAccess_initialize_4.$$arity = -1); - return Opal.defs(self, '$new_from_hash_copying_default', TMP_HashWithIndifferentAccess_new_from_hash_copying_default_6 = function $$new_from_hash_copying_default(hash) { - var TMP_5, self = this; + } else { + return $send2(self, $find_super(self, 'initialize', $HashWithIndifferentAccess_initialize$4, false, true), 'initialize', [constructor], null) + }; + }, $HashWithIndifferentAccess_initialize$4.$$arity = -1); + return (Opal.defs(self, '$new_from_hash_copying_default', $HashWithIndifferentAccess_new_from_hash_copying_default$5 = function $$new_from_hash_copying_default(hash) { + var $$6, self = this; hash = hash.$to_hash(); - return $send(self.$new(hash), 'tap', [], (TMP_5 = function(new_hash){var self = TMP_5.$$s || this, $writer = nil; -if (new_hash == null) new_hash = nil; - + return $send(self.$new(hash), 'tap', [], ($$6 = function(new_hash){var self = $$6.$$s == null ? this : $$6.$$s, $writer = nil; + + + + if (new_hash == null) { + new_hash = nil; + }; $writer = [hash.$default()]; $send(new_hash, 'default=', Opal.to_a($writer)); @@ -462,48 +537,44 @@ if (new_hash == null) new_hash = nil; $writer = [hash.$default_proc()]; $send(new_hash, 'default_proc=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { return nil - };}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); - }, TMP_HashWithIndifferentAccess_new_from_hash_copying_default_6.$$arity = 1); - })($nesting[0], Opal.const_get_relative($nesting, 'Hash'), $nesting) + };}, $$6.$$s = self, $$6.$$arity = 1, $$6)); + }, $HashWithIndifferentAccess_new_from_hash_copying_default$5.$$arity = 1), nil) && 'new_from_hash_copying_default'; + })($nesting[0], $$($nesting, 'Hash'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/hash/indifferent_access"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["active_support/core_ext/hash/indifferent_access"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias; Opal.add_stubs(['$require', '$new_from_hash_copying_default']); self.$require("active_support/hash_with_indifferent_access"); return (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); + var self = $klass($base, $super, 'Hash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_with_indifferent_access_1; + var $nesting = [self].concat($parent_nesting), $Hash_with_indifferent_access$1; - Opal.defn(self, '$with_indifferent_access', TMP_Hash_with_indifferent_access_1 = function $$with_indifferent_access() { + Opal.def(self, '$with_indifferent_access', $Hash_with_indifferent_access$1 = function $$with_indifferent_access() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'HashWithIndifferentAccess').$new_from_hash_copying_default(self) - }, TMP_Hash_with_indifferent_access_1.$$arity = 0); - return Opal.alias(self, "nested_under_indifferent_access", "with_indifferent_access"); + return $$$($$($nesting, 'ActiveSupport'), 'HashWithIndifferentAccess').$new_from_hash_copying_default(self) + }, $Hash_with_indifferent_access$1.$$arity = 0); + return $alias(self, "nested_under_indifferent_access", "with_indifferent_access"); })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/hash"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext/hash"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); return self.$require("active_support/core_ext/hash/indifferent_access") }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/numeric/time"] = function(Opal) { +Opal.modules["active_support/core_ext/numeric/time"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_times(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); } @@ -513,133 +584,131 @@ Opal.modules["active_support/core_ext/numeric/time"] = function(Opal) { function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias; - Opal.add_stubs(['$*', '$hours', '$days', '$weeks', '$-', '$current', '$+']); + Opal.add_stubs(['$*', '$hours', '$days', '$weeks', '$current', '$-', '$+']); return (function($base, $super, $parent_nesting) { - function $Numeric(){}; - var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric); + var self = $klass($base, $super, 'Numeric'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Numeric_seconds_1, TMP_Numeric_minutes_2, TMP_Numeric_hours_3, TMP_Numeric_days_4, TMP_Numeric_weeks_5, TMP_Numeric_fortnights_6, TMP_Numeric_ago_7, TMP_Numeric_since_8; + var $nesting = [self].concat($parent_nesting), $Numeric_seconds$1, $Numeric_minutes$2, $Numeric_hours$3, $Numeric_days$4, $Numeric_weeks$5, $Numeric_fortnights$6, $Numeric_ago$7, $Numeric_since$8; - Opal.defn(self, '$seconds', TMP_Numeric_seconds_1 = function $$seconds() { + Opal.def(self, '$seconds', $Numeric_seconds$1 = function $$seconds() { var self = this; return self - }, TMP_Numeric_seconds_1.$$arity = 0); - Opal.alias(self, "second", "seconds"); + }, $Numeric_seconds$1.$$arity = 0); + $alias(self, "second", "seconds"); - Opal.defn(self, '$minutes', TMP_Numeric_minutes_2 = function $$minutes() { + Opal.def(self, '$minutes', $Numeric_minutes$2 = function $$minutes() { var self = this; return $rb_times(self, 60) - }, TMP_Numeric_minutes_2.$$arity = 0); - Opal.alias(self, "minute", "minutes"); + }, $Numeric_minutes$2.$$arity = 0); + $alias(self, "minute", "minutes"); - Opal.defn(self, '$hours', TMP_Numeric_hours_3 = function $$hours() { + Opal.def(self, '$hours', $Numeric_hours$3 = function $$hours() { var self = this; return $rb_times(self, 3600) - }, TMP_Numeric_hours_3.$$arity = 0); - Opal.alias(self, "hour", "hours"); + }, $Numeric_hours$3.$$arity = 0); + $alias(self, "hour", "hours"); - Opal.defn(self, '$days', TMP_Numeric_days_4 = function $$days() { + Opal.def(self, '$days', $Numeric_days$4 = function $$days() { var self = this; return $rb_times(self, (24).$hours()) - }, TMP_Numeric_days_4.$$arity = 0); - Opal.alias(self, "day", "days"); + }, $Numeric_days$4.$$arity = 0); + $alias(self, "day", "days"); - Opal.defn(self, '$weeks', TMP_Numeric_weeks_5 = function $$weeks() { + Opal.def(self, '$weeks', $Numeric_weeks$5 = function $$weeks() { var self = this; return $rb_times(self, (7).$days()) - }, TMP_Numeric_weeks_5.$$arity = 0); - Opal.alias(self, "week", "weeks"); + }, $Numeric_weeks$5.$$arity = 0); + $alias(self, "week", "weeks"); - Opal.defn(self, '$fortnights', TMP_Numeric_fortnights_6 = function $$fortnights() { + Opal.def(self, '$fortnights', $Numeric_fortnights$6 = function $$fortnights() { var self = this; return $rb_times(self, (2).$weeks()) - }, TMP_Numeric_fortnights_6.$$arity = 0); - Opal.alias(self, "fortnight", "fortnights"); + }, $Numeric_fortnights$6.$$arity = 0); + $alias(self, "fortnight", "fortnights"); - Opal.defn(self, '$ago', TMP_Numeric_ago_7 = function $$ago(time) { + Opal.def(self, '$ago', $Numeric_ago$7 = function $$ago(time) { var self = this; + + if (time == null) { - time = Opal.const_get_qualified('::', 'Time').$current(); - } - return $rb_minus(time, self) - }, TMP_Numeric_ago_7.$$arity = -1); - Opal.alias(self, "until", "ago"); + time = $$$('::', 'Time').$current(); + }; + return $rb_minus(time, self); + }, $Numeric_ago$7.$$arity = -1); + $alias(self, "until", "ago"); - Opal.defn(self, '$since', TMP_Numeric_since_8 = function $$since(time) { + Opal.def(self, '$since', $Numeric_since$8 = function $$since(time) { var self = this; + + if (time == null) { - time = Opal.const_get_qualified('::', 'Time').$current(); - } - return $rb_plus(time, self) - }, TMP_Numeric_since_8.$$arity = -1); - return Opal.alias(self, "from_now", "since"); + time = $$$('::', 'Time').$current(); + }; + return $rb_plus(time, self); + }, $Numeric_since$8.$$arity = -1); + return $alias(self, "from_now", "since"); })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/integer/time"] = function(Opal) { +Opal.modules["active_support/core_ext/integer/time"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_times(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias; Opal.add_stubs(['$require', '$*', '$days']); self.$require("active_support/core_ext/numeric/time"); return (function($base, $super, $parent_nesting) { - function $Numeric(){}; - var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric); + var self = $klass($base, $super, 'Numeric'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Numeric_months_1, TMP_Numeric_years_2; + var $nesting = [self].concat($parent_nesting), $Numeric_months$1, $Numeric_years$2; - Opal.defn(self, '$months', TMP_Numeric_months_1 = function $$months() { + Opal.def(self, '$months', $Numeric_months$1 = function $$months() { var self = this; return $rb_times(self, (30).$days()) - }, TMP_Numeric_months_1.$$arity = 0); - Opal.alias(self, "month", "months"); + }, $Numeric_months$1.$$arity = 0); + $alias(self, "month", "months"); - Opal.defn(self, '$years', TMP_Numeric_years_2 = function $$years() { + Opal.def(self, '$years', $Numeric_years$2 = function $$years() { var self = this; return $rb_times(self, (365.25).$days()) - }, TMP_Numeric_years_2.$$arity = 0); - return Opal.alias(self, "year", "years"); + }, $Numeric_years$2.$$arity = 0); + return $alias(self, "year", "years"); })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/integer"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext/integer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); return self.$require("active_support/core_ext/integer/time") }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/kernel"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext/kernel"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); return self.$require("active_support/core_ext/kernel/singleton_class") }; -/* Generated by Opal 0.11.4 */ -Opal.modules["set"] = function(Opal) { +Opal.modules["set"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } @@ -649,99 +718,114 @@ Opal.modules["set"] = function(Opal) { function $rb_le(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $module = Opal.module; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $module = Opal.module; - Opal.add_stubs(['$include', '$new', '$nil?', '$===', '$raise', '$each', '$add', '$call', '$merge', '$class', '$respond_to?', '$subtract', '$dup', '$join', '$to_a', '$equal?', '$instance_of?', '$==', '$instance_variable_get', '$is_a?', '$size', '$all?', '$include?', '$[]=', '$-', '$enum_for', '$[]', '$<<', '$replace', '$delete', '$select', '$each_key', '$to_proc', '$empty?', '$eql?', '$instance_eval', '$clear', '$<', '$<=', '$keys']); + Opal.add_stubs(['$include', '$new', '$nil?', '$===', '$raise', '$each', '$add', '$merge', '$class', '$respond_to?', '$subtract', '$dup', '$join', '$to_a', '$equal?', '$instance_of?', '$==', '$instance_variable_get', '$is_a?', '$size', '$all?', '$include?', '$[]=', '$-', '$enum_for', '$[]', '$<<', '$replace', '$delete', '$select', '$reject', '$delete_if', '$to_proc', '$keep_if', '$each_key', '$empty?', '$eql?', '$instance_eval', '$clear', '$<', '$<=', '$any?', '$!', '$intersect?', '$keys']); (function($base, $super, $parent_nesting) { - function $Set(){}; - var self = $Set = $klass($base, $super, 'Set', $Set); + var self = $klass($base, $super, 'Set'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Set_$$_1, TMP_Set_initialize_2, TMP_Set_dup_4, TMP_Set_$_5, TMP_Set_inspect_6, TMP_Set_$eq$eq_8, TMP_Set_add_9, TMP_Set_classify_10, TMP_Set_collect$B_13, TMP_Set_delete_15, TMP_Set_delete$q_16, TMP_Set_delete_if_17, TMP_Set_add$q_20, TMP_Set_each_21, TMP_Set_empty$q_22, TMP_Set_eql$q_24, TMP_Set_clear_25, TMP_Set_include$q_26, TMP_Set_merge_28, TMP_Set_replace_29, TMP_Set_size_30, TMP_Set_subtract_32, TMP_Set_$_33, TMP_Set_superset$q_35, TMP_Set_proper_superset$q_37, TMP_Set_subset$q_39, TMP_Set_proper_subset$q_41, TMP_Set_to_a_42; + var $nesting = [self].concat($parent_nesting), $Set_$$$1, $Set_initialize$2, $Set_dup$4, $Set_$minus$5, $Set_inspect$6, $Set_$eq_eq$7, $Set_add$9, $Set_classify$10, $Set_collect$excl$13, $Set_delete$15, $Set_delete$ques$16, $Set_delete_if$17, $Set_keep_if$20, $Set_reject$excl$23, $Set_select$excl$24, $Set_add$ques$25, $Set_each$26, $Set_empty$ques$27, $Set_eql$ques$28, $Set_clear$30, $Set_include$ques$31, $Set_merge$32, $Set_replace$34, $Set_size$35, $Set_subtract$36, $Set_$$38, $Set_superset$ques$39, $Set_proper_superset$ques$41, $Set_subset$ques$43, $Set_proper_subset$ques$45, $Set_intersect$ques$47, $Set_disjoint$ques$50, $Set_to_a$51; - def.hash = nil; + self.$$prototype.hash = nil; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); - Opal.defs(self, '$[]', TMP_Set_$$_1 = function($a_rest) { - var self = this, ary; + self.$include($$($nesting, 'Enumerable')); + Opal.defs(self, '$[]', $Set_$$$1 = function($a) { + var $post_args, ary, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - ary = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - ary[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$new(ary) - }, TMP_Set_$$_1.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + ary = $post_args;; + return self.$new(ary); + }, $Set_$$$1.$$arity = -1); - Opal.defn(self, '$initialize', TMP_Set_initialize_2 = function $$initialize(enum$) { - var TMP_3, self = this, $iter = TMP_Set_initialize_2.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Set_initialize$2 = function $$initialize(enum$) { + var $iter = $Set_initialize$2.$$p, block = $iter || nil, $$3, self = this; + if ($iter) $Set_initialize$2.$$p = null; + + + if ($iter) $Set_initialize$2.$$p = null;; + if (enum$ == null) { enum$ = nil; - } - if ($iter) TMP_Set_initialize_2.$$p = null; - - self.hash = Opal.const_get_relative($nesting, 'Hash').$new(); + }; + self.hash = $hash2([], {}); if ($truthy(enum$['$nil?']())) { return nil}; - if ($truthy(Opal.const_get_relative($nesting, 'Enumerable')['$==='](enum$))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be enumerable") + if ($truthy($$($nesting, 'Enumerable')['$==='](enum$))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") }; if ($truthy(block)) { - return $send(enum$, 'each', [], (TMP_3 = function(item){var self = TMP_3.$$s || this; -if (item == null) item = nil; - return self.$add(block.$call(item))}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)) - } else { + return $send(enum$, 'each', [], ($$3 = function(item){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (item == null) { + item = nil; + }; + return self.$add(Opal.yield1(block, item));}, $$3.$$s = self, $$3.$$arity = 1, $$3)) + } else { return self.$merge(enum$) }; - }, TMP_Set_initialize_2.$$arity = -1); + }, $Set_initialize$2.$$arity = -1); - Opal.defn(self, '$dup', TMP_Set_dup_4 = function $$dup() { + Opal.def(self, '$dup', $Set_dup$4 = function $$dup() { var self = this, result = nil; result = self.$class().$new(); return result.$merge(self); - }, TMP_Set_dup_4.$$arity = 0); + }, $Set_dup$4.$$arity = 0); - Opal.defn(self, '$-', TMP_Set_$_5 = function(enum$) { + Opal.def(self, '$-', $Set_$minus$5 = function(enum$) { var self = this; if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be enumerable") + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") }; return self.$dup().$subtract(enum$); - }, TMP_Set_$_5.$$arity = 1); - Opal.alias(self, "difference", "-"); + }, $Set_$minus$5.$$arity = 1); + $alias(self, "difference", "-"); - Opal.defn(self, '$inspect', TMP_Set_inspect_6 = function $$inspect() { + Opal.def(self, '$inspect', $Set_inspect$6 = function $$inspect() { var self = this; return "" + "#" - }, TMP_Set_inspect_6.$$arity = 0); + }, $Set_inspect$6.$$arity = 0); - Opal.defn(self, '$==', TMP_Set_$eq$eq_8 = function(other) { - var $a, TMP_7, self = this; + Opal.def(self, '$==', $Set_$eq_eq$7 = function(other) { + var $$8, self = this, $ret_or_1 = nil; if ($truthy(self['$equal?'](other))) { return true } else if ($truthy(other['$instance_of?'](self.$class()))) { return self.hash['$=='](other.$instance_variable_get("@hash")) - } else if ($truthy(($truthy($a = other['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? self.$size()['$=='](other.$size()) : $a))) { - return $send(other, 'all?', [], (TMP_7 = function(o){var self = TMP_7.$$s || this; + } else if ($truthy((function() {if ($truthy(($ret_or_1 = other['$is_a?']($$($nesting, 'Set'))))) { + return self.$size()['$=='](other.$size()) + } else { + return $ret_or_1 + }; return nil; })())) { + return $send(other, 'all?', [], ($$8 = function(o){var self = $$8.$$s == null ? this : $$8.$$s; if (self.hash == null) self.hash = nil; -if (o == null) o = nil; - return self.hash['$include?'](o)}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)) - } else { + + + + if (o == null) { + o = nil; + }; + return self.hash['$include?'](o);}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + } else { return false } - }, TMP_Set_$eq$eq_8.$$arity = 1); + }, $Set_$eq_eq$7.$$arity = 1); - Opal.defn(self, '$add', TMP_Set_add_9 = function $$add(o) { + Opal.def(self, '$add', $Set_add$9 = function $$add(o) { var self = this, $writer = nil; @@ -750,405 +834,602 @@ if (o == null) o = nil; $send(self.hash, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self; - }, TMP_Set_add_9.$$arity = 1); - Opal.alias(self, "<<", "add"); + }, $Set_add$9.$$arity = 1); + $alias(self, "<<", "add"); - Opal.defn(self, '$classify', TMP_Set_classify_10 = function $$classify() { - var TMP_11, TMP_12, self = this, $iter = TMP_Set_classify_10.$$p, block = $iter || nil, result = nil; + Opal.def(self, '$classify', $Set_classify$10 = function $$classify() { + var $iter = $Set_classify$10.$$p, block = $iter || nil, $$11, $$12, self = this, result = nil; - if ($iter) TMP_Set_classify_10.$$p = null; + if ($iter) $Set_classify$10.$$p = null; + + if ($iter) $Set_classify$10.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("classify") }; - result = $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_11 = function(h, k){var self = TMP_11.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - + result = $send($$($nesting, 'Hash'), 'new', [], ($$11 = function(h, k){var self = $$11.$$s == null ? this : $$11.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; $writer = [k, self.$class().$new()]; $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11)); - $send(self, 'each', [], (TMP_12 = function(item){var self = TMP_12.$$s || this; -if (item == null) item = nil; - return result['$[]'](Opal.yield1(block, item)).$add(item)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)); + return $writer[$rb_minus($writer["length"], 1)];}, $$11.$$s = self, $$11.$$arity = 2, $$11)); + $send(self, 'each', [], ($$12 = function(item){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (item == null) { + item = nil; + }; + return result['$[]'](Opal.yield1(block, item)).$add(item);}, $$12.$$s = self, $$12.$$arity = 1, $$12)); return result; - }, TMP_Set_classify_10.$$arity = 0); + }, $Set_classify$10.$$arity = 0); - Opal.defn(self, '$collect!', TMP_Set_collect$B_13 = function() { - var TMP_14, self = this, $iter = TMP_Set_collect$B_13.$$p, block = $iter || nil, result = nil; + Opal.def(self, '$collect!', $Set_collect$excl$13 = function() { + var $iter = $Set_collect$excl$13.$$p, block = $iter || nil, $$14, self = this, result = nil; - if ($iter) TMP_Set_collect$B_13.$$p = null; + if ($iter) $Set_collect$excl$13.$$p = null; + + if ($iter) $Set_collect$excl$13.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("collect!") }; result = self.$class().$new(); - $send(self, 'each', [], (TMP_14 = function(item){var self = TMP_14.$$s || this; -if (item == null) item = nil; - return result['$<<'](Opal.yield1(block, item))}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)); + $send(self, 'each', [], ($$14 = function(item){var self = $$14.$$s == null ? this : $$14.$$s; + + + + if (item == null) { + item = nil; + }; + return result['$<<'](Opal.yield1(block, item));}, $$14.$$s = self, $$14.$$arity = 1, $$14)); return self.$replace(result); - }, TMP_Set_collect$B_13.$$arity = 0); - Opal.alias(self, "map!", "collect!"); + }, $Set_collect$excl$13.$$arity = 0); + $alias(self, "map!", "collect!"); - Opal.defn(self, '$delete', TMP_Set_delete_15 = function(o) { + Opal.def(self, '$delete', $Set_delete$15 = function(o) { var self = this; self.hash.$delete(o); return self; - }, TMP_Set_delete_15.$$arity = 1); + }, $Set_delete$15.$$arity = 1); - Opal.defn(self, '$delete?', TMP_Set_delete$q_16 = function(o) { + Opal.def(self, '$delete?', $Set_delete$ques$16 = function(o) { var self = this; if ($truthy(self['$include?'](o))) { self.$delete(o); return self; - } else { + } else { return nil } - }, TMP_Set_delete$q_16.$$arity = 1); + }, $Set_delete$ques$16.$$arity = 1); - Opal.defn(self, '$delete_if', TMP_Set_delete_if_17 = function $$delete_if() {try { + Opal.def(self, '$delete_if', $Set_delete_if$17 = function $$delete_if() { + var $$18, $$19, $iter = $Set_delete_if$17.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Set_delete_if$17.$$p = null; + + if (($yield !== nil)) { + } else { + return self.$enum_for("delete_if") + }; + $send($send(self, 'select', [], ($$18 = function(o){var self = $$18.$$s == null ? this : $$18.$$s; + + + + if (o == null) { + o = nil; + }; + return Opal.yield1($yield, o);;}, $$18.$$s = self, $$18.$$arity = 1, $$18)), 'each', [], ($$19 = function(o){var self = $$19.$$s == null ? this : $$19.$$s; + if (self.hash == null) self.hash = nil; - var $a, TMP_18, TMP_19, self = this, $iter = TMP_Set_delete_if_17.$$p, $yield = $iter || nil; + + + if (o == null) { + o = nil; + }; + return self.hash.$delete(o);}, $$19.$$s = self, $$19.$$arity = 1, $$19)); + return self; + }, $Set_delete_if$17.$$arity = 0); + + Opal.def(self, '$keep_if', $Set_keep_if$20 = function $$keep_if() { + var $$21, $$22, $iter = $Set_keep_if$20.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Set_delete_if_17.$$p = null; + if ($iter) $Set_keep_if$20.$$p = null; - ($truthy($a = ($yield !== nil)) ? $a : Opal.ret(self.$enum_for("delete_if"))); - $send($send(self, 'select', [], (TMP_18 = function(o){var self = TMP_18.$$s || this; -if (o == null) o = nil; - return Opal.yield1($yield, o);}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)), 'each', [], (TMP_19 = function(o){var self = TMP_19.$$s || this; + if (($yield !== nil)) { + } else { + return self.$enum_for("keep_if") + }; + $send($send(self, 'reject', [], ($$21 = function(o){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (o == null) { + o = nil; + }; + return Opal.yield1($yield, o);;}, $$21.$$s = self, $$21.$$arity = 1, $$21)), 'each', [], ($$22 = function(o){var self = $$22.$$s == null ? this : $$22.$$s; if (self.hash == null) self.hash = nil; -if (o == null) o = nil; - return self.hash.$delete(o)}, TMP_19.$$s = self, TMP_19.$$arity = 1, TMP_19)); + + + + if (o == null) { + o = nil; + }; + return self.hash.$delete(o);}, $$22.$$s = self, $$22.$$arity = 1, $$22)); return self; - } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Set_delete_if_17.$$arity = 0); + }, $Set_keep_if$20.$$arity = 0); + + Opal.def(self, '$reject!', $Set_reject$excl$23 = function() { + var $iter = $Set_reject$excl$23.$$p, block = $iter || nil, self = this, before = nil; + + if ($iter) $Set_reject$excl$23.$$p = null; + + + if ($iter) $Set_reject$excl$23.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("reject!") + }; + before = self.$size(); + $send(self, 'delete_if', [], block.$to_proc()); + if (self.$size()['$=='](before)) { + return nil + } else { + return self + }; + }, $Set_reject$excl$23.$$arity = 0); + + Opal.def(self, '$select!', $Set_select$excl$24 = function() { + var $iter = $Set_select$excl$24.$$p, block = $iter || nil, self = this, before = nil; + + if ($iter) $Set_select$excl$24.$$p = null; + + + if ($iter) $Set_select$excl$24.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("select!") + }; + before = self.$size(); + $send(self, 'keep_if', [], block.$to_proc()); + if (self.$size()['$=='](before)) { + return nil + } else { + return self + }; + }, $Set_select$excl$24.$$arity = 0); + $alias(self, "filter!", "select!"); - Opal.defn(self, '$add?', TMP_Set_add$q_20 = function(o) { + Opal.def(self, '$add?', $Set_add$ques$25 = function(o) { var self = this; if ($truthy(self['$include?'](o))) { return nil - } else { + } else { return self.$add(o) } - }, TMP_Set_add$q_20.$$arity = 1); + }, $Set_add$ques$25.$$arity = 1); - Opal.defn(self, '$each', TMP_Set_each_21 = function $$each() { - var self = this, $iter = TMP_Set_each_21.$$p, block = $iter || nil; + Opal.def(self, '$each', $Set_each$26 = function $$each() { + var $iter = $Set_each$26.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Set_each_21.$$p = null; + if ($iter) $Set_each$26.$$p = null; + + if ($iter) $Set_each$26.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("each") }; $send(self.hash, 'each_key', [], block.$to_proc()); return self; - }, TMP_Set_each_21.$$arity = 0); + }, $Set_each$26.$$arity = 0); - Opal.defn(self, '$empty?', TMP_Set_empty$q_22 = function() { + Opal.def(self, '$empty?', $Set_empty$ques$27 = function() { var self = this; return self.hash['$empty?']() - }, TMP_Set_empty$q_22.$$arity = 0); + }, $Set_empty$ques$27.$$arity = 0); - Opal.defn(self, '$eql?', TMP_Set_eql$q_24 = function(other) { - var TMP_23, self = this; + Opal.def(self, '$eql?', $Set_eql$ques$28 = function(other) { + var $$29, self = this; - return self.hash['$eql?']($send(other, 'instance_eval', [], (TMP_23 = function(){var self = TMP_23.$$s || this; + return self.hash['$eql?']($send(other, 'instance_eval', [], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; if (self.hash == null) self.hash = nil; - return self.hash}, TMP_23.$$s = self, TMP_23.$$arity = 0, TMP_23))) - }, TMP_Set_eql$q_24.$$arity = 1); + return self.hash}, $$29.$$s = self, $$29.$$arity = 0, $$29))) + }, $Set_eql$ques$28.$$arity = 1); - Opal.defn(self, '$clear', TMP_Set_clear_25 = function $$clear() { + Opal.def(self, '$clear', $Set_clear$30 = function $$clear() { var self = this; self.hash.$clear(); return self; - }, TMP_Set_clear_25.$$arity = 0); + }, $Set_clear$30.$$arity = 0); - Opal.defn(self, '$include?', TMP_Set_include$q_26 = function(o) { + Opal.def(self, '$include?', $Set_include$ques$31 = function(o) { var self = this; return self.hash['$include?'](o) - }, TMP_Set_include$q_26.$$arity = 1); - Opal.alias(self, "member?", "include?"); + }, $Set_include$ques$31.$$arity = 1); + $alias(self, "member?", "include?"); - Opal.defn(self, '$merge', TMP_Set_merge_28 = function $$merge(enum$) { - var TMP_27, self = this; + Opal.def(self, '$merge', $Set_merge$32 = function $$merge(enum$) { + var $$33, self = this; - $send(enum$, 'each', [], (TMP_27 = function(item){var self = TMP_27.$$s || this; -if (item == null) item = nil; - return self.$add(item)}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)); + $send(enum$, 'each', [], ($$33 = function(item){var self = $$33.$$s == null ? this : $$33.$$s; + + + + if (item == null) { + item = nil; + }; + return self.$add(item);}, $$33.$$s = self, $$33.$$arity = 1, $$33)); return self; - }, TMP_Set_merge_28.$$arity = 1); + }, $Set_merge$32.$$arity = 1); - Opal.defn(self, '$replace', TMP_Set_replace_29 = function $$replace(enum$) { + Opal.def(self, '$replace', $Set_replace$34 = function $$replace(enum$) { var self = this; self.$clear(); self.$merge(enum$); return self; - }, TMP_Set_replace_29.$$arity = 1); + }, $Set_replace$34.$$arity = 1); - Opal.defn(self, '$size', TMP_Set_size_30 = function $$size() { + Opal.def(self, '$size', $Set_size$35 = function $$size() { var self = this; return self.hash.$size() - }, TMP_Set_size_30.$$arity = 0); - Opal.alias(self, "length", "size"); + }, $Set_size$35.$$arity = 0); + $alias(self, "length", "size"); - Opal.defn(self, '$subtract', TMP_Set_subtract_32 = function $$subtract(enum$) { - var TMP_31, self = this; + Opal.def(self, '$subtract', $Set_subtract$36 = function $$subtract(enum$) { + var $$37, self = this; - $send(enum$, 'each', [], (TMP_31 = function(item){var self = TMP_31.$$s || this; -if (item == null) item = nil; - return self.$delete(item)}, TMP_31.$$s = self, TMP_31.$$arity = 1, TMP_31)); + $send(enum$, 'each', [], ($$37 = function(item){var self = $$37.$$s == null ? this : $$37.$$s; + + + + if (item == null) { + item = nil; + }; + return self.$delete(item);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); return self; - }, TMP_Set_subtract_32.$$arity = 1); + }, $Set_subtract$36.$$arity = 1); - Opal.defn(self, '$|', TMP_Set_$_33 = function(enum$) { + Opal.def(self, '$|', $Set_$$38 = function(enum$) { var self = this; if ($truthy(enum$['$respond_to?']("each"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be enumerable") + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be enumerable") }; return self.$dup().$merge(enum$); - }, TMP_Set_$_33.$$arity = 1); + }, $Set_$$38.$$arity = 1); - Opal.defn(self, '$superset?', TMP_Set_superset$q_35 = function(set) { - var $a, TMP_34, self = this; + Opal.def(self, '$superset?', $Set_superset$ques$39 = function(set) { + var $$40, self = this, $ret_or_2 = nil; - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); + if ($truthy(($ret_or_2 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_2 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; if ($truthy($rb_lt(self.$size(), set.$size()))) { return false}; - return $send(set, 'all?', [], (TMP_34 = function(o){var self = TMP_34.$$s || this; -if (o == null) o = nil; - return self['$include?'](o)}, TMP_34.$$s = self, TMP_34.$$arity = 1, TMP_34)); - }, TMP_Set_superset$q_35.$$arity = 1); - Opal.alias(self, ">=", "superset?"); + return $send(set, 'all?', [], ($$40 = function(o){var self = $$40.$$s == null ? this : $$40.$$s; + + + + if (o == null) { + o = nil; + }; + return self['$include?'](o);}, $$40.$$s = self, $$40.$$arity = 1, $$40)); + }, $Set_superset$ques$39.$$arity = 1); + $alias(self, ">=", "superset?"); - Opal.defn(self, '$proper_superset?', TMP_Set_proper_superset$q_37 = function(set) { - var $a, TMP_36, self = this; + Opal.def(self, '$proper_superset?', $Set_proper_superset$ques$41 = function(set) { + var $$42, self = this, $ret_or_3 = nil; - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); + if ($truthy(($ret_or_3 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_3 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; if ($truthy($rb_le(self.$size(), set.$size()))) { return false}; - return $send(set, 'all?', [], (TMP_36 = function(o){var self = TMP_36.$$s || this; -if (o == null) o = nil; - return self['$include?'](o)}, TMP_36.$$s = self, TMP_36.$$arity = 1, TMP_36)); - }, TMP_Set_proper_superset$q_37.$$arity = 1); - Opal.alias(self, ">", "proper_superset?"); + return $send(set, 'all?', [], ($$42 = function(o){var self = $$42.$$s == null ? this : $$42.$$s; + + + + if (o == null) { + o = nil; + }; + return self['$include?'](o);}, $$42.$$s = self, $$42.$$arity = 1, $$42)); + }, $Set_proper_superset$ques$41.$$arity = 1); + $alias(self, ">", "proper_superset?"); - Opal.defn(self, '$subset?', TMP_Set_subset$q_39 = function(set) { - var $a, TMP_38, self = this; + Opal.def(self, '$subset?', $Set_subset$ques$43 = function(set) { + var $$44, self = this, $ret_or_4 = nil; - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); - if ($truthy($rb_lt(set.$size(), self.$size()))) { + if ($truthy(($ret_or_4 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_4 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; + if ($truthy($rb_lt(set.$size(), self.$size()))) { return false}; - return $send(self, 'all?', [], (TMP_38 = function(o){var self = TMP_38.$$s || this; -if (o == null) o = nil; - return set['$include?'](o)}, TMP_38.$$s = self, TMP_38.$$arity = 1, TMP_38)); - }, TMP_Set_subset$q_39.$$arity = 1); - Opal.alias(self, "<=", "subset?"); + return $send(self, 'all?', [], ($$44 = function(o){var self = $$44.$$s == null ? this : $$44.$$s; + + + + if (o == null) { + o = nil; + }; + return set['$include?'](o);}, $$44.$$s = self, $$44.$$arity = 1, $$44)); + }, $Set_subset$ques$43.$$arity = 1); + $alias(self, "<=", "subset?"); - Opal.defn(self, '$proper_subset?', TMP_Set_proper_subset$q_41 = function(set) { - var $a, TMP_40, self = this; + Opal.def(self, '$proper_subset?', $Set_proper_subset$ques$45 = function(set) { + var $$46, self = this, $ret_or_5 = nil; - ($truthy($a = set['$is_a?'](Opal.const_get_relative($nesting, 'Set'))) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "value must be a set")); + if ($truthy(($ret_or_5 = set['$is_a?']($$($nesting, 'Set'))))) { + $ret_or_5 + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; if ($truthy($rb_le(set.$size(), self.$size()))) { return false}; - return $send(self, 'all?', [], (TMP_40 = function(o){var self = TMP_40.$$s || this; -if (o == null) o = nil; - return set['$include?'](o)}, TMP_40.$$s = self, TMP_40.$$arity = 1, TMP_40)); - }, TMP_Set_proper_subset$q_41.$$arity = 1); - Opal.alias(self, "<", "proper_subset?"); - Opal.alias(self, "+", "|"); - Opal.alias(self, "union", "|"); - return (Opal.defn(self, '$to_a', TMP_Set_to_a_42 = function $$to_a() { + return $send(self, 'all?', [], ($$46 = function(o){var self = $$46.$$s == null ? this : $$46.$$s; + + + + if (o == null) { + o = nil; + }; + return set['$include?'](o);}, $$46.$$s = self, $$46.$$arity = 1, $$46)); + }, $Set_proper_subset$ques$45.$$arity = 1); + $alias(self, "<", "proper_subset?"); + + Opal.def(self, '$intersect?', $Set_intersect$ques$47 = function(set) { + var $$48, $$49, self = this; + + + if ($truthy(set['$is_a?']($$($nesting, 'Set')))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "value must be a set") + }; + if ($truthy($rb_lt(self.$size(), set.$size()))) { + return $send(self, 'any?', [], ($$48 = function(o){var self = $$48.$$s == null ? this : $$48.$$s; + + + + if (o == null) { + o = nil; + }; + return set['$include?'](o);}, $$48.$$s = self, $$48.$$arity = 1, $$48)) + } else { + return $send(set, 'any?', [], ($$49 = function(o){var self = $$49.$$s == null ? this : $$49.$$s; + + + + if (o == null) { + o = nil; + }; + return self['$include?'](o);}, $$49.$$s = self, $$49.$$arity = 1, $$49)) + }; + }, $Set_intersect$ques$47.$$arity = 1); + + Opal.def(self, '$disjoint?', $Set_disjoint$ques$50 = function(set) { + var self = this; + + return self['$intersect?'](set)['$!']() + }, $Set_disjoint$ques$50.$$arity = 1); + $alias(self, "+", "|"); + $alias(self, "union", "|"); + return (Opal.def(self, '$to_a', $Set_to_a$51 = function $$to_a() { var self = this; return self.hash.$keys() - }, TMP_Set_to_a_42.$$arity = 0), nil) && 'to_a'; + }, $Set_to_a$51.$$arity = 0), nil) && 'to_a'; })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { - var $Enumerable, self = $Enumerable = $module($base, 'Enumerable'); + var self = $module($base, 'Enumerable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerable_to_set_43; + var $nesting = [self].concat($parent_nesting), $Enumerable_to_set$52; - - Opal.defn(self, '$to_set', TMP_Enumerable_to_set_43 = function $$to_set(klass, $a_rest) { - var self = this, args, $iter = TMP_Enumerable_to_set_43.$$p, block = $iter || nil; + return (Opal.def(self, '$to_set', $Enumerable_to_set$52 = function $$to_set($a, $b) { + var $iter = $Enumerable_to_set$52.$$p, block = $iter || nil, $post_args, klass, args, self = this; - if (klass == null) { - klass = Opal.const_get_relative($nesting, 'Set'); - } - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; + if ($iter) $Enumerable_to_set$52.$$p = null; + + + if ($iter) $Enumerable_to_set$52.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + if ($post_args.length > 0) { + klass = $post_args[0]; + $post_args.splice(0, 1); } - if ($iter) TMP_Enumerable_to_set_43.$$p = null; - return $send(klass, 'new', [self].concat(Opal.to_a(args)), block.$to_proc()) - }, TMP_Enumerable_to_set_43.$$arity = -1) + if (klass == null) { + klass = $$($nesting, 'Set'); + }; + + args = $post_args;; + return $send(klass, 'new', [self].concat(Opal.to_a(args)), block.$to_proc()); + }, $Enumerable_to_set$52.$$arity = -1), nil) && 'to_set' })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/inflector/inflections"] = function(Opal) { +Opal.modules["active_support/inflector/inflections"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; Opal.add_stubs(['$require', '$extend', '$add', '$map', '$flatten', '$to_proc', '$concat', '$include?', '$downcase', '$new', '$[]', '$[]=', '$-', '$attr_reader', '$each', '$instance_variable_set', '$dup', '$send', '$is_a?', '$delete', '$unshift', '$==', '$upcase', '$plural', '$+', '$singular', '$===', '$instance']); self.$require("set"); return (function($base, $parent_nesting) { - var $ActiveSupport, self = $ActiveSupport = $module($base, 'ActiveSupport'); + var self = $module($base, 'ActiveSupport'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Inflector, self = $Inflector = $module($base, 'Inflector'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Inflector'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Inflector_inflections_15; + var $nesting = [self].concat($parent_nesting), $Inflector_inflections$15; self.$extend(self); (function($base, $super, $parent_nesting) { - function $Inflections(){}; - var self = $Inflections = $klass($base, $super, 'Inflections', $Inflections); + var self = $klass($base, $super, 'Inflections'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Inflections_instance_5, TMP_Inflections_initialize_6, TMP_Inflections_initialize_dup_8, TMP_Inflections_plural_9, TMP_Inflections_singular_10, TMP_Inflections_uncountable_11, TMP_Inflections_human_12, TMP_Inflections_irregular_13, TMP_Inflections_clear_14; + var $nesting = [self].concat($parent_nesting), $Inflections_instance$5, $Inflections_initialize$6, $Inflections_initialize_dup$7, $Inflections_plural$9, $Inflections_singular$10, $Inflections_uncountable$11, $Inflections_human$12, $Inflections_irregular$13, $Inflections_clear$14; - def.uncountables = def.plurals = def.singulars = def.humans = nil; + self.$$prototype.uncountables = self.$$prototype.plurals = self.$$prototype.singulars = self.$$prototype.humans = nil; self.__instance__ = $hash2([], {}); (function($base, $super, $parent_nesting) { - function $Uncountables(){}; - var self = $Uncountables = $klass($base, $super, 'Uncountables', $Uncountables); + var self = $klass($base, $super, 'Uncountables'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Uncountables_$lt$lt_1, TMP_Uncountables_add_2, TMP_Uncountables_uncountable$q_3, TMP_Uncountables_dup_4; + var $nesting = [self].concat($parent_nesting), $Uncountables_$lt$lt$1, $Uncountables_add$2, $Uncountables_uncountable$ques$3, $Uncountables_dup$4; - Opal.defn(self, '$<<', TMP_Uncountables_$lt$lt_1 = function($a_rest) { - var self = this, word; + Opal.def(self, '$<<', $Uncountables_$lt$lt$1 = function($a) { + var $post_args, word, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - word = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - word[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$add(word) - }, TMP_Uncountables_$lt$lt_1.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + word = $post_args;; + return self.$add(word); + }, $Uncountables_$lt$lt$1.$$arity = -1); - Opal.defn(self, '$add', TMP_Uncountables_add_2 = function $$add(words) { + Opal.def(self, '$add', $Uncountables_add$2 = function $$add(words) { var self = this; words = $send(words.$flatten(), 'map', [], "downcase".$to_proc()); self.$concat(words); return self; - }, TMP_Uncountables_add_2.$$arity = 1); + }, $Uncountables_add$2.$$arity = 1); - Opal.defn(self, '$uncountable?', TMP_Uncountables_uncountable$q_3 = function(str) { + Opal.def(self, '$uncountable?', $Uncountables_uncountable$ques$3 = function(str) { var self = this; return self['$include?'](str.$downcase()) - }, TMP_Uncountables_uncountable$q_3.$$arity = 1); - return (Opal.defn(self, '$dup', TMP_Uncountables_dup_4 = function $$dup() { + }, $Uncountables_uncountable$ques$3.$$arity = 1); + return (Opal.def(self, '$dup', $Uncountables_dup$4 = function $$dup() { var self = this, copy = nil; - copy = Opal.const_get_relative($nesting, 'Uncountables').$new(); + copy = $$($nesting, 'Uncountables').$new(); copy.$add(self); return copy; - }, TMP_Uncountables_dup_4.$$arity = 0), nil) && 'dup'; - })($nesting[0], Opal.const_get_relative($nesting, 'Array'), $nesting); - Opal.defs(self, '$instance', TMP_Inflections_instance_5 = function $$instance(locale) { - var $a, self = this, $writer = nil; + }, $Uncountables_dup$4.$$arity = 0), nil) && 'dup'; + })($nesting[0], $$($nesting, 'Array'), $nesting); + Opal.defs(self, '$instance', $Inflections_instance$5 = function $$instance(locale) { + var self = this, $ret_or_1 = nil, $writer = nil; if (self.__instance__ == null) self.__instance__ = nil; - return ($truthy($a = self.__instance__['$[]'](locale)) ? $a : (($writer = [locale, self.$new()]), $send(self.__instance__, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) - }, TMP_Inflections_instance_5.$$arity = 1); + if ($truthy(($ret_or_1 = self.__instance__['$[]'](locale)))) { + return $ret_or_1 + } else { + + $writer = [locale, self.$new()]; + $send(self.__instance__, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } + }, $Inflections_instance$5.$$arity = 1); self.$attr_reader("plurals", "singulars", "uncountables", "humans"); - Opal.defn(self, '$initialize', TMP_Inflections_initialize_6 = function $$initialize() { + Opal.def(self, '$initialize', $Inflections_initialize$6 = function $$initialize() { var $a, self = this; - return $a = [[], [], Opal.const_get_relative($nesting, 'Uncountables').$new(), []], (self.plurals = $a[0]), (self.singulars = $a[1]), (self.uncountables = $a[2]), (self.humans = $a[3]), $a - }, TMP_Inflections_initialize_6.$$arity = 0); + return $a = [[], [], $$($nesting, 'Uncountables').$new(), []], (self.plurals = $a[0]), (self.singulars = $a[1]), (self.uncountables = $a[2]), (self.humans = $a[3]), $a + }, $Inflections_initialize$6.$$arity = 0); - Opal.defn(self, '$initialize_dup', TMP_Inflections_initialize_dup_8 = function $$initialize_dup(orig) { - var TMP_7, self = this; + Opal.def(self, '$initialize_dup', $Inflections_initialize_dup$7 = function $$initialize_dup(orig) { + var $$8, self = this; - return $send(["plurals", "singulars", "uncountables", "humans"], 'each', [], (TMP_7 = function(scope){var self = TMP_7.$$s || this; -if (scope == null) scope = nil; - return self.$instance_variable_set("" + "@" + (scope), orig.$send(scope).$dup())}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)) - }, TMP_Inflections_initialize_dup_8.$$arity = 1); + return $send(["plurals", "singulars", "uncountables", "humans"], 'each', [], ($$8 = function(scope){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (scope == null) { + scope = nil; + }; + return self.$instance_variable_set("" + "@" + (scope), orig.$send(scope).$dup());}, $$8.$$s = self, $$8.$$arity = 1, $$8)) + }, $Inflections_initialize_dup$7.$$arity = 1); - Opal.defn(self, '$plural', TMP_Inflections_plural_9 = function $$plural(rule, replacement) { + Opal.def(self, '$plural', $Inflections_plural$9 = function $$plural(rule, replacement) { var self = this; - if ($truthy(rule['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + if ($truthy(rule['$is_a?']($$($nesting, 'String')))) { self.uncountables.$delete(rule)}; self.uncountables.$delete(replacement); return self.plurals.$unshift([rule, replacement]); - }, TMP_Inflections_plural_9.$$arity = 2); + }, $Inflections_plural$9.$$arity = 2); - Opal.defn(self, '$singular', TMP_Inflections_singular_10 = function $$singular(rule, replacement) { + Opal.def(self, '$singular', $Inflections_singular$10 = function $$singular(rule, replacement) { var self = this; - if ($truthy(rule['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + if ($truthy(rule['$is_a?']($$($nesting, 'String')))) { self.uncountables.$delete(rule)}; self.uncountables.$delete(replacement); return self.singulars.$unshift([rule, replacement]); - }, TMP_Inflections_singular_10.$$arity = 2); + }, $Inflections_singular$10.$$arity = 2); - Opal.defn(self, '$uncountable', TMP_Inflections_uncountable_11 = function $$uncountable($a_rest) { - var self = this, words; + Opal.def(self, '$uncountable', $Inflections_uncountable$11 = function $$uncountable($a) { + var $post_args, words, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - words = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - words[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.uncountables.$add(words) - }, TMP_Inflections_uncountable_11.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + words = $post_args;; + return self.uncountables.$add(words); + }, $Inflections_uncountable$11.$$arity = -1); - Opal.defn(self, '$human', TMP_Inflections_human_12 = function $$human(rule, replacement) { + Opal.def(self, '$human', $Inflections_human$12 = function $$human(rule, replacement) { var self = this; return self.humans.$unshift([rule, replacement]) - }, TMP_Inflections_human_12.$$arity = 2); + }, $Inflections_human$12.$$arity = 2); - Opal.defn(self, '$irregular', TMP_Inflections_irregular_13 = function $$irregular(singular, plural) { + Opal.def(self, '$irregular', $Inflections_irregular$13 = function $$irregular(singular, plural) { var self = this, s0 = nil, srest = nil, p0 = nil, prest = nil; @@ -1160,66 +1441,72 @@ if (scope == null) scope = nil; prest = plural['$[]']($range(1, -1, false)); if (s0.$upcase()['$=='](p0.$upcase())) { - self.$plural(new RegExp("" + "(" + (s0) + ")" + (srest) + "$", 'i'), $rb_plus("\\1", prest)); - self.$plural(new RegExp("" + "(" + (p0) + ")" + (prest) + "$", 'i'), $rb_plus("\\1", prest)); - self.$singular(new RegExp("" + "(" + (s0) + ")" + (srest) + "$", 'i'), $rb_plus("\\1", srest)); - return self.$singular(new RegExp("" + "(" + (p0) + ")" + (prest) + "$", 'i'), $rb_plus("\\1", srest)); - } else { + self.$plural(Opal.regexp(["(", s0, ")", srest, "$"], 'i'), $rb_plus("\\1", prest)); + self.$plural(Opal.regexp(["(", p0, ")", prest, "$"], 'i'), $rb_plus("\\1", prest)); + self.$singular(Opal.regexp(["(", s0, ")", srest, "$"], 'i'), $rb_plus("\\1", srest)); + return self.$singular(Opal.regexp(["(", p0, ")", prest, "$"], 'i'), $rb_plus("\\1", srest)); + } else { - self.$plural(new RegExp("" + (s0.$upcase()) + (srest) + "$", 'i'), $rb_plus(p0.$upcase(), prest)); - self.$plural(new RegExp("" + (s0.$downcase()) + (srest) + "$", 'i'), $rb_plus(p0.$downcase(), prest)); - self.$plural(new RegExp("" + (p0.$upcase()) + (prest) + "$", 'i'), $rb_plus(p0.$upcase(), prest)); - self.$plural(new RegExp("" + (p0.$downcase()) + (prest) + "$", 'i'), $rb_plus(p0.$downcase(), prest)); - self.$singular(new RegExp("" + (s0.$upcase()) + (srest) + "$", 'i'), $rb_plus(s0.$upcase(), srest)); - self.$singular(new RegExp("" + (s0.$downcase()) + (srest) + "$", 'i'), $rb_plus(s0.$downcase(), srest)); - self.$singular(new RegExp("" + (p0.$upcase()) + (prest) + "$", 'i'), $rb_plus(s0.$upcase(), srest)); - return self.$singular(new RegExp("" + (p0.$downcase()) + (prest) + "$", 'i'), $rb_plus(s0.$downcase(), srest)); + self.$plural(Opal.regexp([s0.$upcase(), srest, "$"], 'i'), $rb_plus(p0.$upcase(), prest)); + self.$plural(Opal.regexp([s0.$downcase(), srest, "$"], 'i'), $rb_plus(p0.$downcase(), prest)); + self.$plural(Opal.regexp([p0.$upcase(), prest, "$"], 'i'), $rb_plus(p0.$upcase(), prest)); + self.$plural(Opal.regexp([p0.$downcase(), prest, "$"], 'i'), $rb_plus(p0.$downcase(), prest)); + self.$singular(Opal.regexp([s0.$upcase(), srest, "$"], 'i'), $rb_plus(s0.$upcase(), srest)); + self.$singular(Opal.regexp([s0.$downcase(), srest, "$"], 'i'), $rb_plus(s0.$downcase(), srest)); + self.$singular(Opal.regexp([p0.$upcase(), prest, "$"], 'i'), $rb_plus(s0.$upcase(), srest)); + return self.$singular(Opal.regexp([p0.$downcase(), prest, "$"], 'i'), $rb_plus(s0.$downcase(), srest)); }; - }, TMP_Inflections_irregular_13.$$arity = 2); - return (Opal.defn(self, '$clear', TMP_Inflections_clear_14 = function $$clear(scope) { + }, $Inflections_irregular$13.$$arity = 2); + return (Opal.def(self, '$clear', $Inflections_clear$14 = function $$clear(scope) { var $a, self = this, $case = nil; + + if (scope == null) { scope = "all"; - } + }; return (function() {$case = scope; - if ("all"['$===']($case)) {return $a = [[], [], Opal.const_get_relative($nesting, 'Uncountables').$new(), []], (self.plurals = $a[0]), (self.singulars = $a[1]), (self.uncountables = $a[2]), (self.humans = $a[3]), $a} - else {return self.$instance_variable_set("" + "@" + (scope), [])}})() - }, TMP_Inflections_clear_14.$$arity = -1), nil) && 'clear'; + if ("all"['$===']($case)) {return $a = [[], [], $$($nesting, 'Uncountables').$new(), []], (self.plurals = $a[0]), (self.singulars = $a[1]), (self.uncountables = $a[2]), (self.humans = $a[3]), $a} + else {return self.$instance_variable_set("" + "@" + (scope), [])}})(); + }, $Inflections_clear$14.$$arity = -1), nil) && 'clear'; })($nesting[0], null, $nesting); - - Opal.defn(self, '$inflections', TMP_Inflector_inflections_15 = function $$inflections(locale) { - var self = this, $iter = TMP_Inflector_inflections_15.$$p, $yield = $iter || nil; + return (Opal.def(self, '$inflections', $Inflector_inflections$15 = function $$inflections(locale) { + var $iter = $Inflector_inflections$15.$$p, $yield = $iter || nil, self = this; + if ($iter) $Inflector_inflections$15.$$p = null; + + if (locale == null) { locale = "en"; - } - if ($iter) TMP_Inflector_inflections_15.$$p = null; + }; if (($yield !== nil)) { - return Opal.yield1($yield, Opal.const_get_relative($nesting, 'Inflections').$instance(locale)); - } else { - return Opal.const_get_relative($nesting, 'Inflections').$instance(locale) - } - }, TMP_Inflector_inflections_15.$$arity = -1); + return Opal.yield1($yield, $$($nesting, 'Inflections').$instance(locale)); + } else { + return $$($nesting, 'Inflections').$instance(locale) + }; + }, $Inflector_inflections$15.$$arity = -1), nil) && 'inflections'; })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/inflections"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send; +Opal.modules["active_support/inflections"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send; Opal.add_stubs(['$require', '$inflections', '$plural', '$singular', '$irregular', '$uncountable']); self.$require("active_support/inflector/inflections"); return (function($base, $parent_nesting) { - var $ActiveSupport, self = $ActiveSupport = $module($base, 'ActiveSupport'); + var self = $module($base, 'ActiveSupport'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ActiveSupport_1; + var $nesting = [self].concat($parent_nesting), $ActiveSupport$1; - $send(Opal.const_get_relative($nesting, 'Inflector'), 'inflections', ["en"], (TMP_ActiveSupport_1 = function(inflect){var self = TMP_ActiveSupport_1.$$s || this; -if (inflect == null) inflect = nil; - + return $send($$($nesting, 'Inflector'), 'inflections', ["en"], ($ActiveSupport$1 = function(inflect){var self = $ActiveSupport$1.$$s == null ? this : $ActiveSupport$1.$$s; + + + + if (inflect == null) { + inflect = nil; + }; inflect.$plural(/$/, "s"); inflect.$plural(/s$/i, "s"); inflect.$plural(/^(ax|test)is$/i, "\\1es"); @@ -1274,82 +1561,91 @@ if (inflect == null) inflect = nil; inflect.$irregular("sex", "sexes"); inflect.$irregular("move", "moves"); inflect.$irregular("zombie", "zombies"); - return inflect.$uncountable(["equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "jeans", "police"]);}, TMP_ActiveSupport_1.$$s = self, TMP_ActiveSupport_1.$$arity = 1, TMP_ActiveSupport_1)) + return inflect.$uncountable(["equipment", "information", "rice", "money", "species", "series", "fish", "sheep", "jeans", "police"]);}, $ActiveSupport$1.$$s = self, $ActiveSupport$1.$$arity = 1, $ActiveSupport$1)) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/inflector/methods"] = function(Opal) { +Opal.modules["active_support/inflector/methods"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars, $hash2 = Opal.hash2, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars, $hash2 = Opal.hash2, $range = Opal.range; Opal.add_stubs(['$require', '$extend', '$apply_inflections', '$plurals', '$inflections', '$singulars', '$to_s', '$sub', '$capitalize', '$downcase', '$gsub', '$freeze', '$match?', '$tr', '$dup', '$each', '$humans', '$is_a?', '$=~', '$==', '$upcase', '$>', '$length', '$+', '$[]', '$humanize', '$underscore', '$pluralize', '$camelize', '$singularize', '$rindex', '$demodulize', '$split', '$empty?', '$raise', '$size', '$first', '$shift', '$inject', '$const_get', '$const_defined?', '$ancestors', '$constantize', '$name', '$!', '$include?', '$const_regexp', '$message', '$abs', '$to_i', '$%', '$===', '$ordinal', '$private', '$blank?', '$escape', '$pop', '$reverse', '$uncountable?', '$uncountables']); self.$require("active_support/inflections"); return (function($base, $parent_nesting) { - var $ActiveSupport, self = $ActiveSupport = $module($base, 'ActiveSupport'); + var self = $module($base, 'ActiveSupport'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Inflector, self = $Inflector = $module($base, 'Inflector'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Inflector'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Inflector_pluralize_1, TMP_Inflector_singularize_2, TMP_Inflector_camelize_5, TMP_Inflector_underscore_6, TMP_Inflector_humanize_10, TMP_Inflector_upcase_first_11, TMP_Inflector_titleize_13, TMP_Inflector_tableize_14, TMP_Inflector_classify_15, TMP_Inflector_dasherize_16, TMP_Inflector_demodulize_17, TMP_Inflector_deconstantize_18, TMP_Inflector_foreign_key_19, TMP_Inflector_constantize_22, TMP_Inflector_safe_constantize_23, TMP_Inflector_ordinal_24, TMP_Inflector_ordinalize_25, TMP_Inflector_const_regexp_27, TMP_Inflector_apply_inflections_29; + var $nesting = [self].concat($parent_nesting), $Inflector_pluralize$1, $Inflector_singularize$2, $Inflector_camelize$3, $Inflector_underscore$6, $Inflector_humanize$7, $Inflector_upcase_first$11, $Inflector_titleize$12, $Inflector_tableize$14, $Inflector_classify$15, $Inflector_dasherize$16, $Inflector_demodulize$17, $Inflector_deconstantize$18, $Inflector_foreign_key$19, $Inflector_constantize$20, $Inflector_safe_constantize$23, $Inflector_ordinal$24, $Inflector_ordinalize$25, $Inflector_const_regexp$26, $Inflector_apply_inflections$28; self.$extend(self); - Opal.defn(self, '$pluralize', TMP_Inflector_pluralize_1 = function $$pluralize(word, locale) { + Opal.def(self, '$pluralize', $Inflector_pluralize$1 = function $$pluralize(word, locale) { var self = this; + + if (locale == null) { locale = "en"; - } - return self.$apply_inflections(word, self.$inflections(locale).$plurals(), locale) - }, TMP_Inflector_pluralize_1.$$arity = -2); + }; + return self.$apply_inflections(word, self.$inflections(locale).$plurals(), locale); + }, $Inflector_pluralize$1.$$arity = -2); - Opal.defn(self, '$singularize', TMP_Inflector_singularize_2 = function $$singularize(word, locale) { + Opal.def(self, '$singularize', $Inflector_singularize$2 = function $$singularize(word, locale) { var self = this; + + if (locale == null) { locale = "en"; - } - return self.$apply_inflections(word, self.$inflections(locale).$singulars(), locale) - }, TMP_Inflector_singularize_2.$$arity = -2); + }; + return self.$apply_inflections(word, self.$inflections(locale).$singulars(), locale); + }, $Inflector_singularize$2.$$arity = -2); - Opal.defn(self, '$camelize', TMP_Inflector_camelize_5 = function $$camelize(term, uppercase_first_letter) { - var TMP_3, TMP_4, self = this, string = nil; + Opal.def(self, '$camelize', $Inflector_camelize$3 = function $$camelize(term, uppercase_first_letter) { + var $$4, $$5, self = this, string = nil; + + if (uppercase_first_letter == null) { uppercase_first_letter = true; - } - + }; string = term.$to_s(); if ($truthy(uppercase_first_letter)) { - string = $send(string, 'sub', [/^[a-z\d]*/], (TMP_3 = function(match){var self = TMP_3.$$s || this; -if (match == null) match = nil; - return match.$capitalize()}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)) - } else { + string = $send(string, 'sub', [/^[a-z\d]*/], ($$4 = function(match){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (match == null) { + match = nil; + }; + return match.$capitalize();}, $$4.$$s = self, $$4.$$arity = 1, $$4)) + } else { string = string.$downcase() }; - string = $send(string, 'gsub', [/(?:_|(\/))([a-z\d]*)/i], (TMP_4 = function(){var self = TMP_4.$$s || this, $a; + string = $send(string, 'gsub', [/(?:_|(\/))([a-z\d]*)/i], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s, $a; - return "" + ((($a = $gvars['~']) === nil ? nil : $a['$[]'](1))) + ((($a = $gvars['~']) === nil ? nil : $a['$[]'](2)).$capitalize())}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)); + return "" + ((($a = $gvars['~']) === nil ? nil : $a['$[]'](1))) + ((($a = $gvars['~']) === nil ? nil : $a['$[]'](2)).$capitalize())}, $$5.$$s = self, $$5.$$arity = 0, $$5)); string = string.$gsub("/".$freeze(), "::".$freeze()); return string; - }, TMP_Inflector_camelize_5.$$arity = -2); + }, $Inflector_camelize$3.$$arity = -2); - Opal.defn(self, '$underscore', TMP_Inflector_underscore_6 = function $$underscore(camel_cased_word) { + Opal.def(self, '$underscore', $Inflector_underscore$6 = function $$underscore(camel_cased_word) { var self = this, word = nil; if ($truthy(/[A-Z-]|::/['$match?'](camel_cased_word))) { - } else { + } else { return camel_cased_word }; word = camel_cased_word.$to_s().$gsub("::".$freeze(), "/".$freeze()); @@ -1358,456 +1654,541 @@ if (match == null) match = nil; word = word.$tr("-".$freeze(), "_".$freeze()); word = word.$downcase(); return word; - }, TMP_Inflector_underscore_6.$$arity = 1); + }, $Inflector_underscore$6.$$arity = 1); - Opal.defn(self, '$humanize', TMP_Inflector_humanize_10 = function $$humanize(lower_case_and_underscored_word, $kwargs) { - var TMP_7, TMP_8, TMP_9, self = this, capitalize, keep_id_suffix, result = nil; + Opal.def(self, '$humanize', $Inflector_humanize$7 = function $$humanize(lower_case_and_underscored_word, $kwargs) { + var capitalize, keep_id_suffix, $$8, $$9, $$10, self = this, result = nil; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + capitalize = $kwargs.$$smap["capitalize"]; if (capitalize == null) { capitalize = true - } + }; + keep_id_suffix = $kwargs.$$smap["keep_id_suffix"]; if (keep_id_suffix == null) { keep_id_suffix = false - } - + }; result = lower_case_and_underscored_word.$to_s().$dup(); - (function(){var $brk = Opal.new_brk(); try {return $send(self.$inflections().$humans(), 'each', [], (TMP_7 = function($a){var self = TMP_7.$$s || this, $a_args, rule, replacement, $b, $c; + (function(){var $brk = Opal.new_brk(); try {return $send(self.$inflections().$humans(), 'each', [], ($$8 = function($mlhs_tmp1){var self = $$8.$$s == null ? this : $$8.$$s, $a, $b, rule = nil, replacement = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($a == null) { - $a = nil; - } - $a = Opal.to_ary($a); - $a_args = Opal.slice.call($a, 0, $a.length); - rule = $a_args.splice(0,1)[0]; - if (rule == null) { - rule = nil; - } - replacement = $a_args.splice(0,1)[0]; - if (replacement == null) { - replacement = nil; - } - if ($truthy(($truthy($b = ($truthy($c = rule['$is_a?'](Opal.const_get_relative($nesting, 'Regexp'))) ? result['$=~'](rule) : $c)) ? $b : ($truthy($c = rule['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? result['$=='](rule) : $c)))) { + + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; + }; + $b = $mlhs_tmp1, $a = Opal.to_ary($b), (rule = ($a[0] == null ? nil : $a[0])), (replacement = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = rule['$is_a?']($$($nesting, 'Regexp'))))) { + return result['$=~'](rule) + } else { + return $ret_or_2 + }; return nil; })()))) { + return $ret_or_1 + } else { + + if ($truthy(($ret_or_3 = rule['$is_a?']($$($nesting, 'String'))))) { + return result['$=='](rule) + } else { + return $ret_or_3 + }; + }; return nil; })())) { result = result.$sub(rule, replacement); Opal.brk(nil, $brk); - } else { + } else { return nil - }}, TMP_7.$$s = self, TMP_7.$$brk = $brk, TMP_7.$$arity = 1, TMP_7.$$has_top_level_mlhs_arg = true, TMP_7)) + };}, $$8.$$s = self, $$8.$$brk = $brk, $$8.$$arity = 1, $$8.$$has_top_level_mlhs_arg = true, $$8)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); result = result.$sub(/^_+/, "".$freeze()); if ($truthy(keep_id_suffix)) { - } else { + } else { result = result.$sub(/_id$/, "".$freeze()) }; result = result.$tr("_".$freeze(), " ".$freeze()); - result = $send(result, 'gsub', [/([a-z\d]*)/i], (TMP_8 = function(match){var self = TMP_8.$$s || this; -if (match == null) match = nil; - return "" + (match.$downcase())}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)); + result = $send(result, 'gsub', [/([a-z\d]*)/i], ($$9 = function(match){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (match == null) { + match = nil; + }; + return "" + (match.$downcase());}, $$9.$$s = self, $$9.$$arity = 1, $$9)); if ($truthy(capitalize)) { - result = $send(result, 'sub', [/^\w/], (TMP_9 = function(match){var self = TMP_9.$$s || this; -if (match == null) match = nil; - return match.$upcase()}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9))}; + result = $send(result, 'sub', [/^\w/], ($$10 = function(match){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (match == null) { + match = nil; + }; + return match.$upcase();}, $$10.$$s = self, $$10.$$arity = 1, $$10))}; return result; - }, TMP_Inflector_humanize_10.$$arity = -2); + }, $Inflector_humanize$7.$$arity = -2); - Opal.defn(self, '$upcase_first', TMP_Inflector_upcase_first_11 = function $$upcase_first(string) { + Opal.def(self, '$upcase_first', $Inflector_upcase_first$11 = function $$upcase_first(string) { var self = this; if ($truthy($rb_gt(string.$length(), 0))) { return $rb_plus(string['$[]'](0).$upcase(), string['$[]']($range(1, -1, false))) - } else { + } else { return "" } - }, TMP_Inflector_upcase_first_11.$$arity = 1); + }, $Inflector_upcase_first$11.$$arity = 1); - Opal.defn(self, '$titleize', TMP_Inflector_titleize_13 = function $$titleize(word, $kwargs) { - var TMP_12, self = this, keep_id_suffix; + Opal.def(self, '$titleize', $Inflector_titleize$12 = function $$titleize(word, $kwargs) { + var keep_id_suffix, $$13, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + keep_id_suffix = $kwargs.$$smap["keep_id_suffix"]; if (keep_id_suffix == null) { keep_id_suffix = false - } - return $send(self.$humanize(self.$underscore(word), $hash2(["keep_id_suffix"], {"keep_id_suffix": keep_id_suffix})), 'gsub', [/([a-zA-Z'’`])[a-z]*/], (TMP_12 = function(match){var self = TMP_12.$$s || this; -if (match == null) match = nil; - return match.$capitalize()}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)) - }, TMP_Inflector_titleize_13.$$arity = -2); + }; + return $send(self.$humanize(self.$underscore(word), $hash2(["keep_id_suffix"], {"keep_id_suffix": keep_id_suffix})), 'gsub', [/([a-zA-Z'’`])[a-z]*/], ($$13 = function(match){var self = $$13.$$s == null ? this : $$13.$$s; + + + + if (match == null) { + match = nil; + }; + return match.$capitalize();}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + }, $Inflector_titleize$12.$$arity = -2); - Opal.defn(self, '$tableize', TMP_Inflector_tableize_14 = function $$tableize(class_name) { + Opal.def(self, '$tableize', $Inflector_tableize$14 = function $$tableize(class_name) { var self = this; return self.$pluralize(self.$underscore(class_name)) - }, TMP_Inflector_tableize_14.$$arity = 1); + }, $Inflector_tableize$14.$$arity = 1); - Opal.defn(self, '$classify', TMP_Inflector_classify_15 = function $$classify(table_name) { + Opal.def(self, '$classify', $Inflector_classify$15 = function $$classify(table_name) { var self = this; return self.$camelize(self.$singularize(table_name.$to_s().$sub(/.*\./, "".$freeze()))) - }, TMP_Inflector_classify_15.$$arity = 1); + }, $Inflector_classify$15.$$arity = 1); - Opal.defn(self, '$dasherize', TMP_Inflector_dasherize_16 = function $$dasherize(underscored_word) { + Opal.def(self, '$dasherize', $Inflector_dasherize$16 = function $$dasherize(underscored_word) { var self = this; return underscored_word.$tr("_".$freeze(), "-".$freeze()) - }, TMP_Inflector_dasherize_16.$$arity = 1); + }, $Inflector_dasherize$16.$$arity = 1); - Opal.defn(self, '$demodulize', TMP_Inflector_demodulize_17 = function $$demodulize(path) { + Opal.def(self, '$demodulize', $Inflector_demodulize$17 = function $$demodulize(path) { var self = this, i = nil; path = path.$to_s(); if ($truthy((i = path.$rindex("::")))) { return path['$[]'](Opal.Range.$new($rb_plus(i, 2), -1, false)) - } else { + } else { return path }; - }, TMP_Inflector_demodulize_17.$$arity = 1); + }, $Inflector_demodulize$17.$$arity = 1); - Opal.defn(self, '$deconstantize', TMP_Inflector_deconstantize_18 = function $$deconstantize(path) { - var $a, self = this; + Opal.def(self, '$deconstantize', $Inflector_deconstantize$18 = function $$deconstantize(path) { + var self = this, $ret_or_4 = nil; - return path.$to_s()['$[]'](0, ($truthy($a = path.$rindex("::")) ? $a : 0)) - }, TMP_Inflector_deconstantize_18.$$arity = 1); + return path.$to_s()['$[]'](0, (function() {if ($truthy(($ret_or_4 = path.$rindex("::")))) { + return $ret_or_4 + } else { + return 0 + }; return nil; })()) + }, $Inflector_deconstantize$18.$$arity = 1); - Opal.defn(self, '$foreign_key', TMP_Inflector_foreign_key_19 = function $$foreign_key(class_name, separate_class_name_and_id_with_underscore) { + Opal.def(self, '$foreign_key', $Inflector_foreign_key$19 = function $$foreign_key(class_name, separate_class_name_and_id_with_underscore) { var self = this; + + if (separate_class_name_and_id_with_underscore == null) { separate_class_name_and_id_with_underscore = true; - } + }; return $rb_plus(self.$underscore(self.$demodulize(class_name)), (function() {if ($truthy(separate_class_name_and_id_with_underscore)) { return "_id" - } else { + } else { return "id" - }; return nil; })()) - }, TMP_Inflector_foreign_key_19.$$arity = -2); + }; return nil; })()); + }, $Inflector_foreign_key$19.$$arity = -2); - Opal.defn(self, '$constantize', TMP_Inflector_constantize_22 = function $$constantize(camel_cased_word) { - var $a, TMP_20, self = this, names = nil; + Opal.def(self, '$constantize', $Inflector_constantize$20 = function $$constantize(camel_cased_word) { + var $$21, self = this, names = nil, $ret_or_5 = nil; names = camel_cased_word.$split("::"); if ($truthy(names['$empty?']())) { - self.$raise(Opal.const_get_relative($nesting, 'NameError'), "wrong constant name ")}; - if ($truthy(($truthy($a = $rb_gt(names.$size(), 1)) ? names.$first()['$empty?']() : $a))) { + self.$raise($$($nesting, 'NameError'), "wrong constant name ")}; + if ($truthy((function() {if ($truthy(($ret_or_5 = $rb_gt(names.$size(), 1)))) { + return names.$first()['$empty?']() + } else { + return $ret_or_5 + }; return nil; })())) { names.$shift()}; - return (function(){var $brk = Opal.new_brk(); try {return $send(names, 'inject', [Opal.const_get_relative($nesting, 'Object')], (TMP_20 = function(constant, name){var self = TMP_20.$$s || this, TMP_21, candidate = nil; -if (constant == null) constant = nil;if (name == null) name = nil; - if (constant['$=='](Opal.const_get_relative($nesting, 'Object'))) { + return (function(){var $brk = Opal.new_brk(); try {return $send(names, 'inject', [$$($nesting, 'Object')], ($$21 = function(constant, name){var self = $$21.$$s == null ? this : $$21.$$s, $$22, candidate = nil; + + + + if (constant == null) { + constant = nil; + }; + + if (name == null) { + name = nil; + }; + if (constant['$==']($$($nesting, 'Object'))) { return constant.$const_get(name) - } else { + } else { candidate = constant.$const_get(name); if ($truthy(constant['$const_defined?'](name, false))) { return candidate;}; - if ($truthy(Opal.const_get_relative($nesting, 'Object')['$const_defined?'](name))) { - } else { + if ($truthy($$($nesting, 'Object')['$const_defined?'](name))) { + } else { return candidate; }; - constant = (function(){var $brk = Opal.new_brk(); try {return $send(constant.$ancestors(), 'inject', [constant], (TMP_21 = function(const$, ancestor){var self = TMP_21.$$s || this; -if (const$ == null) const$ = nil;if (ancestor == null) ancestor = nil; - - if (ancestor['$=='](Opal.const_get_relative($nesting, 'Object'))) { + constant = (function(){var $brk = Opal.new_brk(); try {return $send(constant.$ancestors(), 'inject', [constant], ($$22 = function(const$, ancestor){var self = $$22.$$s == null ? this : $$22.$$s; + + + + if (const$ == null) { + const$ = nil; + }; + + if (ancestor == null) { + ancestor = nil; + }; + if (ancestor['$==']($$($nesting, 'Object'))) { Opal.brk(const$, $brk)}; if ($truthy(ancestor['$const_defined?'](name, false))) { Opal.brk(ancestor, $brk)}; - return const$;}, TMP_21.$$s = self, TMP_21.$$brk = $brk, TMP_21.$$arity = 2, TMP_21)) + return const$;}, $$22.$$s = self, $$22.$$brk = $brk, $$22.$$arity = 2, $$22)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return constant.$const_get(name, false); - }}, TMP_20.$$s = self, TMP_20.$$brk = $brk, TMP_20.$$arity = 2, TMP_20)) + };}, $$21.$$s = self, $$21.$$brk = $brk, $$21.$$arity = 2, $$21)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); - }, TMP_Inflector_constantize_22.$$arity = 1); + }, $Inflector_constantize$20.$$arity = 1); - Opal.defn(self, '$safe_constantize', TMP_Inflector_safe_constantize_23 = function $$safe_constantize(camel_cased_word) { - var $a, $b, self = this, e = nil; + Opal.def(self, '$safe_constantize', $Inflector_safe_constantize$23 = function $$safe_constantize(camel_cased_word) { + var self = this, e = nil, $ret_or_6 = nil, $ret_or_7 = nil; try { return self.$constantize(camel_cased_word) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'NameError')])) {(e = $err) try { - if ($truthy(($truthy($a = e.$name()) ? ($truthy($b = camel_cased_word.$to_s().$split("::")['$include?'](e.$name().$to_s())) ? $b : e.$name().$to_s()['$=='](camel_cased_word.$to_s()))['$!']() : $a))) { - return self.$raise() + if ($truthy((function() {if ($truthy(($ret_or_6 = e.$name()))) { + return (function() {if ($truthy(($ret_or_7 = camel_cased_word.$to_s().$split("::")['$include?'](e.$name().$to_s())))) { + return $ret_or_7 } else { + return e.$name().$to_s()['$=='](camel_cased_word.$to_s()) + }; return nil; })()['$!']() + } else { + return $ret_or_6 + }; return nil; })())) { + return self.$raise() + } else { return nil } - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'ArgumentError')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) {(e = $err) try { - if ($truthy(new RegExp("" + "not missing constant " + (self.$const_regexp(camel_cased_word)) + "!$")['$match?'](e.$message()))) { + if ($truthy(Opal.regexp(["not missing constant ", self.$const_regexp(camel_cased_word), "!$"])['$match?'](e.$message()))) { return nil - } else { + } else { return self.$raise() } - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Inflector_safe_constantize_23.$$arity = 1); + }, $Inflector_safe_constantize$23.$$arity = 1); - Opal.defn(self, '$ordinal', TMP_Inflector_ordinal_24 = function $$ordinal(number) { + Opal.def(self, '$ordinal', $Inflector_ordinal$24 = function $$ordinal(number) { var self = this, abs_number = nil, $case = nil; abs_number = number.$to_i().$abs(); if ($truthy($range(11, 13, false)['$include?'](abs_number['$%'](100)))) { return "th" - } else { + } else { return (function() {$case = abs_number['$%'](10); if ((1)['$===']($case)) {return "st"} else if ((2)['$===']($case)) {return "nd"} else if ((3)['$===']($case)) {return "rd"} else {return "th"}})() }; - }, TMP_Inflector_ordinal_24.$$arity = 1); + }, $Inflector_ordinal$24.$$arity = 1); - Opal.defn(self, '$ordinalize', TMP_Inflector_ordinalize_25 = function $$ordinalize(number) { + Opal.def(self, '$ordinalize', $Inflector_ordinalize$25 = function $$ordinalize(number) { var self = this; return "" + (number) + (self.$ordinal(number)) - }, TMP_Inflector_ordinalize_25.$$arity = 1); + }, $Inflector_ordinalize$25.$$arity = 1); self.$private(); - Opal.defn(self, '$const_regexp', TMP_Inflector_const_regexp_27 = function $$const_regexp(camel_cased_word) { - var TMP_26, self = this, parts = nil, last = nil; + Opal.def(self, '$const_regexp', $Inflector_const_regexp$26 = function $$const_regexp(camel_cased_word) { + var $$27, self = this, parts = nil, last = nil; parts = camel_cased_word.$split("::".$freeze()); if ($truthy(parts['$blank?']())) { - return Opal.const_get_relative($nesting, 'Regexp').$escape(camel_cased_word)}; + return $$($nesting, 'Regexp').$escape(camel_cased_word)}; last = parts.$pop(); - return $send(parts.$reverse(), 'inject', [last], (TMP_26 = function(acc, part){var self = TMP_26.$$s || this; -if (acc == null) acc = nil;if (part == null) part = nil; - if ($truthy(part['$empty?']())) { + return $send(parts.$reverse(), 'inject', [last], ($$27 = function(acc, part){var self = $$27.$$s == null ? this : $$27.$$s; + + + + if (acc == null) { + acc = nil; + }; + + if (part == null) { + part = nil; + }; + if ($truthy(part['$empty?']())) { return acc - } else { + } else { return "" + (part) + "(::" + (acc) + ")?" - }}, TMP_26.$$s = self, TMP_26.$$arity = 2, TMP_26)); - }, TMP_Inflector_const_regexp_27.$$arity = 1); - - Opal.defn(self, '$apply_inflections', TMP_Inflector_apply_inflections_29 = function $$apply_inflections(word, rules, locale) { - var $a, TMP_28, self = this, result = nil; + };}, $$27.$$s = self, $$27.$$arity = 2, $$27)); + }, $Inflector_const_regexp$26.$$arity = 1); + return (Opal.def(self, '$apply_inflections', $Inflector_apply_inflections$28 = function $$apply_inflections(word, rules, locale) { + var $$29, self = this, result = nil, $ret_or_8 = nil; + + if (locale == null) { locale = "en"; - } - + }; result = word.$to_s().$dup(); - if ($truthy(($truthy($a = word['$empty?']()) ? $a : self.$inflections(locale).$uncountables()['$uncountable?'](result)))) { + if ($truthy((function() {if ($truthy(($ret_or_8 = word['$empty?']()))) { + return $ret_or_8 + } else { + return self.$inflections(locale).$uncountables()['$uncountable?'](result) + }; return nil; })())) { return result - } else { + } else { - (function(){var $brk = Opal.new_brk(); try {return $send(rules, 'each', [], (TMP_28 = function($b){var self = TMP_28.$$s || this, $b_args, rule, replacement, $c, $d; + (function(){var $brk = Opal.new_brk(); try {return $send(rules, 'each', [], ($$29 = function($mlhs_tmp1){var self = $$29.$$s == null ? this : $$29.$$s, $a, $b, rule = nil, replacement = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil; - if ($b == null) { - $b = nil; - } - $b = Opal.to_ary($b); - $b_args = Opal.slice.call($b, 0, $b.length); - rule = $b_args.splice(0,1)[0]; - if (rule == null) { - rule = nil; - } - replacement = $b_args.splice(0,1)[0]; - if (replacement == null) { - replacement = nil; - } - if ($truthy(($truthy($c = ($truthy($d = rule['$is_a?'](Opal.const_get_relative($nesting, 'Regexp'))) ? result['$=~'](rule) : $d)) ? $c : ($truthy($d = rule['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? result['$=='](rule) : $d)))) { + + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; + }; + $b = $mlhs_tmp1, $a = Opal.to_ary($b), (rule = ($a[0] == null ? nil : $a[0])), (replacement = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy((function() {if ($truthy(($ret_or_9 = (function() {if ($truthy(($ret_or_10 = rule['$is_a?']($$($nesting, 'Regexp'))))) { + return result['$=~'](rule) + } else { + return $ret_or_10 + }; return nil; })()))) { + return $ret_or_9 + } else { + + if ($truthy(($ret_or_11 = rule['$is_a?']($$($nesting, 'String'))))) { + return result['$=='](rule) + } else { + return $ret_or_11 + }; + }; return nil; })())) { result = result.$sub(rule, replacement); Opal.brk(nil, $brk); - } else { + } else { return nil - }}, TMP_28.$$s = self, TMP_28.$$brk = $brk, TMP_28.$$arity = 1, TMP_28.$$has_top_level_mlhs_arg = true, TMP_28)) + };}, $$29.$$s = self, $$29.$$brk = $brk, $$29.$$arity = 1, $$29.$$has_top_level_mlhs_arg = true, $$29)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return result; }; - }, TMP_Inflector_apply_inflections_29.$$arity = -3); + }, $Inflector_apply_inflections$28.$$arity = -3), nil) && 'apply_inflections'; })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/string/inflections"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["active_support/core_ext/string/inflections"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; Opal.add_stubs(['$require', '$is_a?', '$==', '$dup', '$pluralize', '$singularize', '$constantize', '$safe_constantize', '$===', '$camelize', '$raise', '$alias_method', '$titleize', '$underscore', '$dasherize', '$demodulize', '$deconstantize', '$tableize', '$classify', '$humanize', '$upcase_first', '$foreign_key']); self.$require("active_support/inflector"); return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_pluralize_1, TMP_String_singularize_2, TMP_String_constantize_3, TMP_String_safe_constantize_4, TMP_String_camelize_5, TMP_String_titleize_6, TMP_String_underscore_7, TMP_String_dasherize_8, TMP_String_demodulize_9, TMP_String_deconstantize_10, TMP_String_tableize_11, TMP_String_classify_12, TMP_String_humanize_13, TMP_String_upcase_first_14, TMP_String_foreign_key_15; + var $nesting = [self].concat($parent_nesting), $String_pluralize$1, $String_singularize$2, $String_constantize$3, $String_safe_constantize$4, $String_camelize$5, $String_titleize$6, $String_underscore$7, $String_dasherize$8, $String_demodulize$9, $String_deconstantize$10, $String_tableize$11, $String_classify$12, $String_humanize$13, $String_upcase_first$14, $String_foreign_key$15; - Opal.defn(self, '$pluralize', TMP_String_pluralize_1 = function $$pluralize(count, locale) { + Opal.def(self, '$pluralize', $String_pluralize$1 = function $$pluralize(count, locale) { var self = this; + + if (count == null) { count = nil; - } + }; + if (locale == null) { locale = "en"; - } - - if ($truthy(count['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { + }; + if ($truthy(count['$is_a?']($$($nesting, 'Symbol')))) { locale = count}; if (count['$=='](1)) { return self.$dup() - } else { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$pluralize(self, locale) + } else { + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$pluralize(self, locale) }; - }, TMP_String_pluralize_1.$$arity = -1); + }, $String_pluralize$1.$$arity = -1); - Opal.defn(self, '$singularize', TMP_String_singularize_2 = function $$singularize(locale) { + Opal.def(self, '$singularize', $String_singularize$2 = function $$singularize(locale) { var self = this; + + if (locale == null) { locale = "en"; - } - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$singularize(self, locale) - }, TMP_String_singularize_2.$$arity = -1); + }; + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$singularize(self, locale); + }, $String_singularize$2.$$arity = -1); - Opal.defn(self, '$constantize', TMP_String_constantize_3 = function $$constantize() { + Opal.def(self, '$constantize', $String_constantize$3 = function $$constantize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$constantize(self) - }, TMP_String_constantize_3.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$constantize(self) + }, $String_constantize$3.$$arity = 0); - Opal.defn(self, '$safe_constantize', TMP_String_safe_constantize_4 = function $$safe_constantize() { + Opal.def(self, '$safe_constantize', $String_safe_constantize$4 = function $$safe_constantize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$safe_constantize(self) - }, TMP_String_safe_constantize_4.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$safe_constantize(self) + }, $String_safe_constantize$4.$$arity = 0); - Opal.defn(self, '$camelize', TMP_String_camelize_5 = function $$camelize(first_letter) { + Opal.def(self, '$camelize', $String_camelize$5 = function $$camelize(first_letter) { var self = this, $case = nil; + + if (first_letter == null) { first_letter = "upper"; - } + }; return (function() {$case = first_letter; - if ("upper"['$===']($case)) {return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$camelize(self, true)} - else if ("lower"['$===']($case)) {return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$camelize(self, false)} - else {return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Invalid option, use either :upper or :lower.")}})() - }, TMP_String_camelize_5.$$arity = -1); + if ("upper"['$===']($case)) {return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$camelize(self, true)} + else if ("lower"['$===']($case)) {return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$camelize(self, false)} + else {return self.$raise($$($nesting, 'ArgumentError'), "Invalid option, use either :upper or :lower.")}})(); + }, $String_camelize$5.$$arity = -1); self.$alias_method("camelcase", "camelize"); - Opal.defn(self, '$titleize', TMP_String_titleize_6 = function $$titleize($kwargs) { - var self = this, keep_id_suffix; + Opal.def(self, '$titleize', $String_titleize$6 = function $$titleize($kwargs) { + var keep_id_suffix, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + keep_id_suffix = $kwargs.$$smap["keep_id_suffix"]; if (keep_id_suffix == null) { keep_id_suffix = false - } - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$titleize(self, $hash2(["keep_id_suffix"], {"keep_id_suffix": keep_id_suffix})) - }, TMP_String_titleize_6.$$arity = -1); + }; + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$titleize(self, $hash2(["keep_id_suffix"], {"keep_id_suffix": keep_id_suffix})); + }, $String_titleize$6.$$arity = -1); self.$alias_method("titlecase", "titleize"); - Opal.defn(self, '$underscore', TMP_String_underscore_7 = function $$underscore() { + Opal.def(self, '$underscore', $String_underscore$7 = function $$underscore() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$underscore(self) - }, TMP_String_underscore_7.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$underscore(self) + }, $String_underscore$7.$$arity = 0); - Opal.defn(self, '$dasherize', TMP_String_dasherize_8 = function $$dasherize() { + Opal.def(self, '$dasherize', $String_dasherize$8 = function $$dasherize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$dasherize(self) - }, TMP_String_dasherize_8.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$dasherize(self) + }, $String_dasherize$8.$$arity = 0); - Opal.defn(self, '$demodulize', TMP_String_demodulize_9 = function $$demodulize() { + Opal.def(self, '$demodulize', $String_demodulize$9 = function $$demodulize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$demodulize(self) - }, TMP_String_demodulize_9.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$demodulize(self) + }, $String_demodulize$9.$$arity = 0); - Opal.defn(self, '$deconstantize', TMP_String_deconstantize_10 = function $$deconstantize() { + Opal.def(self, '$deconstantize', $String_deconstantize$10 = function $$deconstantize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$deconstantize(self) - }, TMP_String_deconstantize_10.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$deconstantize(self) + }, $String_deconstantize$10.$$arity = 0); - Opal.defn(self, '$tableize', TMP_String_tableize_11 = function $$tableize() { + Opal.def(self, '$tableize', $String_tableize$11 = function $$tableize() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$tableize(self) - }, TMP_String_tableize_11.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$tableize(self) + }, $String_tableize$11.$$arity = 0); - Opal.defn(self, '$classify', TMP_String_classify_12 = function $$classify() { + Opal.def(self, '$classify', $String_classify$12 = function $$classify() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$classify(self) - }, TMP_String_classify_12.$$arity = 0); + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$classify(self) + }, $String_classify$12.$$arity = 0); - Opal.defn(self, '$humanize', TMP_String_humanize_13 = function $$humanize($kwargs) { - var self = this, capitalize, keep_id_suffix; + Opal.def(self, '$humanize', $String_humanize$13 = function $$humanize($kwargs) { + var capitalize, keep_id_suffix, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + capitalize = $kwargs.$$smap["capitalize"]; if (capitalize == null) { capitalize = true - } + }; + keep_id_suffix = $kwargs.$$smap["keep_id_suffix"]; if (keep_id_suffix == null) { keep_id_suffix = false - } - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$humanize(self, $hash2(["capitalize", "keep_id_suffix"], {"capitalize": capitalize, "keep_id_suffix": keep_id_suffix})) - }, TMP_String_humanize_13.$$arity = -1); + }; + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$humanize(self, $hash2(["capitalize", "keep_id_suffix"], {"capitalize": capitalize, "keep_id_suffix": keep_id_suffix})); + }, $String_humanize$13.$$arity = -1); - Opal.defn(self, '$upcase_first', TMP_String_upcase_first_14 = function $$upcase_first() { + Opal.def(self, '$upcase_first', $String_upcase_first$14 = function $$upcase_first() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$upcase_first(self) - }, TMP_String_upcase_first_14.$$arity = 0); - return (Opal.defn(self, '$foreign_key', TMP_String_foreign_key_15 = function $$foreign_key(separate_class_name_and_id_with_underscore) { + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$upcase_first(self) + }, $String_upcase_first$14.$$arity = 0); + return (Opal.def(self, '$foreign_key', $String_foreign_key$15 = function $$foreign_key(separate_class_name_and_id_with_underscore) { var self = this; + + if (separate_class_name_and_id_with_underscore == null) { separate_class_name_and_id_with_underscore = true; - } - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$foreign_key(self, separate_class_name_and_id_with_underscore) - }, TMP_String_foreign_key_15.$$arity = -1), nil) && 'foreign_key'; + }; + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$foreign_key(self, separate_class_name_and_id_with_underscore); + }, $String_foreign_key$15.$$arity = -1), nil) && 'foreign_key'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/inflector"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/inflector"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -1817,50 +2198,48 @@ Opal.modules["active_support/inflector"] = function(Opal) { return self.$require("active_support/core_ext/string/inflections"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/module/introspection"] = function(Opal) { +Opal.modules["active_support/core_ext/module/introspection"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_times(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $gvars = Opal.gvars; Opal.add_stubs(['$require', '$=~', '$name', '$freeze', '$parent_name', '$constantize', '$split', '$empty?', '$<<', '$*', '$pop', '$include?', '$constants']); self.$require("active_support/inflector"); return (function($base, $super, $parent_nesting) { - function $Module(){}; - var self = $Module = $klass($base, $super, 'Module', $Module); + var self = $klass($base, $super, 'Module'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Module_parent_name_1, TMP_Module_parent_2, TMP_Module_parents_3, TMP_Module_local_constants_4; + var $nesting = [self].concat($parent_nesting), $Module_parent_name$1, $Module_parent$2, $Module_parents$3, $Module_local_constants$4; - def.parent_name = nil; + self.$$prototype.parent_name = nil; - Opal.defn(self, '$parent_name', TMP_Module_parent_name_1 = function $$parent_name() { + Opal.def(self, '$parent_name', $Module_parent_name$1 = function $$parent_name() { var $a, $b, self = this; if ($truthy((($a = self['parent_name'], $a != null && $a !== nil) ? 'instance-variable' : nil))) { return self.parent_name - } else { + } else { return (self.parent_name = (function() {if ($truthy(self.$name()['$=~'](/::[^:]+$/))) { return (($b = $gvars['~']) === nil ? nil : $b.$pre_match()).$freeze() - } else { + } else { return nil }; return nil; })()) } - }, TMP_Module_parent_name_1.$$arity = 0); + }, $Module_parent_name$1.$$arity = 0); - Opal.defn(self, '$parent', TMP_Module_parent_2 = function $$parent() { + Opal.def(self, '$parent', $Module_parent$2 = function $$parent() { var self = this; if ($truthy(self.$parent_name())) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$constantize(self.$parent_name()) - } else { - return Opal.const_get_relative($nesting, 'Object') + return $$$($$($nesting, 'ActiveSupport'), 'Inflector').$constantize(self.$parent_name()) + } else { + return $$($nesting, 'Object') } - }, TMP_Module_parent_2.$$arity = 0); + }, $Module_parent$2.$$arity = 0); - Opal.defn(self, '$parents', TMP_Module_parents_3 = function $$parents() { + Opal.def(self, '$parents', $Module_parents$3 = function $$parents() { var $a, self = this, parents = nil, parts = nil; @@ -1870,137 +2249,156 @@ Opal.modules["active_support/core_ext/module/introspection"] = function(Opal) { parts = self.$parent_name().$split("::"); while (!($truthy(parts['$empty?']()))) { - parents['$<<'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'Inflector').$constantize($rb_times(parts, "::"))); + parents['$<<']($$$($$($nesting, 'ActiveSupport'), 'Inflector').$constantize($rb_times(parts, "::"))); parts.$pop(); };}; - if ($truthy(parents['$include?'](Opal.const_get_relative($nesting, 'Object')))) { - } else { - parents['$<<'](Opal.const_get_relative($nesting, 'Object')) + if ($truthy(parents['$include?']($$($nesting, 'Object')))) { + } else { + parents['$<<']($$($nesting, 'Object')) }; return parents; - }, TMP_Module_parents_3.$$arity = 0); - return (Opal.defn(self, '$local_constants', TMP_Module_local_constants_4 = function $$local_constants() { + }, $Module_parents$3.$$arity = 0); + return (Opal.def(self, '$local_constants', $Module_local_constants$4 = function $$local_constants() { var self = this; return self.$constants(false) - }, TMP_Module_local_constants_4.$$arity = 0), nil) && 'local_constants'; + }, $Module_local_constants$4.$$arity = 0), nil) && 'local_constants'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/module/delegation"] = function(Opal) { +Opal.modules["active_support/core_ext/module/delegation"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; Opal.add_stubs(['$pop', '$is_a?', '$[]', '$raise', '$values_at', '$==', '$=~', '$to_s', '$each', '$+', '$lambda', '$start_with?', '$__send__', '$new', '$inspect', '$define_method', '$to_proc']); return (function($base, $super, $parent_nesting) { - function $Module(){}; - var self = $Module = $klass($base, $super, 'Module', $Module); + var self = $klass($base, $super, 'Module'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Module_delegate_6; + var $nesting = [self].concat($parent_nesting), $Module_delegate$1; (function($base, $super, $parent_nesting) { - function $DelegationError(){}; - var self = $DelegationError = $klass($base, $super, 'DelegationError', $DelegationError); + var self = $klass($base, $super, 'DelegationError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'NoMethodError'), $nesting); - return (Opal.defn(self, '$delegate', TMP_Module_delegate_6 = function $$delegate($a_rest) { - var $b, $c, TMP_1, self = this, methods, options = nil, to = nil, prefix = nil, allow_nil = nil, method_prefix = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - methods = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - methods[$arg_idx - 0] = arguments[$arg_idx]; - } + })($nesting[0], $$($nesting, 'NoMethodError'), $nesting); + return (Opal.def(self, '$delegate', $Module_delegate$1 = function $$delegate($a) { + var $post_args, methods, $b, $c, $$2, $iter = $Module_delegate$1.$$p, $yield = $iter || nil, self = this, options = nil, $ret_or_1 = nil, to = nil, prefix = nil, allow_nil = nil, $ret_or_2 = nil, method_prefix = nil; + + if ($iter) $Module_delegate$1.$$p = null; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + methods = $post_args;; options = methods.$pop(); - if ($truthy(($truthy($b = options['$is_a?'](Opal.const_get_relative($nesting, 'Hash'))) ? (to = options['$[]']("to")) : $b))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :hello, to: :greeter).") + if ($truthy((function() {if ($truthy(($ret_or_1 = options['$is_a?']($$($nesting, 'Hash'))))) { + return (to = options['$[]']("to")) + } else { + return $ret_or_1 + }; return nil; })())) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "Delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :hello, to: :greeter).") }; $c = options.$values_at("prefix", "allow_nil"), $b = Opal.to_ary($c), (prefix = ($b[0] == null ? nil : $b[0])), (allow_nil = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy((($b = prefix['$=='](true)) ? to['$=~'](/^[^a-z_]/) : prefix['$=='](true)))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Can only automatically set the delegation prefix when delegating to a method.")}; + if ($truthy((function() {if ($truthy(($ret_or_2 = prefix['$=='](true)))) { + return to['$=~'](/^[^a-z_]/) + } else { + return $ret_or_2 + }; return nil; })())) { + self.$raise($$($nesting, 'ArgumentError'), "Can only automatically set the delegation prefix when delegating to a method.")}; method_prefix = (function() {if ($truthy(prefix)) { return "" + ((function() {if (prefix['$=='](true)) { return to - } else { + } else { return prefix }; return nil; })()) + "_" - } else { + } else { return "" }; return nil; })(); to = to.$to_s(); - return $send(methods, 'each', [], (TMP_1 = function(method){var self = TMP_1.$$s || this, TMP_2, TMP_3, TMP_4, TMP_5, has_block = nil, method_name = nil, resolve_to = nil, exception = nil; -if (method == null) method = nil; - + return $send(methods, 'each', [], ($$2 = function(method){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $$4, $$5, $$6, has_block = nil, method_name = nil, resolve_to = nil, exception = nil; + + + + if (method == null) { + method = nil; + }; has_block = (function() {if ($truthy(method['$=~'](/[^\]]=$/))) { return false - } else { + } else { return true }; return nil; })(); method_name = $rb_plus(method_prefix, method); - resolve_to = $send(self, 'lambda', [], (TMP_2 = function(scope){var self = TMP_2.$$s || this, ivar_name = nil; -if (scope == null) scope = nil; - if ($truthy(to['$start_with?']("@"))) { + resolve_to = $send(self, 'lambda', [], ($$3 = function(scope){var self = $$3.$$s == null ? this : $$3.$$s, ivar_name = nil; + + + + if (scope == null) { + scope = nil; + }; + if ($truthy(to['$start_with?']("@"))) { ivar_name = to['$[]']($range(1, -1, false)); return scope[ivar_name]; - } else { + } else { return scope.$__send__(to) - }}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - exception = $send(self, 'lambda', [], (TMP_3 = function(scope){var self = TMP_3.$$s || this; -if (scope == null) scope = nil; - return Opal.const_get_relative($nesting, 'DelegationError').$new("" + (scope) + (method_name) + " delegated to " + (to) + "." + (method) + " but " + (to) + " is nil: " + (scope.$inspect()), method_name)}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); - if ($truthy(has_block)) { - return $send(self, 'define_method', [method_name], (TMP_4 = function($a_rest){var self = TMP_4.$$s || this, block, args, to_resolved = nil; - - block = TMP_4.$$p || nil; - if (block) TMP_4.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + };}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + exception = $send(self, 'lambda', [], ($$4 = function(scope){var self = $$4.$$s == null ? this : $$4.$$s; + + + if (scope == null) { + scope = nil; + }; + return $$($nesting, 'DelegationError').$new("" + (scope) + (method_name) + " delegated to " + (to) + "." + (method) + " but " + (to) + " is nil: " + (scope.$inspect()), method_name);}, $$4.$$s = self, $$4.$$arity = 1, $$4)); + if ($truthy(has_block)) { + return $send(self, 'define_method', [method_name], ($$5 = function($d){var self = $$5.$$s == null ? this : $$5.$$s, $iter = $$5.$$p, block = $iter || nil, $post_args, args, to_resolved = nil; + + + + if ($iter) $$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; to_resolved = resolve_to['$[]'](self); if ($truthy(to_resolved)) { - } else { + } else { if ($truthy(allow_nil)) { return nil;}; self.$raise(exception['$[]'](self)); }; - return $send(to_resolved, '__send__', [method].concat(Opal.to_a(args)), block.$to_proc());}, TMP_4.$$s = self, TMP_4.$$arity = -1, TMP_4)) - } else { - return $send(self, 'define_method', [method_name], (TMP_5 = function(arg){var self = TMP_5.$$s || this, to_resolved = nil; -if (arg == null) arg = nil; - + return $send(to_resolved, '__send__', [method].concat(Opal.to_a(args)), block.$to_proc());}, $$5.$$s = self, $$5.$$arity = -1, $$5)) + } else { + return $send(self, 'define_method', [method_name], ($$6 = function(arg){var self = $$6.$$s == null ? this : $$6.$$s, to_resolved = nil; + + + + if (arg == null) { + arg = nil; + }; to_resolved = resolve_to['$[]'](self); if ($truthy(to_resolved)) { - } else { + } else { if ($truthy(allow_nil)) { return nil;}; self.$raise(exception['$[]'](self)); }; - return to_resolved.$__send__(method, arg);}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)) - };}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); - }, TMP_Module_delegate_6.$$arity = -1), nil) && 'delegate'; + return to_resolved.$__send__(method, arg);}, $$6.$$s = self, $$6.$$arity = 1, $$6)) + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $Module_delegate$1.$$arity = -1), nil) && 'delegate'; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/module"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext/module"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -2009,20 +2407,18 @@ Opal.modules["active_support/core_ext/module"] = function(Opal) { return self.$require("active_support/core_ext/module/delegation"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/numeric/calculations"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext/numeric/calculations"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $alias = Opal.alias; return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - return Opal.alias(self, "current", "now") - })(Opal.get_singleton_class(Opal.const_get_relative($nesting, 'Time')), $nesting) + return $alias(self, "current", "now") + })(Opal.get_singleton_class($$($nesting, 'Time')), $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/numeric"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext/numeric"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -2030,198 +2426,194 @@ Opal.modules["active_support/core_ext/numeric"] = function(Opal) { return self.$require("active_support/core_ext/numeric/calculations"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/object/blank"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["active_support/core_ext/object/blank"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$respond_to?', '$empty?', '$!', '$blank?', '$present?', '$==', '$alias_method', '$!~']); (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_blank$q_1, TMP_Object_present$q_2, TMP_Object_presence_3; + var $nesting = [self].concat($parent_nesting), $Object_blank$ques$1, $Object_present$ques$2, $Object_presence$3; - Opal.defn(self, '$blank?', TMP_Object_blank$q_1 = function() { + Opal.def(self, '$blank?', $Object_blank$ques$1 = function() { var self = this; if ($truthy(self['$respond_to?']("empty?"))) { return self['$empty?']() - } else { + } else { return self['$!']() } - }, TMP_Object_blank$q_1.$$arity = 0); + }, $Object_blank$ques$1.$$arity = 0); - Opal.defn(self, '$present?', TMP_Object_present$q_2 = function() { + Opal.def(self, '$present?', $Object_present$ques$2 = function() { var self = this; return self['$blank?']()['$!']() - }, TMP_Object_present$q_2.$$arity = 0); - return (Opal.defn(self, '$presence', TMP_Object_presence_3 = function $$presence() { + }, $Object_present$ques$2.$$arity = 0); + return (Opal.def(self, '$presence', $Object_presence$3 = function $$presence() { var self = this; if ($truthy(self['$present?']())) { return self - } else { + } else { return nil } - }, TMP_Object_presence_3.$$arity = 0), nil) && 'presence'; + }, $Object_presence$3.$$arity = 0), nil) && 'presence'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $NilClass(){}; - var self = $NilClass = $klass($base, $super, 'NilClass', $NilClass); + var self = $klass($base, $super, 'NilClass'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NilClass_blank$q_4; + var $nesting = [self].concat($parent_nesting), $NilClass_blank$ques$4; - return (Opal.defn(self, '$blank?', TMP_NilClass_blank$q_4 = function() { + return (Opal.def(self, '$blank?', $NilClass_blank$ques$4 = function() { var self = this; return true - }, TMP_NilClass_blank$q_4.$$arity = 0), nil) && 'blank?' + }, $NilClass_blank$ques$4.$$arity = 0), nil) && 'blank?' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Boolean(){}; - var self = $Boolean = $klass($base, $super, 'Boolean', $Boolean); + var self = $klass($base, $super, 'Boolean'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Boolean_blank$q_5; + var $nesting = [self].concat($parent_nesting), $Boolean_blank$ques$5; - return (Opal.defn(self, '$blank?', TMP_Boolean_blank$q_5 = function() { + return (Opal.def(self, '$blank?', $Boolean_blank$ques$5 = function() { var self = this; return self['$=='](false) - }, TMP_Boolean_blank$q_5.$$arity = 0), nil) && 'blank?' + }, $Boolean_blank$ques$5.$$arity = 0), nil) && 'blank?' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$alias_method("blank?", "empty?") })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); + var self = $klass($base, $super, 'Hash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$alias_method("blank?", "empty?") })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_blank$q_6; + var $nesting = [self].concat($parent_nesting), $String_blank$ques$6; - return (Opal.defn(self, '$blank?', TMP_String_blank$q_6 = function() { + return (Opal.def(self, '$blank?', $String_blank$ques$6 = function() { var self = this; return self['$!~'](/[^\s ]/) - }, TMP_String_blank$q_6.$$arity = 0), nil) && 'blank?' + }, $String_blank$ques$6.$$arity = 0), nil) && 'blank?' })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $Numeric(){}; - var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric); + var self = $klass($base, $super, 'Numeric'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Numeric_blank$q_7; + var $nesting = [self].concat($parent_nesting), $Numeric_blank$ques$7; - return (Opal.defn(self, '$blank?', TMP_Numeric_blank$q_7 = function() { + return (Opal.def(self, '$blank?', $Numeric_blank$ques$7 = function() { var self = this; return false - }, TMP_Numeric_blank$q_7.$$arity = 0), nil) && 'blank?' + }, $Numeric_blank$ques$7.$$arity = 0), nil) && 'blank?' })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/object/try"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["active_support/core_ext/object/try"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$empty?', '$respond_to?', '$first', '$try!', '$to_proc', '$zero?', '$arity', '$instance_eval', '$public_send']); (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_try_1, TMP_Object_try$B_2; + var $nesting = [self].concat($parent_nesting), $Object_try$1, $Object_try$excl$2; - Opal.defn(self, '$try', TMP_Object_try_1 = function($a_rest) { - var $b, self = this, a, $iter = TMP_Object_try_1.$$p, b = $iter || nil; + Opal.def(self, '$try', $Object_try$1 = function($a) { + var $iter = $Object_try$1.$$p, b = $iter || nil, $post_args, a, self = this, $ret_or_1 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - a = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - a[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_try_1.$$p = null; - if ($truthy(($truthy($b = a['$empty?']()) ? $b : self['$respond_to?'](a.$first())))) { + if ($iter) $Object_try$1.$$p = null; + + + if ($iter) $Object_try$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + a = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_1 = a['$empty?']()))) { + return $ret_or_1 + } else { + return self['$respond_to?'](a.$first()) + }; return nil; })())) { return $send(self, 'try!', Opal.to_a(a), b.$to_proc()) - } else { + } else { return nil - } - }, TMP_Object_try_1.$$arity = -1); - return (Opal.defn(self, '$try!', TMP_Object_try$B_2 = function($a_rest) { - var $b, self = this, a, $iter = TMP_Object_try$B_2.$$p, b = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - a = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - a[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_try$B_2.$$p = null; - if ($truthy(($truthy($b = a['$empty?']()) ? (b !== nil) : $b))) { + }; + }, $Object_try$1.$$arity = -1); + return (Opal.def(self, '$try!', $Object_try$excl$2 = function($a) { + var $iter = $Object_try$excl$2.$$p, b = $iter || nil, $post_args, a, self = this, $ret_or_2 = nil; + + if ($iter) $Object_try$excl$2.$$p = null; + + + if ($iter) $Object_try$excl$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + a = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_2 = a['$empty?']()))) { + return (b !== nil) + } else { + return $ret_or_2 + }; return nil; })())) { if ($truthy(b.$arity()['$zero?']())) { return $send(self, 'instance_eval', [], b.$to_proc()) - } else { + } else { return Opal.yield1(b, self); } - } else { + } else { return $send(self, 'public_send', Opal.to_a(a), b.$to_proc()) - } - }, TMP_Object_try$B_2.$$arity = -1), nil) && 'try!'; + }; + }, $Object_try$excl$2.$$arity = -1), nil) && 'try!'; })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $NilClass(){}; - var self = $NilClass = $klass($base, $super, 'NilClass', $NilClass); + var self = $klass($base, $super, 'NilClass'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NilClass_try_3, TMP_NilClass_try$B_4; + var $nesting = [self].concat($parent_nesting), $NilClass_try$3, $NilClass_try$excl$4; - Opal.defn(self, '$try', TMP_NilClass_try_3 = function($a_rest) { - var self = this, args; + Opal.def(self, '$try', $NilClass_try$3 = function($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_NilClass_try_3.$$arity = -1); - return (Opal.defn(self, '$try!', TMP_NilClass_try$B_4 = function($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_NilClass_try$B_4.$$arity = -1), nil) && 'try!'; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $NilClass_try$3.$$arity = -1); + return (Opal.def(self, '$try!', $NilClass_try$excl$4 = function($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $NilClass_try$excl$4.$$arity = -1), nil) && 'try!'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/object"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext/object"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -2229,71 +2621,75 @@ Opal.modules["active_support/core_ext/object"] = function(Opal) { return self.$require("active_support/core_ext/object/try"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/string/filters"] = function(Opal) { +Opal.modules["active_support/core_ext/string/filters"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$>', '$length', '$dup', '$[]', '$-', '$rindex']); return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_truncate_1; + var $nesting = [self].concat($parent_nesting), $String_truncate$1; - return (Opal.defn(self, '$truncate', TMP_String_truncate_1 = function $$truncate(truncate_at, options) { - var $a, self = this, omission = nil, length_with_room_for_omission = nil, stop = nil; + return (Opal.def(self, '$truncate', $String_truncate$1 = function $$truncate(truncate_at, options) { + var self = this, omission = nil, $ret_or_1 = nil, length_with_room_for_omission = nil, stop = nil, $ret_or_2 = nil; + + if (options == null) { options = $hash2([], {}); - } - + }; if ($truthy($rb_gt(self.$length(), truncate_at))) { - } else { + } else { return self.$dup() }; - omission = ($truthy($a = options['$[]']("omission")) ? $a : "..."); + omission = (function() {if ($truthy(($ret_or_1 = options['$[]']("omission")))) { + return $ret_or_1 + } else { + return "..." + }; return nil; })(); length_with_room_for_omission = $rb_minus(truncate_at, omission.$length()); stop = (function() {if ($truthy(options['$[]']("separator"))) { - return ($truthy($a = self.$rindex(options['$[]']("separator"), length_with_room_for_omission)) ? $a : length_with_room_for_omission) + if ($truthy(($ret_or_2 = self.$rindex(options['$[]']("separator"), length_with_room_for_omission)))) { + return $ret_or_2 } else { + return length_with_room_for_omission + } + } else { return length_with_room_for_omission }; return nil; })(); return "" + (self['$[]'](0, stop)) + (omission); - }, TMP_String_truncate_1.$$arity = -2), nil) && 'truncate' + }, $String_truncate$1.$$arity = -2), nil) && 'truncate' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext/string"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["active_support/core_ext/string"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; Opal.add_stubs(['$require', '$gsub', '$strip', '$downcase']); self.$require("active_support/core_ext/string/filters"); self.$require("active_support/core_ext/string/inflections"); return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_parameterize_1; + var $nesting = [self].concat($parent_nesting), $String_parameterize$1; - return (Opal.defn(self, '$parameterize', TMP_String_parameterize_1 = function $$parameterize() { + return (Opal.def(self, '$parameterize', $String_parameterize$1 = function $$parameterize() { var self = this; return self.$downcase().$strip().$gsub(/\W+/, "-") - }, TMP_String_parameterize_1.$$arity = 0), nil) && 'parameterize' + }, $String_parameterize$1.$$arity = 0), nil) && 'parameterize' })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support/core_ext"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support/core_ext"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -2309,41 +2705,37 @@ Opal.modules["active_support/core_ext"] = function(Opal) { return self.$require("active_support/core_ext/string"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["active_support"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["active_support"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); return self.$require("active_support/core_ext") }; -/* Generated by Opal 0.11.4 */ -Opal.modules["time"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["time"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; Opal.add_stubs(['$strftime']); return (function($base, $super, $parent_nesting) { - function $Time(){}; - var self = $Time = $klass($base, $super, 'Time', $Time); + var self = $klass($base, $super, 'Time'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Time_parse_1, TMP_Time_iso8601_2; + var $nesting = [self].concat($parent_nesting), $Time_parse$1, $Time_iso8601$2; - Opal.defs(self, '$parse', TMP_Time_parse_1 = function $$parse(str) { + Opal.defs(self, '$parse', $Time_parse$1 = function $$parse(str) { var self = this; - return new Date(Date.parse(str)) - }, TMP_Time_parse_1.$$arity = 1); - return (Opal.defn(self, '$iso8601', TMP_Time_iso8601_2 = function $$iso8601() { + return new Date(Date.parse(str)); + }, $Time_parse$1.$$arity = 1); + return (Opal.def(self, '$iso8601', $Time_iso8601$2 = function $$iso8601() { var self = this; return self.$strftime("%FT%T%z") - }, TMP_Time_iso8601_2.$$arity = 0), nil) && 'iso8601'; + }, $Time_iso8601$2.$$arity = 0), nil) && 'iso8601'; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["date"] = function(Opal) { +Opal.modules["date"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } @@ -2359,134 +2751,123 @@ Opal.modules["date"] = function(Opal) { function $rb_times(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $alias = Opal.alias, $send = Opal.send; - Opal.add_stubs(['$include', '$<=>', '$nonzero?', '$d', '$zero?', '$new', '$class', '$-@', '$+@', '$===', '$coerce', '$==', '$>', '$+', '$allocate', '$join', '$compact', '$map', '$to_proc', '$downcase', '$wrap', '$raise', '$clone', '$jd', '$>>', '$wday', '$-', '$to_s', '$alias_method', '$to_i', '$<', '$*', '$reverse', '$step', '$abs', '$each']); + Opal.add_stubs(['$include', '$<=>', '$attr_reader', '$nonzero?', '$d', '$zero?', '$new', '$class', '$-@', '$+@', '$===', '$coerce', '$==', '$>', '$+', '$allocate', '$join', '$compact', '$map', '$to_proc', '$downcase', '$wrap', '$raise', '$clone', '$jd', '$>>', '$wday', '$year', '$month', '$day', '$-', '$to_s', '$to_i', '$<', '$*', '$reverse', '$step', '$abs', '$each']); return (function($base, $super, $parent_nesting) { - function $Date(){}; - var self = $Date = $klass($base, $super, 'Date', $Date); + var self = $klass($base, $super, 'Date'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Date_initialize_17, TMP_Date_$_18, TMP_Date_$_19, TMP_Date_$lt_20, TMP_Date_$lt$eq_21, TMP_Date_$gt_22, TMP_Date_$gt$eq_23, TMP_Date_$lt$eq$gt_24, TMP_Date_$gt$gt_25, TMP_Date_$lt$lt_26, TMP_Date_clone_27, TMP_Date_day_28, TMP_Date_friday$q_29, TMP_Date_jd_30, TMP_Date_julian$q_31, TMP_Date_monday$q_32, TMP_Date_month_33, TMP_Date_next_34, TMP_Date_next_day_35, TMP_Date_next_month_36, TMP_Date_prev_day_37, TMP_Date_prev_month_38, TMP_Date_saturday$q_39, TMP_Date_strftime_40, TMP_Date_sunday$q_41, TMP_Date_thursday$q_42, TMP_Date_to_s_43, TMP_Date_tuesday$q_44, TMP_Date_step_45, TMP_Date_upto_49, TMP_Date_downto_50, TMP_Date_wday_51, TMP_Date_wednesday$q_52, TMP_Date_year_53, TMP_Date_cwday_54, TMP_Date_cweek_55; + var $nesting = [self].concat($parent_nesting), $Date_initialize$16, $Date_$minus$17, $Date_$plus$18, $Date_$lt$19, $Date_$lt_eq$20, $Date_$gt$21, $Date_$gt_eq$22, $Date_$lt_eq_gt$23, $Date_$gt$gt$24, $Date_$lt$lt$25, $Date_clone$26, $Date_day$27, $Date_friday$ques$28, $Date_jd$29, $Date_julian$ques$30, $Date_monday$ques$31, $Date_month$32, $Date_next$33, $Date_next_day$34, $Date_next_month$35, $Date_next_year$36, $Date_prev_day$37, $Date_prev_month$38, $Date_prev_year$39, $Date_saturday$ques$40, $Date_strftime$41, $Date_sunday$ques$42, $Date_thursday$ques$43, $Date_to_s$44, $Date_to_time$45, $Date_to_n$46, $Date_tuesday$ques$47, $Date_step$48, $Date_upto$51, $Date_downto$52, $Date_wday$53, $Date_wednesday$ques$54, $Date_year$55, $Date_cwday$56, $Date_cweek$57; - def.date = nil; + self.$$prototype.date = nil; - self.$include(Opal.const_get_relative($nesting, 'Comparable')); + self.$include($$($nesting, 'Comparable')); (function($base, $super, $parent_nesting) { - function $Infinity(){}; - var self = $Infinity = $klass($base, $super, 'Infinity', $Infinity); + var self = $klass($base, $super, 'Infinity'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Infinity_initialize_1, TMP_Infinity_d_2, TMP_Infinity_zero$q_3, TMP_Infinity_finite$q_4, TMP_Infinity_infinite$q_5, TMP_Infinity_nan$q_6, TMP_Infinity_abs_7, TMP_Infinity_$$_8, TMP_Infinity_$$_9, TMP_Infinity_$lt$eq$gt_10, TMP_Infinity_coerce_11, TMP_Infinity_to_f_12; + var $nesting = [self].concat($parent_nesting), $Infinity_initialize$1, $Infinity_zero$ques$2, $Infinity_finite$ques$3, $Infinity_infinite$ques$4, $Infinity_nan$ques$5, $Infinity_abs$6, $Infinity_$minus$$7, $Infinity_$plus$$8, $Infinity_$lt_eq_gt$9, $Infinity_coerce$10, $Infinity_to_f$11; - def.d = nil; + self.$$prototype.d = nil; - self.$include(Opal.const_get_relative($nesting, 'Comparable')); + self.$include($$($nesting, 'Comparable')); - Opal.defn(self, '$initialize', TMP_Infinity_initialize_1 = function $$initialize(d) { + Opal.def(self, '$initialize', $Infinity_initialize$1 = function $$initialize(d) { var self = this; + + if (d == null) { d = 1; - } - return (self.d = d['$<=>'](0)) - }, TMP_Infinity_initialize_1.$$arity = -1); - - Opal.defn(self, '$d', TMP_Infinity_d_2 = function $$d() { - var self = this; - - return self.d - }, TMP_Infinity_d_2.$$arity = 0); + }; + return (self.d = d['$<=>'](0)); + }, $Infinity_initialize$1.$$arity = -1); + self.$attr_reader("d"); - Opal.defn(self, '$zero?', TMP_Infinity_zero$q_3 = function() { + Opal.def(self, '$zero?', $Infinity_zero$ques$2 = function() { var self = this; return false - }, TMP_Infinity_zero$q_3.$$arity = 0); + }, $Infinity_zero$ques$2.$$arity = 0); - Opal.defn(self, '$finite?', TMP_Infinity_finite$q_4 = function() { + Opal.def(self, '$finite?', $Infinity_finite$ques$3 = function() { var self = this; return false - }, TMP_Infinity_finite$q_4.$$arity = 0); + }, $Infinity_finite$ques$3.$$arity = 0); - Opal.defn(self, '$infinite?', TMP_Infinity_infinite$q_5 = function() { + Opal.def(self, '$infinite?', $Infinity_infinite$ques$4 = function() { var self = this; return self.$d()['$nonzero?']() - }, TMP_Infinity_infinite$q_5.$$arity = 0); + }, $Infinity_infinite$ques$4.$$arity = 0); - Opal.defn(self, '$nan?', TMP_Infinity_nan$q_6 = function() { + Opal.def(self, '$nan?', $Infinity_nan$ques$5 = function() { var self = this; return self.$d()['$zero?']() - }, TMP_Infinity_nan$q_6.$$arity = 0); + }, $Infinity_nan$ques$5.$$arity = 0); - Opal.defn(self, '$abs', TMP_Infinity_abs_7 = function $$abs() { + Opal.def(self, '$abs', $Infinity_abs$6 = function $$abs() { var self = this; return self.$class().$new() - }, TMP_Infinity_abs_7.$$arity = 0); + }, $Infinity_abs$6.$$arity = 0); - Opal.defn(self, '$-@', TMP_Infinity_$$_8 = function() { + Opal.def(self, '$-@', $Infinity_$minus$$7 = function() { var self = this; return self.$class().$new(self.$d()['$-@']()) - }, TMP_Infinity_$$_8.$$arity = 0); + }, $Infinity_$minus$$7.$$arity = 0); - Opal.defn(self, '$+@', TMP_Infinity_$$_9 = function() { + Opal.def(self, '$+@', $Infinity_$plus$$8 = function() { var self = this; return self.$class().$new(self.$d()['$+@']()) - }, TMP_Infinity_$$_9.$$arity = 0); + }, $Infinity_$plus$$8.$$arity = 0); - Opal.defn(self, '$<=>', TMP_Infinity_$lt$eq$gt_10 = function(other) { + Opal.def(self, '$<=>', $Infinity_$lt_eq_gt$9 = function(other) { var $a, $b, self = this, $case = nil, l = nil, r = nil; - - $case = other; - if (Opal.const_get_relative($nesting, 'Infinity')['$===']($case)) {return self.$d()['$<=>'](other.$d())} - else if (Opal.const_get_relative($nesting, 'Numeric')['$===']($case)) {return self.$d()} + return (function() {$case = other; + if ($$($nesting, 'Infinity')['$===']($case)) {return self.$d()['$<=>'](other.$d())} + else if ($$($nesting, 'Numeric')['$===']($case)) {return self.$d()} else { try { $b = other.$coerce(self), $a = Opal.to_ary($b), (l = ($a[0] == null ? nil : $a[0])), (r = ($a[1] == null ? nil : $a[1])), $b; return l['$<=>'](r); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NoMethodError')])) { + if (Opal.rescue($err, [$$($nesting, 'NoMethodError')])) { try { - nil - } finally { Opal.pop_exception() } + return nil + } finally { Opal.pop_exception(); } } else { throw $err; } - };}; - return nil; - }, TMP_Infinity_$lt$eq$gt_10.$$arity = 1); + };}})() + }, $Infinity_$lt_eq_gt$9.$$arity = 1); - Opal.defn(self, '$coerce', TMP_Infinity_coerce_11 = function $$coerce(other) { - var self = this, $iter = TMP_Infinity_coerce_11.$$p, $yield = $iter || nil, $case = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$coerce', $Infinity_coerce$10 = function $$coerce(other) { + var $iter = $Infinity_coerce$10.$$p, $yield = $iter || nil, self = this, $case = nil; - if ($iter) TMP_Infinity_coerce_11.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Infinity_coerce$10.$$p = null; return (function() {$case = other; - if (Opal.const_get_relative($nesting, 'Numeric')['$===']($case)) {return [self.$d()['$-@'](), self.$d()]} - else {return $send(self, Opal.find_super_dispatcher(self, 'coerce', TMP_Infinity_coerce_11, false), $zuper, $iter)}})() - }, TMP_Infinity_coerce_11.$$arity = 1); - return (Opal.defn(self, '$to_f', TMP_Infinity_to_f_12 = function $$to_f() { + if ($$($nesting, 'Numeric')['$===']($case)) {return [self.$d()['$-@'](), self.$d()]} + else {return $send2(self, $find_super(self, 'coerce', $Infinity_coerce$10, false, true), 'coerce', [other], $iter)}})() + }, $Infinity_coerce$10.$$arity = 1); + return (Opal.def(self, '$to_f', $Infinity_to_f$11 = function $$to_f() { var self = this; if (self.d['$=='](0)) { return 0}; if ($truthy($rb_gt(self.d, 0))) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY') - } else { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY')['$-@']() + return $$$($$($nesting, 'Float'), 'INFINITY') + } else { + return $$$($$($nesting, 'Float'), 'INFINITY')['$-@']() }; - }, TMP_Infinity_to_f_12.$$arity = 0), nil) && 'to_f'; - })($nesting[0], Opal.const_get_relative($nesting, 'Numeric'), $nesting); - Opal.const_set($nesting[0], 'JULIAN', Opal.const_get_relative($nesting, 'Infinity').$new()); - Opal.const_set($nesting[0], 'GREGORIAN', Opal.const_get_relative($nesting, 'Infinity').$new()['$-@']()); + }, $Infinity_to_f$11.$$arity = 0), nil) && 'to_f'; + })($nesting[0], $$($nesting, 'Numeric'), $nesting); + Opal.const_set($nesting[0], 'JULIAN', $$($nesting, 'Infinity').$new()); + Opal.const_set($nesting[0], 'GREGORIAN', $$($nesting, 'Infinity').$new()['$-@']()); Opal.const_set($nesting[0], 'ITALY', 2299161); Opal.const_set($nesting[0], 'ENGLAND', 2361222); Opal.const_set($nesting[0], 'MONTHNAMES', $rb_plus([nil], ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"])); @@ -2494,27 +2875,28 @@ Opal.modules["date"] = function(Opal) { Opal.const_set($nesting[0], 'DAYNAMES', ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]); Opal.const_set($nesting[0], 'ABBR_DAYNAMES', ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_wrap_13, TMP_parse_14, TMP_today_15, TMP_gregorian_leap$q_16; + var $nesting = [self].concat($parent_nesting), $wrap$12, $parse$13, $today$14, $gregorian_leap$ques$15; - Opal.alias(self, "civil", "new"); + $alias(self, "civil", "new"); - Opal.defn(self, '$wrap', TMP_wrap_13 = function $$wrap(native$) { + Opal.def(self, '$wrap', $wrap$12 = function $$wrap(native$) { var self = this, instance = nil; instance = self.$allocate(); instance.date = native$; return instance; - }, TMP_wrap_13.$$arity = 1); + }, $wrap$12.$$arity = 1); - Opal.defn(self, '$parse', TMP_parse_14 = function $$parse(string, comp) { + Opal.def(self, '$parse', $parse$13 = function $$parse(string, comp) { var self = this; + + if (comp == null) { comp = true; - } - + }; var current_date = new Date(); @@ -2522,7 +2904,7 @@ Opal.modules["date"] = function(Opal) { current_month = current_date.getMonth(), current_year = current_date.getFullYear(), current_wday = current_date.getDay(), - full_month_name_regexp = Opal.const_get_relative($nesting, 'MONTHNAMES').$compact().$join("|"); + full_month_name_regexp = $$($nesting, 'MONTHNAMES').$compact().$join("|"); function match1(match) { return match[1]; } function match2(match) { return match[2]; } @@ -2548,7 +2930,7 @@ Opal.modules["date"] = function(Opal) { function fromMonthAbbr(fn) { return function(match) { var abbr = fn(match).toLowerCase(); - return Opal.const_get_relative($nesting, 'ABBR_MONTHNAMES').indexOf(abbr) + 1; + return $$($nesting, 'ABBR_MONTHNAMES').indexOf(abbr) + 1; } } @@ -2575,7 +2957,7 @@ Opal.modules["date"] = function(Opal) { function fromDayName(fn) { return function(match) { var dayname = fn(match), - wday = $send(Opal.const_get_relative($nesting, 'DAYNAMES'), 'map', [], "downcase".$to_proc()).indexOf((dayname).$downcase()); + wday = $send($$($nesting, 'DAYNAMES'), 'map', [], "downcase".$to_proc()).indexOf((dayname).$downcase()); return current_day - current_wday + wday; } @@ -2585,7 +2967,7 @@ Opal.modules["date"] = function(Opal) { function fromFullMonthName(fn) { return function(match) { var month_name = fn(match); - return $send(Opal.const_get_relative($nesting, 'MONTHNAMES').$compact(), 'map', [], "downcase".$to_proc()).indexOf((month_name).$downcase()) + 1; + return $send($$($nesting, 'MONTHNAMES').$compact(), 'map', [], "downcase".$to_proc()).indexOf((month_name).$downcase()) + 1; } } @@ -2690,7 +3072,7 @@ Opal.modules["date"] = function(Opal) { }, { // ddd - regexp: new RegExp("^(" + Opal.const_get_relative($nesting, 'DAYNAMES').$join("|") + ")$", 'i'), + regexp: new RegExp("^(" + $$($nesting, 'DAYNAMES').$join("|") + ")$", 'i'), year: current_year, month: current_month, day: fromDayName(match1) @@ -2757,40 +3139,52 @@ Opal.modules["date"] = function(Opal) { } } ; - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "invalid date"); - }, TMP_parse_14.$$arity = -2); + return self.$raise($$($nesting, 'ArgumentError'), "invalid date"); + }, $parse$13.$$arity = -2); - Opal.defn(self, '$today', TMP_today_15 = function $$today() { + Opal.def(self, '$today', $today$14 = function $$today() { var self = this; return self.$wrap(new Date()) - }, TMP_today_15.$$arity = 0); - return (Opal.defn(self, '$gregorian_leap?', TMP_gregorian_leap$q_16 = function(year) { + }, $today$14.$$arity = 0); + return (Opal.def(self, '$gregorian_leap?', $gregorian_leap$ques$15 = function(year) { var self = this; return (new Date(year, 1, 29).getMonth()-1) === 0 - }, TMP_gregorian_leap$q_16.$$arity = 1), nil) && 'gregorian_leap?'; + }, $gregorian_leap$ques$15.$$arity = 1), nil) && 'gregorian_leap?'; })(Opal.get_singleton_class(self), $nesting); - Opal.defn(self, '$initialize', TMP_Date_initialize_17 = function $$initialize(year, month, day, start) { + Opal.def(self, '$initialize', $Date_initialize$16 = function $$initialize(year, month, day, start) { var self = this; + + if (year == null) { year = -4712; - } + }; + if (month == null) { month = 1; - } + }; + if (day == null) { day = 1; - } + }; + if (start == null) { - start = Opal.const_get_relative($nesting, 'ITALY'); + start = $$($nesting, 'ITALY'); + }; + + // Because of Gregorian reform calendar goes from 1582-10-04 to 1582-10-15. + // All days in between end up as 4 october. + if (year === 1582 && month === 10 && day > 4 && day < 15) { + day = 4; } - return (self.date = new Date(year, month - 1, day)) - }, TMP_Date_initialize_17.$$arity = -1); + ; + return (self.date = new Date(year, month - 1, day)); + }, $Date_initialize$16.$$arity = -1); - Opal.defn(self, '$-', TMP_Date_$_18 = function(date) { + Opal.def(self, '$-', $Date_$minus$17 = function(date) { var self = this; @@ -2803,12 +3197,12 @@ Opal.modules["date"] = function(Opal) { return Math.round((self.date - date.date) / (1000 * 60 * 60 * 24)); } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError')); + self.$raise($$($nesting, 'TypeError')); } - }, TMP_Date_$_18.$$arity = 1); + }, $Date_$minus$17.$$arity = 1); - Opal.defn(self, '$+', TMP_Date_$_19 = function(date) { + Opal.def(self, '$+', $Date_$plus$18 = function(date) { var self = this; @@ -2818,12 +3212,12 @@ Opal.modules["date"] = function(Opal) { return result; } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError')); + self.$raise($$($nesting, 'TypeError')); } - }, TMP_Date_$_19.$$arity = 1); + }, $Date_$plus$18.$$arity = 1); - Opal.defn(self, '$<', TMP_Date_$lt_20 = function(other) { + Opal.def(self, '$<', $Date_$lt$19 = function(other) { var self = this; @@ -2832,9 +3226,9 @@ Opal.modules["date"] = function(Opal) { b.setHours(0, 0, 0, 0); return a < b; - }, TMP_Date_$lt_20.$$arity = 1); + }, $Date_$lt$19.$$arity = 1); - Opal.defn(self, '$<=', TMP_Date_$lt$eq_21 = function(other) { + Opal.def(self, '$<=', $Date_$lt_eq$20 = function(other) { var self = this; @@ -2843,9 +3237,9 @@ Opal.modules["date"] = function(Opal) { b.setHours(0, 0, 0, 0); return a <= b; - }, TMP_Date_$lt$eq_21.$$arity = 1); + }, $Date_$lt_eq$20.$$arity = 1); - Opal.defn(self, '$>', TMP_Date_$gt_22 = function(other) { + Opal.def(self, '$>', $Date_$gt$21 = function(other) { var self = this; @@ -2854,9 +3248,9 @@ Opal.modules["date"] = function(Opal) { b.setHours(0, 0, 0, 0); return a > b; - }, TMP_Date_$gt_22.$$arity = 1); + }, $Date_$gt$21.$$arity = 1); - Opal.defn(self, '$>=', TMP_Date_$gt$eq_23 = function(other) { + Opal.def(self, '$>=', $Date_$gt_eq$22 = function(other) { var self = this; @@ -2865,9 +3259,9 @@ Opal.modules["date"] = function(Opal) { b.setHours(0, 0, 0, 0); return a >= b; - }, TMP_Date_$gt$eq_23.$$arity = 1); + }, $Date_$gt_eq$22.$$arity = 1); - Opal.defn(self, '$<=>', TMP_Date_$lt$eq$gt_24 = function(other) { + Opal.def(self, '$<=>', $Date_$lt_eq_gt$23 = function(other) { var self = this; @@ -2875,7 +3269,7 @@ Opal.modules["date"] = function(Opal) { return self.$jd()['$<=>'](other) } - if (Opal.const_get_relative($nesting, 'Date')['$==='](other)) { + if ($$($nesting, 'Date')['$==='](other)) { var a = self.date, b = other.date; a.setHours(0, 0, 0, 0); b.setHours(0, 0, 0, 0); @@ -2893,14 +3287,14 @@ Opal.modules["date"] = function(Opal) { return nil; } - }, TMP_Date_$lt$eq$gt_24.$$arity = 1); + }, $Date_$lt_eq_gt$23.$$arity = 1); - Opal.defn(self, '$>>', TMP_Date_$gt$gt_25 = function(n) { + Opal.def(self, '$>>', $Date_$gt$gt$24 = function(n) { var self = this; if (!n.$$is_number) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError')); + self.$raise($$($nesting, 'TypeError')); } var result = self.$clone(), date = result.date, cur = date.getDate(); @@ -2909,40 +3303,40 @@ Opal.modules["date"] = function(Opal) { date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth()))); return result; - }, TMP_Date_$gt$gt_25.$$arity = 1); + }, $Date_$gt$gt$24.$$arity = 1); - Opal.defn(self, '$<<', TMP_Date_$lt$lt_26 = function(n) { + Opal.def(self, '$<<', $Date_$lt$lt$25 = function(n) { var self = this; if (!n.$$is_number) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError')); + self.$raise($$($nesting, 'TypeError')); } return self['$>>'](-n); - }, TMP_Date_$lt$lt_26.$$arity = 1); - Opal.alias(self, "eql?", "=="); + }, $Date_$lt$lt$25.$$arity = 1); + $alias(self, "eql?", "=="); - Opal.defn(self, '$clone', TMP_Date_clone_27 = function $$clone() { + Opal.def(self, '$clone', $Date_clone$26 = function $$clone() { var self = this; - return Opal.const_get_relative($nesting, 'Date').$wrap(new Date(self.date.getTime())) - }, TMP_Date_clone_27.$$arity = 0); + return $$($nesting, 'Date').$wrap(new Date(self.date.getTime())) + }, $Date_clone$26.$$arity = 0); - Opal.defn(self, '$day', TMP_Date_day_28 = function $$day() { + Opal.def(self, '$day', $Date_day$27 = function $$day() { var self = this; return self.date.getDate() - }, TMP_Date_day_28.$$arity = 0); + }, $Date_day$27.$$arity = 0); - Opal.defn(self, '$friday?', TMP_Date_friday$q_29 = function() { + Opal.def(self, '$friday?', $Date_friday$ques$28 = function() { var self = this; return self.$wday()['$=='](5) - }, TMP_Date_friday$q_29.$$arity = 0); + }, $Date_friday$ques$28.$$arity = 0); - Opal.defn(self, '$jd', TMP_Date_jd_30 = function $$jd() { + Opal.def(self, '$jd', $Date_jd$29 = function $$jd() { var self = this; @@ -2978,109 +3372,147 @@ Opal.modules["date"] = function(Opal) { return jd; - }, TMP_Date_jd_30.$$arity = 0); + }, $Date_jd$29.$$arity = 0); - Opal.defn(self, '$julian?', TMP_Date_julian$q_31 = function() { + Opal.def(self, '$julian?', $Date_julian$ques$30 = function() { var self = this; return self.date < new Date(1582, 10 - 1, 15, 12) - }, TMP_Date_julian$q_31.$$arity = 0); + }, $Date_julian$ques$30.$$arity = 0); - Opal.defn(self, '$monday?', TMP_Date_monday$q_32 = function() { + Opal.def(self, '$monday?', $Date_monday$ques$31 = function() { var self = this; return self.$wday()['$=='](1) - }, TMP_Date_monday$q_32.$$arity = 0); + }, $Date_monday$ques$31.$$arity = 0); - Opal.defn(self, '$month', TMP_Date_month_33 = function $$month() { + Opal.def(self, '$month', $Date_month$32 = function $$month() { var self = this; return self.date.getMonth() + 1 - }, TMP_Date_month_33.$$arity = 0); + }, $Date_month$32.$$arity = 0); - Opal.defn(self, '$next', TMP_Date_next_34 = function $$next() { + Opal.def(self, '$next', $Date_next$33 = function $$next() { var self = this; return $rb_plus(self, 1) - }, TMP_Date_next_34.$$arity = 0); + }, $Date_next$33.$$arity = 0); - Opal.defn(self, '$next_day', TMP_Date_next_day_35 = function $$next_day(n) { + Opal.def(self, '$next_day', $Date_next_day$34 = function $$next_day(n) { var self = this; + + if (n == null) { n = 1; - } - return $rb_plus(self, n) - }, TMP_Date_next_day_35.$$arity = -1); + }; + return $rb_plus(self, n); + }, $Date_next_day$34.$$arity = -1); - Opal.defn(self, '$next_month', TMP_Date_next_month_36 = function $$next_month() { + Opal.def(self, '$next_month', $Date_next_month$35 = function $$next_month(n) { var self = this; + + if (n == null) { + n = 1; + }; + var result = self.$clone(), date = result.date, cur = date.getDate(); date.setDate(1); - date.setMonth(date.getMonth() + 1); + date.setMonth(date.getMonth() + n); date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth()))); return result; + ; + }, $Date_next_month$35.$$arity = -1); - }, TMP_Date_next_month_36.$$arity = 0); + Opal.def(self, '$next_year', $Date_next_year$36 = function $$next_year(years) { + var self = this; + + + + if (years == null) { + years = 1; + }; + return self.$class().$new($rb_plus(self.$year(), years), self.$month(), self.$day()); + }, $Date_next_year$36.$$arity = -1); - Opal.defn(self, '$prev_day', TMP_Date_prev_day_37 = function $$prev_day(n) { + Opal.def(self, '$prev_day', $Date_prev_day$37 = function $$prev_day(n) { var self = this; + + if (n == null) { n = 1; - } - return $rb_minus(self, n) - }, TMP_Date_prev_day_37.$$arity = -1); + }; + return $rb_minus(self, n); + }, $Date_prev_day$37.$$arity = -1); - Opal.defn(self, '$prev_month', TMP_Date_prev_month_38 = function $$prev_month() { + Opal.def(self, '$prev_month', $Date_prev_month$38 = function $$prev_month(n) { var self = this; + + if (n == null) { + n = 1; + }; + var result = self.$clone(), date = result.date, cur = date.getDate(); date.setDate(1); - date.setMonth(date.getMonth() - 1); + date.setMonth(date.getMonth() - n); date.setDate(Math.min(cur, days_in_month(date.getFullYear(), date.getMonth()))); return result; + ; + }, $Date_prev_month$38.$$arity = -1); - }, TMP_Date_prev_month_38.$$arity = 0); + Opal.def(self, '$prev_year', $Date_prev_year$39 = function $$prev_year(years) { + var self = this; + + + + if (years == null) { + years = 1; + }; + return self.$class().$new($rb_minus(self.$year(), years), self.$month(), self.$day()); + }, $Date_prev_year$39.$$arity = -1); - Opal.defn(self, '$saturday?', TMP_Date_saturday$q_39 = function() { + Opal.def(self, '$saturday?', $Date_saturday$ques$40 = function() { var self = this; return self.$wday()['$=='](6) - }, TMP_Date_saturday$q_39.$$arity = 0); + }, $Date_saturday$ques$40.$$arity = 0); - Opal.defn(self, '$strftime', TMP_Date_strftime_40 = function $$strftime(format) { + Opal.def(self, '$strftime', $Date_strftime$41 = function $$strftime(format) { var self = this; + + if (format == null) { format = ""; - } + }; if (format == '') { return self.$to_s(); } return self.date.$strftime(format); + ; + }, $Date_strftime$41.$$arity = -1); + $alias(self, "succ", "next"); - }, TMP_Date_strftime_40.$$arity = -1); - self.$alias_method("succ", "next"); - - Opal.defn(self, '$sunday?', TMP_Date_sunday$q_41 = function() { + Opal.def(self, '$sunday?', $Date_sunday$ques$42 = function() { var self = this; return self.$wday()['$=='](0) - }, TMP_Date_sunday$q_41.$$arity = 0); + }, $Date_sunday$ques$42.$$arity = 0); - Opal.defn(self, '$thursday?', TMP_Date_thursday$q_42 = function() { + Opal.def(self, '$thursday?', $Date_thursday$ques$43 = function() { var self = this; return self.$wday()['$=='](4) - }, TMP_Date_thursday$q_42.$$arity = 0); + }, $Date_thursday$ques$43.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Date_to_s_43 = function $$to_s() { + Opal.def(self, '$to_s', $Date_to_s$44 = function $$to_s() { var self = this; @@ -3089,85 +3521,114 @@ Opal.modules["date"] = function(Opal) { if (day < 10) { day = '0' + day; } return year + '-' + month + '-' + day; - }, TMP_Date_to_s_43.$$arity = 0); + }, $Date_to_s$44.$$arity = 0); + + Opal.def(self, '$to_time', $Date_to_time$45 = function $$to_time() { + var self = this; + + return $$($nesting, 'Time').$new(self.$year(), self.$month(), self.$day()) + }, $Date_to_time$45.$$arity = 0); + + Opal.def(self, '$to_n', $Date_to_n$46 = function $$to_n() { + var self = this; + + return self.date + }, $Date_to_n$46.$$arity = 0); - Opal.defn(self, '$tuesday?', TMP_Date_tuesday$q_44 = function() { + Opal.def(self, '$tuesday?', $Date_tuesday$ques$47 = function() { var self = this; return self.$wday()['$=='](2) - }, TMP_Date_tuesday$q_44.$$arity = 0); + }, $Date_tuesday$ques$47.$$arity = 0); - Opal.defn(self, '$step', TMP_Date_step_45 = function $$step(limit, step) { - var TMP_46, TMP_47, TMP_48, self = this, $iter = TMP_Date_step_45.$$p, block = $iter || nil, steps_count = nil, steps = nil, result = nil; + Opal.def(self, '$step', $Date_step$48 = function $$step(limit, step) { + var $iter = $Date_step$48.$$p, block = $iter || nil, $$49, $$50, self = this, steps_count = nil, steps = nil, result = nil; + if ($iter) $Date_step$48.$$p = null; + + + if ($iter) $Date_step$48.$$p = null;; + if (step == null) { step = 1; - } - if ($iter) TMP_Date_step_45.$$p = null; - + }; steps_count = $rb_minus(limit, self).$to_i(); - if ($truthy($rb_lt($rb_times(steps_count, step), 0))) { - steps = [] + steps = (function() {if ($truthy($rb_lt($rb_times(steps_count, step), 0))) { + return [] } else if ($truthy($rb_lt(steps_count, 0))) { - steps = $send(Opal.Range.$new(0, steps_count['$-@'](), false).$step(step.$abs()), 'map', [], (TMP_46 = function(i){var self = TMP_46.$$s || this; -if (i == null) i = nil; - return i['$-@']()}, TMP_46.$$s = self, TMP_46.$$arity = 1, TMP_46)).$reverse() - } else { - steps = Opal.Range.$new(0, steps_count, false).$step(step.$abs()) - }; - result = $send(steps, 'map', [], (TMP_47 = function(i){var self = TMP_47.$$s || this; -if (i == null) i = nil; - return $rb_plus(self, i)}, TMP_47.$$s = self, TMP_47.$$arity = 1, TMP_47)); + return $send(Opal.Range.$new(0, steps_count['$-@'](), false).$step(step.$abs()), 'map', [], "-@".$to_proc()).$reverse() + } else { + return Opal.Range.$new(0, steps_count, false).$step(step.$abs()) + }; return nil; })(); + result = $send(steps, 'map', [], ($$49 = function(i){var self = $$49.$$s == null ? this : $$49.$$s; + + + + if (i == null) { + i = nil; + }; + return $rb_plus(self, i);}, $$49.$$s = self, $$49.$$arity = 1, $$49)); if ((block !== nil)) { - $send(result, 'each', [], (TMP_48 = function(i){var self = TMP_48.$$s || this; -if (i == null) i = nil; - return Opal.yield1(block, i);}, TMP_48.$$s = self, TMP_48.$$arity = 1, TMP_48)); + $send(result, 'each', [], ($$50 = function(i){var self = $$50.$$s == null ? this : $$50.$$s; + + + + if (i == null) { + i = nil; + }; + return Opal.yield1(block, i);;}, $$50.$$s = self, $$50.$$arity = 1, $$50)); return self; - } else { + } else { return result }; - }, TMP_Date_step_45.$$arity = -2); + }, $Date_step$48.$$arity = -2); - Opal.defn(self, '$upto', TMP_Date_upto_49 = function $$upto(max) { - var self = this, $iter = TMP_Date_upto_49.$$p, block = $iter || nil; + Opal.def(self, '$upto', $Date_upto$51 = function $$upto(max) { + var $iter = $Date_upto$51.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Date_upto_49.$$p = null; - return $send(self, 'step', [max, 1], block.$to_proc()) - }, TMP_Date_upto_49.$$arity = 1); + if ($iter) $Date_upto$51.$$p = null; + + + if ($iter) $Date_upto$51.$$p = null;; + return $send(self, 'step', [max, 1], block.$to_proc()); + }, $Date_upto$51.$$arity = 1); - Opal.defn(self, '$downto', TMP_Date_downto_50 = function $$downto(min) { - var self = this, $iter = TMP_Date_downto_50.$$p, block = $iter || nil; + Opal.def(self, '$downto', $Date_downto$52 = function $$downto(min) { + var $iter = $Date_downto$52.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Date_downto_50.$$p = null; - return $send(self, 'step', [min, -1], block.$to_proc()) - }, TMP_Date_downto_50.$$arity = 1); + if ($iter) $Date_downto$52.$$p = null; + + + if ($iter) $Date_downto$52.$$p = null;; + return $send(self, 'step', [min, -1], block.$to_proc()); + }, $Date_downto$52.$$arity = 1); - Opal.defn(self, '$wday', TMP_Date_wday_51 = function $$wday() { + Opal.def(self, '$wday', $Date_wday$53 = function $$wday() { var self = this; return self.date.getDay() - }, TMP_Date_wday_51.$$arity = 0); + }, $Date_wday$53.$$arity = 0); - Opal.defn(self, '$wednesday?', TMP_Date_wednesday$q_52 = function() { + Opal.def(self, '$wednesday?', $Date_wednesday$ques$54 = function() { var self = this; return self.$wday()['$=='](3) - }, TMP_Date_wednesday$q_52.$$arity = 0); + }, $Date_wednesday$ques$54.$$arity = 0); - Opal.defn(self, '$year', TMP_Date_year_53 = function $$year() { + Opal.def(self, '$year', $Date_year$55 = function $$year() { var self = this; return self.date.getFullYear() - }, TMP_Date_year_53.$$arity = 0); + }, $Date_year$55.$$arity = 0); - Opal.defn(self, '$cwday', TMP_Date_cwday_54 = function $$cwday() { + Opal.def(self, '$cwday', $Date_cwday$56 = function $$cwday() { var self = this; - return self.date.getDay() || 7; - }, TMP_Date_cwday_54.$$arity = 0); + return self.date.getDay() || 7 + }, $Date_cwday$56.$$arity = 0); - Opal.defn(self, '$cweek', TMP_Date_cweek_55 = function $$cweek() { + Opal.def(self, '$cweek', $Date_cweek$57 = function $$cweek() { var self = this; @@ -3176,7 +3637,7 @@ if (i == null) i = nil; d.setDate(d.getDate()+4-(d.getDay()||7)); return Math.ceil((((d-new Date(d.getFullYear(),0,1))/8.64e7)+1)/7); - }, TMP_Date_cweek_55.$$arity = 0); + }, $Date_cweek$57.$$arity = 0); function days_in_month(year, month) { var leap = ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0); @@ -3186,25 +3647,24 @@ if (i == null) i = nil; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["native"] = function(Opal) { +Opal.modules["native"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $hash2 = Opal.hash2, $klass = Opal.klass, $gvars = Opal.gvars; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $range = Opal.range, $alias = Opal.alias, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $gvars = Opal.gvars; - Opal.add_stubs(['$try_convert', '$native?', '$respond_to?', '$to_n', '$raise', '$inspect', '$Native', '$proc', '$map!', '$end_with?', '$define_method', '$[]', '$convert', '$call', '$to_proc', '$new', '$each', '$native_reader', '$native_writer', '$extend', '$is_a?', '$map', '$alias_method', '$to_a', '$_Array', '$include', '$method_missing', '$bind', '$instance_method', '$slice', '$-', '$length', '$[]=', '$enum_for', '$===', '$>=', '$<<', '$each_pair', '$_initialize', '$name', '$exiting_mid', '$native_module']); + Opal.add_stubs(['$try_convert', '$native?', '$respond_to?', '$to_n', '$raise', '$inspect', '$Native', '$proc', '$map!', '$end_with?', '$define_method', '$[]', '$convert', '$call', '$to_proc', '$new', '$each', '$native_reader', '$native_writer', '$extend', '$warn', '$include', '$is_a?', '$map', '$to_a', '$_Array', '$method_missing', '$bind', '$instance_method', '$slice', '$-', '$length', '$[]=', '$enum_for', '$===', '$>=', '$<<', '$each_pair', '$method_defined?', '$_initialize', '$name', '$native_module']); (function($base, $parent_nesting) { - var $Native, self = $Native = $module($base, 'Native'); + var self = $module($base, 'Native'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Native_is_a$q_1, TMP_Native_try_convert_2, TMP_Native_convert_3, TMP_Native_call_4, TMP_Native_proc_5, TMP_Native_included_19, TMP_Native_initialize_20, TMP_Native_to_n_21; + var $nesting = [self].concat($parent_nesting), $Native_is_a$ques$1, $Native_try_convert$2, $Native_convert$3, $Native_call$4, $Native_proc$5, $Native_included$22; - Opal.defs(self, '$is_a?', TMP_Native_is_a$q_1 = function(object, klass) { + Opal.defs(self, '$is_a?', $Native_is_a$ques$1 = function(object, klass) { var self = this; @@ -3215,13 +3675,15 @@ Opal.modules["native"] = function(Opal) { return false; } - }, TMP_Native_is_a$q_1.$$arity = 2); - Opal.defs(self, '$try_convert', TMP_Native_try_convert_2 = function $$try_convert(value, default$) { + }, $Native_is_a$ques$1.$$arity = 2); + Opal.defs(self, '$try_convert', $Native_try_convert$2 = function $$try_convert(value, default$) { var self = this; + + if (default$ == null) { default$ = nil; - } + }; if (self['$native?'](value)) { return value; @@ -3232,9 +3694,9 @@ Opal.modules["native"] = function(Opal) { else { return default$; } - - }, TMP_Native_try_convert_2.$$arity = -2); - Opal.defs(self, '$convert', TMP_Native_convert_3 = function $$convert(value) { + ; + }, $Native_try_convert$2.$$arity = -2); + Opal.defs(self, '$convert', $Native_convert$3 = function $$convert(value) { var self = this; @@ -3245,20 +3707,21 @@ Opal.modules["native"] = function(Opal) { return value.$to_n(); } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + (value.$inspect()) + " isn't native"); + self.$raise($$($nesting, 'ArgumentError'), "" + (value.$inspect()) + " isn't native"); } - }, TMP_Native_convert_3.$$arity = 1); - Opal.defs(self, '$call', TMP_Native_call_4 = function $$call(obj, key, $a_rest) { - var self = this, args, $iter = TMP_Native_call_4.$$p, block = $iter || nil; + }, $Native_convert$3.$$arity = 1); + Opal.defs(self, '$call', $Native_call$4 = function $$call(obj, key, $a) { + var $iter = $Native_call$4.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 2; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 2; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 2] = arguments[$arg_idx]; - } - if ($iter) TMP_Native_call_4.$$p = null; + if ($iter) $Native_call$4.$$p = null; + + + if ($iter) $Native_call$4.$$p = null;; + + $post_args = Opal.slice.call(arguments, 2, arguments.length); + + args = $post_args;; var prop = obj[key]; @@ -3281,29 +3744,34 @@ Opal.modules["native"] = function(Opal) { else { return self.$Native(prop); } - - }, TMP_Native_call_4.$$arity = -3); - Opal.defs(self, '$proc', TMP_Native_proc_5 = function $$proc() { - var TMP_6, self = this, $iter = TMP_Native_proc_5.$$p, block = $iter || nil; + ; + }, $Native_call$4.$$arity = -3); + Opal.defs(self, '$proc', $Native_proc$5 = function $$proc() { + var $iter = $Native_proc$5.$$p, block = $iter || nil, $$6, self = this; - if ($iter) TMP_Native_proc_5.$$p = null; + if ($iter) $Native_proc$5.$$p = null; + + if ($iter) $Native_proc$5.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'LocalJumpError'), "no block given") + } else { + self.$raise($$($nesting, 'LocalJumpError'), "no block given") }; - return $send(Opal.const_get_qualified('::', 'Kernel'), 'proc', [], (TMP_6 = function($a_rest){var self = TMP_6.$$s || this, args, TMP_7, instance = nil; + return $send($$$('::', 'Kernel'), 'proc', [], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $post_args, args, $$7, instance = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - $send(args, 'map!', [], (TMP_7 = function(arg){var self = TMP_7.$$s || this; -if (arg == null) arg = nil; - return self.$Native(arg)}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + $send(args, 'map!', [], ($$7 = function(arg){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (arg == null) { + arg = nil; + }; + return self.$Native(arg);}, $$7.$$s = self, $$7.$$arity = 1, $$7)); instance = self.$Native(this); // if global is current scope, run the block in the scope it was defined @@ -3320,242 +3788,277 @@ if (arg == null) arg = nil; finally { block.$$s = self_; } - ;}, TMP_6.$$s = self, TMP_6.$$arity = -1, TMP_6)); - }, TMP_Native_proc_5.$$arity = 0); + ;}, $$6.$$s = self, $$6.$$arity = -1, $$6)); + }, $Native_proc$5.$$arity = 0); (function($base, $parent_nesting) { - var $Helpers, self = $Helpers = $module($base, 'Helpers'); + var self = $module($base, 'Helpers'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Helpers_alias_native_11, TMP_Helpers_native_reader_14, TMP_Helpers_native_writer_17, TMP_Helpers_native_accessor_18; + var $nesting = [self].concat($parent_nesting), $Helpers_alias_native$8, $Helpers_native_reader$12, $Helpers_native_writer$15, $Helpers_native_accessor$18; - Opal.defn(self, '$alias_native', TMP_Helpers_alias_native_11 = function $$alias_native(new$, $old, $kwargs) { - var TMP_8, TMP_9, TMP_10, self = this, $post_args, as, old; + Opal.def(self, '$alias_native', $Helpers_alias_native$8 = function $$alias_native(new$, $a, $b) { + var $post_args, $kwargs, old, as, $$9, $$10, $$11, $iter = $Helpers_alias_native$8.$$p, $yield = $iter || nil, self = this; + if ($iter) $Helpers_alias_native$8.$$p = null; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + $kwargs = Opal.extract_kwargs($post_args); - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) { + old = $post_args[0]; + $post_args.splice(0, 1); } + if (old == null) { + old = new$; + }; + as = $kwargs.$$smap["as"]; if (as == null) { as = nil - } - if (0 < $post_args.length) { - old = $post_args.splice(0,1)[0]; - } - if (old == null) { - old = new$; - } + }; if ($truthy(old['$end_with?']("="))) { - return $send(self, 'define_method', [new$], (TMP_8 = function(value){var self = TMP_8.$$s || this; + return $send(self, 'define_method', [new$], ($$9 = function(value){var self = $$9.$$s == null ? this : $$9.$$s; if (self["native"] == null) self["native"] = nil; -if (value == null) value = nil; - - self["native"][old['$[]']($range(0, -2, false))] = Opal.const_get_relative($nesting, 'Native').$convert(value); - return value;}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)) + + + + if (value == null) { + value = nil; + }; + self["native"][old['$[]']($range(0, -2, false))] = $$($nesting, 'Native').$convert(value); + return value;}, $$9.$$s = self, $$9.$$arity = 1, $$9)) } else if ($truthy(as)) { - return $send(self, 'define_method', [new$], (TMP_9 = function($a_rest){var self = TMP_9.$$s || this, block, args, value = nil; + return $send(self, 'define_method', [new$], ($$10 = function($c){var self = $$10.$$s == null ? this : $$10.$$s, $iter = $$10.$$p, block = $iter || nil, $post_args, args, value = nil; if (self["native"] == null) self["native"] = nil; - block = TMP_9.$$p || nil; - if (block) TMP_9.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy((value = $send(Opal.const_get_relative($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc())))) { + + + if ($iter) $$10.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + value = $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc()); + if ($truthy(value)) { return as.$new(value.$to_n()) - } else { + } else { return nil - }}, TMP_9.$$s = self, TMP_9.$$arity = -1, TMP_9)) - } else { - return $send(self, 'define_method', [new$], (TMP_10 = function($a_rest){var self = TMP_10.$$s || this, block, args; + };}, $$10.$$s = self, $$10.$$arity = -1, $$10)) + } else { + return $send(self, 'define_method', [new$], ($$11 = function($c){var self = $$11.$$s == null ? this : $$11.$$s, $iter = $$11.$$p, block = $iter || nil, $post_args, args; if (self["native"] == null) self["native"] = nil; - block = TMP_10.$$p || nil; - if (block) TMP_10.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc())}, TMP_10.$$s = self, TMP_10.$$arity = -1, TMP_10)) - } - }, TMP_Helpers_alias_native_11.$$arity = -2); + + + if ($iter) $$11.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'Native'), 'call', [self["native"], old].concat(Opal.to_a(args)), block.$to_proc());}, $$11.$$s = self, $$11.$$arity = -1, $$11)) + }; + }, $Helpers_alias_native$8.$$arity = -2); - Opal.defn(self, '$native_reader', TMP_Helpers_native_reader_14 = function $$native_reader($a_rest) { - var TMP_12, self = this, names; + Opal.def(self, '$native_reader', $Helpers_native_reader$12 = function $$native_reader($a) { + var $post_args, names, $$13, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(names, 'each', [], (TMP_12 = function(name){var self = TMP_12.$$s || this, TMP_13; -if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_13 = function(){var self = TMP_13.$$s || this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; + return $send(names, 'each', [], ($$13 = function(name){var self = $$13.$$s == null ? this : $$13.$$s, $$14; + + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s; if (self["native"] == null) self["native"] = nil; - return self.$Native(self["native"][name])}, TMP_13.$$s = self, TMP_13.$$arity = 0, TMP_13))}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)) - }, TMP_Helpers_native_reader_14.$$arity = -1); + return self.$Native(self["native"][name])}, $$14.$$s = self, $$14.$$arity = 0, $$14));}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + }, $Helpers_native_reader$12.$$arity = -1); - Opal.defn(self, '$native_writer', TMP_Helpers_native_writer_17 = function $$native_writer($a_rest) { - var TMP_15, self = this, names; + Opal.def(self, '$native_writer', $Helpers_native_writer$15 = function $$native_writer($a) { + var $post_args, names, $$16, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(names, 'each', [], (TMP_15 = function(name){var self = TMP_15.$$s || this, TMP_16; -if (name == null) name = nil; - return $send(self, 'define_method', ["" + (name) + "="], (TMP_16 = function(value){var self = TMP_16.$$s || this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; + return $send(names, 'each', [], ($$16 = function(name){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', ["" + (name) + "="], ($$17 = function(value){var self = $$17.$$s == null ? this : $$17.$$s; if (self["native"] == null) self["native"] = nil; -if (value == null) value = nil; - return self.$Native(self["native"][name] = value)}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16))}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)) - }, TMP_Helpers_native_writer_17.$$arity = -1); - - Opal.defn(self, '$native_accessor', TMP_Helpers_native_accessor_18 = function $$native_accessor($a_rest) { - var self = this, names; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } + + + + if (value == null) { + value = nil; + }; + return self.$Native(self["native"][name] = value);}, $$17.$$s = self, $$17.$$arity = 1, $$17));}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + }, $Helpers_native_writer$15.$$arity = -1); + return (Opal.def(self, '$native_accessor', $Helpers_native_accessor$18 = function $$native_accessor($a) { + var $post_args, names, self = this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; $send(self, 'native_reader', Opal.to_a(names)); return $send(self, 'native_writer', Opal.to_a(names)); - }, TMP_Helpers_native_accessor_18.$$arity = -1); + }, $Helpers_native_accessor$18.$$arity = -1), nil) && 'native_accessor'; })($nesting[0], $nesting); - Opal.defs(self, '$included', TMP_Native_included_19 = function $$included(klass) { - var self = this; + (function($base, $parent_nesting) { + var self = $module($base, 'Wrapper'); - return klass.$extend(Opal.const_get_relative($nesting, 'Helpers')) - }, TMP_Native_included_19.$$arity = 1); - - Opal.defn(self, '$initialize', TMP_Native_initialize_20 = function $$initialize(native$) { - var self = this; + var $nesting = [self].concat($parent_nesting), $Wrapper_initialize$19, $Wrapper_to_n$20, $Wrapper_included$21; - if ($truthy(Opal.const_get_qualified('::', 'Kernel')['$native?'](native$))) { + + Opal.def(self, '$initialize', $Wrapper_initialize$19 = function $$initialize(native$) { + var self = this; + + + if ($truthy($$$('::', 'Kernel')['$native?'](native$))) { } else { - Opal.const_get_qualified('::', 'Kernel').$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + (native$.$inspect()) + " isn't native") - }; - return (self["native"] = native$); - }, TMP_Native_initialize_20.$$arity = 1); - - Opal.defn(self, '$to_n', TMP_Native_to_n_21 = function $$to_n() { + $$$('::', 'Kernel').$raise($$($nesting, 'ArgumentError'), "" + (native$.$inspect()) + " isn't native") + }; + return (self["native"] = native$); + }, $Wrapper_initialize$19.$$arity = 1); + + Opal.def(self, '$to_n', $Wrapper_to_n$20 = function $$to_n() { + var self = this; + if (self["native"] == null) self["native"] = nil; + + return self["native"] + }, $Wrapper_to_n$20.$$arity = 0); + return (Opal.defs(self, '$included', $Wrapper_included$21 = function $$included(klass) { + var self = this; + + return klass.$extend($$($nesting, 'Helpers')) + }, $Wrapper_included$21.$$arity = 1), nil) && 'included'; + })($nesting[0], $nesting); + return (Opal.defs(self, '$included', $Native_included$22 = function $$included(base) { var self = this; - if (self["native"] == null) self["native"] = nil; - return self["native"] - }, TMP_Native_to_n_21.$$arity = 0); + + self.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."); + return base.$include($$($nesting, 'Wrapper')); + }, $Native_included$22.$$arity = 1), nil) && 'included'; })($nesting[0], $nesting); (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_native$q_22, TMP_Kernel_Native_25, TMP_Kernel_Array_26; + var $nesting = [self].concat($parent_nesting), $Kernel_native$ques$23, $Kernel_Native$24, $Kernel_Array$27; - Opal.defn(self, '$native?', TMP_Kernel_native$q_22 = function(value) { + Opal.def(self, '$native?', $Kernel_native$ques$23 = function(value) { var self = this; - return value == null || !value.$$class - }, TMP_Kernel_native$q_22.$$arity = 1); + return value == null || !value.$$class; + }, $Kernel_native$ques$23.$$arity = 1); - Opal.defn(self, '$Native', TMP_Kernel_Native_25 = function $$Native(obj) { - var TMP_23, TMP_24, self = this; + Opal.def(self, '$Native', $Kernel_Native$24 = function $$Native(obj) { + var $$25, $$26, $iter = $Kernel_Native$24.$$p, $yield = $iter || nil, self = this; + if ($iter) $Kernel_Native$24.$$p = null; if ($truthy(obj == null)) { return nil } else if ($truthy(self['$native?'](obj))) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Object').$new(obj) - } else if ($truthy(obj['$is_a?'](Opal.const_get_relative($nesting, 'Array')))) { - return $send(obj, 'map', [], (TMP_23 = function(o){var self = TMP_23.$$s || this; -if (o == null) o = nil; - return self.$Native(o)}, TMP_23.$$s = self, TMP_23.$$arity = 1, TMP_23)) - } else if ($truthy(obj['$is_a?'](Opal.const_get_relative($nesting, 'Proc')))) { - return $send(self, 'proc', [], (TMP_24 = function($a_rest){var self = TMP_24.$$s || this, block, args; - - block = TMP_24.$$p || nil; - if (block) TMP_24.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$Native($send(obj, 'call', Opal.to_a(args), block.$to_proc()))}, TMP_24.$$s = self, TMP_24.$$arity = -1, TMP_24)) - } else { + return $$$($$($nesting, 'Native'), 'Object').$new(obj) + } else if ($truthy(obj['$is_a?']($$($nesting, 'Array')))) { + return $send(obj, 'map', [], ($$25 = function(o){var self = $$25.$$s == null ? this : $$25.$$s; + + + + if (o == null) { + o = nil; + }; + return self.$Native(o);}, $$25.$$s = self, $$25.$$arity = 1, $$25)) + } else if ($truthy(obj['$is_a?']($$($nesting, 'Proc')))) { + return $send(self, 'proc', [], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $iter = $$26.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$26.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return self.$Native($send(obj, 'call', Opal.to_a(args), block.$to_proc()));}, $$26.$$s = self, $$26.$$arity = -1, $$26)) + } else { return obj } - }, TMP_Kernel_Native_25.$$arity = 1); - self.$alias_method("_Array", "Array"); - - Opal.defn(self, '$Array', TMP_Kernel_Array_26 = function $$Array(object, $a_rest) { - var self = this, args, $iter = TMP_Kernel_Array_26.$$p, block = $iter || nil; + }, $Kernel_Native$24.$$arity = 1); + $alias(self, "_Array", "Array"); + return (Opal.def(self, '$Array', $Kernel_Array$27 = function $$Array(object, $a) { + var $iter = $Kernel_Array$27.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Kernel_Array_26.$$p = null; + if ($iter) $Kernel_Array$27.$$p = null; + + if ($iter) $Kernel_Array$27.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(self['$native?'](object))) { - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array'), 'new', [object].concat(Opal.to_a(args)), block.$to_proc()).$to_a()}; + return $send($$$($$($nesting, 'Native'), 'Array'), 'new', [object].concat(Opal.to_a(args)), block.$to_proc()).$to_a()}; return self.$_Array(object); - }, TMP_Kernel_Array_26.$$arity = -2); + }, $Kernel_Array$27.$$arity = -2), nil) && 'Array'; })($nesting[0], $nesting); (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_$eq$eq_27, TMP_Object_has_key$q_28, TMP_Object_each_29, TMP_Object_$$_30, TMP_Object_$$$eq_31, TMP_Object_merge$B_32, TMP_Object_respond_to$q_33, TMP_Object_respond_to_missing$q_34, TMP_Object_method_missing_35, TMP_Object_nil$q_36, TMP_Object_is_a$q_37, TMP_Object_instance_of$q_38, TMP_Object_class_39, TMP_Object_to_a_40, TMP_Object_inspect_41; + var $nesting = [self].concat($parent_nesting), $Object_$eq_eq$28, $Object_has_key$ques$29, $Object_each$30, $Object_$$$31, $Object_$$$eq$32, $Object_merge$excl$33, $Object_respond_to$ques$34, $Object_respond_to_missing$ques$35, $Object_method_missing$36, $Object_nil$ques$37, $Object_is_a$ques$38, $Object_instance_of$ques$39, $Object_class$40, $Object_to_a$41, $Object_inspect$42; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_qualified('::', 'Native')); + self.$include($$$($$$('::', 'Native'), 'Wrapper')); - Opal.defn(self, '$==', TMP_Object_$eq$eq_27 = function(other) { + Opal.def(self, '$==', $Object_$eq_eq$28 = function(other) { var self = this; - return self["native"] === Opal.const_get_qualified('::', 'Native').$try_convert(other) - }, TMP_Object_$eq$eq_27.$$arity = 1); + return self["native"] === $$$('::', 'Native').$try_convert(other) + }, $Object_$eq_eq$28.$$arity = 1); - Opal.defn(self, '$has_key?', TMP_Object_has_key$q_28 = function(name) { + Opal.def(self, '$has_key?', $Object_has_key$ques$29 = function(name) { var self = this; return Opal.hasOwnProperty.call(self["native"], name) - }, TMP_Object_has_key$q_28.$$arity = 1); - Opal.alias(self, "key?", "has_key?"); - Opal.alias(self, "include?", "has_key?"); - Opal.alias(self, "member?", "has_key?"); - - Opal.defn(self, '$each', TMP_Object_each_29 = function $$each($a_rest) { - var self = this, args, $iter = TMP_Object_each_29.$$p, $yield = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_each_29.$$p = null; + }, $Object_has_key$ques$29.$$arity = 1); + $alias(self, "key?", "has_key?"); + $alias(self, "include?", "has_key?"); + $alias(self, "member?", "has_key?"); + + Opal.def(self, '$each', $Object_each$30 = function $$each($a) { + var $post_args, args, $iter = $Object_each$30.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Object_each$30.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if (($yield !== nil)) { @@ -3564,12 +4067,12 @@ if (o == null) o = nil; } ; return self; - } else { + } else { return $send(self, 'method_missing', ["each"].concat(Opal.to_a(args))) - } - }, TMP_Object_each_29.$$arity = -1); + }; + }, $Object_each$30.$$arity = -1); - Opal.defn(self, '$[]', TMP_Object_$$_30 = function(key) { + Opal.def(self, '$[]', $Object_$$$31 = function(key) { var self = this; @@ -3579,154 +4082,179 @@ if (o == null) o = nil; return prop; } else { - return Opal.const_get_qualified('::', 'Native').$call(self["native"], key) + return $$$('::', 'Native').$call(self["native"], key) } - }, TMP_Object_$$_30.$$arity = 1); + }, $Object_$$$31.$$arity = 1); - Opal.defn(self, '$[]=', TMP_Object_$$$eq_31 = function(key, value) { + Opal.def(self, '$[]=', $Object_$$$eq$32 = function(key, value) { var self = this, native$ = nil; - native$ = Opal.const_get_qualified('::', 'Native').$try_convert(value); + native$ = $$$('::', 'Native').$try_convert(value); if ($truthy(native$ === nil)) { return self["native"][key] = value - } else { + } else { return self["native"][key] = native$ }; - }, TMP_Object_$$$eq_31.$$arity = 2); + }, $Object_$$$eq$32.$$arity = 2); - Opal.defn(self, '$merge!', TMP_Object_merge$B_32 = function(other) { + Opal.def(self, '$merge!', $Object_merge$excl$33 = function(other) { var self = this; - other = Opal.const_get_qualified('::', 'Native').$convert(other); + other = $$$('::', 'Native').$convert(other); for (var prop in other) { self["native"][prop] = other[prop]; } ; return self; - }, TMP_Object_merge$B_32.$$arity = 1); + }, $Object_merge$excl$33.$$arity = 1); - Opal.defn(self, '$respond_to?', TMP_Object_respond_to$q_33 = function(name, include_all) { + Opal.def(self, '$respond_to?', $Object_respond_to$ques$34 = function(name, include_all) { var self = this; + + if (include_all == null) { include_all = false; - } - return Opal.const_get_qualified('::', 'Kernel').$instance_method("respond_to?").$bind(self).$call(name, include_all) - }, TMP_Object_respond_to$q_33.$$arity = -2); + }; + return $$$('::', 'Kernel').$instance_method("respond_to?").$bind(self).$call(name, include_all); + }, $Object_respond_to$ques$34.$$arity = -2); - Opal.defn(self, '$respond_to_missing?', TMP_Object_respond_to_missing$q_34 = function(name, include_all) { + Opal.def(self, '$respond_to_missing?', $Object_respond_to_missing$ques$35 = function(name, include_all) { var self = this; + + if (include_all == null) { include_all = false; - } - return Opal.hasOwnProperty.call(self["native"], name) - }, TMP_Object_respond_to_missing$q_34.$$arity = -2); + }; + return Opal.hasOwnProperty.call(self["native"], name); + }, $Object_respond_to_missing$ques$35.$$arity = -2); - Opal.defn(self, '$method_missing', TMP_Object_method_missing_35 = function $$method_missing(mid, $a_rest) { - var self = this, args, $iter = TMP_Object_method_missing_35.$$p, block = $iter || nil, $writer = nil; + Opal.def(self, '$method_missing', $Object_method_missing$36 = function $$method_missing(mid, $a) { + var $iter = $Object_method_missing$36.$$p, block = $iter || nil, $post_args, args, self = this, $writer = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_method_missing_35.$$p = null; + if ($iter) $Object_method_missing$36.$$p = null; + + + if ($iter) $Object_method_missing$36.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if (mid.charAt(mid.length - 1) === '=') { return (($writer = [mid.$slice(0, $rb_minus(mid.$length(), 1)), args['$[]'](0)]), $send(self, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); } else { - return $send(Opal.const_get_qualified('::', 'Native'), 'call', [self["native"], mid].concat(Opal.to_a(args)), block.$to_proc()); + return $send($$$('::', 'Native'), 'call', [self["native"], mid].concat(Opal.to_a(args)), block.$to_proc()); } + ; + }, $Object_method_missing$36.$$arity = -2); - }, TMP_Object_method_missing_35.$$arity = -2); - - Opal.defn(self, '$nil?', TMP_Object_nil$q_36 = function() { + Opal.def(self, '$nil?', $Object_nil$ques$37 = function() { var self = this; return false - }, TMP_Object_nil$q_36.$$arity = 0); + }, $Object_nil$ques$37.$$arity = 0); - Opal.defn(self, '$is_a?', TMP_Object_is_a$q_37 = function(klass) { + Opal.def(self, '$is_a?', $Object_is_a$ques$38 = function(klass) { var self = this; - return Opal.is_a(self, klass) - }, TMP_Object_is_a$q_37.$$arity = 1); - Opal.alias(self, "kind_of?", "is_a?"); + return Opal.is_a(self, klass); + }, $Object_is_a$ques$38.$$arity = 1); + $alias(self, "kind_of?", "is_a?"); - Opal.defn(self, '$instance_of?', TMP_Object_instance_of$q_38 = function(klass) { + Opal.def(self, '$instance_of?', $Object_instance_of$ques$39 = function(klass) { var self = this; - return self.$$class === klass - }, TMP_Object_instance_of$q_38.$$arity = 1); + return self.$$class === klass; + }, $Object_instance_of$ques$39.$$arity = 1); - Opal.defn(self, '$class', TMP_Object_class_39 = function() { + Opal.def(self, '$class', $Object_class$40 = function() { var self = this; - return self.$$class - }, TMP_Object_class_39.$$arity = 0); + return self.$$class; + }, $Object_class$40.$$arity = 0); - Opal.defn(self, '$to_a', TMP_Object_to_a_40 = function $$to_a(options) { - var self = this, $iter = TMP_Object_to_a_40.$$p, block = $iter || nil; + Opal.def(self, '$to_a', $Object_to_a$41 = function $$to_a(options) { + var $iter = $Object_to_a$41.$$p, block = $iter || nil, self = this; + if ($iter) $Object_to_a$41.$$p = null; + + + if ($iter) $Object_to_a$41.$$p = null;; + if (options == null) { options = $hash2([], {}); - } - if ($iter) TMP_Object_to_a_40.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_qualified('::', 'Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a() - }, TMP_Object_to_a_40.$$arity = -1); - return (Opal.defn(self, '$inspect', TMP_Object_inspect_41 = function $$inspect() { + }; + return $send($$$($$$('::', 'Native'), 'Array'), 'new', [self["native"], options], block.$to_proc()).$to_a(); + }, $Object_to_a$41.$$arity = -1); + return (Opal.def(self, '$inspect', $Object_inspect$42 = function $$inspect() { var self = this; return "" + "#" - }, TMP_Object_inspect_41.$$arity = 0), nil) && 'inspect'; - })(Opal.const_get_relative($nesting, 'Native'), Opal.const_get_relative($nesting, 'BasicObject'), $nesting); + }, $Object_inspect$42.$$arity = 0), nil) && 'inspect'; + })($$($nesting, 'Native'), $$($nesting, 'BasicObject'), $nesting); (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_initialize_42, TMP_Array_each_43, TMP_Array_$$_44, TMP_Array_$$$eq_45, TMP_Array_last_46, TMP_Array_length_47, TMP_Array_inspect_48; + var $nesting = [self].concat($parent_nesting), $Array_initialize$43, $Array_each$44, $Array_$$$45, $Array_$$$eq$46, $Array_last$47, $Array_length$48, $Array_inspect$49; - def.named = def["native"] = def.get = def.block = def.set = def.length = nil; + self.$$prototype.named = self.$$prototype["native"] = self.$$prototype.get = self.$$prototype.block = self.$$prototype.set = self.$$prototype.length = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); + self.$include($$($nesting, 'Enumerable')); - Opal.defn(self, '$initialize', TMP_Array_initialize_42 = function $$initialize(native$, options) { - var $a, self = this, $iter = TMP_Array_initialize_42.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Array_initialize$43 = function $$initialize(native$, options) { + var $iter = $Array_initialize$43.$$p, block = $iter || nil, self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + if ($iter) $Array_initialize$43.$$p = null; + + + if ($iter) $Array_initialize$43.$$p = null;; + if (options == null) { options = $hash2([], {}); - } - if ($iter) TMP_Array_initialize_42.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Array_initialize_42, false), [native$], null); - self.get = ($truthy($a = options['$[]']("get")) ? $a : options['$[]']("access")); + }; + $send2(self, $find_super(self, 'initialize', $Array_initialize$43, false, true), 'initialize', [native$], null); + self.get = (function() {if ($truthy(($ret_or_1 = options['$[]']("get")))) { + return $ret_or_1 + } else { + return options['$[]']("access") + }; return nil; })(); self.named = options['$[]']("named"); - self.set = ($truthy($a = options['$[]']("set")) ? $a : options['$[]']("access")); - self.length = ($truthy($a = options['$[]']("length")) ? $a : "length"); + self.set = (function() {if ($truthy(($ret_or_2 = options['$[]']("set")))) { + return $ret_or_2 + } else { + return options['$[]']("access") + }; return nil; })(); + self.length = (function() {if ($truthy(($ret_or_3 = options['$[]']("length")))) { + return $ret_or_3 + } else { + return "length" + }; return nil; })(); self.block = block; if ($truthy(self.$length() == null)) { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no length found on the array-like object") - } else { + return self.$raise($$($nesting, 'ArgumentError'), "no length found on the array-like object") + } else { return nil }; - }, TMP_Array_initialize_42.$$arity = -2); + }, $Array_initialize$43.$$arity = -2); - Opal.defn(self, '$each', TMP_Array_each_43 = function $$each() { - var self = this, $iter = TMP_Array_each_43.$$p, block = $iter || nil; + Opal.def(self, '$each', $Array_each$44 = function $$each() { + var $iter = $Array_each$44.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_each_43.$$p = null; + if ($iter) $Array_each$44.$$p = null; + + if ($iter) $Array_each$44.$$p = null;; if ($truthy(block)) { - } else { + } else { return self.$enum_for("each") }; @@ -3735,51 +4263,53 @@ if (o == null) o = nil; } ; return self; - }, TMP_Array_each_43.$$arity = 0); + }, $Array_each$44.$$arity = 0); - Opal.defn(self, '$[]', TMP_Array_$$_44 = function(index) { + Opal.def(self, '$[]', $Array_$$$45 = function(index) { var self = this, result = nil, $case = nil; result = (function() {$case = index; - if (Opal.const_get_relative($nesting, 'String')['$===']($case) || Opal.const_get_relative($nesting, 'Symbol')['$===']($case)) {if ($truthy(self.named)) { + if ($$($nesting, 'String')['$===']($case) || $$($nesting, 'Symbol')['$===']($case)) {if ($truthy(self.named)) { return self["native"][self.named](index) - } else { + } else { return self["native"][index] }} - else if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {if ($truthy(self.get)) { + else if ($$($nesting, 'Integer')['$===']($case)) {if ($truthy(self.get)) { return self["native"][self.get](index) - } else { + } else { return self["native"][index] }} else { return nil }})(); if ($truthy(result)) { if ($truthy(self.block)) { return self.block.$call(result) - } else { + } else { return self.$Native(result) } - } else { + } else { return nil }; - }, TMP_Array_$$_44.$$arity = 1); + }, $Array_$$$45.$$arity = 1); - Opal.defn(self, '$[]=', TMP_Array_$$$eq_45 = function(index, value) { + Opal.def(self, '$[]=', $Array_$$$eq$46 = function(index, value) { var self = this; if ($truthy(self.set)) { - return self["native"][self.set](index, Opal.const_get_relative($nesting, 'Native').$convert(value)) - } else { - return self["native"][index] = Opal.const_get_relative($nesting, 'Native').$convert(value) + return self["native"][self.set](index, $$($nesting, 'Native').$convert(value)) + } else { + return self["native"][index] = $$($nesting, 'Native').$convert(value) } - }, TMP_Array_$$$eq_45.$$arity = 2); + }, $Array_$$$eq$46.$$arity = 2); - Opal.defn(self, '$last', TMP_Array_last_46 = function $$last(count) { + Opal.def(self, '$last', $Array_last$47 = function $$last(count) { var $a, self = this, index = nil, result = nil; + + if (count == null) { count = nil; - } + }; if ($truthy(count)) { index = $rb_minus(self.$length(), 1); @@ -3790,108 +4320,110 @@ if (o == null) o = nil; index = $rb_minus(index, 1); }; return result; - } else { + } else { return self['$[]']($rb_minus(self.$length(), 1)) - } - }, TMP_Array_last_46.$$arity = -1); + }; + }, $Array_last$47.$$arity = -1); - Opal.defn(self, '$length', TMP_Array_length_47 = function $$length() { + Opal.def(self, '$length', $Array_length$48 = function $$length() { var self = this; return self["native"][self.length] - }, TMP_Array_length_47.$$arity = 0); - Opal.alias(self, "to_ary", "to_a"); - return (Opal.defn(self, '$inspect', TMP_Array_inspect_48 = function $$inspect() { + }, $Array_length$48.$$arity = 0); + $alias(self, "to_ary", "to_a"); + return (Opal.def(self, '$inspect', $Array_inspect$49 = function $$inspect() { var self = this; return self.$to_a().$inspect() - }, TMP_Array_inspect_48.$$arity = 0), nil) && 'inspect'; - })(Opal.const_get_relative($nesting, 'Native'), null, $nesting); + }, $Array_inspect$49.$$arity = 0), nil) && 'inspect'; + })($$($nesting, 'Native'), null, $nesting); (function($base, $super, $parent_nesting) { - function $Numeric(){}; - var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric); + var self = $klass($base, $super, 'Numeric'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Numeric_to_n_49; + var $nesting = [self].concat($parent_nesting), $Numeric_to_n$50; - return (Opal.defn(self, '$to_n', TMP_Numeric_to_n_49 = function $$to_n() { + return (Opal.def(self, '$to_n', $Numeric_to_n$50 = function $$to_n() { var self = this; - return self.valueOf() - }, TMP_Numeric_to_n_49.$$arity = 0), nil) && 'to_n' + return self.valueOf(); + }, $Numeric_to_n$50.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Proc(){}; - var self = $Proc = $klass($base, $super, 'Proc', $Proc); + var self = $klass($base, $super, 'Proc'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Proc_to_n_50; + var $nesting = [self].concat($parent_nesting), $Proc_to_n$51; - return (Opal.defn(self, '$to_n', TMP_Proc_to_n_50 = function $$to_n() { + return (Opal.def(self, '$to_n', $Proc_to_n$51 = function $$to_n() { var self = this; return self - }, TMP_Proc_to_n_50.$$arity = 0), nil) && 'to_n' + }, $Proc_to_n$51.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_to_n_51; + var $nesting = [self].concat($parent_nesting), $String_to_n$52; - return (Opal.defn(self, '$to_n', TMP_String_to_n_51 = function $$to_n() { + return (Opal.def(self, '$to_n', $String_to_n$52 = function $$to_n() { var self = this; - return self.valueOf() - }, TMP_String_to_n_51.$$arity = 0), nil) && 'to_n' + return self.valueOf(); + }, $String_to_n$52.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Regexp(){}; - var self = $Regexp = $klass($base, $super, 'Regexp', $Regexp); + var self = $klass($base, $super, 'Regexp'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Regexp_to_n_52; + var $nesting = [self].concat($parent_nesting), $Regexp_to_n$53; - return (Opal.defn(self, '$to_n', TMP_Regexp_to_n_52 = function $$to_n() { + return (Opal.def(self, '$to_n', $Regexp_to_n$53 = function $$to_n() { var self = this; - return self.valueOf() - }, TMP_Regexp_to_n_52.$$arity = 0), nil) && 'to_n' + return self.valueOf(); + }, $Regexp_to_n$53.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $MatchData(){}; - var self = $MatchData = $klass($base, $super, 'MatchData', $MatchData); + var self = $klass($base, $super, 'MatchData'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_MatchData_to_n_53; + var $nesting = [self].concat($parent_nesting), $MatchData_to_n$54; - def.matches = nil; - return (Opal.defn(self, '$to_n', TMP_MatchData_to_n_53 = function $$to_n() { + self.$$prototype.matches = nil; + return (Opal.def(self, '$to_n', $MatchData_to_n$54 = function $$to_n() { var self = this; return self.matches - }, TMP_MatchData_to_n_53.$$arity = 0), nil) && 'to_n' + }, $MatchData_to_n$54.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Struct(){}; - var self = $Struct = $klass($base, $super, 'Struct', $Struct); + var self = $klass($base, $super, 'Struct'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Struct_to_n_55; + var $nesting = [self].concat($parent_nesting), $Struct_to_n$55; - return (Opal.defn(self, '$to_n', TMP_Struct_to_n_55 = function $$to_n() { - var TMP_54, self = this, result = nil; + return (Opal.def(self, '$to_n', $Struct_to_n$55 = function $$to_n() { + var $$56, self = this, result = nil; result = {}; - $send(self, 'each_pair', [], (TMP_54 = function(name, value){var self = TMP_54.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return result[name] = Opal.const_get_relative($nesting, 'Native').$try_convert(value, value)}, TMP_54.$$s = self, TMP_54.$$arity = 2, TMP_54)); + $send(self, 'each_pair', [], ($$56 = function(name, value){var self = $$56.$$s == null ? this : $$56.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return result[name] = $$($nesting, 'Native').$try_convert(value, value);}, $$56.$$s = self, $$56.$$arity = 2, $$56)); return result; - }, TMP_Struct_to_n_55.$$arity = 0), nil) && 'to_n' + }, $Struct_to_n$55.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_to_n_56; + var $nesting = [self].concat($parent_nesting), $Array_to_n$57; - return (Opal.defn(self, '$to_n', TMP_Array_to_n_56 = function $$to_n() { + return (Opal.def(self, '$to_n', $Array_to_n$57 = function $$to_n() { var self = this; @@ -3900,216 +4432,214 @@ if (name == null) name = nil;if (value == null) value = nil; for (var i = 0, length = self.length; i < length; i++) { var obj = self[i]; - result.push(Opal.const_get_relative($nesting, 'Native').$try_convert(obj, obj)); + result.push($$($nesting, 'Native').$try_convert(obj, obj)); } return result; - }, TMP_Array_to_n_56.$$arity = 0), nil) && 'to_n' + }, $Array_to_n$57.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Boolean(){}; - var self = $Boolean = $klass($base, $super, 'Boolean', $Boolean); + var self = $klass($base, $super, 'Boolean'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Boolean_to_n_57; + var $nesting = [self].concat($parent_nesting), $Boolean_to_n$58; - return (Opal.defn(self, '$to_n', TMP_Boolean_to_n_57 = function $$to_n() { + return (Opal.def(self, '$to_n', $Boolean_to_n$58 = function $$to_n() { var self = this; - return self.valueOf() - }, TMP_Boolean_to_n_57.$$arity = 0), nil) && 'to_n' + return self.valueOf(); + }, $Boolean_to_n$58.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Time(){}; - var self = $Time = $klass($base, $super, 'Time', $Time); + var self = $klass($base, $super, 'Time'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Time_to_n_58; + var $nesting = [self].concat($parent_nesting), $Time_to_n$59; - return (Opal.defn(self, '$to_n', TMP_Time_to_n_58 = function $$to_n() { + return (Opal.def(self, '$to_n', $Time_to_n$59 = function $$to_n() { var self = this; return self - }, TMP_Time_to_n_58.$$arity = 0), nil) && 'to_n' + }, $Time_to_n$59.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $NilClass(){}; - var self = $NilClass = $klass($base, $super, 'NilClass', $NilClass); + var self = $klass($base, $super, 'NilClass'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NilClass_to_n_59; + var $nesting = [self].concat($parent_nesting), $NilClass_to_n$60; - return (Opal.defn(self, '$to_n', TMP_NilClass_to_n_59 = function $$to_n() { + return (Opal.def(self, '$to_n', $NilClass_to_n$60 = function $$to_n() { var self = this; - return null - }, TMP_NilClass_to_n_59.$$arity = 0), nil) && 'to_n' + return null; + }, $NilClass_to_n$60.$$arity = 0), nil) && 'to_n' })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_initialize_60, TMP_Hash_to_n_61; + if ($truthy($$($nesting, 'Hash')['$method_defined?']("_initialize"))) { + } else { + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Hash'); - - self.$alias_method("_initialize", "initialize"); - - Opal.defn(self, '$initialize', TMP_Hash_initialize_60 = function $$initialize(defaults) { - var self = this, $iter = TMP_Hash_initialize_60.$$p, block = $iter || nil; + var $nesting = [self].concat($parent_nesting), $Hash_initialize$61, $Hash_to_n$62; - if ($iter) TMP_Hash_initialize_60.$$p = null; - if (defaults != null && - (defaults.constructor === undefined || - defaults.constructor === Object)) { - var smap = self.$$smap, - keys = self.$$keys, - key, value; + $alias(self, "_initialize", "initialize"); + + Opal.def(self, '$initialize', $Hash_initialize$61 = function $$initialize(defaults) { + var $iter = $Hash_initialize$61.$$p, block = $iter || nil, self = this; - for (key in defaults) { - value = defaults[key]; - - if (value && - (value.constructor === undefined || - value.constructor === Object)) { - smap[key] = Opal.const_get_relative($nesting, 'Hash').$new(value); - } else if (value && value.$$is_array) { - value = value.map(function(item) { - if (item && - (item.constructor === undefined || - item.constructor === Object)) { - return Opal.const_get_relative($nesting, 'Hash').$new(item); - } + if ($iter) $Hash_initialize$61.$$p = null; + + + if ($iter) $Hash_initialize$61.$$p = null;; + ; + + if (defaults != null && + (defaults.constructor === undefined || + defaults.constructor === Object)) { + var smap = self.$$smap, + keys = self.$$keys, + key, value; + + for (key in defaults) { + value = defaults[key]; + + if (value && + (value.constructor === undefined || + value.constructor === Object)) { + smap[key] = $$($nesting, 'Hash').$new(value); + } else if (value && value.$$is_array) { + value = value.map(function(item) { + if (item && + (item.constructor === undefined || + item.constructor === Object)) { + return $$($nesting, 'Hash').$new(item); + } - return self.$Native(item); - }); - smap[key] = value - } else { - smap[key] = self.$Native(value); + return self.$Native(item); + }); + smap[key] = value + } else { + smap[key] = self.$Native(value); + } + + keys.push(key); } - keys.push(key); + return self; } - return self; - } + return $send(self, '_initialize', [defaults], block.$to_proc()); + ; + }, $Hash_initialize$61.$$arity = -1); + return (Opal.def(self, '$to_n', $Hash_to_n$62 = function $$to_n() { + var self = this; - return $send(self, '_initialize', [defaults], block.$to_proc()); - - }, TMP_Hash_initialize_60.$$arity = -1); - return (Opal.defn(self, '$to_n', TMP_Hash_to_n_61 = function $$to_n() { - var self = this; + + var result = {}, + keys = self.$$keys, + smap = self.$$smap, + key, value; - - var result = {}, - keys = self.$$keys, - smap = self.$$smap, - key, value; + for (var i = 0, length = keys.length; i < length; i++) { + key = keys[i]; - for (var i = 0, length = keys.length; i < length; i++) { - key = keys[i]; + if (key.$$is_string) { + value = smap[key]; + } else { + key = key.key; + value = key.value; + } - if (key.$$is_string) { - value = smap[key]; - } else { - key = key.key; - value = key.value; + result[key] = $$($nesting, 'Native').$try_convert(value, value); } - result[key] = Opal.const_get_relative($nesting, 'Native').$try_convert(value, value); - } - - return result; - - }, TMP_Hash_to_n_61.$$arity = 0), nil) && 'to_n'; - })($nesting[0], null, $nesting); + return result; + + }, $Hash_to_n$62.$$arity = 0), nil) && 'to_n'; + })($nesting[0], null, $nesting) + }; (function($base, $super, $parent_nesting) { - function $Module(){}; - var self = $Module = $klass($base, $super, 'Module', $Module); + var self = $klass($base, $super, 'Module'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Module_native_module_62; + var $nesting = [self].concat($parent_nesting), $Module_native_module$63; - return (Opal.defn(self, '$native_module', TMP_Module_native_module_62 = function $$native_module() { + return (Opal.def(self, '$native_module', $Module_native_module$63 = function $$native_module() { var self = this; return Opal.global[self.$name()] = self - }, TMP_Module_native_module_62.$$arity = 0), nil) && 'native_module' + }, $Module_native_module$63.$$arity = 0), nil) && 'native_module' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Class(){}; - var self = $Class = $klass($base, $super, 'Class', $Class); + var self = $klass($base, $super, 'Class'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Class_native_alias_63, TMP_Class_native_class_64; + var $nesting = [self].concat($parent_nesting), $Class_native_alias$64, $Class_native_class$65; - Opal.defn(self, '$native_alias', TMP_Class_native_alias_63 = function $$native_alias(new_jsid, existing_mid) { + Opal.def(self, '$native_alias', $Class_native_alias$64 = function $$native_alias(new_jsid, existing_mid) { var self = this; - var aliased = self.$$proto['$' + existing_mid]; + var aliased = self.prototype['$' + existing_mid]; if (!aliased) { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", self.$exiting_mid())); + self.$raise($$($nesting, 'NameError').$new("" + "undefined method `" + (existing_mid) + "' for class `" + (self.$inspect()) + "'", existing_mid)); } - self.$$proto[new_jsid] = aliased; + self.prototype[new_jsid] = aliased; - }, TMP_Class_native_alias_63.$$arity = 2); - return (Opal.defn(self, '$native_class', TMP_Class_native_class_64 = function $$native_class() { + }, $Class_native_alias$64.$$arity = 2); + return (Opal.def(self, '$native_class', $Class_native_class$65 = function $$native_class() { var self = this; self.$native_module(); return self["new"] = self.$new;; - }, TMP_Class_native_class_64.$$arity = 0), nil) && 'native_class'; + }, $Class_native_class$65.$$arity = 0), nil) && 'native_class'; })($nesting[0], null, $nesting); return ($gvars.$ = ($gvars.global = self.$Native(Opal.global))); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/jquery/constants"] = function(Opal) { - var $a, self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $truthy = Opal.truthy; +Opal.modules["opal/jquery/constants"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var $a, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy; Opal.add_stubs(['$require', '$raise']); self.$require("native"); - if ($truthy((($a = Opal.const_get_relative($nesting, 'JQUERY_CLASS', 'skip_raise')) ? 'constant' : nil))) { + if ($truthy((($a = $$($nesting, 'JQUERY_CLASS', 'skip_raise')) ? 'constant' : nil))) { return nil - } else { + } else { return (function() { if ($truthy(!!Opal.global.jQuery)) {return Opal.const_set($nesting[0], 'JQUERY_CLASS', Opal.const_set($nesting[0], 'JQUERY_SELECTOR', Opal.global.jQuery))} else if ($truthy(!!Opal.global.Zepto)) { Opal.const_set($nesting[0], 'JQUERY_SELECTOR', Opal.global.Zepto); return Opal.const_set($nesting[0], 'JQUERY_CLASS', Opal.global.Zepto.zepto.Z);} - else {return self.$raise(Opal.const_get_relative($nesting, 'NameError'), "Can't find jQuery or Zepto. jQuery must be included before opal-jquery")}})() + else {return self.$raise($$($nesting, 'NameError'), "Can't find jQuery or Zepto. jQuery must be included before opal-jquery")}})() }; }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/jquery/element"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["opal/jquery/element"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $alias = Opal.alias, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; Opal.add_stubs(['$require', '$to_n', '$include', '$each', '$alias_native', '$attr_reader', '$call', '$nil?', '$raise', '$is_a?', '$has_key?', '$delete', '$from_object', '$gsub', '$upcase', '$[]', '$compact', '$map', '$respond_to?', '$<<', '$Native', '$arity', '$new']); self.$require("native"); self.$require("opal/jquery/constants"); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Element_find_1, TMP_Element_$$_2, TMP_Element_id_3, TMP_Element_new_4, TMP_Element_parse_5, TMP_Element_expose_7, TMP_Element_prop_8, TMP_Element_to_n_9, TMP_Element_$$_10, TMP_Element_$$$eq_11, TMP_Element_attr_12, TMP_Element_has_attribute$q_13, TMP_Element_append_to_body_14, TMP_Element_append_to_head_15, TMP_Element_at_16, TMP_Element_class_name_17, TMP_Element_class_name$eq_18, TMP_Element_css_19, TMP_Element_animate_20, TMP_Element_data_21, TMP_Element_effect_22, TMP_Element_visible$q_25, TMP_Element_offset_26, TMP_Element_each_27, TMP_Element_first_28, TMP_Element_html_29, TMP_Element_id_30, TMP_Element_id$eq_31, TMP_Element_tag_name_32, TMP_Element_inspect_33, TMP_Element_to_s_34, TMP_Element_length_35, TMP_Element_any$q_36, TMP_Element_empty$q_37, TMP_Element_on_38, TMP_Element_one_39, TMP_Element_off_40, TMP_Element_serialize_array_42, TMP_Element_value_43, TMP_Element_height_44, TMP_Element_width_45, TMP_Element_position_46, TMP_Element_$eq$eq_47, TMP_Element_respond_to_missing$q_48, TMP_Element_method_missing_49; + var $nesting = [self].concat($parent_nesting), $Element_find$1, $Element_$$$2, $Element_id$3, $Element_new$4, $Element_parse$5, $Element_expose$6, $Element_prop$8, $Element_to_n$9, $Element_$$$10, $Element_$$$eq$11, $Element_attr$12, $Element_has_attribute$ques$13, $Element_append_to_body$14, $Element_append_to_head$15, $Element_at$16, $Element_class_name$17, $Element_class_name$eq$18, $Element_css$19, $Element_animate$20, $Element_data$21, $Element_effect$22, $Element_visible$ques$25, $Element_offset$26, $Element_each$27, $Element_first$28, $Element_html$29, $Element_id$30, $Element_id$eq$31, $Element_tag_name$32, $Element_inspect$33, $Element_to_s$34, $Element_length$35, $Element_any$ques$36, $Element_empty$ques$37, $Element_on$38, $Element_one$39, $Element_off$40, $Element_serialize_array$41, $Element_value$43, $Element_height$44, $Element_width$45, $Element_position$46, $Element_$eq_eq$47, $Element_respond_to_missing$ques$48, $Element_method_missing$49; - var $ = Opal.const_get_relative($nesting, 'JQUERY_SELECTOR').$to_n(); - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); - Opal.defs(self, '$find', TMP_Element_find_1 = function $$find(selector) { + var $ = $$($nesting, 'JQUERY_SELECTOR').$to_n(); + self.$include($$($nesting, 'Enumerable')); + Opal.defs(self, '$find', $Element_find$1 = function $$find(selector) { var self = this; return $(selector) - }, TMP_Element_find_1.$$arity = 1); - Opal.defs(self, '$[]', TMP_Element_$$_2 = function(selector) { + }, $Element_find$1.$$arity = 1); + Opal.defs(self, '$[]', $Element_$$$2 = function(selector) { var self = this; return $(selector) - }, TMP_Element_$$_2.$$arity = 1); - Opal.defs(self, '$id', TMP_Element_id_3 = function $$id(id) { + }, $Element_$$$2.$$arity = 1); + Opal.defs(self, '$id', $Element_id$3 = function $$id(id) { var self = this; @@ -4121,33 +4651,39 @@ Opal.modules["opal/jquery/element"] = function(Opal) { return $(el); - }, TMP_Element_id_3.$$arity = 1); - Opal.defs(self, '$new', TMP_Element_new_4 = function(tag) { + }, $Element_id$3.$$arity = 1); + Opal.defs(self, '$new', $Element_new$4 = function(tag) { var self = this; + + if (tag == null) { tag = "div"; - } - return $(document.createElement(tag)) - }, TMP_Element_new_4.$$arity = -1); - Opal.defs(self, '$parse', TMP_Element_parse_5 = function $$parse(str) { + }; + return $(document.createElement(tag));; + }, $Element_new$4.$$arity = -1); + Opal.defs(self, '$parse', $Element_parse$5 = function $$parse(str) { var self = this; - return $.parseHTML ? $($.parseHTML(str)) : $(str) - }, TMP_Element_parse_5.$$arity = 1); - Opal.defs(self, '$expose', TMP_Element_expose_7 = function $$expose($a_rest) { - var TMP_6, self = this, methods; + return $.parseHTML ? $($.parseHTML(str)) : $(str); + }, $Element_parse$5.$$arity = 1); + Opal.defs(self, '$expose', $Element_expose$6 = function $$expose($a) { + var $post_args, methods, $$7, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - methods = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - methods[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(methods, 'each', [], (TMP_6 = function(method){var self = TMP_6.$$s || this; -if (method == null) method = nil; - return self.$alias_native(method)}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)) - }, TMP_Element_expose_7.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + methods = $post_args;; + return $send(methods, 'each', [], ($$7 = function(method){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (method == null) { + method = nil; + }; + return self.$alias_native(method);}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + }, $Element_expose$6.$$arity = -1); self.$attr_reader("selector"); self.$alias_native("after"); self.$alias_native("before"); @@ -4181,19 +4717,18 @@ if (method == null) method = nil; self.$alias_native("empty"); self.$alias_native("get"); - Opal.defn(self, '$prop', TMP_Element_prop_8 = function $$prop($a_rest) { - var self = this, args; + Opal.def(self, '$prop', $Element_prop$8 = function $$prop($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'Native'), 'call', [self, "prop"].concat(Opal.to_a(args))) - }, TMP_Element_prop_8.$$arity = -1); - Opal.alias(self, "succ", "next"); - Opal.alias(self, "<<", "append"); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'Native'), 'call', [self, "prop"].concat(Opal.to_a(args))); + }, $Element_prop$8.$$arity = -1); + $alias(self, "succ", "next"); + $alias(self, "<<", "append"); self.$alias_native("add_class", "addClass"); self.$alias_native("append_to", "appendTo"); self.$alias_native("has_class?", "hasClass"); @@ -4202,6 +4737,9 @@ if (method == null) method = nil; self.$alias_native("is?", "is"); self.$alias_native("remove_attr", "removeAttr"); self.$alias_native("remove_class", "removeClass"); + self.$alias_native("replace_all", "replaceAll"); + self.$alias_native("replace_with", "replaceWith"); + self.$alias_native("select"); self.$alias_native("submit"); self.$alias_native("click"); self.$alias_native("text=", "text"); @@ -4221,13 +4759,13 @@ if (method == null) method = nil; self.$alias_native("outer_width", "outerWidth"); self.$alias_native("outer_height", "outerHeight"); - Opal.defn(self, '$to_n', TMP_Element_to_n_9 = function $$to_n() { + Opal.def(self, '$to_n', $Element_to_n$9 = function $$to_n() { var self = this; return self - }, TMP_Element_to_n_9.$$arity = 0); + }, $Element_to_n$9.$$arity = 0); - Opal.defn(self, '$[]', TMP_Element_$$_10 = function(name) { + Opal.def(self, '$[]', $Element_$$$10 = function(name) { var self = this; @@ -4235,26 +4773,25 @@ if (method == null) method = nil; if(value === undefined) return nil; return value; - }, TMP_Element_$$_10.$$arity = 1); + }, $Element_$$$10.$$arity = 1); - Opal.defn(self, '$[]=', TMP_Element_$$$eq_11 = function(name, value) { + Opal.def(self, '$[]=', $Element_$$$eq$11 = function(name, value) { var self = this; if ($truthy(value['$nil?']())) { return self.removeAttr(name)}; - return self.attr(name, value); - }, TMP_Element_$$$eq_11.$$arity = 2); + return self.attr(name, value);; + }, $Element_$$$eq$11.$$arity = 2); - Opal.defn(self, '$attr', TMP_Element_attr_12 = function $$attr($a_rest) { - var self = this, args; + Opal.def(self, '$attr', $Element_attr$12 = function $$attr($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; var size = args.length; switch (size) { @@ -4266,30 +4803,30 @@ if (method == null) method = nil; return self.attr(args[0], args[1]); break; default: - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "#attr only accepts 1 or 2 arguments") + self.$raise($$($nesting, 'ArgumentError'), "#attr only accepts 1 or 2 arguments") } + ; + }, $Element_attr$12.$$arity = -1); - }, TMP_Element_attr_12.$$arity = -1); - - Opal.defn(self, '$has_attribute?', TMP_Element_has_attribute$q_13 = function(name) { + Opal.def(self, '$has_attribute?', $Element_has_attribute$ques$13 = function(name) { var self = this; - return self.attr(name) !== undefined - }, TMP_Element_has_attribute$q_13.$$arity = 1); + return self.attr(name) !== undefined; + }, $Element_has_attribute$ques$13.$$arity = 1); - Opal.defn(self, '$append_to_body', TMP_Element_append_to_body_14 = function $$append_to_body() { + Opal.def(self, '$append_to_body', $Element_append_to_body$14 = function $$append_to_body() { var self = this; - return self.appendTo(document.body) - }, TMP_Element_append_to_body_14.$$arity = 0); + return self.appendTo(document.body); + }, $Element_append_to_body$14.$$arity = 0); - Opal.defn(self, '$append_to_head', TMP_Element_append_to_head_15 = function $$append_to_head() { + Opal.def(self, '$append_to_head', $Element_append_to_head$15 = function $$append_to_head() { var self = this; - return self.appendTo(document.head) - }, TMP_Element_append_to_head_15.$$arity = 0); + return self.appendTo(document.head); + }, $Element_append_to_head$15.$$arity = 0); - Opal.defn(self, '$at', TMP_Element_at_16 = function $$at(index) { + Opal.def(self, '$at', $Element_at$16 = function $$at(index) { var self = this; @@ -4305,18 +4842,18 @@ if (method == null) method = nil; return $(self[index]); - }, TMP_Element_at_16.$$arity = 1); + }, $Element_at$16.$$arity = 1); - Opal.defn(self, '$class_name', TMP_Element_class_name_17 = function $$class_name() { + Opal.def(self, '$class_name', $Element_class_name$17 = function $$class_name() { var self = this; var first = self[0]; return (first && first.className) || ""; - }, TMP_Element_class_name_17.$$arity = 0); + }, $Element_class_name$17.$$arity = 0); - Opal.defn(self, '$class_name=', TMP_Element_class_name$eq_18 = function(name) { + Opal.def(self, '$class_name=', $Element_class_name$eq$18 = function(name) { var self = this; @@ -4326,142 +4863,160 @@ if (method == null) method = nil; } ; return self; - }, TMP_Element_class_name$eq_18.$$arity = 1); + }, $Element_class_name$eq$18.$$arity = 1); - Opal.defn(self, '$css', TMP_Element_css_19 = function $$css(name, value) { - var $a, self = this; + Opal.def(self, '$css', $Element_css$19 = function $$css(name, value) { + var self = this, $ret_or_1 = nil; + + if (value == null) { value = nil; - } - - if ($truthy(($truthy($a = value['$nil?']()) ? name['$is_a?'](Opal.const_get_relative($nesting, 'String')) : $a))) { + }; + if ($truthy((function() {if ($truthy(($ret_or_1 = value['$nil?']()))) { + return name['$is_a?']($$($nesting, 'String')) + } else { + return $ret_or_1 + }; return nil; })())) { return self.css(name) - } else if ($truthy(name['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + } else if ($truthy(name['$is_a?']($$($nesting, 'Hash')))) { self.css(name.$to_n()) - } else { + } else { self.css(name, value) }; return self; - }, TMP_Element_css_19.$$arity = -2); + }, $Element_css$19.$$arity = -2); - Opal.defn(self, '$animate', TMP_Element_animate_20 = function $$animate(params) { - var self = this, $iter = TMP_Element_animate_20.$$p, block = $iter || nil, speed = nil; + Opal.def(self, '$animate', $Element_animate$20 = function $$animate(params) { + var $iter = $Element_animate$20.$$p, block = $iter || nil, self = this, speed = nil; - if ($iter) TMP_Element_animate_20.$$p = null; + if ($iter) $Element_animate$20.$$p = null; + + if ($iter) $Element_animate$20.$$p = null;; speed = (function() {if ($truthy(params['$has_key?']("speed"))) { return params.$delete("speed") - } else { + } else { return 400 }; return nil; })(); if ((block !== nil)) { return self.animate(params.$to_n(), speed, block) - } else { + } else { return self.animate(params.$to_n(), speed) }; - }, TMP_Element_animate_20.$$arity = 1); + }, $Element_animate$20.$$arity = 1); - Opal.defn(self, '$data', TMP_Element_data_21 = function $$data($a_rest) { - var self = this, args; + Opal.def(self, '$data', $Element_data$21 = function $$data($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; var result = self.data.apply(self, args); if ( - (typeof(result) === 'object') && !(result instanceof Opal.const_get_relative($nesting, 'JQUERY_CLASS')) + (typeof(result) === 'object') && !(result instanceof $$($nesting, 'JQUERY_CLASS')) ) { - result = Opal.const_get_relative($nesting, 'JSON').$from_object(result); + result = $$($nesting, 'JSON').$from_object(result); } return result == null ? nil : result; + ; + }, $Element_data$21.$$arity = -1); - }, TMP_Element_data_21.$$arity = -1); - - Opal.defn(self, '$effect', TMP_Element_effect_22 = function $$effect(name, $a_rest) { - var TMP_23, TMP_24, self = this, args, $iter = TMP_Element_effect_22.$$p, block = $iter || nil; + Opal.def(self, '$effect', $Element_effect$22 = function $$effect(name, $a) { + var $iter = $Element_effect$22.$$p, block = $iter || nil, $post_args, args, $$23, $$24, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Element_effect_22.$$p = null; - - name = $send(name, 'gsub', [/_\w/], (TMP_23 = function(match){var self = TMP_23.$$s || this; -if (match == null) match = nil; - return match['$[]'](1).$upcase()}, TMP_23.$$s = self, TMP_23.$$arity = 1, TMP_23)); - args = $send(args, 'map', [], (TMP_24 = function(a){var self = TMP_24.$$s || this; -if (a == null) a = nil; - if ($truthy(a['$respond_to?']("to_n"))) { + if ($iter) $Element_effect$22.$$p = null; + + + if ($iter) $Element_effect$22.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + name = $send(name, 'gsub', [/_\w/], ($$23 = function(match){var self = $$23.$$s == null ? this : $$23.$$s; + + + + if (match == null) { + match = nil; + }; + return match['$[]'](1).$upcase();}, $$23.$$s = self, $$23.$$arity = 1, $$23)); + args = $send(args, 'map', [], ($$24 = function(a){var self = $$24.$$s == null ? this : $$24.$$s; + + + + if (a == null) { + a = nil; + }; + if ($truthy(a['$respond_to?']("to_n"))) { return a.$to_n() - } else { + } else { return nil - }}, TMP_24.$$s = self, TMP_24.$$arity = 1, TMP_24)).$compact(); + };}, $$24.$$s = self, $$24.$$arity = 1, $$24)).$compact(); args['$<<'](function() { (function() {if ((block !== nil)) { return block.$call() - } else { + } else { return nil }; return nil; })() }); return self[name].apply(self, args); - }, TMP_Element_effect_22.$$arity = -2); + }, $Element_effect$22.$$arity = -2); - Opal.defn(self, '$visible?', TMP_Element_visible$q_25 = function() { + Opal.def(self, '$visible?', $Element_visible$ques$25 = function() { var self = this; - return self.is(':visible') - }, TMP_Element_visible$q_25.$$arity = 0); + return self.is(':visible'); + }, $Element_visible$ques$25.$$arity = 0); - Opal.defn(self, '$offset', TMP_Element_offset_26 = function $$offset() { + Opal.def(self, '$offset', $Element_offset$26 = function $$offset() { var self = this; return self.$Native(self.offset()) - }, TMP_Element_offset_26.$$arity = 0); + }, $Element_offset$26.$$arity = 0); - Opal.defn(self, '$each', TMP_Element_each_27 = function $$each() { - var self = this, $iter = TMP_Element_each_27.$$p, $yield = $iter || nil; + Opal.def(self, '$each', $Element_each$27 = function $$each() { + var $iter = $Element_each$27.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Element_each_27.$$p = null; + if ($iter) $Element_each$27.$$p = null; for (var i = 0, length = self.length; i < length; i++) {; Opal.yield1($yield, $(self[i])); }; return self; - }, TMP_Element_each_27.$$arity = 0); + }, $Element_each$27.$$arity = 0); - Opal.defn(self, '$first', TMP_Element_first_28 = function $$first() { + Opal.def(self, '$first', $Element_first$28 = function $$first() { var self = this; - return self.length ? self.first() : nil - }, TMP_Element_first_28.$$arity = 0); + return self.length ? self.first() : nil; + }, $Element_first$28.$$arity = 0); - Opal.defn(self, '$html', TMP_Element_html_29 = function $$html(content) { + Opal.def(self, '$html', $Element_html$29 = function $$html(content) { var self = this; + ; + if (content != null) { return self.html(content); } return self.html() || ''; + ; + }, $Element_html$29.$$arity = -1); - }, TMP_Element_html_29.$$arity = -1); - - Opal.defn(self, '$id', TMP_Element_id_30 = function $$id() { + Opal.def(self, '$id', $Element_id$30 = function $$id() { var self = this; var first = self[0]; return (first && first.id) || ""; - }, TMP_Element_id_30.$$arity = 0); + }, $Element_id$30.$$arity = 0); - Opal.defn(self, '$id=', TMP_Element_id$eq_31 = function(id) { + Opal.def(self, '$id=', $Element_id$eq$31 = function(id) { var self = this; @@ -4473,15 +5028,15 @@ if (a == null) a = nil; return self; - }, TMP_Element_id$eq_31.$$arity = 1); + }, $Element_id$eq$31.$$arity = 1); - Opal.defn(self, '$tag_name', TMP_Element_tag_name_32 = function $$tag_name() { + Opal.def(self, '$tag_name', $Element_tag_name$32 = function $$tag_name() { var self = this; return self.length > 0 ? self[0].tagName.toLowerCase() : nil - }, TMP_Element_tag_name_32.$$arity = 0); + }, $Element_tag_name$32.$$arity = 0); - Opal.defn(self, '$inspect', TMP_Element_inspect_33 = function $$inspect() { + Opal.def(self, '$inspect', $Element_inspect$33 = function $$inspect() { var self = this; @@ -4504,9 +5059,9 @@ if (a == null) a = nil; return '#'; - }, TMP_Element_inspect_33.$$arity = 0); + }, $Element_inspect$33.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Element_to_s_34 = function $$to_s() { + Opal.def(self, '$to_s', $Element_to_s$34 = function $$to_s() { var self = this; @@ -4520,35 +5075,38 @@ if (a == null) a = nil; return result.join(', '); - }, TMP_Element_to_s_34.$$arity = 0); + }, $Element_to_s$34.$$arity = 0); - Opal.defn(self, '$length', TMP_Element_length_35 = function $$length() { + Opal.def(self, '$length', $Element_length$35 = function $$length() { var self = this; - return self.length - }, TMP_Element_length_35.$$arity = 0); + return self.length; + }, $Element_length$35.$$arity = 0); - Opal.defn(self, '$any?', TMP_Element_any$q_36 = function() { + Opal.def(self, '$any?', $Element_any$ques$36 = function() { var self = this; - return self.length > 0 - }, TMP_Element_any$q_36.$$arity = 0); + return self.length > 0; + }, $Element_any$ques$36.$$arity = 0); - Opal.defn(self, '$empty?', TMP_Element_empty$q_37 = function() { + Opal.def(self, '$empty?', $Element_empty$ques$37 = function() { var self = this; - return self.length === 0 - }, TMP_Element_empty$q_37.$$arity = 0); - Opal.alias(self, "empty?", "none?"); + return self.length === 0; + }, $Element_empty$ques$37.$$arity = 0); + $alias(self, "empty?", "none?"); - Opal.defn(self, '$on', TMP_Element_on_38 = function $$on(name, sel) { - var self = this, $iter = TMP_Element_on_38.$$p, block = $iter || nil; + Opal.def(self, '$on', $Element_on$38 = function $$on(name, sel) { + var $iter = $Element_on$38.$$p, block = $iter || nil, self = this; + if ($iter) $Element_on$38.$$p = null; + + + if ($iter) $Element_on$38.$$p = null;; + if (sel == null) { sel = nil; - } - if ($iter) TMP_Element_on_38.$$p = null; - + }; var has_args = block.$arity() !== 0; @@ -4559,7 +5117,7 @@ if (a == null) a = nil; // Use preventDefault as a canary for native events if (has_args && args[0].preventDefault) { - args[0] = Opal.const_get_relative($nesting, 'Event').$new(args[0]); + args[0] = $$($nesting, 'Event').$new(args[0]); } return block.apply(null, args); @@ -4575,16 +5133,19 @@ if (a == null) a = nil; } ; return block; - }, TMP_Element_on_38.$$arity = -2); + }, $Element_on$38.$$arity = -2); - Opal.defn(self, '$one', TMP_Element_one_39 = function $$one(name, sel) { - var self = this, $iter = TMP_Element_one_39.$$p, block = $iter || nil; + Opal.def(self, '$one', $Element_one$39 = function $$one(name, sel) { + var $iter = $Element_one$39.$$p, block = $iter || nil, self = this; + if ($iter) $Element_one$39.$$p = null; + + + if ($iter) $Element_one$39.$$p = null;; + if (sel == null) { sel = nil; - } - if ($iter) TMP_Element_one_39.$$p = null; - + }; var has_args = block.$arity() !== 0; @@ -4595,7 +5156,7 @@ if (a == null) a = nil; // Use preventDefault as a canary for native events if (has_args && args[0].preventDefault) { - args[0] = Opal.const_get_relative($nesting, 'Event').$new(args[0]); + args[0] = $$($nesting, 'Event').$new(args[0]); } return block.apply(null, args); @@ -4611,14 +5172,16 @@ if (a == null) a = nil; } ; return block; - }, TMP_Element_one_39.$$arity = -2); + }, $Element_one$39.$$arity = -2); - Opal.defn(self, '$off', TMP_Element_off_40 = function $$off(name, sel, block) { + Opal.def(self, '$off', $Element_off$40 = function $$off(name, sel, block) { var self = this; + + if (block == null) { block = nil; - } + }; if (sel == null) { return self.off(name); @@ -4629,80 +5192,89 @@ if (a == null) a = nil; else { return self.off(name, sel, block.$$jqwrap); } + ; + }, $Element_off$40.$$arity = -3); - }, TMP_Element_off_40.$$arity = -3); - - Opal.defn(self, '$serialize_array', TMP_Element_serialize_array_42 = function $$serialize_array() { - var TMP_41, self = this; + Opal.def(self, '$serialize_array', $Element_serialize_array$41 = function $$serialize_array() { + var $$42, self = this; + + return $send((self.serializeArray()), 'map', [], ($$42 = function(e){var self = $$42.$$s == null ? this : $$42.$$s; - return $send((self.serializeArray()), 'map', [], (TMP_41 = function(e){var self = TMP_41.$$s || this; -if (e == null) e = nil; - return Opal.const_get_relative($nesting, 'Hash').$new(e)}, TMP_41.$$s = self, TMP_41.$$arity = 1, TMP_41)) - }, TMP_Element_serialize_array_42.$$arity = 0); - Opal.alias(self, "size", "length"); + + + if (e == null) { + e = nil; + }; + return $$($nesting, 'Hash').$new(e);}, $$42.$$s = self, $$42.$$arity = 1, $$42)) + }, $Element_serialize_array$41.$$arity = 0); + $alias(self, "size", "length"); - Opal.defn(self, '$value', TMP_Element_value_43 = function $$value() { - var $a, self = this; + Opal.def(self, '$value', $Element_value$43 = function $$value() { + var self = this, $ret_or_2 = nil; - return ($truthy($a = self.val()) ? $a : "") - }, TMP_Element_value_43.$$arity = 0); + if ($truthy(($ret_or_2 = self.val()))) { + return $ret_or_2 + } else { + return "" + } + }, $Element_value$43.$$arity = 0); - Opal.defn(self, '$height', TMP_Element_height_44 = function $$height() { - var $a, self = this; + Opal.def(self, '$height', $Element_height$44 = function $$height() { + var self = this, $ret_or_3 = nil; - return ($truthy($a = self.height()) ? $a : nil) - }, TMP_Element_height_44.$$arity = 0); + if ($truthy(($ret_or_3 = self.height()))) { + return $ret_or_3 + } else { + return nil + } + }, $Element_height$44.$$arity = 0); - Opal.defn(self, '$width', TMP_Element_width_45 = function $$width() { - var $a, self = this; + Opal.def(self, '$width', $Element_width$45 = function $$width() { + var self = this, $ret_or_4 = nil; - return ($truthy($a = self.width()) ? $a : nil) - }, TMP_Element_width_45.$$arity = 0); + if ($truthy(($ret_or_4 = self.width()))) { + return $ret_or_4 + } else { + return nil + } + }, $Element_width$45.$$arity = 0); - Opal.defn(self, '$position', TMP_Element_position_46 = function $$position() { + Opal.def(self, '$position', $Element_position$46 = function $$position() { var self = this; return self.$Native(self.position()) - }, TMP_Element_position_46.$$arity = 0); + }, $Element_position$46.$$arity = 0); - Opal.defn(self, '$==', TMP_Element_$eq$eq_47 = function(other) { + Opal.def(self, '$==', $Element_$eq_eq$47 = function(other) { var self = this; - return self.is(other) - }, TMP_Element_$eq$eq_47.$$arity = 1); + return self.is(other); + }, $Element_$eq_eq$47.$$arity = 1); - Opal.defn(self, '$respond_to_missing?', TMP_Element_respond_to_missing$q_48 = function(name, _) { - var self = this, $iter = TMP_Element_respond_to_missing$q_48.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$respond_to_missing?', $Element_respond_to_missing$ques$48 = function(name, _) { + var $iter = $Element_respond_to_missing$ques$48.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Element_respond_to_missing$q_48.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Element_respond_to_missing$ques$48.$$p = null; var method = self[name]; if (typeof(method) === 'function') { return true; } else { - return $send(self, Opal.find_super_dispatcher(self, 'respond_to_missing?', TMP_Element_respond_to_missing$q_48, false), $zuper, $iter); + return $send2(self, $find_super(self, 'respond_to_missing?', $Element_respond_to_missing$ques$48, false, true), 'respond_to_missing?', [name, _], $iter); } - }, TMP_Element_respond_to_missing$q_48.$$arity = 2); - return (Opal.defn(self, '$method_missing', TMP_Element_method_missing_49 = function $$method_missing(name, $a_rest) { - var self = this, args, $iter = TMP_Element_method_missing_49.$$p, block = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + }, $Element_respond_to_missing$ques$48.$$arity = 2); + return (Opal.def(self, '$method_missing', $Element_method_missing$49 = function $$method_missing(name, $a) { + var $iter = $Element_method_missing$49.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Element_method_missing_49.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Element_method_missing$49.$$p = null; + + if ($iter) $Element_method_missing$49.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ((block !== nil)) { args['$<<'](block)}; @@ -4710,358 +5282,358 @@ if (e == null) e = nil; if (typeof(method) === 'function') { return method.apply(self, args.$to_n()); } else { - return $send(self, Opal.find_super_dispatcher(self, 'method_missing', TMP_Element_method_missing_49, false), $zuper, $iter); + return $send2(self, $find_super(self, 'method_missing', $Element_method_missing$49, false, true), 'method_missing', [name].concat(Opal.to_a(args)), $iter); } ; - }, TMP_Element_method_missing_49.$$arity = -2), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'JQUERY_CLASS').$to_n(), $nesting); + }, $Element_method_missing$49.$$arity = -2), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'JQUERY_CLASS').$to_n(), $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/jquery/window"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; +Opal.modules["opal/jquery/window"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; Opal.add_stubs(['$require', '$include', '$find', '$on', '$element', '$to_proc', '$off', '$trigger', '$new']); self.$require("opal/jquery/element"); (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Window(){}; - var self = $Window = $klass($base, $super, 'Window', $Window); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Window'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), $a, $b, TMP_Window_element_1, TMP_Window_on_2, TMP_Window_off_3, TMP_Window_trigger_4; + var $nesting = [self].concat($parent_nesting), $a, $b, $Window_element$1, $Window_on$2, $Window_off$3, $Window_trigger$4; - def.element = nil; + self.$$prototype.element = nil; - self.$include((function() {if ($truthy((($b = Opal.const_get_relative($nesting, 'Native', 'skip_raise')) && ($a = Opal.const_get_qualified($b, 'Wrapper', 'skip_raise')) ? 'constant' : nil))) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Wrapper') - } else { - return Opal.const_get_relative($nesting, 'Native') + self.$include((function() {if ($truthy((($b = $$($nesting, 'Native', 'skip_raise')) && ($a = $$$($b, 'Wrapper', 'skip_raise')) ? 'constant' : nil))) { + return $$$($$($nesting, 'Native'), 'Wrapper') + } else { + return $$($nesting, 'Native') }; return nil; })()); - Opal.defn(self, '$element', TMP_Window_element_1 = function $$element() { - var $a, self = this; + Opal.def(self, '$element', $Window_element$1 = function $$element() { + var self = this, $ret_or_1 = nil; - return (self.element = ($truthy($a = self.element) ? $a : Opal.const_get_relative($nesting, 'Element').$find(window))) - }, TMP_Window_element_1.$$arity = 0); + return (self.element = (function() {if ($truthy(($ret_or_1 = self.element))) { + return $ret_or_1 + } else { + return $$($nesting, 'Element').$find(window) + }; return nil; })()) + }, $Window_element$1.$$arity = 0); - Opal.defn(self, '$on', TMP_Window_on_2 = function $$on($a_rest) { - var self = this, args, $iter = TMP_Window_on_2.$$p, block = $iter || nil; + Opal.def(self, '$on', $Window_on$2 = function $$on($a) { + var $iter = $Window_on$2.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Window_on_2.$$p = null; - return $send(self.$element(), 'on', Opal.to_a(args), block.$to_proc()) - }, TMP_Window_on_2.$$arity = -1); - - Opal.defn(self, '$off', TMP_Window_off_3 = function $$off($a_rest) { - var self = this, args, $iter = TMP_Window_off_3.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Window_off_3.$$p = null; - return $send(self.$element(), 'off', Opal.to_a(args), block.$to_proc()) - }, TMP_Window_off_3.$$arity = -1); - return (Opal.defn(self, '$trigger', TMP_Window_trigger_4 = function $$trigger($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$element(), 'trigger', Opal.to_a(args)) - }, TMP_Window_trigger_4.$$arity = -1), nil) && 'trigger'; + if ($iter) $Window_on$2.$$p = null; + + + if ($iter) $Window_on$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$element(), 'on', Opal.to_a(args), block.$to_proc()); + }, $Window_on$2.$$arity = -1); + + Opal.def(self, '$off', $Window_off$3 = function $$off($a) { + var $iter = $Window_off$3.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Window_off$3.$$p = null; + + + if ($iter) $Window_off$3.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$element(), 'off', Opal.to_a(args), block.$to_proc()); + }, $Window_off$3.$$arity = -1); + return (Opal.def(self, '$trigger', $Window_trigger$4 = function $$trigger($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$element(), 'trigger', Opal.to_a(args)); + }, $Window_trigger$4.$$arity = -1), nil) && 'trigger'; })($nesting[0], null, $nesting) })($nesting[0], $nesting); - Opal.const_set($nesting[0], 'Window', Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'Window').$new(window)); - return ($gvars.window = Opal.const_get_relative($nesting, 'Window')); + Opal.const_set($nesting[0], 'Window', $$$($$($nesting, 'Browser'), 'Window').$new(window)); + return ($gvars.window = $$($nesting, 'Window')); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/jquery/document"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; +Opal.modules["opal/jquery/document"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $class_variable_set = Opal.class_variable_set, $truthy = Opal.truthy, $class_variable_get = Opal.class_variable_get, $send = Opal.send, $gvars = Opal.gvars; Opal.add_stubs(['$require', '$to_n', '$call', '$new', '$ready?', '$resolve', '$module_function', '$find', '$extend']); self.$require("opal/jquery/constants"); self.$require("opal/jquery/element"); (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DocumentMethods, self = $DocumentMethods = $module($base, 'DocumentMethods'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DocumentMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DocumentMethods_ready$q_1, TMP_DocumentMethods_ready_3, TMP_DocumentMethods_4, TMP_DocumentMethods_title_5, TMP_DocumentMethods_title$eq_6, TMP_DocumentMethods_head_7, TMP_DocumentMethods_body_8; + var $nesting = [self].concat($parent_nesting), $DocumentMethods_ready$ques$1, $DocumentMethods_ready$2, $DocumentMethods$4, $DocumentMethods_title$5, $DocumentMethods_title$eq$6, $DocumentMethods_head$7, $DocumentMethods_body$8; - var $ = Opal.const_get_relative($nesting, 'JQUERY_SELECTOR').$to_n(); + $class_variable_set($nesting[0], '@@__isReady', false); + var $ = $$($nesting, 'JQUERY_SELECTOR').$to_n(); - Opal.defn(self, '$ready?', TMP_DocumentMethods_ready$q_1 = function() { - var $a, self = this, $iter = TMP_DocumentMethods_ready$q_1.$$p, block = $iter || nil; + Opal.def(self, '$ready?', $DocumentMethods_ready$ques$1 = function() { + var $iter = $DocumentMethods_ready$ques$1.$$p, block = $iter || nil, self = this; - if ($iter) TMP_DocumentMethods_ready$q_1.$$p = null; + if ($iter) $DocumentMethods_ready$ques$1.$$p = null; + + + if ($iter) $DocumentMethods_ready$ques$1.$$p = null;; if ((block !== nil)) { - if ($truthy((($a = $DocumentMethods.$$cvars['@@__isReady']) == null ? nil : $a))) { + if ($truthy($class_variable_get($nesting[0], '@@__isReady', false))) { return block.$call() - } else { + } else { return $(block) } - } else { + } else { return nil - } - }, TMP_DocumentMethods_ready$q_1.$$arity = 0); + }; + }, $DocumentMethods_ready$ques$1.$$arity = 0); - Opal.defn(self, '$ready', TMP_DocumentMethods_ready_3 = function $$ready() { - var TMP_2, self = this, promise = nil; + Opal.def(self, '$ready', $DocumentMethods_ready$2 = function $$ready() { + var $$3, self = this, promise = nil; - promise = Opal.const_get_relative($nesting, 'Promise').$new(); - $send(Opal.const_get_relative($nesting, 'Document'), 'ready?', [], (TMP_2 = function(){var self = TMP_2.$$s || this; + promise = $$($nesting, 'Promise').$new(); + $send($$($nesting, 'Document'), 'ready?', [], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; - return promise.$resolve()}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); + return promise.$resolve()}, $$3.$$s = self, $$3.$$arity = 0, $$3)); return promise; - }, TMP_DocumentMethods_ready_3.$$arity = 0); + }, $DocumentMethods_ready$2.$$arity = 0); self.$module_function("ready?"); - $send(self, 'ready?', [], (TMP_DocumentMethods_4 = function(){var self = TMP_DocumentMethods_4.$$s || this; + $send(self, 'ready?', [], ($DocumentMethods$4 = function(){var self = $DocumentMethods$4.$$s == null ? this : $DocumentMethods$4.$$s; - return (Opal.class_variable_set($DocumentMethods, '@@__isReady', true))}, TMP_DocumentMethods_4.$$s = self, TMP_DocumentMethods_4.$$arity = 0, TMP_DocumentMethods_4)); + return $class_variable_set($nesting[0], '@@__isReady', true)}, $DocumentMethods$4.$$s = self, $DocumentMethods$4.$$arity = 0, $DocumentMethods$4)); - Opal.defn(self, '$title', TMP_DocumentMethods_title_5 = function $$title() { + Opal.def(self, '$title', $DocumentMethods_title$5 = function $$title() { var self = this; - return document.title - }, TMP_DocumentMethods_title_5.$$arity = 0); + return document.title; + }, $DocumentMethods_title$5.$$arity = 0); - Opal.defn(self, '$title=', TMP_DocumentMethods_title$eq_6 = function(title) { + Opal.def(self, '$title=', $DocumentMethods_title$eq$6 = function(title) { var self = this; - return document.title = title - }, TMP_DocumentMethods_title$eq_6.$$arity = 1); + return document.title = title; + }, $DocumentMethods_title$eq$6.$$arity = 1); - Opal.defn(self, '$head', TMP_DocumentMethods_head_7 = function $$head() { + Opal.def(self, '$head', $DocumentMethods_head$7 = function $$head() { var self = this; - return Opal.const_get_relative($nesting, 'Element').$find(document.head) - }, TMP_DocumentMethods_head_7.$$arity = 0); - - Opal.defn(self, '$body', TMP_DocumentMethods_body_8 = function $$body() { + return $$($nesting, 'Element').$find(document.head) + }, $DocumentMethods_head$7.$$arity = 0); + return (Opal.def(self, '$body', $DocumentMethods_body$8 = function $$body() { var self = this; - return Opal.const_get_relative($nesting, 'Element').$find(document.body) - }, TMP_DocumentMethods_body_8.$$arity = 0); + return $$($nesting, 'Element').$find(document.body) + }, $DocumentMethods_body$8.$$arity = 0), nil) && 'body'; })($nesting[0], $nesting) })($nesting[0], $nesting); - Opal.const_set($nesting[0], 'Document', Opal.const_get_relative($nesting, 'Element').$find(document)); - Opal.const_get_relative($nesting, 'Document').$extend(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'DocumentMethods')); - return ($gvars.document = Opal.const_get_relative($nesting, 'Document')); + Opal.const_set($nesting[0], 'Document', $$($nesting, 'Element').$find(document)); + $$($nesting, 'Document').$extend($$$($$($nesting, 'Browser'), 'DocumentMethods')); + return ($gvars.document = $$($nesting, 'Document')); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/jquery/event"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["opal/jquery/event"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias; Opal.add_stubs(['$require', '$to_n', '$stop', '$prevent']); self.$require("opal/jquery/constants"); return (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Event_initialize_1, TMP_Event_to_n_2, TMP_Event_$$_3, TMP_Event_type_4, TMP_Event_element_5, TMP_Event_target_6, TMP_Event_prevented$q_7, TMP_Event_prevent_8, TMP_Event_stopped$q_9, TMP_Event_stop_10, TMP_Event_stop_immediate_11, TMP_Event_kill_12, TMP_Event_page_x_13, TMP_Event_page_y_14, TMP_Event_touch_x_15, TMP_Event_touch_y_16, TMP_Event_ctrl_key_17, TMP_Event_meta_key_18, TMP_Event_alt_key_19, TMP_Event_shift_key_20, TMP_Event_key_code_21, TMP_Event_which_22; + var $nesting = [self].concat($parent_nesting), $Event_initialize$1, $Event_to_n$2, $Event_$$$3, $Event_type$4, $Event_element$5, $Event_target$6, $Event_prevented$ques$7, $Event_prevent$8, $Event_stopped$ques$9, $Event_stop$10, $Event_stop_immediate$11, $Event_kill$12, $Event_page_x$13, $Event_page_y$14, $Event_touch_x$15, $Event_touch_y$16, $Event_ctrl_key$17, $Event_meta_key$18, $Event_alt_key$19, $Event_shift_key$20, $Event_key_code$21, $Event_which$22; - def["native"] = nil; + self.$$prototype["native"] = nil; - var $ = Opal.const_get_relative($nesting, 'JQUERY_SELECTOR').$to_n(); + var $ = $$($nesting, 'JQUERY_SELECTOR').$to_n(); - Opal.defn(self, '$initialize', TMP_Event_initialize_1 = function $$initialize(native$) { + Opal.def(self, '$initialize', $Event_initialize$1 = function $$initialize(native$) { var self = this; return (self["native"] = native$) - }, TMP_Event_initialize_1.$$arity = 1); + }, $Event_initialize$1.$$arity = 1); - Opal.defn(self, '$to_n', TMP_Event_to_n_2 = function $$to_n() { + Opal.def(self, '$to_n', $Event_to_n$2 = function $$to_n() { var self = this; return self["native"] - }, TMP_Event_to_n_2.$$arity = 0); + }, $Event_to_n$2.$$arity = 0); - Opal.defn(self, '$[]', TMP_Event_$$_3 = function(name) { + Opal.def(self, '$[]', $Event_$$$3 = function(name) { var self = this; return self["native"][name] - }, TMP_Event_$$_3.$$arity = 1); + }, $Event_$$$3.$$arity = 1); - Opal.defn(self, '$type', TMP_Event_type_4 = function $$type() { + Opal.def(self, '$type', $Event_type$4 = function $$type() { var self = this; return self["native"].type - }, TMP_Event_type_4.$$arity = 0); + }, $Event_type$4.$$arity = 0); - Opal.defn(self, '$element', TMP_Event_element_5 = function $$element() { + Opal.def(self, '$element', $Event_element$5 = function $$element() { var self = this; return $(self["native"].currentTarget) - }, TMP_Event_element_5.$$arity = 0); - Opal.alias(self, "current_target", "element"); + }, $Event_element$5.$$arity = 0); + $alias(self, "current_target", "element"); - Opal.defn(self, '$target', TMP_Event_target_6 = function $$target() { + Opal.def(self, '$target', $Event_target$6 = function $$target() { var self = this; return $(self["native"].target) - }, TMP_Event_target_6.$$arity = 0); + }, $Event_target$6.$$arity = 0); - Opal.defn(self, '$prevented?', TMP_Event_prevented$q_7 = function() { + Opal.def(self, '$prevented?', $Event_prevented$ques$7 = function() { var self = this; return self["native"].isDefaultPrevented() - }, TMP_Event_prevented$q_7.$$arity = 0); + }, $Event_prevented$ques$7.$$arity = 0); - Opal.defn(self, '$prevent', TMP_Event_prevent_8 = function $$prevent() { + Opal.def(self, '$prevent', $Event_prevent$8 = function $$prevent() { var self = this; return self["native"].preventDefault() - }, TMP_Event_prevent_8.$$arity = 0); + }, $Event_prevent$8.$$arity = 0); - Opal.defn(self, '$stopped?', TMP_Event_stopped$q_9 = function() { + Opal.def(self, '$stopped?', $Event_stopped$ques$9 = function() { var self = this; return self["native"].isPropagationStopped() - }, TMP_Event_stopped$q_9.$$arity = 0); + }, $Event_stopped$ques$9.$$arity = 0); - Opal.defn(self, '$stop', TMP_Event_stop_10 = function $$stop() { + Opal.def(self, '$stop', $Event_stop$10 = function $$stop() { var self = this; return self["native"].stopPropagation() - }, TMP_Event_stop_10.$$arity = 0); + }, $Event_stop$10.$$arity = 0); - Opal.defn(self, '$stop_immediate', TMP_Event_stop_immediate_11 = function $$stop_immediate() { + Opal.def(self, '$stop_immediate', $Event_stop_immediate$11 = function $$stop_immediate() { var self = this; return self["native"].stopImmediatePropagation() - }, TMP_Event_stop_immediate_11.$$arity = 0); + }, $Event_stop_immediate$11.$$arity = 0); - Opal.defn(self, '$kill', TMP_Event_kill_12 = function $$kill() { + Opal.def(self, '$kill', $Event_kill$12 = function $$kill() { var self = this; self.$stop(); return self.$prevent(); - }, TMP_Event_kill_12.$$arity = 0); + }, $Event_kill$12.$$arity = 0); - Opal.defn(self, '$page_x', TMP_Event_page_x_13 = function $$page_x() { + Opal.def(self, '$page_x', $Event_page_x$13 = function $$page_x() { var self = this; return self["native"].pageX - }, TMP_Event_page_x_13.$$arity = 0); + }, $Event_page_x$13.$$arity = 0); - Opal.defn(self, '$page_y', TMP_Event_page_y_14 = function $$page_y() { + Opal.def(self, '$page_y', $Event_page_y$14 = function $$page_y() { var self = this; return self["native"].pageY - }, TMP_Event_page_y_14.$$arity = 0); + }, $Event_page_y$14.$$arity = 0); - Opal.defn(self, '$touch_x', TMP_Event_touch_x_15 = function $$touch_x() { + Opal.def(self, '$touch_x', $Event_touch_x$15 = function $$touch_x() { var self = this; return self["native"].originalEvent.touches[0].pageX - }, TMP_Event_touch_x_15.$$arity = 0); + }, $Event_touch_x$15.$$arity = 0); - Opal.defn(self, '$touch_y', TMP_Event_touch_y_16 = function $$touch_y() { + Opal.def(self, '$touch_y', $Event_touch_y$16 = function $$touch_y() { var self = this; return self["native"].originalEvent.touches[0].pageY - }, TMP_Event_touch_y_16.$$arity = 0); + }, $Event_touch_y$16.$$arity = 0); - Opal.defn(self, '$ctrl_key', TMP_Event_ctrl_key_17 = function $$ctrl_key() { + Opal.def(self, '$ctrl_key', $Event_ctrl_key$17 = function $$ctrl_key() { var self = this; return self["native"].ctrlKey - }, TMP_Event_ctrl_key_17.$$arity = 0); + }, $Event_ctrl_key$17.$$arity = 0); - Opal.defn(self, '$meta_key', TMP_Event_meta_key_18 = function $$meta_key() { + Opal.def(self, '$meta_key', $Event_meta_key$18 = function $$meta_key() { var self = this; return self["native"].metaKey - }, TMP_Event_meta_key_18.$$arity = 0); + }, $Event_meta_key$18.$$arity = 0); - Opal.defn(self, '$alt_key', TMP_Event_alt_key_19 = function $$alt_key() { + Opal.def(self, '$alt_key', $Event_alt_key$19 = function $$alt_key() { var self = this; return self["native"].altKey - }, TMP_Event_alt_key_19.$$arity = 0); + }, $Event_alt_key$19.$$arity = 0); - Opal.defn(self, '$shift_key', TMP_Event_shift_key_20 = function $$shift_key() { + Opal.def(self, '$shift_key', $Event_shift_key$20 = function $$shift_key() { var self = this; return self["native"].shiftKey - }, TMP_Event_shift_key_20.$$arity = 0); + }, $Event_shift_key$20.$$arity = 0); - Opal.defn(self, '$key_code', TMP_Event_key_code_21 = function $$key_code() { + Opal.def(self, '$key_code', $Event_key_code$21 = function $$key_code() { var self = this; return self["native"].keyCode - }, TMP_Event_key_code_21.$$arity = 0); + }, $Event_key_code$21.$$arity = 0); - Opal.defn(self, '$which', TMP_Event_which_22 = function $$which() { + Opal.def(self, '$which', $Event_which$22 = function $$which() { var self = this; return self["native"].which - }, TMP_Event_which_22.$$arity = 0); - Opal.alias(self, "default_prevented?", "prevented?"); - Opal.alias(self, "prevent_default", "prevent"); - Opal.alias(self, "propagation_stopped?", "stopped?"); - Opal.alias(self, "stop_propagation", "stop"); - return Opal.alias(self, "stop_immediate_propagation", "stop_immediate"); + }, $Event_which$22.$$arity = 0); + $alias(self, "default_prevented?", "prevented?"); + $alias(self, "prevent_default", "prevent"); + $alias(self, "propagation_stopped?", "stopped?"); + $alias(self, "stop_propagation", "stop"); + return $alias(self, "stop_immediate_propagation", "stop_immediate"); })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["json"] = function(Opal) { +Opal.modules["json"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$raise', '$new', '$push', '$[]=', '$-', '$[]', '$create_id', '$json_create', '$const_get', '$attr_accessor', '$create_id=', '$===', '$parse', '$generate', '$from_object', '$merge', '$to_json', '$responds_to?', '$to_io', '$write', '$to_s', '$to_a', '$strftime']); (function($base, $parent_nesting) { - var $JSON, self = $JSON = $module($base, 'JSON'); + var self = $module($base, 'JSON'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_JSON_$$_1, TMP_JSON_parse_2, TMP_JSON_parse$B_3, TMP_JSON_load_4, TMP_JSON_from_object_5, TMP_JSON_generate_6, TMP_JSON_dump_7, $writer = nil; + var $nesting = [self].concat($parent_nesting), $JSON_$$$1, $JSON_parse$2, $JSON_parse$excl$3, $JSON_load$4, $JSON_from_object$5, $JSON_generate$6, $JSON_dump$7, $writer = nil; (function($base, $super, $parent_nesting) { - function $JSONError(){}; - var self = $JSONError = $klass($base, $super, 'JSONError', $JSONError); + var self = $klass($base, $super, 'JSONError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $ParserError(){}; - var self = $ParserError = $klass($base, $super, 'ParserError', $ParserError); + var self = $klass($base, $super, 'ParserError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'JSONError'), $nesting); + })($nesting[0], $$($nesting, 'JSONError'), $nesting); var $hasOwn = Opal.hasOwnProperty; @@ -5069,7 +5641,7 @@ Opal.modules["json"] = function(Opal) { try { return JSON.parse(source); } catch (e) { - self.$raise(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'JSON'), 'ParserError'), e.message); + self.$raise($$$($$($nesting, 'JSON'), 'ParserError'), e.message); } }; @@ -5086,7 +5658,7 @@ Opal.modules["json"] = function(Opal) { case 'boolean': return !!value; - case 'null': + case 'undefined': return nil; case 'object': @@ -5110,8 +5682,8 @@ Opal.modules["json"] = function(Opal) { } } - if (!options.parse && (klass = (hash)['$[]'](Opal.const_get_relative($nesting, 'JSON').$create_id())) != nil) { - return Opal.const_get_qualified('::', 'Object').$const_get(klass).$json_create(hash); + if (!options.parse && (klass = (hash)['$[]']($$($nesting, 'JSON').$create_id())) != nil) { + return $$$('::', 'Object').$const_get(klass).$json_create(hash); } else { return hash; @@ -5121,7 +5693,7 @@ Opal.modules["json"] = function(Opal) { }; ; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$attr_accessor("create_id") })(Opal.get_singleton_class(self), $nesting); @@ -5129,71 +5701,98 @@ Opal.modules["json"] = function(Opal) { $writer = ["json_class"]; $send(self, 'create_id=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.defs(self, '$[]', TMP_JSON_$$_1 = function(value, options) { + Opal.defs(self, '$[]', $JSON_$$$1 = function(value, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](value))) { + }; + if ($truthy($$($nesting, 'String')['$==='](value))) { return self.$parse(value, options) - } else { + } else { return self.$generate(value, options) - } - }, TMP_JSON_$$_1.$$arity = -2); - Opal.defs(self, '$parse', TMP_JSON_parse_2 = function $$parse(source, options) { + }; + }, $JSON_$$$1.$$arity = -2); + Opal.defs(self, '$parse', $JSON_parse$2 = function $$parse(source, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return self.$from_object($parse(source), options.$merge($hash2(["parse"], {"parse": true}))) - }, TMP_JSON_parse_2.$$arity = -2); - Opal.defs(self, '$parse!', TMP_JSON_parse$B_3 = function(source, options) { + }; + return self.$from_object($parse(source), options.$merge($hash2(["parse"], {"parse": true}))); + }, $JSON_parse$2.$$arity = -2); + Opal.defs(self, '$parse!', $JSON_parse$excl$3 = function(source, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return self.$parse(source, options) - }, TMP_JSON_parse$B_3.$$arity = -2); - Opal.defs(self, '$load', TMP_JSON_load_4 = function $$load(source, options) { + }; + return self.$parse(source, options); + }, $JSON_parse$excl$3.$$arity = -2); + Opal.defs(self, '$load', $JSON_load$4 = function $$load(source, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return self.$from_object($parse(source), options) - }, TMP_JSON_load_4.$$arity = -2); - Opal.defs(self, '$from_object', TMP_JSON_from_object_5 = function $$from_object(js_object, options) { - var $a, self = this, $writer = nil; + }; + return self.$from_object($parse(source), options); + }, $JSON_load$4.$$arity = -2); + Opal.defs(self, '$from_object', $JSON_from_object$5 = function $$from_object(js_object, options) { + var self = this, $ret_or_1 = nil, $writer = nil, $ret_or_2 = nil; + + if (options == null) { options = $hash2([], {}); - } - - ($truthy($a = options['$[]']("object_class")) ? $a : (($writer = ["object_class", Opal.const_get_relative($nesting, 'Hash')]), $send(options, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); - ($truthy($a = options['$[]']("array_class")) ? $a : (($writer = ["array_class", Opal.const_get_relative($nesting, 'Array')]), $send(options, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); - return to_opal(js_object, options.$$smap); - }, TMP_JSON_from_object_5.$$arity = -2); - Opal.defs(self, '$generate', TMP_JSON_generate_6 = function $$generate(obj, options) { + }; + if ($truthy(($ret_or_1 = options['$[]']("object_class")))) { + $ret_or_1 + } else { + + $writer = ["object_class", $$($nesting, 'Hash')]; + $send(options, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + if ($truthy(($ret_or_2 = options['$[]']("array_class")))) { + $ret_or_2 + } else { + + $writer = ["array_class", $$($nesting, 'Array')]; + $send(options, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return to_opal(js_object, options.$$smap);; + }, $JSON_from_object$5.$$arity = -2); + Opal.defs(self, '$generate', $JSON_generate$6 = function $$generate(obj, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return obj.$to_json(options) - }, TMP_JSON_generate_6.$$arity = -2); - Opal.defs(self, '$dump', TMP_JSON_dump_7 = function $$dump(obj, io, limit) { + }; + return obj.$to_json(options); + }, $JSON_generate$6.$$arity = -2); + return (Opal.defs(self, '$dump', $JSON_dump$7 = function $$dump(obj, io, limit) { var self = this, string = nil; + + if (io == null) { io = nil; - } + }; + if (limit == null) { limit = nil; - } - + }; string = self.$generate(obj); if ($truthy(io)) { @@ -5201,42 +5800,39 @@ Opal.modules["json"] = function(Opal) { io = io.$to_io()}; io.$write(string); return io; - } else { + } else { return string }; - }, TMP_JSON_dump_7.$$arity = -2); + }, $JSON_dump$7.$$arity = -2), nil) && 'dump'; })($nesting[0], $nesting); (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_to_json_8; + var $nesting = [self].concat($parent_nesting), $Object_to_json$8; - return (Opal.defn(self, '$to_json', TMP_Object_to_json_8 = function $$to_json() { + return (Opal.def(self, '$to_json', $Object_to_json$8 = function $$to_json() { var self = this; return self.$to_s().$to_json() - }, TMP_Object_to_json_8.$$arity = 0), nil) && 'to_json' + }, $Object_to_json$8.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); (function($base, $parent_nesting) { - var $Enumerable, self = $Enumerable = $module($base, 'Enumerable'); + var self = $module($base, 'Enumerable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerable_to_json_9; + var $nesting = [self].concat($parent_nesting), $Enumerable_to_json$9; - - Opal.defn(self, '$to_json', TMP_Enumerable_to_json_9 = function $$to_json() { + return (Opal.def(self, '$to_json', $Enumerable_to_json$9 = function $$to_json() { var self = this; return self.$to_a().$to_json() - }, TMP_Enumerable_to_json_9.$$arity = 0) + }, $Enumerable_to_json$9.$$arity = 0), nil) && 'to_json' })($nesting[0], $nesting); (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_to_json_10; + var $nesting = [self].concat($parent_nesting), $Array_to_json$10; - return (Opal.defn(self, '$to_json', TMP_Array_to_json_10 = function $$to_json() { + return (Opal.def(self, '$to_json', $Array_to_json$10 = function $$to_json() { var self = this; @@ -5246,29 +5842,27 @@ Opal.modules["json"] = function(Opal) { result.push((self[i]).$to_json()); } - return '[' + result.join(', ') + ']'; + return '[' + result.join(',') + ']'; - }, TMP_Array_to_json_10.$$arity = 0), nil) && 'to_json' + }, $Array_to_json$10.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Boolean(){}; - var self = $Boolean = $klass($base, $super, 'Boolean', $Boolean); + var self = $klass($base, $super, 'Boolean'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Boolean_to_json_11; + var $nesting = [self].concat($parent_nesting), $Boolean_to_json$11; - return (Opal.defn(self, '$to_json', TMP_Boolean_to_json_11 = function $$to_json() { + return (Opal.def(self, '$to_json', $Boolean_to_json$11 = function $$to_json() { var self = this; - return (self == true) ? 'true' : 'false' - }, TMP_Boolean_to_json_11.$$arity = 0), nil) && 'to_json' + return (self == true) ? 'true' : 'false'; + }, $Boolean_to_json$11.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); + var self = $klass($base, $super, 'Hash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_to_json_12; + var $nesting = [self].concat($parent_nesting), $Hash_to_json$12; - return (Opal.defn(self, '$to_json', TMP_Hash_to_json_12 = function $$to_json() { + return (Opal.def(self, '$to_json', $Hash_to_json$12 = function $$to_json() { var self = this; @@ -5287,77 +5881,75 @@ Opal.modules["json"] = function(Opal) { result.push((key).$to_s().$to_json() + ':' + (value).$to_json()); } - return '{' + result.join(', ') + '}'; + return '{' + result.join(',') + '}'; - }, TMP_Hash_to_json_12.$$arity = 0), nil) && 'to_json' + }, $Hash_to_json$12.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $NilClass(){}; - var self = $NilClass = $klass($base, $super, 'NilClass', $NilClass); + var self = $klass($base, $super, 'NilClass'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NilClass_to_json_13; + var $nesting = [self].concat($parent_nesting), $NilClass_to_json$13; - return (Opal.defn(self, '$to_json', TMP_NilClass_to_json_13 = function $$to_json() { + return (Opal.def(self, '$to_json', $NilClass_to_json$13 = function $$to_json() { var self = this; return "null" - }, TMP_NilClass_to_json_13.$$arity = 0), nil) && 'to_json' + }, $NilClass_to_json$13.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Numeric(){}; - var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric); + var self = $klass($base, $super, 'Numeric'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Numeric_to_json_14; + var $nesting = [self].concat($parent_nesting), $Numeric_to_json$14; - return (Opal.defn(self, '$to_json', TMP_Numeric_to_json_14 = function $$to_json() { + return (Opal.def(self, '$to_json', $Numeric_to_json$14 = function $$to_json() { var self = this; - return self.toString() - }, TMP_Numeric_to_json_14.$$arity = 0), nil) && 'to_json' + return self.toString(); + }, $Numeric_to_json$14.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); + + var $nesting = [self].concat($parent_nesting), $String_to_json$15; - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (Opal.def(self, '$to_json', $String_to_json$15 = function $$to_json() { + var self = this; - return Opal.alias(self, "to_json", "inspect") + return JSON.stringify(self); + }, $String_to_json$15.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Time(){}; - var self = $Time = $klass($base, $super, 'Time', $Time); + var self = $klass($base, $super, 'Time'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Time_to_json_15; + var $nesting = [self].concat($parent_nesting), $Time_to_json$16; - return (Opal.defn(self, '$to_json', TMP_Time_to_json_15 = function $$to_json() { + return (Opal.def(self, '$to_json', $Time_to_json$16 = function $$to_json() { var self = this; return self.$strftime("%FT%T%z").$to_json() - }, TMP_Time_to_json_15.$$arity = 0), nil) && 'to_json' + }, $Time_to_json$16.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $Date(){}; - var self = $Date = $klass($base, $super, 'Date', $Date); + var self = $klass($base, $super, 'Date'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Date_to_json_16, TMP_Date_as_json_17; + var $nesting = [self].concat($parent_nesting), $Date_to_json$17, $Date_as_json$18; - Opal.defn(self, '$to_json', TMP_Date_to_json_16 = function $$to_json() { + Opal.def(self, '$to_json', $Date_to_json$17 = function $$to_json() { var self = this; return self.$to_s().$to_json() - }, TMP_Date_to_json_16.$$arity = 0); - return (Opal.defn(self, '$as_json', TMP_Date_as_json_17 = function $$as_json() { + }, $Date_to_json$17.$$arity = 0); + return (Opal.def(self, '$as_json', $Date_as_json$18 = function $$as_json() { var self = this; return self.$to_s() - }, TMP_Date_as_json_17.$$arity = 0), nil) && 'as_json'; + }, $Date_as_json$18.$$arity = 0), nil) && 'as_json'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["promise"] = function(Opal) { +Opal.modules["promise"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } @@ -5367,47 +5959,47 @@ Opal.modules["promise"] = function(Opal) { function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$resolve', '$new', '$reject', '$attr_reader', '$===', '$value', '$has_key?', '$keys', '$!', '$==', '$<<', '$>>', '$exception?', '$[]', '$resolved?', '$rejected?', '$error', '$include?', '$action', '$realized?', '$raise', '$^', '$call', '$resolve!', '$exception!', '$any?', '$each', '$reject!', '$there_can_be_only_one!', '$then', '$to_proc', '$fail', '$always', '$trace', '$class', '$object_id', '$+', '$inspect', '$act?', '$nil?', '$prev', '$push', '$concat', '$it', '$proc', '$reverse', '$pop', '$<=', '$length', '$shift', '$-', '$wait', '$map', '$reduce', '$try', '$tap', '$all?', '$find']); - return (function($base, $super, $parent_nesting) { - function $Promise(){}; - var self = $Promise = $klass($base, $super, 'Promise', $Promise); + Opal.add_stubs(['$resolve', '$new', '$reject', '$attr_reader', '$===', '$value', '$key?', '$keys', '$!=', '$==', '$<<', '$>>', '$exception?', '$[]', '$resolved?', '$rejected?', '$!', '$error', '$include?', '$action', '$realized?', '$raise', '$^', '$call', '$resolve!', '$exception!', '$any?', '$each', '$reject!', '$there_can_be_only_one!', '$then', '$to_proc', '$fail', '$always', '$trace', '$class', '$object_id', '$+', '$inspect', '$rescue', '$act?', '$nil?', '$prev', '$push', '$concat', '$it', '$proc', '$reverse', '$pop', '$<=', '$length', '$shift', '$-', '$wait', '$map', '$reduce', '$try', '$tap', '$all?', '$find']); + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Promise'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Promise_value_1, TMP_Promise_error_2, TMP_Promise_when_3, TMP_Promise_initialize_4, TMP_Promise_value_5, TMP_Promise_act$q_6, TMP_Promise_action_7, TMP_Promise_exception$q_8, TMP_Promise_realized$q_9, TMP_Promise_resolved$q_10, TMP_Promise_rejected$q_11, TMP_Promise_$_12, TMP_Promise_$lt$lt_13, TMP_Promise_$gt$gt_14, TMP_Promise_resolve_15, TMP_Promise_resolve$B_17, TMP_Promise_reject_18, TMP_Promise_reject$B_20, TMP_Promise_exception$B_21, TMP_Promise_then_22, TMP_Promise_then$B_23, TMP_Promise_fail_24, TMP_Promise_fail$B_25, TMP_Promise_always_26, TMP_Promise_always$B_27, TMP_Promise_trace_28, TMP_Promise_trace$B_29, TMP_Promise_there_can_be_only_one$B_30, TMP_Promise_inspect_31; + var $nesting = [self].concat($parent_nesting), $Promise_value$1, $Promise_error$2, $Promise_when$3, $Promise_initialize$4, $Promise_value$5, $Promise_act$ques$6, $Promise_action$7, $Promise_exception$ques$8, $Promise_realized$ques$9, $Promise_resolved$ques$10, $Promise_rejected$ques$11, $Promise_$$12, $Promise_$lt$lt$13, $Promise_$gt$gt$14, $Promise_resolve$15, $Promise_resolve$excl$16, $Promise_reject$18, $Promise_reject$excl$19, $Promise_exception$excl$21, $Promise_then$22, $Promise_then$excl$23, $Promise_fail$24, $Promise_fail$excl$25, $Promise_always$26, $Promise_always$excl$27, $Promise_trace$28, $Promise_trace$excl$29, $Promise_there_can_be_only_one$excl$30, $Promise_inspect$31, $Promise_to_v2$32; - def.value = def.action = def.exception = def.realized = def.next = def.delayed = def.error = def.prev = nil; + self.$$prototype.value = self.$$prototype.action = self.$$prototype.exception = self.$$prototype.realized = self.$$prototype.next = self.$$prototype.delayed = self.$$prototype.error = self.$$prototype.prev = nil; - Opal.defs(self, '$value', TMP_Promise_value_1 = function $$value(value) { + Opal.defs(self, '$value', $Promise_value$1 = function $$value(value) { var self = this; return self.$new().$resolve(value) - }, TMP_Promise_value_1.$$arity = 1); - Opal.defs(self, '$error', TMP_Promise_error_2 = function $$error(value) { + }, $Promise_value$1.$$arity = 1); + Opal.defs(self, '$error', $Promise_error$2 = function $$error(value) { var self = this; return self.$new().$reject(value) - }, TMP_Promise_error_2.$$arity = 1); - Opal.defs(self, '$when', TMP_Promise_when_3 = function $$when($a_rest) { - var self = this, promises; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - promises = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - promises[$arg_idx - 0] = arguments[$arg_idx]; - } - return Opal.const_get_relative($nesting, 'When').$new(promises) - }, TMP_Promise_when_3.$$arity = -1); + }, $Promise_error$2.$$arity = 1); + Opal.defs(self, '$when', $Promise_when$3 = function $$when($a) { + var $post_args, promises, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + promises = $post_args;; + return $$($nesting, 'When').$new(promises); + }, $Promise_when$3.$$arity = -1); self.$attr_reader("error", "prev", "next"); - Opal.defn(self, '$initialize', TMP_Promise_initialize_4 = function $$initialize(action) { + Opal.def(self, '$initialize', $Promise_initialize$4 = function $$initialize(action) { var self = this; + + if (action == null) { action = $hash2([], {}); - } - + }; self.action = action; self.realized = false; self.exception = false; @@ -5416,73 +6008,77 @@ Opal.modules["promise"] = function(Opal) { self.delayed = false; self.prev = nil; return (self.next = []); - }, TMP_Promise_initialize_4.$$arity = -1); + }, $Promise_initialize$4.$$arity = -1); - Opal.defn(self, '$value', TMP_Promise_value_5 = function $$value() { + Opal.def(self, '$value', $Promise_value$5 = function $$value() { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Promise')['$==='](self.value))) { + if ($truthy($$($nesting, 'Promise')['$==='](self.value))) { return self.value.$value() - } else { + } else { return self.value } - }, TMP_Promise_value_5.$$arity = 0); + }, $Promise_value$5.$$arity = 0); - Opal.defn(self, '$act?', TMP_Promise_act$q_6 = function() { - var $a, self = this; + Opal.def(self, '$act?', $Promise_act$ques$6 = function() { + var self = this, $ret_or_1 = nil; - return ($truthy($a = self.action['$has_key?']("success")) ? $a : self.action['$has_key?']("always")) - }, TMP_Promise_act$q_6.$$arity = 0); + if ($truthy(($ret_or_1 = self.action['$key?']("success")))) { + return $ret_or_1 + } else { + return self.action['$key?']("always") + } + }, $Promise_act$ques$6.$$arity = 0); - Opal.defn(self, '$action', TMP_Promise_action_7 = function $$action() { + Opal.def(self, '$action', $Promise_action$7 = function $$action() { var self = this; return self.action.$keys() - }, TMP_Promise_action_7.$$arity = 0); + }, $Promise_action$7.$$arity = 0); - Opal.defn(self, '$exception?', TMP_Promise_exception$q_8 = function() { + Opal.def(self, '$exception?', $Promise_exception$ques$8 = function() { var self = this; return self.exception - }, TMP_Promise_exception$q_8.$$arity = 0); + }, $Promise_exception$ques$8.$$arity = 0); - Opal.defn(self, '$realized?', TMP_Promise_realized$q_9 = function() { + Opal.def(self, '$realized?', $Promise_realized$ques$9 = function() { var self = this; - return self.realized['$!']()['$!']() - }, TMP_Promise_realized$q_9.$$arity = 0); + return self.realized['$!='](false) + }, $Promise_realized$ques$9.$$arity = 0); - Opal.defn(self, '$resolved?', TMP_Promise_resolved$q_10 = function() { + Opal.def(self, '$resolved?', $Promise_resolved$ques$10 = function() { var self = this; return self.realized['$==']("resolve") - }, TMP_Promise_resolved$q_10.$$arity = 0); + }, $Promise_resolved$ques$10.$$arity = 0); - Opal.defn(self, '$rejected?', TMP_Promise_rejected$q_11 = function() { + Opal.def(self, '$rejected?', $Promise_rejected$ques$11 = function() { var self = this; return self.realized['$==']("reject") - }, TMP_Promise_rejected$q_11.$$arity = 0); + }, $Promise_rejected$ques$11.$$arity = 0); - Opal.defn(self, '$^', TMP_Promise_$_12 = function(promise) { + Opal.def(self, '$^', $Promise_$$12 = function(promise) { var self = this; promise['$<<'](self); self['$>>'](promise); return promise; - }, TMP_Promise_$_12.$$arity = 1); + }, $Promise_$$12.$$arity = 1); - Opal.defn(self, '$<<', TMP_Promise_$lt$lt_13 = function(promise) { + Opal.def(self, '$<<', $Promise_$lt$lt$13 = function(promise) { var self = this; self.prev = promise; return self; - }, TMP_Promise_$lt$lt_13.$$arity = 1); + }, $Promise_$lt$lt$13.$$arity = 1); - Opal.defn(self, '$>>', TMP_Promise_$gt$gt_14 = function(promise) { - var $a, self = this; + Opal.def(self, '$>>', $Promise_$gt$gt$14 = function(promise) { + var self = this, $ret_or_2 = nil; self.next['$<<'](promise); @@ -5491,392 +6087,502 @@ Opal.modules["promise"] = function(Opal) { } else if ($truthy(self['$resolved?']())) { promise.$resolve((function() {if ($truthy(self.delayed)) { return self.delayed['$[]'](0) - } else { + } else { return self.$value() }; return nil; })()) } else if ($truthy(self['$rejected?']())) { - if ($truthy(($truthy($a = self.action['$has_key?']("failure")['$!']()) ? $a : Opal.const_get_relative($nesting, 'Promise')['$===']((function() {if ($truthy(self.delayed)) { - return self.delayed['$[]'](0) + if ($truthy((function() {if ($truthy(($ret_or_2 = self.action['$key?']("failure")['$!']()))) { + return $ret_or_2 + } else { + return $$($nesting, 'Promise')['$===']((function() {if ($truthy(self.delayed)) { + return self.delayed['$[]'](0) } else { - return self.error - }; return nil; })())))) { + return self.error + }; return nil; })()) + }; return nil; })())) { promise.$reject((function() {if ($truthy(self.delayed)) { return self.delayed['$[]'](0) - } else { + } else { return self.$error() }; return nil; })()) } else if ($truthy(promise.$action()['$include?']("always"))) { promise.$reject((function() {if ($truthy(self.delayed)) { return self.delayed['$[]'](0) - } else { + } else { return self.$error() }; return nil; })())}}; return self; - }, TMP_Promise_$gt$gt_14.$$arity = 1); + }, $Promise_$gt$gt$14.$$arity = 1); - Opal.defn(self, '$resolve', TMP_Promise_resolve_15 = function $$resolve(value) { - var $a, self = this, block = nil, e = nil; + Opal.def(self, '$resolve', $Promise_resolve$15 = function $$resolve(value) { + var self = this, block = nil, $ret_or_3 = nil, e = nil; + + if (value == null) { value = nil; - } - + }; if ($truthy(self['$realized?']())) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "the promise has already been realized")}; - if ($truthy(Opal.const_get_relative($nesting, 'Promise')['$==='](value))) { + self.$raise($$($nesting, 'ArgumentError'), "the promise has already been realized")}; + if ($truthy($$($nesting, 'Promise')['$==='](value))) { return value['$<<'](self.prev)['$^'](self)}; try { - if ($truthy((block = ($truthy($a = self.action['$[]']("success")) ? $a : self.action['$[]']("always"))))) { + block = (function() {if ($truthy(($ret_or_3 = self.action['$[]']("success")))) { + return $ret_or_3 + } else { + return self.action['$[]']("always") + }; return nil; })(); + if ($truthy(block)) { value = block.$call(value)}; self['$resolve!'](value); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { self['$exception!'](e) - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } };; return self; - }, TMP_Promise_resolve_15.$$arity = -1); + }, $Promise_resolve$15.$$arity = -1); - Opal.defn(self, '$resolve!', TMP_Promise_resolve$B_17 = function(value) { - var TMP_16, self = this; + Opal.def(self, '$resolve!', $Promise_resolve$excl$16 = function(value) { + var $$17, self = this; self.realized = "resolve"; self.value = value; if ($truthy(self.next['$any?']())) { - return $send(self.next, 'each', [], (TMP_16 = function(p){var self = TMP_16.$$s || this; -if (p == null) p = nil; - return p.$resolve(value)}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)) - } else { + return $send(self.next, 'each', [], ($$17 = function(p){var self = $$17.$$s == null ? this : $$17.$$s; + + + + if (p == null) { + p = nil; + }; + return p.$resolve(value);}, $$17.$$s = self, $$17.$$arity = 1, $$17)) + } else { return (self.delayed = [value]) }; - }, TMP_Promise_resolve$B_17.$$arity = 1); + }, $Promise_resolve$excl$16.$$arity = 1); - Opal.defn(self, '$reject', TMP_Promise_reject_18 = function $$reject(value) { - var $a, self = this, block = nil, e = nil; + Opal.def(self, '$reject', $Promise_reject$18 = function $$reject(value) { + var self = this, block = nil, $ret_or_4 = nil, e = nil; + + if (value == null) { value = nil; - } - + }; if ($truthy(self['$realized?']())) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "the promise has already been realized")}; - if ($truthy(Opal.const_get_relative($nesting, 'Promise')['$==='](value))) { + self.$raise($$($nesting, 'ArgumentError'), "the promise has already been realized")}; + if ($truthy($$($nesting, 'Promise')['$==='](value))) { return value['$<<'](self.prev)['$^'](self)}; try { - if ($truthy((block = ($truthy($a = self.action['$[]']("failure")) ? $a : self.action['$[]']("always"))))) { + block = (function() {if ($truthy(($ret_or_4 = self.action['$[]']("failure")))) { + return $ret_or_4 + } else { + return self.action['$[]']("always") + }; return nil; })(); + if ($truthy(block)) { value = block.$call(value)}; - if ($truthy(self.action['$has_key?']("always"))) { + if ($truthy(self.action['$key?']("always"))) { self['$resolve!'](value) - } else { + } else { self['$reject!'](value) }; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { self['$exception!'](e) - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } };; return self; - }, TMP_Promise_reject_18.$$arity = -1); + }, $Promise_reject$18.$$arity = -1); - Opal.defn(self, '$reject!', TMP_Promise_reject$B_20 = function(value) { - var TMP_19, self = this; + Opal.def(self, '$reject!', $Promise_reject$excl$19 = function(value) { + var $$20, self = this; self.realized = "reject"; self.error = value; if ($truthy(self.next['$any?']())) { - return $send(self.next, 'each', [], (TMP_19 = function(p){var self = TMP_19.$$s || this; -if (p == null) p = nil; - return p.$reject(value)}, TMP_19.$$s = self, TMP_19.$$arity = 1, TMP_19)) - } else { + return $send(self.next, 'each', [], ($$20 = function(p){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (p == null) { + p = nil; + }; + return p.$reject(value);}, $$20.$$s = self, $$20.$$arity = 1, $$20)) + } else { return (self.delayed = [value]) }; - }, TMP_Promise_reject$B_20.$$arity = 1); + }, $Promise_reject$excl$19.$$arity = 1); - Opal.defn(self, '$exception!', TMP_Promise_exception$B_21 = function(error) { + Opal.def(self, '$exception!', $Promise_exception$excl$21 = function(error) { var self = this; self.exception = true; return self['$reject!'](error); - }, TMP_Promise_exception$B_21.$$arity = 1); + }, $Promise_exception$excl$21.$$arity = 1); - Opal.defn(self, '$then', TMP_Promise_then_22 = function $$then() { - var self = this, $iter = TMP_Promise_then_22.$$p, block = $iter || nil; + Opal.def(self, '$then', $Promise_then$22 = function $$then() { + var $iter = $Promise_then$22.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_then_22.$$p = null; - return self['$^'](Opal.const_get_relative($nesting, 'Promise').$new($hash2(["success"], {"success": block}))) - }, TMP_Promise_then_22.$$arity = 0); + if ($iter) $Promise_then$22.$$p = null; + + + if ($iter) $Promise_then$22.$$p = null;; + return self['$^']($$($nesting, 'Promise').$new($hash2(["success"], {"success": block}))); + }, $Promise_then$22.$$arity = 0); - Opal.defn(self, '$then!', TMP_Promise_then$B_23 = function() { - var self = this, $iter = TMP_Promise_then$B_23.$$p, block = $iter || nil; + Opal.def(self, '$then!', $Promise_then$excl$23 = function() { + var $iter = $Promise_then$excl$23.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_then$B_23.$$p = null; + if ($iter) $Promise_then$excl$23.$$p = null; + + if ($iter) $Promise_then$excl$23.$$p = null;; self['$there_can_be_only_one!'](); return $send(self, 'then', [], block.$to_proc()); - }, TMP_Promise_then$B_23.$$arity = 0); - Opal.alias(self, "do", "then"); - Opal.alias(self, "do!", "then!"); + }, $Promise_then$excl$23.$$arity = 0); + $alias(self, "do", "then"); + $alias(self, "do!", "then!"); - Opal.defn(self, '$fail', TMP_Promise_fail_24 = function $$fail() { - var self = this, $iter = TMP_Promise_fail_24.$$p, block = $iter || nil; + Opal.def(self, '$fail', $Promise_fail$24 = function $$fail() { + var $iter = $Promise_fail$24.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_fail_24.$$p = null; - return self['$^'](Opal.const_get_relative($nesting, 'Promise').$new($hash2(["failure"], {"failure": block}))) - }, TMP_Promise_fail_24.$$arity = 0); + if ($iter) $Promise_fail$24.$$p = null; + + + if ($iter) $Promise_fail$24.$$p = null;; + return self['$^']($$($nesting, 'Promise').$new($hash2(["failure"], {"failure": block}))); + }, $Promise_fail$24.$$arity = 0); - Opal.defn(self, '$fail!', TMP_Promise_fail$B_25 = function() { - var self = this, $iter = TMP_Promise_fail$B_25.$$p, block = $iter || nil; + Opal.def(self, '$fail!', $Promise_fail$excl$25 = function() { + var $iter = $Promise_fail$excl$25.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_fail$B_25.$$p = null; + if ($iter) $Promise_fail$excl$25.$$p = null; + + if ($iter) $Promise_fail$excl$25.$$p = null;; self['$there_can_be_only_one!'](); return $send(self, 'fail', [], block.$to_proc()); - }, TMP_Promise_fail$B_25.$$arity = 0); - Opal.alias(self, "rescue", "fail"); - Opal.alias(self, "catch", "fail"); - Opal.alias(self, "rescue!", "fail!"); - Opal.alias(self, "catch!", "fail!"); + }, $Promise_fail$excl$25.$$arity = 0); + $alias(self, "rescue", "fail"); + $alias(self, "catch", "fail"); + $alias(self, "rescue!", "fail!"); + $alias(self, "catch!", "fail!"); - Opal.defn(self, '$always', TMP_Promise_always_26 = function $$always() { - var self = this, $iter = TMP_Promise_always_26.$$p, block = $iter || nil; + Opal.def(self, '$always', $Promise_always$26 = function $$always() { + var $iter = $Promise_always$26.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_always_26.$$p = null; - return self['$^'](Opal.const_get_relative($nesting, 'Promise').$new($hash2(["always"], {"always": block}))) - }, TMP_Promise_always_26.$$arity = 0); + if ($iter) $Promise_always$26.$$p = null; + + + if ($iter) $Promise_always$26.$$p = null;; + return self['$^']($$($nesting, 'Promise').$new($hash2(["always"], {"always": block}))); + }, $Promise_always$26.$$arity = 0); - Opal.defn(self, '$always!', TMP_Promise_always$B_27 = function() { - var self = this, $iter = TMP_Promise_always$B_27.$$p, block = $iter || nil; + Opal.def(self, '$always!', $Promise_always$excl$27 = function() { + var $iter = $Promise_always$excl$27.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_always$B_27.$$p = null; + if ($iter) $Promise_always$excl$27.$$p = null; + + if ($iter) $Promise_always$excl$27.$$p = null;; self['$there_can_be_only_one!'](); return $send(self, 'always', [], block.$to_proc()); - }, TMP_Promise_always$B_27.$$arity = 0); - Opal.alias(self, "finally", "always"); - Opal.alias(self, "ensure", "always"); - Opal.alias(self, "finally!", "always!"); - Opal.alias(self, "ensure!", "always!"); + }, $Promise_always$excl$27.$$arity = 0); + $alias(self, "finally", "always"); + $alias(self, "ensure", "always"); + $alias(self, "finally!", "always!"); + $alias(self, "ensure!", "always!"); - Opal.defn(self, '$trace', TMP_Promise_trace_28 = function $$trace(depth) { - var self = this, $iter = TMP_Promise_trace_28.$$p, block = $iter || nil; + Opal.def(self, '$trace', $Promise_trace$28 = function $$trace(depth) { + var $iter = $Promise_trace$28.$$p, block = $iter || nil, self = this; + if ($iter) $Promise_trace$28.$$p = null; + + + if ($iter) $Promise_trace$28.$$p = null;; + if (depth == null) { depth = nil; - } - if ($iter) TMP_Promise_trace_28.$$p = null; - return self['$^'](Opal.const_get_relative($nesting, 'Trace').$new(depth, block)) - }, TMP_Promise_trace_28.$$arity = -1); - - Opal.defn(self, '$trace!', TMP_Promise_trace$B_29 = function($a_rest) { - var self = this, args, $iter = TMP_Promise_trace$B_29.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Promise_trace$B_29.$$p = null; + }; + return self['$^']($$($nesting, 'Trace').$new(depth, block)); + }, $Promise_trace$28.$$arity = -1); + + Opal.def(self, '$trace!', $Promise_trace$excl$29 = function($a) { + var $iter = $Promise_trace$excl$29.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Promise_trace$excl$29.$$p = null; + + if ($iter) $Promise_trace$excl$29.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self['$there_can_be_only_one!'](); return $send(self, 'trace', Opal.to_a(args), block.$to_proc()); - }, TMP_Promise_trace$B_29.$$arity = -1); + }, $Promise_trace$excl$29.$$arity = -1); - Opal.defn(self, '$there_can_be_only_one!', TMP_Promise_there_can_be_only_one$B_30 = function() { + Opal.def(self, '$there_can_be_only_one!', $Promise_there_can_be_only_one$excl$30 = function() { var self = this; if ($truthy(self.next['$any?']())) { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "a promise has already been chained") - } else { + return self.$raise($$($nesting, 'ArgumentError'), "a promise has already been chained") + } else { return nil } - }, TMP_Promise_there_can_be_only_one$B_30.$$arity = 0); + }, $Promise_there_can_be_only_one$excl$30.$$arity = 0); - Opal.defn(self, '$inspect', TMP_Promise_inspect_31 = function $$inspect() { - var $a, self = this, result = nil; + Opal.def(self, '$inspect', $Promise_inspect$31 = function $$inspect() { + var self = this, result = nil, $ret_or_5 = nil; result = "" + "#<" + (self.$class()) + "(" + (self.$object_id()) + ")"; if ($truthy(self.next['$any?']())) { result = $rb_plus(result, "" + " >> " + (self.next.$inspect()))}; - if ($truthy(self['$realized?']())) { - result = $rb_plus(result, "" + ": " + (($truthy($a = self.value) ? $a : self.error).$inspect()) + ">") + result = $rb_plus(result, (function() {if ($truthy(self['$realized?']())) { + return "" + ": " + ((function() {if ($truthy(($ret_or_5 = self.value))) { + return $ret_or_5 } else { - result = $rb_plus(result, ">") - }; + return self.error + }; return nil; })().$inspect()) + ">" + } else { + return ">" + }; return nil; })()); return result; - }, TMP_Promise_inspect_31.$$arity = 0); - (function($base, $super, $parent_nesting) { - function $Trace(){}; - var self = $Trace = $klass($base, $super, 'Trace', $Trace); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Trace_it_32, TMP_Trace_initialize_33; + }, $Promise_inspect$31.$$arity = 0); + $alias(self, "to_v1", "itself"); + + Opal.def(self, '$to_v2', $Promise_to_v2$32 = function $$to_v2() { + var $$33, $$34, self = this, v2 = nil; - Opal.defs(self, '$it', TMP_Trace_it_32 = function $$it(promise) { - var $a, self = this, current = nil, prev = nil; + v2 = $$($nesting, 'PromiseV2').$new(); + $send($send(self, 'then', [], ($$33 = function(i){var self = $$33.$$s == null ? this : $$33.$$s; - current = []; - if ($truthy(($truthy($a = promise['$act?']()) ? $a : promise.$prev()['$nil?']()))) { - current.$push(promise.$value())}; - if ($truthy((prev = promise.$prev()))) { + + if (i == null) { + i = nil; + }; + return v2.$resolve(i);}, $$33.$$s = self, $$33.$$arity = 1, $$33)), 'rescue', [], ($$34 = function(i){var self = $$34.$$s == null ? this : $$34.$$s; + + + + if (i == null) { + i = nil; + }; + return v2.$reject(i);}, $$34.$$s = self, $$34.$$arity = 1, $$34)); + return v2; + }, $Promise_to_v2$32.$$arity = 0); + $alias(self, "to_n", "to_v2"); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Trace'); + + var $nesting = [self].concat($parent_nesting), $Trace_it$35, $Trace_initialize$36; + + + Opal.defs(self, '$it', $Trace_it$35 = function $$it(promise) { + var self = this, current = nil, $ret_or_6 = nil, prev = nil; + + + current = []; + if ($truthy((function() {if ($truthy(($ret_or_6 = promise['$act?']()))) { + return $ret_or_6 + } else { + return promise.$prev()['$nil?']() + }; return nil; })())) { + current.$push(promise.$value())}; + prev = promise.$prev(); + if ($truthy(prev)) { return current.$concat(self.$it(prev)) - } else { + } else { return current }; - }, TMP_Trace_it_32.$$arity = 1); - return (Opal.defn(self, '$initialize', TMP_Trace_initialize_33 = function $$initialize(depth, block) { - var TMP_34, self = this, $iter = TMP_Trace_initialize_33.$$p, $yield = $iter || nil; + }, $Trace_it$35.$$arity = 1); + return (Opal.def(self, '$initialize', $Trace_initialize$36 = function $$initialize(depth, block) { + var $$37, $iter = $Trace_initialize$36.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Trace_initialize_33.$$p = null; + if ($iter) $Trace_initialize$36.$$p = null; self.depth = depth; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Trace_initialize_33, false), [$hash2(["success"], {"success": $send(self, 'proc', [], (TMP_34 = function(){var self = TMP_34.$$s || this, $a, trace = nil; + return $send2(self, $find_super(self, 'initialize', $Trace_initialize$36, false, true), 'initialize', [$hash2(["success"], {"success": $send(self, 'proc', [], ($$37 = function(){var self = $$37.$$s == null ? this : $$37.$$s, trace = nil, $ret_or_7 = nil; - - trace = Opal.const_get_relative($nesting, 'Trace').$it(self).$reverse(); + + trace = $$($nesting, 'Trace').$it(self).$reverse(); trace.$pop(); - if ($truthy(($truthy($a = depth) ? $rb_le(depth, trace.$length()) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_7 = depth))) { + return $rb_le(depth, trace.$length()) + } else { + return $ret_or_7 + }; return nil; })())) { trace.$shift($rb_minus(trace.$length(), depth))}; - return $send(block, 'call', Opal.to_a(trace));}, TMP_34.$$s = self, TMP_34.$$arity = 0, TMP_34))})], null); - }, TMP_Trace_initialize_33.$$arity = 2), nil) && 'initialize'; + return $send(block, 'call', Opal.to_a(trace));}, $$37.$$s = self, $$37.$$arity = 0, $$37))})], null); + }, $Trace_initialize$36.$$arity = 2), nil) && 'initialize'; })($nesting[0], self, $nesting); return (function($base, $super, $parent_nesting) { - function $When(){}; - var self = $When = $klass($base, $super, 'When', $When); + var self = $klass($base, $super, 'When'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_When_initialize_35, TMP_When_each_37, TMP_When_collect_39, TMP_When_inject_41, TMP_When_wait_44, TMP_When_$gt$gt_45, TMP_When_try_47; + var $nesting = [self].concat($parent_nesting), $When_initialize$38, $When_each$40, $When_collect$42, $When_inject$44, $When_wait$46, $When_$gt$gt$48, $When_try$50; - def.wait = nil; + self.$$prototype.wait = nil; - Opal.defn(self, '$initialize', TMP_When_initialize_35 = function $$initialize(promises) { - var TMP_36, self = this, $iter = TMP_When_initialize_35.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $When_initialize$38 = function $$initialize(promises) { + var $$39, $iter = $When_initialize$38.$$p, $yield = $iter || nil, self = this; + if ($iter) $When_initialize$38.$$p = null; + + if (promises == null) { promises = []; - } - if ($iter) TMP_When_initialize_35.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_When_initialize_35, false), [], null); + }; + $send2(self, $find_super(self, 'initialize', $When_initialize$38, false, true), 'initialize', [], null); self.wait = []; - return $send(promises, 'each', [], (TMP_36 = function(promise){var self = TMP_36.$$s || this; -if (promise == null) promise = nil; - return self.$wait(promise)}, TMP_36.$$s = self, TMP_36.$$arity = 1, TMP_36)); - }, TMP_When_initialize_35.$$arity = -1); + return $send(promises, 'each', [], ($$39 = function(promise){var self = $$39.$$s == null ? this : $$39.$$s; + + + + if (promise == null) { + promise = nil; + }; + return self.$wait(promise);}, $$39.$$s = self, $$39.$$arity = 1, $$39)); + }, $When_initialize$38.$$arity = -1); - Opal.defn(self, '$each', TMP_When_each_37 = function $$each() { - var TMP_38, self = this, $iter = TMP_When_each_37.$$p, block = $iter || nil; + Opal.def(self, '$each', $When_each$40 = function $$each() { + var $iter = $When_each$40.$$p, block = $iter || nil, $$41, self = this; - if ($iter) TMP_When_each_37.$$p = null; + if ($iter) $When_each$40.$$p = null; + + if ($iter) $When_each$40.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no block given") + } else { + self.$raise($$($nesting, 'ArgumentError'), "no block given") }; - return $send(self, 'then', [], (TMP_38 = function(values){var self = TMP_38.$$s || this; -if (values == null) values = nil; - return $send(values, 'each', [], block.$to_proc())}, TMP_38.$$s = self, TMP_38.$$arity = 1, TMP_38)); - }, TMP_When_each_37.$$arity = 0); + return $send(self, 'then', [], ($$41 = function(values){var self = $$41.$$s == null ? this : $$41.$$s; + + + + if (values == null) { + values = nil; + }; + return $send(values, 'each', [], block.$to_proc());}, $$41.$$s = self, $$41.$$arity = 1, $$41)); + }, $When_each$40.$$arity = 0); - Opal.defn(self, '$collect', TMP_When_collect_39 = function $$collect() { - var TMP_40, self = this, $iter = TMP_When_collect_39.$$p, block = $iter || nil; + Opal.def(self, '$collect', $When_collect$42 = function $$collect() { + var $iter = $When_collect$42.$$p, block = $iter || nil, $$43, self = this; - if ($iter) TMP_When_collect_39.$$p = null; + if ($iter) $When_collect$42.$$p = null; + + if ($iter) $When_collect$42.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no block given") + } else { + self.$raise($$($nesting, 'ArgumentError'), "no block given") }; - return $send(self, 'then', [], (TMP_40 = function(values){var self = TMP_40.$$s || this; -if (values == null) values = nil; - return Opal.const_get_relative($nesting, 'When').$new($send(values, 'map', [], block.$to_proc()))}, TMP_40.$$s = self, TMP_40.$$arity = 1, TMP_40)); - }, TMP_When_collect_39.$$arity = 0); - - Opal.defn(self, '$inject', TMP_When_inject_41 = function $$inject($a_rest) { - var TMP_42, self = this, args, $iter = TMP_When_inject_41.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_When_inject_41.$$p = null; - return $send(self, 'then', [], (TMP_42 = function(values){var self = TMP_42.$$s || this; -if (values == null) values = nil; - return $send(values, 'reduce', Opal.to_a(args), block.$to_proc())}, TMP_42.$$s = self, TMP_42.$$arity = 1, TMP_42)) - }, TMP_When_inject_41.$$arity = -1); - Opal.alias(self, "map", "collect"); - Opal.alias(self, "reduce", "inject"); + return $send(self, 'then', [], ($$43 = function(values){var self = $$43.$$s == null ? this : $$43.$$s; + + + + if (values == null) { + values = nil; + }; + return $$($nesting, 'When').$new($send(values, 'map', [], block.$to_proc()));}, $$43.$$s = self, $$43.$$arity = 1, $$43)); + }, $When_collect$42.$$arity = 0); - Opal.defn(self, '$wait', TMP_When_wait_44 = function $$wait(promise) { - var TMP_43, self = this; + Opal.def(self, '$inject', $When_inject$44 = function $$inject($a) { + var $iter = $When_inject$44.$$p, block = $iter || nil, $post_args, args, $$45, self = this; + if ($iter) $When_inject$44.$$p = null; - if ($truthy(Opal.const_get_relative($nesting, 'Promise')['$==='](promise))) { - } else { - promise = Opal.const_get_relative($nesting, 'Promise').$value(promise) + + if ($iter) $When_inject$44.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, 'then', [], ($$45 = function(values){var self = $$45.$$s == null ? this : $$45.$$s; + + + + if (values == null) { + values = nil; + }; + return $send(values, 'reduce', Opal.to_a(args), block.$to_proc());}, $$45.$$s = self, $$45.$$arity = 1, $$45)); + }, $When_inject$44.$$arity = -1); + $alias(self, "map", "collect"); + $alias(self, "reduce", "inject"); + + Opal.def(self, '$wait', $When_wait$46 = function $$wait(promise) { + var $$47, self = this; + + + if ($truthy($$($nesting, 'Promise')['$==='](promise))) { + } else { + promise = $$($nesting, 'Promise').$value(promise) }; if ($truthy(promise['$act?']())) { promise = promise.$then()}; self.wait['$<<'](promise); - $send(promise, 'always', [], (TMP_43 = function(){var self = TMP_43.$$s || this; + $send(promise, 'always', [], ($$47 = function(){var self = $$47.$$s == null ? this : $$47.$$s; if (self.next == null) self.next = nil; - if ($truthy(self.next['$any?']())) { + if ($truthy(self.next['$any?']())) { return self.$try() - } else { + } else { return nil - }}, TMP_43.$$s = self, TMP_43.$$arity = 0, TMP_43)); + }}, $$47.$$s = self, $$47.$$arity = 0, $$47)); return self; - }, TMP_When_wait_44.$$arity = 1); - Opal.alias(self, "and", "wait"); + }, $When_wait$46.$$arity = 1); + $alias(self, "and", "wait"); - Opal.defn(self, '$>>', TMP_When_$gt$gt_45 = function($a_rest) { - var TMP_46, self = this, $iter = TMP_When_$gt$gt_45.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$>>', $When_$gt$gt$48 = function($a) { + var $post_args, $rest_arg, $$49, $iter = $When_$gt$gt$48.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_When_$gt$gt_45.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return $send($send(self, Opal.find_super_dispatcher(self, '>>', TMP_When_$gt$gt_45, false), $zuper, $iter), 'tap', [], (TMP_46 = function(){var self = TMP_46.$$s || this; + if ($iter) $When_$gt$gt$48.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return $send($send2(self, $find_super(self, '>>', $When_$gt$gt$48, false, true), '>>', Opal.to_a($rest_arg), $iter), 'tap', [], ($$49 = function(){var self = $$49.$$s == null ? this : $$49.$$s; - return self.$try()}, TMP_46.$$s = self, TMP_46.$$arity = 0, TMP_46)) - }, TMP_When_$gt$gt_45.$$arity = -1); - return (Opal.defn(self, '$try', TMP_When_try_47 = function() { + return self.$try()}, $$49.$$s = self, $$49.$$arity = 0, $$49)); + }, $When_$gt$gt$48.$$arity = -1); + return (Opal.def(self, '$try', $When_try$50 = function() { var self = this, promise = nil; if ($truthy($send(self.wait, 'all?', [], "realized?".$to_proc()))) { - if ($truthy((promise = $send(self.wait, 'find', [], "rejected?".$to_proc())))) { + + promise = $send(self.wait, 'find', [], "rejected?".$to_proc()); + if ($truthy(promise)) { return self.$reject(promise.$error()) - } else { - return self.$resolve($send(self.wait, 'map', [], "value".$to_proc())) - } } else { + return self.$resolve($send(self.wait, 'map', [], "value".$to_proc())) + }; + } else { return nil } - }, TMP_When_try_47.$$arity = 0), nil) && 'try'; + }, $When_try$50.$$arity = 0), nil) && 'try'; })($nesting[0], self, $nesting); - })($nesting[0], null, $nesting) + })($nesting[0], null, $nesting); + return Opal.const_set($nesting[0], 'PromiseV1', $$($nesting, 'Promise')); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/jquery/http"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["opal/jquery/http"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var $$3, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$require', '$to_n', '$each', '$define_singleton_method', '$send', '$new', '$define_method', '$attr_reader', '$delete', '$update', '$upcase', '$succeed', '$fail', '$promise', '$parse', '$private', '$tap', '$proc', '$ok?', '$resolve', '$reject', '$from_object', '$call']); @@ -5885,55 +6591,70 @@ Opal.modules["opal/jquery/http"] = function(Opal) { self.$require("promise"); self.$require("opal/jquery/constants"); return (function($base, $super, $parent_nesting) { - function $HTTP(){}; - var self = $HTTP = $klass($base, $super, 'HTTP', $HTTP); + var self = $klass($base, $super, 'HTTP'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_HTTP_1, TMP_HTTP_setup_4, TMP_HTTP_setup$eq_5, TMP_HTTP_initialize_6, TMP_HTTP_send_7, TMP_HTTP_json_8, TMP_HTTP_ok$q_9, TMP_HTTP_get_header_10, TMP_HTTP_inspect_11, TMP_HTTP_promise_14, TMP_HTTP_succeed_15, TMP_HTTP_fail_16; + var $nesting = [self].concat($parent_nesting), $HTTP$1, $HTTP_setup$5, $HTTP_setup$eq$6, $HTTP_initialize$7, $HTTP_send$8, $HTTP_json$9, $HTTP_ok$ques$10, $HTTP_get_header$11, $HTTP_inspect$12, $HTTP_promise$13, $HTTP_succeed$16, $HTTP_fail$17; - def.settings = def.payload = def.url = def.method = def.handler = def.json = def.body = def.ok = def.xhr = def.promise = def.status_code = nil; + self.$$prototype.settings = self.$$prototype.payload = self.$$prototype.url = self.$$prototype.method = self.$$prototype.handler = self.$$prototype.json = self.$$prototype.body = self.$$prototype.ok = self.$$prototype.xhr = self.$$prototype.promise = self.$$prototype.status_code = nil; - var $ = Opal.const_get_relative($nesting, 'JQUERY_SELECTOR').$to_n(); + var $ = $$($nesting, 'JQUERY_SELECTOR').$to_n(); Opal.const_set($nesting[0], 'ACTIONS', ["get", "post", "put", "delete", "patch", "head"]); - $send(Opal.const_get_relative($nesting, 'ACTIONS'), 'each', [], (TMP_HTTP_1 = function(action){var self = TMP_HTTP_1.$$s || this, TMP_2, TMP_3; -if (action == null) action = nil; - - $send(self, 'define_singleton_method', [action], (TMP_2 = function(url, options){var self = TMP_2.$$s || this, block; + $send($$($nesting, 'ACTIONS'), 'each', [], ($HTTP$1 = function(action){var self = $HTTP$1.$$s == null ? this : $HTTP$1.$$s, $$2, $$4; + + + + if (action == null) { + action = nil; + }; + $send(self, 'define_singleton_method', [action], ($$2 = function(url, options){var self = $$2.$$s == null ? this : $$2.$$s, $iter = $$2.$$p, block = $iter || nil; - block = TMP_2.$$p || nil; - if (block) TMP_2.$$p = null; + + + if ($iter) $$2.$$p = null;; + + if (url == null) { + url = nil; + }; + if (options == null) { options = $hash2([], {}); - }if (url == null) url = nil; - return self.$new().$send(action, url, options, block)}, TMP_2.$$s = self, TMP_2.$$arity = -2, TMP_2)); - return $send(self, 'define_method', [action], (TMP_3 = function(url, options){var self = TMP_3.$$s || this, block; + }; + return self.$new().$send(action, url, options, block);}, $$2.$$s = self, $$2.$$arity = -2, $$2)); + return $send(self, 'define_method', [action], ($$4 = function(url, options){var self = $$4.$$s == null ? this : $$4.$$s, $iter = $$4.$$p, block = $iter || nil; - block = TMP_3.$$p || nil; - if (block) TMP_3.$$p = null; + + + if ($iter) $$4.$$p = null;; + + if (url == null) { + url = nil; + }; + if (options == null) { options = $hash2([], {}); - }if (url == null) url = nil; - return self.$send(action, url, options, block)}, TMP_3.$$s = self, TMP_3.$$arity = -2, TMP_3));}, TMP_HTTP_1.$$s = self, TMP_HTTP_1.$$arity = 1, TMP_HTTP_1)); - Opal.defs(self, '$setup', TMP_HTTP_setup_4 = function $$setup() { + }; + return self.$send(action, url, options, block);}, $$4.$$s = self, $$4.$$arity = -2, $$4));}, $HTTP$1.$$s = self, $HTTP$1.$$arity = 1, $HTTP$1)); + Opal.defs(self, '$setup', $HTTP_setup$5 = function $$setup() { var self = this; - return Opal.const_get_relative($nesting, 'Hash').$new($.ajaxSetup()) - }, TMP_HTTP_setup_4.$$arity = 0); - Opal.defs(self, '$setup=', TMP_HTTP_setup$eq_5 = function(settings) { + return $$($nesting, 'Hash').$new($.ajaxSetup()) + }, $HTTP_setup$5.$$arity = 0); + Opal.defs(self, '$setup=', $HTTP_setup$eq$6 = function(settings) { var self = this; return $.ajaxSetup(settings.$to_n()) - }, TMP_HTTP_setup$eq_5.$$arity = 1); + }, $HTTP_setup$eq$6.$$arity = 1); self.$attr_reader("body", "error_message", "method", "status_code", "url", "xhr"); - Opal.defn(self, '$initialize', TMP_HTTP_initialize_6 = function $$initialize() { + Opal.def(self, '$initialize', $HTTP_initialize$7 = function $$initialize() { var self = this; self.settings = $hash2([], {}); return (self.ok = true); - }, TMP_HTTP_initialize_6.$$arity = 0); + }, $HTTP_initialize$7.$$arity = 0); - Opal.defn(self, '$send', TMP_HTTP_send_7 = function $$send(method, url, options, block) { + Opal.def(self, '$send', $HTTP_send$8 = function $$send(method, url, options, block) { var $a, self = this, settings = nil, payload = nil; @@ -5967,57 +6688,71 @@ if (action == null) action = nil; ; if ($truthy(self.handler)) { return self - } else { + } else { return self.$promise() }; - }, TMP_HTTP_send_7.$$arity = 4); + }, $HTTP_send$8.$$arity = 4); - Opal.defn(self, '$json', TMP_HTTP_json_8 = function $$json() { - var $a, self = this; + Opal.def(self, '$json', $HTTP_json$9 = function $$json() { + var self = this, $ret_or_1 = nil; - return (self.json = ($truthy($a = self.json) ? $a : Opal.const_get_relative($nesting, 'JSON').$parse(self.body))) - }, TMP_HTTP_json_8.$$arity = 0); + return (self.json = (function() {if ($truthy(($ret_or_1 = self.json))) { + return $ret_or_1 + } else { + return $$($nesting, 'JSON').$parse(self.body) + }; return nil; })()) + }, $HTTP_json$9.$$arity = 0); - Opal.defn(self, '$ok?', TMP_HTTP_ok$q_9 = function() { + Opal.def(self, '$ok?', $HTTP_ok$ques$10 = function() { var self = this; return self.ok - }, TMP_HTTP_ok$q_9.$$arity = 0); + }, $HTTP_ok$ques$10.$$arity = 0); - Opal.defn(self, '$get_header', TMP_HTTP_get_header_10 = function $$get_header(key) { + Opal.def(self, '$get_header', $HTTP_get_header$11 = function $$get_header(key) { var self = this; var value = self.xhr.getResponseHeader(key); return (value === null) ? nil : value; - }, TMP_HTTP_get_header_10.$$arity = 1); + }, $HTTP_get_header$11.$$arity = 1); - Opal.defn(self, '$inspect', TMP_HTTP_inspect_11 = function $$inspect() { + Opal.def(self, '$inspect', $HTTP_inspect$12 = function $$inspect() { var self = this; return "" + "#" - }, TMP_HTTP_inspect_11.$$arity = 0); + }, $HTTP_inspect$12.$$arity = 0); self.$private(); - Opal.defn(self, '$promise', TMP_HTTP_promise_14 = function $$promise() { - var TMP_12, self = this; + Opal.def(self, '$promise', $HTTP_promise$13 = function $$promise() { + var $$14, self = this; if ($truthy(self.promise)) { return self.promise}; - return (self.promise = $send(Opal.const_get_relative($nesting, 'Promise').$new(), 'tap', [], (TMP_12 = function(promise){var self = TMP_12.$$s || this, TMP_13; -if (promise == null) promise = nil; - return (self.handler = $send(self, 'proc', [], (TMP_13 = function(res){var self = TMP_13.$$s || this; -if (res == null) res = nil; - if ($truthy(res['$ok?']())) { + return (self.promise = $send($$($nesting, 'Promise').$new(), 'tap', [], ($$14 = function(promise){var self = $$14.$$s == null ? this : $$14.$$s, $$15; + + + + if (promise == null) { + promise = nil; + }; + return (self.handler = $send(self, 'proc', [], ($$15 = function(res){var self = $$15.$$s == null ? this : $$15.$$s; + + + + if (res == null) { + res = nil; + }; + if ($truthy(res['$ok?']())) { return promise.$resolve(res) - } else { + } else { return promise.$reject(res) - }}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13)))}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12))); - }, TMP_HTTP_promise_14.$$arity = 0); + };}, $$15.$$s = self, $$15.$$arity = 1, $$15)));}, $$14.$$s = self, $$14.$$arity = 1, $$14))); + }, $HTTP_promise$13.$$arity = 0); - Opal.defn(self, '$succeed', TMP_HTTP_succeed_15 = function $$succeed(data, status, xhr) { + Opal.def(self, '$succeed', $HTTP_succeed$16 = function $$succeed(data, status, xhr) { var self = this; @@ -6027,16 +6762,16 @@ if (res == null) res = nil; self.status_code = xhr.status; if (typeof(data) === 'object') { - self.json = Opal.const_get_relative($nesting, 'JSON').$from_object(data); + self.json = $$($nesting, 'JSON').$from_object(data); } ; if ($truthy(self.handler)) { return self.handler.$call(self) - } else { + } else { return nil }; - }, TMP_HTTP_succeed_15.$$arity = 3); - return (Opal.defn(self, '$fail', TMP_HTTP_fail_16 = function $$fail(xhr, status, error) { + }, $HTTP_succeed$16.$$arity = 3); + return (Opal.def(self, '$fail', $HTTP_fail$17 = function $$fail(xhr, status, error) { var self = this; @@ -6048,897 +6783,1008 @@ if (res == null) res = nil; self.ok = false; if ($truthy(self.handler)) { return self.handler.$call(self) - } else { + } else { return nil }; - }, TMP_HTTP_fail_16.$$arity = 3), nil) && 'fail'; + }, $HTTP_fail$17.$$arity = 3), nil) && 'fail'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/jquery/kernel"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["opal/jquery/kernel"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_alert_1; + var $nesting = [self].concat($parent_nesting), $Kernel_alert$1; - - Opal.defn(self, '$alert', TMP_Kernel_alert_1 = function $$alert(msg) { + return (Opal.def(self, '$alert', $Kernel_alert$1 = function $$alert(msg) { var self = this; alert(msg); return nil; - }, TMP_Kernel_alert_1.$$arity = 1) + }, $Kernel_alert$1.$$arity = 1), nil) && 'alert' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/jquery"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["opal/jquery"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; - Opal.add_stubs(['$==', '$require']); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - - self.$require("opal/jquery/window"); - self.$require("opal/jquery/document"); - self.$require("opal/jquery/element"); - self.$require("opal/jquery/event"); - self.$require("opal/jquery/http"); - return self.$require("opal/jquery/kernel"); - } else { - return nil - } + Opal.add_stubs(['$require']); + + self.$require("opal/jquery/window"); + self.$require("opal/jquery/document"); + self.$require("opal/jquery/element"); + self.$require("opal/jquery/event"); + self.$require("opal/jquery/http"); + return self.$require("opal/jquery/kernel"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal-jquery"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["opal-jquery"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); return self.$require("opal/jquery") }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/utils"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["paggio/utils"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$size', '$min', '$scan', '$gsub', '$proc', '$===', '$merge', '$to_proc', '$merge!']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $parent_nesting) { - var $Utils, self = $Utils = $module($base, 'Utils'); + var self = $module($base, 'Utils'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Utils_heredoc_1, TMP_Utils_deep_merge_3, TMP_Utils_deep_merge$B_5; + var $nesting = [self].concat($parent_nesting), $Utils_heredoc$1, $Utils_deep_merge$2, $Utils_deep_merge$excl$4; - Opal.defs(self, '$heredoc', TMP_Utils_heredoc_1 = function $$heredoc(string) { + Opal.defs(self, '$heredoc', $Utils_heredoc$1 = function $$heredoc(string) { var self = this, indent = nil; indent = (function() { try { return string.$scan(/^[ \t]*(?=\S)/).$min().$size() } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { try { return 0 - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }})(); - return string.$gsub(new RegExp("" + "^[ \\t]{" + (indent) + "}"), ""); - }, TMP_Utils_heredoc_1.$$arity = 1); - Opal.defs(self, '$deep_merge', TMP_Utils_deep_merge_3 = function $$deep_merge(a, b) { - var TMP_2, self = this, merger = nil; + return string.$gsub(Opal.regexp(["^[ \\t]{", indent, "}"]), ""); + }, $Utils_heredoc$1.$$arity = 1); + Opal.defs(self, '$deep_merge', $Utils_deep_merge$2 = function $$deep_merge(a, b) { + var $$3, self = this, merger = nil; - merger = $send(self, 'proc', [], (TMP_2 = function(key, v1, v2){var self = TMP_2.$$s || this, $a; -if (key == null) key = nil;if (v1 == null) v1 = nil;if (v2 == null) v2 = nil; - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Hash')['$==='](v1)) ? Opal.const_get_relative($nesting, 'Hash')['$==='](v2) : $a))) { + merger = $send(self, 'proc', [], ($$3 = function(key, v1, v2){var self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil; + + + + if (key == null) { + key = nil; + }; + + if (v1 == null) { + v1 = nil; + }; + + if (v2 == null) { + v2 = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'Hash')['$==='](v1)))) { + return $$($nesting, 'Hash')['$==='](v2) + } else { + return $ret_or_1 + }; return nil; })())) { return $send(v1, 'merge', [v2], merger.$to_proc()) - } else { + } else { return v2 - }}, TMP_2.$$s = self, TMP_2.$$arity = 3, TMP_2)); + };}, $$3.$$s = self, $$3.$$arity = 3, $$3)); return $send(a, 'merge', [b], merger.$to_proc()); - }, TMP_Utils_deep_merge_3.$$arity = 2); - Opal.defs(self, '$deep_merge!', TMP_Utils_deep_merge$B_5 = function(a, b) { - var TMP_4, self = this, merger = nil; + }, $Utils_deep_merge$2.$$arity = 2); + return (Opal.defs(self, '$deep_merge!', $Utils_deep_merge$excl$4 = function(a, b) { + var $$5, self = this, merger = nil; - merger = $send(self, 'proc', [], (TMP_4 = function(key, v1, v2){var self = TMP_4.$$s || this, $a; -if (key == null) key = nil;if (v1 == null) v1 = nil;if (v2 == null) v2 = nil; - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Hash')['$==='](v1)) ? Opal.const_get_relative($nesting, 'Hash')['$==='](v2) : $a))) { + merger = $send(self, 'proc', [], ($$5 = function(key, v1, v2){var self = $$5.$$s == null ? this : $$5.$$s, $ret_or_2 = nil; + + + + if (key == null) { + key = nil; + }; + + if (v1 == null) { + v1 = nil; + }; + + if (v2 == null) { + v2 = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_2 = $$($nesting, 'Hash')['$==='](v1)))) { + return $$($nesting, 'Hash')['$==='](v2) + } else { + return $ret_or_2 + }; return nil; })())) { $send(v1, 'merge!', [v2], merger.$to_proc()); return v1; - } else { + } else { return v2 - }}, TMP_4.$$s = self, TMP_4.$$arity = 3, TMP_4)); + };}, $$5.$$s = self, $$5.$$arity = 3, $$5)); return $send(a, 'merge!', [b], merger.$to_proc()); - }, TMP_Utils_deep_merge$B_5.$$arity = 2); + }, $Utils_deep_merge$excl$4.$$arity = 2), nil) && 'deep_merge!'; })($nesting[0], $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/helpers"] = function(Opal) { +Opal.modules["paggio/html/helpers"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$define_method', '$instance_exec', '$to_proc', '$do', '$defhelper', '$[]=', '$-']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Element_defhelper_1, TMP_Element_defhelper$B_4; + var $nesting = [self].concat($parent_nesting), $Element_defhelper$1, $Element_defhelper$excl$3; - Opal.defs(self, '$defhelper', TMP_Element_defhelper_1 = function $$defhelper(name) { - var TMP_2, self = this, $iter = TMP_Element_defhelper_1.$$p, block = $iter || nil; - - if ($iter) TMP_Element_defhelper_1.$$p = null; - return $send(self, 'define_method', [name], (TMP_2 = function($a_rest){var self = TMP_2.$$s || this, body, args; + Opal.defs(self, '$defhelper', $Element_defhelper$1 = function $$defhelper(name) { + var $iter = $Element_defhelper$1.$$p, block = $iter || nil, $$2, self = this; - body = TMP_2.$$p || nil; - if (body) TMP_2.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + if ($iter) $Element_defhelper$1.$$p = null; + + if ($iter) $Element_defhelper$1.$$p = null;; + return $send(self, 'define_method', [name], ($$2 = function($a){var self = $$2.$$s == null ? this : $$2.$$s, $iter = $$2.$$p, body = $iter || nil, $post_args, args; + + + + if ($iter) $$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; $send(self, 'instance_exec', Opal.to_a(args), block.$to_proc()); if ($truthy(body)) { $send(self, 'do', [], body.$to_proc())}; - return self;}, TMP_2.$$s = self, TMP_2.$$arity = -1, TMP_2)) - }, TMP_Element_defhelper_1.$$arity = 1); - return Opal.defs(self, '$defhelper!', TMP_Element_defhelper$B_4 = function(name, attribute) { - var TMP_3, self = this; + return self;}, $$2.$$s = self, $$2.$$arity = -1, $$2)); + }, $Element_defhelper$1.$$arity = 1); + return (Opal.defs(self, '$defhelper!', $Element_defhelper$excl$3 = function(name, attribute) { + var $$4, self = this; + + if (attribute == null) { attribute = name; - } - return $send(self, 'defhelper', ["" + (name) + "!"], (TMP_3 = function(){var self = TMP_3.$$s || this, $writer = nil; + }; + return $send(self, 'defhelper', ["" + (name) + "!"], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s, $writer = nil; if (self.attributes == null) self.attributes = nil; - + $writer = [attribute, true]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)) - }, TMP_Element_defhelper$B_4.$$arity = -2); - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + return $writer[$rb_minus($writer["length"], 1)];}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + }, $Element_defhelper$excl$3.$$arity = -2), nil) && 'defhelper!'; + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/a"] = function(Opal) { +Opal.modules["paggio/html/element/a"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$each', '$defhelper', '$to_s', '$[]=', '$-', '$defhelper!', '$<<']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $A(){}; - var self = $A = $klass($base, $super, 'A', $A); + var self = $klass($base, $super, 'A'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_A_1, TMP_A_3; + var $nesting = [self].concat($parent_nesting), $A$1, $A$3; - $send($hash2(["href", "url", "rel", "relative", "target", "type", "lang", "language", "media"], {"href": "href", "url": "href", "rel": "rel", "relative": "rel", "target": "target", "type": "type", "lang": "hreflang", "language": "hreflang", "media": "media"}), 'each', [], (TMP_A_1 = function(name, attribute){var self = TMP_A_1.$$s || this, TMP_2; -if (name == null) name = nil;if (attribute == null) attribute = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + $send($hash2(["href", "url", "rel", "relative", "target", "type", "lang", "language", "media"], {"href": "href", "url": "href", "rel": "rel", "relative": "rel", "target": "target", "type": "type", "lang": "hreflang", "language": "hreflang", "media": "media"}), 'each', [], ($A$1 = function(name, attribute){var self = $A$1.$$s == null ? this : $A$1.$$s, $$2; + + + + if (name == null) { + name = nil; + }; + if (attribute == null) { + attribute = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_A_1.$$s = self, TMP_A_1.$$arity = 2, TMP_A_1)); + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $A$1.$$s = self, $A$1.$$arity = 2, $A$1)); self['$defhelper!']("download"); self['$defhelper!']("ping"); - return $send(self, 'defhelper', ["text"], (TMP_A_3 = function(string){var self = TMP_A_3.$$s || this; -if (string == null) string = nil; - return self['$<<'](string)}, TMP_A_3.$$s = self, TMP_A_3.$$arity = 1, TMP_A_3)); + return $send(self, 'defhelper', ["text"], ($A$3 = function(string){var self = $A$3.$$s == null ? this : $A$3.$$s; + + + + if (string == null) { + string = nil; + }; + return self['$<<'](string);}, $A$3.$$s = self, $A$3.$$arity = 1, $A$3)); })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/base"] = function(Opal) { +Opal.modules["paggio/html/element/base"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$each', '$defhelper', '$to_s', '$[]=', '$-']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Base(){}; - var self = $Base = $klass($base, $super, 'Base', $Base); + var self = $klass($base, $super, 'Base'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Base_1; + var $nesting = [self].concat($parent_nesting), $Base$1; - return $send($hash2(["href", "url", "target"], {"href": "href", "url": "href", "target": "target"}), 'each', [], (TMP_Base_1 = function(name, attribute){var self = TMP_Base_1.$$s || this, TMP_2; -if (name == null) name = nil;if (attribute == null) attribute = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + return $send($hash2(["href", "url", "target"], {"href": "href", "url": "href", "target": "target"}), 'each', [], ($Base$1 = function(name, attribute){var self = $Base$1.$$s == null ? this : $Base$1.$$s, $$2; + + + + if (name == null) { + name = nil; + }; + if (attribute == null) { + attribute = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Base_1.$$s = self, TMP_Base_1.$$arity = 2, TMP_Base_1)) + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Base$1.$$s = self, $Base$1.$$arity = 2, $Base$1)) })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/blockquote"] = function(Opal) { +Opal.modules["paggio/html/element/blockquote"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$defhelper', '$to_s', '$[]=', '$-']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Blockquote(){}; - var self = $Blockquote = $klass($base, $super, 'Blockquote', $Blockquote); + var self = $klass($base, $super, 'Blockquote'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Blockquote_1; + var $nesting = [self].concat($parent_nesting), $Blockquote$1; - return $send(self, 'defhelper', ["cite"], (TMP_Blockquote_1 = function(value){var self = TMP_Blockquote_1.$$s || this, $writer = nil; + return $send(self, 'defhelper', ["cite"], ($Blockquote$1 = function(value){var self = $Blockquote$1.$$s == null ? this : $Blockquote$1.$$s, $writer = nil; if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; - + + + + if (value == null) { + value = nil; + }; $writer = ["cite", value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_Blockquote_1.$$s = self, TMP_Blockquote_1.$$arity = 1, TMP_Blockquote_1)) + return $writer[$rb_minus($writer["length"], 1)];}, $Blockquote$1.$$s = self, $Blockquote$1.$$arity = 1, $Blockquote$1)) })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/button"] = function(Opal) { +Opal.modules["paggio/html/element/button"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$each', '$defhelper', '$to_s', '$[]=', '$-', '$defhelper!']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Button(){}; - var self = $Button = $klass($base, $super, 'Button', $Button); + var self = $klass($base, $super, 'Button'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Button_1; + var $nesting = [self].concat($parent_nesting), $Button$1; - $send($hash2(["form", "name", "type", "value", "action", "encoding", "method", "target"], {"form": "form", "name": "name", "type": "type", "value": "value", "action": "formaction", "encoding": "formenctype", "method": "formmethod", "target": "formtarget"}), 'each', [], (TMP_Button_1 = function(name, attributes){var self = TMP_Button_1.$$s || this, TMP_2; -if (name == null) name = nil;if (attributes == null) attributes = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + $send($hash2(["form", "name", "type", "value", "action", "encoding", "method", "target"], {"form": "form", "name": "name", "type": "type", "value": "value", "action": "formaction", "encoding": "formenctype", "method": "formmethod", "target": "formtarget"}), 'each', [], ($Button$1 = function(name, attributes){var self = $Button$1.$$s == null ? this : $Button$1.$$s, $$2; + + + + if (name == null) { + name = nil; + }; + if (attributes == null) { + attributes = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Button_1.$$s = self, TMP_Button_1.$$arity = 2, TMP_Button_1)); + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Button$1.$$s = self, $Button$1.$$arity = 2, $Button$1)); self['$defhelper!']("autofocus"); return self['$defhelper!']("disabled"); })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/canvas"] = function(Opal) { +Opal.modules["paggio/html/element/canvas"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$each', '$defhelper', '$to_s', '$[]=', '$-']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Canvas(){}; - var self = $Canvas = $klass($base, $super, 'Canvas', $Canvas); + var self = $klass($base, $super, 'Canvas'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Canvas_1; + var $nesting = [self].concat($parent_nesting), $Canvas$1; - return $send($hash2(["width", "height"], {"width": "width", "height": "height"}), 'each', [], (TMP_Canvas_1 = function(name, attribute){var self = TMP_Canvas_1.$$s || this, TMP_2; -if (name == null) name = nil;if (attribute == null) attribute = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + return $send($hash2(["width", "height"], {"width": "width", "height": "height"}), 'each', [], ($Canvas$1 = function(name, attribute){var self = $Canvas$1.$$s == null ? this : $Canvas$1.$$s, $$2; + + + + if (name == null) { + name = nil; + }; + if (attribute == null) { + attribute = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Canvas_1.$$s = self, TMP_Canvas_1.$$arity = 2, TMP_Canvas_1)) + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Canvas$1.$$s = self, $Canvas$1.$$arity = 2, $Canvas$1)) })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/embed"] = function(Opal) { +Opal.modules["paggio/html/element/embed"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$each', '$defhelper', '$[]=', '$-']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Embed(){}; - var self = $Embed = $klass($base, $super, 'Embed', $Embed); + var self = $klass($base, $super, 'Embed'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Embed_1; + var $nesting = [self].concat($parent_nesting), $Embed$1; + + return $send($hash2(["type", "height", "width"], {"type": "type", "height": "height", "width": "width"}), 'each', [], ($Embed$1 = function(name, attribute){var self = $Embed$1.$$s == null ? this : $Embed$1.$$s, $$2; - return $send($hash2(["type", "height", "width"], {"type": "type", "height": "height", "width": "width"}), 'each', [], (TMP_Embed_1 = function(name, attribute){var self = TMP_Embed_1.$$s || this, TMP_2; -if (name == null) name = nil;if (attribute == null) attribute = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + + if (name == null) { + name = nil; + }; + + if (attribute == null) { + attribute = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Embed_1.$$s = self, TMP_Embed_1.$$arity = 2, TMP_Embed_1)) + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Embed$1.$$s = self, $Embed$1.$$arity = 2, $Embed$1)) })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/img"] = function(Opal) { +Opal.modules["paggio/html/element/img"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$each', '$defhelper', '$to_s', '$[]=', '$-']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Img(){}; - var self = $Img = $klass($base, $super, 'Img', $Img); + var self = $klass($base, $super, 'Img'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Img_1, TMP_Img_3; + var $nesting = [self].concat($parent_nesting), $Img$1, $Img$3; - $send($hash2(["src", "url", "alt", "description", "height", "width", "map"], {"src": "src", "url": "src", "alt": "alt", "description": "alt", "height": "height", "width": "width", "map": "usemap"}), 'each', [], (TMP_Img_1 = function(name, attribute){var self = TMP_Img_1.$$s || this, TMP_2; -if (name == null) name = nil;if (attribute == null) attribute = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + $send($hash2(["src", "url", "alt", "description", "height", "width", "map"], {"src": "src", "url": "src", "alt": "alt", "description": "alt", "height": "height", "width": "width", "map": "usemap"}), 'each', [], ($Img$1 = function(name, attribute){var self = $Img$1.$$s == null ? this : $Img$1.$$s, $$2; + + + + if (name == null) { + name = nil; + }; + if (attribute == null) { + attribute = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Img_1.$$s = self, TMP_Img_1.$$arity = 2, TMP_Img_1)); - return $send(self, 'defhelper', ["map!"], (TMP_Img_3 = function(){var self = TMP_Img_3.$$s || this, $writer = nil; + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Img$1.$$s = self, $Img$1.$$arity = 2, $Img$1)); + return $send(self, 'defhelper', ["map!"], ($Img$3 = function(){var self = $Img$3.$$s == null ? this : $Img$3.$$s, $writer = nil; if (self.attributes == null) self.attributes = nil; - + $writer = ["ismap", true]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_Img_3.$$s = self, TMP_Img_3.$$arity = 0, TMP_Img_3)); + return $writer[$rb_minus($writer["length"], 1)];}, $Img$3.$$s = self, $Img$3.$$arity = 0, $Img$3)); })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/input"] = function(Opal) { +Opal.modules["paggio/html/element/input"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$each', '$defhelper', '$[]=', '$-']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Input(){}; - var self = $Input = $klass($base, $super, 'Input', $Input); + var self = $klass($base, $super, 'Input'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Input_1; + var $nesting = [self].concat($parent_nesting), $Input$1; - return $send($hash2(["type", "name", "value", "size", "place_holder", "read_only", "required", "limit"], {"type": "type", "name": "name", "value": "value", "size": "size", "place_holder": "placeholder", "read_only": "readonly", "required": "required", "limit": "maxlength"}), 'each', [], (TMP_Input_1 = function(name, attribute){var self = TMP_Input_1.$$s || this, TMP_2; -if (name == null) name = nil;if (attribute == null) attribute = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + return $send($hash2(["type", "name", "value", "size", "place_holder", "read_only", "required", "limit"], {"type": "type", "name": "name", "value": "value", "size": "size", "place_holder": "placeholder", "read_only": "readonly", "required": "required", "limit": "maxlength"}), 'each', [], ($Input$1 = function(name, attribute){var self = $Input$1.$$s == null ? this : $Input$1.$$s, $$2; + + + + if (name == null) { + name = nil; + }; + if (attribute == null) { + attribute = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Input_1.$$s = self, TMP_Input_1.$$arity = 2, TMP_Input_1)) + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Input$1.$$s = self, $Input$1.$$arity = 2, $Input$1)) })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/link"] = function(Opal) { +Opal.modules["paggio/html/element/link"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$each', '$defhelper', '$to_s', '$[]=', '$-']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Link(){}; - var self = $Link = $klass($base, $super, 'Link', $Link); + var self = $klass($base, $super, 'Link'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Link_1; + var $nesting = [self].concat($parent_nesting), $Link$1; - return $send($hash2(["cross_origin", "href", "href_lang", "media", "rel", "sizes", "type"], {"cross_origin": "crossorigin", "href": "href", "href_lang": "hreflang", "media": "media", "rel": "rel", "sizes": "sizes", "type": "type"}), 'each', [], (TMP_Link_1 = function(name, attribute){var self = TMP_Link_1.$$s || this, TMP_2; -if (name == null) name = nil;if (attribute == null) attribute = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + return $send($hash2(["cross_origin", "href", "href_lang", "media", "rel", "sizes", "type"], {"cross_origin": "crossorigin", "href": "href", "href_lang": "hreflang", "media": "media", "rel": "rel", "sizes": "sizes", "type": "type"}), 'each', [], ($Link$1 = function(name, attribute){var self = $Link$1.$$s == null ? this : $Link$1.$$s, $$2; + + + + if (name == null) { + name = nil; + }; + if (attribute == null) { + attribute = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Link_1.$$s = self, TMP_Link_1.$$arity = 2, TMP_Link_1)) + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Link$1.$$s = self, $Link$1.$$arity = 2, $Link$1)) })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/object"] = function(Opal) { +Opal.modules["paggio/html/element/object"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$each', '$defhelper', '$[]=', '$-']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_1; + var $nesting = [self].concat($parent_nesting), $Object$1; - return $send($hash2(["type", "data", "name", "height", "width"], {"type": "type", "data": "data", "name": "name", "height": "height", "width": "width"}), 'each', [], (TMP_Object_1 = function(name, attribute){var self = TMP_Object_1.$$s || this, TMP_2; -if (name == null) name = nil;if (attribute == null) attribute = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + return $send($hash2(["type", "data", "name", "height", "width"], {"type": "type", "data": "data", "name": "name", "height": "height", "width": "width"}), 'each', [], ($Object$1 = function(name, attribute){var self = $Object$1.$$s == null ? this : $Object$1.$$s, $$2; + + + + if (name == null) { + name = nil; + }; + if (attribute == null) { + attribute = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Object_1.$$s = self, TMP_Object_1.$$arity = 2, TMP_Object_1)) + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Object$1.$$s = self, $Object$1.$$arity = 2, $Object$1)) })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/option"] = function(Opal) { +Opal.modules["paggio/html/element/option"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$each', '$defhelper', '$[]=', '$-', '$defhelper!']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Option(){}; - var self = $Option = $klass($base, $super, 'Option', $Option); + var self = $klass($base, $super, 'Option'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Option_1; + var $nesting = [self].concat($parent_nesting), $Option$1; - $send(["label", "value"], 'each', [], (TMP_Option_1 = function(name){var self = TMP_Option_1.$$s || this, TMP_2; -if (name == null) name = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + $send(["label", "value"], 'each', [], ($Option$1 = function(name){var self = $Option$1.$$s == null ? this : $Option$1.$$s, $$2; + + + if (name == null) { + name = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Option_1.$$s = self, TMP_Option_1.$$arity = 1, TMP_Option_1)); + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Option$1.$$s = self, $Option$1.$$arity = 1, $Option$1)); self['$defhelper!']("disabled"); return self['$defhelper!']("selected"); })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/optgroup"] = function(Opal) { +Opal.modules["paggio/html/element/optgroup"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$each', '$defhelper', '$[]=', '$-', '$defhelper!']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Optgroup(){}; - var self = $Optgroup = $klass($base, $super, 'Optgroup', $Optgroup); + var self = $klass($base, $super, 'Optgroup'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Optgroup_1; + var $nesting = [self].concat($parent_nesting), $Optgroup$1; - $send(["label", "value"], 'each', [], (TMP_Optgroup_1 = function(name){var self = TMP_Optgroup_1.$$s || this, TMP_2; -if (name == null) name = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + $send(["label", "value"], 'each', [], ($Optgroup$1 = function(name){var self = $Optgroup$1.$$s == null ? this : $Optgroup$1.$$s, $$2; + + + if (name == null) { + name = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Optgroup_1.$$s = self, TMP_Optgroup_1.$$arity = 1, TMP_Optgroup_1)); + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Optgroup$1.$$s = self, $Optgroup$1.$$arity = 1, $Optgroup$1)); self['$defhelper!']("disabled"); return self['$defhelper!']("selected"); })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/select"] = function(Opal) { +Opal.modules["paggio/html/element/select"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$each', '$defhelper', '$[]=', '$-', '$defhelper!']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Select(){}; - var self = $Select = $klass($base, $super, 'Select', $Select); + var self = $klass($base, $super, 'Select'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Select_1; + var $nesting = [self].concat($parent_nesting), $Select$1; - $send(["form", "name", "size"], 'each', [], (TMP_Select_1 = function(name){var self = TMP_Select_1.$$s || this, TMP_2; -if (name == null) name = nil; - return $send(self, 'defhelper', [name], (TMP_2 = function(value){var self = TMP_2.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; + $send(["form", "name", "size"], 'each', [], ($Select$1 = function(name){var self = $Select$1.$$s == null ? this : $Select$1.$$s, $$2; + + + if (name == null) { + name = nil; + }; + return $send(self, 'defhelper', [name], ($$2 = function(value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, value]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_Select_1.$$s = self, TMP_Select_1.$$arity = 1, TMP_Select_1)); + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2));}, $Select$1.$$s = self, $Select$1.$$arity = 1, $Select$1)); self['$defhelper!']("auto_focus", "autofocus"); self['$defhelper!']("disabled"); return self['$defhelper!']("required"); })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element/td"] = function(Opal) { +Opal.modules["paggio/html/element/td"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$defhelper', '$to_s', '$[]=', '$-', '$join']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Td(){}; - var self = $Td = $klass($base, $super, 'Td', $Td); + var self = $klass($base, $super, 'Td'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Td_1, TMP_Td_2, TMP_Td_3; + var $nesting = [self].concat($parent_nesting), $Td$1, $Td$2, $Td$3; - $send(self, 'defhelper', ["columns"], (TMP_Td_1 = function(value){var self = TMP_Td_1.$$s || this, $writer = nil; + $send(self, 'defhelper', ["columns"], ($Td$1 = function(value){var self = $Td$1.$$s == null ? this : $Td$1.$$s, $writer = nil; if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; - + + + + if (value == null) { + value = nil; + }; $writer = ["colspan", value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_Td_1.$$s = self, TMP_Td_1.$$arity = 1, TMP_Td_1)); - $send(self, 'defhelper', ["rows"], (TMP_Td_2 = function(value){var self = TMP_Td_2.$$s || this, $writer = nil; + return $writer[$rb_minus($writer["length"], 1)];}, $Td$1.$$s = self, $Td$1.$$arity = 1, $Td$1)); + $send(self, 'defhelper', ["rows"], ($Td$2 = function(value){var self = $Td$2.$$s == null ? this : $Td$2.$$s, $writer = nil; if (self.attributes == null) self.attributes = nil; -if (value == null) value = nil; - + + + + if (value == null) { + value = nil; + }; $writer = ["rowspan", value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_Td_2.$$s = self, TMP_Td_2.$$arity = 1, TMP_Td_2)); - return $send(self, 'defhelper', ["headers"], (TMP_Td_3 = function($a_rest){var self = TMP_Td_3.$$s || this, args, $writer = nil; + return $writer[$rb_minus($writer["length"], 1)];}, $Td$2.$$s = self, $Td$2.$$arity = 1, $Td$2)); + return $send(self, 'defhelper', ["headers"], ($Td$3 = function($a){var self = $Td$3.$$s == null ? this : $Td$3.$$s, $post_args, args, $writer = nil; if (self.attributes == null) self.attributes = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; $writer = ["headers", args.$join(" ")]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_Td_3.$$s = self, TMP_Td_3.$$arity = -1, TMP_Td_3)); + return $writer[$rb_minus($writer["length"], 1)];}, $Td$3.$$s = self, $Td$3.$$arity = -1, $Td$3)); })($nesting[0], self, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html/element"] = function(Opal) { +Opal.modules["paggio/html/element"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; Opal.add_stubs(['$require', '$==', '$capitalize', '$const_defined?', '$new', '$const_get', '$each', '$to_proc', '$<<', '$end_with?', '$to_s', '$[]', '$[]=', '$-', '$===', '$has_key?', '$unshift', '$|', '$split', '$delete', '$to_a', '$deep_merge!', '$>>', '$extend!', '$pop', '$join', '$heredoc', '$defhelper', '$map', '$empty?', '$upcase', '$inspect']); @@ -6957,286 +7803,327 @@ Opal.modules["paggio/html/element"] = function(Opal) { self.$require("paggio/html/element/select"); self.$require("paggio/html/element/td"); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Element_new_1, TMP_Element_initialize_2, TMP_Element_each_3, TMP_Element_$lt$lt_4, TMP_Element_method_missing_5, TMP_Element_$$_6, TMP_Element_do_7, TMP_Element_$gt$gt_8, TMP_Element_9, TMP_Element_11, TMP_Element_inspect_13; + var $nesting = [self].concat($parent_nesting), $Element_new$1, $Element_initialize$2, $Element_each$3, $Element_$lt$lt$4, $Element_method_missing$5, $Element_$$$6, $Element_do$7, $Element_$gt$gt$8, $Element$9, $Element$11, $Element_inspect$13; - def.children = def.attributes = def.class_names = def.owner = def.name = nil; + self.$$prototype.children = self.$$prototype.attributes = self.$$prototype.class_names = self.$$prototype.owner = self.$$prototype.name = nil; - Opal.defs(self, '$new', TMP_Element_new_1 = function(owner, name, attributes) { - var self = this, $iter = TMP_Element_new_1.$$p, $yield = $iter || nil, const$ = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.defs(self, '$new', $Element_new$1 = function(owner, name, attributes) { + var $iter = $Element_new$1.$$p, $yield = $iter || nil, self = this, const$ = nil; + if ($iter) $Element_new$1.$$p = null; + + if (attributes == null) { attributes = $hash2([], {}); - } - if ($iter) TMP_Element_new_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - - if (self['$=='](Opal.const_get_relative($nesting, 'Element'))) { - } else { - return $send(self, Opal.find_super_dispatcher(self, 'new', TMP_Element_new_1, false, $Element), $zuper, $iter) + }; + if (self['$==']($$($nesting, 'Element'))) { + } else { + return $send2(self, $find_super(self, 'new', $Element_new$1, false, true), 'new', [owner, name, attributes], $iter) }; const$ = name.$capitalize(); if ($truthy(self['$const_defined?'](const$))) { return self.$const_get(const$).$new(owner, name, attributes) - } else { - return $send(self, Opal.find_super_dispatcher(self, 'new', TMP_Element_new_1, false, $Element), $zuper, $iter) + } else { + return $send2(self, $find_super(self, 'new', $Element_new$1, false, true), 'new', [owner, name, attributes], $iter) }; - }, TMP_Element_new_1.$$arity = -3); + }, $Element_new$1.$$arity = -3); - Opal.defn(self, '$initialize', TMP_Element_initialize_2 = function $$initialize(owner, name, attributes) { + Opal.def(self, '$initialize', $Element_initialize$2 = function $$initialize(owner, name, attributes) { var self = this; + + if (attributes == null) { attributes = $hash2([], {}); - } - + }; self.owner = owner; self.name = name; self.attributes = attributes; self.children = []; return (self.class_names = []); - }, TMP_Element_initialize_2.$$arity = -3); + }, $Element_initialize$2.$$arity = -3); - Opal.defn(self, '$each', TMP_Element_each_3 = function $$each() { - var self = this, $iter = TMP_Element_each_3.$$p, block = $iter || nil; + Opal.def(self, '$each', $Element_each$3 = function $$each() { + var $iter = $Element_each$3.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Element_each_3.$$p = null; - return $send(self.children, 'each', [], block.$to_proc()) - }, TMP_Element_each_3.$$arity = 0); + if ($iter) $Element_each$3.$$p = null; + + + if ($iter) $Element_each$3.$$p = null;; + return $send(self.children, 'each', [], block.$to_proc()); + }, $Element_each$3.$$arity = 0); - Opal.defn(self, '$<<', TMP_Element_$lt$lt_4 = function(what) { + Opal.def(self, '$<<', $Element_$lt$lt$4 = function(what) { var self = this; self.children['$<<'](what); return self; - }, TMP_Element_$lt$lt_4.$$arity = 1); + }, $Element_$lt$lt$4.$$arity = 1); - Opal.defn(self, '$method_missing', TMP_Element_method_missing_5 = function $$method_missing(name, content) { - var $a, self = this, $iter = TMP_Element_method_missing_5.$$p, block = $iter || nil, $writer = nil; + Opal.def(self, '$method_missing', $Element_method_missing$5 = function $$method_missing(name, content) { + var $iter = $Element_method_missing$5.$$p, block = $iter || nil, self = this, $writer = nil, $ret_or_1 = nil; + if ($iter) $Element_method_missing$5.$$p = null; + + + if ($iter) $Element_method_missing$5.$$p = null;; + if (content == null) { content = nil; - } - if ($iter) TMP_Element_method_missing_5.$$p = null; - + }; if ($truthy(name.$to_s()['$end_with?']("!"))) { $writer = ["id", name['$[]']($range(0, -2, false))]; $send(self.attributes, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { self.class_names['$<<'](name) }; - if ($truthy(Opal.const_get_qualified('::', 'Hash')['$==='](content))) { + if ($truthy($$$('::', 'Hash')['$==='](content))) { - if ($truthy(($truthy($a = content['$has_key?']("class")) ? $a : content['$has_key?']("classes")))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = content['$has_key?']("class")))) { + return $ret_or_1 + } else { + return content['$has_key?']("classes") + }; return nil; })())) { $send(self.class_names, 'unshift', Opal.to_a(content.$delete("class").$to_s().$split()['$|'](content.$delete("classes").$to_a())))}; - Opal.const_get_qualified(Opal.const_get_qualified('::', 'Paggio'), 'Utils')['$deep_merge!'](self.attributes, content); + $$$($$$('::', 'Paggio'), 'Utils')['$deep_merge!'](self.attributes, content); } else if ($truthy(content)) { self['$>>'](content)}; if ($truthy(block)) { $send(self.owner, 'extend!', [self], block.$to_proc())}; return self; - }, TMP_Element_method_missing_5.$$arity = -2); + }, $Element_method_missing$5.$$arity = -2); - Opal.defn(self, '$[]', TMP_Element_$$_6 = function($a_rest) { - var self = this, names, last = nil; + Opal.def(self, '$[]', $Element_$$$6 = function($a) { + var $post_args, names, self = this, last = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; if ($truthy((last = self.class_names.$pop()))) { self.class_names['$<<']([last].concat(Opal.to_a(names)).$join("-"))}; return self; - }, TMP_Element_$$_6.$$arity = -1); + }, $Element_$$$6.$$arity = -1); - Opal.defn(self, '$do', TMP_Element_do_7 = function() { - var self = this, $iter = TMP_Element_do_7.$$p, block = $iter || nil; + Opal.def(self, '$do', $Element_do$7 = function() { + var $iter = $Element_do$7.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Element_do_7.$$p = null; + if ($iter) $Element_do$7.$$p = null; + + if ($iter) $Element_do$7.$$p = null;; $send(self.owner, 'extend!', [self], block.$to_proc()); return self; - }, TMP_Element_do_7.$$arity = 0); + }, $Element_do$7.$$arity = 0); - Opal.defn(self, '$>>', TMP_Element_$gt$gt_8 = function(content) { + Opal.def(self, '$>>', $Element_$gt$gt$8 = function(content) { var self = this; - self['$<<'](Opal.const_get_qualified(Opal.const_get_qualified('::', 'Paggio'), 'Utils').$heredoc(content.$to_s())); + self['$<<']($$$($$$('::', 'Paggio'), 'Utils').$heredoc(content.$to_s())); return self; - }, TMP_Element_$gt$gt_8.$$arity = 1); - $send(self, 'defhelper', ["style"], (TMP_Element_9 = function(hash){var self = TMP_Element_9.$$s || this, TMP_10, $writer = nil; + }, $Element_$gt$gt$8.$$arity = 1); + $send(self, 'defhelper', ["style"], ($Element$9 = function(hash){var self = $Element$9.$$s == null ? this : $Element$9.$$s, $$10, $writer = nil; if (self.attributes == null) self.attributes = nil; -if (hash == null) hash = nil; - - $writer = ["style", $send(hash, 'map', [], (TMP_10 = function(name, value){var self = TMP_10.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return "" + (name) + ": " + (value)}, TMP_10.$$s = self, TMP_10.$$arity = 2, TMP_10)).$join(";")]; + + + + if (hash == null) { + hash = nil; + }; + $writer = ["style", $send(hash, 'map', [], ($$10 = function(name, value){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return "" + (name) + ": " + (value);}, $$10.$$s = self, $$10.$$arity = 2, $$10)).$join(";")]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_Element_9.$$s = self, TMP_Element_9.$$arity = 1, TMP_Element_9)); - $send(self, 'defhelper', ["data"], (TMP_Element_11 = function(hash){var self = TMP_Element_11.$$s || this, TMP_12; -if (hash == null) hash = nil; - return $send(hash, 'each', [], (TMP_12 = function(name, value){var self = TMP_12.$$s || this, $writer = nil; - if (self.attributes == null) self.attributes = nil; -if (name == null) name = nil;if (value == null) value = nil; + return $writer[$rb_minus($writer["length"], 1)];}, $Element$9.$$s = self, $Element$9.$$arity = 1, $Element$9)); + $send(self, 'defhelper', ["data"], ($Element$11 = function(hash){var self = $Element$11.$$s == null ? this : $Element$11.$$s, $$12; + + + if (hash == null) { + hash = nil; + }; + return $send(hash, 'each', [], ($$12 = function(name, value){var self = $$12.$$s == null ? this : $$12.$$s, $writer = nil; + if (self.attributes == null) self.attributes = nil; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; $writer = ["" + "data-" + (name), value.$to_s()]; $send(self.attributes, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12))}, TMP_Element_11.$$s = self, TMP_Element_11.$$arity = 1, TMP_Element_11)); - return (Opal.defn(self, '$inspect', TMP_Element_inspect_13 = function $$inspect() { + return $writer[$rb_minus($writer["length"], 1)];}, $$12.$$s = self, $$12.$$arity = 2, $$12));}, $Element$11.$$s = self, $Element$11.$$arity = 1, $Element$11)); + return (Opal.def(self, '$inspect', $Element_inspect$13 = function $$inspect() { var self = this; if ($truthy(self.children['$empty?']())) { return "" + "#" - } else { + } else { return "" + "#" } - }, TMP_Element_inspect_13.$$arity = 0), nil) && 'inspect'; - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + }, $Element_inspect$13.$$arity = 0), nil) && 'inspect'; + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/html"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; +Opal.modules["paggio/html"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $range = Opal.range; Opal.add_stubs(['$require', '$attr_reader', '$raise', '$==', '$arity', '$instance_exec', '$to_proc', '$call', '$<<', '$first', '$===', '$instance_eval', '$each', '$end_with?', '$to_s', '$empty?', '$heredoc', '$shift', '$new', '$[]', '$inspect']); self.$require("paggio/html/helpers"); self.$require("paggio/html/element"); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); + var self = $klass($base, $super, 'HTML'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_HTML_initialize_1, TMP_HTML_$lt$lt_2, TMP_HTML_root$B_3, TMP_HTML_roots$B_4, TMP_HTML_element$B_5, TMP_HTML_extend$B_6, TMP_HTML_each_8, TMP_HTML_method_missing_9, TMP_HTML_inspect_11; + var $nesting = [self].concat($parent_nesting), $HTML_initialize$1, $HTML_$lt$lt$2, $HTML_root$excl$3, $HTML_roots$excl$4, $HTML_element$excl$5, $HTML_extend$excl$6, $HTML_each$8, $HTML_method_missing$9, $HTML_inspect$11; - def.current = def.roots = def.version = nil; + self.$$prototype.current = self.$$prototype.roots = self.$$prototype.version = nil; self.$attr_reader("version"); - Opal.defn(self, '$initialize', TMP_HTML_initialize_1 = function $$initialize(version) { - var self = this, $iter = TMP_HTML_initialize_1.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $HTML_initialize$1 = function $$initialize(version) { + var $iter = $HTML_initialize$1.$$p, block = $iter || nil, self = this; + if ($iter) $HTML_initialize$1.$$p = null; + + + if ($iter) $HTML_initialize$1.$$p = null;; + if (version == null) { version = 5; - } - if ($iter) TMP_HTML_initialize_1.$$p = null; - + }; if ($truthy(block)) { - } else { - Opal.const_get_qualified('::', 'Kernel').$raise(Opal.const_get_qualified('::', 'ArgumentError'), "no block given") + } else { + $$$('::', 'Kernel').$raise($$$('::', 'ArgumentError'), "no block given") }; self.version = version; self.roots = []; self.current = nil; if (block.$arity()['$=='](0)) { return $send(self, 'instance_exec', [], block.$to_proc()) - } else { + } else { return block.$call(self) }; - }, TMP_HTML_initialize_1.$$arity = -1); + }, $HTML_initialize$1.$$arity = -1); - Opal.defn(self, '$<<', TMP_HTML_$lt$lt_2 = function(what) { - var $a, self = this; + Opal.def(self, '$<<', $HTML_$lt$lt$2 = function(what) { + var self = this, $ret_or_1 = nil; - return ($truthy($a = self.current) ? $a : self.roots)['$<<'](what) - }, TMP_HTML_$lt$lt_2.$$arity = 1); + return (function() {if ($truthy(($ret_or_1 = self.current))) { + return $ret_or_1 + } else { + return self.roots + }; return nil; })()['$<<'](what) + }, $HTML_$lt$lt$2.$$arity = 1); - Opal.defn(self, '$root!', TMP_HTML_root$B_3 = function() { + Opal.def(self, '$root!', $HTML_root$excl$3 = function() { var self = this; return self.roots.$first() - }, TMP_HTML_root$B_3.$$arity = 0); + }, $HTML_root$excl$3.$$arity = 0); - Opal.defn(self, '$roots!', TMP_HTML_roots$B_4 = function() { + Opal.def(self, '$roots!', $HTML_roots$excl$4 = function() { var self = this; return self.roots - }, TMP_HTML_roots$B_4.$$arity = 0); + }, $HTML_roots$excl$4.$$arity = 0); - Opal.defn(self, '$element!', TMP_HTML_element$B_5 = function() { + Opal.def(self, '$element!', $HTML_element$excl$5 = function() { var self = this; return self.current - }, TMP_HTML_element$B_5.$$arity = 0); + }, $HTML_element$excl$5.$$arity = 0); - Opal.defn(self, '$extend!', TMP_HTML_extend$B_6 = function(element) { - var $a, TMP_7, self = this, $iter = TMP_HTML_extend$B_6.$$p, block = $iter || nil, old = nil, result = nil; + Opal.def(self, '$extend!', $HTML_extend$excl$6 = function(element) { + var $iter = $HTML_extend$excl$6.$$p, block = $iter || nil, $a, $$7, self = this, old = nil, result = nil; + if ($iter) $HTML_extend$excl$6.$$p = null; + + + if ($iter) $HTML_extend$excl$6.$$p = null;; + if (element == null) { element = nil; - } - if ($iter) TMP_HTML_extend$B_6.$$p = null; - + }; $a = [self.current, element], (old = $a[0]), (self.current = $a[1]), $a; result = block.$call(self); - if ($truthy(Opal.const_get_qualified('::', 'String')['$==='](result))) { - $send(self.current, 'instance_eval', [], (TMP_7 = function(){var self = TMP_7.$$s || this; + if ($truthy($$$('::', 'String')['$==='](result))) { + $send(self.current, 'instance_eval', [], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; - return (self.inner_html = result)}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7))}; + return (self.inner_html = result)}, $$7.$$s = self, $$7.$$arity = 0, $$7))}; self.current = old; return self; - }, TMP_HTML_extend$B_6.$$arity = -1); + }, $HTML_extend$excl$6.$$arity = -1); - Opal.defn(self, '$each', TMP_HTML_each_8 = function $$each() { - var self = this, $iter = TMP_HTML_each_8.$$p, block = $iter || nil; + Opal.def(self, '$each', $HTML_each$8 = function $$each() { + var $iter = $HTML_each$8.$$p, block = $iter || nil, self = this; - if ($iter) TMP_HTML_each_8.$$p = null; - return $send(self.roots, 'each', [], block.$to_proc()) - }, TMP_HTML_each_8.$$arity = 0); + if ($iter) $HTML_each$8.$$p = null; + + + if ($iter) $HTML_each$8.$$p = null;; + return $send(self.roots, 'each', [], block.$to_proc()); + }, $HTML_each$8.$$arity = 0); - Opal.defn(self, '$method_missing', TMP_HTML_method_missing_9 = function $$method_missing(name, $a_rest) { - var $b, TMP_10, self = this, args, $iter = TMP_HTML_method_missing_9.$$p, block = $iter || nil, content = nil, element = nil, parent = nil, result = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$method_missing', $HTML_method_missing$9 = function $$method_missing(name, $a) { + var $iter = $HTML_method_missing$9.$$p, block = $iter || nil, $post_args, args, $$10, self = this, $ret_or_2 = nil, content = nil, element = nil, parent = nil, result = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_HTML_method_missing_9.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $HTML_method_missing$9.$$p = null; + + + if ($iter) $HTML_method_missing$9.$$p = null;; + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(name.$to_s()['$end_with?']("!"))) { - return $send(self, Opal.find_super_dispatcher(self, 'method_missing', TMP_HTML_method_missing_9, false), $zuper, $iter)}; - if ($truthy(($truthy($b = args['$empty?']()) ? $b : Opal.const_get_qualified('::', 'Hash')['$==='](args.$first())))) { - } else { - content = Opal.const_get_qualified(Opal.const_get_qualified('::', 'Paggio'), 'Utils').$heredoc(args.$shift().$to_s()) + return $send2(self, $find_super(self, 'method_missing', $HTML_method_missing$9, false, true), 'method_missing', [name].concat(Opal.to_a(args)), $iter)}; + if ($truthy((function() {if ($truthy(($ret_or_2 = args['$empty?']()))) { + return $ret_or_2 + } else { + return $$$('::', 'Hash')['$==='](args.$first()) + }; return nil; })())) { + } else { + content = $$$($$$('::', 'Paggio'), 'Utils').$heredoc(args.$shift().$to_s()) }; - element = $send(Opal.const_get_relative($nesting, 'Element'), 'new', [self, name].concat(Opal.to_a(args))); + element = $send($$($nesting, 'Element'), 'new', [self, name].concat(Opal.to_a(args))); if ($truthy(content)) { element['$<<'](content)}; if ($truthy(block)) { @@ -7245,28 +8132,27 @@ Opal.modules["paggio/html"] = function(Opal) { self.current = element; result = block.$call(self); self.current = parent; - if ($truthy(Opal.const_get_qualified('::', 'String')['$==='](result))) { - $send(element, 'instance_eval', [], (TMP_10 = function(){var self = TMP_10.$$s || this; + if ($truthy($$$('::', 'String')['$==='](result))) { + $send(element, 'instance_eval', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - return (self.inner_html = result)}, TMP_10.$$s = self, TMP_10.$$arity = 0, TMP_10))};}; + return (self.inner_html = result)}, $$10.$$s = self, $$10.$$arity = 0, $$10))};}; self['$<<'](element); return element; - }, TMP_HTML_method_missing_9.$$arity = -2); - return (Opal.defn(self, '$inspect', TMP_HTML_inspect_11 = function $$inspect() { + }, $HTML_method_missing$9.$$arity = -2); + return (Opal.def(self, '$inspect', $HTML_inspect$11 = function $$inspect() { var self = this; if ($truthy(self.roots['$empty?']())) { return "" + "#" - } else { + } else { return "" + "#" } - }, TMP_HTML_inspect_11.$$arity = 0), nil) && 'inspect'; - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + }, $HTML_inspect$11.$$arity = 0), nil) && 'inspect'; + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/css/unit"] = function(Opal) { +Opal.modules["paggio/css/unit"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } @@ -7279,199 +8165,221 @@ Opal.modules["paggio/css/unit"] = function(Opal) { function $rb_divide(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); } - var TMP_23, self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var $$23, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $alias = Opal.alias; Opal.add_stubs(['$map', '$to_proc', '$attr_reader', '$===', '$respond_to?', '$raise', '$class', '$to_u', '$new', '$==', '$convert', '$type', '$number', '$hash', '$each', '$define_method', '$+', '$compatible?', '$-', '$*', '$/', '$to_i', '$to_f', '$private', '$include?', '$class_eval', '$old_percent', '$match', '$[]', '$__send__', '$downcase']); (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $CSS(){}; - var self = $CSS = $klass($base, $super, 'CSS', $CSS); + var self = $klass($base, $super, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Unit(){}; - var self = $Unit = $klass($base, $super, 'Unit', $Unit); + var self = $klass($base, $super, 'Unit'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Unit_initialize_1, TMP_Unit_coerce_2, TMP_Unit_$eq$eq_3, TMP_Unit_$eq$eq$eq_4, TMP_Unit_hash_5, TMP_Unit_6, TMP_Unit_$_8, TMP_Unit_$_9, TMP_Unit_$_10, TMP_Unit_$_11, TMP_Unit_$$_12, TMP_Unit_$$_13, TMP_Unit_to_i_14, TMP_Unit_to_f_15, TMP_Unit_to_u_16, TMP_Unit_to_s_17, TMP_Unit_compatible$q_18, TMP_Unit_convert_19; + var $nesting = [self].concat($parent_nesting), $Unit_initialize$1, $Unit_coerce$2, $Unit_$eq_eq$3, $Unit_$eq_eq_eq$4, $Unit_hash$5, $Unit$6, $Unit_$plus$8, $Unit_$minus$9, $Unit_$$10, $Unit_$slash$11, $Unit_$minus$$12, $Unit_$plus$$13, $Unit_to_i$14, $Unit_to_f$15, $Unit_to_u$16, $Unit_to_s$17, $Unit_compatible$ques$18, $Unit_convert$19; - def.type = def.number = nil; + self.$$prototype.type = self.$$prototype.number = nil; Opal.const_set($nesting[0], 'TYPES', $send(["em", "ex", "ch", "rem", "vh", "vw", "vmin", "vmax", "px", "mm", "cm", "in", "pt", "pc", "s", "deg"], 'map', [], "to_sym".$to_proc())); Opal.const_set($nesting[0], 'COMPATIBLE', $send(["in", "pt", "mm", "cm", "px", "pc"], 'map', [], "to_sym".$to_proc())); self.$attr_reader("type", "number"); - Opal.defn(self, '$initialize', TMP_Unit_initialize_1 = function $$initialize(number, type) { + Opal.def(self, '$initialize', $Unit_initialize$1 = function $$initialize(number, type) { var self = this; self.number = number; return (self.type = type); - }, TMP_Unit_initialize_1.$$arity = 2); + }, $Unit_initialize$1.$$arity = 2); - Opal.defn(self, '$coerce', TMP_Unit_coerce_2 = function $$coerce(other) { + Opal.def(self, '$coerce', $Unit_coerce$2 = function $$coerce(other) { var self = this; return [self, other] - }, TMP_Unit_coerce_2.$$arity = 1); + }, $Unit_coerce$2.$$arity = 1); - Opal.defn(self, '$==', TMP_Unit_$eq$eq_3 = function(other) { + Opal.def(self, '$==', $Unit_$eq_eq$3 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Unit')['$==='](other))) { - } else { + if ($truthy($$($nesting, 'Unit')['$==='](other))) { + } else { if ($truthy(other['$respond_to?']("to_u"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "no implicit conversion of " + (other.$class()) + " into Unit") + } else { + self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (other.$class()) + " into Unit") }; other = other.$to_u(); }; - if ($truthy(Opal.const_get_relative($nesting, 'Unit')['$==='](other))) { - } else { - other = Opal.const_get_relative($nesting, 'Unit').$new(other, self.type) + if ($truthy($$($nesting, 'Unit')['$==='](other))) { + } else { + other = $$($nesting, 'Unit').$new(other, self.type) }; return self.number['$=='](self.$convert(other, self.type)); - }, TMP_Unit_$eq$eq_3.$$arity = 1); + }, $Unit_$eq_eq$3.$$arity = 1); - Opal.defn(self, '$===', TMP_Unit_$eq$eq$eq_4 = function(other) { - var $a, self = this; + Opal.def(self, '$===', $Unit_$eq_eq_eq$4 = function(other) { + var self = this, $ret_or_1 = nil; - return (($a = self.type['$=='](other.$type())) ? self.number['$=='](other.$number()) : self.type['$=='](other.$type())) - }, TMP_Unit_$eq$eq$eq_4.$$arity = 1); - Opal.alias(self, "eql?", "=="); + if ($truthy(($ret_or_1 = self.type['$=='](other.$type())))) { + return self.number['$=='](other.$number()) + } else { + return $ret_or_1 + } + }, $Unit_$eq_eq_eq$4.$$arity = 1); + $alias(self, "eql?", "=="); - Opal.defn(self, '$hash', TMP_Unit_hash_5 = function $$hash() { + Opal.def(self, '$hash', $Unit_hash$5 = function $$hash() { var self = this; return [self.number, self.type].$hash() - }, TMP_Unit_hash_5.$$arity = 0); - $send(Opal.const_get_relative($nesting, 'TYPES'), 'each', [], (TMP_Unit_6 = function(name){var self = TMP_Unit_6.$$s || this, TMP_7; -if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_7 = function(){var self = TMP_7.$$s || this; + }, $Unit_hash$5.$$arity = 0); + $send($$($nesting, 'TYPES'), 'each', [], ($Unit$6 = function(name){var self = $Unit$6.$$s == null ? this : $Unit$6.$$s, $$7; + + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; - return Opal.const_get_relative($nesting, 'Unit').$new(self.$convert(self, name), name)}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7))}, TMP_Unit_6.$$s = self, TMP_Unit_6.$$arity = 1, TMP_Unit_6)); + return $$($nesting, 'Unit').$new(self.$convert(self, name), name)}, $$7.$$s = self, $$7.$$arity = 0, $$7));}, $Unit$6.$$s = self, $Unit$6.$$arity = 1, $Unit$6)); - Opal.defn(self, '$+', TMP_Unit_$_8 = function(other) { - var $a, self = this; + Opal.def(self, '$+', $Unit_$plus$8 = function(other) { + var self = this, $ret_or_2 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Unit')['$==='](other))) { - } else { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_plus(self.number, other), self.type) + if ($truthy($$($nesting, 'Unit')['$==='](other))) { + } else { + return $$($nesting, 'Unit').$new($rb_plus(self.number, other), self.type) }; if (self.type['$=='](other.$type())) { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_plus(self.number, other.$number()), self.type) - } else if ($truthy(($truthy($a = self['$compatible?'](self)) ? self['$compatible?'](other) : $a))) { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_plus(self.number, self.$convert(other, self.type)), self.type) - } else { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + (other.$type()) + " isn't compatible with " + (self.type)) + return $$($nesting, 'Unit').$new($rb_plus(self.number, other.$number()), self.type) + } else if ($truthy((function() {if ($truthy(($ret_or_2 = self['$compatible?'](self)))) { + return self['$compatible?'](other) + } else { + return $ret_or_2 + }; return nil; })())) { + return $$($nesting, 'Unit').$new($rb_plus(self.number, self.$convert(other, self.type)), self.type) + } else { + return self.$raise($$($nesting, 'ArgumentError'), "" + (other.$type()) + " isn't compatible with " + (self.type)) }; - }, TMP_Unit_$_8.$$arity = 1); + }, $Unit_$plus$8.$$arity = 1); - Opal.defn(self, '$-', TMP_Unit_$_9 = function(other) { - var $a, self = this; + Opal.def(self, '$-', $Unit_$minus$9 = function(other) { + var self = this, $ret_or_3 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Unit')['$==='](other))) { - } else { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_minus(self.number, other), self.type) + if ($truthy($$($nesting, 'Unit')['$==='](other))) { + } else { + return $$($nesting, 'Unit').$new($rb_minus(self.number, other), self.type) }; if (self.type['$=='](other.$type())) { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_minus(self.number, other.$number()), self.type) - } else if ($truthy(($truthy($a = self['$compatible?'](self)) ? self['$compatible?'](other) : $a))) { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_minus(self.number, self.$convert(other, self.type)), self.type) - } else { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + (other.$type()) + " isn't compatible with " + (self.type)) + return $$($nesting, 'Unit').$new($rb_minus(self.number, other.$number()), self.type) + } else if ($truthy((function() {if ($truthy(($ret_or_3 = self['$compatible?'](self)))) { + return self['$compatible?'](other) + } else { + return $ret_or_3 + }; return nil; })())) { + return $$($nesting, 'Unit').$new($rb_minus(self.number, self.$convert(other, self.type)), self.type) + } else { + return self.$raise($$($nesting, 'ArgumentError'), "" + (other.$type()) + " isn't compatible with " + (self.type)) }; - }, TMP_Unit_$_9.$$arity = 1); + }, $Unit_$minus$9.$$arity = 1); - Opal.defn(self, '$*', TMP_Unit_$_10 = function(other) { - var $a, self = this; + Opal.def(self, '$*', $Unit_$$10 = function(other) { + var self = this, $ret_or_4 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Unit')['$==='](other))) { - } else { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_times(self.number, other), self.type) + if ($truthy($$($nesting, 'Unit')['$==='](other))) { + } else { + return $$($nesting, 'Unit').$new($rb_times(self.number, other), self.type) }; if (self.type['$=='](other.$type())) { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_times(self.number, other.$number()), self.type) - } else if ($truthy(($truthy($a = self['$compatible?'](self)) ? self['$compatible?'](other) : $a))) { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_times(self.number, self.$convert(other, self.type)), self.type) - } else { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + (other.$type()) + " isn't compatible with " + (self.type)) + return $$($nesting, 'Unit').$new($rb_times(self.number, other.$number()), self.type) + } else if ($truthy((function() {if ($truthy(($ret_or_4 = self['$compatible?'](self)))) { + return self['$compatible?'](other) + } else { + return $ret_or_4 + }; return nil; })())) { + return $$($nesting, 'Unit').$new($rb_times(self.number, self.$convert(other, self.type)), self.type) + } else { + return self.$raise($$($nesting, 'ArgumentError'), "" + (other.$type()) + " isn't compatible with " + (self.type)) }; - }, TMP_Unit_$_10.$$arity = 1); + }, $Unit_$$10.$$arity = 1); - Opal.defn(self, '$/', TMP_Unit_$_11 = function(other) { - var $a, self = this; + Opal.def(self, '$/', $Unit_$slash$11 = function(other) { + var self = this, $ret_or_5 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Unit')['$==='](other))) { - } else { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_divide(self.number, other), self.type) + if ($truthy($$($nesting, 'Unit')['$==='](other))) { + } else { + return $$($nesting, 'Unit').$new($rb_divide(self.number, other), self.type) }; if (self.type['$=='](other.$type())) { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_divide(self.number, other.$number()), self.type) - } else if ($truthy(($truthy($a = self['$compatible?'](self)) ? self['$compatible?'](other) : $a))) { - return Opal.const_get_relative($nesting, 'Unit').$new($rb_divide(self.number, self.$convert(other, self.type)), self.type) - } else { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + (other.$type()) + " isn't compatible with " + (self.type)) + return $$($nesting, 'Unit').$new($rb_divide(self.number, other.$number()), self.type) + } else if ($truthy((function() {if ($truthy(($ret_or_5 = self['$compatible?'](self)))) { + return self['$compatible?'](other) + } else { + return $ret_or_5 + }; return nil; })())) { + return $$($nesting, 'Unit').$new($rb_divide(self.number, self.$convert(other, self.type)), self.type) + } else { + return self.$raise($$($nesting, 'ArgumentError'), "" + (other.$type()) + " isn't compatible with " + (self.type)) }; - }, TMP_Unit_$_11.$$arity = 1); + }, $Unit_$slash$11.$$arity = 1); - Opal.defn(self, '$-@', TMP_Unit_$$_12 = function() { + Opal.def(self, '$-@', $Unit_$minus$$12 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Unit').$new($rb_times(self.number, -1), self.type) - }, TMP_Unit_$$_12.$$arity = 0); + return $$($nesting, 'Unit').$new($rb_times(self.number, -1), self.type) + }, $Unit_$minus$$12.$$arity = 0); - Opal.defn(self, '$+@', TMP_Unit_$$_13 = function() { + Opal.def(self, '$+@', $Unit_$plus$$13 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Unit').$new(self.number, self.type) - }, TMP_Unit_$$_13.$$arity = 0); + return $$($nesting, 'Unit').$new(self.number, self.type) + }, $Unit_$plus$$13.$$arity = 0); - Opal.defn(self, '$to_i', TMP_Unit_to_i_14 = function $$to_i() { + Opal.def(self, '$to_i', $Unit_to_i$14 = function $$to_i() { var self = this; return self.number.$to_i() - }, TMP_Unit_to_i_14.$$arity = 0); + }, $Unit_to_i$14.$$arity = 0); - Opal.defn(self, '$to_f', TMP_Unit_to_f_15 = function $$to_f() { + Opal.def(self, '$to_f', $Unit_to_f$15 = function $$to_f() { var self = this; return self.number.$to_f() - }, TMP_Unit_to_f_15.$$arity = 0); + }, $Unit_to_f$15.$$arity = 0); - Opal.defn(self, '$to_u', TMP_Unit_to_u_16 = function $$to_u() { + Opal.def(self, '$to_u', $Unit_to_u$16 = function $$to_u() { var self = this; return self - }, TMP_Unit_to_u_16.$$arity = 0); + }, $Unit_to_u$16.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Unit_to_s_17 = function $$to_s() { + Opal.def(self, '$to_s', $Unit_to_s$17 = function $$to_s() { var self = this; return "" + (self.number) + (self.type) - }, TMP_Unit_to_s_17.$$arity = 0); - Opal.alias(self, "to_str", "to_s"); - Opal.alias(self, "inspect", "to_s"); + }, $Unit_to_s$17.$$arity = 0); + $alias(self, "to_str", "to_s"); + $alias(self, "inspect", "to_s"); self.$private(); - Opal.defn(self, '$compatible?', TMP_Unit_compatible$q_18 = function(unit) { + Opal.def(self, '$compatible?', $Unit_compatible$ques$18 = function(unit) { var self = this; - return Opal.const_get_relative($nesting, 'COMPATIBLE')['$include?'](unit.$type()) - }, TMP_Unit_compatible$q_18.$$arity = 1); - return (Opal.defn(self, '$convert', TMP_Unit_convert_19 = function $$convert(unit, type) { + return $$($nesting, 'COMPATIBLE')['$include?'](unit.$type()) + }, $Unit_compatible$ques$18.$$arity = 1); + return (Opal.def(self, '$convert', $Unit_convert$19 = function $$convert(unit, type) { var self = this, value = nil, px = nil, $case = nil; @@ -7494,53 +8402,63 @@ if (name == null) name = nil; else if ("cm"['$===']($case)) {return $rb_divide($rb_divide(px, 10), 3.77953)} else if ("px"['$===']($case)) {return px} else { return nil }})(); - }, TMP_Unit_convert_19.$$arity = 2), nil) && 'convert'; + }, $Unit_convert$19.$$arity = 2), nil) && 'convert'; })($nesting[0], null, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Numeric(){}; - var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric); + var self = $klass($base, $super, 'Numeric'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Numeric_20, TMP_Numeric_to_u_22; + var $nesting = [self].concat($parent_nesting), $Numeric$20, $Numeric_to_u$22; - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Paggio'), 'CSS'), 'Unit'), 'TYPES'), 'each', [], (TMP_Numeric_20 = function(name){var self = TMP_Numeric_20.$$s || this, TMP_21; -if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_21 = function(){var self = TMP_21.$$s || this; + $send($$$($$$($$$($$($nesting, 'Paggio'), 'CSS'), 'Unit'), 'TYPES'), 'each', [], ($Numeric$20 = function(name){var self = $Numeric$20.$$s == null ? this : $Numeric$20.$$s, $$21; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Paggio'), 'CSS'), 'Unit').$new(self, name)}, TMP_21.$$s = self, TMP_21.$$arity = 0, TMP_21))}, TMP_Numeric_20.$$s = self, TMP_Numeric_20.$$arity = 1, TMP_Numeric_20)); - return (Opal.defn(self, '$to_u', TMP_Numeric_to_u_22 = function $$to_u() { + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$21 = function(){var self = $$21.$$s == null ? this : $$21.$$s; + + return $$$($$$($$($nesting, 'Paggio'), 'CSS'), 'Unit').$new(self, name)}, $$21.$$s = self, $$21.$$arity = 0, $$21));}, $Numeric$20.$$s = self, $Numeric$20.$$arity = 1, $Numeric$20)); + return (Opal.def(self, '$to_u', $Numeric_to_u$22 = function $$to_u() { var self = this; return self - }, TMP_Numeric_to_u_22.$$arity = 0), nil) && 'to_u'; + }, $Numeric_to_u$22.$$arity = 0), nil) && 'to_u'; })($nesting[0], null, $nesting); - $send([Opal.const_get_relative($nesting, 'Fixnum'), Opal.const_get_relative($nesting, 'Float')], 'each', [], (TMP_23 = function(klass){var self = TMP_23.$$s || this, TMP_24; -if (klass == null) klass = nil; - return $send(klass, 'class_eval', [], (TMP_24 = function(){var self = TMP_24.$$s || this, TMP_$_25; + $send([$$($nesting, 'Fixnum'), $$($nesting, 'Float')], 'each', [], ($$23 = function(klass){var self = $$23.$$s == null ? this : $$23.$$s, $$24; - Opal.alias(self, "old_percent", "%"); - return (Opal.def(self, '$%', TMP_$_25 = function(other) { + + if (klass == null) { + klass = nil; + }; + return $send(klass, 'class_eval', [], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s, $percent$25; + + + $alias(self, "old_percent", "%"); + return (Opal.def(self, '$%', $percent$25 = function(other) { var self = this; + + if (other == null) { other = nil; - } + }; if ($truthy(other)) { return self.$old_percent(other) - } else { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Paggio'), 'CSS'), 'Unit').$new(self, "%") - } - }, TMP_$_25.$$arity = -1), nil) && '%';}, TMP_24.$$s = self, TMP_24.$$arity = 0, TMP_24))}, TMP_23.$$s = self, TMP_23.$$arity = 1, TMP_23)); + } else { + return $$$($$$($$($nesting, 'Paggio'), 'CSS'), 'Unit').$new(self, "%") + }; + }, $percent$25.$$arity = -1), nil) && '%';}, $$24.$$s = self, $$24.$$arity = 0, $$24));}, $$23.$$s = self, $$23.$$arity = 1, $$23)); (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_to_u_26; + var $nesting = [self].concat($parent_nesting), $String_to_u$26; - return (Opal.defn(self, '$to_u', TMP_String_to_u_26 = function $$to_u() { + return (Opal.def(self, '$to_u', $String_to_u$26 = function $$to_u() { var self = this, matches = nil, value = nil, unit = nil; if ($truthy((matches = self.$match(/^([\d+.]+)(.+)?$/)))) { @@ -7548,305 +8466,413 @@ if (klass == null) klass = nil; value = matches['$[]'](1).$to_f(); if ($truthy((unit = matches['$[]'](2)))) { return value.$__send__(unit.$downcase()) - } else { + } else { return value }; - } else { + } else { return 0 } - }, TMP_String_to_u_26.$$arity = 0), nil) && 'to_u' + }, $String_to_u$26.$$arity = 0), nil) && 'to_u' })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $NilClass(){}; - var self = $NilClass = $klass($base, $super, 'NilClass', $NilClass); + var self = $klass($base, $super, 'NilClass'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NilClass_to_u_27; + var $nesting = [self].concat($parent_nesting), $NilClass_to_u$27; - return (Opal.defn(self, '$to_u', TMP_NilClass_to_u_27 = function $$to_u() { + return (Opal.def(self, '$to_u', $NilClass_to_u$27 = function $$to_u() { var self = this; return 0 - }, TMP_NilClass_to_u_27.$$arity = 0), nil) && 'to_u' + }, $NilClass_to_u$27.$$arity = 0), nil) && 'to_u' })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/css/color"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; +Opal.modules["paggio/css/color"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$each', '$map', '$to_proc', '$define_method', '$new']); (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $CSS(){}; - var self = $CSS = $klass($base, $super, 'CSS', $CSS); + var self = $klass($base, $super, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Color(){}; - var self = $Color = $klass($base, $super, 'Color', $Color); + var self = $klass($base, $super, 'Color'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Color_initialize_1; + var $nesting = [self].concat($parent_nesting), $Color_initialize$1; - return (Opal.defn(self, '$initialize', TMP_Color_initialize_1 = function $$initialize(value, type) { + return (Opal.def(self, '$initialize', $Color_initialize$1 = function $$initialize(value, type) { var self = this; self.internal = value; return (self.type = type); - }, TMP_Color_initialize_1.$$arity = 2), nil) && 'initialize' + }, $Color_initialize$1.$$arity = 2), nil) && 'initialize' })($nesting[0], null, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_2; + var $nesting = [self].concat($parent_nesting), $String$2; - return $send($send(["rgb", "rgba", "hsl", "hsla"], 'map', [], "to_sym".$to_proc()), 'each', [], (TMP_String_2 = function(name){var self = TMP_String_2.$$s || this, TMP_3; -if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_3 = function(){var self = TMP_3.$$s || this; + return $send($send(["rgb", "rgba", "hsl", "hsla"], 'map', [], "to_sym".$to_proc()), 'each', [], ($String$2 = function(name){var self = $String$2.$$s == null ? this : $String$2.$$s, $$3; + + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Paggio'), 'CSS'), 'Color').$new(self, name)}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3))}, TMP_String_2.$$s = self, TMP_String_2.$$arity = 1, TMP_String_2)) + return $$$($$$($$($nesting, 'Paggio'), 'CSS'), 'Color').$new(self, name)}, $$3.$$s = self, $$3.$$arity = 0, $$3));}, $String$2.$$s = self, $String$2.$$arity = 1, $String$2)) })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_4; + var $nesting = [self].concat($parent_nesting), $Array$4; - return $send($send(["rgb", "rgba", "hsl", "hsla"], 'map', [], "to_sym".$to_proc()), 'each', [], (TMP_Array_4 = function(name){var self = TMP_Array_4.$$s || this, TMP_5; -if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_5 = function(){var self = TMP_5.$$s || this; + return $send($send(["rgb", "rgba", "hsl", "hsla"], 'map', [], "to_sym".$to_proc()), 'each', [], ($Array$4 = function(name){var self = $Array$4.$$s == null ? this : $Array$4.$$s, $$5; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Paggio'), 'CSS'), 'Color').$new(self, name)}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5))}, TMP_Array_4.$$s = self, TMP_Array_4.$$arity = 1, TMP_Array_4)) + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; + + return $$$($$$($$($nesting, 'Paggio'), 'CSS'), 'Color').$new(self, name)}, $$5.$$s = self, $$5.$$arity = 0, $$5));}, $Array$4.$$s = self, $Array$4.$$arity = 1, $Array$4)) })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/css/definition"] = function(Opal) { +Opal.modules["paggio/css/definition"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } function $rb_times(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $hash2 = Opal.hash2; Opal.add_stubs(['$new', '$==', '$arity', '$instance_exec', '$to_proc', '$call', '$empty?', '$each', '$inspect', '$to_s', '$define_method', '$a', '$===', '$first', '$>', '$length', '$raise', '$style', '$name', '$value', '$[]', '$join', '$map', '$to_i', '$*', '$end_with?', '$__send__', '$<<', '$last', '$pop', '$!', '$other', '$shift', '$horizontal?', '$private']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $CSS(){}; - var self = $CSS = $klass($base, $super, 'CSS', $CSS); + var self = $klass($base, $super, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_initialize_1, TMP_Definition_empty$q_2, TMP_Definition_each_3, TMP_Definition_gradient_4, TMP_Definition_url_5, TMP_Definition_6, TMP_Definition_rgb_8, TMP_Definition_rgba_9, TMP_Definition_10, TMP_Definition_12, TMP_Definition_background_16, TMP_Definition_border_22, TMP_Definition_box_25, TMP_Definition_opacity_26, TMP_Definition_animation_28, TMP_Definition_transition_29, TMP_Definition_user_select_30, TMP_Definition_transform_31, TMP_Definition_filter_32, TMP_Definition_method_missing_33, TMP_Definition_style_35, TMP_Definition_style$B_36; + var $nesting = [self].concat($parent_nesting), $Definition_initialize$1, $Definition_empty$ques$2, $Definition_each$3, $Definition_gradient$4, $Definition_url$5, $Definition$6, $Definition_rgb$8, $Definition_rgba$9, $Definition$10, $Definition$12, $Definition_background$14, $Definition_border$17, $Definition_box$23, $Definition_opacity$26, $Definition_animation$27, $Definition_transition$29, $Definition_user_select$30, $Definition_transform$31, $Definition_filter$32, $Definition_method_missing$33, $Definition_style$35, $Definition_style$excl$36; - def.style = def.important = nil; + self.$$prototype.style = self.$$prototype.important = nil; - Opal.const_set($nesting[0], 'Style', Opal.const_get_qualified('::', 'Struct').$new("name", "value", "important")); + Opal.const_set($nesting[0], 'Style', $$$('::', 'Struct').$new("name", "value", "important")); - Opal.defn(self, '$initialize', TMP_Definition_initialize_1 = function $$initialize() { - var self = this, $iter = TMP_Definition_initialize_1.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Definition_initialize$1 = function $$initialize() { + var $iter = $Definition_initialize$1.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Definition_initialize_1.$$p = null; + if ($iter) $Definition_initialize$1.$$p = null; + + if ($iter) $Definition_initialize$1.$$p = null;; self.style = []; if ($truthy(block)) { if (block.$arity()['$=='](0)) { return $send(self, 'instance_exec', [], block.$to_proc()) - } else { + } else { return block.$call(self) } - } else { + } else { return nil }; - }, TMP_Definition_initialize_1.$$arity = 0); + }, $Definition_initialize$1.$$arity = 0); - Opal.defn(self, '$empty?', TMP_Definition_empty$q_2 = function() { + Opal.def(self, '$empty?', $Definition_empty$ques$2 = function() { var self = this; return self.style['$empty?']() - }, TMP_Definition_empty$q_2.$$arity = 0); + }, $Definition_empty$ques$2.$$arity = 0); - Opal.defn(self, '$each', TMP_Definition_each_3 = function $$each() { - var self = this, $iter = TMP_Definition_each_3.$$p, block = $iter || nil; + Opal.def(self, '$each', $Definition_each$3 = function $$each() { + var $iter = $Definition_each$3.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Definition_each_3.$$p = null; - return $send(self.style, 'each', [], block.$to_proc()) - }, TMP_Definition_each_3.$$arity = 0); + if ($iter) $Definition_each$3.$$p = null; + + + if ($iter) $Definition_each$3.$$p = null;; + return $send(self.style, 'each', [], block.$to_proc()); + }, $Definition_each$3.$$arity = 0); - Opal.defn(self, '$gradient', TMP_Definition_gradient_4 = function $$gradient($a_rest) { - var self = this, args; + Opal.def(self, '$gradient', $Definition_gradient$4 = function $$gradient($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'Gradient'), 'new', Opal.to_a(args)) - }, TMP_Definition_gradient_4.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'Gradient'), 'new', Opal.to_a(args)); + }, $Definition_gradient$4.$$arity = -1); - Opal.defn(self, '$url', TMP_Definition_url_5 = function $$url(value) { + Opal.def(self, '$url', $Definition_url$5 = function $$url(value) { var self = this; return "" + "url(" + (value.$to_s().$inspect()) + ")" - }, TMP_Definition_url_5.$$arity = 1); - $send(["url", "blur", "brightness", "rotate", "contrast", "grayscale", "invert", "opacity", "saturate", "sepia"], 'each', [], (TMP_Definition_6 = function(name){var self = TMP_Definition_6.$$s || this, TMP_7; -if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_7 = function(value){var self = TMP_7.$$s || this; -if (value == null) value = nil; - return "" + (name) + "(" + (value) + ")"}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7))}, TMP_Definition_6.$$s = self, TMP_Definition_6.$$arity = 1, TMP_Definition_6)); + }, $Definition_url$5.$$arity = 1); + $send(["url", "blur", "brightness", "rotate", "contrast", "grayscale", "invert", "opacity", "saturate", "sepia"], 'each', [], ($Definition$6 = function(name){var self = $Definition$6.$$s == null ? this : $Definition$6.$$s, $$7; + + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$7 = function(value){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (value == null) { + value = nil; + }; + return "" + (name) + "(" + (value) + ")";}, $$7.$$s = self, $$7.$$arity = 1, $$7));}, $Definition$6.$$s = self, $Definition$6.$$arity = 1, $Definition$6)); - Opal.defn(self, '$rgb', TMP_Definition_rgb_8 = function $$rgb(r, g, b) { + Opal.def(self, '$rgb', $Definition_rgb$8 = function $$rgb(r, g, b) { var self = this; return "" + "rgb(" + (r) + ", " + (g) + ", " + (b) + ", " + (self.$a()) + ")" - }, TMP_Definition_rgb_8.$$arity = 3); + }, $Definition_rgb$8.$$arity = 3); - Opal.defn(self, '$rgba', TMP_Definition_rgba_9 = function $$rgba(r, g, b, a) { + Opal.def(self, '$rgba', $Definition_rgba$9 = function $$rgba(r, g, b, a) { var self = this; return "" + "rgba(" + (r) + ", " + (g) + ", " + (b) + ", " + (a) + ")" - }, TMP_Definition_rgba_9.$$arity = 4); - $send(["scale", "skew", "translate"], 'each', [], (TMP_Definition_10 = function(name){var self = TMP_Definition_10.$$s || this, TMP_11; -if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_11 = function(a, b){var self = TMP_11.$$s || this; + }, $Definition_rgba$9.$$arity = 4); + $send(["scale", "skew", "translate"], 'each', [], ($Definition$10 = function(name){var self = $Definition$10.$$s == null ? this : $Definition$10.$$s, $$11; + + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$11 = function(a, b){var self = $$11.$$s == null ? this : $$11.$$s; + + + if (a == null) { + a = nil; + }; + if (b == null) { b = nil; - }if (a == null) a = nil; - if ($truthy(b)) { + }; + if ($truthy(b)) { return "" + (name) + "(" + (a) + ", " + (b) + ")" - } else { + } else { return "" + (name) + "(" + (a) + ")" - }}, TMP_11.$$s = self, TMP_11.$$arity = -2, TMP_11))}, TMP_Definition_10.$$s = self, TMP_Definition_10.$$arity = 1, TMP_Definition_10)); - $send(["translateX", "translateY", "translateZ", "rotateX", "rotateY", "rotateZ", "skewX", "skewY", "scaleX", "scaleY"], 'each', [], (TMP_Definition_12 = function(name){var self = TMP_Definition_12.$$s || this, TMP_13; -if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_13 = function(value){var self = TMP_13.$$s || this; -if (value == null) value = nil; - return "" + (name) + "(" + (value) + ")"}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13))}, TMP_Definition_12.$$s = self, TMP_Definition_12.$$arity = 1, TMP_Definition_12)); - - Opal.defn(self, '$background', TMP_Definition_background_16 = function $$background($a_rest) { - var TMP_14, TMP_15, self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Gradient')['$==='](args.$first()))) { + };}, $$11.$$s = self, $$11.$$arity = -2, $$11));}, $Definition$10.$$s = self, $Definition$10.$$arity = 1, $Definition$10)); + $send(["translateX", "translateY", "translateZ", "rotateX", "rotateY", "rotateZ", "skewX", "skewY", "scaleX", "scaleY"], 'each', [], ($Definition$12 = function(name){var self = $Definition$12.$$s == null ? this : $Definition$12.$$s, $$13; + + + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$13 = function(value){var self = $$13.$$s == null ? this : $$13.$$s; + + + + if (value == null) { + value = nil; + }; + return "" + (name) + "(" + (value) + ")";}, $$13.$$s = self, $$13.$$arity = 1, $$13));}, $Definition$12.$$s = self, $Definition$12.$$arity = 1, $Definition$12)); + + Opal.def(self, '$background', $Definition_background$14 = function $$background($a) { + var $post_args, args, $$15, $$16, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy($$($nesting, 'Gradient')['$==='](args.$first()))) { if ($truthy($rb_gt(args.$length(), 1))) { - self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "multiple gradients not implemented yet")}; - return $send(args.$first(), 'each', [], (TMP_14 = function(s){var self = TMP_14.$$s || this, $a; -if (s == null) s = nil; - return self.$style(($truthy($a = s.$name()) ? $a : "background-image"), s.$value())}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)); - } else if ($truthy(Opal.const_get_qualified('::', 'Hash')['$==='](args.$first()))) { - return $send(args.$first(), 'each', [], (TMP_15 = function(sub, value){var self = TMP_15.$$s || this; -if (sub == null) sub = nil;if (value == null) value = nil; - return self.$style("" + "background-" + (sub), value)}, TMP_15.$$s = self, TMP_15.$$arity = 2, TMP_15)) - } else { + self.$raise($$($nesting, 'NotImplementedError'), "multiple gradients not implemented yet")}; + return $send(args.$first(), 'each', [], ($$15 = function(s){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_1 = nil; + + + + if (s == null) { + s = nil; + }; + return self.$style((function() {if ($truthy(($ret_or_1 = s.$name()))) { + return $ret_or_1 + } else { + return "background-image" + }; return nil; })(), s.$value());}, $$15.$$s = self, $$15.$$arity = 1, $$15)); + } else if ($truthy($$$('::', 'Hash')['$==='](args.$first()))) { + return $send(args.$first(), 'each', [], ($$16 = function(sub, value){var self = $$16.$$s == null ? this : $$16.$$s; + + + + if (sub == null) { + sub = nil; + }; + + if (value == null) { + value = nil; + }; + return self.$style("" + "background-" + (sub), value);}, $$16.$$s = self, $$16.$$arity = 2, $$16)) + } else { return self.$style("background", args) - } - }, TMP_Definition_background_16.$$arity = -1); + }; + }, $Definition_background$14.$$arity = -1); - Opal.defn(self, '$border', TMP_Definition_border_22 = function $$border($a_rest) { - var TMP_17, self = this, args, options = nil; + Opal.def(self, '$border', $Definition_border$17 = function $$border($a) { + var $post_args, args, $$18, self = this, options = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_qualified('::', 'Hash')['$==='](args.$first()))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy($$$('::', 'Hash')['$==='](args.$first()))) { if (args.$length()['$=='](1)) { options = args.$first()}; - return $send(options, 'each', [], (TMP_17 = function(name, value){var self = TMP_17.$$s || this, TMP_18, TMP_19, TMP_21, $case = nil; -if (name == null) name = nil;if (value == null) value = nil; - return (function() {$case = name; - if ("top"['$===']($case) || "bottom"['$===']($case) || "left"['$===']($case) || "right"['$===']($case)) {if ($truthy(Opal.const_get_qualified('::', 'Hash')['$==='](value))) { - return $send(value, 'each', [], (TMP_18 = function(n, v){var self = TMP_18.$$s || this; -if (n == null) n = nil;if (v == null) v = nil; - return self.$style("" + "border-" + (name) + "-" + (n), v)}, TMP_18.$$s = self, TMP_18.$$arity = 2, TMP_18)) - } else { + return $send(options, 'each', [], ($$18 = function(name, value){var self = $$18.$$s == null ? this : $$18.$$s, $$19, $$20, $$22, $case = nil; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return (function() {$case = name; + if ("top"['$===']($case) || "bottom"['$===']($case) || "left"['$===']($case) || "right"['$===']($case)) {if ($truthy($$$('::', 'Hash')['$==='](value))) { + return $send(value, 'each', [], ($$19 = function(n, v){var self = $$19.$$s == null ? this : $$19.$$s; + + + + if (n == null) { + n = nil; + }; + + if (v == null) { + v = nil; + }; + return self.$style("" + "border-" + (name) + "-" + (n), v);}, $$19.$$s = self, $$19.$$arity = 2, $$19)) + } else { return self.$style("" + "border-" + (name), value) }} - else if ("radius"['$===']($case)) {if ($truthy(Opal.const_get_qualified('::', 'Hash')['$==='](value))) { - return $send(value, 'each', [], (TMP_19 = function(horizontal, value){var self = TMP_19.$$s || this, TMP_20; -if (horizontal == null) horizontal = nil;if (value == null) value = nil; - return $send(value, 'each', [], (TMP_20 = function(vertical, value){var self = TMP_20.$$s || this; -if (vertical == null) vertical = nil;if (value == null) value = nil; + else if ("radius"['$===']($case)) {if ($truthy($$$('::', 'Hash')['$==='](value))) { + return $send(value, 'each', [], ($$20 = function(horizontal, value){var self = $$20.$$s == null ? this : $$20.$$s, $$21; + + + + if (horizontal == null) { + horizontal = nil; + }; + if (value == null) { + value = nil; + }; + return $send(value, 'each', [], ($$21 = function(vertical, value){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (vertical == null) { + vertical = nil; + }; + + if (value == null) { + value = nil; + }; self.$style("" + "-moz-border-radius-" + (horizontal) + (vertical), value); self.$style("" + "-webkit-border-" + (horizontal) + "-" + (vertical) + "-radius", value); - return self.$style("" + "border-" + (horizontal) + "-" + (vertical) + "-radius", value);}, TMP_20.$$s = self, TMP_20.$$arity = 2, TMP_20))}, TMP_19.$$s = self, TMP_19.$$arity = 2, TMP_19)) - } else { + return self.$style("" + "border-" + (horizontal) + "-" + (vertical) + "-radius", value);}, $$21.$$s = self, $$21.$$arity = 2, $$21));}, $$20.$$s = self, $$20.$$arity = 2, $$20)) + } else { self.$style("-moz-border-radius", value); self.$style("-webkit-border-radius", value); return self.$style("border-radius", value); }} - else if ("color"['$===']($case)) {if ($truthy(Opal.const_get_qualified('::', 'Hash')['$==='](value))) { - return $send(value, 'each', [], (TMP_21 = function(name, value){var self = TMP_21.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return self.$style("" + "border-" + (name) + "-color", value)}, TMP_21.$$s = self, TMP_21.$$arity = 2, TMP_21)) - } else { + else if ("color"['$===']($case)) {if ($truthy($$$('::', 'Hash')['$==='](value))) { + return $send(value, 'each', [], ($$22 = function(name, value){var self = $$22.$$s == null ? this : $$22.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return self.$style("" + "border-" + (name) + "-color", value);}, $$22.$$s = self, $$22.$$arity = 2, $$22)) + } else { return self.$style("border-color", value) }} - else {return self.$style("" + "border-" + (name), value)}})()}, TMP_17.$$s = self, TMP_17.$$arity = 2, TMP_17)); - } else { + else {return self.$style("" + "border-" + (name), value)}})();}, $$18.$$s = self, $$18.$$arity = 2, $$18)); + } else { return self.$style("border", args) - } - }, TMP_Definition_border_22.$$arity = -1); + }; + }, $Definition_border$17.$$arity = -1); - Opal.defn(self, '$box', TMP_Definition_box_25 = function $$box(options) { - var TMP_23, self = this; + Opal.def(self, '$box', $Definition_box$23 = function $$box(options) { + var $$24, self = this; - if ($truthy(Opal.const_get_qualified('::', 'Hash')['$==='](options))) { - return $send(options, 'each', [], (TMP_23 = function(name, value){var self = TMP_23.$$s || this, TMP_24, $case = nil; -if (name == null) name = nil;if (value == null) value = nil; - return (function() {$case = name; + if ($truthy($$$('::', 'Hash')['$==='](options))) { + return $send(options, 'each', [], ($$24 = function(name, value){var self = $$24.$$s == null ? this : $$24.$$s, $$25, $case = nil; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return (function() {$case = name; if ("shadow"['$===']($case)) { - if ($truthy(Opal.const_get_qualified('::', 'Array')['$==='](value))) { - if ($truthy(Opal.const_get_qualified('::', 'Array')['$==='](value['$[]'](0)))) { - value = $send(value, 'map', [], (TMP_24 = function(v){var self = TMP_24.$$s || this; -if (v == null) v = nil; - return v.$join(" ")}, TMP_24.$$s = self, TMP_24.$$arity = 1, TMP_24)).$join(", ") - } else { + if ($truthy($$$('::', 'Array')['$==='](value))) { + if ($truthy($$$('::', 'Array')['$==='](value['$[]'](0)))) { + value = $send(value, 'map', [], ($$25 = function(v){var self = $$25.$$s == null ? this : $$25.$$s; + + + + if (v == null) { + v = nil; + }; + return v.$join(" ");}, $$25.$$s = self, $$25.$$arity = 1, $$25)).$join(", ") + } else { value = value.$join(" ") }}; self.$style("-moz-box-shadow", value); self.$style("-webkit-box-shadow", value); return self.$style("box-shadow", value);} - else {return self.$style("" + "box-" + (name), value)}})()}, TMP_23.$$s = self, TMP_23.$$arity = 2, TMP_23)) - } else { + else {return self.$style("" + "box-" + (name), value)}})();}, $$24.$$s = self, $$24.$$arity = 2, $$24)) + } else { return self.$style("box", options) } - }, TMP_Definition_box_25.$$arity = 1); + }, $Definition_box$23.$$arity = 1); - Opal.defn(self, '$opacity', TMP_Definition_opacity_26 = function $$opacity(value) { + Opal.def(self, '$opacity', $Definition_opacity$26 = function $$opacity(value) { var self = this; @@ -7854,109 +8880,108 @@ if (v == null) v = nil; self.$style("-moz-opacity", value); self.$style("-ms-filter", "" + "\"progid:DXImageTransform.Microsoft.Alpha(Opacity=" + ($rb_times(value, 100).$to_i()) + ")\""); return self.$style("filter", "" + "alpha(opacity=" + ($rb_times(value, 100).$to_i()) + ")"); - }, TMP_Definition_opacity_26.$$arity = 1); + }, $Definition_opacity$26.$$arity = 1); - Opal.defn(self, '$animation', TMP_Definition_animation_28 = function $$animation($a_rest) { - var TMP_27, self = this, args, options = nil; + Opal.def(self, '$animation', $Definition_animation$27 = function $$animation($a) { + var $post_args, args, $$28, self = this, options = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](args.$first()))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy($$($nesting, 'Hash')['$==='](args.$first()))) { if (args.$length()['$=='](1)) { options = args.$first()}; - return $send(options, 'each', [], (TMP_27 = function(name, value){var self = TMP_27.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - + return $send(options, 'each', [], ($$28 = function(name, value){var self = $$28.$$s == null ? this : $$28.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; self.$style("" + "-webkit-animation-" + (name), value); - return self.$style("" + "animation-" + (name), value);}, TMP_27.$$s = self, TMP_27.$$arity = 2, TMP_27)); - } else { + return self.$style("" + "animation-" + (name), value);}, $$28.$$s = self, $$28.$$arity = 2, $$28)); + } else { self.$style("animation", args); return self.$style("-webkit-animation", args); - } - }, TMP_Definition_animation_28.$$arity = -1); + }; + }, $Definition_animation$27.$$arity = -1); - Opal.defn(self, '$transition', TMP_Definition_transition_29 = function $$transition($a_rest) { - var self = this, args; + Opal.def(self, '$transition', $Definition_transition$29 = function $$transition($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self.$style("transition", args); self.$style("-webkit-transition", args); return self.$style("-moz-transition", args); - }, TMP_Definition_transition_29.$$arity = -1); + }, $Definition_transition$29.$$arity = -1); - Opal.defn(self, '$user_select', TMP_Definition_user_select_30 = function $$user_select($a_rest) { - var self = this, args; + Opal.def(self, '$user_select', $Definition_user_select$30 = function $$user_select($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self.$style("user-select", args); self.$style("-webkit-user-select", args); self.$style("-moz-user-select", args); return self.$style("-ms-user-select", args); - }, TMP_Definition_user_select_30.$$arity = -1); + }, $Definition_user_select$30.$$arity = -1); - Opal.defn(self, '$transform', TMP_Definition_transform_31 = function $$transform($a_rest) { - var self = this, args; + Opal.def(self, '$transform', $Definition_transform$31 = function $$transform($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self.$style("transform", args); self.$style("-webkit-transform", args); self.$style("-moz-transform", args); self.$style("-ms-transform", args); return self.$style("-o-transform", args); - }, TMP_Definition_transform_31.$$arity = -1); + }, $Definition_transform$31.$$arity = -1); - Opal.defn(self, '$filter', TMP_Definition_filter_32 = function $$filter($a_rest) { - var self = this, args; + Opal.def(self, '$filter', $Definition_filter$32 = function $$filter($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self.$style("filter", args); self.$style("-webkit-filter", args); self.$style("-moz-filter", args); self.$style("-ms-filter", args); return self.$style("-o-filter", args); - }, TMP_Definition_filter_32.$$arity = -1); + }, $Definition_filter$32.$$arity = -1); - Opal.defn(self, '$method_missing', TMP_Definition_method_missing_33 = function $$method_missing(name, $a_rest) { - var TMP_34, self = this, args, $iter = TMP_Definition_method_missing_33.$$p, block = $iter || nil, argument = nil; + Opal.def(self, '$method_missing', $Definition_method_missing$33 = function $$method_missing(name, $a) { + var $iter = $Definition_method_missing$33.$$p, block = $iter || nil, $post_args, args, $$34, self = this, argument = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Definition_method_missing_33.$$p = null; + if ($iter) $Definition_method_missing$33.$$p = null; + + if ($iter) $Definition_method_missing$33.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; name = name.$to_s(); if ($truthy(name['$end_with?']("!"))) { @@ -7968,112 +8993,140 @@ if (name == null) name = nil;if (value == null) value = nil; if (args.$length()['$=='](1)) { argument = args.$first(); - if ($truthy(Opal.const_get_qualified('::', 'Hash')['$==='](argument))) { - $send(argument, 'each', [], (TMP_34 = function(sub, value){var self = TMP_34.$$s || this; -if (sub == null) sub = nil;if (value == null) value = nil; - return self.$style("" + (name) + "-" + (sub), value)}, TMP_34.$$s = self, TMP_34.$$arity = 2, TMP_34)) - } else { + if ($truthy($$$('::', 'Hash')['$==='](argument))) { + $send(argument, 'each', [], ($$34 = function(sub, value){var self = $$34.$$s == null ? this : $$34.$$s; + + + + if (sub == null) { + sub = nil; + }; + + if (value == null) { + value = nil; + }; + return self.$style("" + (name) + "-" + (sub), value);}, $$34.$$s = self, $$34.$$arity = 2, $$34)) + } else { self.$style(name, argument) }; - } else { + } else { self.$style(name, args.$join(" ")) }; self.important = false; return self; - }, TMP_Definition_method_missing_33.$$arity = -2); + }, $Definition_method_missing$33.$$arity = -2); - Opal.defn(self, '$style', TMP_Definition_style_35 = function $$style(name, value, important) { + Opal.def(self, '$style', $Definition_style$35 = function $$style(name, value, important) { var self = this; + + if (value == null) { value = nil; - } + }; + if (important == null) { important = self.important; - } - - if ($truthy(Opal.const_get_qualified('::', 'Array')['$==='](value))) { + }; + if ($truthy($$$('::', 'Array')['$==='](value))) { value = value.$join(" ")}; - if ($truthy(Opal.const_get_relative($nesting, 'Style')['$==='](name))) { + if ($truthy($$($nesting, 'Style')['$==='](name))) { return self.style['$<<'](name) - } else { - return self.style['$<<'](Opal.const_get_relative($nesting, 'Style').$new(name, value, important)) + } else { + return self.style['$<<']($$($nesting, 'Style').$new(name, value, important)) }; - }, TMP_Definition_style_35.$$arity = -2); + }, $Definition_style$35.$$arity = -2); - Opal.defn(self, '$style!', TMP_Definition_style$B_36 = function(name, value) { + Opal.def(self, '$style!', $Definition_style$excl$36 = function(name, value) { var self = this; + + if (value == null) { value = nil; - } - return self.$style(name, value, true) - }, TMP_Definition_style$B_36.$$arity = -2); + }; + return self.$style(name, value, true); + }, $Definition_style$excl$36.$$arity = -2); return (function($base, $super, $parent_nesting) { - function $Gradient(){}; - var self = $Gradient = $klass($base, $super, 'Gradient', $Gradient); + var self = $klass($base, $super, 'Gradient'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Gradient_initialize_37, TMP_Gradient_each_38, TMP_Gradient_horizontal$q_39, TMP_Gradient_vertical$q_40, TMP_Gradient_other_41, TMP_Gradient_style_42; + var $nesting = [self].concat($parent_nesting), $Gradient_initialize$37, $Gradient_each$38, $Gradient_horizontal$ques$39, $Gradient_vertical$ques$40, $Gradient_other$41, $Gradient_style$42; - def.to = def.from = def.start = def.end = nil; + self.$$prototype.to = self.$$prototype.from = self.$$prototype.start = self.$$prototype.end = nil; - Opal.defn(self, '$initialize', TMP_Gradient_initialize_37 = function $$initialize($a_rest) { - var $b, self = this, args, options = nil; + Opal.def(self, '$initialize', $Gradient_initialize$37 = function $$initialize($a) { + var $post_args, args, self = this, options = nil, $ret_or_2 = nil, $ret_or_3 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - options = (function() {if ($truthy(Opal.const_get_qualified('::', 'Hash')['$==='](args.$last()))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + options = (function() {if ($truthy($$$('::', 'Hash')['$==='](args.$last()))) { return args.$pop() - } else { + } else { return $hash2([], {}) }; return nil; })(); self.to = options['$[]']("to"); self.from = options['$[]']("from"); - if ($truthy(($truthy($b = self.to) ? self.from['$!']() : $b))) { + if ($truthy((function() {if ($truthy(($ret_or_2 = self.to))) { + return self.from['$!']() + } else { + return $ret_or_2 + }; return nil; })())) { self.from = self.$other(self.to) - } else if ($truthy(($truthy($b = self.from) ? self.to['$!']() : $b))) { + } else if ($truthy((function() {if ($truthy(($ret_or_3 = self.from))) { + return self.to['$!']() + } else { + return $ret_or_3 + }; return nil; })())) { self.to = self.$other(self.from)}; self.start = args.$shift(); return (self.end = args.$shift()); - }, TMP_Gradient_initialize_37.$$arity = -1); + }, $Gradient_initialize$37.$$arity = -1); - Opal.defn(self, '$each', TMP_Gradient_each_38 = function $$each() { - var self = this, $iter = TMP_Gradient_each_38.$$p, block = $iter || nil; + Opal.def(self, '$each', $Gradient_each$38 = function $$each() { + var $iter = $Gradient_each$38.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Gradient_each_38.$$p = null; + if ($iter) $Gradient_each$38.$$p = null; + + if ($iter) $Gradient_each$38.$$p = null;; block.$call(self.$style("" + "-moz-linear-gradient(" + (self.to) + ", " + (self.start) + " 0%, " + (self.end) + " 100%)")); if ($truthy(self['$horizontal?']())) { block.$call(self.$style("" + "-webkit-gradient(linear, " + (self.from) + " top, " + (self.to) + " top, color-stop(0%, " + (self.start) + "), color-stop(100%, " + (self.end) + "))")) - } else { + } else { block.$call(self.$style("" + "-webkit-gradient(linear, left " + (self.from) + ", left " + (self.to) + ", color-stop(0%, " + (self.start) + "), color-stop(100%, " + (self.end) + "))")) }; block.$call(self.$style("" + "-webkit-linear-gradient(" + (self.to) + ", " + (self.start) + " 0%, " + (self.end) + " 100%)")); block.$call(self.$style("" + "-o-linear-gradient(" + (self.to) + ", " + (self.start) + " 0%, " + (self.end) + " 100%)")); block.$call(self.$style("" + "-ms-linear-gradient(" + (self.to) + ", " + (self.start) + " 0%, " + (self.end) + " 100%)")); return block.$call(self.$style("" + "linear-gradient(to " + (self.to) + ", " + (self.start) + " 0%, " + (self.end) + " 100%)")); - }, TMP_Gradient_each_38.$$arity = 0); + }, $Gradient_each$38.$$arity = 0); - Opal.defn(self, '$horizontal?', TMP_Gradient_horizontal$q_39 = function() { - var $a, self = this; + Opal.def(self, '$horizontal?', $Gradient_horizontal$ques$39 = function() { + var self = this, $ret_or_4 = nil; - return ($truthy($a = self.to['$==']("left")) ? $a : self.to['$==']("right")) - }, TMP_Gradient_horizontal$q_39.$$arity = 0); + if ($truthy(($ret_or_4 = self.to['$==']("left")))) { + return $ret_or_4 + } else { + return self.to['$==']("right") + } + }, $Gradient_horizontal$ques$39.$$arity = 0); - Opal.defn(self, '$vertical?', TMP_Gradient_vertical$q_40 = function() { - var $a, self = this; + Opal.def(self, '$vertical?', $Gradient_vertical$ques$40 = function() { + var self = this, $ret_or_5 = nil; - return ($truthy($a = self.to['$==']("top")) ? $a : self.to['$==']("bottom")) - }, TMP_Gradient_vertical$q_40.$$arity = 0); + if ($truthy(($ret_or_5 = self.to['$==']("top")))) { + return $ret_or_5 + } else { + return self.to['$==']("bottom") + } + }, $Gradient_vertical$ques$40.$$arity = 0); self.$private(); - Opal.defn(self, '$other', TMP_Gradient_other_41 = function $$other(side) { + Opal.def(self, '$other', $Gradient_other$41 = function $$other(side) { var self = this, $case = nil; return (function() {$case = side; @@ -8082,246 +9135,241 @@ if (sub == null) sub = nil;if (value == null) value = nil; else if ("top"['$===']($case)) {return "bottom"} else if ("bottom"['$===']($case)) {return "top"} else { return nil }})() - }, TMP_Gradient_other_41.$$arity = 1); - return (Opal.defn(self, '$style', TMP_Gradient_style_42 = function $$style($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + }, $Gradient_other$41.$$arity = 1); + return (Opal.def(self, '$style', $Gradient_style$42 = function $$style($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if (args.$length()['$=='](1)) { - return Opal.const_get_relative($nesting, 'Style').$new(nil, args.$first()) - } else { - return $send(Opal.const_get_relative($nesting, 'Style'), 'new', Opal.to_a(args)) - } - }, TMP_Gradient_style_42.$$arity = -1), nil) && 'style'; + return $$($nesting, 'Style').$new(nil, args.$first()) + } else { + return $send($$($nesting, 'Style'), 'new', Opal.to_a(args)) + }; + }, $Gradient_style$42.$$arity = -1), nil) && 'style'; })($nesting[0], null, $nesting); - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/css/rule"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; +Opal.modules["paggio/css/rule"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$attr_reader', '$new', '$__send__', '$to_proc']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $CSS(){}; - var self = $CSS = $klass($base, $super, 'CSS', $CSS); + var self = $klass($base, $super, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Rule(){}; - var self = $Rule = $klass($base, $super, 'Rule', $Rule); + var self = $klass($base, $super, 'Rule'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Rule_initialize_1, TMP_Rule_method_missing_2; + var $nesting = [self].concat($parent_nesting), $Rule_initialize$1, $Rule_method_missing$2; - def.definition = nil; + self.$$prototype.definition = nil; self.$attr_reader("selector", "media"); - Opal.defn(self, '$initialize', TMP_Rule_initialize_1 = function $$initialize(selector, media) { + Opal.def(self, '$initialize', $Rule_initialize$1 = function $$initialize(selector, media) { var self = this; self.selector = selector; self.media = media; - return (self.definition = Opal.const_get_relative($nesting, 'Definition').$new()); - }, TMP_Rule_initialize_1.$$arity = 2); - return (Opal.defn(self, '$method_missing', TMP_Rule_method_missing_2 = function $$method_missing($a_rest) { - var self = this, args, $iter = TMP_Rule_method_missing_2.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Rule_method_missing_2.$$p = null; - return $send(self.definition, '__send__', Opal.to_a(args), block.$to_proc()) - }, TMP_Rule_method_missing_2.$$arity = -1), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + return (self.definition = $$($nesting, 'Definition').$new()); + }, $Rule_initialize$1.$$arity = 2); + return (Opal.def(self, '$method_missing', $Rule_method_missing$2 = function $$method_missing($a) { + var $iter = $Rule_method_missing$2.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Rule_method_missing$2.$$p = null; + + + if ($iter) $Rule_method_missing$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.definition, '__send__', Opal.to_a(args), block.$to_proc()); + }, $Rule_method_missing$2.$$arity = -1), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/css/font"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["paggio/css/font"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send; Opal.add_stubs(['$attr_reader', '$new', '$font', '$__send__', '$to_proc']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $CSS(){}; - var self = $CSS = $klass($base, $super, 'CSS', $CSS); + var self = $klass($base, $super, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Font(){}; - var self = $Font = $klass($base, $super, 'Font', $Font); + var self = $klass($base, $super, 'Font'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Font_initialize_1, TMP_Font_method_missing_2; + var $nesting = [self].concat($parent_nesting), $Font_initialize$1, $Font_method_missing$2; - def.definition = nil; + self.$$prototype.definition = nil; self.$attr_reader("name"); - Opal.defn(self, '$initialize', TMP_Font_initialize_1 = function $$initialize(name) { + Opal.def(self, '$initialize', $Font_initialize$1 = function $$initialize(name) { var self = this; self.name = name; - self.definition = Opal.const_get_relative($nesting, 'Definition').$new(); + self.definition = $$($nesting, 'Definition').$new(); return self.$font($hash2(["family"], {"family": name})); - }, TMP_Font_initialize_1.$$arity = 1); - return (Opal.defn(self, '$method_missing', TMP_Font_method_missing_2 = function $$method_missing($a_rest) { - var self = this, args, $iter = TMP_Font_method_missing_2.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Font_method_missing_2.$$p = null; - return $send(self.definition, '__send__', Opal.to_a(args), block.$to_proc()) - }, TMP_Font_method_missing_2.$$arity = -1), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + }, $Font_initialize$1.$$arity = 1); + return (Opal.def(self, '$method_missing', $Font_method_missing$2 = function $$method_missing($a) { + var $iter = $Font_method_missing$2.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Font_method_missing$2.$$p = null; + + + if ($iter) $Font_method_missing$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.definition, '__send__', Opal.to_a(args), block.$to_proc()); + }, $Font_method_missing$2.$$arity = -1), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/css/animation"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; +Opal.modules["paggio/css/animation"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$attr_reader', '$new', '$__send__', '$to_proc', '$<<', '$call', '$%', '$last']); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $CSS(){}; - var self = $CSS = $klass($base, $super, 'CSS', $CSS); + var self = $klass($base, $super, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Animation(){}; - var self = $Animation = $klass($base, $super, 'Animation', $Animation); + var self = $klass($base, $super, 'Animation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Animation_initialize_3, TMP_Animation_step_4, TMP_Animation_from_5, TMP_Animation_to_6, TMP_Animation_method_missing_7; + var $nesting = [self].concat($parent_nesting), $Animation_initialize$3, $Animation_step$4, $Animation_from$5, $Animation_to$6, $Animation_method_missing$7; - def.steps = nil; + self.$$prototype.steps = nil; (function($base, $super, $parent_nesting) { - function $Step(){}; - var self = $Step = $klass($base, $super, 'Step', $Step); + var self = $klass($base, $super, 'Step'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Step_initialize_1, TMP_Step_method_missing_2; + var $nesting = [self].concat($parent_nesting), $Step_initialize$1, $Step_method_missing$2; - def.definition = nil; + self.$$prototype.definition = nil; self.$attr_reader("value"); - Opal.defn(self, '$initialize', TMP_Step_initialize_1 = function $$initialize(value) { + Opal.def(self, '$initialize', $Step_initialize$1 = function $$initialize(value) { var self = this; self.value = value; - return (self.definition = Opal.const_get_relative($nesting, 'Definition').$new()); - }, TMP_Step_initialize_1.$$arity = 1); - return (Opal.defn(self, '$method_missing', TMP_Step_method_missing_2 = function $$method_missing($a_rest) { - var self = this, args, $iter = TMP_Step_method_missing_2.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Step_method_missing_2.$$p = null; - return $send(self.definition, '__send__', Opal.to_a(args), block.$to_proc()) - }, TMP_Step_method_missing_2.$$arity = -1), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting); + return (self.definition = $$($nesting, 'Definition').$new()); + }, $Step_initialize$1.$$arity = 1); + return (Opal.def(self, '$method_missing', $Step_method_missing$2 = function $$method_missing($a) { + var $iter = $Step_method_missing$2.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Step_method_missing$2.$$p = null; + + + if ($iter) $Step_method_missing$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.definition, '__send__', Opal.to_a(args), block.$to_proc()); + }, $Step_method_missing$2.$$arity = -1), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'BasicObject'), $nesting); self.$attr_reader("name", "steps"); - Opal.defn(self, '$initialize', TMP_Animation_initialize_3 = function $$initialize(name) { + Opal.def(self, '$initialize', $Animation_initialize$3 = function $$initialize(name) { var self = this; self.name = name; return (self.steps = []); - }, TMP_Animation_initialize_3.$$arity = 1); + }, $Animation_initialize$3.$$arity = 1); - Opal.defn(self, '$step', TMP_Animation_step_4 = function $$step(value) { - var self = this, $iter = TMP_Animation_step_4.$$p, block = $iter || nil; + Opal.def(self, '$step', $Animation_step$4 = function $$step(value) { + var $iter = $Animation_step$4.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Animation_step_4.$$p = null; + if ($iter) $Animation_step$4.$$p = null; - self.steps['$<<'](Opal.const_get_relative($nesting, 'Step').$new(value)); + + if ($iter) $Animation_step$4.$$p = null;; + self.steps['$<<']($$($nesting, 'Step').$new(value)); return block.$call(); - }, TMP_Animation_step_4.$$arity = 1); + }, $Animation_step$4.$$arity = 1); - Opal.defn(self, '$from', TMP_Animation_from_5 = function $$from(value) { - var self = this, $iter = TMP_Animation_from_5.$$p, block = $iter || nil; + Opal.def(self, '$from', $Animation_from$5 = function $$from(value) { + var $iter = $Animation_from$5.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Animation_from_5.$$p = null; + if ($iter) $Animation_from$5.$$p = null; + - self.steps['$<<'](Opal.const_get_relative($nesting, 'Step').$new((0)['$%']())); + if ($iter) $Animation_from$5.$$p = null;; + self.steps['$<<']($$($nesting, 'Step').$new((0)['$%']())); return block.$call(); - }, TMP_Animation_from_5.$$arity = 1); + }, $Animation_from$5.$$arity = 1); - Opal.defn(self, '$to', TMP_Animation_to_6 = function $$to(value) { - var self = this, $iter = TMP_Animation_to_6.$$p, block = $iter || nil; + Opal.def(self, '$to', $Animation_to$6 = function $$to(value) { + var $iter = $Animation_to$6.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Animation_to_6.$$p = null; + if ($iter) $Animation_to$6.$$p = null; - self.steps['$<<'](Opal.const_get_relative($nesting, 'Step').$new((100)['$%']())); + + if ($iter) $Animation_to$6.$$p = null;; + self.steps['$<<']($$($nesting, 'Step').$new((100)['$%']())); return block.$call(); - }, TMP_Animation_to_6.$$arity = 1); - return (Opal.defn(self, '$method_missing', TMP_Animation_method_missing_7 = function $$method_missing($a_rest) { - var self = this, args, $iter = TMP_Animation_method_missing_7.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Animation_method_missing_7.$$p = null; - return $send(self.steps.$last(), '__send__', Opal.to_a(args), block.$to_proc()) - }, TMP_Animation_method_missing_7.$$arity = -1), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting) + }, $Animation_to$6.$$arity = 1); + return (Opal.def(self, '$method_missing', $Animation_method_missing$7 = function $$method_missing($a) { + var $iter = $Animation_method_missing$7.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Animation_method_missing$7.$$p = null; + + + if ($iter) $Animation_method_missing$7.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.steps.$last(), '__send__', Opal.to_a(args), block.$to_proc()); + }, $Animation_method_missing$7.$$arity = -1), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) + })($nesting[0], $$($nesting, 'BasicObject'), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/css"] = function(Opal) { +Opal.modules["paggio/css"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; Opal.add_stubs(['$require', '$each', '$start_with?', '$+', '$[]', '$==', '$attr_reader', '$raise', '$arity', '$instance_exec', '$to_proc', '$call', '$any?', '$include?', '$<<', '$new', '$selector', '$pop', '$method_missing', '$__send__', '$last']); @@ -8332,48 +9380,53 @@ Opal.modules["paggio/css"] = function(Opal) { self.$require("paggio/css/font"); self.$require("paggio/css/animation"); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $CSS(){}; - var self = $CSS = $klass($base, $super, 'CSS', $CSS); + var self = $klass($base, $super, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_CSS_selector_2, TMP_CSS_initialize_3, TMP_CSS_rule_4, TMP_CSS_media_7, TMP_CSS_font_8, TMP_CSS_animation_9, TMP_CSS_method_missing_10; + var $nesting = [self].concat($parent_nesting), $CSS_selector$1, $CSS_initialize$3, $CSS_rule$4, $CSS_media$7, $CSS_font$8, $CSS_animation$9, $CSS_method_missing$10; - def.media = def.current = def.fonts = def.animations = nil; + self.$$prototype.media = self.$$prototype.current = self.$$prototype.fonts = self.$$prototype.animations = nil; - Opal.defs(self, '$selector', TMP_CSS_selector_2 = function $$selector(list) { - var TMP_1, self = this, result = nil; + Opal.defs(self, '$selector', $CSS_selector$1 = function $$selector(list) { + var $$2, self = this, result = nil; result = ""; - $send(list, 'each', [], (TMP_1 = function(part){var self = TMP_1.$$s || this; -if (part == null) part = nil; - if ($truthy(part['$start_with?']("&"))) { + $send(list, 'each', [], ($$2 = function(part){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (part == null) { + part = nil; + }; + if ($truthy(part['$start_with?']("&"))) { return (result = $rb_plus(result, part['$[]']($range(1, -1, false)))) - } else { + } else { return (result = $rb_plus(result, $rb_plus(" ", part))) - }}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); if (result['$[]'](0)['$=='](" ")) { return result['$[]']($range(1, -1, false)) - } else { + } else { return result }; - }, TMP_CSS_selector_2.$$arity = 1); + }, $CSS_selector$1.$$arity = 1); self.$attr_reader("rules", "media", "fonts", "animations"); - Opal.defn(self, '$initialize', TMP_CSS_initialize_3 = function $$initialize() { - var self = this, $iter = TMP_CSS_initialize_3.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $CSS_initialize$3 = function $$initialize() { + var $iter = $CSS_initialize$3.$$p, block = $iter || nil, self = this; - if ($iter) TMP_CSS_initialize_3.$$p = null; + if ($iter) $CSS_initialize$3.$$p = null; + + if ($iter) $CSS_initialize$3.$$p = null;; if ($truthy(block)) { - } else { - Opal.const_get_qualified('::', 'Kernel').$raise(Opal.const_get_qualified('::', 'ArgumentError'), "no block given") + } else { + $$$('::', 'Kernel').$raise($$$('::', 'ArgumentError'), "no block given") }; self.selector = []; self.current = []; @@ -8382,135 +9435,153 @@ if (part == null) part = nil; self.animations = []; if (block.$arity()['$=='](0)) { return $send(self, 'instance_exec', [], block.$to_proc()) - } else { + } else { return block.$call(self) }; - }, TMP_CSS_initialize_3.$$arity = 0); + }, $CSS_initialize$3.$$arity = 0); - Opal.defn(self, '$rule', TMP_CSS_rule_4 = function $$rule($a_rest) { - var TMP_5, TMP_6, self = this, names, $iter = TMP_CSS_rule_4.$$p, block = $iter || nil; + Opal.def(self, '$rule', $CSS_rule$4 = function $$rule($a) { + var $iter = $CSS_rule$4.$$p, block = $iter || nil, $post_args, names, $$5, $$6, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_CSS_rule_4.$$p = null; + if ($iter) $CSS_rule$4.$$p = null; + + if ($iter) $CSS_rule$4.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; if ($truthy(block)) { - } else { + } else { return nil }; - if ($truthy($send(names, 'any?', [], (TMP_5 = function(n){var self = TMP_5.$$s || this; -if (n == null) n = nil; - return n['$include?'](",")}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)))) { - Opal.const_get_qualified('::', 'Kernel').$raise(Opal.const_get_qualified('::', 'ArgumentError'), "selectors cannot contain commas")}; - return $send(names, 'each', [], (TMP_6 = function(name){var self = TMP_6.$$s || this; + if ($truthy($send(names, 'any?', [], ($$5 = function(n){var self = $$5.$$s == null ? this : $$5.$$s; + + + + if (n == null) { + n = nil; + }; + return n['$include?'](",");}, $$5.$$s = self, $$5.$$arity = 1, $$5)))) { + $$$('::', 'Kernel').$raise($$$('::', 'ArgumentError'), "selectors cannot contain commas")}; + return $send(names, 'each', [], ($$6 = function(name){var self = $$6.$$s == null ? this : $$6.$$s; if (self.selector == null) self.selector = nil; if (self.current == null) self.current = nil; if (self.media == null) self.media = nil; if (self.rules == null) self.rules = nil; -if (name == null) name = nil; - + + + + if (name == null) { + name = nil; + }; self.selector['$<<'](name); - self.current['$<<'](Opal.const_get_relative($nesting, 'Rule').$new(Opal.const_get_relative($nesting, 'CSS').$selector(self.selector), self.media)); + self.current['$<<']($$($nesting, 'Rule').$new($$($nesting, 'CSS').$selector(self.selector), self.media)); block.$call(); self.selector.$pop(); - return self.rules['$<<'](self.current.$pop());}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); - }, TMP_CSS_rule_4.$$arity = -1); + return self.rules['$<<'](self.current.$pop());}, $$6.$$s = self, $$6.$$arity = 1, $$6)); + }, $CSS_rule$4.$$arity = -1); - Opal.defn(self, '$media', TMP_CSS_media_7 = function $$media(query, $a_rest) { - var $b, self = this, args, $iter = TMP_CSS_media_7.$$p, block = $iter || nil, old = nil; + Opal.def(self, '$media', $CSS_media$7 = function $$media(query, $a) { + var $iter = $CSS_media$7.$$p, block = $iter || nil, $post_args, args, $b, self = this, old = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_CSS_media_7.$$p = null; + if ($iter) $CSS_media$7.$$p = null; + + + if ($iter) $CSS_media$7.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(block)) { $b = [self.media, query], (old = $b[0]), (self.media = $b[1]), $b; block.$call(); return (self.media = old); - } else { + } else { return $send(self, 'method_missing', ["media", query].concat(Opal.to_a(args))) - } - }, TMP_CSS_media_7.$$arity = -2); + }; + }, $CSS_media$7.$$arity = -2); - Opal.defn(self, '$font', TMP_CSS_font_8 = function $$font(name, $a_rest) { - var self = this, args, $iter = TMP_CSS_font_8.$$p, block = $iter || nil; + Opal.def(self, '$font', $CSS_font$8 = function $$font(name, $a) { + var $iter = $CSS_font$8.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_CSS_font_8.$$p = null; + if ($iter) $CSS_font$8.$$p = null; + + + if ($iter) $CSS_font$8.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(block)) { - self.current['$<<'](Opal.const_get_relative($nesting, 'Font').$new(name)); + self.current['$<<']($$($nesting, 'Font').$new(name)); block.$call(); return self.fonts['$<<'](self.current.$pop()); - } else { + } else { return $send(self, 'method_missing', ["font", name].concat(Opal.to_a(args))) - } - }, TMP_CSS_font_8.$$arity = -2); + }; + }, $CSS_font$8.$$arity = -2); - Opal.defn(self, '$animation', TMP_CSS_animation_9 = function $$animation(name, $a_rest) { - var self = this, args, $iter = TMP_CSS_animation_9.$$p, block = $iter || nil; + Opal.def(self, '$animation', $CSS_animation$9 = function $$animation(name, $a) { + var $iter = $CSS_animation$9.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_CSS_animation_9.$$p = null; + if ($iter) $CSS_animation$9.$$p = null; + + + if ($iter) $CSS_animation$9.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(block)) { - self.current['$<<'](Opal.const_get_relative($nesting, 'Animation').$new(name)); + self.current['$<<']($$($nesting, 'Animation').$new(name)); block.$call(); return self.animations['$<<'](self.current.$pop()); - } else { + } else { return $send(self, 'method_missing', ["animation", name].concat(Opal.to_a(args))) - } - }, TMP_CSS_animation_9.$$arity = -2); - return (Opal.defn(self, '$method_missing', TMP_CSS_method_missing_10 = function $$method_missing($a_rest) { - var self = this, args, $iter = TMP_CSS_method_missing_10.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_CSS_method_missing_10.$$p = null; - return $send(self.current.$last(), '__send__', Opal.to_a(args), block.$to_proc()) - }, TMP_CSS_method_missing_10.$$arity = -1), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting); - return (function($base, $super, $parent_nesting) { - function $HTML(){}; - var self = $HTML = $klass($base, $super, 'HTML', $HTML); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_HTML_style_11; - - def.current = def.roots = nil; - return (Opal.defn(self, '$style', TMP_HTML_style_11 = function $$style() { - var $a, self = this, $iter = TMP_HTML_style_11.$$p, block = $iter || nil; + }; + }, $CSS_animation$9.$$arity = -2); + return (Opal.def(self, '$method_missing', $CSS_method_missing$10 = function $$method_missing($a) { + var $iter = $CSS_method_missing$10.$$p, block = $iter || nil, $post_args, args, self = this; - if ($iter) TMP_HTML_style_11.$$p = null; - return ($truthy($a = self.current) ? $a : self.roots)['$<<']($send(Opal.const_get_relative($nesting, 'CSS'), 'new', [], block.$to_proc())) - }, TMP_HTML_style_11.$$arity = 0), nil) && 'style' - })($nesting[0], Opal.const_get_relative($nesting, 'BasicObject'), $nesting); - })($nesting[0], null, $nesting); + if ($iter) $CSS_method_missing$10.$$p = null; + + + if ($iter) $CSS_method_missing$10.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.current.$last(), '__send__', Opal.to_a(args), block.$to_proc()); + }, $CSS_method_missing$10.$$arity = -1), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'BasicObject'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'HTML'); + + var $nesting = [self].concat($parent_nesting), $HTML_style$11; + + self.$$prototype.current = self.$$prototype.roots = nil; + return (Opal.def(self, '$style', $HTML_style$11 = function $$style() { + var $iter = $HTML_style$11.$$p, block = $iter || nil, self = this, $ret_or_1 = nil; + + if ($iter) $HTML_style$11.$$p = null; + + + if ($iter) $HTML_style$11.$$p = null;; + return (function() {if ($truthy(($ret_or_1 = self.current))) { + return $ret_or_1 + } else { + return self.roots + }; return nil; })()['$<<']($send($$($nesting, 'CSS'), 'new', [], block.$to_proc())); + }, $HTML_style$11.$$arity = 0), nil) && 'style' + })($nesting[0], $$($nesting, 'BasicObject'), $nesting); + })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["stringio"] = function(Opal) { +Opal.modules["stringio"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } @@ -8523,175 +9594,140 @@ Opal.modules["stringio"] = function(Opal) { function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias, $truthy = Opal.truthy; - Opal.add_stubs(['$include', '$new', '$call', '$close', '$attr_accessor', '$length', '$include?', '$!', '$check_readable', '$==', '$===', '$>=', '$raise', '$>', '$+', '$-', '$seek', '$enum_for', '$eof?', '$ord', '$[]', '$check_writable', '$String', '$write', '$closed_write?', '$closed_read?']); + Opal.add_stubs(['$new', '$call', '$close', '$attr_accessor', '$check_readable', '$==', '$length', '$===', '$>=', '$raise', '$>', '$+', '$-', '$seek', '$check_writable', '$String', '$[]', '$eof?', '$write', '$read']); return (function($base, $super, $parent_nesting) { - function $StringIO(){}; - var self = $StringIO = $klass($base, $super, 'StringIO', $StringIO); + var self = $klass($base, $super, 'StringIO'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_StringIO_open_1, TMP_StringIO_initialize_2, TMP_StringIO_eof$q_3, TMP_StringIO_seek_4, TMP_StringIO_tell_5, TMP_StringIO_rewind_6, TMP_StringIO_each_byte_7, TMP_StringIO_each_char_8, TMP_StringIO_write_9, TMP_StringIO_read_10, TMP_StringIO_close_11, TMP_StringIO_close_read_12, TMP_StringIO_close_write_13, TMP_StringIO_closed$q_14, TMP_StringIO_closed_read$q_15, TMP_StringIO_closed_write$q_16, TMP_StringIO_check_writable_17, TMP_StringIO_check_readable_18; + var $nesting = [self].concat($parent_nesting), $StringIO_open$1, $StringIO_initialize$2, $StringIO_eof$ques$3, $StringIO_seek$4, $StringIO_tell$5, $StringIO_rewind$6, $StringIO_write$7, $StringIO_read$8, $StringIO_sysread$9; - def.position = def.string = def.closed = nil; + self.$$prototype.position = self.$$prototype.string = nil; - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IO'), 'Readable')); - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IO'), 'Writable')); - Opal.defs(self, '$open', TMP_StringIO_open_1 = function $$open(string, mode) { - var self = this, $iter = TMP_StringIO_open_1.$$p, block = $iter || nil, io = nil, res = nil; + Opal.defs(self, '$open', $StringIO_open$1 = function $$open(string, mode) { + var $iter = $StringIO_open$1.$$p, block = $iter || nil, self = this, io = nil, res = nil; + if ($iter) $StringIO_open$1.$$p = null; + + + if ($iter) $StringIO_open$1.$$p = null;; + if (string == null) { string = ""; - } + }; + if (mode == null) { mode = nil; - } - if ($iter) TMP_StringIO_open_1.$$p = null; - + }; io = self.$new(string, mode); res = block.$call(io); io.$close(); return res; - }, TMP_StringIO_open_1.$$arity = -1); + }, $StringIO_open$1.$$arity = -1); self.$attr_accessor("string"); - Opal.defn(self, '$initialize', TMP_StringIO_initialize_2 = function $$initialize(string, mode) { - var $a, self = this; + Opal.def(self, '$initialize', $StringIO_initialize$2 = function $$initialize(string, mode) { + var $iter = $StringIO_initialize$2.$$p, $yield = $iter || nil, self = this; + if ($iter) $StringIO_initialize$2.$$p = null; + + if (string == null) { string = ""; - } + }; + if (mode == null) { mode = "rw"; - } - - self.string = string; - self.position = string.$length(); - if ($truthy(($truthy($a = mode['$include?']("r")) ? mode['$include?']("w")['$!']() : $a))) { - return (self.closed = "write") - } else if ($truthy(($truthy($a = mode['$include?']("w")) ? mode['$include?']("r")['$!']() : $a))) { - return (self.closed = "read") - } else { - return nil }; - }, TMP_StringIO_initialize_2.$$arity = -1); + self.string = string; + self.position = 0; + return $send2(self, $find_super(self, 'initialize', $StringIO_initialize$2, false, true), 'initialize', [nil, mode], null); + }, $StringIO_initialize$2.$$arity = -1); - Opal.defn(self, '$eof?', TMP_StringIO_eof$q_3 = function() { + Opal.def(self, '$eof?', $StringIO_eof$ques$3 = function() { var self = this; self.$check_readable(); return self.position['$=='](self.string.$length()); - }, TMP_StringIO_eof$q_3.$$arity = 0); - Opal.alias(self, "eof", "eof?"); + }, $StringIO_eof$ques$3.$$arity = 0); + $alias(self, "eof", "eof?"); - Opal.defn(self, '$seek', TMP_StringIO_seek_4 = function $$seek(pos, whence) { + Opal.def(self, '$seek', $StringIO_seek$4 = function $$seek(pos, whence) { var self = this, $case = nil; - if (whence == null) { - whence = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IO'), 'SEEK_SET'); - } + + if (whence == null) { + whence = $$$($$($nesting, 'IO'), 'SEEK_SET'); + }; + self.read_buffer = ""; $case = whence; - if (Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IO'), 'SEEK_SET')['$===']($case)) { + if ($$$($$($nesting, 'IO'), 'SEEK_SET')['$===']($case)) { if ($truthy($rb_ge(pos, 0))) { - } else { - self.$raise(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Errno'), 'EINVAL')) + } else { + self.$raise($$$($$($nesting, 'Errno'), 'EINVAL')) }; self.position = pos;} - else if (Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IO'), 'SEEK_CUR')['$===']($case)) {if ($truthy($rb_gt($rb_plus(self.position, pos), self.string.$length()))) { + else if ($$$($$($nesting, 'IO'), 'SEEK_CUR')['$===']($case)) {if ($truthy($rb_gt($rb_plus(self.position, pos), self.string.$length()))) { self.position = self.string.$length() - } else { + } else { self.position = $rb_plus(self.position, pos) }} - else if (Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IO'), 'SEEK_END')['$===']($case)) {if ($truthy($rb_gt(pos, self.string.$length()))) { + else if ($$$($$($nesting, 'IO'), 'SEEK_END')['$===']($case)) {if ($truthy($rb_gt(pos, self.string.$length()))) { self.position = 0 - } else { + } else { self.position = $rb_minus(self.position, pos) }}; return 0; - }, TMP_StringIO_seek_4.$$arity = -2); + }, $StringIO_seek$4.$$arity = -2); - Opal.defn(self, '$tell', TMP_StringIO_tell_5 = function $$tell() { + Opal.def(self, '$tell', $StringIO_tell$5 = function $$tell() { var self = this; return self.position - }, TMP_StringIO_tell_5.$$arity = 0); - Opal.alias(self, "pos", "tell"); - Opal.alias(self, "pos=", "seek"); + }, $StringIO_tell$5.$$arity = 0); + $alias(self, "pos", "tell"); + $alias(self, "pos=", "seek"); - Opal.defn(self, '$rewind', TMP_StringIO_rewind_6 = function $$rewind() { + Opal.def(self, '$rewind', $StringIO_rewind$6 = function $$rewind() { var self = this; return self.$seek(0) - }, TMP_StringIO_rewind_6.$$arity = 0); - - Opal.defn(self, '$each_byte', TMP_StringIO_each_byte_7 = function $$each_byte() { - var $a, self = this, $iter = TMP_StringIO_each_byte_7.$$p, block = $iter || nil, i = nil; - - if ($iter) TMP_StringIO_each_byte_7.$$p = null; - - if ($truthy(block)) { - } else { - return self.$enum_for("each_byte") - }; - self.$check_readable(); - i = self.position; - while (!($truthy(self['$eof?']()))) { - - block.$call(self.string['$[]'](i).$ord()); - i = $rb_plus(i, 1); - }; - return self; - }, TMP_StringIO_each_byte_7.$$arity = 0); - - Opal.defn(self, '$each_char', TMP_StringIO_each_char_8 = function $$each_char() { - var $a, self = this, $iter = TMP_StringIO_each_char_8.$$p, block = $iter || nil, i = nil; - - if ($iter) TMP_StringIO_each_char_8.$$p = null; - - if ($truthy(block)) { - } else { - return self.$enum_for("each_char") - }; - self.$check_readable(); - i = self.position; - while (!($truthy(self['$eof?']()))) { - - block.$call(self.string['$[]'](i)); - i = $rb_plus(i, 1); - }; - return self; - }, TMP_StringIO_each_char_8.$$arity = 0); + }, $StringIO_rewind$6.$$arity = 0); - Opal.defn(self, '$write', TMP_StringIO_write_9 = function $$write(string) { + Opal.def(self, '$write', $StringIO_write$7 = function $$write(string) { var self = this, before = nil, after = nil; self.$check_writable(); + self.read_buffer = ""; string = self.$String(string); if (self.string.$length()['$=='](self.position)) { self.string = $rb_plus(self.string, string); return (self.position = $rb_plus(self.position, string.$length())); - } else { + } else { before = self.string['$[]'](Opal.Range.$new(0, $rb_minus(self.position, 1), false)); after = self.string['$[]'](Opal.Range.$new($rb_plus(self.position, string.$length()), -1, false)); self.string = $rb_plus($rb_plus(before, string), after); return (self.position = $rb_plus(self.position, string.$length())); }; - }, TMP_StringIO_write_9.$$arity = 1); + }, $StringIO_write$7.$$arity = 1); - Opal.defn(self, '$read', TMP_StringIO_read_10 = function $$read(length, outbuf) { + Opal.def(self, '$read', $StringIO_read$8 = function $$read(length, outbuf) { var self = this, string = nil, str = nil; + + if (length == null) { length = nil; - } + }; + if (outbuf == null) { outbuf = nil; - } - + }; self.$check_readable(); if ($truthy(self['$eof?']())) { return nil}; @@ -8699,8 +9735,10 @@ Opal.modules["stringio"] = function(Opal) { str = self.string['$[]'](self.position, length); self.position = $rb_plus(self.position, length); + if ($truthy($rb_gt(self.position, self.string.$length()))) { + self.position = self.string.$length()}; return str; - } else { + } else { str = self.string['$[]'](Opal.Range.$new(self.position, -1, false)); self.position = self.string.$length(); @@ -8708,78 +9746,23 @@ Opal.modules["stringio"] = function(Opal) { }; return nil; })(); if ($truthy(outbuf)) { return outbuf.$write(string) - } else { + } else { return string }; - }, TMP_StringIO_read_10.$$arity = -1); - - Opal.defn(self, '$close', TMP_StringIO_close_11 = function $$close() { - var self = this; - - return (self.closed = "both") - }, TMP_StringIO_close_11.$$arity = 0); - - Opal.defn(self, '$close_read', TMP_StringIO_close_read_12 = function $$close_read() { - var self = this; - - if (self.closed['$==']("write")) { - return (self.closed = "both") - } else { - return (self.closed = "read") - } - }, TMP_StringIO_close_read_12.$$arity = 0); - - Opal.defn(self, '$close_write', TMP_StringIO_close_write_13 = function $$close_write() { - var self = this; - - if (self.closed['$==']("read")) { - return (self.closed = "both") - } else { - return (self.closed = "write") - } - }, TMP_StringIO_close_write_13.$$arity = 0); - - Opal.defn(self, '$closed?', TMP_StringIO_closed$q_14 = function() { - var self = this; - - return self.closed['$==']("both") - }, TMP_StringIO_closed$q_14.$$arity = 0); + }, $StringIO_read$8.$$arity = -1); - Opal.defn(self, '$closed_read?', TMP_StringIO_closed_read$q_15 = function() { - var $a, self = this; - - return ($truthy($a = self.closed['$==']("read")) ? $a : self.closed['$==']("both")) - }, TMP_StringIO_closed_read$q_15.$$arity = 0); - - Opal.defn(self, '$closed_write?', TMP_StringIO_closed_write$q_16 = function() { - var $a, self = this; - - return ($truthy($a = self.closed['$==']("write")) ? $a : self.closed['$==']("both")) - }, TMP_StringIO_closed_write$q_16.$$arity = 0); - - Opal.defn(self, '$check_writable', TMP_StringIO_check_writable_17 = function $$check_writable() { - var self = this; - - if ($truthy(self['$closed_write?']())) { - return self.$raise(Opal.const_get_relative($nesting, 'IOError'), "not opened for writing") - } else { - return nil - } - }, TMP_StringIO_check_writable_17.$$arity = 0); - return (Opal.defn(self, '$check_readable', TMP_StringIO_check_readable_18 = function $$check_readable() { + Opal.def(self, '$sysread', $StringIO_sysread$9 = function $$sysread(length) { var self = this; - if ($truthy(self['$closed_read?']())) { - return self.$raise(Opal.const_get_relative($nesting, 'IOError'), "not opened for reading") - } else { - return nil - } - }, TMP_StringIO_check_readable_18.$$arity = 0), nil) && 'check_readable'; - })($nesting[0], Opal.const_get_relative($nesting, 'IO'), $nesting) + + self.$check_readable(); + return self.$read(length); + }, $StringIO_sysread$9.$$arity = 1); + return $alias(self, "readpartial", "read"); + })($nesting[0], $$($nesting, 'IO'), $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio/formatter"] = function(Opal) { +Opal.modules["paggio/formatter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } @@ -8789,123 +9772,151 @@ Opal.modules["paggio/formatter"] = function(Opal) { function $rb_times(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; Opal.add_stubs(['$require', '$[]=', '$to_h', '$-', '$[]', '$dup', '$deep_merge!', '$call', '$replace', '$===', '$new', '$merge', '$each', '$string', '$indent?', '$+', '$lines', '$puts', '$*', '$chomp', '$print', '$gsub', '$to_s', '$for', '$version', '$indent', '$format', '$instance_eval', '$empty?', '$map', '$escape', '$<<', '$join', '$include?', '$downcase', '$name', '$value', '$important', '$fonts', '$animations', '$steps', '$reverse', '$rules', '$media', '$selector', '$deindent']); self.$require("stringio"); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Paggio_14, TMP_Paggio_17, TMP_Paggio_24, TMP_Paggio_25; + var $nesting = [self].concat($parent_nesting), $Paggio$14, $Paggio$17, $Paggio$24, $Paggio$25; (function($base, $super, $parent_nesting) { - function $Formatter(){}; - var self = $Formatter = $klass($base, $super, 'Formatter', $Formatter); + var self = $klass($base, $super, 'Formatter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Formatter_to_h_1, TMP_Formatter_for_2, TMP_Formatter_options_3, TMP_Formatter_initialize_4, TMP_Formatter_format_6, TMP_Formatter_to_s_7, TMP_Formatter_indent$q_8, TMP_Formatter_indent_9, TMP_Formatter_deindent_10, TMP_Formatter_print_12, TMP_Formatter_escape_13; + var $nesting = [self].concat($parent_nesting), $Formatter_to_h$1, $Formatter_for$2, $Formatter_options$3, $Formatter_initialize$4, $Formatter_format$5, $Formatter_to_s$7, $Formatter_indent$ques$8, $Formatter_indent$9, $Formatter_deindent$10, $Formatter_print$11, $Formatter_escape$13; - def.options = def.io = nil; + self.$$prototype.options = self.$$prototype.io = nil; - Opal.defs(self, '$to_h', TMP_Formatter_to_h_1 = function $$to_h() { - var $a, self = this; + Opal.defs(self, '$to_h', $Formatter_to_h$1 = function $$to_h() { + var self = this, $ret_or_1 = nil; if (self.formatters == null) self.formatters = nil; - return (self.formatters = ($truthy($a = self.formatters) ? $a : $hash2([], {}))) - }, TMP_Formatter_to_h_1.$$arity = 0); - Opal.defs(self, '$for', TMP_Formatter_for_2 = function(klass) { - var self = this, $iter = TMP_Formatter_for_2.$$p, block = $iter || nil, $writer = nil; + return (self.formatters = (function() {if ($truthy(($ret_or_1 = self.formatters))) { + return $ret_or_1 + } else { + return $hash2([], {}) + }; return nil; })()) + }, $Formatter_to_h$1.$$arity = 0); + Opal.defs(self, '$for', $Formatter_for$2 = function(klass) { + var $iter = $Formatter_for$2.$$p, block = $iter || nil, self = this, $writer = nil; - if ($iter) TMP_Formatter_for_2.$$p = null; + if ($iter) $Formatter_for$2.$$p = null; + + + if ($iter) $Formatter_for$2.$$p = null;; if ($truthy(block)) { $writer = [klass, block]; $send(self.$to_h(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { return self.$to_h()['$[]'](klass) - } - }, TMP_Formatter_for_2.$$arity = 1); - Opal.defs(self, '$options', TMP_Formatter_options_3 = function $$options(options) { - var self = this, $iter = TMP_Formatter_options_3.$$p, block = $iter || nil, old = nil, result = nil; + }; + }, $Formatter_for$2.$$arity = 1); + Opal.defs(self, '$options', $Formatter_options$3 = function $$options(options) { + var $iter = $Formatter_options$3.$$p, block = $iter || nil, self = this, old = nil, result = nil; - if ($iter) TMP_Formatter_options_3.$$p = null; + if ($iter) $Formatter_options$3.$$p = null; - old = Opal.const_get_relative($nesting, 'OPTIONS').$dup(); - Opal.const_get_relative($nesting, 'Utils')['$deep_merge!'](Opal.const_get_relative($nesting, 'OPTIONS'), options); + + if ($iter) $Formatter_options$3.$$p = null;; + old = $$($nesting, 'OPTIONS').$dup(); + $$($nesting, 'Utils')['$deep_merge!']($$($nesting, 'OPTIONS'), options); result = block.$call(); - Opal.const_get_relative($nesting, 'OPTIONS').$replace(old); + $$($nesting, 'OPTIONS').$replace(old); return result; - }, TMP_Formatter_options_3.$$arity = 1); + }, $Formatter_options$3.$$arity = 1); Opal.const_set($nesting[0], 'OPTIONS', $hash2(["indent"], {"indent": $hash2(["level", "with"], {"level": 0, "with": "\t"})})); - Opal.defn(self, '$initialize', TMP_Formatter_initialize_4 = function $$initialize(io, options) { - var $a, self = this; + Opal.def(self, '$initialize', $Formatter_initialize$4 = function $$initialize(io, options) { + var self = this, $ret_or_2 = nil; + + if (io == null) { io = nil; - } + }; + if (options == null) { options = $hash2([], {}); - } - - if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](io))) { + }; + if ($truthy($$($nesting, 'Hash')['$==='](io))) { - self.io = Opal.const_get_relative($nesting, 'StringIO').$new(); + self.io = $$($nesting, 'StringIO').$new(); self.options = io; - } else { + } else { - self.io = ($truthy($a = io) ? $a : Opal.const_get_relative($nesting, 'StringIO').$new()); + self.io = (function() {if ($truthy(($ret_or_2 = io))) { + return $ret_or_2 + } else { + return $$($nesting, 'StringIO').$new() + }; return nil; })(); self.options = options; }; - return (self.options = Opal.const_get_relative($nesting, 'OPTIONS').$merge(self.options)); - }, TMP_Formatter_initialize_4.$$arity = -1); + return (self.options = $$($nesting, 'OPTIONS').$merge(self.options)); + }, $Formatter_initialize$4.$$arity = -1); - Opal.defn(self, '$format', TMP_Formatter_format_6 = function $$format(item) { - var TMP_5, self = this; + Opal.def(self, '$format', $Formatter_format$5 = function $$format(item) { + var $$6, self = this; - (function(){var $brk = Opal.new_brk(); try {return $send(Opal.const_get_relative($nesting, 'Formatter').$to_h(), 'each', [], (TMP_5 = function(klass, block){var self = TMP_5.$$s || this; -if (klass == null) klass = nil;if (block == null) block = nil; - if ($truthy(klass['$==='](item))) { + (function(){var $brk = Opal.new_brk(); try {return $send($$($nesting, 'Formatter').$to_h(), 'each', [], ($$6 = function(klass, block){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (klass == null) { + klass = nil; + }; + + if (block == null) { + block = nil; + }; + if ($truthy(klass['$==='](item))) { block.$call(self, item); Opal.brk(nil, $brk); - } else { + } else { return nil - }}, TMP_5.$$s = self, TMP_5.$$brk = $brk, TMP_5.$$arity = 2, TMP_5)) + };}, $$6.$$s = self, $$6.$$brk = $brk, $$6.$$arity = 2, $$6)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return self; - }, TMP_Formatter_format_6.$$arity = 1); + }, $Formatter_format$5.$$arity = 1); - Opal.defn(self, '$to_s', TMP_Formatter_to_s_7 = function $$to_s() { + Opal.def(self, '$to_s', $Formatter_to_s$7 = function $$to_s() { var self = this; return self.io.$string() - }, TMP_Formatter_to_s_7.$$arity = 0); + }, $Formatter_to_s$7.$$arity = 0); - Opal.defn(self, '$indent?', TMP_Formatter_indent$q_8 = function() { - var self = this, $iter = TMP_Formatter_indent$q_8.$$p, block = $iter || nil; + Opal.def(self, '$indent?', $Formatter_indent$ques$8 = function() { + var $iter = $Formatter_indent$ques$8.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Formatter_indent$q_8.$$p = null; + if ($iter) $Formatter_indent$ques$8.$$p = null; + + + if ($iter) $Formatter_indent$ques$8.$$p = null;; try { return self.options['$[]']("indent")['$[]']("level") } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { try { return false - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - } - }, TMP_Formatter_indent$q_8.$$arity = 0); + }; + }, $Formatter_indent$ques$8.$$arity = 0); - Opal.defn(self, '$indent', TMP_Formatter_indent_9 = function $$indent() { - var self = this, $iter = TMP_Formatter_indent_9.$$p, block = $iter || nil, $binary_op_recvr_tmp_1 = nil, $writer = nil, $binary_op_recvr_tmp_2 = nil, $binary_op_recvr_tmp_3 = nil; + Opal.def(self, '$indent', $Formatter_indent$9 = function $$indent() { + var $iter = $Formatter_indent$9.$$p, block = $iter || nil, self = this, $binary_op_recvr_tmp_1 = nil, $writer = nil, $binary_op_recvr_tmp_2 = nil, $binary_op_recvr_tmp_3 = nil; - if ($iter) TMP_Formatter_indent_9.$$p = null; + if ($iter) $Formatter_indent$9.$$p = null; + + + if ($iter) $Formatter_indent$9.$$p = null;; if ($truthy(self['$indent?']())) { if ($truthy(block)) { @@ -8922,7 +9933,7 @@ if (klass == null) klass = nil;if (block == null) block = nil; $writer = ["level", $rb_minus($binary_op_recvr_tmp_2['$[]']("level"), 1)]; $send($binary_op_recvr_tmp_2, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];;; - } else { + } else { $binary_op_recvr_tmp_3 = self.options['$[]']("indent"); @@ -8932,12 +9943,12 @@ if (klass == null) klass = nil;if (block == null) block = nil; } } else if ($truthy(block)) { return block.$call() - } else { + } else { return nil - } - }, TMP_Formatter_indent_9.$$arity = 0); + }; + }, $Formatter_indent$9.$$arity = 0); - Opal.defn(self, '$deindent', TMP_Formatter_deindent_10 = function $$deindent() { + Opal.def(self, '$deindent', $Formatter_deindent$10 = function $$deindent() { var self = this, $binary_op_recvr_tmp_4 = nil, $writer = nil; if ($truthy(self['$indent?']())) { @@ -8947,125 +9958,217 @@ if (klass == null) klass = nil;if (block == null) block = nil; $writer = ["level", $rb_minus($binary_op_recvr_tmp_4['$[]']("level"), 1)]; $send($binary_op_recvr_tmp_4, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - } else { + } else { return nil } - }, TMP_Formatter_deindent_10.$$arity = 0); + }, $Formatter_deindent$10.$$arity = 0); - Opal.defn(self, '$print', TMP_Formatter_print_12 = function $$print(text) { - var TMP_11, self = this, level = nil; + Opal.def(self, '$print', $Formatter_print$11 = function $$print(text) { + var $$12, self = this, level = nil; if ($truthy((level = self['$indent?']()))) { - return $send(text.$lines(), 'each', [], (TMP_11 = function(line){var self = TMP_11.$$s || this; + return $send(text.$lines(), 'each', [], ($$12 = function(line){var self = $$12.$$s == null ? this : $$12.$$s; if (self.io == null) self.io = nil; if (self.options == null) self.options = nil; -if (line == null) line = nil; - return self.io.$puts("" + ($rb_times(self.options['$[]']("indent")['$[]']("with"), level)) + (line.$chomp()))}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)) - } else { + + + + if (line == null) { + line = nil; + }; + return self.io.$puts("" + ($rb_times(self.options['$[]']("indent")['$[]']("with"), level)) + (line.$chomp()));}, $$12.$$s = self, $$12.$$arity = 1, $$12)) + } else { return self.io.$print(text) } - }, TMP_Formatter_print_12.$$arity = 1); - return (Opal.defn(self, '$escape', TMP_Formatter_escape_13 = function $$escape(string) { + }, $Formatter_print$11.$$arity = 1); + return (Opal.def(self, '$escape', $Formatter_escape$13 = function $$escape(string) { var self = this; return string.$to_s().$gsub(/["><']|&(?!([a-zA-Z]+|(#\d+));)/, $hash2(["&", ">", "<", "\"", "'"], {"&": "&", ">": ">", "<": "<", "\"": """, "'": "'"})) - }, TMP_Formatter_escape_13.$$arity = 1), nil) && 'escape'; + }, $Formatter_escape$13.$$arity = 1), nil) && 'escape'; })($nesting[0], null, $nesting); - $send(Opal.const_get_relative($nesting, 'Formatter'), 'for', [Opal.const_get_relative($nesting, 'HTML')], (TMP_Paggio_14 = function(f, item){var self = TMP_Paggio_14.$$s || this, TMP_15, $case = nil; -if (f == null) f = nil;if (item == null) item = nil; - + $send($$($nesting, 'Formatter'), 'for', [$$($nesting, 'HTML')], ($Paggio$14 = function(f, item){var self = $Paggio$14.$$s == null ? this : $Paggio$14.$$s, $$15, $case = nil; + + + + if (f == null) { + f = nil; + }; + + if (item == null) { + item = nil; + }; $case = item.$version(); if ((5)['$===']($case)) {f.$print("")}; f.$print(""); - $send(f, 'indent', [], (TMP_15 = function(){var self = TMP_15.$$s || this, TMP_16; + $send(f, 'indent', [], ($$15 = function(){var self = $$15.$$s == null ? this : $$15.$$s, $$16; - return $send(item, 'each', [], (TMP_16 = function(root){var self = TMP_16.$$s || this; -if (root == null) root = nil; - return f.$format(root)}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16))}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)); - return f.$print("");}, TMP_Paggio_14.$$s = self, TMP_Paggio_14.$$arity = 2, TMP_Paggio_14)); - $send(Opal.const_get_relative($nesting, 'Formatter'), 'for', [Opal.const_get_qualified(Opal.const_get_relative($nesting, 'HTML'), 'Element')], (TMP_Paggio_17 = function(f, item){var self = TMP_Paggio_17.$$s || this, $a, $b, TMP_18, TMP_19, TMP_20, name = nil, attributes = nil, class_names = nil, attrs = nil; -if (f == null) f = nil;if (item == null) item = nil; - - $b = $send(item, 'instance_eval', [], (TMP_18 = function(){var self = TMP_18.$$s || this; + return $send(item, 'each', [], ($$16 = function(root){var self = $$16.$$s == null ? this : $$16.$$s; + + + + if (root == null) { + root = nil; + }; + return f.$format(root);}, $$16.$$s = self, $$16.$$arity = 1, $$16))}, $$15.$$s = self, $$15.$$arity = 0, $$15)); + return f.$print("");}, $Paggio$14.$$s = self, $Paggio$14.$$arity = 2, $Paggio$14)); + $send($$($nesting, 'Formatter'), 'for', [$$$($$($nesting, 'HTML'), 'Element')], ($Paggio$17 = function(f, item){var self = $Paggio$17.$$s == null ? this : $Paggio$17.$$s, $a, $b, $$18, $$19, $$20, name = nil, attributes = nil, class_names = nil, $ret_or_3 = nil, attrs = nil; + + + + if (f == null) { + f = nil; + }; + + if (item == null) { + item = nil; + }; + $b = $send(item, 'instance_eval', [], ($$18 = function(){var self = $$18.$$s == null ? this : $$18.$$s; if (self.name == null) self.name = nil; if (self.attributes == null) self.attributes = nil; if (self.class_names == null) self.class_names = nil; - return [self.name, self.attributes, self.class_names]}, TMP_18.$$s = self, TMP_18.$$arity = 0, TMP_18)), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (attributes = ($a[1] == null ? nil : $a[1])), (class_names = ($a[2] == null ? nil : $a[2])), $b; - if ($truthy(($truthy($a = attributes['$empty?']()) ? class_names['$empty?']() : $a))) { + return [self.name, self.attributes, self.class_names]}, $$18.$$s = self, $$18.$$arity = 0, $$18)), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (attributes = ($a[1] == null ? nil : $a[1])), (class_names = ($a[2] == null ? nil : $a[2])), $b; + if ($truthy((function() {if ($truthy(($ret_or_3 = attributes['$empty?']()))) { + return class_names['$empty?']() + } else { + return $ret_or_3 + }; return nil; })())) { f.$print("" + "<" + (name) + ">") - } else { + } else { - attrs = $send(attributes, 'map', [], (TMP_19 = function(key, value){var self = TMP_19.$$s || this; -if (key == null) key = nil;if (value == null) value = nil; - return "" + (f.$escape(key)) + "=\"" + (f.$escape(value)) + "\""}, TMP_19.$$s = self, TMP_19.$$arity = 2, TMP_19)); + attrs = $send(attributes, 'map', [], ($$19 = function(key, value){var self = $$19.$$s == null ? this : $$19.$$s; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + return "" + (f.$escape(key)) + "=\"" + (f.$escape(value)) + "\"";}, $$19.$$s = self, $$19.$$arity = 2, $$19)); if ($truthy(class_names['$empty?']())) { - } else { + } else { attrs['$<<']("" + "class=\"" + (f.$escape(class_names.$join(" "))) + "\"") }; f.$print("" + "<" + (name) + " " + (attrs.$join(" ")) + ">"); }; if ($truthy(["area", "base", "br", "col", "embed", "hr", "img", "input", "keygen", "link", "menuitem", "meta", "param", "source", "track", "wbr"]['$include?'](name.$to_s().$downcase()))) { return nil;}; - $send(f, 'indent', [], (TMP_20 = function(){var self = TMP_20.$$s || this, TMP_21, TMP_22, inner = nil; + $send(f, 'indent', [], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s, $$21, $$22, inner = nil; - if ($truthy((inner = $send(item, 'instance_eval', [], (TMP_21 = function(){var self = TMP_21.$$s || this; + if ($truthy((inner = $send(item, 'instance_eval', [], ($$21 = function(){var self = $$21.$$s == null ? this : $$21.$$s; if (self.inner_html == null) self.inner_html = nil; - return self.inner_html}, TMP_21.$$s = self, TMP_21.$$arity = 0, TMP_21))))) { + return self.inner_html}, $$21.$$s = self, $$21.$$arity = 0, $$21))))) { return f.$print(inner) - } else { - return $send(item, 'each', [], (TMP_22 = function(child){var self = TMP_22.$$s || this, TMP_23, $case = nil; -if (child == null) child = nil; - return (function() {$case = child; - if (Opal.const_get_relative($nesting, 'String')['$===']($case)) {return f.$print(f.$escape(child))} - else if (Opal.const_get_relative($nesting, 'CSS')['$===']($case)) { + } else { + return $send(item, 'each', [], ($$22 = function(child){var self = $$22.$$s == null ? this : $$22.$$s, $$23, $case = nil; + + + + if (child == null) { + child = nil; + }; + return (function() {$case = child; + if ($$($nesting, 'String')['$===']($case)) {return f.$print(f.$escape(child))} + else if ($$($nesting, 'CSS')['$===']($case)) { f.$print("");} - else {return f.$format(child)}})()}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22)) - }}, TMP_20.$$s = self, TMP_20.$$arity = 0, TMP_20)); - return f.$print("" + "");}, TMP_Paggio_17.$$s = self, TMP_Paggio_17.$$arity = 2, TMP_Paggio_17)); - $send(Opal.const_get_relative($nesting, 'Formatter'), 'for', [Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'CSS'), 'Definition'), 'Style')], (TMP_Paggio_24 = function(f, style){var self = TMP_Paggio_24.$$s || this; -if (f == null) f = nil;if (style == null) style = nil; - return f.$print("" + (style.$name()) + ": " + (style.$value()) + ((function() {if ($truthy(style.$important())) { + else {return f.$format(child)}})();}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + }}, $$20.$$s = self, $$20.$$arity = 0, $$20)); + return f.$print("" + "");}, $Paggio$17.$$s = self, $Paggio$17.$$arity = 2, $Paggio$17)); + $send($$($nesting, 'Formatter'), 'for', [$$$($$$($$($nesting, 'CSS'), 'Definition'), 'Style')], ($Paggio$24 = function(f, style){var self = $Paggio$24.$$s == null ? this : $Paggio$24.$$s; + + + + if (f == null) { + f = nil; + }; + + if (style == null) { + style = nil; + }; + return f.$print("" + (style.$name()) + ": " + (style.$value()) + ((function() {if ($truthy(style.$important())) { return " !important" - } else { + } else { return nil - }; return nil; })()) + ";")}, TMP_Paggio_24.$$s = self, TMP_Paggio_24.$$arity = 2, TMP_Paggio_24)); - return $send(Opal.const_get_relative($nesting, 'Formatter'), 'for', [Opal.const_get_relative($nesting, 'CSS')], (TMP_Paggio_25 = function(f, item){var self = TMP_Paggio_25.$$s || this, TMP_26, TMP_29, TMP_33; -if (f == null) f = nil;if (item == null) item = nil; - - $send(item.$fonts(), 'each', [], (TMP_26 = function(font){var self = TMP_26.$$s || this, TMP_27; -if (font == null) font = nil; + }; return nil; })()) + ";");}, $Paggio$24.$$s = self, $Paggio$24.$$arity = 2, $Paggio$24)); + return $send($$($nesting, 'Formatter'), 'for', [$$($nesting, 'CSS')], ($Paggio$25 = function(f, item){var self = $Paggio$25.$$s == null ? this : $Paggio$25.$$s, $$26, $$29, $$33; + + + if (f == null) { + f = nil; + }; + + if (item == null) { + item = nil; + }; + $send(item.$fonts(), 'each', [], ($$26 = function(font){var self = $$26.$$s == null ? this : $$26.$$s, $$27; + + + + if (font == null) { + font = nil; + }; f.$print("@font-face {"); - $send(f, 'indent', [], (TMP_27 = function(){var self = TMP_27.$$s || this, TMP_28; + $send(f, 'indent', [], ($$27 = function(){var self = $$27.$$s == null ? this : $$27.$$s, $$28; + + return $send(font, 'each', [], ($$28 = function(style){var self = $$28.$$s == null ? this : $$28.$$s; + + + + if (style == null) { + style = nil; + }; + return f.$format(style);}, $$28.$$s = self, $$28.$$arity = 1, $$28))}, $$27.$$s = self, $$27.$$arity = 0, $$27)); + return f.$print("}");}, $$26.$$s = self, $$26.$$arity = 1, $$26)); + $send(item.$animations(), 'each', [], ($$29 = function(animation){var self = $$29.$$s == null ? this : $$29.$$s, $$30; - return $send(font, 'each', [], (TMP_28 = function(style){var self = TMP_28.$$s || this; -if (style == null) style = nil; - return f.$format(style)}, TMP_28.$$s = self, TMP_28.$$arity = 1, TMP_28))}, TMP_27.$$s = self, TMP_27.$$arity = 0, TMP_27)); - return f.$print("}");}, TMP_26.$$s = self, TMP_26.$$arity = 1, TMP_26)); - $send(item.$animations(), 'each', [], (TMP_29 = function(animation){var self = TMP_29.$$s || this, TMP_30; -if (animation == null) animation = nil; - return $send(["", "-webkit-", "-moz-", "-o-"], 'each', [], (TMP_30 = function(platform){var self = TMP_30.$$s || this, TMP_31; -if (platform == null) platform = nil; - f.$print("" + "@" + (platform) + "keyframes " + (animation.$name()) + " {"); - $send(animation.$steps(), 'each', [], (TMP_31 = function(step){var self = TMP_31.$$s || this, TMP_32; -if (step == null) step = nil; + + if (animation == null) { + animation = nil; + }; + return $send(["", "-webkit-", "-moz-", "-o-"], 'each', [], ($$30 = function(platform){var self = $$30.$$s == null ? this : $$30.$$s, $$31; + + + if (platform == null) { + platform = nil; + }; + f.$print("" + "@" + (platform) + "keyframes " + (animation.$name()) + " {"); + $send(animation.$steps(), 'each', [], ($$31 = function(step){var self = $$31.$$s == null ? this : $$31.$$s, $$32; + + + + if (step == null) { + step = nil; + }; f.$print("" + (step.$value()) + " {"); - $send(step, 'each', [], (TMP_32 = function(style){var self = TMP_32.$$s || this; -if (style == null) style = nil; - return f.$format(style)}, TMP_32.$$s = self, TMP_32.$$arity = 1, TMP_32)); - return f.$print("}");}, TMP_31.$$s = self, TMP_31.$$arity = 1, TMP_31)); - return f.$print("}");}, TMP_30.$$s = self, TMP_30.$$arity = 1, TMP_30))}, TMP_29.$$s = self, TMP_29.$$arity = 1, TMP_29)); - return $send(item.$rules().$reverse(), 'each', [], (TMP_33 = function(rule){var self = TMP_33.$$s || this, TMP_34, m = nil; -if (rule == null) rule = nil; - + $send(step, 'each', [], ($$32 = function(style){var self = $$32.$$s == null ? this : $$32.$$s; + + + + if (style == null) { + style = nil; + }; + return f.$format(style);}, $$32.$$s = self, $$32.$$arity = 1, $$32)); + return f.$print("}");}, $$31.$$s = self, $$31.$$arity = 1, $$31)); + return f.$print("}");}, $$30.$$s = self, $$30.$$arity = 1, $$30));}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + return $send(item.$rules().$reverse(), 'each', [], ($$33 = function(rule){var self = $$33.$$s == null ? this : $$33.$$s, $$34, m = nil; + + + + if (rule == null) { + rule = nil; + }; if ($truthy(rule['$empty?']())) { return nil;}; if ($truthy((m = rule.$media()))) { @@ -9073,25 +10176,29 @@ if (rule == null) rule = nil; f.$print("" + "@media " + (m) + " {"); f.$indent();}; f.$print("" + (rule.$selector()) + " {"); - $send(f, 'indent', [], (TMP_34 = function(){var self = TMP_34.$$s || this, TMP_35; + $send(f, 'indent', [], ($$34 = function(){var self = $$34.$$s == null ? this : $$34.$$s, $$35; + + return $send(rule, 'each', [], ($$35 = function(style){var self = $$35.$$s == null ? this : $$35.$$s; - return $send(rule, 'each', [], (TMP_35 = function(style){var self = TMP_35.$$s || this; -if (style == null) style = nil; - return f.$format(style)}, TMP_35.$$s = self, TMP_35.$$arity = 1, TMP_35))}, TMP_34.$$s = self, TMP_34.$$arity = 0, TMP_34)); + + + if (style == null) { + style = nil; + }; + return f.$format(style);}, $$35.$$s = self, $$35.$$arity = 1, $$35))}, $$34.$$s = self, $$34.$$arity = 0, $$34)); f.$print("}"); if ($truthy(rule.$media())) { f.$print("}"); return f.$deindent(); - } else { + } else { return nil - };}, TMP_33.$$s = self, TMP_33.$$arity = 1, TMP_33));}, TMP_Paggio_25.$$s = self, TMP_Paggio_25.$$arity = 2, TMP_Paggio_25)); + };}, $$33.$$s = self, $$33.$$arity = 1, $$33));}, $Paggio$25.$$s = self, $Paggio$25.$$arity = 2, $Paggio$25)); })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["paggio"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["paggio"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$require', '$options', '$to_proc', '$to_s', '$format', '$new', '$tap', '$each']); @@ -9100,189 +10207,216 @@ Opal.modules["paggio"] = function(Opal) { self.$require("paggio/css"); self.$require("paggio/formatter"); return (function($base, $super, $parent_nesting) { - function $Paggio(){}; - var self = $Paggio = $klass($base, $super, 'Paggio', $Paggio); + var self = $klass($base, $super, 'Paggio'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Paggio_options_1, TMP_Paggio_indent_2, TMP_Paggio_css_3, TMP_Paggio_html_4, TMP_Paggio_html$B_5; + var $nesting = [self].concat($parent_nesting), $Paggio_options$1, $Paggio_indent$2, $Paggio_css$3, $Paggio_html$4, $Paggio_html$excl$5; - Opal.defs(self, '$options', TMP_Paggio_options_1 = function $$options(options) { - var self = this, $iter = TMP_Paggio_options_1.$$p, block = $iter || nil; - - if ($iter) TMP_Paggio_options_1.$$p = null; - return $send(Opal.const_get_relative($nesting, 'Formatter'), 'options', [options], block.$to_proc()) - }, TMP_Paggio_options_1.$$arity = 1); - Opal.defs(self, '$indent', TMP_Paggio_indent_2 = function $$indent(options) { - var self = this, $iter = TMP_Paggio_indent_2.$$p, block = $iter || nil; + Opal.defs(self, '$options', $Paggio_options$1 = function $$options(options) { + var $iter = $Paggio_options$1.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Paggio_indent_2.$$p = null; - return $send(self, 'options', [$hash2(["indent"], {"indent": options})], block.$to_proc()) - }, TMP_Paggio_indent_2.$$arity = 1); - Opal.defs(self, '$css', TMP_Paggio_css_3 = function $$css($a_rest) { - var self = this, args, $iter = TMP_Paggio_css_3.$$p, block = $iter || nil; + if ($iter) $Paggio_options$1.$$p = null; + + + if ($iter) $Paggio_options$1.$$p = null;; + return $send($$($nesting, 'Formatter'), 'options', [options], block.$to_proc()); + }, $Paggio_options$1.$$arity = 1); + Opal.defs(self, '$indent', $Paggio_indent$2 = function $$indent(options) { + var $iter = $Paggio_indent$2.$$p, block = $iter || nil, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Paggio_css_3.$$p = null; - return Opal.const_get_relative($nesting, 'Formatter').$new().$format($send(Opal.const_get_relative($nesting, 'CSS'), 'new', Opal.to_a(args), block.$to_proc())).$to_s() - }, TMP_Paggio_css_3.$$arity = -1); - Opal.defs(self, '$html', TMP_Paggio_html_4 = function $$html($a_rest) { - var self = this, args, $iter = TMP_Paggio_html_4.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Paggio_html_4.$$p = null; - return Opal.const_get_relative($nesting, 'Formatter').$new().$format($send(Opal.const_get_relative($nesting, 'HTML'), 'new', Opal.to_a(args), block.$to_proc())).$to_s() - }, TMP_Paggio_html_4.$$arity = -1); - return Opal.defs(self, '$html!', TMP_Paggio_html$B_5 = function() { - var TMP_6, self = this, $iter = TMP_Paggio_html$B_5.$$p, block = $iter || nil; - - if ($iter) TMP_Paggio_html$B_5.$$p = null; - return $send(Opal.const_get_relative($nesting, 'Formatter').$new(), 'tap', [], (TMP_6 = function(f){var self = TMP_6.$$s || this, TMP_7; -if (f == null) f = nil; - return $send($send(Opal.const_get_relative($nesting, 'HTML'), 'new', [], block.$to_proc()), 'each', [], (TMP_7 = function(root){var self = TMP_7.$$s || this; -if (root == null) root = nil; - return f.$format(root)}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7))}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)).$to_s() - }, TMP_Paggio_html$B_5.$$arity = 0); + if ($iter) $Paggio_indent$2.$$p = null; + + + if ($iter) $Paggio_indent$2.$$p = null;; + return $send(self, 'options', [$hash2(["indent"], {"indent": options})], block.$to_proc()); + }, $Paggio_indent$2.$$arity = 1); + Opal.defs(self, '$css', $Paggio_css$3 = function $$css($a) { + var $iter = $Paggio_css$3.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Paggio_css$3.$$p = null; + + + if ($iter) $Paggio_css$3.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $$($nesting, 'Formatter').$new().$format($send($$($nesting, 'CSS'), 'new', Opal.to_a(args), block.$to_proc())).$to_s(); + }, $Paggio_css$3.$$arity = -1); + Opal.defs(self, '$html', $Paggio_html$4 = function $$html($a) { + var $iter = $Paggio_html$4.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Paggio_html$4.$$p = null; + + + if ($iter) $Paggio_html$4.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $$($nesting, 'Formatter').$new().$format($send($$($nesting, 'HTML'), 'new', Opal.to_a(args), block.$to_proc())).$to_s(); + }, $Paggio_html$4.$$arity = -1); + return (Opal.defs(self, '$html!', $Paggio_html$excl$5 = function() { + var $iter = $Paggio_html$excl$5.$$p, block = $iter || nil, $$6, self = this; + + if ($iter) $Paggio_html$excl$5.$$p = null; + + + if ($iter) $Paggio_html$excl$5.$$p = null;; + return $send($$($nesting, 'Formatter').$new(), 'tap', [], ($$6 = function(f){var self = $$6.$$s == null ? this : $$6.$$s, $$7; + + + + if (f == null) { + f = nil; + }; + return $send($send($$($nesting, 'HTML'), 'new', [], block.$to_proc()), 'each', [], ($$7 = function(root){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (root == null) { + root = nil; + }; + return f.$format(root);}, $$7.$$s = self, $$7.$$arity = 1, $$7));}, $$6.$$s = self, $$6.$$arity = 1, $$6)).$to_s(); + }, $Paggio_html$excl$5.$$arity = 0), nil) && 'html!'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["browser/version"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - Opal.const_set($nesting[0], 'VERSION', "0.2.0") + return Opal.const_set($nesting[0], 'VERSION', "0.2.0") })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/utils"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["browser/utils"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$new', '$encode_uri', '$to_s', '$encode_uri_component', '$[]', '$map', '$split', '$decode_uri_component', '$join']); (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - Opal.const_set($nesting[0], 'Size', Opal.const_get_relative($nesting, 'Struct').$new("width", "height")); - Opal.const_set($nesting[0], 'Position', Opal.const_get_relative($nesting, 'Struct').$new("x", "y")); + Opal.const_set($nesting[0], 'Size', $$($nesting, 'Struct').$new("width", "height")); + return Opal.const_set($nesting[0], 'Position', $$($nesting, 'Struct').$new("x", "y")); })($nesting[0], $nesting); (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_encode_uri_1, TMP_Object_encode_uri_component_2; + var $nesting = [self].concat($parent_nesting), $Object_encode_uri$1, $Object_encode_uri_component$2; - Opal.defn(self, '$encode_uri', TMP_Object_encode_uri_1 = function $$encode_uri() { + Opal.def(self, '$encode_uri', $Object_encode_uri$1 = function $$encode_uri() { var self = this; return self.$to_s().$encode_uri() - }, TMP_Object_encode_uri_1.$$arity = 0); - return (Opal.defn(self, '$encode_uri_component', TMP_Object_encode_uri_component_2 = function $$encode_uri_component() { + }, $Object_encode_uri$1.$$arity = 0); + return (Opal.def(self, '$encode_uri_component', $Object_encode_uri_component$2 = function $$encode_uri_component() { var self = this; return self.$to_s().$encode_uri_component() - }, TMP_Object_encode_uri_component_2.$$arity = 0), nil) && 'encode_uri_component'; + }, $Object_encode_uri_component$2.$$arity = 0), nil) && 'encode_uri_component'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_encode_uri_component_3, TMP_String_encode_uri_4, TMP_String_decode_uri_component_5, TMP_String_decode_uri_6; + var $nesting = [self].concat($parent_nesting), $String_encode_uri_component$3, $String_encode_uri$4, $String_decode_uri_component$5, $String_decode_uri$6; - Opal.defn(self, '$encode_uri_component', TMP_String_encode_uri_component_3 = function $$encode_uri_component() { + Opal.def(self, '$encode_uri_component', $String_encode_uri_component$3 = function $$encode_uri_component() { var self = this; - return encodeURIComponent(self) - }, TMP_String_encode_uri_component_3.$$arity = 0); + return encodeURIComponent(self); + }, $String_encode_uri_component$3.$$arity = 0); - Opal.defn(self, '$encode_uri', TMP_String_encode_uri_4 = function $$encode_uri() { + Opal.def(self, '$encode_uri', $String_encode_uri$4 = function $$encode_uri() { var self = this; - return encodeURI(self) - }, TMP_String_encode_uri_4.$$arity = 0); + return encodeURI(self); + }, $String_encode_uri$4.$$arity = 0); - Opal.defn(self, '$decode_uri_component', TMP_String_decode_uri_component_5 = function $$decode_uri_component() { + Opal.def(self, '$decode_uri_component', $String_decode_uri_component$5 = function $$decode_uri_component() { var self = this; - return decodeURIComponent(self) - }, TMP_String_decode_uri_component_5.$$arity = 0); - return (Opal.defn(self, '$decode_uri', TMP_String_decode_uri_6 = function $$decode_uri() { + return decodeURIComponent(self); + }, $String_decode_uri_component$5.$$arity = 0); + return (Opal.def(self, '$decode_uri', $String_decode_uri$6 = function $$decode_uri() { var self = this; - return decodeURI(self) - }, TMP_String_decode_uri_6.$$arity = 0), nil) && 'decode_uri'; + return decodeURI(self); + }, $String_decode_uri$6.$$arity = 0), nil) && 'decode_uri'; })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); + var self = $klass($base, $super, 'Hash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_decode_uri_8, TMP_Hash_encode_uri_10; + var $nesting = [self].concat($parent_nesting), $Hash_decode_uri$7, $Hash_encode_uri$9; - Opal.defs(self, '$decode_uri', TMP_Hash_decode_uri_8 = function $$decode_uri(string) { - var TMP_7, self = this; + Opal.defs(self, '$decode_uri', $Hash_decode_uri$7 = function $$decode_uri(string) { + var $$8, self = this; - return self['$[]']($send(string.$split("&"), 'map', [], (TMP_7 = function(part){var self = TMP_7.$$s || this, $a, $b, name = nil, value = nil; -if (part == null) part = nil; - + return self['$[]']($send(string.$split("&"), 'map', [], ($$8 = function(part){var self = $$8.$$s == null ? this : $$8.$$s, $a, $b, name = nil, value = nil; + + + + if (part == null) { + part = nil; + }; $b = part.$split("="), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (value = ($a[1] == null ? nil : $a[1])), $b; - return [name.$decode_uri_component(), value.$decode_uri_component()];}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7))) - }, TMP_Hash_decode_uri_8.$$arity = 1); - return (Opal.defn(self, '$encode_uri', TMP_Hash_encode_uri_10 = function $$encode_uri() { - var TMP_9, self = this; - - return $send(self, 'map', [], (TMP_9 = function(name, value){var self = TMP_9.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return "" + (name.$to_s().$encode_uri_component()) + "=" + (value.$to_s().$encode_uri_component())}, TMP_9.$$s = self, TMP_9.$$arity = 2, TMP_9)).$join("&") - }, TMP_Hash_encode_uri_10.$$arity = 0), nil) && 'encode_uri'; + return [name.$decode_uri_component(), value.$decode_uri_component()];}, $$8.$$s = self, $$8.$$arity = 1, $$8))) + }, $Hash_decode_uri$7.$$arity = 1); + return (Opal.def(self, '$encode_uri', $Hash_encode_uri$9 = function $$encode_uri() { + var $$10, self = this; + + return $send(self, 'map', [], ($$10 = function(name, value){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return "" + (name.$to_s().$encode_uri_component()) + "=" + (value.$to_s().$encode_uri_component());}, $$10.$$s = self, $$10.$$arity = 2, $$10)).$join("&") + }, $Hash_encode_uri$9.$$arity = 0), nil) && 'encode_uri'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/support"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $gvars = Opal.gvars; +Opal.modules["browser/support"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $gvars = Opal.gvars; Opal.add_stubs(['$downcase', '$===', '$!', '$supports?']); Opal.const_set($nesting[0], 'BROWSER_ENGINE', (function() { try { return (/MSIE|WebKit|Presto|Gecko/.exec(navigator.userAgent)[0]).$downcase() } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { try { return "unknown" - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }})()); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Browser_supports$q_1, TMP_Browser_loaded$q_2; + var $nesting = [self].concat($parent_nesting), $Browser_supports$ques$1, $Browser_loaded$ques$2; self.support = {}; - Opal.defs(self, '$supports?', TMP_Browser_supports$q_1 = function(feature) { - var $a, self = this, support = nil, $case = nil; + Opal.defs(self, '$supports?', $Browser_supports$ques$1 = function(feature) { + var $a, self = this, support = nil, $case = nil, $ret_or_1 = nil; if (self.support == null) self.support = nil; @@ -9308,7 +10442,11 @@ Opal.modules["browser/support"] = function(Opal) { else if ("CSS.computed"['$===']($case)) {return (typeof(window.getComputedStyle) !== "undefined")} else if ("CSS.current"['$===']($case)) {return (typeof(document.documentElement.currentStyle) !== "undefined")} else if ("Window.send"['$===']($case)) {return (typeof(window.postMessage) !== "undefined")} - else if ("Window.send (Asynchronous)"['$===']($case)) {if ($truthy(($truthy($a = (typeof(window.postMessage) !== "undefined")) ? (typeof(window.importScripts) !== "undefined")['$!']() : $a))) { + else if ("Window.send (Asynchronous)"['$===']($case)) {if ($truthy((function() {if ($truthy(($ret_or_1 = (typeof(window.postMessage) !== "undefined")))) { + return (typeof(window.importScripts) !== "undefined")['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { var ok = true, old = window.onmessage; @@ -9319,7 +10457,7 @@ Opal.modules["browser/support"] = function(Opal) { return ok; - } else { + } else { return nil }} else if ("Window.send (Synchronous)"['$===']($case)) {return self['$supports?']("Window.send (Asynchronous)")['$!']()} @@ -9368,17 +10506,17 @@ Opal.modules["browser/support"] = function(Opal) { else if ("Element.matches (Opera)"['$===']($case)) {return (typeof(document.documentElement.oMatchesSelector) !== "undefined")} else if ("Element.matches (Chrome)"['$===']($case) || "Element.matches (Safari)"['$===']($case)) {return (typeof(document.documentElement.webkitMatchesSelector) !== "undefined")} else if ("Element.getBoundingClientRect"['$===']($case)) {return (typeof(document.documentElement.getBoundingClientRect) !== "undefined")} - else if ("Event.readystatechange"['$===']($case)) {return "onreadystatechange" in window.document.createElement("script")} + else if ("Event.readystatechange"['$===']($case)) {return "onreadystatechange" in window.document.createElement("script");} else if ("Event.constructor"['$===']($case)) { try { new MouseEvent("click"); return true; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { try { return false - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } };} else if ("Event.create"['$===']($case)) {return (typeof(document.createEvent) !== "undefined")} @@ -9411,198 +10549,221 @@ Opal.modules["browser/support"] = function(Opal) { else if ("Animation.cancelRequest (Chrome)"['$===']($case) || "Animation.cancelRequest (Safari)"['$===']($case)) {return (typeof(window.webkitCancelRequestAnimationFrame) !== "undefined")} else { return nil }})(); return self.support[feature] = support; - }, TMP_Browser_supports$q_1.$$arity = 1); - Opal.defs(self, '$loaded?', TMP_Browser_loaded$q_2 = function(name) { + }, $Browser_supports$ques$1.$$arity = 1); + return (Opal.defs(self, '$loaded?', $Browser_loaded$ques$2 = function(name) { var self = this, $case = nil; return (function() {$case = name; if ("Sizzle"['$===']($case)) {return (typeof(window.Sizzle) !== "undefined")} else if ("wicked-good-xpath"['$===']($case)) {return (typeof(window.wgxpath) !== "undefined")} else { return nil }})() - }, TMP_Browser_loaded$q_2.$$arity = 1); + }, $Browser_loaded$ques$2.$$arity = 1), nil) && 'loaded?'; })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/base"] = function(Opal) { +Opal.modules["browser/event/base"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $send = Opal.send, $lambda = Opal.lambda, $hash2 = Opal.hash2; - Opal.add_stubs(['$include', '$call', '$to_n', '$<<', '$converters', '$native?', '$each', '$instance_eval', '$register', '$to_proc', '$attr_reader', '$lambda', '$new', '$stopped?', '$arguments', '$!', '$prevented?', '$class_for', '$off', '$target', '$[]', '$delegated', '$delete', '$last', '$empty?', '$first', '$raise', '$name_for', '$handlers', '$[]=', '$-', '$include?', '$on!', '$delegate', '$callback=', '$on', '$handlers=', '$push', '$callbacks', '$attach', '$attach!', '$supports?', '$name', '$==', '$event', '$===', '$warn', '$detach', '$gsub', '$delete_if', '$=~', '$clear', '$none?', '$is_a?', '$create', '$dispatch', '$trigger', '$bubbles=', '$private', '$nil?', '$dup', '$on=', '$parent']); + Opal.add_stubs(['$include', '$call', '$to_n', '$<<', '$converters', '$native?', '$each', '$instance_eval', '$register', '$to_proc', '$attr_reader', '$new', '$stopped?', '$arguments', '$!', '$prevented?', '$class_for', '$off', '$target', '$[]', '$delegated', '$delete', '$last', '$empty?', '$first', '$raise', '$name_for', '$handlers', '$[]=', '$-', '$include?', '$on!', '$delegate', '$callback=', '$on', '$handlers=', '$push', '$callbacks', '$attach', '$attach!', '$supports?', '$name', '$==', '$event', '$===', '$warn', '$detach', '$gsub', '$delete_if', '$=~', '$clear', '$none?', '$is_a?', '$create', '$dispatch', '$trigger', '$bubbles=', '$private', '$nil?', '$dup', '$on=', '$parent']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_new_1, TMP_Definition_bubbles$eq_2, TMP_Definition_cancelable$eq_3; + var $nesting = [self].concat($parent_nesting), $Definition_new$1, $Definition_bubbles$eq$2, $Definition_cancelable$eq$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - Opal.defs(self, '$new', TMP_Definition_new_1 = function() { - var self = this, $iter = TMP_Definition_new_1.$$p, block = $iter || nil, data = nil; + self.$include($$($nesting, 'Native')); + Opal.defs(self, '$new', $Definition_new$1 = function() { + var $iter = $Definition_new$1.$$p, block = $iter || nil, self = this, data = nil; - if ($iter) TMP_Definition_new_1.$$p = null; + if ($iter) $Definition_new$1.$$p = null; - data = $send(self, Opal.find_super_dispatcher(self, 'new', TMP_Definition_new_1, false, $Definition), [{ bubbles: true, cancelable: true }], null); + + if ($iter) $Definition_new$1.$$p = null;; + data = $send2(self, $find_super(self, 'new', $Definition_new$1, false, true), 'new', [{ bubbles: true, cancelable: true }], null); if ($truthy(block)) { block.$call(data)}; return data.$to_n(); - }, TMP_Definition_new_1.$$arity = 0); + }, $Definition_new$1.$$arity = 0); - Opal.defn(self, '$bubbles=', TMP_Definition_bubbles$eq_2 = function(value) { + Opal.def(self, '$bubbles=', $Definition_bubbles$eq$2 = function(value) { var self = this; return self["native"].bubbles = value - }, TMP_Definition_bubbles$eq_2.$$arity = 1); - return (Opal.defn(self, '$cancelable=', TMP_Definition_cancelable$eq_3 = function(value) { + }, $Definition_bubbles$eq$2.$$arity = 1); + return (Opal.def(self, '$cancelable=', $Definition_cancelable$eq$3 = function(value) { var self = this; return self["native"].cancelable = value - }, TMP_Definition_cancelable$eq_3.$$arity = 1), nil) && 'cancelable='; + }, $Definition_cancelable$eq$3.$$arity = 1), nil) && 'cancelable='; })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { - var $Target, self = $Target = $module($base, 'Target'); + var self = $module($base, 'Target'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Target_converters_4, TMP_Target_register_5, TMP_Target_convert_7, TMP_Target_included_10, TMP_Target_on_19, TMP_Target_on$B_22, TMP_Target_attach_23, TMP_Target_attach$B_24, TMP_Target_attach_25, TMP_Target_attach$B_26, TMP_Target_attach_27, TMP_Target_attach$B_28, TMP_Target_off_32, TMP_Target_detach_33, TMP_Target_detach_35, TMP_Target_detach_36, TMP_Target_trigger_37, TMP_Target_trigger$B_38, TMP_Target_dispatch_40, TMP_Target_dispatch_41, TMP_Target_dispatch_42, TMP_Target_callbacks_43, TMP_Target_delegated_44, TMP_Target_delegate_46; + var $nesting = [self].concat($parent_nesting), $Target_converters$4, $Target_register$5, $Target_convert$6, $Target_included$8, $Target_on$19, $Target_on$excl$22, $Target_attach$23, $Target_attach$excl$24, $Target_attach$25, $Target_attach$excl$26, $Target_attach$27, $Target_attach$excl$28, $Target_off$29, $Target_detach$33, $Target_detach$34, $Target_detach$36, $Target_trigger$37, $Target_trigger$excl$38, $Target_dispatch$40, $Target_dispatch$41, $Target_dispatch$42, $Target_callbacks$43, $Target_delegated$44, $Target_delegate$45; - Opal.defs(self, '$converters', TMP_Target_converters_4 = function $$converters() { - var $a, self = this; + Opal.defs(self, '$converters', $Target_converters$4 = function $$converters() { + var self = this, $ret_or_1 = nil; if (self.converters == null) self.converters = nil; - return (self.converters = ($truthy($a = self.converters) ? $a : [])) - }, TMP_Target_converters_4.$$arity = 0); - Opal.defs(self, '$register', TMP_Target_register_5 = function $$register() { - var self = this, $iter = TMP_Target_register_5.$$p, block = $iter || nil; + return (self.converters = (function() {if ($truthy(($ret_or_1 = self.converters))) { + return $ret_or_1 + } else { + return [] + }; return nil; })()) + }, $Target_converters$4.$$arity = 0); + Opal.defs(self, '$register', $Target_register$5 = function $$register() { + var $iter = $Target_register$5.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Target_register_5.$$p = null; - return self.$converters()['$<<'](block) - }, TMP_Target_register_5.$$arity = 0); - Opal.defs(self, '$convert', TMP_Target_convert_7 = function $$convert(value) {try { + if ($iter) $Target_register$5.$$p = null; + + + if ($iter) $Target_register$5.$$p = null;; + return self.$converters()['$<<'](block); + }, $Target_register$5.$$arity = 0); + Opal.defs(self, '$convert', $Target_convert$6 = function $$convert(value) {try { - var TMP_6, self = this; + var $$7, self = this; if ($truthy(self['$native?'](value))) { - } else { + } else { return value }; - $send(self.$converters(), 'each', [], (TMP_6 = function(block){var self = TMP_6.$$s || this, result = nil; -if (block == null) block = nil; - if ($truthy((result = block.$call(value)))) { + $send(self.$converters(), 'each', [], ($$7 = function(block){var self = $$7.$$s == null ? this : $$7.$$s, result = nil; + + + + if (block == null) { + block = nil; + }; + if ($truthy((result = block.$call(value)))) { Opal.ret(result) - } else { + } else { return nil - }}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); + };}, $$7.$$s = self, $$7.$$arity = 1, $$7)); return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Target_convert_7.$$arity = 1); - Opal.defs(self, '$included', TMP_Target_included_10 = function $$included(klass) { - var TMP_8, self = this; + }, $Target_convert$6.$$arity = 1); + Opal.defs(self, '$included', $Target_included$8 = function $$included(klass) { + var $$9, self = this; - return $send(klass, 'instance_eval', [], (TMP_8 = function(){var self = TMP_8.$$s || this, TMP_target_9; + return $send(klass, 'instance_eval', [], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s, $target$10; - return Opal.defs(self, '$target', TMP_target_9 = function $$target() { - var self = this, $iter = TMP_target_9.$$p, block = $iter || nil; + return (Opal.defs(self, '$target', $target$10 = function $$target() { + var $iter = $target$10.$$p, block = $iter || nil, self = this; - if ($iter) TMP_target_9.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Event'), 'Target'), 'register', [], block.$to_proc()) - }, TMP_target_9.$$arity = 0)}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8)) - }, TMP_Target_included_10.$$arity = 1); + if ($iter) $target$10.$$p = null; + + + if ($iter) $target$10.$$p = null;; + return $send($$$($$($nesting, 'Event'), 'Target'), 'register', [], block.$to_proc()); + }, $target$10.$$arity = 0), nil) && 'target'}, $$9.$$s = self, $$9.$$arity = 0, $$9)) + }, $Target_included$8.$$arity = 1); (function($base, $super, $parent_nesting) { - function $Callback(){}; - var self = $Callback = $klass($base, $super, 'Callback', $Callback); + var self = $klass($base, $super, 'Callback'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Callback_initialize_11, TMP_Callback_call_12, TMP_Callback_to_proc_14, TMP_Callback_event_15, TMP_Callback_off_16; + var $nesting = [self].concat($parent_nesting), $Callback_initialize$11, $Callback_call$12, $Callback_to_proc$13, $Callback_event$15, $Callback_off$16; - def.proc = def.name = nil; + self.$$prototype.proc = self.$$prototype.name = nil; self.$attr_reader("target", "name", "selector"); - Opal.defn(self, '$initialize', TMP_Callback_initialize_11 = function $$initialize(target, name, selector) { - var self = this, $iter = TMP_Callback_initialize_11.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Callback_initialize$11 = function $$initialize(target, name, selector) { + var $iter = $Callback_initialize$11.$$p, block = $iter || nil, self = this; + if ($iter) $Callback_initialize$11.$$p = null; + + + if ($iter) $Callback_initialize$11.$$p = null;; + if (selector == null) { selector = nil; - } - if ($iter) TMP_Callback_initialize_11.$$p = null; - + }; self.target = target; self.name = name; self.selector = selector; return (self.block = block); - }, TMP_Callback_initialize_11.$$arity = -3); + }, $Callback_initialize$11.$$arity = -3); - Opal.defn(self, '$call', TMP_Callback_call_12 = function $$call(event) { + Opal.def(self, '$call', $Callback_call$12 = function $$call(event) { var self = this; return self.$to_proc().$call(event) - }, TMP_Callback_call_12.$$arity = 1); + }, $Callback_call$12.$$arity = 1); - Opal.defn(self, '$to_proc', TMP_Callback_to_proc_14 = function $$to_proc() { - var $a, TMP_13, self = this; + Opal.def(self, '$to_proc', $Callback_to_proc$13 = function $$to_proc() { + var $$14, self = this, $ret_or_2 = nil; - return (self.proc = ($truthy($a = self.proc) ? $a : $send(self, 'lambda', [], (TMP_13 = function(event){var self = TMP_13.$$s || this; - if (self.block == null) self.block = nil; -if (event == null) event = nil; - - + return (self.proc = (function() {if ($truthy(($ret_or_2 = self.proc))) { + return $ret_or_2 + } else { + return $lambda(($$14 = function(event){var self = $$14.$$s == null ? this : $$14.$$s; + if (self.block == null) self.block = nil; + + + + if (event == null) { + event = nil; + }; + if (!event.currentTarget) { event.currentTarget = self.target.native; } ; - event = Opal.const_get_relative($nesting, 'Event').$new(event, self); - if ($truthy(event['$stopped?']())) { + event = $$($nesting, 'Event').$new(event, self); + if ($truthy(event['$stopped?']())) { } else { - $send(self.block, 'call', [event].concat(Opal.to_a(event.$arguments()))) - }; - return event['$prevented?']()['$!']();}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13)))) - }, TMP_Callback_to_proc_14.$$arity = 0); + $send(self.block, 'call', [event].concat(Opal.to_a(event.$arguments()))) + }; + return event['$prevented?']()['$!']();}, $$14.$$s = self, $$14.$$arity = 1, $$14)) + }; return nil; })()) + }, $Callback_to_proc$13.$$arity = 0); - Opal.defn(self, '$event', TMP_Callback_event_15 = function $$event() { + Opal.def(self, '$event', $Callback_event$15 = function $$event() { var self = this; - return Opal.const_get_relative($nesting, 'Event').$class_for(self.name) - }, TMP_Callback_event_15.$$arity = 0); - return (Opal.defn(self, '$off', TMP_Callback_off_16 = function $$off() { + return $$($nesting, 'Event').$class_for(self.name) + }, $Callback_event$15.$$arity = 0); + return (Opal.def(self, '$off', $Callback_off$16 = function $$off() { var self = this; return self.$target().$off(self) - }, TMP_Callback_off_16.$$arity = 0), nil) && 'off'; + }, $Callback_off$16.$$arity = 0), nil) && 'off'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Delegate(){}; - var self = $Delegate = $klass($base, $super, 'Delegate', $Delegate); + var self = $klass($base, $super, 'Delegate'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Delegate_initialize_17, TMP_Delegate_off_18; + var $nesting = [self].concat($parent_nesting), $Delegate_initialize$17, $Delegate_off$18; - def.target = def.name = def.pair = nil; + self.$$prototype.target = self.$$prototype.name = self.$$prototype.pair = nil; - Opal.defn(self, '$initialize', TMP_Delegate_initialize_17 = function $$initialize(target, name, pair) { + Opal.def(self, '$initialize', $Delegate_initialize$17 = function $$initialize(target, name, pair) { var self = this; self.target = target; self.name = name; return (self.pair = pair); - }, TMP_Delegate_initialize_17.$$arity = 3); - return (Opal.defn(self, '$off', TMP_Delegate_off_18 = function $$off() { + }, $Delegate_initialize$17.$$arity = 3); + return (Opal.def(self, '$off', $Delegate_off$18 = function $$off() { var self = this, delegate = nil; @@ -9612,47 +10773,60 @@ if (event == null) event = nil; delegate.$first().$off(); return delegate.$delete(self.name); - } else { + } else { return nil }; - }, TMP_Delegate_off_18.$$arity = 0), nil) && 'off'; + }, $Delegate_off$18.$$arity = 0), nil) && 'off'; })($nesting[0], null, $nesting); - Opal.const_set($nesting[0], 'Delegates', Opal.const_get_relative($nesting, 'Struct').$new("callback", "handlers")); + Opal.const_set($nesting[0], 'Delegates', $$($nesting, 'Struct').$new("callback", "handlers")); - Opal.defn(self, '$on', TMP_Target_on_19 = function $$on(name, selector) { - var TMP_20, TMP_21, self = this, $iter = TMP_Target_on_19.$$p, block = $iter || nil, delegate = nil, pair = nil, $writer = nil, callback = nil; + Opal.def(self, '$on', $Target_on$19 = function $$on(name, selector) { + var $iter = $Target_on$19.$$p, block = $iter || nil, $$20, $$21, self = this, delegate = nil, pair = nil, $writer = nil, callback = nil; + if ($iter) $Target_on$19.$$p = null; + + + if ($iter) $Target_on$19.$$p = null;; + if (selector == null) { selector = nil; - } - if ($iter) TMP_Target_on_19.$$p = null; - + }; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no block has been given") + } else { + self.$raise($$($nesting, 'ArgumentError'), "no block has been given") }; - name = Opal.const_get_relative($nesting, 'Event').$name_for(name); + name = $$($nesting, 'Event').$name_for(name); if ($truthy(selector)) { if ($truthy((delegate = self.$delegated()['$[]'](name)))) { pair = [selector, block]; delegate.$handlers()['$<<'](pair); - return Opal.const_get_relative($nesting, 'Delegate').$new(self, name, pair); - } else { + return $$($nesting, 'Delegate').$new(self, name, pair); + } else { - delegate = (($writer = [name, Opal.const_get_relative($nesting, 'Delegates').$new()]), $send(self.$delegated(), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); + delegate = (($writer = [name, $$($nesting, 'Delegates').$new()]), $send(self.$delegated(), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]); if ($truthy(["blur", "focus"]['$include?'](name))) { - $writer = [$send(self, 'on!', [name], (TMP_20 = function(e){var self = TMP_20.$$s || this; -if (e == null) e = nil; - return self.$delegate(delegate, e)}, TMP_20.$$s = self, TMP_20.$$arity = 1, TMP_20))]; + $writer = [$send(self, 'on!', [name], ($$20 = function(e){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (e == null) { + e = nil; + }; + return self.$delegate(delegate, e);}, $$20.$$s = self, $$20.$$arity = 1, $$20))]; $send(delegate, 'callback=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { - $writer = [$send(self, 'on', [name], (TMP_21 = function(e){var self = TMP_21.$$s || this; -if (e == null) e = nil; - return self.$delegate(delegate, e)}, TMP_21.$$s = self, TMP_21.$$arity = 1, TMP_21))]; + $writer = [$send(self, 'on', [name], ($$21 = function(e){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (e == null) { + e = nil; + }; + return self.$delegate(delegate, e);}, $$21.$$s = self, $$21.$$arity = 1, $$21))]; $send(delegate, 'callback=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; @@ -9661,66 +10835,68 @@ if (e == null) e = nil; $writer = [[pair]]; $send(delegate, 'handlers=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return Opal.const_get_relative($nesting, 'Delegate').$new(self, name, pair); + return $$($nesting, 'Delegate').$new(self, name, pair); } - } else { + } else { - callback = $send(Opal.const_get_relative($nesting, 'Callback'), 'new', [self, name, selector], block.$to_proc()); + callback = $send($$($nesting, 'Callback'), 'new', [self, name, selector], block.$to_proc()); self.$callbacks().$push(callback); return self.$attach(callback); }; - }, TMP_Target_on_19.$$arity = -2); + }, $Target_on$19.$$arity = -2); - Opal.defn(self, '$on!', TMP_Target_on$B_22 = function(name) { - var self = this, $iter = TMP_Target_on$B_22.$$p, block = $iter || nil, callback = nil; + Opal.def(self, '$on!', $Target_on$excl$22 = function(name) { + var $iter = $Target_on$excl$22.$$p, block = $iter || nil, self = this, callback = nil; - if ($iter) TMP_Target_on$B_22.$$p = null; + if ($iter) $Target_on$excl$22.$$p = null; + + if ($iter) $Target_on$excl$22.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no block has been given") + } else { + self.$raise($$($nesting, 'ArgumentError'), "no block has been given") }; - name = Opal.const_get_relative($nesting, 'Event').$name_for(name); - callback = $send(Opal.const_get_relative($nesting, 'Callback'), 'new', [self, name], block.$to_proc()); + name = $$($nesting, 'Event').$name_for(name); + callback = $send($$($nesting, 'Callback'), 'new', [self, name], block.$to_proc()); self.$callbacks().$push(callback); return self['$attach!'](callback); - }, TMP_Target_on$B_22.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.addListener"))) { + }, $Target_on$excl$22.$$arity = 1); + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.addListener"))) { - Opal.defn(self, '$attach', TMP_Target_attach_23 = function $$attach(callback) { + Opal.def(self, '$attach', $Target_attach$23 = function $$attach(callback) { var self = this; if (self["native"] == null) self["native"] = nil; self["native"].addEventListener(callback.$name(), callback.$to_proc()); return callback; - }, TMP_Target_attach_23.$$arity = 1); + }, $Target_attach$23.$$arity = 1); - Opal.defn(self, '$attach!', TMP_Target_attach$B_24 = function(callback) { + Opal.def(self, '$attach!', $Target_attach$excl$24 = function(callback) { var self = this; if (self["native"] == null) self["native"] = nil; self["native"].addEventListener(callback.$name(), callback.$to_proc(), true); return callback; - }, TMP_Target_attach$B_24.$$arity = 1); - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.attach"))) { + }, $Target_attach$excl$24.$$arity = 1); + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.attach"))) { - Opal.defn(self, '$attach', TMP_Target_attach_25 = function $$attach(callback) { + Opal.def(self, '$attach', $Target_attach$25 = function $$attach(callback) { var self = this; if (self["native"] == null) self["native"] = nil; - if (callback.$event()['$=='](Opal.const_get_relative($nesting, 'Custom'))) { + if (callback.$event()['$==']($$($nesting, 'Custom'))) { if (!self["native"].$custom) { self["native"].$custom = function(event) { for (var i = 0, length = self["native"].$callbacks.length; i < length; i++) { var callback = self["native"].$callbacks[i]; - if ((callback).$event()['$=='](Opal.const_get_relative($nesting, 'Custom'))) { + if ((callback).$event()['$==']($$($nesting, 'Custom'))) { event.type = callback.name; (callback).$call(event); @@ -9731,13 +10907,13 @@ if (e == null) e = nil; self["native"].attachEvent("ondataavailable", self["native"].$custom); } - } else { + } else { self["native"].attachEvent("on" + callback.$name(), callback.$to_proc()) }; return callback; - }, TMP_Target_attach_25.$$arity = 1); + }, $Target_attach$25.$$arity = 1); - Opal.defn(self, '$attach!', TMP_Target_attach$B_26 = function(callback) { + Opal.def(self, '$attach!', $Target_attach$excl$26 = function(callback) { var self = this, $case = nil; if (self["native"] == null) self["native"] = nil; @@ -9749,169 +10925,215 @@ if (e == null) e = nil; self.$warn("attach: capture doesn't work on this browser"); self.$attach(callback);}; return callback; - }, TMP_Target_attach$B_26.$$arity = 1); - } else { + }, $Target_attach$excl$26.$$arity = 1); + } else { - Opal.defn(self, '$attach', TMP_Target_attach_27 = function $$attach($a_rest) { - var self = this; + Opal.def(self, '$attach', $Target_attach$27 = function $$attach($a) { + var $post_args, $rest_arg, self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Target_attach_27.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return self.$raise($$($nesting, 'NotImplementedError')); + }, $Target_attach$27.$$arity = -1); - Opal.defn(self, '$attach!', TMP_Target_attach$B_28 = function($a_rest) { - var self = this; + Opal.def(self, '$attach!', $Target_attach$excl$28 = function($a) { + var $post_args, $rest_arg, self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Target_attach$B_28.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return self.$raise($$($nesting, 'NotImplementedError')); + }, $Target_attach$excl$28.$$arity = -1); }; - Opal.defn(self, '$off', TMP_Target_off_32 = function $$off(what) { - var $a, TMP_29, TMP_30, TMP_31, self = this, $case = nil; + Opal.def(self, '$off', $Target_off$29 = function $$off(what) { + var $$30, $$31, $$32, self = this, $case = nil, $ret_or_3 = nil; + + if (what == null) { what = nil; - } + }; return (function() {$case = what; - if (Opal.const_get_relative($nesting, 'Callback')['$===']($case)) { + if ($$($nesting, 'Callback')['$===']($case)) { self.$callbacks().$delete(what); return self.$detach(what);} - else if (Opal.const_get_relative($nesting, 'String')['$===']($case)) {if ($truthy(($truthy($a = what['$include?']("*")) ? $a : what['$include?']("?")))) { - return self.$off(Opal.const_get_relative($nesting, 'Regexp').$new(what.$gsub(/\*/, ".*?").$gsub(/\?/, "."))) - } else { + else if ($$($nesting, 'String')['$===']($case)) {if ($truthy((function() {if ($truthy(($ret_or_3 = what['$include?']("*")))) { + return $ret_or_3 + } else { + return what['$include?']("?") + }; return nil; })())) { + return self.$off($$($nesting, 'Regexp').$new(what.$gsub(/\*/, ".*?").$gsub(/\?/, "."))) + } else { - what = Opal.const_get_relative($nesting, 'Event').$name_for(what); - return $send(self.$callbacks(), 'delete_if', [], (TMP_29 = function(callback){var self = TMP_29.$$s || this; -if (callback == null) callback = nil; - if (callback.$name()['$=='](what)) { + what = $$($nesting, 'Event').$name_for(what); + return $send(self.$callbacks(), 'delete_if', [], ($$30 = function(callback){var self = $$30.$$s == null ? this : $$30.$$s; + + + + if (callback == null) { + callback = nil; + }; + if (callback.$name()['$=='](what)) { self.$detach(callback); return true; - } else { + } else { return nil - }}, TMP_29.$$s = self, TMP_29.$$arity = 1, TMP_29)); + };}, $$30.$$s = self, $$30.$$arity = 1, $$30)); }} - else if (Opal.const_get_relative($nesting, 'Regexp')['$===']($case)) {return $send(self.$callbacks(), 'delete_if', [], (TMP_30 = function(callback){var self = TMP_30.$$s || this; -if (callback == null) callback = nil; - if ($truthy(callback.$name()['$=~'](what))) { + else if ($$($nesting, 'Regexp')['$===']($case)) {return $send(self.$callbacks(), 'delete_if', [], ($$31 = function(callback){var self = $$31.$$s == null ? this : $$31.$$s; + + + + if (callback == null) { + callback = nil; + }; + if ($truthy(callback.$name()['$=~'](what))) { self.$detach(callback); return true; - } else { + } else { return nil - }}, TMP_30.$$s = self, TMP_30.$$arity = 1, TMP_30))} + };}, $$31.$$s = self, $$31.$$arity = 1, $$31))} else { - $send(self.$callbacks(), 'each', [], (TMP_31 = function(callback){var self = TMP_31.$$s || this; -if (callback == null) callback = nil; - return self.$detach(callback)}, TMP_31.$$s = self, TMP_31.$$arity = 1, TMP_31)); - return self.$callbacks().$clear();}})() - }, TMP_Target_off_32.$$arity = -1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.removeListener"))) { - - Opal.defn(self, '$detach', TMP_Target_detach_33 = function $$detach(callback) { + $send(self.$callbacks(), 'each', [], ($$32 = function(callback){var self = $$32.$$s == null ? this : $$32.$$s; + + + + if (callback == null) { + callback = nil; + }; + return self.$detach(callback);}, $$32.$$s = self, $$32.$$arity = 1, $$32)); + return self.$callbacks().$clear();}})(); + }, $Target_off$29.$$arity = -1); + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.removeListener"))) { + + Opal.def(self, '$detach', $Target_detach$33 = function $$detach(callback) { var self = this; if (self["native"] == null) self["native"] = nil; return self["native"].removeEventListener(callback.$name(), callback.$to_proc(), false) - }, TMP_Target_detach_33.$$arity = 1) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.detach"))) { + }, $Target_detach$33.$$arity = 1) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.detach"))) { - Opal.defn(self, '$detach', TMP_Target_detach_35 = function $$detach(callback) { - var TMP_34, self = this; + Opal.def(self, '$detach', $Target_detach$34 = function $$detach(callback) { + var $$35, self = this; if (self["native"] == null) self["native"] = nil; - if (callback.$event()['$=='](Opal.const_get_relative($nesting, 'Custom'))) { - if ($truthy($send(self.$callbacks(), 'none?', [], (TMP_34 = function(c){var self = TMP_34.$$s || this; -if (c == null) c = nil; - return c.$event()['$=='](Opal.const_get_relative($nesting, 'Custom'))}, TMP_34.$$s = self, TMP_34.$$arity = 1, TMP_34)))) { + if (callback.$event()['$==']($$($nesting, 'Custom'))) { + if ($truthy($send(self.$callbacks(), 'none?', [], ($$35 = function(c){var self = $$35.$$s == null ? this : $$35.$$s; + + + + if (c == null) { + c = nil; + }; + return c.$event()['$==']($$($nesting, 'Custom'));}, $$35.$$s = self, $$35.$$arity = 1, $$35)))) { self["native"].detachEvent("ondataavailable", self["native"].$custom); delete self["native"].$custom; - } else { + } else { return nil } - } else { + } else { return self["native"].detachEvent("on" + callback.$name(), callback.$to_proc()) } - }, TMP_Target_detach_35.$$arity = 1) - } else { + }, $Target_detach$34.$$arity = 1) + } else { - Opal.defn(self, '$detach', TMP_Target_detach_36 = function $$detach(callback) { + Opal.def(self, '$detach', $Target_detach$36 = function $$detach(callback) { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Target_detach_36.$$arity = 1) + return self.$raise($$($nesting, 'NotImplementedError')) + }, $Target_detach$36.$$arity = 1) }; - Opal.defn(self, '$trigger', TMP_Target_trigger_37 = function $$trigger(event, $a_rest) { - var self = this, args, $iter = TMP_Target_trigger_37.$$p, block = $iter || nil; + Opal.def(self, '$trigger', $Target_trigger$37 = function $$trigger(event, $a) { + var $iter = $Target_trigger$37.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Target_trigger_37.$$p = null; + if ($iter) $Target_trigger$37.$$p = null; + + + if ($iter) $Target_trigger$37.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); - if ($truthy(event['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - event = $send(Opal.const_get_relative($nesting, 'Event'), 'create', [event].concat(Opal.to_a(args)), block.$to_proc())}; + args = $post_args;; + if ($truthy(event['$is_a?']($$($nesting, 'String')))) { + event = $send($$($nesting, 'Event'), 'create', [event].concat(Opal.to_a(args)), block.$to_proc())}; return self.$dispatch(event); - }, TMP_Target_trigger_37.$$arity = -2); + }, $Target_trigger$37.$$arity = -2); - Opal.defn(self, '$trigger!', TMP_Target_trigger$B_38 = function(event, $a_rest) { - var TMP_39, self = this, args, $iter = TMP_Target_trigger$B_38.$$p, block = $iter || nil; + Opal.def(self, '$trigger!', $Target_trigger$excl$38 = function(event, $a) { + var $iter = $Target_trigger$excl$38.$$p, block = $iter || nil, $post_args, args, $$39, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Target_trigger$B_38.$$p = null; - return $send(self, 'trigger', [event].concat(Opal.to_a(args)), (TMP_39 = function(e){var self = TMP_39.$$s || this, $writer = nil; -if (e == null) e = nil; + if ($iter) $Target_trigger$excl$38.$$p = null; + + + if ($iter) $Target_trigger$excl$38.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + args = $post_args;; + return $send(self, 'trigger', [event].concat(Opal.to_a(args)), ($$39 = function(e){var self = $$39.$$s == null ? this : $$39.$$s, $writer = nil; + + + + if (e == null) { + e = nil; + }; if ($truthy(block)) { block.$call(e)}; $writer = [false]; $send(e, 'bubbles=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, TMP_39.$$s = self, TMP_39.$$arity = 1, TMP_39)) - }, TMP_Target_trigger$B_38.$$arity = -2); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.dispatch"))) { + return $writer[$rb_minus($writer["length"], 1)];;}, $$39.$$s = self, $$39.$$arity = 1, $$39)); + }, $Target_trigger$excl$38.$$arity = -2); + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.dispatch"))) { - Opal.defn(self, '$dispatch', TMP_Target_dispatch_40 = function $$dispatch(event) { + Opal.def(self, '$dispatch', $Target_dispatch$40 = function $$dispatch(event) { var self = this; if (self["native"] == null) self["native"] = nil; return self["native"].dispatchEvent(event.$to_n()) - }, TMP_Target_dispatch_40.$$arity = 1) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.fire"))) { + }, $Target_dispatch$40.$$arity = 1) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.fire"))) { - Opal.defn(self, '$dispatch', TMP_Target_dispatch_41 = function $$dispatch(event) { + Opal.def(self, '$dispatch', $Target_dispatch$41 = function $$dispatch(event) { var self = this; if (self["native"] == null) self["native"] = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Custom')['$==='](event))) { + if ($truthy($$($nesting, 'Custom')['$==='](event))) { return self["native"].fireEvent("ondataavailable", event.$to_n()) - } else { + } else { return self["native"].fireEvent("on" + event.$name(), event.$to_n()) } - }, TMP_Target_dispatch_41.$$arity = 1) - } else { + }, $Target_dispatch$41.$$arity = 1) + } else { - Opal.defn(self, '$dispatch', TMP_Target_dispatch_42 = function $$dispatch($a_rest) { - var self = this; + Opal.def(self, '$dispatch', $Target_dispatch$42 = function $$dispatch($a) { + var $post_args, $rest_arg, self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Target_dispatch_42.$$arity = -1) + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return self.$raise($$($nesting, 'NotImplementedError')); + }, $Target_dispatch$42.$$arity = -1) }; self.$private(); - Opal.defn(self, '$callbacks', TMP_Target_callbacks_43 = function $$callbacks() { + Opal.def(self, '$callbacks', $Target_callbacks$43 = function $$callbacks() { var self = this; if (self["native"] == null) self["native"] = nil; @@ -9922,9 +11144,9 @@ if (e == null) e = nil; return self["native"].$callbacks; - }, TMP_Target_callbacks_43.$$arity = 0); + }, $Target_callbacks$43.$$arity = 0); - Opal.defn(self, '$delegated', TMP_Target_delegated_44 = function $$delegated() { + Opal.def(self, '$delegated', $Target_delegated$44 = function $$delegated() { var self = this; if (self["native"] == null) self["native"] = nil; @@ -9935,20 +11157,33 @@ if (e == null) e = nil; return self["native"].$delegated; - }, TMP_Target_delegated_44.$$arity = 0); - - Opal.defn(self, '$delegate', TMP_Target_delegate_46 = function $$delegate(delegates, event, element) { - var $a, TMP_45, self = this; + }, $Target_delegated$44.$$arity = 0); + return (Opal.def(self, '$delegate', $Target_delegate$45 = function $$delegate(delegates, event, element) { + var $$46, self = this, $ret_or_4 = nil; + + if (element == null) { element = event.$target(); - } - - if ($truthy(($truthy($a = element['$nil?']()) ? $a : element['$=='](event.$on())))) { + }; + if ($truthy((function() {if ($truthy(($ret_or_4 = element['$nil?']()))) { + return $ret_or_4 + } else { + return element['$=='](event.$on()) + }; return nil; })())) { return nil}; - $send(delegates.$handlers(), 'each', [], (TMP_45 = function(selector, block){var self = TMP_45.$$s || this, new$ = nil, $writer = nil; -if (selector == null) selector = nil;if (block == null) block = nil; - if ($truthy(element['$=~'](selector))) { + $send(delegates.$handlers(), 'each', [], ($$46 = function(selector, block){var self = $$46.$$s == null ? this : $$46.$$s, new$ = nil, $writer = nil; + + + + if (selector == null) { + selector = nil; + }; + + if (block == null) { + block = nil; + }; + if ($truthy(element['$=~'](selector))) { new$ = event.$dup(); @@ -9956,73 +11191,69 @@ if (selector == null) selector = nil;if (block == null) block = nil; $send(new$, 'on=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return $send(block, 'call', [new$].concat(Opal.to_a(new$.$arguments()))); - } else { + } else { return nil - }}, TMP_45.$$s = self, TMP_45.$$arity = 2, TMP_45)); + };}, $$46.$$s = self, $$46.$$arity = 2, $$46)); return self.$delegate(delegates, event, element.$parent()); - }, TMP_Target_delegate_46.$$arity = -3); + }, $Target_delegate$45.$$arity = -3), nil) && 'delegate'; })($nesting[0], $nesting); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/ui"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/ui"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $UI(){}; - var self = $UI = $klass($base, $super, 'UI', $UI); + var self = $klass($base, $super, 'UI'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_UI_supported$q_1, TMP_UI_construct_4, TMP_UI_construct_5; + var $nesting = [self].concat($parent_nesting), $UI_supported$ques$1, $UI_construct$4, $UI_construct$5; - Opal.defs(self, '$supported?', TMP_UI_supported$q_1 = function() { + Opal.defs(self, '$supported?', $UI_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.UI") - }, TMP_UI_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.UI") + }, $UI_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_detail$eq_2, TMP_Definition_view$eq_3; + var $nesting = [self].concat($parent_nesting), $Definition_detail$eq$2, $Definition_view$eq$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$detail=', TMP_Definition_detail$eq_2 = function(value) { + Opal.def(self, '$detail=', $Definition_detail$eq$2 = function(value) { var self = this; return self["native"].detail = value - }, TMP_Definition_detail$eq_2.$$arity = 1); - return (Opal.defn(self, '$view=', TMP_Definition_view$eq_3 = function(value) { + }, $Definition_detail$eq$2.$$arity = 1); + return (Opal.def(self, '$view=', $Definition_view$eq$3 = function(value) { var self = this; return self["native"].view = value - }, TMP_Definition_view$eq_3.$$arity = 1), nil) && 'view='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_view$eq$3.$$arity = 1), nil) && 'view='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_UI_construct_4 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $UI_construct$4 = function $$construct(name, desc) { var self = this; return new UIEvent(name, desc) - }, TMP_UI_construct_4.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_UI_construct_5 = function $$construct(name, desc) { + }, $UI_construct$4.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $UI_construct$5 = function $$construct(name, desc) { var self = this; @@ -10032,277 +11263,267 @@ Opal.modules["browser/event/ui"] = function(Opal) { return event; - }, TMP_UI_construct_5.$$arity = 2)}}; + }, $UI_construct$5.$$arity = 2)}}; self.$alias_native("detail"); return self.$alias_native("view"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/mouse"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $gvars = Opal.gvars, $truthy = Opal.truthy; +Opal.modules["browser/event/mouse"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $gvars = Opal.gvars, $truthy = Opal.truthy; Opal.add_stubs(['$!', '$nil?', '$[]', '$include', '$new', '$try_convert', '$supported?', '$supports?', '$alias_native', '$x', '$screen', '$y', '$DOM', '$==', '$downcase', '$name']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Mouse(){}; - var self = $Mouse = $klass($base, $super, 'Mouse', $Mouse); + var self = $klass($base, $super, 'Mouse'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Mouse_supported$q_1, TMP_Mouse_construct_29, TMP_Mouse_construct_30, TMP_Mouse_client_31, TMP_Mouse_layer_32, TMP_Mouse_offset_33, TMP_Mouse_page_34, TMP_Mouse_screen_35, TMP_Mouse_ancestor_36, TMP_Mouse_x_37, TMP_Mouse_y_38, TMP_Mouse_related_39, TMP_Mouse_from_40, TMP_Mouse_to_41, TMP_Mouse_click$q_42, TMP_Mouse_double_click$q_43, TMP_Mouse_down$q_44, TMP_Mouse_enter$q_45, TMP_Mouse_leave$q_46, TMP_Mouse_move$q_47, TMP_Mouse_out$q_48, TMP_Mouse_over$q_49, TMP_Mouse_up$q_50, TMP_Mouse_show$q_51; + var $nesting = [self].concat($parent_nesting), $Mouse_supported$ques$1, $Mouse_construct$29, $Mouse_construct$30, $Mouse_client$31, $Mouse_layer$32, $Mouse_offset$33, $Mouse_page$34, $Mouse_screen$35, $Mouse_ancestor$36, $Mouse_x$37, $Mouse_y$38, $Mouse_related$39, $Mouse_from$40, $Mouse_to$41, $Mouse_click$ques$42, $Mouse_double_click$ques$43, $Mouse_down$ques$44, $Mouse_enter$ques$45, $Mouse_leave$ques$46, $Mouse_move$ques$47, $Mouse_out$ques$48, $Mouse_over$ques$49, $Mouse_up$ques$50, $Mouse_show$ques$51; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$supported?', TMP_Mouse_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Mouse_supported$ques$1 = function() { var self = this; if ($gvars.$ == null) $gvars.$ = nil; return $gvars.$['$[]']("MouseEvent")['$nil?']()['$!']() - }, TMP_Mouse_supported$q_1.$$arity = 0); + }, $Mouse_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_x$eq_14, TMP_Definition_y$eq_15, TMP_Definition_alt$B_16, TMP_Definition_ctrl$B_17, TMP_Definition_meta$B_18, TMP_Definition_button$eq_19, TMP_Definition_client_20, TMP_Definition_layer_21, TMP_Definition_offset_22, TMP_Definition_page_23, TMP_Definition_screen_24, TMP_Definition_ancestor_25, TMP_Definition_related$eq_26, TMP_Definition_from$eq_27, TMP_Definition_to$eq_28; + var $nesting = [self].concat($parent_nesting), $Definition_x$eq$14, $Definition_y$eq$15, $Definition_alt$excl$16, $Definition_ctrl$excl$17, $Definition_meta$excl$18, $Definition_button$eq$19, $Definition_client$20, $Definition_layer$21, $Definition_offset$22, $Definition_page$23, $Definition_screen$24, $Definition_ancestor$25, $Definition_related$eq$26, $Definition_from$eq$27, $Definition_to$eq$28; - def["native"] = nil; + self.$$prototype["native"] = nil; (function($base, $super, $parent_nesting) { - function $Client(){}; - var self = $Client = $klass($base, $super, 'Client', $Client); + var self = $klass($base, $super, 'Client'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Client_x$eq_2, TMP_Client_y$eq_3; + var $nesting = [self].concat($parent_nesting), $Client_x$eq$2, $Client_y$eq$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$x=', TMP_Client_x$eq_2 = function(value) { + Opal.def(self, '$x=', $Client_x$eq$2 = function(value) { var self = this; return self["native"].clientX = value - }, TMP_Client_x$eq_2.$$arity = 1); - return (Opal.defn(self, '$y=', TMP_Client_y$eq_3 = function(value) { + }, $Client_x$eq$2.$$arity = 1); + return (Opal.def(self, '$y=', $Client_y$eq$3 = function(value) { var self = this; return self["native"].clientY = value - }, TMP_Client_y$eq_3.$$arity = 1), nil) && 'y='; + }, $Client_y$eq$3.$$arity = 1), nil) && 'y='; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Layer(){}; - var self = $Layer = $klass($base, $super, 'Layer', $Layer); + var self = $klass($base, $super, 'Layer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Layer_x$eq_4, TMP_Layer_y$eq_5; + var $nesting = [self].concat($parent_nesting), $Layer_x$eq$4, $Layer_y$eq$5; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$x=', TMP_Layer_x$eq_4 = function(value) { + Opal.def(self, '$x=', $Layer_x$eq$4 = function(value) { var self = this; return self["native"].layerX = value - }, TMP_Layer_x$eq_4.$$arity = 1); - return (Opal.defn(self, '$y=', TMP_Layer_y$eq_5 = function(value) { + }, $Layer_x$eq$4.$$arity = 1); + return (Opal.def(self, '$y=', $Layer_y$eq$5 = function(value) { var self = this; return self["native"].layerY = value - }, TMP_Layer_y$eq_5.$$arity = 1), nil) && 'y='; + }, $Layer_y$eq$5.$$arity = 1), nil) && 'y='; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Offset(){}; - var self = $Offset = $klass($base, $super, 'Offset', $Offset); + var self = $klass($base, $super, 'Offset'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Offset_x$eq_6, TMP_Offset_y$eq_7; + var $nesting = [self].concat($parent_nesting), $Offset_x$eq$6, $Offset_y$eq$7; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$x=', TMP_Offset_x$eq_6 = function(value) { + Opal.def(self, '$x=', $Offset_x$eq$6 = function(value) { var self = this; return self["native"].offsetX = value - }, TMP_Offset_x$eq_6.$$arity = 1); - return (Opal.defn(self, '$y=', TMP_Offset_y$eq_7 = function(value) { + }, $Offset_x$eq$6.$$arity = 1); + return (Opal.def(self, '$y=', $Offset_y$eq$7 = function(value) { var self = this; return self["native"].offsetY= value - }, TMP_Offset_y$eq_7.$$arity = 1), nil) && 'y='; + }, $Offset_y$eq$7.$$arity = 1), nil) && 'y='; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Page(){}; - var self = $Page = $klass($base, $super, 'Page', $Page); + var self = $klass($base, $super, 'Page'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Page_x$eq_8, TMP_Page_y$eq_9; + var $nesting = [self].concat($parent_nesting), $Page_x$eq$8, $Page_y$eq$9; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$x=', TMP_Page_x$eq_8 = function(value) { + Opal.def(self, '$x=', $Page_x$eq$8 = function(value) { var self = this; return self["native"].pageX = value - }, TMP_Page_x$eq_8.$$arity = 1); - return (Opal.defn(self, '$y=', TMP_Page_y$eq_9 = function(value) { + }, $Page_x$eq$8.$$arity = 1); + return (Opal.def(self, '$y=', $Page_y$eq$9 = function(value) { var self = this; return self["native"].pageY = value - }, TMP_Page_y$eq_9.$$arity = 1), nil) && 'y='; + }, $Page_y$eq$9.$$arity = 1), nil) && 'y='; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Screen(){}; - var self = $Screen = $klass($base, $super, 'Screen', $Screen); + var self = $klass($base, $super, 'Screen'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Screen_x$eq_10, TMP_Screen_y$eq_11; + var $nesting = [self].concat($parent_nesting), $Screen_x$eq$10, $Screen_y$eq$11; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$x=', TMP_Screen_x$eq_10 = function(value) { + Opal.def(self, '$x=', $Screen_x$eq$10 = function(value) { var self = this; return self["native"].screenX = value - }, TMP_Screen_x$eq_10.$$arity = 1); - return (Opal.defn(self, '$y=', TMP_Screen_y$eq_11 = function(value) { + }, $Screen_x$eq$10.$$arity = 1); + return (Opal.def(self, '$y=', $Screen_y$eq$11 = function(value) { var self = this; return self["native"].screenY = value - }, TMP_Screen_y$eq_11.$$arity = 1), nil) && 'y='; + }, $Screen_y$eq$11.$$arity = 1), nil) && 'y='; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Ancestor(){}; - var self = $Ancestor = $klass($base, $super, 'Ancestor', $Ancestor); + var self = $klass($base, $super, 'Ancestor'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Ancestor_x$eq_12, TMP_Ancestor_y$eq_13; + var $nesting = [self].concat($parent_nesting), $Ancestor_x$eq$12, $Ancestor_y$eq$13; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$x=', TMP_Ancestor_x$eq_12 = function(value) { + Opal.def(self, '$x=', $Ancestor_x$eq$12 = function(value) { var self = this; return self["native"].x = value - }, TMP_Ancestor_x$eq_12.$$arity = 1); - return (Opal.defn(self, '$y=', TMP_Ancestor_y$eq_13 = function(value) { + }, $Ancestor_x$eq$12.$$arity = 1); + return (Opal.def(self, '$y=', $Ancestor_y$eq$13 = function(value) { var self = this; return self["native"].y = value - }, TMP_Ancestor_y$eq_13.$$arity = 1), nil) && 'y='; + }, $Ancestor_y$eq$13.$$arity = 1), nil) && 'y='; })($nesting[0], null, $nesting); - Opal.defn(self, '$x=', TMP_Definition_x$eq_14 = function(value) { + Opal.def(self, '$x=', $Definition_x$eq$14 = function(value) { var self = this; return self["native"].screenX = value - }, TMP_Definition_x$eq_14.$$arity = 1); + }, $Definition_x$eq$14.$$arity = 1); - Opal.defn(self, '$y=', TMP_Definition_y$eq_15 = function(value) { + Opal.def(self, '$y=', $Definition_y$eq$15 = function(value) { var self = this; return self["native"].screenY = value - }, TMP_Definition_y$eq_15.$$arity = 1); + }, $Definition_y$eq$15.$$arity = 1); - Opal.defn(self, '$alt!', TMP_Definition_alt$B_16 = function() { + Opal.def(self, '$alt!', $Definition_alt$excl$16 = function() { var self = this; return self["native"].altKey = true - }, TMP_Definition_alt$B_16.$$arity = 0); + }, $Definition_alt$excl$16.$$arity = 0); - Opal.defn(self, '$ctrl!', TMP_Definition_ctrl$B_17 = function() { + Opal.def(self, '$ctrl!', $Definition_ctrl$excl$17 = function() { var self = this; return self["native"].ctrlKey = true - }, TMP_Definition_ctrl$B_17.$$arity = 0); + }, $Definition_ctrl$excl$17.$$arity = 0); - Opal.defn(self, '$meta!', TMP_Definition_meta$B_18 = function() { + Opal.def(self, '$meta!', $Definition_meta$excl$18 = function() { var self = this; return self["native"].metaKey = true - }, TMP_Definition_meta$B_18.$$arity = 0); + }, $Definition_meta$excl$18.$$arity = 0); - Opal.defn(self, '$button=', TMP_Definition_button$eq_19 = function(value) { + Opal.def(self, '$button=', $Definition_button$eq$19 = function(value) { var self = this; return self["native"].button = value - }, TMP_Definition_button$eq_19.$$arity = 1); + }, $Definition_button$eq$19.$$arity = 1); - Opal.defn(self, '$client', TMP_Definition_client_20 = function $$client() { + Opal.def(self, '$client', $Definition_client$20 = function $$client() { var self = this; - return Opal.const_get_relative($nesting, 'Client').$new(self["native"]) - }, TMP_Definition_client_20.$$arity = 0); + return $$($nesting, 'Client').$new(self["native"]) + }, $Definition_client$20.$$arity = 0); - Opal.defn(self, '$layer', TMP_Definition_layer_21 = function $$layer() { + Opal.def(self, '$layer', $Definition_layer$21 = function $$layer() { var self = this; - return Opal.const_get_relative($nesting, 'Layer').$new(self["native"]) - }, TMP_Definition_layer_21.$$arity = 0); + return $$($nesting, 'Layer').$new(self["native"]) + }, $Definition_layer$21.$$arity = 0); - Opal.defn(self, '$offset', TMP_Definition_offset_22 = function $$offset() { + Opal.def(self, '$offset', $Definition_offset$22 = function $$offset() { var self = this; - return Opal.const_get_relative($nesting, 'Offset').$new(self["native"]) - }, TMP_Definition_offset_22.$$arity = 0); + return $$($nesting, 'Offset').$new(self["native"]) + }, $Definition_offset$22.$$arity = 0); - Opal.defn(self, '$page', TMP_Definition_page_23 = function $$page() { + Opal.def(self, '$page', $Definition_page$23 = function $$page() { var self = this; - return Opal.const_get_relative($nesting, 'Page').$new(self["native"]) - }, TMP_Definition_page_23.$$arity = 0); + return $$($nesting, 'Page').$new(self["native"]) + }, $Definition_page$23.$$arity = 0); - Opal.defn(self, '$screen', TMP_Definition_screen_24 = function $$screen() { + Opal.def(self, '$screen', $Definition_screen$24 = function $$screen() { var self = this; - return Opal.const_get_relative($nesting, 'Screen').$new(self["native"]) - }, TMP_Definition_screen_24.$$arity = 0); + return $$($nesting, 'Screen').$new(self["native"]) + }, $Definition_screen$24.$$arity = 0); - Opal.defn(self, '$ancestor', TMP_Definition_ancestor_25 = function $$ancestor() { + Opal.def(self, '$ancestor', $Definition_ancestor$25 = function $$ancestor() { var self = this; - return Opal.const_get_relative($nesting, 'Ancestor').$new(self["native"]) - }, TMP_Definition_ancestor_25.$$arity = 0); + return $$($nesting, 'Ancestor').$new(self["native"]) + }, $Definition_ancestor$25.$$arity = 0); - Opal.defn(self, '$related=', TMP_Definition_related$eq_26 = function(elem) { + Opal.def(self, '$related=', $Definition_related$eq$26 = function(elem) { var self = this; - return self["native"].relatedTarget = Opal.const_get_relative($nesting, 'Native').$try_convert(elem) - }, TMP_Definition_related$eq_26.$$arity = 1); + return self["native"].relatedTarget = $$($nesting, 'Native').$try_convert(elem) + }, $Definition_related$eq$26.$$arity = 1); - Opal.defn(self, '$from=', TMP_Definition_from$eq_27 = function(elem) { + Opal.def(self, '$from=', $Definition_from$eq$27 = function(elem) { var self = this; - return self["native"].fromElement = Opal.const_get_relative($nesting, 'Native').$try_convert(elem) - }, TMP_Definition_from$eq_27.$$arity = 1); - return (Opal.defn(self, '$to=', TMP_Definition_to$eq_28 = function(elem) { + return self["native"].fromElement = $$($nesting, 'Native').$try_convert(elem) + }, $Definition_from$eq$27.$$arity = 1); + return (Opal.def(self, '$to=', $Definition_to$eq$28 = function(elem) { var self = this; - return self["native"].toElement = Opal.const_get_relative($nesting, 'Native').$try_convert(elem) - }, TMP_Definition_to$eq_28.$$arity = 1), nil) && 'to='; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_relative($nesting, 'UI'), 'Definition'), $nesting); + return self["native"].toElement = $$($nesting, 'Native').$try_convert(elem) + }, $Definition_to$eq$28.$$arity = 1), nil) && 'to='; + })($nesting[0], $$$($$($nesting, 'UI'), 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Mouse_construct_29 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Mouse_construct$29 = function $$construct(name, desc) { var self = this; return new MouseEvent(name, desc) - }, TMP_Mouse_construct_29.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Mouse_construct_30 = function $$construct(name, desc) { + }, $Mouse_construct$29.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Mouse_construct$30 = function $$construct(name, desc) { var self = this; @@ -10317,274 +11538,270 @@ Opal.modules["browser/event/mouse"] = function(Opal) { return event; - }, TMP_Mouse_construct_30.$$arity = 2)}}; + }, $Mouse_construct$30.$$arity = 2)}}; self.$alias_native("alt?", "altKey"); self.$alias_native("ctrl?", "ctrlKey"); self.$alias_native("meta?", "metaKey"); self.$alias_native("shift?", "shiftKey"); self.$alias_native("button"); - Opal.defn(self, '$client', TMP_Mouse_client_31 = function $$client() { + Opal.def(self, '$client', $Mouse_client$31 = function $$client() { var self = this; - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].clientX, self["native"].clientY) - }, TMP_Mouse_client_31.$$arity = 0); + return $$($nesting, 'Position').$new(self["native"].clientX, self["native"].clientY) + }, $Mouse_client$31.$$arity = 0); - Opal.defn(self, '$layer', TMP_Mouse_layer_32 = function $$layer() { + Opal.def(self, '$layer', $Mouse_layer$32 = function $$layer() { var self = this; if ($truthy(self["native"].layerX == null)) { return nil - } else { - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].layerX, self["native"].layerY) + } else { + return $$($nesting, 'Position').$new(self["native"].layerX, self["native"].layerY) } - }, TMP_Mouse_layer_32.$$arity = 0); + }, $Mouse_layer$32.$$arity = 0); - Opal.defn(self, '$offset', TMP_Mouse_offset_33 = function $$offset() { + Opal.def(self, '$offset', $Mouse_offset$33 = function $$offset() { var self = this; if ($truthy(self["native"].offsetX == null)) { return nil - } else { - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].offsetX, self["native"].offsetY) + } else { + return $$($nesting, 'Position').$new(self["native"].offsetX, self["native"].offsetY) } - }, TMP_Mouse_offset_33.$$arity = 0); + }, $Mouse_offset$33.$$arity = 0); - Opal.defn(self, '$page', TMP_Mouse_page_34 = function $$page() { + Opal.def(self, '$page', $Mouse_page$34 = function $$page() { var self = this; if ($truthy(self["native"].pageX == null)) { return nil - } else { - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].pageX, self["native"].pageY) + } else { + return $$($nesting, 'Position').$new(self["native"].pageX, self["native"].pageY) } - }, TMP_Mouse_page_34.$$arity = 0); + }, $Mouse_page$34.$$arity = 0); - Opal.defn(self, '$screen', TMP_Mouse_screen_35 = function $$screen() { + Opal.def(self, '$screen', $Mouse_screen$35 = function $$screen() { var self = this; if ($truthy(self["native"].screenX == null)) { return nil - } else { - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].screenX, self["native"].screenY) + } else { + return $$($nesting, 'Position').$new(self["native"].screenX, self["native"].screenY) } - }, TMP_Mouse_screen_35.$$arity = 0); + }, $Mouse_screen$35.$$arity = 0); - Opal.defn(self, '$ancestor', TMP_Mouse_ancestor_36 = function $$ancestor() { + Opal.def(self, '$ancestor', $Mouse_ancestor$36 = function $$ancestor() { var self = this; if ($truthy(self["native"].x == null)) { return nil - } else { - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].x, self["native"].y) + } else { + return $$($nesting, 'Position').$new(self["native"].x, self["native"].y) } - }, TMP_Mouse_ancestor_36.$$arity = 0); + }, $Mouse_ancestor$36.$$arity = 0); - Opal.defn(self, '$x', TMP_Mouse_x_37 = function $$x() { + Opal.def(self, '$x', $Mouse_x$37 = function $$x() { var self = this; return self.$screen().$x() - }, TMP_Mouse_x_37.$$arity = 0); + }, $Mouse_x$37.$$arity = 0); - Opal.defn(self, '$y', TMP_Mouse_y_38 = function $$y() { + Opal.def(self, '$y', $Mouse_y$38 = function $$y() { var self = this; return self.$screen().$y() - }, TMP_Mouse_y_38.$$arity = 0); + }, $Mouse_y$38.$$arity = 0); - Opal.defn(self, '$related', TMP_Mouse_related_39 = function $$related() { + Opal.def(self, '$related', $Mouse_related$39 = function $$related() { var self = this; if ($truthy(self["native"].relatedTarget == null)) { return nil - } else { + } else { return self.$DOM(self["native"].relatedTarget) } - }, TMP_Mouse_related_39.$$arity = 0); + }, $Mouse_related$39.$$arity = 0); - Opal.defn(self, '$from', TMP_Mouse_from_40 = function $$from() { + Opal.def(self, '$from', $Mouse_from$40 = function $$from() { var self = this; if ($truthy(self["native"].fromElement == null)) { return nil - } else { + } else { return self.$DOM(self["native"].fromElement) } - }, TMP_Mouse_from_40.$$arity = 0); + }, $Mouse_from$40.$$arity = 0); - Opal.defn(self, '$to', TMP_Mouse_to_41 = function $$to() { + Opal.def(self, '$to', $Mouse_to$41 = function $$to() { var self = this; if ($truthy(self["native"].toElement == null)) { return nil - } else { + } else { return self.$DOM(self["native"].toElement) } - }, TMP_Mouse_to_41.$$arity = 0); + }, $Mouse_to$41.$$arity = 0); - Opal.defn(self, '$click?', TMP_Mouse_click$q_42 = function() { + Opal.def(self, '$click?', $Mouse_click$ques$42 = function() { var self = this; return self.$name().$downcase()['$==']("click") - }, TMP_Mouse_click$q_42.$$arity = 0); + }, $Mouse_click$ques$42.$$arity = 0); - Opal.defn(self, '$double_click?', TMP_Mouse_double_click$q_43 = function() { + Opal.def(self, '$double_click?', $Mouse_double_click$ques$43 = function() { var self = this; return self.$name().$downcase()['$==']("dblclick") - }, TMP_Mouse_double_click$q_43.$$arity = 0); + }, $Mouse_double_click$ques$43.$$arity = 0); - Opal.defn(self, '$down?', TMP_Mouse_down$q_44 = function() { + Opal.def(self, '$down?', $Mouse_down$ques$44 = function() { var self = this; return self.$name().$downcase()['$==']("mousedown") - }, TMP_Mouse_down$q_44.$$arity = 0); + }, $Mouse_down$ques$44.$$arity = 0); - Opal.defn(self, '$enter?', TMP_Mouse_enter$q_45 = function() { + Opal.def(self, '$enter?', $Mouse_enter$ques$45 = function() { var self = this; return self.$name().$downcase()['$==']("mouseenter") - }, TMP_Mouse_enter$q_45.$$arity = 0); + }, $Mouse_enter$ques$45.$$arity = 0); - Opal.defn(self, '$leave?', TMP_Mouse_leave$q_46 = function() { + Opal.def(self, '$leave?', $Mouse_leave$ques$46 = function() { var self = this; return self.$name().$downcase()['$==']("mouseleave") - }, TMP_Mouse_leave$q_46.$$arity = 0); + }, $Mouse_leave$ques$46.$$arity = 0); - Opal.defn(self, '$move?', TMP_Mouse_move$q_47 = function() { + Opal.def(self, '$move?', $Mouse_move$ques$47 = function() { var self = this; return self.$name().$downcase()['$==']("mousemove") - }, TMP_Mouse_move$q_47.$$arity = 0); + }, $Mouse_move$ques$47.$$arity = 0); - Opal.defn(self, '$out?', TMP_Mouse_out$q_48 = function() { + Opal.def(self, '$out?', $Mouse_out$ques$48 = function() { var self = this; return self.$name().$downcase()['$==']("mouseout") - }, TMP_Mouse_out$q_48.$$arity = 0); + }, $Mouse_out$ques$48.$$arity = 0); - Opal.defn(self, '$over?', TMP_Mouse_over$q_49 = function() { + Opal.def(self, '$over?', $Mouse_over$ques$49 = function() { var self = this; return self.$name().$downcase()['$==']("mouseover") - }, TMP_Mouse_over$q_49.$$arity = 0); + }, $Mouse_over$ques$49.$$arity = 0); - Opal.defn(self, '$up?', TMP_Mouse_up$q_50 = function() { + Opal.def(self, '$up?', $Mouse_up$ques$50 = function() { var self = this; return self.$name().$downcase()['$==']("mouseup") - }, TMP_Mouse_up$q_50.$$arity = 0); - return (Opal.defn(self, '$show?', TMP_Mouse_show$q_51 = function() { + }, $Mouse_up$ques$50.$$arity = 0); + return (Opal.def(self, '$show?', $Mouse_show$ques$51 = function() { var self = this; return self.$name().$downcase()['$==']("show") - }, TMP_Mouse_show$q_51.$$arity = 0), nil) && 'show?'; - })($nesting[0], Opal.const_get_relative($nesting, 'UI'), $nesting) + }, $Mouse_show$ques$51.$$arity = 0), nil) && 'show?'; + })($nesting[0], $$($nesting, 'UI'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/keyboard"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/keyboard"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias; Opal.add_stubs(['$supports?', '$supported?', '$alias_native', '$code', '$chr', '$==', '$downcase', '$name']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Keyboard(){}; - var self = $Keyboard = $klass($base, $super, 'Keyboard', $Keyboard); + var self = $klass($base, $super, 'Keyboard'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Keyboard_supported$q_1, TMP_Keyboard_construct_11, TMP_Keyboard_construct_12, TMP_Keyboard_key_13, TMP_Keyboard_code_14, TMP_Keyboard_char_15, TMP_Keyboard_down$q_16, TMP_Keyboard_press$q_17, TMP_Keyboard_up$q_18; + var $nesting = [self].concat($parent_nesting), $Keyboard_supported$ques$1, $Keyboard_construct$11, $Keyboard_construct$12, $Keyboard_key$13, $Keyboard_code$14, $Keyboard_char$15, $Keyboard_down$ques$16, $Keyboard_press$ques$17, $Keyboard_up$ques$18; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$supported?', TMP_Keyboard_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Keyboard_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Keyboard") - }, TMP_Keyboard_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Keyboard") + }, $Keyboard_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_alt$B_2, TMP_Definition_ctrl$B_3, TMP_Definition_meta$B_4, TMP_Definition_shift$B_5, TMP_Definition_code$eq_6, TMP_Definition_key$eq_7, TMP_Definition_char$eq_8, TMP_Definition_repeat$B_9, TMP_Definition_locale$eq_10; + var $nesting = [self].concat($parent_nesting), $Definition_alt$excl$2, $Definition_ctrl$excl$3, $Definition_meta$excl$4, $Definition_shift$excl$5, $Definition_code$eq$6, $Definition_key$eq$7, $Definition_char$eq$8, $Definition_repeat$excl$9, $Definition_locale$eq$10; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$alt!', TMP_Definition_alt$B_2 = function() { + Opal.def(self, '$alt!', $Definition_alt$excl$2 = function() { var self = this; return self["native"].altKey = true - }, TMP_Definition_alt$B_2.$$arity = 0); + }, $Definition_alt$excl$2.$$arity = 0); - Opal.defn(self, '$ctrl!', TMP_Definition_ctrl$B_3 = function() { + Opal.def(self, '$ctrl!', $Definition_ctrl$excl$3 = function() { var self = this; return self["native"].ctrlKey = true - }, TMP_Definition_ctrl$B_3.$$arity = 0); + }, $Definition_ctrl$excl$3.$$arity = 0); - Opal.defn(self, '$meta!', TMP_Definition_meta$B_4 = function() { + Opal.def(self, '$meta!', $Definition_meta$excl$4 = function() { var self = this; return self["native"].metaKey = true - }, TMP_Definition_meta$B_4.$$arity = 0); + }, $Definition_meta$excl$4.$$arity = 0); - Opal.defn(self, '$shift!', TMP_Definition_shift$B_5 = function() { + Opal.def(self, '$shift!', $Definition_shift$excl$5 = function() { var self = this; return self["native"].shiftKey = true - }, TMP_Definition_shift$B_5.$$arity = 0); + }, $Definition_shift$excl$5.$$arity = 0); - Opal.defn(self, '$code=', TMP_Definition_code$eq_6 = function(code) { + Opal.def(self, '$code=', $Definition_code$eq$6 = function(code) { var self = this; return self["native"].keyCode = self["native"].which = code - }, TMP_Definition_code$eq_6.$$arity = 1); + }, $Definition_code$eq$6.$$arity = 1); - Opal.defn(self, '$key=', TMP_Definition_key$eq_7 = function(key) { + Opal.def(self, '$key=', $Definition_key$eq$7 = function(key) { var self = this; return self["native"].key = key - }, TMP_Definition_key$eq_7.$$arity = 1); + }, $Definition_key$eq$7.$$arity = 1); - Opal.defn(self, '$char=', TMP_Definition_char$eq_8 = function(char$) { + Opal.def(self, '$char=', $Definition_char$eq$8 = function(char$) { var self = this; return self["native"].char = self["native"].charCode = char$ - }, TMP_Definition_char$eq_8.$$arity = 1); + }, $Definition_char$eq$8.$$arity = 1); - Opal.defn(self, '$repeat!', TMP_Definition_repeat$B_9 = function() { + Opal.def(self, '$repeat!', $Definition_repeat$excl$9 = function() { var self = this; return self["native"].repeat = true - }, TMP_Definition_repeat$B_9.$$arity = 0); - return (Opal.defn(self, '$locale=', TMP_Definition_locale$eq_10 = function(value) { + }, $Definition_repeat$excl$9.$$arity = 0); + return (Opal.def(self, '$locale=', $Definition_locale$eq$10 = function(value) { var self = this; return self["native"].locale = value - }, TMP_Definition_locale$eq_10.$$arity = 1), nil) && 'locale='; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_relative($nesting, 'UI'), 'Definition'), $nesting); + }, $Definition_locale$eq$10.$$arity = 1), nil) && 'locale='; + })($nesting[0], $$$($$($nesting, 'UI'), 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Keyboard_construct_11 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Keyboard_construct$11 = function $$construct(name, desc) { var self = this; return new KeyboardEvent(name, desc) - }, TMP_Keyboard_construct_11.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Keyboard_construct_12 = function $$construct(name, desc) { + }, $Keyboard_construct$11.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Keyboard_construct$12 = function $$construct(name, desc) { var self = this; @@ -10613,7 +11830,7 @@ Opal.modules["browser/event/keyboard"] = function(Opal) { return event; - }, TMP_Keyboard_construct_12.$$arity = 2)}}; + }, $Keyboard_construct$12.$$arity = 2)}}; self.$alias_native("alt?", "altKey"); self.$alias_native("ctrl?", "ctrlKey"); self.$alias_native("meta?", "metaKey"); @@ -10621,108 +11838,104 @@ Opal.modules["browser/event/keyboard"] = function(Opal) { self.$alias_native("locale"); self.$alias_native("repeat?", "repeat"); - Opal.defn(self, '$key', TMP_Keyboard_key_13 = function $$key() { + Opal.def(self, '$key', $Keyboard_key$13 = function $$key() { var self = this; return self["native"].key || self["native"].keyIdentifier || nil - }, TMP_Keyboard_key_13.$$arity = 0); + }, $Keyboard_key$13.$$arity = 0); - Opal.defn(self, '$code', TMP_Keyboard_code_14 = function $$code() { + Opal.def(self, '$code', $Keyboard_code$14 = function $$code() { var self = this; return self["native"].keyCode || self["native"].which || nil - }, TMP_Keyboard_code_14.$$arity = 0); + }, $Keyboard_code$14.$$arity = 0); - Opal.defn(self, '$char', TMP_Keyboard_char_15 = function() { + Opal.def(self, '$char', $Keyboard_char$15 = function() { var self = this; return self["native"].char || self["native"].charCode || (function() {if ($truthy(self.$code())) { return self.$code().$chr() - } else { + } else { return nil }; return nil; })() - }, TMP_Keyboard_char_15.$$arity = 0); - Opal.alias(self, "to_i", "key"); + }, $Keyboard_char$15.$$arity = 0); + $alias(self, "to_i", "key"); - Opal.defn(self, '$down?', TMP_Keyboard_down$q_16 = function() { + Opal.def(self, '$down?', $Keyboard_down$ques$16 = function() { var self = this; return self.$name().$downcase()['$==']("keydown") - }, TMP_Keyboard_down$q_16.$$arity = 0); + }, $Keyboard_down$ques$16.$$arity = 0); - Opal.defn(self, '$press?', TMP_Keyboard_press$q_17 = function() { + Opal.def(self, '$press?', $Keyboard_press$ques$17 = function() { var self = this; return self.$name().$downcase()['$==']("keypress") - }, TMP_Keyboard_press$q_17.$$arity = 0); - return (Opal.defn(self, '$up?', TMP_Keyboard_up$q_18 = function() { + }, $Keyboard_press$ques$17.$$arity = 0); + return (Opal.def(self, '$up?', $Keyboard_up$ques$18 = function() { var self = this; return self.$name().$downcase()['$==']("keyup") - }, TMP_Keyboard_up$q_18.$$arity = 0), nil) && 'up?'; - })($nesting[0], Opal.const_get_relative($nesting, 'UI'), $nesting) + }, $Keyboard_up$ques$18.$$arity = 0), nil) && 'up?'; + })($nesting[0], $$($nesting, 'UI'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/focus"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/focus"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$convert', '$supported?', '$DOM']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Focus(){}; - var self = $Focus = $klass($base, $super, 'Focus', $Focus); + var self = $klass($base, $super, 'Focus'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Focus_supported$q_1, TMP_Focus_construct_4, TMP_Focus_construct_5, TMP_Focus_related_6; + var $nesting = [self].concat($parent_nesting), $Focus_supported$ques$1, $Focus_construct$4, $Focus_construct$5, $Focus_related$6; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$supported?', TMP_Focus_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Focus_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Focus") - }, TMP_Focus_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Focus") + }, $Focus_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_view$eq_2, TMP_Definition_related$eq_3; + var $nesting = [self].concat($parent_nesting), $Definition_view$eq$2, $Definition_related$eq$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$view=', TMP_Definition_view$eq_2 = function(value) { + Opal.def(self, '$view=', $Definition_view$eq$2 = function(value) { var self = this; - return self["native"].view = Opal.const_get_relative($nesting, 'Native').$convert(value) - }, TMP_Definition_view$eq_2.$$arity = 1); - return (Opal.defn(self, '$related=', TMP_Definition_related$eq_3 = function(elem) { + return self["native"].view = $$($nesting, 'Native').$convert(value) + }, $Definition_view$eq$2.$$arity = 1); + return (Opal.def(self, '$related=', $Definition_related$eq$3 = function(elem) { var self = this; - return self["native"].relatedTarget = Opal.const_get_relative($nesting, 'Native').$convert(elem) - }, TMP_Definition_related$eq_3.$$arity = 1), nil) && 'related='; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_relative($nesting, 'UI'), 'Definition'), $nesting); + return self["native"].relatedTarget = $$($nesting, 'Native').$convert(elem) + }, $Definition_related$eq$3.$$arity = 1), nil) && 'related='; + })($nesting[0], $$$($$($nesting, 'UI'), 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Focus_construct_4 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Focus_construct$4 = function $$construct(name, desc) { var self = this; return new FocusEvent(name, desc) - }, TMP_Focus_construct_4.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Focus_construct_5 = function $$construct(name, desc) { + }, $Focus_construct$4.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Focus_construct$5 = function $$construct(name, desc) { var self = this; @@ -10732,94 +11945,90 @@ Opal.modules["browser/event/focus"] = function(Opal) { return event; - }, TMP_Focus_construct_5.$$arity = 2)}}; - return (Opal.defn(self, '$related', TMP_Focus_related_6 = function $$related() { + }, $Focus_construct$5.$$arity = 2)}}; + return (Opal.def(self, '$related', $Focus_related$6 = function $$related() { var self = this; return self.$DOM(self["native"].relatedTarget) - }, TMP_Focus_related_6.$$arity = 0), nil) && 'related'; - })($nesting[0], Opal.const_get_relative($nesting, 'UI'), $nesting) + }, $Focus_related$6.$$arity = 0), nil) && 'related'; + })($nesting[0], $$($nesting, 'UI'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/wheel"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $gvars = Opal.gvars; +Opal.modules["browser/event/wheel"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $gvars = Opal.gvars; Opal.add_stubs(['$!', '$nil?', '$[]', '$===', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Wheel(){}; - var self = $Wheel = $klass($base, $super, 'Wheel', $Wheel); + var self = $klass($base, $super, 'Wheel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Wheel_supported$q_1, TMP_Wheel_construct_6, TMP_Wheel_mode_7; + var $nesting = [self].concat($parent_nesting), $Wheel_supported$ques$1, $Wheel_construct$6, $Wheel_mode$7; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$supported?', TMP_Wheel_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Wheel_supported$ques$1 = function() { var self = this; if ($gvars.$ == null) $gvars.$ = nil; return $gvars.$['$[]']("WheelEvent")['$nil?']()['$!']() - }, TMP_Wheel_supported$q_1.$$arity = 0); + }, $Wheel_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_x$eq_2, TMP_Definition_y$eq_3, TMP_Definition_z$eq_4, TMP_Definition_mode$eq_5; + var $nesting = [self].concat($parent_nesting), $Definition_x$eq$2, $Definition_y$eq$3, $Definition_z$eq$4, $Definition_mode$eq$5; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$x=', TMP_Definition_x$eq_2 = function(value) { + Opal.def(self, '$x=', $Definition_x$eq$2 = function(value) { var self = this; return self["native"].deltaX = value - }, TMP_Definition_x$eq_2.$$arity = 1); + }, $Definition_x$eq$2.$$arity = 1); - Opal.defn(self, '$y=', TMP_Definition_y$eq_3 = function(value) { + Opal.def(self, '$y=', $Definition_y$eq$3 = function(value) { var self = this; return self["native"].deltaY = value - }, TMP_Definition_y$eq_3.$$arity = 1); + }, $Definition_y$eq$3.$$arity = 1); - Opal.defn(self, '$z=', TMP_Definition_z$eq_4 = function(value) { + Opal.def(self, '$z=', $Definition_z$eq$4 = function(value) { var self = this; return self["native"].deltaZ = value - }, TMP_Definition_z$eq_4.$$arity = 1); - return (Opal.defn(self, '$mode=', TMP_Definition_mode$eq_5 = function(value) { + }, $Definition_z$eq$4.$$arity = 1); + return (Opal.def(self, '$mode=', $Definition_mode$eq$5 = function(value) { var self = this, $case = nil; value = (function() {$case = value; - if ("pixel"['$===']($case)) {return WheelEvent.DOM_DELTA_PIXEL} - else if ("line"['$===']($case)) {return WheelEvent.DOM_DELTA_LINE} - else if ("page"['$===']($case)) {return WheelEvent.DOM_DELTA_PAGE} + if ("pixel"['$===']($case)) {return WheelEvent.DOM_DELTA_PIXEL;} + else if ("line"['$===']($case)) {return WheelEvent.DOM_DELTA_LINE;} + else if ("page"['$===']($case)) {return WheelEvent.DOM_DELTA_PAGE;} else { return nil }})(); return self["native"].deltaMode = value; - }, TMP_Definition_mode$eq_5.$$arity = 1), nil) && 'mode='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); - Opal.defs(self, '$construct', TMP_Wheel_construct_6 = function $$construct(name, desc) { + }, $Definition_mode$eq$5.$$arity = 1), nil) && 'mode='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); + Opal.defs(self, '$construct', $Wheel_construct$6 = function $$construct(name, desc) { var self = this; return new WheelEvent(name, desc) - }, TMP_Wheel_construct_6.$$arity = 2); + }, $Wheel_construct$6.$$arity = 2); self.$alias_native("x", "deltaX"); self.$alias_native("y", "deltaY"); self.$alias_native("z", "deltaZ"); - return (Opal.defn(self, '$mode', TMP_Wheel_mode_7 = function $$mode() { + return (Opal.def(self, '$mode', $Wheel_mode$7 = function $$mode() { var self = this, $case = nil; return (function() {$case = self["native"].deltaMode; @@ -10827,69 +12036,65 @@ Opal.modules["browser/event/wheel"] = function(Opal) { else if ((WheelEvent.DOM_DELTA_LINE)['$===']($case)) {return "line"} else if ((WheelEvent.DOM_DELTA_PAGE)['$===']($case)) {return "page"} else { return nil }})() - }, TMP_Wheel_mode_7.$$arity = 0), nil) && 'mode'; - })($nesting[0], Opal.const_get_relative($nesting, 'UI'), $nesting) + }, $Wheel_mode$7.$$arity = 0), nil) && 'mode'; + })($nesting[0], $$($nesting, 'UI'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/composition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/composition"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native', '$==', '$downcase', '$name']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Composition(){}; - var self = $Composition = $klass($base, $super, 'Composition', $Composition); + var self = $klass($base, $super, 'Composition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Composition_supported$q_1, TMP_Composition_construct_4, TMP_Composition_construct_5, TMP_Composition_start$q_6, TMP_Composition_update$q_7, TMP_Composition_end$q_8; + var $nesting = [self].concat($parent_nesting), $Composition_supported$ques$1, $Composition_construct$4, $Composition_construct$5, $Composition_start$ques$6, $Composition_update$ques$7, $Composition_end$ques$8; - Opal.defs(self, '$supported?', TMP_Composition_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Composition_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Composition") - }, TMP_Composition_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Composition") + }, $Composition_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_data$eq_2, TMP_Definition_locale$eq_3; + var $nesting = [self].concat($parent_nesting), $Definition_data$eq$2, $Definition_locale$eq$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$data=', TMP_Definition_data$eq_2 = function(value) { + Opal.def(self, '$data=', $Definition_data$eq$2 = function(value) { var self = this; return self["native"].data = value - }, TMP_Definition_data$eq_2.$$arity = 1); - return (Opal.defn(self, '$locale=', TMP_Definition_locale$eq_3 = function(value) { + }, $Definition_data$eq$2.$$arity = 1); + return (Opal.def(self, '$locale=', $Definition_locale$eq$3 = function(value) { var self = this; return self["native"].locale = value - }, TMP_Definition_locale$eq_3.$$arity = 1), nil) && 'locale='; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_relative($nesting, 'UI'), 'Definition'), $nesting); + }, $Definition_locale$eq$3.$$arity = 1), nil) && 'locale='; + })($nesting[0], $$$($$($nesting, 'UI'), 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Composition_construct_4 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Composition_construct$4 = function $$construct(name, desc) { var self = this; return new CompositionEvent(name, desc) - }, TMP_Composition_construct_4.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Composition_construct_5 = function $$construct(name, desc) { + }, $Composition_construct$4.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Composition_construct$5 = function $$construct(name, desc) { var self = this; @@ -10899,88 +12104,84 @@ Opal.modules["browser/event/composition"] = function(Opal) { return event; - }, TMP_Composition_construct_5.$$arity = 2)}}; + }, $Composition_construct$5.$$arity = 2)}}; self.$alias_native("data"); self.$alias_native("locale"); - Opal.defn(self, '$start?', TMP_Composition_start$q_6 = function() { + Opal.def(self, '$start?', $Composition_start$ques$6 = function() { var self = this; return self.$name().$downcase()['$==']("compositionstart") - }, TMP_Composition_start$q_6.$$arity = 0); + }, $Composition_start$ques$6.$$arity = 0); - Opal.defn(self, '$update?', TMP_Composition_update$q_7 = function() { + Opal.def(self, '$update?', $Composition_update$ques$7 = function() { var self = this; return self.$name().$downcase()['$==']("compositionupdate") - }, TMP_Composition_update$q_7.$$arity = 0); - return (Opal.defn(self, '$end?', TMP_Composition_end$q_8 = function() { + }, $Composition_update$ques$7.$$arity = 0); + return (Opal.def(self, '$end?', $Composition_end$ques$8 = function() { var self = this; return self.$name().$downcase()['$==']("compositionend") - }, TMP_Composition_end$q_8.$$arity = 0), nil) && 'end?'; - })($nesting[0], Opal.const_get_relative($nesting, 'UI'), $nesting) + }, $Composition_end$ques$8.$$arity = 0), nil) && 'end?'; + })($nesting[0], $$($nesting, 'UI'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/animation"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/animation"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Animation(){}; - var self = $Animation = $klass($base, $super, 'Animation', $Animation); + var self = $klass($base, $super, 'Animation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Animation_supported$q_1, TMP_Animation_construct_4, TMP_Animation_construct_5; + var $nesting = [self].concat($parent_nesting), $Animation_supported$ques$1, $Animation_construct$4, $Animation_construct$5; - Opal.defs(self, '$supported?', TMP_Animation_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Animation_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Animation") - }, TMP_Animation_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Animation") + }, $Animation_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_animation$eq_2, TMP_Definition_elapsed$eq_3; + var $nesting = [self].concat($parent_nesting), $Definition_animation$eq$2, $Definition_elapsed$eq$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$animation=', TMP_Definition_animation$eq_2 = function(value) { + Opal.def(self, '$animation=', $Definition_animation$eq$2 = function(value) { var self = this; return self["native"].animationName = value - }, TMP_Definition_animation$eq_2.$$arity = 1); - return (Opal.defn(self, '$elapsed=', TMP_Definition_elapsed$eq_3 = function(value) { + }, $Definition_animation$eq$2.$$arity = 1); + return (Opal.def(self, '$elapsed=', $Definition_elapsed$eq$3 = function(value) { var self = this; return self["native"].elapsedTime = value - }, TMP_Definition_elapsed$eq_3.$$arity = 1), nil) && 'elapsed='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_elapsed$eq$3.$$arity = 1), nil) && 'elapsed='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Animation_construct_4 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Animation_construct$4 = function $$construct(name, desc) { var self = this; return new AnimationEvent(name, desc) - }, TMP_Animation_construct_4.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Animation_construct_5 = function $$construct(name, desc) { + }, $Animation_construct$4.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Animation_construct$5 = function $$construct(name, desc) { var self = this; @@ -10990,315 +12191,296 @@ Opal.modules["browser/event/animation"] = function(Opal) { return event; - }, TMP_Animation_construct_5.$$arity = 2)}}; + }, $Animation_construct$5.$$arity = 2)}}; self.$alias_native("name", "animationName"); return self.$alias_native("elapsed", "elapsedTime"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/audio_processing"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/audio_processing"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $AudioProcessing(){}; - var self = $AudioProcessing = $klass($base, $super, 'AudioProcessing', $AudioProcessing); + var self = $klass($base, $super, 'AudioProcessing'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_AudioProcessing_supported$q_1, TMP_AudioProcessing_construct_5; + var $nesting = [self].concat($parent_nesting), $AudioProcessing_supported$ques$1, $AudioProcessing_construct$5; - Opal.defs(self, '$supported?', TMP_AudioProcessing_supported$q_1 = function() { + Opal.defs(self, '$supported?', $AudioProcessing_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.AudioProcessing") - }, TMP_AudioProcessing_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.AudioProcessing") + }, $AudioProcessing_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_time$eq_2, TMP_Definition_input$eq_3, TMP_Definition_output$eq_4; + var $nesting = [self].concat($parent_nesting), $Definition_time$eq$2, $Definition_input$eq$3, $Definition_output$eq$4; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$time=', TMP_Definition_time$eq_2 = function(value) { + Opal.def(self, '$time=', $Definition_time$eq$2 = function(value) { var self = this; return self["native"].playbackTime = value - }, TMP_Definition_time$eq_2.$$arity = 1); + }, $Definition_time$eq$2.$$arity = 1); - Opal.defn(self, '$input=', TMP_Definition_input$eq_3 = function(value) { + Opal.def(self, '$input=', $Definition_input$eq$3 = function(value) { var self = this; return self["native"].inputBuffer = value - }, TMP_Definition_input$eq_3.$$arity = 1); - return (Opal.defn(self, '$output=', TMP_Definition_output$eq_4 = function(value) { + }, $Definition_input$eq$3.$$arity = 1); + return (Opal.def(self, '$output=', $Definition_output$eq$4 = function(value) { var self = this; return self["native"].outputBuffer = value - }, TMP_Definition_output$eq_4.$$arity = 1), nil) && 'output='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_output$eq$4.$$arity = 1), nil) && 'output='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_AudioProcessing_construct_5 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $AudioProcessing_construct$5 = function $$construct(name, desc) { var self = this; return new AudioProcessingEvent(name, desc) - }, TMP_AudioProcessing_construct_5.$$arity = 2)}}; + }, $AudioProcessing_construct$5.$$arity = 2)}}; self.$alias_native("time", "playbackTime"); self.$alias_native("input", "inputBuffer"); return self.$alias_native("output", "outputBuffer"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/before_unload"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/before_unload"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $BeforeUnload(){}; - var self = $BeforeUnload = $klass($base, $super, 'BeforeUnload', $BeforeUnload); + var self = $klass($base, $super, 'BeforeUnload'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BeforeUnload_supported$q_1, TMP_BeforeUnload_construct_2; + var $nesting = [self].concat($parent_nesting), $BeforeUnload_supported$ques$1, $BeforeUnload_construct$2; - Opal.defs(self, '$supported?', TMP_BeforeUnload_supported$q_1 = function() { + Opal.defs(self, '$supported?', $BeforeUnload_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.BeforeUnload") - }, TMP_BeforeUnload_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.BeforeUnload") + }, $BeforeUnload_supported$ques$1.$$arity = 0); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - return Opal.defs(self, '$construct', TMP_BeforeUnload_construct_2 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + return (Opal.defs(self, '$construct', $BeforeUnload_construct$2 = function $$construct(name, desc) { var self = this; return new BeforeUnloadEvent(name, desc) - }, TMP_BeforeUnload_construct_2.$$arity = 2) - } else { + }, $BeforeUnload_construct$2.$$arity = 2), nil) && 'construct' + } else { return nil } - } else { + } else { return nil }; - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/clipboard"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/clipboard"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Clipboard(){}; - var self = $Clipboard = $klass($base, $super, 'Clipboard', $Clipboard); + var self = $klass($base, $super, 'Clipboard'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Clipboard_supported$q_1, TMP_Clipboard_construct_4; + var $nesting = [self].concat($parent_nesting), $Clipboard_supported$ques$1, $Clipboard_construct$4; - Opal.defs(self, '$supported?', TMP_Clipboard_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Clipboard_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Clipboard") - }, TMP_Clipboard_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Clipboard") + }, $Clipboard_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_data$eq_2, TMP_Definition_type$eq_3; + var $nesting = [self].concat($parent_nesting), $Definition_data$eq$2, $Definition_type$eq$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$data=', TMP_Definition_data$eq_2 = function(value) { + Opal.def(self, '$data=', $Definition_data$eq$2 = function(value) { var self = this; return self["native"].data = value - }, TMP_Definition_data$eq_2.$$arity = 1); - return (Opal.defn(self, '$type=', TMP_Definition_type$eq_3 = function(value) { + }, $Definition_data$eq$2.$$arity = 1); + return (Opal.def(self, '$type=', $Definition_type$eq$3 = function(value) { var self = this; return self["native"].dataType = value - }, TMP_Definition_type$eq_3.$$arity = 1), nil) && 'type='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_type$eq$3.$$arity = 1), nil) && 'type='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Clipboard_construct_4 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Clipboard_construct$4 = function $$construct(name, desc) { var self = this; return new ClipboardEvent(name, desc) - }, TMP_Clipboard_construct_4.$$arity = 2)}}; + }, $Clipboard_construct$4.$$arity = 2)}}; self.$alias_native("data"); return self.$alias_native("type", "dataType"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/device_light"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/device_light"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $DeviceLight(){}; - var self = $DeviceLight = $klass($base, $super, 'DeviceLight', $DeviceLight); + var self = $klass($base, $super, 'DeviceLight'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DeviceLight_supported$q_1, TMP_DeviceLight_construct_3; + var $nesting = [self].concat($parent_nesting), $DeviceLight_supported$ques$1, $DeviceLight_construct$3; - Opal.defs(self, '$supported?', TMP_DeviceLight_supported$q_1 = function() { + Opal.defs(self, '$supported?', $DeviceLight_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.DeviceLight") - }, TMP_DeviceLight_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.DeviceLight") + }, $DeviceLight_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_value$eq_2; + var $nesting = [self].concat($parent_nesting), $Definition_value$eq$2; - def["native"] = nil; - return (Opal.defn(self, '$value=', TMP_Definition_value$eq_2 = function(value) { + self.$$prototype["native"] = nil; + return (Opal.def(self, '$value=', $Definition_value$eq$2 = function(value) { var self = this; return self["native"].value = value - }, TMP_Definition_value$eq_2.$$arity = 1), nil) && 'value=' - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_value$eq$2.$$arity = 1), nil) && 'value=' + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_DeviceLight_construct_3 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $DeviceLight_construct$3 = function $$construct(name, desc) { var self = this; return new DeviceLightEvent(name, desc) - }, TMP_DeviceLight_construct_3.$$arity = 2)}}; + }, $DeviceLight_construct$3.$$arity = 2)}}; return self.$alias_native("value"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/device_motion"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/device_motion"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$new', '$to_n', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $DeviceMotion(){}; - var self = $DeviceMotion = $klass($base, $super, 'DeviceMotion', $DeviceMotion); + var self = $klass($base, $super, 'DeviceMotion'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DeviceMotion_supported$q_1, TMP_DeviceMotion_construct_6, TMP_DeviceMotion_construct_7; + var $nesting = [self].concat($parent_nesting), $DeviceMotion_supported$ques$1, $DeviceMotion_construct$6, $DeviceMotion_construct$7; - Opal.defs(self, '$supported?', TMP_DeviceMotion_supported$q_1 = function() { + Opal.defs(self, '$supported?', $DeviceMotion_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.DeviceMotion") - }, TMP_DeviceMotion_supported$q_1.$$arity = 0); - Opal.const_set($nesting[0], 'Acceleration', Opal.const_get_relative($nesting, 'Struct').$new("x", "y", "z")); + return $$($nesting, 'Browser')['$supports?']("Event.DeviceMotion") + }, $DeviceMotion_supported$ques$1.$$arity = 0); + Opal.const_set($nesting[0], 'Acceleration', $$($nesting, 'Struct').$new("x", "y", "z")); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_acceleration$eq_2, TMP_Definition_acceleration_with_gravity$eq_3, TMP_Definition_rotation$eq_4, TMP_Definition_interval$eq_5; + var $nesting = [self].concat($parent_nesting), $Definition_acceleration$eq$2, $Definition_acceleration_with_gravity$eq$3, $Definition_rotation$eq$4, $Definition_interval$eq$5; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$acceleration=', TMP_Definition_acceleration$eq_2 = function(value) { + Opal.def(self, '$acceleration=', $Definition_acceleration$eq$2 = function(value) { var self = this; return self["native"].acceleration = value.$to_n() - }, TMP_Definition_acceleration$eq_2.$$arity = 1); + }, $Definition_acceleration$eq$2.$$arity = 1); - Opal.defn(self, '$acceleration_with_gravity=', TMP_Definition_acceleration_with_gravity$eq_3 = function(value) { + Opal.def(self, '$acceleration_with_gravity=', $Definition_acceleration_with_gravity$eq$3 = function(value) { var self = this; return self["native"].accelerationIncludingGravity = value.$to_n() - }, TMP_Definition_acceleration_with_gravity$eq_3.$$arity = 1); + }, $Definition_acceleration_with_gravity$eq$3.$$arity = 1); - Opal.defn(self, '$rotation=', TMP_Definition_rotation$eq_4 = function(value) { + Opal.def(self, '$rotation=', $Definition_rotation$eq$4 = function(value) { var self = this; return self["native"].rotationRate = value - }, TMP_Definition_rotation$eq_4.$$arity = 1); - return (Opal.defn(self, '$interval=', TMP_Definition_interval$eq_5 = function(value) { + }, $Definition_rotation$eq$4.$$arity = 1); + return (Opal.def(self, '$interval=', $Definition_interval$eq$5 = function(value) { var self = this; return self["native"].interval = value - }, TMP_Definition_interval$eq_5.$$arity = 1), nil) && 'interval='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_interval$eq$5.$$arity = 1), nil) && 'interval='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_DeviceMotion_construct_6 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $DeviceMotion_construct$6 = function $$construct(name, desc) { var self = this; return new DeviceMotionEvent(name, desc) - }, TMP_DeviceMotion_construct_6.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_DeviceMotion_construct_7 = function $$construct(name, desc) { + }, $DeviceMotion_construct$6.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $DeviceMotion_construct$7 = function $$construct(name, desc) { var self = this; @@ -11309,85 +12491,81 @@ Opal.modules["browser/event/device_motion"] = function(Opal) { return event; - }, TMP_DeviceMotion_construct_7.$$arity = 2)}}; + }, $DeviceMotion_construct$7.$$arity = 2)}}; self.$alias_native("acceleration"); self.$alias_native("acceleration_with_gravity", "accelerationIncludingGravity"); self.$alias_native("rotation", "rotationRate"); return self.$alias_native("interval"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/device_orientation"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/device_orientation"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $DeviceOrientation(){}; - var self = $DeviceOrientation = $klass($base, $super, 'DeviceOrientation', $DeviceOrientation); + var self = $klass($base, $super, 'DeviceOrientation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DeviceOrientation_supported$q_1, TMP_DeviceOrientation_construct_6, TMP_DeviceOrientation_construct_7; + var $nesting = [self].concat($parent_nesting), $DeviceOrientation_supported$ques$1, $DeviceOrientation_construct$6, $DeviceOrientation_construct$7; - Opal.defs(self, '$supported?', TMP_DeviceOrientation_supported$q_1 = function() { + Opal.defs(self, '$supported?', $DeviceOrientation_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.DeviceOrientation") - }, TMP_DeviceOrientation_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.DeviceOrientation") + }, $DeviceOrientation_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_absolute$eq_2, TMP_Definition_alpha$eq_3, TMP_Definition_beta$eq_4, TMP_Definition_gamma$eq_5; + var $nesting = [self].concat($parent_nesting), $Definition_absolute$eq$2, $Definition_alpha$eq$3, $Definition_beta$eq$4, $Definition_gamma$eq$5; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$absolute=', TMP_Definition_absolute$eq_2 = function(value) { + Opal.def(self, '$absolute=', $Definition_absolute$eq$2 = function(value) { var self = this; return self["native"].absolute = value - }, TMP_Definition_absolute$eq_2.$$arity = 1); + }, $Definition_absolute$eq$2.$$arity = 1); - Opal.defn(self, '$alpha=', TMP_Definition_alpha$eq_3 = function(value) { + Opal.def(self, '$alpha=', $Definition_alpha$eq$3 = function(value) { var self = this; return self["native"].alpha = value - }, TMP_Definition_alpha$eq_3.$$arity = 1); + }, $Definition_alpha$eq$3.$$arity = 1); - Opal.defn(self, '$beta=', TMP_Definition_beta$eq_4 = function(value) { + Opal.def(self, '$beta=', $Definition_beta$eq$4 = function(value) { var self = this; return self["native"].beta = value - }, TMP_Definition_beta$eq_4.$$arity = 1); - return (Opal.defn(self, '$gamma=', TMP_Definition_gamma$eq_5 = function(value) { + }, $Definition_beta$eq$4.$$arity = 1); + return (Opal.def(self, '$gamma=', $Definition_gamma$eq$5 = function(value) { var self = this; return self["native"].gamma = value - }, TMP_Definition_gamma$eq_5.$$arity = 1), nil) && 'gamma='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_gamma$eq$5.$$arity = 1), nil) && 'gamma='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_DeviceOrientation_construct_6 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $DeviceOrientation_construct$6 = function $$construct(name, desc) { var self = this; return new DeviceOrientationEvent(name, desc) - }, TMP_DeviceOrientation_construct_6.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_DeviceOrientation_construct_7 = function $$construct(name, desc) { + }, $DeviceOrientation_construct$6.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $DeviceOrientation_construct$7 = function $$construct(name, desc) { var self = this; @@ -11397,221 +12575,211 @@ Opal.modules["browser/event/device_orientation"] = function(Opal) { return event; - }, TMP_DeviceOrientation_construct_7.$$arity = 2)}}; + }, $DeviceOrientation_construct$7.$$arity = 2)}}; self.$alias_native("absolute"); self.$alias_native("alpha"); self.$alias_native("beta"); return self.$alias_native("gamma"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/device_proximity"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/device_proximity"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $DeviceProximity(){}; - var self = $DeviceProximity = $klass($base, $super, 'DeviceProximity', $DeviceProximity); + var self = $klass($base, $super, 'DeviceProximity'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DeviceProximity_supported$q_1, TMP_DeviceProximity_construct_5; + var $nesting = [self].concat($parent_nesting), $DeviceProximity_supported$ques$1, $DeviceProximity_construct$5; - Opal.defs(self, '$supported?', TMP_DeviceProximity_supported$q_1 = function() { + Opal.defs(self, '$supported?', $DeviceProximity_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.DeviceProximity") - }, TMP_DeviceProximity_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.DeviceProximity") + }, $DeviceProximity_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_value$eq_2, TMP_Definition_min$eq_3, TMP_Definition_max$eq_4; + var $nesting = [self].concat($parent_nesting), $Definition_value$eq$2, $Definition_min$eq$3, $Definition_max$eq$4; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$value=', TMP_Definition_value$eq_2 = function(value) { + Opal.def(self, '$value=', $Definition_value$eq$2 = function(value) { var self = this; return self["native"].value = value - }, TMP_Definition_value$eq_2.$$arity = 1); + }, $Definition_value$eq$2.$$arity = 1); - Opal.defn(self, '$min=', TMP_Definition_min$eq_3 = function(value) { + Opal.def(self, '$min=', $Definition_min$eq$3 = function(value) { var self = this; return self["native"].min = value - }, TMP_Definition_min$eq_3.$$arity = 1); - return (Opal.defn(self, '$max=', TMP_Definition_max$eq_4 = function(value) { + }, $Definition_min$eq$3.$$arity = 1); + return (Opal.def(self, '$max=', $Definition_max$eq$4 = function(value) { var self = this; return self["native"].max = value - }, TMP_Definition_max$eq_4.$$arity = 1), nil) && 'max='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_max$eq$4.$$arity = 1), nil) && 'max='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_DeviceProximity_construct_5 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $DeviceProximity_construct$5 = function $$construct(name, desc) { var self = this; return new DeviceProximityEvent(name, desc) - }, TMP_DeviceProximity_construct_5.$$arity = 2)}}; + }, $DeviceProximity_construct$5.$$arity = 2)}}; self.$alias_native("value"); self.$alias_native("min"); return self.$alias_native("max"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/drag"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/drag"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$include', '$new', '$convert', '$elem', '$supported?', '$alias_native', '$x', '$screen', '$y', '$DOM', '$raise']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Drag(){}; - var self = $Drag = $klass($base, $super, 'Drag', $Drag); + var self = $klass($base, $super, 'Drag'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Drag_supported$q_1, TMP_Drag_construct_14, TMP_Drag_construct_15, TMP_Drag_client_16, TMP_Drag_screen_17, TMP_Drag_x_18, TMP_Drag_y_19, TMP_Drag_related_20, TMP_Drag_transfer_21; + var $nesting = [self].concat($parent_nesting), $Drag_supported$ques$1, $Drag_construct$14, $Drag_construct$15, $Drag_client$16, $Drag_screen$17, $Drag_x$18, $Drag_y$19, $Drag_related$20, $Drag_transfer$21; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$supported?', TMP_Drag_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Drag_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Drag") - }, TMP_Drag_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Drag") + }, $Drag_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_alt$B_6, TMP_Definition_ctrl$B_7, TMP_Definition_meta$B_8, TMP_Definition_button$eq_9, TMP_Definition_client_10, TMP_Definition_screen_11, TMP_Definition_related$eq_12, TMP_Definition_transfer$eq_13; + var $nesting = [self].concat($parent_nesting), $Definition_alt$excl$6, $Definition_ctrl$excl$7, $Definition_meta$excl$8, $Definition_button$eq$9, $Definition_client$10, $Definition_screen$11, $Definition_related$eq$12, $Definition_transfer$eq$13; - def["native"] = nil; + self.$$prototype["native"] = nil; (function($base, $super, $parent_nesting) { - function $Client(){}; - var self = $Client = $klass($base, $super, 'Client', $Client); + var self = $klass($base, $super, 'Client'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Client_x$eq_2, TMP_Client_y$eq_3; + var $nesting = [self].concat($parent_nesting), $Client_x$eq$2, $Client_y$eq$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$x=', TMP_Client_x$eq_2 = function(value) { + Opal.def(self, '$x=', $Client_x$eq$2 = function(value) { var self = this; return self["native"].clientX = value - }, TMP_Client_x$eq_2.$$arity = 1); - return (Opal.defn(self, '$y=', TMP_Client_y$eq_3 = function(value) { + }, $Client_x$eq$2.$$arity = 1); + return (Opal.def(self, '$y=', $Client_y$eq$3 = function(value) { var self = this; return self["native"].clientY = value - }, TMP_Client_y$eq_3.$$arity = 1), nil) && 'y='; + }, $Client_y$eq$3.$$arity = 1), nil) && 'y='; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Screen(){}; - var self = $Screen = $klass($base, $super, 'Screen', $Screen); + var self = $klass($base, $super, 'Screen'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Screen_x$eq_4, TMP_Screen_y$eq_5; + var $nesting = [self].concat($parent_nesting), $Screen_x$eq$4, $Screen_y$eq$5; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$x=', TMP_Screen_x$eq_4 = function(value) { + Opal.def(self, '$x=', $Screen_x$eq$4 = function(value) { var self = this; return self["native"].screenX = value - }, TMP_Screen_x$eq_4.$$arity = 1); - return (Opal.defn(self, '$y=', TMP_Screen_y$eq_5 = function(value) { + }, $Screen_x$eq$4.$$arity = 1); + return (Opal.def(self, '$y=', $Screen_y$eq$5 = function(value) { var self = this; return self["native"].screenY = value - }, TMP_Screen_y$eq_5.$$arity = 1), nil) && 'y='; + }, $Screen_y$eq$5.$$arity = 1), nil) && 'y='; })($nesting[0], null, $nesting); - Opal.defn(self, '$alt!', TMP_Definition_alt$B_6 = function() { + Opal.def(self, '$alt!', $Definition_alt$excl$6 = function() { var self = this; return self["native"].altKey = true - }, TMP_Definition_alt$B_6.$$arity = 0); + }, $Definition_alt$excl$6.$$arity = 0); - Opal.defn(self, '$ctrl!', TMP_Definition_ctrl$B_7 = function() { + Opal.def(self, '$ctrl!', $Definition_ctrl$excl$7 = function() { var self = this; return self["native"].ctrlKey = true - }, TMP_Definition_ctrl$B_7.$$arity = 0); + }, $Definition_ctrl$excl$7.$$arity = 0); - Opal.defn(self, '$meta!', TMP_Definition_meta$B_8 = function() { + Opal.def(self, '$meta!', $Definition_meta$excl$8 = function() { var self = this; return self["native"].metaKey = true - }, TMP_Definition_meta$B_8.$$arity = 0); + }, $Definition_meta$excl$8.$$arity = 0); - Opal.defn(self, '$button=', TMP_Definition_button$eq_9 = function(value) { + Opal.def(self, '$button=', $Definition_button$eq$9 = function(value) { var self = this; return self["native"].button = value - }, TMP_Definition_button$eq_9.$$arity = 1); + }, $Definition_button$eq$9.$$arity = 1); - Opal.defn(self, '$client', TMP_Definition_client_10 = function $$client() { + Opal.def(self, '$client', $Definition_client$10 = function $$client() { var self = this; - return Opal.const_get_relative($nesting, 'Client').$new(self["native"]) - }, TMP_Definition_client_10.$$arity = 0); + return $$($nesting, 'Client').$new(self["native"]) + }, $Definition_client$10.$$arity = 0); - Opal.defn(self, '$screen', TMP_Definition_screen_11 = function $$screen() { + Opal.def(self, '$screen', $Definition_screen$11 = function $$screen() { var self = this; - return Opal.const_get_relative($nesting, 'Screen').$new(self["native"]) - }, TMP_Definition_screen_11.$$arity = 0); + return $$($nesting, 'Screen').$new(self["native"]) + }, $Definition_screen$11.$$arity = 0); - Opal.defn(self, '$related=', TMP_Definition_related$eq_12 = function(elem) { + Opal.def(self, '$related=', $Definition_related$eq$12 = function(elem) { var self = this; - return self["native"].relatedTarget = Opal.const_get_relative($nesting, 'Native').$convert(elem) - }, TMP_Definition_related$eq_12.$$arity = 1); - return (Opal.defn(self, '$transfer=', TMP_Definition_transfer$eq_13 = function(value) { + return self["native"].relatedTarget = $$($nesting, 'Native').$convert(elem) + }, $Definition_related$eq$12.$$arity = 1); + return (Opal.def(self, '$transfer=', $Definition_transfer$eq$13 = function(value) { var self = this; - return self["native"].dataTransfer = Opal.const_get_relative($nesting, 'Native').$convert(self.$elem()) - }, TMP_Definition_transfer$eq_13.$$arity = 1), nil) && 'transfer='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + return self["native"].dataTransfer = $$($nesting, 'Native').$convert(self.$elem()) + }, $Definition_transfer$eq$13.$$arity = 1), nil) && 'transfer='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Drag_construct_14 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Drag_construct$14 = function $$construct(name, desc) { var self = this; return new DragEvent(name, desc) - }, TMP_Drag_construct_14.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Drag_construct_15 = function $$construct(name, desc) { + }, $Drag_construct$14.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Drag_construct$15 = function $$construct(name, desc) { var self = this; @@ -11625,292 +12793,280 @@ Opal.modules["browser/event/drag"] = function(Opal) { return event; - }, TMP_Drag_construct_15.$$arity = 2)}}; + }, $Drag_construct$15.$$arity = 2)}}; self.$alias_native("alt?", "altKey"); self.$alias_native("ctrl?", "ctrlKey"); self.$alias_native("meta?", "metaKey"); self.$alias_native("shift?", "shiftKey"); self.$alias_native("button"); - Opal.defn(self, '$client', TMP_Drag_client_16 = function $$client() { + Opal.def(self, '$client', $Drag_client$16 = function $$client() { var self = this; - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].clientX, self["native"].clientY) - }, TMP_Drag_client_16.$$arity = 0); + return $$($nesting, 'Position').$new(self["native"].clientX, self["native"].clientY) + }, $Drag_client$16.$$arity = 0); - Opal.defn(self, '$screen', TMP_Drag_screen_17 = function $$screen() { + Opal.def(self, '$screen', $Drag_screen$17 = function $$screen() { var self = this; if ($truthy((typeof(self["native"].screenX) !== "undefined"))) { - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].screenX, self["native"].screenY) - } else { + return $$($nesting, 'Position').$new(self["native"].screenX, self["native"].screenY) + } else { return nil } - }, TMP_Drag_screen_17.$$arity = 0); + }, $Drag_screen$17.$$arity = 0); - Opal.defn(self, '$x', TMP_Drag_x_18 = function $$x() { + Opal.def(self, '$x', $Drag_x$18 = function $$x() { var self = this; return self.$screen().$x() - }, TMP_Drag_x_18.$$arity = 0); + }, $Drag_x$18.$$arity = 0); - Opal.defn(self, '$y', TMP_Drag_y_19 = function $$y() { + Opal.def(self, '$y', $Drag_y$19 = function $$y() { var self = this; return self.$screen().$y() - }, TMP_Drag_y_19.$$arity = 0); + }, $Drag_y$19.$$arity = 0); - Opal.defn(self, '$related', TMP_Drag_related_20 = function $$related() { + Opal.def(self, '$related', $Drag_related$20 = function $$related() { var self = this; return self.$DOM(self["native"].relatedTarget) - }, TMP_Drag_related_20.$$arity = 0); - return (Opal.defn(self, '$transfer', TMP_Drag_transfer_21 = function $$transfer() { + }, $Drag_related$20.$$arity = 0); + return (Opal.def(self, '$transfer', $Drag_transfer$21 = function $$transfer() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Drag_transfer_21.$$arity = 0), nil) && 'transfer'; - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + return self.$raise($$($nesting, 'NotImplementedError')) + }, $Drag_transfer$21.$$arity = 0), nil) && 'transfer'; + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/gamepad"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/gamepad"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Gamepad(){}; - var self = $Gamepad = $klass($base, $super, 'Gamepad', $Gamepad); + var self = $klass($base, $super, 'Gamepad'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Gamepad_supported$q_1, TMP_Gamepad_construct_7, TMP_Gamepad_id_8, TMP_Gamepad_index_9, TMP_Gamepad_at_10, TMP_Gamepad_axes_11, TMP_Gamepad_buttons_12; + var $nesting = [self].concat($parent_nesting), $Gamepad_supported$ques$1, $Gamepad_construct$7, $Gamepad_id$8, $Gamepad_index$9, $Gamepad_at$10, $Gamepad_axes$11, $Gamepad_buttons$12; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$supported?', TMP_Gamepad_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Gamepad_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Gamepad") - }, TMP_Gamepad_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Gamepad") + }, $Gamepad_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_id$eq_2, TMP_Definition_index$eq_3, TMP_Definition_at$eq_4, TMP_Definition_axes$eq_5, TMP_Definition_buttons$eq_6; + var $nesting = [self].concat($parent_nesting), $Definition_id$eq$2, $Definition_index$eq$3, $Definition_at$eq$4, $Definition_axes$eq$5, $Definition_buttons$eq$6; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$id=', TMP_Definition_id$eq_2 = function(value) { + Opal.def(self, '$id=', $Definition_id$eq$2 = function(value) { var self = this; return self["native"].id = value - }, TMP_Definition_id$eq_2.$$arity = 1); + }, $Definition_id$eq$2.$$arity = 1); - Opal.defn(self, '$index=', TMP_Definition_index$eq_3 = function(value) { + Opal.def(self, '$index=', $Definition_index$eq$3 = function(value) { var self = this; return self["native"].index = value - }, TMP_Definition_index$eq_3.$$arity = 1); + }, $Definition_index$eq$3.$$arity = 1); - Opal.defn(self, '$at=', TMP_Definition_at$eq_4 = function(value) { + Opal.def(self, '$at=', $Definition_at$eq$4 = function(value) { var self = this; return self["native"].timestamp = value - }, TMP_Definition_at$eq_4.$$arity = 1); + }, $Definition_at$eq$4.$$arity = 1); - Opal.defn(self, '$axes=', TMP_Definition_axes$eq_5 = function(value) { + Opal.def(self, '$axes=', $Definition_axes$eq$5 = function(value) { var self = this; return self["native"].axes = value - }, TMP_Definition_axes$eq_5.$$arity = 1); - return (Opal.defn(self, '$buttons=', TMP_Definition_buttons$eq_6 = function(value) { + }, $Definition_axes$eq$5.$$arity = 1); + return (Opal.def(self, '$buttons=', $Definition_buttons$eq$6 = function(value) { var self = this; return self["native"].buttons = value - }, TMP_Definition_buttons$eq_6.$$arity = 1), nil) && 'buttons='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_buttons$eq$6.$$arity = 1), nil) && 'buttons='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Gamepad_construct_7 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Gamepad_construct$7 = function $$construct(name, desc) { var self = this; - return new GamepadEvent(name, { + new GamepadEvent(name, { bubbles: desc.bubbles, cancelable: desc.cancelable, gamepad: desc }) - }, TMP_Gamepad_construct_7.$$arity = 2)}}; + }, $Gamepad_construct$7.$$arity = 2)}}; - Opal.defn(self, '$id', TMP_Gamepad_id_8 = function $$id() { + Opal.def(self, '$id', $Gamepad_id$8 = function $$id() { var self = this; return self["native"].gamepad.id - }, TMP_Gamepad_id_8.$$arity = 0); + }, $Gamepad_id$8.$$arity = 0); - Opal.defn(self, '$index', TMP_Gamepad_index_9 = function $$index() { + Opal.def(self, '$index', $Gamepad_index$9 = function $$index() { var self = this; return self["native"].gamepad.index - }, TMP_Gamepad_index_9.$$arity = 0); + }, $Gamepad_index$9.$$arity = 0); - Opal.defn(self, '$at', TMP_Gamepad_at_10 = function $$at() { + Opal.def(self, '$at', $Gamepad_at$10 = function $$at() { var self = this; return self["native"].gamepad.timestamp - }, TMP_Gamepad_at_10.$$arity = 0); + }, $Gamepad_at$10.$$arity = 0); - Opal.defn(self, '$axes', TMP_Gamepad_axes_11 = function $$axes() { + Opal.def(self, '$axes', $Gamepad_axes$11 = function $$axes() { var self = this; return self["native"].gamepad.axes - }, TMP_Gamepad_axes_11.$$arity = 0); - return (Opal.defn(self, '$buttons', TMP_Gamepad_buttons_12 = function $$buttons() { + }, $Gamepad_axes$11.$$arity = 0); + return (Opal.def(self, '$buttons', $Gamepad_buttons$12 = function $$buttons() { var self = this; return self["native"].gamepad.buttons - }, TMP_Gamepad_buttons_12.$$arity = 0), nil) && 'buttons'; - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + }, $Gamepad_buttons$12.$$arity = 0), nil) && 'buttons'; + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/hash_change"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/hash_change"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $HashChange(){}; - var self = $HashChange = $klass($base, $super, 'HashChange', $HashChange); + var self = $klass($base, $super, 'HashChange'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_HashChange_supported$q_1, TMP_HashChange_construct_4; + var $nesting = [self].concat($parent_nesting), $HashChange_supported$ques$1, $HashChange_construct$4; - Opal.defs(self, '$supported?', TMP_HashChange_supported$q_1 = function() { + Opal.defs(self, '$supported?', $HashChange_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.HashChange") - }, TMP_HashChange_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.HashChange") + }, $HashChange_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_old$eq_2, TMP_Definition_new$eq_3; + var $nesting = [self].concat($parent_nesting), $Definition_old$eq$2, $Definition_new$eq$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$old=', TMP_Definition_old$eq_2 = function(value) { + Opal.def(self, '$old=', $Definition_old$eq$2 = function(value) { var self = this; return self["native"].oldURL = value - }, TMP_Definition_old$eq_2.$$arity = 1); - return (Opal.defn(self, '$new=', TMP_Definition_new$eq_3 = function(value) { + }, $Definition_old$eq$2.$$arity = 1); + return (Opal.def(self, '$new=', $Definition_new$eq$3 = function(value) { var self = this; return self["native"].newURL = value - }, TMP_Definition_new$eq_3.$$arity = 1), nil) && 'new='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_new$eq$3.$$arity = 1), nil) && 'new='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_HashChange_construct_4 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $HashChange_construct$4 = function $$construct(name, desc) { var self = this; return new HashChangeEvent(name, desc) - }, TMP_HashChange_construct_4.$$arity = 2)}}; + }, $HashChange_construct$4.$$arity = 2)}}; self.$alias_native("old", "oldURL"); return self.$alias_native("new", "newURL"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/progress"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/progress"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Progress(){}; - var self = $Progress = $klass($base, $super, 'Progress', $Progress); + var self = $klass($base, $super, 'Progress'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Progress_supported$q_1, TMP_Progress_construct_5, TMP_Progress_construct_6; + var $nesting = [self].concat($parent_nesting), $Progress_supported$ques$1, $Progress_construct$5, $Progress_construct$6; - Opal.defs(self, '$supported?', TMP_Progress_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Progress_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Progress") - }, TMP_Progress_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Progress") + }, $Progress_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_computable$eq_2, TMP_Definition_loaded$eq_3, TMP_Definition_total$eq_4; + var $nesting = [self].concat($parent_nesting), $Definition_computable$eq$2, $Definition_loaded$eq$3, $Definition_total$eq$4; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$computable=', TMP_Definition_computable$eq_2 = function(value) { + Opal.def(self, '$computable=', $Definition_computable$eq$2 = function(value) { var self = this; return self["native"].computableLength = value - }, TMP_Definition_computable$eq_2.$$arity = 1); + }, $Definition_computable$eq$2.$$arity = 1); - Opal.defn(self, '$loaded=', TMP_Definition_loaded$eq_3 = function(value) { + Opal.def(self, '$loaded=', $Definition_loaded$eq$3 = function(value) { var self = this; return self["native"].loaded = value - }, TMP_Definition_loaded$eq_3.$$arity = 1); - return (Opal.defn(self, '$total=', TMP_Definition_total$eq_4 = function(value) { + }, $Definition_loaded$eq$3.$$arity = 1); + return (Opal.def(self, '$total=', $Definition_total$eq$4 = function(value) { var self = this; return self["native"].total = value - }, TMP_Definition_total$eq_4.$$arity = 1), nil) && 'total='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_total$eq$4.$$arity = 1), nil) && 'total='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Progress_construct_5 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Progress_construct$5 = function $$construct(name, desc) { var self = this; return new ProgressEvent(name, desc) - }, TMP_Progress_construct_5.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Progress_construct_6 = function $$construct(name, desc) { + }, $Progress_construct$5.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Progress_construct$6 = function $$construct(name, desc) { var self = this; @@ -11920,119 +13076,111 @@ Opal.modules["browser/event/progress"] = function(Opal) { return event; - }, TMP_Progress_construct_6.$$arity = 2)}}; + }, $Progress_construct$6.$$arity = 2)}}; self.$alias_native("computable?", "computableLength"); self.$alias_native("loaded"); return self.$alias_native("total"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/page_transition"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/page_transition"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $PageTransition(){}; - var self = $PageTransition = $klass($base, $super, 'PageTransition', $PageTransition); + var self = $klass($base, $super, 'PageTransition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_PageTransition_supported$q_1, TMP_PageTransition_construct_3; + var $nesting = [self].concat($parent_nesting), $PageTransition_supported$ques$1, $PageTransition_construct$3; - Opal.defs(self, '$supported?', TMP_PageTransition_supported$q_1 = function() { + Opal.defs(self, '$supported?', $PageTransition_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.PageTransition") - }, TMP_PageTransition_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.PageTransition") + }, $PageTransition_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_persisted$eq_2; + var $nesting = [self].concat($parent_nesting), $Definition_persisted$eq$2; - def["native"] = nil; - return (Opal.defn(self, '$persisted=', TMP_Definition_persisted$eq_2 = function(value) { + self.$$prototype["native"] = nil; + return (Opal.def(self, '$persisted=', $Definition_persisted$eq$2 = function(value) { var self = this; return self["native"].persisted = value - }, TMP_Definition_persisted$eq_2.$$arity = 1), nil) && 'persisted=' - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_persisted$eq$2.$$arity = 1), nil) && 'persisted=' + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.PageTransition"))) { - Opal.defs(self, '$construct', TMP_PageTransition_construct_3 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.PageTransition"))) { + Opal.defs(self, '$construct', $PageTransition_construct$3 = function $$construct(name, desc) { var self = this; - return new PageTransitionEvent(name, desc) - }, TMP_PageTransition_construct_3.$$arity = 2)}}; + return new PageTransitionEvent(name, desc); + }, $PageTransition_construct$3.$$arity = 2)}}; return self.$alias_native("persisted?", "persisted"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/pop_state"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/pop_state"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $PopState(){}; - var self = $PopState = $klass($base, $super, 'PopState', $PopState); + var self = $klass($base, $super, 'PopState'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_PopState_supported$q_1, TMP_PopState_construct_3, TMP_PopState_construct_4; + var $nesting = [self].concat($parent_nesting), $PopState_supported$ques$1, $PopState_construct$3, $PopState_construct$4; - Opal.defs(self, '$supported?', TMP_PopState_supported$q_1 = function() { + Opal.defs(self, '$supported?', $PopState_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.PopState") - }, TMP_PopState_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.PopState") + }, $PopState_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_state$eq_2; + var $nesting = [self].concat($parent_nesting), $Definition_state$eq$2; - def["native"] = nil; - return (Opal.defn(self, '$state=', TMP_Definition_state$eq_2 = function(value) { + self.$$prototype["native"] = nil; + return (Opal.def(self, '$state=', $Definition_state$eq$2 = function(value) { var self = this; return self["native"].state = value - }, TMP_Definition_state$eq_2.$$arity = 1), nil) && 'state=' - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_state$eq$2.$$arity = 1), nil) && 'state=' + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_PopState_construct_3 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $PopState_construct$3 = function $$construct(name, desc) { var self = this; return new PopStateEvent(name, desc) - }, TMP_PopState_construct_3.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_PopState_construct_4 = function $$construct(name, desc) { + }, $PopState_construct$3.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $PopState_construct$4 = function $$construct(name, desc) { var self = this; @@ -12042,249 +13190,237 @@ Opal.modules["browser/event/pop_state"] = function(Opal) { return event; - }, TMP_PopState_construct_4.$$arity = 2)}}; + }, $PopState_construct$4.$$arity = 2)}}; return self.$alias_native("state"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/storage"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/storage"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Storage(){}; - var self = $Storage = $klass($base, $super, 'Storage', $Storage); + var self = $klass($base, $super, 'Storage'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Storage_supported$q_1, TMP_Storage_construct_7; + var $nesting = [self].concat($parent_nesting), $Storage_supported$ques$1, $Storage_construct$7; - Opal.defs(self, '$supported?', TMP_Storage_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Storage_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Storage") - }, TMP_Storage_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Storage") + }, $Storage_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_key$eq_2, TMP_Definition_new$eq_3, TMP_Definition_old$eq_4, TMP_Definition_area$eq_5, TMP_Definition_url$eq_6; + var $nesting = [self].concat($parent_nesting), $Definition_key$eq$2, $Definition_new$eq$3, $Definition_old$eq$4, $Definition_area$eq$5, $Definition_url$eq$6; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$key=', TMP_Definition_key$eq_2 = function(value) { + Opal.def(self, '$key=', $Definition_key$eq$2 = function(value) { var self = this; return self["native"].key = value - }, TMP_Definition_key$eq_2.$$arity = 1); + }, $Definition_key$eq$2.$$arity = 1); - Opal.defn(self, '$new=', TMP_Definition_new$eq_3 = function(value) { + Opal.def(self, '$new=', $Definition_new$eq$3 = function(value) { var self = this; return self["native"].newValue = value - }, TMP_Definition_new$eq_3.$$arity = 1); + }, $Definition_new$eq$3.$$arity = 1); - Opal.defn(self, '$old=', TMP_Definition_old$eq_4 = function(value) { + Opal.def(self, '$old=', $Definition_old$eq$4 = function(value) { var self = this; return self["native"].oldValue = value - }, TMP_Definition_old$eq_4.$$arity = 1); + }, $Definition_old$eq$4.$$arity = 1); - Opal.defn(self, '$area=', TMP_Definition_area$eq_5 = function(value) { + Opal.def(self, '$area=', $Definition_area$eq$5 = function(value) { var self = this; return self["native"].storageArea = value - }, TMP_Definition_area$eq_5.$$arity = 1); - return (Opal.defn(self, '$url=', TMP_Definition_url$eq_6 = function(value) { + }, $Definition_area$eq$5.$$arity = 1); + return (Opal.def(self, '$url=', $Definition_url$eq$6 = function(value) { var self = this; return self["native"].url = value - }, TMP_Definition_url$eq_6.$$arity = 1), nil) && 'url='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_url$eq$6.$$arity = 1), nil) && 'url='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Storage_construct_7 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Storage_construct$7 = function $$construct(name, desc) { var self = this; return new StorageEvent(name, desc) - }, TMP_Storage_construct_7.$$arity = 2)}}; + }, $Storage_construct$7.$$arity = 2)}}; self.$alias_native("key"); self.$alias_native("new", "newValue"); self.$alias_native("old", "oldValue"); self.$alias_native("area", "storageArea"); return self.$alias_native("url"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/touch"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/touch"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native', '$==', '$downcase', '$name']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Touch(){}; - var self = $Touch = $klass($base, $super, 'Touch', $Touch); + var self = $klass($base, $super, 'Touch'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Touch_supported$q_1, TMP_Touch_construct_6, TMP_Touch_cancel$q_7, TMP_Touch_end$q_8, TMP_Touch_leave$q_9, TMP_Touch_move$q_10, TMP_Touch_start$q_11; + var $nesting = [self].concat($parent_nesting), $Touch_supported$ques$1, $Touch_construct$6, $Touch_cancel$ques$7, $Touch_end$ques$8, $Touch_leave$ques$9, $Touch_move$ques$10, $Touch_start$ques$11; - Opal.defs(self, '$supported?', TMP_Touch_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Touch_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Touch") - }, TMP_Touch_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Touch") + }, $Touch_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_alt$B_2, TMP_Definition_ctrl$B_3, TMP_Definition_meta$B_4, TMP_Definition_shift$B_5; + var $nesting = [self].concat($parent_nesting), $Definition_alt$excl$2, $Definition_ctrl$excl$3, $Definition_meta$excl$4, $Definition_shift$excl$5; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$alt!', TMP_Definition_alt$B_2 = function() { + Opal.def(self, '$alt!', $Definition_alt$excl$2 = function() { var self = this; return self["native"].altKey = true - }, TMP_Definition_alt$B_2.$$arity = 0); + }, $Definition_alt$excl$2.$$arity = 0); - Opal.defn(self, '$ctrl!', TMP_Definition_ctrl$B_3 = function() { + Opal.def(self, '$ctrl!', $Definition_ctrl$excl$3 = function() { var self = this; return self["native"].ctrlKey = true - }, TMP_Definition_ctrl$B_3.$$arity = 0); + }, $Definition_ctrl$excl$3.$$arity = 0); - Opal.defn(self, '$meta!', TMP_Definition_meta$B_4 = function() { + Opal.def(self, '$meta!', $Definition_meta$excl$4 = function() { var self = this; return self["native"].metaKey = true - }, TMP_Definition_meta$B_4.$$arity = 0); - return (Opal.defn(self, '$shift!', TMP_Definition_shift$B_5 = function() { + }, $Definition_meta$excl$4.$$arity = 0); + return (Opal.def(self, '$shift!', $Definition_shift$excl$5 = function() { var self = this; return self["native"].shiftKey = true - }, TMP_Definition_shift$B_5.$$arity = 0), nil) && 'shift!'; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_shift$excl$5.$$arity = 0), nil) && 'shift!'; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Touch_construct_6 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Touch_construct$6 = function $$construct(name, desc) { var self = this; return new TouchEvent(name, desc) - }, TMP_Touch_construct_6.$$arity = 2)}}; + }, $Touch_construct$6.$$arity = 2)}}; self.$alias_native("alt?", "altKey"); self.$alias_native("ctrl?", "ctrlKey"); self.$alias_native("meta?", "metaKey"); self.$alias_native("shift?", "shiftKey"); - Opal.defn(self, '$cancel?', TMP_Touch_cancel$q_7 = function() { + Opal.def(self, '$cancel?', $Touch_cancel$ques$7 = function() { var self = this; return self.$name().$downcase()['$==']("touchcancel") - }, TMP_Touch_cancel$q_7.$$arity = 0); + }, $Touch_cancel$ques$7.$$arity = 0); - Opal.defn(self, '$end?', TMP_Touch_end$q_8 = function() { + Opal.def(self, '$end?', $Touch_end$ques$8 = function() { var self = this; return self.$name().$downcase()['$==']("touchend") - }, TMP_Touch_end$q_8.$$arity = 0); + }, $Touch_end$ques$8.$$arity = 0); - Opal.defn(self, '$leave?', TMP_Touch_leave$q_9 = function() { + Opal.def(self, '$leave?', $Touch_leave$ques$9 = function() { var self = this; return self.$name().$downcase()['$==']("touchleave") - }, TMP_Touch_leave$q_9.$$arity = 0); + }, $Touch_leave$ques$9.$$arity = 0); - Opal.defn(self, '$move?', TMP_Touch_move$q_10 = function() { + Opal.def(self, '$move?', $Touch_move$ques$10 = function() { var self = this; return self.$name().$downcase()['$==']("touchmove") - }, TMP_Touch_move$q_10.$$arity = 0); - return (Opal.defn(self, '$start?', TMP_Touch_start$q_11 = function() { + }, $Touch_move$ques$10.$$arity = 0); + return (Opal.def(self, '$start?', $Touch_start$ques$11 = function() { var self = this; return self.$name().$downcase()['$==']("touchstart") - }, TMP_Touch_start$q_11.$$arity = 0), nil) && 'start?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + }, $Touch_start$ques$11.$$arity = 0), nil) && 'start?'; + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/sensor"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/sensor"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Sensor(){}; - var self = $Sensor = $klass($base, $super, 'Sensor', $Sensor); + var self = $klass($base, $super, 'Sensor'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Sensor_supported$q_1, TMP_Sensor_construct_2; + var $nesting = [self].concat($parent_nesting), $Sensor_supported$ques$1, $Sensor_construct$2; - Opal.defs(self, '$supported?', TMP_Sensor_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Sensor_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Sensor") - }, TMP_Sensor_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Sensor") + }, $Sensor_supported$ques$1.$$arity = 0); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - return Opal.defs(self, '$construct', TMP_Sensor_construct_2 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + return (Opal.defs(self, '$construct', $Sensor_construct$2 = function $$construct(name, desc) { var self = this; return new SensorEvent(name, desc) - }, TMP_Sensor_construct_2.$$arity = 2) - } else { + }, $Sensor_construct$2.$$arity = 2), nil) && 'construct' + } else { return nil } - } else { + } else { return nil }; - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["ostruct"] = function(Opal) { +Opal.modules["ostruct"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } @@ -12294,146 +13430,174 @@ Opal.modules["ostruct"] = function(Opal) { function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; - Opal.add_stubs(['$each_pair', '$new_ostruct_member', '$[]=', '$-', '$[]', '$to_sym', '$>', '$length', '$raise', '$new', '$end_with?', '$!=', '$enum_for', '$is_a?', '$==', '$instance_variable_get', '$===', '$eql?', '$dup', '$to_n', '$hash', '$attr_reader', '$__send__', '$singleton_class', '$delete', '$respond_to?', '$define_singleton_method', '$__id__', '$class', '$any?', '$+', '$join', '$map', '$inspect']); + Opal.add_stubs(['$each_pair', '$new_ostruct_member', '$[]=', '$-', '$[]', '$to_sym', '$>', '$length', '$raise', '$new', '$end_with?', '$!=', '$chomp', '$to_s', '$key?', '$enum_for', '$is_a?', '$==', '$instance_variable_get', '$===', '$eql?', '$dup', '$to_n', '$hash', '$attr_reader', '$__send__', '$singleton_class', '$delete', '$respond_to?', '$define_singleton_method', '$__id__', '$class', '$any?', '$+', '$join', '$map', '$inspect']); return (function($base, $super, $parent_nesting) { - function $OpenStruct(){}; - var self = $OpenStruct = $klass($base, $super, 'OpenStruct', $OpenStruct); + var self = $klass($base, $super, 'OpenStruct'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_OpenStruct_initialize_2, TMP_OpenStruct_$$_3, TMP_OpenStruct_$$$eq_4, TMP_OpenStruct_method_missing_5, TMP_OpenStruct_each_pair_6, TMP_OpenStruct_$eq$eq_8, TMP_OpenStruct_$eq$eq$eq_9, TMP_OpenStruct_eql$q_10, TMP_OpenStruct_to_h_11, TMP_OpenStruct_to_n_12, TMP_OpenStruct_hash_13, TMP_OpenStruct_delete_field_14, TMP_OpenStruct_new_ostruct_member_17, TMP_OpenStruct_inspect_19; + var $nesting = [self].concat($parent_nesting), $OpenStruct_initialize$1, $OpenStruct_$$$3, $OpenStruct_$$$eq$4, $OpenStruct_method_missing$5, $OpenStruct_respond_to_missing$ques$6, $OpenStruct_each_pair$7, $OpenStruct_$eq_eq$9, $OpenStruct_$eq_eq_eq$10, $OpenStruct_eql$ques$11, $OpenStruct_to_h$12, $OpenStruct_to_n$13, $OpenStruct_hash$14, $OpenStruct_delete_field$15, $OpenStruct_new_ostruct_member$16, $OpenStruct_inspect$19; - def.table = nil; + self.$$prototype.table = nil; - Opal.defn(self, '$initialize', TMP_OpenStruct_initialize_2 = function $$initialize(hash) { - var TMP_1, self = this; + Opal.def(self, '$initialize', $OpenStruct_initialize$1 = function $$initialize(hash) { + var $$2, self = this; + + if (hash == null) { hash = nil; - } - + }; self.table = $hash2([], {}); if ($truthy(hash)) { - return $send(hash, 'each_pair', [], (TMP_1 = function(key, value){var self = TMP_1.$$s || this, $writer = nil; + return $send(hash, 'each_pair', [], ($$2 = function(key, value){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; if (self.table == null) self.table = nil; -if (key == null) key = nil;if (value == null) value = nil; - + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; $writer = [self.$new_ostruct_member(key), value]; $send(self.table, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_1.$$s = self, TMP_1.$$arity = 2, TMP_1)) - } else { + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 2, $$2)) + } else { return nil }; - }, TMP_OpenStruct_initialize_2.$$arity = -1); + }, $OpenStruct_initialize$1.$$arity = -1); - Opal.defn(self, '$[]', TMP_OpenStruct_$$_3 = function(name) { + Opal.def(self, '$[]', $OpenStruct_$$$3 = function(name) { var self = this; return self.table['$[]'](name.$to_sym()) - }, TMP_OpenStruct_$$_3.$$arity = 1); + }, $OpenStruct_$$$3.$$arity = 1); - Opal.defn(self, '$[]=', TMP_OpenStruct_$$$eq_4 = function(name, value) { + Opal.def(self, '$[]=', $OpenStruct_$$$eq$4 = function(name, value) { var self = this, $writer = nil; $writer = [self.$new_ostruct_member(name), value]; $send(self.table, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_OpenStruct_$$$eq_4.$$arity = 2); + }, $OpenStruct_$$$eq$4.$$arity = 2); - Opal.defn(self, '$method_missing', TMP_OpenStruct_method_missing_5 = function $$method_missing(name, $a_rest) { - var self = this, args, $writer = nil; + Opal.def(self, '$method_missing', $OpenStruct_method_missing$5 = function $$method_missing(name, $a) { + var $post_args, args, self = this, $writer = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy($rb_gt(args.$length(), 2))) { - self.$raise(Opal.const_get_relative($nesting, 'NoMethodError').$new("" + "undefined method `" + (name) + "' for #", name))}; + self.$raise($$($nesting, 'NoMethodError').$new("" + "undefined method `" + (name) + "' for #", name))}; if ($truthy(name['$end_with?']("="))) { if ($truthy(args.$length()['$!='](1))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError').$new("wrong number of arguments (0 for 1)"))}; + self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1)")}; $writer = [self.$new_ostruct_member(name['$[]']($range(0, -2, false))), args['$[]'](0)]; $send(self.table, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - } else { + } else { return self.table['$[]'](name.$to_sym()) }; - }, TMP_OpenStruct_method_missing_5.$$arity = -2); + }, $OpenStruct_method_missing$5.$$arity = -2); - Opal.defn(self, '$each_pair', TMP_OpenStruct_each_pair_6 = function $$each_pair() { - var TMP_7, self = this, $iter = TMP_OpenStruct_each_pair_6.$$p, $yield = $iter || nil; + Opal.def(self, '$respond_to_missing?', $OpenStruct_respond_to_missing$ques$6 = function(mid, include_private) { + var $a, $iter = $OpenStruct_respond_to_missing$ques$6.$$p, $yield = $iter || nil, self = this, mname = nil, $ret_or_1 = nil; - if ($iter) TMP_OpenStruct_each_pair_6.$$p = null; + if ($iter) $OpenStruct_respond_to_missing$ques$6.$$p = null; + + + if (include_private == null) { + include_private = false; + }; + mname = mid.$to_s().$chomp("=").$to_sym(); + if ($truthy(($ret_or_1 = ($a = self.table, ($a === nil || $a == null) ? nil : $send($a, 'key?', [mname]))))) { + return $ret_or_1 + } else { + return $send2(self, $find_super(self, 'respond_to_missing?', $OpenStruct_respond_to_missing$ques$6, false, true), 'respond_to_missing?', [mid, include_private], $iter) + }; + }, $OpenStruct_respond_to_missing$ques$6.$$arity = -2); + + Opal.def(self, '$each_pair', $OpenStruct_each_pair$7 = function $$each_pair() { + var $$8, $iter = $OpenStruct_each_pair$7.$$p, $yield = $iter || nil, self = this; + + if ($iter) $OpenStruct_each_pair$7.$$p = null; if (($yield !== nil)) { - } else { + } else { return self.$enum_for("each_pair") }; - return $send(self.table, 'each_pair', [], (TMP_7 = function(pair){var self = TMP_7.$$s || this; -if (pair == null) pair = nil; - return Opal.yield1($yield, pair);}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); - }, TMP_OpenStruct_each_pair_6.$$arity = 0); + return $send(self.table, 'each_pair', [], ($$8 = function(pair){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (pair == null) { + pair = nil; + }; + return Opal.yield1($yield, pair);;}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + }, $OpenStruct_each_pair$7.$$arity = 0); - Opal.defn(self, '$==', TMP_OpenStruct_$eq$eq_8 = function(other) { + Opal.def(self, '$==', $OpenStruct_$eq_eq$9 = function(other) { var self = this; - if ($truthy(other['$is_a?'](Opal.const_get_relative($nesting, 'OpenStruct')))) { - } else { + if ($truthy(other['$is_a?']($$($nesting, 'OpenStruct')))) { + } else { return false }; return self.table['$=='](other.$instance_variable_get("@table")); - }, TMP_OpenStruct_$eq$eq_8.$$arity = 1); + }, $OpenStruct_$eq_eq$9.$$arity = 1); - Opal.defn(self, '$===', TMP_OpenStruct_$eq$eq$eq_9 = function(other) { + Opal.def(self, '$===', $OpenStruct_$eq_eq_eq$10 = function(other) { var self = this; - if ($truthy(other['$is_a?'](Opal.const_get_relative($nesting, 'OpenStruct')))) { - } else { + if ($truthy(other['$is_a?']($$($nesting, 'OpenStruct')))) { + } else { return false }; return self.table['$==='](other.$instance_variable_get("@table")); - }, TMP_OpenStruct_$eq$eq$eq_9.$$arity = 1); + }, $OpenStruct_$eq_eq_eq$10.$$arity = 1); - Opal.defn(self, '$eql?', TMP_OpenStruct_eql$q_10 = function(other) { + Opal.def(self, '$eql?', $OpenStruct_eql$ques$11 = function(other) { var self = this; - if ($truthy(other['$is_a?'](Opal.const_get_relative($nesting, 'OpenStruct')))) { - } else { + if ($truthy(other['$is_a?']($$($nesting, 'OpenStruct')))) { + } else { return false }; return self.table['$eql?'](other.$instance_variable_get("@table")); - }, TMP_OpenStruct_eql$q_10.$$arity = 1); + }, $OpenStruct_eql$ques$11.$$arity = 1); - Opal.defn(self, '$to_h', TMP_OpenStruct_to_h_11 = function $$to_h() { + Opal.def(self, '$to_h', $OpenStruct_to_h$12 = function $$to_h() { var self = this; return self.table.$dup() - }, TMP_OpenStruct_to_h_11.$$arity = 0); + }, $OpenStruct_to_h$12.$$arity = 0); - Opal.defn(self, '$to_n', TMP_OpenStruct_to_n_12 = function $$to_n() { + Opal.def(self, '$to_n', $OpenStruct_to_n$13 = function $$to_n() { var self = this; return self.table.$to_n() - }, TMP_OpenStruct_to_n_12.$$arity = 0); + }, $OpenStruct_to_n$13.$$arity = 0); - Opal.defn(self, '$hash', TMP_OpenStruct_hash_13 = function $$hash() { + Opal.def(self, '$hash', $OpenStruct_hash$14 = function $$hash() { var self = this; return self.table.$hash() - }, TMP_OpenStruct_hash_13.$$arity = 0); + }, $OpenStruct_hash$14.$$arity = 0); self.$attr_reader("table"); - Opal.defn(self, '$delete_field', TMP_OpenStruct_delete_field_14 = function $$delete_field(name) { + Opal.def(self, '$delete_field', $OpenStruct_delete_field$15 = function $$delete_field(name) { var self = this, sym = nil; @@ -12442,41 +13606,45 @@ if (pair == null) pair = nil; try { self.$singleton_class().$__send__("remove_method", sym, "" + (sym) + "=") } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$($nesting, 'NameError')])) { try { nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } };; return self.table.$delete(sym); - }, TMP_OpenStruct_delete_field_14.$$arity = 1); + }, $OpenStruct_delete_field$15.$$arity = 1); - Opal.defn(self, '$new_ostruct_member', TMP_OpenStruct_new_ostruct_member_17 = function $$new_ostruct_member(name) { - var TMP_15, TMP_16, self = this; + Opal.def(self, '$new_ostruct_member', $OpenStruct_new_ostruct_member$16 = function $$new_ostruct_member(name) { + var $$17, $$18, self = this; name = name.$to_sym(); if ($truthy(self['$respond_to?'](name))) { - } else { + } else { - $send(self, 'define_singleton_method', [name], (TMP_15 = function(){var self = TMP_15.$$s || this; + $send(self, 'define_singleton_method', [name], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; if (self.table == null) self.table = nil; - return self.table['$[]'](name)}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)); - $send(self, 'define_singleton_method', ["" + (name) + "="], (TMP_16 = function(x){var self = TMP_16.$$s || this, $writer = nil; + return self.table['$[]'](name)}, $$17.$$s = self, $$17.$$arity = 0, $$17)); + $send(self, 'define_singleton_method', ["" + (name) + "="], ($$18 = function(x){var self = $$18.$$s == null ? this : $$18.$$s, $writer = nil; if (self.table == null) self.table = nil; -if (x == null) x = nil; - + + + + if (x == null) { + x = nil; + }; $writer = [name, x]; $send(self.table, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)); + return $writer[$rb_minus($writer["length"], 1)];}, $$18.$$s = self, $$18.$$arity = 1, $$18)); }; return name; - }, TMP_OpenStruct_new_ostruct_member_17.$$arity = 1); + }, $OpenStruct_new_ostruct_member$16.$$arity = 1); var ostruct_ids;; - Opal.defn(self, '$inspect', TMP_OpenStruct_inspect_19 = function $$inspect() { - var TMP_18, self = this, result = nil; + Opal.def(self, '$inspect', $OpenStruct_inspect$19 = function $$inspect() { + var $$20, self = this, result = nil; @@ -12498,9 +13666,18 @@ if (x == null) x = nil; ; if ($truthy(self.table['$any?']())) { result = $rb_plus(result, " ")}; - result = $rb_plus(result, $send(self.$each_pair(), 'map', [], (TMP_18 = function(name, value){var self = TMP_18.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return "" + (name) + "=" + (value.$inspect())}, TMP_18.$$s = self, TMP_18.$$arity = 2, TMP_18)).$join(", ")); + result = $rb_plus(result, $send(self.$each_pair(), 'map', [], ($$20 = function(name, value){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return "" + (name) + "=" + (value.$inspect());}, $$20.$$s = self, $$20.$$arity = 2, $$20)).$join(", ")); result = $rb_plus(result, ">"); return result; } finally { @@ -12510,70 +13687,66 @@ if (name == null) name = nil;if (value == null) value = nil; } }; })();; - }, TMP_OpenStruct_inspect_19.$$arity = 0); - return Opal.alias(self, "to_s", "inspect"); + }, $OpenStruct_inspect$19.$$arity = 0); + return $alias(self, "to_s", "inspect"); })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/custom"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send; +Opal.modules["browser/event/custom"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super; Opal.add_stubs(['$require', '$supports?', '$end_with?', '$[]', '$to_n', '$merge!', '$Native', '$new', '$has_key?']); self.$require("ostruct"); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Custom(){}; - var self = $Custom = $klass($base, $super, 'Custom', $Custom); + var self = $klass($base, $super, 'Custom'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Custom_supported$q_1, TMP_Custom_construct_3, TMP_Custom_construct_4, TMP_Custom_construct_5, TMP_Custom_construct_6, TMP_Custom_initialize_7, TMP_Custom_method_missing_8; + var $nesting = [self].concat($parent_nesting), $Custom_supported$ques$1, $Custom_construct$3, $Custom_construct$4, $Custom_construct$5, $Custom_construct$6, $Custom_initialize$7, $Custom_method_missing$8; - def.detail = nil; + self.$$prototype.detail = nil; - Opal.defs(self, '$supported?', TMP_Custom_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Custom_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Custom") - }, TMP_Custom_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Custom") + }, $Custom_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_method_missing_2; + var $nesting = [self].concat($parent_nesting), $Definition_method_missing$2; - def["native"] = nil; - return (Opal.defn(self, '$method_missing', TMP_Definition_method_missing_2 = function $$method_missing(name, value) { + self.$$prototype["native"] = nil; + return (Opal.def(self, '$method_missing', $Definition_method_missing$2 = function $$method_missing(name, value) { var self = this; if ($truthy(name['$end_with?']("="))) { return self["native"][name['$[]']($range(0, -2, false))] = value - } else { + } else { return nil } - }, TMP_Definition_method_missing_2.$$arity = 2), nil) && 'method_missing' - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Custom_construct_3 = function $$construct(name, desc) { + }, $Definition_method_missing$2.$$arity = 2), nil) && 'method_missing' + })($nesting[0], $$($nesting, 'Definition'), $nesting); + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Custom_construct$3 = function $$construct(name, desc) { var self = this; - return new CustomEvent(name, { + new CustomEvent(name, { bubbles: desc.bubbles, cancelable: desc.cancelable, detail: desc }) - }, TMP_Custom_construct_3.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Custom_construct_4 = function $$construct(name, desc) { + }, $Custom_construct$3.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Custom_construct$4 = function $$construct(name, desc) { var self = this; @@ -12582,9 +13755,9 @@ Opal.modules["browser/event/custom"] = function(Opal) { return event; - }, TMP_Custom_construct_4.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.createObject"))) { - Opal.defs(self, '$construct', TMP_Custom_construct_5 = function $$construct(name, desc) { + }, $Custom_construct$4.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.createObject"))) { + Opal.defs(self, '$construct', $Custom_construct$5 = function $$construct(name, desc) { var self = this; return self.$Native(document.createEventObject())['$merge!']({ @@ -12592,9 +13765,9 @@ Opal.modules["browser/event/custom"] = function(Opal) { bubbles: desc.bubbles, cancelable: desc.cancelable, detail: desc }).$to_n() - }, TMP_Custom_construct_5.$$arity = 2) - } else { - Opal.defs(self, '$construct', TMP_Custom_construct_6 = function $$construct(name, desc) { + }, $Custom_construct$5.$$arity = 2) + } else { + Opal.defs(self, '$construct', $Custom_construct$6 = function $$construct(name, desc) { var self = this; return self.$Native(desc)['$merge!']({ @@ -12602,538 +13775,595 @@ Opal.modules["browser/event/custom"] = function(Opal) { bubbles: desc.bubbles, cancelable: desc.cancelable, detail: desc }).$to_n() - }, TMP_Custom_construct_6.$$arity = 2) + }, $Custom_construct$6.$$arity = 2) }; - Opal.defn(self, '$initialize', TMP_Custom_initialize_7 = function $$initialize(event, callback) { - var self = this, $iter = TMP_Custom_initialize_7.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $Custom_initialize$7 = function $$initialize(event, callback) { + var $iter = $Custom_initialize$7.$$p, $yield = $iter || nil, self = this; + if ($iter) $Custom_initialize$7.$$p = null; + + if (callback == null) { callback = nil; - } - if ($iter) TMP_Custom_initialize_7.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Custom_initialize_7, false), [event, callback], null); - return (self.detail = Opal.const_get_relative($nesting, 'Hash').$new(event.detail)); - }, TMP_Custom_initialize_7.$$arity = -2); - return (Opal.defn(self, '$method_missing', TMP_Custom_method_missing_8 = function $$method_missing(id, $a_rest) { - var self = this, $iter = TMP_Custom_method_missing_8.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) TMP_Custom_method_missing_8.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + }; + $send2(self, $find_super(self, 'initialize', $Custom_initialize$7, false, true), 'initialize', [event, callback], null); + return (self.detail = $$($nesting, 'Hash').$new(event.detail)); + }, $Custom_initialize$7.$$arity = -2); + return (Opal.def(self, '$method_missing', $Custom_method_missing$8 = function $$method_missing(id, $a) { + var $post_args, $rest_arg, $iter = $Custom_method_missing$8.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Custom_method_missing$8.$$p = null; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + $rest_arg = $post_args;; if ($truthy(self.detail['$has_key?'](id))) { return self.detail['$[]'](id)}; - return $send(self, Opal.find_super_dispatcher(self, 'method_missing', TMP_Custom_method_missing_8, false), $zuper, $iter); - }, TMP_Custom_method_missing_8.$$arity = -2), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + return $send2(self, $find_super(self, 'method_missing', $Custom_method_missing$8, false, true), 'method_missing', [id].concat(Opal.to_a($rest_arg)), $iter); + }, $Custom_method_missing$8.$$arity = -2), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["buffer/array"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $gvars = Opal.gvars, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["buffer/array"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $gvars = Opal.gvars, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $alias = Opal.alias; Opal.add_stubs(['$include', '$[]', '$name_for', '$attr_reader', '$==', '$for', '$to_n', '$enum_for']); return (function($base, $super, $parent_nesting) { - function $Buffer(){}; - var self = $Buffer = $klass($base, $super, 'Buffer', $Buffer); + var self = $klass($base, $super, 'Buffer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_for_1, TMP_Array_initialize_2, TMP_Array_bits_3, TMP_Array_$$_4, TMP_Array_$$$eq_5, TMP_Array_bytesize_6, TMP_Array_each_7, TMP_Array_length_8, TMP_Array_merge$B_9; + var $nesting = [self].concat($parent_nesting), $Array_for$1, $Array_initialize$2, $Array_bits$3, $Array_$$$4, $Array_$$$eq$5, $Array_bytesize$6, $Array_each$7, $Array_length$8, $Array_merge$excl$9; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - Opal.defs(self, '$for', TMP_Array_for_1 = function(bits, type) { + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); + Opal.defs(self, '$for', $Array_for$1 = function(bits, type) { var self = this; if ($gvars.$ == null) $gvars.$ = nil; - return $gvars.$['$[]']("" + (Opal.const_get_relative($nesting, 'Buffer').$name_for(bits, type)) + "Array") - }, TMP_Array_for_1.$$arity = 2); - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); + return $gvars.$['$[]']("" + ($$($nesting, 'Buffer').$name_for(bits, type)) + "Array") + }, $Array_for$1.$$arity = 2); + self.$include($$($nesting, 'Enumerable')); self.$attr_reader("buffer", "type"); - Opal.defn(self, '$initialize', TMP_Array_initialize_2 = function $$initialize(buffer, bits, type) { - var self = this, $iter = TMP_Array_initialize_2.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $Array_initialize$2 = function $$initialize(buffer, bits, type) { + var $iter = $Array_initialize$2.$$p, $yield = $iter || nil, self = this; + if ($iter) $Array_initialize$2.$$p = null; + + if (bits == null) { bits = nil; - } + }; + if (type == null) { type = nil; - } - if ($iter) TMP_Array_initialize_2.$$p = null; - - if (Opal.const_get_relative($nesting, 'Native')['$=='](buffer)) { - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Array_initialize_2, false), [buffer], null) - } else { + }; + if ($$($nesting, 'Native')['$=='](buffer)) { + $send2(self, $find_super(self, 'initialize', $Array_initialize$2, false, true), 'initialize', [buffer], null) + } else { - var klass = Opal.const_get_relative($nesting, 'Array').$for(bits, type); + var klass = $$($nesting, 'Array').$for(bits, type); - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Array_initialize_2, false), [new klass(buffer.$to_n())], null) - + $send2(self, $find_super(self, 'initialize', $Array_initialize$2, false, true), 'initialize', [new klass(buffer.$to_n())], null) + }; self.buffer = buffer; return (self.type = type); - }, TMP_Array_initialize_2.$$arity = -2); + }, $Array_initialize$2.$$arity = -2); - Opal.defn(self, '$bits', TMP_Array_bits_3 = function $$bits() { + Opal.def(self, '$bits', $Array_bits$3 = function $$bits() { var self = this; return self["native"].BYTES_PER_ELEMENT * 8 - }, TMP_Array_bits_3.$$arity = 0); + }, $Array_bits$3.$$arity = 0); - Opal.defn(self, '$[]', TMP_Array_$$_4 = function(index, offset) { + Opal.def(self, '$[]', $Array_$$$4 = function(index, offset) { var self = this; + + if (offset == null) { offset = nil; - } + }; if ($truthy(offset)) { return self["native"].subarray(index, offset) - } else { + } else { return self["native"][index] - } - }, TMP_Array_$$_4.$$arity = -2); + }; + }, $Array_$$$4.$$arity = -2); - Opal.defn(self, '$[]=', TMP_Array_$$$eq_5 = function(index, value) { + Opal.def(self, '$[]=', $Array_$$$eq$5 = function(index, value) { var self = this; return self["native"][index] = value - }, TMP_Array_$$$eq_5.$$arity = 2); + }, $Array_$$$eq$5.$$arity = 2); - Opal.defn(self, '$bytesize', TMP_Array_bytesize_6 = function $$bytesize() { + Opal.def(self, '$bytesize', $Array_bytesize$6 = function $$bytesize() { var self = this; return self["native"].byteLength - }, TMP_Array_bytesize_6.$$arity = 0); + }, $Array_bytesize$6.$$arity = 0); - Opal.defn(self, '$each', TMP_Array_each_7 = function $$each() { - var self = this, $iter = TMP_Array_each_7.$$p, $yield = $iter || nil; + Opal.def(self, '$each', $Array_each$7 = function $$each() { + var $iter = $Array_each$7.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Array_each_7.$$p = null; + if ($iter) $Array_each$7.$$p = null; if (($yield !== nil)) { - } else { + } else { return self.$enum_for("each") }; - for (var i = 0, length = self["native"].length; i < length; i++) { - Opal.yield1($yield, self["native"][i]) - } - ; + for (var i = 0, length = self["native"].length; i < length; i++) { + Opal.yield1($yield, self["native"][i]) + } + ; return self; - }, TMP_Array_each_7.$$arity = 0); + }, $Array_each$7.$$arity = 0); - Opal.defn(self, '$length', TMP_Array_length_8 = function $$length() { + Opal.def(self, '$length', $Array_length$8 = function $$length() { var self = this; return self["native"].length - }, TMP_Array_length_8.$$arity = 0); + }, $Array_length$8.$$arity = 0); - Opal.defn(self, '$merge!', TMP_Array_merge$B_9 = function(other, offset) { + Opal.def(self, '$merge!', $Array_merge$excl$9 = function(other, offset) { var self = this; - return self["native"].set(other.$to_n(), offset) - }, TMP_Array_merge$B_9.$$arity = -2); - return Opal.alias(self, "size", "length"); + + ; + return self["native"].set(other.$to_n(), offset); + }, $Array_merge$excl$9.$$arity = -2); + return $alias(self, "size", "length"); })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["buffer/view"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $gvars = Opal.gvars, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["buffer/view"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $gvars = Opal.gvars, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; Opal.add_stubs(['$include', '$!', '$nil?', '$[]', '$attr_reader', '$native?', '$to_n', '$name_for']); return (function($base, $super, $parent_nesting) { - function $Buffer(){}; - var self = $Buffer = $klass($base, $super, 'Buffer', $Buffer); + var self = $klass($base, $super, 'Buffer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $View(){}; - var self = $View = $klass($base, $super, 'View', $View); + var self = $klass($base, $super, 'View'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_View_supported$q_1, TMP_View_initialize_2, TMP_View_length_3, TMP_View_get_4, TMP_View_set_5, TMP_View_get_int8_6, TMP_View_set_int8_7, TMP_View_get_uint8_8, TMP_View_set_uint8_9, TMP_View_get_int16_10, TMP_View_set_int16_11, TMP_View_get_uint16_12, TMP_View_set_uint16_13, TMP_View_get_int32_14, TMP_View_set_int32_15, TMP_View_get_uint32_16, TMP_View_set_uint32_17, TMP_View_get_float32_18, TMP_View_set_float32_19, TMP_View_get_float64_20, TMP_View_set_float64_21; + var $nesting = [self].concat($parent_nesting), $View_supported$ques$1, $View_initialize$2, $View_length$3, $View_get$4, $View_set$5, $View_get_int8$6, $View_set_int8$7, $View_get_uint8$8, $View_set_uint8$9, $View_get_int16$10, $View_set_int16$11, $View_get_uint16$12, $View_set_uint16$13, $View_get_int32$14, $View_set_int32$15, $View_get_uint32$16, $View_set_uint32$17, $View_get_float32$18, $View_set_float32$19, $View_get_float64$20, $View_set_float64$21; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - Opal.defs(self, '$supported?', TMP_View_supported$q_1 = function() { + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); + Opal.defs(self, '$supported?', $View_supported$ques$1 = function() { var self = this; if ($gvars.$ == null) $gvars.$ = nil; return $gvars.$['$[]']("DataView")['$nil?']()['$!']() - }, TMP_View_supported$q_1.$$arity = 0); + }, $View_supported$ques$1.$$arity = 0); self.$attr_reader("buffer", "offset"); - Opal.defn(self, '$initialize', TMP_View_initialize_2 = function $$initialize(buffer, offset, length) { - var $a, self = this, $iter = TMP_View_initialize_2.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $View_initialize$2 = function $$initialize(buffer, offset, length) { + var $iter = $View_initialize$2.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil; + if ($iter) $View_initialize$2.$$p = null; + + if (offset == null) { offset = nil; - } + }; + if (length == null) { length = nil; - } - if ($iter) TMP_View_initialize_2.$$p = null; - + }; if ($truthy(self['$native?'](buffer))) { - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_View_initialize_2, false), [buffer], null) - } else if ($truthy(($truthy($a = offset) ? length : $a))) { - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_View_initialize_2, false), [new DataView(buffer.$to_n(), offset.$to_n(), length.$to_n())], null) + $send2(self, $find_super(self, 'initialize', $View_initialize$2, false, true), 'initialize', [buffer], null) + } else if ($truthy((function() {if ($truthy(($ret_or_1 = offset))) { + return length + } else { + return $ret_or_1 + }; return nil; })())) { + $send2(self, $find_super(self, 'initialize', $View_initialize$2, false, true), 'initialize', [new DataView(buffer.$to_n(), offset.$to_n(), length.$to_n())], null) } else if ($truthy(offset)) { - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_View_initialize_2, false), [new DataView(buffer.$to_n(), offset.$to_n())], null) - } else { - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_View_initialize_2, false), [new DataView(buffer.$to_n())], null) + $send2(self, $find_super(self, 'initialize', $View_initialize$2, false, true), 'initialize', [new DataView(buffer.$to_n(), offset.$to_n())], null) + } else { + $send2(self, $find_super(self, 'initialize', $View_initialize$2, false, true), 'initialize', [new DataView(buffer.$to_n())], null) }; self.buffer = buffer; return (self.offset = offset); - }, TMP_View_initialize_2.$$arity = -2); + }, $View_initialize$2.$$arity = -2); - Opal.defn(self, '$length', TMP_View_length_3 = function $$length() { + Opal.def(self, '$length', $View_length$3 = function $$length() { var self = this; return self["native"].byteLength - }, TMP_View_length_3.$$arity = 0); - Opal.alias(self, "size", "length"); + }, $View_length$3.$$arity = 0); + $alias(self, "size", "length"); - Opal.defn(self, '$get', TMP_View_get_4 = function $$get(offset, bits, type, little) { + Opal.def(self, '$get', $View_get$4 = function $$get(offset, bits, type, little) { var self = this; + + if (bits == null) { bits = 8; - } + }; + if (type == null) { type = "unsigned"; - } + }; + if (little == null) { little = false; - } - return self["native"]["get" + Opal.const_get_relative($nesting, 'Buffer').$name_for(bits, type)](offset, little) - }, TMP_View_get_4.$$arity = -2); - Opal.alias(self, "[]", "get"); + }; + return self["native"]["get" + $$($nesting, 'Buffer').$name_for(bits, type)](offset, little); + }, $View_get$4.$$arity = -2); + $alias(self, "[]", "get"); - Opal.defn(self, '$set', TMP_View_set_5 = function $$set(offset, value, bits, type, little) { + Opal.def(self, '$set', $View_set$5 = function $$set(offset, value, bits, type, little) { var self = this; + + if (bits == null) { bits = 8; - } + }; + if (type == null) { type = "unsigned"; - } + }; + if (little == null) { little = false; - } - return self["native"]["set" + Opal.const_get_relative($nesting, 'Buffer').$name_for(bits, type)](offset, value, little) - }, TMP_View_set_5.$$arity = -3); - Opal.alias(self, "[]=", "set"); + }; + return self["native"]["set" + $$($nesting, 'Buffer').$name_for(bits, type)](offset, value, little); + }, $View_set$5.$$arity = -3); + $alias(self, "[]=", "set"); - Opal.defn(self, '$get_int8', TMP_View_get_int8_6 = function $$get_int8(offset, little) { + Opal.def(self, '$get_int8', $View_get_int8$6 = function $$get_int8(offset, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].getInt8(offset, little) - }, TMP_View_get_int8_6.$$arity = -2); + }; + return self["native"].getInt8(offset, little); + }, $View_get_int8$6.$$arity = -2); - Opal.defn(self, '$set_int8', TMP_View_set_int8_7 = function $$set_int8(offset, value, little) { + Opal.def(self, '$set_int8', $View_set_int8$7 = function $$set_int8(offset, value, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].setInt8(offset, value, little) - }, TMP_View_set_int8_7.$$arity = -3); + }; + return self["native"].setInt8(offset, value, little); + }, $View_set_int8$7.$$arity = -3); - Opal.defn(self, '$get_uint8', TMP_View_get_uint8_8 = function $$get_uint8(offset, little) { + Opal.def(self, '$get_uint8', $View_get_uint8$8 = function $$get_uint8(offset, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].getUint8(offset, little) - }, TMP_View_get_uint8_8.$$arity = -2); + }; + return self["native"].getUint8(offset, little); + }, $View_get_uint8$8.$$arity = -2); - Opal.defn(self, '$set_uint8', TMP_View_set_uint8_9 = function $$set_uint8(offset, value, little) { + Opal.def(self, '$set_uint8', $View_set_uint8$9 = function $$set_uint8(offset, value, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].setUint8(offset, value, little) - }, TMP_View_set_uint8_9.$$arity = -3); + }; + return self["native"].setUint8(offset, value, little); + }, $View_set_uint8$9.$$arity = -3); - Opal.defn(self, '$get_int16', TMP_View_get_int16_10 = function $$get_int16(offset, little) { + Opal.def(self, '$get_int16', $View_get_int16$10 = function $$get_int16(offset, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].getInt16(offset, little) - }, TMP_View_get_int16_10.$$arity = -2); + }; + return self["native"].getInt16(offset, little); + }, $View_get_int16$10.$$arity = -2); - Opal.defn(self, '$set_int16', TMP_View_set_int16_11 = function $$set_int16(offset, value, little) { + Opal.def(self, '$set_int16', $View_set_int16$11 = function $$set_int16(offset, value, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].setInt16(offset, value, little) - }, TMP_View_set_int16_11.$$arity = -3); + }; + return self["native"].setInt16(offset, value, little); + }, $View_set_int16$11.$$arity = -3); - Opal.defn(self, '$get_uint16', TMP_View_get_uint16_12 = function $$get_uint16(offset, little) { + Opal.def(self, '$get_uint16', $View_get_uint16$12 = function $$get_uint16(offset, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].getUint16(offset, little) - }, TMP_View_get_uint16_12.$$arity = -2); + }; + return self["native"].getUint16(offset, little); + }, $View_get_uint16$12.$$arity = -2); - Opal.defn(self, '$set_uint16', TMP_View_set_uint16_13 = function $$set_uint16(offset, value, little) { + Opal.def(self, '$set_uint16', $View_set_uint16$13 = function $$set_uint16(offset, value, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].setUint16(offset, value, little) - }, TMP_View_set_uint16_13.$$arity = -3); + }; + return self["native"].setUint16(offset, value, little); + }, $View_set_uint16$13.$$arity = -3); - Opal.defn(self, '$get_int32', TMP_View_get_int32_14 = function $$get_int32(offset, little) { + Opal.def(self, '$get_int32', $View_get_int32$14 = function $$get_int32(offset, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].getInt32(offset, little) - }, TMP_View_get_int32_14.$$arity = -2); + }; + return self["native"].getInt32(offset, little); + }, $View_get_int32$14.$$arity = -2); - Opal.defn(self, '$set_int32', TMP_View_set_int32_15 = function $$set_int32(offset, value, little) { + Opal.def(self, '$set_int32', $View_set_int32$15 = function $$set_int32(offset, value, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].setInt32(offset, value, little) - }, TMP_View_set_int32_15.$$arity = -3); + }; + return self["native"].setInt32(offset, value, little); + }, $View_set_int32$15.$$arity = -3); - Opal.defn(self, '$get_uint32', TMP_View_get_uint32_16 = function $$get_uint32(offset, little) { + Opal.def(self, '$get_uint32', $View_get_uint32$16 = function $$get_uint32(offset, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].getUint32(offset, little) - }, TMP_View_get_uint32_16.$$arity = -2); + }; + return self["native"].getUint32(offset, little); + }, $View_get_uint32$16.$$arity = -2); - Opal.defn(self, '$set_uint32', TMP_View_set_uint32_17 = function $$set_uint32(offset, value, little) { + Opal.def(self, '$set_uint32', $View_set_uint32$17 = function $$set_uint32(offset, value, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].setUint32(offset, value, little) - }, TMP_View_set_uint32_17.$$arity = -3); + }; + return self["native"].setUint32(offset, value, little); + }, $View_set_uint32$17.$$arity = -3); - Opal.defn(self, '$get_float32', TMP_View_get_float32_18 = function $$get_float32(offset, little) { + Opal.def(self, '$get_float32', $View_get_float32$18 = function $$get_float32(offset, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].getFloat32(offset, little) - }, TMP_View_get_float32_18.$$arity = -2); + }; + return self["native"].getFloat32(offset, little); + }, $View_get_float32$18.$$arity = -2); - Opal.defn(self, '$set_float32', TMP_View_set_float32_19 = function $$set_float32(offset, value, little) { + Opal.def(self, '$set_float32', $View_set_float32$19 = function $$set_float32(offset, value, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].setFloat32(offset, value, little) - }, TMP_View_set_float32_19.$$arity = -3); + }; + return self["native"].setFloat32(offset, value, little); + }, $View_set_float32$19.$$arity = -3); - Opal.defn(self, '$get_float64', TMP_View_get_float64_20 = function $$get_float64(offset, little) { + Opal.def(self, '$get_float64', $View_get_float64$20 = function $$get_float64(offset, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].getFloat64(offset, little) - }, TMP_View_get_float64_20.$$arity = -2); - return (Opal.defn(self, '$set_float64', TMP_View_set_float64_21 = function $$set_float64(offset, value, little) { + }; + return self["native"].getFloat64(offset, little); + }, $View_get_float64$20.$$arity = -2); + return (Opal.def(self, '$set_float64', $View_set_float64$21 = function $$set_float64(offset, value, little) { var self = this; + + if (little == null) { little = false; - } - return self["native"].setFloat64(offset, value, little) - }, TMP_View_set_float64_21.$$arity = -3), nil) && 'set_float64'; + }; + return self["native"].setFloat64(offset, value, little); + }, $View_set_float64$21.$$arity = -3), nil) && 'set_float64'; })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["buffer"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $gvars = Opal.gvars, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["buffer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $gvars = Opal.gvars, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$!', '$nil?', '$[]', '$===', '$native?', '$new']); + Opal.add_stubs(['$require', '$include', '$!', '$nil?', '$[]', '$===', '$native?', '$new', '$pack', '$to_a']); self.$require("native"); self.$require("buffer/array"); self.$require("buffer/view"); return (function($base, $super, $parent_nesting) { - function $Buffer(){}; - var self = $Buffer = $klass($base, $super, 'Buffer', $Buffer); + var self = $klass($base, $super, 'Buffer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Buffer_supported$q_1, TMP_Buffer_name_for_2, TMP_Buffer_initialize_3, TMP_Buffer_length_4, TMP_Buffer_to_a_5, TMP_Buffer_view_6; + var $nesting = [self].concat($parent_nesting), $Buffer_supported$ques$1, $Buffer_name_for$2, $Buffer_initialize$3, $Buffer_length$4, $Buffer_to_a$5, $Buffer_view$6, $Buffer_to_s$7; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - Opal.defs(self, '$supported?', TMP_Buffer_supported$q_1 = function() { + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); + Opal.defs(self, '$supported?', $Buffer_supported$ques$1 = function() { var self = this; if ($gvars.$ == null) $gvars.$ = nil; return $gvars.$['$[]']("ArrayBuffer")['$nil?']()['$!']() - }, TMP_Buffer_supported$q_1.$$arity = 0); - Opal.defs(self, '$name_for', TMP_Buffer_name_for_2 = function $$name_for(bits, type) { - var self = this, $case = nil; + }, $Buffer_supported$ques$1.$$arity = 0); + Opal.defs(self, '$name_for', $Buffer_name_for$2 = function $$name_for(bits, type) { + var self = this, part = nil, $case = nil; - return "" + ((function() {$case = type; + + part = (function() {$case = type; if ("unsigned"['$===']($case)) {return "Uint"} else if ("signed"['$===']($case)) {return "Int"} else if ("float"['$===']($case)) {return "Float"} - else { return nil }})()) + (bits) - }, TMP_Buffer_name_for_2.$$arity = 2); + else { return nil }})(); + return "" + (part) + (bits); + }, $Buffer_name_for$2.$$arity = 2); - Opal.defn(self, '$initialize', TMP_Buffer_initialize_3 = function $$initialize(size, bits) { - var self = this, $iter = TMP_Buffer_initialize_3.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $Buffer_initialize$3 = function $$initialize(size, bits) { + var $iter = $Buffer_initialize$3.$$p, $yield = $iter || nil, self = this; + if ($iter) $Buffer_initialize$3.$$p = null; + + if (bits == null) { bits = 8; - } - if ($iter) TMP_Buffer_initialize_3.$$p = null; + }; if ($truthy(self['$native?'](size))) { - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Buffer_initialize_3, false), [size], null) - } else { - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Buffer_initialize_3, false), [new ArrayBuffer(size * (bits / 8))], null) - } - }, TMP_Buffer_initialize_3.$$arity = -2); + return $send2(self, $find_super(self, 'initialize', $Buffer_initialize$3, false, true), 'initialize', [size], null) + } else { + return $send2(self, $find_super(self, 'initialize', $Buffer_initialize$3, false, true), 'initialize', [new ArrayBuffer(size * (bits / 8))], null) + }; + }, $Buffer_initialize$3.$$arity = -2); - Opal.defn(self, '$length', TMP_Buffer_length_4 = function $$length() { + Opal.def(self, '$length', $Buffer_length$4 = function $$length() { var self = this; return self["native"].byteLength - }, TMP_Buffer_length_4.$$arity = 0); - Opal.alias(self, "size", "length"); + }, $Buffer_length$4.$$arity = 0); + $alias(self, "size", "length"); - Opal.defn(self, '$to_a', TMP_Buffer_to_a_5 = function $$to_a(bits, type) { + Opal.def(self, '$to_a', $Buffer_to_a$5 = function $$to_a(bits, type) { var self = this; + + if (bits == null) { bits = 8; - } + }; + if (type == null) { type = "unsigned"; - } - return Opal.const_get_relative($nesting, 'Array').$new(self, bits, type) - }, TMP_Buffer_to_a_5.$$arity = -1); - return (Opal.defn(self, '$view', TMP_Buffer_view_6 = function $$view(offset, length) { + }; + return $$($nesting, 'Array').$new(self, bits, type); + }, $Buffer_to_a$5.$$arity = -1); + + Opal.def(self, '$view', $Buffer_view$6 = function $$view(offset, length) { var self = this; + + if (offset == null) { offset = nil; - } + }; + if (length == null) { length = nil; - } - return Opal.const_get_relative($nesting, 'View').$new(self, offset, length) - }, TMP_Buffer_view_6.$$arity = -1), nil) && 'view'; + }; + return $$($nesting, 'View').$new(self, offset, length); + }, $Buffer_view$6.$$arity = -1); + return (Opal.def(self, '$to_s', $Buffer_to_s$7 = function $$to_s() { + var self = this; + + return self.$to_a().$to_a().$pack("c*") + }, $Buffer_to_s$7.$$arity = 0), nil) && 'to_s'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/message"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/message"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$require', '$supports?', '$convert', '$supported?', '$new', '$alias_native']); self.$require("buffer"); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Message(){}; - var self = $Message = $klass($base, $super, 'Message', $Message); + var self = $klass($base, $super, 'Message'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Message_supported$q_1, TMP_Message_construct_5, TMP_Message_construct_6, TMP_Message_data_7, TMP_Message_source_8; + var $nesting = [self].concat($parent_nesting), $Message_supported$ques$1, $Message_construct$5, $Message_construct$6, $Message_data$7, $Message_source$8; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$supported?', TMP_Message_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Message_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Message") - }, TMP_Message_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Message") + }, $Message_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_data$eq_2, TMP_Definition_origin$eq_3, TMP_Definition_source$eq_4; + var $nesting = [self].concat($parent_nesting), $Definition_data$eq$2, $Definition_origin$eq$3, $Definition_source$eq$4; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$data=', TMP_Definition_data$eq_2 = function(value) { + Opal.def(self, '$data=', $Definition_data$eq$2 = function(value) { var self = this; return self["native"].data = value - }, TMP_Definition_data$eq_2.$$arity = 1); + }, $Definition_data$eq$2.$$arity = 1); - Opal.defn(self, '$origin=', TMP_Definition_origin$eq_3 = function(value) { + Opal.def(self, '$origin=', $Definition_origin$eq$3 = function(value) { var self = this; return self["native"].origin = value - }, TMP_Definition_origin$eq_3.$$arity = 1); - return (Opal.defn(self, '$source=', TMP_Definition_source$eq_4 = function(value) { + }, $Definition_origin$eq$3.$$arity = 1); + return (Opal.def(self, '$source=', $Definition_source$eq$4 = function(value) { var self = this; - return self["native"].source = Opal.const_get_relative($nesting, 'Native').$convert(value) - }, TMP_Definition_source$eq_4.$$arity = 1), nil) && 'source='; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + return self["native"].source = $$($nesting, 'Native').$convert(value) + }, $Definition_source$eq$4.$$arity = 1), nil) && 'source='; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Message_construct_5 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Message_construct$5 = function $$construct(name, desc) { var self = this; return new MessageEvent(name, desc) - }, TMP_Message_construct_5.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Message_construct_6 = function $$construct(name, desc) { + }, $Message_construct$5.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Message_construct$6 = function $$construct(name, desc) { var self = this; @@ -13143,112 +14373,108 @@ Opal.modules["browser/event/message"] = function(Opal) { return event; - }, TMP_Message_construct_6.$$arity = 2)}}; + }, $Message_construct$6.$$arity = 2)}}; - Opal.defn(self, '$data', TMP_Message_data_7 = function $$data() { + Opal.def(self, '$data', $Message_data$7 = function $$data() { var self = this; if (window.ArrayBuffer && self["native"].data instanceof ArrayBuffer) { - return Opal.const_get_relative($nesting, 'Buffer').$new(self["native"].data); + return $$($nesting, 'Buffer').$new(self["native"].data); } else if (window.Blob && self["native"].data instanceof Blob) { - return Opal.const_get_relative($nesting, 'Blob').$new(self["native"].data); + return $$($nesting, 'Blob').$new(self["native"].data); } else { return self["native"].data; } - }, TMP_Message_data_7.$$arity = 0); + }, $Message_data$7.$$arity = 0); self.$alias_native("origin"); - return (Opal.defn(self, '$source', TMP_Message_source_8 = function $$source() { + return (Opal.def(self, '$source', $Message_source$8 = function $$source() { var self = this; var source = self["native"].source; if (window.Window && source instanceof window.Window) { - return Opal.const_get_relative($nesting, 'Window').$new(source); + return $$($nesting, 'Window').$new(source); } else { return nil; } - }, TMP_Message_source_8.$$arity = 0), nil) && 'source'; - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + }, $Message_source$8.$$arity = 0), nil) && 'source'; + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event/close"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/event/close"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$supports?', '$supported?', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Close(){}; - var self = $Close = $klass($base, $super, 'Close', $Close); + var self = $klass($base, $super, 'Close'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Close_supported$q_1, TMP_Close_construct_6, TMP_Close_construct_7; + var $nesting = [self].concat($parent_nesting), $Close_supported$ques$1, $Close_construct$6, $Close_construct$7; - Opal.defs(self, '$supported?', TMP_Close_supported$q_1 = function() { + Opal.defs(self, '$supported?', $Close_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.Close") - }, TMP_Close_supported$q_1.$$arity = 0); + return $$($nesting, 'Browser')['$supports?']("Event.Close") + }, $Close_supported$ques$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Definition(){}; - var self = $Definition = $klass($base, $super, 'Definition', $Definition); + var self = $klass($base, $super, 'Definition'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Definition_code$eq_2, TMP_Definition_reason$eq_3, TMP_Definition_clean$B_4, TMP_Definition_not_clean$B_5; + var $nesting = [self].concat($parent_nesting), $Definition_code$eq$2, $Definition_reason$eq$3, $Definition_clean$excl$4, $Definition_not_clean$excl$5; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$code=', TMP_Definition_code$eq_2 = function(value) { + Opal.def(self, '$code=', $Definition_code$eq$2 = function(value) { var self = this; return self["native"].code = value - }, TMP_Definition_code$eq_2.$$arity = 1); + }, $Definition_code$eq$2.$$arity = 1); - Opal.defn(self, '$reason=', TMP_Definition_reason$eq_3 = function(value) { + Opal.def(self, '$reason=', $Definition_reason$eq$3 = function(value) { var self = this; return self["native"].reason = value - }, TMP_Definition_reason$eq_3.$$arity = 1); + }, $Definition_reason$eq$3.$$arity = 1); - Opal.defn(self, '$clean!', TMP_Definition_clean$B_4 = function(value) { + Opal.def(self, '$clean!', $Definition_clean$excl$4 = function(value) { var self = this; return self["native"].wasClean = true - }, TMP_Definition_clean$B_4.$$arity = 1); - return (Opal.defn(self, '$not_clean!', TMP_Definition_not_clean$B_5 = function(value) { + }, $Definition_clean$excl$4.$$arity = 1); + return (Opal.def(self, '$not_clean!', $Definition_not_clean$excl$5 = function(value) { var self = this; return self["native"].wasClean = false - }, TMP_Definition_not_clean$B_5.$$arity = 1), nil) && 'not_clean!'; - })($nesting[0], Opal.const_get_relative($nesting, 'Definition'), $nesting); + }, $Definition_not_clean$excl$5.$$arity = 1), nil) && 'not_clean!'; + })($nesting[0], $$($nesting, 'Definition'), $nesting); if ($truthy(self['$supported?']())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Close_construct_6 = function $$construct(name, desc) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Close_construct$6 = function $$construct(name, desc) { var self = this; return new CloseEvent(name, desc) - }, TMP_Close_construct_6.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Close_construct_7 = function $$construct(name, desc) { + }, $Close_construct$6.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Close_construct$7 = function $$construct(name, desc) { var self = this; @@ -13258,21 +14484,20 @@ Opal.modules["browser/event/close"] = function(Opal) { return event; - }, TMP_Close_construct_7.$$arity = 2)}}; + }, $Close_construct$7.$$arity = 2)}}; self.$alias_native("code"); self.$alias_native("reason"); return self.$alias_native("clean?", "wasClean"); - })($nesting[0], Opal.const_get_relative($nesting, 'Event'), $nesting) + })($nesting[0], $$($nesting, 'Event'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/event"] = function(Opal) { +Opal.modules["browser/event"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super; Opal.add_stubs(['$require', '$gsub', '$[]', '$aliases', '$name_for', '$===', '$class_for', '$new', '$construct', '$const_get', '$to_proc', '$arguments=', '$-', '$supports?', '$merge!', '$Native', '$to_n', '$==', '$name', '$attr_reader', '$attr_writer', '$convert', '$alias_native', '$off', '$prevent', '$stop']); @@ -13305,76 +14530,83 @@ Opal.modules["browser/event"] = function(Opal) { self.$require("browser/event/message"); self.$require("browser/event/close"); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Event_aliases_1, TMP_Event_name_for_2, TMP_Event_class_for_3, TMP_Event_supported$q_4, TMP_Event_create_5, TMP_Event_construct_6, TMP_Event_construct_7, TMP_Event_construct_8, TMP_Event_construct_9, TMP_Event_new_10, TMP_Event_initialize_11, TMP_Event_name_12, TMP_Event_on_13, TMP_Event_target_14, TMP_Event_arguments_15, TMP_Event_arguments$eq_16, TMP_Event_off_17, TMP_Event_stopped$q_18, TMP_Event_stop_19, TMP_Event_prevent_20, TMP_Event_prevented$q_21, TMP_Event_stop$B_22; + var $nesting = [self].concat($parent_nesting), $Event_aliases$1, $Event_name_for$2, $Event_class_for$3, $Event_supported$ques$4, $Event_create$5, $Event_construct$6, $Event_construct$7, $Event_construct$8, $Event_construct$9, $Event_new$10, $Event_initialize$11, $Event_name$12, $Event_on$13, $Event_target$14, $Event_arguments$15, $Event_arguments$eq$16, $Event_off$17, $Event_stopped$ques$18, $Event_stop$19, $Event_prevent$20, $Event_prevented$ques$21, $Event_stop$excl$22; - def["native"] = def.on = def.callback = nil; + self.$$prototype["native"] = self.$$prototype.on = self.$$prototype.callback = nil; - Opal.defs(self, '$aliases', TMP_Event_aliases_1 = function $$aliases() { - var $a, self = this; + Opal.defs(self, '$aliases', $Event_aliases$1 = function $$aliases() { + var self = this, $ret_or_1 = nil; if (self.aliases == null) self.aliases = nil; - return (self.aliases = ($truthy($a = self.aliases) ? $a : $hash2(["dom:load", "hover"], {"dom:load": "DOMContentLoaded", "hover": "mouse:over"}))) - }, TMP_Event_aliases_1.$$arity = 0); - Opal.defs(self, '$name_for', TMP_Event_name_for_2 = function $$name_for(name) { - var $a, self = this; + return (self.aliases = (function() {if ($truthy(($ret_or_1 = self.aliases))) { + return $ret_or_1 + } else { + return $hash2(["dom:load", "hover"], {"dom:load": "DOMContentLoaded", "hover": "mouse:over"}) + }; return nil; })()) + }, $Event_aliases$1.$$arity = 0); + Opal.defs(self, '$name_for', $Event_name_for$2 = function $$name_for(name) { + var self = this, $ret_or_2 = nil; - return ($truthy($a = self.$aliases()['$[]'](name)) ? $a : name).$gsub(":", "") - }, TMP_Event_name_for_2.$$arity = 1); - Opal.defs(self, '$class_for', TMP_Event_class_for_3 = function $$class_for(name) { + return (function() {if ($truthy(($ret_or_2 = self.$aliases()['$[]'](name)))) { + return $ret_or_2 + } else { + return name + }; return nil; })().$gsub(":", "") + }, $Event_name_for$2.$$arity = 1); + Opal.defs(self, '$class_for', $Event_class_for$3 = function $$class_for(name) { var self = this, $case = nil; return (function() {$case = self.$name_for(name); - if ("animationend"['$===']($case) || "animationiteration"['$===']($case) || "animationstart"['$===']($case)) {return Opal.const_get_relative($nesting, 'Animation')} - else if ("audioprocess"['$===']($case)) {return Opal.const_get_relative($nesting, 'AudioProcessing')} - else if ("beforeunload"['$===']($case)) {return Opal.const_get_relative($nesting, 'BeforeUnload')} - else if ("compositionend"['$===']($case) || "compositionstart"['$===']($case) || "compositionupdate"['$===']($case)) {return Opal.const_get_relative($nesting, 'Composition')} - else if ("copy"['$===']($case) || "cut"['$===']($case)) {return Opal.const_get_relative($nesting, 'Clipboard')} - else if ("devicelight"['$===']($case)) {return Opal.const_get_relative($nesting, 'DeviceLight')} - else if ("devicemotion"['$===']($case)) {return Opal.const_get_relative($nesting, 'DeviceMotion')} - else if ("deviceorientation"['$===']($case)) {return Opal.const_get_relative($nesting, 'DeviceOrientation')} - else if ("deviceproximity"['$===']($case)) {return Opal.const_get_relative($nesting, 'DeviceProximity')} - else if ("drag"['$===']($case) || "dragend"['$===']($case) || "dragleave"['$===']($case) || "dragover"['$===']($case) || "dragstart"['$===']($case) || "drop"['$===']($case)) {return Opal.const_get_relative($nesting, 'Drag')} - else if ("gamepadconnected"['$===']($case) || "gamepaddisconnected"['$===']($case)) {return Opal.const_get_relative($nesting, 'Gamepad')} - else if ("hashchange"['$===']($case)) {return Opal.const_get_relative($nesting, 'HashChange')} - else if ("load"['$===']($case) || "loadend"['$===']($case) || "loadstart"['$===']($case)) {return Opal.const_get_relative($nesting, 'Progress')} - else if ("pagehide"['$===']($case) || "pageshow"['$===']($case)) {return Opal.const_get_relative($nesting, 'PageTransition')} - else if ("popstate"['$===']($case)) {return Opal.const_get_relative($nesting, 'PopState')} - else if ("storage"['$===']($case)) {return Opal.const_get_relative($nesting, 'Storage')} - else if ("touchcancel"['$===']($case) || "touchend"['$===']($case) || "touchleave"['$===']($case) || "touchmove"['$===']($case) || "touchstart"['$===']($case)) {return Opal.const_get_relative($nesting, 'Touch')} - else if ("compassneedscalibration"['$===']($case) || "userproximity"['$===']($case)) {return Opal.const_get_relative($nesting, 'Sensor')} - else if ("message"['$===']($case)) {return Opal.const_get_relative($nesting, 'Message')} - else if ("close"['$===']($case)) {return Opal.const_get_relative($nesting, 'Close')} - else if ("click"['$===']($case) || "contextmenu"['$===']($case) || "dblclick"['$===']($case) || "mousedown"['$===']($case) || "mouseenter"['$===']($case) || "mouseleave"['$===']($case) || "mousemove"['$===']($case) || "mouseout"['$===']($case) || "mouseover"['$===']($case) || "mouseup"['$===']($case) || "show"['$===']($case)) {return Opal.const_get_relative($nesting, 'Mouse')} - else if ("keydown"['$===']($case) || "keypress"['$===']($case) || "keyup"['$===']($case)) {return Opal.const_get_relative($nesting, 'Keyboard')} - else if ("blur"['$===']($case) || "focus"['$===']($case) || "focusin"['$===']($case) || "focusout"['$===']($case)) {return Opal.const_get_relative($nesting, 'Focus')} - else if ("wheel"['$===']($case)) {return Opal.const_get_relative($nesting, 'Wheel')} - else if ("abort"['$===']($case) || "afterprint"['$===']($case) || "beforeprint"['$===']($case) || "cached"['$===']($case) || "canplay"['$===']($case) || "canplaythrough"['$===']($case) || "change"['$===']($case) || "chargingchange"['$===']($case) || "chargingtimechange"['$===']($case) || "checking"['$===']($case) || "close"['$===']($case) || "dischargingtimechange"['$===']($case) || "DOMContentLoaded"['$===']($case) || "downloading"['$===']($case) || "durationchange"['$===']($case) || "emptied"['$===']($case) || "ended"['$===']($case) || "error"['$===']($case) || "fullscreenchange"['$===']($case) || "fullscreenerror"['$===']($case) || "input"['$===']($case) || "invalid"['$===']($case) || "levelchange"['$===']($case) || "loadeddata"['$===']($case) || "loadedmetadata"['$===']($case) || "noupdate"['$===']($case) || "obsolete"['$===']($case) || "offline"['$===']($case) || "online"['$===']($case) || "open"['$===']($case) || "orientationchange"['$===']($case) || "pause"['$===']($case) || "pointerlockchange"['$===']($case) || "pointerlockerror"['$===']($case) || "play"['$===']($case) || "playing"['$===']($case) || "ratechange"['$===']($case) || "readystatechange"['$===']($case) || "reset"['$===']($case) || "seeked"['$===']($case) || "seeking"['$===']($case) || "stalled"['$===']($case) || "submit"['$===']($case) || "success"['$===']($case) || "suspend"['$===']($case) || "timeupdate"['$===']($case) || "updateready"['$===']($case) || "visibilitychange"['$===']($case) || "volumechange"['$===']($case) || "waiting"['$===']($case)) {return Opal.const_get_relative($nesting, 'Event')} - else {return Opal.const_get_relative($nesting, 'Custom')}})() - }, TMP_Event_class_for_3.$$arity = 1); - Opal.defs(self, '$supported?', TMP_Event_supported$q_4 = function() { + if ("animationend"['$===']($case) || "animationiteration"['$===']($case) || "animationstart"['$===']($case)) {return $$($nesting, 'Animation')} + else if ("audioprocess"['$===']($case)) {return $$($nesting, 'AudioProcessing')} + else if ("beforeunload"['$===']($case)) {return $$($nesting, 'BeforeUnload')} + else if ("compositionend"['$===']($case) || "compositionstart"['$===']($case) || "compositionupdate"['$===']($case)) {return $$($nesting, 'Composition')} + else if ("copy"['$===']($case) || "cut"['$===']($case)) {return $$($nesting, 'Clipboard')} + else if ("devicelight"['$===']($case)) {return $$($nesting, 'DeviceLight')} + else if ("devicemotion"['$===']($case)) {return $$($nesting, 'DeviceMotion')} + else if ("deviceorientation"['$===']($case)) {return $$($nesting, 'DeviceOrientation')} + else if ("deviceproximity"['$===']($case)) {return $$($nesting, 'DeviceProximity')} + else if ("drag"['$===']($case) || "dragend"['$===']($case) || "dragleave"['$===']($case) || "dragover"['$===']($case) || "dragstart"['$===']($case) || "drop"['$===']($case)) {return $$($nesting, 'Drag')} + else if ("gamepadconnected"['$===']($case) || "gamepaddisconnected"['$===']($case)) {return $$($nesting, 'Gamepad')} + else if ("hashchange"['$===']($case)) {return $$($nesting, 'HashChange')} + else if ("load"['$===']($case) || "loadend"['$===']($case) || "loadstart"['$===']($case)) {return $$($nesting, 'Progress')} + else if ("pagehide"['$===']($case) || "pageshow"['$===']($case)) {return $$($nesting, 'PageTransition')} + else if ("popstate"['$===']($case)) {return $$($nesting, 'PopState')} + else if ("storage"['$===']($case)) {return $$($nesting, 'Storage')} + else if ("touchcancel"['$===']($case) || "touchend"['$===']($case) || "touchleave"['$===']($case) || "touchmove"['$===']($case) || "touchstart"['$===']($case)) {return $$($nesting, 'Touch')} + else if ("compassneedscalibration"['$===']($case) || "userproximity"['$===']($case)) {return $$($nesting, 'Sensor')} + else if ("message"['$===']($case)) {return $$($nesting, 'Message')} + else if ("close"['$===']($case)) {return $$($nesting, 'Close')} + else if ("click"['$===']($case) || "contextmenu"['$===']($case) || "dblclick"['$===']($case) || "mousedown"['$===']($case) || "mouseenter"['$===']($case) || "mouseleave"['$===']($case) || "mousemove"['$===']($case) || "mouseout"['$===']($case) || "mouseover"['$===']($case) || "mouseup"['$===']($case) || "show"['$===']($case)) {return $$($nesting, 'Mouse')} + else if ("keydown"['$===']($case) || "keypress"['$===']($case) || "keyup"['$===']($case)) {return $$($nesting, 'Keyboard')} + else if ("blur"['$===']($case) || "focus"['$===']($case) || "focusin"['$===']($case) || "focusout"['$===']($case)) {return $$($nesting, 'Focus')} + else if ("wheel"['$===']($case)) {return $$($nesting, 'Wheel')} + else if ("abort"['$===']($case) || "afterprint"['$===']($case) || "beforeprint"['$===']($case) || "cached"['$===']($case) || "canplay"['$===']($case) || "canplaythrough"['$===']($case) || "change"['$===']($case) || "chargingchange"['$===']($case) || "chargingtimechange"['$===']($case) || "checking"['$===']($case) || "close"['$===']($case) || "dischargingtimechange"['$===']($case) || "DOMContentLoaded"['$===']($case) || "downloading"['$===']($case) || "durationchange"['$===']($case) || "emptied"['$===']($case) || "ended"['$===']($case) || "error"['$===']($case) || "fullscreenchange"['$===']($case) || "fullscreenerror"['$===']($case) || "input"['$===']($case) || "invalid"['$===']($case) || "levelchange"['$===']($case) || "loadeddata"['$===']($case) || "loadedmetadata"['$===']($case) || "noupdate"['$===']($case) || "obsolete"['$===']($case) || "offline"['$===']($case) || "online"['$===']($case) || "open"['$===']($case) || "orientationchange"['$===']($case) || "pause"['$===']($case) || "pointerlockchange"['$===']($case) || "pointerlockerror"['$===']($case) || "play"['$===']($case) || "playing"['$===']($case) || "ratechange"['$===']($case) || "readystatechange"['$===']($case) || "reset"['$===']($case) || "seeked"['$===']($case) || "seeking"['$===']($case) || "stalled"['$===']($case) || "submit"['$===']($case) || "success"['$===']($case) || "suspend"['$===']($case) || "timeupdate"['$===']($case) || "updateready"['$===']($case) || "visibilitychange"['$===']($case) || "volumechange"['$===']($case) || "waiting"['$===']($case)) {return $$($nesting, 'Event')} + else {return $$($nesting, 'Custom')}})() + }, $Event_class_for$3.$$arity = 1); + Opal.defs(self, '$supported?', $Event_supported$ques$4 = function() { var self = this; return true - }, TMP_Event_supported$q_4.$$arity = 0); - Opal.defs(self, '$create', TMP_Event_create_5 = function $$create(name, $a_rest) { - var self = this, args, $iter = TMP_Event_create_5.$$p, block = $iter || nil, klass = nil, event = nil, $writer = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Event_create_5.$$p = null; + }, $Event_supported$ques$4.$$arity = 0); + Opal.defs(self, '$create', $Event_create$5 = function $$create(name, $a) { + var $iter = $Event_create$5.$$p, block = $iter || nil, $post_args, args, self = this, klass = nil, event = nil, $writer = nil; + + if ($iter) $Event_create$5.$$p = null; + + if ($iter) $Event_create$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; name = self.$name_for(name); klass = self.$class_for(name); event = klass.$new(klass.$construct(name, $send(klass.$const_get("Definition"), 'new', [], block.$to_proc()))); @@ -13383,15 +14615,15 @@ Opal.modules["browser/event"] = function(Opal) { $send(event, 'arguments=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return event; - }, TMP_Event_create_5.$$arity = -2); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.constructor"))) { - Opal.defs(self, '$construct', TMP_Event_construct_6 = function $$construct(name, desc) { + }, $Event_create$5.$$arity = -2); + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.constructor"))) { + Opal.defs(self, '$construct', $Event_construct$6 = function $$construct(name, desc) { var self = this; return new Event(name, desc) - }, TMP_Event_construct_6.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.create"))) { - Opal.defs(self, '$construct', TMP_Event_construct_7 = function $$construct(name, desc) {try { + }, $Event_construct$6.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.create"))) { + Opal.defs(self, '$construct', $Event_construct$7 = function $$construct(name, desc) {try { var self = this; @@ -13402,357 +14634,356 @@ Opal.modules["browser/event"] = function(Opal) { Opal.ret(self.$Native(event)['$merge!'](desc)); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Event_construct_7.$$arity = 2) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.createObject"))) { - Opal.defs(self, '$construct', TMP_Event_construct_8 = function $$construct(name, desc) { + }, $Event_construct$7.$$arity = 2) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.createObject"))) { + Opal.defs(self, '$construct', $Event_construct$8 = function $$construct(name, desc) { var self = this; return self.$Native(document.createEventObject())['$merge!'](desc)['$merge!']({ type: name }).$to_n() - }, TMP_Event_construct_8.$$arity = 2) - } else { - Opal.defs(self, '$construct', TMP_Event_construct_9 = function $$construct(name, desc) { + }, $Event_construct$8.$$arity = 2) + } else { + Opal.defs(self, '$construct', $Event_construct$9 = function $$construct(name, desc) { var self = this; return self.$Native(desc)['$merge!']({ type: name }).$to_n() - }, TMP_Event_construct_9.$$arity = 2) + }, $Event_construct$9.$$arity = 2) }; - Opal.defs(self, '$new', TMP_Event_new_10 = function(value, callback) { - var self = this, $iter = TMP_Event_new_10.$$p, $yield = $iter || nil, klass = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.defs(self, '$new', $Event_new$10 = function(value, callback) { + var $iter = $Event_new$10.$$p, $yield = $iter || nil, self = this, klass = nil; + if ($iter) $Event_new$10.$$p = null; + + if (callback == null) { callback = nil; - } - if ($iter) TMP_Event_new_10.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - - if (self['$=='](Opal.const_get_relative($nesting, 'Event'))) { - } else { - return $send(self, Opal.find_super_dispatcher(self, 'new', TMP_Event_new_10, false, $Event), $zuper, $iter) + }; + if (self['$==']($$($nesting, 'Event'))) { + } else { + return $send2(self, $find_super(self, 'new', $Event_new$10, false, true), 'new', [value, callback], $iter) }; klass = self.$class_for((function() {if ($truthy(callback)) { return callback.$name() - } else { - return value.type + } else { + return value.type; }; return nil; })()); - if (klass['$=='](Opal.const_get_relative($nesting, 'Event'))) { - return $send(self, Opal.find_super_dispatcher(self, 'new', TMP_Event_new_10, false, $Event), $zuper, $iter) - } else { + if (klass['$==']($$($nesting, 'Event'))) { + return $send2(self, $find_super(self, 'new', $Event_new$10, false, true), 'new', [value, callback], $iter) + } else { return klass.$new(value, callback) }; - }, TMP_Event_new_10.$$arity = -2); + }, $Event_new$10.$$arity = -2); self.$attr_reader("callback"); self.$attr_writer("on"); - Opal.defn(self, '$initialize', TMP_Event_initialize_11 = function $$initialize(event, callback) { - var self = this, $iter = TMP_Event_initialize_11.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $Event_initialize$11 = function $$initialize(event, callback) { + var $iter = $Event_initialize$11.$$p, $yield = $iter || nil, self = this; + if ($iter) $Event_initialize$11.$$p = null; + + if (callback == null) { callback = nil; - } - if ($iter) TMP_Event_initialize_11.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Event_initialize_11, false), [event], null); + }; + $send2(self, $find_super(self, 'initialize', $Event_initialize$11, false, true), 'initialize', [event], null); return (self.callback = callback); - }, TMP_Event_initialize_11.$$arity = -2); + }, $Event_initialize$11.$$arity = -2); - Opal.defn(self, '$name', TMP_Event_name_12 = function $$name() { + Opal.def(self, '$name', $Event_name$12 = function $$name() { var self = this; return self["native"].type - }, TMP_Event_name_12.$$arity = 0); + }, $Event_name$12.$$arity = 0); - Opal.defn(self, '$on', TMP_Event_on_13 = function $$on() { - var $a, self = this; + Opal.def(self, '$on', $Event_on$13 = function $$on() { + var self = this, $ret_or_3 = nil; - return ($truthy($a = self.on) ? $a : Opal.const_get_relative($nesting, 'Target').$convert(self["native"].currentTarget)) - }, TMP_Event_on_13.$$arity = 0); + if ($truthy(($ret_or_3 = self.on))) { + return $ret_or_3 + } else { + return $$($nesting, 'Target').$convert(self["native"].currentTarget) + } + }, $Event_on$13.$$arity = 0); - Opal.defn(self, '$target', TMP_Event_target_14 = function $$target() { + Opal.def(self, '$target', $Event_target$14 = function $$target() { var self = this; - return Opal.const_get_relative($nesting, 'Target').$convert(self["native"].srcElement || self["native"].target) - }, TMP_Event_target_14.$$arity = 0); + return $$($nesting, 'Target').$convert(self["native"].srcElement || self["native"].target) + }, $Event_target$14.$$arity = 0); - Opal.defn(self, '$arguments', TMP_Event_arguments_15 = function() { + Opal.def(self, '$arguments', $Event_arguments$15 = function() { var self = this; return self["native"].arguments || [] - }, TMP_Event_arguments_15.$$arity = 0); + }, $Event_arguments$15.$$arity = 0); - Opal.defn(self, '$arguments=', TMP_Event_arguments$eq_16 = function(args) { + Opal.def(self, '$arguments=', $Event_arguments$eq$16 = function(args) { var self = this; return self["native"].arguments = args - }, TMP_Event_arguments$eq_16.$$arity = 1); + }, $Event_arguments$eq$16.$$arity = 1); self.$alias_native("bubbles?", "bubbles"); self.$alias_native("cancelable?", "cancelable"); self.$alias_native("data"); self.$alias_native("phase", "eventPhase"); self.$alias_native("at", "timeStamp"); - Opal.defn(self, '$off', TMP_Event_off_17 = function $$off() { + Opal.def(self, '$off', $Event_off$17 = function $$off() { var self = this; if ($truthy(self.callback)) { return self.callback.$off() - } else { + } else { return nil } - }, TMP_Event_off_17.$$arity = 0); + }, $Event_off$17.$$arity = 0); - Opal.defn(self, '$stopped?', TMP_Event_stopped$q_18 = function() { + Opal.def(self, '$stopped?', $Event_stopped$ques$18 = function() { var self = this; return !!self["native"].stopped - }, TMP_Event_stopped$q_18.$$arity = 0); + }, $Event_stopped$ques$18.$$arity = 0); - Opal.defn(self, '$stop', TMP_Event_stop_19 = function $$stop() { + Opal.def(self, '$stop', $Event_stop$19 = function $$stop() { var self = this; if ($truthy((typeof(self["native"].stopPropagation) !== "undefined"))) { self["native"].stopPropagation()}; return self["native"].stopped = true; - }, TMP_Event_stop_19.$$arity = 0); + }, $Event_stop$19.$$arity = 0); - Opal.defn(self, '$prevent', TMP_Event_prevent_20 = function $$prevent() { + Opal.def(self, '$prevent', $Event_prevent$20 = function $$prevent() { var self = this; if ($truthy((typeof(self["native"].preventDefault) !== "undefined"))) { self["native"].preventDefault()}; return self["native"].prevented = true; - }, TMP_Event_prevent_20.$$arity = 0); + }, $Event_prevent$20.$$arity = 0); - Opal.defn(self, '$prevented?', TMP_Event_prevented$q_21 = function() { + Opal.def(self, '$prevented?', $Event_prevented$ques$21 = function() { var self = this; return !!self["native"].prevented - }, TMP_Event_prevented$q_21.$$arity = 0); - return (Opal.defn(self, '$stop!', TMP_Event_stop$B_22 = function() { + }, $Event_prevented$ques$21.$$arity = 0); + return (Opal.def(self, '$stop!', $Event_stop$excl$22 = function() { var self = this; self.$prevent(); return self.$stop(); - }, TMP_Event_stop$B_22.$$arity = 0), nil) && 'stop!'; + }, $Event_stop$excl$22.$$arity = 0), nil) && 'stop!'; })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/window/view"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/window/view"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$to_n', '$supports?', '$raise']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Window(){}; - var self = $Window = $klass($base, $super, 'Window', $Window); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Window'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $View(){}; - var self = $View = $klass($base, $super, 'View', $View); + var self = $klass($base, $super, 'View'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_View_initialize_1, TMP_View_width_2, TMP_View_height_3, TMP_View_height_4, TMP_View_width_5, TMP_View_width_6, TMP_View_height_7; + var $nesting = [self].concat($parent_nesting), $View_initialize$1, $View_width$2, $View_height$3, $View_height$4, $View_width$5, $View_width$6, $View_height$7; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$initialize', TMP_View_initialize_1 = function $$initialize(window) { + Opal.def(self, '$initialize', $View_initialize$1 = function $$initialize(window) { var self = this; self.window = window; return (self["native"] = window.$to_n()); - }, TMP_View_initialize_1.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Window.innerSize"))) { + }, $View_initialize$1.$$arity = 1); + if ($truthy($$($nesting, 'Browser')['$supports?']("Window.innerSize"))) { - Opal.defn(self, '$width', TMP_View_width_2 = function $$width() { + Opal.def(self, '$width', $View_width$2 = function $$width() { var self = this; return self["native"].innerWidth - }, TMP_View_width_2.$$arity = 0); - return (Opal.defn(self, '$height', TMP_View_height_3 = function $$height() { + }, $View_width$2.$$arity = 0); + return (Opal.def(self, '$height', $View_height$3 = function $$height() { var self = this; return self["native"].innerHeight - }, TMP_View_height_3.$$arity = 0), nil) && 'height'; - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.clientSize"))) { + }, $View_height$3.$$arity = 0), nil) && 'height'; + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Element.clientSize"))) { - Opal.defn(self, '$height', TMP_View_height_4 = function $$height() { + Opal.def(self, '$height', $View_height$4 = function $$height() { var self = this; return self["native"].document.documentElement.clientHeight - }, TMP_View_height_4.$$arity = 0); - return (Opal.defn(self, '$width', TMP_View_width_5 = function $$width() { + }, $View_height$4.$$arity = 0); + return (Opal.def(self, '$width', $View_width$5 = function $$width() { var self = this; return self["native"].document.documentElement.clientWidth - }, TMP_View_width_5.$$arity = 0), nil) && 'width'; - } else { + }, $View_width$5.$$arity = 0), nil) && 'width'; + } else { - Opal.defn(self, '$width', TMP_View_width_6 = function $$width() { + Opal.def(self, '$width', $View_width$6 = function $$width() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "window size unsupported") - }, TMP_View_width_6.$$arity = 0); - return (Opal.defn(self, '$height', TMP_View_height_7 = function $$height() { + return self.$raise($$($nesting, 'NotImplementedError'), "window size unsupported") + }, $View_width$6.$$arity = 0); + return (Opal.def(self, '$height', $View_height$7 = function $$height() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "window size unsupported") - }, TMP_View_height_7.$$arity = 0), nil) && 'height'; + return self.$raise($$($nesting, 'NotImplementedError'), "window size unsupported") + }, $View_height$7.$$arity = 0), nil) && 'height'; }; })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/window/size"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; +Opal.modules["browser/window/size"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; Opal.add_stubs(['$to_n', '$===', '$first', '$values_at', '$width', '$height', '$supports?', '$raise', '$set']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Window(){}; - var self = $Window = $klass($base, $super, 'Window', $Window); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Window'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Size(){}; - var self = $Size = $klass($base, $super, 'Size', $Size); + var self = $klass($base, $super, 'Size'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Size_initialize_1, TMP_Size_set_2, TMP_Size_width_3, TMP_Size_height_4, TMP_Size_width_5, TMP_Size_height_6, TMP_Size_width$eq_7, TMP_Size_height$eq_8; + var $nesting = [self].concat($parent_nesting), $Size_initialize$1, $Size_set$2, $Size_width$3, $Size_height$4, $Size_width$5, $Size_height$6, $Size_width$eq$7, $Size_height$eq$8; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$initialize', TMP_Size_initialize_1 = function $$initialize(window) { + Opal.def(self, '$initialize', $Size_initialize$1 = function $$initialize(window) { var self = this; self.window = window; return (self["native"] = window.$to_n()); - }, TMP_Size_initialize_1.$$arity = 1); + }, $Size_initialize$1.$$arity = 1); - Opal.defn(self, '$set', TMP_Size_set_2 = function $$set($a_rest) { - var $b, $c, self = this, args, width = nil, height = nil; + Opal.def(self, '$set', $Size_set$2 = function $$set($a) { + var $post_args, args, $b, $c, self = this, width = nil, height = nil, $ret_or_1 = nil, $ret_or_2 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](args.$first()))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy($$($nesting, 'Hash')['$==='](args.$first()))) { $c = args.$first().$values_at("width", "height"), $b = Opal.to_ary($c), (width = ($b[0] == null ? nil : $b[0])), (height = ($b[1] == null ? nil : $b[1])), $c - } else { + } else { $c = args, $b = Opal.to_ary($c), (width = ($b[0] == null ? nil : $b[0])), (height = ($b[1] == null ? nil : $b[1])), $c }; - width = ($truthy($b = width) ? $b : self.$width()); - height = ($truthy($b = height) ? $b : self.$height()); + width = (function() {if ($truthy(($ret_or_1 = width))) { + return $ret_or_1 + } else { + return self.$width() + }; return nil; })(); + height = (function() {if ($truthy(($ret_or_2 = height))) { + return $ret_or_2 + } else { + return self.$height() + }; return nil; })(); self["native"].resizeTo(width, height); return self; - }, TMP_Size_set_2.$$arity = -1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Window.outerSize"))) { + }, $Size_set$2.$$arity = -1); + if ($truthy($$($nesting, 'Browser')['$supports?']("Window.outerSize"))) { - Opal.defn(self, '$width', TMP_Size_width_3 = function $$width() { + Opal.def(self, '$width', $Size_width$3 = function $$width() { var self = this; return self["native"].outerWidth - }, TMP_Size_width_3.$$arity = 0); + }, $Size_width$3.$$arity = 0); - Opal.defn(self, '$height', TMP_Size_height_4 = function $$height() { + Opal.def(self, '$height', $Size_height$4 = function $$height() { var self = this; return self["native"].outerHeight - }, TMP_Size_height_4.$$arity = 0); - } else { + }, $Size_height$4.$$arity = 0); + } else { - Opal.defn(self, '$width', TMP_Size_width_5 = function $$width() { + Opal.def(self, '$width', $Size_width$5 = function $$width() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "window outer size not supported") - }, TMP_Size_width_5.$$arity = 0); + return self.$raise($$($nesting, 'NotImplementedError'), "window outer size not supported") + }, $Size_width$5.$$arity = 0); - Opal.defn(self, '$height', TMP_Size_height_6 = function $$height() { + Opal.def(self, '$height', $Size_height$6 = function $$height() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "window outer size not supported") - }, TMP_Size_height_6.$$arity = 0); + return self.$raise($$($nesting, 'NotImplementedError'), "window outer size not supported") + }, $Size_height$6.$$arity = 0); }; - Opal.defn(self, '$width=', TMP_Size_width$eq_7 = function(value) { + Opal.def(self, '$width=', $Size_width$eq$7 = function(value) { var self = this; return self.$set($hash2(["width"], {"width": value})) - }, TMP_Size_width$eq_7.$$arity = 1); - return (Opal.defn(self, '$height=', TMP_Size_height$eq_8 = function(value) { + }, $Size_width$eq$7.$$arity = 1); + return (Opal.def(self, '$height=', $Size_height$eq$8 = function(value) { var self = this; return self.$set($hash2(["height"], {"height": value})) - }, TMP_Size_height$eq_8.$$arity = 1), nil) && 'height='; + }, $Size_height$eq$8.$$arity = 1), nil) && 'height='; })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/window/scroll"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/window/scroll"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$to_n', '$supports?', '$new', '$raise', '$x', '$position', '$y', '$[]']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Window(){}; - var self = $Window = $klass($base, $super, 'Window', $Window); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Window'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Scroll(){}; - var self = $Scroll = $klass($base, $super, 'Scroll', $Scroll); + var self = $klass($base, $super, 'Scroll'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Scroll_initialize_1, TMP_Scroll_position_2, TMP_Scroll_position_3, TMP_Scroll_position_4, TMP_Scroll_x_5, TMP_Scroll_y_6, TMP_Scroll_to_7, TMP_Scroll_by_8; + var $nesting = [self].concat($parent_nesting), $Scroll_initialize$1, $Scroll_position$2, $Scroll_position$3, $Scroll_position$4, $Scroll_x$5, $Scroll_y$6, $Scroll_to$7, $Scroll_by$8; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$initialize', TMP_Scroll_initialize_1 = function $$initialize(window) { + Opal.def(self, '$initialize', $Scroll_initialize$1 = function $$initialize(window) { var self = this; self.window = window; return (self["native"] = window.$to_n()); - }, TMP_Scroll_initialize_1.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Window.scroll"))) { + }, $Scroll_initialize$1.$$arity = 1); + if ($truthy($$($nesting, 'Browser')['$supports?']("Window.scroll"))) { - Opal.defn(self, '$position', TMP_Scroll_position_2 = function $$position() { + Opal.def(self, '$position', $Scroll_position$2 = function $$position() { var self = this; @@ -13764,62 +14995,77 @@ Opal.modules["browser/window/scroll"] = function(Opal) { var x = root.scrollLeft || body.scrollLeft, y = root.scrollTop || body.scrollTop; ; - return Opal.const_get_relative($nesting, 'Position').$new(x, y); - }, TMP_Scroll_position_2.$$arity = 0) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Window.pageOffset"))) { + return $$($nesting, 'Position').$new(x, y); + }, $Scroll_position$2.$$arity = 0) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Window.pageOffset"))) { - Opal.defn(self, '$position', TMP_Scroll_position_3 = function $$position() { + Opal.def(self, '$position', $Scroll_position$3 = function $$position() { var self = this; - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].pageXOffset, self["native"].pageYOffset) - }, TMP_Scroll_position_3.$$arity = 0) - } else { + return $$($nesting, 'Position').$new(self["native"].pageXOffset, self["native"].pageYOffset) + }, $Scroll_position$3.$$arity = 0) + } else { - Opal.defn(self, '$position', TMP_Scroll_position_4 = function $$position() { + Opal.def(self, '$position', $Scroll_position$4 = function $$position() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "window scroll unsupported") - }, TMP_Scroll_position_4.$$arity = 0) + return self.$raise($$($nesting, 'NotImplementedError'), "window scroll unsupported") + }, $Scroll_position$4.$$arity = 0) }; - Opal.defn(self, '$x', TMP_Scroll_x_5 = function $$x() { + Opal.def(self, '$x', $Scroll_x$5 = function $$x() { var self = this; return self.$position().$x() - }, TMP_Scroll_x_5.$$arity = 0); + }, $Scroll_x$5.$$arity = 0); - Opal.defn(self, '$y', TMP_Scroll_y_6 = function $$y() { + Opal.def(self, '$y', $Scroll_y$6 = function $$y() { var self = this; return self.$position().$y() - }, TMP_Scroll_y_6.$$arity = 0); + }, $Scroll_y$6.$$arity = 0); - Opal.defn(self, '$to', TMP_Scroll_to_7 = function $$to(what) { - var $a, self = this, x = nil, y = nil; + Opal.def(self, '$to', $Scroll_to$7 = function $$to(what) { + var self = this, x = nil, $ret_or_1 = nil, y = nil, $ret_or_2 = nil; - x = ($truthy($a = what['$[]']("x")) ? $a : self.$x()); - y = ($truthy($a = what['$[]']("y")) ? $a : self.$y()); + x = (function() {if ($truthy(($ret_or_1 = what['$[]']("x")))) { + return $ret_or_1 + } else { + return self.$x() + }; return nil; })(); + y = (function() {if ($truthy(($ret_or_2 = what['$[]']("y")))) { + return $ret_or_2 + } else { + return self.$y() + }; return nil; })(); self["native"].scrollTo(x, y); return self; - }, TMP_Scroll_to_7.$$arity = 1); - return (Opal.defn(self, '$by', TMP_Scroll_by_8 = function $$by(what) { - var $a, self = this, x = nil, y = nil; + }, $Scroll_to$7.$$arity = 1); + return (Opal.def(self, '$by', $Scroll_by$8 = function $$by(what) { + var self = this, x = nil, $ret_or_3 = nil, y = nil, $ret_or_4 = nil; - x = ($truthy($a = what['$[]']("x")) ? $a : 0); - y = ($truthy($a = what['$[]']("y")) ? $a : 0); + x = (function() {if ($truthy(($ret_or_3 = what['$[]']("x")))) { + return $ret_or_3 + } else { + return 0 + }; return nil; })(); + y = (function() {if ($truthy(($ret_or_4 = what['$[]']("y")))) { + return $ret_or_4 + } else { + return 0 + }; return nil; })(); self["native"].scrollBy(x, y); return self; - }, TMP_Scroll_by_8.$$arity = 1), nil) && 'by'; + }, $Scroll_by$8.$$arity = 1), nil) && 'by'; })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/window"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $gvars = Opal.gvars, $hash2 = Opal.hash2; +Opal.modules["browser/window"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $gvars = Opal.gvars, $hash2 = Opal.hash2; Opal.add_stubs(['$require', '$delete', '$join', '$map', '$===', '$new', '$include', '$target', '$supports?', '$[]', '$raise', '$alert', '$prompt', '$confirm']); @@ -13827,31 +15073,38 @@ Opal.modules["browser/window"] = function(Opal) { self.$require("browser/window/size"); self.$require("browser/window/scroll"); (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Window(){}; - var self = $Window = $klass($base, $super, 'Window', $Window); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Window'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Window_open_2, TMP_Window_3, TMP_Window_alert_4, TMP_Window_prompt_5, TMP_Window_confirm_6, TMP_Window_view_7, TMP_Window_size_8, TMP_Window_scroll_9, TMP_Window_send_10, TMP_Window_send_11, TMP_Window_close_12; + var $nesting = [self].concat($parent_nesting), $Window_open$1, $Window$3, $Window_alert$4, $Window_prompt$5, $Window_confirm$6, $Window_view$7, $Window_size$8, $Window_scroll$9, $Window_send$10, $Window_send$11, $Window_close$12; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$open', TMP_Window_open_2 = function $$open(url, options) { - var TMP_1, self = this, name = nil, features = nil; + Opal.defs(self, '$open', $Window_open$1 = function $$open(url, options) { + var $$2, self = this, name = nil, features = nil; name = options.$delete("name"); - features = $send(options, 'map', [], (TMP_1 = function(key, value){var self = TMP_1.$$s || this, $case = nil; -if (key == null) key = nil;if (value == null) value = nil; - + features = $send(options, 'map', [], ($$2 = function(key, value){var self = $$2.$$s == null ? this : $$2.$$s, $case = nil; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; value = (function() {$case = value; if (true['$===']($case)) {return "yes"} else if (false['$===']($case)) {return "no"} else {return value}})(); - return "" + (key) + "=" + (value);}, TMP_1.$$s = self, TMP_1.$$arity = 2, TMP_1)).$join(","); + return "" + (key) + "=" + (value);}, $$2.$$s = self, $$2.$$arity = 2, $$2)).$join(","); var win = window.open(url, name, features); @@ -13861,77 +15114,90 @@ if (key == null) key = nil;if (value == null) value = nil; return self.$new(win); ; - }, TMP_Window_open_2.$$arity = 2); - self.$include(Opal.const_get_relative($nesting, 'Native')); - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Event'), 'Target')); - $send(self, 'target', [], (TMP_Window_3 = function(value){var self = TMP_Window_3.$$s || this; + }, $Window_open$1.$$arity = 2); + self.$include($$($nesting, 'Native')); + self.$include($$$($$($nesting, 'Event'), 'Target')); + $send(self, 'target', [], ($Window$3 = function(value){var self = $Window$3.$$s == null ? this : $Window$3.$$s; if ($gvars.window == null) $gvars.window = nil; -if (value == null) value = nil; - if ($truthy(value == window)) { + + + + if (value == null) { + value = nil; + }; + if ($truthy(value == window)) { return $gvars.window - } else { + } else { return nil - }}, TMP_Window_3.$$s = self, TMP_Window_3.$$arity = 1, TMP_Window_3)); + };}, $Window$3.$$s = self, $Window$3.$$arity = 1, $Window$3)); - Opal.defn(self, '$alert', TMP_Window_alert_4 = function $$alert(value) { + Opal.def(self, '$alert', $Window_alert$4 = function $$alert(value) { var self = this; self["native"].alert(value); return value; - }, TMP_Window_alert_4.$$arity = 1); + }, $Window_alert$4.$$arity = 1); - Opal.defn(self, '$prompt', TMP_Window_prompt_5 = function $$prompt(value) { + Opal.def(self, '$prompt', $Window_prompt$5 = function $$prompt(value) { var self = this; return self["native"].prompt(value) || nil - }, TMP_Window_prompt_5.$$arity = 1); + }, $Window_prompt$5.$$arity = 1); - Opal.defn(self, '$confirm', TMP_Window_confirm_6 = function $$confirm(value) { + Opal.def(self, '$confirm', $Window_confirm$6 = function $$confirm(value) { var self = this; return self["native"].confirm(value) || false - }, TMP_Window_confirm_6.$$arity = 1); + }, $Window_confirm$6.$$arity = 1); - Opal.defn(self, '$view', TMP_Window_view_7 = function $$view() { + Opal.def(self, '$view', $Window_view$7 = function $$view() { var self = this; - return Opal.const_get_relative($nesting, 'View').$new(self) - }, TMP_Window_view_7.$$arity = 0); + return $$($nesting, 'View').$new(self) + }, $Window_view$7.$$arity = 0); - Opal.defn(self, '$size', TMP_Window_size_8 = function $$size() { + Opal.def(self, '$size', $Window_size$8 = function $$size() { var self = this; - return Opal.const_get_relative($nesting, 'Size').$new(self) - }, TMP_Window_size_8.$$arity = 0); + return $$($nesting, 'Size').$new(self) + }, $Window_size$8.$$arity = 0); - Opal.defn(self, '$scroll', TMP_Window_scroll_9 = function $$scroll() { + Opal.def(self, '$scroll', $Window_scroll$9 = function $$scroll() { var self = this; - return Opal.const_get_relative($nesting, 'Scroll').$new(self) - }, TMP_Window_scroll_9.$$arity = 0); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Window.send"))) { + return $$($nesting, 'Scroll').$new(self) + }, $Window_scroll$9.$$arity = 0); + if ($truthy($$($nesting, 'Browser')['$supports?']("Window.send"))) { - Opal.defn(self, '$send', TMP_Window_send_10 = function $$send(message, options) { - var $a, self = this; + Opal.def(self, '$send', $Window_send$10 = function $$send(message, options) { + var self = this, $ret_or_1 = nil; + + if (options == null) { options = $hash2([], {}); - } - return self["native"].postMessage(message, ($truthy($a = options['$[]']("to")) ? $a : "*")) - }, TMP_Window_send_10.$$arity = -2) - } else { + }; + return self["native"].postMessage(message, (function() {if ($truthy(($ret_or_1 = options['$[]']("to")))) { + return $ret_or_1 + } else { + return "*" + }; return nil; })()); + }, $Window_send$10.$$arity = -2) + } else { - Opal.defn(self, '$send', TMP_Window_send_11 = function $$send(message, options) { + Opal.def(self, '$send', $Window_send$11 = function $$send(message, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "message sending unsupported") - }, TMP_Window_send_11.$$arity = -2) + }; + return self.$raise($$($nesting, 'NotImplementedError'), "message sending unsupported"); + }, $Window_send$11.$$arity = -2) }; - return (Opal.defn(self, '$close', TMP_Window_close_12 = function $$close() { + return (Opal.def(self, '$close', $Window_close$12 = function $$close() { var self = this; @@ -13939,227 +15205,256 @@ if (value == null) value = nil; (window.opener = null && window.close()) || (window.opener = '' && window.close()); - }, TMP_Window_close_12.$$arity = 0), nil) && 'close'; + }, $Window_close$12.$$arity = 0), nil) && 'close'; })($nesting[0], null, $nesting) })($nesting[0], $nesting); - $gvars.window = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'Window').$new(window); + $gvars.window = $$$($$($nesting, 'Browser'), 'Window').$new(window); return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_alert_13, TMP_Kernel_prompt_14, TMP_Kernel_confirm_15; + var $nesting = [self].concat($parent_nesting), $Kernel_alert$13, $Kernel_prompt$14, $Kernel_confirm$15; - Opal.defn(self, '$alert', TMP_Kernel_alert_13 = function $$alert(value) { + Opal.def(self, '$alert', $Kernel_alert$13 = function $$alert(value) { var self = this; if ($gvars.window == null) $gvars.window = nil; return $gvars.window.$alert(value) - }, TMP_Kernel_alert_13.$$arity = 1); + }, $Kernel_alert$13.$$arity = 1); - Opal.defn(self, '$prompt', TMP_Kernel_prompt_14 = function $$prompt(value) { + Opal.def(self, '$prompt', $Kernel_prompt$14 = function $$prompt(value) { var self = this; if ($gvars.window == null) $gvars.window = nil; return $gvars.window.$prompt(value) - }, TMP_Kernel_prompt_14.$$arity = 1); - - Opal.defn(self, '$confirm', TMP_Kernel_confirm_15 = function $$confirm(value) { + }, $Kernel_prompt$14.$$arity = 1); + return (Opal.def(self, '$confirm', $Kernel_confirm$15 = function $$confirm(value) { var self = this; if ($gvars.window == null) $gvars.window = nil; return $gvars.window.$confirm(value) - }, TMP_Kernel_confirm_15.$$arity = 1); + }, $Kernel_confirm$15.$$arity = 1), nil) && 'confirm'; })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/node_set"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["browser/dom/node_set"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$new', '$uniq', '$map', '$flatten', '$DOM', '$convert', '$respond_to?', '$each', '$__send__', '$to_proc', '$===', '$at_css', '$at_xpath', '$[]', '$css', '$select', '$=~', '$search', '$xpath']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $NodeSet(){}; - var self = $NodeSet = $klass($base, $super, 'NodeSet', $NodeSet); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'NodeSet'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NodeSet_$$_2, TMP_NodeSet_initialize_3, TMP_NodeSet_method_missing_4, TMP_NodeSet_at_css_7, TMP_NodeSet_at_xpath_9, TMP_NodeSet_css_11, TMP_NodeSet_filter_13, TMP_NodeSet_search_15, TMP_NodeSet_xpath_17, TMP_NodeSet_to_ary_18; + var $nesting = [self].concat($parent_nesting), $NodeSet_$$$1, $NodeSet_initialize$3, $NodeSet_method_missing$4, $NodeSet_at_css$6, $NodeSet_at_xpath$8, $NodeSet_css$10, $NodeSet_filter$12, $NodeSet_search$14, $NodeSet_xpath$16, $NodeSet_to_ary$18; - def.literal = nil; + self.$$prototype.literal = nil; - Opal.defs(self, '$[]', TMP_NodeSet_$$_2 = function($a_rest) { - var TMP_1, self = this, nodes; + Opal.defs(self, '$[]', $NodeSet_$$$1 = function($a) { + var $post_args, nodes, $$2, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - nodes = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - nodes[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$new($send(nodes.$flatten(), 'map', [], (TMP_1 = function(x){var self = TMP_1.$$s || this; -if (x == null) x = nil; - return self.$DOM(Opal.const_get_relative($nesting, 'Native').$convert(x))}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)).$uniq()) - }, TMP_NodeSet_$$_2.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + nodes = $post_args;; + return self.$new($send(nodes.$flatten(), 'map', [], ($$2 = function(x){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (x == null) { + x = nil; + }; + return self.$DOM($$($nesting, 'Native').$convert(x));}, $$2.$$s = self, $$2.$$arity = 1, $$2)).$uniq()); + }, $NodeSet_$$$1.$$arity = -1); - Opal.defn(self, '$initialize', TMP_NodeSet_initialize_3 = function $$initialize(literal) { + Opal.def(self, '$initialize', $NodeSet_initialize$3 = function $$initialize(literal) { var self = this; return (self.literal = literal) - }, TMP_NodeSet_initialize_3.$$arity = 1); + }, $NodeSet_initialize$3.$$arity = 1); - Opal.defn(self, '$method_missing', TMP_NodeSet_method_missing_4 = function $$method_missing(name, $a_rest) { - var TMP_5, self = this, args, $iter = TMP_NodeSet_method_missing_4.$$p, block = $iter || nil, result = nil; + Opal.def(self, '$method_missing', $NodeSet_method_missing$4 = function $$method_missing(name, $a) { + var $iter = $NodeSet_method_missing$4.$$p, block = $iter || nil, $post_args, args, $$5, self = this, result = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_NodeSet_method_missing_4.$$p = null; + if ($iter) $NodeSet_method_missing$4.$$p = null; + + if ($iter) $NodeSet_method_missing$4.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(self.literal['$respond_to?'](name))) { - } else { + } else { - $send(self, 'each', [], (TMP_5 = function(el){var self = TMP_5.$$s || this; -if (el == null) el = nil; - return $send(el, '__send__', [name].concat(Opal.to_a(args)), block.$to_proc())}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); + $send(self, 'each', [], ($$5 = function(el){var self = $$5.$$s == null ? this : $$5.$$s; + + + + if (el == null) { + el = nil; + }; + return $send(el, '__send__', [name].concat(Opal.to_a(args)), block.$to_proc());}, $$5.$$s = self, $$5.$$arity = 1, $$5)); return self; }; result = $send(self.literal, '__send__', [name].concat(Opal.to_a(args)), block.$to_proc()); if ($truthy(result === self.literal)) { return self - } else if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](result))) { - return Opal.const_get_relative($nesting, 'NodeSet').$new(result) - } else { + } else if ($truthy($$($nesting, 'Array')['$==='](result))) { + return $$($nesting, 'NodeSet').$new(result) + } else { return result }; - }, TMP_NodeSet_method_missing_4.$$arity = -2); + }, $NodeSet_method_missing$4.$$arity = -2); - Opal.defn(self, '$at_css', TMP_NodeSet_at_css_7 = function $$at_css($a_rest) {try { + Opal.def(self, '$at_css', $NodeSet_at_css$6 = function $$at_css($a) {try { - var TMP_6, self = this, rules; + var $post_args, rules, $$7, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - rules = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - rules[$arg_idx - 0] = arguments[$arg_idx]; - } - $send(self, 'each', [], (TMP_6 = function(node){var self = TMP_6.$$s || this; -if (node == null) node = nil; - if ($truthy((node = $send(node, 'at_css', Opal.to_a(rules))))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + rules = $post_args;; + $send(self, 'each', [], ($$7 = function(node){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (node == null) { + node = nil; + }; + if ($truthy((node = $send(node, 'at_css', Opal.to_a(rules))))) { Opal.ret(node) - } else { + } else { return nil - }}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); + };}, $$7.$$s = self, $$7.$$arity = 1, $$7)); return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_NodeSet_at_css_7.$$arity = -1); + }, $NodeSet_at_css$6.$$arity = -1); - Opal.defn(self, '$at_xpath', TMP_NodeSet_at_xpath_9 = function $$at_xpath($a_rest) {try { + Opal.def(self, '$at_xpath', $NodeSet_at_xpath$8 = function $$at_xpath($a) {try { - var TMP_8, self = this, paths; + var $post_args, paths, $$9, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - paths = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - paths[$arg_idx - 0] = arguments[$arg_idx]; - } - $send(self, 'each', [], (TMP_8 = function(node){var self = TMP_8.$$s || this; -if (node == null) node = nil; - if ($truthy((node = $send(node, 'at_xpath', Opal.to_a(paths))))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + paths = $post_args;; + $send(self, 'each', [], ($$9 = function(node){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (node == null) { + node = nil; + }; + if ($truthy((node = $send(node, 'at_xpath', Opal.to_a(paths))))) { Opal.ret(node) - } else { + } else { return nil - }}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)); + };}, $$9.$$s = self, $$9.$$arity = 1, $$9)); return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_NodeSet_at_xpath_9.$$arity = -1); + }, $NodeSet_at_xpath$8.$$arity = -1); - Opal.defn(self, '$css', TMP_NodeSet_css_11 = function $$css(path) { - var TMP_10, self = this; + Opal.def(self, '$css', $NodeSet_css$10 = function $$css(path) { + var $$11, self = this; + + return $$($nesting, 'NodeSet')['$[]']($send(self.literal, 'map', [], ($$11 = function(node){var self = $$11.$$s == null ? this : $$11.$$s; - return Opal.const_get_relative($nesting, 'NodeSet')['$[]']($send(self.literal, 'map', [], (TMP_10 = function(node){var self = TMP_10.$$s || this; -if (node == null) node = nil; - return node.$css(path)}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10))) - }, TMP_NodeSet_css_11.$$arity = 1); + + + if (node == null) { + node = nil; + }; + return node.$css(path);}, $$11.$$s = self, $$11.$$arity = 1, $$11))) + }, $NodeSet_css$10.$$arity = 1); - Opal.defn(self, '$filter', TMP_NodeSet_filter_13 = function $$filter(expression) { - var TMP_12, self = this; + Opal.def(self, '$filter', $NodeSet_filter$12 = function $$filter(expression) { + var $$13, self = this; + + return $send(self.literal, 'select', [], ($$13 = function(node){var self = $$13.$$s == null ? this : $$13.$$s; - return $send(self.literal, 'select', [], (TMP_12 = function(node){var self = TMP_12.$$s || this; -if (node == null) node = nil; - return node['$=~'](expression)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)) - }, TMP_NodeSet_filter_13.$$arity = 1); + + + if (node == null) { + node = nil; + }; + return node['$=~'](expression);}, $$13.$$s = self, $$13.$$arity = 1, $$13)) + }, $NodeSet_filter$12.$$arity = 1); - Opal.defn(self, '$search', TMP_NodeSet_search_15 = function $$search($a_rest) { - var TMP_14, self = this, what; + Opal.def(self, '$search', $NodeSet_search$14 = function $$search($a) { + var $post_args, what, $$15, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - what = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - what[$arg_idx - 0] = arguments[$arg_idx]; - } - return Opal.const_get_relative($nesting, 'NodeSet')['$[]']($send(self.literal, 'map', [], (TMP_14 = function(node){var self = TMP_14.$$s || this; -if (node == null) node = nil; - return $send(node, 'search', Opal.to_a(what))}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14))) - }, TMP_NodeSet_search_15.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + what = $post_args;; + return $$($nesting, 'NodeSet')['$[]']($send(self.literal, 'map', [], ($$15 = function(node){var self = $$15.$$s == null ? this : $$15.$$s; + + + + if (node == null) { + node = nil; + }; + return $send(node, 'search', Opal.to_a(what));}, $$15.$$s = self, $$15.$$arity = 1, $$15))); + }, $NodeSet_search$14.$$arity = -1); - Opal.defn(self, '$xpath', TMP_NodeSet_xpath_17 = function $$xpath(path) { - var TMP_16, self = this; + Opal.def(self, '$xpath', $NodeSet_xpath$16 = function $$xpath(path) { + var $$17, self = this; + + return $$($nesting, 'NodeSet')['$[]']($send(self.literal, 'map', [], ($$17 = function(node){var self = $$17.$$s == null ? this : $$17.$$s; - return Opal.const_get_relative($nesting, 'NodeSet')['$[]']($send(self.literal, 'map', [], (TMP_16 = function(node){var self = TMP_16.$$s || this; -if (node == null) node = nil; - return node.$xpath(path)}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16))) - }, TMP_NodeSet_xpath_17.$$arity = 1); - return (Opal.defn(self, '$to_ary', TMP_NodeSet_to_ary_18 = function $$to_ary() { + + + if (node == null) { + node = nil; + }; + return node.$xpath(path);}, $$17.$$s = self, $$17.$$arity = 1, $$17))) + }, $NodeSet_xpath$16.$$arity = 1); + return (Opal.def(self, '$to_ary', $NodeSet_to_ary$18 = function $$to_ary() { var self = this; return self.literal - }, TMP_NodeSet_to_ary_18.$$arity = 0), nil) && 'to_ary'; + }, $NodeSet_to_ary$18.$$arity = 0), nil) && 'to_ary'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/node"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["browser/dom/node"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $alias = Opal.alias, $hash2 = Opal.hash2; Opal.add_stubs(['$include', '$==', '$[]', '$new', '$raise', '$convert', '$respond_to?', '$each', '$<<', '$native?', '$===', '$>>', '$DOM', '$to_proc', '$parent', '$last', '$pop', '$select!', '$=~', '$remove_child', '$remove', '$children', '$supports?', '$node_type', '$first', '$select', '$element_children', '$to_s', '$next', '$!', '$element?', '$previous', '$try_convert', '$name']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Node(){}; - var self = $Node = $klass($base, $super, 'Node', $Node); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Node'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Node_new_1, TMP_Node_$eq$eq_2, TMP_Node_$lt$lt_4, TMP_Node_$gt$gt_6, TMP_Node_add_child_7, TMP_Node_add_next_sibling_8, TMP_Node_add_previous_sibling_9, TMP_Node_append_to_10, TMP_Node_ancestors_12, TMP_Node_remove_13, TMP_Node_clear_14, TMP_Node_content_15, TMP_Node_content$eq_16, TMP_Node_content_17, TMP_Node_content$eq_18, TMP_Node_content_19, TMP_Node_content$eq_20, TMP_Node_blank$q_21, TMP_Node_cdata$q_22, TMP_Node_child_23, TMP_Node_children_24, TMP_Node_children$eq_25, TMP_Node_comment$q_26, TMP_Node_document_27, TMP_Node_document$q_28, TMP_Node_elem$q_29, TMP_Node_element_children_30, TMP_Node_first_element_child_31, TMP_Node_fragment$q_32, TMP_Node_inner_html_33, TMP_Node_inner_html$eq_34, TMP_Node_last_element_child_35, TMP_Node_name_36, TMP_Node_name$eq_37, TMP_Node_namespace_38, TMP_Node_next_39, TMP_Node_next_element_40, TMP_Node_node_type_41, TMP_Node_parent_42, TMP_Node_parent$eq_43, TMP_Node_parse_44, TMP_Node_path_45, TMP_Node_prepend_to_46, TMP_Node_previous_47, TMP_Node_previous_element_48, TMP_Node_remove_child_49, TMP_Node_replace_50, TMP_Node_text$q_51, TMP_Node_traverse_52, TMP_Node_value_53, TMP_Node_value$eq_54, TMP_Node_inspect_55; + var $nesting = [self].concat($parent_nesting), $Node_new$1, $Node_$eq_eq$2, $Node_$lt$lt$3, $Node_$gt$gt$5, $Node_add_child$7, $Node_add_next_sibling$8, $Node_add_previous_sibling$9, $Node_append_to$10, $Node_ancestors$11, $Node_remove$13, $Node_clear$14, $Node_content$15, $Node_content$eq$16, $Node_content$17, $Node_content$eq$18, $Node_content$19, $Node_content$eq$20, $Node_blank$ques$21, $Node_cdata$ques$22, $Node_child$23, $Node_children$24, $Node_children$eq$25, $Node_comment$ques$26, $Node_document$27, $Node_document$ques$28, $Node_elem$ques$29, $Node_element_children$30, $Node_first_element_child$31, $Node_fragment$ques$32, $Node_inner_html$33, $Node_inner_html$eq$34, $Node_last_element_child$35, $Node_name$36, $Node_name$eq$37, $Node_namespace$38, $Node_next$39, $Node_next_element$40, $Node_node_type$41, $Node_parent$42, $Node_parent$eq$43, $Node_parse$44, $Node_path$45, $Node_prepend_to$46, $Node_previous$47, $Node_previous_element$48, $Node_remove_child$49, $Node_replace$50, $Node_text$ques$51, $Node_traverse$52, $Node_value$53, $Node_value$eq$54, $Node_inspect$55; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); Opal.const_set($nesting[0], 'ELEMENT_NODE', 1); Opal.const_set($nesting[0], 'ATTRIBUTE_NODE', 2); Opal.const_set($nesting[0], 'TEXT_NODE', 3); @@ -14172,921 +15467,1005 @@ Opal.modules["browser/dom/node"] = function(Opal) { Opal.const_set($nesting[0], 'DOCUMENT_TYPE_NODE', 10); Opal.const_set($nesting[0], 'DOCUMENT_FRAGMENT_NODE', 11); Opal.const_set($nesting[0], 'NOTATION_NODE', 12); - Opal.defs(self, '$new', TMP_Node_new_1 = function(value) { - var $a, self = this, $iter = TMP_Node_new_1.$$p, $yield = $iter || nil, klass = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.defs(self, '$new', $Node_new$1 = function(value) { + var $iter = $Node_new$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil, klass = nil; if (self.classes == null) self.classes = nil; - if ($iter) TMP_Node_new_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if (self['$=='](Opal.const_get_relative($nesting, 'Node'))) { + if ($iter) $Node_new$1.$$p = null; + if (self['$==']($$($nesting, 'Node'))) { - self.classes = ($truthy($a = self.classes) ? $a : [nil, Opal.const_get_relative($nesting, 'Element'), Opal.const_get_relative($nesting, 'Attribute'), Opal.const_get_relative($nesting, 'Text'), Opal.const_get_relative($nesting, 'CDATA'), nil, nil, nil, Opal.const_get_relative($nesting, 'Comment'), Opal.const_get_relative($nesting, 'Document'), nil, Opal.const_get_relative($nesting, 'DocumentFragment')]); + self.classes = (function() {if ($truthy(($ret_or_1 = self.classes))) { + return $ret_or_1 + } else { + return [nil, $$($nesting, 'Element'), $$($nesting, 'Attribute'), $$($nesting, 'Text'), $$($nesting, 'CDATA'), nil, nil, nil, $$($nesting, 'Comment'), $$($nesting, 'Document'), nil, $$($nesting, 'DocumentFragment')] + }; return nil; })(); if ($truthy((klass = self.classes['$[]'](value.nodeType)))) { return klass.$new(value) - } else { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "cannot instantiate a non derived Node object") - }; } else { - return $send(self, Opal.find_super_dispatcher(self, 'new', TMP_Node_new_1, false, $Node), $zuper, $iter) + return self.$raise($$($nesting, 'ArgumentError'), "cannot instantiate a non derived Node object") + }; + } else { + return $send2(self, $find_super(self, 'new', $Node_new$1, false, true), 'new', [value], $iter) } - }, TMP_Node_new_1.$$arity = 1); + }, $Node_new$1.$$arity = 1); - Opal.defn(self, '$==', TMP_Node_$eq$eq_2 = function(other) { + Opal.def(self, '$==', $Node_$eq_eq$2 = function(other) { var self = this; - return self["native"] === Opal.const_get_relative($nesting, 'Native').$convert(other) - }, TMP_Node_$eq$eq_2.$$arity = 1); + return self["native"] === $$($nesting, 'Native').$convert(other) + }, $Node_$eq_eq$2.$$arity = 1); - Opal.defn(self, '$<<', TMP_Node_$lt$lt_4 = function(node) { - var TMP_3, self = this; + Opal.def(self, '$<<', $Node_$lt$lt$3 = function(node) { + var $$4, self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Opal')['$respond_to?'](node, "each"))) { + if ($truthy($$($nesting, 'Opal')['$respond_to?'](node, "each"))) { - $send(node, 'each', [], (TMP_3 = function(n){var self = TMP_3.$$s || this; -if (n == null) n = nil; - return self['$<<'](n)}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); + $send(node, 'each', [], ($$4 = function(n){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (n == null) { + n = nil; + }; + return self['$<<'](n);}, $$4.$$s = self, $$4.$$arity = 1, $$4)); return self;}; if ($truthy(self['$native?'](node))) { - } else if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](node))) { + } else if ($truthy($$($nesting, 'String')['$==='](node))) { node = self["native"].ownerDocument.createTextNode(node) - } else { - node = Opal.const_get_relative($nesting, 'Native').$convert(node) + } else { + node = $$($nesting, 'Native').$convert(node) }; self["native"].appendChild(node); return self; - }, TMP_Node_$lt$lt_4.$$arity = 1); + }, $Node_$lt$lt$3.$$arity = 1); - Opal.defn(self, '$>>', TMP_Node_$gt$gt_6 = function(node) { - var TMP_5, self = this; + Opal.def(self, '$>>', $Node_$gt$gt$5 = function(node) { + var $$6, self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Opal')['$respond_to?'](node, "each"))) { + if ($truthy($$($nesting, 'Opal')['$respond_to?'](node, "each"))) { - $send(node, 'each', [], (TMP_5 = function(n){var self = TMP_5.$$s || this; -if (n == null) n = nil; - return self['$>>'](n)}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); + $send(node, 'each', [], ($$6 = function(n){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (n == null) { + n = nil; + }; + return self['$>>'](n);}, $$6.$$s = self, $$6.$$arity = 1, $$6)); return self;}; if ($truthy(self['$native?'](node))) { - } else if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](node))) { + } else if ($truthy($$($nesting, 'String')['$==='](node))) { node = self["native"].ownerDocument.createTextNode(node) - } else { - node = Opal.const_get_relative($nesting, 'Native').$convert(node) + } else { + node = $$($nesting, 'Native').$convert(node) }; if ($truthy(self["native"].firstChild == null)) { self["native"].appendChild(node) - } else { + } else { self["native"].insertBefore(node, self["native"].firstChild) }; return self; - }, TMP_Node_$gt$gt_6.$$arity = 1); + }, $Node_$gt$gt$5.$$arity = 1); - Opal.defn(self, '$add_child', TMP_Node_add_child_7 = function $$add_child(node) { - var self = this, $iter = TMP_Node_add_child_7.$$p, block = $iter || nil; + Opal.def(self, '$add_child', $Node_add_child$7 = function $$add_child(node) { + var $iter = $Node_add_child$7.$$p, block = $iter || nil, self = this; + if ($iter) $Node_add_child$7.$$p = null; + + + if ($iter) $Node_add_child$7.$$p = null;; + if (node == null) { node = nil; - } - if ($iter) TMP_Node_add_child_7.$$p = null; - + }; if ($truthy(node)) { - } else { + } else { node = $send(self, 'DOM', [], block.$to_proc()) }; return self['$<<'](node); - }, TMP_Node_add_child_7.$$arity = -1); + }, $Node_add_child$7.$$arity = -1); - Opal.defn(self, '$add_next_sibling', TMP_Node_add_next_sibling_8 = function $$add_next_sibling(node) { - var self = this, $iter = TMP_Node_add_next_sibling_8.$$p, block = $iter || nil; + Opal.def(self, '$add_next_sibling', $Node_add_next_sibling$8 = function $$add_next_sibling(node) { + var $iter = $Node_add_next_sibling$8.$$p, block = $iter || nil, self = this; + if ($iter) $Node_add_next_sibling$8.$$p = null; + + + if ($iter) $Node_add_next_sibling$8.$$p = null;; + if (node == null) { node = nil; - } - if ($iter) TMP_Node_add_next_sibling_8.$$p = null; - + }; if ($truthy(node)) { - } else { + } else { node = $send(self, 'DOM', [], block.$to_proc()) }; if ($truthy(self['$native?'](node))) { - } else if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](node))) { + } else if ($truthy($$($nesting, 'String')['$==='](node))) { node = self["native"].ownerDocument.createTextNode(node) - } else { - node = Opal.const_get_relative($nesting, 'Native').$convert(node) + } else { + node = $$($nesting, 'Native').$convert(node) }; return self["native"].parentNode.insertBefore(node, self["native"].nextSibling); - }, TMP_Node_add_next_sibling_8.$$arity = -1); + }, $Node_add_next_sibling$8.$$arity = -1); - Opal.defn(self, '$add_previous_sibling', TMP_Node_add_previous_sibling_9 = function $$add_previous_sibling(node) { - var self = this, $iter = TMP_Node_add_previous_sibling_9.$$p, block = $iter || nil; + Opal.def(self, '$add_previous_sibling', $Node_add_previous_sibling$9 = function $$add_previous_sibling(node) { + var $iter = $Node_add_previous_sibling$9.$$p, block = $iter || nil, self = this; + if ($iter) $Node_add_previous_sibling$9.$$p = null; + + + if ($iter) $Node_add_previous_sibling$9.$$p = null;; + if (node == null) { node = nil; - } - if ($iter) TMP_Node_add_previous_sibling_9.$$p = null; - + }; if ($truthy(node)) { - } else { + } else { node = $send(self, 'DOM', [], block.$to_proc()) }; if ($truthy(self['$native?'](node))) { - } else if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](node))) { + } else if ($truthy($$($nesting, 'String')['$==='](node))) { node = self["native"].ownerDocument.createTextNode(node) - } else { - node = Opal.const_get_relative($nesting, 'Native').$convert(node) + } else { + node = $$($nesting, 'Native').$convert(node) }; return self["native"].parentNode.insertBefore(node, self["native"]); - }, TMP_Node_add_previous_sibling_9.$$arity = -1); - Opal.alias(self, "after", "add_next_sibling"); + }, $Node_add_previous_sibling$9.$$arity = -1); + $alias(self, "after", "add_next_sibling"); - Opal.defn(self, '$append_to', TMP_Node_append_to_10 = function $$append_to(node) { + Opal.def(self, '$append_to', $Node_append_to$10 = function $$append_to(node) { var self = this; return node['$<<'](self) - }, TMP_Node_append_to_10.$$arity = 1); + }, $Node_append_to$10.$$arity = 1); - Opal.defn(self, '$ancestors', TMP_Node_ancestors_12 = function $$ancestors(expression) { - var $a, TMP_11, self = this, parents = nil, parent = nil; + Opal.def(self, '$ancestors', $Node_ancestors$11 = function $$ancestors(expression) { + var $a, $$12, self = this, parents = nil, parent = nil; + + if (expression == null) { expression = nil; - } - + }; if ($truthy(self.$parent())) { - } else { - return Opal.const_get_relative($nesting, 'NodeSet')['$[]']() + } else { + return $$($nesting, 'NodeSet')['$[]']() }; parents = [self.$parent()]; while ($truthy((parent = parents.$last().$parent()))) { parents['$<<'](parent) }; - if ($truthy(Opal.const_get_relative($nesting, 'Document')['$==='](parents.$last()))) { + if ($truthy($$($nesting, 'Document')['$==='](parents.$last()))) { parents.$pop()}; if ($truthy(expression)) { - $send(parents, 'select!', [], (TMP_11 = function(p){var self = TMP_11.$$s || this; -if (p == null) p = nil; - return p['$=~'](expression)}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11))}; - return Opal.const_get_relative($nesting, 'NodeSet').$new(parents); - }, TMP_Node_ancestors_12.$$arity = -1); - Opal.alias(self, "before", "add_previous_sibling"); + $send(parents, 'select!', [], ($$12 = function(p){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (p == null) { + p = nil; + }; + return p['$=~'](expression);}, $$12.$$s = self, $$12.$$arity = 1, $$12))}; + return $$($nesting, 'NodeSet').$new(parents); + }, $Node_ancestors$11.$$arity = -1); + $alias(self, "before", "add_previous_sibling"); - Opal.defn(self, '$remove', TMP_Node_remove_13 = function $$remove() { + Opal.def(self, '$remove', $Node_remove$13 = function $$remove() { var self = this; if ($truthy(self.$parent())) { return self.$parent().$remove_child(self) - } else { + } else { return nil } - }, TMP_Node_remove_13.$$arity = 0); + }, $Node_remove$13.$$arity = 0); - Opal.defn(self, '$clear', TMP_Node_clear_14 = function $$clear() { + Opal.def(self, '$clear', $Node_clear$14 = function $$clear() { var self = this; return self.$children().$remove() - }, TMP_Node_clear_14.$$arity = 0); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.textContent"))) { + }, $Node_clear$14.$$arity = 0); + if ($truthy($$($nesting, 'Browser')['$supports?']("Element.textContent"))) { - Opal.defn(self, '$content', TMP_Node_content_15 = function $$content() { + Opal.def(self, '$content', $Node_content$15 = function $$content() { var self = this; return self["native"].textContent - }, TMP_Node_content_15.$$arity = 0); + }, $Node_content$15.$$arity = 0); - Opal.defn(self, '$content=', TMP_Node_content$eq_16 = function(value) { + Opal.def(self, '$content=', $Node_content$eq$16 = function(value) { var self = this; return self["native"].textContent = value - }, TMP_Node_content$eq_16.$$arity = 1); - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.innerText"))) { + }, $Node_content$eq$16.$$arity = 1); + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Element.innerText"))) { - Opal.defn(self, '$content', TMP_Node_content_17 = function $$content() { + Opal.def(self, '$content', $Node_content$17 = function $$content() { var self = this; return self["native"].innerText - }, TMP_Node_content_17.$$arity = 0); + }, $Node_content$17.$$arity = 0); - Opal.defn(self, '$content=', TMP_Node_content$eq_18 = function(value) { + Opal.def(self, '$content=', $Node_content$eq$18 = function(value) { var self = this; return self["native"].innerText = value - }, TMP_Node_content$eq_18.$$arity = 1); - } else { + }, $Node_content$eq$18.$$arity = 1); + } else { - Opal.defn(self, '$content', TMP_Node_content_19 = function $$content() { + Opal.def(self, '$content', $Node_content$19 = function $$content() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "node text content unsupported") - }, TMP_Node_content_19.$$arity = 0); + return self.$raise($$($nesting, 'NotImplementedError'), "node text content unsupported") + }, $Node_content$19.$$arity = 0); - Opal.defn(self, '$content=', TMP_Node_content$eq_20 = function(value) { + Opal.def(self, '$content=', $Node_content$eq$20 = function(value) { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "node text content unsupported") - }, TMP_Node_content$eq_20.$$arity = 1); + return self.$raise($$($nesting, 'NotImplementedError'), "node text content unsupported") + }, $Node_content$eq$20.$$arity = 1); }; - Opal.defn(self, '$blank?', TMP_Node_blank$q_21 = function() { + Opal.def(self, '$blank?', $Node_blank$ques$21 = function() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Node_blank$q_21.$$arity = 0); + return self.$raise($$($nesting, 'NotImplementedError')) + }, $Node_blank$ques$21.$$arity = 0); - Opal.defn(self, '$cdata?', TMP_Node_cdata$q_22 = function() { + Opal.def(self, '$cdata?', $Node_cdata$ques$22 = function() { var self = this; - return self.$node_type()['$=='](Opal.const_get_relative($nesting, 'CDATA_SECTION_NODE')) - }, TMP_Node_cdata$q_22.$$arity = 0); + return self.$node_type()['$==']($$($nesting, 'CDATA_SECTION_NODE')) + }, $Node_cdata$ques$22.$$arity = 0); - Opal.defn(self, '$child', TMP_Node_child_23 = function $$child() { + Opal.def(self, '$child', $Node_child$23 = function $$child() { var self = this; return self.$children().$first() - }, TMP_Node_child_23.$$arity = 0); + }, $Node_child$23.$$arity = 0); - Opal.defn(self, '$children', TMP_Node_children_24 = function $$children() { + Opal.def(self, '$children', $Node_children$24 = function $$children() { var self = this; - return Opal.const_get_relative($nesting, 'NodeSet')['$[]'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array').$new(self["native"].childNodes)) - }, TMP_Node_children_24.$$arity = 0); + return $$($nesting, 'NodeSet')['$[]']($$$($$($nesting, 'Native'), 'Array').$new(self["native"].childNodes)) + }, $Node_children$24.$$arity = 0); - Opal.defn(self, '$children=', TMP_Node_children$eq_25 = function(node) { + Opal.def(self, '$children=', $Node_children$eq$25 = function(node) { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Node_children$eq_25.$$arity = 1); + return self.$raise($$($nesting, 'NotImplementedError')) + }, $Node_children$eq$25.$$arity = 1); - Opal.defn(self, '$comment?', TMP_Node_comment$q_26 = function() { + Opal.def(self, '$comment?', $Node_comment$ques$26 = function() { var self = this; - return self.$node_type()['$=='](Opal.const_get_relative($nesting, 'COMMENT_NODE')) - }, TMP_Node_comment$q_26.$$arity = 0); + return self.$node_type()['$==']($$($nesting, 'COMMENT_NODE')) + }, $Node_comment$ques$26.$$arity = 0); - Opal.defn(self, '$document', TMP_Node_document_27 = function $$document() { + Opal.def(self, '$document', $Node_document$27 = function $$document() { var self = this; if ($truthy((typeof(self["native"].ownerDocument) !== "undefined"))) { return self.$DOM(self["native"].ownerDocument) - } else { + } else { return nil } - }, TMP_Node_document_27.$$arity = 0); + }, $Node_document$27.$$arity = 0); - Opal.defn(self, '$document?', TMP_Node_document$q_28 = function() { + Opal.def(self, '$document?', $Node_document$ques$28 = function() { var self = this; - return self.$node_type()['$=='](Opal.const_get_relative($nesting, 'DOCUMENT_NODE')) - }, TMP_Node_document$q_28.$$arity = 0); + return self.$node_type()['$==']($$($nesting, 'DOCUMENT_NODE')) + }, $Node_document$ques$28.$$arity = 0); - Opal.defn(self, '$elem?', TMP_Node_elem$q_29 = function() { + Opal.def(self, '$elem?', $Node_elem$ques$29 = function() { var self = this; - return self.$node_type()['$=='](Opal.const_get_relative($nesting, 'ELEMENT_NODE')) - }, TMP_Node_elem$q_29.$$arity = 0); - Opal.alias(self, "element?", "elem?"); + return self.$node_type()['$==']($$($nesting, 'ELEMENT_NODE')) + }, $Node_elem$ques$29.$$arity = 0); + $alias(self, "element?", "elem?"); - Opal.defn(self, '$element_children', TMP_Node_element_children_30 = function $$element_children() { + Opal.def(self, '$element_children', $Node_element_children$30 = function $$element_children() { var self = this; return $send(self.$children(), 'select', [], "element?".$to_proc()) - }, TMP_Node_element_children_30.$$arity = 0); - Opal.alias(self, "elements", "element_children"); + }, $Node_element_children$30.$$arity = 0); + $alias(self, "elements", "element_children"); - Opal.defn(self, '$first_element_child', TMP_Node_first_element_child_31 = function $$first_element_child() { + Opal.def(self, '$first_element_child', $Node_first_element_child$31 = function $$first_element_child() { var self = this; return self.$element_children().$first() - }, TMP_Node_first_element_child_31.$$arity = 0); + }, $Node_first_element_child$31.$$arity = 0); - Opal.defn(self, '$fragment?', TMP_Node_fragment$q_32 = function() { + Opal.def(self, '$fragment?', $Node_fragment$ques$32 = function() { var self = this; - return self.$node_type()['$=='](Opal.const_get_relative($nesting, 'DOCUMENT_FRAGMENT_NODE')) - }, TMP_Node_fragment$q_32.$$arity = 0); + return self.$node_type()['$==']($$($nesting, 'DOCUMENT_FRAGMENT_NODE')) + }, $Node_fragment$ques$32.$$arity = 0); - Opal.defn(self, '$inner_html', TMP_Node_inner_html_33 = function $$inner_html() { + Opal.def(self, '$inner_html', $Node_inner_html$33 = function $$inner_html() { var self = this; return self["native"].innerHTML - }, TMP_Node_inner_html_33.$$arity = 0); + }, $Node_inner_html$33.$$arity = 0); - Opal.defn(self, '$inner_html=', TMP_Node_inner_html$eq_34 = function(value) { + Opal.def(self, '$inner_html=', $Node_inner_html$eq$34 = function(value) { var self = this; return self["native"].innerHTML = value - }, TMP_Node_inner_html$eq_34.$$arity = 1); - Opal.alias(self, "inner_text", "content"); - Opal.alias(self, "inner_text=", "content="); + }, $Node_inner_html$eq$34.$$arity = 1); + $alias(self, "inner_text", "content"); + $alias(self, "inner_text=", "content="); - Opal.defn(self, '$last_element_child', TMP_Node_last_element_child_35 = function $$last_element_child() { + Opal.def(self, '$last_element_child', $Node_last_element_child$35 = function $$last_element_child() { var self = this; return self.$element_children().$last() - }, TMP_Node_last_element_child_35.$$arity = 0); + }, $Node_last_element_child$35.$$arity = 0); - Opal.defn(self, '$name', TMP_Node_name_36 = function $$name() { + Opal.def(self, '$name', $Node_name$36 = function $$name() { var self = this; return self["native"].nodeName || nil - }, TMP_Node_name_36.$$arity = 0); + }, $Node_name$36.$$arity = 0); - Opal.defn(self, '$name=', TMP_Node_name$eq_37 = function(value) { + Opal.def(self, '$name=', $Node_name$eq$37 = function(value) { var self = this; return self["native"].nodeName = value.$to_s() - }, TMP_Node_name$eq_37.$$arity = 1); + }, $Node_name$eq$37.$$arity = 1); - Opal.defn(self, '$namespace', TMP_Node_namespace_38 = function $$namespace() { + Opal.def(self, '$namespace', $Node_namespace$38 = function $$namespace() { var self = this; return self["native"].namespaceURI || nil - }, TMP_Node_namespace_38.$$arity = 0); + }, $Node_namespace$38.$$arity = 0); - Opal.defn(self, '$next', TMP_Node_next_39 = function $$next() { + Opal.def(self, '$next', $Node_next$39 = function $$next() { var self = this; if ($truthy(self["native"].nextSibling != null)) { return self.$DOM(self["native"].nextSibling) - } else { + } else { return nil } - }, TMP_Node_next_39.$$arity = 0); - Opal.alias(self, "next=", "add_next_sibling"); + }, $Node_next$39.$$arity = 0); + $alias(self, "next=", "add_next_sibling"); - Opal.defn(self, '$next_element', TMP_Node_next_element_40 = function $$next_element() { - var $a, $b, self = this, current = nil; + Opal.def(self, '$next_element', $Node_next_element$40 = function $$next_element() { + var $a, self = this, current = nil, $ret_or_2 = nil; current = self.$next(); - while ($truthy(($truthy($b = current) ? current['$element?']()['$!']() : $b))) { + while ($truthy((function() {if ($truthy(($ret_or_2 = current))) { + return current['$element?']()['$!']() + } else { + return $ret_or_2 + }; return nil; })())) { current = current.$next() }; return current; - }, TMP_Node_next_element_40.$$arity = 0); - Opal.alias(self, "next_sibling", "next"); - Opal.alias(self, "node_name", "name"); - Opal.alias(self, "node_name=", "name="); + }, $Node_next_element$40.$$arity = 0); + $alias(self, "next_sibling", "next"); + $alias(self, "node_name", "name"); + $alias(self, "node_name=", "name="); - Opal.defn(self, '$node_type', TMP_Node_node_type_41 = function $$node_type() { + Opal.def(self, '$node_type', $Node_node_type$41 = function $$node_type() { var self = this; return self["native"].nodeType - }, TMP_Node_node_type_41.$$arity = 0); + }, $Node_node_type$41.$$arity = 0); - Opal.defn(self, '$parent', TMP_Node_parent_42 = function $$parent() { + Opal.def(self, '$parent', $Node_parent$42 = function $$parent() { var self = this; if ($truthy(self["native"].parentNode != null)) { return self.$DOM(self["native"].parentNode) - } else { + } else { return nil } - }, TMP_Node_parent_42.$$arity = 0); + }, $Node_parent$42.$$arity = 0); - Opal.defn(self, '$parent=', TMP_Node_parent$eq_43 = function(node) { + Opal.def(self, '$parent=', $Node_parent$eq$43 = function(node) { var self = this; - return self["native"].parentNode = Opal.const_get_relative($nesting, 'Native').$convert(node) - }, TMP_Node_parent$eq_43.$$arity = 1); + return self["native"].parentNode = $$($nesting, 'Native').$convert(node) + }, $Node_parent$eq$43.$$arity = 1); - Opal.defn(self, '$parse', TMP_Node_parse_44 = function $$parse(text, options) { + Opal.def(self, '$parse', $Node_parse$44 = function $$parse(text, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Node_parse_44.$$arity = -2); + }; + return self.$raise($$($nesting, 'NotImplementedError')); + }, $Node_parse$44.$$arity = -2); - Opal.defn(self, '$path', TMP_Node_path_45 = function $$path() { + Opal.def(self, '$path', $Node_path$45 = function $$path() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Node_path_45.$$arity = 0); + return self.$raise($$($nesting, 'NotImplementedError')) + }, $Node_path$45.$$arity = 0); - Opal.defn(self, '$prepend_to', TMP_Node_prepend_to_46 = function $$prepend_to(node) { + Opal.def(self, '$prepend_to', $Node_prepend_to$46 = function $$prepend_to(node) { var self = this; return node['$>>'](self) - }, TMP_Node_prepend_to_46.$$arity = 1); + }, $Node_prepend_to$46.$$arity = 1); - Opal.defn(self, '$previous', TMP_Node_previous_47 = function $$previous() { + Opal.def(self, '$previous', $Node_previous$47 = function $$previous() { var self = this; if ($truthy(self["native"].previousSibling != null)) { return self.$DOM(self["native"].previousSibling) - } else { + } else { return nil } - }, TMP_Node_previous_47.$$arity = 0); - Opal.alias(self, "previous=", "add_previous_sibling"); + }, $Node_previous$47.$$arity = 0); + $alias(self, "previous=", "add_previous_sibling"); - Opal.defn(self, '$previous_element', TMP_Node_previous_element_48 = function $$previous_element() { - var $a, $b, self = this, current = nil; + Opal.def(self, '$previous_element', $Node_previous_element$48 = function $$previous_element() { + var $a, self = this, current = nil, $ret_or_3 = nil; current = self.$previous(); - while ($truthy(($truthy($b = current) ? current['$element?']()['$!']() : $b))) { + while ($truthy((function() {if ($truthy(($ret_or_3 = current))) { + return current['$element?']()['$!']() + } else { + return $ret_or_3 + }; return nil; })())) { current = current.$previous() }; return current; - }, TMP_Node_previous_element_48.$$arity = 0); - Opal.alias(self, "previous_sibling", "previous"); + }, $Node_previous_element$48.$$arity = 0); + $alias(self, "previous_sibling", "previous"); - Opal.defn(self, '$remove_child', TMP_Node_remove_child_49 = function $$remove_child(node) { + Opal.def(self, '$remove_child', $Node_remove_child$49 = function $$remove_child(node) { var self = this; - return self["native"].removeChild(Opal.const_get_relative($nesting, 'Native').$try_convert(node)) - }, TMP_Node_remove_child_49.$$arity = 1); + return self["native"].removeChild($$($nesting, 'Native').$try_convert(node)) + }, $Node_remove_child$49.$$arity = 1); - Opal.defn(self, '$replace', TMP_Node_replace_50 = function $$replace(node) { + Opal.def(self, '$replace', $Node_replace$50 = function $$replace(node) { var self = this; if ($truthy(self['$native?'](node))) { - } else if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](node))) { + } else if ($truthy($$($nesting, 'String')['$==='](node))) { node = self["native"].ownerDocument.createTextNode(node) - } else { - node = Opal.const_get_relative($nesting, 'Native').$convert(node) + } else { + node = $$($nesting, 'Native').$convert(node) }; self["native"].parentNode.replaceChild(node, self["native"]); return node; - }, TMP_Node_replace_50.$$arity = 1); - Opal.alias(self, "replace_with", "replace"); - Opal.alias(self, "text", "content"); - Opal.alias(self, "text=", "content="); + }, $Node_replace$50.$$arity = 1); + $alias(self, "replace_with", "replace"); + $alias(self, "text", "content"); + $alias(self, "text=", "content="); - Opal.defn(self, '$text?', TMP_Node_text$q_51 = function() { + Opal.def(self, '$text?', $Node_text$ques$51 = function() { var self = this; - return self.$node_type()['$=='](Opal.const_get_relative($nesting, 'TEXT_NODE')) - }, TMP_Node_text$q_51.$$arity = 0); + return self.$node_type()['$==']($$($nesting, 'TEXT_NODE')) + }, $Node_text$ques$51.$$arity = 0); - Opal.defn(self, '$traverse', TMP_Node_traverse_52 = function $$traverse() { - var self = this, $iter = TMP_Node_traverse_52.$$p, block = $iter || nil; + Opal.def(self, '$traverse', $Node_traverse$52 = function $$traverse() { + var $iter = $Node_traverse$52.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Node_traverse_52.$$p = null; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Node_traverse_52.$$arity = 0); - Opal.alias(self, "type", "node_type"); + if ($iter) $Node_traverse$52.$$p = null; + + + if ($iter) $Node_traverse$52.$$p = null;; + return self.$raise($$($nesting, 'NotImplementedError')); + }, $Node_traverse$52.$$arity = 0); + $alias(self, "type", "node_type"); - Opal.defn(self, '$value', TMP_Node_value_53 = function $$value() { + Opal.def(self, '$value', $Node_value$53 = function $$value() { var self = this; return self["native"].nodeValue || nil - }, TMP_Node_value_53.$$arity = 0); + }, $Node_value$53.$$arity = 0); - Opal.defn(self, '$value=', TMP_Node_value$eq_54 = function(value) { + Opal.def(self, '$value=', $Node_value$eq$54 = function(value) { var self = this; return self["native"].nodeValue = value - }, TMP_Node_value$eq_54.$$arity = 1); - return (Opal.defn(self, '$inspect', TMP_Node_inspect_55 = function $$inspect() { + }, $Node_value$eq$54.$$arity = 1); + return (Opal.def(self, '$inspect', $Node_inspect$55 = function $$inspect() { var self = this; return "" + "#" - }, TMP_Node_inspect_55.$$arity = 0), nil) && 'inspect'; + }, $Node_inspect$55.$$arity = 0), nil) && 'inspect'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/attribute"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/dom/attribute"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$include', '$alias_native', '$supports?', '$==', '$name']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Attribute(){}; - var self = $Attribute = $klass($base, $super, 'Attribute', $Attribute); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Attribute'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Attribute_id$q_1; + var $nesting = [self].concat($parent_nesting), $Attribute_id$ques$1; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); self.$alias_native("name"); self.$alias_native("value"); self.$alias_native("value="); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Attr.isId"))) { + if ($truthy($$($nesting, 'Browser')['$supports?']("Attr.isId"))) { return self.$alias_native("id?", "isId") - } else { - return (Opal.defn(self, '$id?', TMP_Attribute_id$q_1 = function() { + } else { + return (Opal.def(self, '$id?', $Attribute_id$ques$1 = function() { var self = this; return self.$name()['$==']("id") - }, TMP_Attribute_id$q_1.$$arity = 0), nil) && 'id?' + }, $Attribute_id$ques$1.$$arity = 0), nil) && 'id?' }; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/character_data"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["browser/dom/character_data"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $CharacterData(){}; - var self = $CharacterData = $klass($base, $super, 'CharacterData', $CharacterData); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'CharacterData'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_CharacterData_append_1, TMP_CharacterData_data_2, TMP_CharacterData_delete_3, TMP_CharacterData_insert_4, TMP_CharacterData_replace_5, TMP_CharacterData_substring_6; + var $nesting = [self].concat($parent_nesting), $CharacterData_append$1, $CharacterData_data$2, $CharacterData_delete$3, $CharacterData_insert$4, $CharacterData_replace$5, $CharacterData_substring$6; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$append', TMP_CharacterData_append_1 = function $$append(string) { + Opal.def(self, '$append', $CharacterData_append$1 = function $$append(string) { var self = this; self["native"].appendData(string); return self; - }, TMP_CharacterData_append_1.$$arity = 1); + }, $CharacterData_append$1.$$arity = 1); - Opal.defn(self, '$data', TMP_CharacterData_data_2 = function $$data() { + Opal.def(self, '$data', $CharacterData_data$2 = function $$data() { var self = this; return self["native"].data - }, TMP_CharacterData_data_2.$$arity = 0); + }, $CharacterData_data$2.$$arity = 0); - Opal.defn(self, '$delete', TMP_CharacterData_delete_3 = function(count, offset) { + Opal.def(self, '$delete', $CharacterData_delete$3 = function(count, offset) { var self = this; + + if (offset == null) { offset = 0; - } - + }; self["native"].deleteData(offset, count); return self; - }, TMP_CharacterData_delete_3.$$arity = -2); + }, $CharacterData_delete$3.$$arity = -2); - Opal.defn(self, '$insert', TMP_CharacterData_insert_4 = function $$insert(string, offset) { + Opal.def(self, '$insert', $CharacterData_insert$4 = function $$insert(string, offset) { var self = this; + + if (offset == null) { offset = 0; - } - + }; self["native"].insertData(offset, string); return self; - }, TMP_CharacterData_insert_4.$$arity = -2); + }, $CharacterData_insert$4.$$arity = -2); self.$alias_native("length"); - Opal.defn(self, '$replace', TMP_CharacterData_replace_5 = function $$replace(string, offset, count) { + Opal.def(self, '$replace', $CharacterData_replace$5 = function $$replace(string, offset, count) { var self = this; + + if (offset == null) { offset = 0; - } + }; + if (count == null) { count = self["native"].length; - } - + }; self["native"].replaceData(offset, count, string); return self; - }, TMP_CharacterData_replace_5.$$arity = -2); - return (Opal.defn(self, '$substring', TMP_CharacterData_substring_6 = function $$substring(count, offset) { + }, $CharacterData_replace$5.$$arity = -2); + return (Opal.def(self, '$substring', $CharacterData_substring$6 = function $$substring(count, offset) { var self = this; + + if (offset == null) { offset = 0; - } - return self["native"].substringData(offset, count) - }, TMP_CharacterData_substring_6.$$arity = -2), nil) && 'substring'; - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + }; + return self["native"].substringData(offset, count); + }, $CharacterData_substring$6.$$arity = -2), nil) && 'substring'; + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/text"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars; +Opal.modules["browser/dom/text"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars; Opal.add_stubs(['$create_text', '$DOM', '$data']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Text(){}; - var self = $Text = $klass($base, $super, 'Text', $Text); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Text'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Text_create_1, TMP_Text_whole_2, TMP_Text_split_3, TMP_Text_inspect_4; + var $nesting = [self].concat($parent_nesting), $Text_create$1, $Text_whole$2, $Text_split$3, $Text_inspect$4; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$create', TMP_Text_create_1 = function $$create($a_rest) { - var self = this, args; + Opal.defs(self, '$create', $Text_create$1 = function $$create($a) { + var $post_args, args, self = this; if ($gvars.document == null) $gvars.document = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send($gvars.document, 'create_text', Opal.to_a(args)) - }, TMP_Text_create_1.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($gvars.document, 'create_text', Opal.to_a(args)); + }, $Text_create$1.$$arity = -1); - Opal.defn(self, '$whole', TMP_Text_whole_2 = function $$whole() { + Opal.def(self, '$whole', $Text_whole$2 = function $$whole() { var self = this; return self["native"].wholeText - }, TMP_Text_whole_2.$$arity = 0); + }, $Text_whole$2.$$arity = 0); - Opal.defn(self, '$split', TMP_Text_split_3 = function $$split(offset) { + Opal.def(self, '$split', $Text_split$3 = function $$split(offset) { var self = this; return self.$DOM(self["native"].splitText(offset)) - }, TMP_Text_split_3.$$arity = 1); - return (Opal.defn(self, '$inspect', TMP_Text_inspect_4 = function $$inspect() { + }, $Text_split$3.$$arity = 1); + return (Opal.def(self, '$inspect', $Text_inspect$4 = function $$inspect() { var self = this; return "" + "#" - }, TMP_Text_inspect_4.$$arity = 0), nil) && 'inspect'; - })($nesting[0], Opal.const_get_relative($nesting, 'CharacterData'), $nesting) + }, $Text_inspect$4.$$arity = 0), nil) && 'inspect'; + })($nesting[0], $$($nesting, 'CharacterData'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/cdata"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["browser/dom/cdata"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$value']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $CDATA(){}; - var self = $CDATA = $klass($base, $super, 'CDATA', $CDATA); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'CDATA'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_CDATA_inspect_1; + var $nesting = [self].concat($parent_nesting), $CDATA_inspect$1; - return (Opal.defn(self, '$inspect', TMP_CDATA_inspect_1 = function $$inspect() { + return (Opal.def(self, '$inspect', $CDATA_inspect$1 = function $$inspect() { var self = this; return "" + "#" - }, TMP_CDATA_inspect_1.$$arity = 0), nil) && 'inspect' - })($nesting[0], Opal.const_get_relative($nesting, 'Text'), $nesting) + }, $CDATA_inspect$1.$$arity = 0), nil) && 'inspect' + })($nesting[0], $$($nesting, 'Text'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/comment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["browser/dom/comment"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$value']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Comment(){}; - var self = $Comment = $klass($base, $super, 'Comment', $Comment); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Comment'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Comment_inspect_1; + var $nesting = [self].concat($parent_nesting), $Comment_inspect$1; - return (Opal.defn(self, '$inspect', TMP_Comment_inspect_1 = function $$inspect() { + return (Opal.def(self, '$inspect', $Comment_inspect$1 = function $$inspect() { var self = this; return "" + "#" - }, TMP_Comment_inspect_1.$$arity = 0), nil) && 'inspect' - })($nesting[0], Opal.const_get_relative($nesting, 'CharacterData'), $nesting) + }, $Comment_inspect$1.$$arity = 0), nil) && 'inspect' + })($nesting[0], $$($nesting, 'CharacterData'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/attributes"] = function(Opal) { +Opal.modules["browser/dom/element/attributes"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $alias = Opal.alias; Opal.add_stubs(['$attr_reader', '$to_n', '$[]', '$supports?', '$==', '$to_s', '$include', '$enum_for', '$each', '$attribute_nodes', '$name', '$value', '$!', '$[]=', '$-']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Attributes(){}; - var self = $Attributes = $klass($base, $super, 'Attributes', $Attributes); + var self = $klass($base, $super, 'Attributes'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Attributes_initialize_1, $a, TMP_Attributes_$$_2, TMP_Attributes_$$$eq_3, TMP_Attributes_$$_4, TMP_Attributes_$$$eq_5, TMP_Attributes_each_6, TMP_Attributes_has_key$q_8, TMP_Attributes_merge$B_10; + var $nesting = [self].concat($parent_nesting), $Attributes_initialize$1, $Attributes_$$$2, $Attributes_$$$eq$3, $Attributes_$$$4, $Attributes_$$$eq$5, $Attributes_each$6, $Attributes_has_key$ques$8, $Attributes_merge$excl$9, $ret_or_1 = nil; - def.namespace = def["native"] = def.element = nil; + self.$$prototype.namespace = self.$$prototype["native"] = self.$$prototype.element = nil; self.$attr_reader("namespace"); - Opal.defn(self, '$initialize', TMP_Attributes_initialize_1 = function $$initialize(element, options) { + Opal.def(self, '$initialize', $Attributes_initialize$1 = function $$initialize(element, options) { var self = this; self.element = element; self["native"] = element.$to_n(); return (self.namespace = options['$[]']("namespace")); - }, TMP_Attributes_initialize_1.$$arity = 2); - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.className")) ? $a : Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.htmlFor")))) { + }, $Attributes_initialize$1.$$arity = 2); + if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'Browser')['$supports?']("Element.className")))) { + return $ret_or_1 + } else { + return $$($nesting, 'Browser')['$supports?']("Element.htmlFor") + }; return nil; })())) { - Opal.defn(self, '$[]', TMP_Attributes_$$_2 = function(name, options) { - var $a, self = this, namespace = nil; + Opal.def(self, '$[]', $Attributes_$$$2 = function(name, options) { + var self = this, $ret_or_2 = nil, $ret_or_3 = nil, namespace = nil, $ret_or_4 = nil; + + if (options == null) { options = $hash2([], {}); - } - - if ($truthy((($a = name['$==']("class")) ? Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.className") : name['$==']("class")))) { + }; + if ($truthy((function() {if ($truthy(($ret_or_2 = name['$==']("class")))) { + return $$($nesting, 'Browser')['$supports?']("Element.className") + } else { + return $ret_or_2 + }; return nil; })())) { name = "className" - } else if ($truthy((($a = name['$==']("for")) ? Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.htmlFor") : name['$==']("for")))) { + } else if ($truthy((function() {if ($truthy(($ret_or_3 = name['$==']("for")))) { + return $$($nesting, 'Browser')['$supports?']("Element.htmlFor") + } else { + return $ret_or_3 + }; return nil; })())) { name = "htmlFor"}; - if ($truthy((namespace = ($truthy($a = options['$[]']("namespace")) ? $a : self.namespace)))) { + if ($truthy((namespace = (function() {if ($truthy(($ret_or_4 = options['$[]']("namespace")))) { + return $ret_or_4 + } else { + return self.namespace + }; return nil; })()))) { return self["native"].getAttributeNS(namespace.$to_s(), name.$to_s()) || nil - } else { + } else { return self["native"].getAttribute(name.$to_s()) || nil }; - }, TMP_Attributes_$$_2.$$arity = -2); + }, $Attributes_$$$2.$$arity = -2); - Opal.defn(self, '$[]=', TMP_Attributes_$$$eq_3 = function(name, value, options) { - var $a, self = this, namespace = nil; + Opal.def(self, '$[]=', $Attributes_$$$eq$3 = function(name, value, options) { + var self = this, $ret_or_5 = nil, $ret_or_6 = nil, namespace = nil, $ret_or_7 = nil; + + if (options == null) { options = $hash2([], {}); - } - - if ($truthy((($a = name['$==']("class")) ? Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.className") : name['$==']("class")))) { + }; + if ($truthy((function() {if ($truthy(($ret_or_5 = name['$==']("class")))) { + return $$($nesting, 'Browser')['$supports?']("Element.className") + } else { + return $ret_or_5 + }; return nil; })())) { name = "className" - } else if ($truthy((($a = name['$==']("for")) ? Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.htmlFor") : name['$==']("for")))) { + } else if ($truthy((function() {if ($truthy(($ret_or_6 = name['$==']("for")))) { + return $$($nesting, 'Browser')['$supports?']("Element.htmlFor") + } else { + return $ret_or_6 + }; return nil; })())) { name = "htmlFor"}; - if ($truthy((namespace = ($truthy($a = options['$[]']("namespace")) ? $a : self.namespace)))) { + if ($truthy((namespace = (function() {if ($truthy(($ret_or_7 = options['$[]']("namespace")))) { + return $ret_or_7 + } else { + return self.namespace + }; return nil; })()))) { return self["native"].setAttributeNS(namespace.$to_s(), name.$to_s(), value) - } else { + } else { return self["native"].setAttribute(name.$to_s(), value.$to_s()) }; - }, TMP_Attributes_$$$eq_3.$$arity = -3); - } else { + }, $Attributes_$$$eq$3.$$arity = -3); + } else { - Opal.defn(self, '$[]', TMP_Attributes_$$_4 = function(name, options) { - var $a, self = this, namespace = nil; + Opal.def(self, '$[]', $Attributes_$$$4 = function(name, options) { + var self = this, namespace = nil, $ret_or_8 = nil; + + if (options == null) { options = $hash2([], {}); - } - if ($truthy((namespace = ($truthy($a = options['$[]']("namespace")) ? $a : self.namespace)))) { + }; + if ($truthy((namespace = (function() {if ($truthy(($ret_or_8 = options['$[]']("namespace")))) { + return $ret_or_8 + } else { + return self.namespace + }; return nil; })()))) { return self["native"].getAttributeNS(namespace.$to_s(), name.$to_s()) || nil - } else { + } else { return self["native"].getAttribute(name.$to_s()) || nil - } - }, TMP_Attributes_$$_4.$$arity = -2); + }; + }, $Attributes_$$$4.$$arity = -2); - Opal.defn(self, '$[]=', TMP_Attributes_$$$eq_5 = function(name, value, options) { - var $a, self = this, namespace = nil; + Opal.def(self, '$[]=', $Attributes_$$$eq$5 = function(name, value, options) { + var self = this, namespace = nil, $ret_or_9 = nil; + + if (options == null) { options = $hash2([], {}); - } - if ($truthy((namespace = ($truthy($a = options['$[]']("namespace")) ? $a : self.namespace)))) { + }; + if ($truthy((namespace = (function() {if ($truthy(($ret_or_9 = options['$[]']("namespace")))) { + return $ret_or_9 + } else { + return self.namespace + }; return nil; })()))) { return self["native"].setAttributeNS(namespace.$to_s(), name.$to_s(), value) - } else { + } else { return self["native"].setAttribute(name.$to_s(), value.$to_s()) - } - }, TMP_Attributes_$$$eq_5.$$arity = -3); + }; + }, $Attributes_$$$eq$5.$$arity = -3); }; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); + self.$include($$($nesting, 'Enumerable')); - Opal.defn(self, '$each', TMP_Attributes_each_6 = function $$each() { - var TMP_7, self = this, $iter = TMP_Attributes_each_6.$$p, block = $iter || nil; + Opal.def(self, '$each', $Attributes_each$6 = function $$each() { + var $iter = $Attributes_each$6.$$p, block = $iter || nil, $$7, self = this; - if ($iter) TMP_Attributes_each_6.$$p = null; + if ($iter) $Attributes_each$6.$$p = null; + + if ($iter) $Attributes_each$6.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("each") }; - $send(self.element.$attribute_nodes(), 'each', [], (TMP_7 = function(attr){var self = TMP_7.$$s || this; -if (attr == null) attr = nil; - return Opal.yieldX(block, [attr.$name(), attr.$value()]);}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); + $send(self.element.$attribute_nodes(), 'each', [], ($$7 = function(attr){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (attr == null) { + attr = nil; + }; + return Opal.yieldX(block, [attr.$name(), attr.$value()]);;}, $$7.$$s = self, $$7.$$arity = 1, $$7)); return self; - }, TMP_Attributes_each_6.$$arity = 0); - Opal.alias(self, "get", "[]"); + }, $Attributes_each$6.$$arity = 0); + $alias(self, "get", "[]"); - Opal.defn(self, '$has_key?', TMP_Attributes_has_key$q_8 = function(name) { + Opal.def(self, '$has_key?', $Attributes_has_key$ques$8 = function(name) { var self = this; return self['$[]'](name)['$!']()['$!']() - }, TMP_Attributes_has_key$q_8.$$arity = 1); + }, $Attributes_has_key$ques$8.$$arity = 1); - Opal.defn(self, '$merge!', TMP_Attributes_merge$B_10 = function(hash) { - var TMP_9, self = this; + Opal.def(self, '$merge!', $Attributes_merge$excl$9 = function(hash) { + var $$10, self = this; - $send(hash, 'each', [], (TMP_9 = function(name, value){var self = TMP_9.$$s || this, $writer = nil; -if (name == null) name = nil;if (value == null) value = nil; - + $send(hash, 'each', [], ($$10 = function(name, value){var self = $$10.$$s == null ? this : $$10.$$s, $writer = nil; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; $writer = [name, value]; $send(self, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_9.$$s = self, TMP_9.$$arity = 2, TMP_9)); + return $writer[$rb_minus($writer["length"], 1)];}, $$10.$$s = self, $$10.$$arity = 2, $$10)); return self; - }, TMP_Attributes_merge$B_10.$$arity = 1); - return Opal.alias(self, "set", "[]="); + }, $Attributes_merge$excl$9.$$arity = 1); + return $alias(self, "set", "[]="); })($nesting[0], null, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/data"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; +Opal.modules["browser/dom/element/data"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; Opal.add_stubs(['$attr_reader', '$to_n', '$include', '$enum_for', '$call', '$each', '$attributes', '$=~', '$[]']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Data(){}; - var self = $Data = $klass($base, $super, 'Data', $Data); + var self = $klass($base, $super, 'Data'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Data_initialize_1, TMP_Data_each_2, TMP_Data_assign_5, TMP_Data_$$_6, TMP_Data_$$$eq_7; + var $nesting = [self].concat($parent_nesting), $Data_initialize$1, $Data_each$2, $Data_assign$4, $Data_$$$6, $Data_$$$eq$7; - def["native"] = def.element = nil; + self.$$prototype["native"] = self.$$prototype.element = nil; self.$attr_reader("element"); - Opal.defn(self, '$initialize', TMP_Data_initialize_1 = function $$initialize(element) { + Opal.def(self, '$initialize', $Data_initialize$1 = function $$initialize(element) { var self = this; @@ -15094,19 +16473,21 @@ Opal.modules["browser/dom/element/data"] = function(Opal) { self["native"] = element.$to_n(); if ($truthy((typeof(self["native"].$data) !== "undefined"))) { return nil - } else { + } else { return self["native"].$data = {} }; - }, TMP_Data_initialize_1.$$arity = 1); - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); + }, $Data_initialize$1.$$arity = 1); + self.$include($$($nesting, 'Enumerable')); - Opal.defn(self, '$each', TMP_Data_each_2 = function $$each() { - var TMP_3, self = this, $iter = TMP_Data_each_2.$$p, block = $iter || nil; + Opal.def(self, '$each', $Data_each$2 = function $$each() { + var $iter = $Data_each$2.$$p, block = $iter || nil, $$3, self = this; - if ($iter) TMP_Data_each_2.$$p = null; + if ($iter) $Data_each$2.$$p = null; + + if ($iter) $Data_each$2.$$p = null;; if ($truthy(block)) { - } else { + } else { return self.$enum_for("each") }; @@ -15116,28 +16497,46 @@ Opal.modules["browser/dom/element/data"] = function(Opal) { block.$call(key, data[key]); } ; - $send(self.element.$attributes(), 'each', [], (TMP_3 = function(name, value){var self = TMP_3.$$s || this, $a; -if (name == null) name = nil;if (value == null) value = nil; - if ($truthy(name['$=~'](/^data-(.*)$/))) { + $send(self.element.$attributes(), 'each', [], ($$3 = function(name, value){var self = $$3.$$s == null ? this : $$3.$$s, $a; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + if ($truthy(name['$=~'](/^data-(.*)$/))) { return block.$call((($a = $gvars['~']) === nil ? nil : $a['$[]'](1)), value) - } else { + } else { return nil - }}, TMP_3.$$s = self, TMP_3.$$arity = 2, TMP_3)); + };}, $$3.$$s = self, $$3.$$arity = 2, $$3)); return self; - }, TMP_Data_each_2.$$arity = 0); + }, $Data_each$2.$$arity = 0); - Opal.defn(self, '$assign', TMP_Data_assign_5 = function $$assign(data) { - var TMP_4, self = this; + Opal.def(self, '$assign', $Data_assign$4 = function $$assign(data) { + var $$5, self = this; - $send(data, 'each', [], (TMP_4 = function(name, value){var self = TMP_4.$$s || this; + $send(data, 'each', [], ($$5 = function(name, value){var self = $$5.$$s == null ? this : $$5.$$s; if (self["native"] == null) self["native"] = nil; -if (name == null) name = nil;if (value == null) value = nil; - return self["native"].$data[name] = value}, TMP_4.$$s = self, TMP_4.$$arity = 2, TMP_4)); + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return self["native"].$data[name] = value;}, $$5.$$s = self, $$5.$$arity = 2, $$5)); return self; - }, TMP_Data_assign_5.$$arity = 1); + }, $Data_assign$4.$$arity = 1); - Opal.defn(self, '$[]', TMP_Data_$$_6 = function(name) { + Opal.def(self, '$[]', $Data_$$$6 = function(name) { var self = this, data = nil; @@ -15153,75 +16552,72 @@ if (name == null) name = nil;if (value == null) value = nil; return value; } ; - }, TMP_Data_$$_6.$$arity = 1); - return (Opal.defn(self, '$[]=', TMP_Data_$$$eq_7 = function(name, value) { + }, $Data_$$$6.$$arity = 1); + return (Opal.def(self, '$[]=', $Data_$$$eq$7 = function(name, value) { var self = this; return self["native"].$data[name] = value - }, TMP_Data_$$$eq_7.$$arity = 2), nil) && '[]='; + }, $Data_$$$eq$7.$$arity = 2), nil) && '[]='; })($nesting[0], null, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/position"] = function(Opal) { +Opal.modules["browser/dom/element/position"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$attr_reader', '$to_n', '$offset', '$get', '$parent', '$new', '$==', '$[]', '$style', '$=~', '$+', '$x', '$to_i', '$x=', '$-', '$y', '$y=']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Position(){}; - var self = $Position = $klass($base, $super, 'Position', $Position); + var self = $klass($base, $super, 'Position'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Position_initialize_1, TMP_Position_get_2, TMP_Position_x_3, TMP_Position_y_4; + var $nesting = [self].concat($parent_nesting), $Position_initialize$1, $Position_get$2, $Position_x$3, $Position_y$4; - def.element = nil; + self.$$prototype.element = nil; self.$attr_reader("element"); - Opal.defn(self, '$initialize', TMP_Position_initialize_1 = function $$initialize(element) { + Opal.def(self, '$initialize', $Position_initialize$1 = function $$initialize(element) { var self = this; self.element = element; return (self["native"] = element.$to_n()); - }, TMP_Position_initialize_1.$$arity = 1); + }, $Position_initialize$1.$$arity = 1); - Opal.defn(self, '$get', TMP_Position_get_2 = function $$get() { + Opal.def(self, '$get', $Position_get$2 = function $$get() { var self = this, offset = nil, position = nil, parent = nil, parent_offset = nil, $writer = nil; offset = self.element.$offset(); position = offset.$get(); parent = offset.$parent(); - parent_offset = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'Position').$new(0, 0); + parent_offset = $$$($$($nesting, 'Browser'), 'Position').$new(0, 0); if (self.element.$style()['$[]']("position")['$==']("fixed")) { if ($truthy(parent['$=~']("html"))) { - } else { + } else { parent_offset = parent.$offset() }; @@ -15232,102 +16628,99 @@ Opal.modules["browser/dom/element/position"] = function(Opal) { $writer = [$rb_plus(parent_offset.$y(), parent.$style()['$[]']("border-left-width").$to_i())]; $send(parent_offset, 'y=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];;}; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'Position').$new($rb_minus($rb_minus(position.$x(), parent_offset.$x()), self.element.$style()['$[]']("margin-left").$to_i()), $rb_minus($rb_minus(position.$y(), parent_offset.$y()), self.element.$style()['$[]']("margin-top").$to_i())); - }, TMP_Position_get_2.$$arity = 0); + return $$$($$($nesting, 'Browser'), 'Position').$new($rb_minus($rb_minus(position.$x(), parent_offset.$x()), self.element.$style()['$[]']("margin-left").$to_i()), $rb_minus($rb_minus(position.$y(), parent_offset.$y()), self.element.$style()['$[]']("margin-top").$to_i())); + }, $Position_get$2.$$arity = 0); - Opal.defn(self, '$x', TMP_Position_x_3 = function $$x() { + Opal.def(self, '$x', $Position_x$3 = function $$x() { var self = this; return self.$get().$x() - }, TMP_Position_x_3.$$arity = 0); - return (Opal.defn(self, '$y', TMP_Position_y_4 = function $$y() { + }, $Position_x$3.$$arity = 0); + return (Opal.def(self, '$y', $Position_y$4 = function $$y() { var self = this; return self.$get().$y() - }, TMP_Position_y_4.$$arity = 0), nil) && 'y'; + }, $Position_y$4.$$arity = 0), nil) && 'y'; })($nesting[0], null, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/offset"] = function(Opal) { +Opal.modules["browser/dom/element/offset"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$attr_reader', '$to_n', '$DOM', '$root', '$document', '$x', '$get', '$set', '$y', '$supports?', '$window', '$new', '$[]', '$style!', '$==', '$[]=', '$style', '$-', '$to_u', '$===', '$first', '$+', '$px']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Offset(){}; - var self = $Offset = $klass($base, $super, 'Offset', $Offset); + var self = $klass($base, $super, 'Offset'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Offset_initialize_1, TMP_Offset_parent_2, TMP_Offset_x_3, TMP_Offset_x$eq_4, TMP_Offset_y_5, TMP_Offset_y$eq_6, TMP_Offset_get_7, TMP_Offset_get_8, TMP_Offset_set_9; + var $nesting = [self].concat($parent_nesting), $Offset_initialize$1, $Offset_parent$2, $Offset_x$3, $Offset_x$eq$4, $Offset_y$5, $Offset_y$eq$6, $Offset_get$7, $Offset_get$8, $Offset_set$9; - def["native"] = def.element = nil; + self.$$prototype["native"] = self.$$prototype.element = nil; self.$attr_reader("element"); - Opal.defn(self, '$initialize', TMP_Offset_initialize_1 = function $$initialize(element) { + Opal.def(self, '$initialize', $Offset_initialize$1 = function $$initialize(element) { var self = this; self.element = element; return (self["native"] = element.$to_n()); - }, TMP_Offset_initialize_1.$$arity = 1); + }, $Offset_initialize$1.$$arity = 1); - Opal.defn(self, '$parent', TMP_Offset_parent_2 = function $$parent() { + Opal.def(self, '$parent', $Offset_parent$2 = function $$parent() { var self = this; return self.$DOM(self["native"].offsetParent || self.element.$document().$root().$to_n()) - }, TMP_Offset_parent_2.$$arity = 0); + }, $Offset_parent$2.$$arity = 0); - Opal.defn(self, '$x', TMP_Offset_x_3 = function $$x() { + Opal.def(self, '$x', $Offset_x$3 = function $$x() { var self = this; return self.$get().$x() - }, TMP_Offset_x_3.$$arity = 0); + }, $Offset_x$3.$$arity = 0); - Opal.defn(self, '$x=', TMP_Offset_x$eq_4 = function(value) { + Opal.def(self, '$x=', $Offset_x$eq$4 = function(value) { var self = this; return self.$set(value, nil) - }, TMP_Offset_x$eq_4.$$arity = 1); + }, $Offset_x$eq$4.$$arity = 1); - Opal.defn(self, '$y', TMP_Offset_y_5 = function $$y() { + Opal.def(self, '$y', $Offset_y$5 = function $$y() { var self = this; return self.$get().$y() - }, TMP_Offset_y_5.$$arity = 0); + }, $Offset_y$5.$$arity = 0); - Opal.defn(self, '$y=', TMP_Offset_y$eq_6 = function(value) { + Opal.def(self, '$y=', $Offset_y$eq$6 = function(value) { var self = this; return self.$set(nil, value) - }, TMP_Offset_y$eq_6.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.getBoundingClientRect"))) { + }, $Offset_y$eq$6.$$arity = 1); + if ($truthy($$($nesting, 'Browser')['$supports?']("Element.getBoundingClientRect"))) { - Opal.defn(self, '$get', TMP_Offset_get_7 = function $$get() { + Opal.def(self, '$get', $Offset_get$7 = function $$get() { var self = this, doc = nil, root = nil, win = nil; @@ -15339,11 +16732,11 @@ Opal.modules["browser/dom/element/offset"] = function(Opal) { y = box.top + (win.pageYOffset || root.scrollTop) - (root.clientTop || 0), x = box.left + (win.pageXOffset || root.scrollLeft) - (root.clientLeft || 0); ; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'Position').$new(x, y); - }, TMP_Offset_get_7.$$arity = 0) - } else { + return $$$($$($nesting, 'Browser'), 'Position').$new(x, y); + }, $Offset_get$7.$$arity = 0) + } else { - Opal.defn(self, '$get', TMP_Offset_get_8 = function $$get() { + Opal.def(self, '$get', $Offset_get$8 = function $$get() { var self = this, doc = nil, root = nil, win = nil; @@ -15354,19 +16747,17 @@ Opal.modules["browser/dom/element/offset"] = function(Opal) { var y = (win.pageYOffset || root.scrollTop) - (root.clientTop || 0), x = (win.pageXOffset || root.scrollLeft) - (root.clientLeft || 0); ; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'Position').$new(x, y); - }, TMP_Offset_get_8.$$arity = 0) + return $$$($$($nesting, 'Browser'), 'Position').$new(x, y); + }, $Offset_get$8.$$arity = 0) }; - return (Opal.defn(self, '$set', TMP_Offset_set_9 = function $$set($a_rest) { - var $b, $c, self = this, value, position = nil, $writer = nil, offset = nil, top = nil, left = nil, x = nil, y = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } + return (Opal.def(self, '$set', $Offset_set$9 = function $$set($a) { + var $post_args, value, $b, $c, self = this, position = nil, $writer = nil, offset = nil, top = nil, left = nil, x = nil, y = nil; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; position = self.element['$style!']()['$[]']("position"); if (position['$==']("static")) { @@ -15376,11 +16767,11 @@ Opal.modules["browser/dom/element/offset"] = function(Opal) { offset = self.$get(); top = self.element['$style!']()['$[]']("top").$to_u(); left = self.element['$style!']()['$[]']("left").$to_u(); - if ($truthy(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'Position')['$==='](value.$first()))) { + if ($truthy($$$($$($nesting, 'Browser'), 'Position')['$==='](value.$first()))) { $b = [value.$first().$x(), value.$first().$y()], (x = $b[0]), (y = $b[1]), $b - } else if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](value.$first()))) { + } else if ($truthy($$($nesting, 'Hash')['$==='](value.$first()))) { $b = [value.$first()['$[]']("x"), value.$first()['$[]']("y")], (x = $b[0]), (y = $b[1]), $b - } else { + } else { $c = value, $b = Opal.to_ary($c), (x = ($b[0] == null ? nil : $b[0])), (y = ($b[1] == null ? nil : $b[1])), $c }; if ($truthy(x)) { @@ -15393,326 +16784,338 @@ Opal.modules["browser/dom/element/offset"] = function(Opal) { $writer = ["top", $rb_plus($rb_minus(y.$px(), offset.$y()), top)]; $send(self.element.$style(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { return nil }; - }, TMP_Offset_set_9.$$arity = -1), nil) && 'set'; + }, $Offset_set$9.$$arity = -1), nil) && 'set'; })($nesting[0], null, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/scroll"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["browser/dom/element/scroll"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy; Opal.add_stubs(['$attr_reader', '$to_n', '$supports?', '$===', '$first', '$[]', '$x', '$y', '$new', '$raise', '$position']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Scroll(){}; - var self = $Scroll = $klass($base, $super, 'Scroll', $Scroll); + var self = $klass($base, $super, 'Scroll'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Scroll_initialize_1, TMP_Scroll_to_2, TMP_Scroll_position_3, TMP_Scroll_to_4, TMP_Scroll_position_5, TMP_Scroll_to_6, TMP_Scroll_position_7, TMP_Scroll_x_8, TMP_Scroll_y_9, TMP_Scroll_height_10, TMP_Scroll_width_11, TMP_Scroll_by_12, TMP_Scroll_to_13, TMP_Scroll_to_14, TMP_Scroll_to$B_15; + var $nesting = [self].concat($parent_nesting), $Scroll_initialize$1, $Scroll_to$2, $Scroll_position$3, $Scroll_to$4, $Scroll_position$5, $Scroll_to$6, $Scroll_position$7, $Scroll_x$8, $Scroll_y$9, $Scroll_height$10, $Scroll_width$11, $Scroll_by$12, $Scroll_to$13, $Scroll_to$14, $Scroll_to$excl$15; - def["native"] = nil; + self.$$prototype["native"] = nil; self.$attr_reader("element"); - Opal.defn(self, '$initialize', TMP_Scroll_initialize_1 = function $$initialize(element) { + Opal.def(self, '$initialize', $Scroll_initialize$1 = function $$initialize(element) { var self = this; self.element = element; return (self["native"] = element.$to_n()); - }, TMP_Scroll_initialize_1.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.scroll"))) { + }, $Scroll_initialize$1.$$arity = 1); + if ($truthy($$($nesting, 'Browser')['$supports?']("Element.scroll"))) { - Opal.defn(self, '$to', TMP_Scroll_to_2 = function $$to($a_rest) { - var $b, $c, self = this, args, x = nil, y = nil; + Opal.def(self, '$to', $Scroll_to$2 = function $$to($a) { + var $post_args, args, $b, $c, self = this, x = nil, $ret_or_1 = nil, y = nil, $ret_or_2 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](args.$first()))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy($$($nesting, 'Hash')['$==='](args.$first()))) { - x = ($truthy($b = args.$first()['$[]']("x")) ? $b : self.$x()); - y = ($truthy($b = args.$first()['$[]']("y")) ? $b : self.$y()); + x = (function() {if ($truthy(($ret_or_1 = args.$first()['$[]']("x")))) { + return $ret_or_1 } else { + return self.$x() + }; return nil; })(); + y = (function() {if ($truthy(($ret_or_2 = args.$first()['$[]']("y")))) { + return $ret_or_2 + } else { + return self.$y() + }; return nil; })(); + } else { $c = args, $b = Opal.to_ary($c), (x = ($b[0] == null ? nil : $b[0])), (y = ($b[1] == null ? nil : $b[1])), $c }; self["native"].scrollTop = y; return self["native"].scrollLeft = x; - }, TMP_Scroll_to_2.$$arity = -1); + }, $Scroll_to$2.$$arity = -1); - Opal.defn(self, '$position', TMP_Scroll_position_3 = function $$position() { + Opal.def(self, '$position', $Scroll_position$3 = function $$position() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'Position').$new(self["native"].scrollLeft, self["native"].scrollTop) - }, TMP_Scroll_position_3.$$arity = 0); - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.pageOffset"))) { + return $$$($$($nesting, 'Browser'), 'Position').$new(self["native"].scrollLeft, self["native"].scrollTop) + }, $Scroll_position$3.$$arity = 0); + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Element.pageOffset"))) { - Opal.defn(self, '$to', TMP_Scroll_to_4 = function $$to($a_rest) { - var $b, $c, self = this, args, x = nil, y = nil; + Opal.def(self, '$to', $Scroll_to$4 = function $$to($a) { + var $post_args, args, $b, $c, self = this, x = nil, $ret_or_3 = nil, y = nil, $ret_or_4 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](args.$first()))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy($$($nesting, 'Hash')['$==='](args.$first()))) { - x = ($truthy($b = args.$first()['$[]']("x")) ? $b : self.$x()); - y = ($truthy($b = args.$first()['$[]']("y")) ? $b : self.$y()); + x = (function() {if ($truthy(($ret_or_3 = args.$first()['$[]']("x")))) { + return $ret_or_3 + } else { + return self.$x() + }; return nil; })(); + y = (function() {if ($truthy(($ret_or_4 = args.$first()['$[]']("y")))) { + return $ret_or_4 } else { + return self.$y() + }; return nil; })(); + } else { $c = args, $b = Opal.to_ary($c), (x = ($b[0] == null ? nil : $b[0])), (y = ($b[1] == null ? nil : $b[1])), $c }; self["native"].pageYOffset = y; return self["native"].pageXOffset = x; - }, TMP_Scroll_to_4.$$arity = -1); + }, $Scroll_to$4.$$arity = -1); - Opal.defn(self, '$position', TMP_Scroll_position_5 = function $$position() { + Opal.def(self, '$position', $Scroll_position$5 = function $$position() { var self = this; - return Opal.const_get_relative($nesting, 'Position').$new(self["native"].pageXOffset, self["native"].pageYOffset) - }, TMP_Scroll_position_5.$$arity = 0); - } else { + return $$($nesting, 'Position').$new(self["native"].pageXOffset, self["native"].pageYOffset) + }, $Scroll_position$5.$$arity = 0); + } else { - Opal.defn(self, '$to', TMP_Scroll_to_6 = function $$to($a_rest) { - var self = this, args; + Opal.def(self, '$to', $Scroll_to$6 = function $$to($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "scroll on element unsupported") - }, TMP_Scroll_to_6.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return self.$raise($$($nesting, 'NotImplementedError'), "scroll on element unsupported"); + }, $Scroll_to$6.$$arity = -1); - Opal.defn(self, '$position', TMP_Scroll_position_7 = function $$position() { + Opal.def(self, '$position', $Scroll_position$7 = function $$position() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "scroll on element unsupported") - }, TMP_Scroll_position_7.$$arity = 0); + return self.$raise($$($nesting, 'NotImplementedError'), "scroll on element unsupported") + }, $Scroll_position$7.$$arity = 0); }; - Opal.defn(self, '$x', TMP_Scroll_x_8 = function $$x() { + Opal.def(self, '$x', $Scroll_x$8 = function $$x() { var self = this; return self.$position().$x() - }, TMP_Scroll_x_8.$$arity = 0); + }, $Scroll_x$8.$$arity = 0); - Opal.defn(self, '$y', TMP_Scroll_y_9 = function $$y() { + Opal.def(self, '$y', $Scroll_y$9 = function $$y() { var self = this; return self.$position().$y() - }, TMP_Scroll_y_9.$$arity = 0); + }, $Scroll_y$9.$$arity = 0); - Opal.defn(self, '$height', TMP_Scroll_height_10 = function $$height() { + Opal.def(self, '$height', $Scroll_height$10 = function $$height() { var self = this; return self["native"].scrollHeight - }, TMP_Scroll_height_10.$$arity = 0); + }, $Scroll_height$10.$$arity = 0); - Opal.defn(self, '$width', TMP_Scroll_width_11 = function $$width() { + Opal.def(self, '$width', $Scroll_width$11 = function $$width() { var self = this; return self["native"].scrollWidth - }, TMP_Scroll_width_11.$$arity = 0); + }, $Scroll_width$11.$$arity = 0); - Opal.defn(self, '$by', TMP_Scroll_by_12 = function $$by($a_rest) { - var $b, $c, self = this, args, x = nil, y = nil; + Opal.def(self, '$by', $Scroll_by$12 = function $$by($a) { + var $post_args, args, $b, $c, self = this, x = nil, $ret_or_5 = nil, y = nil, $ret_or_6 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](args.$first()))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy($$($nesting, 'Hash')['$==='](args.$first()))) { - x = ($truthy($b = args.$first()['$[]']("x")) ? $b : 0); - y = ($truthy($b = args.$first()['$[]']("y")) ? $b : 0); + x = (function() {if ($truthy(($ret_or_5 = args.$first()['$[]']("x")))) { + return $ret_or_5 } else { + return 0 + }; return nil; })(); + y = (function() {if ($truthy(($ret_or_6 = args.$first()['$[]']("y")))) { + return $ret_or_6 + } else { + return 0 + }; return nil; })(); + } else { $c = args, $b = Opal.to_ary($c), (x = ($b[0] == null ? nil : $b[0])), (y = ($b[1] == null ? nil : $b[1])), $c }; self["native"].scrollBy(x, y); return self; - }, TMP_Scroll_by_12.$$arity = -1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.scrollIntoViewIfNeeded"))) { + }, $Scroll_by$12.$$arity = -1); + if ($truthy($$($nesting, 'Browser')['$supports?']("Element.scrollIntoViewIfNeeded"))) { - Opal.defn(self, '$to', TMP_Scroll_to_13 = function $$to(align) { + Opal.def(self, '$to', $Scroll_to$13 = function $$to(align) { var self = this; + + if (align == null) { align = true; - } - return self["native"].scrollIntoViewIfNeeded(align) - }, TMP_Scroll_to_13.$$arity = -1) - } else { + }; + return self["native"].scrollIntoViewIfNeeded(align); + }, $Scroll_to$13.$$arity = -1) + } else { - Opal.defn(self, '$to', TMP_Scroll_to_14 = function $$to(align) { + Opal.def(self, '$to', $Scroll_to$14 = function $$to(align) { var self = this; + + if (align == null) { align = true; - } - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Scroll_to_14.$$arity = -1) + }; + return self.$raise($$($nesting, 'NotImplementedError')); + }, $Scroll_to$14.$$arity = -1) }; - return (Opal.defn(self, '$to!', TMP_Scroll_to$B_15 = function(align) { + return (Opal.def(self, '$to!', $Scroll_to$excl$15 = function(align) { var self = this; + + if (align == null) { align = true; - } - return self["native"].scrollIntoView(align) - }, TMP_Scroll_to$B_15.$$arity = -1), nil) && 'to!'; + }; + return self["native"].scrollIntoView(align); + }, $Scroll_to$excl$15.$$arity = -1), nil) && 'to!'; })($nesting[0], null, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/size"] = function(Opal) { +Opal.modules["browser/dom/element/size"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$attr_reader', '$to_n', '$[]=', '$style', '$-']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Size(){}; - var self = $Size = $klass($base, $super, 'Size', $Size); + var self = $klass($base, $super, 'Size'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Size_initialize_1, TMP_Size_width_2, TMP_Size_width$eq_3, TMP_Size_height_4, TMP_Size_height$eq_5; + var $nesting = [self].concat($parent_nesting), $Size_initialize$1, $Size_width$2, $Size_width$eq$3, $Size_height$4, $Size_height$eq$5; - def["native"] = def.element = nil; + self.$$prototype["native"] = self.$$prototype.element = nil; self.$attr_reader("element"); - Opal.defn(self, '$initialize', TMP_Size_initialize_1 = function $$initialize(element, $a_rest) { - var self = this, inc; + Opal.def(self, '$initialize', $Size_initialize$1 = function $$initialize(element, $a) { + var $post_args, inc, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - inc = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - inc[$arg_idx - 1] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + inc = $post_args;; self.element = element; self["native"] = element.$to_n(); return (self.include = inc); - }, TMP_Size_initialize_1.$$arity = -2); + }, $Size_initialize$1.$$arity = -2); - Opal.defn(self, '$width', TMP_Size_width_2 = function $$width() { + Opal.def(self, '$width', $Size_width$2 = function $$width() { var self = this; return self["native"].offsetWidth - }, TMP_Size_width_2.$$arity = 0); + }, $Size_width$2.$$arity = 0); - Opal.defn(self, '$width=', TMP_Size_width$eq_3 = function(value) { + Opal.def(self, '$width=', $Size_width$eq$3 = function(value) { var self = this, $writer = nil; $writer = ["width", value]; $send(self.element.$style(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_Size_width$eq_3.$$arity = 1); + }, $Size_width$eq$3.$$arity = 1); - Opal.defn(self, '$height', TMP_Size_height_4 = function $$height() { + Opal.def(self, '$height', $Size_height$4 = function $$height() { var self = this; return self["native"].offsetHeight - }, TMP_Size_height_4.$$arity = 0); - return (Opal.defn(self, '$height=', TMP_Size_height$eq_5 = function(value) { + }, $Size_height$4.$$arity = 0); + return (Opal.def(self, '$height=', $Size_height$eq$5 = function(value) { var self = this, $writer = nil; $writer = ["height", value]; $send(self.element.$style(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_Size_height$eq_5.$$arity = 1), nil) && 'height='; + }, $Size_height$eq$5.$$arity = 1), nil) && 'height='; })($nesting[0], null, $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/input"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["browser/dom/element/input"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Input(){}; - var self = $Input = $klass($base, $super, 'Input', $Input); + var self = $klass($base, $super, 'Input'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Input_value_1, TMP_Input_value$eq_2, TMP_Input_checked$q_3, TMP_Input_clear_4; + var $nesting = [self].concat($parent_nesting), $Input_value$1, $Input_value$eq$2, $Input_checked$ques$3, $Input_clear$4; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$value', TMP_Input_value_1 = function $$value() { + Opal.def(self, '$value', $Input_value$1 = function $$value() { var self = this; @@ -15723,61 +17126,58 @@ Opal.modules["browser/dom/element/input"] = function(Opal) { return self["native"].value; } - }, TMP_Input_value_1.$$arity = 0); + }, $Input_value$1.$$arity = 0); - Opal.defn(self, '$value=', TMP_Input_value$eq_2 = function(value) { + Opal.def(self, '$value=', $Input_value$eq$2 = function(value) { var self = this; return self["native"].value = value - }, TMP_Input_value$eq_2.$$arity = 1); + }, $Input_value$eq$2.$$arity = 1); - Opal.defn(self, '$checked?', TMP_Input_checked$q_3 = function() { + Opal.def(self, '$checked?', $Input_checked$ques$3 = function() { var self = this; return self["native"].checked - }, TMP_Input_checked$q_3.$$arity = 0); - return (Opal.defn(self, '$clear', TMP_Input_clear_4 = function $$clear() { + }, $Input_checked$ques$3.$$arity = 0); + return (Opal.def(self, '$clear', $Input_clear$4 = function $$clear() { var self = this; return self["native"].value = '' - }, TMP_Input_clear_4.$$arity = 0), nil) && 'clear'; - })($nesting[0], Opal.const_get_relative($nesting, 'Element'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + }, $Input_clear$4.$$arity = 0), nil) && 'clear'; + })($nesting[0], $$($nesting, 'Element'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/select"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["browser/dom/element/select"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$[]', '$new', '$DOM', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Select(){}; - var self = $Select = $klass($base, $super, 'Select', $Select); + var self = $klass($base, $super, 'Select'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Select_value_1, TMP_Select_labels_2, TMP_Select_options_3, TMP_Select_option_4, TMP_Select_index_5; + var $nesting = [self].concat($parent_nesting), $Select_value$1, $Select_labels$2, $Select_options$3, $Select_option$4, $Select_index$5; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$value', TMP_Select_value_1 = function $$value() { + Opal.def(self, '$value', $Select_value$1 = function $$value() { var self = this; @@ -15788,168 +17188,159 @@ Opal.modules["browser/dom/element/select"] = function(Opal) { return self["native"].value; } - }, TMP_Select_value_1.$$arity = 0); + }, $Select_value$1.$$arity = 0); - Opal.defn(self, '$labels', TMP_Select_labels_2 = function $$labels() { + Opal.def(self, '$labels', $Select_labels$2 = function $$labels() { var self = this; - return Opal.const_get_relative($nesting, 'NodeSet')['$[]'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array').$new(self["native"].labels)) - }, TMP_Select_labels_2.$$arity = 0); + return $$($nesting, 'NodeSet')['$[]']($$$($$($nesting, 'Native'), 'Array').$new(self["native"].labels)) + }, $Select_labels$2.$$arity = 0); - Opal.defn(self, '$options', TMP_Select_options_3 = function $$options() { + Opal.def(self, '$options', $Select_options$3 = function $$options() { var self = this; - return Opal.const_get_relative($nesting, 'NodeSet')['$[]'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array').$new(self["native"].options)) - }, TMP_Select_options_3.$$arity = 0); + return $$($nesting, 'NodeSet')['$[]']($$$($$($nesting, 'Native'), 'Array').$new(self["native"].options)) + }, $Select_options$3.$$arity = 0); - Opal.defn(self, '$option', TMP_Select_option_4 = function $$option() { + Opal.def(self, '$option', $Select_option$4 = function $$option() { var self = this; return self.$DOM(self["native"].options[self["native"].selectedIndex]) - }, TMP_Select_option_4.$$arity = 0); + }, $Select_option$4.$$arity = 0); - Opal.defn(self, '$index', TMP_Select_index_5 = function $$index() { + Opal.def(self, '$index', $Select_index$5 = function $$index() { var self = this; return self["native"].selectedIndex - }, TMP_Select_index_5.$$arity = 0); + }, $Select_index$5.$$arity = 0); self.$alias_native("multiple?", "multiple"); self.$alias_native("required?", "required"); return self.$alias_native("length"); - })($nesting[0], Opal.const_get_relative($nesting, 'Element'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + })($nesting[0], $$($nesting, 'Element'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/image"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["browser/dom/element/image"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $Image(){}; - var self = $Image = $klass($base, $super, 'Image', $Image); + var self = $klass($base, $super, 'Image'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Image_complete$q_1, TMP_Image_cross$q_2, TMP_Image_height_3, TMP_Image_width_4; + var $nesting = [self].concat($parent_nesting), $Image_complete$ques$1, $Image_cross$ques$2, $Image_height$3, $Image_width$4; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$complete?', TMP_Image_complete$q_1 = function() { + Opal.def(self, '$complete?', $Image_complete$ques$1 = function() { var self = this; return self["native"].complete - }, TMP_Image_complete$q_1.$$arity = 0); + }, $Image_complete$ques$1.$$arity = 0); - Opal.defn(self, '$cross?', TMP_Image_cross$q_2 = function() { + Opal.def(self, '$cross?', $Image_cross$ques$2 = function() { var self = this; return self["native"].crossOrigin - }, TMP_Image_cross$q_2.$$arity = 0); + }, $Image_cross$ques$2.$$arity = 0); - Opal.defn(self, '$height', TMP_Image_height_3 = function $$height() { + Opal.def(self, '$height', $Image_height$3 = function $$height() { var self = this; return self["native"].naturalHeight - }, TMP_Image_height_3.$$arity = 0); - return (Opal.defn(self, '$width', TMP_Image_width_4 = function $$width() { + }, $Image_height$3.$$arity = 0); + return (Opal.def(self, '$width', $Image_width$4 = function $$width() { var self = this; return self["native"].naturalWidth - }, TMP_Image_width_4.$$arity = 0), nil) && 'width'; - })($nesting[0], Opal.const_get_relative($nesting, 'Element'), $nesting); - return Opal.const_set($nesting[0], 'Img', Opal.const_get_relative($nesting, 'Image')); - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + }, $Image_width$4.$$arity = 0), nil) && 'width'; + })($nesting[0], $$($nesting, 'Element'), $nesting); + return Opal.const_set($nesting[0], 'Img', $$($nesting, 'Image')); + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/template"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["browser/dom/element/template"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$DOM']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Template(){}; - var self = $Template = $klass($base, $super, 'Template', $Template); + var self = $klass($base, $super, 'Template'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Template_content_1; + var $nesting = [self].concat($parent_nesting), $Template_content$1; - def["native"] = nil; - return (Opal.defn(self, '$content', TMP_Template_content_1 = function $$content() { + self.$$prototype["native"] = nil; + return (Opal.def(self, '$content', $Template_content$1 = function $$content() { var self = this; return self.$DOM(self["native"].content) - }, TMP_Template_content_1.$$arity = 0), nil) && 'content' - })($nesting[0], Opal.const_get_relative($nesting, 'Element'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + }, $Template_content$1.$$arity = 0), nil) && 'content' + })($nesting[0], $$($nesting, 'Element'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element/textarea"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["browser/dom/element/textarea"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Textarea(){}; - var self = $Textarea = $klass($base, $super, 'Textarea', $Textarea); + var self = $klass($base, $super, 'Textarea'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Textarea_value_1, TMP_Textarea_value$eq_2, TMP_Textarea_clear_3; + var $nesting = [self].concat($parent_nesting), $Textarea_value$1, $Textarea_value$eq$2, $Textarea_clear$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$value', TMP_Textarea_value_1 = function $$value() { + Opal.def(self, '$value', $Textarea_value$1 = function $$value() { var self = this; @@ -15960,33 +17351,32 @@ Opal.modules["browser/dom/element/textarea"] = function(Opal) { return self["native"].value; } - }, TMP_Textarea_value_1.$$arity = 0); + }, $Textarea_value$1.$$arity = 0); - Opal.defn(self, '$value=', TMP_Textarea_value$eq_2 = function(value) { + Opal.def(self, '$value=', $Textarea_value$eq$2 = function(value) { var self = this; return self["native"].value = value - }, TMP_Textarea_value$eq_2.$$arity = 1); - return (Opal.defn(self, '$clear', TMP_Textarea_clear_3 = function $$clear() { + }, $Textarea_value$eq$2.$$arity = 1); + return (Opal.def(self, '$clear', $Textarea_clear$3 = function $$clear() { var self = this; return self["native"].value = '' - }, TMP_Textarea_clear_3.$$arity = 0), nil) && 'clear'; - })($nesting[0], Opal.const_get_relative($nesting, 'Element'), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + }, $Textarea_clear$3.$$arity = 0), nil) && 'clear'; + })($nesting[0], $$($nesting, 'Element'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/element"] = function(Opal) { +Opal.modules["browser/dom/element"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2, $alias = Opal.alias; Opal.add_stubs(['$require', '$create_element', '$==', '$capitalize', '$include?', '$constants', '$new', '$const_get', '$include', '$target', '$DOM', '$supports?', '$loaded?', '$raise', '$[]', '$map', '$xpath', '$get', '$attributes', '$set', '$+', '$class_names', '$empty?', '$join', '$uniq', '$first', '$css', '$each', '$alias_native', '$reject', '$split', '$to_proc', '$===', '$assign', '$height', '$size', '$height=', '$-', '$to_s', '$clear', '$document', '$<<', '$to_a', '$downcase', '$name', '$id', '$offset', '$flatten', '$concat', '$replace', '$apply', '$to_n', '$window', '$width', '$width=']); @@ -16002,320 +17392,338 @@ Opal.modules["browser/dom/element"] = function(Opal) { self.$require("browser/dom/element/template"); self.$require("browser/dom/element/textarea"); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Element_create_1, TMP_Element_new_2, TMP_Element_3, TMP_Element_$eq$_4, TMP_Element_$eq$_5, TMP_Element_$eq$_6, TMP_Element_$eq$_7, TMP_Element_$eq$_8, TMP_Element_$eq$_9, TMP_Element_$eq$_10, TMP_Element_$_12, TMP_Element_$$_13, TMP_Element_$$$eq_14, TMP_Element_add_class_15, TMP_Element_at_16, TMP_Element_at_css_18, TMP_Element_at_xpath_20, TMP_Element_attributes_21, TMP_Element_attribute_nodes_22, TMP_Element_class_names_23, TMP_Element_css_24, TMP_Element_css_25, TMP_Element_css_26, TMP_Element_data_27, TMP_Element_height_28, TMP_Element_height$eq_29, TMP_Element_id_30, TMP_Element_id$eq_31, TMP_Element_inner_dom_32, TMP_Element_inner_dom$eq_33, TMP_Element_inspect_34, TMP_Element_offset_35, TMP_Element_offset$eq_36, TMP_Element_position_37, TMP_Element_scroll_38, TMP_Element_search_40, TMP_Element_style_41, TMP_Element_style$B_42, TMP_Element_style$B_43, TMP_Element_style$B_44, TMP_Element_remove_attribute_45, TMP_Element_remove_class_46, TMP_Element_size_47, TMP_Element_width_48, TMP_Element_width$eq_49, TMP_Element_window_50, $a, TMP_Element_xpath_51, TMP_Element_xpath_52; + var $nesting = [self].concat($parent_nesting), $Element_create$1, $Element_new$2, $Element$3, $Element_$eq_tilde$4, $Element_$eq_tilde$5, $Element_$eq_tilde$6, $Element_$eq_tilde$7, $Element_$eq_tilde$8, $Element_$eq_tilde$9, $Element_$eq_tilde$10, $Element_$slash$11, $Element_$$$13, $Element_$$$eq$14, $Element_add_class$15, $Element_at$16, $Element_at_css$17, $Element_at_xpath$19, $Element_attributes$21, $Element_attribute_nodes$22, $Element_class_names$23, $Element_css$24, $Element_css$25, $Element_css$26, $Element_data$27, $Element_height$28, $Element_height$eq$29, $Element_id$30, $Element_id$eq$31, $Element_inner_dom$32, $Element_inner_dom$eq$33, $Element_inspect$34, $Element_offset$35, $Element_offset$eq$36, $Element_position$37, $Element_scroll$38, $Element_search$39, $Element_style$41, $Element_style$excl$42, $Element_style$excl$43, $Element_style$excl$44, $Element_remove_attribute$45, $Element_remove_class$46, $Element_size$47, $Element_width$48, $Element_width$eq$49, $Element_window$50, $Element_xpath$51, $Element_xpath$52, $ret_or_3 = nil; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$create', TMP_Element_create_1 = function $$create($a_rest) { - var self = this, args; + Opal.defs(self, '$create', $Element_create$1 = function $$create($a) { + var $post_args, args, self = this; if ($gvars.document == null) $gvars.document = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send($gvars.document, 'create_element', Opal.to_a(args)) - }, TMP_Element_create_1.$$arity = -1); - Opal.defs(self, '$new', TMP_Element_new_2 = function(node) { - var self = this, $iter = TMP_Element_new_2.$$p, $yield = $iter || nil, name = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) TMP_Element_new_2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if (self['$=='](Opal.const_get_relative($nesting, 'Element'))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($gvars.document, 'create_element', Opal.to_a(args)); + }, $Element_create$1.$$arity = -1); + Opal.defs(self, '$new', $Element_new$2 = function(node) { + var $iter = $Element_new$2.$$p, $yield = $iter || nil, self = this, name = nil; + + if ($iter) $Element_new$2.$$p = null; + if (self['$==']($$($nesting, 'Element'))) { name = (node.nodeName).$capitalize(); - if ($truthy(Opal.const_get_relative($nesting, 'Element').$constants()['$include?'](name))) { - return Opal.const_get_relative($nesting, 'Element').$const_get(name).$new(node) - } else { - return $send(self, Opal.find_super_dispatcher(self, 'new', TMP_Element_new_2, false, $Element), $zuper, $iter) - }; + if ($truthy($$($nesting, 'Element').$constants()['$include?'](name))) { + return $$($nesting, 'Element').$const_get(name).$new(node) } else { - return $send(self, Opal.find_super_dispatcher(self, 'new', TMP_Element_new_2, false, $Element), $zuper, $iter) + return $send2(self, $find_super(self, 'new', $Element_new$2, false, true), 'new', [node], $iter) + }; + } else { + return $send2(self, $find_super(self, 'new', $Element_new$2, false, true), 'new', [node], $iter) } - }, TMP_Element_new_2.$$arity = 1); - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Event'), 'Target')); - $send(self, 'target', [], (TMP_Element_3 = function(value){var self = TMP_Element_3.$$s || this; -if (value == null) value = nil; - try { + }, $Element_new$2.$$arity = 1); + self.$include($$$($$($nesting, 'Event'), 'Target')); + $send(self, 'target', [], ($Element$3 = function(value){var self = $Element$3.$$s == null ? this : $Element$3.$$s; + + + + if (value == null) { + value = nil; + }; + try { return self.$DOM(value) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - }}, TMP_Element_3.$$s = self, TMP_Element_3.$$arity = 1, TMP_Element_3)); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.matches"))) { + };}, $Element$3.$$s = self, $Element$3.$$arity = 1, $Element$3)); + if ($truthy($$($nesting, 'Browser')['$supports?']("Element.matches"))) { - Opal.defn(self, '$=~', TMP_Element_$eq$_4 = function(selector) { + Opal.def(self, '$=~', $Element_$eq_tilde$4 = function(selector) { var self = this; return self["native"].matches(selector) - }, TMP_Element_$eq$_4.$$arity = 1) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.matches (Opera)"))) { + }, $Element_$eq_tilde$4.$$arity = 1) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Element.matches (Opera)"))) { - Opal.defn(self, '$=~', TMP_Element_$eq$_5 = function(selector) { + Opal.def(self, '$=~', $Element_$eq_tilde$5 = function(selector) { var self = this; return self["native"].oMatchesSelector(selector) - }, TMP_Element_$eq$_5.$$arity = 1) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.matches (Internet Explorer)"))) { + }, $Element_$eq_tilde$5.$$arity = 1) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Element.matches (Internet Explorer)"))) { - Opal.defn(self, '$=~', TMP_Element_$eq$_6 = function(selector) { + Opal.def(self, '$=~', $Element_$eq_tilde$6 = function(selector) { var self = this; return self["native"].msMatchesSelector(selector) - }, TMP_Element_$eq$_6.$$arity = 1) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.matches (Firefox)"))) { + }, $Element_$eq_tilde$6.$$arity = 1) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Element.matches (Firefox)"))) { - Opal.defn(self, '$=~', TMP_Element_$eq$_7 = function(selector) { + Opal.def(self, '$=~', $Element_$eq_tilde$7 = function(selector) { var self = this; return self["native"].mozMatchesSelector(selector) - }, TMP_Element_$eq$_7.$$arity = 1) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Element.matches (Chrome)"))) { + }, $Element_$eq_tilde$7.$$arity = 1) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Element.matches (Chrome)"))) { - Opal.defn(self, '$=~', TMP_Element_$eq$_8 = function(selector) { + Opal.def(self, '$=~', $Element_$eq_tilde$8 = function(selector) { var self = this; return self["native"].webkitMatchesSelector(selector) - }, TMP_Element_$eq$_8.$$arity = 1) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$loaded?']("Sizzle"))) { + }, $Element_$eq_tilde$8.$$arity = 1) + } else if ($truthy($$($nesting, 'Browser')['$loaded?']("Sizzle"))) { - Opal.defn(self, '$=~', TMP_Element_$eq$_9 = function(selector) { + Opal.def(self, '$=~', $Element_$eq_tilde$9 = function(selector) { var self = this; return Sizzle.matchesSelector(self["native"], selector) - }, TMP_Element_$eq$_9.$$arity = 1) - } else { + }, $Element_$eq_tilde$9.$$arity = 1) + } else { - Opal.defn(self, '$=~', TMP_Element_$eq$_10 = function(selector) { + Opal.def(self, '$=~', $Element_$eq_tilde$10 = function(selector) { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "selector matching unsupported") - }, TMP_Element_$eq$_10.$$arity = 1) + return self.$raise($$($nesting, 'NotImplementedError'), "selector matching unsupported") + }, $Element_$eq_tilde$10.$$arity = 1) }; - Opal.defn(self, '$/', TMP_Element_$_12 = function($a_rest) { - var TMP_11, self = this, paths; + Opal.def(self, '$/', $Element_$slash$11 = function($a) { + var $post_args, paths, $$12, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - paths = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - paths[$arg_idx - 0] = arguments[$arg_idx]; - } - return Opal.const_get_relative($nesting, 'NodeSet')['$[]']($send(paths, 'map', [], (TMP_11 = function(path){var self = TMP_11.$$s || this; -if (path == null) path = nil; - return self.$xpath(path)}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11))) - }, TMP_Element_$_12.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + paths = $post_args;; + return $$($nesting, 'NodeSet')['$[]']($send(paths, 'map', [], ($$12 = function(path){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (path == null) { + path = nil; + }; + return self.$xpath(path);}, $$12.$$s = self, $$12.$$arity = 1, $$12))); + }, $Element_$slash$11.$$arity = -1); - Opal.defn(self, '$[]', TMP_Element_$$_13 = function(name, options) { + Opal.def(self, '$[]', $Element_$$$13 = function(name, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return self.$attributes().$get(name, options) - }, TMP_Element_$$_13.$$arity = -2); + }; + return self.$attributes().$get(name, options); + }, $Element_$$$13.$$arity = -2); - Opal.defn(self, '$[]=', TMP_Element_$$$eq_14 = function(name, value, options) { + Opal.def(self, '$[]=', $Element_$$$eq$14 = function(name, value, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return self.$attributes().$set(name, value, options) - }, TMP_Element_$$$eq_14.$$arity = -3); + }; + return self.$attributes().$set(name, value, options); + }, $Element_$$$eq$14.$$arity = -3); - Opal.defn(self, '$add_class', TMP_Element_add_class_15 = function $$add_class($a_rest) { - var self = this, names, classes = nil; + Opal.def(self, '$add_class', $Element_add_class$15 = function $$add_class($a) { + var $post_args, names, self = this, classes = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; classes = $rb_plus(self.$class_names(), names); if ($truthy(classes['$empty?']())) { - } else { + } else { self["native"].className = classes.$uniq().$join(" ") }; return self; - }, TMP_Element_add_class_15.$$arity = -1); + }, $Element_add_class$15.$$arity = -1); - Opal.defn(self, '$at', TMP_Element_at_16 = function $$at(path_or_selector) { - var $a, self = this; + Opal.def(self, '$at', $Element_at$16 = function $$at(path_or_selector) { + var self = this, $ret_or_1 = nil; - return ($truthy($a = self.$xpath(path_or_selector).$first()) ? $a : self.$css(path_or_selector).$first()) - }, TMP_Element_at_16.$$arity = 1); + if ($truthy(($ret_or_1 = self.$xpath(path_or_selector).$first()))) { + return $ret_or_1 + } else { + return self.$css(path_or_selector).$first() + } + }, $Element_at$16.$$arity = 1); - Opal.defn(self, '$at_css', TMP_Element_at_css_18 = function $$at_css($a_rest) { - var TMP_17, self = this, rules, result = nil; + Opal.def(self, '$at_css', $Element_at_css$17 = function $$at_css($a) { + var $post_args, rules, $$18, self = this, result = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - rules = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - rules[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + rules = $post_args;; result = nil; - (function(){var $brk = Opal.new_brk(); try {return $send(rules, 'each', [], (TMP_17 = function(rule){var self = TMP_17.$$s || this; -if (rule == null) rule = nil; - if ($truthy((result = self.$css(rule).$first()))) { + (function(){var $brk = Opal.new_brk(); try {return $send(rules, 'each', [], ($$18 = function(rule){var self = $$18.$$s == null ? this : $$18.$$s; + + + + if (rule == null) { + rule = nil; + }; + if ($truthy((result = self.$css(rule).$first()))) { Opal.brk(nil, $brk) - } else { + } else { return nil - }}, TMP_17.$$s = self, TMP_17.$$brk = $brk, TMP_17.$$arity = 1, TMP_17)) + };}, $$18.$$s = self, $$18.$$brk = $brk, $$18.$$arity = 1, $$18)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return result; - }, TMP_Element_at_css_18.$$arity = -1); + }, $Element_at_css$17.$$arity = -1); - Opal.defn(self, '$at_xpath', TMP_Element_at_xpath_20 = function $$at_xpath($a_rest) { - var TMP_19, self = this, paths, result = nil; + Opal.def(self, '$at_xpath', $Element_at_xpath$19 = function $$at_xpath($a) { + var $post_args, paths, $$20, self = this, result = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - paths = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - paths[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + paths = $post_args;; result = nil; - (function(){var $brk = Opal.new_brk(); try {return $send(paths, 'each', [], (TMP_19 = function(path){var self = TMP_19.$$s || this; -if (path == null) path = nil; - if ($truthy((result = self.$xpath(path).$first()))) { + (function(){var $brk = Opal.new_brk(); try {return $send(paths, 'each', [], ($$20 = function(path){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (path == null) { + path = nil; + }; + if ($truthy((result = self.$xpath(path).$first()))) { Opal.brk(nil, $brk) - } else { + } else { return nil - }}, TMP_19.$$s = self, TMP_19.$$brk = $brk, TMP_19.$$arity = 1, TMP_19)) + };}, $$20.$$s = self, $$20.$$brk = $brk, $$20.$$arity = 1, $$20)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); return result; - }, TMP_Element_at_xpath_20.$$arity = -1); - Opal.alias(self, "attr", "[]"); - Opal.alias(self, "attribute", "[]"); + }, $Element_at_xpath$19.$$arity = -1); + $alias(self, "attr", "[]"); + $alias(self, "attribute", "[]"); - Opal.defn(self, '$attributes', TMP_Element_attributes_21 = function $$attributes(options) { + Opal.def(self, '$attributes', $Element_attributes$21 = function $$attributes(options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return Opal.const_get_relative($nesting, 'Attributes').$new(self, options) - }, TMP_Element_attributes_21.$$arity = -1); + }; + return $$($nesting, 'Attributes').$new(self, options); + }, $Element_attributes$21.$$arity = -1); - Opal.defn(self, '$attribute_nodes', TMP_Element_attribute_nodes_22 = function $$attribute_nodes() { + Opal.def(self, '$attribute_nodes', $Element_attribute_nodes$22 = function $$attribute_nodes() { var self = this; - return Opal.const_get_relative($nesting, 'NodeSet')['$[]'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array').$new(self["native"].attributes, $hash2(["get"], {"get": "item"}))) - }, TMP_Element_attribute_nodes_22.$$arity = 0); + return $$($nesting, 'NodeSet')['$[]']($$$($$($nesting, 'Native'), 'Array').$new(self["native"].attributes, $hash2(["get"], {"get": "item"}))) + }, $Element_attribute_nodes$22.$$arity = 0); self.$alias_native("class_name", "className"); - Opal.defn(self, '$class_names', TMP_Element_class_names_23 = function $$class_names() { + Opal.def(self, '$class_names', $Element_class_names$23 = function $$class_names() { var self = this; return $send((self["native"].className).$split(/\s+/), 'reject', [], "empty?".$to_proc()) - }, TMP_Element_class_names_23.$$arity = 0); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Query.css"))) { + }, $Element_class_names$23.$$arity = 0); + if ($truthy($$($nesting, 'Browser')['$supports?']("Query.css"))) { - Opal.defn(self, '$css', TMP_Element_css_24 = function $$css(path) { + Opal.def(self, '$css', $Element_css$24 = function $$css(path) { var self = this; try { - return Opal.const_get_relative($nesting, 'NodeSet')['$[]'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array').$new(self["native"].querySelectorAll(path))) + return $$($nesting, 'NodeSet')['$[]']($$$($$($nesting, 'Native'), 'Array').$new(self["native"].querySelectorAll(path))) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { try { - return Opal.const_get_relative($nesting, 'NodeSet')['$[]']() - } finally { Opal.pop_exception() } + return $$($nesting, 'NodeSet')['$[]']() + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Element_css_24.$$arity = 1) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$loaded?']("Sizzle"))) { + }, $Element_css$24.$$arity = 1) + } else if ($truthy($$($nesting, 'Browser')['$loaded?']("Sizzle"))) { - Opal.defn(self, '$css', TMP_Element_css_25 = function $$css(path) { + Opal.def(self, '$css', $Element_css$25 = function $$css(path) { var self = this; try { - return Opal.const_get_relative($nesting, 'NodeSet')['$[]'](Sizzle(path, self["native"])) + return $$($nesting, 'NodeSet')['$[]'](Sizzle(path, self["native"])) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { try { - return Opal.const_get_relative($nesting, 'NodeSet')['$[]']() - } finally { Opal.pop_exception() } + return $$($nesting, 'NodeSet')['$[]']() + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Element_css_25.$$arity = 1) - } else { + }, $Element_css$25.$$arity = 1) + } else { - Opal.defn(self, '$css', TMP_Element_css_26 = function $$css(selector) { + Opal.def(self, '$css', $Element_css$26 = function $$css(selector) { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "query by CSS selector unsupported") - }, TMP_Element_css_26.$$arity = 1) + return self.$raise($$($nesting, 'NotImplementedError'), "query by CSS selector unsupported") + }, $Element_css$26.$$arity = 1) }; - Opal.defn(self, '$data', TMP_Element_data_27 = function $$data(value) { + Opal.def(self, '$data', $Element_data$27 = function $$data(value) { var self = this, data = nil; - if (value == null) { - value = nil; - } - data = Opal.const_get_relative($nesting, 'Data').$new(self); + + if (value == null) { + value = nil; + }; + data = $$($nesting, 'Data').$new(self); if ($truthy(value)) { - } else { + } else { return data }; - if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](value))) { + if ($truthy($$($nesting, 'Hash')['$==='](value))) { data.$assign(value) - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "unknown data type") + } else { + self.$raise($$($nesting, 'ArgumentError'), "unknown data type") }; return self; - }, TMP_Element_data_27.$$arity = -1); - Opal.alias(self, "get_attribute", "[]"); - Opal.alias(self, "get", "[]"); + }, $Element_data$27.$$arity = -1); + $alias(self, "get_attribute", "[]"); + $alias(self, "get", "[]"); - Opal.defn(self, '$height', TMP_Element_height_28 = function $$height() { + Opal.def(self, '$height', $Element_height$28 = function $$height() { var self = this; return self.$size().$height() - }, TMP_Element_height_28.$$arity = 0); + }, $Element_height$28.$$arity = 0); - Opal.defn(self, '$height=', TMP_Element_height$eq_29 = function(value) { + Opal.def(self, '$height=', $Element_height$eq$29 = function(value) { var self = this, $writer = nil; $writer = [value]; $send(self.$size(), 'height=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_Element_height$eq_29.$$arity = 1); + }, $Element_height$eq$29.$$arity = 1); - Opal.defn(self, '$id', TMP_Element_id_30 = function $$id() { + Opal.def(self, '$id', $Element_id$30 = function $$id() { var self = this; @@ -16328,33 +17736,35 @@ if (path == null) path = nil; return id; } - }, TMP_Element_id_30.$$arity = 0); + }, $Element_id$30.$$arity = 0); - Opal.defn(self, '$id=', TMP_Element_id$eq_31 = function(value) { + Opal.def(self, '$id=', $Element_id$eq$31 = function(value) { var self = this; return self["native"].id = value.$to_s() - }, TMP_Element_id$eq_31.$$arity = 1); + }, $Element_id$eq$31.$$arity = 1); - Opal.defn(self, '$inner_dom', TMP_Element_inner_dom_32 = function $$inner_dom() { - var self = this, $iter = TMP_Element_inner_dom_32.$$p, block = $iter || nil, doc = nil; + Opal.def(self, '$inner_dom', $Element_inner_dom$32 = function $$inner_dom() { + var $iter = $Element_inner_dom$32.$$p, block = $iter || nil, self = this, doc = nil; - if ($iter) TMP_Element_inner_dom_32.$$p = null; + if ($iter) $Element_inner_dom$32.$$p = null; + + if ($iter) $Element_inner_dom$32.$$p = null;; self.$clear(); doc = self.$document(); - return self['$<<']($send(Opal.const_get_relative($nesting, 'Builder'), 'new', [doc, self], block.$to_proc()).$to_a()); - }, TMP_Element_inner_dom_32.$$arity = 0); + return self['$<<']($send($$($nesting, 'Builder'), 'new', [doc, self], block.$to_proc()).$to_a()); + }, $Element_inner_dom$32.$$arity = 0); - Opal.defn(self, '$inner_dom=', TMP_Element_inner_dom$eq_33 = function(node) { + Opal.def(self, '$inner_dom=', $Element_inner_dom$eq$33 = function(node) { var self = this; self.$clear(); return self['$<<'](node); - }, TMP_Element_inner_dom$eq_33.$$arity = 1); + }, $Element_inner_dom$eq$33.$$arity = 1); - Opal.defn(self, '$inspect', TMP_Element_inspect_34 = function $$inspect() { + Opal.def(self, '$inspect', $Element_inspect$34 = function $$inspect() { var self = this, inspect = nil; @@ -16362,224 +17772,232 @@ if (path == null) path = nil; if ($truthy(self.$id())) { inspect = $rb_plus(inspect, $rb_plus($rb_plus(".", self.$id()), "!"))}; if ($truthy(self.$class_names()['$empty?']())) { - } else { + } else { inspect = $rb_plus(inspect, $rb_plus(".", self.$class_names().$join("."))) }; return "" + "#"; - }, TMP_Element_inspect_34.$$arity = 0); + }, $Element_inspect$34.$$arity = 0); - Opal.defn(self, '$offset', TMP_Element_offset_35 = function $$offset($a_rest) { - var self = this, values, off = nil; + Opal.def(self, '$offset', $Element_offset$35 = function $$offset($a) { + var $post_args, values, self = this, off = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - values = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - values[$arg_idx - 0] = arguments[$arg_idx]; - } - off = Opal.const_get_relative($nesting, 'Offset').$new(self); + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + values = $post_args;; + off = $$($nesting, 'Offset').$new(self); if ($truthy(values['$empty?']())) { - } else { + } else { $send(off, 'set', Opal.to_a(values)) }; return off; - }, TMP_Element_offset_35.$$arity = -1); + }, $Element_offset$35.$$arity = -1); - Opal.defn(self, '$offset=', TMP_Element_offset$eq_36 = function(value) { + Opal.def(self, '$offset=', $Element_offset$eq$36 = function(value) { var self = this; return $send(self.$offset(), 'set', Opal.to_a(value)) - }, TMP_Element_offset$eq_36.$$arity = 1); + }, $Element_offset$eq$36.$$arity = 1); - Opal.defn(self, '$position', TMP_Element_position_37 = function $$position() { + Opal.def(self, '$position', $Element_position$37 = function $$position() { var self = this; - return Opal.const_get_relative($nesting, 'Position').$new(self) - }, TMP_Element_position_37.$$arity = 0); + return $$($nesting, 'Position').$new(self) + }, $Element_position$37.$$arity = 0); - Opal.defn(self, '$scroll', TMP_Element_scroll_38 = function $$scroll() { + Opal.def(self, '$scroll', $Element_scroll$38 = function $$scroll() { var self = this; - return Opal.const_get_relative($nesting, 'Scroll').$new(self) - }, TMP_Element_scroll_38.$$arity = 0); + return $$($nesting, 'Scroll').$new(self) + }, $Element_scroll$38.$$arity = 0); - Opal.defn(self, '$search', TMP_Element_search_40 = function $$search($a_rest) { - var TMP_39, self = this, selectors; + Opal.def(self, '$search', $Element_search$39 = function $$search($a) { + var $post_args, selectors, $$40, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - selectors = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - selectors[$arg_idx - 0] = arguments[$arg_idx]; - } - return Opal.const_get_relative($nesting, 'NodeSet').$new($send(selectors, 'map', [], (TMP_39 = function(selector){var self = TMP_39.$$s || this; -if (selector == null) selector = nil; - return self.$xpath(selector).$to_a().$concat(self.$css(selector).$to_a())}, TMP_39.$$s = self, TMP_39.$$arity = 1, TMP_39)).$flatten().$uniq()) - }, TMP_Element_search_40.$$arity = -1); - Opal.alias(self, "set", "[]="); - Opal.alias(self, "set_attribute", "[]="); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + selectors = $post_args;; + return $$($nesting, 'NodeSet').$new($send(selectors, 'map', [], ($$40 = function(selector){var self = $$40.$$s == null ? this : $$40.$$s; + + + + if (selector == null) { + selector = nil; + }; + return self.$xpath(selector).$to_a().$concat(self.$css(selector).$to_a());}, $$40.$$s = self, $$40.$$arity = 1, $$40)).$flatten().$uniq()); + }, $Element_search$39.$$arity = -1); + $alias(self, "set", "[]="); + $alias(self, "set_attribute", "[]="); - Opal.defn(self, '$style', TMP_Element_style_41 = function $$style(data) { - var $a, self = this, $iter = TMP_Element_style_41.$$p, block = $iter || nil, style = nil; + Opal.def(self, '$style', $Element_style$41 = function $$style(data) { + var $iter = $Element_style$41.$$p, block = $iter || nil, self = this, style = nil, $ret_or_2 = nil; + if ($iter) $Element_style$41.$$p = null; + + + if ($iter) $Element_style$41.$$p = null;; + if (data == null) { data = nil; - } - if ($iter) TMP_Element_style_41.$$p = null; - - style = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'CSS'), 'Declaration').$new(self["native"].style); - if ($truthy(($truthy($a = data) ? $a : block))) { - } else { + }; + style = $$$($$($nesting, 'CSS'), 'Declaration').$new(self["native"].style); + if ($truthy((function() {if ($truthy(($ret_or_2 = data))) { + return $ret_or_2 + } else { + return block + }; return nil; })())) { + } else { return style }; - if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](data))) { + if ($truthy($$($nesting, 'String')['$==='](data))) { style.$replace(data) - } else if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](data))) { + } else if ($truthy($$($nesting, 'Hash')['$==='](data))) { style.$assign(data) } else if ($truthy(block)) { $send(style, 'apply', [], block.$to_proc()) - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "unknown data type") + } else { + self.$raise($$($nesting, 'ArgumentError'), "unknown data type") }; return self; - }, TMP_Element_style_41.$$arity = -1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("CSS.computed"))) { + }, $Element_style$41.$$arity = -1); + if ($truthy($$($nesting, 'Browser')['$supports?']("CSS.computed"))) { - Opal.defn(self, '$style!', TMP_Element_style$B_42 = function() { + Opal.def(self, '$style!', $Element_style$excl$42 = function() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'CSS'), 'Declaration').$new(self.$window().$to_n().getComputedStyle(self["native"], null)) - }, TMP_Element_style$B_42.$$arity = 0) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("CSS.current"))) { + return $$$($$($nesting, 'CSS'), 'Declaration').$new(self.$window().$to_n().getComputedStyle(self["native"], null)) + }, $Element_style$excl$42.$$arity = 0) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("CSS.current"))) { - Opal.defn(self, '$style!', TMP_Element_style$B_43 = function() { + Opal.def(self, '$style!', $Element_style$excl$43 = function() { var self = this; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'CSS'), 'Declaration').$new(self["native"].currentStyle) - }, TMP_Element_style$B_43.$$arity = 0) - } else { + return $$$($$($nesting, 'CSS'), 'Declaration').$new(self["native"].currentStyle) + }, $Element_style$excl$43.$$arity = 0) + } else { - Opal.defn(self, '$style!', TMP_Element_style$B_44 = function() { + Opal.def(self, '$style!', $Element_style$excl$44 = function() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "computed style unsupported") - }, TMP_Element_style$B_44.$$arity = 0) + return self.$raise($$($nesting, 'NotImplementedError'), "computed style unsupported") + }, $Element_style$excl$44.$$arity = 0) }; - Opal.defn(self, '$remove_attribute', TMP_Element_remove_attribute_45 = function $$remove_attribute(name) { + Opal.def(self, '$remove_attribute', $Element_remove_attribute$45 = function $$remove_attribute(name) { var self = this; return self["native"].removeAttribute(name) - }, TMP_Element_remove_attribute_45.$$arity = 1); + }, $Element_remove_attribute$45.$$arity = 1); - Opal.defn(self, '$remove_class', TMP_Element_remove_class_46 = function $$remove_class($a_rest) { - var self = this, names, classes = nil; + Opal.def(self, '$remove_class', $Element_remove_class$46 = function $$remove_class($a) { + var $post_args, names, self = this, classes = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; classes = $rb_minus(self.$class_names(), names); if ($truthy(classes['$empty?']())) { self["native"].removeAttribute('class') - } else { + } else { self["native"].className = classes.$join(" ") }; return self; - }, TMP_Element_remove_class_46.$$arity = -1); + }, $Element_remove_class$46.$$arity = -1); - Opal.defn(self, '$size', TMP_Element_size_47 = function $$size($a_rest) { - var self = this, inc; + Opal.def(self, '$size', $Element_size$47 = function $$size($a) { + var $post_args, inc, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - inc = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - inc[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'Size'), 'new', [self].concat(Opal.to_a(inc))) - }, TMP_Element_size_47.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + inc = $post_args;; + return $send($$($nesting, 'Size'), 'new', [self].concat(Opal.to_a(inc))); + }, $Element_size$47.$$arity = -1); - Opal.defn(self, '$width', TMP_Element_width_48 = function $$width() { + Opal.def(self, '$width', $Element_width$48 = function $$width() { var self = this; return self.$size().$width() - }, TMP_Element_width_48.$$arity = 0); + }, $Element_width$48.$$arity = 0); - Opal.defn(self, '$width=', TMP_Element_width$eq_49 = function(value) { + Opal.def(self, '$width=', $Element_width$eq$49 = function(value) { var self = this, $writer = nil; $writer = [value]; $send(self.$size(), 'width=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_Element_width$eq_49.$$arity = 1); + }, $Element_width$eq$49.$$arity = 1); - Opal.defn(self, '$window', TMP_Element_window_50 = function $$window() { + Opal.def(self, '$window', $Element_window$50 = function $$window() { var self = this; return self.$document().$window() - }, TMP_Element_window_50.$$arity = 0); - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Browser')['$supports?']("Query.xpath")) ? $a : Opal.const_get_relative($nesting, 'Browser')['$loaded?']("wicked-good-xpath")))) { + }, $Element_window$50.$$arity = 0); + if ($truthy((function() {if ($truthy(($ret_or_3 = $$($nesting, 'Browser')['$supports?']("Query.xpath")))) { + return $ret_or_3 + } else { + return $$($nesting, 'Browser')['$loaded?']("wicked-good-xpath") + }; return nil; })())) { - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$loaded?']("wicked-good-xpath"))) { + if ($truthy($$($nesting, 'Browser')['$loaded?']("wicked-good-xpath"))) { wgxpath.install()}; - return (Opal.defn(self, '$xpath', TMP_Element_xpath_51 = function $$xpath(path) { + return (Opal.def(self, '$xpath', $Element_xpath$51 = function $$xpath(path) { var self = this; try { - return Opal.const_get_relative($nesting, 'NodeSet')['$[]'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array').$new((self["native"].ownerDocument || self["native"]).evaluate(path, + return $$($nesting, 'NodeSet')['$[]']($$$($$($nesting, 'Native'), 'Array').$new((self["native"].ownerDocument || self["native"]).evaluate(path, self["native"], null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null), $hash2(["get", "length"], {"get": "snapshotItem", "length": "snapshotLength"}))) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { try { - return Opal.const_get_relative($nesting, 'NodeSet')['$[]']() - } finally { Opal.pop_exception() } + return $$($nesting, 'NodeSet')['$[]']() + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Element_xpath_51.$$arity = 1), nil) && 'xpath'; - } else { - return (Opal.defn(self, '$xpath', TMP_Element_xpath_52 = function $$xpath(path) { + }, $Element_xpath$51.$$arity = 1), nil) && 'xpath'; + } else { + return (Opal.def(self, '$xpath', $Element_xpath$52 = function $$xpath(path) { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "query by XPath unsupported") - }, TMP_Element_xpath_52.$$arity = 1), nil) && 'xpath' + return self.$raise($$($nesting, 'NotImplementedError'), "query by XPath unsupported") + }, $Element_xpath$52.$$arity = 1), nil) && 'xpath' }; - })($nesting[0], Opal.const_get_relative($nesting, 'Node'), $nesting) + })($nesting[0], $$($nesting, 'Node'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/document"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["browser/dom/document"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $hash2 = Opal.hash2, $send = Opal.send; Opal.add_stubs(['$DOM', '$first', '$css', '$xpath', '$[]', '$supports?', '$raise', '$ready?', '$call', '$on', '$off', '$convert', '$new']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Document(){}; - var self = $Document = $klass($base, $super, 'Document', $Document); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Document'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Document_$$_1, TMP_Document_body_2, TMP_Document_create_element_3, TMP_Document_create_text_4, TMP_Document_document_5, TMP_Document_head_6, TMP_Document_inspect_7, TMP_Document_ready_8, TMP_Document_ready_10, TMP_Document_ready_12, TMP_Document_ready$q_13, TMP_Document_root_14, TMP_Document_root$eq_15, TMP_Document_style_sheets_17, TMP_Document_title_18, TMP_Document_title$eq_19, TMP_Document_window_20, TMP_Document_window_21, TMP_Document_window_22; + var $nesting = [self].concat($parent_nesting), $Document_$$$1, $Document_body$2, $Document_create_element$3, $Document_create_text$4, $Document_document$5, $Document_head$6, $Document_inspect$7, $Document_ready$8, $Document_ready$10, $Document_ready$12, $Document_ready$ques$13, $Document_root$14, $Document_root$eq$15, $Document_style_sheets$16, $Document_title$18, $Document_title$eq$19, $Document_window$20, $Document_window$21, $Document_window$22; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$[]', TMP_Document_$$_1 = function(what) { - var $a, self = this; + Opal.def(self, '$[]', $Document_$$$1 = function(what) { + var self = this, $ret_or_1 = nil; @@ -16589,380 +18007,472 @@ Opal.modules["browser/dom/document"] = function(Opal) { return self.$DOM(result); } ; - return ($truthy($a = self.$css(what).$first()) ? $a : self.$xpath(what).$first()); - }, TMP_Document_$$_1.$$arity = 1); - Opal.alias(self, "at", "[]"); + if ($truthy(($ret_or_1 = self.$css(what).$first()))) { + return $ret_or_1 + } else { + return self.$xpath(what).$first() + }; + }, $Document_$$$1.$$arity = 1); + $alias(self, "at", "[]"); - Opal.defn(self, '$body', TMP_Document_body_2 = function $$body() { + Opal.def(self, '$body', $Document_body$2 = function $$body() { var self = this; return self.$DOM(self["native"].body) - }, TMP_Document_body_2.$$arity = 0); + }, $Document_body$2.$$arity = 0); - Opal.defn(self, '$create_element', TMP_Document_create_element_3 = function $$create_element(name, options) { + Opal.def(self, '$create_element', $Document_create_element$3 = function $$create_element(name, options) { var self = this, ns = nil; + + if (options == null) { options = $hash2([], {}); - } + }; if ($truthy((ns = options['$[]']("namespace")))) { return self.$DOM(self["native"].createElementNS(ns, name)) - } else { + } else { return self.$DOM(self["native"].createElement(name)) - } - }, TMP_Document_create_element_3.$$arity = -2); + }; + }, $Document_create_element$3.$$arity = -2); - Opal.defn(self, '$create_text', TMP_Document_create_text_4 = function $$create_text(content) { + Opal.def(self, '$create_text', $Document_create_text$4 = function $$create_text(content) { var self = this; return self.$DOM(self["native"].createTextNode(content)) - }, TMP_Document_create_text_4.$$arity = 1); + }, $Document_create_text$4.$$arity = 1); - Opal.defn(self, '$document', TMP_Document_document_5 = function $$document() { + Opal.def(self, '$document', $Document_document$5 = function $$document() { var self = this; return self - }, TMP_Document_document_5.$$arity = 0); + }, $Document_document$5.$$arity = 0); - Opal.defn(self, '$head', TMP_Document_head_6 = function $$head() { + Opal.def(self, '$head', $Document_head$6 = function $$head() { var self = this; return self.$DOM(self["native"].getElementsByTagName("head")[0]) - }, TMP_Document_head_6.$$arity = 0); + }, $Document_head$6.$$arity = 0); - Opal.defn(self, '$inspect', TMP_Document_inspect_7 = function $$inspect() { + Opal.def(self, '$inspect', $Document_inspect$7 = function $$inspect() { var self = this; return "#" - }, TMP_Document_inspect_7.$$arity = 0); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.addListener"))) { + }, $Document_inspect$7.$$arity = 0); + if ($truthy($$($nesting, 'Browser')['$supports?']("Event.addListener"))) { - Opal.defn(self, '$ready', TMP_Document_ready_8 = function $$ready() { - var TMP_9, self = this, $iter = TMP_Document_ready_8.$$p, block = $iter || nil; + Opal.def(self, '$ready', $Document_ready$8 = function $$ready() { + var $iter = $Document_ready$8.$$p, block = $iter || nil, $$9, self = this; - if ($iter) TMP_Document_ready_8.$$p = null; + if ($iter) $Document_ready$8.$$p = null; + + if ($iter) $Document_ready$8.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no block given") + } else { + self.$raise($$($nesting, 'ArgumentError'), "no block given") }; if ($truthy(self['$ready?']())) { return block.$call()}; - return $send(self, 'on', ["dom:load"], (TMP_9 = function(e){var self = TMP_9.$$s || this; -if (e == null) e = nil; - + return $send(self, 'on', ["dom:load"], ($$9 = function(e){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (e == null) { + e = nil; + }; e.$off(); - return block.$call();}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)); - }, TMP_Document_ready_8.$$arity = 0) - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Event.attach"))) { + return block.$call();}, $$9.$$s = self, $$9.$$arity = 1, $$9)); + }, $Document_ready$8.$$arity = 0) + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Event.attach"))) { - Opal.defn(self, '$ready', TMP_Document_ready_10 = function $$ready() { - var TMP_11, self = this, $iter = TMP_Document_ready_10.$$p, block = $iter || nil; + Opal.def(self, '$ready', $Document_ready$10 = function $$ready() { + var $iter = $Document_ready$10.$$p, block = $iter || nil, $$11, self = this; - if ($iter) TMP_Document_ready_10.$$p = null; + if ($iter) $Document_ready$10.$$p = null; + + if ($iter) $Document_ready$10.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no block given") + } else { + self.$raise($$($nesting, 'ArgumentError'), "no block given") }; if ($truthy(self['$ready?']())) { return block.$call()}; - return $send(self, 'on', ["ready:state:change"], (TMP_11 = function(e){var self = TMP_11.$$s || this; -if (e == null) e = nil; - if ($truthy(self['$ready?']())) { + return $send(self, 'on', ["ready:state:change"], ($$11 = function(e){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (e == null) { + e = nil; + }; + if ($truthy(self['$ready?']())) { e.$off(); return block.$call(); - } else { + } else { return nil - }}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)); - }, TMP_Document_ready_10.$$arity = 0) - } else { + };}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + }, $Document_ready$10.$$arity = 0) + } else { - Opal.defn(self, '$ready', TMP_Document_ready_12 = function $$ready() { - var self = this, $iter = TMP_Document_ready_12.$$p, block = $iter || nil; + Opal.def(self, '$ready', $Document_ready$12 = function $$ready() { + var $iter = $Document_ready$12.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Document_ready_12.$$p = null; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "document ready unsupported") - }, TMP_Document_ready_12.$$arity = 0) + if ($iter) $Document_ready$12.$$p = null; + + + if ($iter) $Document_ready$12.$$p = null;; + return self.$raise($$($nesting, 'NotImplementedError'), "document ready unsupported"); + }, $Document_ready$12.$$arity = 0) }; - Opal.defn(self, '$ready?', TMP_Document_ready$q_13 = function() { + Opal.def(self, '$ready?', $Document_ready$ques$13 = function() { var self = this; return self["native"].readyState === "complete" - }, TMP_Document_ready$q_13.$$arity = 0); + }, $Document_ready$ques$13.$$arity = 0); - Opal.defn(self, '$root', TMP_Document_root_14 = function $$root() { + Opal.def(self, '$root', $Document_root$14 = function $$root() { var self = this; return self.$DOM(self["native"].documentElement) - }, TMP_Document_root_14.$$arity = 0); + }, $Document_root$14.$$arity = 0); - Opal.defn(self, '$root=', TMP_Document_root$eq_15 = function(element) { + Opal.def(self, '$root=', $Document_root$eq$15 = function(element) { var self = this; - return self["native"].documentElement = Opal.const_get_relative($nesting, 'Native').$convert(element) - }, TMP_Document_root$eq_15.$$arity = 1); + return self["native"].documentElement = $$($nesting, 'Native').$convert(element) + }, $Document_root$eq$15.$$arity = 1); - Opal.defn(self, '$style_sheets', TMP_Document_style_sheets_17 = function $$style_sheets() { - var TMP_16, self = this; + Opal.def(self, '$style_sheets', $Document_style_sheets$16 = function $$style_sheets() { + var $$17, self = this; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array'), 'new', [self["native"].styleSheets], (TMP_16 = function(e){var self = TMP_16.$$s || this; -if (e == null) e = nil; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'CSS'), 'StyleSheet').$new(e)}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)) - }, TMP_Document_style_sheets_17.$$arity = 0); + return $send($$$($$($nesting, 'Native'), 'Array'), 'new', [self["native"].styleSheets], ($$17 = function(e){var self = $$17.$$s == null ? this : $$17.$$s; + + + + if (e == null) { + e = nil; + }; + return $$$($$($nesting, 'CSS'), 'StyleSheet').$new(e);}, $$17.$$s = self, $$17.$$arity = 1, $$17)) + }, $Document_style_sheets$16.$$arity = 0); - Opal.defn(self, '$title', TMP_Document_title_18 = function $$title() { + Opal.def(self, '$title', $Document_title$18 = function $$title() { var self = this; return self["native"].title - }, TMP_Document_title_18.$$arity = 0); + }, $Document_title$18.$$arity = 0); - Opal.defn(self, '$title=', TMP_Document_title$eq_19 = function(value) { + Opal.def(self, '$title=', $Document_title$eq$19 = function(value) { var self = this; return self["native"].title = value - }, TMP_Document_title$eq_19.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Document.view"))) { - return (Opal.defn(self, '$window', TMP_Document_window_20 = function $$window() { + }, $Document_title$eq$19.$$arity = 1); + if ($truthy($$($nesting, 'Browser')['$supports?']("Document.view"))) { + return (Opal.def(self, '$window', $Document_window$20 = function $$window() { var self = this; - return Opal.const_get_relative($nesting, 'Window').$new(self["native"].defaultView) - }, TMP_Document_window_20.$$arity = 0), nil) && 'window' - } else if ($truthy(Opal.const_get_relative($nesting, 'Browser')['$supports?']("Document.window"))) { - return (Opal.defn(self, '$window', TMP_Document_window_21 = function $$window() { + return $$($nesting, 'Window').$new(self["native"].defaultView) + }, $Document_window$20.$$arity = 0), nil) && 'window' + } else if ($truthy($$($nesting, 'Browser')['$supports?']("Document.window"))) { + return (Opal.def(self, '$window', $Document_window$21 = function $$window() { var self = this; - return Opal.const_get_relative($nesting, 'Window').$new(self["native"].parentWindow) - }, TMP_Document_window_21.$$arity = 0), nil) && 'window' - } else { - return (Opal.defn(self, '$window', TMP_Document_window_22 = function $$window() { + return $$($nesting, 'Window').$new(self["native"].parentWindow) + }, $Document_window$21.$$arity = 0), nil) && 'window' + } else { + return (Opal.def(self, '$window', $Document_window$22 = function $$window() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "window from document unsupported") - }, TMP_Document_window_22.$$arity = 0), nil) && 'window' + return self.$raise($$($nesting, 'NotImplementedError'), "window from document unsupported") + }, $Document_window$22.$$arity = 0), nil) && 'window' }; - })($nesting[0], Opal.const_get_relative($nesting, 'Element'), $nesting) + })($nesting[0], $$($nesting, 'Element'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/document_fragment"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["browser/dom/document_fragment"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $DocumentFragment(){}; - var self = $DocumentFragment = $klass($base, $super, 'DocumentFragment', $DocumentFragment); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DocumentFragment'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Element'), $nesting) + })($nesting[0], $$($nesting, 'Element'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/builder"] = function(Opal) { +Opal.modules["browser/dom/builder"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; Opal.add_stubs(['$<<', '$[]=', '$to_h', '$-', '$[]', '$each', '$===', '$call', '$raise', '$attr_reader', '$new', '$to_proc', '$map', '$build', '$for', '$create_text', '$document', '$create_element', '$merge!', '$attributes', '$add_class', '$on', '$inner_html=']); (function($base, $parent_nesting) { - var $Utils, self = $Utils = $module($base, 'Utils'); + var self = $module($base, 'Utils'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Utils_heredoc_1; + var $nesting = [self].concat($parent_nesting), $Utils_heredoc$1; - Opal.defs(self, '$heredoc', TMP_Utils_heredoc_1 = function $$heredoc(string) { + return (Opal.defs(self, '$heredoc', $Utils_heredoc$1 = function $$heredoc(string) { var self = this; return string - }, TMP_Utils_heredoc_1.$$arity = 1) - })(Opal.const_get_relative($nesting, 'Paggio'), $nesting); + }, $Utils_heredoc$1.$$arity = 1), nil) && 'heredoc' + })($$($nesting, 'Paggio'), $nesting); (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Element_on_2; + var $nesting = [self].concat($parent_nesting), $Element_on$2; - def.on = nil; - return (Opal.defn(self, '$on', TMP_Element_on_2 = function $$on($a_rest) { - var $b, self = this, args, $iter = TMP_Element_on_2.$$p, block = $iter || nil; + self.$$prototype.on = nil; + return (Opal.def(self, '$on', $Element_on$2 = function $$on($a) { + var $iter = $Element_on$2.$$p, block = $iter || nil, $post_args, args, self = this, $ret_or_1 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Element_on_2.$$p = null; - return (self.on = ($truthy($b = self.on) ? $b : []))['$<<']([args, block]) - }, TMP_Element_on_2.$$arity = -1), nil) && 'on' - })(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Paggio'), 'HTML'), Opal.const_get_relative($nesting, 'BasicObject'), $nesting); + if ($iter) $Element_on$2.$$p = null; + + + if ($iter) $Element_on$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return (self.on = (function() {if ($truthy(($ret_or_1 = self.on))) { + return $ret_or_1 + } else { + return [] + }; return nil; })())['$<<']([args, block]); + }, $Element_on$2.$$arity = -1), nil) && 'on' + })($$$($$($nesting, 'Paggio'), 'HTML'), $$($nesting, 'BasicObject'), $nesting); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DOM_10, TMP_DOM_11, TMP_DOM_15; + var $nesting = [self].concat($parent_nesting), $DOM$10, $DOM$11, $DOM$15; (function($base, $super, $parent_nesting) { - function $Builder(){}; - var self = $Builder = $klass($base, $super, 'Builder', $Builder); + var self = $klass($base, $super, 'Builder'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Builder_to_h_3, TMP_Builder_for_4, TMP_Builder_build_6, TMP_Builder_initialize_7, TMP_Builder_to_a_9; + var $nesting = [self].concat($parent_nesting), $Builder_to_h$3, $Builder_for$4, $Builder_build$5, $Builder_initialize$7, $Builder_to_a$9; - def.builder = def.roots = nil; + self.$$prototype.builder = self.$$prototype.roots = nil; - Opal.defs(self, '$to_h', TMP_Builder_to_h_3 = function $$to_h() { - var $a, self = this; + Opal.defs(self, '$to_h', $Builder_to_h$3 = function $$to_h() { + var self = this, $ret_or_2 = nil; if (self.builders == null) self.builders = nil; - return (self.builders = ($truthy($a = self.builders) ? $a : $hash2([], {}))) - }, TMP_Builder_to_h_3.$$arity = 0); - Opal.defs(self, '$for', TMP_Builder_for_4 = function(klass) { - var self = this, $iter = TMP_Builder_for_4.$$p, block = $iter || nil, $writer = nil; + return (self.builders = (function() {if ($truthy(($ret_or_2 = self.builders))) { + return $ret_or_2 + } else { + return $hash2([], {}) + }; return nil; })()) + }, $Builder_to_h$3.$$arity = 0); + Opal.defs(self, '$for', $Builder_for$4 = function(klass) { + var $iter = $Builder_for$4.$$p, block = $iter || nil, self = this, $writer = nil; - if ($iter) TMP_Builder_for_4.$$p = null; + if ($iter) $Builder_for$4.$$p = null; + + + if ($iter) $Builder_for$4.$$p = null;; if ($truthy(block)) { $writer = [klass, block]; $send(self.$to_h(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { return self.$to_h()['$[]'](klass) - } - }, TMP_Builder_for_4.$$arity = 1); - Opal.defs(self, '$build', TMP_Builder_build_6 = function $$build(builder, item) {try { + }; + }, $Builder_for$4.$$arity = 1); + Opal.defs(self, '$build', $Builder_build$5 = function $$build(builder, item) {try { - var TMP_5, self = this; + var $$6, self = this; - $send(self.$to_h(), 'each', [], (TMP_5 = function(klass, block){var self = TMP_5.$$s || this; -if (klass == null) klass = nil;if (block == null) block = nil; - if ($truthy(klass['$==='](item))) { + $send(self.$to_h(), 'each', [], ($$6 = function(klass, block){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (klass == null) { + klass = nil; + }; + + if (block == null) { + block = nil; + }; + if ($truthy(klass['$==='](item))) { Opal.ret(block.$call(builder, item)) - } else { + } else { return nil - }}, TMP_5.$$s = self, TMP_5.$$arity = 2, TMP_5)); - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "cannot build unknown item " + (item)); + };}, $$6.$$s = self, $$6.$$arity = 2, $$6)); + return self.$raise($$($nesting, 'ArgumentError'), "" + "cannot build unknown item " + (item)); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Builder_build_6.$$arity = 2); + }, $Builder_build$5.$$arity = 2); self.$attr_reader("document", "element"); - Opal.defn(self, '$initialize', TMP_Builder_initialize_7 = function $$initialize(document) { - var TMP_8, self = this, $iter = TMP_Builder_initialize_7.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Builder_initialize$7 = function $$initialize(document) { + var $iter = $Builder_initialize$7.$$p, block = $iter || nil, $$8, self = this; - if ($iter) TMP_Builder_initialize_7.$$p = null; + if ($iter) $Builder_initialize$7.$$p = null; + + if ($iter) $Builder_initialize$7.$$p = null;; self.document = document; - self.builder = $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Paggio'), 'HTML'), 'new', [], block.$to_proc()); - return (self.roots = $send(self.builder.$each(), 'map', [], (TMP_8 = function(e){var self = TMP_8.$$s || this; -if (e == null) e = nil; - return Opal.const_get_relative($nesting, 'Builder').$build(self, e)}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8))); - }, TMP_Builder_initialize_7.$$arity = 1); - return (Opal.defn(self, '$to_a', TMP_Builder_to_a_9 = function $$to_a() { + self.builder = $send($$$($$($nesting, 'Paggio'), 'HTML'), 'new', [], block.$to_proc()); + return (self.roots = $send(self.builder.$each(), 'map', [], ($$8 = function(e){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (e == null) { + e = nil; + }; + return $$($nesting, 'Builder').$build(self, e);}, $$8.$$s = self, $$8.$$arity = 1, $$8))); + }, $Builder_initialize$7.$$arity = 1); + return (Opal.def(self, '$to_a', $Builder_to_a$9 = function $$to_a() { var self = this; return self.roots - }, TMP_Builder_to_a_9.$$arity = 0), nil) && 'to_a'; + }, $Builder_to_a$9.$$arity = 0), nil) && 'to_a'; })($nesting[0], null, $nesting); - $send(Opal.const_get_relative($nesting, 'Builder'), 'for', [Opal.const_get_relative($nesting, 'String')], (TMP_DOM_10 = function(b, item){var self = TMP_DOM_10.$$s || this; -if (b == null) b = nil;if (item == null) item = nil; - return b.$document().$create_text(item)}, TMP_DOM_10.$$s = self, TMP_DOM_10.$$arity = 2, TMP_DOM_10)); - $send(Opal.const_get_relative($nesting, 'Builder'), 'for', [Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Paggio'), 'HTML'), 'Element')], (TMP_DOM_11 = function(b, item){var self = TMP_DOM_11.$$s || this, TMP_12, TMP_13, TMP_14, dom = nil, on = nil, inner = nil, $writer = nil; -if (b == null) b = nil;if (item == null) item = nil; - + $send($$($nesting, 'Builder'), 'for', [$$($nesting, 'String')], ($DOM$10 = function(b, item){var self = $DOM$10.$$s == null ? this : $DOM$10.$$s; + + + + if (b == null) { + b = nil; + }; + + if (item == null) { + item = nil; + }; + return b.$document().$create_text(item);}, $DOM$10.$$s = self, $DOM$10.$$arity = 2, $DOM$10)); + $send($$($nesting, 'Builder'), 'for', [$$$($$$($$($nesting, 'Paggio'), 'HTML'), 'Element')], ($DOM$11 = function(b, item){var self = $DOM$11.$$s == null ? this : $DOM$11.$$s, $$12, $$13, $$14, dom = nil, on = nil, inner = nil, $writer = nil; + + + + if (b == null) { + b = nil; + }; + + if (item == null) { + item = nil; + }; dom = b.$document().$create_element(item.name); - if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](item.attributes))) { + if ($truthy($$($nesting, 'Hash')['$==='](item.attributes))) { dom.$attributes()['$merge!'](item.attributes)}; - $send((item.class_names), 'each', [], (TMP_12 = function(value){var self = TMP_12.$$s || this; -if (value == null) value = nil; - return dom.$add_class(value)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)); + $send((item.class_names), 'each', [], ($$12 = function(value){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (value == null) { + value = nil; + }; + return dom.$add_class(value);}, $$12.$$s = self, $$12.$$arity = 1, $$12)); if ($truthy((on = item.on || nil))) { - $send(on, 'each', [], (TMP_13 = function(args, block){var self = TMP_13.$$s || this; -if (args == null) args = nil;if (block == null) block = nil; - return $send(dom, 'on', Opal.to_a(args), block.$to_proc())}, TMP_13.$$s = self, TMP_13.$$arity = 2, TMP_13))}; + $send(on, 'each', [], ($$13 = function(args, block){var self = $$13.$$s == null ? this : $$13.$$s; + + + + if (args == null) { + args = nil; + }; + + if (block == null) { + block = nil; + }; + return $send(dom, 'on', Opal.to_a(args), block.$to_proc());}, $$13.$$s = self, $$13.$$arity = 2, $$13))}; if ($truthy((inner = item.inner_html || nil))) { $writer = [inner]; $send(dom, 'inner_html=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else { - $send(item, 'each', [], (TMP_14 = function(child){var self = TMP_14.$$s || this; -if (child == null) child = nil; - return dom['$<<'](Opal.const_get_relative($nesting, 'Builder').$build(b, child))}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)) + } else { + $send(item, 'each', [], ($$14 = function(child){var self = $$14.$$s == null ? this : $$14.$$s; + + + + if (child == null) { + child = nil; + }; + return dom['$<<']($$($nesting, 'Builder').$build(b, child));}, $$14.$$s = self, $$14.$$arity = 1, $$14)) + }; + return dom;}, $DOM$11.$$s = self, $DOM$11.$$arity = 2, $DOM$11)); + return $send($$($nesting, 'Builder'), 'for', [$$$($$($nesting, 'DOM'), 'Node')], ($DOM$15 = function(b, item){var self = $DOM$15.$$s == null ? this : $DOM$15.$$s; + + + + if (b == null) { + b = nil; + }; + + if (item == null) { + item = nil; }; - return dom;}, TMP_DOM_11.$$s = self, TMP_DOM_11.$$arity = 2, TMP_DOM_11)); - $send(Opal.const_get_relative($nesting, 'Builder'), 'for', [Opal.const_get_qualified(Opal.const_get_relative($nesting, 'DOM'), 'Node')], (TMP_DOM_15 = function(b, item){var self = TMP_DOM_15.$$s || this; -if (b == null) b = nil;if (item == null) item = nil; - return item}, TMP_DOM_15.$$s = self, TMP_DOM_15.$$arity = 2, TMP_DOM_15)); + return item;}, $DOM$15.$$s = self, $DOM$15.$$arity = 2, $DOM$15)); })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom/mutation_observer"] = function(Opal) { +Opal.modules["browser/dom/mutation_observer"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $hash2 = Opal.hash2; Opal.add_stubs(['$supports?', '$include', '$===', '$==', '$type', '$new', '$[]', '$DOM', '$alias_native', '$call', '$map', '$convert', '$private', '$Native', '$[]=', '$-', '$to_n']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $DOM, self = $DOM = $module($base, 'DOM'); + return (function($base, $parent_nesting) { + var self = $module($base, 'DOM'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $MutationObserver(){}; - var self = $MutationObserver = $klass($base, $super, 'MutationObserver', $MutationObserver); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'MutationObserver'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_MutationObserver_supported$q_1, TMP_MutationObserver_initialize_9, TMP_MutationObserver_observe_11, TMP_MutationObserver_take_13, TMP_MutationObserver_disconnect_14, TMP_MutationObserver_convert_15; + var $nesting = [self].concat($parent_nesting), $MutationObserver_supported$ques$1, $MutationObserver_initialize$9, $MutationObserver_observe$11, $MutationObserver_take$12, $MutationObserver_disconnect$14, $MutationObserver_convert$15; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defs(self, '$supported?', TMP_MutationObserver_supported$q_1 = function() { + Opal.defs(self, '$supported?', $MutationObserver_supported$ques$1 = function() { var self = this; - return Opal.const_get_relative($nesting, 'Browser')['$supports?']("MutationObserver") - }, TMP_MutationObserver_supported$q_1.$$arity = 0); - self.$include(Opal.const_get_relative($nesting, 'Native')); + return $$($nesting, 'Browser')['$supports?']("MutationObserver") + }, $MutationObserver_supported$ques$1.$$arity = 0); + self.$include($$($nesting, 'Native')); (function($base, $super, $parent_nesting) { - function $Record(){}; - var self = $Record = $klass($base, $super, 'Record', $Record); + var self = $klass($base, $super, 'Record'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Record_type_2, TMP_Record_attribute$q_3, TMP_Record_tree$q_4, TMP_Record_cdata$q_5, TMP_Record_added_6, TMP_Record_removed_7, TMP_Record_target_8; + var $nesting = [self].concat($parent_nesting), $Record_type$2, $Record_attribute$ques$3, $Record_tree$ques$4, $Record_cdata$ques$5, $Record_added$6, $Record_removed$7, $Record_target$8; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$type', TMP_Record_type_2 = function $$type() { + Opal.def(self, '$type', $Record_type$2 = function $$type() { var self = this, $case = nil; return (function() {$case = self["native"].type; @@ -16970,105 +18480,118 @@ Opal.modules["browser/dom/mutation_observer"] = function(Opal) { else if ("childList"['$===']($case)) {return "tree"} else if ("characterData"['$===']($case)) {return "cdata"} else { return nil }})() - }, TMP_Record_type_2.$$arity = 0); + }, $Record_type$2.$$arity = 0); - Opal.defn(self, '$attribute?', TMP_Record_attribute$q_3 = function() { + Opal.def(self, '$attribute?', $Record_attribute$ques$3 = function() { var self = this; return self.$type()['$==']("attribute") - }, TMP_Record_attribute$q_3.$$arity = 0); + }, $Record_attribute$ques$3.$$arity = 0); - Opal.defn(self, '$tree?', TMP_Record_tree$q_4 = function() { + Opal.def(self, '$tree?', $Record_tree$ques$4 = function() { var self = this; return self.$type()['$==']("tree") - }, TMP_Record_tree$q_4.$$arity = 0); + }, $Record_tree$ques$4.$$arity = 0); - Opal.defn(self, '$cdata?', TMP_Record_cdata$q_5 = function() { + Opal.def(self, '$cdata?', $Record_cdata$ques$5 = function() { var self = this; return self.$type()['$==']("cdata") - }, TMP_Record_cdata$q_5.$$arity = 0); + }, $Record_cdata$ques$5.$$arity = 0); - Opal.defn(self, '$added', TMP_Record_added_6 = function $$added() { + Opal.def(self, '$added', $Record_added$6 = function $$added() { var self = this, array = nil; array = (function() {if ($truthy(self["native"].addedNodes != null)) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array').$new(self["native"].addedNodes) - } else { + return $$$($$($nesting, 'Native'), 'Array').$new(self["native"].addedNodes) + } else { return [] }; return nil; })(); - return Opal.const_get_relative($nesting, 'NodeSet')['$[]'](array); - }, TMP_Record_added_6.$$arity = 0); + return $$($nesting, 'NodeSet')['$[]'](array); + }, $Record_added$6.$$arity = 0); - Opal.defn(self, '$removed', TMP_Record_removed_7 = function $$removed() { + Opal.def(self, '$removed', $Record_removed$7 = function $$removed() { var self = this, array = nil; array = (function() {if ($truthy(self["native"].removedNodes != null)) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array').$new(self["native"].removedNodes) - } else { + return $$$($$($nesting, 'Native'), 'Array').$new(self["native"].removedNodes) + } else { return [] }; return nil; })(); - return Opal.const_get_relative($nesting, 'NodeSet')['$[]'](array); - }, TMP_Record_removed_7.$$arity = 0); + return $$($nesting, 'NodeSet')['$[]'](array); + }, $Record_removed$7.$$arity = 0); - Opal.defn(self, '$target', TMP_Record_target_8 = function $$target() { + Opal.def(self, '$target', $Record_target$8 = function $$target() { var self = this; return self.$DOM(self["native"].target) - }, TMP_Record_target_8.$$arity = 0); + }, $Record_target$8.$$arity = 0); self.$alias_native("old", "oldValue"); self.$alias_native("name", "attributeName"); return self.$alias_native("namespace", "attributeNamespace"); })($nesting[0], null, $nesting); - Opal.defn(self, '$initialize', TMP_MutationObserver_initialize_9 = function $$initialize() { - var TMP_10, self = this, $iter = TMP_MutationObserver_initialize_9.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $MutationObserver_initialize$9 = function $$initialize() { + var $iter = $MutationObserver_initialize$9.$$p, block = $iter || nil, $$10, self = this; - if ($iter) TMP_MutationObserver_initialize_9.$$p = null; + if ($iter) $MutationObserver_initialize$9.$$p = null; + + if ($iter) $MutationObserver_initialize$9.$$p = null;; var func = function(records) { - return block.$call($send((records), 'map', [], (TMP_10 = function(r){var self = TMP_10.$$s || this; -if (r == null) r = nil; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'DOM'), 'MutationObserver'), 'Record').$new(r)}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10))); + return block.$call($send((records), 'map', [], ($$10 = function(r){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (r == null) { + r = nil; + }; + return $$$($$$($$$($$($nesting, 'Browser'), 'DOM'), 'MutationObserver'), 'Record').$new(r);}, $$10.$$s = self, $$10.$$arity = 1, $$10))); } ; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_MutationObserver_initialize_9, false), [new window.MutationObserver(func)], null); - }, TMP_MutationObserver_initialize_9.$$arity = 0); + return $send2(self, $find_super(self, 'initialize', $MutationObserver_initialize$9, false, true), 'initialize', [new window.MutationObserver(func)], null); + }, $MutationObserver_initialize$9.$$arity = 0); - Opal.defn(self, '$observe', TMP_MutationObserver_observe_11 = function $$observe(target, options) { + Opal.def(self, '$observe', $MutationObserver_observe$11 = function $$observe(target, options) { var self = this; + + if (options == null) { options = nil; - } - + }; if ($truthy(options)) { - } else { + } else { options = $hash2(["children", "tree", "attributes", "cdata"], {"children": true, "tree": true, "attributes": "old", "cdata": "old"}) }; - self["native"].observe(Opal.const_get_relative($nesting, 'Native').$convert(target), self.$convert(options)); + self["native"].observe($$($nesting, 'Native').$convert(target), self.$convert(options)); return self; - }, TMP_MutationObserver_observe_11.$$arity = -2); + }, $MutationObserver_observe$11.$$arity = -2); - Opal.defn(self, '$take', TMP_MutationObserver_take_13 = function $$take() { - var TMP_12, self = this; + Opal.def(self, '$take', $MutationObserver_take$12 = function $$take() { + var $$13, self = this; + + return $send((self["native"].takeRecords()), 'map', [], ($$13 = function(r){var self = $$13.$$s == null ? this : $$13.$$s; - return $send((self["native"].takeRecords()), 'map', [], (TMP_12 = function(r){var self = TMP_12.$$s || this; -if (r == null) r = nil; - return Opal.const_get_relative($nesting, 'Record').$new(r)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)) - }, TMP_MutationObserver_take_13.$$arity = 0); + + + if (r == null) { + r = nil; + }; + return $$($nesting, 'Record').$new(r);}, $$13.$$s = self, $$13.$$arity = 1, $$13)) + }, $MutationObserver_take$12.$$arity = 0); - Opal.defn(self, '$disconnect', TMP_MutationObserver_disconnect_14 = function $$disconnect() { + Opal.def(self, '$disconnect', $MutationObserver_disconnect$14 = function $$disconnect() { var self = this; return self["native"].disconnect() - }, TMP_MutationObserver_disconnect_14.$$arity = 0); + }, $MutationObserver_disconnect$14.$$arity = 0); self.$private(); - return (Opal.defn(self, '$convert', TMP_MutationObserver_convert_15 = function $$convert(hash) { + return (Opal.def(self, '$convert', $MutationObserver_convert$15 = function $$convert(hash) { var self = this, options = nil, $writer = nil, attrs = nil, filter = nil, cdata = nil; @@ -17111,15 +18634,14 @@ if (r == null) r = nil; $send(options, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];};}; return options.$to_n(); - }, TMP_MutationObserver_convert_15.$$arity = 1), nil) && 'convert'; + }, $MutationObserver_convert$15.$$arity = 1), nil) && 'convert'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/dom"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $gvars = Opal.gvars, $send = Opal.send, $klass = Opal.klass; +Opal.modules["browser/dom"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $gvars = Opal.gvars, $send = Opal.send, $klass = Opal.klass; if ($gvars.window == null) $gvars.window = nil; Opal.add_stubs(['$require', '$DOM', '$shift', '$to_a', '$new', '$to_proc', '$==', '$length', '$first', '$native?', '$===', '$try_convert', '$raise', '$document']); @@ -17137,13 +18659,13 @@ Opal.modules["browser/dom"] = function(Opal) { self.$require("browser/dom/builder"); self.$require("browser/dom/mutation_observer"); (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_XML_1, TMP_Kernel_DOM_2; + var $nesting = [self].concat($parent_nesting), $Kernel_XML$1, $Kernel_DOM$2; - Opal.defn(self, '$XML', TMP_Kernel_XML_1 = function $$XML(what) { + Opal.def(self, '$XML', $Kernel_XML$1 = function $$XML(what) { var self = this; @@ -17160,150 +18682,171 @@ Opal.modules["browser/dom"] = function(Opal) { } ; return self.$DOM(doc); - }, TMP_Kernel_XML_1.$$arity = 1); - - Opal.defn(self, '$DOM', TMP_Kernel_DOM_2 = function $$DOM($a_rest) { - var $b, self = this, args, $iter = TMP_Kernel_DOM_2.$$p, block = $iter || nil, document = nil, roots = nil, what = nil; + }, $Kernel_XML$1.$$arity = 1); + return (Opal.def(self, '$DOM', $Kernel_DOM$2 = function $$DOM($a) { + var $iter = $Kernel_DOM$2.$$p, block = $iter || nil, $post_args, args, self = this, document = nil, $ret_or_1 = nil, roots = nil, what = nil, $ret_or_2 = nil; if ($gvars.document == null) $gvars.document = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Kernel_DOM_2.$$p = null; + if ($iter) $Kernel_DOM$2.$$p = null; + + + if ($iter) $Kernel_DOM$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ($truthy(block)) { - document = ($truthy($b = args.$shift()) ? $b : $gvars.document); - roots = $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'DOM'), 'Builder'), 'new', [document], block.$to_proc()).$to_a(); + document = (function() {if ($truthy(($ret_or_1 = args.$shift()))) { + return $ret_or_1 + } else { + return $gvars.document + }; return nil; })(); + roots = $send($$$($$$($$($nesting, 'Browser'), 'DOM'), 'Builder'), 'new', [document], block.$to_proc()).$to_a(); if (roots.$length()['$=='](1)) { return roots.$first() - } else { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'DOM'), 'NodeSet').$new(roots) - }; } else { + return $$$($$$($$($nesting, 'Browser'), 'DOM'), 'NodeSet').$new(roots) + }; + } else { what = args.$shift(); - document = ($truthy($b = args.$shift()) ? $b : $gvars.document); + document = (function() {if ($truthy(($ret_or_2 = args.$shift()))) { + return $ret_or_2 + } else { + return $gvars.document + }; return nil; })(); if ($truthy(self['$native?'](what))) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'DOM'), 'Node').$new(what) - } else if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Browser'), 'DOM'), 'Node')['$==='](what))) { + return $$$($$$($$($nesting, 'Browser'), 'DOM'), 'Node').$new(what) + } else if ($truthy($$$($$$($$($nesting, 'Browser'), 'DOM'), 'Node')['$==='](what))) { return what - } else if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](what))) { + } else if ($truthy($$($nesting, 'String')['$==='](what))) { - var doc = Opal.const_get_relative($nesting, 'Native').$try_convert(document).createElement('div'); + var doc = $$($nesting, 'Native').$try_convert(document).createElement('div'); doc.innerHTML = what; return self.$DOM(doc.childNodes.length == 1 ? doc.childNodes[0] : doc); - } else { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "argument not DOM convertible") + } else { + return self.$raise($$($nesting, 'ArgumentError'), "argument not DOM convertible") }; - } - }, TMP_Kernel_DOM_2.$$arity = -1); + }; + }, $Kernel_DOM$2.$$arity = -1), nil) && 'DOM'; })($nesting[0], $nesting); (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Window(){}; - var self = $Window = $klass($base, $super, 'Window', $Window); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Window'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Window_document_3; + var $nesting = [self].concat($parent_nesting), $Window_document$3; - def["native"] = nil; - return (Opal.defn(self, '$document', TMP_Window_document_3 = function $$document() { + self.$$prototype["native"] = nil; + return (Opal.def(self, '$document', $Window_document$3 = function $$document() { var self = this; return self.$DOM(self["native"].document) - }, TMP_Window_document_3.$$arity = 0), nil) && 'document' + }, $Window_document$3.$$arity = 0), nil) && 'document' })($nesting[0], null, $nesting) })($nesting[0], $nesting); return ($gvars.document = $gvars.window.$document()); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/css/declaration"] = function(Opal) { +Opal.modules["browser/css/declaration"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; Opal.add_stubs(['$include', '$new', '$each', '$[]=', '$-', '$to_proc', '$important', '$name', '$value', '$to_s', '$enum_for', '$[]', '$alias_native', '$end_with?']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $CSS, self = $CSS = $module($base, 'CSS'); + return (function($base, $parent_nesting) { + var self = $module($base, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Declaration(){}; - var self = $Declaration = $klass($base, $super, 'Declaration', $Declaration); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Declaration'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Declaration_rule_1, TMP_Declaration_assign_3, TMP_Declaration_replace_4, TMP_Declaration_apply_5, TMP_Declaration_delete_7, TMP_Declaration_$$_8, TMP_Declaration_$$$eq_9, TMP_Declaration_important$q_10, TMP_Declaration_each_11, TMP_Declaration_method_missing_12; + var $nesting = [self].concat($parent_nesting), $Declaration_rule$1, $Declaration_assign$2, $Declaration_replace$4, $Declaration_apply$5, $Declaration_delete$7, $Declaration_$$$8, $Declaration_$$$eq$9, $Declaration_important$ques$10, $Declaration_each$11, $Declaration_method_missing$12; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); + self.$include($$($nesting, 'Native')); + self.$include($$($nesting, 'Enumerable')); - Opal.defn(self, '$rule', TMP_Declaration_rule_1 = function $$rule() { + Opal.def(self, '$rule', $Declaration_rule$1 = function $$rule() { var self = this; if ($truthy((typeof(self["native"].parentRule) !== "undefined"))) { - return Opal.const_get_relative($nesting, 'Rule').$new(self["native"].parentRule) - } else { + return $$($nesting, 'Rule').$new(self["native"].parentRule) + } else { return nil } - }, TMP_Declaration_rule_1.$$arity = 0); + }, $Declaration_rule$1.$$arity = 0); - Opal.defn(self, '$assign', TMP_Declaration_assign_3 = function $$assign(data) { - var TMP_2, self = this; + Opal.def(self, '$assign', $Declaration_assign$2 = function $$assign(data) { + var $$3, self = this; - $send(data, 'each', [], (TMP_2 = function(name, value){var self = TMP_2.$$s || this, $writer = nil; -if (name == null) name = nil;if (value == null) value = nil; - + $send(data, 'each', [], ($$3 = function(name, value){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; $writer = [name, value]; $send(self, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)); + return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 2, $$3)); return self; - }, TMP_Declaration_assign_3.$$arity = 1); + }, $Declaration_assign$2.$$arity = 1); - Opal.defn(self, '$replace', TMP_Declaration_replace_4 = function $$replace(string) { + Opal.def(self, '$replace', $Declaration_replace$4 = function $$replace(string) { var self = this; return self["native"].cssText = string - }, TMP_Declaration_replace_4.$$arity = 1); + }, $Declaration_replace$4.$$arity = 1); - Opal.defn(self, '$apply', TMP_Declaration_apply_5 = function $$apply() { - var TMP_6, self = this, $iter = TMP_Declaration_apply_5.$$p, block = $iter || nil; + Opal.def(self, '$apply', $Declaration_apply$5 = function $$apply() { + var $iter = $Declaration_apply$5.$$p, block = $iter || nil, $$6, self = this; - if ($iter) TMP_Declaration_apply_5.$$p = null; - return $send($send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Paggio'), 'CSS'), 'Definition'), 'new', [], block.$to_proc()), 'each', [], (TMP_6 = function(style){var self = TMP_6.$$s || this; + if ($iter) $Declaration_apply$5.$$p = null; + + + if ($iter) $Declaration_apply$5.$$p = null;; + return $send($send($$$($$$($$($nesting, 'Paggio'), 'CSS'), 'Definition'), 'new', [], block.$to_proc()), 'each', [], ($$6 = function(style){var self = $$6.$$s == null ? this : $$6.$$s; if (self["native"] == null) self["native"] = nil; -if (style == null) style = nil; - if ($truthy(style.$important())) { + + + + if (style == null) { + style = nil; + }; + if ($truthy(style.$important())) { return self["native"].setProperty(style.$name(), style.$value(), "important") - } else { + } else { return self["native"].setProperty(style.$name(), style.$value(), "") - }}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)) - }, TMP_Declaration_apply_5.$$arity = 0); + };}, $$6.$$s = self, $$6.$$arity = 1, $$6)); + }, $Declaration_apply$5.$$arity = 0); - Opal.defn(self, '$delete', TMP_Declaration_delete_7 = function(name) { + Opal.def(self, '$delete', $Declaration_delete$7 = function(name) { var self = this; return self["native"].removeProperty(name) - }, TMP_Declaration_delete_7.$$arity = 1); + }, $Declaration_delete$7.$$arity = 1); - Opal.defn(self, '$[]', TMP_Declaration_$$_8 = function(name) { + Opal.def(self, '$[]', $Declaration_$$$8 = function(name) { var self = this; @@ -17315,27 +18858,29 @@ if (style == null) style = nil; return result; - }, TMP_Declaration_$$_8.$$arity = 1); + }, $Declaration_$$$8.$$arity = 1); - Opal.defn(self, '$[]=', TMP_Declaration_$$$eq_9 = function(name, value) { + Opal.def(self, '$[]=', $Declaration_$$$eq$9 = function(name, value) { var self = this; return self["native"].setProperty(name, value.$to_s(), "") - }, TMP_Declaration_$$$eq_9.$$arity = 2); + }, $Declaration_$$$eq$9.$$arity = 2); - Opal.defn(self, '$important?', TMP_Declaration_important$q_10 = function(name) { + Opal.def(self, '$important?', $Declaration_important$ques$10 = function(name) { var self = this; return self["native"].getPropertyPriority(name) == "important" - }, TMP_Declaration_important$q_10.$$arity = 1); + }, $Declaration_important$ques$10.$$arity = 1); - Opal.defn(self, '$each', TMP_Declaration_each_11 = function $$each() { - var self = this, $iter = TMP_Declaration_each_11.$$p, block = $iter || nil; + Opal.def(self, '$each', $Declaration_each$11 = function $$each() { + var $iter = $Declaration_each$11.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Declaration_each_11.$$p = null; + if ($iter) $Declaration_each$11.$$p = null; + + if ($iter) $Declaration_each$11.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("each") }; @@ -17346,207 +18891,223 @@ if (style == null) style = nil; } ; return self; - }, TMP_Declaration_each_11.$$arity = 0); + }, $Declaration_each$11.$$arity = 0); self.$alias_native("length"); self.$alias_native("to_s", "cssText"); - return (Opal.defn(self, '$method_missing', TMP_Declaration_method_missing_12 = function $$method_missing(name, value) { + return (Opal.def(self, '$method_missing', $Declaration_method_missing$12 = function $$method_missing(name, value) { var self = this, $writer = nil; + + if (value == null) { value = nil; - } + }; if ($truthy(name['$end_with?']("="))) { $writer = [name['$[]']($range(0, -2, false)), value]; $send(self, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { return self['$[]'](name) - } - }, TMP_Declaration_method_missing_12.$$arity = -2), nil) && 'method_missing'; + }; + }, $Declaration_method_missing$12.$$arity = -2), nil) && 'method_missing'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/css/style_sheet"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["browser/css/style_sheet"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; Opal.add_stubs(['$include', '$is_a?', '$to_n', '$alias_native', '$new', '$DOM', '$===', '$join', '$map', '$insert', '$length', '$find', '$rules', '$log', '$==', '$id', '$__send__', '$to_proc']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $CSS, self = $CSS = $module($base, 'CSS'); + return (function($base, $parent_nesting) { + var self = $module($base, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $StyleSheet(){}; - var self = $StyleSheet = $klass($base, $super, 'StyleSheet', $StyleSheet); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'StyleSheet'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_StyleSheet_initialize_1, TMP_StyleSheet_media_2, TMP_StyleSheet_owner_3, TMP_StyleSheet_parent_4, TMP_StyleSheet_rules_6, TMP_StyleSheet_delete_7, TMP_StyleSheet_insert_8, TMP_StyleSheet_rule_10, TMP_StyleSheet_$$_12, TMP_StyleSheet_method_missing_13; + var $nesting = [self].concat($parent_nesting), $StyleSheet_initialize$1, $StyleSheet_media$2, $StyleSheet_owner$3, $StyleSheet_parent$4, $StyleSheet_rules$5, $StyleSheet_delete$7, $StyleSheet_insert$8, $StyleSheet_rule$9, $StyleSheet_$$$11, $StyleSheet_method_missing$13; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); - Opal.defn(self, '$initialize', TMP_StyleSheet_initialize_1 = function $$initialize(what) { - var self = this, $iter = TMP_StyleSheet_initialize_1.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $StyleSheet_initialize$1 = function $$initialize(what) { + var $iter = $StyleSheet_initialize$1.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_StyleSheet_initialize_1.$$p = null; - if ($truthy(what['$is_a?'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'DOM'), 'Element')))) { - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_StyleSheet_initialize_1, false), [what.$to_n().sheet], null) - } else { - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_StyleSheet_initialize_1, false), [what], null) + if ($iter) $StyleSheet_initialize$1.$$p = null; + if ($truthy(what['$is_a?']($$$($$($nesting, 'DOM'), 'Element')))) { + return $send2(self, $find_super(self, 'initialize', $StyleSheet_initialize$1, false, true), 'initialize', [what.$to_n().sheet], null) + } else { + return $send2(self, $find_super(self, 'initialize', $StyleSheet_initialize$1, false, true), 'initialize', [what], null) } - }, TMP_StyleSheet_initialize_1.$$arity = 1); + }, $StyleSheet_initialize$1.$$arity = 1); self.$alias_native("disabled?", "disabled"); self.$alias_native("href"); self.$alias_native("title"); self.$alias_native("type"); - Opal.defn(self, '$media', TMP_StyleSheet_media_2 = function $$media() { + Opal.def(self, '$media', $StyleSheet_media$2 = function $$media() { var self = this; if ($truthy(self["native"].media != null)) { - return Opal.const_get_relative($nesting, 'Media').$new(self["native"].media) - } else { + return $$($nesting, 'Media').$new(self["native"].media) + } else { return nil } - }, TMP_StyleSheet_media_2.$$arity = 0); + }, $StyleSheet_media$2.$$arity = 0); - Opal.defn(self, '$owner', TMP_StyleSheet_owner_3 = function $$owner() { + Opal.def(self, '$owner', $StyleSheet_owner$3 = function $$owner() { var self = this; return self.$DOM(self["native"].ownerNode) - }, TMP_StyleSheet_owner_3.$$arity = 0); + }, $StyleSheet_owner$3.$$arity = 0); - Opal.defn(self, '$parent', TMP_StyleSheet_parent_4 = function $$parent() { + Opal.def(self, '$parent', $StyleSheet_parent$4 = function $$parent() { var self = this; if ($truthy(self["native"].parentStyleSheet != null)) { - return Opal.const_get_relative($nesting, 'Sheet').$new(self["native"].parentStyleSheet) - } else { + return $$($nesting, 'Sheet').$new(self["native"].parentStyleSheet) + } else { return nil } - }, TMP_StyleSheet_parent_4.$$arity = 0); + }, $StyleSheet_parent$4.$$arity = 0); - Opal.defn(self, '$rules', TMP_StyleSheet_rules_6 = function $$rules() { - var TMP_5, self = this; + Opal.def(self, '$rules', $StyleSheet_rules$5 = function $$rules() { + var $$6, self = this; + + return $send($$$($$($nesting, 'Native'), 'Array'), 'new', [self["native"].cssRules], ($$6 = function(e){var self = $$6.$$s == null ? this : $$6.$$s; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array'), 'new', [self["native"].cssRules], (TMP_5 = function(e){var self = TMP_5.$$s || this; -if (e == null) e = nil; - return Opal.const_get_relative($nesting, 'Rule').$new(e)}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)) - }, TMP_StyleSheet_rules_6.$$arity = 0); + + + if (e == null) { + e = nil; + }; + return $$($nesting, 'Rule').$new(e);}, $$6.$$s = self, $$6.$$arity = 1, $$6)) + }, $StyleSheet_rules$5.$$arity = 0); - Opal.defn(self, '$delete', TMP_StyleSheet_delete_7 = function(index) { + Opal.def(self, '$delete', $StyleSheet_delete$7 = function(index) { var self = this; return self["native"].deleteRule(index) - }, TMP_StyleSheet_delete_7.$$arity = 1); + }, $StyleSheet_delete$7.$$arity = 1); - Opal.defn(self, '$insert', TMP_StyleSheet_insert_8 = function $$insert(index, rule) { + Opal.def(self, '$insert', $StyleSheet_insert$8 = function $$insert(index, rule) { var self = this; return self["native"].insertRule(rule, index) - }, TMP_StyleSheet_insert_8.$$arity = 2); + }, $StyleSheet_insert$8.$$arity = 2); - Opal.defn(self, '$rule', TMP_StyleSheet_rule_10 = function $$rule(selector, body) { - var TMP_9, self = this; + Opal.def(self, '$rule', $StyleSheet_rule$9 = function $$rule(selector, body) { + var $$10, self = this; - if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](selector))) { - } else { + if ($truthy($$($nesting, 'String')['$==='](selector))) { + } else { selector = selector.$join(", ") }; - if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](body))) { - } else { - body = $send(body, 'map', [], (TMP_9 = function(name, value){var self = TMP_9.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return "" + (name) + ": " + (value) + ";"}, TMP_9.$$s = self, TMP_9.$$arity = 2, TMP_9)).$join("\n") + if ($truthy($$($nesting, 'String')['$==='](body))) { + } else { + body = $send(body, 'map', [], ($$10 = function(name, value){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return "" + (name) + ": " + (value) + ";";}, $$10.$$s = self, $$10.$$arity = 2, $$10)).$join("\n") }; return self.$insert(self.$length(), "" + (selector) + " { " + (body) + " }"); - }, TMP_StyleSheet_rule_10.$$arity = 2); + }, $StyleSheet_rule$9.$$arity = 2); - Opal.defn(self, '$[]', TMP_StyleSheet_$$_12 = function(id) { - var TMP_11, self = this; + Opal.def(self, '$[]', $StyleSheet_$$$11 = function(id) { + var $$12, self = this; - return $send(self.$rules(), 'find', [], (TMP_11 = function(r){var self = TMP_11.$$s || this; -if (r == null) r = nil; - + return $send(self.$rules(), 'find', [], ($$12 = function(r){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (r == null) { + r = nil; + }; self.$log(r); - return r.$id()['$=='](id);}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)) - }, TMP_StyleSheet_$$_12.$$arity = 1); + return r.$id()['$=='](id);}, $$12.$$s = self, $$12.$$arity = 1, $$12)) + }, $StyleSheet_$$$11.$$arity = 1); - Opal.defn(self, '$method_missing', TMP_StyleSheet_method_missing_13 = function $$method_missing($a_rest) { - var self = this, args, $iter = TMP_StyleSheet_method_missing_13.$$p, block = $iter || nil; + Opal.def(self, '$method_missing', $StyleSheet_method_missing$13 = function $$method_missing($a) { + var $iter = $StyleSheet_method_missing$13.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_StyleSheet_method_missing_13.$$p = null; - return $send(self.$rules(), '__send__', Opal.to_a(args), block.$to_proc()) - }, TMP_StyleSheet_method_missing_13.$$arity = -1); + if ($iter) $StyleSheet_method_missing$13.$$p = null; + + + if ($iter) $StyleSheet_method_missing$13.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$rules(), '__send__', Opal.to_a(args), block.$to_proc()); + }, $StyleSheet_method_missing$13.$$arity = -1); return (function($base, $super, $parent_nesting) { - function $Media(){}; - var self = $Media = $klass($base, $super, 'Media', $Media); + var self = $klass($base, $super, 'Media'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Media_push_14, TMP_Media_delete_15; + var $nesting = [self].concat($parent_nesting), $Media_push$14, $Media_delete$15; - def["native"] = nil; + self.$$prototype["native"] = nil; self.$alias_native("text", "mediaText"); self.$alias_native("to_s", "mediaText"); - Opal.defn(self, '$push', TMP_Media_push_14 = function $$push(medium) { + Opal.def(self, '$push', $Media_push$14 = function $$push(medium) { var self = this; self["native"].appendMedium(medium); return self; - }, TMP_Media_push_14.$$arity = 1); - return (Opal.defn(self, '$delete', TMP_Media_delete_15 = function(medium) { + }, $Media_push$14.$$arity = 1); + return (Opal.def(self, '$delete', $Media_delete$15 = function(medium) { var self = this; return self["native"].deleteMedium(medium) - }, TMP_Media_delete_15.$$arity = 1), nil) && 'delete'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Array'), $nesting); + }, $Media_delete$15.$$arity = 1), nil) && 'delete'; + })($nesting[0], $$$($$($nesting, 'Native'), 'Array'), $nesting); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/css/rule"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["browser/css/rule"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; Opal.add_stubs(['$include', '$==', '$[]', '$new', '$raise', '$alias_native']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $CSS, self = $CSS = $module($base, 'CSS'); + return (function($base, $parent_nesting) { + var self = $module($base, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Rule(){}; - var self = $Rule = $klass($base, $super, 'Rule', $Rule); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Rule'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Rule_new_1, TMP_Rule_parent_2, TMP_Rule_style_sheet_3; + var $nesting = [self].concat($parent_nesting), $Rule_new$1, $Rule_parent$2, $Rule_style_sheet$3; - def["native"] = nil; + self.$$prototype["native"] = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$($nesting, 'Native')); Opal.const_set($nesting[0], 'STYLE_RULE', 1); Opal.const_set($nesting[0], 'CHARSET_RULE', 2); Opal.const_set($nesting[0], 'IMPORT_RULE', 3); @@ -17562,110 +19123,111 @@ Opal.modules["browser/css/rule"] = function(Opal) { Opal.const_set($nesting[0], 'FONT_FEATURE_VALUES_RULE', 14); Opal.const_set($nesting[0], 'VIEWPORT_RULE', 15); Opal.const_set($nesting[0], 'REGION_STYLE_RULE', 16); - Opal.defs(self, '$new', TMP_Rule_new_1 = function(rule) { - var $a, self = this, $iter = TMP_Rule_new_1.$$p, $yield = $iter || nil, klass = nil; + Opal.defs(self, '$new', $Rule_new$1 = function(rule) { + var $iter = $Rule_new$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil, klass = nil; if (self.classes == null) self.classes = nil; - if ($iter) TMP_Rule_new_1.$$p = null; - if (self['$=='](Opal.const_get_relative($nesting, 'Rule'))) { + if ($iter) $Rule_new$1.$$p = null; + if (self['$==']($$($nesting, 'Rule'))) { - self.classes = ($truthy($a = self.classes) ? $a : [nil, Opal.const_get_relative($nesting, 'Style')]); + self.classes = (function() {if ($truthy(($ret_or_1 = self.classes))) { + return $ret_or_1 + } else { + return [nil, $$($nesting, 'Style')] + }; return nil; })(); if ($truthy((klass = self.classes['$[]'](rule.type)))) { return klass.$new(rule) - } else { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "cannot instantiate a non derived Rule object") - }; } else { - return $send(self, Opal.find_super_dispatcher(self, 'new', TMP_Rule_new_1, false, $Rule), [rule], null) + return self.$raise($$($nesting, 'ArgumentError'), "cannot instantiate a non derived Rule object") + }; + } else { + return $send2(self, $find_super(self, 'new', $Rule_new$1, false, true), 'new', [rule], null) } - }, TMP_Rule_new_1.$$arity = 1); + }, $Rule_new$1.$$arity = 1); self.$alias_native("text", "cssText"); self.$alias_native("to_s", "cssText"); - Opal.defn(self, '$parent', TMP_Rule_parent_2 = function $$parent() { + Opal.def(self, '$parent', $Rule_parent$2 = function $$parent() { var self = this; if ($truthy(self["native"].parentRule != null)) { - return Opal.const_get_relative($nesting, 'Rule').$new(self["native"].parentRule) - } else { + return $$($nesting, 'Rule').$new(self["native"].parentRule) + } else { return nil } - }, TMP_Rule_parent_2.$$arity = 0); - return (Opal.defn(self, '$style_sheet', TMP_Rule_style_sheet_3 = function $$style_sheet() { + }, $Rule_parent$2.$$arity = 0); + return (Opal.def(self, '$style_sheet', $Rule_style_sheet$3 = function $$style_sheet() { var self = this; if ($truthy(self["native"].parentStyleSheet != null)) { - return Opal.const_get_relative($nesting, 'StyleSheet').$new(self["native"].parentStyleSheet) - } else { + return $$($nesting, 'StyleSheet').$new(self["native"].parentStyleSheet) + } else { return nil } - }, TMP_Rule_style_sheet_3.$$arity = 0), nil) && 'style_sheet'; + }, $Rule_style_sheet$3.$$arity = 0), nil) && 'style_sheet'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/css/rule/style"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; +Opal.modules["browser/css/rule/style"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$alias_native', '$new', '$__send__', '$declaration', '$to_proc']); return (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $CSS, self = $CSS = $module($base, 'CSS'); + return (function($base, $parent_nesting) { + var self = $module($base, 'CSS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Rule(){}; - var self = $Rule = $klass($base, $super, 'Rule', $Rule); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Rule'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Style(){}; - var self = $Style = $klass($base, $super, 'Style', $Style); + var self = $klass($base, $super, 'Style'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Style_declaration_1, TMP_Style_method_missing_2; + var $nesting = [self].concat($parent_nesting), $Style_declaration$1, $Style_method_missing$2; - def["native"] = nil; + self.$$prototype["native"] = nil; self.$alias_native("selector", "selectorText"); self.$alias_native("id", "selectorText"); - Opal.defn(self, '$declaration', TMP_Style_declaration_1 = function $$declaration() { + Opal.def(self, '$declaration', $Style_declaration$1 = function $$declaration() { var self = this; - return Opal.const_get_relative($nesting, 'Declaration').$new(self["native"].style) - }, TMP_Style_declaration_1.$$arity = 0); - return (Opal.defn(self, '$method_missing', TMP_Style_method_missing_2 = function $$method_missing($a_rest) { - var self = this, args, $iter = TMP_Style_method_missing_2.$$p, block = $iter || nil; + return $$($nesting, 'Declaration').$new(self["native"].style) + }, $Style_declaration$1.$$arity = 0); + return (Opal.def(self, '$method_missing', $Style_method_missing$2 = function $$method_missing($a) { + var $iter = $Style_method_missing$2.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Style_method_missing_2.$$p = null; - return $send(self.$declaration(), '__send__', Opal.to_a(args), block.$to_proc()) - }, TMP_Style_method_missing_2.$$arity = -1), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'Rule'), $nesting) + if ($iter) $Style_method_missing$2.$$p = null; + + + if ($iter) $Style_method_missing$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$declaration(), '__send__', Opal.to_a(args), block.$to_proc()); + }, $Style_method_missing$2.$$arity = -1), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'Rule'), $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/css"] = function(Opal) { +Opal.modules["browser/css"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $gvars = Opal.gvars, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $gvars = Opal.gvars, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$require', '$create_element', '$[]=', '$-', '$css', '$to_proc', '$inner_text=']); @@ -17674,20 +19236,22 @@ Opal.modules["browser/css"] = function(Opal) { self.$require("browser/css/rule"); self.$require("browser/css/rule/style"); return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_CSS_1; + var $nesting = [self].concat($parent_nesting), $Kernel_CSS$1; - - Opal.defn(self, '$CSS', TMP_Kernel_CSS_1 = function $$CSS(text) { - var self = this, $iter = TMP_Kernel_CSS_1.$$p, block = $iter || nil, style = nil, $writer = nil; + return (Opal.def(self, '$CSS', $Kernel_CSS$1 = function $$CSS(text) { + var $iter = $Kernel_CSS$1.$$p, block = $iter || nil, self = this, style = nil, $writer = nil; if ($gvars.document == null) $gvars.document = nil; + if ($iter) $Kernel_CSS$1.$$p = null; + + + if ($iter) $Kernel_CSS$1.$$p = null;; + if (text == null) { text = nil; - } - if ($iter) TMP_Kernel_CSS_1.$$p = null; - + }; style = $gvars.document.$create_element("style"); $writer = ["type", "text/css"]; @@ -17695,23 +19259,22 @@ Opal.modules["browser/css"] = function(Opal) { $writer[$rb_minus($writer["length"], 1)];; if ($truthy(block)) { - $writer = [$send(Opal.const_get_relative($nesting, 'Paggio'), 'css', [], block.$to_proc())]; + $writer = [$send($$($nesting, 'Paggio'), 'css', [], block.$to_proc())]; $send(style, 'inner_text=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { $writer = [text]; $send(style, 'inner_text=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; return style; - }, TMP_Kernel_CSS_1.$$arity = -1) + }, $Kernel_CSS$1.$$arity = -1), nil) && 'CSS' })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["browser"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -17726,61 +19289,61 @@ Opal.modules["browser"] = function(Opal) { return self.$require("browser/css"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/interval"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; +Opal.modules["browser/interval"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; Opal.add_stubs(['$attr_reader', '$convert', '$nil?', '$stopped?', '$aborted?', '$raise', '$call', '$tap', '$new', '$to_proc', '$every', '$every!']); (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $Interval(){}; - var self = $Interval = $klass($base, $super, 'Interval', $Interval); + var self = $klass($base, $super, 'Interval'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Interval_initialize_1, TMP_Interval_stopped$q_2, TMP_Interval_aborted$q_3, TMP_Interval_abort_4, TMP_Interval_stop_5, TMP_Interval_start_6, TMP_Interval_call_7; + var $nesting = [self].concat($parent_nesting), $Interval_initialize$1, $Interval_stopped$ques$2, $Interval_aborted$ques$3, $Interval_abort$4, $Interval_stop$5, $Interval_start$6, $Interval_call$7; - def.id = def.aborted = def.window = def.block = def.every = nil; + self.$$prototype.id = self.$$prototype.aborted = self.$$prototype.window = self.$$prototype.block = self.$$prototype.every = nil; self.$attr_reader("every"); - Opal.defn(self, '$initialize', TMP_Interval_initialize_1 = function $$initialize(window, time) { - var self = this, $iter = TMP_Interval_initialize_1.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Interval_initialize$1 = function $$initialize(window, time) { + var $iter = $Interval_initialize$1.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Interval_initialize_1.$$p = null; + if ($iter) $Interval_initialize$1.$$p = null; + - self.window = Opal.const_get_relative($nesting, 'Native').$convert(window); + if ($iter) $Interval_initialize$1.$$p = null;; + self.window = $$($nesting, 'Native').$convert(window); self.every = time; self.block = block; return (self.aborted = false); - }, TMP_Interval_initialize_1.$$arity = 2); + }, $Interval_initialize$1.$$arity = 2); - Opal.defn(self, '$stopped?', TMP_Interval_stopped$q_2 = function() { + Opal.def(self, '$stopped?', $Interval_stopped$ques$2 = function() { var self = this; return self.id['$nil?']() - }, TMP_Interval_stopped$q_2.$$arity = 0); + }, $Interval_stopped$ques$2.$$arity = 0); - Opal.defn(self, '$aborted?', TMP_Interval_aborted$q_3 = function() { + Opal.def(self, '$aborted?', $Interval_aborted$ques$3 = function() { var self = this; return self.aborted - }, TMP_Interval_aborted$q_3.$$arity = 0); + }, $Interval_aborted$ques$3.$$arity = 0); - Opal.defn(self, '$abort', TMP_Interval_abort_4 = function $$abort() { + Opal.def(self, '$abort', $Interval_abort$4 = function $$abort() { var self = this; self.window.clearInterval(self.id); self.aborted = true; return (self.id = nil); - }, TMP_Interval_abort_4.$$arity = 0); + }, $Interval_abort$4.$$arity = 0); - Opal.defn(self, '$stop', TMP_Interval_stop_5 = function $$stop() { + Opal.def(self, '$stop', $Interval_stop$5 = function $$stop() { var self = this; @@ -17789,806 +19352,907 @@ Opal.modules["browser/interval"] = function(Opal) { self.window.clearInterval(self.id); self.stopped = true; return (self.id = nil); - }, TMP_Interval_stop_5.$$arity = 0); + }, $Interval_stop$5.$$arity = 0); - Opal.defn(self, '$start', TMP_Interval_start_6 = function $$start() { + Opal.def(self, '$start', $Interval_start$6 = function $$start() { var self = this; if ($truthy(self['$aborted?']())) { self.$raise("the interval has been aborted")}; if ($truthy(self['$stopped?']())) { - } else { + } else { return nil }; return (self.id = self.window.setInterval(self.block, self.every * 1000)); - }, TMP_Interval_start_6.$$arity = 0); - return (Opal.defn(self, '$call', TMP_Interval_call_7 = function $$call() { + }, $Interval_start$6.$$arity = 0); + return (Opal.def(self, '$call', $Interval_call$7 = function $$call() { var self = this; return self.block.$call() - }, TMP_Interval_call_7.$$arity = 0), nil) && 'call'; + }, $Interval_call$7.$$arity = 0), nil) && 'call'; })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Window(){}; - var self = $Window = $klass($base, $super, 'Window', $Window); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Window'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Window_every_8, TMP_Window_every$B_9; + var $nesting = [self].concat($parent_nesting), $Window_every$8, $Window_every$excl$9; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$every', TMP_Window_every_8 = function $$every(time) { - var self = this, $iter = TMP_Window_every_8.$$p, block = $iter || nil; + Opal.def(self, '$every', $Window_every$8 = function $$every(time) { + var $iter = $Window_every$8.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Window_every_8.$$p = null; - return $send($send(Opal.const_get_relative($nesting, 'Interval'), 'new', [self["native"], time], block.$to_proc()), 'tap', [], "start".$to_proc()) - }, TMP_Window_every_8.$$arity = 1); - return (Opal.defn(self, '$every!', TMP_Window_every$B_9 = function(time) { - var self = this, $iter = TMP_Window_every$B_9.$$p, block = $iter || nil; + if ($iter) $Window_every$8.$$p = null; + + + if ($iter) $Window_every$8.$$p = null;; + return $send($send($$($nesting, 'Interval'), 'new', [self["native"], time], block.$to_proc()), 'tap', [], "start".$to_proc()); + }, $Window_every$8.$$arity = 1); + return (Opal.def(self, '$every!', $Window_every$excl$9 = function(time) { + var $iter = $Window_every$excl$9.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Window_every$B_9.$$p = null; - return $send(Opal.const_get_relative($nesting, 'Interval'), 'new', [self["native"], time], block.$to_proc()) - }, TMP_Window_every$B_9.$$arity = 1), nil) && 'every!'; + if ($iter) $Window_every$excl$9.$$p = null; + + + if ($iter) $Window_every$excl$9.$$p = null;; + return $send($$($nesting, 'Interval'), 'new', [self["native"], time], block.$to_proc()); + }, $Window_every$excl$9.$$arity = 1), nil) && 'every!'; })($nesting[0], null, $nesting); })($nesting[0], $nesting); (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_every_10, TMP_Kernel_every$B_11; + var $nesting = [self].concat($parent_nesting), $Kernel_every$10, $Kernel_every$excl$11; - Opal.defn(self, '$every', TMP_Kernel_every_10 = function $$every(time) { - var self = this, $iter = TMP_Kernel_every_10.$$p, block = $iter || nil; + Opal.def(self, '$every', $Kernel_every$10 = function $$every(time) { + var $iter = $Kernel_every$10.$$p, block = $iter || nil, self = this; if ($gvars.window == null) $gvars.window = nil; - if ($iter) TMP_Kernel_every_10.$$p = null; - return $send($gvars.window, 'every', [time], block.$to_proc()) - }, TMP_Kernel_every_10.$$arity = 1); - - Opal.defn(self, '$every!', TMP_Kernel_every$B_11 = function(time) { - var self = this, $iter = TMP_Kernel_every$B_11.$$p, block = $iter || nil; + if ($iter) $Kernel_every$10.$$p = null; + + + if ($iter) $Kernel_every$10.$$p = null;; + return $send($gvars.window, 'every', [time], block.$to_proc()); + }, $Kernel_every$10.$$arity = 1); + return (Opal.def(self, '$every!', $Kernel_every$excl$11 = function(time) { + var $iter = $Kernel_every$excl$11.$$p, block = $iter || nil, self = this; if ($gvars.window == null) $gvars.window = nil; - if ($iter) TMP_Kernel_every$B_11.$$p = null; - return $send($gvars.window, 'every!', [time], block.$to_proc()) - }, TMP_Kernel_every$B_11.$$arity = 1); + if ($iter) $Kernel_every$excl$11.$$p = null; + + + if ($iter) $Kernel_every$excl$11.$$p = null;; + return $send($gvars.window, 'every!', [time], block.$to_proc()); + }, $Kernel_every$excl$11.$$arity = 1), nil) && 'every!'; })($nesting[0], $nesting); return (function($base, $super, $parent_nesting) { - function $Proc(){}; - var self = $Proc = $klass($base, $super, 'Proc', $Proc); + var self = $klass($base, $super, 'Proc'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Proc_every_12, TMP_Proc_every$B_13; + var $nesting = [self].concat($parent_nesting), $Proc_every$12, $Proc_every$excl$13; - Opal.defn(self, '$every', TMP_Proc_every_12 = function $$every(time) { + Opal.def(self, '$every', $Proc_every$12 = function $$every(time) { var self = this; if ($gvars.window == null) $gvars.window = nil; return $send($gvars.window, 'every', [time], self.$to_proc()) - }, TMP_Proc_every_12.$$arity = 1); - return (Opal.defn(self, '$every!', TMP_Proc_every$B_13 = function(time) { + }, $Proc_every$12.$$arity = 1); + return (Opal.def(self, '$every!', $Proc_every$excl$13 = function(time) { var self = this; if ($gvars.window == null) $gvars.window = nil; return $send($gvars.window, 'every!', [time], self.$to_proc()) - }, TMP_Proc_every$B_13.$$arity = 1), nil) && 'every!'; + }, $Proc_every$excl$13.$$arity = 1), nil) && 'every!'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["browser/delay"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars; +Opal.modules["browser/delay"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $gvars = Opal.gvars; Opal.add_stubs(['$attr_reader', '$convert', '$to_n', '$tap', '$new', '$to_proc', '$after', '$after!']); (function($base, $parent_nesting) { - var $Browser, self = $Browser = $module($base, 'Browser'); + var self = $module($base, 'Browser'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $Delay(){}; - var self = $Delay = $klass($base, $super, 'Delay', $Delay); + var self = $klass($base, $super, 'Delay'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Delay_initialize_1, TMP_Delay_abort_2, TMP_Delay_start_3; + var $nesting = [self].concat($parent_nesting), $Delay_initialize$1, $Delay_abort$2, $Delay_start$3; - def.window = def.id = def.block = def.after = nil; + self.$$prototype.window = self.$$prototype.id = self.$$prototype.block = self.$$prototype.after = nil; self.$attr_reader("after"); - Opal.defn(self, '$initialize', TMP_Delay_initialize_1 = function $$initialize(window, time) { - var self = this, $iter = TMP_Delay_initialize_1.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Delay_initialize$1 = function $$initialize(window, time) { + var $iter = $Delay_initialize$1.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Delay_initialize_1.$$p = null; + if ($iter) $Delay_initialize$1.$$p = null; + - self.window = Opal.const_get_relative($nesting, 'Native').$convert(window); + if ($iter) $Delay_initialize$1.$$p = null;; + self.window = $$($nesting, 'Native').$convert(window); self.after = time; return (self.block = block); - }, TMP_Delay_initialize_1.$$arity = 2); + }, $Delay_initialize$1.$$arity = 2); - Opal.defn(self, '$abort', TMP_Delay_abort_2 = function $$abort() { + Opal.def(self, '$abort', $Delay_abort$2 = function $$abort() { var self = this; return self.window.clearTimeout(self.id) - }, TMP_Delay_abort_2.$$arity = 0); - return (Opal.defn(self, '$start', TMP_Delay_start_3 = function $$start() { + }, $Delay_abort$2.$$arity = 0); + return (Opal.def(self, '$start', $Delay_start$3 = function $$start() { var self = this; return (self.id = self.window.setTimeout(self.block.$to_n(), self.after * 1000)) - }, TMP_Delay_start_3.$$arity = 0), nil) && 'start'; + }, $Delay_start$3.$$arity = 0), nil) && 'start'; })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Window(){}; - var self = $Window = $klass($base, $super, 'Window', $Window); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Window'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Window_after_4, TMP_Window_after$B_5; + var $nesting = [self].concat($parent_nesting), $Window_after$4, $Window_after$excl$5; - def["native"] = nil; + self.$$prototype["native"] = nil; - Opal.defn(self, '$after', TMP_Window_after_4 = function $$after(time) { - var self = this, $iter = TMP_Window_after_4.$$p, block = $iter || nil; + Opal.def(self, '$after', $Window_after$4 = function $$after(time) { + var $iter = $Window_after$4.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Window_after_4.$$p = null; - return $send($send(Opal.const_get_relative($nesting, 'Delay'), 'new', [self["native"], time], block.$to_proc()), 'tap', [], "start".$to_proc()) - }, TMP_Window_after_4.$$arity = 1); - return (Opal.defn(self, '$after!', TMP_Window_after$B_5 = function(time) { - var self = this, $iter = TMP_Window_after$B_5.$$p, block = $iter || nil; + if ($iter) $Window_after$4.$$p = null; + + + if ($iter) $Window_after$4.$$p = null;; + return $send($send($$($nesting, 'Delay'), 'new', [self["native"], time], block.$to_proc()), 'tap', [], "start".$to_proc()); + }, $Window_after$4.$$arity = 1); + return (Opal.def(self, '$after!', $Window_after$excl$5 = function(time) { + var $iter = $Window_after$excl$5.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Window_after$B_5.$$p = null; - return $send(Opal.const_get_relative($nesting, 'Delay'), 'new', [self["native"], time], block.$to_proc()) - }, TMP_Window_after$B_5.$$arity = 1), nil) && 'after!'; + if ($iter) $Window_after$excl$5.$$p = null; + + + if ($iter) $Window_after$excl$5.$$p = null;; + return $send($$($nesting, 'Delay'), 'new', [self["native"], time], block.$to_proc()); + }, $Window_after$excl$5.$$arity = 1), nil) && 'after!'; })($nesting[0], null, $nesting); })($nesting[0], $nesting); (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_after_6, TMP_Kernel_after$B_7; + var $nesting = [self].concat($parent_nesting), $Kernel_after$6, $Kernel_after$excl$7; - Opal.defn(self, '$after', TMP_Kernel_after_6 = function $$after(time) { - var self = this, $iter = TMP_Kernel_after_6.$$p, block = $iter || nil; + Opal.def(self, '$after', $Kernel_after$6 = function $$after(time) { + var $iter = $Kernel_after$6.$$p, block = $iter || nil, self = this; if ($gvars.window == null) $gvars.window = nil; - if ($iter) TMP_Kernel_after_6.$$p = null; - return $send($gvars.window, 'after', [time], block.$to_proc()) - }, TMP_Kernel_after_6.$$arity = 1); - - Opal.defn(self, '$after!', TMP_Kernel_after$B_7 = function(time) { - var self = this, $iter = TMP_Kernel_after$B_7.$$p, block = $iter || nil; + if ($iter) $Kernel_after$6.$$p = null; + + + if ($iter) $Kernel_after$6.$$p = null;; + return $send($gvars.window, 'after', [time], block.$to_proc()); + }, $Kernel_after$6.$$arity = 1); + return (Opal.def(self, '$after!', $Kernel_after$excl$7 = function(time) { + var $iter = $Kernel_after$excl$7.$$p, block = $iter || nil, self = this; if ($gvars.window == null) $gvars.window = nil; - if ($iter) TMP_Kernel_after$B_7.$$p = null; - return $send($gvars.window, 'after!', [time], block.$to_proc()) - }, TMP_Kernel_after$B_7.$$arity = 1); + if ($iter) $Kernel_after$excl$7.$$p = null; + + + if ($iter) $Kernel_after$excl$7.$$p = null;; + return $send($gvars.window, 'after!', [time], block.$to_proc()); + }, $Kernel_after$excl$7.$$arity = 1), nil) && 'after!'; })($nesting[0], $nesting); return (function($base, $super, $parent_nesting) { - function $Proc(){}; - var self = $Proc = $klass($base, $super, 'Proc', $Proc); + var self = $klass($base, $super, 'Proc'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Proc_after_8, TMP_Proc_after$B_9; + var $nesting = [self].concat($parent_nesting), $Proc_after$8, $Proc_after$excl$9; - Opal.defn(self, '$after', TMP_Proc_after_8 = function $$after(time) { + Opal.def(self, '$after', $Proc_after$8 = function $$after(time) { var self = this; if ($gvars.window == null) $gvars.window = nil; return $send($gvars.window, 'after', [time], self.$to_proc()) - }, TMP_Proc_after_8.$$arity = 1); - return (Opal.defn(self, '$after!', TMP_Proc_after$B_9 = function(time) { + }, $Proc_after$8.$$arity = 1); + return (Opal.def(self, '$after!', $Proc_after$excl$9 = function(time) { var self = this; if ($gvars.window == null) $gvars.window = nil; return $send($gvars.window, 'after!', [time], self.$to_proc()) - }, TMP_Proc_after$B_9.$$arity = 1), nil) && 'after!'; + }, $Proc_after$excl$9.$$arity = 1), nil) && 'after!'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/boot"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["hyperstack/boot"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$attr_reader', '$<<', '$receivers', '$set_var', '$new', '$each', '$call']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), $a; + var $nesting = [self].concat($parent_nesting), $a; - if ($truthy((($a = Opal.const_get_relative($nesting, 'Operation', 'skip_raise')) ? 'constant' : nil))) { - } else { + if ($truthy((($a = $$($nesting, 'Operation', 'skip_raise')) ? 'constant' : nil))) { + return nil + } else { (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Application(){}; - var self = $Application = $klass($base, $super, 'Application', $Application); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Application'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Boot(){}; - var self = $Boot = $klass($base, $super, 'Boot', $Boot); + var self = $klass($base, $super, 'Boot'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $ReactDummyParams(){}; - var self = $ReactDummyParams = $klass($base, $super, 'ReactDummyParams', $ReactDummyParams); + var self = $klass($base, $super, 'ReactDummyParams'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ReactDummyParams_initialize_1; + var $nesting = [self].concat($parent_nesting), $ReactDummyParams_initialize$1; self.$attr_reader("context"); - return (Opal.defn(self, '$initialize', TMP_ReactDummyParams_initialize_1 = function $$initialize(context) { + return (Opal.def(self, '$initialize', $ReactDummyParams_initialize$1 = function $$initialize(context) { var self = this; return (self.context = context) - }, TMP_ReactDummyParams_initialize_1.$$arity = 1), nil) && 'initialize'; + }, $ReactDummyParams_initialize$1.$$arity = 1), nil) && 'initialize'; })($nesting[0], null, $nesting); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_on_dispatch_2, TMP_receivers_4, TMP_run_6; + var $nesting = [self].concat($parent_nesting), $on_dispatch$2, $receivers$3, $run$5; - Opal.defn(self, '$on_dispatch', TMP_on_dispatch_2 = function $$on_dispatch() { - var self = this, $iter = TMP_on_dispatch_2.$$p, block = $iter || nil; + Opal.def(self, '$on_dispatch', $on_dispatch$2 = function $$on_dispatch() { + var $iter = $on_dispatch$2.$$p, block = $iter || nil, self = this; - if ($iter) TMP_on_dispatch_2.$$p = null; - return self.$receivers()['$<<'](block) - }, TMP_on_dispatch_2.$$arity = 0); + if ($iter) $on_dispatch$2.$$p = null; + + + if ($iter) $on_dispatch$2.$$p = null;; + return self.$receivers()['$<<'](block); + }, $on_dispatch$2.$$arity = 0); - Opal.defn(self, '$receivers', TMP_receivers_4 = function $$receivers() { - var TMP_3, self = this; + Opal.def(self, '$receivers', $receivers$3 = function $$receivers() { + var $$4, self = this; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@receivers", $hash2(["force"], {"force": true})], (TMP_3 = function(){var self = TMP_3.$$s || this; + return $send($$$($$($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@receivers", $hash2(["force"], {"force": true})], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - return []}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)) - }, TMP_receivers_4.$$arity = 0); - return (Opal.defn(self, '$run', TMP_run_6 = function $$run($kwargs) { - var TMP_5, self = this, context, params = nil; + return []}, $$4.$$s = self, $$4.$$arity = 0, $$4)) + }, $receivers$3.$$arity = 0); + return (Opal.def(self, '$run', $run$5 = function $$run($kwargs) { + var context, $$6, self = this, params = nil; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + context = $kwargs.$$smap["context"]; if (context == null) { context = nil - } - - params = Opal.const_get_relative($nesting, 'ReactDummyParams').$new(context); - return $send(self.$receivers(), 'each', [], (TMP_5 = function(receiver){var self = TMP_5.$$s || this; -if (receiver == null) receiver = nil; - return receiver.$call(params)}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); - }, TMP_run_6.$$arity = -1), nil) && 'run'; + }; + params = $$($nesting, 'ReactDummyParams').$new(context); + return $send(self.$receivers(), 'each', [], ($$6 = function(receiver){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (receiver == null) { + receiver = nil; + }; + return receiver.$call(params);}, $$6.$$s = self, $$6.$$arity = 1, $$6)); + }, $run$5.$$arity = -1), nil) && 'run'; })(Opal.get_singleton_class(self), $nesting); - })($nesting[0], Opal.const_get_relative($nesting, 'Operation'), $nesting) + })($nesting[0], $$($nesting, 'Operation'), $nesting) })($nesting[0], null, $nesting); } })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/deprecation_warning"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["hyperstack/native_wrapper_compatibility"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; + + Opal.add_stubs(['$include?', '$instance_methods', '$include', '$extend']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Native'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'Wrapper'); + + var $nesting = [self].concat($parent_nesting), $Wrapper_included$1; + + return (Opal.defs(self, '$included', $Wrapper_included$1 = function $$included(klass) { + var self = this; + + if ($truthy($$($nesting, 'Native').$instance_methods()['$include?']("to_n"))) { + return klass.$include($$($nesting, 'Native')) + } else { + return klass.$extend($$$($$($nesting, 'Native'), 'Helpers')) + } + }, $Wrapper_included$1.$$arity = 1), nil) && 'included' + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["hyperstack/deprecation_warning"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; Opal.add_stubs(['$production?', '$env', '$include?', '$<<']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_deprecation_warning_1; + var $nesting = [self].concat($parent_nesting), $Hyperstack_deprecation_warning$1; - Opal.defs(self, '$deprecation_warning', TMP_Hyperstack_deprecation_warning_1 = function $$deprecation_warning(name, message) { - var $a, self = this; + return (Opal.defs(self, '$deprecation_warning', $Hyperstack_deprecation_warning$1 = function $$deprecation_warning(name, message) { + var self = this, $ret_or_1 = nil; if (self.deprecation_messages == null) self.deprecation_messages = nil; if ($truthy(self.$env()['$production?']())) { return nil}; - self.deprecation_messages = ($truthy($a = self.deprecation_messages) ? $a : []); + self.deprecation_messages = (function() {if ($truthy(($ret_or_1 = self.deprecation_messages))) { + return $ret_or_1 + } else { + return [] + }; return nil; })(); message = "" + "Warning: Deprecated feature used in " + (name) + ". " + (message); if ($truthy(self.deprecation_messages['$include?'](message))) { return nil}; self.deprecation_messages['$<<'](message); - return console.warn.apply(console, [message]); - }, TMP_Hyperstack_deprecation_warning_1.$$arity = 2) + return console.warn.apply(console, [message]);; + }, $Hyperstack_deprecation_warning$1.$$arity = 2), nil) && 'deprecation_warning' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/string"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["hyperstack/string"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_to_json_1; + var $nesting = [self].concat($parent_nesting), $String_to_json$1; - return (Opal.defn(self, '$to_json', TMP_String_to_json_1 = function $$to_json() { + return (Opal.def(self, '$to_json', $String_to_json$1 = function $$to_json() { var self = this; return JSON.stringify(self) - }, TMP_String_to_json_1.$$arity = 0), nil) && 'to_json' + }, $String_to_json$1.$$arity = 0), nil) && 'to_json' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/client_stubs"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack/client_stubs"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_import_1, TMP_imports_2, TMP_import_tree_3; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $import$1, $imports$2, $import_tree$3; - Opal.defn(self, '$import', TMP_import_1 = function($a_rest) { - var self = this, args; + Opal.def(self, '$import', $import$1 = function($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_import_1.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $import$1.$$arity = -1); - Opal.defn(self, '$imports', TMP_imports_2 = function $$imports($a_rest) { - var self = this, args; + Opal.def(self, '$imports', $imports$2 = function $$imports($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_imports_2.$$arity = -1); - return (Opal.defn(self, '$import_tree', TMP_import_tree_3 = function $$import_tree($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return nil - }, TMP_import_tree_3.$$arity = -1), nil) && 'import_tree'; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $imports$2.$$arity = -1); + return (Opal.def(self, '$import_tree', $import_tree$3 = function $$import_tree($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $import_tree$3.$$arity = -1), nil) && 'import_tree'; })(Opal.get_singleton_class(self), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/context"] = function(Opal) { +Opal.modules["hyperstack/context"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$instance_variable_get', '$!', '$key?', '$[]', '$dup', '$[]=', '$-', '$instance_variable_set', '$each', '$run', '$new']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Context, self = $Context = $module($base, 'Context'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Context'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Context_set_var_1, TMP_Context_reset$B_5; + var $nesting = [self].concat($parent_nesting), $Context_set_var$1, $Context_reset$excl$2; - Opal.defs(self, '$set_var', TMP_Context_set_var_1 = function $$set_var(ctx, var$, $kwargs) { - var $a, $b, self = this, force, $iter = TMP_Context_set_var_1.$$p, $yield = $iter || nil, inst_value_b4 = nil, $writer = nil; + Opal.defs(self, '$set_var', $Context_set_var$1 = function $$set_var(ctx, var$, $kwargs) { + var force, $iter = $Context_set_var$1.$$p, $yield = $iter || nil, self = this, inst_value_b4 = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $writer = nil, $ret_or_4 = nil, $ret_or_5 = nil; if (self.context == null) self.context = nil; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + if ($iter) $Context_set_var$1.$$p = null; + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + force = $kwargs.$$smap["force"]; if (force == null) { force = nil - } - if ($iter) TMP_Context_set_var_1.$$p = null; - + }; inst_value_b4 = ctx.$instance_variable_get(var$); - if ($truthy(($truthy($a = ($truthy($b = self.context) ? self.context['$[]'](ctx)['$key?'](var$)['$!']() : $b)) ? ($truthy($b = force) ? $b : inst_value_b4['$!']()) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self.context))) { + return self.context['$[]'](ctx)['$key?'](var$)['$!']() + } else { + return $ret_or_2 + }; return nil; })()))) { + + if ($truthy(($ret_or_3 = force))) { + return $ret_or_3 + } else { + return inst_value_b4['$!']() + }; + } else { + return $ret_or_1 + }; return nil; })())) { - $writer = [var$, ($truthy($a = inst_value_b4) ? inst_value_b4.$dup() : $a)]; + $writer = [var$, (function() {if ($truthy(($ret_or_4 = inst_value_b4))) { + return inst_value_b4.$dup() + } else { + return $ret_or_4 + }; return nil; })()]; $send(self.context['$[]'](ctx), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];}; - return ($truthy($a = inst_value_b4) ? $a : ctx.$instance_variable_set(var$, Opal.yieldX($yield, []))); - }, TMP_Context_set_var_1.$$arity = -3); - Opal.defs(self, '$reset!', TMP_Context_reset$B_5 = function(reboot) { - var TMP_2, TMP_4, self = this; + if ($truthy(($ret_or_5 = inst_value_b4))) { + return $ret_or_5 + } else { + return ctx.$instance_variable_set(var$, Opal.yieldX($yield, [])) + }; + }, $Context_set_var$1.$$arity = -3); + return (Opal.defs(self, '$reset!', $Context_reset$excl$2 = function(reboot) { + var $$3, $$5, self = this; if (self.context == null) self.context = nil; + + if (reboot == null) { reboot = true; - } + }; if ($truthy(self.context)) { - $send(self.context, 'each', [], (TMP_2 = function(ctx, vars){var self = TMP_2.$$s || this, TMP_3; -if (ctx == null) ctx = nil;if (vars == null) vars = nil; - return $send(vars, 'each', [], (TMP_3 = function(var$, init){var self = TMP_3.$$s || this, $a; -if (var$ == null) var$ = nil;if (init == null) init = nil; - return ctx.$instance_variable_set(var$, ($truthy($a = init) ? init.$dup() : $a))}, TMP_3.$$s = self, TMP_3.$$arity = 2, TMP_3))}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)); + $send(self.context, 'each', [], ($$3 = function(ctx, vars){var self = $$3.$$s == null ? this : $$3.$$s, $$4; + + + + if (ctx == null) { + ctx = nil; + }; + + if (vars == null) { + vars = nil; + }; + return $send(vars, 'each', [], ($$4 = function(var$, init){var self = $$4.$$s == null ? this : $$4.$$s, $ret_or_6 = nil; + + + + if (var$ == null) { + var$ = nil; + }; + + if (init == null) { + init = nil; + }; + return ctx.$instance_variable_set(var$, (function() {if ($truthy(($ret_or_6 = init))) { + return init.$dup() + } else { + return $ret_or_6 + }; return nil; })());}, $$4.$$s = self, $$4.$$arity = 2, $$4));}, $$3.$$s = self, $$3.$$arity = 2, $$3)); if ($truthy(reboot)) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Application'), 'Boot').$run() - } else { + return $$$($$$($$($nesting, 'Hyperstack'), 'Application'), 'Boot').$run() + } else { return nil }; - } else { - return (self.context = $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_4 = function(h, k){var self = TMP_4.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - + } else { + return (self.context = $send($$($nesting, 'Hash'), 'new', [], ($$5 = function(h, k){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; $writer = [k, $hash2([], {})]; $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_4.$$s = self, TMP_4.$$arity = 2, TMP_4))) - } - }, TMP_Context_reset$B_5.$$arity = -1); + return $writer[$rb_minus($writer["length"], 1)];}, $$5.$$s = self, $$5.$$arity = 2, $$5))) + }; + }, $Context_reset$excl$2.$$arity = -1), nil) && 'reset!'; })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/js_imports"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["hyperstack/js_imports"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$!=', '$!', '$each', '$raise']); + Opal.add_stubs(['$!', '$each', '$raise']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_js_import_2; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $js_import$1; - return (Opal.defn(self, '$js_import', TMP_js_import_2 = function $$js_import(value, $kwargs) { - var $a, $b, TMP_1, self = this, client_only, server_only, defines, on_server = nil; + return (Opal.def(self, '$js_import', $js_import$1 = function $$js_import(value, $kwargs) { + var defines, client_only, server_only, $$2, self = this, on_server = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if (!Opal.hasOwnProperty.call($kwargs.$$smap, 'defines')) { + throw Opal.ArgumentError.$new('missing keyword: defines'); } + defines = $kwargs.$$smap["defines"];; + client_only = $kwargs.$$smap["client_only"]; if (client_only == null) { client_only = nil - } + }; + server_only = $kwargs.$$smap["server_only"]; if (server_only == null) { server_only = nil - } - if (!Opal.hasOwnProperty.call($kwargs.$$smap, 'defines')) { - throw Opal.ArgumentError.$new('missing keyword: defines'); - } - defines = $kwargs.$$smap["defines"]; - + }; defines = [].concat(Opal.to_a(defines)); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - return nil + + on_server = typeof Opal.global.document === 'undefined'; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = server_only))) { + return on_server['$!']() + } else { + return $ret_or_2 + }; return nil; })()))) { + return $ret_or_1 + } else { + + if ($truthy(($ret_or_3 = client_only))) { + return on_server } else { + return $ret_or_3 + }; + }; return nil; })())) { + return nil}; + return $send(defines, 'each', [], ($$2 = function(name){var self = $$2.$$s == null ? this : $$2.$$s; + - on_server = typeof Opal.global.document === 'undefined'; - if ($truthy(($truthy($a = ($truthy($b = server_only) ? on_server['$!']() : $b)) ? $a : ($truthy($b = client_only) ? on_server : $b)))) { - return nil}; - return $send(defines, 'each', [], (TMP_1 = function(name){var self = TMP_1.$$s || this; -if (name == null) name = nil; - if ($truthy(Opal.global[name] === undefined)) { - } else { - return nil; - }; - return self.$raise("" + ("" + "The package " + (name) + " was not found. Add it to the webpack ") + ("" + ((function() {if ($truthy(client_only)) { - return "client_only.js" - } else { - return "client_and_server.js" - }; return nil; })()) + " manifest."));}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); - }; - }, TMP_js_import_2.$$arity = 2), nil) && 'js_import' + if (name == null) { + name = nil; + }; + if ($truthy(Opal.global[name] === undefined)) { + } else { + return nil; + }; + return self.$raise("" + ("" + "The package " + (name) + " was not found. Add it to the webpack ") + ("" + ((function() {if ($truthy(client_only)) { + return "client_only.js" + } else { + return "client_and_server.js" + }; return nil; })()) + " manifest."));}, $$2.$$s = self, $$2.$$arity = 1, $$2));; + }, $js_import$1.$$arity = 2), nil) && 'js_import' })(Opal.get_singleton_class(self), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/on_client"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack/on_client"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - Opal.add_stubs(['$==', '$!']); + Opal.add_stubs(['$!']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_on_client$q_1; + var $nesting = [self].concat($parent_nesting), $Hyperstack_on_client$ques$1; - Opal.defs(self, '$on_client?', TMP_Hyperstack_on_client$q_1 = function() { + return (Opal.defs(self, '$on_client?', $Hyperstack_on_client$ques$1 = function() { var self = this; - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - return (typeof Opal.global.document === 'undefined')['$!']() - } else { - return nil - } - }, TMP_Hyperstack_on_client$q_1.$$arity = 0) + return (typeof Opal.global.document === 'undefined')['$!']() + }, $Hyperstack_on_client$ques$1.$$arity = 0), nil) && 'on_client?' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/active_support_string_inquirer"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range; +Opal.modules["hyperstack/active_support_string_inquirer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $range = Opal.range; Opal.add_stubs(['$private', '$==', '$[]']); return (function($base, $parent_nesting) { - var $ActiveSupport, self = $ActiveSupport = $module($base, 'ActiveSupport'); + var self = $module($base, 'ActiveSupport'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $StringInquirer(){}; - var self = $StringInquirer = $klass($base, $super, 'StringInquirer', $StringInquirer); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'StringInquirer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_StringInquirer_respond_to_missing$q_1, TMP_StringInquirer_method_missing_2; + var $nesting = [self].concat($parent_nesting), $StringInquirer_respond_to_missing$ques$1, $StringInquirer_method_missing$2; self.$private(); - Opal.defn(self, '$respond_to_missing?', TMP_StringInquirer_respond_to_missing$q_1 = function(method_name, include_private) { - var $a, self = this, $iter = TMP_StringInquirer_respond_to_missing$q_1.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$respond_to_missing?', $StringInquirer_respond_to_missing$ques$1 = function(method_name, include_private) { + var $iter = $StringInquirer_respond_to_missing$ques$1.$$p, $yield = $iter || nil, self = this, $ret_or_1 = nil; + if ($iter) $StringInquirer_respond_to_missing$ques$1.$$p = null; + + if (include_private == null) { include_private = false; - } - if ($iter) TMP_StringInquirer_respond_to_missing$q_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return ($truthy($a = method_name['$[]'](-1)['$==']("?")) ? $a : $send(self, Opal.find_super_dispatcher(self, 'respond_to_missing?', TMP_StringInquirer_respond_to_missing$q_1, false), $zuper, $iter)) - }, TMP_StringInquirer_respond_to_missing$q_1.$$arity = -2); - return (Opal.defn(self, '$method_missing', TMP_StringInquirer_method_missing_2 = function $$method_missing(method_name, $a_rest) { - var self = this, arguments$, $iter = TMP_StringInquirer_method_missing_2.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - arguments$ = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - arguments$[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_StringInquirer_method_missing_2.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + }; + if ($truthy(($ret_or_1 = method_name['$[]'](-1)['$==']("?")))) { + return $ret_or_1 + } else { + return $send2(self, $find_super(self, 'respond_to_missing?', $StringInquirer_respond_to_missing$ques$1, false, true), 'respond_to_missing?', [method_name, include_private], $iter) + }; + }, $StringInquirer_respond_to_missing$ques$1.$$arity = -2); + return (Opal.def(self, '$method_missing', $StringInquirer_method_missing$2 = function $$method_missing(method_name, $a) { + var $post_args, arguments$, $iter = $StringInquirer_method_missing$2.$$p, $yield = $iter || nil, self = this; + + if ($iter) $StringInquirer_method_missing$2.$$p = null; + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + arguments$ = $post_args;; if (method_name['$[]'](-1)['$==']("?")) { return self['$=='](method_name['$[]']($range(0, -2, false))) - } else { - return $send(self, Opal.find_super_dispatcher(self, 'method_missing', TMP_StringInquirer_method_missing_2, false), $zuper, $iter) - } - }, TMP_StringInquirer_method_missing_2.$$arity = -2), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'String'), $nesting) + } else { + return $send2(self, $find_super(self, 'method_missing', $StringInquirer_method_missing$2, false, true), 'method_missing', [method_name].concat(Opal.to_a(arguments)), $iter) + }; + }, $StringInquirer_method_missing$2.$$arity = -2), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'String'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack_env"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["hyperstack_env"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; Opal.add_stubs(['$new']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_env_1; + var $nesting = [self].concat($parent_nesting), $Hyperstack_env$1; - Opal.defs(self, '$env', TMP_Hyperstack_env_1 = function $$env() { - var $a, self = this; + return (Opal.defs(self, '$env', $Hyperstack_env$1 = function $$env() { + var self = this, $ret_or_1 = nil; if (self.environment == null) self.environment = nil; - return (self.environment = ($truthy($a = self.environment) ? $a : Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'StringInquirer').$new("development"))) - }, TMP_Hyperstack_env_1.$$arity = 0) + return (self.environment = (function() {if ($truthy(($ret_or_1 = self.environment))) { + return $ret_or_1 + } else { + return $$$($$($nesting, 'ActiveSupport'), 'StringInquirer').$new("development") + }; return nil; })()) + }, $Hyperstack_env$1.$$arity = 0), nil) && 'env' })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/hotloader/stub"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass; +Opal.modules["hyperstack/hotloader/stub"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), $a; + var $nesting = [self].concat($parent_nesting), $a; - if ($truthy((($a = Opal.const_get_relative($nesting, 'Hotloader', 'skip_raise')) ? 'constant' : nil))) { - } else { - (function($base, $super, $parent_nesting) { - function $Hotloader(){}; - var self = $Hotloader = $klass($base, $super, 'Hotloader', $Hotloader); + if ($truthy((($a = $$($nesting, 'Hotloader', 'skip_raise')) ? 'constant' : nil))) { + return nil + } else { + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Hotloader'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hotloader_when_file_updates_1; + var $nesting = [self].concat($parent_nesting), $Hotloader_when_file_updates$1; - return Opal.defs(self, '$when_file_updates', TMP_Hotloader_when_file_updates_1 = function $$when_file_updates() { - var self = this, $iter = TMP_Hotloader_when_file_updates_1.$$p, block = $iter || nil; + return (Opal.defs(self, '$when_file_updates', $Hotloader_when_file_updates$1 = function $$when_file_updates() { + var $iter = $Hotloader_when_file_updates$1.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Hotloader_when_file_updates_1.$$p = null; - return nil - }, TMP_Hotloader_when_file_updates_1.$$arity = 0) + if ($iter) $Hotloader_when_file_updates$1.$$p = null; + + + if ($iter) $Hotloader_when_file_updates$1.$$p = null;; + return nil; + }, $Hotloader_when_file_updates$1.$$arity = 0), nil) && 'when_file_updates' })($nesting[0], null, $nesting) } })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack-config"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack-config"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - Opal.add_stubs(['$require', '$==']); + Opal.add_stubs(['$require']); self.$require("hyperstack/boot"); (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_naming_convention_1; + var $nesting = [self].concat($parent_nesting), $Hyperstack_naming_convention$1; - Opal.defs(self, '$naming_convention', TMP_Hyperstack_naming_convention_1 = function $$naming_convention() { + return (Opal.defs(self, '$naming_convention', $Hyperstack_naming_convention$1 = function $$naming_convention() { var self = this; return "camelize_params" - }, TMP_Hyperstack_naming_convention_1.$$arity = 0) + }, $Hyperstack_naming_convention$1.$$arity = 0), nil) && 'naming_convention' })($nesting[0], $nesting); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - - self.$require("hyperstack/deprecation_warning"); - self.$require("hyperstack/string"); - self.$require("hyperstack/client_stubs"); - self.$require("hyperstack/context"); - self.$require("hyperstack/js_imports"); - self.$require("hyperstack/on_client"); - self.$require("hyperstack/active_support_string_inquirer.rb"); - self.$require("hyperstack_env"); - return self.$require("hyperstack/hotloader/stub"); - } else { - return nil - }; + + self.$require("hyperstack/native_wrapper_compatibility"); + self.$require("hyperstack/deprecation_warning"); + self.$require("hyperstack/string"); + self.$require("hyperstack/client_stubs"); + self.$require("hyperstack/context"); + self.$require("hyperstack/js_imports"); + self.$require("hyperstack/on_client"); + self.$require("hyperstack/active_support_string_inquirer.rb"); + self.$require("hyperstack_env"); + return self.$require("hyperstack/hotloader/stub");; }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/autoloader"] = function(Opal) { +Opal.modules["hyperstack/autoloader"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $gvars = Opal.gvars; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $class_variable_get = Opal.class_variable_get, $send = Opal.send, $truthy = Opal.truthy, $gvars = Opal.gvars; Opal.add_stubs(['$require', '$new', '$history=', '$-', '$load_paths=', '$loaded=', '$loading=', '$nil?', '$name', '$guess_for_anonymous', '$load_missing_constant', '$puts', '$const_defined?', '$raise', '$qualified_name_for', '$underscore', '$search_for_module', '$include?', '$loading', '$require_or_load', '$const_get', '$respond_to?', '$parent', '$!=', '$!', '$any?', '$parents', '$const_missing', '$missing_name?', '$!~', '$message', '$=~', '$==', '$to_constant_name', '$to_s', '$loaded', '$<<', '$delete', '$pop', '$history', '$each', '$load_paths', '$+', '$===', '$sub', '$inspect', '$downcase', '$tr', '$gsub']); self.$require("set"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Autoloader(){}; - var self = $Autoloader = $klass($base, $super, 'Autoloader', $Autoloader); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Autoloader'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Autoloader_history$eq_1, TMP_Autoloader_history_2, TMP_Autoloader_load_paths$eq_3, TMP_Autoloader_load_paths_4, TMP_Autoloader_loaded$eq_5, TMP_Autoloader_loaded_6, TMP_Autoloader_loading$eq_7, TMP_Autoloader_loading_8, TMP_Autoloader_const_missing_9, TMP_Autoloader_guess_for_anonymous_10, TMP_Autoloader_load_missing_constant_12, TMP_Autoloader_missing_name$q_13, TMP_Autoloader_qualified_name_for_14, TMP_Autoloader_require_or_load_15, TMP_Autoloader_search_for_module_17, TMP_Autoloader_to_constant_name_18, TMP_Autoloader_underscore_19, $writer = nil; + var $nesting = [self].concat($parent_nesting), $Autoloader_history$eq$1, $Autoloader_history$2, $Autoloader_load_paths$eq$3, $Autoloader_load_paths$4, $Autoloader_loaded$eq$5, $Autoloader_loaded$6, $Autoloader_loading$eq$7, $Autoloader_loading$8, $Autoloader_const_missing$9, $Autoloader_guess_for_anonymous$10, $Autoloader_load_missing_constant$11, $Autoloader_missing_name$ques$13, $Autoloader_qualified_name_for$14, $Autoloader_require_or_load$15, $Autoloader_search_for_module$16, $Autoloader_to_constant_name$18, $Autoloader_underscore$19, $writer = nil; - Opal.defs(self, '$history=', TMP_Autoloader_history$eq_1 = function(a) { + Opal.defs(self, '$history=', $Autoloader_history$eq$1 = function(a) { var self = this; - return (Opal.class_variable_set($Autoloader, '@@history', a)) - }, TMP_Autoloader_history$eq_1.$$arity = 1); - Opal.defs(self, '$history', TMP_Autoloader_history_2 = function $$history() { - var $a, self = this; + return $class_variable_set($nesting[0], '@@history', a) + }, $Autoloader_history$eq$1.$$arity = 1); + Opal.defs(self, '$history', $Autoloader_history$2 = function $$history() { + var self = this; - return (($a = $Autoloader.$$cvars['@@history']) == null ? nil : $a) - }, TMP_Autoloader_history_2.$$arity = 0); + return $class_variable_get($nesting[0], '@@history', false) + }, $Autoloader_history$2.$$arity = 0); - $writer = [Opal.const_get_relative($nesting, 'Set').$new()]; + $writer = [$$($nesting, 'Set').$new()]; $send(self, 'history=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.defs(self, '$load_paths=', TMP_Autoloader_load_paths$eq_3 = function(a) { + Opal.defs(self, '$load_paths=', $Autoloader_load_paths$eq$3 = function(a) { var self = this; - return (Opal.class_variable_set($Autoloader, '@@load_paths', a)) - }, TMP_Autoloader_load_paths$eq_3.$$arity = 1); - Opal.defs(self, '$load_paths', TMP_Autoloader_load_paths_4 = function $$load_paths() { - var $a, self = this; + return $class_variable_set($nesting[0], '@@load_paths', a) + }, $Autoloader_load_paths$eq$3.$$arity = 1); + Opal.defs(self, '$load_paths', $Autoloader_load_paths$4 = function $$load_paths() { + var self = this; - return (($a = $Autoloader.$$cvars['@@load_paths']) == null ? nil : $a) - }, TMP_Autoloader_load_paths_4.$$arity = 0); + return $class_variable_get($nesting[0], '@@load_paths', false) + }, $Autoloader_load_paths$4.$$arity = 0); $writer = [[]]; $send(self, 'load_paths=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.defs(self, '$loaded=', TMP_Autoloader_loaded$eq_5 = function(a) { + Opal.defs(self, '$loaded=', $Autoloader_loaded$eq$5 = function(a) { var self = this; - return (Opal.class_variable_set($Autoloader, '@@loaded', a)) - }, TMP_Autoloader_loaded$eq_5.$$arity = 1); - Opal.defs(self, '$loaded', TMP_Autoloader_loaded_6 = function $$loaded() { - var $a, self = this; + return $class_variable_set($nesting[0], '@@loaded', a) + }, $Autoloader_loaded$eq$5.$$arity = 1); + Opal.defs(self, '$loaded', $Autoloader_loaded$6 = function $$loaded() { + var self = this; - return (($a = $Autoloader.$$cvars['@@loaded']) == null ? nil : $a) - }, TMP_Autoloader_loaded_6.$$arity = 0); + return $class_variable_get($nesting[0], '@@loaded', false) + }, $Autoloader_loaded$6.$$arity = 0); - $writer = [Opal.const_get_relative($nesting, 'Set').$new()]; + $writer = [$$($nesting, 'Set').$new()]; $send(self, 'loaded=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.defs(self, '$loading=', TMP_Autoloader_loading$eq_7 = function(a) { + Opal.defs(self, '$loading=', $Autoloader_loading$eq$7 = function(a) { var self = this; - return (Opal.class_variable_set($Autoloader, '@@loading', a)) - }, TMP_Autoloader_loading$eq_7.$$arity = 1); - Opal.defs(self, '$loading', TMP_Autoloader_loading_8 = function $$loading() { - var $a, self = this; + return $class_variable_set($nesting[0], '@@loading', a) + }, $Autoloader_loading$eq$7.$$arity = 1); + Opal.defs(self, '$loading', $Autoloader_loading$8 = function $$loading() { + var self = this; - return (($a = $Autoloader.$$cvars['@@loading']) == null ? nil : $a) - }, TMP_Autoloader_loading_8.$$arity = 0); + return $class_variable_get($nesting[0], '@@loading', false) + }, $Autoloader_loading$8.$$arity = 0); $writer = [[]]; $send(self, 'loading=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.defs(self, '$const_missing', TMP_Autoloader_const_missing_9 = function $$const_missing(const_name, mod) { + Opal.defs(self, '$const_missing', $Autoloader_const_missing$9 = function $$const_missing(const_name, mod) { var self = this, from_mod = nil, e = nil; try { from_mod = (function() {if ($truthy(mod.$name()['$nil?']())) { return self.$guess_for_anonymous(const_name) - } else { + } else { return mod }; return nil; })(); return self.$load_missing_constant(from_mod, const_name); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { return self.$puts("" + "HyperStack autoloader failed attempting to load " + (mod) + "::" + (const_name) + ". Could be a bug in autoloader") - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Autoloader_const_missing_9.$$arity = 2); - Opal.defs(self, '$guess_for_anonymous', TMP_Autoloader_guess_for_anonymous_10 = function $$guess_for_anonymous(const_name) { + }, $Autoloader_const_missing$9.$$arity = 2); + Opal.defs(self, '$guess_for_anonymous', $Autoloader_guess_for_anonymous$10 = function $$guess_for_anonymous(const_name) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Object')['$const_defined?'](const_name))) { - return self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + (const_name) + " cannot be autoloaded from an anonymous class or module", const_name)) - } else { - return Opal.const_get_relative($nesting, 'Object') + if ($truthy($$($nesting, 'Object')['$const_defined?'](const_name))) { + return self.$raise($$($nesting, 'NameError').$new("" + (const_name) + " cannot be autoloaded from an anonymous class or module", const_name)) + } else { + return $$($nesting, 'Object') } - }, TMP_Autoloader_guess_for_anonymous_10.$$arity = 1); - Opal.defs(self, '$load_missing_constant', TMP_Autoloader_load_missing_constant_12 = function $$load_missing_constant(from_mod, const_name) { - var $a, $b, $c, TMP_11, self = this, qualified_name = nil, qualified_path = nil, module_path = nil, parent = nil, e = nil; + }, $Autoloader_guess_for_anonymous$10.$$arity = 1); + Opal.defs(self, '$load_missing_constant', $Autoloader_load_missing_constant$11 = function $$load_missing_constant(from_mod, const_name) { + var $$12, self = this, qualified_name = nil, qualified_path = nil, module_path = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, parent = nil, e = nil; qualified_name = self.$qualified_name_for(from_mod, const_name); @@ -18597,63 +20261,81 @@ Opal.modules["hyperstack/autoloader"] = function(Opal) { if ($truthy(module_path)) { if ($truthy(self.$loading()['$include?'](module_path))) { return self.$raise("" + "Circular dependency detected while autoloading constant " + (qualified_name)) - } else { + } else { self.$require_or_load(from_mod, module_path); if ($truthy(from_mod['$const_defined?'](const_name, false))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'LoadError'), "" + "Unable to autoload constant " + (qualified_name) + ", expected " + (module_path) + " to define it") + } else { + self.$raise($$($nesting, 'LoadError'), "" + "Unable to autoload constant " + (qualified_name) + ", expected " + (module_path) + " to define it") }; return from_mod.$const_get(const_name); } - } else if ($truthy(($truthy($a = ($truthy($b = ($truthy($c = from_mod['$respond_to?']("parent")) ? (parent = from_mod.$parent()) : $c)) ? parent['$!='](from_mod) : $b)) ? $send(from_mod.$parents(), 'any?', [], (TMP_11 = function(p){var self = TMP_11.$$s || this; -if (p == null) p = nil; - return p['$const_defined?'](const_name, false)}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11))['$!']() : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = from_mod['$respond_to?']("parent")))) { + + return (parent = from_mod.$parent()); + } else { + return $ret_or_3 + }; return nil; })()))) { + return parent['$!='](from_mod) + } else { + return $ret_or_2 + }; return nil; })()))) { + return $send(from_mod.$parents(), 'any?', [], ($$12 = function(p){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (p == null) { + p = nil; + }; + return p['$const_defined?'](const_name, false);}, $$12.$$s = self, $$12.$$arity = 1, $$12))['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { try { return parent.$const_missing(const_name) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'NameError')])) {(e = $err) try { if ($truthy(self['$missing_name?'](e, self.$qualified_name_for(parent, const_name)))) { return nil - } else { + } else { return self.$raise() } - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }; - } else { + } else { return nil }; - }, TMP_Autoloader_load_missing_constant_12.$$arity = 2); - Opal.defs(self, '$missing_name?', TMP_Autoloader_missing_name$q_13 = function(e, name) { + }, $Autoloader_load_missing_constant$11.$$arity = 2); + Opal.defs(self, '$missing_name?', $Autoloader_missing_name$ques$13 = function(e, name) { var $a, self = this, mn = nil; mn = (function() {if ($truthy(/undefined/['$!~'](e.$message()))) { if ($truthy(/((::)?([A-Z]\w*)(::[A-Z]\w*)*)$/['$=~'](e.$message()))) { return (($a = $gvars['~']) === nil ? nil : $a['$[]'](1)) - } else { + } else { return nil } - } else { + } else { return nil }; return nil; })(); return mn['$=='](name); - }, TMP_Autoloader_missing_name$q_13.$$arity = 2); - Opal.defs(self, '$qualified_name_for', TMP_Autoloader_qualified_name_for_14 = function $$qualified_name_for(mod, name) { + }, $Autoloader_missing_name$ques$13.$$arity = 2); + Opal.defs(self, '$qualified_name_for', $Autoloader_qualified_name_for$14 = function $$qualified_name_for(mod, name) { var self = this, mod_name = nil; mod_name = self.$to_constant_name(mod); if (mod_name['$==']("Object")) { return name.$to_s() - } else { + } else { return "" + (mod_name) + "::" + (name) }; - }, TMP_Autoloader_qualified_name_for_14.$$arity = 2); - Opal.defs(self, '$require_or_load', TMP_Autoloader_require_or_load_15 = function $$require_or_load(from_mod, module_path) { + }, $Autoloader_qualified_name_for$14.$$arity = 2); + Opal.defs(self, '$require_or_load', $Autoloader_require_or_load$15 = function $$require_or_load(from_mod, module_path) { var self = this, result = nil; @@ -18666,12 +20348,12 @@ if (p == null) p = nil; try { result = self.$require(module_path) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { try { self.$loaded().$delete(module_path); - self.$raise(Opal.const_get_relative($nesting, 'LoadError'), "" + "Unable to autoload: require_or_load " + (module_path) + " failed"); - } finally { Opal.pop_exception() } + self.$raise($$($nesting, 'LoadError'), "" + "Unable to autoload: require_or_load " + (module_path) + " failed"); + } finally { Opal.pop_exception(); } } else { throw $err; } } } finally { @@ -18679,112 +20361,120 @@ if (p == null) p = nil; };; self.$history()['$<<'](module_path); return result; - }, TMP_Autoloader_require_or_load_15.$$arity = 2); - Opal.defs(self, '$search_for_module', TMP_Autoloader_search_for_module_17 = function $$search_for_module(path) {try { + }, $Autoloader_require_or_load$15.$$arity = 2); + Opal.defs(self, '$search_for_module', $Autoloader_search_for_module$16 = function $$search_for_module(path) {try { - var TMP_16, self = this; + var $$17, self = this; - $send(self.$load_paths(), 'each', [], (TMP_16 = function(load_path){var self = TMP_16.$$s || this, mod_path = nil; -if (load_path == null) load_path = nil; - + $send(self.$load_paths(), 'each', [], ($$17 = function(load_path){var self = $$17.$$s == null ? this : $$17.$$s, mod_path = nil; + + + + if (load_path == null) { + load_path = nil; + }; mod_path = $rb_plus($rb_plus(load_path, "/"), path); if ($truthy(Opal.modules.hasOwnProperty(mod_path))) { Opal.ret(mod_path) - } else { + } else { return nil - };}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)); + };}, $$17.$$s = self, $$17.$$arity = 1, $$17)); if ($truthy(Opal.modules.hasOwnProperty(path))) { return path}; return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Autoloader_search_for_module_17.$$arity = 1); - Opal.defs(self, '$to_constant_name', TMP_Autoloader_to_constant_name_18 = function $$to_constant_name(desc) { - var $a, self = this, $case = nil; + }, $Autoloader_search_for_module$16.$$arity = 1); + Opal.defs(self, '$to_constant_name', $Autoloader_to_constant_name$18 = function $$to_constant_name(desc) { + var self = this, $case = nil, $ret_or_4 = nil; return (function() {$case = desc; - if (Opal.const_get_relative($nesting, 'String')['$===']($case)) {return desc.$sub(/^::/, "")} - else if (Opal.const_get_relative($nesting, 'Symbol')['$===']($case)) {return desc.$to_s()} - else if (Opal.const_get_relative($nesting, 'Module')['$===']($case)) {return ($truthy($a = desc.$name()) ? $a : self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Anonymous modules have no name to be referenced by"))} - else {return self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "Not a valid constant descriptor: " + (desc.$inspect()))}})() - }, TMP_Autoloader_to_constant_name_18.$$arity = 1); - return Opal.defs(self, '$underscore', TMP_Autoloader_underscore_19 = function $$underscore(string) { + if ($$($nesting, 'String')['$===']($case)) {return desc.$sub(/^::/, "")} + else if ($$($nesting, 'Symbol')['$===']($case)) {return desc.$to_s()} + else if ($$($nesting, 'Module')['$===']($case)) {if ($truthy(($ret_or_4 = desc.$name()))) { + return $ret_or_4 + } else { + return self.$raise($$($nesting, 'ArgumentError'), "Anonymous modules have no name to be referenced by") + }} + else {return self.$raise($$($nesting, 'TypeError'), "" + "Not a valid constant descriptor: " + (desc.$inspect()))}})() + }, $Autoloader_to_constant_name$18.$$arity = 1); + return (Opal.defs(self, '$underscore', $Autoloader_underscore$19 = function $$underscore(string) { var self = this; return string.$gsub(/::/, "/").$gsub(/([A-Z]+)([A-Z][a-z])/, "\\1_\\2").$gsub(/([a-z\d])([A-Z])/, "\\1_\\2").$tr("-", "_").$downcase() - }, TMP_Autoloader_underscore_19.$$arity = 1); + }, $Autoloader_underscore$19.$$arity = 1), nil) && 'underscore'; })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/autoloader_starter"] = function(Opal) { +Opal.modules["hyperstack/autoloader_starter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $send = Opal.send, $klass = Opal.klass, $truthy = Opal.truthy, $writer = nil; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $send = Opal.send, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $writer = nil; Opal.add_stubs(['$load_paths=', '$-', '$_autoloader_original_const_missing', '$const_missing', '$raise']); $writer = [["components", "models", "operations", "stores"]]; - $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Autoloader'), 'load_paths=', Opal.to_a($writer)); + $send($$$($$($nesting, 'Hyperstack'), 'Autoloader'), 'load_paths=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_const_missing_1; + var $nesting = [self].concat($parent_nesting), $const_missing$1; - Opal.alias(self, "_autoloader_original_const_missing", "const_missing"); - return (Opal.defn(self, '$const_missing', TMP_const_missing_1 = function $$const_missing(const_name) { - var $a, self = this, e = nil; + $alias(self, "_autoloader_original_const_missing", "const_missing"); + return (Opal.def(self, '$const_missing', $const_missing$1 = function $$const_missing(const_name) { + var self = this, e = nil, $ret_or_1 = nil; try { return self.$_autoloader_original_const_missing(const_name) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) {(e = $err) try { - return ($truthy($a = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Autoloader').$const_missing(const_name, self)) ? $a : self.$raise(e)) - } finally { Opal.pop_exception() } + if ($truthy(($ret_or_1 = $$$($$($nesting, 'Hyperstack'), 'Autoloader').$const_missing(const_name, self)))) { + return $ret_or_1 + } else { + return self.$raise(e) + } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_const_missing_1.$$arity = 1), nil) && 'const_missing'; + }, $const_missing$1.$$arity = 1), nil) && 'const_missing'; })(Opal.get_singleton_class(self), $nesting) })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["hyperstack/internal/component"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; - Opal.add_stubs(['$require', '$!=', '$attr_accessor']); + Opal.add_stubs(['$require', '$attr_accessor']); self.$require("hyperstack-config"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + nil; + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting); return self.$attr_accessor("after_error_args") })(Opal.get_singleton_class(self), $nesting) @@ -18793,464 +20483,547 @@ Opal.modules["hyperstack/internal/component"] = function(Opal) { })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/callbacks"] = function(Opal) { +Opal.modules["hyperstack/internal/callbacks"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; - Opal.add_stubs(['$!=', '$extend', '$each', '$flatten', '$callbacks_for', '$class', '$is_a?', '$instance_exec', '$to_proc', '$send', '$define_singleton_method', '$set_var', '$<<', '$push', '$when_file_updates', '$delete_if', '$equal?', '$call', '$+', '$respond_to?', '$superclass', '$any?']); + Opal.add_stubs(['$extend', '$each', '$flatten', '$callbacks_for', '$class', '$is_a?', '$method', '$send', '$define_singleton_method', '$set_var', '$lambda', '$instance_exec', '$to_proc', '$<<', '$push', '$when_file_updates', '$delete_if', '$equal?', '$call', '$+', '$respond_to?', '$superclass', '$any?']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Callbacks, self = $Callbacks = $module($base, 'Callbacks'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Callbacks'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Callbacks_included_1, TMP_Callbacks_run_callback_3; + var $nesting = [self].concat($parent_nesting), $Callbacks_included$1, $Callbacks_run_callback$2; - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; - Opal.defs(self, '$included', TMP_Callbacks_included_1 = function $$included(base) { + nil; + Opal.defs(self, '$included', $Callbacks_included$1 = function $$included(base) { var self = this; - return base.$extend(Opal.const_get_relative($nesting, 'ClassMethods')) - }, TMP_Callbacks_included_1.$$arity = 1); + return base.$extend($$($nesting, 'ClassMethods')) + }, $Callbacks_included$1.$$arity = 1); - Opal.defn(self, '$run_callback', TMP_Callbacks_run_callback_3 = function $$run_callback(name, $a_rest) { - var TMP_2, self = this, args, $iter = TMP_Callbacks_run_callback_3.$$p, $yield = $iter || nil; + Opal.def(self, '$run_callback', $Callbacks_run_callback$2 = function $$run_callback(name, $a) { + var $post_args, args, $$3, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Callbacks_run_callback_3.$$p = null; - $send(self.$class().$callbacks_for(name).$flatten(), 'each', [], (TMP_2 = function(callback){var self = TMP_2.$$s || this, result = nil; -if (callback == null) callback = nil; - result = (function() {if ($truthy(callback['$is_a?'](Opal.const_get_relative($nesting, 'Proc')))) { - return $send(self, 'instance_exec', Opal.to_a(args), callback.$to_proc()) - } else { - return $send(self, 'send', [callback].concat(Opal.to_a(args))) - }; return nil; })(); - if (($yield !== nil)) { - return (args = Opal.yield1($yield, result)) - } else { - return nil - };}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + $send(self.$class().$callbacks_for(name).$flatten(), 'each', [], ($$3 = function(callback){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (callback == null) { + callback = nil; + }; + if ($truthy(callback['$is_a?']($$($nesting, 'Proc')))) { + } else { + callback = self.$method(callback) + }; + return (args = $send(self.$class(), 'send', ["" + "_" + (name) + "_before_call_hook", name, self, callback].concat(Opal.to_a(args))));}, $$3.$$s = self, $$3.$$arity = 1, $$3)); return args; - }, TMP_Callbacks_run_callback_3.$$arity = -2); - (function($base, $parent_nesting) { - var $ClassMethods, self = $ClassMethods = $module($base, 'ClassMethods'); + }, $Callbacks_run_callback$2.$$arity = -2); + return (function($base, $parent_nesting) { + var self = $module($base, 'ClassMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassMethods_define_callback_4, TMP_ClassMethods_callbacks_for_10, TMP_ClassMethods_callbacks$q_11; + var $nesting = [self].concat($parent_nesting), $ClassMethods_define_callback$4, $ClassMethods_callbacks_for$11, $ClassMethods_callbacks$ques$12; - Opal.defn(self, '$define_callback', TMP_ClassMethods_define_callback_4 = function $$define_callback(callback_name) { - var TMP_5, TMP_7, self = this, $iter = TMP_ClassMethods_define_callback_4.$$p, after_define_hook = $iter || nil, wrapper_name = nil; + Opal.def(self, '$define_callback', $ClassMethods_define_callback$4 = function $$define_callback(callback_name, $kwargs) { + var before_call_hook, after_define_hook, $$5, $$7, $$8, $iter = $ClassMethods_define_callback$4.$$p, $yield = $iter || nil, self = this, wrapper_name = nil, $ret_or_1 = nil; - if ($iter) TMP_ClassMethods_define_callback_4.$$p = null; + if ($iter) $ClassMethods_define_callback$4.$$p = null; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + before_call_hook = $kwargs.$$smap["before_call_hook"]; + if (before_call_hook == null) { + before_call_hook = nil + }; + + after_define_hook = $kwargs.$$smap["after_define_hook"]; + if (after_define_hook == null) { + after_define_hook = nil + }; wrapper_name = "" + "_" + (callback_name) + "_callbacks"; - $send(self, 'define_singleton_method', [wrapper_name], (TMP_5 = function(){var self = TMP_5.$$s || this, TMP_6; + $send(self, 'define_singleton_method', [wrapper_name], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s, $$6; - return $send(Opal.const_get_relative($nesting, 'Context'), 'set_var', [self, "" + "@" + (wrapper_name), $hash2(["force"], {"force": true})], (TMP_6 = function(){var self = TMP_6.$$s || this; + return $send($$($nesting, 'Context'), 'set_var', [self, "" + "@" + (wrapper_name), $hash2(["force"], {"force": true})], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; - return []}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6))}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5)); - return $send(self, 'define_singleton_method', [callback_name], (TMP_7 = function($a_rest){var self = TMP_7.$$s || this, block, args, TMP_8; + return []}, $$6.$$s = self, $$6.$$arity = 0, $$6))}, $$5.$$s = self, $$5.$$arity = 0, $$5)); + before_call_hook = (function() {if ($truthy(($ret_or_1 = before_call_hook))) { + return $ret_or_1 + } else { + return $send(self, 'lambda', [], ($$7 = function(_name, sself, proc, $a){var self = $$7.$$s == null ? this : $$7.$$s, $post_args, args; - block = TMP_7.$$p || nil; - if (block) TMP_7.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - + + + if (_name == null) { + _name = nil; + }; + + if (sself == null) { + sself = nil; + }; + + if (proc == null) { + proc = nil; + }; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + $send(sself, 'instance_exec', Opal.to_a(args), proc.$to_proc()); + return args;}, $$7.$$s = self, $$7.$$arity = -4, $$7)) + }; return nil; })(); + $send(self, 'define_singleton_method', ["" + "_" + (callback_name) + "_before_call_hook"], before_call_hook.$to_proc()); + return $send(self, 'define_singleton_method', [callback_name], ($$8 = function($a){var self = $$8.$$s == null ? this : $$8.$$s, $iter = $$8.$$p, block = $iter || nil, $post_args, args, $$9; + + + + if ($iter) $$8.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ((block !== nil)) { args['$<<'](block)}; self.$send(wrapper_name).$push(args); - $send(Opal.const_get_relative($nesting, 'Hotloader'), 'when_file_updates', [], (TMP_8 = function(){var self = TMP_8.$$s || this, TMP_9; + $send($$($nesting, 'Hotloader'), 'when_file_updates', [], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s, $$10; + + return $send(self.$send(wrapper_name), 'delete_if', [], ($$10 = function(item){var self = $$10.$$s == null ? this : $$10.$$s; - return $send(self.$send(wrapper_name), 'delete_if', [], (TMP_9 = function(item){var self = TMP_9.$$s || this; -if (item == null) item = nil; - return item['$equal?'](args)}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9))}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8)); + + + if (item == null) { + item = nil; + }; + return item['$equal?'](args);}, $$10.$$s = self, $$10.$$arity = 1, $$10))}, $$9.$$s = self, $$9.$$arity = 0, $$9)); if ($truthy(after_define_hook)) { - return $send(after_define_hook, 'call', Opal.to_a(args), block.$to_proc()) - } else { + return after_define_hook.$call(self) + } else { return nil - };}, TMP_7.$$s = self, TMP_7.$$arity = -1, TMP_7)); - }, TMP_ClassMethods_define_callback_4.$$arity = 1); + };}, $$8.$$s = self, $$8.$$arity = -1, $$8)); + }, $ClassMethods_define_callback$4.$$arity = -2); - Opal.defn(self, '$callbacks_for', TMP_ClassMethods_callbacks_for_10 = function $$callbacks_for(callback_name) { + Opal.def(self, '$callbacks_for', $ClassMethods_callbacks_for$11 = function $$callbacks_for(callback_name) { var self = this, wrapper_name = nil; wrapper_name = "" + "_" + (callback_name) + "_callbacks"; return $rb_plus((function() {if ($truthy(self.$superclass()['$respond_to?']("callbacks_for"))) { return self.$superclass().$callbacks_for(callback_name) - } else { + } else { return [] }; return nil; })(), self.$send(wrapper_name)); - }, TMP_ClassMethods_callbacks_for_10.$$arity = 1); - - Opal.defn(self, '$callbacks?', TMP_ClassMethods_callbacks$q_11 = function(name) { + }, $ClassMethods_callbacks_for$11.$$arity = 1); + return (Opal.def(self, '$callbacks?', $ClassMethods_callbacks$ques$12 = function(name) { var self = this; return self.$callbacks_for(name)['$any?']() - }, TMP_ClassMethods_callbacks$q_11.$$arity = 1); + }, $ClassMethods_callbacks$ques$12.$$arity = 1), nil) && 'callbacks?'; })($nesting[0], $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/auto_unmount"] = function(Opal) { +Opal.modules["hyperstack/internal/auto_unmount"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$include', '$class_eval', '$define_callback', '$run_callback', '$each', '$[]', '$objects_to_unmount', '$to_proc', '$delete', '$instance_variables', '$instance_variable_get', '$respond_to?', '$unmount', '$==', '$unmounted?', '$tap', '$define_singleton_method', '$abort', '$<<', '$new', '$[]=', '$-']); + Opal.add_stubs(['$include', '$class_eval', '$define_callback', '$run_callback', '$each', '$[]', '$objects_to_unmount', '$to_proc', '$delete', '$instance_variables', '$instance_variable_get', '$respond_to?', '$unmount', '$unmounted?', '$tap', '$define_singleton_method', '$abort', '$<<', '$new', '$[]=', '$-']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $AutoUnmount, self = $AutoUnmount = $module($base, 'AutoUnmount'); + return (function($base, $parent_nesting) { + var self = $module($base, 'AutoUnmount'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_AutoUnmount_included_2, TMP_AutoUnmount_unmounted$q_3, TMP_AutoUnmount_unmount_5, TMP_AutoUnmount_every_6, TMP_AutoUnmount_after_9; + var $nesting = [self].concat($parent_nesting), $AutoUnmount_included$1, $AutoUnmount_unmounted$ques$3, $AutoUnmount_unmount$4, $AutoUnmount_every$6, $AutoUnmount_after$9; - Opal.defs(self, '$included', TMP_AutoUnmount_included_2 = function $$included(base) { - var TMP_1, self = this; + Opal.defs(self, '$included', $AutoUnmount_included$1 = function $$included(base) { + var $$2, self = this; - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Callbacks')); - return $send(base, 'class_eval', [], (TMP_1 = function(){var self = TMP_1.$$s || this; + base.$include($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Callbacks')); + return $send(base, 'class_eval', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - return self.$define_callback("before_unmount")}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); - }, TMP_AutoUnmount_included_2.$$arity = 1); + return self.$define_callback("before_unmount")}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + }, $AutoUnmount_included$1.$$arity = 1); - Opal.defn(self, '$unmounted?', TMP_AutoUnmount_unmounted$q_3 = function() { + Opal.def(self, '$unmounted?', $AutoUnmount_unmounted$ques$3 = function() { var self = this; if (self.__hyperstack_internal_auto_unmount_unmounted == null) self.__hyperstack_internal_auto_unmount_unmounted = nil; return self.__hyperstack_internal_auto_unmount_unmounted - }, TMP_AutoUnmount_unmounted$q_3.$$arity = 0); + }, $AutoUnmount_unmounted$ques$3.$$arity = 0); - Opal.defn(self, '$unmount', TMP_AutoUnmount_unmount_5 = function $$unmount() { - var TMP_4, self = this; + Opal.def(self, '$unmount', $AutoUnmount_unmount$4 = function $$unmount() { + var $$5, self = this; self.$run_callback("before_unmount"); - $send(Opal.const_get_relative($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self), 'each', [], "unmount".$to_proc()); - Opal.const_get_relative($nesting, 'AutoUnmount').$objects_to_unmount().$delete(self); - $send(self.$instance_variables(), 'each', [], (TMP_4 = function(var$){var self = TMP_4.$$s || this, val = nil; -if (var$ == null) var$ = nil; - + $send($$($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self), 'each', [], "unmount".$to_proc()); + $$($nesting, 'AutoUnmount').$objects_to_unmount().$delete(self); + $send(self.$instance_variables(), 'each', [], ($$5 = function(var$){var self = $$5.$$s == null ? this : $$5.$$s, val = nil; + + + + if (var$ == null) { + var$ = nil; + }; val = self.$instance_variable_get(var$); try { if ($truthy(val['$respond_to?']("unmount"))) { return val.$unmount() - } else { + } else { return nil } } catch ($err) { - if (Opal.rescue($err, [(function() {if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'JS'), 'Error') - } else { - return nil - }; return nil; })()])) { + if (Opal.rescue($err, [$$$($$($nesting, 'JS'), 'Error')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - };;}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); + };;}, $$5.$$s = self, $$5.$$arity = 1, $$5)); return (self.__hyperstack_internal_auto_unmount_unmounted = true); - }, TMP_AutoUnmount_unmount_5.$$arity = 0); + }, $AutoUnmount_unmount$4.$$arity = 0); - Opal.defn(self, '$every', TMP_AutoUnmount_every_6 = function $$every($a_rest) { - var TMP_7, self = this, args, $iter = TMP_AutoUnmount_every_6.$$p, block = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$every', $AutoUnmount_every$6 = function $$every($a) { + var $iter = $AutoUnmount_every$6.$$p, block = $iter || nil, $post_args, args, $$7, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_AutoUnmount_every_6.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $AutoUnmount_every$6.$$p = null; + + + if ($iter) $AutoUnmount_every$6.$$p = null;; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ($truthy(self['$unmounted?']())) { return nil}; - return $send($send(self, Opal.find_super_dispatcher(self, 'every', TMP_AutoUnmount_every_6, false), $zuper, $iter), 'tap', [], (TMP_7 = function(id){var self = TMP_7.$$s || this, TMP_8, sself = nil; -if (id == null) id = nil; - + return $send($send2(self, $find_super(self, 'every', $AutoUnmount_every$6, false, true), 'every', Opal.to_a(args), $iter), 'tap', [], ($$7 = function(id){var self = $$7.$$s == null ? this : $$7.$$s, $$8, sself = nil; + + + + if (id == null) { + id = nil; + }; sself = self; - $send(id, 'define_singleton_method', ["unmount"], (TMP_8 = function(){var self = TMP_8.$$s || this; + $send(id, 'define_singleton_method', ["unmount"], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; - return self.$abort()}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8)); - return Opal.const_get_relative($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self)['$<<'](id);}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); - }, TMP_AutoUnmount_every_6.$$arity = -1); + return self.$abort()}, $$8.$$s = self, $$8.$$arity = 0, $$8)); + return $$($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self)['$<<'](id);}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + }, $AutoUnmount_every$6.$$arity = -1); - Opal.defn(self, '$after', TMP_AutoUnmount_after_9 = function $$after($a_rest) { - var TMP_10, self = this, args, $iter = TMP_AutoUnmount_after_9.$$p, block = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$after', $AutoUnmount_after$9 = function $$after($a) { + var $iter = $AutoUnmount_after$9.$$p, block = $iter || nil, $post_args, args, $$10, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_AutoUnmount_after_9.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $AutoUnmount_after$9.$$p = null; + + if ($iter) $AutoUnmount_after$9.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ($truthy(self['$unmounted?']())) { return nil}; - return $send($send(self, Opal.find_super_dispatcher(self, 'after', TMP_AutoUnmount_after_9, false), $zuper, $iter), 'tap', [], (TMP_10 = function(id){var self = TMP_10.$$s || this, TMP_11, sself = nil; -if (id == null) id = nil; - + return $send($send2(self, $find_super(self, 'after', $AutoUnmount_after$9, false, true), 'after', Opal.to_a(args), $iter), 'tap', [], ($$10 = function(id){var self = $$10.$$s == null ? this : $$10.$$s, $$11, sself = nil; + + + + if (id == null) { + id = nil; + }; sself = self; - $send(id, 'define_singleton_method', ["unmount"], (TMP_11 = function(){var self = TMP_11.$$s || this; + $send(id, 'define_singleton_method', ["unmount"], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; - return self.$abort()}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11)); - return Opal.const_get_relative($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self)['$<<'](id);}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)); - }, TMP_AutoUnmount_after_9.$$arity = -1); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_objects_to_unmount_13; + return self.$abort()}, $$11.$$s = self, $$11.$$arity = 0, $$11)); + return $$($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](self)['$<<'](id);}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + }, $AutoUnmount_after$9.$$arity = -1); + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $objects_to_unmount$12; - return (Opal.defn(self, '$objects_to_unmount', TMP_objects_to_unmount_13 = function $$objects_to_unmount() { - var $a, TMP_12, self = this; + return (Opal.def(self, '$objects_to_unmount', $objects_to_unmount$12 = function $$objects_to_unmount() { + var $$13, self = this, $ret_or_1 = nil; if (self.objects_to_unmount == null) self.objects_to_unmount = nil; - return (self.objects_to_unmount = ($truthy($a = self.objects_to_unmount) ? $a : $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_12 = function(h, k){var self = TMP_12.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - - $writer = [k, Opal.const_get_relative($nesting, 'Set').$new()]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12)))) - }, TMP_objects_to_unmount_13.$$arity = 0), nil) && 'objects_to_unmount' + return (self.objects_to_unmount = (function() {if ($truthy(($ret_or_1 = self.objects_to_unmount))) { + return $ret_or_1 + } else { + return $send($$($nesting, 'Hash'), 'new', [], ($$13 = function(h, k){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, $$($nesting, 'Set').$new()]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$13.$$s = self, $$13.$$arity = 2, $$13)) + }; return nil; })()) + }, $objects_to_unmount$12.$$arity = 0), nil) && 'objects_to_unmount' })(Opal.get_singleton_class(self), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/state/observer"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["hyperstack/state/observer"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $send = Opal.send; Opal.add_stubs(['$observing', '$to_proc', '$update_objects_to_observe', '$remove']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $State, self = $State = $module($base, 'State'); + return (function($base, $parent_nesting) { + var self = $module($base, 'State'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Observer, self = $Observer = $module($base, 'Observer'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Observer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Observer_observing_1, TMP_Observer_update_objects_to_observe_2, TMP_Observer_remove_3; + var $nesting = [self].concat($parent_nesting), $Observer_observing$1, $Observer_update_objects_to_observe$2, $Observer_remove$3; - Opal.defn(self, '$observing', TMP_Observer_observing_1 = function $$observing($kwargs) { - var self = this, immediate_update, rendering, update_objects, $iter = TMP_Observer_observing_1.$$p, block = $iter || nil; + Opal.def(self, '$observing', $Observer_observing$1 = function $$observing($kwargs) { + var $iter = $Observer_observing$1.$$p, block = $iter || nil, immediate_update, rendering, update_objects, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + if ($iter) $Observer_observing$1.$$p = null; + + + if ($iter) $Observer_observing$1.$$p = null;; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + immediate_update = $kwargs.$$smap["immediate_update"]; if (immediate_update == null) { immediate_update = false - } + }; + rendering = $kwargs.$$smap["rendering"]; if (rendering == null) { rendering = false - } + }; + update_objects = $kwargs.$$smap["update_objects"]; if (update_objects == null) { update_objects = false - } - if ($iter) TMP_Observer_observing_1.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper'), 'observing', [self, immediate_update, rendering, update_objects], block.$to_proc()) - }, TMP_Observer_observing_1.$$arity = -1); + }; + return $send($$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper'), 'observing', [self, immediate_update, rendering, update_objects], block.$to_proc()); + }, $Observer_observing$1.$$arity = -1); - Opal.defn(self, '$update_objects_to_observe', TMP_Observer_update_objects_to_observe_2 = function $$update_objects_to_observe() { + Opal.def(self, '$update_objects_to_observe', $Observer_update_objects_to_observe$2 = function $$update_objects_to_observe() { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper').$update_objects_to_observe(self) - }, TMP_Observer_update_objects_to_observe_2.$$arity = 0); - - Opal.defn(self, '$remove', TMP_Observer_remove_3 = function $$remove() { + return $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper').$update_objects_to_observe(self) + }, $Observer_update_objects_to_observe$2.$$arity = 0); + return (Opal.def(self, '$remove', $Observer_remove$3 = function $$remove() { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper').$remove(self) - }, TMP_Observer_remove_3.$$arity = 0); + return $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper').$remove(self) + }, $Observer_remove$3.$$arity = 0), nil) && 'remove'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/validator"] = function(Opal) { +Opal.modules["hyperstack/internal/component/validator"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$attr_accessor', '$attr_reader', '$private', '$tap', '$new', '$each', '$instance_variable_set', '$dup', '$instance_variable_get', '$build', '$to_proc', '$instance_eval', '$[]=', '$-', '$define_rule', '$coerce_native_hash_values', '$rules', '$define_all_others', '$props_wrapper', '$reject', '$[]', '$errors=', '$allow_undefined_props?', '$validate_undefined', '$defined_props', '$validate_required', '$validate_types', '$validate_allowed', '$errors', '$inject', '$select', '$include?', '$keys', '$!', '$define_param', '$is_a?', '$type_check', '$>', '$length', '$validate_value_array', '$nil?', '$respond_to?', '$_react_param_conversion', '$<<', '$each_with_index', '$Native']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Validator(){}; - var self = $Validator = $klass($base, $super, 'Validator', $Validator); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Validator'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Validator_copy_3, TMP_Validator_initialize_4, TMP_Validator_build_5, TMP_Validator_build_6, TMP_Validator_requires_7, TMP_Validator_optional_8, TMP_Validator_event_9, TMP_Validator_all_other_params_12, TMP_Validator_validate_14, TMP_Validator_default_props_17, TMP_Validator_defined_props_19, TMP_Validator_allow_undefined_props$q_20, TMP_Validator_rules_21, TMP_Validator_define_rule_22, TMP_Validator_errors_23, TMP_Validator_validate_types_24, TMP_Validator_type_check_25, TMP_Validator_validate_allowed_26, TMP_Validator_validate_required_28, TMP_Validator_validate_undefined_30, TMP_Validator_validate_value_array_32, TMP_Validator_coerce_native_hash_values_34; + var $nesting = [self].concat($parent_nesting), $Validator_copy$1, $Validator_initialize$4, $Validator_build$5, $Validator_build$6, $Validator_requires$7, $Validator_optional$8, $Validator_event$9, $Validator_all_other_params$10, $Validator_validate$13, $Validator_default_props$15, $Validator_defined_props$18, $Validator_allow_undefined_props$ques$20, $Validator_rules$21, $Validator_define_rule$22, $Validator_errors$23, $Validator_validate_types$24, $Validator_type_check$25, $Validator_validate_allowed$26, $Validator_validate_required$27, $Validator_validate_undefined$29, $Validator_validate_value_array$31, $Validator_coerce_native_hash_values$33; - def.allow_undefined_props = def.rules = def.errors = nil; + self.$$prototype.allow_undefined_props = self.$$prototype.rules = self.$$prototype.errors = nil; self.$attr_accessor("errors"); self.$attr_reader("props_wrapper"); self.$private("errors", "props_wrapper"); - Opal.defn(self, '$copy', TMP_Validator_copy_3 = function $$copy(new_props_wrapper) { - var TMP_1, self = this; + Opal.def(self, '$copy', $Validator_copy$1 = function $$copy(new_props_wrapper) { + var $$2, self = this; + + return $send($$($nesting, 'Validator').$new(new_props_wrapper), 'tap', [], ($$2 = function(c){var self = $$2.$$s == null ? this : $$2.$$s, $$3; + + + + if (c == null) { + c = nil; + }; + return $send(["@allow_undefined_props", "@rules", "@errors"], 'each', [], ($$3 = function(var$){var self = $$3.$$s == null ? this : $$3.$$s; - return $send(Opal.const_get_relative($nesting, 'Validator').$new(new_props_wrapper), 'tap', [], (TMP_1 = function(c){var self = TMP_1.$$s || this, TMP_2; -if (c == null) c = nil; - return $send(["@allow_undefined_props", "@rules", "@errors"], 'each', [], (TMP_2 = function(var$){var self = TMP_2.$$s || this; -if (var$ == null) var$ = nil; - return c.$instance_variable_set(var$, self.$instance_variable_get(var$).$dup())}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2))}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)) - }, TMP_Validator_copy_3.$$arity = 1); + + + if (var$ == null) { + var$ = nil; + }; + return c.$instance_variable_set(var$, self.$instance_variable_get(var$).$dup());}, $$3.$$s = self, $$3.$$arity = 1, $$3));}, $$2.$$s = self, $$2.$$arity = 1, $$2)) + }, $Validator_copy$1.$$arity = 1); - Opal.defn(self, '$initialize', TMP_Validator_initialize_4 = function $$initialize(props_wrapper) { + Opal.def(self, '$initialize', $Validator_initialize$4 = function $$initialize(props_wrapper) { var self = this; + + if (props_wrapper == null) { - props_wrapper = Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'PropsWrapper')); - } - return (self.props_wrapper = props_wrapper) - }, TMP_Validator_initialize_4.$$arity = -1); - Opal.defs(self, '$build', TMP_Validator_build_5 = function $$build() { - var self = this, $iter = TMP_Validator_build_5.$$p, block = $iter || nil; + props_wrapper = $$($nesting, 'Class').$new($$($nesting, 'PropsWrapper')); + }; + return (self.props_wrapper = props_wrapper); + }, $Validator_initialize$4.$$arity = -1); + Opal.defs(self, '$build', $Validator_build$5 = function $$build() { + var $iter = $Validator_build$5.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Validator_build_5.$$p = null; - return $send(self.$new(), 'build', [], block.$to_proc()) - }, TMP_Validator_build_5.$$arity = 0); + if ($iter) $Validator_build$5.$$p = null; + + + if ($iter) $Validator_build$5.$$p = null;; + return $send(self.$new(), 'build', [], block.$to_proc()); + }, $Validator_build$5.$$arity = 0); - Opal.defn(self, '$build', TMP_Validator_build_6 = function $$build() { - var self = this, $iter = TMP_Validator_build_6.$$p, block = $iter || nil; + Opal.def(self, '$build', $Validator_build$6 = function $$build() { + var $iter = $Validator_build$6.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Validator_build_6.$$p = null; + if ($iter) $Validator_build$6.$$p = null; + + if ($iter) $Validator_build$6.$$p = null;; $send(self, 'instance_eval', [], block.$to_proc()); return self; - }, TMP_Validator_build_6.$$arity = 0); + }, $Validator_build$6.$$arity = 0); - Opal.defn(self, '$requires', TMP_Validator_requires_7 = function $$requires(name, options) { + Opal.def(self, '$requires', $Validator_requires$7 = function $$requires(name, options) { var self = this, $writer = nil; + + if (options == null) { options = $hash2([], {}); - } - + }; $writer = ["required", true]; $send(options, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$define_rule(name, options); - }, TMP_Validator_requires_7.$$arity = -2); + }, $Validator_requires$7.$$arity = -2); - Opal.defn(self, '$optional', TMP_Validator_optional_8 = function $$optional(name, options) { + Opal.def(self, '$optional', $Validator_optional$8 = function $$optional(name, options) { var self = this, $writer = nil; + + if (options == null) { options = $hash2([], {}); - } - + }; $writer = ["required", false]; $send(options, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$define_rule(name, options); - }, TMP_Validator_optional_8.$$arity = -2); + }, $Validator_optional$8.$$arity = -2); - Opal.defn(self, '$event', TMP_Validator_event_9 = function $$event(name) { + Opal.def(self, '$event', $Validator_event$9 = function $$event(name) { var self = this, $writer = nil; - $writer = [name, self.$coerce_native_hash_values($hash2(["default", "type", "allow_nil"], {"default": nil, "type": Opal.const_get_relative($nesting, 'Proc'), "allow_nil": true}))]; + $writer = [name, self.$coerce_native_hash_values($hash2(["default", "type", "allow_nil"], {"default": nil, "type": $$($nesting, 'Proc'), "allow_nil": true}))]; $send(self.$rules(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_Validator_event_9.$$arity = 1); + }, $Validator_event$9.$$arity = 1); - Opal.defn(self, '$all_other_params', TMP_Validator_all_other_params_12 = function $$all_other_params(name) { - var TMP_10, self = this; + Opal.def(self, '$all_other_params', $Validator_all_other_params$10 = function $$all_other_params(name) { + var $$11, self = this; self.allow_undefined_props = true; - return $send(self.$props_wrapper(), 'define_all_others', [name], (TMP_10 = function(props){var self = TMP_10.$$s || this, TMP_11; -if (props == null) props = nil; - return $send(props, 'reject', [], (TMP_11 = function(name, value){var self = TMP_11.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return self.$rules()['$[]'](name)}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11))}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)); - }, TMP_Validator_all_other_params_12.$$arity = 1); + return $send(self.$props_wrapper(), 'define_all_others', [name], ($$11 = function(props){var self = $$11.$$s == null ? this : $$11.$$s, $$12; + + + + if (props == null) { + props = nil; + }; + return $send(props, 'reject', [], ($$12 = function(name, value){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return self.$rules()['$[]'](name);}, $$12.$$s = self, $$12.$$arity = 2, $$12));}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + }, $Validator_all_other_params$10.$$arity = 1); - Opal.defn(self, '$validate', TMP_Validator_validate_14 = function $$validate(props) { - var TMP_13, self = this, $writer = nil; + Opal.def(self, '$validate', $Validator_validate$13 = function $$validate(props) { + var $$14, self = this, $writer = nil; @@ -19258,379 +21031,525 @@ if (name == null) name = nil;if (value == null) value = nil; $send(self, 'errors=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(self['$allow_undefined_props?']())) { - } else { + } else { self.$validate_undefined(props) }; props = self.$coerce_native_hash_values(self.$defined_props(props)); self.$validate_required(props); - $send(props, 'each', [], (TMP_13 = function(name, value){var self = TMP_13.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - + $send(props, 'each', [], ($$14 = function(name, value){var self = $$14.$$s == null ? this : $$14.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; self.$validate_types(name, value); - return self.$validate_allowed(name, value);}, TMP_13.$$s = self, TMP_13.$$arity = 2, TMP_13)); + return self.$validate_allowed(name, value);}, $$14.$$s = self, $$14.$$arity = 2, $$14)); return self.$errors(); - }, TMP_Validator_validate_14.$$arity = 1); + }, $Validator_validate$13.$$arity = 1); - Opal.defn(self, '$default_props', TMP_Validator_default_props_17 = function $$default_props() { - var TMP_15, TMP_16, self = this; + Opal.def(self, '$default_props', $Validator_default_props$15 = function $$default_props() { + var $$16, $$17, self = this; - return $send($send(self.$rules(), 'select', [], (TMP_15 = function(key, value){var self = TMP_15.$$s || this; -if (key == null) key = nil;if (value == null) value = nil; - return value.$keys()['$include?']("default")}, TMP_15.$$s = self, TMP_15.$$arity = 2, TMP_15)), 'inject', [$hash2([], {})], (TMP_16 = function(memo, $a){var self = TMP_16.$$s || this, $a_args, k, v, $writer = nil; + return $send($send(self.$rules(), 'select', [], ($$16 = function(key, value){var self = $$16.$$s == null ? this : $$16.$$s; - if ($a == null) { - $a = nil; - } - $a = Opal.to_ary($a); - $a_args = Opal.slice.call($a, 0, $a.length); - k = $a_args.splice(0,1)[0]; - if (k == null) { - k = nil; - } - v = $a_args.splice(0,1)[0]; - if (v == null) { - v = nil; - }if (memo == null) memo = nil; - - $writer = [k, v['$[]']("default")]; + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + return value.$keys()['$include?']("default");}, $$16.$$s = self, $$16.$$arity = 2, $$16)), 'inject', [$hash2([], {})], ($$17 = function(memo, $mlhs_tmp1){var self = $$17.$$s == null ? this : $$17.$$s, $a, $b, k = nil, v = nil, $writer = nil; + + + + if (memo == null) { + memo = nil; + }; + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; + }; + $b = $mlhs_tmp1, $a = Opal.to_ary($b), (k = ($a[0] == null ? nil : $a[0])), (v = ($a[1] == null ? nil : $a[1])), $b; + + $writer = [k, v['$[]']("default")]; $send(memo, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return memo;}, TMP_16.$$s = self, TMP_16.$$arity = 2, TMP_16.$$has_top_level_mlhs_arg = true, TMP_16)) - }, TMP_Validator_default_props_17.$$arity = 0); + return memo;}, $$17.$$s = self, $$17.$$arity = 2, $$17.$$has_top_level_mlhs_arg = true, $$17)) + }, $Validator_default_props$15.$$arity = 0); self.$private(); - Opal.defn(self, '$defined_props', TMP_Validator_defined_props_19 = function $$defined_props(props) { - var TMP_18, self = this; + Opal.def(self, '$defined_props', $Validator_defined_props$18 = function $$defined_props(props) { + var $$19, self = this; - return $send(props, 'select', [], (TMP_18 = function(name){var self = TMP_18.$$s || this; -if (name == null) name = nil; - return self.$rules().$keys()['$include?'](name)}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)) - }, TMP_Validator_defined_props_19.$$arity = 1); + return $send(props, 'select', [], ($$19 = function(name){var self = $$19.$$s == null ? this : $$19.$$s; + + + + if (name == null) { + name = nil; + }; + return self.$rules().$keys()['$include?'](name);}, $$19.$$s = self, $$19.$$arity = 1, $$19)) + }, $Validator_defined_props$18.$$arity = 1); - Opal.defn(self, '$allow_undefined_props?', TMP_Validator_allow_undefined_props$q_20 = function() { + Opal.def(self, '$allow_undefined_props?', $Validator_allow_undefined_props$ques$20 = function() { var self = this; return self.allow_undefined_props['$!']()['$!']() - }, TMP_Validator_allow_undefined_props$q_20.$$arity = 0); + }, $Validator_allow_undefined_props$ques$20.$$arity = 0); - Opal.defn(self, '$rules', TMP_Validator_rules_21 = function $$rules() { - var $a, self = this; + Opal.def(self, '$rules', $Validator_rules$21 = function $$rules() { + var self = this, $ret_or_1 = nil; - return (self.rules = ($truthy($a = self.rules) ? $a : $hash2(["children"], {"children": $hash2(["required"], {"required": false})}))) - }, TMP_Validator_rules_21.$$arity = 0); + return (self.rules = (function() {if ($truthy(($ret_or_1 = self.rules))) { + return $ret_or_1 + } else { + return $hash2(["children"], {"children": $hash2(["required"], {"required": false})}) + }; return nil; })()) + }, $Validator_rules$21.$$arity = 0); - Opal.defn(self, '$define_rule', TMP_Validator_define_rule_22 = function $$define_rule(name, options) { + Opal.def(self, '$define_rule', $Validator_define_rule$22 = function $$define_rule(name, options) { var self = this, $writer = nil; + + if (options == null) { options = $hash2([], {}); - } - + }; $writer = [name, self.$coerce_native_hash_values(options)]; $send(self.$rules(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$props_wrapper().$define_param(name, options['$[]']("type"), options['$[]']("alias")); - }, TMP_Validator_define_rule_22.$$arity = -2); + }, $Validator_define_rule$22.$$arity = -2); - Opal.defn(self, '$errors', TMP_Validator_errors_23 = function $$errors() { - var $a, self = this; + Opal.def(self, '$errors', $Validator_errors$23 = function $$errors() { + var self = this, $ret_or_2 = nil; - return (self.errors = ($truthy($a = self.errors) ? $a : [])) - }, TMP_Validator_errors_23.$$arity = 0); + return (self.errors = (function() {if ($truthy(($ret_or_2 = self.errors))) { + return $ret_or_2 + } else { + return [] + }; return nil; })()) + }, $Validator_errors$23.$$arity = 0); - Opal.defn(self, '$validate_types', TMP_Validator_validate_types_24 = function $$validate_types(prop_name, value) { + Opal.def(self, '$validate_types', $Validator_validate_types$24 = function $$validate_types(prop_name, value) { var self = this, klass = nil, allow_nil = nil; if ($truthy((klass = self.$rules()['$[]'](prop_name)['$[]']("type")))) { - } else { + } else { return nil }; - if ($truthy(klass['$is_a?'](Opal.const_get_relative($nesting, 'Array'))['$!']())) { + if ($truthy(klass['$is_a?']($$($nesting, 'Array'))['$!']())) { allow_nil = self.$rules()['$[]'](prop_name)['$[]']("allow_nil")['$!']()['$!'](); return self.$type_check("" + "`" + (prop_name) + "`", value, klass, allow_nil); } else if ($truthy($rb_gt(klass.$length(), 0))) { return self.$validate_value_array(prop_name, value) - } else { + } else { allow_nil = self.$rules()['$[]'](prop_name)['$[]']("allow_nil")['$!']()['$!'](); - return self.$type_check("" + "`" + (prop_name) + "`", value, Opal.const_get_relative($nesting, 'Array'), allow_nil); + return self.$type_check("" + "`" + (prop_name) + "`", value, $$($nesting, 'Array'), allow_nil); }; - }, TMP_Validator_validate_types_24.$$arity = 2); + }, $Validator_validate_types$24.$$arity = 2); - Opal.defn(self, '$type_check', TMP_Validator_type_check_25 = function $$type_check(prop_name, value, klass, allow_nil) { - var $a, self = this; + Opal.def(self, '$type_check', $Validator_type_check$25 = function $$type_check(prop_name, value, klass, allow_nil) { + var self = this, $ret_or_3 = nil, $ret_or_4 = nil; - if ($truthy(($truthy($a = allow_nil) ? value['$nil?']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = allow_nil))) { + return value['$nil?']() + } else { + return $ret_or_3 + }; return nil; })())) { return nil}; if ($truthy(value['$is_a?'](klass))) { return nil}; - if ($truthy(($truthy($a = klass['$respond_to?']("_react_param_conversion")) ? klass.$_react_param_conversion(value, "validate_only") : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = klass['$respond_to?']("_react_param_conversion")))) { + return klass.$_react_param_conversion(value, "validate_only") + } else { + return $ret_or_4 + }; return nil; })())) { return nil}; return self.$errors()['$<<']("" + "Provided prop " + (prop_name) + " could not be converted to " + (klass)); - }, TMP_Validator_type_check_25.$$arity = 4); + }, $Validator_type_check$25.$$arity = 4); - Opal.defn(self, '$validate_allowed', TMP_Validator_validate_allowed_26 = function $$validate_allowed(prop_name, value) { + Opal.def(self, '$validate_allowed', $Validator_validate_allowed$26 = function $$validate_allowed(prop_name, value) { var self = this, values = nil; if ($truthy((values = self.$rules()['$[]'](prop_name)['$[]']("values")))) { - } else { + } else { return nil }; if ($truthy(values['$include?'](value))) { return nil}; return self.$errors()['$<<']("" + "Value `" + (value) + "` for prop `" + (prop_name) + "` is not an allowed value"); - }, TMP_Validator_validate_allowed_26.$$arity = 2); + }, $Validator_validate_allowed$26.$$arity = 2); - Opal.defn(self, '$validate_required', TMP_Validator_validate_required_28 = function $$validate_required(props) { - var TMP_27, self = this; + Opal.def(self, '$validate_required', $Validator_validate_required$27 = function $$validate_required(props) { + var $$28, self = this; - return $send($rb_minus(self.$rules().$keys(), props.$keys()), 'each', [], (TMP_27 = function(name){var self = TMP_27.$$s || this; -if (name == null) name = nil; - + return $send($rb_minus(self.$rules().$keys(), props.$keys()), 'each', [], ($$28 = function(name){var self = $$28.$$s == null ? this : $$28.$$s; + + + + if (name == null) { + name = nil; + }; if ($truthy(self.$rules()['$[]'](name)['$[]']("required"))) { - } else { + } else { return nil; }; - return self.$errors()['$<<']("" + "Required prop `" + (name) + "` was not specified");}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)) - }, TMP_Validator_validate_required_28.$$arity = 1); + return self.$errors()['$<<']("" + "Required prop `" + (name) + "` was not specified");}, $$28.$$s = self, $$28.$$arity = 1, $$28)) + }, $Validator_validate_required$27.$$arity = 1); - Opal.defn(self, '$validate_undefined', TMP_Validator_validate_undefined_30 = function $$validate_undefined(props) { - var TMP_29, self = this; + Opal.def(self, '$validate_undefined', $Validator_validate_undefined$29 = function $$validate_undefined(props) { + var $$30, self = this; + + return $send($rb_minus(props.$keys(), self.$rules().$keys()), 'each', [], ($$30 = function(prop_name){var self = $$30.$$s == null ? this : $$30.$$s; - return $send($rb_minus(props.$keys(), self.$rules().$keys()), 'each', [], (TMP_29 = function(prop_name){var self = TMP_29.$$s || this; -if (prop_name == null) prop_name = nil; - return self.$errors()['$<<']("" + "Provided prop `" + (prop_name) + "` not specified in spec")}, TMP_29.$$s = self, TMP_29.$$arity = 1, TMP_29)) - }, TMP_Validator_validate_undefined_30.$$arity = 1); + + + if (prop_name == null) { + prop_name = nil; + }; + return self.$errors()['$<<']("" + "Provided prop `" + (prop_name) + "` not specified in spec");}, $$30.$$s = self, $$30.$$arity = 1, $$30)) + }, $Validator_validate_undefined$29.$$arity = 1); - Opal.defn(self, '$validate_value_array', TMP_Validator_validate_value_array_32 = function $$validate_value_array(name, value) { - var TMP_31, self = this, klass = nil, allow_nil = nil; + Opal.def(self, '$validate_value_array', $Validator_validate_value_array$31 = function $$validate_value_array(name, value) { + var $$32, self = this, klass = nil, allow_nil = nil; try { klass = self.$rules()['$[]'](name)['$[]']("type"); allow_nil = self.$rules()['$[]'](name)['$[]']("allow_nil")['$!']()['$!'](); - return $send(value, 'each_with_index', [], (TMP_31 = function(item, index){var self = TMP_31.$$s || this; -if (item == null) item = nil;if (index == null) index = nil; - return self.$type_check("" + "`" + (name) + "`[" + (index) + "]", self.$Native(item), klass['$[]'](0), allow_nil)}, TMP_31.$$s = self, TMP_31.$$arity = 2, TMP_31)); + return $send(value, 'each_with_index', [], ($$32 = function(item, index){var self = $$32.$$s == null ? this : $$32.$$s; + + + + if (item == null) { + item = nil; + }; + + if (index == null) { + index = nil; + }; + return self.$type_check("" + "`" + (name) + "`[" + (index) + "]", self.$Native(item), klass['$[]'](0), allow_nil);}, $$32.$$s = self, $$32.$$arity = 2, $$32)); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NoMethodError')])) { + if (Opal.rescue($err, [$$($nesting, 'NoMethodError')])) { try { return self.$errors()['$<<']("" + "Provided prop `" + (name) + "` was not an Array") - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Validator_validate_value_array_32.$$arity = 2); - return (Opal.defn(self, '$coerce_native_hash_values', TMP_Validator_coerce_native_hash_values_34 = function $$coerce_native_hash_values(hash) { - var TMP_33, self = this; + }, $Validator_validate_value_array$31.$$arity = 2); + return (Opal.def(self, '$coerce_native_hash_values', $Validator_coerce_native_hash_values$33 = function $$coerce_native_hash_values(hash) { + var $$34, self = this; - return $send(hash, 'each', [], (TMP_33 = function(key, value){var self = TMP_33.$$s || this, $writer = nil; -if (key == null) key = nil;if (value == null) value = nil; - + return $send(hash, 'each', [], ($$34 = function(key, value){var self = $$34.$$s == null ? this : $$34.$$s, $writer = nil; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; $writer = [key, self.$Native(value)]; $send(hash, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_33.$$s = self, TMP_33.$$arity = 2, TMP_33)) - }, TMP_Validator_coerce_native_hash_values_34.$$arity = 1), nil) && 'coerce_native_hash_values'; + return $writer[$rb_minus($writer["length"], 1)];}, $$34.$$s = self, $$34.$$arity = 2, $$34)) + }, $Validator_coerce_native_hash_values$33.$$arity = 1), nil) && 'coerce_native_hash_values'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/string"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["hyperstack/ext/component/string"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_event_camelize_1; + var $nesting = [self].concat($parent_nesting), $String_event_camelize$1; - return (Opal.defn(self, '$event_camelize', TMP_String_event_camelize_1 = function $$event_camelize() { + return (Opal.def(self, '$event_camelize', $String_event_camelize$1 = function $$event_camelize() { var self = this; return self.replace(/(^|_)([^_]+)/g, function(match, pre, word, index) { var capitalize = true; return capitalize ? word.substr(0,1).toUpperCase()+word.substr(1) : word; }) - }, TMP_String_event_camelize_1.$$arity = 0), nil) && 'event_camelize' + }, $String_event_camelize$1.$$arity = 0), nil) && 'event_camelize' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/element"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $hash = Opal.hash; +Opal.modules["hyperstack/component/element"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $alias = Opal.alias, $hash = Opal.hash; - Opal.add_stubs(['$require', '$include', '$alias_native', '$attr_reader', '$attr_accessor', '$_update_ref', '$[]', '$properties', '$raise', '$type', '$ref', '$dom_node', '$each', '$!=', '$strip', '$merge_event_prop!', '$to_proc', '$shallow_to_n', '$empty?', '$render', '$convert_props', '$new', '$block', '$delete', '$private', '$=~', '$merge_component_event_prop!', '$gsub', '$include?', '$event_camelize', '$merge_built_in_event_prop!', '$==', '$key_code', '$instance_variable_get', '$merge!', '$Array', '$ignore_bulk_updates']); + Opal.add_stubs(['$require', '$attr_reader', '$attr_accessor', '$new', '$is_a?', '$!', '$empty?', '$raise', '$==', '$convert_string', '$set_native_attributes', '$_update_ref', '$[]', '$properties', '$element_type', '$ref', '$dom_node', '$each', '$!=', '$strip', '$merge_event_prop!', '$to_proc', '$shallow_to_n', '$render', '$convert_props', '$block', '$delete', '$private', '$=~', '$merge_component_event_prop!', '$gsub', '$include?', '$event_camelize', '$merge_built_in_event_prop!', '$key_code', '$instance_variable_get', '$merge!', '$Array', '$ignore_bulk_updates']); self.$require("hyperstack/ext/component/string"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Element(){}; - var self = $Element = $klass($base, $super, 'Element', $Element); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Element'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Element_initialize_1, TMP_Element__update_ref_2, TMP_Element_ref_3, TMP_Element_dom_node_4, TMP_Element_on_5, TMP_Element_render_7, TMP_Element_delete_8, TMP_Element_merge_event_prop$B_9, TMP_Element_merge_built_in_event_prop$B_11, TMP_Element_merge_component_event_prop$B_12; + var $nesting = [self].concat($parent_nesting), $Element_set_native_attributes$1, $Element_props$2, $Element_convert_string$3, $Element_initialize$4, $Element_children$5, $Element__update_ref$6, $Element_ref$7, $Element_dom_node$8, $Element_on$9, $Element_render$11, $Element_$$12, $Element_merge_event_prop$excl$13, $Element_merge_built_in_event_prop$excl$15, $Element_merge_component_event_prop$excl$16; - def._child_element = def.ref = def["native"] = def.properties = def.type = nil; + self.$$prototype.props = self.$$prototype._props_as_hash = self.$$prototype._child_element = self.$$prototype._ref = self.$$prototype.properties = nil; - self.$include(Opal.const_get_relative($nesting, 'Native')); - self.$alias_native("element_type", "type"); - self.$alias_native("props", "props"); self.$attr_reader("type"); + self.$attr_reader("element_type"); self.$attr_reader("properties"); self.$attr_reader("block"); + self.$attr_reader("to_n"); self.$attr_accessor("waiting_on_resources"); - Opal.defn(self, '$initialize', TMP_Element_initialize_1 = function $$initialize(native_element, type, properties, block) { - var $a, self = this; + Opal.def(self, '$set_native_attributes', $Element_set_native_attributes$1 = function $$set_native_attributes(native_element) { + var self = this; - if (type == null) { - type = nil; - } + + self.key = native_element.key; + self.props = native_element.props; + self.ref = native_element.ref; + self.type = native_element.type; + self._owner = native_element._owner; + return (self._props_as_hash = $$($nesting, 'Hash').$new(self.props)); + }, $Element_set_native_attributes$1.$$arity = 1); + + Opal.def(self, '$props', $Element_props$2 = function $$props() { + var self = this; + + return self._props_as_hash + }, $Element_props$2.$$arity = 0); + + Opal.def(self, '$convert_string', $Element_convert_string$3 = function $$convert_string(native_element, element_type, props, block) { + var self = this, $ret_or_1 = nil; + + + if ($truthy(native_element['$is_a?'])) { + } else { + return native_element + }; + if ($truthy(native_element['$is_a?']($$($nesting, 'String')))) { + } else { + return native_element + }; + if ($truthy((function() {if ($truthy(($ret_or_1 = props['$empty?']()['$!']()))) { + return $ret_or_1 + } else { + return block + }; return nil; })())) { + self.$raise("Internal Error Element.new called with string, but non-nil props or block")}; + if (element_type['$==']("wrap_child")) { + return React.createElement(React.Fragment, null, [native_element]); + } else { + return React.createElement(native_element, null); + }; + }, $Element_convert_string$3.$$arity = 4); + + Opal.def(self, '$initialize', $Element_initialize$4 = function $$initialize(native_element, element_type, properties, block) { + var self = this, $ret_or_2 = nil; + + + + if (element_type == null) { + element_type = nil; + }; + if (properties == null) { properties = $hash2([], {}); - } + }; + if (block == null) { block = nil; - } - - self.type = type; - self.properties = ($truthy($a = (function() {if ($truthy(typeof properties === 'undefined')) { - return nil + }; + try { + + native_element = self.$convert_string(native_element, element_type, properties, block); + if (element_type['$==']("wrap_child")) { + } else { + self.element_type = element_type + }; + self.properties = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(typeof properties === 'undefined')) { + return nil + } else { + return properties + }; return nil; })()))) { + return $ret_or_2 } else { - return properties - }; return nil; })()) ? $a : $hash2([], {})); - self.block = block; - return (self["native"] = native_element); - }, TMP_Element_initialize_1.$$arity = -2); + return $hash2([], {}) + }; return nil; })(); + self.block = block; + self.$$typeof = native_element.$$typeof; + self.to_n = self; + return self.$set_native_attributes(native_element); + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { + try { + return nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + }, $Element_initialize$4.$$arity = -2); + + Opal.def(self, '$children', $Element_children$5 = function $$children() { + var self = this; + + return self.props.children + }, $Element_children$5.$$arity = 0); - Opal.defn(self, '$_update_ref', TMP_Element__update_ref_2 = function $$_update_ref(x) { + Opal.def(self, '$_update_ref', $Element__update_ref$6 = function $$_update_ref(x) { var self = this; - self.ref = x; + self._ref = x; if ($truthy(self._child_element)) { return self._child_element.$_update_ref(x) - } else { + } else { return nil }; - }, TMP_Element__update_ref_2.$$arity = 1); + }, $Element__update_ref$6.$$arity = 1); - Opal.defn(self, '$ref', TMP_Element_ref_3 = function $$ref() { + Opal.def(self, '$ref', $Element_ref$7 = function $$ref() { var self = this; - if ($truthy(self.ref)) { - return self.ref}; + if ($truthy(self._ref)) { + return self._ref}; if ($truthy(self.$properties()['$[]']("ref"))) { - self.$raise("" + "The instance of " + (self.$type()) + " has not been mounted yet")}; - return self.$raise("" + "Attempt to get a ref on " + (self.$type()) + " which is a static component."); - }, TMP_Element_ref_3.$$arity = 0); + self.$raise("" + "The instance of " + (self.$element_type()) + " has not been mounted yet")}; + return self.$raise("" + "Attempt to get a ref on " + (self.$element_type()) + " which is a static component."); + }, $Element_ref$7.$$arity = 0); - Opal.defn(self, '$dom_node', TMP_Element_dom_node_4 = function $$dom_node() { + Opal.def(self, '$dom_node', $Element_dom_node$8 = function $$dom_node() { var self = this; if ($truthy(typeof self.$ref().$dom_node == 'function')) { return self.$ref().$dom_node() - } else { + } else { return self.$ref() } - }, TMP_Element_dom_node_4.$$arity = 0); + }, $Element_dom_node$8.$$arity = 0); - Opal.defn(self, '$on', TMP_Element_on_5 = function $$on($a_rest) { - var TMP_6, self = this, event_names, $iter = TMP_Element_on_5.$$p, block = $iter || nil, any_found = nil; + Opal.def(self, '$on', $Element_on$9 = function $$on($a) { + var $iter = $Element_on$9.$$p, block = $iter || nil, $post_args, event_names, $$10, self = this, any_found = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - event_names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - event_names[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Element_on_5.$$p = null; + if ($iter) $Element_on$9.$$p = null; - any_found = false; - $send(event_names, 'each', [], (TMP_6 = function(event_name){var self = TMP_6.$$s || this, $a; -if (event_name == null) event_name = nil; - if ($truthy(($truthy($a = event_name) ? event_name.$strip()['$!=']("") : $a))) { - } else { + if ($iter) $Element_on$9.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + event_names = $post_args;; + any_found = false; + $send(event_names, 'each', [], ($$10 = function(event_name){var self = $$10.$$s == null ? this : $$10.$$s, $ret_or_3 = nil; + + + + if (event_name == null) { + event_name = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_3 = event_name))) { + return event_name.$strip()['$!=']("") + } else { + return $ret_or_3 + }; return nil; })())) { + } else { return nil; }; $send(self, 'merge_event_prop!', [event_name], block.$to_proc()); - return (any_found = true);}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); + return (any_found = true);}, $$10.$$s = self, $$10.$$arity = 1, $$10)); if ($truthy(any_found)) { - self["native"] = React.cloneElement(self["native"], self.properties.$shallow_to_n())}; + self.$set_native_attributes(React.cloneElement(self, self.properties.$shallow_to_n()))}; return self; - }, TMP_Element_on_5.$$arity = -1); + }, $Element_on$9.$$arity = -1); - Opal.defn(self, '$render', TMP_Element_render_7 = function $$render($a_rest) { - var self = this, props; + Opal.def(self, '$render', $Element_render$11 = function $$render($a) { + var $post_args, props, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - props = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - props[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + props = $post_args;; if ($truthy(props['$empty?']())) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render(self) - } else { + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render(self) + } else { - props = $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper'), 'convert_props', [self.type, self.properties].concat(Opal.to_a(props))); - return (self._child_element = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render(Opal.const_get_relative($nesting, 'Element').$new(React.cloneElement(self["native"], props.$shallow_to_n()), self.$type(), props, self.$block()))); - } - }, TMP_Element_render_7.$$arity = -1); + props = $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper'), 'convert_props', [self.$element_type(), self.properties].concat(Opal.to_a(props))); + return (self._child_element = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render($$($nesting, 'Element').$new(React.cloneElement(self, props.$shallow_to_n()), self.$element_type(), props, self.$block()))); + }; + }, $Element_render$11.$$arity = -1); - Opal.defn(self, '$delete', TMP_Element_delete_8 = function() { + Opal.def(self, '$~', $Element_$$12 = function() { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$delete(self) - }, TMP_Element_delete_8.$$arity = 0); - Opal.alias(self, "as_node", "delete"); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$delete(self) + }, $Element_$$12.$$arity = 0); + $alias(self, "as_node", "~"); + $alias(self, "delete", "~"); self.$private(); - Opal.defn(self, '$merge_event_prop!', TMP_Element_merge_event_prop$B_9 = function(event_name) { - var TMP_10, self = this, $iter = TMP_Element_merge_event_prop$B_9.$$p, block = $iter || nil, name = nil; + Opal.def(self, '$merge_event_prop!', $Element_merge_event_prop$excl$13 = function(event_name) { + var $iter = $Element_merge_event_prop$excl$13.$$p, block = $iter || nil, $$14, self = this, name = nil; - if ($iter) TMP_Element_merge_event_prop$B_9.$$p = null; + if ($iter) $Element_merge_event_prop$excl$13.$$p = null; + + + if ($iter) $Element_merge_event_prop$excl$13.$$p = null;; if ($truthy(event_name['$=~'](/^<(.+)>$/))) { return $send(self, 'merge_component_event_prop!', [event_name.$gsub(/^<(.+)>$/, "\\1")], block.$to_proc()) - } else if ($truthy(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Event'), 'BUILT_IN_EVENTS')['$include?']((name = "" + "on" + (event_name.$event_camelize()))))) { + } else if ($truthy($$$($$($nesting, 'Event'), 'BUILT_IN_EVENTS')['$include?']((name = "" + "on" + (event_name.$event_camelize()))))) { return $send(self, 'merge_built_in_event_prop!', [name], block.$to_proc()) } else if (event_name['$==']("enter")) { - return $send(self, 'merge_built_in_event_prop!', ["onKeyDown"], (TMP_10 = function(evt){var self = TMP_10.$$s || this; -if (evt == null) evt = nil; - if (evt.$key_code()['$=='](13)) { + return $send(self, 'merge_built_in_event_prop!', ["onKeyDown"], ($$14 = function(evt){var self = $$14.$$s == null ? this : $$14.$$s; + + + + if (evt == null) { + evt = nil; + }; + if (evt.$key_code()['$=='](13)) { return Opal.yield1(block, evt); - } else { + } else { return nil - }}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)) - } else if ($truthy(self.type.$instance_variable_get("@native_import"))) { + };}, $$14.$$s = self, $$14.$$arity = 1, $$14)) + } else if ($truthy(self.$element_type().$instance_variable_get("@native_import"))) { return $send(self, 'merge_component_event_prop!', [name], block.$to_proc()) - } else { + } else { return $send(self, 'merge_component_event_prop!', ["" + "on_" + (event_name)], block.$to_proc()) - } - }, TMP_Element_merge_event_prop$B_9.$$arity = 1); + }; + }, $Element_merge_event_prop$excl$13.$$arity = 1); - Opal.defn(self, '$merge_built_in_event_prop!', TMP_Element_merge_built_in_event_prop$B_11 = function(prop_name) { - var self = this, $iter = TMP_Element_merge_built_in_event_prop$B_11.$$p, block = $iter || nil; + Opal.def(self, '$merge_built_in_event_prop!', $Element_merge_built_in_event_prop$excl$15 = function(prop_name) { + var $iter = $Element_merge_built_in_event_prop$excl$15.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Element_merge_built_in_event_prop$B_11.$$p = null; + if ($iter) $Element_merge_built_in_event_prop$excl$15.$$p = null; + + + if ($iter) $Element_merge_built_in_event_prop$excl$15.$$p = null;; return self.properties['$merge!']($hash(prop_name, function(){ var react_event = arguments[0]; @@ -19642,122 +21561,154 @@ if (evt == null) evt = nil; if (arguments.length > 1) { all_args = Array.prototype.slice.call(arguments); other_args = all_args.slice(1, arguments.length); - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper'), 'ignore_bulk_updates', [Opal.const_get_relative($nesting, 'Event').$new(react_event)].concat(Opal.to_a((other_args))), block.$to_proc()); + return $send($$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper'), 'ignore_bulk_updates', [$$($nesting, 'Event').$new(react_event)].concat(Opal.to_a((other_args))), block.$to_proc()); } else { - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper'), 'ignore_bulk_updates', [Opal.const_get_relative($nesting, 'Event').$new(react_event)], block.$to_proc()); + return $send($$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper'), 'ignore_bulk_updates', [$$($nesting, 'Event').$new(react_event)], block.$to_proc()); } } - )) - }, TMP_Element_merge_built_in_event_prop$B_11.$$arity = 1); - return (Opal.defn(self, '$merge_component_event_prop!', TMP_Element_merge_component_event_prop$B_12 = function(prop_name) { - var self = this, $iter = TMP_Element_merge_component_event_prop$B_12.$$p, $yield = $iter || nil; + )); + }, $Element_merge_built_in_event_prop$excl$15.$$arity = 1); + return (Opal.def(self, '$merge_component_event_prop!', $Element_merge_component_event_prop$excl$16 = function(prop_name) { + var $iter = $Element_merge_component_event_prop$excl$16.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Element_merge_component_event_prop$B_12.$$p = null; + if ($iter) $Element_merge_component_event_prop$excl$16.$$p = null; return self.properties['$merge!']($hash(prop_name, function(){ return Opal.yieldX($yield, Opal.to_a(self.$Array(arguments))) } )) - }, TMP_Element_merge_component_event_prop$B_12.$$arity = 1), nil) && 'merge_component_event_prop!'; + }, $Element_merge_component_event_prop$excl$16.$$arity = 1), nil) && 'merge_component_event_prop!'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/native_library"] = function(Opal) { +Opal.modules["hyperstack/component/native_library"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range, $send2 = Opal.send2, $find_super = Opal.find_super; Opal.add_stubs(['$each', '$lookup_native_name', '$create_component_wrapper', '$create_library_wrapper', '$raise', '$name', '$scope_native_name', '$+', '$downcase', '$[]', '$import_const_from_native', '$const_defined?', '$const_get', '$render', '$to_proc', '$private', '$native_react_component?', '$const_set', '$imports', '$new', '$class_eval', '$include']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $NativeLibrary(){}; - var self = $NativeLibrary = $klass($base, $super, 'NativeLibrary', $NativeLibrary); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'NativeLibrary'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_imports_1, TMP_rename_3, TMP_import_const_from_native_4, TMP_const_missing_5, TMP_method_missing_6, TMP_lookup_native_name_7, TMP_scope_native_name_8, TMP_create_component_wrapper_10, TMP_create_library_wrapper_11; + var $nesting = [self].concat($parent_nesting), $imports$1, $rename$2, $import_const_from_native$4, $const_missing$5, $method_missing$6, $lookup_native_name$7, $scope_native_name$8, $create_component_wrapper$9, $create_library_wrapper$11; - Opal.defn(self, '$imports', TMP_imports_1 = function $$imports(native_name) { + Opal.def(self, '$imports', $imports$1 = function $$imports(native_name) { var self = this; self.__hyperstack_component_native_prefix = "" + (native_name) + "."; return self; - }, TMP_imports_1.$$arity = 1); + }, $imports$1.$$arity = 1); - Opal.defn(self, '$rename', TMP_rename_3 = function $$rename(rename_list) { - var TMP_2, self = this; + Opal.def(self, '$rename', $rename$2 = function $$rename(rename_list) { + var $$3, self = this; - return $send(rename_list, 'each', [], (TMP_2 = function(js_name, ruby_name){var self = TMP_2.$$s || this, $a, native_name = nil; -if (js_name == null) js_name = nil;if (ruby_name == null) ruby_name = nil; - + return $send(rename_list, 'each', [], ($$3 = function(js_name, ruby_name){var self = $$3.$$s == null ? this : $$3.$$s, native_name = nil, $ret_or_1 = nil; + + + + if (js_name == null) { + js_name = nil; + }; + + if (ruby_name == null) { + ruby_name = nil; + }; native_name = self.$lookup_native_name(js_name); if ($truthy(self.$lookup_native_name(js_name))) { - return ($truthy($a = self.$create_component_wrapper(self, native_name, ruby_name)) ? $a : self.$create_library_wrapper(self, native_name, ruby_name)) + if ($truthy(($ret_or_1 = self.$create_component_wrapper(self, native_name, ruby_name)))) { + return $ret_or_1 } else { + return self.$create_library_wrapper(self, native_name, ruby_name) + } + } else { return self.$raise("" + ("" + "class " + (self.$name()) + " < Hyperstack::Component::NativeLibrary could not import " + (js_name) + ". ") + ("" + "Native value " + (self.$scope_native_name(js_name)) + " is undefined.")) - };}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)) - }, TMP_rename_3.$$arity = 1); + };}, $$3.$$s = self, $$3.$$arity = 2, $$3)) + }, $rename$2.$$arity = 1); - Opal.defn(self, '$import_const_from_native', TMP_import_const_from_native_4 = function $$import_const_from_native(klass, const_name, create_library) { - var $a, $b, $c, self = this, native_name = nil; + Opal.def(self, '$import_const_from_native', $import_const_from_native$4 = function $$import_const_from_native(klass, const_name, create_library) { + var self = this, native_name = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; - native_name = ($truthy($a = self.$lookup_native_name(const_name)) ? $a : self.$lookup_native_name($rb_plus(const_name['$[]'](0).$downcase(), const_name['$[]']($range(1, -1, false))))); - return ($truthy($a = native_name) ? ($truthy($b = self.$create_component_wrapper(klass, native_name, const_name)) ? $b : ($truthy($c = create_library) ? self.$create_library_wrapper(klass, native_name, const_name) : $c)) : $a); - }, TMP_import_const_from_native_4.$$arity = 3); + native_name = (function() {if ($truthy(($ret_or_2 = self.$lookup_native_name(const_name)))) { + return $ret_or_2 + } else { + return self.$lookup_native_name($rb_plus(const_name['$[]'](0).$downcase(), const_name['$[]']($range(1, -1, false)))) + }; return nil; })(); + if ($truthy(($ret_or_3 = native_name))) { + + if ($truthy(($ret_or_4 = self.$create_component_wrapper(klass, native_name, const_name)))) { + return $ret_or_4 + } else { + + if ($truthy(($ret_or_5 = create_library))) { + return self.$create_library_wrapper(klass, native_name, const_name) + } else { + return $ret_or_5 + }; + }; + } else { + return $ret_or_3 + }; + }, $import_const_from_native$4.$$arity = 3); - Opal.defn(self, '$const_missing', TMP_const_missing_5 = function $$const_missing(const_name) { - var $a, self = this, $iter = TMP_const_missing_5.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$const_missing', $const_missing$5 = function $$const_missing(const_name) { + var $iter = $const_missing$5.$$p, $yield = $iter || nil, self = this, $ret_or_6 = nil; - if ($iter) TMP_const_missing_5.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; + if ($iter) $const_missing$5.$$p = null; + if ($truthy(($ret_or_6 = self.$import_const_from_native(self, const_name, true)))) { + return $ret_or_6 + } else { + return $send2(self, $find_super(self, 'const_missing', $const_missing$5, false, true), 'const_missing', [const_name], $iter) } - return ($truthy($a = self.$import_const_from_native(self, const_name, true)) ? $a : $send(self, Opal.find_super_dispatcher(self, 'const_missing', TMP_const_missing_5, false), $zuper, $iter)) - }, TMP_const_missing_5.$$arity = 1); + }, $const_missing$5.$$arity = 1); - Opal.defn(self, '$method_missing', TMP_method_missing_6 = function $$method_missing(method, $a_rest) { - var $b, self = this, args, $iter = TMP_method_missing_6.$$p, block = $iter || nil, component_class = nil; + Opal.def(self, '$method_missing', $method_missing$6 = function $$method_missing(method, $a) { + var $iter = $method_missing$6.$$p, block = $iter || nil, $post_args, args, self = this, component_class = nil, $ret_or_7 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_method_missing_6.$$p = null; + if ($iter) $method_missing$6.$$p = null; + + + if ($iter) $method_missing$6.$$p = null;; + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(self['$const_defined?'](method, false))) { component_class = self.$const_get(method)}; - component_class = ($truthy($b = component_class) ? $b : self.$import_const_from_native(self, method, false)); + component_class = (function() {if ($truthy(($ret_or_7 = component_class))) { + return $ret_or_7 + } else { + return self.$import_const_from_native(self, method, false) + }; return nil; })(); if ($truthy(component_class)) { - } else { + } else { self.$raise("" + "could not import a react component named: " + ("" + (self.$scope_native_name(method)))) }; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [component_class].concat(Opal.to_a(args)), block.$to_proc()); - }, TMP_method_missing_6.$$arity = -2); + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [component_class].concat(Opal.to_a(args)), block.$to_proc()); + }, $method_missing$6.$$arity = -2); self.$private(); - Opal.defn(self, '$lookup_native_name', TMP_lookup_native_name_7 = function $$lookup_native_name(js_name) { + Opal.def(self, '$lookup_native_name', $lookup_native_name$7 = function $$lookup_native_name(js_name) { var self = this, native_name = nil; try { @@ -19765,42 +21716,42 @@ if (js_name == null) js_name = nil;if (ruby_name == null) ruby_name = nil; native_name = self.$scope_native_name(js_name); return eval(native_name) !== undefined && native_name; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_lookup_native_name_7.$$arity = 1); + }, $lookup_native_name$7.$$arity = 1); - Opal.defn(self, '$scope_native_name', TMP_scope_native_name_8 = function $$scope_native_name(js_name) { + Opal.def(self, '$scope_native_name', $scope_native_name$8 = function $$scope_native_name(js_name) { var self = this; if (self.__hyperstack_component_native_prefix == null) self.__hyperstack_component_native_prefix = nil; return "" + (self.__hyperstack_component_native_prefix) + (js_name) - }, TMP_scope_native_name_8.$$arity = 1); + }, $scope_native_name$8.$$arity = 1); - Opal.defn(self, '$create_component_wrapper', TMP_create_component_wrapper_10 = function $$create_component_wrapper(klass, native_name, ruby_name) { - var TMP_9, self = this, new_klass = nil; + Opal.def(self, '$create_component_wrapper', $create_component_wrapper$9 = function $$create_component_wrapper(klass, native_name, ruby_name) { + var $$10, self = this, new_klass = nil; - if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper')['$native_react_component?'](native_name))) { + if ($truthy($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper')['$native_react_component?'](native_name))) { - new_klass = klass.$const_set(ruby_name, Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'NativeLibrary')).$imports(native_name)); - $send(new_klass, 'class_eval', [], (TMP_9 = function(){var self = TMP_9.$$s || this; + new_klass = klass.$const_set(ruby_name, $$($nesting, 'Class').$new($$($nesting, 'NativeLibrary')).$imports(native_name)); + $send(new_klass, 'class_eval', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - - self.$include(Opal.const_get_relative($nesting, 'Component')); - return self.$imports(native_name);}, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)); + + self.$include($$($nesting, 'Component')); + return self.$imports(native_name);}, $$10.$$s = self, $$10.$$arity = 0, $$10)); return new_klass; - } else { + } else { return nil } - }, TMP_create_component_wrapper_10.$$arity = 3); - return (Opal.defn(self, '$create_library_wrapper', TMP_create_library_wrapper_11 = function $$create_library_wrapper(klass, native_name, ruby_name) { + }, $create_component_wrapper$9.$$arity = 3); + return (Opal.def(self, '$create_library_wrapper', $create_library_wrapper$11 = function $$create_library_wrapper(klass, native_name, ruby_name) { var self = this; - return klass.$const_set(ruby_name, Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'NativeLibrary')).$imports(native_name)) - }, TMP_create_library_wrapper_11.$$arity = 3), nil) && 'create_library_wrapper'; + return klass.$const_set(ruby_name, $$($nesting, 'Class').$new($$($nesting, 'NativeLibrary')).$imports(native_name)) + }, $create_library_wrapper$11.$$arity = 3), nil) && 'create_library_wrapper'; })(Opal.get_singleton_class(self), $nesting); return self.$imports("NativeLibrary"); })($nesting[0], null, $nesting) @@ -19808,59 +21759,57 @@ if (js_name == null) js_name = nil;if (ruby_name == null) ruby_name = nil; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { +Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $hash2 = Opal.hash2, $send = Opal.send, $class_variable_get = Opal.class_variable_get, $truthy = Opal.truthy, $lambda = Opal.lambda, $range = Opal.range; - Opal.add_stubs(['$require', '$instance_variable_set', '$[]=', '$-', '$raise', '$stateless?', '$eval_native_react_component', '$add_after_error_hook_to_native', '$[]', '$!', '$method_defined?', '$respond_to?', '$native_mixins', '$to_n', '$static_call_backs', '$new', '$name', '$default_props', '$prop_types', '$callbacks?', '$<<', '$is_a?', '$create_native_react_class', '$include?', '$lambda', '$_update_ref', '$convert_props', '$shallow_to_n', '$flatten', '$call', '$each', '$split', '$==', '$merge', '$lower_camelize', '$join', '$to_key', '$ignore_mutations', '$const_defined?', '$gsub', '$html_attr?', '$private', '$first', '$concat', '$map', '$+', '$upcase']); + Opal.add_stubs(['$require', '$instance_variable_set', '$[]=', '$-', '$raise', '$stateless?', '$eval_native_react_component', '$add_after_error_hook_to_native', '$[]', '$!', '$method_defined?', '$respond_to?', '$native_mixins', '$to_n', '$static_call_backs', '$new', '$name', '$default_props', '$prop_types', '$callbacks?', '$<<', '$is_a?', '$create_native_react_class', '$include?', '$_update_ref', '$convert_props', '$shallow_to_n', '$flatten', '$call', '$each', '$split', '$==', '$merge', '$lower_camelize', '$join', '$to_key', '$ignore_mutations', '$const_defined?', '$gsub', '$html_attr?', '$private', '$first', '$concat', '$map', '$+', '$upcase']); self.$require("hyperstack/component/native_library"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ReactWrapper(){}; - var self = $ReactWrapper = $klass($base, $super, 'ReactWrapper', $ReactWrapper); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ReactWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ReactWrapper_stateless$q_1, TMP_ReactWrapper_import_native_component_2, TMP_ReactWrapper_eval_native_react_component_3, TMP_ReactWrapper_native_react_component$q_4, TMP_ReactWrapper_add_after_error_hook_5, TMP_ReactWrapper_add_after_error_hook_to_native_6, TMP_ReactWrapper_create_native_react_class_7, TMP_ReactWrapper_create_element_8, TMP_ReactWrapper_clear_component_class_cache_10, TMP_ReactWrapper_convert_props_21, TMP_ReactWrapper_lower_camelize_23; + var $nesting = [self].concat($parent_nesting), $ReactWrapper_stateless$ques$1, $ReactWrapper_import_native_component$2, $ReactWrapper_eval_native_react_component$3, $ReactWrapper_native_react_component$ques$4, $ReactWrapper_add_after_error_hook$5, $ReactWrapper_add_after_error_hook_to_native$6, $ReactWrapper_create_native_react_class$7, $ReactWrapper_create_element$8, $ReactWrapper_clear_component_class_cache$10, $ReactWrapper_convert_props$11, $ReactWrapper_lower_camelize$22; - (Opal.class_variable_set($ReactWrapper, '@@component_classes', $hash2([], {}))); - Opal.defs(self, '$stateless?', TMP_ReactWrapper_stateless$q_1 = function(ncc) { + $class_variable_set($nesting[0], '@@component_classes', $hash2([], {})); + Opal.defs(self, '$stateless?', $ReactWrapper_stateless$ques$1 = function(ncc) { var self = this; - return typeof ncc === 'function' && !(ncc.prototype && ncc.prototype.isReactComponent) - }, TMP_ReactWrapper_stateless$q_1.$$arity = 1); - Opal.defs(self, '$import_native_component', TMP_ReactWrapper_import_native_component_2 = function $$import_native_component(opal_class, native_class) { - var $a, self = this, $writer = nil; + return typeof ncc === 'symbol' || (typeof ncc === 'function' && !(ncc.prototype && ncc.prototype.isReactComponent)) + }, $ReactWrapper_stateless$ques$1.$$arity = 1); + Opal.defs(self, '$import_native_component', $ReactWrapper_import_native_component$2 = function $$import_native_component(opal_class, native_class) { + var self = this, $writer = nil; opal_class.$instance_variable_set("@native_import", true); $writer = [opal_class, native_class]; - $send((($a = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $a), '[]=', Opal.to_a($writer)); + $send($class_variable_get($nesting[0], '@@component_classes', false), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_ReactWrapper_import_native_component_2.$$arity = 2); - Opal.defs(self, '$eval_native_react_component', TMP_ReactWrapper_eval_native_react_component_3 = function $$eval_native_react_component(name) { - var $a, $b, self = this, component = nil, is_component_class = nil, has_render_method = nil; + }, $ReactWrapper_import_native_component$2.$$arity = 2); + Opal.defs(self, '$eval_native_react_component', $ReactWrapper_eval_native_react_component$3 = function $$eval_native_react_component(name) { + var self = this, component = nil, is_component_class = nil, $ret_or_1 = nil, $ret_or_2 = nil, has_render_method = nil, $ret_or_3 = nil, $ret_or_4 = nil; component = eval(name); @@ -19868,47 +21817,66 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { self.$raise("" + (name) + " is not defined")}; if ($truthy(component.__esModule)) { component = component.default}; - is_component_class = ($truthy($a = component.prototype !== undefined) ? ($truthy($b = !!component.prototype.isReactComponent) ? $b : !!component.prototype.render) : $a); - has_render_method = typeof component.render === "function"; - if ($truthy(($truthy($a = ($truthy($b = is_component_class) ? $b : self['$stateless?'](component))) ? $a : has_render_method))) { + is_component_class = (function() {if ($truthy(($ret_or_1 = component.prototype !== undefined))) { + + if ($truthy(($ret_or_2 = !!component.prototype.isReactComponent))) { + return $ret_or_2 } else { + return !!component.prototype.render + }; + } else { + return $ret_or_1 + }; return nil; })(); + has_render_method = typeof component.render === "function"; + if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = is_component_class))) { + return $ret_or_4 + } else { + return self['$stateless?'](component) + }; return nil; })()))) { + return $ret_or_3 + } else { + return has_render_method + }; return nil; })())) { + } else { self.$raise("does not appear to be a native react component") }; return component; - }, TMP_ReactWrapper_eval_native_react_component_3.$$arity = 1); - Opal.defs(self, '$native_react_component?', TMP_ReactWrapper_native_react_component$q_4 = function(name) { + }, $ReactWrapper_eval_native_react_component$3.$$arity = 1); + Opal.defs(self, '$native_react_component?', $ReactWrapper_native_react_component$ques$4 = function(name) { var self = this; + + if (name == null) { name = nil; - } + }; try { if ($truthy(name)) { - } else { + } else { return false }; self.$eval_native_react_component(name); return true; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { try { return false - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - } - }, TMP_ReactWrapper_native_react_component$q_4.$$arity = -1); - Opal.defs(self, '$add_after_error_hook', TMP_ReactWrapper_add_after_error_hook_5 = function $$add_after_error_hook(klass) { - var $a, self = this; + }; + }, $ReactWrapper_native_react_component$ques$4.$$arity = -1); + Opal.defs(self, '$add_after_error_hook', $ReactWrapper_add_after_error_hook$5 = function $$add_after_error_hook(klass) { + var self = this; - return self.$add_after_error_hook_to_native((($a = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $a)['$[]'](klass)) - }, TMP_ReactWrapper_add_after_error_hook_5.$$arity = 1); - Opal.defs(self, '$add_after_error_hook_to_native', TMP_ReactWrapper_add_after_error_hook_to_native_6 = function $$add_after_error_hook_to_native(native_comp) { + return self.$add_after_error_hook_to_native($class_variable_get($nesting[0], '@@component_classes', false)['$[]'](klass)) + }, $ReactWrapper_add_after_error_hook$5.$$arity = 1); + Opal.defs(self, '$add_after_error_hook_to_native', $ReactWrapper_add_after_error_hook_to_native$6 = function $$add_after_error_hook_to_native(native_comp) { var self = this; if ($truthy(native_comp)) { - } else { + } else { return nil }; @@ -19917,33 +21885,38 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { this.__opalInstance.$component_did_catch(error, Opal.Hash.$new(info)); } ; - }, TMP_ReactWrapper_add_after_error_hook_to_native_6.$$arity = 1); - Opal.defs(self, '$create_native_react_class', TMP_ReactWrapper_create_native_react_class_7 = function $$create_native_react_class(type) { - var $a, $b, self = this, render_fn = nil, $writer = nil, comp = nil; + }, $ReactWrapper_add_after_error_hook_to_native$6.$$arity = 1); + Opal.defs(self, '$create_native_react_class', $ReactWrapper_create_native_react_class$7 = function $$create_native_react_class(type) { + var self = this, old_school = nil, render_fn = nil, $ret_or_5 = nil, $writer = nil, comp = nil, $ret_or_6 = nil; if ($truthy(typeof(createReactClass)=='undefined')) { self.$raise("createReactClass is undefined. Add the 'react-create-class' npm module, and import it as 'createReactClass'")}; if ($truthy(type['$method_defined?']("render")['$!']())) { self.$raise("Provided class should define `render` method")}; - render_fn = (function() {if ($truthy(type['$method_defined?']("_render_wrapper"))) { - return "_render_wrapper" - } else { + old_school = type['$method_defined?']("_render_wrapper")['$!'](); + render_fn = (function() {if ($truthy(old_school)) { return "render" + } else { + return "_render_wrapper" }; return nil; })(); - return ($truthy($a = (($b = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $b)['$[]'](type)) ? $a : (($writer = [type, ((comp = + if ($truthy(($ret_or_5 = $class_variable_get($nesting[0], '@@component_classes', false)['$[]'](type)))) { + return $ret_or_5 + } else { + + $writer = [type, ((comp = createReactClass({ getInitialState: function() { this.mixins = (function() {if ($truthy(type['$respond_to?']("native_mixins"))) { - return type.$native_mixins() + return type.$native_mixins() } else { - return [] - }; return nil; })(); + return []; + }; return nil; })(); this.statics = (function() {if ($truthy(type['$respond_to?']("static_call_backs"))) { - return type.$static_call_backs().$to_n() + return type.$static_call_backs().$to_n() } else { - return {} - }; return nil; })(); + return {}; + }; return nil; })(); this.__opalInstanceInitializedState = false; this.__opalInstanceSyncSetState = true; this.__opalInstance = type.$new(this); @@ -19955,17 +21928,17 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { displayName: type.$name(), getDefaultProps: function() { return (function() {if ($truthy(type['$respond_to?']("default_props"))) { - return type.$default_props().$to_n() + return type.$default_props().$to_n() } else { - return {} - }; return nil; })(); + return {}; + }; return nil; })(); }, propTypes: (function() {if ($truthy(type['$respond_to?']("prop_types"))) { - return type.$prop_types().$to_n() + return type.$prop_types().$to_n() } else { - return {} - }; return nil; })(), - componentWillMount: function() { + return {}; + }; return nil; })(), + componentWillMount: old_school && function() { if (type['$method_defined?']("component_will_mount")) { this.__opalInstanceSyncSetState = true; this.__opalInstance.$component_will_mount(); @@ -19979,7 +21952,7 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { this.__opalInstance.$component_did_mount(); } }, - componentWillReceiveProps: function(next_props) { + UNSAFE_componentWillReceiveProps: function(next_props) { if (type['$method_defined?']("component_will_receive_props")) { this.__opalInstanceSyncSetState = true; this.__opalInstance.$component_will_receive_props(Opal.Hash.$new(next_props)); @@ -19992,7 +21965,7 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { return this.__opalInstance["$should_component_update?"](Opal.Hash.$new(next_props), Opal.Hash.$new(next_state)); } else { return true; } }, - componentWillUpdate: function(next_props, next_state) { + UNSAFE_componentWillUpdate: function(next_props, next_state) { if (type['$method_defined?']("component_will_update")) { this.__opalInstanceSyncSetState = false; this.__opalInstance.$component_will_update(Opal.Hash.$new(next_props), Opal.Hash.$new(next_state)); @@ -20016,42 +21989,58 @@ Opal.modules["hyperstack/internal/component/react_wrapper"] = function(Opal) { return this.__opalInstance.$send(render_fn).$to_n(); } }) - ), (function() {if ($truthy(($truthy($b = type['$respond_to?']("callbacks?")) ? type['$callbacks?']("after_error") : $b))) { - return self.$add_after_error_hook_to_native(comp) + ), (function() {if ($truthy((function() {if ($truthy(($ret_or_6 = type['$respond_to?']("callbacks?")))) { + return type['$callbacks?']("after_error") } else { - return nil - }; return nil; })(), comp)]), $send((($b = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $b), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); - }, TMP_ReactWrapper_create_native_react_class_7.$$arity = 1); - Opal.defs(self, '$create_element', TMP_ReactWrapper_create_element_8 = function $$create_element(type, $a_rest) { - var $b, TMP_9, self = this, args, $iter = TMP_ReactWrapper_create_element_8.$$p, block = $iter || nil, params = nil, ncc = nil, ele = nil, ref = nil, properties = nil, a = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_ReactWrapper_create_element_8.$$p = null; + return $ret_or_6 + }; return nil; })())) { + return self.$add_after_error_hook_to_native(comp) + } else { + return nil + }; return nil; })(), comp)]; + $send($class_variable_get($nesting[0], '@@component_classes', false), '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }; + }, $ReactWrapper_create_native_react_class$7.$$arity = 1); + Opal.defs(self, '$create_element', $ReactWrapper_create_element$8 = function $$create_element(type, $a) { + var $iter = $ReactWrapper_create_element$8.$$p, block = $iter || nil, $post_args, args, $$9, self = this, params = nil, ncc = nil, $ret_or_7 = nil, ele = nil, ref = nil, properties = nil, a = nil; + + if ($iter) $ReactWrapper_create_element$8.$$p = null; + + if ($iter) $ReactWrapper_create_element$8.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; params = []; - ncc = (($b = $ReactWrapper.$$cvars['@@component_classes']) == null ? nil : $b)['$[]'](type); + ncc = $class_variable_get($nesting[0], '@@component_classes', false)['$[]'](type); if ($truthy(ncc)) { params['$<<'](ncc) - } else if ($truthy(type['$is_a?'](Opal.const_get_relative($nesting, 'Class')))) { + } else if ($truthy(type['$is_a?']($$($nesting, 'Class')))) { params['$<<'](self.$create_native_react_class(type)) - } else if ($truthy(($truthy($b = (block !== nil)) ? $b : Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Tags'), 'HTML_TAGS')['$include?'](type)))) { + } else if ($truthy((function() {if ($truthy(($ret_or_7 = (block !== nil)))) { + return $ret_or_7 + } else { + return $$$($$($nesting, 'Tags'), 'HTML_TAGS')['$include?'](type) + }; return nil; })())) { params['$<<'](type) - } else if ($truthy(type['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element').$new(type) - } else { + } else if ($truthy(type['$is_a?']($$($nesting, 'String')))) { + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element').$new(type) + } else { self.$raise("" + (type) + " not implemented") }; ele = nil; if ($truthy(self['$stateless?'](ncc))) { - } else { - ref = $send(self, 'lambda', [], (TMP_9 = function(ref){var self = TMP_9.$$s || this; -if (ref == null) ref = nil; - return ele.$_update_ref(ref)}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)) + } else { + ref = $lambda(($$9 = function(ref){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (ref == null) { + ref = nil; + }; + return ele.$_update_ref(ref);}, $$9.$$s = self, $$9.$$arity = 1, $$9)) }; properties = $send(self, 'convert_props', [type, $hash2(["ref"], {"ref": ref})].concat(Opal.to_a(args))); params['$<<'](properties.$shallow_to_n()); @@ -20063,43 +22052,55 @@ if (ref == null) ref = nil; params.push(a[i].$to_n()); } ;}; - return (ele = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element').$new(React.createElement.apply(null, params), type, properties, block)); - }, TMP_ReactWrapper_create_element_8.$$arity = -2); - Opal.defs(self, '$clear_component_class_cache', TMP_ReactWrapper_clear_component_class_cache_10 = function $$clear_component_class_cache() { + return (ele = $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element').$new(React.createElement.apply(null, params), type, properties, block)); + }, $ReactWrapper_create_element$8.$$arity = -2); + Opal.defs(self, '$clear_component_class_cache', $ReactWrapper_clear_component_class_cache$10 = function $$clear_component_class_cache() { var self = this; - return (Opal.class_variable_set($ReactWrapper, '@@component_classes', $hash2([], {}))) - }, TMP_ReactWrapper_clear_component_class_cache_10.$$arity = 0); - Opal.defs(self, '$convert_props', TMP_ReactWrapper_convert_props_21 = function $$convert_props(type, $a_rest) { - var TMP_11, TMP_13, self = this, args, properties = nil, props = nil; + return $class_variable_set($nesting[0], '@@component_classes', $hash2([], {})) + }, $ReactWrapper_clear_component_class_cache$10.$$arity = 0); + Opal.defs(self, '$convert_props', $ReactWrapper_convert_props$11 = function $$convert_props(type, $a) { + var $post_args, args, $$12, $$14, self = this, properties = nil, props = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; properties = $hash2([], {}); - $send(args, 'each', [], (TMP_11 = function(arg){var self = TMP_11.$$s || this, TMP_12, $writer = nil; -if (arg == null) arg = nil; - if ($truthy(arg['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + $send(args, 'each', [], ($$12 = function(arg){var self = $$12.$$s == null ? this : $$12.$$s, $$13, $writer = nil; + + + + if (arg == null) { + arg = nil; + }; + if ($truthy(arg['$is_a?']($$($nesting, 'String')))) { $writer = [arg, true]; $send(properties, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else if ($truthy(arg['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { - return $send(arg, 'each', [], (TMP_12 = function(key, value){var self = TMP_12.$$s || this, $a; -if (key == null) key = nil;if (value == null) value = nil; - if ($truthy(["class", "className", "class_name"]['$include?'](key))) { + } else if ($truthy(arg['$is_a?']($$($nesting, 'Hash')))) { + return $send(arg, 'each', [], ($$13 = function(key, value){var self = $$13.$$s == null ? this : $$13.$$s, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + if ($truthy(["class", "className", "class_name"]['$include?'](key))) { if ($truthy(value)) { - } else { + } else { return nil; }; - if ($truthy(value['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + if ($truthy(value['$is_a?']($$($nesting, 'String')))) { value = value.$split(" ") - } else if ($truthy(value['$is_a?'](Opal.const_get_relative($nesting, 'Array'))['$!']())) { + } else if ($truthy(value['$is_a?']($$($nesting, 'Array'))['$!']())) { self.$raise("The class param must be a string or array of strings")}; $writer = ["className", [].concat(Opal.to_a(properties['$[]']("className"))).concat(Opal.to_a(value))]; @@ -20108,33 +22109,54 @@ if (key == null) key = nil;if (value == null) value = nil; } else if (key['$==']("style")) { if ($truthy(value)) { - } else { + } else { return nil; }; - if ($truthy(value['$is_a?'](Opal.const_get_relative($nesting, 'Hash'))['$!']())) { + if ($truthy(value['$is_a?']($$($nesting, 'Hash'))['$!']())) { self.$raise("The style param must be a Hash")}; - $writer = ["style", ($truthy($a = properties['$[]']("style")) ? $a : $hash2([], {})).$merge(value)]; + $writer = ["style", (function() {if ($truthy(($ret_or_8 = properties['$[]']("style")))) { + return $ret_or_8 + } else { + return $hash2([], {}) + }; return nil; })().$merge(value)]; $send(properties, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - } else if ($truthy(($truthy($a = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'ReactAPI'), 'HASH_ATTRIBUTES')['$include?'](key)) ? value['$is_a?'](Opal.const_get_relative($nesting, 'Hash')) : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_9 = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'ReactAPI'), 'HASH_ATTRIBUTES')['$include?'](key)))) { + return value['$is_a?']($$($nesting, 'Hash')) + } else { + return $ret_or_9 + }; return nil; })())) { - $writer = [key, ($truthy($a = properties['$[]'](key)) ? $a : $hash2([], {})).$merge(value)]; + $writer = [key, (function() {if ($truthy(($ret_or_10 = properties['$[]'](key)))) { + return $ret_or_10 + } else { + return $hash2([], {}) + }; return nil; })().$merge(value)]; $send(properties, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { $writer = [key, value]; $send(properties, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12)) - } else { + };}, $$13.$$s = self, $$13.$$arity = 2, $$13)) + } else { return nil - }}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)); + };}, $$12.$$s = self, $$12.$$arity = 1, $$12)); props = $hash2([], {}); - $send(properties, 'each', [], (TMP_13 = function(key, value){var self = TMP_13.$$s || this, TMP_14, TMP_15, TMP_16, TMP_17, TMP_18, TMP_19, $a, TMP_20, $writer = nil, fn = nil; -if (key == null) key = nil;if (value == null) value = nil; - if ($truthy(["style", "dangerously_set_inner_HTML"]['$include?'](key))) { + $send(properties, 'each', [], ($$14 = function(key, value){var self = $$14.$$s == null ? this : $$14.$$s, $$15, $$16, $$17, $$18, $$19, $$20, $$21, $writer = nil, fn = nil, $ret_or_11 = nil; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + if ($truthy(["style", "dangerously_set_inner_HTML"]['$include?'](key))) { $writer = [self.$lower_camelize(key), value.$to_n()]; $send(props, '[]=', Opal.to_a($writer)); @@ -20156,7 +22178,7 @@ if (key == null) key = nil;if (value == null) value = nil; } else if (type['$==']("input")) { key = (function() {if ($truthy(["radio", "checkbox"]['$include?'](properties['$[]']("type")))) { return "defaultChecked" - } else { + } else { return "defaultValue" }; return nil; })()}; @@ -20166,31 +22188,31 @@ if (key == null) key = nil;if (value == null) value = nil; } else if (key['$==']("ref")) { if ($truthy(value)) { - } else { + } else { return nil; }; if ($truthy(value['$respond_to?']("call"))) { - } else { + } else { self.$raise("" + "The ref and dom params must be given a Proc.\n" + "If you want to capture the ref in an instance variable use the `set` method.\n" + "For example `ref: set(:TheRef)` will capture assign the ref to `@TheRef`\n") }; if ($truthy(value.__hyperstack_component_ref_is_already_wrapped)) { - } else { + } else { fn = value; value = function(dom_node){ if (dom_node !== null && dom_node.__opalInstance !== undefined && dom_node.__opalInstance !== null) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_14 = function(){var self = TMP_14.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$15 = function(){var self = $$15.$$s == null ? this : $$15.$$s; - return fn.$call(dom_node.__opalInstance)}, TMP_14.$$s = self, TMP_14.$$arity = 0, TMP_14)); + return fn.$call(dom_node.__opalInstance)}, $$15.$$s = self, $$15.$$arity = 0, $$15)); } else if(dom_node !== null && ReactDOM.findDOMNode !== undefined && dom_node.nodeType === undefined) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_15 = function(){var self = TMP_15.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - return fn.$call(ReactDOM.findDOMNode(dom_node))}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)); + return fn.$call(ReactDOM.findDOMNode(dom_node))}, $$16.$$s = self, $$16.$$arity = 0, $$16)); } else if(dom_node !== null){ - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_16 = function(){var self = TMP_16.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; - return fn.$call(dom_node)}, TMP_16.$$s = self, TMP_16.$$arity = 0, TMP_16)); + return fn.$call(dom_node)}, $$17.$$s = self, $$17.$$arity = 0, $$17)); } } ; @@ -20203,241 +22225,325 @@ if (key == null) key = nil;if (value == null) value = nil; } else if (key['$==']("jq_ref")) { if ($truthy(value['$respond_to?']("call"))) { - } else { + } else { self.$raise("" + "The ref and dom params must be given a Proc.\n" + "If you want to capture the dom node in an instance variable use the `set` method.\n" + "For example `dom: set(:DomNode)` will assign the dom node to `@DomNode`\n") }; - if ($truthy(Opal.const_get_relative($nesting, 'Module')['$const_defined?']("Element"))) { - } else { + if ($truthy($$($nesting, 'Module')['$const_defined?']("Element"))) { + } else { self.$raise("" + "You must include 'hyperstack/component/jquery' " + "in your manifest to use the `dom` reference key.\n" + "For example if using rails include " + "`config.import 'hyperstack/component/jquery', client_only: true`" + "in your config/initializer/hyperstack.rb file") }; $writer = ["ref", function(dom_node){ if (dom_node !== null && dom_node.__opalInstance !== undefined && dom_node.__opalInstance !== null) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_17 = function(){var self = TMP_17.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$18 = function(){var self = $$18.$$s == null ? this : $$18.$$s; - return value.$call(Opal.const_get_qualified('::', 'Element')['$[]'](dom_node.__opalInstance))}, TMP_17.$$s = self, TMP_17.$$arity = 0, TMP_17)); + return value.$call($$$('::', 'Element')['$[]'](dom_node.__opalInstance))}, $$18.$$s = self, $$18.$$arity = 0, $$18)); } else if(dom_node !== null && ReactDOM.findDOMNode !== undefined && dom_node.nodeType === undefined) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_18 = function(){var self = TMP_18.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$19 = function(){var self = $$19.$$s == null ? this : $$19.$$s; - return value.$call(Opal.const_get_qualified('::', 'Element')['$[]'](ReactDOM.findDOMNode(dom_node)))}, TMP_18.$$s = self, TMP_18.$$arity = 0, TMP_18)); + return value.$call($$$('::', 'Element')['$[]'](ReactDOM.findDOMNode(dom_node)))}, $$19.$$s = self, $$19.$$arity = 0, $$19)); } else if(dom_node !== null) { - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], (TMP_19 = function(){var self = TMP_19.$$s || this; + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper'), 'ignore_mutations', [], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s; - return value.$call(Opal.const_get_qualified('::', 'Element')['$[]'](dom_node))}, TMP_19.$$s = self, TMP_19.$$arity = 0, TMP_19)); + return value.$call($$$('::', 'Element')['$[]'](dom_node))}, $$20.$$s = self, $$20.$$arity = 0, $$20)); } } ]; $send(props, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - } else if ($truthy(($truthy($a = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'ReactAPI'), 'HASH_ATTRIBUTES')['$include?'](key)) ? value['$is_a?'](Opal.const_get_relative($nesting, 'Hash')) : $a))) { - return $send(value, 'each', [], (TMP_20 = function(k, v){var self = TMP_20.$$s || this; -if (k == null) k = nil;if (v == null) v = nil; - + } else if ($truthy((function() {if ($truthy(($ret_or_11 = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'ReactAPI'), 'HASH_ATTRIBUTES')['$include?'](key)))) { + return value['$is_a?']($$($nesting, 'Hash')) + } else { + return $ret_or_11 + }; return nil; })())) { + return $send(value, 'each', [], ($$21 = function(k, v){var self = $$21.$$s == null ? this : $$21.$$s; + + + + if (k == null) { + k = nil; + }; + + if (v == null) { + v = nil; + }; $writer = ["" + (key) + "-" + (k.$gsub(/__|_/, $hash2(["__", "_"], {"__": "_", "_": "-"}))), v.$to_n()]; $send(props, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_20.$$s = self, TMP_20.$$arity = 2, TMP_20)) - } else { + return $writer[$rb_minus($writer["length"], 1)];}, $$21.$$s = self, $$21.$$arity = 2, $$21)) + } else { - $writer = [(function() {if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'ReactAPI')['$html_attr?'](self.$lower_camelize(key)))) { + $writer = [(function() {if ($truthy($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'ReactAPI')['$html_attr?'](self.$lower_camelize(key)))) { return self.$lower_camelize(key) - } else { + } else { return key }; return nil; })(), value]; $send(props, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }}, TMP_13.$$s = self, TMP_13.$$arity = 2, TMP_13)); + };}, $$14.$$s = self, $$14.$$arity = 2, $$14)); return props; - }, TMP_ReactWrapper_convert_props_21.$$arity = -2); + }, $ReactWrapper_convert_props$11.$$arity = -2); self.$private(); - return Opal.defs(self, '$lower_camelize', TMP_ReactWrapper_lower_camelize_23 = function $$lower_camelize(snake_cased_word) { - var TMP_22, self = this, words = nil, result = nil; + return (Opal.defs(self, '$lower_camelize', $ReactWrapper_lower_camelize$22 = function $$lower_camelize(snake_cased_word) { + var $$23, self = this, words = nil, result = nil; words = snake_cased_word.$split("_"); result = [words.$first()]; - return result.$concat($send(words['$[]']($range(1, -1, false)), 'map', [], (TMP_22 = function(word){var self = TMP_22.$$s || this; -if (word == null) word = nil; - return $rb_plus(word['$[]'](0).$upcase(), word['$[]']($range(1, -1, false)))}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22))).$join(""); - }, TMP_ReactWrapper_lower_camelize_23.$$arity = 1); + return result.$concat($send(words['$[]']($range(1, -1, false)), 'map', [], ($$23 = function(word){var self = $$23.$$s == null ? this : $$23.$$s; + + + + if (word == null) { + word = nil; + }; + return $rb_plus(word['$[]'](0).$upcase(), word['$[]']($range(1, -1, false)));}, $$23.$$s = self, $$23.$$arity = 1, $$23))).$join(""); + }, $ReactWrapper_lower_camelize$22.$$arity = 1), nil) && 'lower_camelize'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/hash"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; +Opal.modules["hyperstack/ext/component/hash"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$each']); return (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); + var self = $klass($base, $super, 'Hash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_shallow_to_n_2; + var $nesting = [self].concat($parent_nesting), $Hash_shallow_to_n$1; - return (Opal.defn(self, '$shallow_to_n', TMP_Hash_shallow_to_n_2 = function $$shallow_to_n() { - var TMP_1, self = this, hash = nil; + return (Opal.def(self, '$shallow_to_n', $Hash_shallow_to_n$1 = function $$shallow_to_n() { + var $$2, self = this, hash = nil; hash = {}; - $send(self, 'each', [], (TMP_1 = function(key, value){var self = TMP_1.$$s || this; -if (key == null) key = nil;if (value == null) value = nil; - return hash[key] = value}, TMP_1.$$s = self, TMP_1.$$arity = 2, TMP_1)); + $send(self, 'each', [], ($$2 = function(key, value){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; + return hash[key] = value;}, $$2.$$s = self, $$2.$$arity = 2, $$2)); return hash; - }, TMP_Hash_shallow_to_n_2.$$arity = 0), nil) && 'shallow_to_n' + }, $Hash_shallow_to_n$1.$$arity = 0), nil) && 'shallow_to_n' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/rendering_context"] = function(Opal) { +Opal.modules["hyperstack/internal/component/rendering_context"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var $$27, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; - Opal.add_stubs(['$attr_accessor', '$waiting_on_resources', '$raise_if_not_quiet?', '$raise', '$new', '$!', '$remove_nodes_from_args', '$build', '$waiting_on_resources=', '$-', '$run_child_block', '$nil?', '$to_proc', '$dup', '$tap', '$create_element', '$detect', '$respond_to?', '$is_a?', '$last', '$to_s', '$render', '$<<', '$delete', '$include?', '$index', '$[]=', '$[]', '$each', '$acts_as_string?', '$empty?', '$!=', '$raise_render_error', '$==', '$count', '$improper_render', '$>', '$try', '$class', '$define_method', '$unshift', '$hyper_component?', '$send']); + Opal.add_stubs(['$attr_accessor', '$waiting_on_resources', '$raise_if_not_quiet?', '$raise', '$new', '$<<', '$!', '$remove_nodes_from_args', '$build', '$waiting_on_resources=', '$-', '$run_child_block', '$to_proc', '$dup', '$tap', '$create_element', '$detect', '$respond_to?', '$is_a?', '$last', '$collect', '$render', '$to_s', '$>', '$length', '$first', '$delete', '$include?', '$index', '$[]=', '$[]', '$each', '$check_for_component_return', '$dummy_value?', '$==', '$empty?', '$pushable_string?', '$try', '$log', '$loading?', '$define_method', '$unshift', '$hyper_component?', '$send']); (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $RenderingContext(){}; - var self = $RenderingContext = $klass($base, $super, 'RenderingContext', $RenderingContext); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RenderingContext'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $NotQuiet(){}; - var self = $NotQuiet = $klass($base, $super, 'NotQuiet', $NotQuiet); + var self = $klass($base, $super, 'NotQuiet'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_raise_if_not_quiet$q_1, TMP_raise_if_not_quiet$eq_2, TMP_quiet_test_3, TMP_render_4, TMP_build_12, TMP_delete_13, TMP_rendered$q_14, TMP_replace_15, TMP_remove_nodes_from_args_17, TMP_run_child_block_18, TMP_raise_render_error_20, TMP_improper_render_21; + var $nesting = [self].concat($parent_nesting), $raise_if_not_quiet$ques$1, $raise_if_not_quiet$eq$2, $quiet_test$3, $render_string$4, $render$5, $build$13, $delete$14, $rendered$ques$15, $replace$16, $remove_nodes_from_args$17, $run_child_block$19, $check_for_component_return$21, $dummy_value$ques$22, $pushable_string$ques$23, $improper_render$24; self.$attr_accessor("waiting_on_resources"); - Opal.defn(self, '$raise_if_not_quiet?', TMP_raise_if_not_quiet$q_1 = function() { + Opal.def(self, '$raise_if_not_quiet?', $raise_if_not_quiet$ques$1 = function() { var self = this; if (self.raise_if_not_quiet == null) self.raise_if_not_quiet = nil; return self.raise_if_not_quiet - }, TMP_raise_if_not_quiet$q_1.$$arity = 0); + }, $raise_if_not_quiet$ques$1.$$arity = 0); - Opal.defn(self, '$raise_if_not_quiet=', TMP_raise_if_not_quiet$eq_2 = function(x) { + Opal.def(self, '$raise_if_not_quiet=', $raise_if_not_quiet$eq$2 = function(x) { var self = this; return (self.raise_if_not_quiet = x) - }, TMP_raise_if_not_quiet$eq_2.$$arity = 1); + }, $raise_if_not_quiet$eq$2.$$arity = 1); - Opal.defn(self, '$quiet_test', TMP_quiet_test_3 = function $$quiet_test(component) { - var $a, self = this; + Opal.def(self, '$quiet_test', $quiet_test$3 = function $$quiet_test(component) { + var self = this, $ret_or_1 = nil; - if ($truthy(($truthy($a = component.$waiting_on_resources()) ? self['$raise_if_not_quiet?']() : $a))) { - } else { + if ($truthy((function() {if ($truthy(($ret_or_1 = component.$waiting_on_resources()))) { + return self['$raise_if_not_quiet?']() + } else { + return $ret_or_1 + }; return nil; })())) { + } else { return nil }; - return self.$raise(Opal.const_get_relative($nesting, 'NotQuiet').$new("" + (component) + " is waiting on resources")); - }, TMP_quiet_test_3.$$arity = 1); + return self.$raise($$($nesting, 'NotQuiet').$new("" + (component) + " is waiting on resources")); + }, $quiet_test$3.$$arity = 1); + + Opal.def(self, '$render_string', $render_string$4 = function $$render_string(string) { + var self = this, $ret_or_2 = nil; + if (self.buffer == null) self.buffer = nil; + + + self.buffer = (function() {if ($truthy(($ret_or_2 = self.buffer))) { + return $ret_or_2 + } else { + return [] + }; return nil; })(); + return self.buffer['$<<'](string); + }, $render_string$4.$$arity = 1); - Opal.defn(self, '$render', TMP_render_4 = function $$render(name, $a_rest) { - var $b, TMP_5, self = this, args, $iter = TMP_render_4.$$p, block = $iter || nil, was_outer_most = nil, element = nil, $writer = nil; + Opal.def(self, '$render', $render$5 = function $$render(name, $a) { + var $iter = $render$5.$$p, block = $iter || nil, $post_args, args, $$6, self = this, was_outer_most = nil, $ret_or_3 = nil, element = nil, $writer = nil; if (self.not_outer_most == null) self.not_outer_most = nil; if (self.buffer == null) self.buffer = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_render_4.$$p = null; + if ($iter) $render$5.$$p = null; + + + if ($iter) $render$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; return (function() { try { was_outer_most = self.not_outer_most['$!'](); self.not_outer_most = true; self.$remove_nodes_from_args(args); - if ($truthy(self.buffer)) { - } else { - self.buffer = ($truthy($b = self.buffer) ? $b : []) - }; + self.buffer = (function() {if ($truthy(($ret_or_3 = self.buffer))) { + return $ret_or_3 + } else { + return [] + }; return nil; })(); if ($truthy(block)) { - element = $send(self, 'build', [], (TMP_5 = function(){var self = TMP_5.$$s || this, TMP_6, TMP_7, TMP_9, TMP_10, TMP_11, saved_waiting_on_resources = nil, $writer = nil, buffer = nil, buffer_s = nil; + element = $send(self, 'build', [], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s, $$7, $$8, $$10, saved_waiting_on_resources = nil, $writer = nil, buffer = nil; if (self.buffer == null) self.buffer = nil; - + saved_waiting_on_resources = nil; $writer = [nil]; $send(self, 'waiting_on_resources=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - $send(self, 'run_child_block', [name['$nil?']()], block.$to_proc()); + $send(self, 'run_child_block', [], block.$to_proc()); if ($truthy(name)) { buffer = self.buffer.$dup(); - return $send($send(Opal.const_get_relative($nesting, 'ReactWrapper'), 'create_element', [name].concat(Opal.to_a(args)), (TMP_6 = function(){var self = TMP_6.$$s || this; + return $send($send($$($nesting, 'ReactWrapper'), 'create_element', [name].concat(Opal.to_a(args)), ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; - return buffer}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6)), 'tap', [], (TMP_7 = function(element){var self = TMP_7.$$s || this, $a, TMP_8; -if (element == null) element = nil; - + return buffer}, $$7.$$s = self, $$7.$$arity = 0, $$7)), 'tap', [], ($$8 = function(element){var self = $$8.$$s == null ? this : $$8.$$s, $$9, $ret_or_4 = nil, $ret_or_5 = nil; + + + + if (element == null) { + element = nil; + }; - $writer = [($truthy($a = saved_waiting_on_resources) ? $a : $send(buffer, 'detect', [], (TMP_8 = function(e){var self = TMP_8.$$s || this; -if (e == null) e = nil; - if ($truthy(e['$respond_to?']("waiting_on_resources"))) { - return e.$waiting_on_resources() + $writer = [(function() {if ($truthy(($ret_or_4 = saved_waiting_on_resources))) { + return $ret_or_4 + } else { + return $send(buffer, 'detect', [], ($$9 = function(e){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (e == null) { + e = nil; + }; + if ($truthy(e['$respond_to?']("waiting_on_resources"))) { + return e.$waiting_on_resources() } else { - return nil - }}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8))['$!']()['$!']())]; + return nil + };}, $$9.$$s = self, $$9.$$arity = 1, $$9))['$!']()['$!']() + }; return nil; })()]; $send(element, 'waiting_on_resources=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(buffer.$last()['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - return ($truthy($a = element.$waiting_on_resources()) ? $a : (($writer = [self.$waiting_on_resources()]), $send(element, 'waiting_on_resources=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])) + if ($truthy(buffer.$last()['$is_a?']($$($nesting, 'String')))) { + if ($truthy(($ret_or_5 = element.$waiting_on_resources()))) { + return $ret_or_5 } else { + + $writer = [self.$waiting_on_resources()]; + $send(element, 'waiting_on_resources=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + } + } else { return nil - };}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); - } else if ($truthy(self.buffer.$last()['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')))) { - return $send(self.buffer.$last(), 'tap', [], (TMP_9 = function(element){var self = TMP_9.$$s || this, $a; -if (element == null) element = nil; - return ($truthy($a = element.$waiting_on_resources()) ? $a : (($writer = [saved_waiting_on_resources]), $send(element, 'waiting_on_resources=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)) - } else { + };}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + } else { - buffer_s = self.buffer.$last().$to_s(); - return $send($send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', ["span"], (TMP_10 = function(){var self = TMP_10.$$s || this; + buffer = $send(self.buffer, 'collect', [], ($$10 = function(item){var self = $$10.$$s == null ? this : $$10.$$s, $$11, $$12, $ret_or_6 = nil; - return buffer_s}, TMP_10.$$s = self, TMP_10.$$arity = 0, TMP_10)), 'tap', [], (TMP_11 = function(element){var self = TMP_11.$$s || this; -if (element == null) element = nil; - - $writer = [saved_waiting_on_resources]; - $send(element, 'waiting_on_resources=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)); - };}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5)) - } else if ($truthy(name['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + + + if (item == null) { + item = nil; + }; + if ($truthy(item['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + + if ($truthy(($ret_or_6 = item.$waiting_on_resources()))) { + $ret_or_6 + } else { + + $writer = [saved_waiting_on_resources]; + $send(item, 'waiting_on_resources=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; + return item; + } else { + return $send($send($$($nesting, 'RenderingContext'), 'render', ["span"], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; + + return item.$to_s()}, $$11.$$s = self, $$11.$$arity = 0, $$11)), 'tap', [], ($$12 = function(element){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (element == null) { + element = nil; + }; + $writer = [saved_waiting_on_resources]; + $send(element, 'waiting_on_resources=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$12.$$s = self, $$12.$$arity = 1, $$12)) + };}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + if ($truthy($rb_gt(buffer.$length(), 1))) { + return buffer + } else { + return buffer.$first() + }; + };}, $$6.$$s = self, $$6.$$arity = 0, $$6)) + } else if ($truthy(name['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { element = name - } else { + } else { - element = $send(Opal.const_get_relative($nesting, 'ReactWrapper'), 'create_element', [name].concat(Opal.to_a(args))); + element = $send($$($nesting, 'ReactWrapper'), 'create_element', [name].concat(Opal.to_a(args))); $writer = [self.$waiting_on_resources()]; $send(element, 'waiting_on_resources=', Opal.to_a($writer)); @@ -20452,43 +22558,44 @@ if (element == null) element = nil; } finally { (function() {if ($truthy(was_outer_most)) { return (self.not_outer_most = (self.buffer = nil)) - } else { + } else { return nil }; return nil; })() - }; })() - }, TMP_render_4.$$arity = -2); + }; })(); + }, $render$5.$$arity = -2); - Opal.defn(self, '$build', TMP_build_12 = function $$build() { - var self = this, $iter = TMP_build_12.$$p, $yield = $iter || nil, current = nil, return_val = nil; + Opal.def(self, '$build', $build$13 = function $$build() { + var $iter = $build$13.$$p, $yield = $iter || nil, self = this, current = nil, return_val = nil; if (self.buffer == null) self.buffer = nil; - if ($iter) TMP_build_12.$$p = null; + if ($iter) $build$13.$$p = null; current = self.buffer; self.buffer = []; return_val = Opal.yield1($yield, self.buffer); self.buffer = current; return return_val; - }, TMP_build_12.$$arity = 0); + }, $build$13.$$arity = 0); - Opal.defn(self, '$delete', TMP_delete_13 = function(element) { + Opal.def(self, '$delete', $delete$14 = function(element) { var self = this; if (self.buffer == null) self.buffer = nil; self.buffer.$delete(element); + self.last_deleted = element; return element; - }, TMP_delete_13.$$arity = 1); - Opal.alias(self, "as_node", "delete"); + }, $delete$14.$$arity = 1); + $alias(self, "as_node", "delete"); - Opal.defn(self, '$rendered?', TMP_rendered$q_14 = function(element) { + Opal.def(self, '$rendered?', $rendered$ques$15 = function(element) { var self = this; if (self.buffer == null) self.buffer = nil; return self.buffer['$include?'](element) - }, TMP_rendered$q_14.$$arity = 1); + }, $rendered$ques$15.$$arity = 1); - Opal.defn(self, '$replace', TMP_replace_15 = function $$replace(e1, e2) { + Opal.def(self, '$replace', $replace$16 = function $$replace(e1, e2) { var self = this, $writer = nil; if (self.buffer == null) self.buffer = nil; @@ -20496,259 +22603,319 @@ if (element == null) element = nil; $writer = [self.buffer.$index(e1), e2]; $send(self.buffer, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_replace_15.$$arity = 2); + }, $replace$16.$$arity = 2); - Opal.defn(self, '$remove_nodes_from_args', TMP_remove_nodes_from_args_17 = function $$remove_nodes_from_args(args) { - var $a, TMP_16, self = this; + Opal.def(self, '$remove_nodes_from_args', $remove_nodes_from_args$17 = function $$remove_nodes_from_args(args) { + var $$18, self = this, $ret_or_7 = nil; - if ($truthy(($truthy($a = args['$[]'](0)) ? args['$[]'](0)['$is_a?'](Opal.const_get_relative($nesting, 'Hash')) : $a))) { - return $send(args['$[]'](0), 'each', [], (TMP_16 = function(key, value){var self = TMP_16.$$s || this; -if (key == null) key = nil;if (value == null) value = nil; - + if ($truthy((function() {if ($truthy(($ret_or_7 = args['$[]'](0)))) { + return args['$[]'](0)['$is_a?']($$($nesting, 'Hash')) + } else { + return $ret_or_7 + }; return nil; })())) { + return $send(args['$[]'](0), 'each', [], ($$18 = function(key, value){var self = $$18.$$s == null ? this : $$18.$$s; + + + + if (key == null) { + key = nil; + }; + + if (value == null) { + value = nil; + }; try { - if ($truthy(value['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + if ($truthy(value['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { return value.$delete() - } else { + } else { return nil } } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - };}, TMP_16.$$s = self, TMP_16.$$arity = 2, TMP_16)) - } else { + };}, $$18.$$s = self, $$18.$$arity = 2, $$18)) + } else { return nil } - }, TMP_remove_nodes_from_args_17.$$arity = 1); + }, $remove_nodes_from_args$17.$$arity = 1); - Opal.defn(self, '$run_child_block', TMP_run_child_block_18 = function $$run_child_block(is_outer_scope) { - var $a, TMP_19, $b, self = this, $iter = TMP_run_child_block_18.$$p, $yield = $iter || nil, result = nil; + Opal.def(self, '$run_child_block', $run_child_block$19 = function $$run_child_block() { + var $$20, $iter = $run_child_block$19.$$p, $yield = $iter || nil, self = this, result = nil; + if (self.last_deleted == null) self.last_deleted = nil; if (self.buffer == null) self.buffer = nil; - if ($iter) TMP_run_child_block_18.$$p = null; + if ($iter) $run_child_block$19.$$p = null; result = Opal.yieldX($yield, []); - if ($truthy(($truthy($a = result['$respond_to?']("acts_as_string?")) ? result['$acts_as_string?']() : $a))) { - $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', ["span"], (TMP_19 = function(){var self = TMP_19.$$s || this; - - return result.$to_s()}, TMP_19.$$s = self, TMP_19.$$arity = 0, TMP_19)) - } else if ($truthy(($truthy($a = result['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? $a : ($truthy($b = result['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element'))) ? self.buffer['$empty?']() : $b)))) { - self.buffer['$<<'](result)}; - if ($truthy(($truthy($a = is_outer_scope) ? self.buffer['$!=']([result]) : $a))) { - return self.$raise_render_error(result) - } else { + self.$check_for_component_return(result); + if ($truthy(self['$dummy_value?'](result))) { + $send($$($nesting, 'RenderingContext'), 'render', ["span"], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s; + + return result.$to_s()}, $$20.$$s = self, $$20.$$arity = 0, $$20)) + } else if ($truthy(result['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + if (self.last_deleted['$=='](result)) { + } else if ($truthy(self.buffer['$empty?']())) { + self.buffer['$<<'](result)} + } else if ($truthy(self['$pushable_string?'](result))) { + self.buffer['$<<'](result.$to_s())}; + return (self.last_deleted = nil); + }, $run_child_block$19.$$arity = 0); + + Opal.def(self, '$check_for_component_return', $check_for_component_return$21 = function $$check_for_component_return(result) { + var self = this; + + + if ($truthy(result.$try("hyper_component?"))) { + } else { return nil }; - }, TMP_run_child_block_18.$$arity = 1); + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers').$log("" + "a component's render method returned the component class " + (result) + ", did you mean to say " + (result) + "()", "warning"); + }, $check_for_component_return$21.$$arity = 1); - Opal.defn(self, '$raise_render_error', TMP_raise_render_error_20 = function $$raise_render_error(result) { - var self = this; + Opal.def(self, '$dummy_value?', $dummy_value$ques$22 = function(result) { + var self = this, $ret_or_8 = nil; + + if ($truthy(($ret_or_8 = result['$respond_to?']("loading?")))) { + return result['$loading?']() + } else { + return $ret_or_8 + } + }, $dummy_value$ques$22.$$arity = 1); + + Opal.def(self, '$pushable_string?', $pushable_string$ques$23 = function(result) { + var self = this, $ret_or_9 = nil, $ret_or_10 = nil; if (self.buffer == null) self.buffer = nil; - if (self.buffer.$count()['$=='](1)) { - self.$improper_render("A different element was returned than was generated within the DSL.", "Possibly improper use of Element#delete.")}; - if ($truthy($rb_gt(self.buffer.$count(), 1))) { - self.$improper_render("" + "Instead " + (self.buffer.$count()) + " elements were generated.", "Do you want to wrap your elements in a div?")}; - if ($truthy(result.$try("hyper_component?"))) { - self.$improper_render("" + "Instead the component " + (result) + " was returned.", "" + "Did you mean " + (result) + "()?")}; - return self.$improper_render("" + "Instead the " + (result.$class()) + " " + (result) + " was returned.", "You may need to convert this to a string."); - }, TMP_raise_render_error_20.$$arity = 1); - return (Opal.defn(self, '$improper_render', TMP_improper_render_21 = function $$improper_render(message, solution) { + if ($truthy(self.buffer['$empty?']())) { + } else { + return result['$is_a?']($$($nesting, 'String')) + }; + if ($truthy(($ret_or_9 = (function() {if ($truthy(($ret_or_10 = result))) { + return result['$respond_to?']("to_n") + } else { + return $ret_or_10 + }; return nil; })()))) { + return result['$is_a?']($$($nesting, 'Array'))['$!']() + } else { + return $ret_or_9 + }; + }, $pushable_string$ques$23.$$arity = 1); + return (Opal.def(self, '$improper_render', $improper_render$24 = function $$improper_render(message, solution) { var self = this; - return self.$raise("" + "a component's render method must generate and return exactly 1 element or a string.\n" + ("" + " " + (message) + " " + (solution))) - }, TMP_improper_render_21.$$arity = 2), nil) && 'improper_render'; + return nil + }, $improper_render$24.$$arity = 2), nil) && 'improper_render'; })(Opal.get_singleton_class(self), $nesting); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); return (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_22, TMP_Object_para_25, TMP_Object_br_28; + var $nesting = [self].concat($parent_nesting), $Object$25, $Object_para$29, $Object_br$31; - $send(["span", "td", "th"], 'each', [], (TMP_Object_22 = function(tag){var self = TMP_Object_22.$$s || this, TMP_23; -if (tag == null) tag = nil; - return $send(self, 'define_method', [tag], (TMP_23 = function($a_rest){var self = TMP_23.$$s || this, block, args, $b, TMP_24; + $send(["span", "td", "th"], 'each', [], ($Object$25 = function(tag){var self = $Object$25.$$s == null ? this : $Object$25.$$s, $$26; - block = TMP_23.$$p || nil; - if (block) TMP_23.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + if (tag == null) { + tag = nil; + }; + return $send(self, 'define_method', [tag], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $iter = $$26.$$p, block = $iter || nil, $post_args, args, $$28, $ret_or_11 = nil; + + + + if ($iter) $$26.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; args.$unshift(tag); - if ($truthy(($truthy($b = self['$respond_to?']("hyper_component?")) ? self['$hyper_component?']() : $b))) { + if ($truthy((function() {if ($truthy(($ret_or_11 = self['$respond_to?']("hyper_component?")))) { + return self['$hyper_component?']() + } else { + return $ret_or_11 + }; return nil; })())) { return $send(self, 'send', Opal.to_a(args), block.$to_proc())}; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', Opal.to_a(args), (TMP_24 = function(){var self = TMP_24.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', Opal.to_a(args), ($$28 = function(){var self = $$28.$$s == null ? this : $$28.$$s; - return self.$to_s()}, TMP_24.$$s = self, TMP_24.$$arity = 0, TMP_24));}, TMP_23.$$s = self, TMP_23.$$arity = -1, TMP_23))}, TMP_Object_22.$$s = self, TMP_Object_22.$$arity = 1, TMP_Object_22)); + return self.$to_s()}, $$28.$$s = self, $$28.$$arity = 0, $$28));}, $$26.$$s = self, $$26.$$arity = -1, $$26));}, $Object$25.$$s = self, $Object$25.$$arity = 1, $Object$25)); - Opal.defn(self, '$para', TMP_Object_para_25 = function $$para($a_rest) { - var $b, TMP_26, self = this, args, $iter = TMP_Object_para_25.$$p, block = $iter || nil; + Opal.def(self, '$para', $Object_para$29 = function $$para($a) { + var $iter = $Object_para$29.$$p, block = $iter || nil, $post_args, args, $$30, self = this, $ret_or_12 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Object_para_25.$$p = null; + if ($iter) $Object_para$29.$$p = null; + + + if ($iter) $Object_para$29.$$p = null;; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; args.$unshift("p"); - if ($truthy(($truthy($b = self['$respond_to?']("hyper_component?")) ? self['$hyper_component?']() : $b))) { + if ($truthy((function() {if ($truthy(($ret_or_12 = self['$respond_to?']("hyper_component?")))) { + return self['$hyper_component?']() + } else { + return $ret_or_12 + }; return nil; })())) { return $send(self, 'send', Opal.to_a(args), block.$to_proc())}; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', Opal.to_a(args), (TMP_26 = function(){var self = TMP_26.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', Opal.to_a(args), ($$30 = function(){var self = $$30.$$s == null ? this : $$30.$$s; - return self.$to_s()}, TMP_26.$$s = self, TMP_26.$$arity = 0, TMP_26)); - }, TMP_Object_para_25.$$arity = -1); - return (Opal.defn(self, '$br', TMP_Object_br_28 = function $$br() { - var $a, TMP_27, self = this; + return self.$to_s()}, $$30.$$s = self, $$30.$$arity = 0, $$30)); + }, $Object_para$29.$$arity = -1); + return (Opal.def(self, '$br', $Object_br$31 = function $$br() { + var $$32, self = this, $ret_or_13 = nil; - if ($truthy(($truthy($a = self['$respond_to?']("hyper_component?")) ? self['$hyper_component?']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_13 = self['$respond_to?']("hyper_component?")))) { + return self['$hyper_component?']() + } else { + return $ret_or_13 + }; return nil; })())) { return self.$send("br")}; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', ["span"], (TMP_27 = function(){var self = TMP_27.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [$$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'FRAGMENT')], ($$32 = function(){var self = $$32.$$s == null ? this : $$32.$$s, $$33; - - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render(self.$to_s()); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render("br");}, TMP_27.$$s = self, TMP_27.$$arity = 0, TMP_27)); - }, TMP_Object_br_28.$$arity = 0), nil) && 'br'; + + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [$$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'FRAGMENT')], ($$33 = function(){var self = $$33.$$s == null ? this : $$33.$$s; + + return self.$to_s()}, $$33.$$s = self, $$33.$$arity = 0, $$33)); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$render($$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'BR'));}, $$32.$$s = self, $$32.$$arity = 0, $$32)); + }, $Object_br$31.$$arity = 0), nil) && 'br'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/children"] = function(Opal) { +Opal.modules["hyperstack/component/children"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $lambda = Opal.lambda, $truthy = Opal.truthy; - Opal.add_stubs(['$include', '$each', '$to_proc', '$lambda', '$render', '$to_enum', '$length', '$>', '$new', '$call', '$<<', '$alias_method']); + Opal.add_stubs(['$include', '$each', '$to_proc', '$render', '$to_enum', '$length', '$>', '$new', '$call', '$<<', '$alias_method']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Children(){}; - var self = $Children = $klass($base, $super, 'Children', $Children); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Children'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Children_initialize_1, TMP_Children_render_2, TMP_Children_to_proc_4, TMP_Children_each_5, TMP_Children_length_7; + var $nesting = [self].concat($parent_nesting), $Children_initialize$1, $Children_render$2, $Children_to_proc$3, $Children_each$5, $Children_length$7; - def.children = def.length = nil; + self.$$prototype.children = self.$$prototype.length = nil; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); + self.$include($$($nesting, 'Enumerable')); - Opal.defn(self, '$initialize', TMP_Children_initialize_1 = function $$initialize(children) { + Opal.def(self, '$initialize', $Children_initialize$1 = function $$initialize(children) { var self = this; return (self.children = children) - }, TMP_Children_initialize_1.$$arity = 1); + }, $Children_initialize$1.$$arity = 1); - Opal.defn(self, '$render', TMP_Children_render_2 = function $$render() { + Opal.def(self, '$render', $Children_render$2 = function $$render() { var self = this; return $send(self, 'each', [], "render".$to_proc()) - }, TMP_Children_render_2.$$arity = 0); + }, $Children_render$2.$$arity = 0); - Opal.defn(self, '$to_proc', TMP_Children_to_proc_4 = function $$to_proc() { - var TMP_3, self = this; + Opal.def(self, '$to_proc', $Children_to_proc$3 = function $$to_proc() { + var $$4, self = this; - return $send(self, 'lambda', [], (TMP_3 = function(){var self = TMP_3.$$s || this; + return $lambda(($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - return self.$render()}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)) - }, TMP_Children_to_proc_4.$$arity = 0); + return self.$render()}, $$4.$$s = self, $$4.$$arity = 0, $$4)) + }, $Children_to_proc$3.$$arity = 0); - Opal.defn(self, '$each', TMP_Children_each_5 = function $$each() { - var TMP_6, self = this, $iter = TMP_Children_each_5.$$p, block = $iter || nil, collection = nil, element = nil; + Opal.def(self, '$each', $Children_each$5 = function $$each() { + var $iter = $Children_each$5.$$p, block = $iter || nil, $$6, self = this, collection = nil, element = nil; - if ($iter) TMP_Children_each_5.$$p = null; + if ($iter) $Children_each$5.$$p = null; + + if ($iter) $Children_each$5.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'to_enum', ["each"], (TMP_6 = function(){var self = TMP_6.$$s || this; + } else { + return $send(self, 'to_enum', ["each"], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; - return self.$length()}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6)) + return self.$length()}, $$6.$$s = self, $$6.$$arity = 0, $$6)) }; if ($truthy($rb_gt(self.$length(), 0))) { - } else { + } else { return [] }; collection = []; React.Children.forEach(self.children, function(context){ - ((element = Opal.const_get_relative($nesting, 'Element').$new(context)), block.$call(element), collection['$<<'](element)) + ((element = $$($nesting, 'Element').$new(context, "wrap_child")), block.$call(element), collection['$<<'](element)) }) ; return collection; - }, TMP_Children_each_5.$$arity = 0); + }, $Children_each$5.$$arity = 0); - Opal.defn(self, '$length', TMP_Children_length_7 = function $$length() { - var $a, self = this; + Opal.def(self, '$length', $Children_length$7 = function $$length() { + var self = this, $ret_or_1 = nil; - return (self.length = ($truthy($a = self.length) ? $a : React.Children.count(self.children))) - }, TMP_Children_length_7.$$arity = 0); + return (self.length = (function() {if ($truthy(($ret_or_1 = self.length))) { + return $ret_or_1 + } else { + return React.Children.count(self.children) + }; return nil; })()) + }, $Children_length$7.$$arity = 0); return self.$alias_method("size", "length"); })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) { +Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $lambda = Opal.lambda, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$new', '$include?', '$param_accessor_style', '$raise', '$[]', '$dom_node', '$==', '$=~', '$pluralize', '$set_or_replace_state_or_prop', '$to_proc', '$private', '$lambda', '$instance_eval', '$callbacks?', '$class', '$RescueWrapper', '$call', '$after_error_args=', '$-', '$__hyperstack_component_run_post_render_hooks', '$__hyperstack_component_rescue_wrapper', '$__hyperstack_router_wrapper', '$shallow_to_n']); + Opal.add_stubs(['$require', '$new', '$include?', '$param_accessor_style', '$raise', '$[]', '$dom_node', '$==', '$=~', '$pluralize', '$set_or_replace_state_or_prop', '$to_proc', '$private', '$instance_eval', '$callbacks?', '$class', '$RescueWrapper', '$call', '$after_error_args=', '$-', '$__hyperstack_component_run_post_render_hooks', '$__hyperstack_component_rescue_wrapper', '$__hyperstack_router_wrapper', '$shallow_to_n']); self.$require("hyperstack/component/children"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $InstanceMethods, self = $InstanceMethods = $module($base, 'InstanceMethods'); + return (function($base, $parent_nesting) { + var self = $module($base, 'InstanceMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_InstanceMethods_children_1, TMP_InstanceMethods_params_2, TMP_InstanceMethods_props_3, TMP_InstanceMethods_dom_node_4, TMP_InstanceMethods_jq_node_5, TMP_InstanceMethods_mounted$q_6, TMP_InstanceMethods_pluralize_7, TMP_InstanceMethods_force_update$B_8, TMP_InstanceMethods_set_state_9, TMP_InstanceMethods_set_state$B_10, TMP_InstanceMethods___hyperstack_router_wrapper_11, TMP_InstanceMethods___hyperstack_component_rescue_wrapper_13, TMP_InstanceMethods___hyperstack_component_select_wrappers_14, TMP_InstanceMethods_set_or_replace_state_or_prop_15; + var $nesting = [self].concat($parent_nesting), $InstanceMethods_children$1, $InstanceMethods_params$2, $InstanceMethods_props$3, $InstanceMethods_dom_node$4, $InstanceMethods_jq_node$5, $InstanceMethods_mounted$ques$6, $InstanceMethods_pluralize$7, $InstanceMethods_force_update$excl$8, $InstanceMethods_set_state$9, $InstanceMethods_set_state$excl$10, $InstanceMethods___hyperstack_router_wrapper$11, $InstanceMethods___hyperstack_component_rescue_wrapper$13, $InstanceMethods___hyperstack_component_select_wrappers$14, $InstanceMethods_set_or_replace_state_or_prop$15; - Opal.defn(self, '$children', TMP_InstanceMethods_children_1 = function $$children() { + Opal.def(self, '$children', $InstanceMethods_children$1 = function $$children() { var self = this; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Children').$new(self.__hyperstack_component_native.props.children) - }, TMP_InstanceMethods_children_1.$$arity = 0); + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Children').$new(self.__hyperstack_component_native.props.children) + }, $InstanceMethods_children$1.$$arity = 0); - Opal.defn(self, '$params', TMP_InstanceMethods_params_2 = function $$params() { + Opal.def(self, '$params', $InstanceMethods_params$2 = function $$params() { var self = this; if (self.__hyperstack_component_params_wrapper == null) self.__hyperstack_component_params_wrapper = nil; @@ -20756,112 +22923,134 @@ Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) if ($truthy(["hyperstack", "accessors"]['$include?'](self.__hyperstack_component_params_wrapper.$param_accessor_style()))) { self.$raise("" + "params are now directly accessible via instance variables.\n" + " to access the legacy behavior add `param_accessor_style = :legacy` " + "to your component class\n" + " to access both behaviors add `param_accessor_style = :both` " + "to your component class")}; return self.__hyperstack_component_params_wrapper; - }, TMP_InstanceMethods_params_2.$$arity = 0); + }, $InstanceMethods_params$2.$$arity = 0); - Opal.defn(self, '$props', TMP_InstanceMethods_props_3 = function $$props() { + Opal.def(self, '$props', $InstanceMethods_props$3 = function $$props() { var self = this; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - return Opal.const_get_relative($nesting, 'Hash').$new(self.__hyperstack_component_native.props) - }, TMP_InstanceMethods_props_3.$$arity = 0); + return $$($nesting, 'Hash').$new(self.__hyperstack_component_native.props) + }, $InstanceMethods_props$3.$$arity = 0); - Opal.defn(self, '$dom_node', TMP_InstanceMethods_dom_node_4 = function $$dom_node() { + Opal.def(self, '$dom_node', $InstanceMethods_dom_node$4 = function $$dom_node() { var self = this; return ReactDOM.findDOMNode(self.__hyperstack_component_native) - }, TMP_InstanceMethods_dom_node_4.$$arity = 0); + }, $InstanceMethods_dom_node$4.$$arity = 0); - Opal.defn(self, '$jq_node', TMP_InstanceMethods_jq_node_5 = function $$jq_node() { + Opal.def(self, '$jq_node', $InstanceMethods_jq_node$5 = function $$jq_node() { var self = this; - return Opal.const_get_qualified('::', 'Element')['$[]'](self.$dom_node()) - }, TMP_InstanceMethods_jq_node_5.$$arity = 0); + return $$$('::', 'Element')['$[]'](self.$dom_node()) + }, $InstanceMethods_jq_node$5.$$arity = 0); - Opal.defn(self, '$mounted?', TMP_InstanceMethods_mounted$q_6 = function() { + Opal.def(self, '$mounted?', $InstanceMethods_mounted$ques$6 = function() { var self = this; return (self.__hyperstack_component_is_mounted === undefined) ? false : self.__hyperstack_component_is_mounted - }, TMP_InstanceMethods_mounted$q_6.$$arity = 0); + }, $InstanceMethods_mounted$ques$6.$$arity = 0); - Opal.defn(self, '$pluralize', TMP_InstanceMethods_pluralize_7 = function $$pluralize(count, singular, plural) { - var $a, self = this, word = nil; + Opal.def(self, '$pluralize', $InstanceMethods_pluralize$7 = function $$pluralize(count, singular, plural) { + var self = this, word = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + if (plural == null) { plural = nil; - } - - word = (function() {if ($truthy(($truthy($a = count['$=='](1)) ? $a : count['$=~'](/^1(\.0+)?$/)))) { + }; + word = (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = count['$=='](1)))) { + return $ret_or_1 + } else { + return count['$=~'](/^1(\.0+)?$/) + }; return nil; })())) { return singular - } else { - return ($truthy($a = plural) ? $a : singular.$pluralize()) + } else if ($truthy(($ret_or_2 = plural))) { + return $ret_or_2 + } else { + return singular.$pluralize() }; return nil; })(); - return "" + (($truthy($a = count) ? $a : 0)) + " " + (word); - }, TMP_InstanceMethods_pluralize_7.$$arity = -3); + return "" + ((function() {if ($truthy(($ret_or_3 = count))) { + return $ret_or_3 + } else { + return 0 + }; return nil; })()) + " " + (word); + }, $InstanceMethods_pluralize$7.$$arity = -3); - Opal.defn(self, '$force_update!', TMP_InstanceMethods_force_update$B_8 = function() { + Opal.def(self, '$force_update!', $InstanceMethods_force_update$excl$8 = function() { var self = this; self.__hyperstack_component_native.forceUpdate(); return self; - }, TMP_InstanceMethods_force_update$B_8.$$arity = 0); + }, $InstanceMethods_force_update$excl$8.$$arity = 0); - Opal.defn(self, '$set_state', TMP_InstanceMethods_set_state_9 = function $$set_state(state) { - var self = this, $iter = TMP_InstanceMethods_set_state_9.$$p, block = $iter || nil; + Opal.def(self, '$set_state', $InstanceMethods_set_state$9 = function $$set_state(state) { + var $iter = $InstanceMethods_set_state$9.$$p, block = $iter || nil, self = this; - if ($iter) TMP_InstanceMethods_set_state_9.$$p = null; - return $send(self, 'set_or_replace_state_or_prop', [state, "setState"], block.$to_proc()) - }, TMP_InstanceMethods_set_state_9.$$arity = 1); + if ($iter) $InstanceMethods_set_state$9.$$p = null; + + + if ($iter) $InstanceMethods_set_state$9.$$p = null;; + return $send(self, 'set_or_replace_state_or_prop', [state, "setState"], block.$to_proc()); + }, $InstanceMethods_set_state$9.$$arity = 1); - Opal.defn(self, '$set_state!', TMP_InstanceMethods_set_state$B_10 = function(state) { - var self = this, $iter = TMP_InstanceMethods_set_state$B_10.$$p, block = $iter || nil; + Opal.def(self, '$set_state!', $InstanceMethods_set_state$excl$10 = function(state) { + var $iter = $InstanceMethods_set_state$excl$10.$$p, block = $iter || nil, self = this; - if ($iter) TMP_InstanceMethods_set_state$B_10.$$p = null; + if ($iter) $InstanceMethods_set_state$excl$10.$$p = null; + + if ($iter) $InstanceMethods_set_state$excl$10.$$p = null;; $send(self, 'set_or_replace_state_or_prop', [state, "setState"], block.$to_proc()); return self.__hyperstack_component_native.forceUpdate(); - }, TMP_InstanceMethods_set_state$B_10.$$arity = 1); + }, $InstanceMethods_set_state$excl$10.$$arity = 1); self.$private(); - Opal.defn(self, '$__hyperstack_router_wrapper', TMP_InstanceMethods___hyperstack_router_wrapper_11 = function $$__hyperstack_router_wrapper() { - var TMP_12, self = this, $iter = TMP_InstanceMethods___hyperstack_router_wrapper_11.$$p, block = $iter || nil; + Opal.def(self, '$__hyperstack_router_wrapper', $InstanceMethods___hyperstack_router_wrapper$11 = function $$__hyperstack_router_wrapper() { + var $iter = $InstanceMethods___hyperstack_router_wrapper$11.$$p, block = $iter || nil, $$12, self = this; - if ($iter) TMP_InstanceMethods___hyperstack_router_wrapper_11.$$p = null; - return $send(self, 'lambda', [], (TMP_12 = function(){var self = TMP_12.$$s || this; + if ($iter) $InstanceMethods___hyperstack_router_wrapper$11.$$p = null; + + + if ($iter) $InstanceMethods___hyperstack_router_wrapper$11.$$p = null;; + return $lambda(($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s; - return $send(self, 'instance_eval', [], block.$to_proc())}, TMP_12.$$s = self, TMP_12.$$arity = 0, TMP_12)) - }, TMP_InstanceMethods___hyperstack_router_wrapper_11.$$arity = 0); + return $send(self, 'instance_eval', [], block.$to_proc())}, $$12.$$s = self, $$12.$$arity = 0, $$12)); + }, $InstanceMethods___hyperstack_router_wrapper$11.$$arity = 0); - Opal.defn(self, '$__hyperstack_component_rescue_wrapper', TMP_InstanceMethods___hyperstack_component_rescue_wrapper_13 = function $$__hyperstack_component_rescue_wrapper(child) { + Opal.def(self, '$__hyperstack_component_rescue_wrapper', $InstanceMethods___hyperstack_component_rescue_wrapper$13 = function $$__hyperstack_component_rescue_wrapper(child) { var self = this; if ($truthy(self.$class()['$callbacks?']("__hyperstack_component_rescue_hook"))) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component').$RescueWrapper($hash2(["child", "children_elements"], {"child": self, "children_elements": child})) - } else { + return $$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component').$RescueWrapper($hash2(["child", "children_elements"], {"child": self, "children_elements": child})) + } else { return child.$call() } - }, TMP_InstanceMethods___hyperstack_component_rescue_wrapper_13.$$arity = 1); + }, $InstanceMethods___hyperstack_component_rescue_wrapper$13.$$arity = 1); - Opal.defn(self, '$__hyperstack_component_select_wrappers', TMP_InstanceMethods___hyperstack_component_select_wrappers_14 = function $$__hyperstack_component_select_wrappers() { - var self = this, $iter = TMP_InstanceMethods___hyperstack_component_select_wrappers_14.$$p, block = $iter || nil, $writer = nil; + Opal.def(self, '$__hyperstack_component_select_wrappers', $InstanceMethods___hyperstack_component_select_wrappers$14 = function $$__hyperstack_component_select_wrappers() { + var $iter = $InstanceMethods___hyperstack_component_select_wrappers$14.$$p, block = $iter || nil, self = this, $writer = nil; - if ($iter) TMP_InstanceMethods___hyperstack_component_select_wrappers_14.$$p = null; + if ($iter) $InstanceMethods___hyperstack_component_select_wrappers$14.$$p = null; + if ($iter) $InstanceMethods___hyperstack_component_select_wrappers$14.$$p = null;; + $writer = [nil]; - $send(Opal.const_get_relative($nesting, 'RescueWrapper'), 'after_error_args=', Opal.to_a($writer)); + $send($$($nesting, 'RescueWrapper'), 'after_error_args=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return self.$__hyperstack_component_run_post_render_hooks(self.$__hyperstack_component_rescue_wrapper($send(self, '__hyperstack_router_wrapper', [], block.$to_proc()))); - }, TMP_InstanceMethods___hyperstack_component_select_wrappers_14.$$arity = 0); - - Opal.defn(self, '$set_or_replace_state_or_prop', TMP_InstanceMethods_set_or_replace_state_or_prop_15 = function $$set_or_replace_state_or_prop(state_or_prop, method) { - var self = this, $iter = TMP_InstanceMethods_set_or_replace_state_or_prop_15.$$p, block = $iter || nil; + }, $InstanceMethods___hyperstack_component_select_wrappers$14.$$arity = 0); + return (Opal.def(self, '$set_or_replace_state_or_prop', $InstanceMethods_set_or_replace_state_or_prop$15 = function $$set_or_replace_state_or_prop(state_or_prop, method) { + var $iter = $InstanceMethods_set_or_replace_state_or_prop$15.$$p, block = $iter || nil, self = this; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - if ($iter) TMP_InstanceMethods_set_or_replace_state_or_prop_15.$$p = null; + if ($iter) $InstanceMethods_set_or_replace_state_or_prop$15.$$p = null; + + if ($iter) $InstanceMethods_set_or_replace_state_or_prop$15.$$p = null;; if ($truthy(self.__hyperstack_component_native)) { - } else { + } else { self.$raise("No native ReactComponent associated") }; var state_prop_n = state_or_prop.$shallow_to_n(); @@ -20879,7 +23068,7 @@ Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) } } - } else { + } else { if (self.__hyperstack_component_native.__opalInstanceInitializedState === true) { self.__hyperstack_component_native[method](state_prop_n); @@ -20892,15 +23081,14 @@ Opal.modules["hyperstack/internal/component/instance_methods"] = function(Opal) } }; - }, TMP_InstanceMethods_set_or_replace_state_or_prop_15.$$arity = 2); + }, $InstanceMethods_set_or_replace_state_or_prop$15.$$arity = 2), nil) && 'set_or_replace_state_or_prop'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/class_methods"] = function(Opal) { +Opal.modules["hyperstack/internal/component/class_methods"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_le(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); } @@ -20913,276 +23101,311 @@ Opal.modules["hyperstack/internal/component/class_methods"] = function(Opal) { function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range, $hash2 = Opal.hash2, $hash = Opal.hash; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $range = Opal.range, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias, $hash = Opal.hash; - Opal.add_stubs(['$create_element', '$to_proc', '$render', '$deprecation_warning', '$select', '$mounted_components', '$<=', '$class', '$param_accessor_style', '$props_wrapper', '$==', '$[]', '$<<', '$each', '$before_new_params', '$included', '$is_a?', '$type', '$define_method', '$__hyperstack_component_select_wrappers', '$instance_eval', '$__hyperstack_component_after_render_hook', '$on', '$instance_exec', '$empty?', '$__hyperstack_component_rescue_hook', '$!', '$detect', '$before_mount', '$before_update', '$after_mount', '$after_update', '$any?', '$respond_to?', '$haml_class_name', '$superclass', '$copy', '$validator', '$new', '$validate', '$>', '$count', '$+', '$name', '$join', '$default_props', '$build', '$first', '$delete', '$merge!', '$[]=', '$-', '$key?', '$optional', '$requires', '$all_other_params', '$props', '$=~', '$gsub', '$include?', '$event_camelize', '$event', '$call', '$arity', '$last', '$pop', '$state', '$singleton_class', '$__send__', '$mutate', '$native_mixins', '$static_call_backs', '$split', '$to_n', '$add_item_to_tree', '$Native', '$create_native_react_class', '$reverse', '$import_native_component', '$eval_native_react_component', '$raise', '$message', '$!=', '$length', '$inject']); + Opal.add_stubs(['$create_element', '$to_proc', '$render', '$deprecation_warning', '$select', '$mounted_components', '$<=', '$class', '$param_accessor_style', '$props_wrapper', '$==', '$[]', '$<<', '$each', '$before_new_params', '$included', '$is_a?', '$element_type', '$define_method', '$__hyperstack_component_select_wrappers', '$instance_eval', '$__hyperstack_component_after_render_hook', '$on', '$instance_exec', '$empty?', '$__hyperstack_component_rescue_hook', '$!', '$detect', '$before_mount', '$before_update', '$after_mount', '$after_update', '$any?', '$respond_to?', '$haml_class_name', '$superclass', '$copy', '$validator', '$new', '$validate', '$>', '$count', '$+', '$name', '$join', '$default_props', '$build', '$first', '$delete', '$merge!', '$[]=', '$-', '$key?', '$optional', '$requires', '$all_other_params', '$props', '$=~', '$gsub', '$include?', '$event_camelize', '$event', '$call', '$arity', '$last', '$pop', '$state', '$singleton_class', '$__send__', '$mutate', '$native_mixins', '$static_call_backs', '$split', '$to_n', '$add_item_to_tree', '$Native', '$create_native_react_class', '$reverse', '$import_native_component', '$eval_native_react_component', '$raise', '$message', '$!=', '$length', '$inject']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $ClassMethods, self = $ClassMethods = $module($base, 'ClassMethods'); + return (function($base, $parent_nesting) { + var self = $module($base, 'ClassMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassMethods_create_element_1, TMP_ClassMethods_insert_element_2, TMP_ClassMethods_deprecation_warning_3, TMP_ClassMethods_hyper_component$q_4, TMP_ClassMethods_allow_deprecated_render_definition$q_5, TMP_ClassMethods_mounted_components_7, TMP_ClassMethods_param_accessor_style_8, TMP_ClassMethods_backtrace_9, TMP_ClassMethods_append_backtrace_11, TMP_ClassMethods_before_receive_props_12, TMP_ClassMethods_render_13, TMP_ClassMethods_on_19, TMP_ClassMethods_rescues_22, TMP_ClassMethods_before_render_25, TMP_ClassMethods_after_render_26, TMP_ClassMethods_method_missing_27, TMP_ClassMethods_validator_28, TMP_ClassMethods_prop_types_29, TMP_ClassMethods_default_props_30, TMP_ClassMethods_params_31, TMP_ClassMethods_props_wrapper_32, TMP_ClassMethods_param_33, TMP_ClassMethods_collect_other_params_as_35, TMP_ClassMethods_fires_37, TMP_ClassMethods_define_state_38, TMP_ClassMethods_export_state_41, TMP_ClassMethods_native_mixin_45, TMP_ClassMethods_native_mixins_46, TMP_ClassMethods_static_call_back_47, TMP_ClassMethods_static_call_backs_48, TMP_ClassMethods_export_component_49, TMP_ClassMethods_imports_51, TMP_ClassMethods_add_item_to_tree_53, TMP_ClassMethods_to_n_54; + var $nesting = [self].concat($parent_nesting), $ClassMethods_create_element$1, $ClassMethods_insert_element$2, $ClassMethods_deprecation_warning$3, $ClassMethods_hyper_component$ques$4, $ClassMethods_allow_deprecated_render_definition$ques$5, $ClassMethods_mounted_components$6, $ClassMethods_param_accessor_style$8, $ClassMethods_backtrace$9, $ClassMethods_append_backtrace$10, $ClassMethods_before_receive_props$12, $ClassMethods_render$13, $ClassMethods_on$19, $ClassMethods_rescues$22, $ClassMethods_before_render$25, $ClassMethods_after_render$26, $ClassMethods_method_missing$27, $ClassMethods_validator$28, $ClassMethods_prop_types$29, $ClassMethods_default_props$30, $ClassMethods_params$31, $ClassMethods_props_wrapper$32, $ClassMethods_param$33, $ClassMethods_collect_other_params_as$34, $ClassMethods_fires$36, $ClassMethods_define_state$38, $ClassMethods_export_state$41, $ClassMethods_native_mixin$45, $ClassMethods_native_mixins$46, $ClassMethods_static_call_back$47, $ClassMethods_static_call_backs$48, $ClassMethods_export_component$49, $ClassMethods_imports$50, $ClassMethods_add_item_to_tree$52, $ClassMethods_to_n$54; - Opal.defn(self, '$create_element', TMP_ClassMethods_create_element_1 = function $$create_element($a_rest) { - var self = this, params, $iter = TMP_ClassMethods_create_element_1.$$p, children = $iter || nil; + Opal.def(self, '$create_element', $ClassMethods_create_element$1 = function $$create_element($a) { + var $iter = $ClassMethods_create_element$1.$$p, children = $iter || nil, $post_args, params, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_create_element_1.$$p = null; - return $send(Opal.const_get_relative($nesting, 'ReactWrapper'), 'create_element', [self].concat(Opal.to_a(params)), children.$to_proc()) - }, TMP_ClassMethods_create_element_1.$$arity = -1); - - Opal.defn(self, '$insert_element', TMP_ClassMethods_insert_element_2 = function $$insert_element($a_rest) { - var self = this, params, $iter = TMP_ClassMethods_insert_element_2.$$p, children = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_insert_element_2.$$p = null; - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [self].concat(Opal.to_a(params)), children.$to_proc()) - }, TMP_ClassMethods_insert_element_2.$$arity = -1); + if ($iter) $ClassMethods_create_element$1.$$p = null; + + + if ($iter) $ClassMethods_create_element$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + params = $post_args;; + return $send($$($nesting, 'ReactWrapper'), 'create_element', [self].concat(Opal.to_a(params)), children.$to_proc()); + }, $ClassMethods_create_element$1.$$arity = -1); + + Opal.def(self, '$insert_element', $ClassMethods_insert_element$2 = function $$insert_element($a) { + var $iter = $ClassMethods_insert_element$2.$$p, children = $iter || nil, $post_args, params, self = this; + + if ($iter) $ClassMethods_insert_element$2.$$p = null; + + + if ($iter) $ClassMethods_insert_element$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + params = $post_args;; + return $send($$($nesting, 'RenderingContext'), 'render', [self].concat(Opal.to_a(params)), children.$to_proc()); + }, $ClassMethods_insert_element$2.$$arity = -1); - Opal.defn(self, '$deprecation_warning', TMP_ClassMethods_deprecation_warning_3 = function $$deprecation_warning(message) { + Opal.def(self, '$deprecation_warning', $ClassMethods_deprecation_warning$3 = function $$deprecation_warning(message) { var self = this; - return Opal.const_get_relative($nesting, 'Hyperstack').$deprecation_warning(self, message) - }, TMP_ClassMethods_deprecation_warning_3.$$arity = 1); + return $$($nesting, 'Hyperstack').$deprecation_warning(self, message) + }, $ClassMethods_deprecation_warning$3.$$arity = 1); - Opal.defn(self, '$hyper_component?', TMP_ClassMethods_hyper_component$q_4 = function() { + Opal.def(self, '$hyper_component?', $ClassMethods_hyper_component$ques$4 = function() { var self = this; return true - }, TMP_ClassMethods_hyper_component$q_4.$$arity = 0); + }, $ClassMethods_hyper_component$ques$4.$$arity = 0); - Opal.defn(self, '$allow_deprecated_render_definition?', TMP_ClassMethods_allow_deprecated_render_definition$q_5 = function() { + Opal.def(self, '$allow_deprecated_render_definition?', $ClassMethods_allow_deprecated_render_definition$ques$5 = function() { var self = this; return false - }, TMP_ClassMethods_allow_deprecated_render_definition$q_5.$$arity = 0); + }, $ClassMethods_allow_deprecated_render_definition$ques$5.$$arity = 0); - Opal.defn(self, '$mounted_components', TMP_ClassMethods_mounted_components_7 = function $$mounted_components() { - var TMP_6, self = this; + Opal.def(self, '$mounted_components', $ClassMethods_mounted_components$6 = function $$mounted_components() { + var $$7, self = this; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component').$mounted_components(), 'select', [], (TMP_6 = function(c){var self = TMP_6.$$s || this; -if (c == null) c = nil; - return $rb_le(c.$class(), self)}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)) - }, TMP_ClassMethods_mounted_components_7.$$arity = 0); + return $send($$$($$($nesting, 'Hyperstack'), 'Component').$mounted_components(), 'select', [], ($$7 = function(c){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (c == null) { + c = nil; + }; + return $rb_le(c.$class(), self);}, $$7.$$s = self, $$7.$$arity = 1, $$7)) + }, $ClassMethods_mounted_components$6.$$arity = 0); - Opal.defn(self, '$param_accessor_style', TMP_ClassMethods_param_accessor_style_8 = function $$param_accessor_style($a_rest) { - var self = this, args; + Opal.def(self, '$param_accessor_style', $ClassMethods_param_accessor_style$8 = function $$param_accessor_style($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$props_wrapper(), 'param_accessor_style', Opal.to_a(args)) - }, TMP_ClassMethods_param_accessor_style_8.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$props_wrapper(), 'param_accessor_style', Opal.to_a(args)); + }, $ClassMethods_param_accessor_style$8.$$arity = -1); - Opal.defn(self, '$backtrace', TMP_ClassMethods_backtrace_9 = function $$backtrace($a_rest) { - var $b, self = this, args; + Opal.def(self, '$backtrace', $ClassMethods_backtrace$9 = function $$backtrace($a) { + var $post_args, args, self = this, $ret_or_1 = nil; if (self.__hyperstack_component_dont_catch_exceptions == null) self.__hyperstack_component_dont_catch_exceptions = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self.__hyperstack_component_dont_catch_exceptions = args['$[]'](0)['$==']("none"); - return (self.__hyperstack_component_backtrace_off = ($truthy($b = self.__hyperstack_component_dont_catch_exceptions) ? $b : args['$[]'](0)['$==']("off"))); - }, TMP_ClassMethods_backtrace_9.$$arity = -1); + return (self.__hyperstack_component_backtrace_off = (function() {if ($truthy(($ret_or_1 = self.__hyperstack_component_dont_catch_exceptions))) { + return $ret_or_1 + } else { + + return args['$[]'](0)['$==']("off"); + }; return nil; })()); + }, $ClassMethods_backtrace$9.$$arity = -1); - Opal.defn(self, '$append_backtrace', TMP_ClassMethods_append_backtrace_11 = function $$append_backtrace(message_array, backtrace) { - var TMP_10, self = this; + Opal.def(self, '$append_backtrace', $ClassMethods_append_backtrace$10 = function $$append_backtrace(message_array, backtrace) { + var $$11, self = this; message_array['$<<']("" + " " + (backtrace['$[]'](0))); - return $send(backtrace['$[]']($range(1, -1, false)), 'each', [], (TMP_10 = function(line){var self = TMP_10.$$s || this; -if (line == null) line = nil; - return message_array['$<<'](line)}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)); - }, TMP_ClassMethods_append_backtrace_11.$$arity = 2); - - Opal.defn(self, '$before_receive_props', TMP_ClassMethods_before_receive_props_12 = function $$before_receive_props($a_rest) { - var self = this, args, $iter = TMP_ClassMethods_before_receive_props_12.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_before_receive_props_12.$$p = null; + return $send(backtrace['$[]']($range(1, -1, false)), 'each', [], ($$11 = function(line){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (line == null) { + line = nil; + }; + return message_array['$<<'](line);}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + }, $ClassMethods_append_backtrace$10.$$arity = 2); + + Opal.def(self, '$before_receive_props', $ClassMethods_before_receive_props$12 = function $$before_receive_props($a) { + var $iter = $ClassMethods_before_receive_props$12.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $ClassMethods_before_receive_props$12.$$p = null; + + if ($iter) $ClassMethods_before_receive_props$12.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self.$deprecation_warning("'before_receive_props' is deprecated. Use the 'before_new_params' macro instead."); return $send(self, 'before_new_params', Opal.to_a(args), block.$to_proc()); - }, TMP_ClassMethods_before_receive_props_12.$$arity = -1); + }, $ClassMethods_before_receive_props$12.$$arity = -1); - Opal.defn(self, '$render', TMP_ClassMethods_render_13 = function $$render(container, params) { - var TMP_14, TMP_17, self = this, $iter = TMP_ClassMethods_render_13.$$p, block = $iter || nil; + Opal.def(self, '$render', $ClassMethods_render$13 = function $$render(container, params) { + var $iter = $ClassMethods_render$13.$$p, block = $iter || nil, $$14, $$17, self = this; + if ($iter) $ClassMethods_render$13.$$p = null; + + + if ($iter) $ClassMethods_render$13.$$p = null;; + if (container == null) { container = nil; - } + }; + if (params == null) { params = $hash2([], {}); - } - if ($iter) TMP_ClassMethods_render_13.$$p = null; - - Opal.const_get_relative($nesting, 'Tags').$included(self); + }; + $$($nesting, 'Tags').$included(self); if ($truthy(container)) { - if ($truthy(container['$is_a?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')))) { - container = container.$type()}; - return $send(self, 'define_method', ["__hyperstack_component_render"], (TMP_14 = function(){var self = TMP_14.$$s || this, TMP_15; + if ($truthy(container['$is_a?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')))) { + container = container.$element_type()}; + return $send(self, 'define_method', ["__hyperstack_component_render"], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s, $$15; - return $send(self, '__hyperstack_component_select_wrappers', [], (TMP_15 = function(){var self = TMP_15.$$s || this, TMP_16; + return $send(self, '__hyperstack_component_select_wrappers', [], ($$15 = function(){var self = $$15.$$s == null ? this : $$15.$$s, $$16; - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [container, params], (TMP_16 = function(){var self = TMP_16.$$s || this; + return $send($$($nesting, 'RenderingContext'), 'render', [container, params], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - if ($truthy(block)) { + if ($truthy(block)) { return $send(self, 'instance_eval', [], block.$to_proc()) - } else { + } else { return nil - }}, TMP_16.$$s = self, TMP_16.$$arity = 0, TMP_16))}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15))}, TMP_14.$$s = self, TMP_14.$$arity = 0, TMP_14)); - } else { - return $send(self, 'define_method', ["__hyperstack_component_render"], (TMP_17 = function(){var self = TMP_17.$$s || this, TMP_18; + }}, $$16.$$s = self, $$16.$$arity = 0, $$16))}, $$15.$$s = self, $$15.$$arity = 0, $$15))}, $$14.$$s = self, $$14.$$arity = 0, $$14)); + } else { + return $send(self, 'define_method', ["__hyperstack_component_render"], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s, $$18; - return $send(self, '__hyperstack_component_select_wrappers', [], (TMP_18 = function(){var self = TMP_18.$$s || this; + return $send(self, '__hyperstack_component_select_wrappers', [], ($$18 = function(){var self = $$18.$$s == null ? this : $$18.$$s; - return $send(self, 'instance_eval', [], block.$to_proc())}, TMP_18.$$s = self, TMP_18.$$arity = 0, TMP_18))}, TMP_17.$$s = self, TMP_17.$$arity = 0, TMP_17)) + return $send(self, 'instance_eval', [], block.$to_proc())}, $$18.$$s = self, $$18.$$arity = 0, $$18))}, $$17.$$s = self, $$17.$$arity = 0, $$17)) }; - }, TMP_ClassMethods_render_13.$$arity = -1); + }, $ClassMethods_render$13.$$arity = -1); - Opal.defn(self, '$on', TMP_ClassMethods_on_19 = function $$on($a_rest) { - var TMP_20, self = this, args, $iter = TMP_ClassMethods_on_19.$$p, block = $iter || nil; + Opal.def(self, '$on', $ClassMethods_on$19 = function $$on($a) { + var $iter = $ClassMethods_on$19.$$p, block = $iter || nil, $post_args, args, $$20, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_on_19.$$p = null; - return $send(self, '__hyperstack_component_after_render_hook', [], (TMP_20 = function(element){var self = TMP_20.$$s || this, TMP_21; -if (element == null) element = nil; - return $send(element, 'on', Opal.to_a(args), (TMP_21 = function($a_rest){var self = TMP_21.$$s || this, aargs; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - aargs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - aargs[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self, 'instance_exec', Opal.to_a(aargs), block.$to_proc())}, TMP_21.$$s = self, TMP_21.$$arity = -1, TMP_21))}, TMP_20.$$s = self, TMP_20.$$arity = 1, TMP_20)) - }, TMP_ClassMethods_on_19.$$arity = -1); - - Opal.defn(self, '$rescues', TMP_ClassMethods_rescues_22 = function $$rescues($a_rest) { - var TMP_23, self = this, klasses, $iter = TMP_ClassMethods_rescues_22.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - klasses = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - klasses[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_rescues_22.$$p = null; + if ($iter) $ClassMethods_on$19.$$p = null; - if ($truthy(klasses['$empty?']())) { - klasses = [Opal.const_get_relative($nesting, 'StandardError')]}; - return $send(self, '__hyperstack_component_rescue_hook', [], (TMP_23 = function(found, $a_rest){var self = TMP_23.$$s || this, args, $b, TMP_24; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (found == null) found = nil; - - if ($truthy(($truthy($b = found) ? $b : $send(klasses, 'detect', [], (TMP_24 = function(klass){var self = TMP_24.$$s || this; -if (klass == null) klass = nil; - return args['$[]'](0)['$is_a?'](klass)}, TMP_24.$$s = self, TMP_24.$$arity = 1, TMP_24))['$!']()))) { - return [found].concat(Opal.to_a(args));}; - $send(self, 'instance_exec', Opal.to_a(args), block.$to_proc()); - return [true].concat(Opal.to_a(args));}, TMP_23.$$s = self, TMP_23.$$arity = -2, TMP_23)); - }, TMP_ClassMethods_rescues_22.$$arity = -1); - - Opal.defn(self, '$before_render', TMP_ClassMethods_before_render_25 = function $$before_render($a_rest) { - var self = this, args, $iter = TMP_ClassMethods_before_render_25.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_before_render_25.$$p = null; - $send(self, 'before_mount', Opal.to_a(args), block.$to_proc()); - return $send(self, 'before_update', Opal.to_a(args), block.$to_proc()); - }, TMP_ClassMethods_before_render_25.$$arity = -1); + if ($iter) $ClassMethods_on$19.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, '__hyperstack_component_after_render_hook', [], ($$20 = function(element){var self = $$20.$$s == null ? this : $$20.$$s, $$21; + + + + if (element == null) { + element = nil; + }; + return $send(element, 'on', Opal.to_a(args), ($$21 = function($b){var self = $$21.$$s == null ? this : $$21.$$s, $post_args, aargs; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + aargs = $post_args;; + return $send(self, 'instance_exec', Opal.to_a(aargs), block.$to_proc());}, $$21.$$s = self, $$21.$$arity = -1, $$21));}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + }, $ClassMethods_on$19.$$arity = -1); - Opal.defn(self, '$after_render', TMP_ClassMethods_after_render_26 = function $$after_render($a_rest) { - var self = this, args, $iter = TMP_ClassMethods_after_render_26.$$p, block = $iter || nil; + Opal.def(self, '$rescues', $ClassMethods_rescues$22 = function $$rescues($a) { + var $iter = $ClassMethods_rescues$22.$$p, block = $iter || nil, $post_args, klasses, $$23, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_after_render_26.$$p = null; + if ($iter) $ClassMethods_rescues$22.$$p = null; + + if ($iter) $ClassMethods_rescues$22.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + klasses = $post_args;; + if ($truthy(klasses['$empty?']())) { + klasses = [$$($nesting, 'StandardError')]}; + return $send(self, '__hyperstack_component_rescue_hook', [], ($$23 = function(found, $b){var self = $$23.$$s == null ? this : $$23.$$s, $post_args, args, $$24, $ret_or_2 = nil; + + + + if (found == null) { + found = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_2 = found))) { + return $ret_or_2 + } else { + return $send(klasses, 'detect', [], ($$24 = function(klass){var self = $$24.$$s == null ? this : $$24.$$s; + + + + if (klass == null) { + klass = nil; + }; + return args['$[]'](0)['$is_a?'](klass);}, $$24.$$s = self, $$24.$$arity = 1, $$24))['$!']() + }; return nil; })())) { + return [found].concat(Opal.to_a(args));}; + $send(self, 'instance_exec', Opal.to_a(args), block.$to_proc()); + return [true].concat(Opal.to_a(args));}, $$23.$$s = self, $$23.$$arity = -2, $$23)); + }, $ClassMethods_rescues$22.$$arity = -1); + + Opal.def(self, '$before_render', $ClassMethods_before_render$25 = function $$before_render($a) { + var $iter = $ClassMethods_before_render$25.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $ClassMethods_before_render$25.$$p = null; + + + if ($iter) $ClassMethods_before_render$25.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + $send(self, 'before_mount', Opal.to_a(args), block.$to_proc()); + return $send(self, 'before_update', Opal.to_a(args), block.$to_proc()); + }, $ClassMethods_before_render$25.$$arity = -1); + + Opal.def(self, '$after_render', $ClassMethods_after_render$26 = function $$after_render($a) { + var $iter = $ClassMethods_after_render$26.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $ClassMethods_after_render$26.$$p = null; + + + if ($iter) $ClassMethods_after_render$26.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; $send(self, 'after_mount', Opal.to_a(args), block.$to_proc()); return $send(self, 'after_update', Opal.to_a(args), block.$to_proc()); - }, TMP_ClassMethods_after_render_26.$$arity = -1); + }, $ClassMethods_after_render$26.$$arity = -1); - Opal.defn(self, '$method_missing', TMP_ClassMethods_method_missing_27 = function $$method_missing(name, $a_rest) { - var $b, self = this, args, $iter = TMP_ClassMethods_method_missing_27.$$p, children = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$method_missing', $ClassMethods_method_missing$27 = function $$method_missing(name, $a) { + var $iter = $ClassMethods_method_missing$27.$$p, children = $iter || nil, $post_args, args, self = this, $ret_or_3 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_method_missing_27.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy(($truthy($b = args['$any?']()) ? $b : Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element')['$respond_to?']("haml_class_name")['$!']()))) { - return $send(self, Opal.find_super_dispatcher(self, 'method_missing', TMP_ClassMethods_method_missing_27, false), $zuper, $iter) - } else { - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [self, $hash2(["class"], {"class": Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element').$haml_class_name(name)})], children.$to_proc()) - } - }, TMP_ClassMethods_method_missing_27.$$arity = -2); + if ($iter) $ClassMethods_method_missing$27.$$p = null; + + + if ($iter) $ClassMethods_method_missing$27.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_3 = args['$any?']()))) { + return $ret_or_3 + } else { + return $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element')['$respond_to?']("haml_class_name")['$!']() + }; return nil; })())) { + return $send2(self, $find_super(self, 'method_missing', $ClassMethods_method_missing$27, false, true), 'method_missing', [name].concat(Opal.to_a(args)), $iter) + } else { + return $send($$($nesting, 'RenderingContext'), 'render', [self, $hash2(["class"], {"class": $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element').$haml_class_name(name)})], children.$to_proc()) + }; + }, $ClassMethods_method_missing$27.$$arity = -2); - Opal.defn(self, '$validator', TMP_ClassMethods_validator_28 = function $$validator() { + Opal.def(self, '$validator', $ClassMethods_validator$28 = function $$validator() { var self = this; if (self.__hyperstack_component_validator == null) self.__hyperstack_component_validator = nil; @@ -21191,84 +23414,100 @@ if (klass == null) klass = nil; return self.__hyperstack_component_validator}; if ($truthy(self.$superclass()['$respond_to?']("validator"))) { return (self.__hyperstack_component_validator = self.$superclass().$validator().$copy(self.$props_wrapper())) - } else { - return (self.__hyperstack_component_validator = Opal.const_get_relative($nesting, 'Validator').$new(self.$props_wrapper())) + } else { + return (self.__hyperstack_component_validator = $$($nesting, 'Validator').$new(self.$props_wrapper())) }; - }, TMP_ClassMethods_validator_28.$$arity = 0); + }, $ClassMethods_validator$28.$$arity = 0); - Opal.defn(self, '$prop_types', TMP_ClassMethods_prop_types_29 = function $$prop_types() { + Opal.def(self, '$prop_types', $ClassMethods_prop_types$29 = function $$prop_types() { var self = this; if ($truthy(self.$validator())) { return $hash2(["_componentValidator"], {"_componentValidator": function(props, propName, componentName) { - var errors = self.$validator().$validate(Opal.const_get_relative($nesting, 'Hash').$new(props)); + var errors = self.$validator().$validate($$($nesting, 'Hash').$new(props)); return (function() {if ($truthy($rb_gt((errors).$count(), 0))) { return new Error($rb_plus("" + "In component `" + (self.$name()) + "`\n", (errors).$join("\n"))) - } else { - return undefined + } else { + return undefined; }; return nil; })(); } }) - } else { + } else { return $hash2([], {}) } - }, TMP_ClassMethods_prop_types_29.$$arity = 0); + }, $ClassMethods_prop_types$29.$$arity = 0); - Opal.defn(self, '$default_props', TMP_ClassMethods_default_props_30 = function $$default_props() { + Opal.def(self, '$default_props', $ClassMethods_default_props$30 = function $$default_props() { var self = this; return self.$validator().$default_props() - }, TMP_ClassMethods_default_props_30.$$arity = 0); + }, $ClassMethods_default_props$30.$$arity = 0); - Opal.defn(self, '$params', TMP_ClassMethods_params_31 = function $$params() { - var self = this, $iter = TMP_ClassMethods_params_31.$$p, block = $iter || nil; + Opal.def(self, '$params', $ClassMethods_params$31 = function $$params() { + var $iter = $ClassMethods_params$31.$$p, block = $iter || nil, self = this; - if ($iter) TMP_ClassMethods_params_31.$$p = null; - return $send(self.$validator(), 'build', [], block.$to_proc()) - }, TMP_ClassMethods_params_31.$$arity = 0); + if ($iter) $ClassMethods_params$31.$$p = null; + + + if ($iter) $ClassMethods_params$31.$$p = null;; + return $send(self.$validator(), 'build', [], block.$to_proc()); + }, $ClassMethods_params$31.$$arity = 0); - Opal.defn(self, '$props_wrapper', TMP_ClassMethods_props_wrapper_32 = function $$props_wrapper() { - var $a, self = this; + Opal.def(self, '$props_wrapper', $ClassMethods_props_wrapper$32 = function $$props_wrapper() { + var self = this, $ret_or_4 = nil; if (self.__hyperstack_component_props_wrapper == null) self.__hyperstack_component_props_wrapper = nil; if ($truthy(self.__hyperstack_component_props_wrapper)) { return self.__hyperstack_component_props_wrapper}; if ($truthy(self.$superclass()['$respond_to?']("props_wrapper"))) { - return (self.__hyperstack_component_props_wrapper = Opal.const_get_relative($nesting, 'Class').$new(self.$superclass().$props_wrapper())) + return (self.__hyperstack_component_props_wrapper = $$($nesting, 'Class').$new(self.$superclass().$props_wrapper())) + } else { + return (self.__hyperstack_component_props_wrapper = (function() {if ($truthy(($ret_or_4 = self.__hyperstack_component_props_wrapper))) { + return $ret_or_4 } else { - return (self.__hyperstack_component_props_wrapper = ($truthy($a = self.__hyperstack_component_props_wrapper) ? $a : Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'PropsWrapper')))) + return $$($nesting, 'Class').$new($$($nesting, 'PropsWrapper')) + }; return nil; })()) }; - }, TMP_ClassMethods_props_wrapper_32.$$arity = 0); + }, $ClassMethods_props_wrapper$32.$$arity = 0); - Opal.defn(self, '$param', TMP_ClassMethods_param_33 = function $$param($a_rest) { - var $b, self = this, args, options = nil, name = nil, default$ = nil, $writer = nil; + Opal.def(self, '$param', $ClassMethods_param$33 = function $$param($a) { + var $post_args, args, self = this, options = nil, name = nil, default$ = nil, $ret_or_5 = nil, $ret_or_6 = nil, $writer = nil, $ret_or_7 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(args['$[]'](0)['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(args['$[]'](0)['$is_a?']($$($nesting, 'Hash')))) { options = args['$[]'](0); name = options.$first()['$[]'](0); default$ = options.$first()['$[]'](1); options.$delete(name); options['$merge!']($hash2(["default"], {"default": default$})); - } else { + } else { name = args['$[]'](0); - options = ($truthy($b = args['$[]'](1)) ? $b : $hash2([], {})); + options = (function() {if ($truthy(($ret_or_5 = args['$[]'](1)))) { + return $ret_or_5 + } else { + return $hash2([], {}) + }; return nil; })(); }; - if (options['$[]']("type")['$=='](Opal.const_get_relative($nesting, 'Proc'))) { + if (options['$[]']("type")['$==']($$($nesting, 'Proc'))) { - ($truthy($b = options['$[]']("default")) ? $b : (($writer = ["default", nil]), $send(options, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); + if ($truthy(($ret_or_6 = options['$[]']("default")))) { + $ret_or_6 + } else { + + $writer = ["default", nil]; + $send(options, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + }; if ($truthy(options['$key?']("allow_nil"))) { - } else { + } else { $writer = ["allow_nil", true]; $send(options, '[]=', Opal.to_a($writer)); @@ -21277,202 +23516,274 @@ if (klass == null) klass = nil; if (name['$==']("class")) { name = "className"; - ($truthy($b = options['$[]']("alias")) ? $b : (($writer = ["alias", "Class"]), $send(options, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]));}; + if ($truthy(($ret_or_7 = options['$[]']("alias")))) { + $ret_or_7 + } else { + + $writer = ["alias", "Class"]; + $send(options, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)]; + };}; if ($truthy(options['$[]']("default"))) { return self.$validator().$optional(name, options) - } else { + } else { return self.$validator().$requires(name, options) }; - }, TMP_ClassMethods_param_33.$$arity = -1); + }, $ClassMethods_param$33.$$arity = -1); - Opal.defn(self, '$collect_other_params_as', TMP_ClassMethods_collect_other_params_as_35 = function $$collect_other_params_as(name) { - var TMP_34, self = this; + Opal.def(self, '$collect_other_params_as', $ClassMethods_collect_other_params_as$34 = function $$collect_other_params_as(name) { + var $$35, self = this; - return $send(self.$validator(), 'all_other_params', [name], (TMP_34 = function(){var self = TMP_34.$$s || this; + return $send(self.$validator(), 'all_other_params', [name], ($$35 = function(){var self = $$35.$$s == null ? this : $$35.$$s; - return self.$props()}, TMP_34.$$s = self, TMP_34.$$arity = 0, TMP_34)) - }, TMP_ClassMethods_collect_other_params_as_35.$$arity = 1); - Opal.alias(self, "other_params", "collect_other_params_as"); - Opal.alias(self, "others", "collect_other_params_as"); - Opal.alias(self, "other", "collect_other_params_as"); - Opal.alias(self, "opts", "collect_other_params_as"); + return self.$props()}, $$35.$$s = self, $$35.$$arity = 0, $$35)) + }, $ClassMethods_collect_other_params_as$34.$$arity = 1); + $alias(self, "other_params", "collect_other_params_as"); + $alias(self, "others", "collect_other_params_as"); + $alias(self, "other", "collect_other_params_as"); + $alias(self, "opts", "collect_other_params_as"); - Opal.defn(self, '$fires', TMP_ClassMethods_fires_37 = function $$fires(name, opts) { - var $a, TMP_36, self = this, aka = nil; + Opal.def(self, '$fires', $ClassMethods_fires$36 = function $$fires(name, opts) { + var $$37, self = this, aka = nil, $ret_or_8 = nil; + + if (opts == null) { opts = $hash2([], {}); - } - - aka = ($truthy($a = opts['$[]']("alias")) ? $a : "" + (name) + "!"); + }; + aka = (function() {if ($truthy(($ret_or_8 = opts['$[]']("alias")))) { + return $ret_or_8 + } else { + return "" + (name) + "!" + }; return nil; })(); name = (function() {if ($truthy(name['$=~'](/^<(.+)>$/))) { return name.$gsub(/^<(.+)>$/, "\\1") - } else if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Event'), 'BUILT_IN_EVENTS')['$include?']("" + "on" + (name.$event_camelize())))) { + } else if ($truthy($$$($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Event'), 'BUILT_IN_EVENTS')['$include?']("" + "on" + (name.$event_camelize())))) { return "" + "on" + (name.$event_camelize()) - } else { + } else { return "" + "on_" + (name) }; return nil; })(); self.$validator().$event(name); - return $send(self, 'define_method', [aka], (TMP_36 = function($b_rest){var self = TMP_36.$$s || this, args, $c; + return $send(self, 'define_method', [aka], ($$37 = function($a){var self = $$37.$$s == null ? this : $$37.$$s, $post_args, args, $b; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return ($c = self.$props()['$[]'](name), ($c === nil || $c == null) ? nil : $send($c, 'call', Opal.to_a(args)))}, TMP_36.$$s = self, TMP_36.$$arity = -1, TMP_36)); - }, TMP_ClassMethods_fires_37.$$arity = -2); - Opal.alias(self, "triggers", "fires"); - - Opal.defn(self, '$define_state', TMP_ClassMethods_define_state_38 = function $$define_state($a_rest) { - var $b, TMP_39, TMP_40, self = this, states, $iter = TMP_ClassMethods_define_state_38.$$p, block = $iter || nil, default_initial_value = nil, states_hash = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - states = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - states[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_define_state_38.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return ($b = self.$props()['$[]'](name), ($b === nil || $b == null) ? nil : $send($b, 'call', Opal.to_a(args)));}, $$37.$$s = self, $$37.$$arity = -1, $$37)); + }, $ClassMethods_fires$36.$$arity = -2); + $alias(self, "triggers", "fires"); + + Opal.def(self, '$define_state', $ClassMethods_define_state$38 = function $$define_state($a) { + var $iter = $ClassMethods_define_state$38.$$p, block = $iter || nil, $post_args, states, $$39, $$40, self = this, default_initial_value = nil, $ret_or_9 = nil, states_hash = nil; + + if ($iter) $ClassMethods_define_state$38.$$p = null; + + if ($iter) $ClassMethods_define_state$38.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + states = $post_args;; self.$deprecation_warning("'define_state' is deprecated. Use the 'state' macro to declare states."); - default_initial_value = (function() {if ($truthy(($truthy($b = block) ? block.$arity()['$=='](0) : $b))) { + default_initial_value = (function() {if ($truthy((function() {if ($truthy(($ret_or_9 = block))) { + return block.$arity()['$=='](0) + } else { + return $ret_or_9 + }; return nil; })())) { return Opal.yieldX(block, []); - } else { + } else { return nil }; return nil; })(); - states_hash = (function() {if ($truthy(states.$last()['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + states_hash = (function() {if ($truthy(states.$last()['$is_a?']($$($nesting, 'Hash')))) { return states.$pop() - } else { + } else { return $hash2([], {}) }; return nil; })(); - $send(states, 'each', [], (TMP_39 = function(name){var self = TMP_39.$$s || this; -if (name == null) name = nil; - return self.$state($hash(name, default_initial_value))}, TMP_39.$$s = self, TMP_39.$$arity = 1, TMP_39)); - return $send(states_hash, 'each', [], (TMP_40 = function(name, value){var self = TMP_40.$$s || this; -if (name == null) name = nil;if (value == null) value = nil; - return self.$state($hash(name, value))}, TMP_40.$$s = self, TMP_40.$$arity = 2, TMP_40)); - }, TMP_ClassMethods_define_state_38.$$arity = -1); - - Opal.defn(self, '$export_state', TMP_ClassMethods_export_state_41 = function $$export_state($a_rest) { - var $b, TMP_42, TMP_43, self = this, states, $iter = TMP_ClassMethods_export_state_41.$$p, block = $iter || nil, default_initial_value = nil, states_hash = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - states = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - states[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ClassMethods_export_state_41.$$p = null; + $send(states, 'each', [], ($$39 = function(name){var self = $$39.$$s == null ? this : $$39.$$s; + + + + if (name == null) { + name = nil; + }; + return self.$state($hash(name, default_initial_value));}, $$39.$$s = self, $$39.$$arity = 1, $$39)); + return $send(states_hash, 'each', [], ($$40 = function(name, value){var self = $$40.$$s == null ? this : $$40.$$s; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; + return self.$state($hash(name, value));}, $$40.$$s = self, $$40.$$arity = 2, $$40)); + }, $ClassMethods_define_state$38.$$arity = -1); + + Opal.def(self, '$export_state', $ClassMethods_export_state$41 = function $$export_state($a) { + var $iter = $ClassMethods_export_state$41.$$p, block = $iter || nil, $post_args, states, $$42, $$43, self = this, default_initial_value = nil, $ret_or_10 = nil, states_hash = nil; + + if ($iter) $ClassMethods_export_state$41.$$p = null; + + + if ($iter) $ClassMethods_export_state$41.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + states = $post_args;; self.$deprecation_warning("'export_state' is deprecated. Use the 'state' macro to declare states."); - default_initial_value = (function() {if ($truthy(($truthy($b = block) ? block.$arity()['$=='](0) : $b))) { + default_initial_value = (function() {if ($truthy((function() {if ($truthy(($ret_or_10 = block))) { + return block.$arity()['$=='](0) + } else { + return $ret_or_10 + }; return nil; })())) { return Opal.yieldX(block, []); - } else { + } else { return nil }; return nil; })(); - states_hash = (function() {if ($truthy(states.$last()['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + states_hash = (function() {if ($truthy(states.$last()['$is_a?']($$($nesting, 'Hash')))) { return states.$pop() - } else { + } else { return $hash2([], {}) }; return nil; })(); - $send(states, 'each', [], (TMP_42 = function(name){var self = TMP_42.$$s || this, $writer = nil; -if (name == null) name = nil; - + $send(states, 'each', [], ($$42 = function(name){var self = $$42.$$s == null ? this : $$42.$$s, $writer = nil; + + + + if (name == null) { + name = nil; + }; $writer = [name, default_initial_value]; $send(states_hash, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_42.$$s = self, TMP_42.$$arity = 1, TMP_42)); - return $send(states_hash, 'each', [], (TMP_43 = function(name, value){var self = TMP_43.$$s || this, TMP_44; -if (name == null) name = nil;if (value == null) value = nil; - + return $writer[$rb_minus($writer["length"], 1)];}, $$42.$$s = self, $$42.$$arity = 1, $$42)); + return $send(states_hash, 'each', [], ($$43 = function(name, value){var self = $$43.$$s == null ? this : $$43.$$s, $$44; + + + + if (name == null) { + name = nil; + }; + + if (value == null) { + value = nil; + }; self.$state($hash(name, value, "scope", "class", "reader", true)); - return $send(self.$singleton_class(), 'define_method', ["" + (name) + "!"], (TMP_44 = function($a_rest){var self = TMP_44.$$s || this, args; + return $send(self.$singleton_class(), 'define_method', ["" + (name) + "!"], ($$44 = function($b){var self = $$44.$$s == null ? this : $$44.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$mutate(), '__send__', [name].concat(Opal.to_a(args)))}, TMP_44.$$s = self, TMP_44.$$arity = -1, TMP_44));}, TMP_43.$$s = self, TMP_43.$$arity = 2, TMP_43)); - }, TMP_ClassMethods_export_state_41.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$mutate(), '__send__', [name].concat(Opal.to_a(args)));}, $$44.$$s = self, $$44.$$arity = -1, $$44));}, $$43.$$s = self, $$43.$$arity = 2, $$43)); + }, $ClassMethods_export_state$41.$$arity = -1); - Opal.defn(self, '$native_mixin', TMP_ClassMethods_native_mixin_45 = function $$native_mixin(item) { + Opal.def(self, '$native_mixin', $ClassMethods_native_mixin$45 = function $$native_mixin(item) { var self = this; return self.$native_mixins()['$<<'](item) - }, TMP_ClassMethods_native_mixin_45.$$arity = 1); + }, $ClassMethods_native_mixin$45.$$arity = 1); - Opal.defn(self, '$native_mixins', TMP_ClassMethods_native_mixins_46 = function $$native_mixins() { - var $a, self = this; + Opal.def(self, '$native_mixins', $ClassMethods_native_mixins$46 = function $$native_mixins() { + var self = this, $ret_or_11 = nil; if (self.__hyperstack_component_native_mixins == null) self.__hyperstack_component_native_mixins = nil; - return (self.__hyperstack_component_native_mixins = ($truthy($a = self.__hyperstack_component_native_mixins) ? $a : [])) - }, TMP_ClassMethods_native_mixins_46.$$arity = 0); + return (self.__hyperstack_component_native_mixins = (function() {if ($truthy(($ret_or_11 = self.__hyperstack_component_native_mixins))) { + return $ret_or_11 + } else { + return [] + }; return nil; })()) + }, $ClassMethods_native_mixins$46.$$arity = 0); - Opal.defn(self, '$static_call_back', TMP_ClassMethods_static_call_back_47 = function $$static_call_back(name) { - var self = this, $iter = TMP_ClassMethods_static_call_back_47.$$p, block = $iter || nil, $writer = nil; + Opal.def(self, '$static_call_back', $ClassMethods_static_call_back$47 = function $$static_call_back(name) { + var $iter = $ClassMethods_static_call_back$47.$$p, block = $iter || nil, self = this, $writer = nil; - if ($iter) TMP_ClassMethods_static_call_back_47.$$p = null; + if ($iter) $ClassMethods_static_call_back$47.$$p = null; + + if ($iter) $ClassMethods_static_call_back$47.$$p = null;; $writer = [name, block]; $send(self.$static_call_backs(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_ClassMethods_static_call_back_47.$$arity = 1); + }, $ClassMethods_static_call_back$47.$$arity = 1); - Opal.defn(self, '$static_call_backs', TMP_ClassMethods_static_call_backs_48 = function $$static_call_backs() { - var $a, self = this; + Opal.def(self, '$static_call_backs', $ClassMethods_static_call_backs$48 = function $$static_call_backs() { + var self = this, $ret_or_12 = nil; if (self.__hyperstack_component_static_call_backs == null) self.__hyperstack_component_static_call_backs = nil; - return (self.__hyperstack_component_static_call_backs = ($truthy($a = self.__hyperstack_component_static_call_backs) ? $a : $hash2([], {}))) - }, TMP_ClassMethods_static_call_backs_48.$$arity = 0); + return (self.__hyperstack_component_static_call_backs = (function() {if ($truthy(($ret_or_12 = self.__hyperstack_component_static_call_backs))) { + return $ret_or_12 + } else { + return $hash2([], {}) + }; return nil; })()) + }, $ClassMethods_static_call_backs$48.$$arity = 0); - Opal.defn(self, '$export_component', TMP_ClassMethods_export_component_49 = function $$export_component(opts) { - var $a, self = this, export_name = nil, first_name = nil, $writer = nil; + Opal.def(self, '$export_component', $ClassMethods_export_component$49 = function $$export_component(opts) { + var self = this, export_name = nil, $ret_or_13 = nil, first_name = nil, $writer = nil; + + if (opts == null) { opts = $hash2([], {}); - } - - export_name = ($truthy($a = opts['$[]']("as")) ? $a : self.$name()).$split("::"); + }; + export_name = (function() {if ($truthy(($ret_or_13 = opts['$[]']("as")))) { + return $ret_or_13 + } else { + return self.$name() + }; return nil; })().$split("::"); first_name = export_name.$first(); - $writer = [first_name, self.$add_item_to_tree(self.$Native(Opal.global)['$[]'](first_name), $rb_plus([Opal.const_get_relative($nesting, 'ReactWrapper').$create_native_react_class(self)], export_name['$[]']($range(1, -1, false)).$reverse())).$to_n()]; + $writer = [first_name, self.$add_item_to_tree(self.$Native(Opal.global)['$[]'](first_name), $rb_plus([$$($nesting, 'ReactWrapper').$create_native_react_class(self)], export_name['$[]']($range(1, -1, false)).$reverse())).$to_n()]; $send(self.$Native(Opal.global), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_ClassMethods_export_component_49.$$arity = -1); + }, $ClassMethods_export_component$49.$$arity = -1); - Opal.defn(self, '$imports', TMP_ClassMethods_imports_51 = function $$imports(component_name) { - var TMP_50, self = this, e = nil; + Opal.def(self, '$imports', $ClassMethods_imports$50 = function $$imports(component_name) { + var $$51, self = this, e = nil; return (function() { try { try { - Opal.const_get_relative($nesting, 'ReactWrapper').$import_native_component(self, Opal.const_get_relative($nesting, 'ReactWrapper').$eval_native_react_component(component_name)); - return $send(self, 'render', [], (TMP_50 = function(){var self = TMP_50.$$s || this; + $$($nesting, 'ReactWrapper').$import_native_component(self, $$($nesting, 'ReactWrapper').$eval_native_react_component(component_name)); + return $send(self, 'render', [], ($$51 = function(){var self = $$51.$$s == null ? this : $$51.$$s; - return nil}, TMP_50.$$s = self, TMP_50.$$arity = 0, TMP_50)); + return nil}, $$51.$$s = self, $$51.$$arity = 0, $$51)); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { return self.$raise("" + (self) + " cannot import '" + (component_name) + "': " + (e.$message()) + ".") - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } } finally { self }; })() - }, TMP_ClassMethods_imports_51.$$arity = 1); + }, $ClassMethods_imports$50.$$arity = 1); - Opal.defn(self, '$add_item_to_tree', TMP_ClassMethods_add_item_to_tree_53 = function $$add_item_to_tree(current_tree, new_item) { - var $a, TMP_52, self = this, $writer = nil; + Opal.def(self, '$add_item_to_tree', $ClassMethods_add_item_to_tree$52 = function $$add_item_to_tree(current_tree, new_item) { + var $$53, self = this, $ret_or_14 = nil, $writer = nil; - if ($truthy(($truthy($a = self.$Native(current_tree).$class()['$!='](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Native'), 'Object'))) ? $a : new_item.$length()['$=='](1)))) { - return $send(new_item, 'inject', [], (TMP_52 = function(a, e){var self = TMP_52.$$s || this; -if (a == null) a = nil;if (e == null) e = nil; - return $hash(e, a)}, TMP_52.$$s = self, TMP_52.$$arity = 2, TMP_52)) - } else { + if ($truthy((function() {if ($truthy(($ret_or_14 = self.$Native(current_tree).$class()['$!=']($$$($$($nesting, 'Native'), 'Object'))))) { + return $ret_or_14 + } else { + return new_item.$length()['$=='](1) + }; return nil; })())) { + return $send(new_item, 'inject', [], ($$53 = function(a, e){var self = $$53.$$s == null ? this : $$53.$$s; + + + + if (a == null) { + a = nil; + }; + + if (e == null) { + e = nil; + }; + return $hash(e, a);}, $$53.$$s = self, $$53.$$arity = 2, $$53)) + } else { $writer = [new_item.$last(), self.$add_item_to_tree(self.$Native(current_tree)['$[]'](new_item.$last()), new_item['$[]']($range(0, -2, false)))]; @@ -21480,352 +23791,496 @@ if (a == null) a = nil;if (e == null) e = nil; $writer[$rb_minus($writer["length"], 1)];; return current_tree; } - }, TMP_ClassMethods_add_item_to_tree_53.$$arity = 2); - - Opal.defn(self, '$to_n', TMP_ClassMethods_to_n_54 = function $$to_n() { + }, $ClassMethods_add_item_to_tree$52.$$arity = 2); + return (Opal.def(self, '$to_n', $ClassMethods_to_n$54 = function $$to_n() { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$create_native_react_class(self) - }, TMP_ClassMethods_to_n_54.$$arity = 0); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$create_native_react_class(self) + }, $ClassMethods_to_n$54.$$arity = 0), nil) && 'to_n'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/props_wrapper"] = function(Opal) { +Opal.modules["hyperstack/internal/component/props_wrapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send; Opal.add_stubs(['$require', '$attr_reader', '$naming_convention', '$===', '$fix_suffix', '$camelize', '$=~', '$+', '$[]', '$respond_to?', '$superclass', '$param_accessor_style', '$dup', '$param_definitions', '$new', '$!=', '$instance_var_name_for', '$lambda', '$instance_variable_set', '$fetch_from_cache', '$==', '$[]=', '$-', '$include?', '$define_method', '$to_sym', '$props', '$call', '$to_proc', '$class', '$each_value', '$instance_exec', '$initialize', '$private', '$cache', '$equal?', '$tap', '$convert_param', '$_react_param_conversion', '$is_a?', '$collect', '$component', '$instance_variable_get']); self.$require("active_support/core_ext/string"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $PropsWrapper(){}; - var self = $PropsWrapper = $klass($base, $super, 'PropsWrapper', $PropsWrapper); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'PropsWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_PropsWrapper_param_accessor_style_12, TMP_PropsWrapper_initialize_14, TMP_PropsWrapper_reload_15, TMP_PropsWrapper_$$_16, TMP_PropsWrapper_fetch_from_cache_18, TMP_PropsWrapper_convert_param_20, TMP_PropsWrapper_cache_22, TMP_PropsWrapper_props_23, TMP_PropsWrapper_value_for_24; + var $nesting = [self].concat($parent_nesting), $PropsWrapper_param_accessor_style$12, $PropsWrapper_initialize$13, $PropsWrapper_reload$15, $PropsWrapper_$$$16, $PropsWrapper_fetch_from_cache$17, $PropsWrapper_convert_param$19, $PropsWrapper_cache$21, $PropsWrapper_props$23, $PropsWrapper_value_for$24; - def.component = def.cache = nil; + self.$$prototype.component = self.$$prototype.cache = nil; self.$attr_reader("component"); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_instance_var_name_for_1, TMP_fix_suffix_2, TMP_param_accessor_style_3, TMP_param_definitions_4, TMP_define_param_8, TMP_define_all_others_10; + var $nesting = [self].concat($parent_nesting), $instance_var_name_for$1, $fix_suffix$2, $param_accessor_style$3, $param_definitions$4, $define_param$5, $define_all_others$9; - Opal.defn(self, '$instance_var_name_for', TMP_instance_var_name_for_1 = function $$instance_var_name_for(name) { + Opal.def(self, '$instance_var_name_for', $instance_var_name_for$1 = function $$instance_var_name_for(name) { var self = this, $case = nil; - return (function() {$case = Opal.const_get_relative($nesting, 'Hyperstack').$naming_convention(); + return (function() {$case = $$($nesting, 'Hyperstack').$naming_convention(); if ("camelize_params"['$===']($case)) {return self.$fix_suffix(name.$camelize())} else if ("prefix_params"['$===']($case)) {return "" + "_" + (name)} else {return name}})() - }, TMP_instance_var_name_for_1.$$arity = 1); + }, $instance_var_name_for$1.$$arity = 1); - Opal.defn(self, '$fix_suffix', TMP_fix_suffix_2 = function $$fix_suffix(name) { + Opal.def(self, '$fix_suffix', $fix_suffix$2 = function $$fix_suffix(name) { var self = this; if ($truthy(name)) { - } else { + } else { return nil }; if ($truthy(name['$=~'](/\?$/))) { return $rb_plus(name['$[]']($range(0, -2, false)), "_q") } else if ($truthy(name['$=~'](/\!$/))) { return $rb_plus(name['$[]']($range(0, -2, false)), "_b") - } else { + } else { return name }; - }, TMP_fix_suffix_2.$$arity = 1); + }, $fix_suffix$2.$$arity = 1); - Opal.defn(self, '$param_accessor_style', TMP_param_accessor_style_3 = function $$param_accessor_style(style) { - var $a, self = this; + Opal.def(self, '$param_accessor_style', $param_accessor_style$3 = function $$param_accessor_style(style) { + var self = this, $ret_or_1 = nil; if (self.param_accessor_style == null) self.param_accessor_style = nil; + + if (style == null) { style = nil; - } - + }; if ($truthy(style)) { self.param_accessor_style = style}; - return (self.param_accessor_style = ($truthy($a = self.param_accessor_style) ? $a : (function() {if ($truthy(self.$superclass()['$respond_to?']("param_accessor_style"))) { + return (self.param_accessor_style = (function() {if ($truthy(($ret_or_1 = self.param_accessor_style))) { + return $ret_or_1 + } else if ($truthy(self.$superclass()['$respond_to?']("param_accessor_style"))) { return self.$superclass().$param_accessor_style() - } else { + } else { return "hyperstack" - }; return nil; })())); - }, TMP_param_accessor_style_3.$$arity = -1); + }; return nil; })()); + }, $param_accessor_style$3.$$arity = -1); - Opal.defn(self, '$param_definitions', TMP_param_definitions_4 = function $$param_definitions() { - var $a, self = this; + Opal.def(self, '$param_definitions', $param_definitions$4 = function $$param_definitions() { + var self = this, $ret_or_2 = nil; if (self.param_definitions == null) self.param_definitions = nil; - return (self.param_definitions = ($truthy($a = self.param_definitions) ? $a : (function() {if ($truthy(self.$superclass()['$respond_to?']("param_definitions"))) { + return (self.param_definitions = (function() {if ($truthy(($ret_or_2 = self.param_definitions))) { + return $ret_or_2 + } else if ($truthy(self.$superclass()['$respond_to?']("param_definitions"))) { return self.$superclass().$param_definitions().$dup() - } else { - return Opal.const_get_relative($nesting, 'Hash').$new() - }; return nil; })())) - }, TMP_param_definitions_4.$$arity = 0); + } else { + return $$($nesting, 'Hash').$new() + }; return nil; })()) + }, $param_definitions$4.$$arity = 0); - Opal.defn(self, '$define_param', TMP_define_param_8 = function $$define_param(name, param_type, aka) { - var $a, TMP_5, TMP_6, TMP_7, self = this, meth_name = nil, var_name = nil, $writer = nil; + Opal.def(self, '$define_param', $define_param$5 = function $$define_param(name, param_type, aka) { + var $$6, $$7, $$8, $iter = $define_param$5.$$p, $yield = $iter || nil, self = this, $ret_or_3 = nil, meth_name = nil, $ret_or_4 = nil, var_name = nil, $ret_or_5 = nil, $writer = nil; + if ($iter) $define_param$5.$$p = null; + + if (aka == null) { aka = nil; - } - - if ($truthy(($truthy($a = self.$param_accessor_style()['$!=']("legacy")) ? $a : aka))) { + }; + if ($truthy((function() {if ($truthy(($ret_or_3 = self.$param_accessor_style()['$!=']("legacy")))) { + return $ret_or_3 + } else { + return aka + }; return nil; })())) { - meth_name = ($truthy($a = aka) ? $a : name); - var_name = ($truthy($a = self.$fix_suffix(aka)) ? $a : self.$instance_var_name_for(name)); + meth_name = (function() {if ($truthy(($ret_or_4 = aka))) { + return $ret_or_4 + } else { + return name + }; return nil; })(); + var_name = (function() {if ($truthy(($ret_or_5 = self.$fix_suffix(aka)))) { + return $ret_or_5 + } else { + return self.$instance_var_name_for(name) + }; return nil; })(); - $writer = [name, $send(self, 'lambda', [], (TMP_5 = function(props){var self = TMP_5.$$s || this, val = nil; + $writer = [name, $send(self, 'lambda', [], ($$6 = function(props){var self = $$6.$$s == null ? this : $$6.$$s, val = nil; if (self.component == null) self.component = nil; -if (props == null) props = nil; - + + + + if (props == null) { + props = nil; + }; self.component.$instance_variable_set("" + "@" + (var_name), (val = self.$fetch_from_cache(name, param_type, props))); if (self.$param_accessor_style()['$==']("accessors")) { - } else { + } else { return nil; }; - return self.component["" + "$" + (meth_name)] = function() { return val };}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5))]; + return self.component["" + "$" + (meth_name)] = function() { return val };}, $$6.$$s = self, $$6.$$arity = 1, $$6))]; $send(self.$param_definitions(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; if ($truthy(["hyperstack", "accessors"]['$include?'](self.$param_accessor_style()))) { return nil};}; - if (param_type['$=='](Opal.const_get_relative($nesting, 'Proc'))) { - return $send(self, 'define_method', [name.$to_sym()], (TMP_6 = function($b_rest){var self = TMP_6.$$s || this, block, args; - - block = TMP_6.$$p || nil; - if (block) TMP_6.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(self.$props()['$[]'](name))) { + if (param_type['$==']($$($nesting, 'Proc'))) { + return $send(self, 'define_method', [name.$to_sym()], ($$7 = function($a){var self = $$7.$$s == null ? this : $$7.$$s, $iter = $$7.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$7.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(self.$props()['$[]'](name))) { return $send(self.$props()['$[]'](name), 'call', Opal.to_a(args), block.$to_proc()) - } else { + } else { return nil - }}, TMP_6.$$s = self, TMP_6.$$arity = -1, TMP_6)) - } else { - return $send(self, 'define_method', [name.$to_sym()], (TMP_7 = function(){var self = TMP_7.$$s || this; + };}, $$7.$$s = self, $$7.$$arity = -1, $$7)) + } else { + return $send(self, 'define_method', [name.$to_sym()], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; - return self.$fetch_from_cache(name, param_type, self.$props())}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7)) + return self.$fetch_from_cache(name, param_type, self.$props())}, $$8.$$s = self, $$8.$$arity = 0, $$8)) }; - }, TMP_define_param_8.$$arity = -3); - return (Opal.defn(self, '$define_all_others', TMP_define_all_others_10 = function $$define_all_others(name) { - var TMP_9, TMP_11, self = this, $iter = TMP_define_all_others_10.$$p, $yield = $iter || nil, var_name = nil, $writer = nil; + }, $define_param$5.$$arity = -3); + return (Opal.def(self, '$define_all_others', $define_all_others$9 = function $$define_all_others(name) { + var $$10, $$11, $iter = $define_all_others$9.$$p, $yield = $iter || nil, self = this, var_name = nil, $writer = nil; - if ($iter) TMP_define_all_others_10.$$p = null; + if ($iter) $define_all_others$9.$$p = null; var_name = self.$instance_var_name_for(name); - $writer = [name, $send(self, 'lambda', [], (TMP_9 = function(props){var self = TMP_9.$$s || this, val = nil; + $writer = [name, $send(self, 'lambda', [], ($$10 = function(props){var self = $$10.$$s == null ? this : $$10.$$s, val = nil; if (self.component == null) self.component = nil; -if (props == null) props = nil; - + + + + if (props == null) { + props = nil; + }; self.component.$instance_variable_set("" + "@" + (var_name), (val = Opal.yield1($yield, props))); if (self.$param_accessor_style()['$==']("accessors")) { - } else { + } else { return nil; }; - return self.component["" + "$" + (name)] = function() { return val };}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9))]; + return self.component["" + "$" + (name)] = function() { return val };}, $$10.$$s = self, $$10.$$arity = 1, $$10))]; $send(self.$param_definitions(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(self, 'define_method', [name.$to_sym()], (TMP_11 = function(){var self = TMP_11.$$s || this, $a; + return $send(self, 'define_method', [name.$to_sym()], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s, $ret_or_6 = nil; if (self._all_others_cache == null) self._all_others_cache = nil; - return (self._all_others_cache = ($truthy($a = self._all_others_cache) ? $a : Opal.yield1($yield, self.$props())))}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11)); - }, TMP_define_all_others_10.$$arity = 1), nil) && 'define_all_others'; + return (self._all_others_cache = (function() {if ($truthy(($ret_or_6 = self._all_others_cache))) { + return $ret_or_6 + } else { + return Opal.yield1($yield, self.$props()); + }; return nil; })())}, $$11.$$s = self, $$11.$$arity = 0, $$11)); + }, $define_all_others$9.$$arity = 1), nil) && 'define_all_others'; })(Opal.get_singleton_class(self), $nesting); - Opal.defn(self, '$param_accessor_style', TMP_PropsWrapper_param_accessor_style_12 = function $$param_accessor_style() { + Opal.def(self, '$param_accessor_style', $PropsWrapper_param_accessor_style$12 = function $$param_accessor_style() { var self = this; return self.$class().$param_accessor_style() - }, TMP_PropsWrapper_param_accessor_style_12.$$arity = 0); + }, $PropsWrapper_param_accessor_style$12.$$arity = 0); - Opal.defn(self, '$initialize', TMP_PropsWrapper_initialize_14 = function $$initialize(component, incoming) { - var TMP_13, self = this; + Opal.def(self, '$initialize', $PropsWrapper_initialize$13 = function $$initialize(component, incoming) { + var $$14, self = this; + + if (incoming == null) { incoming = nil; - } - + }; self.component = component; - return $send(self.$class().$param_definitions(), 'each_value', [], (TMP_13 = function(initializer){var self = TMP_13.$$s || this, $a; -if (initializer == null) initializer = nil; - return $send(self, 'instance_exec', [($truthy($a = incoming) ? $a : self.$props())], initializer.$to_proc())}, TMP_13.$$s = self, TMP_13.$$arity = 1, TMP_13)); - }, TMP_PropsWrapper_initialize_14.$$arity = -2); + return $send(self.$class().$param_definitions(), 'each_value', [], ($$14 = function(initializer){var self = $$14.$$s == null ? this : $$14.$$s, $ret_or_7 = nil; + + + + if (initializer == null) { + initializer = nil; + }; + return $send(self, 'instance_exec', [(function() {if ($truthy(($ret_or_7 = incoming))) { + return $ret_or_7 + } else { + return self.$props() + }; return nil; })()], initializer.$to_proc());}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + }, $PropsWrapper_initialize$13.$$arity = -2); - Opal.defn(self, '$reload', TMP_PropsWrapper_reload_15 = function $$reload(next_props) { + Opal.def(self, '$reload', $PropsWrapper_reload$15 = function $$reload(next_props) { var self = this; self._all_others_cache = nil; return self.$initialize(self.component, next_props); - }, TMP_PropsWrapper_reload_15.$$arity = 1); + }, $PropsWrapper_reload$15.$$arity = 1); - Opal.defn(self, '$[]', TMP_PropsWrapper_$$_16 = function(prop) { + Opal.def(self, '$[]', $PropsWrapper_$$$16 = function(prop) { var self = this; return self.$props()['$[]'](prop) - }, TMP_PropsWrapper_$$_16.$$arity = 1); + }, $PropsWrapper_$$$16.$$arity = 1); self.$private(); - Opal.defn(self, '$fetch_from_cache', TMP_PropsWrapper_fetch_from_cache_18 = function $$fetch_from_cache(name, param_type, props) { - var $a, $b, TMP_17, self = this, last = nil, cached_value = nil; + Opal.def(self, '$fetch_from_cache', $PropsWrapper_fetch_from_cache$17 = function $$fetch_from_cache(name, param_type, props) { + var $a, $b, $$18, self = this, last = nil, cached_value = nil; $b = self.$cache()['$[]'](name), $a = Opal.to_ary($b), (last = ($a[0] == null ? nil : $a[0])), (cached_value = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(last['$equal?'](props['$[]'](name)))) { return cached_value}; - return $send(self.$convert_param(name, param_type, props), 'tap', [], (TMP_17 = function(value){var self = TMP_17.$$s || this, $writer = nil; -if (value == null) value = nil; - + return $send(self.$convert_param(name, param_type, props), 'tap', [], ($$18 = function(value){var self = $$18.$$s == null ? this : $$18.$$s, $writer = nil; + + + + if (value == null) { + value = nil; + }; $writer = [name, [props['$[]'](name), value]]; $send(self.$cache(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_17.$$s = self, TMP_17.$$arity = 1, TMP_17)); - }, TMP_PropsWrapper_fetch_from_cache_18.$$arity = 3); + return $writer[$rb_minus($writer["length"], 1)];}, $$18.$$s = self, $$18.$$arity = 1, $$18)); + }, $PropsWrapper_fetch_from_cache$17.$$arity = 3); - Opal.defn(self, '$convert_param', TMP_PropsWrapper_convert_param_20 = function $$convert_param(name, param_type, props) { - var $a, TMP_19, self = this; + Opal.def(self, '$convert_param', $PropsWrapper_convert_param$19 = function $$convert_param(name, param_type, props) { + var $$20, self = this, $ret_or_8 = nil; if ($truthy(param_type['$respond_to?']("_react_param_conversion"))) { return param_type.$_react_param_conversion(props['$[]'](name), nil) - } else if ($truthy(($truthy($a = param_type['$is_a?'](Opal.const_get_relative($nesting, 'Array'))) ? param_type['$[]'](0)['$respond_to?']("_react_param_conversion") : $a))) { - return $send(props['$[]'](name), 'collect', [], (TMP_19 = function(param){var self = TMP_19.$$s || this; -if (param == null) param = nil; - return param_type['$[]'](0).$_react_param_conversion(param, nil)}, TMP_19.$$s = self, TMP_19.$$arity = 1, TMP_19)) - } else { + } else if ($truthy((function() {if ($truthy(($ret_or_8 = param_type['$is_a?']($$($nesting, 'Array'))))) { + return param_type['$[]'](0)['$respond_to?']("_react_param_conversion") + } else { + return $ret_or_8 + }; return nil; })())) { + return $send(props['$[]'](name), 'collect', [], ($$20 = function(param){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (param == null) { + param = nil; + }; + return param_type['$[]'](0).$_react_param_conversion(param, nil);}, $$20.$$s = self, $$20.$$arity = 1, $$20)) + } else { return props['$[]'](name) } - }, TMP_PropsWrapper_convert_param_20.$$arity = 3); + }, $PropsWrapper_convert_param$19.$$arity = 3); - Opal.defn(self, '$cache', TMP_PropsWrapper_cache_22 = function $$cache() { - var $a, TMP_21, self = this; + Opal.def(self, '$cache', $PropsWrapper_cache$21 = function $$cache() { + var $$22, self = this, $ret_or_9 = nil; - return (self.cache = ($truthy($a = self.cache) ? $a : $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_21 = function(h, k){var self = TMP_21.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - - $writer = [k, []]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_21.$$s = self, TMP_21.$$arity = 2, TMP_21)))) - }, TMP_PropsWrapper_cache_22.$$arity = 0); + return (self.cache = (function() {if ($truthy(($ret_or_9 = self.cache))) { + return $ret_or_9 + } else { + return $send($$($nesting, 'Hash'), 'new', [], ($$22 = function(h, k){var self = $$22.$$s == null ? this : $$22.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, []]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$22.$$s = self, $$22.$$arity = 2, $$22)) + }; return nil; })()) + }, $PropsWrapper_cache$21.$$arity = 0); - Opal.defn(self, '$props', TMP_PropsWrapper_props_23 = function $$props() { + Opal.def(self, '$props', $PropsWrapper_props$23 = function $$props() { var self = this; return self.$component().$props() - }, TMP_PropsWrapper_props_23.$$arity = 0); - return (Opal.defn(self, '$value_for', TMP_PropsWrapper_value_for_24 = function $$value_for(name) { + }, $PropsWrapper_props$23.$$arity = 0); + return (Opal.def(self, '$value_for', $PropsWrapper_value_for$24 = function $$value_for(name) { var self = this; if ($truthy(self['$[]'](name))) { return self['$[]'](name).$instance_variable_get("@value") - } else { + } else { return nil } - }, TMP_PropsWrapper_value_for_24.$$arity = 1), nil) && 'value_for'; + }, $PropsWrapper_value_for$24.$$arity = 1), nil) && 'value_for'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component"] = function(Opal) { +Opal.modules["hyperstack/component"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $hash = Opal.hash; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2, $lambda = Opal.lambda, $hash = Opal.hash; - Opal.add_stubs(['$require', '$include', '$class_eval', '$class_attribute', '$define_callback', '$add_after_error_hook', '$extend', '$respond_to?', '$!', '$<', '$allow_deprecated_render_definition?', '$deprecation_warning', '$new', '$to_a', '$mounted_components', '$each', '$include?', '$force_update!', '$name', '$class', '$event_camelize', '$to_s', '$call', '$[]', '$params', '$props_wrapper', '$on_opal_client?', '$load_context', '$observing', '$<<', '$run_callback', '$props', '$quiet_test', '$reload', '$unmount', '$remove', '$delete', '$set_state', '$==', '$method_defined?', '$raise', '$first', '$render', '$waiting_on_resources']); + Opal.add_stubs(['$require', '$include', '$class_eval', '$class_attribute', '$lambda', '$zero?', '$arity', '$deprecation_warning', '$instance_exec', '$to_proc', '$define_callback', '$add_after_error_hook', '$extend', '$respond_to?', '$!', '$<', '$allow_deprecated_render_definition?', '$new', '$to_a', '$mounted_components', '$each', '$include?', '$force_update!', '$name', '$class', '$event_camelize', '$to_s', '$call', '$[]', '$params', '$props_wrapper', '$on_opal_client?', '$load_context', '$observing', '$<<', '$run_callback', '$props', '$quiet_test', '$reload', '$unmount', '$remove', '$delete', '$set_state', '$==', '$method_defined?', '$raise', '$first', '$component_will_mount', '$_run_before_render_callbacks', '$render', '$waiting_on_resources']); self.$require("hyperstack/ext/component/string"); self.$require("hyperstack/ext/component/hash"); self.$require("active_support/core_ext/class/attribute"); - self.$require("hyperstack/internal/auto_unmount"); self.$require("hyperstack/internal/component/rendering_context"); self.$require("hyperstack/internal/component"); self.$require("hyperstack/internal/component/instance_methods"); self.$require("hyperstack/internal/component/class_methods"); self.$require("hyperstack/internal/component/props_wrapper"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Component_included_3, TMP_Component_mounted_components_4, TMP_Component_force_update$B_6, TMP_Component_deprecation_warning_7, TMP_Component_deprecation_warning_8, TMP_Component_initialize_9, TMP_Component_emit_10, TMP_Component_component_will_mount_12, TMP_Component_component_did_mount_14, TMP_Component_component_will_receive_props_16, TMP_Component_component_will_update_18, TMP_Component_component_did_update_20, TMP_Component_component_will_unmount_22, TMP_Component_component_did_catch_24, TMP_Component_mutations_25, TMP_Component_update_react_js_state_26, TMP_Component_render_27, TMP_Component_waiting_on_resources_28, TMP_Component___hyperstack_component_run_post_render_hooks_30, TMP_Component__render_wrapper_33; + var $nesting = [self].concat($parent_nesting), $Component_included$1, $Component_mounted_components$8, $Component_force_update$excl$9, $Component_deprecation_warning$11, $Component_deprecation_warning$12, $Component_initialize$13, $Component_emit$14, $Component_component_will_mount$15, $Component_component_did_mount$17, $Component_component_will_receive_props$19, $Component_component_will_update$21, $Component_component_did_update$23, $Component_component_will_unmount$25, $Component_component_did_catch$27, $Component_mutations$29, $Component_update_react_js_state$30, $Component_render$31, $Component_waiting_on_resources$32, $Component___hyperstack_component_run_post_render_hooks$33, $Component__run_before_render_callbacks$34, $Component__render_wrapper$35; - Opal.defs(self, '$included', TMP_Component_included_3 = function $$included(base) { - var TMP_1, $a, self = this; + Opal.defs(self, '$included', $Component_included$1 = function $$included(base) { + var $$2, self = this, $ret_or_1 = nil, $ret_or_2 = nil; - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'State'), 'Observer')); - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'InstanceMethods')); - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'AutoUnmount')); - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags')); - base.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ShouldComponentUpdate')); - $send(base, 'class_eval', [], (TMP_1 = function(){var self = TMP_1.$$s || this, TMP_2; + base.$include($$$($$$($$($nesting, 'Hyperstack'), 'State'), 'Observer')); + base.$include($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'InstanceMethods')); + base.$include($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'AutoUnmount')); + base.$include($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags')); + base.$include($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ShouldComponentUpdate')); + $send(base, 'class_eval', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $$4, $$5, $$6, $$7, method_args_deprecation_check = nil; - + self.$class_attribute("initial_state"); - self.$define_callback("before_mount"); - self.$define_callback("after_mount"); - self.$define_callback("before_new_params"); - self.$define_callback("before_update"); - self.$define_callback("after_update"); - self.$define_callback("__hyperstack_component_after_render_hook"); - self.$define_callback("__hyperstack_component_rescue_hook"); - return $send(self, 'define_callback', ["after_error"], (TMP_2 = function(){var self = TMP_2.$$s || this; + method_args_deprecation_check = $send(self, 'lambda', [], ($$3 = function(name, sself, proc, $a){var self = $$3.$$s == null ? this : $$3.$$s, $post_args, args; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$add_after_error_hook(base)}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2));}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)); - base.$extend(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ClassMethods')); - if ($truthy(Opal.__hyperstack_component_original_defn)) { - return nil - } else { - - - Opal.__hyperstack_component_original_defn = Opal.defn - Opal.defn = function(klass, name, fn) { - (function() {if ($truthy(($truthy($a = (klass)['$respond_to?']("hyper_component?")) ? $rb_lt(klass, Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'))['$!']() : $a))) { - if ($truthy(($truthy($a = name == '$render') ? (klass)['$allow_deprecated_render_definition?']()['$!']() : $a))) { - return Opal.const_get_relative($nesting, 'Hyperstack').$deprecation_warning(klass, "Do not directly define the render method. Use the render macro instead.") + + + if (name == null) { + name = nil; + }; + + if (sself == null) { + sself = nil; + }; + + if (proc == null) { + proc = nil; + }; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + if ($truthy(proc.$arity()['$zero?']())) { + args = [] + } else { + self.$deprecation_warning("" + "In the future " + (name) + " callbacks will not receive any parameters.") + }; + $send(sself, 'instance_exec', Opal.to_a(args), proc.$to_proc()); + return args;}, $$3.$$s = self, $$3.$$arity = -4, $$3)); + self.$define_callback("before_mount", $hash2(["before_call_hook"], {"before_call_hook": method_args_deprecation_check})); + self.$define_callback("after_mount"); + self.$define_callback("before_new_params", $hash2(["after_define_hook"], {"after_define_hook": $send(self, 'lambda', [], ($$4 = function(klass){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (klass == null) { + klass = nil; + }; + return klass.$deprecation_warning("" + "`before_new_params` has been deprecated. The base " + "method componentWillReceiveProps is deprecated in React without replacement");}, $$4.$$s = self, $$4.$$arity = 1, $$4))})); + self.$define_callback("before_update", $hash2(["before_call_hook"], {"before_call_hook": method_args_deprecation_check})); + self.$define_callback("after_update"); + self.$define_callback("__hyperstack_component_after_render_hook", $hash2(["before_call_hook"], {"before_call_hook": $lambda(($$5 = function(_, sself, proc, $a){var self = $$5.$$s == null ? this : $$5.$$s, $post_args, args; + + + + if (_ == null) { + _ = nil; + }; + + if (sself == null) { + sself = nil; + }; + + if (proc == null) { + proc = nil; + }; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + return [].concat(Opal.to_a($send(sself, 'instance_exec', Opal.to_a(args), proc.$to_proc())));}, $$5.$$s = self, $$5.$$arity = -4, $$5))})); + self.$define_callback("__hyperstack_component_rescue_hook", $hash2(["before_call_hook"], {"before_call_hook": $lambda(($$6 = function(_, sself, proc, $a){var self = $$6.$$s == null ? this : $$6.$$s, $post_args, args; + + + + if (_ == null) { + _ = nil; + }; + + if (sself == null) { + sself = nil; + }; + + if (proc == null) { + proc = nil; + }; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + return $send(sself, 'instance_exec', Opal.to_a(args), proc.$to_proc());}, $$6.$$s = self, $$6.$$arity = -4, $$6))})); + return self.$define_callback("after_error", $hash2(["after_define_hook"], {"after_define_hook": $lambda(($$7 = function(klass){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (klass == null) { + klass = nil; + }; + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$add_after_error_hook(klass);}, $$7.$$s = self, $$7.$$arity = 1, $$7))}));}, $$2.$$s = self, $$2.$$arity = 0, $$2)); + base.$extend($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ClassMethods')); + if ($truthy(Opal.__hyperstack_component_original_defn)) { + return nil + } else { + + + Opal.__hyperstack_component_original_defn = Opal.defn + Opal.defn = function(klass, name, fn) { + (function() {if ($truthy((function() {if ($truthy(($ret_or_1 = (klass)['$respond_to?']("hyper_component?")))) { + return $rb_lt(klass, $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'))['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { + if ($truthy((function() {if ($truthy(($ret_or_2 = name == '$render'))) { + return (klass)['$allow_deprecated_render_definition?']()['$!']() + } else { + return $ret_or_2 + }; return nil; })())) { + return $$($nesting, 'Hyperstack').$deprecation_warning(klass, "Do not directly define the render method. Use the render macro instead.") } else if ($truthy(name == '$__hyperstack_component_render')) { - return name = '$render' - } else { + return name = '$render'; + } else { return nil } - } else { + } else { return nil }; return nil; })() Opal.__hyperstack_component_original_defn(klass, name, fn) @@ -21833,480 +24288,543 @@ Opal.modules["hyperstack/component"] = function(Opal) { ; return nil; }; - }, TMP_Component_included_3.$$arity = 1); - Opal.defs(self, '$mounted_components', TMP_Component_mounted_components_4 = function $$mounted_components() { - var $a, self = this; + }, $Component_included$1.$$arity = 1); + Opal.defs(self, '$mounted_components', $Component_mounted_components$8 = function $$mounted_components() { + var self = this, $ret_or_3 = nil; if (self.__hyperstack_component_mounted_components == null) self.__hyperstack_component_mounted_components = nil; - return (self.__hyperstack_component_mounted_components = ($truthy($a = self.__hyperstack_component_mounted_components) ? $a : Opal.const_get_relative($nesting, 'Set').$new())) - }, TMP_Component_mounted_components_4.$$arity = 0); - Opal.defs(self, '$force_update!', TMP_Component_force_update$B_6 = function() { - var TMP_5, self = this, components = nil; + return (self.__hyperstack_component_mounted_components = (function() {if ($truthy(($ret_or_3 = self.__hyperstack_component_mounted_components))) { + return $ret_or_3 + } else { + return $$($nesting, 'Set').$new() + }; return nil; })()) + }, $Component_mounted_components$8.$$arity = 0); + Opal.defs(self, '$force_update!', $Component_force_update$excl$9 = function() { + var $$10, self = this, components = nil; components = self.$mounted_components().$to_a(); - return $send(components, 'each', [], (TMP_5 = function(comp){var self = TMP_5.$$s || this; -if (comp == null) comp = nil; - + return $send(components, 'each', [], ($$10 = function(comp){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (comp == null) { + comp = nil; + }; if ($truthy(self.$mounted_components()['$include?'](comp))) { - } else { + } else { return nil; }; - return comp['$force_update!']();}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5)); - }, TMP_Component_force_update$B_6.$$arity = 0); - Opal.defs(self, '$deprecation_warning', TMP_Component_deprecation_warning_7 = function $$deprecation_warning(message) { + return comp['$force_update!']();}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + }, $Component_force_update$excl$9.$$arity = 0); + Opal.defs(self, '$deprecation_warning', $Component_deprecation_warning$11 = function $$deprecation_warning(message) { var self = this; - return Opal.const_get_relative($nesting, 'Hyperstack').$deprecation_warning(self.$name(), message) - }, TMP_Component_deprecation_warning_7.$$arity = 1); + return $$($nesting, 'Hyperstack').$deprecation_warning(self.$name(), message) + }, $Component_deprecation_warning$11.$$arity = 1); - Opal.defn(self, '$deprecation_warning', TMP_Component_deprecation_warning_8 = function $$deprecation_warning(message) { + Opal.def(self, '$deprecation_warning', $Component_deprecation_warning$12 = function $$deprecation_warning(message) { var self = this; - return Opal.const_get_relative($nesting, 'Hyperstack').$deprecation_warning(self.$class().$name(), message) - }, TMP_Component_deprecation_warning_8.$$arity = 1); + return $$($nesting, 'Hyperstack').$deprecation_warning(self.$class().$name(), message) + }, $Component_deprecation_warning$12.$$arity = 1); - Opal.defn(self, '$initialize', TMP_Component_initialize_9 = function $$initialize(native_element) { + Opal.def(self, '$initialize', $Component_initialize$13 = function $$initialize(native_element) { var self = this; return (self.__hyperstack_component_native = native_element) - }, TMP_Component_initialize_9.$$arity = 1); + }, $Component_initialize$13.$$arity = 1); - Opal.defn(self, '$emit', TMP_Component_emit_10 = function $$emit(event_name, $a_rest) { - var self = this, args, built_in_event_name = nil; + Opal.def(self, '$emit', $Component_emit$14 = function $$emit(event_name, $a) { + var $post_args, args, self = this, built_in_event_name = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Event'), 'BUILT_IN_EVENTS')['$include?']((built_in_event_name = "" + "on" + (event_name.$to_s().$event_camelize()))))) { + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy($$$($$($nesting, 'Event'), 'BUILT_IN_EVENTS')['$include?']((built_in_event_name = "" + "on" + (event_name.$to_s().$event_camelize()))))) { return $send(self.$params()['$[]'](built_in_event_name), 'call', Opal.to_a(args)) - } else { + } else { return $send(self.$params()['$[]']("" + "on_" + (event_name)), 'call', Opal.to_a(args)) - } - }, TMP_Component_emit_10.$$arity = -2); + }; + }, $Component_emit$14.$$arity = -2); - Opal.defn(self, '$component_will_mount', TMP_Component_component_will_mount_12 = function $$component_will_mount() { - var TMP_11, self = this; + Opal.def(self, '$component_will_mount', $Component_component_will_mount$15 = function $$component_will_mount() { + var $$16, self = this; self.__hyperstack_component_params_wrapper = self.$class().$props_wrapper().$new(self); - if ($truthy(Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_client?']())) { - Opal.const_get_relative($nesting, 'IsomorphicHelpers').$load_context(true)}; - return $send(self, 'observing', [$hash2(["immediate_update"], {"immediate_update": true})], (TMP_11 = function(){var self = TMP_11.$$s || this; + if ($truthy($$($nesting, 'IsomorphicHelpers')['$on_opal_client?']())) { + $$($nesting, 'IsomorphicHelpers').$load_context(true)}; + return $send(self, 'observing', [$hash2(["immediate_update"], {"immediate_update": true})], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - - Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component').$mounted_components()['$<<'](self); - return self.$run_callback("before_mount", self.$props());}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11)); - }, TMP_Component_component_will_mount_12.$$arity = 0); + + $$$($$($nesting, 'Hyperstack'), 'Component').$mounted_components()['$<<'](self); + return self.$run_callback("before_mount", self.$props());}, $$16.$$s = self, $$16.$$arity = 0, $$16)); + }, $Component_component_will_mount$15.$$arity = 0); - Opal.defn(self, '$component_did_mount', TMP_Component_component_did_mount_14 = function $$component_did_mount() { - var TMP_13, self = this; + Opal.def(self, '$component_did_mount', $Component_component_did_mount$17 = function $$component_did_mount() { + var $$18, self = this; - return $send(self, 'observing', [$hash2(["update_objects"], {"update_objects": true})], (TMP_13 = function(){var self = TMP_13.$$s || this; + return $send(self, 'observing', [$hash2(["update_objects"], {"update_objects": true})], ($$18 = function(){var self = $$18.$$s == null ? this : $$18.$$s; - + self.$run_callback("after_mount"); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$quiet_test(self);}, TMP_13.$$s = self, TMP_13.$$arity = 0, TMP_13)) - }, TMP_Component_component_did_mount_14.$$arity = 0); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$quiet_test(self);}, $$18.$$s = self, $$18.$$arity = 0, $$18)) + }, $Component_component_did_mount$17.$$arity = 0); - Opal.defn(self, '$component_will_receive_props', TMP_Component_component_will_receive_props_16 = function $$component_will_receive_props(next_props) { - var TMP_15, self = this; + Opal.def(self, '$component_will_receive_props', $Component_component_will_receive_props$19 = function $$component_will_receive_props(next_props) { + var $$20, self = this; - $send(self, 'observing', [$hash2(["immediate_update"], {"immediate_update": true})], (TMP_15 = function(){var self = TMP_15.$$s || this; + $send(self, 'observing', [$hash2(["immediate_update"], {"immediate_update": true})], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s; - return self.$run_callback("before_new_params", next_props)}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)); + return self.$run_callback("before_new_params", next_props)}, $$20.$$s = self, $$20.$$arity = 0, $$20)); return (self.__hyperstack_component_receiving_props = true); - }, TMP_Component_component_will_receive_props_16.$$arity = 1); + }, $Component_component_will_receive_props$19.$$arity = 1); - Opal.defn(self, '$component_will_update', TMP_Component_component_will_update_18 = function $$component_will_update(next_props, next_state) { - var TMP_17, self = this; + Opal.def(self, '$component_will_update', $Component_component_will_update$21 = function $$component_will_update(next_props, next_state) { + var $$22, self = this; if (self.__hyperstack_component_receiving_props == null) self.__hyperstack_component_receiving_props = nil; if (self.__hyperstack_component_params_wrapper == null) self.__hyperstack_component_params_wrapper = nil; - $send(self, 'observing', [], (TMP_17 = function(){var self = TMP_17.$$s || this; + $send(self, 'observing', [], ($$22 = function(){var self = $$22.$$s == null ? this : $$22.$$s; - return self.$run_callback("before_update", next_props, next_state)}, TMP_17.$$s = self, TMP_17.$$arity = 0, TMP_17)); + return self.$run_callback("before_update", next_props, next_state)}, $$22.$$s = self, $$22.$$arity = 0, $$22)); if ($truthy(self.__hyperstack_component_receiving_props)) { self.__hyperstack_component_params_wrapper.$reload(next_props)}; return (self.__hyperstack_component_receiving_props = false); - }, TMP_Component_component_will_update_18.$$arity = 2); + }, $Component_component_will_update$21.$$arity = 2); - Opal.defn(self, '$component_did_update', TMP_Component_component_did_update_20 = function $$component_did_update(prev_props, prev_state) { - var TMP_19, self = this; + Opal.def(self, '$component_did_update', $Component_component_did_update$23 = function $$component_did_update(prev_props, prev_state) { + var $$24, self = this; - return $send(self, 'observing', [$hash2(["update_objects"], {"update_objects": true})], (TMP_19 = function(){var self = TMP_19.$$s || this; + return $send(self, 'observing', [$hash2(["update_objects"], {"update_objects": true})], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s; - + self.$run_callback("after_update", prev_props, prev_state); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$quiet_test(self);}, TMP_19.$$s = self, TMP_19.$$arity = 0, TMP_19)) - }, TMP_Component_component_did_update_20.$$arity = 2); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext').$quiet_test(self);}, $$24.$$s = self, $$24.$$arity = 0, $$24)) + }, $Component_component_did_update$23.$$arity = 2); - Opal.defn(self, '$component_will_unmount', TMP_Component_component_will_unmount_22 = function $$component_will_unmount() { - var TMP_21, self = this; + Opal.def(self, '$component_will_unmount', $Component_component_will_unmount$25 = function $$component_will_unmount() { + var $$26, self = this; - return $send(self, 'observing', [], (TMP_21 = function(){var self = TMP_21.$$s || this; + return $send(self, 'observing', [], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s; - + self.$unmount(); self.$remove(); - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component').$mounted_components().$delete(self);}, TMP_21.$$s = self, TMP_21.$$arity = 0, TMP_21)) - }, TMP_Component_component_will_unmount_22.$$arity = 0); + return $$$($$($nesting, 'Hyperstack'), 'Component').$mounted_components().$delete(self);}, $$26.$$s = self, $$26.$$arity = 0, $$26)) + }, $Component_component_will_unmount$25.$$arity = 0); - Opal.defn(self, '$component_did_catch', TMP_Component_component_did_catch_24 = function $$component_did_catch(error, info) { - var TMP_23, self = this; + Opal.def(self, '$component_did_catch', $Component_component_did_catch$27 = function $$component_did_catch(error, info) { + var $$28, self = this; - return $send(self, 'observing', [], (TMP_23 = function(){var self = TMP_23.$$s || this; + return $send(self, 'observing', [], ($$28 = function(){var self = $$28.$$s == null ? this : $$28.$$s; - return self.$run_callback("after_error", error, info)}, TMP_23.$$s = self, TMP_23.$$arity = 0, TMP_23)) - }, TMP_Component_component_did_catch_24.$$arity = 2); + return self.$run_callback("after_error", error, info)}, $$28.$$s = self, $$28.$$arity = 0, $$28)) + }, $Component_component_did_catch$27.$$arity = 2); - Opal.defn(self, '$mutations', TMP_Component_mutations_25 = function $$mutations(_objects) { + Opal.def(self, '$mutations', $Component_mutations$29 = function $$mutations(_objects) { var self = this; return self.$set_state($hash2(["***_state_updated_at-***"], {"***_state_updated_at-***": Date.now() + Math.random()})) - }, TMP_Component_mutations_25.$$arity = 1); + }, $Component_mutations$29.$$arity = 1); - Opal.defn(self, '$update_react_js_state', TMP_Component_update_react_js_state_26 = function $$update_react_js_state(object, name, value) { + Opal.def(self, '$update_react_js_state', $Component_update_react_js_state$30 = function $$update_react_js_state(object, name, value) { var self = this; if ($truthy(object)) { if (object['$=='](self)) { - } else { + } else { name = "" + (object.$class()) + "." + (name) }; return self.$set_state($hash("***_state_updated_at-***", Date.now() + Math.random(), name, value)); - } else { + } else { return self.$set_state($hash(name, value)) } - }, TMP_Component_update_react_js_state_26.$$arity = 3); + }, $Component_update_react_js_state$30.$$arity = 3); if ($truthy(self['$method_defined?']("render"))) { - } else { + } else { - Opal.defn(self, '$render', TMP_Component_render_27 = function $$render() { + Opal.def(self, '$render', $Component_render$31 = function $$render() { var self = this; return self.$raise("no render defined") - }, TMP_Component_render_27.$$arity = 0) + }, $Component_render$31.$$arity = 0) }; - Opal.defn(self, '$waiting_on_resources', TMP_Component_waiting_on_resources_28 = function $$waiting_on_resources() { + Opal.def(self, '$waiting_on_resources', $Component_waiting_on_resources$32 = function $$waiting_on_resources() { var self = this; if (self.__hyperstack_component_waiting_on_resources == null) self.__hyperstack_component_waiting_on_resources = nil; return self.__hyperstack_component_waiting_on_resources - }, TMP_Component_waiting_on_resources_28.$$arity = 0); + }, $Component_waiting_on_resources$32.$$arity = 0); - Opal.defn(self, '$__hyperstack_component_run_post_render_hooks', TMP_Component___hyperstack_component_run_post_render_hooks_30 = function $$__hyperstack_component_run_post_render_hooks(element) { - var TMP_29, self = this; - - return $send(self, 'run_callback', ["__hyperstack_component_after_render_hook", element], (TMP_29 = function($a_rest){var self = TMP_29.$$s || this, args; + Opal.def(self, '$__hyperstack_component_run_post_render_hooks', $Component___hyperstack_component_run_post_render_hooks$33 = function $$__hyperstack_component_run_post_render_hooks(element) { + var self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return args}, TMP_29.$$s = self, TMP_29.$$arity = -1, TMP_29)).$first() - }, TMP_Component___hyperstack_component_run_post_render_hooks_30.$$arity = 1); + return self.$run_callback("__hyperstack_component_after_render_hook", element).$first() + }, $Component___hyperstack_component_run_post_render_hooks$33.$$arity = 1); - Opal.defn(self, '$_render_wrapper', TMP_Component__render_wrapper_33 = function $$_render_wrapper() { - var TMP_31, self = this; + Opal.def(self, '$_run_before_render_callbacks', $Component__run_before_render_callbacks$34 = function $$_run_before_render_callbacks() { + var self = this; + if (self.__component_mounted == null) self.__component_mounted = nil; - return $send(self, 'observing', [$hash2(["rendering"], {"rendering": true})], (TMP_31 = function(){var self = TMP_31.$$s || this, TMP_32, element = nil; + + if ($truthy(self.__component_mounted)) { + } else { + self.$component_will_mount() + }; + return (self.__component_mounted = true); + }, $Component__run_before_render_callbacks$34.$$arity = 0); + return (Opal.def(self, '$_render_wrapper', $Component__render_wrapper$35 = function $$_render_wrapper() { + var $$36, self = this; - element = $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [nil], (TMP_32 = function(){var self = TMP_32.$$s || this, $a; + self.$_run_before_render_callbacks(); + return $send(self, 'observing', [$hash2(["rendering"], {"rendering": true})], ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s, $$37, element = nil; - return ($truthy($a = self.$render()) ? $a : "")}, TMP_32.$$s = self, TMP_32.$$arity = 0, TMP_32)); + + element = $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [nil], ($$37 = function(){var self = $$37.$$s == null ? this : $$37.$$s, $ret_or_4 = nil; + + if ($truthy(($ret_or_4 = self.$render()))) { + return $ret_or_4 + } else { + return "" + }}, $$37.$$s = self, $$37.$$arity = 0, $$37)); if ($truthy(element['$respond_to?']("waiting_on_resources"))) { self.__hyperstack_component_waiting_on_resources = element.$waiting_on_resources()}; - return element;}, TMP_31.$$s = self, TMP_31.$$arity = 0, TMP_31)) - }, TMP_Component__render_wrapper_33.$$arity = 0); + return element;}, $$36.$$s = self, $$36.$$arity = 0, $$36)); + }, $Component__render_wrapper$35.$$arity = 0), nil) && '_render_wrapper'; })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/should_component_update"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["hyperstack/internal/component/should_component_update"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$observing', '$respond_to?', '$!', '$call_needs_update', '$props_changed?', '$native_state_changed?', '$define_singleton_method', '$needs_update?', '$new', '$!=']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $ShouldComponentUpdate, self = $ShouldComponentUpdate = $module($base, 'ShouldComponentUpdate'); + return (function($base, $parent_nesting) { + var self = $module($base, 'ShouldComponentUpdate'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ShouldComponentUpdate_should_component_update$q_2, TMP_ShouldComponentUpdate_call_needs_update_5, TMP_ShouldComponentUpdate_native_state_changed$q_6, TMP_ShouldComponentUpdate_props_changed$q_7; + var $nesting = [self].concat($parent_nesting), $ShouldComponentUpdate_should_component_update$ques$1, $ShouldComponentUpdate_call_needs_update$3, $ShouldComponentUpdate_native_state_changed$ques$6, $ShouldComponentUpdate_props_changed$ques$7; - Opal.defn(self, '$should_component_update?', TMP_ShouldComponentUpdate_should_component_update$q_2 = function(next_props, next_state) { - var TMP_1, self = this; + Opal.def(self, '$should_component_update?', $ShouldComponentUpdate_should_component_update$ques$1 = function(next_props, next_state) { + var $$2, self = this; - return $send(self, 'observing', [], (TMP_1 = function(){var self = TMP_1.$$s || this, $a; + return $send(self, 'observing', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $ret_or_1 = nil; - if ($truthy(self['$respond_to?']("needs_update?"))) { + if ($truthy(self['$respond_to?']("needs_update?"))) { return self.$call_needs_update(next_props, next_state)['$!']()['$!']() - } else { - return ($truthy($a = self['$props_changed?'](next_props)) ? $a : self['$native_state_changed?'](next_state)) - }}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)) - }, TMP_ShouldComponentUpdate_should_component_update$q_2.$$arity = 2); + } else if ($truthy(($ret_or_1 = self['$props_changed?'](next_props)))) { + return $ret_or_1 + } else { + return self['$native_state_changed?'](next_state) + }}, $$2.$$s = self, $$2.$$arity = 0, $$2)) + }, $ShouldComponentUpdate_should_component_update$ques$1.$$arity = 2); - Opal.defn(self, '$call_needs_update', TMP_ShouldComponentUpdate_call_needs_update_5 = function $$call_needs_update(next_params, next_state) { - var TMP_3, TMP_4, self = this, component = nil; + Opal.def(self, '$call_needs_update', $ShouldComponentUpdate_call_needs_update$3 = function $$call_needs_update(next_params, next_state) { + var $$4, $$5, self = this, component = nil; component = self; - $send(next_params, 'define_singleton_method', ["changed?"], (TMP_3 = function(){var self = TMP_3.$$s || this; + $send(next_params, 'define_singleton_method', ["changed?"], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - return component['$props_changed?'](self)}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)); - $send(next_state, 'define_singleton_method', ["changed?"], (TMP_4 = function(){var self = TMP_4.$$s || this; + return component['$props_changed?'](self)}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + $send(next_state, 'define_singleton_method', ["changed?"], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; - return component['$native_state_changed?'](next_state)}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)); + return component['$native_state_changed?'](next_state)}, $$5.$$s = self, $$5.$$arity = 0, $$5)); return self['$needs_update?'](next_params, next_state); - }, TMP_ShouldComponentUpdate_call_needs_update_5.$$arity = 2); + }, $ShouldComponentUpdate_call_needs_update$3.$$arity = 2); - Opal.defn(self, '$native_state_changed?', TMP_ShouldComponentUpdate_native_state_changed$q_6 = function(next_state_hash) { + Opal.def(self, '$native_state_changed?', $ShouldComponentUpdate_native_state_changed$ques$6 = function(next_state_hash) { var self = this, state_hash = nil; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - state_hash = Opal.const_get_relative($nesting, 'Hash').$new(self.__hyperstack_component_native.state); + state_hash = $$($nesting, 'Hash').$new(self.__hyperstack_component_native.state); return next_state_hash['$!='](state_hash); - }, TMP_ShouldComponentUpdate_native_state_changed$q_6.$$arity = 1); - - Opal.defn(self, '$props_changed?', TMP_ShouldComponentUpdate_props_changed$q_7 = function(next_props) { + }, $ShouldComponentUpdate_native_state_changed$ques$6.$$arity = 1); + return (Opal.def(self, '$props_changed?', $ShouldComponentUpdate_props_changed$ques$7 = function(next_props) { var self = this, props = nil; if (self.__hyperstack_component_native == null) self.__hyperstack_component_native = nil; - props = Opal.const_get_relative($nesting, 'Hash').$new(self.__hyperstack_component_native.props); + props = $$($nesting, 'Hash').$new(self.__hyperstack_component_native.props); return next_props['$!='](props); - }, TMP_ShouldComponentUpdate_props_changed$q_7.$$arity = 1); + }, $ShouldComponentUpdate_props_changed$ques$7.$$arity = 1), nil) && 'props_changed?'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/tags"] = function(Opal) { +Opal.modules["hyperstack/internal/component/tags"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $klass = Opal.klass; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $klass = Opal.klass; - Opal.add_stubs(['$+', '$each', '$define_method', '$upcase', '$render', '$to_proc', '$const_set', '$downcase', '$=~', '$include?', '$create_element', '$find_component', '$find_name_and_parent', '$new', '$extend', '$private', '$name', '$split', '$>', '$length', '$last', '$[]', '$inject', '$const_get', '$lookup_const', '$!', '$method_defined?', '$raise', '$_reactrb_import_component_class', '$reverse', '$to_s', '$class', '$detect', '$const_defined?', '$respond_to?']); + Opal.add_stubs(['$+', '$each', '$define_method', '$upcase', '$render', '$to_proc', '$const_set', '$new', '$include', '$import_native_component', '$downcase', '$=~', '$include?', '$create_element', '$find_component', '$find_name_and_parent', '$extend', '$private', '$name', '$split', '$>', '$length', '$last', '$[]', '$inject', '$const_get', '$lookup_const', '$!', '$method_defined?', '$raise', '$_reactrb_import_component_class', '$==', '$reverse', '$to_s', '$class', '$detect', '$const_defined?', '$respond_to?']); (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $Component$3; - (function($base, $parent_nesting) { - var $Tags, self = $Tags = $module($base, 'Tags'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Tags'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Tags_1, TMP_Tags_html_tag_class_for_3, TMP_Tags_method_missing_4, TMP_Tags_find_component_10, TMP_Tags_lookup_const_13; + var $nesting = [self].concat($parent_nesting), $Tags$1, $Tags$4, $Tags_html_tag_class_for$6, $Tags_method_missing$7, $Tags_find_component$13, $Tags_lookup_const$14; Opal.const_set($nesting[0], 'HTML_TAGS', $rb_plus(["a", "abbr", "address", "area", "article", "aside", "audio", "b", "base", "bdi", "bdo", "big", "blockquote", "body", "br", "button", "canvas", "caption", "cite", "code", "col", "colgroup", "data", "datalist", "dd", "del", "details", "dfn", "dialog", "div", "dl", "dt", "em", "embed", "fieldset", "figcaption", "figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hr", "html", "i", "iframe", "img", "input", "ins", "kbd", "keygen", "label", "legend", "li", "link", "main", "map", "mark", "menu", "menuitem", "meta", "meter", "nav", "noscript", "object", "ol", "optgroup", "option", "output", "p", "param", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "script", "section", "select", "small", "source", "span", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "textarea", "tfoot", "th", "thead", "time", "title", "tr", "track", "u", "ul", "var", "video", "wbr"], ["circle", "clipPath", "defs", "ellipse", "g", "line", "linearGradient", "mask", "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "svg", "text", "tspan"])); - $send(Opal.const_get_relative($nesting, 'HTML_TAGS'), 'each', [], (TMP_Tags_1 = function(tag){var self = TMP_Tags_1.$$s || this, TMP_2; -if (tag == null) tag = nil; - - $send(self, 'define_method', [tag.$upcase()], (TMP_2 = function($a_rest){var self = TMP_2.$$s || this, children, params; - - children = TMP_2.$$p || nil; - if (children) TMP_2.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [tag].concat(Opal.to_a(params)), children.$to_proc())}, TMP_2.$$s = self, TMP_2.$$arity = -1, TMP_2)); - return self.$const_set(tag.$upcase(), tag);}, TMP_Tags_1.$$s = self, TMP_Tags_1.$$arity = 1, TMP_Tags_1)); - Opal.defs(self, '$html_tag_class_for', TMP_Tags_html_tag_class_for_3 = function $$html_tag_class_for(tag) { - var $a, self = this, downcased_tag = nil; + $send($$($nesting, 'HTML_TAGS'), 'each', [], ($Tags$1 = function(tag){var self = $Tags$1.$$s == null ? this : $Tags$1.$$s, $$2; + + + + if (tag == null) { + tag = nil; + }; + $send(self, 'define_method', [tag.$upcase()], ($$2 = function($a){var self = $$2.$$s == null ? this : $$2.$$s, $iter = $$2.$$p, children = $iter || nil, $post_args, params; + + + + if ($iter) $$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + params = $post_args;; + return $send($$($nesting, 'RenderingContext'), 'render', [tag].concat(Opal.to_a(params)), children.$to_proc());}, $$2.$$s = self, $$2.$$arity = -1, $$2)); + return self.$const_set(tag.$upcase(), tag);}, $Tags$1.$$s = self, $Tags$1.$$arity = 1, $Tags$1)); + self.$const_set("FRAGMENT", $send($$($nesting, 'Class'), 'new', [], ($Tags$4 = function(){var self = $Tags$4.$$s == null ? this : $Tags$4.$$s, $$5; + + + self.$include($$$($$($nesting, 'Hyperstack'), 'Component')); + $send(self, 'render', [], ($$5 = function(){var self = $$5.$$s == null ? this : $$5.$$s; + + return nil}, $$5.$$s = self, $$5.$$arity = 0, $$5)); + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper').$import_native_component(self, React.Fragment);}, $Tags$4.$$s = self, $Tags$4.$$arity = 0, $Tags$4))); + Opal.defs(self, '$html_tag_class_for', $Tags_html_tag_class_for$6 = function $$html_tag_class_for(tag) { + var self = this, downcased_tag = nil, $ret_or_1 = nil; downcased_tag = tag.$downcase(); - if ($truthy(($truthy($a = tag['$=~'](/^[A-Z]+$/)) ? Opal.const_get_relative($nesting, 'HTML_TAGS')['$include?'](downcased_tag) : $a))) { - return Opal.const_get_relative($nesting, 'Object').$const_set(tag, Opal.const_get_relative($nesting, 'ReactWrapper').$create_element(downcased_tag)) - } else { + if ($truthy((function() {if ($truthy(($ret_or_1 = tag['$=~'](/^[A-Z]+$/)))) { + return $$($nesting, 'HTML_TAGS')['$include?'](downcased_tag) + } else { + return $ret_or_1 + }; return nil; })())) { + return $$($nesting, 'Object').$const_set(tag, $$($nesting, 'ReactWrapper').$create_element(downcased_tag)) + } else { return nil }; - }, TMP_Tags_html_tag_class_for_3.$$arity = 1); + }, $Tags_html_tag_class_for$6.$$arity = 1); - Opal.defn(self, '$method_missing', TMP_Tags_method_missing_4 = function $$method_missing(name, $a_rest) { - var self = this, params, $iter = TMP_Tags_method_missing_4.$$p, children = $iter || nil, component = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$method_missing', $Tags_method_missing$7 = function $$method_missing(name, $a) { + var $iter = $Tags_method_missing$7.$$p, children = $iter || nil, $post_args, params, self = this, component = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Tags_method_missing_4.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Tags_method_missing$7.$$p = null; + + + if ($iter) $Tags_method_missing$7.$$p = null;; + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + params = $post_args;; component = self.$find_component(name); if ($truthy(component)) { - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [component].concat(Opal.to_a(params)), children.$to_proc())}; - return $send(self, Opal.find_super_dispatcher(self, 'method_missing', TMP_Tags_method_missing_4, false), $zuper, $iter); - }, TMP_Tags_method_missing_4.$$arity = -2); + return $send($$($nesting, 'RenderingContext'), 'render', [component].concat(Opal.to_a(params)), children.$to_proc())}; + return $send2(self, $find_super(self, 'method_missing', $Tags_method_missing$7, false, true), 'method_missing', [name].concat(Opal.to_a(params)), $iter); + }, $Tags_method_missing$7.$$arity = -2); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_included_7, TMP_find_name_and_parent_9; + var $nesting = [self].concat($parent_nesting), $included$8, $find_name_and_parent$11; - Opal.defn(self, '$included', TMP_included_7 = function $$included(component) { - var $a, $b, TMP_5, self = this, name = nil, parent = nil, tag_names_module = nil; + Opal.def(self, '$included', $included$8 = function $$included(component) { + var $a, $b, $$9, $iter = $included$8.$$p, $yield = $iter || nil, self = this, name = nil, parent = nil, tag_names_module = nil; + if ($iter) $included$8.$$p = null; $b = self.$find_name_and_parent(component), $a = Opal.to_ary($b), (name = ($a[0] == null ? nil : $a[0])), (parent = ($a[1] == null ? nil : $a[1])), $b; - tag_names_module = $send(Opal.const_get_relative($nesting, 'Module'), 'new', [], (TMP_5 = function(){var self = TMP_5.$$s || this, TMP_6; + tag_names_module = $send($$($nesting, 'Module'), 'new', [], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s, $$10; - return $send(self, 'define_method', [name], (TMP_6 = function($c_rest){var self = TMP_6.$$s || this, children, params; + return $send(self, 'define_method', [name], ($$10 = function($c){var self = $$10.$$s == null ? this : $$10.$$s, $iter = $$10.$$p, children = $iter || nil, $post_args, params; - children = TMP_6.$$p || nil; - if (children) TMP_6.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - params = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - params[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'render', [component].concat(Opal.to_a(params)), children.$to_proc())}, TMP_6.$$s = self, TMP_6.$$arity = -1, TMP_6))}, TMP_5.$$s = self, TMP_5.$$arity = 0, TMP_5)); + + + if ($iter) $$10.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + params = $post_args;; + return $send($$($nesting, 'RenderingContext'), 'render', [component].concat(Opal.to_a(params)), children.$to_proc());}, $$10.$$s = self, $$10.$$arity = -1, $$10))}, $$9.$$s = self, $$9.$$arity = 0, $$9)); return parent.$extend(tag_names_module); - }, TMP_included_7.$$arity = 1); + }, $included$8.$$arity = 1); self.$private(); - return (Opal.defn(self, '$find_name_and_parent', TMP_find_name_and_parent_9 = function $$find_name_and_parent(component) { - var $a, TMP_8, self = this, split_name = nil; + return (Opal.def(self, '$find_name_and_parent', $find_name_and_parent$11 = function $$find_name_and_parent(component) { + var $$12, self = this, split_name = nil, $ret_or_2 = nil, $ret_or_3 = nil; - split_name = ($truthy($a = component.$name()) ? component.$name().$split("::") : $a); - if ($truthy(($truthy($a = split_name) ? $rb_gt(split_name.$length(), 1) : $a))) { - return [split_name.$last(), $send(split_name, 'inject', [[Opal.const_get_relative($nesting, 'Module')]], (TMP_8 = function(a, e){var self = TMP_8.$$s || this; -if (a == null) a = nil;if (e == null) e = nil; - return $rb_plus(a, [a.$last().$const_get(e)])}, TMP_8.$$s = self, TMP_8.$$arity = 2, TMP_8))['$[]'](-2)] - } else { + split_name = (function() {if ($truthy(($ret_or_2 = component.$name()))) { + return component.$name().$split("::") + } else { + return $ret_or_2 + }; return nil; })(); + if ($truthy((function() {if ($truthy(($ret_or_3 = split_name))) { + return $rb_gt(split_name.$length(), 1) + } else { + return $ret_or_3 + }; return nil; })())) { + return [split_name.$last(), $send(split_name, 'inject', [[$$($nesting, 'Module')]], ($$12 = function(a, e){var self = $$12.$$s == null ? this : $$12.$$s; + + + + if (a == null) { + a = nil; + }; + + if (e == null) { + e = nil; + }; + return $rb_plus(a, [a.$last().$const_get(e)]);}, $$12.$$s = self, $$12.$$arity = 2, $$12))['$[]'](-2)] + } else { return nil }; - }, TMP_find_name_and_parent_9.$$arity = 1), nil) && 'find_name_and_parent'; + }, $find_name_and_parent$11.$$arity = 1), nil) && 'find_name_and_parent'; })(Opal.get_singleton_class(self), $nesting); self.$private(); - Opal.defn(self, '$find_component', TMP_Tags_find_component_10 = function $$find_component(name) { - var $a, self = this, component = nil; + Opal.def(self, '$find_component', $Tags_find_component$13 = function $$find_component(name) { + var self = this, component = nil, $ret_or_4 = nil, $ret_or_5 = nil; component = self.$lookup_const(name); - if ($truthy(($truthy($a = component) ? component['$method_defined?']("render")['$!']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = component))) { + return component['$method_defined?']("render")['$!']() + } else { + return $ret_or_4 + }; return nil; })())) { self.$raise("" + (name) + " does not appear to be a react component.")}; - return ($truthy($a = component) ? $a : Opal.const_get_relative($nesting, 'Object').$_reactrb_import_component_class(name)); - }, TMP_Tags_find_component_10.$$arity = 1); - - Opal.defn(self, '$lookup_const', TMP_Tags_lookup_const_13 = function $$lookup_const(name) { - var TMP_11, TMP_12, self = this, scopes = nil, scope = nil; + if ($truthy(($ret_or_5 = component))) { + return $ret_or_5 + } else { + return $$($nesting, 'Object').$_reactrb_import_component_class(name) + }; + }, $Tags_find_component$13.$$arity = 1); + return (Opal.def(self, '$lookup_const', $Tags_lookup_const$14 = function $$lookup_const(name) { + var $$15, $$16, self = this, scopes = nil, scope = nil; if ($truthy(name['$=~'](/^[A-Z]/))) { - } else { + } else { return nil }; - scopes = $send(self.$class().$name().$to_s().$split("::"), 'inject', [[Opal.const_get_relative($nesting, 'Object')]], (TMP_11 = function(nesting, next_const){var self = TMP_11.$$s || this; -if (nesting == null) nesting = nil;if (next_const == null) next_const = nil; - return $rb_plus(nesting, [nesting.$last().$const_get(next_const)])}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11)).$reverse(); - scope = $send(scopes, 'detect', [], (TMP_12 = function(s){var self = TMP_12.$$s || this; -if (s == null) s = nil; - return s['$const_defined?'](name, false)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)); + if (name['$==']("FRAGMENT")) { + return $$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'FRAGMENT')}; + scopes = $send(self.$class().$name().$to_s().$split("::"), 'inject', [[$$($nesting, 'Object')]], ($$15 = function(nesting, next_const){var self = $$15.$$s == null ? this : $$15.$$s; + + + + if (nesting == null) { + nesting = nil; + }; + + if (next_const == null) { + next_const = nil; + }; + return $rb_plus(nesting, [nesting.$last().$const_get(next_const)]);}, $$15.$$s = self, $$15.$$arity = 2, $$15)).$reverse(); + scope = $send(scopes, 'detect', [], ($$16 = function(s){var self = $$16.$$s == null ? this : $$16.$$s; + + + + if (s == null) { + s = nil; + }; + return s['$const_defined?'](name, false);}, $$16.$$s = self, $$16.$$arity = 1, $$16)); if ($truthy(scope)) { return scope.$const_get(name, false) - } else { + } else { return nil }; - }, TMP_Tags_lookup_const_13.$$arity = 1); + }, $Tags_lookup_const$14.$$arity = 1), nil) && 'lookup_const'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); - if ($truthy(Opal.const_get_relative($nesting, 'Object')['$respond_to?']("_reactrb_import_component_class"))) { + if ($truthy($$($nesting, 'Object')['$respond_to?']("_reactrb_import_component_class"))) { return nil - } else { + } else { return (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object__reactrb_import_component_class_14; + var $nesting = [self].concat($parent_nesting), $Object__reactrb_import_component_class$17; - return Opal.defs(self, '$_reactrb_import_component_class', TMP_Object__reactrb_import_component_class_14 = function $$_reactrb_import_component_class(_name) { + return (Opal.defs(self, '$_reactrb_import_component_class', $Object__reactrb_import_component_class$17 = function $$_reactrb_import_component_class(_name) { var self = this; return nil - }, TMP_Object__reactrb_import_component_class_14.$$arity = 1) + }, $Object__reactrb_import_component_class$17.$$arity = 1), nil) && '_reactrb_import_component_class' })($nesting[0], null, $nesting) }; }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/event"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["hyperstack/component/event"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$include', '$alias_native']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Event(){}; - var self = $Event = $klass($base, $super, 'Event', $Event); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Event'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Event_initialize_1; + var $nesting = [self].concat($parent_nesting), $Event_initialize$1; - self.$include(Opal.const_get_relative($nesting, 'Native')); + self.$include($$$($$($nesting, 'Native'), 'Wrapper')); self.$alias_native("bubbles", "bubbles"); self.$alias_native("cancelable", "cancelable"); self.$alias_native("current_target", "currentTarget"); @@ -22352,642 +24870,732 @@ Opal.modules["hyperstack/component/event"] = function(Opal) { self.$alias_native("delta_y", "deltaY"); self.$alias_native("delta_z", "deltaZ"); Opal.const_set($nesting[0], 'BUILT_IN_EVENTS', ["onCopy", "onCut", "onPaste", "onKeyDown", "onKeyPress", "onKeyUp", "onFocus", "onBlur", "onChange", "onInput", "onSubmit", "onClick", "onContextMenu", "onDoubleClick", "onDrag", "onDragEnd", "onDragEnter", "onDragExit", "onDragLeave", "onDragOver", "onDragStart", "onDrop", "onMouseDown", "onMouseEnter", "onMouseLeave", "onMouseMove", "onMouseOut", "onMouseOver", "onMouseUp", "onSelect", "onTouchCancel", "onTouchEnd", "onTouchMove", "onTouchStart", "onScroll", "onWheel"]); - return (Opal.defn(self, '$initialize', TMP_Event_initialize_1 = function $$initialize(native_event) { + return (Opal.def(self, '$initialize', $Event_initialize$1 = function $$initialize(native_event) { var self = this; return (self["native"] = native_event) - }, TMP_Event_initialize_1.$$arity = 1), nil) && 'initialize'; + }, $Event_initialize$1.$$arity = 1), nil) && 'initialize'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/object"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["hyperstack/ext/component/object"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy; Opal.add_stubs(['$_reactrb_tag_original_const_missing', '$html_tag_class_for', '$raise', '$object_id']); return (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Object_to_key_2; + var $nesting = [self].concat($parent_nesting), $Object_to_key$2; (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_const_missing_1; + var $nesting = [self].concat($parent_nesting), $const_missing$1; - Opal.alias(self, "_reactrb_tag_original_const_missing", "const_missing"); - return (Opal.defn(self, '$const_missing', TMP_const_missing_1 = function $$const_missing(const_name) { - var $a, self = this, e = nil; + $alias(self, "_reactrb_tag_original_const_missing", "const_missing"); + return (Opal.def(self, '$const_missing', $const_missing$1 = function $$const_missing(const_name) { + var self = this, e = nil, $ret_or_1 = nil; try { return self.$_reactrb_tag_original_const_missing(const_name) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) {(e = $err) try { - return ($truthy($a = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags').$html_tag_class_for(const_name)) ? $a : self.$raise(e)) - } finally { Opal.pop_exception() } + if ($truthy(($ret_or_1 = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags').$html_tag_class_for(const_name)))) { + return $ret_or_1 + } else { + return self.$raise(e) + } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_const_missing_1.$$arity = 1), nil) && 'const_missing'; + }, $const_missing$1.$$arity = 1), nil) && 'const_missing'; })(Opal.get_singleton_class(self), $nesting) })($nesting[0], null, $nesting); - return (Opal.defn(self, '$to_key', TMP_Object_to_key_2 = function $$to_key() { + return (Opal.def(self, '$to_key', $Object_to_key$2 = function $$to_key() { var self = this; return self.$object_id() - }, TMP_Object_to_key_2.$$arity = 0), nil) && 'to_key'; + }, $Object_to_key$2.$$arity = 0), nil) && 'to_key'; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/kernel"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["hyperstack/ext/component/kernel"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $alias = Opal.alias; Opal.add_stubs(['$tap', '$new', '$after', '$resolve', '$call']); return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_pause_1; + var $nesting = [self].concat($parent_nesting), $Kernel_pause$1; - Opal.defn(self, '$pause', TMP_Kernel_pause_1 = function $$pause(s) { - var TMP_2, self = this, $iter = TMP_Kernel_pause_1.$$p, block = $iter || nil; + Opal.def(self, '$pause', $Kernel_pause$1 = function $$pause(s) { + var $iter = $Kernel_pause$1.$$p, block = $iter || nil, $$2, self = this; + + if ($iter) $Kernel_pause$1.$$p = null; + + + if ($iter) $Kernel_pause$1.$$p = null;; + return $send($$($nesting, 'Promise').$new(), 'tap', [], ($$2 = function(p){var self = $$2.$$s == null ? this : $$2.$$s, $$3; - if ($iter) TMP_Kernel_pause_1.$$p = null; - return $send(Opal.const_get_relative($nesting, 'Promise').$new(), 'tap', [], (TMP_2 = function(p){var self = TMP_2.$$s || this, TMP_3; -if (p == null) p = nil; - return $send(self, 'after', [s], (TMP_3 = function(){var self = TMP_3.$$s || this, $a; + + + if (p == null) { + p = nil; + }; + return $send(self, 'after', [s], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $ret_or_1 = nil; - return $send(p, 'resolve', Opal.to_a(($truthy($a = block) ? [block.$call()] : $a)))}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3))}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)) - }, TMP_Kernel_pause_1.$$arity = 1); - Opal.alias(self, "busy_sleep", "sleep"); - Opal.alias(self, "sleep", "pause"); + return $send(p, 'resolve', Opal.to_a((function() {if ($truthy(($ret_or_1 = block))) { + return [block.$call()] + } else { + return $ret_or_1 + }; return nil; })()))}, $$3.$$s = self, $$3.$$arity = 0, $$3));}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $Kernel_pause$1.$$arity = 1); + $alias(self, "busy_sleep", "sleep"); + return $alias(self, "sleep", "pause"); })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/number"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["hyperstack/ext/component/number"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; return (function($base, $super, $parent_nesting) { - function $Number(){}; - var self = $Number = $klass($base, $super, 'Number', $Number); + var self = $klass($base, $super, 'Number'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Number_to_key_1; + var $nesting = [self].concat($parent_nesting), $Number_to_key$1; - return (Opal.defn(self, '$to_key', TMP_Number_to_key_1 = function $$to_key() { + return (Opal.def(self, '$to_key', $Number_to_key$1 = function $$to_key() { var self = this; return self - }, TMP_Number_to_key_1.$$arity = 0), nil) && 'to_key' + }, $Number_to_key$1.$$arity = 0), nil) && 'to_key' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/boolean"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["hyperstack/ext/component/boolean"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; return (function($base, $super, $parent_nesting) { - function $Boolean(){}; - var self = $Boolean = $klass($base, $super, 'Boolean', $Boolean); + var self = $klass($base, $super, 'Boolean'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Boolean_to_key_1; + var $nesting = [self].concat($parent_nesting), $Boolean_to_key$1; - return (Opal.defn(self, '$to_key', TMP_Boolean_to_key_1 = function $$to_key() { + return (Opal.def(self, '$to_key', $Boolean_to_key$1 = function $$to_key() { var self = this; return self - }, TMP_Boolean_to_key_1.$$arity = 0), nil) && 'to_key' + }, $Boolean_to_key$1.$$arity = 0), nil) && 'to_key' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/array"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["hyperstack/ext/component/array"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$to_enum', '$size', '$reject!', '$<<']); return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_extract$B_1; + var $nesting = [self].concat($parent_nesting), $Array_extract$excl$1; - return (Opal.defn(self, '$extract!', TMP_Array_extract$B_1 = function() { - var TMP_2, TMP_3, self = this, $iter = TMP_Array_extract$B_1.$$p, $yield = $iter || nil, extracted_elements = nil; + return (Opal.def(self, '$extract!', $Array_extract$excl$1 = function() { + var $$2, $$3, $iter = $Array_extract$excl$1.$$p, $yield = $iter || nil, self = this, extracted_elements = nil; - if ($iter) TMP_Array_extract$B_1.$$p = null; + if ($iter) $Array_extract$excl$1.$$p = null; if (($yield !== nil)) { - } else { - return $send(self, 'to_enum', ["extract!"], (TMP_2 = function(){var self = TMP_2.$$s || this; + } else { + return $send(self, 'to_enum', ["extract!"], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; - return self.$size()}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)) + return self.$size()}, $$2.$$s = self, $$2.$$arity = 0, $$2)) }; extracted_elements = []; - $send(self, 'reject!', [], (TMP_3 = function(element){var self = TMP_3.$$s || this; -if (element == null) element = nil; - if ($truthy(Opal.yield1($yield, element))) { + $send(self, 'reject!', [], ($$3 = function(element){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (element == null) { + element = nil; + }; + if ($truthy(Opal.yield1($yield, element))) { return extracted_elements['$<<'](element) - } else { + } else { return nil - }}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); + };}, $$3.$$s = self, $$3.$$arity = 1, $$3)); return extracted_elements; - }, TMP_Array_extract$B_1.$$arity = 0), nil) && 'extract!' + }, $Array_extract$excl$1.$$arity = 0), nil) && 'extract!' })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/ext/component/enumerable"] = function(Opal) { +Opal.modules["hyperstack/ext/component/enumerable"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$new', '$private_constant', '$each', '$[]=', '$-', '$!=', '$to_enum', '$respond_to?', '$size']); return (function($base, $parent_nesting) { - var $Enumerable, self = $Enumerable = $module($base, 'Enumerable'); + var self = $module($base, 'Enumerable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerable_index_with_1; + var $nesting = [self].concat($parent_nesting), $Enumerable_index_with$1; - Opal.const_set($nesting[0], 'INDEX_WITH_DEFAULT', Opal.const_get_relative($nesting, 'Object').$new()); + Opal.const_set($nesting[0], 'INDEX_WITH_DEFAULT', $$($nesting, 'Object').$new()); self.$private_constant("INDEX_WITH_DEFAULT"); - - Opal.defn(self, '$index_with', TMP_Enumerable_index_with_1 = function $$index_with(default$) { - var TMP_2, TMP_3, TMP_4, self = this, $iter = TMP_Enumerable_index_with_1.$$p, $yield = $iter || nil, result = nil; + return (Opal.def(self, '$index_with', $Enumerable_index_with$1 = function $$index_with(default$) { + var $$2, $$3, $$4, $iter = $Enumerable_index_with$1.$$p, $yield = $iter || nil, self = this, result = nil; + if ($iter) $Enumerable_index_with$1.$$p = null; + + if (default$ == null) { - default$ = Opal.const_get_relative($nesting, 'INDEX_WITH_DEFAULT'); - } - if ($iter) TMP_Enumerable_index_with_1.$$p = null; + default$ = $$($nesting, 'INDEX_WITH_DEFAULT'); + }; if (($yield !== nil)) { result = $hash2([], {}); - $send(self, 'each', [], (TMP_2 = function(elem){var self = TMP_2.$$s || this, $writer = nil; -if (elem == null) elem = nil; - + $send(self, 'each', [], ($$2 = function(elem){var self = $$2.$$s == null ? this : $$2.$$s, $writer = nil; + + + + if (elem == null) { + elem = nil; + }; $writer = [elem, Opal.yield1($yield, elem)]; $send(result, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 1, $$2)); return result; - } else if ($truthy(default$['$!='](Opal.const_get_relative($nesting, 'INDEX_WITH_DEFAULT')))) { + } else if ($truthy(default$['$!=']($$($nesting, 'INDEX_WITH_DEFAULT')))) { result = $hash2([], {}); - $send(self, 'each', [], (TMP_3 = function(elem){var self = TMP_3.$$s || this, $writer = nil; -if (elem == null) elem = nil; - + $send(self, 'each', [], ($$3 = function(elem){var self = $$3.$$s == null ? this : $$3.$$s, $writer = nil; + + + + if (elem == null) { + elem = nil; + }; $writer = [elem, default$]; $send(result, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); + return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 1, $$3)); return result; - } else { - return $send(self, 'to_enum', ["index_with"], (TMP_4 = function(){var self = TMP_4.$$s || this; + } else { + return $send(self, 'to_enum', ["index_with"], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - if ($truthy(self['$respond_to?']("size"))) { + if ($truthy(self['$respond_to?']("size"))) { return self.$size() - } else { + } else { return nil - }}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)) - } - }, TMP_Enumerable_index_with_1.$$arity = -1); + }}, $$4.$$s = self, $$4.$$arity = 0, $$4)) + }; + }, $Enumerable_index_with$1.$$arity = -1), nil) && 'index_with'; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/isomorphic_helpers"] = function(Opal) { +Opal.modules["hyperstack/ext/component/time"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; + + Opal.add_stubs(['$to_json', '$strftime']); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Time'); + + var $nesting = [self].concat($parent_nesting), $Time_to_json$1; + + return (Opal.def(self, '$to_json', $Time_to_json$1 = function $$to_json() { + var self = this; + + return self.$strftime("%FT%T.%3N%z").$to_json() + }, $Time_to_json$1.$$arity = 0), nil) && 'to_json' + })($nesting[0], null, $nesting) +}; + +Opal.modules["hyperstack/component/isomorphic_helpers"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send, $klass = Opal.klass, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send, $klass = Opal.klass, $class_variable_set = Opal.class_variable_set, $class_variable_get = Opal.class_variable_get, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$extend', '$!=', '$!', '$unique_id', '$on_opal_server?', '$log', '$new', '$is_a?', '$==', '$production?', '$env', '$+', '$[]', '$class', '$on_opal_client?', '$join', '$collect', '$prerender_footer_blocks', '$call', '$attr_reader', '$[]=', '$-', '$run', '$each', '$before_first_mount_blocks', '$send_to_opal', '$eval', '$length', '$load!', '$tr', '$<<', '$first', '$send_to_server', '$to_json', '$parse', '$controller', '$context', '$register_before_first_mount_block', '$to_proc', '$register_prerender_footer_block', '$send', '$result']); + Opal.add_stubs(['$require', '$extend', '$!', '$!=', '$unique_id', '$on_opal_server?', '$log', '$new', '$is_a?', '$==', '$production?', '$env', '$+', '$[]', '$class', '$on_opal_client?', '$join', '$collect', '$prerender_footer_blocks', '$call', '$attr_reader', '$[]=', '$-', '$run', '$each', '$before_first_mount_blocks', '$send_to_opal', '$eval', '$load!', '$tr', '$<<', '$first', '$send_to_server', '$to_json', '$parse', '$controller', '$context', '$register_before_first_mount_block', '$to_proc', '$register_prerender_footer_block', '$send', '$result']); self.$require("hyperstack/internal/component"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $IsomorphicHelpers, self = $IsomorphicHelpers = $module($base, 'IsomorphicHelpers'); + return (function($base, $parent_nesting) { + var self = $module($base, 'IsomorphicHelpers'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IsomorphicHelpers_included_1, TMP_IsomorphicHelpers_load_context_2, TMP_IsomorphicHelpers_context_3, TMP_IsomorphicHelpers_log_4, TMP_IsomorphicHelpers_on_opal_server$q_5, TMP_IsomorphicHelpers_on_opal_client$q_6, TMP_IsomorphicHelpers_log_7, TMP_IsomorphicHelpers_on_opal_server$q_8, TMP_IsomorphicHelpers_on_opal_client$q_9, TMP_IsomorphicHelpers_prerender_footers_11; + var $nesting = [self].concat($parent_nesting), $IsomorphicHelpers_included$1, $IsomorphicHelpers_load_context$2, $IsomorphicHelpers_context$3, $IsomorphicHelpers_log$4, $IsomorphicHelpers_on_opal_server$ques$5, $IsomorphicHelpers_on_opal_client$ques$6, $IsomorphicHelpers_log$7, $IsomorphicHelpers_on_opal_server$ques$8, $IsomorphicHelpers_on_opal_client$ques$9, $IsomorphicHelpers_prerender_footers$10; - Opal.defs(self, '$included', TMP_IsomorphicHelpers_included_1 = function $$included(base) { + Opal.defs(self, '$included', $IsomorphicHelpers_included$1 = function $$included(base) { var self = this; - return base.$extend(Opal.const_get_relative($nesting, 'ClassMethods')) - }, TMP_IsomorphicHelpers_included_1.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil - } else { - Opal.defs(self, '$load_context', TMP_IsomorphicHelpers_load_context_2 = function $$load_context(unique_id, name) { - var $a, $b, self = this, message = nil; - if (self.context == null) self.context = nil; + return base.$extend($$($nesting, 'ClassMethods')) + }, $IsomorphicHelpers_included$1.$$arity = 1); + Opal.defs(self, '$load_context', $IsomorphicHelpers_load_context$2 = function $$load_context(unique_id, name) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, message = nil; + if (self.context == null) self.context = nil; - if (unique_id == null) { - unique_id = nil; - } - if (name == null) { - name = nil; - } + + + if (unique_id == null) { + unique_id = nil; + }; + + if (name == null) { + name = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = unique_id['$!']()))) { + return $ret_or_2 + } else { + return self.context['$!']() + }; return nil; })()))) { + return $ret_or_1 + } else { + return self.context.$unique_id()['$!='](unique_id) + }; return nil; })())) { - if ($truthy(($truthy($a = ($truthy($b = unique_id['$!']()) ? $b : self.context['$!']())) ? $a : self.context.$unique_id()['$!='](unique_id)))) { + message = (function() {if ($truthy(self['$on_opal_server?']())) { - message = (function() {if ($truthy(self['$on_opal_server?']())) { - - try { - console.history = [] - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { - try { - nil - } finally { Opal.pop_exception() } - } else { throw $err; } - }; - return "" + "************************ React Prerendering Context Initialized " + (name) + " ***********************"; - } else { - return "************************ React Browser Context Initialized ****************************" - }; return nil; })(); - self.$log(message); - self.context = Opal.const_get_relative($nesting, 'Context').$new(unique_id);}; - return true; - }, TMP_IsomorphicHelpers_load_context_2.$$arity = -1) - }; - Opal.defs(self, '$context', TMP_IsomorphicHelpers_context_3 = function $$context() { + try { + console.history = [] + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { + try { + nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + return "" + "************************ React Prerendering Context Initialized " + (name) + " ***********************"; + } else { + return "************************ React Browser Context Initialized ****************************" + }; return nil; })(); + self.$log(message); + self.context = $$($nesting, 'Context').$new(unique_id);}; + return true; + }, $IsomorphicHelpers_load_context$2.$$arity = -1); + Opal.defs(self, '$context', $IsomorphicHelpers_context$3 = function $$context() { var self = this; if (self.context == null) self.context = nil; return self.context - }, TMP_IsomorphicHelpers_context_3.$$arity = 0); - Opal.defs(self, '$log', TMP_IsomorphicHelpers_log_4 = function $$log(message, message_type) { - var $a, $b, self = this, style = nil; + }, $IsomorphicHelpers_context$3.$$arity = 0); + Opal.defs(self, '$log', $IsomorphicHelpers_log$4 = function $$log(message, message_type) { + var self = this, $ret_or_3 = nil, $ret_or_4 = nil, style = nil; + + if (message_type == null) { message_type = "info"; - } - - if ($truthy(message['$is_a?'](Opal.const_get_relative($nesting, 'Array')))) { - } else { + }; + if ($truthy(message['$is_a?']($$($nesting, 'Array')))) { + } else { message = [message] }; - if ($truthy(($truthy($a = ($truthy($b = message_type['$==']("info")) ? $b : message_type['$==']("warning"))) ? Opal.const_get_relative($nesting, 'Hyperstack').$env()['$production?']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = message_type['$==']("info")))) { + return $ret_or_4 + } else { + return message_type['$==']("warning") + }; return nil; })()))) { + return $$($nesting, 'Hyperstack').$env()['$production?']() + } else { + return $ret_or_3 + }; return nil; })())) { return nil}; if (message_type['$==']("info")) { if ($truthy(self['$on_opal_server?']())) { style = "background: #00FFFF; color: red" - } else { + } else { style = "background: #222; color: #bada55" }; message = $rb_plus([$rb_plus("%c", message['$[]'](0)), style], message['$[]']($range(1, -1, false))); - return console.log.apply(console, message); + return console.log.apply(console, message);; } else if (message_type['$==']("warning")) { - return console.warn.apply(console, message) - } else { - return console.error.apply(console, message) - }; - }, TMP_IsomorphicHelpers_log_4.$$arity = -2); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil + return console.warn.apply(console, message); } else { - - Opal.defs(self, '$on_opal_server?', TMP_IsomorphicHelpers_on_opal_server$q_5 = function() { - var self = this; + return console.error.apply(console, message); + }; + }, $IsomorphicHelpers_log$4.$$arity = -2); + + Opal.defs(self, '$on_opal_server?', $IsomorphicHelpers_on_opal_server$ques$5 = function() { + var self = this; - return typeof Opal.global.document === 'undefined' - }, TMP_IsomorphicHelpers_on_opal_server$q_5.$$arity = 0); - Opal.defs(self, '$on_opal_client?', TMP_IsomorphicHelpers_on_opal_client$q_6 = function() { - var self = this; + return typeof Opal.global.document === 'undefined'; + }, $IsomorphicHelpers_on_opal_server$ques$5.$$arity = 0); + Opal.defs(self, '$on_opal_client?', $IsomorphicHelpers_on_opal_client$ques$6 = function() { + var self = this; - return self['$on_opal_server?']()['$!']() - }, TMP_IsomorphicHelpers_on_opal_client$q_6.$$arity = 0); - }; + return self['$on_opal_server?']()['$!']() + }, $IsomorphicHelpers_on_opal_client$ques$6.$$arity = 0);; - Opal.defn(self, '$log', TMP_IsomorphicHelpers_log_7 = function $$log($a_rest) { - var self = this, args; + Opal.def(self, '$log', $IsomorphicHelpers_log$7 = function $$log($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'log', Opal.to_a(args)) - }, TMP_IsomorphicHelpers_log_7.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'IsomorphicHelpers'), 'log', Opal.to_a(args)); + }, $IsomorphicHelpers_log$7.$$arity = -1); - Opal.defn(self, '$on_opal_server?', TMP_IsomorphicHelpers_on_opal_server$q_8 = function() { + Opal.def(self, '$on_opal_server?', $IsomorphicHelpers_on_opal_server$ques$8 = function() { var self = this; return self.$class()['$on_opal_server?']() - }, TMP_IsomorphicHelpers_on_opal_server$q_8.$$arity = 0); + }, $IsomorphicHelpers_on_opal_server$ques$8.$$arity = 0); - Opal.defn(self, '$on_opal_client?', TMP_IsomorphicHelpers_on_opal_client$q_9 = function() { + Opal.def(self, '$on_opal_client?', $IsomorphicHelpers_on_opal_client$ques$9 = function() { var self = this; return self.$class()['$on_opal_client?']() - }, TMP_IsomorphicHelpers_on_opal_client$q_9.$$arity = 0); - Opal.defs(self, '$prerender_footers', TMP_IsomorphicHelpers_prerender_footers_11 = function $$prerender_footers(controller) { - var TMP_10, self = this, footer = nil; + }, $IsomorphicHelpers_on_opal_client$ques$9.$$arity = 0); + Opal.defs(self, '$prerender_footers', $IsomorphicHelpers_prerender_footers$10 = function $$prerender_footers(controller) { + var $$11, self = this, footer = nil; + + if (controller == null) { controller = nil; - } - - footer = $send(Opal.const_get_relative($nesting, 'Context').$prerender_footer_blocks(), 'collect', [], (TMP_10 = function(block){var self = TMP_10.$$s || this; -if (block == null) block = nil; - return block.$call(controller)}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)).$join("\n"); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; + }; + footer = $send($$($nesting, 'Context').$prerender_footer_blocks(), 'collect', [], ($$11 = function(block){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (block == null) { + block = nil; + }; + return block.$call(controller);}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$join("\n"); + nil; return footer; - }, TMP_IsomorphicHelpers_prerender_footers_11.$$arity = -1); + }, $IsomorphicHelpers_prerender_footers$10.$$arity = -1); (function($base, $super, $parent_nesting) { - function $Context(){}; - var self = $Context = $klass($base, $super, 'Context', $Context); + var self = $klass($base, $super, 'Context'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Context_define_isomorphic_method_12, TMP_Context_before_first_mount_blocks_13, TMP_Context_prerender_footer_blocks_14, TMP_Context_initialize_16, TMP_Context_load_opal_context_17, TMP_Context_eval_18, TMP_Context_send_to_opal_20, TMP_Context_register_before_first_mount_block_21, TMP_Context_register_prerender_footer_block_22; + var $nesting = [self].concat($parent_nesting), $Context_define_isomorphic_method$12, $Context_before_first_mount_blocks$13, $Context_prerender_footer_blocks$14, $Context_initialize$15, $Context_load_opal_context$17, $Context_eval$18, $Context_send_to_opal$19, $Context_register_before_first_mount_block$21, $Context_register_prerender_footer_block$22; - def.unique_id = def.cname = def.ctx = nil; + self.$$prototype.unique_id = self.$$prototype.cname = self.$$prototype.ctx = nil; self.$attr_reader("controller"); self.$attr_reader("unique_id"); - Opal.defs(self, '$define_isomorphic_method', TMP_Context_define_isomorphic_method_12 = function $$define_isomorphic_method(method_name) { - var $a, $b, self = this, $iter = TMP_Context_define_isomorphic_method_12.$$p, block = $iter || nil, $writer = nil; + Opal.defs(self, '$define_isomorphic_method', $Context_define_isomorphic_method$12 = function $$define_isomorphic_method(method_name) { + var $iter = $Context_define_isomorphic_method$12.$$p, block = $iter || nil, $a, self = this, $ret_or_5 = nil, $writer = nil; - if ($iter) TMP_Context_define_isomorphic_method_12.$$p = null; + if ($iter) $Context_define_isomorphic_method$12.$$p = null; + - (Opal.class_variable_set($Context, '@@ctx_methods', ($truthy($a = (($b = $Context.$$cvars['@@ctx_methods']) == null ? nil : $b)) ? $a : $hash2([], {})))); + if ($iter) $Context_define_isomorphic_method$12.$$p = null;; + $class_variable_set($nesting[0], '@@ctx_methods', (function() {if ($truthy((($a = $nesting[0].$$cvars['@@ctx_methods'], $a != null) ? 'class variable' : nil))) { + + if ($truthy(($ret_or_5 = $class_variable_get($nesting[0], '@@ctx_methods', false)))) { + return $ret_or_5 + } else { + return $hash2([], {}) + }; + } else { + return $hash2([], {}) + }; return nil; })()); $writer = [method_name, block]; - $send((($a = $Context.$$cvars['@@ctx_methods']) == null ? nil : $a), '[]=', Opal.to_a($writer)); + $send($class_variable_get($nesting[0], '@@ctx_methods', false), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_Context_define_isomorphic_method_12.$$arity = 1); - Opal.defs(self, '$before_first_mount_blocks', TMP_Context_before_first_mount_blocks_13 = function $$before_first_mount_blocks() { - var $a, self = this; + }, $Context_define_isomorphic_method$12.$$arity = 1); + Opal.defs(self, '$before_first_mount_blocks', $Context_before_first_mount_blocks$13 = function $$before_first_mount_blocks() { + var self = this, $ret_or_6 = nil; if (self.before_first_mount_blocks == null) self.before_first_mount_blocks = nil; - return (self.before_first_mount_blocks = ($truthy($a = self.before_first_mount_blocks) ? $a : [])) - }, TMP_Context_before_first_mount_blocks_13.$$arity = 0); - Opal.defs(self, '$prerender_footer_blocks', TMP_Context_prerender_footer_blocks_14 = function $$prerender_footer_blocks() { - var $a, self = this; + return (self.before_first_mount_blocks = (function() {if ($truthy(($ret_or_6 = self.before_first_mount_blocks))) { + return $ret_or_6 + } else { + return [] + }; return nil; })()) + }, $Context_before_first_mount_blocks$13.$$arity = 0); + Opal.defs(self, '$prerender_footer_blocks', $Context_prerender_footer_blocks$14 = function $$prerender_footer_blocks() { + var self = this, $ret_or_7 = nil; if (self.prerender_footer_blocks == null) self.prerender_footer_blocks = nil; - return (self.prerender_footer_blocks = ($truthy($a = self.prerender_footer_blocks) ? $a : [])) - }, TMP_Context_prerender_footer_blocks_14.$$arity = 0); + return (self.prerender_footer_blocks = (function() {if ($truthy(($ret_or_7 = self.prerender_footer_blocks))) { + return $ret_or_7 + } else { + return [] + }; return nil; })()) + }, $Context_prerender_footer_blocks$14.$$arity = 0); - Opal.defn(self, '$initialize', TMP_Context_initialize_16 = function $$initialize(unique_id, ctx, controller, cname) { - var TMP_15, self = this; + Opal.def(self, '$initialize', $Context_initialize$15 = function $$initialize(unique_id, ctx, controller, cname) { + var $$16, self = this; + + if (ctx == null) { ctx = nil; - } + }; + if (controller == null) { controller = nil; - } + }; + if (cname == null) { cname = nil; - } - + }; self.unique_id = unique_id; self.cname = cname; - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Application'), 'Boot').$run($hash2(["context"], {"context": self})); - return $send(self.$class().$before_first_mount_blocks(), 'each', [], (TMP_15 = function(block){var self = TMP_15.$$s || this; -if (block == null) block = nil; - return block.$call(self)}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)); - }, TMP_Context_initialize_16.$$arity = -2); - - Opal.defn(self, '$load_opal_context', TMP_Context_load_opal_context_17 = function $$load_opal_context() { + nil; + $$$($$$($$($nesting, 'Hyperstack'), 'Application'), 'Boot').$run($hash2(["context"], {"context": self})); + return $send(self.$class().$before_first_mount_blocks(), 'each', [], ($$16 = function(block){var self = $$16.$$s == null ? this : $$16.$$s; + + + + if (block == null) { + block = nil; + }; + return block.$call(self);}, $$16.$$s = self, $$16.$$arity = 1, $$16)); + }, $Context_initialize$15.$$arity = -2); + + Opal.def(self, '$load_opal_context', $Context_load_opal_context$17 = function $$load_opal_context() { var self = this; return self.$send_to_opal("load_context", self.unique_id, self.cname) - }, TMP_Context_load_opal_context_17.$$arity = 0); + }, $Context_load_opal_context$17.$$arity = 0); - Opal.defn(self, '$eval', TMP_Context_eval_18 = function(js) { + Opal.def(self, '$eval', $Context_eval$18 = function(js) { var self = this; if ($truthy(self.ctx)) { return self.ctx.$eval(js) - } else { + } else { return nil } - }, TMP_Context_eval_18.$$arity = 1); + }, $Context_eval$18.$$arity = 1); - Opal.defn(self, '$send_to_opal', TMP_Context_send_to_opal_20 = function $$send_to_opal(method_name, $a_rest) { - var TMP_19, self = this, args, method_args = nil; + Opal.def(self, '$send_to_opal', $Context_send_to_opal$19 = function $$send_to_opal(method_name, $a) { + var $post_args, args, $$20, self = this, method_args = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(self.ctx)) { - } else { + } else { return nil }; - if (args.$length()['$=='](0)) { - args = [1]}; - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Rails'), 'ComponentLoader').$new(self.ctx)['$load!'](); - method_args = $send(args, 'collect', [], (TMP_19 = function(arg){var self = TMP_19.$$s || this, quarg = nil; -if (arg == null) arg = nil; - + $$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Rails'), 'ComponentLoader').$new(self.ctx)['$load!'](); + method_args = $send(args, 'collect', [], ($$20 = function(arg){var self = $$20.$$s == null ? this : $$20.$$s, quarg = nil; + + + + if (arg == null) { + arg = nil; + }; quarg = ("" + (arg)).$tr("\"", "'"); - return "" + "\"" + (quarg) + "\"";}, TMP_19.$$s = self, TMP_19.$$arity = 1, TMP_19)).$join(", "); + return "" + "\"" + (quarg) + "\"";}, $$20.$$s = self, $$20.$$arity = 1, $$20)).$join(", "); return self.ctx.$eval("" + "Opal.Hyperstack.$const_get('Component').$const_get('IsomorphicHelpers').$" + (method_name) + "(" + (method_args) + ")"); - }, TMP_Context_send_to_opal_20.$$arity = -2); - Opal.defs(self, '$register_before_first_mount_block', TMP_Context_register_before_first_mount_block_21 = function $$register_before_first_mount_block() { - var self = this, $iter = TMP_Context_register_before_first_mount_block_21.$$p, block = $iter || nil; - - if ($iter) TMP_Context_register_before_first_mount_block_21.$$p = null; - return self.$before_first_mount_blocks()['$<<'](block) - }, TMP_Context_register_before_first_mount_block_21.$$arity = 0); - return Opal.defs(self, '$register_prerender_footer_block', TMP_Context_register_prerender_footer_block_22 = function $$register_prerender_footer_block() { - var self = this, $iter = TMP_Context_register_prerender_footer_block_22.$$p, block = $iter || nil; - - if ($iter) TMP_Context_register_prerender_footer_block_22.$$p = null; - return self.$prerender_footer_blocks()['$<<'](block) - }, TMP_Context_register_prerender_footer_block_22.$$arity = 0); + }, $Context_send_to_opal$19.$$arity = -2); + Opal.defs(self, '$register_before_first_mount_block', $Context_register_before_first_mount_block$21 = function $$register_before_first_mount_block() { + var $iter = $Context_register_before_first_mount_block$21.$$p, block = $iter || nil, self = this; + + if ($iter) $Context_register_before_first_mount_block$21.$$p = null; + + + if ($iter) $Context_register_before_first_mount_block$21.$$p = null;; + return self.$before_first_mount_blocks()['$<<'](block); + }, $Context_register_before_first_mount_block$21.$$arity = 0); + return (Opal.defs(self, '$register_prerender_footer_block', $Context_register_prerender_footer_block$22 = function $$register_prerender_footer_block() { + var $iter = $Context_register_prerender_footer_block$22.$$p, block = $iter || nil, self = this; + + if ($iter) $Context_register_prerender_footer_block$22.$$p = null; + + + if ($iter) $Context_register_prerender_footer_block$22.$$p = null;; + return self.$prerender_footer_blocks()['$<<'](block); + }, $Context_register_prerender_footer_block$22.$$arity = 0), nil) && 'register_prerender_footer_block'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $IsomorphicProcCall(){}; - var self = $IsomorphicProcCall = $klass($base, $super, 'IsomorphicProcCall', $IsomorphicProcCall); + var self = $klass($base, $super, 'IsomorphicProcCall'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IsomorphicProcCall_result_23, TMP_IsomorphicProcCall_initialize_24, TMP_IsomorphicProcCall_when_on_client_25, TMP_IsomorphicProcCall_send_to_server_26, TMP_IsomorphicProcCall_when_on_server_27; + var $nesting = [self].concat($parent_nesting), $IsomorphicProcCall_result$23, $IsomorphicProcCall_initialize$24, $IsomorphicProcCall_when_on_client$25, $IsomorphicProcCall_send_to_server$26, $IsomorphicProcCall_when_on_server$27; - def.result = def.name = nil; + self.$$prototype.result = self.$$prototype.name = nil; self.$attr_reader("context"); - Opal.defn(self, '$result', TMP_IsomorphicProcCall_result_23 = function $$result() { + Opal.def(self, '$result', $IsomorphicProcCall_result$23 = function $$result() { var self = this; if ($truthy(self.result)) { return self.result.$first() - } else { + } else { return nil } - }, TMP_IsomorphicProcCall_result_23.$$arity = 0); + }, $IsomorphicProcCall_result$23.$$arity = 0); - Opal.defn(self, '$initialize', TMP_IsomorphicProcCall_initialize_24 = function $$initialize(name, block, context, $a_rest) { - var $b, self = this, args; + Opal.def(self, '$initialize', $IsomorphicProcCall_initialize$24 = function $$initialize(name, block, context, $a) { + var $post_args, args, self = this, $ret_or_8 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 3; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 3; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 3] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; self.name = name; self.context = context; $send(block, 'call', [self].concat(Opal.to_a(args))); - return (self.result = ($truthy($b = self.result) ? $b : $send(self, 'send_to_server', Opal.to_a(args)))); - }, TMP_IsomorphicProcCall_initialize_24.$$arity = -4); + return (self.result = (function() {if ($truthy(($ret_or_8 = self.result))) { + return $ret_or_8 + } else { + return $send(self, 'send_to_server', Opal.to_a(args)) + }; return nil; })()); + }, $IsomorphicProcCall_initialize$24.$$arity = -4); - Opal.defn(self, '$when_on_client', TMP_IsomorphicProcCall_when_on_client_25 = function $$when_on_client() { - var self = this, $iter = TMP_IsomorphicProcCall_when_on_client_25.$$p, block = $iter || nil; + Opal.def(self, '$when_on_client', $IsomorphicProcCall_when_on_client$25 = function $$when_on_client() { + var $iter = $IsomorphicProcCall_when_on_client$25.$$p, block = $iter || nil, self = this; - if ($iter) TMP_IsomorphicProcCall_when_on_client_25.$$p = null; - if ($truthy(Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_client?']())) { + if ($iter) $IsomorphicProcCall_when_on_client$25.$$p = null; + + + if ($iter) $IsomorphicProcCall_when_on_client$25.$$p = null;; + if ($truthy($$($nesting, 'IsomorphicHelpers')['$on_opal_client?']())) { return (self.result = [block.$call()]) - } else { + } else { return nil - } - }, TMP_IsomorphicProcCall_when_on_client_25.$$arity = 0); + }; + }, $IsomorphicProcCall_when_on_client$25.$$arity = 0); - Opal.defn(self, '$send_to_server', TMP_IsomorphicProcCall_send_to_server_26 = function $$send_to_server($a_rest) { - var self = this, args, method_string = nil; + Opal.def(self, '$send_to_server', $IsomorphicProcCall_send_to_server$26 = function $$send_to_server($a) { + var $post_args, args, self = this, method_string = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_server?']())) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy($$($nesting, 'IsomorphicHelpers')['$on_opal_server?']())) { method_string = $rb_plus($rb_plus($rb_plus($rb_plus("ServerSideIsomorphicMethod.", self.name), "("), args.$to_json()), ")"); - return (self.result = [Opal.const_get_relative($nesting, 'JSON').$parse(eval(method_string))]); - } else { + return (self.result = [$$($nesting, 'JSON').$parse(eval(method_string))]); + } else { return nil - } - }, TMP_IsomorphicProcCall_send_to_server_26.$$arity = -1); - return (Opal.defn(self, '$when_on_server', TMP_IsomorphicProcCall_when_on_server_27 = function $$when_on_server() { - var $a, self = this, $iter = TMP_IsomorphicProcCall_when_on_server_27.$$p, block = $iter || nil; + }; + }, $IsomorphicProcCall_send_to_server$26.$$arity = -1); + return (Opal.def(self, '$when_on_server', $IsomorphicProcCall_when_on_server$27 = function $$when_on_server() { + var $iter = $IsomorphicProcCall_when_on_server$27.$$p, block = $iter || nil, self = this, $ret_or_9 = nil; - if ($iter) TMP_IsomorphicProcCall_when_on_server_27.$$p = null; - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_client?']()) ? $a : Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_server?']()))) { + if ($iter) $IsomorphicProcCall_when_on_server$27.$$p = null; + + + if ($iter) $IsomorphicProcCall_when_on_server$27.$$p = null;; + if ($truthy((function() {if ($truthy(($ret_or_9 = $$($nesting, 'IsomorphicHelpers')['$on_opal_client?']()))) { + return $ret_or_9 + } else { + return $$($nesting, 'IsomorphicHelpers')['$on_opal_server?']() + }; return nil; })())) { return nil - } else { + } else { return (self.result = [block.$call().$to_json()]) - } - }, TMP_IsomorphicProcCall_when_on_server_27.$$arity = 0), nil) && 'when_on_server'; + }; + }, $IsomorphicProcCall_when_on_server$27.$$arity = 0), nil) && 'when_on_server'; })($nesting[0], null, $nesting); - (function($base, $parent_nesting) { - var $ClassMethods, self = $ClassMethods = $module($base, 'ClassMethods'); + return (function($base, $parent_nesting) { + var self = $module($base, 'ClassMethods'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClassMethods_on_opal_server$q_28, TMP_ClassMethods_on_opal_client$q_29, TMP_ClassMethods_log_30, TMP_ClassMethods_controller_31, TMP_ClassMethods_before_first_mount_32, TMP_ClassMethods_prerender_footer_33, TMP_ClassMethods_isomorphic_method_34; + var $nesting = [self].concat($parent_nesting), $ClassMethods_on_opal_server$ques$28, $ClassMethods_on_opal_client$ques$29, $ClassMethods_log$30, $ClassMethods_controller$31, $ClassMethods_before_first_mount$32, $ClassMethods_prerender_footer$33, $ClassMethods_isomorphic_method$34; - Opal.defn(self, '$on_opal_server?', TMP_ClassMethods_on_opal_server$q_28 = function() { + Opal.def(self, '$on_opal_server?', $ClassMethods_on_opal_server$ques$28 = function() { var self = this; - return Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_server?']() - }, TMP_ClassMethods_on_opal_server$q_28.$$arity = 0); + return $$($nesting, 'IsomorphicHelpers')['$on_opal_server?']() + }, $ClassMethods_on_opal_server$ques$28.$$arity = 0); - Opal.defn(self, '$on_opal_client?', TMP_ClassMethods_on_opal_client$q_29 = function() { + Opal.def(self, '$on_opal_client?', $ClassMethods_on_opal_client$ques$29 = function() { var self = this; - return Opal.const_get_relative($nesting, 'IsomorphicHelpers')['$on_opal_client?']() - }, TMP_ClassMethods_on_opal_client$q_29.$$arity = 0); + return $$($nesting, 'IsomorphicHelpers')['$on_opal_client?']() + }, $ClassMethods_on_opal_client$ques$29.$$arity = 0); - Opal.defn(self, '$log', TMP_ClassMethods_log_30 = function $$log($a_rest) { - var self = this, args; + Opal.def(self, '$log', $ClassMethods_log$30 = function $$log($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'log', Opal.to_a(args)) - }, TMP_ClassMethods_log_30.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'IsomorphicHelpers'), 'log', Opal.to_a(args)); + }, $ClassMethods_log$30.$$arity = -1); - Opal.defn(self, '$controller', TMP_ClassMethods_controller_31 = function $$controller() { + Opal.def(self, '$controller', $ClassMethods_controller$31 = function $$controller() { var self = this; - return Opal.const_get_relative($nesting, 'IsomorphicHelpers').$context().$controller() - }, TMP_ClassMethods_controller_31.$$arity = 0); + return $$($nesting, 'IsomorphicHelpers').$context().$controller() + }, $ClassMethods_controller$31.$$arity = 0); - Opal.defn(self, '$before_first_mount', TMP_ClassMethods_before_first_mount_32 = function $$before_first_mount() { - var self = this, $iter = TMP_ClassMethods_before_first_mount_32.$$p, block = $iter || nil; + Opal.def(self, '$before_first_mount', $ClassMethods_before_first_mount$32 = function $$before_first_mount() { + var $iter = $ClassMethods_before_first_mount$32.$$p, block = $iter || nil, self = this; - if ($iter) TMP_ClassMethods_before_first_mount_32.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'Context'), 'register_before_first_mount_block', [], block.$to_proc()) - }, TMP_ClassMethods_before_first_mount_32.$$arity = 0); + if ($iter) $ClassMethods_before_first_mount$32.$$p = null; + + + if ($iter) $ClassMethods_before_first_mount$32.$$p = null;; + return $send($$$($$($nesting, 'IsomorphicHelpers'), 'Context'), 'register_before_first_mount_block', [], block.$to_proc()); + }, $ClassMethods_before_first_mount$32.$$arity = 0); - Opal.defn(self, '$prerender_footer', TMP_ClassMethods_prerender_footer_33 = function $$prerender_footer() { - var self = this, $iter = TMP_ClassMethods_prerender_footer_33.$$p, block = $iter || nil; + Opal.def(self, '$prerender_footer', $ClassMethods_prerender_footer$33 = function $$prerender_footer() { + var $iter = $ClassMethods_prerender_footer$33.$$p, block = $iter || nil, self = this; - if ($iter) TMP_ClassMethods_prerender_footer_33.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'Context'), 'register_prerender_footer_block', [], block.$to_proc()) - }, TMP_ClassMethods_prerender_footer_33.$$arity = 0); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil - } else { + if ($iter) $ClassMethods_prerender_footer$33.$$p = null; - self.$require("json"); - Opal.defn(self, '$isomorphic_method', TMP_ClassMethods_isomorphic_method_34 = function $$isomorphic_method(name) { - var TMP_35, self = this, $iter = TMP_ClassMethods_isomorphic_method_34.$$p, block = $iter || nil; + if ($iter) $ClassMethods_prerender_footer$33.$$p = null;; + return $send($$$($$($nesting, 'IsomorphicHelpers'), 'Context'), 'register_prerender_footer_block', [], block.$to_proc()); + }, $ClassMethods_prerender_footer$33.$$arity = 0); + return (Opal.def(self, '$isomorphic_method', $ClassMethods_isomorphic_method$34 = function $$isomorphic_method(name) { + var $iter = $ClassMethods_isomorphic_method$34.$$p, block = $iter || nil, $$35, self = this; - if ($iter) TMP_ClassMethods_isomorphic_method_34.$$p = null; - return $send(self.$class(), 'send', ["define_method", name], (TMP_35 = function($a_rest){var self = TMP_35.$$s || this, args; + if ($iter) $ClassMethods_isomorphic_method$34.$$p = null; + + + if ($iter) $ClassMethods_isomorphic_method$34.$$p = null;; + return $send(self.$class(), 'send', ["define_method", name], ($$35 = function($a){var self = $$35.$$s == null ? this : $$35.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IsomorphicHelpers'), 'IsomorphicProcCall'), 'new', [name, block, self].concat(Opal.to_a(args))).$result()}, TMP_35.$$s = self, TMP_35.$$arity = -1, TMP_35)) - }, TMP_ClassMethods_isomorphic_method_34.$$arity = 1); - }; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$$($$($nesting, 'IsomorphicHelpers'), 'IsomorphicProcCall'), 'new', [name, block, self].concat(Opal.to_a(args))).$result();}, $$35.$$s = self, $$35.$$arity = -1, $$35)); + }, $ClassMethods_isomorphic_method$34.$$arity = 1), nil) && 'isomorphic_method'; })($nesting[0], $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/react_api"] = function(Opal) { +Opal.modules["hyperstack/component/react_api"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; Opal.add_stubs(['$require', '$+', '$create_element', '$to_proc', '$raise', '$to_n', '$kind_of?', '$!', '$build']); @@ -22995,29 +25603,29 @@ Opal.modules["hyperstack/component/react_api"] = function(Opal) { self.$require("active_support/core_ext/object/try"); self.$require("hyperstack/internal/component/tags"); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $ReactAPI, self = $ReactAPI = $module($base, 'ReactAPI'); + return (function($base, $parent_nesting) { + var self = $module($base, 'ReactAPI'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ReactAPI_html_tag$q_1, TMP_ReactAPI_html_attr$q_2, TMP_ReactAPI_create_element_3, TMP_ReactAPI_render_4, TMP_ReactAPI_is_valid_element_5, TMP_ReactAPI_is_valid_element$q_6, TMP_ReactAPI_render_to_string_8, TMP_ReactAPI_render_to_static_markup_10, TMP_ReactAPI_unmount_component_at_node_11; + var $nesting = [self].concat($parent_nesting), $ReactAPI_html_tag$ques$1, $ReactAPI_html_attr$ques$2, $ReactAPI_create_element$3, $ReactAPI_render$4, $ReactAPI_is_valid_element$5, $ReactAPI_is_valid_element$ques$6, $ReactAPI_render_to_string$7, $ReactAPI_render_to_static_markup$9, $ReactAPI_unmount_component_at_node$11; Opal.const_set($nesting[0], 'ATTRIBUTES', $rb_plus(["accept", "acceptCharset", "accessKey", "action", "allowFullScreen", "allowTransparency", "alt", "async", "autoComplete", "autoPlay", "cellPadding", "cellSpacing", "charSet", "checked", "classID", "className", "cols", "colSpan", "content", "contentEditable", "contextMenu", "controls", "coords", "crossOrigin", "data", "dateTime", "defer", "dir", "disabled", "download", "draggable", "encType", "form", "formAction", "formEncType", "formMethod", "formNoValidate", "formTarget", "frameBorder", "height", "hidden", "href", "hrefLang", "htmlFor", "httpEquiv", "icon", "id", "label", "lang", "list", "loop", "manifest", "marginHeight", "marginWidth", "max", "maxLength", "media", "mediaGroup", "method", "min", "multiple", "muted", "name", "noValidate", "open", "pattern", "placeholder", "poster", "preload", "radioGroup", "readOnly", "rel", "required", "role", "rows", "rowSpan", "sandbox", "scope", "scrolling", "seamless", "selected", "shape", "size", "sizes", "span", "spellCheck", "src", "srcDoc", "srcSet", "start", "step", "style", "tabIndex", "target", "title", "type", "useMap", "value", "width", "wmode", "dangerouslySetInnerHTML"], ["clipPath", "cx", "cy", "d", "dx", "dy", "fill", "fillOpacity", "fontFamily", "fontSize", "fx", "fy", "gradientTransform", "gradientUnits", "markerEnd", "markerMid", "markerStart", "offset", "opacity", "patternContentUnits", "patternUnits", "points", "preserveAspectRatio", "r", "rx", "ry", "spreadMethod", "stopColor", "stopOpacity", "stroke", "strokeDasharray", "strokeLinecap", "strokeOpacity", "strokeWidth", "textAnchor", "transform", "version", "viewBox", "x1", "x2", "x", "xlinkActuate", "xlinkArcrole", "xlinkHref", "xlinkRole", "xlinkShow", "xlinkTitle", "xlinkType", "xmlBase", "xmlLang", "xmlSpace", "y1", "y2", "y"])); Opal.const_set($nesting[0], 'HASH_ATTRIBUTES', ["data", "aria"]); - Opal.const_set($nesting[0], 'HTML_TAGS', Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'HTML_TAGS')); - Opal.defs(self, '$html_tag?', TMP_ReactAPI_html_tag$q_1 = function(name) { + Opal.const_set($nesting[0], 'HTML_TAGS', $$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'HTML_TAGS')); + Opal.defs(self, '$html_tag?', $ReactAPI_html_tag$ques$1 = function(name) { var self = this, tags = nil; - tags = Opal.const_get_relative($nesting, 'HTML_TAGS'); + tags = $$($nesting, 'HTML_TAGS'); for(var i = 0; i < tags.length; i++) { if(tags[i] === name) @@ -23025,12 +25633,12 @@ Opal.modules["hyperstack/component/react_api"] = function(Opal) { } return false; ; - }, TMP_ReactAPI_html_tag$q_1.$$arity = 1); - Opal.defs(self, '$html_attr?', TMP_ReactAPI_html_attr$q_2 = function(name) { + }, $ReactAPI_html_tag$ques$1.$$arity = 1); + Opal.defs(self, '$html_attr?', $ReactAPI_html_attr$ques$2 = function(name) { var self = this, attrs = nil; - attrs = Opal.const_get_relative($nesting, 'ATTRIBUTES'); + attrs = $$($nesting, 'ATTRIBUTES'); for(var i = 0; i < attrs.length; i++) { if(attrs[i] === name) @@ -23038,23 +25646,24 @@ Opal.modules["hyperstack/component/react_api"] = function(Opal) { } return false; ; - }, TMP_ReactAPI_html_attr$q_2.$$arity = 1); - Opal.defs(self, '$create_element', TMP_ReactAPI_create_element_3 = function $$create_element(type, $a_rest) { - var self = this, properties, $iter = TMP_ReactAPI_create_element_3.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - properties = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - properties[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_ReactAPI_create_element_3.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper'), 'create_element', [type].concat(Opal.to_a(properties)), block.$to_proc()) - }, TMP_ReactAPI_create_element_3.$$arity = -2); - Opal.defs(self, '$render', TMP_ReactAPI_render_4 = function $$render(element, container) { - var self = this, $iter = TMP_ReactAPI_render_4.$$p, $yield = $iter || nil, cb = nil, native$ = nil; + }, $ReactAPI_html_attr$ques$2.$$arity = 1); + Opal.defs(self, '$create_element', $ReactAPI_create_element$3 = function $$create_element(type, $a) { + var $iter = $ReactAPI_create_element$3.$$p, block = $iter || nil, $post_args, properties, self = this; + + if ($iter) $ReactAPI_create_element$3.$$p = null; + + + if ($iter) $ReactAPI_create_element$3.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + properties = $post_args;; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'ReactWrapper'), 'create_element', [type].concat(Opal.to_a(properties)), block.$to_proc()); + }, $ReactAPI_create_element$3.$$arity = -2); + Opal.defs(self, '$render', $ReactAPI_render$4 = function $$render(element, container) { + var $iter = $ReactAPI_render$4.$$p, $yield = $iter || nil, self = this, cb = nil, native$ = nil; - if ($iter) TMP_ReactAPI_render_4.$$p = null; + if ($iter) $ReactAPI_render$4.$$p = null; if ($truthy(typeof ReactDOM === 'undefined')) { self.$raise("ReactDOM.render is not defined. In React >= v15 you must import it with ReactDOM")}; @@ -23069,130 +25678,140 @@ Opal.modules["hyperstack/component/react_api"] = function(Opal) { } ; native$ = ReactDOM.render(element.$to_n(), container, cb); - } else { + } else { native$ = ReactDOM.render(element.$to_n(), container) }; if ($truthy(native$ !== null)) { - } else { + } else { return nil }; if ($truthy(native$.__opalInstance !== undefined && native$.__opalInstance !== null)) { return native$.__opalInstance } else if ($truthy(ReactDOM.findDOMNode !== undefined && native$.nodeType === undefined)) { return ReactDOM.findDOMNode(native$) - } else { + } else { return native$ }; - }, TMP_ReactAPI_render_4.$$arity = 2); - Opal.defs(self, '$is_valid_element', TMP_ReactAPI_is_valid_element_5 = function $$is_valid_element(element) { - var $a, self = this; + }, $ReactAPI_render$4.$$arity = 2); + Opal.defs(self, '$is_valid_element', $ReactAPI_is_valid_element$5 = function $$is_valid_element(element) { + var self = this, $ret_or_1 = nil; - console.error("Warning: `is_valid_element` is deprecated in favor of `is_valid_element?`."); ; - return ($truthy($a = element['$kind_of?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element'))) ? React.isValidElement(element.$to_n()) : $a); - }, TMP_ReactAPI_is_valid_element_5.$$arity = 1); - Opal.defs(self, '$is_valid_element?', TMP_ReactAPI_is_valid_element$q_6 = function(element) { - var $a, self = this; + console.error("Warning: `is_valid_element` is deprecated in favor of `is_valid_element?`.");; + if ($truthy(($ret_or_1 = element['$kind_of?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element'))))) { + return React.isValidElement(element.$to_n()) + } else { + return $ret_or_1 + }; + }, $ReactAPI_is_valid_element$5.$$arity = 1); + Opal.defs(self, '$is_valid_element?', $ReactAPI_is_valid_element$ques$6 = function(element) { + var self = this, $ret_or_2 = nil; - return ($truthy($a = element['$kind_of?'](Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'Element'))) ? React.isValidElement(element.$to_n()) : $a) - }, TMP_ReactAPI_is_valid_element$q_6.$$arity = 1); - Opal.defs(self, '$render_to_string', TMP_ReactAPI_render_to_string_8 = function $$render_to_string(element) { - var TMP_7, self = this; + if ($truthy(($ret_or_2 = element['$kind_of?']($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'Element'))))) { + return React.isValidElement(element.$to_n()) + } else { + return $ret_or_2 + } + }, $ReactAPI_is_valid_element$ques$6.$$arity = 1); + Opal.defs(self, '$render_to_string', $ReactAPI_render_to_string$7 = function $$render_to_string(element) { + var $$8, self = this; - console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_string` is deprecated in favor of `React::Server.render_to_string`."); ; + console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_string` is deprecated in favor of `React::Server.render_to_string`.");; if ($truthy((typeof ReactDOMServer === 'undefined')['$!']())) { - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'build', [], (TMP_7 = function(){var self = TMP_7.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'build', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; - return ReactDOMServer.renderToString(element.$to_n())}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7)) - } else { + return ReactDOMServer.renderToString(element.$to_n())}, $$8.$$s = self, $$8.$$arity = 0, $$8)) + } else { return self.$raise("renderToString is not defined. In React >= v15 you must import it with ReactDOMServer") }; - }, TMP_ReactAPI_render_to_string_8.$$arity = 1); - Opal.defs(self, '$render_to_static_markup', TMP_ReactAPI_render_to_static_markup_10 = function $$render_to_static_markup(element) { - var TMP_9, self = this; + }, $ReactAPI_render_to_string$7.$$arity = 1); + Opal.defs(self, '$render_to_static_markup', $ReactAPI_render_to_static_markup$9 = function $$render_to_static_markup(element) { + var $$10, self = this; - console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_static_markup` is deprecated in favor of `React::Server.render_to_static_markup`."); ; + console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_static_markup` is deprecated in favor of `React::Server.render_to_static_markup`.");; if ($truthy((typeof ReactDOMServer === 'undefined')['$!']())) { - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'build', [], (TMP_9 = function(){var self = TMP_9.$$s || this; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'build', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - return ReactDOMServer.renderToStaticMarkup(element.$to_n())}, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)) - } else { + return ReactDOMServer.renderToStaticMarkup(element.$to_n())}, $$10.$$s = self, $$10.$$arity = 0, $$10)) + } else { return self.$raise("renderToStaticMarkup is not defined. In React >= v15 you must import it with ReactDOMServer") }; - }, TMP_ReactAPI_render_to_static_markup_10.$$arity = 1); - Opal.defs(self, '$unmount_component_at_node', TMP_ReactAPI_unmount_component_at_node_11 = function $$unmount_component_at_node(node) { + }, $ReactAPI_render_to_static_markup$9.$$arity = 1); + return (Opal.defs(self, '$unmount_component_at_node', $ReactAPI_unmount_component_at_node$11 = function $$unmount_component_at_node(node) { var self = this; if ($truthy((typeof ReactDOM === 'undefined')['$!']())) { - return ReactDOM.unmountComponentAtNode(node.$$class ? node[0] : node) - } else { + return ReactDOM.unmountComponentAtNode(node.$$class ? node[0] : node); + } else { return self.$raise("unmountComponentAtNode is not defined. In React >= v15 you must import it with ReactDOM") } - }, TMP_ReactAPI_unmount_component_at_node_11.$$arity = 1); + }, $ReactAPI_unmount_component_at_node$11.$$arity = 1), nil) && 'unmount_component_at_node'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/top_level_rails_component"] = function(Opal) { +Opal.modules["hyperstack/internal/component/top_level_rails_component"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$include', '$export_component', '$param', '$backtrace', '$top_level_render', '$start_with?', '$<<', '$const_get', '$each', '$search_path', '$class', '$name', '$!=', '$method_defined?', '$render', '$raise', '$join', '$search_path=', '$-', '$!', '$include?', '$add_to_react_search_path']); (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $TopLevelRailsComponent(){}; - var self = $TopLevelRailsComponent = $klass($base, $super, 'TopLevelRailsComponent', $TopLevelRailsComponent); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'TopLevelRailsComponent'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_TopLevelRailsComponent_search_path_1, TMP_TopLevelRailsComponent_allow_deprecated_render_definition$q_2, TMP_TopLevelRailsComponent_render_3, TMP_TopLevelRailsComponent_top_level_render_6; + var $nesting = [self].concat($parent_nesting), $TopLevelRailsComponent_search_path$1, $TopLevelRailsComponent_allow_deprecated_render_definition$ques$2, $TopLevelRailsComponent_render$3, $TopLevelRailsComponent_top_level_render$4; - def.ComponentName = def.RenderParams = def.Controller = nil; + self.$$prototype.ComponentName = self.$$prototype.RenderParams = self.$$prototype.Controller = nil; - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component')); - Opal.defs(self, '$search_path', TMP_TopLevelRailsComponent_search_path_1 = function $$search_path() { - var $a, self = this; + self.$include($$$($$($nesting, 'Hyperstack'), 'Component')); + Opal.defs(self, '$search_path', $TopLevelRailsComponent_search_path$1 = function $$search_path() { + var self = this, $ret_or_1 = nil; if (self.search_path == null) self.search_path = nil; - return (self.search_path = ($truthy($a = self.search_path) ? $a : [Opal.const_get_relative($nesting, 'Object')])) - }, TMP_TopLevelRailsComponent_search_path_1.$$arity = 0); + return (self.search_path = (function() {if ($truthy(($ret_or_1 = self.search_path))) { + return $ret_or_1 + } else { + return [$$($nesting, 'Object')] + }; return nil; })()) + }, $TopLevelRailsComponent_search_path$1.$$arity = 0); self.$export_component(); self.$param("component_name"); self.$param("controller"); self.$param("render_params"); self.$backtrace("off"); - Opal.defs(self, '$allow_deprecated_render_definition?', TMP_TopLevelRailsComponent_allow_deprecated_render_definition$q_2 = function() { + Opal.defs(self, '$allow_deprecated_render_definition?', $TopLevelRailsComponent_allow_deprecated_render_definition$ques$2 = function() { var self = this; return true - }, TMP_TopLevelRailsComponent_allow_deprecated_render_definition$q_2.$$arity = 0); + }, $TopLevelRailsComponent_allow_deprecated_render_definition$ques$2.$$arity = 0); - Opal.defn(self, '$render', TMP_TopLevelRailsComponent_render_3 = function $$render() { + Opal.def(self, '$render', $TopLevelRailsComponent_render$3 = function $$render() { var self = this; return self.$top_level_render() - }, TMP_TopLevelRailsComponent_render_3.$$arity = 0); - return (Opal.defn(self, '$top_level_render', TMP_TopLevelRailsComponent_top_level_render_6 = function $$top_level_render() { - var TMP_4, TMP_5, $a, self = this, paths_searched = nil, component = nil; + }, $TopLevelRailsComponent_render$3.$$arity = 0); + return (Opal.def(self, '$top_level_render', $TopLevelRailsComponent_top_level_render$4 = function $$top_level_render() { + var $$5, $$6, self = this, paths_searched = nil, component = nil, $ret_or_2 = nil; paths_searched = []; @@ -23201,567 +25820,605 @@ Opal.modules["hyperstack/internal/component/top_level_rails_component"] = functi paths_searched['$<<'](self.ComponentName); component = (function() { try { - return Opal.const_get_relative($nesting, 'Object').$const_get(self.ComponentName) + return $$($nesting, 'Object').$const_get(self.ComponentName) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$($nesting, 'NameError')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }})(); - } else { + } else { - (function(){var $brk = Opal.new_brk(); try {return $send(self.$class().$search_path(), 'each', [], (TMP_4 = function(scope){var self = TMP_4.$$s || this; + (function(){var $brk = Opal.new_brk(); try {return $send(self.$class().$search_path(), 'each', [], ($$5 = function(scope){var self = $$5.$$s == null ? this : $$5.$$s; if (self.Controller == null) self.Controller = nil; if (self.ComponentName == null) self.ComponentName = nil; -if (scope == null) scope = nil; - + + + + if (scope == null) { + scope = nil; + }; paths_searched['$<<']("" + (scope.$name()) + "::" + (self.Controller) + "::" + (self.ComponentName)); component = (function() { try { return scope.$const_get(self.Controller, false).$const_get(self.ComponentName, false) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$($nesting, 'NameError')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }})(); if ($truthy(component['$!='](nil))) { Opal.brk(nil, $brk) - } else { + } else { return nil - };}, TMP_4.$$s = self, TMP_4.$$brk = $brk, TMP_4.$$arity = 1, TMP_4)) + };}, $$5.$$s = self, $$5.$$brk = $brk, $$5.$$arity = 1, $$5)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); if ($truthy(component)) { - } else { - (function(){var $brk = Opal.new_brk(); try {return $send(self.$class().$search_path(), 'each', [], (TMP_5 = function(scope){var self = TMP_5.$$s || this; + } else { + (function(){var $brk = Opal.new_brk(); try {return $send(self.$class().$search_path(), 'each', [], ($$6 = function(scope){var self = $$6.$$s == null ? this : $$6.$$s; if (self.ComponentName == null) self.ComponentName = nil; -if (scope == null) scope = nil; - + + + + if (scope == null) { + scope = nil; + }; paths_searched['$<<']("" + (scope.$name()) + "::" + (self.ComponentName)); component = (function() { try { return scope.$const_get(self.ComponentName, false) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$($nesting, 'NameError')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }})(); if ($truthy(component['$!='](nil))) { Opal.brk(nil, $brk) - } else { + } else { return nil - };}, TMP_5.$$s = self, TMP_5.$$brk = $brk, TMP_5.$$arity = 1, TMP_5)) + };}, $$6.$$s = self, $$6.$$brk = $brk, $$6.$$arity = 1, $$6)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})() }; }; - if ($truthy(($truthy($a = component) ? component['$method_defined?']("render") : $a))) { - return Opal.const_get_relative($nesting, 'RenderingContext').$render(component, self.RenderParams)}; + if ($truthy((function() {if ($truthy(($ret_or_2 = component))) { + return component['$method_defined?']("render") + } else { + return $ret_or_2 + }; return nil; })())) { + return $$($nesting, 'RenderingContext').$render(component, self.RenderParams)}; return self.$raise("" + "Could not find component class '" + (self.ComponentName) + "' for @Controller '" + (self.Controller) + "' in any component directory. Tried [" + (paths_searched.$join(", ")) + "]"); - }, TMP_TopLevelRailsComponent_top_level_render_6.$$arity = 0), nil) && 'top_level_render'; + }, $TopLevelRailsComponent_top_level_render$4.$$arity = 0), nil) && 'top_level_render'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting); (function($base, $super, $parent_nesting) { - function $Module(){}; - var self = $Module = $klass($base, $super, 'Module', $Module); + var self = $klass($base, $super, 'Module'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Module_add_to_react_search_path_7; + var $nesting = [self].concat($parent_nesting), $Module_add_to_react_search_path$7; - return (Opal.defn(self, '$add_to_react_search_path', TMP_Module_add_to_react_search_path_7 = function $$add_to_react_search_path(replace_search_path) { + return (Opal.def(self, '$add_to_react_search_path', $Module_add_to_react_search_path$7 = function $$add_to_react_search_path(replace_search_path) { var self = this, $writer = nil; + + if (replace_search_path == null) { replace_search_path = nil; - } + }; if ($truthy(replace_search_path)) { $writer = [[self]]; - $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent'), 'search_path=', Opal.to_a($writer)); + $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent'), 'search_path=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent').$search_path()['$include?'](self)['$!']())) { - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent').$search_path()['$<<'](self) - } else { + } else if ($truthy($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent').$search_path()['$include?'](self)['$!']())) { + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'TopLevelRailsComponent').$search_path()['$<<'](self) + } else { return nil - } - }, TMP_Module_add_to_react_search_path_7.$$arity = -1), nil) && 'add_to_react_search_path' + }; + }, $Module_add_to_react_search_path$7.$$arity = -1), nil) && 'add_to_react_search_path' })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { - var $Components, self = $Components = $module($base, 'Components'); + var self = $module($base, 'Components'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - self.$add_to_react_search_path() + return self.$add_to_react_search_path() })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/while_loading"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["hyperstack/component/while_loading"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$WhileLoadingWrapper', '$!', '$on_opal_client?']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $WhileLoading, self = $WhileLoading = $module($base, 'WhileLoading'); + return (function($base, $parent_nesting) { + var self = $module($base, 'WhileLoading'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_WhileLoading___hyperstack_component_rescue_wrapper_1, TMP_WhileLoading_resources_loading$q_2, TMP_WhileLoading_resources_loaded$q_3; + var $nesting = [self].concat($parent_nesting), $WhileLoading___hyperstack_component_rescue_wrapper$1, $WhileLoading_resources_loading$ques$2, $WhileLoading_resources_loaded$ques$3; - Opal.defn(self, '$__hyperstack_component_rescue_wrapper', TMP_WhileLoading___hyperstack_component_rescue_wrapper_1 = function $$__hyperstack_component_rescue_wrapper(child) { + Opal.def(self, '$__hyperstack_component_rescue_wrapper', $WhileLoading___hyperstack_component_rescue_wrapper$1 = function $$__hyperstack_component_rescue_wrapper(child) { var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component').$WhileLoadingWrapper($hash2(["child", "children_elements"], {"child": self, "children_elements": child})) - }, TMP_WhileLoading___hyperstack_component_rescue_wrapper_1.$$arity = 1); + return $$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component').$WhileLoadingWrapper($hash2(["child", "children_elements"], {"child": self, "children_elements": child})) + }, $WhileLoading___hyperstack_component_rescue_wrapper$1.$$arity = 1); - Opal.defn(self, '$resources_loading?', TMP_WhileLoading_resources_loading$q_2 = function() { + Opal.def(self, '$resources_loading?', $WhileLoading_resources_loading$ques$2 = function() { var self = this; if (self.__hyperstack_while_loading_waiting_on_resources == null) self.__hyperstack_while_loading_waiting_on_resources = nil; return self.__hyperstack_while_loading_waiting_on_resources - }, TMP_WhileLoading_resources_loading$q_2.$$arity = 0); + }, $WhileLoading_resources_loading$ques$2.$$arity = 0); - Opal.defn(self, '$resources_loaded?', TMP_WhileLoading_resources_loaded$q_3 = function() { + Opal.def(self, '$resources_loaded?', $WhileLoading_resources_loaded$ques$3 = function() { var self = this; if (self.__hyperstack_while_loading_waiting_on_resources == null) self.__hyperstack_while_loading_waiting_on_resources = nil; return self.__hyperstack_while_loading_waiting_on_resources['$!']() - }, TMP_WhileLoading_resources_loaded$q_3.$$arity = 0); - if ($truthy(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')['$on_opal_client?']())) { + }, $WhileLoading_resources_loaded$ques$3.$$arity = 0); + if ($truthy($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')['$on_opal_client?']())) { function onError(event) { if (event.message.match(/^Uncaught NotQuiet: /)) event.preventDefault(); } window.addEventListener('error', onError); - }; + + } else { + return nil + }; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/free_render"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["hyperstack/component/free_render"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $alias = Opal.alias, $truthy = Opal.truthy; Opal.add_stubs(['$instance_eval', '$const_defined?', '$const_get', '$is_a?', '$method_defined?', '$include?', '$render', '$to_proc', '$hyperstack_component_original_meth_missing']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $FreeRender, self = $FreeRender = $module($base, 'FreeRender'); + return (function($base, $parent_nesting) { + var self = $module($base, 'FreeRender'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_FreeRender_included_3; + var $nesting = [self].concat($parent_nesting), $FreeRender_included$1; - Opal.defs(self, '$included', TMP_FreeRender_included_3 = function $$included(base) { - var TMP_1, self = this; + return (Opal.defs(self, '$included', $FreeRender_included$1 = function $$included(base) { + var $$2, self = this; - return $send(base, 'instance_eval', [], (TMP_1 = function(){var self = TMP_1.$$s || this, TMP_method_missing_2; + return $send(base, 'instance_eval', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $method_missing$3; - - Opal.alias(self, "hyperstack_component_original_meth_missing", "method_missing"); - return (Opal.def(self, '$method_missing', TMP_method_missing_2 = function $$method_missing(name, $a_rest) { - var $b, $c, $d, self = this, args, $iter = TMP_method_missing_2.$$p, block = $iter || nil, klass = nil; + + $alias(self, "hyperstack_component_original_meth_missing", "method_missing"); + return (Opal.def(self, '$method_missing', $method_missing$3 = function $$method_missing(name, $a) { + var $iter = $method_missing$3.$$p, block = $iter || nil, $post_args, args, self = this, $ret_or_1 = nil, $ret_or_2 = nil, klass = nil, $ret_or_3 = nil, $ret_or_4 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_method_missing_2.$$p = null; - if ($truthy(($truthy($b = ($truthy($c = self['$const_defined?'](name)) ? (klass = self.$const_get(name)) : $c)) ? ($truthy($c = ($truthy($d = klass['$is_a?'](Opal.const_get_relative($nesting, 'Class'))) ? klass['$method_defined?']("render") : $d)) ? $c : Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'HTML_TAGS')['$include?'](klass)) : $b))) { - return $send(self, 'render', [klass].concat(Opal.to_a(args)), block.$to_proc()) + if ($iter) $method_missing$3.$$p = null; + + + if ($iter) $method_missing$3.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = self['$const_defined?'](name)))) { + + return (klass = self.$const_get(name)); + } else { + return $ret_or_2 + }; return nil; })()))) { + + if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = klass['$is_a?']($$($nesting, 'Class'))))) { + return klass['$method_defined?']("render") + } else { + return $ret_or_4 + }; return nil; })()))) { + return $ret_or_3 } else { + return $$$($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'Tags'), 'HTML_TAGS')['$include?'](klass) + }; + } else { + return $ret_or_1 + }; return nil; })())) { + return $send(self, 'render', [klass].concat(Opal.to_a(args)), block.$to_proc()) + } else { return $send(self, 'hyperstack_component_original_meth_missing', [name].concat(Opal.to_a(args)), block.$to_proc()) - } - }, TMP_method_missing_2.$$arity = -2), nil) && 'method_missing';}, TMP_1.$$s = self, TMP_1.$$arity = 0, TMP_1)) - }, TMP_FreeRender_included_3.$$arity = 1) + }; + }, $method_missing$3.$$arity = -2), nil) && 'method_missing';}, $$2.$$s = self, $$2.$$arity = 0, $$2)) + }, $FreeRender_included$1.$$arity = 1), nil) && 'included' })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/rescue_wrapper"] = function(Opal) { +Opal.modules["hyperstack/internal/component/rescue_wrapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$include', '$param', '$render', '$call', '$attr_accessor', '$RescueMetaWrapper', '$after_error', '$after_error_args', '$run_callback', '$after_error_args=', '$-', '$raise', '$force_update!']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $RescueMetaWrapper(){}; - var self = $RescueMetaWrapper = $klass($base, $super, 'RescueMetaWrapper', $RescueMetaWrapper); + var self = $klass($base, $super, 'RescueMetaWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RescueMetaWrapper_1; + var $nesting = [self].concat($parent_nesting), $RescueMetaWrapper$1; - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component')); + self.$include($$$($$($nesting, 'Hyperstack'), 'Component')); self.$param("children_elements"); - return $send(self, 'render', [], (TMP_RescueMetaWrapper_1 = function(){var self = TMP_RescueMetaWrapper_1.$$s || this; + return $send(self, 'render', [], ($RescueMetaWrapper$1 = function(){var self = $RescueMetaWrapper$1.$$s == null ? this : $RescueMetaWrapper$1.$$s; if (self.ChildrenElements == null) self.ChildrenElements = nil; - return self.ChildrenElements.$call()}, TMP_RescueMetaWrapper_1.$$s = self, TMP_RescueMetaWrapper_1.$$arity = 0, TMP_RescueMetaWrapper_1)); + return self.ChildrenElements.$call()}, $RescueMetaWrapper$1.$$s = self, $RescueMetaWrapper$1.$$arity = 0, $RescueMetaWrapper$1)); })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $RescueWrapper(){}; - var self = $RescueWrapper = $klass($base, $super, 'RescueWrapper', $RescueWrapper); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RescueWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_RescueWrapper_2, TMP_RescueWrapper_3; + var $nesting = [self].concat($parent_nesting), $RescueWrapper$2, $RescueWrapper$3; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$attr_accessor("after_error_args") })(Opal.get_singleton_class(self), $nesting); - self.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component')); + self.$include($$$($$($nesting, 'Hyperstack'), 'Component')); self.$param("child"); self.$param("children_elements"); - $send(self, 'render', [], (TMP_RescueWrapper_2 = function(){var self = TMP_RescueWrapper_2.$$s || this; + $send(self, 'render', [], ($RescueWrapper$2 = function(){var self = $RescueWrapper$2.$$s == null ? this : $RescueWrapper$2.$$s; if (self.ChildrenElements == null) self.ChildrenElements = nil; - return self.$RescueMetaWrapper($hash2(["children_elements"], {"children_elements": self.ChildrenElements}))}, TMP_RescueWrapper_2.$$s = self, TMP_RescueWrapper_2.$$arity = 0, TMP_RescueWrapper_2)); - return $send(self, 'after_error', [], (TMP_RescueWrapper_3 = function(error, info){var self = TMP_RescueWrapper_3.$$s || this, $a, $b, TMP_4, args = nil, found = nil, $writer = nil; + return self.$RescueMetaWrapper($hash2(["children_elements"], {"children_elements": self.ChildrenElements}))}, $RescueWrapper$2.$$s = self, $RescueWrapper$2.$$arity = 0, $RescueWrapper$2)); + return $send(self, 'after_error', [], ($RescueWrapper$3 = function(error, info){var self = $RescueWrapper$3.$$s == null ? this : $RescueWrapper$3.$$s, $a, $b, args = nil, $ret_or_1 = nil, found = nil, $writer = nil; if (self.Child == null) self.Child = nil; -if (error == null) error = nil;if (info == null) info = nil; - - args = ($truthy($a = Opal.const_get_relative($nesting, 'RescueWrapper').$after_error_args()) ? $a : [error, info]); - $b = $send(self.Child, 'run_callback', ["__hyperstack_component_rescue_hook", found].concat(Opal.to_a(args)), (TMP_4 = function(a){var self = TMP_4.$$s || this; -if (a == null) a = nil; - return a}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)), $a = Opal.to_ary($b), (found = ($a[0] == null ? nil : $a[0])), $b; + + + + if (error == null) { + error = nil; + }; + + if (info == null) { + info = nil; + }; + args = (function() {if ($truthy(($ret_or_1 = $$($nesting, 'RescueWrapper').$after_error_args()))) { + return $ret_or_1 + } else { + return [error, info] + }; return nil; })(); + $b = $send(self.Child, 'run_callback', ["__hyperstack_component_rescue_hook", found].concat(Opal.to_a(args))), $a = Opal.to_ary($b), (found = ($a[0] == null ? nil : $a[0])), $b; if ($truthy(found)) { - } else { + } else { $writer = [args]; - $send(Opal.const_get_relative($nesting, 'RescueWrapper'), 'after_error_args=', Opal.to_a($writer)); + $send($$($nesting, 'RescueWrapper'), 'after_error_args=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; self.$raise(error); }; - return self.Child['$force_update!']();}, TMP_RescueWrapper_3.$$s = self, TMP_RescueWrapper_3.$$arity = 2, TMP_RescueWrapper_3)); + return self.Child['$force_update!']();}, $RescueWrapper$3.$$s = self, $RescueWrapper$3.$$arity = 2, $RescueWrapper$3)); })($nesting[0], null, $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/component/while_loading_wrapper"] = function(Opal) { +Opal.modules["hyperstack/internal/component/while_loading_wrapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; Opal.add_stubs(['$render', '$!', '$quiet?', '$raise_if_not_quiet=', '$-', '$instance_eval', '$mutate', '$RescueMetaWrapper', '$before_mount', '$rescues', '$class', '$instance_variable_set']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $WhileLoadingWrapper(){}; - var self = $WhileLoadingWrapper = $klass($base, $super, 'WhileLoadingWrapper', $WhileLoadingWrapper); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'WhileLoadingWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_WhileLoadingWrapper_1, TMP_WhileLoadingWrapper_3; + var $nesting = [self].concat($parent_nesting), $WhileLoadingWrapper$1, $WhileLoadingWrapper$3; - $send(self, 'render', [], (TMP_WhileLoadingWrapper_1 = function(){var self = TMP_WhileLoadingWrapper_1.$$s || this, $a, TMP_2, $writer = nil; + $send(self, 'render', [], ($WhileLoadingWrapper$1 = function(){var self = $WhileLoadingWrapper$1.$$s == null ? this : $WhileLoadingWrapper$1.$$s, $$2, $ret_or_1 = nil, $writer = nil; if (self.waiting_on_resources == null) self.waiting_on_resources = nil; if (self.Child == null) self.Child = nil; if (self.ChildrenElements == null) self.ChildrenElements = nil; - - if ($truthy(($truthy($a = self.waiting_on_resources) ? self['$quiet?']()['$!']() : $a))) { + + if ($truthy((function() {if ($truthy(($ret_or_1 = self.waiting_on_resources))) { + return self['$quiet?']()['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { $writer = [false]; - $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'raise_if_not_quiet=', Opal.to_a($writer)); + $send($$($nesting, 'RenderingContext'), 'raise_if_not_quiet=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { self.waiting_on_resources = false; - $send(self.Child, 'instance_eval', [], (TMP_2 = function(){var self = TMP_2.$$s || this; + $send(self.Child, 'instance_eval', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s; if (self.__hyperstack_while_loading_waiting_on_resources == null) self.__hyperstack_while_loading_waiting_on_resources = nil; - + if ($truthy(self.__hyperstack_while_loading_waiting_on_resources)) { self.$mutate()}; - return (self.__hyperstack_while_loading_waiting_on_resources = false);}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)); + return (self.__hyperstack_while_loading_waiting_on_resources = false);}, $$2.$$s = self, $$2.$$arity = 0, $$2)); $writer = [true]; - $send(Opal.const_get_relative($nesting, 'RenderingContext'), 'raise_if_not_quiet=', Opal.to_a($writer)); + $send($$($nesting, 'RenderingContext'), 'raise_if_not_quiet=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; }; - return self.$RescueMetaWrapper($hash2(["children_elements"], {"children_elements": self.ChildrenElements}));}, TMP_WhileLoadingWrapper_1.$$s = self, TMP_WhileLoadingWrapper_1.$$arity = 0, TMP_WhileLoadingWrapper_1)); - return $send(self, 'before_mount', [], (TMP_WhileLoadingWrapper_3 = function(){var self = TMP_WhileLoadingWrapper_3.$$s || this, TMP_4, wrapper = nil; + return self.$RescueMetaWrapper($hash2(["children_elements"], {"children_elements": self.ChildrenElements}));}, $WhileLoadingWrapper$1.$$s = self, $WhileLoadingWrapper$1.$$arity = 0, $WhileLoadingWrapper$1)); + return $send(self, 'before_mount', [], ($WhileLoadingWrapper$3 = function(){var self = $WhileLoadingWrapper$3.$$s == null ? this : $WhileLoadingWrapper$3.$$s, $$4, wrapper = nil; if (self.Child == null) self.Child = nil; - + wrapper = self; - return $send(self.Child.$class(), 'rescues', [Opal.const_get_qualified(Opal.const_get_relative($nesting, 'RenderingContext'), 'NotQuiet')], (TMP_4 = function(){var self = TMP_4.$$s || this; + return $send(self.Child.$class(), 'rescues', [$$$($$($nesting, 'RenderingContext'), 'NotQuiet')], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; - + wrapper.$instance_variable_set("@waiting_on_resources", true); - return (self.__hyperstack_while_loading_waiting_on_resources = true);}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4));}, TMP_WhileLoadingWrapper_3.$$s = self, TMP_WhileLoadingWrapper_3.$$arity = 0, TMP_WhileLoadingWrapper_3)); - })($nesting[0], Opal.const_get_relative($nesting, 'RescueWrapper'), $nesting) + return (self.__hyperstack_while_loading_waiting_on_resources = true);}, $$4.$$s = self, $$4.$$arity = 0, $$4));}, $WhileLoadingWrapper$3.$$s = self, $WhileLoadingWrapper$3.$$arity = 0, $WhileLoadingWrapper$3)); + })($nesting[0], $$($nesting, 'RescueWrapper'), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack/component/version"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - Opal.const_set($nesting[0], 'VERSION', "1.0.alpha1.5") + return Opal.const_set($nesting[0], 'VERSION', "1.0.alpha1.8") })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-component"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $hash2 = Opal.hash2; +Opal.modules["hyper-component"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $hash2 = Opal.hash2; - Opal.add_stubs(['$require', '$import', '$js_import', '$==']); + Opal.add_stubs(['$require', '$js_import', '$import']); self.$require("hyperstack/internal/component"); - Opal.const_get_relative($nesting, 'Hyperstack').$import("hyper-state"); - Opal.const_get_relative($nesting, 'Hyperstack').$js_import("react/react-source-browser", $hash2(["client_only", "defines"], {"client_only": true, "defines": ["ReactDOM", "React"]})); - Opal.const_get_relative($nesting, 'Hyperstack').$js_import("react/react-source-server", $hash2(["server_only", "defines"], {"server_only": true, "defines": "React"})); - Opal.const_get_relative($nesting, 'Hyperstack').$import("browser/delay", $hash2(["client_only"], {"client_only": true})); - Opal.const_get_relative($nesting, 'Hyperstack').$js_import("react_ujs", $hash2(["defines"], {"defines": "ReactRailsUJS"})); - Opal.const_get_relative($nesting, 'Hyperstack').$import("hyper-component"); - Opal.const_get_relative($nesting, 'Hyperstack').$import("hyperstack/component/auto-import"); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - - self.$require("hyperstack/internal/callbacks"); - self.$require("hyperstack/internal/auto_unmount"); - self.$require("native"); - self.$require("hyperstack/state/observer"); - self.$require("hyperstack/internal/component/validator"); - self.$require("hyperstack/component/element"); - self.$require("hyperstack/internal/component/react_wrapper"); - self.$require("hyperstack/component"); - self.$require("hyperstack/internal/component/should_component_update"); - self.$require("hyperstack/internal/component/tags"); - self.$require("hyperstack/component/event"); - self.$require("hyperstack/internal/component/rendering_context"); - self.$require("hyperstack/ext/component/object"); - self.$require("hyperstack/ext/component/kernel"); - self.$require("hyperstack/ext/component/number"); - self.$require("hyperstack/ext/component/boolean"); - self.$require("hyperstack/ext/component/array"); - self.$require("hyperstack/ext/component/enumerable"); - self.$require("hyperstack/component/isomorphic_helpers"); - self.$require("hyperstack/component/react_api"); - self.$require("hyperstack/internal/component/top_level_rails_component"); - self.$require("hyperstack/component/while_loading"); - self.$require("hyperstack/component/free_render"); - self.$require("hyperstack/internal/component/rescue_wrapper"); - self.$require("hyperstack/internal/component/while_loading_wrapper"); - return self.$require("hyperstack/component/version"); - } else { - return nil - }; + $$($nesting, 'Hyperstack').$js_import("react/react-source-browser", $hash2(["client_only", "defines"], {"client_only": true, "defines": ["ReactDOM", "React"]})); + $$($nesting, 'Hyperstack').$js_import("react/react-source-server", $hash2(["server_only", "defines"], {"server_only": true, "defines": "React"})); + $$($nesting, 'Hyperstack').$import("browser/delay", $hash2(["client_only"], {"client_only": true})); + $$($nesting, 'Hyperstack').$import("browser/interval", $hash2(["client_only"], {"client_only": true})); + $$($nesting, 'Hyperstack').$js_import("react_ujs", $hash2(["defines"], {"defines": "ReactRailsUJS"})); + $$($nesting, 'Hyperstack').$import("hyper-component"); + $$($nesting, 'Hyperstack').$import("hyperstack/component/auto-import"); + + self.$require("hyperstack/internal/callbacks"); + self.$require("hyperstack/internal/auto_unmount"); + self.$require("native"); + self.$require("json"); + self.$require("hyperstack/state/observer"); + self.$require("hyperstack/internal/component/validator"); + self.$require("hyperstack/component/element"); + self.$require("hyperstack/internal/component/react_wrapper"); + self.$require("hyperstack/component"); + self.$require("hyperstack/internal/component/should_component_update"); + self.$require("hyperstack/internal/component/tags"); + self.$require("hyperstack/component/event"); + self.$require("hyperstack/internal/component/rendering_context"); + self.$require("hyperstack/ext/component/object"); + self.$require("hyperstack/ext/component/kernel"); + self.$require("hyperstack/ext/component/number"); + self.$require("hyperstack/ext/component/boolean"); + self.$require("hyperstack/ext/component/array"); + self.$require("hyperstack/ext/component/enumerable"); + self.$require("hyperstack/ext/component/time"); + self.$require("hyperstack/component/isomorphic_helpers"); + self.$require("hyperstack/component/react_api"); + self.$require("hyperstack/internal/component/top_level_rails_component"); + self.$require("hyperstack/component/while_loading"); + self.$require("hyperstack/component/free_render"); + self.$require("hyperstack/internal/component/rescue_wrapper"); + self.$require("hyperstack/internal/component/while_loading_wrapper"); + return self.$require("hyperstack/component/version");; }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/component/auto-import"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $module = Opal.module; +Opal.modules["hyperstack/component/auto-import"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $send = Opal.send, $module = Opal.module; - Opal.add_stubs(['$==', '$_reactrb_original_const_missing', '$import_const_from_native', '$raise', '$_reactrb_import_component_class', '$_reactrb_original_method_missing', '$to_proc', '$render']); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - - (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + Opal.add_stubs(['$_reactrb_original_const_missing', '$import_const_from_native', '$raise', '$_reactrb_import_component_class', '$_reactrb_original_method_missing', '$to_proc', '$render']); + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_const_missing_1, TMP__reactrb_import_component_class_2, TMP_method_missing_3; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $const_missing$1, $_reactrb_import_component_class$2, $method_missing$3; - - Opal.alias(self, "_reactrb_original_const_missing", "const_missing"); - Opal.alias(self, "_reactrb_original_method_missing", "method_missing"); - - Opal.defn(self, '$const_missing', TMP_const_missing_1 = function $$const_missing(const_name) { - var $a, self = this, e = nil; + + $alias(self, "_reactrb_original_const_missing", "const_missing"); + $alias(self, "_reactrb_original_method_missing", "method_missing"); + + Opal.def(self, '$const_missing', $const_missing$1 = function $$const_missing(const_name) { + var self = this, e = nil, $ret_or_1 = nil; - try { - return self.$_reactrb_original_const_missing(const_name) - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) {e = $err; - try { - return ($truthy($a = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'NativeLibrary').$import_const_from_native(Opal.const_get_relative($nesting, 'Object'), const_name, true)) ? $a : self.$raise(e)) - } finally { Opal.pop_exception() } - } else { throw $err; } - } - }, TMP_const_missing_1.$$arity = 1); - - Opal.defn(self, '$_reactrb_import_component_class', TMP__reactrb_import_component_class_2 = function $$_reactrb_import_component_class(method) { - var self = this; + try { + return self.$_reactrb_original_const_missing(const_name) + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) {(e = $err) + try { + if ($truthy(($ret_or_1 = $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'NativeLibrary').$import_const_from_native($$($nesting, 'Object'), const_name, true)))) { + return $ret_or_1 + } else { + return self.$raise(e) + } + } finally { Opal.pop_exception(); } + } else { throw $err; } + } + }, $const_missing$1.$$arity = 1); + + Opal.def(self, '$_reactrb_import_component_class', $_reactrb_import_component_class$2 = function $$_reactrb_import_component_class(method) { + var self = this; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'NativeLibrary').$import_const_from_native(self, method, false) - }, TMP__reactrb_import_component_class_2.$$arity = 1); - return (Opal.defn(self, '$method_missing', TMP_method_missing_3 = function $$method_missing(method, $a_rest) { - var self = this, args, $iter = TMP_method_missing_3.$$p, block = $iter || nil, component_class = nil; + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'NativeLibrary').$import_const_from_native(self, method, false) + }, $_reactrb_import_component_class$2.$$arity = 1); + return (Opal.def(self, '$method_missing', $method_missing$3 = function $$method_missing(method, $a) { + var $iter = $method_missing$3.$$p, block = $iter || nil, $post_args, args, self = this, component_class = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_method_missing_3.$$p = null; - - component_class = self.$_reactrb_import_component_class(method); - if ($truthy(component_class)) { - } else { - $send(self, '_reactrb_original_method_missing', [method].concat(Opal.to_a(args)), block.$to_proc()) - }; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [component_class].concat(Opal.to_a(args)), block.$to_proc()); - }, TMP_method_missing_3.$$arity = -2), nil) && 'method_missing'; - })(Opal.get_singleton_class(self), $nesting) - })($nesting[0], null, $nesting); - return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + if ($iter) $method_missing$3.$$p = null; + + + if ($iter) $method_missing$3.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + component_class = self.$_reactrb_import_component_class(method); + if ($truthy(component_class)) { + } else { + $send(self, '_reactrb_original_method_missing', [method].concat(Opal.to_a(args)), block.$to_proc()) + }; + return $send($$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'Component'), 'RenderingContext'), 'render', [component_class].concat(Opal.to_a(args)), block.$to_proc()); + }, $method_missing$3.$$arity = -2), nil) && 'method_missing'; + })(Opal.get_singleton_class(self), $nesting) + })($nesting[0], null, $nesting); + return (function($base, $parent_nesting) { + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Component, self = $Component = $module($base, 'Component'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Component'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $NativeLibrary(){}; - var self = $NativeLibrary = $klass($base, $super, 'NativeLibrary', $NativeLibrary); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'NativeLibrary'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - return nil - })($nesting[0], Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'), $nesting) - })($nesting[0], $nesting) + return nil + })($nesting[0], $$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'NativeLibrary'), $nesting) })($nesting[0], $nesting) - })($nesting[0], $nesting); - } else { - return nil - } + })($nesting[0], $nesting) + })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/state/mapper"] = function(Opal) { +Opal.modules["hyperstack/internal/state/mapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$+', '$observed!', '$class', '$update_objects_to_observe', '$-', '$<<', '$[]', '$new_objects', '$update_exclusions', '$delay_updates?', '$schedule_delayed_updater', '$zero?', '$key?', '$current_observers', '$each', '$mutations', '$remove_current_observers_and_objects', '$delete', '$[]=', '$current_objects', '$new', '$raise', '$empty?', '$on_client?', '$!=', '$after', '$run_delayed_updater', '$observers_to_update', '$include?', '$tap']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $State, self = $State = $module($base, 'State'); + return (function($base, $parent_nesting) { + var self = $module($base, 'State'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Mapper, self = $Mapper = $module($base, 'Mapper'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Mapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); self.rendering_level = 0; - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_observing_1, TMP_observed$B_2, TMP_mutated$B_4, TMP_observed$q_5, TMP_bulk_update_6, TMP_ignore_bulk_updates_7, TMP_ignore_mutations_8, TMP_update_objects_to_observe_10, TMP_remove_11, TMP_new_objects_13, TMP_current_observers_15, TMP_current_objects_17, TMP_update_exclusions_18, TMP_remove_current_observers_and_objects_20, TMP_delay_updates$q_21, TMP_schedule_delayed_updater_23, TMP_run_delayed_updater_25, TMP_observers_to_update_30; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $observing$1, $observed$excl$2, $mutated$excl$3, $observed$ques$5, $bulk_update$6, $ignore_bulk_updates$7, $ignore_mutations$8, $update_objects_to_observe$9, $remove$11, $new_objects$12, $current_observers$14, $current_objects$16, $update_exclusions$18, $remove_current_observers_and_objects$19, $delay_updates$ques$21, $schedule_delayed_updater$22, $run_delayed_updater$24, $observers_to_update$26; - Opal.defn(self, '$observing', TMP_observing_1 = function $$observing(observer, immediate_update, rendering, update_objects) { - var $a, $b, self = this, $iter = TMP_observing_1.$$p, $yield = $iter || nil, saved_context = nil, return_value = nil; + Opal.def(self, '$observing', $observing$1 = function $$observing(observer, immediate_update, rendering, update_objects) { + var $a, $b, $iter = $observing$1.$$p, $yield = $iter || nil, self = this, saved_context = nil, $ret_or_1 = nil, return_value = nil; if (self.current_observer == null) self.current_observer = nil; if (self.immediate_update == null) self.immediate_update = nil; if (self.rendering_level == null) self.rendering_level = nil; - if ($iter) TMP_observing_1.$$p = null; + if ($iter) $observing$1.$$p = null; return (function() { try { saved_context = [self.current_observer, self.immediate_update]; self.current_observer = observer; - self.immediate_update = ($truthy($a = immediate_update) ? observer : $a); + self.immediate_update = (function() {if ($truthy(($ret_or_1 = immediate_update))) { + return observer + } else { + return $ret_or_1 + }; return nil; })(); if ($truthy(rendering)) { self.rendering_level = $rb_plus(self.rendering_level, 1); @@ -23774,31 +26431,31 @@ Opal.modules["hyperstack/internal/state/mapper"] = function(Opal) { } finally { ($b = saved_context, $a = Opal.to_ary($b), (self.current_observer = ($a[0] == null ? nil : $a[0])), (self.immediate_update = ($a[1] == null ? nil : $a[1])), $b, (function() {if ($truthy(rendering)) { return (self.rendering_level = $rb_minus(self.rendering_level, 1)) - } else { + } else { return nil }; return nil; })(), return_value) }; })() - }, TMP_observing_1.$$arity = 4); + }, $observing$1.$$arity = 4); - Opal.defn(self, '$observed!', TMP_observed$B_2 = function(object) { + Opal.def(self, '$observed!', $observed$excl$2 = function(object) { var self = this; if (self.current_observer == null) self.current_observer = nil; if ($truthy(self.current_observer)) { - } else { + } else { return nil }; self.$new_objects()['$[]'](self.current_observer)['$<<'](object); if ($truthy(self.$update_exclusions()['$[]'](object))) { - } else { + } else { return nil }; return self.$update_exclusions()['$[]'](object)['$<<'](self.current_observer); - }, TMP_observed$B_2.$$arity = 1); + }, $observed$excl$2.$$arity = 1); - Opal.defn(self, '$mutated!', TMP_mutated$B_4 = function(object) { - var TMP_3, self = this; + Opal.def(self, '$mutated!', $mutated$excl$3 = function(object) { + var $$4, self = this; if (self.ignore_mutations == null) self.ignore_mutations = nil; if (self.rendering_level == null) self.rendering_level = nil; @@ -23809,28 +26466,33 @@ Opal.modules["hyperstack/internal/state/mapper"] = function(Opal) { return self.$schedule_delayed_updater(object) } else if ($truthy(self.rendering_level['$zero?']())) { if ($truthy(self.$current_observers()['$key?'](object))) { - return $send(self.$current_observers()['$[]'](object), 'each', [], (TMP_3 = function(observer){var self = TMP_3.$$s || this; -if (observer == null) observer = nil; - return observer.$mutations([object])}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)) - } else { + return $send(self.$current_observers()['$[]'](object), 'each', [], ($$4 = function(observer){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (observer == null) { + observer = nil; + }; + return observer.$mutations([object]);}, $$4.$$s = self, $$4.$$arity = 1, $$4)) + } else { return nil } - } else { + } else { return nil }; - }, TMP_mutated$B_4.$$arity = 1); + }, $mutated$excl$3.$$arity = 1); - Opal.defn(self, '$observed?', TMP_observed$q_5 = function(object) { + Opal.def(self, '$observed?', $observed$ques$5 = function(object) { var self = this; return self.$current_observers()['$key?'](object) - }, TMP_observed$q_5.$$arity = 1); + }, $observed$ques$5.$$arity = 1); - Opal.defn(self, '$bulk_update', TMP_bulk_update_6 = function $$bulk_update() { - var self = this, $iter = TMP_bulk_update_6.$$p, $yield = $iter || nil, saved_bulk_update_flag = nil; + Opal.def(self, '$bulk_update', $bulk_update$6 = function $$bulk_update() { + var $iter = $bulk_update$6.$$p, $yield = $iter || nil, self = this, saved_bulk_update_flag = nil; if (self.bulk_update_flag == null) self.bulk_update_flag = nil; - if ($iter) TMP_bulk_update_6.$$p = null; + if ($iter) $bulk_update$6.$$p = null; return (function() { try { saved_bulk_update_flag = self.bulk_update_flag; @@ -23839,19 +26501,18 @@ if (observer == null) observer = nil; } finally { (self.bulk_update_flag = saved_bulk_update_flag) }; })() - }, TMP_bulk_update_6.$$arity = 0); + }, $bulk_update$6.$$arity = 0); - Opal.defn(self, '$ignore_bulk_updates', TMP_ignore_bulk_updates_7 = function $$ignore_bulk_updates($a_rest) { - var self = this, args, $iter = TMP_ignore_bulk_updates_7.$$p, $yield = $iter || nil, saved_ignore_bulk_update_flag = nil; + Opal.def(self, '$ignore_bulk_updates', $ignore_bulk_updates$7 = function $$ignore_bulk_updates($a) { + var $post_args, args, $iter = $ignore_bulk_updates$7.$$p, $yield = $iter || nil, self = this, saved_ignore_bulk_update_flag = nil; if (self.ignore_bulk_update_flag == null) self.ignore_bulk_update_flag = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_ignore_bulk_updates_7.$$p = null; + if ($iter) $ignore_bulk_updates$7.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; return (function() { try { saved_ignore_bulk_update_flag = self.ignore_bulk_update_flag; @@ -23859,14 +26520,14 @@ if (observer == null) observer = nil; return Opal.yieldX($yield, Opal.to_a(args));; } finally { (self.ignore_bulk_update_flag = saved_ignore_bulk_update_flag) - }; })() - }, TMP_ignore_bulk_updates_7.$$arity = -1); + }; })(); + }, $ignore_bulk_updates$7.$$arity = -1); - Opal.defn(self, '$ignore_mutations', TMP_ignore_mutations_8 = function $$ignore_mutations() { - var self = this, $iter = TMP_ignore_mutations_8.$$p, $yield = $iter || nil, saved_ignore_mutations_flag = nil; + Opal.def(self, '$ignore_mutations', $ignore_mutations$8 = function $$ignore_mutations() { + var $iter = $ignore_mutations$8.$$p, $yield = $iter || nil, self = this, saved_ignore_mutations_flag = nil; if (self.ignore_mutations == null) self.ignore_mutations = nil; - if ($iter) TMP_ignore_mutations_8.$$p = null; + if ($iter) $ignore_mutations$8.$$p = null; return (function() { try { saved_ignore_mutations_flag = self.ignore_mutations; @@ -23875,119 +26536,170 @@ if (observer == null) observer = nil; } finally { (self.ignore_mutations = saved_ignore_mutations_flag) }; })() - }, TMP_ignore_mutations_8.$$arity = 0); + }, $ignore_mutations$8.$$arity = 0); - Opal.defn(self, '$update_objects_to_observe', TMP_update_objects_to_observe_10 = function $$update_objects_to_observe(observer) { - var TMP_9, self = this, objects = nil, $writer = nil; + Opal.def(self, '$update_objects_to_observe', $update_objects_to_observe$9 = function $$update_objects_to_observe(observer) { + var $$10, self = this, objects = nil, $writer = nil; if (self.current_observer == null) self.current_observer = nil; + + if (observer == null) { observer = self.current_observer; - } - + }; self.$remove_current_observers_and_objects(observer); objects = self.$new_objects().$delete(observer); if ($truthy(objects)) { - $send(objects, 'each', [], (TMP_9 = function(object){var self = TMP_9.$$s || this; -if (object == null) object = nil; - return self.$current_observers()['$[]'](object)['$<<'](observer)}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9))}; + $send(objects, 'each', [], ($$10 = function(object){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (object == null) { + object = nil; + }; + return self.$current_observers()['$[]'](object)['$<<'](observer);}, $$10.$$s = self, $$10.$$arity = 1, $$10))}; $writer = [observer, objects]; $send(self.$current_objects(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_update_objects_to_observe_10.$$arity = -1); + }, $update_objects_to_observe$9.$$arity = -1); - Opal.defn(self, '$remove', TMP_remove_11 = function $$remove(observer) { + Opal.def(self, '$remove', $remove$11 = function $$remove(observer) { var self = this; - if (self.removed_observers == null) self.removed_observers = nil; if (self.current_observer == null) self.current_observer = nil; + if (self.removed_observers == null) self.removed_observers = nil; + + if (observer == null) { observer = self.current_observer; - } - + }; self.$remove_current_observers_and_objects(observer); self.$new_objects().$delete(observer); if ($truthy(self.removed_observers)) { return self.removed_observers['$<<'](observer) - } else { + } else { return nil }; - }, TMP_remove_11.$$arity = -1); + }, $remove$11.$$arity = -1); - Opal.defn(self, '$new_objects', TMP_new_objects_13 = function $$new_objects() { - var $a, TMP_12, self = this; + Opal.def(self, '$new_objects', $new_objects$12 = function $$new_objects() { + var $$13, self = this, $ret_or_2 = nil; if (self.new_objects == null) self.new_objects = nil; - return (self.new_objects = ($truthy($a = self.new_objects) ? $a : $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_12 = function(h, k){var self = TMP_12.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - - $writer = [k, Opal.const_get_relative($nesting, 'Set').$new()]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12)))) - }, TMP_new_objects_13.$$arity = 0); - - Opal.defn(self, '$current_observers', TMP_current_observers_15 = function $$current_observers() { - var $a, TMP_14, self = this; + return (self.new_objects = (function() {if ($truthy(($ret_or_2 = self.new_objects))) { + return $ret_or_2 + } else { + return $send($$($nesting, 'Hash'), 'new', [], ($$13 = function(h, k){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, $$($nesting, 'Set').$new()]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$13.$$s = self, $$13.$$arity = 2, $$13)) + }; return nil; })()) + }, $new_objects$12.$$arity = 0); + + Opal.def(self, '$current_observers', $current_observers$14 = function $$current_observers() { + var $$15, self = this, $ret_or_3 = nil; if (self.current_observers == null) self.current_observers = nil; - return (self.current_observers = ($truthy($a = self.current_observers) ? $a : $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_14 = function(h, k){var self = TMP_14.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - - $writer = [k, []]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_14.$$s = self, TMP_14.$$arity = 2, TMP_14)))) - }, TMP_current_observers_15.$$arity = 0); - - Opal.defn(self, '$current_objects', TMP_current_objects_17 = function $$current_objects() { - var $a, TMP_16, self = this; + return (self.current_observers = (function() {if ($truthy(($ret_or_3 = self.current_observers))) { + return $ret_or_3 + } else { + return $send($$($nesting, 'Hash'), 'new', [], ($$15 = function(h, k){var self = $$15.$$s == null ? this : $$15.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, []]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$15.$$s = self, $$15.$$arity = 2, $$15)) + }; return nil; })()) + }, $current_observers$14.$$arity = 0); + + Opal.def(self, '$current_objects', $current_objects$16 = function $$current_objects() { + var $$17, self = this, $ret_or_4 = nil; if (self.current_objects == null) self.current_objects = nil; - return (self.current_objects = ($truthy($a = self.current_objects) ? $a : $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_16 = function(h, k){var self = TMP_16.$$s || this, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - - $writer = [k, []]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_16.$$s = self, TMP_16.$$arity = 2, TMP_16)))) - }, TMP_current_objects_17.$$arity = 0); - - Opal.defn(self, '$update_exclusions', TMP_update_exclusions_18 = function $$update_exclusions() { - var $a, self = this; + return (self.current_objects = (function() {if ($truthy(($ret_or_4 = self.current_objects))) { + return $ret_or_4 + } else { + return $send($$($nesting, 'Hash'), 'new', [], ($$17 = function(h, k){var self = $$17.$$s == null ? this : $$17.$$s, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, []]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$17.$$s = self, $$17.$$arity = 2, $$17)) + }; return nil; })()) + }, $current_objects$16.$$arity = 0); + + Opal.def(self, '$update_exclusions', $update_exclusions$18 = function $$update_exclusions() { + var self = this, $ret_or_5 = nil; if (self.update_exclusions == null) self.update_exclusions = nil; - return (self.update_exclusions = ($truthy($a = self.update_exclusions) ? $a : Opal.const_get_relative($nesting, 'Hash').$new())) - }, TMP_update_exclusions_18.$$arity = 0); + return (self.update_exclusions = (function() {if ($truthy(($ret_or_5 = self.update_exclusions))) { + return $ret_or_5 + } else { + return $$($nesting, 'Hash').$new() + }; return nil; })()) + }, $update_exclusions$18.$$arity = 0); - Opal.defn(self, '$remove_current_observers_and_objects', TMP_remove_current_observers_and_objects_20 = function $$remove_current_observers_and_objects(observer) { - var TMP_19, self = this, deleted_objects = nil; + Opal.def(self, '$remove_current_observers_and_objects', $remove_current_observers_and_objects$19 = function $$remove_current_observers_and_objects(observer) { + var $$20, self = this, deleted_objects = nil; if ($truthy(observer)) { - } else { + } else { self.$raise("state management called outside of watch block") }; deleted_objects = self.$current_objects().$delete(observer); if ($truthy(deleted_objects)) { - } else { + } else { return nil }; - return $send(deleted_objects, 'each', [], (TMP_19 = function(object){var self = TMP_19.$$s || this; -if (object == null) object = nil; - + return $send(deleted_objects, 'each', [], ($$20 = function(object){var self = $$20.$$s == null ? this : $$20.$$s; + + + + if (object == null) { + object = nil; + }; if ($truthy(self.$current_observers()['$key?'](object))) { - } else { + } else { return nil; }; self.$current_observers()['$[]'](object).$delete(observer); if ($truthy(self.$current_observers()['$[]'](object)['$empty?']())) { return self.$current_observers().$delete(object) - } else { + } else { return nil - };}, TMP_19.$$s = self, TMP_19.$$arity = 1, TMP_19)); - }, TMP_remove_current_observers_and_objects_20.$$arity = 1); + };}, $$20.$$s = self, $$20.$$arity = 1, $$20)); + }, $remove_current_observers_and_objects$19.$$arity = 1); - Opal.defn(self, '$delay_updates?', TMP_delay_updates$q_21 = function(object) { - var $a, self = this; + Opal.def(self, '$delay_updates?', $delay_updates$ques$21 = function(object) { + var self = this, $ret_or_6 = nil; if (self.ignore_bulk_update_flag == null) self.ignore_bulk_update_flag = nil; if (self.bulk_update_flag == null) self.bulk_update_flag = nil; if (self.immediate_update == null) self.immediate_update = nil; @@ -23998,72 +26710,115 @@ if (object == null) object = nil; return false}; if ($truthy(self.bulk_update_flag)) { return true}; - if ($truthy(Opal.const_get_relative($nesting, 'Hyperstack')['$on_client?']())) { - } else { + if ($truthy($$($nesting, 'Hyperstack')['$on_client?']())) { + } else { return false }; - return ($truthy($a = self.immediate_update['$!='](self.current_observer)) ? $a : self.current_observer['$!='](object));; - }, TMP_delay_updates$q_21.$$arity = 1); + if ($truthy(($ret_or_6 = self.immediate_update['$!='](self.current_observer)))) { + return $ret_or_6 + } else { + return self.current_observer['$!='](object) + };; + }, $delay_updates$ques$21.$$arity = 1); - Opal.defn(self, '$schedule_delayed_updater', TMP_schedule_delayed_updater_23 = function $$schedule_delayed_updater(object) { - var $a, TMP_22, self = this, $writer = nil; + Opal.def(self, '$schedule_delayed_updater', $schedule_delayed_updater$22 = function $$schedule_delayed_updater(object) { + var $$23, self = this, $writer = nil, $ret_or_7 = nil; if (self.delayed_updater == null) self.delayed_updater = nil; - $writer = [object, Opal.const_get_relative($nesting, 'Set').$new()]; + $writer = [object, $$($nesting, 'Set').$new()]; $send(self.$update_exclusions(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return (self.delayed_updater = ($truthy($a = self.delayed_updater) ? $a : $send(self, 'after', [0], (TMP_22 = function(){var self = TMP_22.$$s || this; + return (self.delayed_updater = (function() {if ($truthy(($ret_or_7 = self.delayed_updater))) { + return $ret_or_7 + } else { + return $send(self, 'after', [0], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s; - return self.$run_delayed_updater()}, TMP_22.$$s = self, TMP_22.$$arity = 0, TMP_22)))); - }, TMP_schedule_delayed_updater_23.$$arity = 1); + return self.$run_delayed_updater()}, $$23.$$s = self, $$23.$$arity = 0, $$23)) + }; return nil; })()); + }, $schedule_delayed_updater$22.$$arity = 1); - Opal.defn(self, '$run_delayed_updater', TMP_run_delayed_updater_25 = function $$run_delayed_updater() { - var TMP_24, self = this, current_update_exclusions = nil; + Opal.def(self, '$run_delayed_updater', $run_delayed_updater$24 = function $$run_delayed_updater() { + var $$25, self = this, current_update_exclusions = nil; if (self.update_exclusions == null) self.update_exclusions = nil; return (function() { try { current_update_exclusions = self.update_exclusions; self.update_exclusions = (self.delayed_updater = nil); - self.removed_observers = Opal.const_get_relative($nesting, 'Set').$new(); - return $send(self.$observers_to_update(current_update_exclusions), 'each', [], (TMP_24 = function(observer, objects){var self = TMP_24.$$s || this; + self.removed_observers = $$($nesting, 'Set').$new(); + return $send(self.$observers_to_update(current_update_exclusions), 'each', [], ($$25 = function(observer, objects){var self = $$25.$$s == null ? this : $$25.$$s; if (self.removed_observers == null) self.removed_observers = nil; -if (observer == null) observer = nil;if (objects == null) objects = nil; - if ($truthy(self.removed_observers['$include?'](observer))) { + + + + if (observer == null) { + observer = nil; + }; + + if (objects == null) { + objects = nil; + }; + if ($truthy(self.removed_observers['$include?'](observer))) { return nil - } else { + } else { return observer.$mutations(objects) - }}, TMP_24.$$s = self, TMP_24.$$arity = 2, TMP_24)); + };}, $$25.$$s = self, $$25.$$arity = 2, $$25)); } finally { (self.removed_observers = nil) }; })() - }, TMP_run_delayed_updater_25.$$arity = 0); - return (Opal.defn(self, '$observers_to_update', TMP_observers_to_update_30 = function $$observers_to_update(exclusions) { - var TMP_26, TMP_27, self = this; + }, $run_delayed_updater$24.$$arity = 0); + return (Opal.def(self, '$observers_to_update', $observers_to_update$26 = function $$observers_to_update(exclusions) { + var $$27, $$28, self = this; - return $send($send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_26 = function(hash, key){var self = TMP_26.$$s || this, $writer = nil; -if (hash == null) hash = nil;if (key == null) key = nil; - - $writer = [key, Opal.const_get_relative($nesting, 'Array').$new()]; + return $send($send($$($nesting, 'Hash'), 'new', [], ($$27 = function(hash, key){var self = $$27.$$s == null ? this : $$27.$$s, $writer = nil; + + + + if (hash == null) { + hash = nil; + }; + + if (key == null) { + key = nil; + }; + $writer = [key, $$($nesting, 'Array').$new()]; $send(hash, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_26.$$s = self, TMP_26.$$arity = 2, TMP_26)), 'tap', [], (TMP_27 = function(updates){var self = TMP_27.$$s || this, TMP_28; -if (updates == null) updates = nil; - return $send(exclusions, 'each', [], (TMP_28 = function(object, excluded_observers){var self = TMP_28.$$s || this, TMP_29; -if (object == null) object = nil;if (excluded_observers == null) excluded_observers = nil; - if ($truthy(self.$current_observers()['$key?'](object))) { - return $send(self.$current_observers()['$[]'](object), 'each', [], (TMP_29 = function(observer){var self = TMP_29.$$s || this; -if (observer == null) observer = nil; - + return $writer[$rb_minus($writer["length"], 1)];}, $$27.$$s = self, $$27.$$arity = 2, $$27)), 'tap', [], ($$28 = function(updates){var self = $$28.$$s == null ? this : $$28.$$s, $$29; + + + + if (updates == null) { + updates = nil; + }; + return $send(exclusions, 'each', [], ($$29 = function(object, excluded_observers){var self = $$29.$$s == null ? this : $$29.$$s, $$30; + + + + if (object == null) { + object = nil; + }; + + if (excluded_observers == null) { + excluded_observers = nil; + }; + if ($truthy(self.$current_observers()['$key?'](object))) { + return $send(self.$current_observers()['$[]'](object), 'each', [], ($$30 = function(observer){var self = $$30.$$s == null ? this : $$30.$$s; + + + + if (observer == null) { + observer = nil; + }; if ($truthy(excluded_observers['$include?'](observer))) { return nil;}; - return updates['$[]'](observer)['$<<'](object);}, TMP_29.$$s = self, TMP_29.$$arity = 1, TMP_29)) - } else { + return updates['$[]'](observer)['$<<'](object);}, $$30.$$s = self, $$30.$$arity = 1, $$30)) + } else { return nil - }}, TMP_28.$$s = self, TMP_28.$$arity = 2, TMP_28))}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)) - }, TMP_observers_to_update_30.$$arity = 1), nil) && 'observers_to_update'; + };}, $$29.$$s = self, $$29.$$arity = 2, $$29));}, $$28.$$s = self, $$28.$$arity = 1, $$28)) + }, $observers_to_update$26.$$arity = 1), nil) && 'observers_to_update'; })(Opal.get_singleton_class(self), $nesting); })($nesting[0], $nesting) })($nesting[0], $nesting) @@ -24071,84 +26826,107 @@ if (observer == null) observer = nil; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/state/variable"] = function(Opal) { +Opal.modules["hyperstack/internal/state/variable"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$new', '$[]=', '$-', '$[]', '$legacy_map', '$observed!', '$object_id', '$mutated!', '$observed?']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $State, self = $State = $module($base, 'State'); + return (function($base, $parent_nesting) { + var self = $module($base, 'State'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Variable, self = $Variable = $module($base, 'Variable'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Variable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_legacy_map_3, TMP_get_4, TMP_set_5, TMP_observed$q_6; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $legacy_map$1, $get$4, $set$5, $observed$ques$6; - Opal.defn(self, '$legacy_map', TMP_legacy_map_3 = function $$legacy_map() { - var $a, TMP_1, self = this; + Opal.def(self, '$legacy_map', $legacy_map$1 = function $$legacy_map() { + var $$2, self = this, $ret_or_1 = nil; if (self.legacy_map == null) self.legacy_map = nil; - return (self.legacy_map = ($truthy($a = self.legacy_map) ? $a : $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_1 = function(h, k){var self = TMP_1.$$s || this, TMP_2, $writer = nil; -if (h == null) h = nil;if (k == null) k = nil; - - $writer = [k, $send(Opal.const_get_relative($nesting, 'Hash'), 'new', [], (TMP_2 = function(h2, k2){var self = TMP_2.$$s || this; -if (h2 == null) h2 = nil;if (k2 == null) k2 = nil; - - $writer = [k2, Opal.const_get_relative($nesting, 'Array').$new()]; - $send(h2, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2))]; - $send(h, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_1.$$s = self, TMP_1.$$arity = 2, TMP_1)))) - }, TMP_legacy_map_3.$$arity = 0); - - Opal.defn(self, '$get', TMP_get_4 = function $$get(obj, name) { + return (self.legacy_map = (function() {if ($truthy(($ret_or_1 = self.legacy_map))) { + return $ret_or_1 + } else { + return $send($$($nesting, 'Hash'), 'new', [], ($$2 = function(h, k){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $writer = nil; + + + + if (h == null) { + h = nil; + }; + + if (k == null) { + k = nil; + }; + $writer = [k, $send($$($nesting, 'Hash'), 'new', [], ($$3 = function(h2, k2){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (h2 == null) { + h2 = nil; + }; + + if (k2 == null) { + k2 = nil; + }; + $writer = [k2, $$($nesting, 'Array').$new()]; + $send(h2, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$3.$$s = self, $$3.$$arity = 2, $$3))]; + $send(h, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = 2, $$2)) + }; return nil; })()) + }, $legacy_map$1.$$arity = 0); + + Opal.def(self, '$get', $get$4 = function $$get(obj, name) { var self = this, map_object = nil; map_object = self.$legacy_map()['$[]'](obj)['$[]'](name); - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$observed!'](map_object.$object_id()); + $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$observed!'](map_object.$object_id()); return map_object['$[]'](0); - }, TMP_get_4.$$arity = 2); + }, $get$4.$$arity = 2); - Opal.defn(self, '$set', TMP_set_5 = function $$set(obj, name, value) { + Opal.def(self, '$set', $set$5 = function $$set(obj, name, value, _x) { var self = this, map_object = nil, $writer = nil; + + if (_x == null) { + _x = nil; + }; map_object = self.$legacy_map()['$[]'](obj)['$[]'](name); $writer = [0, value]; $send(map_object, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$mutated!'](map_object.$object_id()); + $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$mutated!'](map_object.$object_id()); return value; - }, TMP_set_5.$$arity = 3); - return (Opal.defn(self, '$observed?', TMP_observed$q_6 = function(obj, name) { + }, $set$5.$$arity = -4); + return (Opal.def(self, '$observed?', $observed$ques$6 = function(obj, name) { var self = this, map_object = nil; map_object = self.$legacy_map()['$[]'](obj)['$[]'](name); - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$observed?'](map_object.$object_id()); - }, TMP_observed$q_6.$$arity = 2), nil) && 'observed?'; + return $$$($$$($$$($$($nesting, 'Hyperstack'), 'Internal'), 'State'), 'Mapper')['$observed?'](map_object.$object_id()); + }, $observed$ques$6.$$arity = 2), nil) && 'observed?'; })(Opal.get_singleton_class(self), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) @@ -24156,317 +26934,500 @@ if (h2 == null) h2 = nil;if (k2 == null) k2 = nil; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/internal/receiver"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["hyperstack/internal/receiver"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $lambda = Opal.lambda; - Opal.add_stubs(['$respond_to?', '$unmounted?', '$format_callback', '$each', '$on_dispatch', '$call', '$<<', '$[]', '$objects_to_unmount', '$is_a?', '$last', '$pop', '$lambda', '$send', '$empty?', '$raise']); + Opal.add_stubs(['$respond_to?', '$unmounted?', '$format_callback', '$each', '$on_dispatch', '$call', '$<<', '$[]', '$objects_to_unmount', '$is_a?', '$last', '$pop', '$send', '$empty?', '$raise']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Internal, self = $Internal = $module($base, 'Internal'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Internal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Receiver, self = $Receiver = $module($base, 'Receiver'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Receiver'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_mount_1, TMP_format_callback_5; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $mount$1, $format_callback$4; - Opal.defn(self, '$mount', TMP_mount_1 = function $$mount(receiver, $a_rest) { - var $b, TMP_2, self = this, args, $iter = TMP_mount_1.$$p, block = $iter || nil, callback = nil; + Opal.def(self, '$mount', $mount$1 = function $$mount(receiver, $a) { + var $iter = $mount$1.$$p, block = $iter || nil, $post_args, args, $$2, self = this, $ret_or_1 = nil, callback = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_mount_1.$$p = null; + if ($iter) $mount$1.$$p = null; + - if ($truthy(($truthy($b = receiver['$respond_to?']("unmounted?")) ? receiver['$unmounted?']() : $b))) { + if ($iter) $mount$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_1 = receiver['$respond_to?']("unmounted?")))) { + return receiver['$unmounted?']() + } else { + return $ret_or_1 + }; return nil; })())) { return nil}; callback = self.$format_callback(receiver, args); - return $send(args, 'each', [], (TMP_2 = function(operation){var self = TMP_2.$$s || this, TMP_3, id = nil; -if (operation == null) operation = nil; - - id = $send(operation, 'on_dispatch', [], (TMP_3 = function(params){var self = TMP_3.$$s || this; -if (params == null) params = nil; + return $send(args, 'each', [], ($$2 = function(operation){var self = $$2.$$s == null ? this : $$2.$$s, $$3, id = nil; + + + if (operation == null) { + operation = nil; + }; + id = $send(operation, 'on_dispatch', [], ($$3 = function(params){var self = $$3.$$s == null ? this : $$3.$$s; + + + + if (params == null) { + params = nil; + }; if ($truthy(callback)) { callback.$call(params)}; if ($truthy(block)) { return Opal.yield1(block, params); - } else { + } else { return nil - };}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3)); + };}, $$3.$$s = self, $$3.$$arity = 1, $$3)); if ($truthy(receiver['$respond_to?']("unmount"))) { - return Opal.const_get_relative($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](receiver)['$<<'](id) - } else { + return $$($nesting, 'AutoUnmount').$objects_to_unmount()['$[]'](receiver)['$<<'](id) + } else { return nil - };}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - }, TMP_mount_1.$$arity = -2); - return (Opal.defn(self, '$format_callback', TMP_format_callback_5 = function $$format_callback(receiver, args) { - var TMP_4, self = this, call_back = nil, method_name = nil, message = nil; + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $mount$1.$$arity = -2); + return (Opal.def(self, '$format_callback', $format_callback$4 = function $$format_callback(receiver, args) { + var $$5, self = this, call_back = nil, method_name = nil, message = nil; - call_back = (function() {if ($truthy(args.$last()['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { + call_back = (function() {if ($truthy(args.$last()['$is_a?']($$($nesting, 'Symbol')))) { method_name = args.$pop(); - return $send(self, 'lambda', [], (TMP_4 = function($a_rest){var self = TMP_4.$$s || this, aargs; + return $lambda(($$5 = function($a){var self = $$5.$$s == null ? this : $$5.$$s, $post_args, aargs; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - aargs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - aargs[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(receiver, 'send', ["" + (method_name)].concat(Opal.to_a(aargs)))}, TMP_4.$$s = self, TMP_4.$$arity = -1, TMP_4)); - } else if ($truthy(args.$last()['$is_a?'](Opal.const_get_relative($nesting, 'Proc')))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + aargs = $post_args;; + return $send(receiver, 'send', ["" + (method_name)].concat(Opal.to_a(aargs)));}, $$5.$$s = self, $$5.$$arity = -1, $$5)); + } else if ($truthy(args.$last()['$is_a?']($$($nesting, 'Proc')))) { return args.$pop() - } else { + } else { return nil }; return nil; })(); if ($truthy(args['$empty?']())) { - } else { + } else { return call_back }; message = "At least one operation must be passed in to the 'receives' macro"; - return self.$raise(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Legacy'), 'Store'), 'InvalidOperationError'), message); - }, TMP_format_callback_5.$$arity = 2), nil) && 'format_callback'; + return self.$raise($$$($$$($$($nesting, 'Legacy'), 'Store'), 'InvalidOperationError'), message); + }, $format_callback$4.$$arity = 2), nil) && 'format_callback'; })(Opal.get_singleton_class(self), $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/state/observable"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; +Opal.modules["hyperstack/state/observable"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; - Opal.add_stubs(['$bulk_update', '$to_proc', '$include', '$each', '$send', '$mount', '$call', '$last', '$observed!', '$mutated!', '$instance_variable_set', '$!', '$instance_variable_get', '$==', '$naming_convention', '$!~', '$!=', '$lambda', '$mutate', '$singleton_class', '$define_method', '$tap', '$instance_exec', '$state_reader', '$state_writer']); + Opal.add_stubs(['$bulk_update', '$to_proc', '$include', '$each', '$send', '$mount', '$call', '$last', '$observed!', '$mutated!', '$instance_variable_set', '$!', '$instance_variable_get', '$==', '$naming_convention', '$!~', '$!=', '$lambda', '$mutate', '$singleton_class', '$define_method', '$tap', '$instance_exec', '$state_reader', '$state_writer', '$define_singleton_method', '$respond_to?', '$receives', '$each_object', '$<=', '$zero?', '$arity', '$method', '$initialize', '$attr_reader']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $State, self = $State = $module($base, 'State'); + return (function($base, $parent_nesting) { + var self = $module($base, 'State'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $Observable, self = $Observable = $module($base, 'Observable'); + return (function($base, $parent_nesting) { + var self = $module($base, 'Observable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Observable_bulk_update_1, TMP_Observable_included_24; + var $nesting = [self].concat($parent_nesting), $Observable_bulk_update$1, $Observable_included$2; - Opal.defs(self, '$bulk_update', TMP_Observable_bulk_update_1 = function $$bulk_update() { - var self = this, $iter = TMP_Observable_bulk_update_1.$$p, block = $iter || nil; - - if ($iter) TMP_Observable_bulk_update_1.$$p = null; - return $send(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper'), 'bulk_update', [], block.$to_proc()) - }, TMP_Observable_bulk_update_1.$$arity = 0); - Opal.defs(self, '$included', TMP_Observable_included_24 = function $$included(base) { - var TMP_2, self = this; + Opal.defs(self, '$bulk_update', $Observable_bulk_update$1 = function $$bulk_update() { + var $iter = $Observable_bulk_update$1.$$p, block = $iter || nil, self = this; + if ($iter) $Observable_bulk_update$1.$$p = null; - base.$include(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'AutoUnmount')); - return $send(["singleton_method", "method"], 'each', [], (TMP_2 = function(kind){var self = TMP_2.$$s || this, TMP_3, TMP_4, TMP_5, TMP_6, TMP_7, TMP_9, TMP_12, TMP_15, TMP_19, TMP_23; -if (kind == null) kind = nil; - $send(base, 'send', ["" + "define_" + (kind), "receives"], (TMP_3 = function($a_rest){var self = TMP_3.$$s || this, block, args; + if ($iter) $Observable_bulk_update$1.$$p = null;; + return $send($$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper'), 'bulk_update', [], block.$to_proc()); + }, $Observable_bulk_update$1.$$arity = 0); + return (Opal.defs(self, '$included', $Observable_included$2 = function $$included(base) { + var $$3, $$25, $$26, $iter = $Observable_included$2.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Observable_included$2.$$p = null; + + base.$include($$$($$($nesting, 'Internal'), 'AutoUnmount')); + $send(["singleton_method", "method"], 'each', [], ($$3 = function(kind){var self = $$3.$$s == null ? this : $$3.$$s, $$4, $$5, $$6, $$7, $$8, $$10, $$13, $$16, $$20, $$24; - block = TMP_3.$$p || nil; - if (block) TMP_3.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'Receiver'), 'mount', [self].concat(Opal.to_a(args)), block.$to_proc())}, TMP_3.$$s = self, TMP_3.$$arity = -1, TMP_3)); - $send(base, 'send', ["" + "define_" + (kind), "observe"], (TMP_4 = function($a_rest){var self = TMP_4.$$s || this, block, args, $b, $c, result = nil; - - block = TMP_4.$$p || nil; - if (block) TMP_4.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - result = ($truthy($b = ($truthy($c = block) ? block.$call() : $c)) ? $b : args.$last()); - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper')['$observed!'](self); - return result;}, TMP_4.$$s = self, TMP_4.$$arity = -1, TMP_4)); - $send(base, 'send', ["" + "define_" + (kind), "mutate"], (TMP_5 = function($a_rest){var self = TMP_5.$$s || this, block, args, $b, $c, result = nil; - - block = TMP_5.$$p || nil; - if (block) TMP_5.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - result = ($truthy($b = ($truthy($c = block) ? block.$call() : $c)) ? $b : args.$last()); - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper')['$mutated!'](self); - return result;}, TMP_5.$$s = self, TMP_5.$$arity = -1, TMP_5)); - $send(base, 'send', ["" + "define_" + (kind), "toggle"], (TMP_6 = function(var$){var self = TMP_6.$$s || this, result = nil; -if (var$ == null) var$ = nil; - var$ = "" + "@" + (var$); - result = self.$instance_variable_set(var$, self.$instance_variable_get(var$)['$!']()); - Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper')['$mutated!'](self); - return result;}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - $send(base, 'send', ["" + "define_" + (kind), "set"], (TMP_7 = function(var$){var self = TMP_7.$$s || this, $a, TMP_8, dont_mutate = nil; -if (var$ == null) var$ = nil; - - if (Opal.const_get_relative($nesting, 'Hyperstack').$naming_convention()['$==']("prefix_state")) { - if ($truthy(var$['$!~'](/^_/))) { - var$ = "" + "_" + (var$)} - } else if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Hyperstack').$naming_convention()['$!=']("none")) ? var$['$!~'](/^[a-z]/) : $a))) { - dont_mutate = true}; - return $send(self, 'lambda', [], (TMP_8 = function(val){var self = TMP_8.$$s || this; -if (val == null) val = nil; - - self[var$] = val; - if ($truthy(dont_mutate)) { - return nil - } else { - return self.$mutate() - };}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8));}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)) - } else { - nil + if (kind == null) { + kind = nil; }; - $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "observer"], (TMP_9 = function(name){var self = TMP_9.$$s || this, block, TMP_10; - - block = TMP_9.$$p || nil; - if (block) TMP_9.$$p = null;if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_10 = function($a_rest){var self = TMP_10.$$s || this, args, TMP_11; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send($send(self, 'instance_exec', Opal.to_a(args), block.$to_proc()), 'tap', [], (TMP_11 = function(){var self = TMP_11.$$s || this; - - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper')['$observed!'](self)}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11))}, TMP_10.$$s = self, TMP_10.$$arity = -1, TMP_10))}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)); - $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "mutator"], (TMP_12 = function(name){var self = TMP_12.$$s || this, block, TMP_13; - - block = TMP_12.$$p || nil; - if (block) TMP_12.$$p = null;if (name == null) name = nil; - return $send(self, 'define_method', [name], (TMP_13 = function($a_rest){var self = TMP_13.$$s || this, args, TMP_14; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send($send(self, 'instance_exec', Opal.to_a(args), block.$to_proc()), 'tap', [], (TMP_14 = function(){var self = TMP_14.$$s || this; - - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper')['$mutated!'](self)}, TMP_14.$$s = self, TMP_14.$$arity = 0, TMP_14))}, TMP_13.$$s = self, TMP_13.$$arity = -1, TMP_13))}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12)); - $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "state_reader"], (TMP_15 = function($a_rest){var self = TMP_15.$$s || this, names, TMP_16; + $send(base, 'send', ["" + "define_" + (kind), "receives"], ($$4 = function($a){var self = $$4.$$s == null ? this : $$4.$$s, $iter = $$4.$$p, block = $iter || nil, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(names, 'each', [], (TMP_16 = function(name){var self = TMP_16.$$s || this, $a, TMP_17, var_name = nil; -if (name == null) name = nil; - var_name = (function() {if ($truthy((($a = Opal.const_get_relative($nesting, 'Hyperstack').$naming_convention()['$==']("prefix_state")) ? name['$!~'](/^_/) : Opal.const_get_relative($nesting, 'Hyperstack').$naming_convention()['$==']("prefix_state")))) { - return "" + "_" + (name) - } else { + + if ($iter) $$4.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$$($$($nesting, 'Internal'), 'Receiver'), 'mount', [self].concat(Opal.to_a(args)), block.$to_proc());}, $$4.$$s = self, $$4.$$arity = -1, $$4)); + $send(base, 'send', ["" + "define_" + (kind), "observe"], ($$5 = function($a){var self = $$5.$$s == null ? this : $$5.$$s, $iter = $$5.$$p, block = $iter || nil, $post_args, args, result = nil; + + + + if ($iter) $$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + result = (function() {if ($truthy(block)) { + return block.$call() + } else { + return args.$last() + }; return nil; })(); + $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper')['$observed!'](self); + return result;}, $$5.$$s = self, $$5.$$arity = -1, $$5)); + $send(base, 'send', ["" + "define_" + (kind), "mutate"], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $iter = $$6.$$p, block = $iter || nil, $post_args, args, result = nil; + + + + if ($iter) $$6.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + result = (function() {if ($truthy(block)) { + return block.$call() + } else { + return args.$last() + }; return nil; })(); + $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper')['$mutated!'](self); + return result;}, $$6.$$s = self, $$6.$$arity = -1, $$6)); + $send(base, 'send', ["" + "define_" + (kind), "toggle"], ($$7 = function(var$){var self = $$7.$$s == null ? this : $$7.$$s, result = nil; + + + + if (var$ == null) { + var$ = nil; + }; + var$ = "" + "@" + (var$); + result = self.$instance_variable_set(var$, self.$instance_variable_get(var$)['$!']()); + $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper')['$mutated!'](self); + return result;}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + $send(base, 'send', ["" + "define_" + (kind), "set"], ($$8 = function(var$){var self = $$8.$$s == null ? this : $$8.$$s, $$9, $ret_or_1 = nil, dont_mutate = nil; + + + + if (var$ == null) { + var$ = nil; + }; + if ($$($nesting, 'Hyperstack').$naming_convention()['$==']("prefix_state")) { + if ($truthy(var$['$!~'](/^_/))) { + var$ = "" + "_" + (var$)} + } else if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'Hyperstack').$naming_convention()['$!=']("none")))) { + return var$['$!~'](/^[a-z]/) + } else { + return $ret_or_1 + }; return nil; })())) { + dont_mutate = true}; + return $send(self, 'lambda', [], ($$9 = function(val){var self = $$9.$$s == null ? this : $$9.$$s; + + + + if (val == null) { + val = nil; + }; + self[var$] = val; + if ($truthy(dont_mutate)) { + return nil + } else { + return self.$mutate() + };}, $$9.$$s = self, $$9.$$arity = 1, $$9));}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "observer"], ($$10 = function(name){var self = $$10.$$s == null ? this : $$10.$$s, $iter = $$10.$$p, block = $iter || nil, $$11; + + + + if ($iter) $$10.$$p = null;; + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$11 = function($a){var self = $$11.$$s == null ? this : $$11.$$s, $post_args, args, $$12; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($send(self, 'instance_exec', Opal.to_a(args), block.$to_proc()), 'tap', [], ($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s; + + return $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper')['$observed!'](self)}, $$12.$$s = self, $$12.$$arity = 0, $$12));}, $$11.$$s = self, $$11.$$arity = -1, $$11));}, $$10.$$s = self, $$10.$$arity = 1, $$10)); + $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "mutator"], ($$13 = function(name){var self = $$13.$$s == null ? this : $$13.$$s, $iter = $$13.$$p, block = $iter || nil, $$14; + + + + if ($iter) $$13.$$p = null;; + + if (name == null) { + name = nil; + }; + return $send(self, 'define_method', [name], ($$14 = function($a){var self = $$14.$$s == null ? this : $$14.$$s, $post_args, args, $$15; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($send(self, 'instance_exec', Opal.to_a(args), block.$to_proc()), 'tap', [], ($$15 = function(){var self = $$15.$$s == null ? this : $$15.$$s; + + return $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper')['$mutated!'](self)}, $$15.$$s = self, $$15.$$arity = 0, $$15));}, $$14.$$s = self, $$14.$$arity = -1, $$14));}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "state_reader"], ($$16 = function($a){var self = $$16.$$s == null ? this : $$16.$$s, $post_args, names, $$17; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; + return $send(names, 'each', [], ($$17 = function(name){var self = $$17.$$s == null ? this : $$17.$$s, $$18, var_name = nil, $ret_or_2 = nil; + + + + if (name == null) { + name = nil; + }; + var_name = (function() {if ($truthy((function() {if ($truthy(($ret_or_2 = $$($nesting, 'Hyperstack').$naming_convention()['$==']("prefix_state")))) { + return name['$!~'](/^_/) + } else { + return $ret_or_2 + }; return nil; })())) { + return "" + "_" + (name) + } else { return name }; return nil; })(); - return $send(self, 'define_method', [name], (TMP_17 = function(){var self = TMP_17.$$s || this, TMP_18; + return $send(self, 'define_method', [name], ($$18 = function(){var self = $$18.$$s == null ? this : $$18.$$s, $$19; - return $send(self.$instance_variable_get("" + "@" + (var_name)), 'tap', [], (TMP_18 = function(){var self = TMP_18.$$s || this; + return $send(self.$instance_variable_get("" + "@" + (var_name)), 'tap', [], ($$19 = function(){var self = $$19.$$s == null ? this : $$19.$$s; - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper')['$observed!'](self)}, TMP_18.$$s = self, TMP_18.$$arity = 0, TMP_18))}, TMP_17.$$s = self, TMP_17.$$arity = 0, TMP_17));}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16))}, TMP_15.$$s = self, TMP_15.$$arity = -1, TMP_15)); - $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "state_writer"], (TMP_19 = function($a_rest){var self = TMP_19.$$s || this, names, TMP_20; + return $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper')['$observed!'](self)}, $$19.$$s = self, $$19.$$arity = 0, $$19))}, $$18.$$s = self, $$18.$$arity = 0, $$18));}, $$17.$$s = self, $$17.$$arity = 1, $$17));}, $$16.$$s = self, $$16.$$arity = -1, $$16)); + $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "state_writer"], ($$20 = function($a){var self = $$20.$$s == null ? this : $$20.$$s, $post_args, names, $$21; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(names, 'each', [], (TMP_20 = function(name){var self = TMP_20.$$s || this, $a, TMP_21, var_name = nil; -if (name == null) name = nil; - var_name = (function() {if ($truthy((($a = Opal.const_get_relative($nesting, 'Hyperstack').$naming_convention()['$==']("prefix_state")) ? name['$!~'](/^_/) : Opal.const_get_relative($nesting, 'Hyperstack').$naming_convention()['$==']("prefix_state")))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; + return $send(names, 'each', [], ($$21 = function(name){var self = $$21.$$s == null ? this : $$21.$$s, $$22, var_name = nil, $ret_or_3 = nil; + + + + if (name == null) { + name = nil; + }; + var_name = (function() {if ($truthy((function() {if ($truthy(($ret_or_3 = $$($nesting, 'Hyperstack').$naming_convention()['$==']("prefix_state")))) { + return name['$!~'](/^_/) + } else { + return $ret_or_3 + }; return nil; })())) { return "" + "_" + (name) - } else { + } else { return name }; return nil; })(); - return $send(self, 'define_method', ["" + (name) + "="], (TMP_21 = function(x){var self = TMP_21.$$s || this, TMP_22; -if (x == null) x = nil; - return $send(self.$instance_variable_set("" + "@" + (var_name), x), 'tap', [], (TMP_22 = function(){var self = TMP_22.$$s || this; - - return Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Internal'), 'State'), 'Mapper')['$mutated!'](self)}, TMP_22.$$s = self, TMP_22.$$arity = 0, TMP_22))}, TMP_21.$$s = self, TMP_21.$$arity = 1, TMP_21));}, TMP_20.$$s = self, TMP_20.$$arity = 1, TMP_20))}, TMP_19.$$s = self, TMP_19.$$arity = -1, TMP_19)); - return $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "state_accessor"], (TMP_23 = function($a_rest){var self = TMP_23.$$s || this, names; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - + return $send(self, 'define_method', ["" + (name) + "="], ($$22 = function(x){var self = $$22.$$s == null ? this : $$22.$$s, $$23; + + + + if (x == null) { + x = nil; + }; + return $send(self.$instance_variable_set("" + "@" + (var_name), x), 'tap', [], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s; + + return $$$($$$($$($nesting, 'Internal'), 'State'), 'Mapper')['$mutated!'](self)}, $$23.$$s = self, $$23.$$arity = 0, $$23));}, $$22.$$s = self, $$22.$$arity = 1, $$22));}, $$21.$$s = self, $$21.$$arity = 1, $$21));}, $$20.$$s = self, $$20.$$arity = -1, $$20)); + return $send(base.$singleton_class(), 'send', ["" + "define_" + (kind), "state_accessor"], ($$24 = function($a){var self = $$24.$$s == null ? this : $$24.$$s, $post_args, names; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; $send(self, 'state_reader', Opal.to_a(names)); - return $send(self, 'state_writer', Opal.to_a(names));}, TMP_23.$$s = self, TMP_23.$$arity = -1, TMP_23));}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - }, TMP_Observable_included_24.$$arity = 1); + return $send(self, 'state_writer', Opal.to_a(names));}, $$24.$$s = self, $$24.$$arity = -1, $$24));}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + $send(base.$singleton_class(), 'define_singleton_method', ["receives"], ($$25 = function($a){var self = $$25.$$s == null ? this : $$25.$$s, $iter = $$25.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$25.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$$($$($nesting, 'Internal'), 'Receiver'), 'mount', [base].concat(Opal.to_a(args)), block.$to_proc());}, $$25.$$s = self, $$25.$$arity = -1, $$25)); + if ($truthy(base['$respond_to?']("__hyperstack_state_observer_included"))) { + return nil + } else { + + $send(base, 'receives', [$$$($$$($$($nesting, 'Hyperstack'), 'Application'), 'Boot')], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s, $$27; + + return $send($$($nesting, 'ObjectSpace'), 'each_object', [$$($nesting, 'Class')], ($$27 = function(klass){var self = $$27.$$s == null ? this : $$27.$$s; + + + + if (klass == null) { + klass = nil; + }; + if ($truthy($rb_le(klass, base))) { + } else { + return nil; + }; + if ($truthy(klass['$respond_to?']("initialize"))) { + } else { + return nil; + }; + if ($truthy(klass.$method("initialize").$arity()['$zero?']())) { + } else { + return nil; + }; + return klass.$initialize();}, $$27.$$s = self, $$27.$$arity = 1, $$27))}, $$26.$$s = self, $$26.$$arity = 0, $$26)); + return base.$singleton_class().$attr_reader("__hyperstack_state_observer_included"); + }; + }, $Observable_included$2.$$arity = 1), nil) && 'included'; })($nesting[0], $nesting) })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyperstack/state/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["hyperstack/state/version"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $parent_nesting) { - var $State, self = $State = $module($base, 'State'); + return (function($base, $parent_nesting) { + var self = $module($base, 'State'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - Opal.const_set($nesting[0], 'VERSION', "1.0.alpha1.5") + return Opal.const_set($nesting[0], 'VERSION', "1.0.alpha1.8") })($nesting[0], $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-state"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $truthy = Opal.truthy; +Opal.modules["ext/object_space"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_ge(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy; + + Opal.add_stubs(['$loop', '$[]', '$each', '$const_get', '$respond_to?', '$include?', '$is_a?', '$<<', '$+', '$>=', '$length']); + return (function($base, $parent_nesting) { + var self = $module($base, 'ObjectSpace'); + + var $nesting = [self].concat($parent_nesting), $ObjectSpace_each_object$1; + + return (Opal.defs(self, '$each_object', $ObjectSpace_each_object$1 = function $$each_object(target_klass) { + var $iter = $ObjectSpace_each_object$1.$$p, block = $iter || nil, $$2, self = this, klasses = nil, i = nil; + + if ($iter) $ObjectSpace_each_object$1.$$p = null; + + + if ($iter) $ObjectSpace_each_object$1.$$p = null;; + klasses = [$$($nesting, 'Object')]; + i = 0; + return (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], ($$2 = function(){var self = $$2.$$s == null ? this : $$2.$$s, $$3, klass = nil, names = nil, $ret_or_1 = nil; + + + klass = klasses['$[]'](i); + Opal.yield1(block, klass); + names = (function() {if ($truthy(($ret_or_1 = klass.$$const))) { + return Object.keys(klass.$$const); + } else { + return $ret_or_1 + }; return nil; })(); + if ($truthy(names)) { + $send(names, 'each', [], ($$3 = function(name){var self = $$3.$$s == null ? this : $$3.$$s, k = nil, e = nil; - Opal.add_stubs(['$require', '$import', '$!=']); + + + if (name == null) { + name = nil; + }; + try { + + k = (function() { try { + return klass.$const_get(name) + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { + try { + return nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + }})(); + if ($truthy(k.$$const)) { + } else { + return nil; + }; + if ($truthy(k['$respond_to?']("is_a?"))) { + } else { + return nil; + }; + if ($truthy(klasses['$include?'](k))) { + return nil;}; + if ($truthy(k['$is_a?'](target_klass))) { + return klasses['$<<'](k) + } else { + return nil + }; + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) + try { + return nil; + } finally { Opal.pop_exception(); } + } else { throw $err; } + };}, $$3.$$s = self, $$3.$$arity = 1, $$3))}; + i = $rb_plus(i, 1); + if ($truthy($rb_ge(i, klasses.$length()))) { + + Opal.brk(nil, $brk) + } else { + return nil + };}, $$2.$$s = self, $$2.$$brk = $brk, $$2.$$arity = 0, $$2)) + } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); + }, $ObjectSpace_each_object$1.$$arity = 1), nil) && 'each_object' + })($nesting[0], $nesting) +}; + +Opal.modules["hyper-state"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; + + Opal.add_stubs(['$require', '$import']); self.$require("set"); self.$require("hyperstack-config"); - Opal.const_get_relative($nesting, 'Hyperstack').$import("hyper-state"); + $$($nesting, 'Hyperstack').$import("hyper-state"); self.$require("hyperstack/internal/callbacks"); self.$require("hyperstack/internal/auto_unmount"); self.$require("hyperstack/internal/state/mapper"); @@ -24476,186 +27437,162 @@ Opal.modules["hyper-state"] = function(Opal) { self.$require("hyperstack/state/observable"); self.$require("hyperstack/state/observer"); self.$require("hyperstack/state/version"); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - return nil - } else { - return nil - }; + return self.$require("ext/object_space"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["hyper-operation/version"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - return Opal.const_set($nesting[0], 'VERSION', "1.0.alpha1.5") + return Opal.const_set($nesting[0], 'VERSION', "1.0.alpha1.8") })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["js"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.modules["js"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $alias = Opal.alias; Opal.add_stubs(['$insert', '$<<', '$global', '$extend']); return (function($base, $parent_nesting) { - var $JS, self = $JS = $module($base, 'JS'); + var self = $module($base, 'JS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_JS_delete_1, TMP_JS_global_2, TMP_JS_in_3, TMP_JS_instanceof_4, TMP_JS_new_5, TMP_JS_new_6, TMP_JS_typeof_7, TMP_JS_void_8, TMP_JS_call_9; + var $nesting = [self].concat($parent_nesting), $JS_delete$1, $JS_global$2, $JS_in$3, $JS_instanceof$4, $JS_new$5, $JS_new$6, $JS_typeof$7, $JS_void$8, $JS_call$9, $JS_$$$10; - Opal.defn(self, '$delete', TMP_JS_delete_1 = function(object, property) { + Opal.def(self, '$delete', $JS_delete$1 = function(object, property) { var self = this; return delete object[property] - }, TMP_JS_delete_1.$$arity = 2); + }, $JS_delete$1.$$arity = 2); - Opal.defn(self, '$global', TMP_JS_global_2 = function $$global() { + Opal.def(self, '$global', $JS_global$2 = function $$global() { var self = this; - return Opal.global - }, TMP_JS_global_2.$$arity = 0); + return Opal.global; + }, $JS_global$2.$$arity = 0); - Opal.defn(self, '$in', TMP_JS_in_3 = function(property, object) { + Opal.def(self, '$in', $JS_in$3 = function(property, object) { var self = this; return property in object - }, TMP_JS_in_3.$$arity = 2); + }, $JS_in$3.$$arity = 2); - Opal.defn(self, '$instanceof', TMP_JS_instanceof_4 = function(value, func) { + Opal.def(self, '$instanceof', $JS_instanceof$4 = function(value, func) { var self = this; return value instanceof func - }, TMP_JS_instanceof_4.$$arity = 2); + }, $JS_instanceof$4.$$arity = 2); if ($truthy(typeof Function.prototype.bind == 'function')) { - Opal.defn(self, '$new', TMP_JS_new_5 = function(func, $a_rest) { - var self = this, args, $iter = TMP_JS_new_5.$$p, block = $iter || nil; + Opal.def(self, '$new', $JS_new$5 = function(func, $a) { + var $iter = $JS_new$5.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_JS_new_5.$$p = null; + if ($iter) $JS_new$5.$$p = null; + + if ($iter) $JS_new$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; args.$insert(0, this); if ($truthy(block)) { args['$<<'](block)}; return new (func.bind.apply(func, args))(); - }, TMP_JS_new_5.$$arity = -2) - } else { + }, $JS_new$5.$$arity = -2) + } else { - Opal.defn(self, '$new', TMP_JS_new_6 = function(func, $a_rest) { - var self = this, args, $iter = TMP_JS_new_6.$$p, block = $iter || nil, f = nil; + Opal.def(self, '$new', $JS_new$6 = function(func, $a) { + var $iter = $JS_new$6.$$p, block = $iter || nil, $post_args, args, self = this, f = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_JS_new_6.$$p = null; + if ($iter) $JS_new$6.$$p = null; + + if ($iter) $JS_new$6.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(block)) { args['$<<'](block)}; f = function(){return func.apply(this, args)}; f["prototype"] = func["prototype"]; - return new f(); - }, TMP_JS_new_6.$$arity = -2) + return new f();; + }, $JS_new$6.$$arity = -2) }; - Opal.defn(self, '$typeof', TMP_JS_typeof_7 = function(value) { + Opal.def(self, '$typeof', $JS_typeof$7 = function(value) { var self = this; return typeof value - }, TMP_JS_typeof_7.$$arity = 1); + }, $JS_typeof$7.$$arity = 1); - Opal.defn(self, '$void', TMP_JS_void_8 = function(expr) { + Opal.def(self, '$void', $JS_void$8 = function(expr) { var self = this; return void expr - }, TMP_JS_void_8.$$arity = 1); + }, $JS_void$8.$$arity = 1); - Opal.defn(self, '$call', TMP_JS_call_9 = function $$call(func, $a_rest) { - var self = this, args, $iter = TMP_JS_call_9.$$p, block = $iter || nil, g = nil; + Opal.def(self, '$call', $JS_call$9 = function $$call(func, $a) { + var $iter = $JS_call$9.$$p, block = $iter || nil, $post_args, args, self = this, g = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_JS_call_9.$$p = null; + if ($iter) $JS_call$9.$$p = null; + + if ($iter) $JS_call$9.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; g = self.$global(); if ($truthy(block)) { args['$<<'](block)}; return g[func].apply(g, args); - }, TMP_JS_call_9.$$arity = -2); - Opal.alias(self, "method_missing", "call"); - self.$extend(self); - })($nesting[0], $nesting) -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["bigdecimal/kernel"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; - - Opal.add_stubs(['$new']); - return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_BigDecimal_1; - + }, $JS_call$9.$$arity = -2); + $alias(self, "method_missing", "call"); - Opal.defn(self, '$BigDecimal', TMP_Kernel_BigDecimal_1 = function $$BigDecimal(initial, digits) { + Opal.def(self, '$[]', $JS_$$$10 = function(name) { var self = this; - if (digits == null) { - digits = 0; - } - return Opal.const_get_relative($nesting, 'BigDecimal').$new(initial, digits) - }, TMP_Kernel_BigDecimal_1.$$arity = -2) + return Opal.global[name] + }, $JS_$$$10.$$arity = 1); + return self.$extend(self); })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["bigdecimal/bignumber"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["bigdecimal/bignumber"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; return (function($base, $super, $parent_nesting) { - function $BigDecimal(){}; - var self = $BigDecimal = $klass($base, $super, 'BigDecimal', $BigDecimal); + var self = $klass($base, $super, 'BigDecimal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); var define = function (f) { Opal.const_set(self, 'BigNumber', f()); }; define.amd = true; + /* global Uint32Array */ - /* jshint ignore:start */ + /* eslint-disable */ /* bignumber.js v2.1.4 https://github.com/MikeMcl/bignumber.js/LICENCE */ !function(e){"use strict";function n(e){function E(e,n){var t,r,i,o,u,s,f=this;if(!(f instanceof E))return j&&L(26,"constructor call without new",e),new E(e,n);if(null!=n&&H(n,2,64,M,"base")){if(n=0|n,s=e+"",10==n)return f=new E(e instanceof E?e:s),U(f,P+f.e+1,k);if((o="number"==typeof e)&&0*e!=0||!new RegExp("^-?"+(t="["+N.slice(0,n)+"]+")+"(?:\\."+t+")?$",37>n?"i":"").test(s))return h(f,s,o,n);o?(f.s=0>1/e?(s=s.slice(1),-1):1,j&&s.replace(/^0\.0*|\./,"").length>15&&L(M,v,e),o=!1):f.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1,s=D(s,10,n,f.s)}else{if(e instanceof E)return f.s=e.s,f.e=e.e,f.c=(e=e.c)?e.slice():e,void(M=0);if((o="number"==typeof e)&&0*e==0){if(f.s=0>1/e?(e=-e,-1):1,e===~~e){for(r=0,i=e;i>=10;i/=10,r++);return f.e=r,f.c=[e],void(M=0)}s=e+""}else{if(!g.test(s=e+""))return h(f,s,o);f.s=45===s.charCodeAt(0)?(s=s.slice(1),-1):1}}for((r=s.indexOf("."))>-1&&(s=s.replace(".","")),(i=s.search(/e/i))>0?(0>r&&(r=i),r+=+s.slice(i+1),s=s.substring(0,i)):0>r&&(r=s.length),i=0;48===s.charCodeAt(i);i++);for(u=s.length;48===s.charCodeAt(--u););if(s=s.slice(i,u+1))if(u=s.length,o&&j&&u>15&&L(M,v,f.s*e),r=r-i-1,r>z)f.c=f.e=null;else if(G>r)f.c=[f.e=0];else{if(f.e=r,f.c=[],i=(r+1)%O,0>r&&(i+=O),u>i){for(i&&f.c.push(+s.slice(0,i)),u-=O;u>i;)f.c.push(+s.slice(i,i+=O));s=s.slice(i),i=O-s.length}else i-=u;for(;i--;s+="0");f.c.push(+s)}else f.c=[f.e=0];M=0}function D(e,n,t,i){var o,u,f,c,a,h,g,p=e.indexOf("."),d=P,m=k;for(37>t&&(e=e.toLowerCase()),p>=0&&(f=J,J=0,e=e.replace(".",""),g=new E(t),a=g.pow(e.length-p),J=f,g.c=s(l(r(a.c),a.e),10,n),g.e=g.c.length),h=s(e,t,n),u=f=h.length;0==h[--f];h.pop());if(!h[0])return"0";if(0>p?--u:(a.c=h,a.e=u,a.s=i,a=C(a,g,d,m,n),h=a.c,c=a.r,u=a.e),o=u+d+1,p=h[o],f=n/2,c=c||0>o||null!=h[o+1],c=4>m?(null!=p||c)&&(0==m||m==(a.s<0?3:2)):p>f||p==f&&(4==m||c||6==m&&1&h[o-1]||m==(a.s<0?8:7)),1>o||!h[0])e=c?l("1",-d):"0";else{if(h.length=o,c)for(--n;++h[--o]>n;)h[o]=0,o||(++u,h.unshift(1));for(f=h.length;!h[--f];);for(p=0,e="";f>=p;e+=N.charAt(h[p++]));e=l(e,u)}return e}function F(e,n,t,i){var o,u,s,c,a;if(t=null!=t&&H(t,0,8,i,w)?0|t:k,!e.c)return e.toString();if(o=e.c[0],s=e.e,null==n)a=r(e.c),a=19==i||24==i&&B>=s?f(a,s):l(a,s);else if(e=U(new E(e),n,t),u=e.e,a=r(e.c),c=a.length,19==i||24==i&&(u>=n||B>=u)){for(;n>c;a+="0",c++);a=f(a,u)}else if(n-=s,a=l(a,u),u+1>c){if(--n>0)for(a+=".";n--;a+="0");}else if(n+=u-c,n>0)for(u+1==c&&(a+=".");n--;a+="0");return e.s<0&&o?"-"+a:a}function _(e,n){var t,r,i=0;for(u(e[0])&&(e=e[0]),t=new E(e[0]);++ie||e>t||e!=c(e))&&L(r,(i||"decimal places")+(n>e||e>t?" out of range":" not an integer"),e),!0}function I(e,n,t){for(var r=1,i=n.length;!n[--i];n.pop());for(i=n[0];i>=10;i/=10,r++);return(t=r+t*O-1)>z?e.c=e.e=null:G>t?e.c=[e.e=0]:(e.e=t,e.c=n),e}function L(e,n,t){var r=new Error(["new BigNumber","cmp","config","div","divToInt","eq","gt","gte","lt","lte","minus","mod","plus","precision","random","round","shift","times","toDigits","toExponential","toFixed","toFormat","toFraction","pow","toPrecision","toString","BigNumber"][e]+"() "+n+": "+t);throw r.name="BigNumber Error",M=0,r}function U(e,n,t,r){var i,o,u,s,f,l,c,a=e.c,h=S;if(a){e:{for(i=1,s=a[0];s>=10;s/=10,i++);if(o=n-i,0>o)o+=O,u=n,f=a[l=0],c=f/h[i-u-1]%10|0;else if(l=p((o+1)/O),l>=a.length){if(!r)break e;for(;a.length<=l;a.push(0));f=c=0,i=1,o%=O,u=o-O+1}else{for(f=s=a[l],i=1;s>=10;s/=10,i++);o%=O,u=o-O+i,c=0>u?0:f/h[i-u-1]%10|0}if(r=r||0>n||null!=a[l+1]||(0>u?f:f%h[i-u-1]),r=4>t?(c||r)&&(0==t||t==(e.s<0?3:2)):c>5||5==c&&(4==t||r||6==t&&(o>0?u>0?f/h[i-u]:0:a[l-1])%10&1||t==(e.s<0?8:7)),1>n||!a[0])return a.length=0,r?(n-=e.e+1,a[0]=h[(O-n%O)%O],e.e=-n||0):a[0]=e.e=0,e;if(0==o?(a.length=l,s=1,l--):(a.length=l+1,s=h[O-o],a[l]=u>0?d(f/h[i-u]%h[u])*s:0),r)for(;;){if(0==l){for(o=1,u=a[0];u>=10;u/=10,o++);for(u=a[0]+=s,s=1;u>=10;u/=10,s++);o!=s&&(e.e++,a[0]==b&&(a[0]=1));break}if(a[l]+=s,a[l]!=b)break;a[l--]=0,s=1}for(o=a.length;0===a[--o];a.pop());}e.e>z?e.c=e.e=null:e.et?null!=(e=i[t++]):void 0};return f(n="DECIMAL_PLACES")&&H(e,0,A,2,n)&&(P=0|e),r[n]=P,f(n="ROUNDING_MODE")&&H(e,0,8,2,n)&&(k=0|e),r[n]=k,f(n="EXPONENTIAL_AT")&&(u(e)?H(e[0],-A,0,2,n)&&H(e[1],0,A,2,n)&&(B=0|e[0],$=0|e[1]):H(e,-A,A,2,n)&&(B=-($=0|(0>e?-e:e)))),r[n]=[B,$],f(n="RANGE")&&(u(e)?H(e[0],-A,-1,2,n)&&H(e[1],1,A,2,n)&&(G=0|e[0],z=0|e[1]):H(e,-A,A,2,n)&&(0|e?G=-(z=0|(0>e?-e:e)):j&&L(2,n+" cannot be zero",e))),r[n]=[G,z],f(n="ERRORS")&&(e===!!e||1===e||0===e?(M=0,H=(j=!!e)?x:o):j&&L(2,n+m,e)),r[n]=j,f(n="CRYPTO")&&(e===!!e||1===e||0===e?(V=!(!e||!a),e&&!V&&j&&L(2,"crypto unavailable",a)):j&&L(2,n+m,e)),r[n]=V,f(n="MODULO_MODE")&&H(e,0,9,2,n)&&(W=0|e),r[n]=W,f(n="POW_PRECISION")&&H(e,0,A,2,n)&&(J=0|e),r[n]=J,f(n="FORMAT")&&("object"==typeof e?X=e:j&&L(2,n+" not an object",e)),r[n]=X,r},E.max=function(){return _(arguments,T.lt)},E.min=function(){return _(arguments,T.gt)},E.random=function(){var e=9007199254740992,n=Math.random()*e&2097151?function(){return d(Math.random()*e)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(e){var t,r,i,o,u,s=0,f=[],l=new E(q);if(e=null!=e&&H(e,0,A,14)?0|e:P,o=p(e/O),V)if(a&&a.getRandomValues){for(t=a.getRandomValues(new Uint32Array(o*=2));o>s;)u=131072*t[s]+(t[s+1]>>>11),u>=9e15?(r=a.getRandomValues(new Uint32Array(2)),t[s]=r[0],t[s+1]=r[1]):(f.push(u%1e14),s+=2);s=o/2}else if(a&&a.randomBytes){for(t=a.randomBytes(o*=7);o>s;)u=281474976710656*(31&t[s])+1099511627776*t[s+1]+4294967296*t[s+2]+16777216*t[s+3]+(t[s+4]<<16)+(t[s+5]<<8)+t[s+6],u>=9e15?a.randomBytes(7).copy(t,s):(f.push(u%1e14),s+=7);s=o/7}else j&&L(14,"crypto unavailable",a);if(!s)for(;o>s;)u=n(),9e15>u&&(f[s++]=u%1e14);for(o=f[--s],e%=O,o&&e&&(u=S[O-e],f[s]=d(o/u)*u);0===f[s];f.pop(),s--);if(0>s)f=[i=0];else{for(i=-1;0===f[0];f.shift(),i-=O);for(s=1,u=f[0];u>=10;u/=10,s++);O>s&&(i-=O-s)}return l.e=i,l.c=f,l}}(),C=function(){function e(e,n,t){var r,i,o,u,s=0,f=e.length,l=n%R,c=n/R|0;for(e=e.slice();f--;)o=e[f]%R,u=e[f]/R|0,r=c*o+u*l,i=l*o+r%R*R+s,s=(i/t|0)+(r/R|0)+c*u,e[f]=i%t;return s&&e.unshift(s),e}function n(e,n,t,r){var i,o;if(t!=r)o=t>r?1:-1;else for(i=o=0;t>i;i++)if(e[i]!=n[i]){o=e[i]>n[i]?1:-1;break}return o}function r(e,n,t,r){for(var i=0;t--;)e[t]-=i,i=e[t]1;e.shift());}return function(i,o,u,s,f){var l,c,a,h,g,p,m,w,v,N,y,S,R,A,D,F,_,x=i.s==o.s?1:-1,I=i.c,L=o.c;if(!(I&&I[0]&&L&&L[0]))return new E(i.s&&o.s&&(I?!L||I[0]!=L[0]:L)?I&&0==I[0]||!L?0*x:x/0:NaN);for(w=new E(x),v=w.c=[],c=i.e-o.e,x=u+c+1,f||(f=b,c=t(i.e/O)-t(o.e/O),x=x/O|0),a=0;L[a]==(I[a]||0);a++);if(L[a]>(I[a]||0)&&c--,0>x)v.push(1),h=!0;else{for(A=I.length,F=L.length,a=0,x+=2,g=d(f/(L[0]+1)),g>1&&(L=e(L,g,f),I=e(I,g,f),F=L.length,A=I.length),R=F,N=I.slice(0,F),y=N.length;F>y;N[y++]=0);_=L.slice(),_.unshift(0),D=L[0],L[1]>=f/2&&D++;do{if(g=0,l=n(L,N,F,y),0>l){if(S=N[0],F!=y&&(S=S*f+(N[1]||0)),g=d(S/D),g>1)for(g>=f&&(g=f-1),p=e(L,g,f),m=p.length,y=N.length;1==n(p,N,m,y);)g--,r(p,m>F?_:L,m,f),m=p.length,l=1;else 0==g&&(l=g=1),p=L.slice(),m=p.length;if(y>m&&p.unshift(0),r(N,p,y,f),y=N.length,-1==l)for(;n(L,N,F,y)<1;)g++,r(N,y>F?_:L,y,f),y=N.length}else 0===l&&(g++,N=[0]);v[a++]=g,N[0]?N[y++]=I[R]||0:(N=[I[R]],y=1)}while((R++=10;x/=10,a++);U(w,u+(w.e=a+c*O-1)+1,s,h)}else w.e=c,w.r=+h;return w}}(),h=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,n=/^([^.]+)\.$/,t=/^\.([^.]+)$/,r=/^-?(Infinity|NaN)$/,i=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(o,u,s,f){var l,c=s?u:u.replace(i,"");if(r.test(c))o.s=isNaN(c)?null:0>c?-1:1;else{if(!s&&(c=c.replace(e,function(e,n,t){return l="x"==(t=t.toLowerCase())?16:"b"==t?2:8,f&&f!=l?e:n}),f&&(l=f,c=c.replace(n,"$1").replace(t,"0.$1")),u!=c))return new E(c,l);j&&L(M,"not a"+(f?" base "+f:"")+" number",u),o.s=null}o.c=o.e=null,M=0}}(),T.absoluteValue=T.abs=function(){var e=new E(this);return e.s<0&&(e.s=1),e},T.ceil=function(){return U(new E(this),this.e+1,2)},T.comparedTo=T.cmp=function(e,n){return M=1,i(this,new E(e,n))},T.decimalPlaces=T.dp=function(){var e,n,r=this.c;if(!r)return null;if(e=((n=r.length-1)-t(this.e/O))*O,n=r[n])for(;n%10==0;n/=10,e--);return 0>e&&(e=0),e},T.dividedBy=T.div=function(e,n){return M=3,C(this,new E(e,n),P,k)},T.dividedToIntegerBy=T.divToInt=function(e,n){return M=4,C(this,new E(e,n),0,1)},T.equals=T.eq=function(e,n){return M=5,0===i(this,new E(e,n))},T.floor=function(){return U(new E(this),this.e+1,3)},T.greaterThan=T.gt=function(e,n){return M=6,i(this,new E(e,n))>0},T.greaterThanOrEqualTo=T.gte=function(e,n){return M=7,1===(n=i(this,new E(e,n)))||0===n},T.isFinite=function(){return!!this.c},T.isInteger=T.isInt=function(){return!!this.c&&t(this.e/O)>this.c.length-2},T.isNaN=function(){return!this.s},T.isNegative=T.isNeg=function(){return this.s<0},T.isZero=function(){return!!this.c&&0==this.c[0]},T.lessThan=T.lt=function(e,n){return M=8,i(this,new E(e,n))<0},T.lessThanOrEqualTo=T.lte=function(e,n){return M=9,-1===(n=i(this,new E(e,n)))||0===n},T.minus=T.sub=function(e,n){var r,i,o,u,s=this,f=s.s;if(M=10,e=new E(e,n),n=e.s,!f||!n)return new E(NaN);if(f!=n)return e.s=-n,s.plus(e);var l=s.e/O,c=e.e/O,a=s.c,h=e.c;if(!l||!c){if(!a||!h)return a?(e.s=-n,e):new E(h?s:NaN);if(!a[0]||!h[0])return h[0]?(e.s=-n,e):new E(a[0]?s:3==k?-0:0)}if(l=t(l),c=t(c),a=a.slice(),f=l-c){for((u=0>f)?(f=-f,o=a):(c=l,o=h),o.reverse(),n=f;n--;o.push(0));o.reverse()}else for(i=(u=(f=a.length)<(n=h.length))?f:n,f=n=0;i>n;n++)if(a[n]!=h[n]){u=a[n]0)for(;n--;a[r++]=0);for(n=b-1;i>f;){if(a[--i]0?(s=u,r=l):(o=-o,r=f),r.reverse();o--;r.push(0));r.reverse()}for(o=f.length,n=l.length,0>o-n&&(r=l,l=f,f=r,n=o),o=0;n;)o=(f[--n]=f[n]+l[n]+o)/b|0,f[n]%=b;return o&&(f.unshift(o),++s),I(e,f,s)},T.precision=T.sd=function(e){var n,t,r=this,i=r.c;if(null!=e&&e!==!!e&&1!==e&&0!==e&&(j&&L(13,"argument"+m,e),e!=!!e&&(e=null)),!i)return null;if(t=i.length-1,n=t*O+1,t=i[t]){for(;t%10==0;t/=10,n--);for(t=i[0];t>=10;t/=10,n++);}return e&&r.e+1>n&&(n=r.e+1),n},T.round=function(e,n){var t=new E(this);return(null==e||H(e,0,A,15))&&U(t,~~e+this.e+1,null!=n&&H(n,0,8,15,w)?0|n:k),t},T.shift=function(e){var n=this;return H(e,-y,y,16,"argument")?n.times("1e"+c(e)):new E(n.c&&n.c[0]&&(-y>e||e>y)?n.s*(0>e?0:1/0):n)},T.squareRoot=T.sqrt=function(){var e,n,i,o,u,s=this,f=s.c,l=s.s,c=s.e,a=P+4,h=new E("0.5");if(1!==l||!f||!f[0])return new E(!l||0>l&&(!f||f[0])?NaN:f?s:1/0);if(l=Math.sqrt(+s),0==l||l==1/0?(n=r(f),(n.length+c)%2==0&&(n+="0"),l=Math.sqrt(n),c=t((c+1)/2)-(0>c||c%2),l==1/0?n="1e"+c:(n=l.toExponential(),n=n.slice(0,n.indexOf("e")+1)+c),i=new E(n)):i=new E(l+""),i.c[0])for(c=i.e,l=c+a,3>l&&(l=0);;)if(u=i,i=h.times(u.plus(C(s,u,a,1))),r(u.c).slice(0,l)===(n=r(i.c)).slice(0,l)){if(i.el&&(d=N,N=y,y=d,o=l,l=h,h=o),o=l+h,d=[];o--;d.push(0));for(m=b,w=R,o=h;--o>=0;){for(r=0,g=y[o]%w,p=y[o]/w|0,s=l,u=o+s;u>o;)c=N[--s]%w,a=N[s]/w|0,f=p*c+a*g,c=g*c+f%w*w+d[u]+r,r=(c/m|0)+(f/w|0)+p*a,d[u--]=c%m;d[u]=r}return r?++i:d.shift(),I(e,d,i)},T.toDigits=function(e,n){var t=new E(this);return e=null!=e&&H(e,1,A,18,"precision")?0|e:null,n=null!=n&&H(n,0,8,18,w)?0|n:k,e?U(t,e,n):t},T.toExponential=function(e,n){return F(this,null!=e&&H(e,0,A,19)?~~e+1:null,n,19)},T.toFixed=function(e,n){return F(this,null!=e&&H(e,0,A,20)?~~e+this.e+1:null,n,20)},T.toFormat=function(e,n){var t=F(this,null!=e&&H(e,0,A,21)?~~e+this.e+1:null,n,21);if(this.c){var r,i=t.split("."),o=+X.groupSize,u=+X.secondaryGroupSize,s=X.groupSeparator,f=i[0],l=i[1],c=this.s<0,a=c?f.slice(1):f,h=a.length;if(u&&(r=o,o=u,u=r,h-=r),o>0&&h>0){for(r=h%o||o,f=a.substr(0,r);h>r;r+=o)f+=s+a.substr(r,o);u>0&&(f+=s+a.slice(r)),c&&(f="-"+f)}t=l?f+X.decimalSeparator+((u=+X.fractionGroupSize)?l.replace(new RegExp("\\d{"+u+"}\\B","g"),"$&"+X.fractionGroupSeparator):l):f}return t},T.toFraction=function(e){var n,t,i,o,u,s,f,l,c,a=j,h=this,g=h.c,p=new E(q),d=t=new E(q),m=f=new E(q);if(null!=e&&(j=!1,s=new E(e),j=a,(!(a=s.isInt())||s.lt(q))&&(j&&L(22,"max denominator "+(a?"out of range":"not an integer"),e),e=!a&&s.c&&U(s,s.e+1,1).gte(q)?s:null)),!g)return h.toString();for(c=r(g),o=p.e=c.length-h.e-1,p.c[0]=S[(u=o%O)<0?O+u:u],e=!e||s.cmp(p)>0?o>0?p:d:s,u=z,z=1/0,s=new E(c),f.c[0]=0;l=C(s,p,0,1),i=t.plus(l.times(m)),1!=i.cmp(e);)t=m,m=i,d=f.plus(l.times(i=d)),f=i,p=s.minus(l.times(i=p)),s=i;return i=C(e.minus(t),m,0,1),f=f.plus(i.times(d)),t=t.plus(i.times(m)),f.s=d.s=h.s,o*=2,n=C(d,m,o,k).minus(h).abs().cmp(C(f,t,o,k).minus(h).abs())<1?[d.toString(),m.toString()]:[f.toString(),t.toString()],z=u,n},T.toNumber=function(){return+this},T.toPower=T.pow=function(e){var n,t,r=d(0>e?-e:+e),i=this;if(!H(e,-y,y,23,"exponent")&&(!isFinite(e)||r>y&&(e/=0)||parseFloat(e)!=e&&!(e=NaN)))return new E(Math.pow(+i,e));for(n=J?p(J/O+2):0,t=new E(q);;){if(r%2){if(t=t.times(i),!t.c)break;n&&t.c.length>n&&(t.c.length=n)}if(r=d(r/2),!r)break;i=i.times(i),n&&i.c&&i.c.length>n&&(i.c.length=n)}return 0>e&&(t=q.div(t)),n?U(t,J,k):t},T.toPrecision=function(e,n){return F(this,null!=e&&H(e,1,A,24,"precision")?0|e:null,n,24)},T.toString=function(e){var n,t=this,i=t.s,o=t.e;return null===o?i?(n="Infinity",0>i&&(n="-"+n)):n="NaN":(n=r(t.c),n=null!=e&&H(e,2,64,25,"base")?D(l(n,o),0|e,10,i):B>=o||o>=$?f(n,o):l(n,o),0>i&&t.c[0]&&(n="-"+n)),n},T.truncated=T.trunc=function(){return U(new E(this),this.e+1,1)},T.valueOf=T.toJSON=function(){var e,n=this,t=n.e;return null===t?n.toString():(e=r(n.c),e=B>=t||t>=$?f(e,t):l(e,t),n.s<0?"-"+e:e)},null!=e&&E.config(e),E}function t(e){var n=0|e;return e>0||e===n?n:n-1}function r(e){for(var n,t,r=1,i=e.length,o=e[0]+"";i>r;){for(n=e[r++]+"",t=O-n.length;t--;n="0"+n);o+=n}for(i=o.length;48===o.charCodeAt(--i););return o.slice(0,i+1||1)}function i(e,n){var t,r,i=e.c,o=n.c,u=e.s,s=n.s,f=e.e,l=n.e;if(!u||!s)return null;if(t=i&&!i[0],r=o&&!o[0],t||r)return t?r?0:-s:u;if(u!=s)return u;if(t=0>u,r=f==l,!i||!o)return r?0:!i^t?1:-1;if(!r)return f>l^t?1:-1;for(s=(f=i.length)<(l=o.length)?f:l,u=0;s>u;u++)if(i[u]!=o[u])return i[u]>o[u]^t?1:-1;return f==l?0:f>l^t?1:-1}function o(e,n,t){return(e=c(e))>=n&&t>=e}function u(e){return"[object Array]"==Object.prototype.toString.call(e)}function s(e,n,t){for(var r,i,o=[0],u=0,s=e.length;s>u;){for(i=o.length;i--;o[i]*=n);for(o[r=0]+=N.indexOf(e.charAt(u++));rt-1&&(null==o[r+1]&&(o[r+1]=0),o[r+1]+=o[r]/t|0,o[r]%=t)}return o.reverse()}function f(e,n){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(0>n?"e":"e+")+n}function l(e,n){var t,r;if(0>n){for(r="0.";++n;r+="0");e=r+e}else if(t=e.length,++n>t){for(r="0",n-=t;--n;r+="0");e+=r}else t>n&&(e=e.slice(0,n)+"."+e.slice(n));return e}function c(e){return e=parseFloat(e),0>e?p(e):d(e)}var a,h,g=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,p=Math.ceil,d=Math.floor,m=" not a boolean or binary digit",w="rounding mode",v="number type has more than 15 significant digits",N="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",b=1e14,O=14,y=9007199254740991,S=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],R=1e7,A=1e9;if("undefined"!=typeof crypto&&(a=crypto),"function"==typeof define&&define.amd)define(function(){return n()});else if("undefined"!=typeof module&&module.exports){if(module.exports=n(),!a)try{a=require("crypto")}catch(E){}}else e||(e="undefined"!=typeof self?self:Function("return this")()),e.BigNumber=n()}(this); - /* jshint ignore:end */ + /* eslint-enable */ + - })($nesting[0], null, $nesting) + })($nesting[0], $$($nesting, 'Numeric'), $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["bigdecimal"] = function(Opal) { +Opal.modules["bigdecimal"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } @@ -24668,26 +27605,62 @@ Opal.modules["bigdecimal"] = function(Opal) { function $rb_divide(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var $new$2, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $module = Opal.module, $hash2 = Opal.hash2, $send = Opal.send, $hash = Opal.hash, $truthy = Opal.truthy, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$===', '$attr_reader', '$new', '$class', '$bignumber', '$nan?', '$==', '$raise', '$<', '$coerce', '$>', '$mode', '$>=', '$/', '$zero?', '$infinite?', '$finite?']); + Opal.add_stubs(['$require', '$allocate', '$initialize', '$warn', '$BigDecimal', '$===', '$attr_reader', '$new', '$class', '$bignumber', '$nan?', '$nil?', '$raise', '$<', '$coerce', '$>', '$mode', '$>=', '$==', '$/', '$zero?', '$infinite?', '$finite?']); (function($base, $super, $parent_nesting) { - function $BigDecimal(){}; - var self = $BigDecimal = $klass($base, $super, 'BigDecimal', $BigDecimal); + var self = $klass($base, $super, 'BigDecimal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Numeric'), $nesting); + })($nesting[0], $$($nesting, 'Numeric'), $nesting); self.$require("js"); - self.$require("bigdecimal/kernel"); - self.$require("bigdecimal/bignumber.js"); + self.$require("bigdecimal/bignumber"); + (function($base, $parent_nesting) { + var self = $module($base, 'Kernel'); + + var $nesting = [self].concat($parent_nesting), $Kernel_BigDecimal$1; + + return (Opal.def(self, '$BigDecimal', $Kernel_BigDecimal$1 = function $$BigDecimal(initial, digits) { + var self = this, bigdecimal = nil; + + + + if (digits == null) { + digits = 0; + }; + bigdecimal = $$($nesting, 'BigDecimal').$allocate(); + bigdecimal.$initialize(initial, digits); + return bigdecimal; + }, $Kernel_BigDecimal$1.$$arity = -2), nil) && 'BigDecimal' + })($nesting[0], $nesting); + Opal.defs($$($nesting, 'BigDecimal'), '$new', $new$2 = function($a, $b) { + var $post_args, $kwargs, args, kwargs, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + args = $post_args;; + + kwargs = Opal.kwrestargs($kwargs, {});; + self.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.", $hash2(["uplevel"], {"uplevel": 1})); + return $send(self, 'BigDecimal', Opal.to_a(args).concat([Opal.to_hash(kwargs)])); + }, $new$2.$$arity = -1); return (function($base, $super, $parent_nesting) { - function $BigDecimal(){}; - var self = $BigDecimal = $klass($base, $super, 'BigDecimal', $BigDecimal); + var self = $klass($base, $super, 'BigDecimal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BigDecimal_limit_1, TMP_BigDecimal_mode_2, TMP_BigDecimal_initialize_3, TMP_BigDecimal_$eq$eq_4, TMP_BigDecimal_$lt$eq$gt_5, TMP_BigDecimal_$lt_6, TMP_BigDecimal_$lt$eq_7, TMP_BigDecimal_$gt_8, TMP_BigDecimal_$gt$eq_9, TMP_BigDecimal_abs_10, TMP_BigDecimal_add_11, TMP_BigDecimal_ceil_12, TMP_BigDecimal_coerce_13, TMP_BigDecimal_div_14, TMP_BigDecimal_finite$q_15, TMP_BigDecimal_infinite$q_16, TMP_BigDecimal_minus_17, TMP_BigDecimal_mult_18, TMP_BigDecimal_nan$q_19, TMP_BigDecimal_quo_20, TMP_BigDecimal_sign_21, TMP_BigDecimal_sub_22, TMP_BigDecimal_to_f_23, TMP_BigDecimal_to_s_24, TMP_BigDecimal_zero$q_25; + var $nesting = [self].concat($parent_nesting), $BigDecimal_limit$3, $BigDecimal_mode$4, $BigDecimal_initialize$5, $BigDecimal_$eq_eq$6, $BigDecimal_$lt_eq_gt$7, $BigDecimal_$lt$8, $BigDecimal_$lt_eq$9, $BigDecimal_$gt$10, $BigDecimal_$gt_eq$11, $BigDecimal_abs$12, $BigDecimal_add$13, $BigDecimal_ceil$14, $BigDecimal_coerce$15, $BigDecimal_div$16, $BigDecimal_finite$ques$17, $BigDecimal_infinite$ques$18, $BigDecimal_minus$19, $BigDecimal_mult$20, $BigDecimal_nan$ques$21, $BigDecimal_quo$22, $BigDecimal_sign$23, $BigDecimal_sub$24, $BigDecimal_to_f$25, $BigDecimal_to_s$26, $BigDecimal_zero$ques$27; Opal.const_set($nesting[0], 'ROUND_MODE', 256); @@ -24705,390 +27678,428 @@ Opal.modules["bigdecimal"] = function(Opal) { Opal.const_set($nesting[0], 'SIGN_NEGATIVE_FINITE', -2); Opal.const_set($nesting[0], 'SIGN_POSITIVE_INFINITE', 3); Opal.const_set($nesting[0], 'SIGN_NEGATIVE_INFINITE', -3); - Opal.defs(self, '$limit', TMP_BigDecimal_limit_1 = function $$limit(digits) { + Opal.defs(self, '$limit', $BigDecimal_limit$3 = function $$limit(digits) { var self = this; if (self.digits == null) self.digits = nil; + + if (digits == null) { digits = nil; - } - + }; if ($truthy(digits)) { self.digits = digits}; return self.digits; - }, TMP_BigDecimal_limit_1.$$arity = -1); - Opal.defs(self, '$mode', TMP_BigDecimal_mode_2 = function $$mode(mode, value) { - var $a, self = this, $case = nil; + }, $BigDecimal_limit$3.$$arity = -1); + Opal.defs(self, '$mode', $BigDecimal_mode$4 = function $$mode(mode, value) { + var self = this, $case = nil, $ret_or_1 = nil; if (self.round_mode == null) self.round_mode = nil; + + if (value == null) { value = nil; - } + }; return (function() {$case = mode; - if (Opal.const_get_relative($nesting, 'ROUND_MODE')['$===']($case)) { + if ($$($nesting, 'ROUND_MODE')['$===']($case)) { if ($truthy(value)) { self.round_mode = value}; - return ($truthy($a = self.round_mode) ? $a : Opal.const_get_relative($nesting, 'ROUND_HALF_UP'));} - else { return nil }})() - }, TMP_BigDecimal_mode_2.$$arity = -2); + if ($truthy(($ret_or_1 = self.round_mode))) { + return $ret_or_1 + } else { + return $$($nesting, 'ROUND_HALF_UP') + };} + else { return nil }})(); + }, $BigDecimal_mode$4.$$arity = -2); self.$attr_reader("bignumber"); - Opal.defn(self, '$initialize', TMP_BigDecimal_initialize_3 = function $$initialize(initial, digits) { + Opal.def(self, '$initialize', $BigDecimal_initialize$5 = function $$initialize(initial, digits) { var self = this; + + if (digits == null) { digits = 0; - } - return (self.bignumber = Opal.const_get_relative($nesting, 'JS').$new(Opal.const_get_relative($nesting, 'BigNumber'), initial)) - }, TMP_BigDecimal_initialize_3.$$arity = -2); + }; + return (self.bignumber = $$($nesting, 'JS').$new($$($nesting, 'BigNumber'), initial)); + }, $BigDecimal_initialize$5.$$arity = -2); - Opal.defn(self, '$==', TMP_BigDecimal_$eq$eq_4 = function(other) { + Opal.def(self, '$==', $BigDecimal_$eq_eq$6 = function(other) { var self = this, $case = nil; return (function() {$case = other; if (self.$class()['$===']($case)) {return self.$bignumber().equals(other.$bignumber())} - else if (Opal.const_get_relative($nesting, 'Number')['$===']($case)) {return self.$bignumber().equals(other)} + else if ($$($nesting, 'Number')['$===']($case)) {return self.$bignumber().equals(other)} else {return false}})() - }, TMP_BigDecimal_$eq$eq_4.$$arity = 1); - Opal.alias(self, "===", "=="); + }, $BigDecimal_$eq_eq$6.$$arity = 1); + $alias(self, "===", "=="); - Opal.defn(self, '$<=>', TMP_BigDecimal_$lt$eq$gt_5 = function(other) { - var self = this, $case = nil, result = nil; + Opal.def(self, '$<=>', $BigDecimal_$lt_eq_gt$7 = function(other) { + var self = this, result = nil, $case = nil; - $case = other; - if (self.$class()['$===']($case)) {result = self.$bignumber().comparedTo(other.$bignumber())} - else if (Opal.const_get_relative($nesting, 'Number')['$===']($case)) {result = self.$bignumber().comparedTo(other)} - else {result = nil}; + result = (function() {$case = other; + if (self.$class()['$===']($case)) {return self.$bignumber().comparedTo(other.$bignumber())} + else if ($$($nesting, 'Number')['$===']($case)) {return self.$bignumber().comparedTo(other)} + else { return nil }})(); return result === null ? nil : result; - }, TMP_BigDecimal_$lt$eq$gt_5.$$arity = 1); + }, $BigDecimal_$lt_eq_gt$7.$$arity = 1); - Opal.defn(self, '$<', TMP_BigDecimal_$lt_6 = function(other) { - var $a, $b, self = this, $iter = TMP_BigDecimal_$lt_6.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$<', $BigDecimal_$lt$8 = function(other) { + var $iter = $BigDecimal_$lt$8.$$p, $yield = $iter || nil, self = this, $ret_or_2 = nil, $ret_or_3 = nil; - if ($iter) TMP_BigDecimal_$lt_6.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $BigDecimal_$lt$8.$$p = null; - if ($truthy(($truthy($a = self['$nan?']()) ? $a : ($truthy($b = other) ? other['$nan?']() : $b)))) { + if ($truthy((function() {if ($truthy(($ret_or_2 = self['$nan?']()))) { + return $ret_or_2 + } else if ($truthy(($ret_or_3 = other))) { + return other['$nan?']() + } else { + return $ret_or_3 + }; return nil; })())) { return false}; - return $send(self, Opal.find_super_dispatcher(self, '<', TMP_BigDecimal_$lt_6, false), $zuper, $iter); - }, TMP_BigDecimal_$lt_6.$$arity = 1); + return $send2(self, $find_super(self, '<', $BigDecimal_$lt$8, false, true), '<', [other], $iter); + }, $BigDecimal_$lt$8.$$arity = 1); - Opal.defn(self, '$<=', TMP_BigDecimal_$lt$eq_7 = function(other) { - var $a, $b, self = this, $iter = TMP_BigDecimal_$lt$eq_7.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$<=', $BigDecimal_$lt_eq$9 = function(other) { + var $iter = $BigDecimal_$lt_eq$9.$$p, $yield = $iter || nil, self = this, $ret_or_4 = nil, $ret_or_5 = nil; - if ($iter) TMP_BigDecimal_$lt$eq_7.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $BigDecimal_$lt_eq$9.$$p = null; - if ($truthy(($truthy($a = self['$nan?']()) ? $a : ($truthy($b = other) ? other['$nan?']() : $b)))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = self['$nan?']()))) { + return $ret_or_4 + } else if ($truthy(($ret_or_5 = other))) { + return other['$nan?']() + } else { + return $ret_or_5 + }; return nil; })())) { return false}; - return $send(self, Opal.find_super_dispatcher(self, '<=', TMP_BigDecimal_$lt$eq_7, false), $zuper, $iter); - }, TMP_BigDecimal_$lt$eq_7.$$arity = 1); + return $send2(self, $find_super(self, '<=', $BigDecimal_$lt_eq$9, false, true), '<=', [other], $iter); + }, $BigDecimal_$lt_eq$9.$$arity = 1); - Opal.defn(self, '$>', TMP_BigDecimal_$gt_8 = function(other) { - var $a, $b, self = this, $iter = TMP_BigDecimal_$gt_8.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$>', $BigDecimal_$gt$10 = function(other) { + var $iter = $BigDecimal_$gt$10.$$p, $yield = $iter || nil, self = this, $ret_or_6 = nil, $ret_or_7 = nil; - if ($iter) TMP_BigDecimal_$gt_8.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $BigDecimal_$gt$10.$$p = null; - if ($truthy(($truthy($a = self['$nan?']()) ? $a : ($truthy($b = other) ? other['$nan?']() : $b)))) { + if ($truthy((function() {if ($truthy(($ret_or_6 = self['$nan?']()))) { + return $ret_or_6 + } else if ($truthy(($ret_or_7 = other))) { + return other['$nan?']() + } else { + return $ret_or_7 + }; return nil; })())) { return false}; - return $send(self, Opal.find_super_dispatcher(self, '>', TMP_BigDecimal_$gt_8, false), $zuper, $iter); - }, TMP_BigDecimal_$gt_8.$$arity = 1); + return $send2(self, $find_super(self, '>', $BigDecimal_$gt$10, false, true), '>', [other], $iter); + }, $BigDecimal_$gt$10.$$arity = 1); - Opal.defn(self, '$>=', TMP_BigDecimal_$gt$eq_9 = function(other) { - var $a, $b, self = this, $iter = TMP_BigDecimal_$gt$eq_9.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$>=', $BigDecimal_$gt_eq$11 = function(other) { + var $iter = $BigDecimal_$gt_eq$11.$$p, $yield = $iter || nil, self = this, $ret_or_8 = nil, $ret_or_9 = nil; - if ($iter) TMP_BigDecimal_$gt$eq_9.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $BigDecimal_$gt_eq$11.$$p = null; - if ($truthy(($truthy($a = self['$nan?']()) ? $a : ($truthy($b = other) ? other['$nan?']() : $b)))) { + if ($truthy((function() {if ($truthy(($ret_or_8 = self['$nan?']()))) { + return $ret_or_8 + } else if ($truthy(($ret_or_9 = other))) { + return other['$nan?']() + } else { + return $ret_or_9 + }; return nil; })())) { return false}; - return $send(self, Opal.find_super_dispatcher(self, '>=', TMP_BigDecimal_$gt$eq_9, false), $zuper, $iter); - }, TMP_BigDecimal_$gt$eq_9.$$arity = 1); + return $send2(self, $find_super(self, '>=', $BigDecimal_$gt_eq$11, false, true), '>=', [other], $iter); + }, $BigDecimal_$gt_eq$11.$$arity = 1); - Opal.defn(self, '$abs', TMP_BigDecimal_abs_10 = function $$abs() { + Opal.def(self, '$abs', $BigDecimal_abs$12 = function $$abs() { var self = this; return self.$class().$new(self.$bignumber().abs()) - }, TMP_BigDecimal_abs_10.$$arity = 0); + }, $BigDecimal_abs$12.$$arity = 0); - Opal.defn(self, '$add', TMP_BigDecimal_add_11 = function $$add(other, digits) { + Opal.def(self, '$add', $BigDecimal_add$13 = function $$add(other, digits) { var $a, $b, self = this, _ = nil, result = nil; + + if (digits == null) { digits = 0; - } - - if (digits['$=='](nil)) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "wrong argument type nil (expected Fixnum)")}; + }; + if ($truthy(digits['$nil?']())) { + self.$raise($$($nesting, 'TypeError'), "wrong argument type nil (expected Fixnum)")}; if ($truthy($rb_lt(digits, 0))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "argument must be positive")}; + self.$raise($$($nesting, 'ArgumentError'), "argument must be positive")}; $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; result = self.$bignumber().plus(other.$bignumber()); if ($truthy($rb_gt(digits, 0))) { - result = result.toDigits(digits, self.$class().$mode(Opal.const_get_relative($nesting, 'ROUND_MODE')))}; + result = result.toDigits(digits, self.$class().$mode($$($nesting, 'ROUND_MODE')))}; return self.$class().$new(result); - }, TMP_BigDecimal_add_11.$$arity = -2); - Opal.alias(self, "+", "add"); + }, $BigDecimal_add$13.$$arity = -2); + $alias(self, "+", "add"); - Opal.defn(self, '$ceil', TMP_BigDecimal_ceil_12 = function $$ceil(n) { + Opal.def(self, '$ceil', $BigDecimal_ceil$14 = function $$ceil(n) { var self = this; + + if (n == null) { n = nil; - } - + }; if ($truthy(self.$bignumber().isFinite())) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), "Computation results to 'Infinity'") + } else { + self.$raise($$($nesting, 'FloatDomainError'), "Computation results to 'Infinity'") }; - if (n['$=='](nil)) { - return self.$bignumber().round(0, Opal.const_get_relative($nesting, 'ROUND_CEILING')).toNumber() + if ($truthy(n['$nil?']())) { + return self.$bignumber().round(0, $$($nesting, 'ROUND_CEILING')).toNumber() } else if ($truthy($rb_ge(n, 0))) { - return self.$class().$new(self.$bignumber().round(n, Opal.const_get_relative($nesting, 'ROUND_CEILING'))) - } else { - return self.$class().$new(self.$bignumber().round(0, Opal.const_get_relative($nesting, 'ROUND_CEILING'))) + return self.$class().$new(self.$bignumber().round(n, $$($nesting, 'ROUND_CEILING'))) + } else { + return self.$class().$new(self.$bignumber().round(0, $$($nesting, 'ROUND_CEILING'))) }; - }, TMP_BigDecimal_ceil_12.$$arity = -1); + }, $BigDecimal_ceil$14.$$arity = -1); - Opal.defn(self, '$coerce', TMP_BigDecimal_coerce_13 = function $$coerce(other) { + Opal.def(self, '$coerce', $BigDecimal_coerce$15 = function $$coerce(other) { var self = this, $case = nil; return (function() {$case = other; if (self.$class()['$===']($case)) {return [other, self]} - else if (Opal.const_get_relative($nesting, 'Number')['$===']($case)) {return [self.$class().$new(other), self]} - else {return self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into " + (self.$class()))}})() - }, TMP_BigDecimal_coerce_13.$$arity = 1); + else if ($$($nesting, 'Number')['$===']($case)) {return [self.$class().$new(other), self]} + else {return self.$raise($$($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into " + (self.$class()))}})() + }, $BigDecimal_coerce$15.$$arity = 1); - Opal.defn(self, '$div', TMP_BigDecimal_div_14 = function $$div(other, digits) { - var $a, $b, self = this, _ = nil; + Opal.def(self, '$div', $BigDecimal_div$16 = function $$div(other, digits) { + var $a, $b, self = this, _ = nil, $ret_or_10 = nil; + + if (digits == null) { digits = nil; - } - + }; if (digits['$=='](0)) { return $rb_divide(self, other)}; $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy(($truthy($a = self['$nan?']()) ? $a : other['$nan?']()))) { - self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), "Computation results to 'NaN'(Not a Number)")}; - if (digits['$=='](nil)) { + if ($truthy((function() {if ($truthy(($ret_or_10 = self['$nan?']()))) { + return $ret_or_10 + } else { + return other['$nan?']() + }; return nil; })())) { + self.$raise($$($nesting, 'FloatDomainError'), "Computation results to 'NaN'(Not a Number)")}; + if ($truthy(digits['$nil?']())) { if ($truthy(other['$zero?']())) { - self.$raise(Opal.const_get_relative($nesting, 'ZeroDivisionError'), "divided by 0")}; + self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0")}; if ($truthy(self['$infinite?']())) { - self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), "Computation results to 'Infinity'")}; + self.$raise($$($nesting, 'FloatDomainError'), "Computation results to 'Infinity'")}; return self.$class().$new(self.$bignumber().dividedToIntegerBy(other.$bignumber()));}; - return self.$class().$new(self.$bignumber().dividedBy(other.$bignumber()).round(digits, self.$class().$mode(Opal.const_get_relative($nesting, 'ROUND_MODE')))); - }, TMP_BigDecimal_div_14.$$arity = -2); + return self.$class().$new(self.$bignumber().dividedBy(other.$bignumber()).round(digits, self.$class().$mode($$($nesting, 'ROUND_MODE')))); + }, $BigDecimal_div$16.$$arity = -2); - Opal.defn(self, '$finite?', TMP_BigDecimal_finite$q_15 = function() { + Opal.def(self, '$finite?', $BigDecimal_finite$ques$17 = function() { var self = this; return self.$bignumber().isFinite() - }, TMP_BigDecimal_finite$q_15.$$arity = 0); + }, $BigDecimal_finite$ques$17.$$arity = 0); - Opal.defn(self, '$infinite?', TMP_BigDecimal_infinite$q_16 = function() { - var $a, self = this; + Opal.def(self, '$infinite?', $BigDecimal_infinite$ques$18 = function() { + var self = this, $ret_or_11 = nil; - if ($truthy(($truthy($a = self['$finite?']()) ? $a : self['$nan?']()))) { + if ($truthy((function() {if ($truthy(($ret_or_11 = self['$finite?']()))) { + return $ret_or_11 + } else { + return self['$nan?']() + }; return nil; })())) { return nil}; if ($truthy(self.$bignumber().isNegative())) { return -1 - } else { + } else { return 1 }; - }, TMP_BigDecimal_infinite$q_16.$$arity = 0); + }, $BigDecimal_infinite$ques$18.$$arity = 0); - Opal.defn(self, '$minus', TMP_BigDecimal_minus_17 = function $$minus(other) { + Opal.def(self, '$minus', $BigDecimal_minus$19 = function $$minus(other) { var $a, $b, self = this, _ = nil; $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; return self.$class().$new(self.$bignumber().minus(other.$bignumber())); - }, TMP_BigDecimal_minus_17.$$arity = 1); - Opal.alias(self, "-", "minus"); + }, $BigDecimal_minus$19.$$arity = 1); + $alias(self, "-", "minus"); - Opal.defn(self, '$mult', TMP_BigDecimal_mult_18 = function $$mult(other, digits) { + Opal.def(self, '$mult', $BigDecimal_mult$20 = function $$mult(other, digits) { var $a, $b, self = this, _ = nil; + + if (digits == null) { digits = nil; - } - + }; $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; - if (digits['$=='](nil)) { + if ($truthy(digits['$nil?']())) { return self.$class().$new(self.$bignumber().times(other.$bignumber()))}; - return self.$class().$new(self.$bignumber().times(other.$bignumber()).round(digits, self.$class().$mode(Opal.const_get_relative($nesting, 'ROUND_MODE')))); - }, TMP_BigDecimal_mult_18.$$arity = -2); - Opal.alias(self, "*", "mult"); + return self.$class().$new(self.$bignumber().times(other.$bignumber()).round(digits, self.$class().$mode($$($nesting, 'ROUND_MODE')))); + }, $BigDecimal_mult$20.$$arity = -2); + $alias(self, "*", "mult"); - Opal.defn(self, '$nan?', TMP_BigDecimal_nan$q_19 = function() { + Opal.def(self, '$nan?', $BigDecimal_nan$ques$21 = function() { var self = this; return self.$bignumber().isNaN() - }, TMP_BigDecimal_nan$q_19.$$arity = 0); + }, $BigDecimal_nan$ques$21.$$arity = 0); - Opal.defn(self, '$quo', TMP_BigDecimal_quo_20 = function $$quo(other) { + Opal.def(self, '$quo', $BigDecimal_quo$22 = function $$quo(other) { var $a, $b, self = this, _ = nil; $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; return self.$class().$new(self.$bignumber().dividedBy(other.$bignumber())); - }, TMP_BigDecimal_quo_20.$$arity = 1); - Opal.alias(self, "/", "quo"); + }, $BigDecimal_quo$22.$$arity = 1); + $alias(self, "/", "quo"); - Opal.defn(self, '$sign', TMP_BigDecimal_sign_21 = function $$sign() { + Opal.def(self, '$sign', $BigDecimal_sign$23 = function $$sign() { var self = this; if ($truthy(self.$bignumber().isNaN())) { - return Opal.const_get_relative($nesting, 'SIGN_NaN')}; + return $$($nesting, 'SIGN_NaN')}; if ($truthy(self.$bignumber().isZero())) { return (function() {if ($truthy(self.$bignumber().isNegative())) { - return Opal.const_get_relative($nesting, 'SIGN_NEGATIVE_ZERO') - } else { - return Opal.const_get_relative($nesting, 'SIGN_POSITIVE_ZERO') - }; return nil; })() + return $$($nesting, 'SIGN_NEGATIVE_ZERO') } else { + return $$($nesting, 'SIGN_POSITIVE_ZERO') + }; return nil; })() + } else { return nil }; - }, TMP_BigDecimal_sign_21.$$arity = 0); + }, $BigDecimal_sign$23.$$arity = 0); - Opal.defn(self, '$sub', TMP_BigDecimal_sub_22 = function $$sub(other, precision) { + Opal.def(self, '$sub', $BigDecimal_sub$24 = function $$sub(other, precision) { var $a, $b, self = this, _ = nil; $b = self.$coerce(other), $a = Opal.to_ary($b), (other = ($a[0] == null ? nil : $a[0])), (_ = ($a[1] == null ? nil : $a[1])), $b; return self.$class().$new(self.$bignumber().minus(other.$bignumber())); - }, TMP_BigDecimal_sub_22.$$arity = 2); + }, $BigDecimal_sub$24.$$arity = 2); - Opal.defn(self, '$to_f', TMP_BigDecimal_to_f_23 = function $$to_f() { + Opal.def(self, '$to_f', $BigDecimal_to_f$25 = function $$to_f() { var self = this; return self.$bignumber().toNumber() - }, TMP_BigDecimal_to_f_23.$$arity = 0); + }, $BigDecimal_to_f$25.$$arity = 0); - Opal.defn(self, '$to_s', TMP_BigDecimal_to_s_24 = function $$to_s(s) { + Opal.def(self, '$to_s', $BigDecimal_to_s$26 = function $$to_s(s) { var self = this; + + if (s == null) { s = ""; - } - return self.$bignumber().toString() - }, TMP_BigDecimal_to_s_24.$$arity = -1); - return (Opal.defn(self, '$zero?', TMP_BigDecimal_zero$q_25 = function() { + }; + return self.$bignumber().toString(); + }, $BigDecimal_to_s$26.$$arity = -1); + $alias(self, "inspect", "to_s"); + return (Opal.def(self, '$zero?', $BigDecimal_zero$ques$27 = function() { var self = this; return self.$bignumber().isZero() - }, TMP_BigDecimal_zero$q_25.$$arity = 0), nil) && 'zero?'; - })($nesting[0], null, $nesting); + }, $BigDecimal_zero$ques$27.$$arity = 0), nil) && 'zero?'; + })($nesting[0], $$($nesting, 'Numeric'), $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/version"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; +Opal.modules["mutations/version"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - Opal.const_set($nesting[0], 'VERSION', "0.9.0") + return Opal.const_set($nesting[0], 'VERSION', "0.9.1") })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/exception"] = function(Opal) { +Opal.modules["mutations/exception"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send; Opal.add_stubs(['$attr_accessor', '$errors=', '$-', '$join', '$message_list', '$errors']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ValidationException(){}; - var self = $ValidationException = $klass($base, $super, 'ValidationException', $ValidationException); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ValidationException'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ValidationException_initialize_1, TMP_ValidationException_to_s_2; + var $nesting = [self].concat($parent_nesting), $ValidationException_initialize$1, $ValidationException_to_s$2; self.$attr_accessor("errors"); - Opal.defn(self, '$initialize', TMP_ValidationException_initialize_1 = function $$initialize(errors) { + Opal.def(self, '$initialize', $ValidationException_initialize$1 = function $$initialize(errors) { var self = this, $writer = nil; $writer = [errors]; $send(self, 'errors=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_ValidationException_initialize_1.$$arity = 1); - return (Opal.defn(self, '$to_s', TMP_ValidationException_to_s_2 = function $$to_s() { + }, $ValidationException_initialize$1.$$arity = 1); + return (Opal.def(self, '$to_s', $ValidationException_to_s$2 = function $$to_s() { var self = this; return "" + (self.$errors().$message_list().$join("; ")) - }, TMP_ValidationException_to_s_2.$$arity = 0), nil) && 'to_s'; - })($nesting[0], Opal.const_get_qualified('::', 'StandardError'), $nesting) + }, $ValidationException_to_s$2.$$arity = 0), nil) && 'to_s'; + })($nesting[0], $$$('::', 'StandardError'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/errors"] = function(Opal) { +Opal.modules["mutations/errors"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$tap', '$new', '$merge!', '$[]', '$titleize', '$downcase', '$to_s', '$==', '$end_with?', '$message', '$error_message_creator', '$Array', '$each', '$symbolic', '$[]=', '$-', '$concat', '$message_list', '$map', '$flatten', '$compact']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $DefaultErrorMessageCreator(){}; - var self = $DefaultErrorMessageCreator = $klass($base, $super, 'DefaultErrorMessageCreator', $DefaultErrorMessageCreator); + var self = $klass($base, $super, 'DefaultErrorMessageCreator'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DefaultErrorMessageCreator_1, TMP_DefaultErrorMessageCreator_message_2, TMP_DefaultErrorMessageCreator_titleize_3; + var $nesting = [self].concat($parent_nesting), $DefaultErrorMessageCreator$1, $DefaultErrorMessageCreator_message$2, $DefaultErrorMessageCreator_titleize$3; - Opal.const_set($nesting[0], 'MESSAGES', $send(Opal.const_get_relative($nesting, 'Hash').$new("is invalid"), 'tap', [], (TMP_DefaultErrorMessageCreator_1 = function(h){var self = TMP_DefaultErrorMessageCreator_1.$$s || this; -if (h == null) h = nil; - return h['$merge!']($hash2(["nils", "required", "string", "integer", "boolean", "hash", "array", "model", "date", "before", "after", "empty", "max_length", "min_length", "matches", "in", "class", "min", "max", "new_records"], {"nils": "can't be nil", "required": "is required", "string": "isn't a string", "integer": "isn't an integer", "boolean": "isn't a boolean", "hash": "isn't a hash", "array": "isn't an array", "model": "isn't the right class", "date": "date doesn't exist", "before": "isn't before given date", "after": "isn't after given date", "empty": "can't be blank", "max_length": "is too long", "min_length": "is too short", "matches": "isn't in the right format", "in": "isn't an option", "class": "isn't the right class", "min": "is too small", "max": "is too big", "new_records": "isn't a saved model"}))}, TMP_DefaultErrorMessageCreator_1.$$s = self, TMP_DefaultErrorMessageCreator_1.$$arity = 1, TMP_DefaultErrorMessageCreator_1))); + Opal.const_set($nesting[0], 'MESSAGES', $send($$($nesting, 'Hash').$new("is invalid"), 'tap', [], ($DefaultErrorMessageCreator$1 = function(h){var self = $DefaultErrorMessageCreator$1.$$s == null ? this : $DefaultErrorMessageCreator$1.$$s; + + + + if (h == null) { + h = nil; + }; + return h['$merge!']($hash2(["nils", "required", "string", "integer", "boolean", "hash", "array", "model", "date", "before", "after", "empty", "max_length", "min_length", "matches", "in", "class", "min", "max", "new_records"], {"nils": "can't be nil", "required": "is required", "string": "isn't a string", "integer": "isn't an integer", "boolean": "isn't a boolean", "hash": "isn't a hash", "array": "isn't an array", "model": "isn't the right class", "date": "date doesn't exist", "before": "isn't before given date", "after": "isn't after given date", "empty": "can't be blank", "max_length": "is too long", "min_length": "is too short", "matches": "isn't in the right format", "in": "isn't an option", "class": "isn't the right class", "min": "is too small", "max": "is too big", "new_records": "isn't a saved model"}));}, $DefaultErrorMessageCreator$1.$$s = self, $DefaultErrorMessageCreator$1.$$arity = 1, $DefaultErrorMessageCreator$1))); - Opal.defn(self, '$message', TMP_DefaultErrorMessageCreator_message_2 = function $$message(key, error_symbol, options) { - var $a, self = this; + Opal.def(self, '$message', $DefaultErrorMessageCreator_message$2 = function $$message(key, error_symbol, options) { + var self = this, $ret_or_1 = nil; + + if (options == null) { options = $hash2([], {}); - } + }; if ($truthy(options['$[]']("index"))) { - return "" + (self.$titleize(($truthy($a = key) ? $a : "array"))) + "[" + (options['$[]']("index")) + "] " + (Opal.const_get_relative($nesting, 'MESSAGES')['$[]'](error_symbol)) + return "" + (self.$titleize((function() {if ($truthy(($ret_or_1 = key))) { + return $ret_or_1 } else { - return "" + (self.$titleize(key)) + " " + (Opal.const_get_relative($nesting, 'MESSAGES')['$[]'](error_symbol)) - } - }, TMP_DefaultErrorMessageCreator_message_2.$$arity = -3); - return (Opal.defn(self, '$titleize', TMP_DefaultErrorMessageCreator_titleize_3 = function $$titleize(key) { + return "array" + }; return nil; })())) + "[" + (options['$[]']("index")) + "] " + ($$($nesting, 'MESSAGES')['$[]'](error_symbol)) + } else { + return "" + (self.$titleize(key)) + " " + ($$($nesting, 'MESSAGES')['$[]'](error_symbol)) + }; + }, $DefaultErrorMessageCreator_message$2.$$arity = -3); + return (Opal.def(self, '$titleize', $DefaultErrorMessageCreator_titleize$3 = function $$titleize(key) { var self = this; @@ -25097,363 +28108,458 @@ if (h == null) h = nil; return "ID" } else if ($truthy(key['$end_with?']("_id"))) { return "" + (key.$titleize()) + " ID" - } else { + } else { return key.$titleize() }; - }, TMP_DefaultErrorMessageCreator_titleize_3.$$arity = 1), nil) && 'titleize'; + }, $DefaultErrorMessageCreator_titleize$3.$$arity = 1), nil) && 'titleize'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $ErrorAtom(){}; - var self = $ErrorAtom = $klass($base, $super, 'ErrorAtom', $ErrorAtom); + var self = $klass($base, $super, 'ErrorAtom'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ErrorAtom_initialize_4, TMP_ErrorAtom_symbolic_5, TMP_ErrorAtom_message_6, TMP_ErrorAtom_message_list_7; + var $nesting = [self].concat($parent_nesting), $ErrorAtom_initialize$4, $ErrorAtom_symbolic$5, $ErrorAtom_message$6, $ErrorAtom_message_list$7; - def.symbol = def.message = def.key = def.index = nil; + self.$$prototype.symbol = self.$$prototype.message = self.$$prototype.key = self.$$prototype.index = nil; - Opal.defn(self, '$initialize', TMP_ErrorAtom_initialize_4 = function $$initialize(key, error_symbol, options) { + Opal.def(self, '$initialize', $ErrorAtom_initialize$4 = function $$initialize(key, error_symbol, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - + }; self.key = key; self.symbol = error_symbol; self.message = options['$[]']("message"); return (self.index = options['$[]']("index")); - }, TMP_ErrorAtom_initialize_4.$$arity = -3); + }, $ErrorAtom_initialize$4.$$arity = -3); - Opal.defn(self, '$symbolic', TMP_ErrorAtom_symbolic_5 = function $$symbolic() { + Opal.def(self, '$symbolic', $ErrorAtom_symbolic$5 = function $$symbolic() { var self = this; return self.symbol - }, TMP_ErrorAtom_symbolic_5.$$arity = 0); + }, $ErrorAtom_symbolic$5.$$arity = 0); - Opal.defn(self, '$message', TMP_ErrorAtom_message_6 = function $$message() { - var $a, self = this; + Opal.def(self, '$message', $ErrorAtom_message$6 = function $$message() { + var self = this, $ret_or_2 = nil; - return (self.message = ($truthy($a = self.message) ? $a : Opal.const_get_relative($nesting, 'Mutations').$error_message_creator().$message(self.key, self.symbol, $hash2(["index"], {"index": self.index})))) - }, TMP_ErrorAtom_message_6.$$arity = 0); - return (Opal.defn(self, '$message_list', TMP_ErrorAtom_message_list_7 = function $$message_list() { + return (self.message = (function() {if ($truthy(($ret_or_2 = self.message))) { + return $ret_or_2 + } else { + return $$($nesting, 'Mutations').$error_message_creator().$message(self.key, self.symbol, $hash2(["index"], {"index": self.index})) + }; return nil; })()) + }, $ErrorAtom_message$6.$$arity = 0); + return (Opal.def(self, '$message_list', $ErrorAtom_message_list$7 = function $$message_list() { var self = this; return self.$Array(self.$message()) - }, TMP_ErrorAtom_message_list_7.$$arity = 0), nil) && 'message_list'; + }, $ErrorAtom_message_list$7.$$arity = 0), nil) && 'message_list'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $ErrorHash(){}; - var self = $ErrorHash = $klass($base, $super, 'ErrorHash', $ErrorHash); + var self = $klass($base, $super, 'ErrorHash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ErrorHash_symbolic_10, TMP_ErrorHash_message_13, TMP_ErrorHash_message_list_15; + var $nesting = [self].concat($parent_nesting), $ErrorHash_symbolic$8, $ErrorHash_message$11, $ErrorHash_message_list$14; - Opal.defn(self, '$symbolic', TMP_ErrorHash_symbolic_10 = function $$symbolic() { - var TMP_8, self = this; + Opal.def(self, '$symbolic', $ErrorHash_symbolic$8 = function $$symbolic() { + var $$9, self = this; - return $send(Opal.const_get_relative($nesting, 'HashWithIndifferentAccess').$new(), 'tap', [], (TMP_8 = function(hash){var self = TMP_8.$$s || this, TMP_9; -if (hash == null) hash = nil; - return $send(self, 'each', [], (TMP_9 = function(k, v){var self = TMP_9.$$s || this, $writer = nil; -if (k == null) k = nil;if (v == null) v = nil; + return $send($$($nesting, 'HashWithIndifferentAccess').$new(), 'tap', [], ($$9 = function(hash){var self = $$9.$$s == null ? this : $$9.$$s, $$10; + + + if (hash == null) { + hash = nil; + }; + return $send(self, 'each', [], ($$10 = function(k, v){var self = $$10.$$s == null ? this : $$10.$$s, $writer = nil; + + + + if (k == null) { + k = nil; + }; + + if (v == null) { + v = nil; + }; $writer = [k, v.$symbolic()]; $send(hash, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_9.$$s = self, TMP_9.$$arity = 2, TMP_9))}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)) - }, TMP_ErrorHash_symbolic_10.$$arity = 0); + return $writer[$rb_minus($writer["length"], 1)];}, $$10.$$s = self, $$10.$$arity = 2, $$10));}, $$9.$$s = self, $$9.$$arity = 1, $$9)) + }, $ErrorHash_symbolic$8.$$arity = 0); - Opal.defn(self, '$message', TMP_ErrorHash_message_13 = function $$message() { - var TMP_11, self = this; + Opal.def(self, '$message', $ErrorHash_message$11 = function $$message() { + var $$12, self = this; + + return $send($$($nesting, 'HashWithIndifferentAccess').$new(), 'tap', [], ($$12 = function(hash){var self = $$12.$$s == null ? this : $$12.$$s, $$13; - return $send(Opal.const_get_relative($nesting, 'HashWithIndifferentAccess').$new(), 'tap', [], (TMP_11 = function(hash){var self = TMP_11.$$s || this, TMP_12; -if (hash == null) hash = nil; - return $send(self, 'each', [], (TMP_12 = function(k, v){var self = TMP_12.$$s || this, $writer = nil; -if (k == null) k = nil;if (v == null) v = nil; + + if (hash == null) { + hash = nil; + }; + return $send(self, 'each', [], ($$13 = function(k, v){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + + + + if (k == null) { + k = nil; + }; + + if (v == null) { + v = nil; + }; $writer = [k, v.$message()]; $send(hash, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12))}, TMP_11.$$s = self, TMP_11.$$arity = 1, TMP_11)) - }, TMP_ErrorHash_message_13.$$arity = 0); - return (Opal.defn(self, '$message_list', TMP_ErrorHash_message_list_15 = function $$message_list() { - var TMP_14, self = this, list = nil; + return $writer[$rb_minus($writer["length"], 1)];}, $$13.$$s = self, $$13.$$arity = 2, $$13));}, $$12.$$s = self, $$12.$$arity = 1, $$12)) + }, $ErrorHash_message$11.$$arity = 0); + return (Opal.def(self, '$message_list', $ErrorHash_message_list$14 = function $$message_list() { + var $$15, self = this, list = nil; list = []; - $send(self, 'each', [], (TMP_14 = function(k, v){var self = TMP_14.$$s || this; -if (k == null) k = nil;if (v == null) v = nil; - return list.$concat(v.$message_list())}, TMP_14.$$s = self, TMP_14.$$arity = 2, TMP_14)); + $send(self, 'each', [], ($$15 = function(k, v){var self = $$15.$$s == null ? this : $$15.$$s; + + + + if (k == null) { + k = nil; + }; + + if (v == null) { + v = nil; + }; + return list.$concat(v.$message_list());}, $$15.$$s = self, $$15.$$arity = 2, $$15)); return list; - }, TMP_ErrorHash_message_list_15.$$arity = 0), nil) && 'message_list'; - })($nesting[0], Opal.const_get_relative($nesting, 'Hash'), $nesting); - (function($base, $super, $parent_nesting) { - function $ErrorArray(){}; - var self = $ErrorArray = $klass($base, $super, 'ErrorArray', $ErrorArray); + }, $ErrorHash_message_list$14.$$arity = 0), nil) && 'message_list'; + })($nesting[0], $$($nesting, 'Hash'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ErrorArray'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ErrorArray_symbolic_17, TMP_ErrorArray_message_19, TMP_ErrorArray_message_list_21; + var $nesting = [self].concat($parent_nesting), $ErrorArray_symbolic$16, $ErrorArray_message$18, $ErrorArray_message_list$20; - Opal.defn(self, '$symbolic', TMP_ErrorArray_symbolic_17 = function $$symbolic() { - var TMP_16, self = this; + Opal.def(self, '$symbolic', $ErrorArray_symbolic$16 = function $$symbolic() { + var $$17, self = this; - return $send(self, 'map', [], (TMP_16 = function(e){var self = TMP_16.$$s || this, $a; -if (e == null) e = nil; - return ($truthy($a = e) ? e.$symbolic() : $a)}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)) - }, TMP_ErrorArray_symbolic_17.$$arity = 0); + return $send(self, 'map', [], ($$17 = function(e){var self = $$17.$$s == null ? this : $$17.$$s, $ret_or_3 = nil; + + + + if (e == null) { + e = nil; + }; + if ($truthy(($ret_or_3 = e))) { + return e.$symbolic() + } else { + return $ret_or_3 + };}, $$17.$$s = self, $$17.$$arity = 1, $$17)) + }, $ErrorArray_symbolic$16.$$arity = 0); - Opal.defn(self, '$message', TMP_ErrorArray_message_19 = function $$message() { - var TMP_18, self = this; + Opal.def(self, '$message', $ErrorArray_message$18 = function $$message() { + var $$19, self = this; + + return $send(self, 'map', [], ($$19 = function(e){var self = $$19.$$s == null ? this : $$19.$$s, $ret_or_4 = nil; + + + + if (e == null) { + e = nil; + }; + if ($truthy(($ret_or_4 = e))) { + return e.$message() + } else { + return $ret_or_4 + };}, $$19.$$s = self, $$19.$$arity = 1, $$19)) + }, $ErrorArray_message$18.$$arity = 0); + return (Opal.def(self, '$message_list', $ErrorArray_message_list$20 = function $$message_list() { + var $$21, self = this; - return $send(self, 'map', [], (TMP_18 = function(e){var self = TMP_18.$$s || this, $a; -if (e == null) e = nil; - return ($truthy($a = e) ? e.$message() : $a)}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)) - }, TMP_ErrorArray_message_19.$$arity = 0); - return (Opal.defn(self, '$message_list', TMP_ErrorArray_message_list_21 = function $$message_list() { - var TMP_20, self = this; + return $send(self.$compact(), 'map', [], ($$21 = function(e){var self = $$21.$$s == null ? this : $$21.$$s; - return $send(self.$compact(), 'map', [], (TMP_20 = function(e){var self = TMP_20.$$s || this; -if (e == null) e = nil; - return e.$message_list()}, TMP_20.$$s = self, TMP_20.$$arity = 1, TMP_20)).$flatten() - }, TMP_ErrorArray_message_list_21.$$arity = 0), nil) && 'message_list'; - })($nesting[0], Opal.const_get_relative($nesting, 'Array'), $nesting); + + + if (e == null) { + e = nil; + }; + return e.$message_list();}, $$21.$$s = self, $$21.$$arity = 1, $$21)).$flatten() + }, $ErrorArray_message_list$20.$$arity = 0), nil) && 'message_list'; + })($nesting[0], $$($nesting, 'Array'), $nesting); })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/input_filter"] = function(Opal) { +Opal.modules["mutations/input_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; Opal.add_stubs(['$attr_accessor', '$merge', '$default_options', '$class', '$options=', '$-', '$has_key?', '$options', '$[]', '$!']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $InputFilter(){}; - var self = $InputFilter = $klass($base, $super, 'InputFilter', $InputFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'InputFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_InputFilter_default_options_1, TMP_InputFilter_initialize_2, TMP_InputFilter_filter_3, TMP_InputFilter_has_default$q_4, TMP_InputFilter_default_5, TMP_InputFilter_discard_nils$q_6, TMP_InputFilter_discard_empty$q_7, TMP_InputFilter_discard_invalid$q_8; + var $nesting = [self].concat($parent_nesting), $InputFilter_default_options$1, $InputFilter_initialize$2, $InputFilter_filter$3, $InputFilter_has_default$ques$4, $InputFilter_default$5, $InputFilter_discard_nils$ques$6, $InputFilter_discard_empty$ques$7, $InputFilter_discard_invalid$ques$8; - Opal.defs(self, '$default_options', TMP_InputFilter_default_options_1 = function $$default_options() { - var $a, self = this; + Opal.defs(self, '$default_options', $InputFilter_default_options$1 = function $$default_options() { + var self = this, $ret_or_1 = nil; if (self.default_options == null) self.default_options = nil; - return (self.default_options = ($truthy($a = self.default_options) ? $a : $hash2([], {}))) - }, TMP_InputFilter_default_options_1.$$arity = 0); + return (self.default_options = (function() {if ($truthy(($ret_or_1 = self.default_options))) { + return $ret_or_1 + } else { + return $hash2([], {}) + }; return nil; })()) + }, $InputFilter_default_options$1.$$arity = 0); self.$attr_accessor("options"); - Opal.defn(self, '$initialize', TMP_InputFilter_initialize_2 = function $$initialize(opts) { - var $a, self = this, $writer = nil; + Opal.def(self, '$initialize', $InputFilter_initialize$2 = function $$initialize(opts) { + var self = this, $writer = nil, $ret_or_2 = nil; + + if (opts == null) { opts = $hash2([], {}); - } - - $writer = [($truthy($a = self.$class().$default_options()) ? $a : $hash2([], {})).$merge(opts)]; + }; + $writer = [(function() {if ($truthy(($ret_or_2 = self.$class().$default_options()))) { + return $ret_or_2 + } else { + return $hash2([], {}) + }; return nil; })().$merge(opts)]; $send(self, 'options=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_InputFilter_initialize_2.$$arity = -1); + }, $InputFilter_initialize$2.$$arity = -1); - Opal.defn(self, '$filter', TMP_InputFilter_filter_3 = function $$filter(data) { + Opal.def(self, '$filter', $InputFilter_filter$3 = function $$filter(data) { var self = this; return [data, nil] - }, TMP_InputFilter_filter_3.$$arity = 1); + }, $InputFilter_filter$3.$$arity = 1); - Opal.defn(self, '$has_default?', TMP_InputFilter_has_default$q_4 = function() { + Opal.def(self, '$has_default?', $InputFilter_has_default$ques$4 = function() { var self = this; return self.$options()['$has_key?']("default") - }, TMP_InputFilter_has_default$q_4.$$arity = 0); + }, $InputFilter_has_default$ques$4.$$arity = 0); - Opal.defn(self, '$default', TMP_InputFilter_default_5 = function() { + Opal.def(self, '$default', $InputFilter_default$5 = function() { var self = this; return self.$options()['$[]']("default") - }, TMP_InputFilter_default_5.$$arity = 0); + }, $InputFilter_default$5.$$arity = 0); - Opal.defn(self, '$discard_nils?', TMP_InputFilter_discard_nils$q_6 = function() { + Opal.def(self, '$discard_nils?', $InputFilter_discard_nils$ques$6 = function() { var self = this; return self.$options()['$[]']("nils")['$!']() - }, TMP_InputFilter_discard_nils$q_6.$$arity = 0); + }, $InputFilter_discard_nils$ques$6.$$arity = 0); - Opal.defn(self, '$discard_empty?', TMP_InputFilter_discard_empty$q_7 = function() { + Opal.def(self, '$discard_empty?', $InputFilter_discard_empty$ques$7 = function() { var self = this; return self.$options()['$[]']("discard_empty") - }, TMP_InputFilter_discard_empty$q_7.$$arity = 0); - return (Opal.defn(self, '$discard_invalid?', TMP_InputFilter_discard_invalid$q_8 = function() { + }, $InputFilter_discard_empty$ques$7.$$arity = 0); + return (Opal.def(self, '$discard_invalid?', $InputFilter_discard_invalid$ques$8 = function() { var self = this; return self.$options()['$[]']("discard_invalid") - }, TMP_InputFilter_discard_invalid$q_8.$$arity = 0), nil) && 'discard_invalid?'; + }, $InputFilter_discard_invalid$ques$8.$$arity = 0), nil) && 'discard_invalid?'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/hash_filter"] = function(Opal) { +Opal.modules["mutations/hash_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; - Opal.add_stubs(['$define_method', '$[]', '$to_sym', '$new', '$to_proc', '$[]=', '$-', '$attr_accessor', '$instance_eval', '$each_pair', '$optional_inputs', '$required_inputs', '$keys', '$nil?', '$options', '$respond_to?', '$is_a?', '$with_indifferent_access', '$to_hash', '$each', '$==', '$has_key?', '$filter', '$!', '$discard_invalid?', '$delete', '$discard_empty?', '$discard_nils?', '$has_default?', '$default', '$any?']); + Opal.add_stubs(['$define_method', '$to_sym', '$new', '$to_proc', '$[]=', '$-', '$attr_accessor', '$instance_eval', '$each_pair', '$optional_inputs', '$required_inputs', '$keys', '$nil?', '$[]', '$options', '$respond_to?', '$is_a?', '$with_indifferent_access', '$to_hash', '$each', '$==', '$has_key?', '$filter', '$!', '$discard_invalid?', '$delete', '$discard_empty?', '$discard_nils?', '$has_default?', '$default', '$any?']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $HashFilter(){}; - var self = $HashFilter = $klass($base, $super, 'HashFilter', $HashFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'HashFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_HashFilter_register_additional_filter_2, TMP_HashFilter_initialize_3, TMP_HashFilter_dup_6, TMP_HashFilter_required_7, TMP_HashFilter_optional_8, TMP_HashFilter_required_keys_9, TMP_HashFilter_optional_keys_10, TMP_HashFilter_hash_11, TMP_HashFilter_model_12, TMP_HashFilter_array_13, TMP_HashFilter_filter_17; + var $nesting = [self].concat($parent_nesting), $HashFilter_register_additional_filter$1, $HashFilter_initialize$3, $HashFilter_dup$4, $HashFilter_required$7, $HashFilter_optional$8, $HashFilter_required_keys$9, $HashFilter_optional_keys$10, $HashFilter_hash$11, $HashFilter_model$12, $HashFilter_array$13, $HashFilter_filter$14; - def.required_inputs = def.optional_inputs = def.current_inputs = nil; + self.$$prototype.required_inputs = self.$$prototype.optional_inputs = self.$$prototype.current_inputs = nil; - Opal.defs(self, '$register_additional_filter', TMP_HashFilter_register_additional_filter_2 = function $$register_additional_filter(type_class, type_name) { - var TMP_1, self = this; + Opal.defs(self, '$register_additional_filter', $HashFilter_register_additional_filter$1 = function $$register_additional_filter(type_class, type_name) { + var $$2, $iter = $HashFilter_register_additional_filter$1.$$p, $yield = $iter || nil, self = this; - return $send(self, 'define_method', [type_name], (TMP_1 = function($a_rest){var self = TMP_1.$$s || this, block, args, $b, name = nil, options = nil, $writer = nil; + if ($iter) $HashFilter_register_additional_filter$1.$$p = null; + return $send(self, 'define_method', [type_name], ($$2 = function(name, options){var self = $$2.$$s == null ? this : $$2.$$s, $iter = $$2.$$p, block = $iter || nil, $writer = nil; if (self.current_inputs == null) self.current_inputs = nil; - block = TMP_1.$$p || nil; - if (block) TMP_1.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - name = args['$[]'](0); - options = ($truthy($b = args['$[]'](1)) ? $b : $hash2([], {})); + + if ($iter) $$2.$$p = null;; + + if (name == null) { + name = nil; + }; + + if (options == null) { + options = $hash2([], {}); + }; $writer = [name.$to_sym(), $send(type_class, 'new', [options], block.$to_proc())]; $send(self.current_inputs, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, TMP_1.$$s = self, TMP_1.$$arity = -1, TMP_1)) - }, TMP_HashFilter_register_additional_filter_2.$$arity = 2); + return $writer[$rb_minus($writer["length"], 1)];}, $$2.$$s = self, $$2.$$arity = -2, $$2)) + }, $HashFilter_register_additional_filter$1.$$arity = 2); self.default_options = $hash2(["nils"], {"nils": false}); self.$attr_accessor("optional_inputs"); self.$attr_accessor("required_inputs"); - Opal.defn(self, '$initialize', TMP_HashFilter_initialize_3 = function $$initialize(opts) { - var self = this, $iter = TMP_HashFilter_initialize_3.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $HashFilter_initialize$3 = function $$initialize(opts) { + var $iter = $HashFilter_initialize$3.$$p, block = $iter || nil, self = this; + if ($iter) $HashFilter_initialize$3.$$p = null; + + + if ($iter) $HashFilter_initialize$3.$$p = null;; + if (opts == null) { opts = $hash2([], {}); - } - if ($iter) TMP_HashFilter_initialize_3.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_HashFilter_initialize_3, false), [opts], null); + }; + $send2(self, $find_super(self, 'initialize', $HashFilter_initialize$3, false, true), 'initialize', [opts], null); self.optional_inputs = $hash2([], {}); self.required_inputs = $hash2([], {}); self.current_inputs = self.required_inputs; if ((block !== nil)) { return $send(self, 'instance_eval', [], block.$to_proc()) - } else { + } else { return nil }; - }, TMP_HashFilter_initialize_3.$$arity = -1); + }, $HashFilter_initialize$3.$$arity = -1); - Opal.defn(self, '$dup', TMP_HashFilter_dup_6 = function $$dup() { - var TMP_4, TMP_5, self = this, dupped = nil; + Opal.def(self, '$dup', $HashFilter_dup$4 = function $$dup() { + var $$5, $$6, self = this, dupped = nil; - dupped = Opal.const_get_relative($nesting, 'HashFilter').$new(); - $send(self.optional_inputs, 'each_pair', [], (TMP_4 = function(k, v){var self = TMP_4.$$s || this, $writer = nil; -if (k == null) k = nil;if (v == null) v = nil; - + dupped = $$($nesting, 'HashFilter').$new(); + $send(self.optional_inputs, 'each_pair', [], ($$5 = function(k, v){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; + + + + if (k == null) { + k = nil; + }; + + if (v == null) { + v = nil; + }; $writer = [k, v]; $send(dupped.$optional_inputs(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_4.$$s = self, TMP_4.$$arity = 2, TMP_4)); - $send(self.required_inputs, 'each_pair', [], (TMP_5 = function(k, v){var self = TMP_5.$$s || this, $writer = nil; -if (k == null) k = nil;if (v == null) v = nil; - + return $writer[$rb_minus($writer["length"], 1)];}, $$5.$$s = self, $$5.$$arity = 2, $$5)); + $send(self.required_inputs, 'each_pair', [], ($$6 = function(k, v){var self = $$6.$$s == null ? this : $$6.$$s, $writer = nil; + + + + if (k == null) { + k = nil; + }; + + if (v == null) { + v = nil; + }; $writer = [k, v]; $send(dupped.$required_inputs(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_5.$$s = self, TMP_5.$$arity = 2, TMP_5)); + return $writer[$rb_minus($writer["length"], 1)];}, $$6.$$s = self, $$6.$$arity = 2, $$6)); return dupped; - }, TMP_HashFilter_dup_6.$$arity = 0); + }, $HashFilter_dup$4.$$arity = 0); - Opal.defn(self, '$required', TMP_HashFilter_required_7 = function $$required() { - var self = this, $iter = TMP_HashFilter_required_7.$$p, block = $iter || nil; + Opal.def(self, '$required', $HashFilter_required$7 = function $$required() { + var $iter = $HashFilter_required$7.$$p, block = $iter || nil, self = this; - if ($iter) TMP_HashFilter_required_7.$$p = null; + if ($iter) $HashFilter_required$7.$$p = null; + + if ($iter) $HashFilter_required$7.$$p = null;; self.current_inputs = self.required_inputs; return $send(self, 'instance_eval', [], block.$to_proc()); - }, TMP_HashFilter_required_7.$$arity = 0); + }, $HashFilter_required$7.$$arity = 0); - Opal.defn(self, '$optional', TMP_HashFilter_optional_8 = function $$optional() { - var self = this, $iter = TMP_HashFilter_optional_8.$$p, block = $iter || nil; + Opal.def(self, '$optional', $HashFilter_optional$8 = function $$optional() { + var $iter = $HashFilter_optional$8.$$p, block = $iter || nil, self = this; - if ($iter) TMP_HashFilter_optional_8.$$p = null; + if ($iter) $HashFilter_optional$8.$$p = null; + + if ($iter) $HashFilter_optional$8.$$p = null;; self.current_inputs = self.optional_inputs; return $send(self, 'instance_eval', [], block.$to_proc()); - }, TMP_HashFilter_optional_8.$$arity = 0); + }, $HashFilter_optional$8.$$arity = 0); - Opal.defn(self, '$required_keys', TMP_HashFilter_required_keys_9 = function $$required_keys() { + Opal.def(self, '$required_keys', $HashFilter_required_keys$9 = function $$required_keys() { var self = this; return self.required_inputs.$keys() - }, TMP_HashFilter_required_keys_9.$$arity = 0); + }, $HashFilter_required_keys$9.$$arity = 0); - Opal.defn(self, '$optional_keys', TMP_HashFilter_optional_keys_10 = function $$optional_keys() { + Opal.def(self, '$optional_keys', $HashFilter_optional_keys$10 = function $$optional_keys() { var self = this; return self.optional_inputs.$keys() - }, TMP_HashFilter_optional_keys_10.$$arity = 0); + }, $HashFilter_optional_keys$10.$$arity = 0); - Opal.defn(self, '$hash', TMP_HashFilter_hash_11 = function $$hash(name, options) { - var self = this, $iter = TMP_HashFilter_hash_11.$$p, block = $iter || nil, $writer = nil; + Opal.def(self, '$hash', $HashFilter_hash$11 = function $$hash(name, options) { + var $iter = $HashFilter_hash$11.$$p, block = $iter || nil, self = this, $writer = nil; + if ($iter) $HashFilter_hash$11.$$p = null; + + + if ($iter) $HashFilter_hash$11.$$p = null;; + if (options == null) { options = $hash2([], {}); - } - if ($iter) TMP_HashFilter_hash_11.$$p = null; - - $writer = [name.$to_sym(), $send(Opal.const_get_relative($nesting, 'HashFilter'), 'new', [options], block.$to_proc())]; + }; + $writer = [name.$to_sym(), $send($$($nesting, 'HashFilter'), 'new', [options], block.$to_proc())]; $send(self.current_inputs, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_HashFilter_hash_11.$$arity = -2); + }, $HashFilter_hash$11.$$arity = -2); - Opal.defn(self, '$model', TMP_HashFilter_model_12 = function $$model(name, options) { + Opal.def(self, '$model', $HashFilter_model$12 = function $$model(name, options) { var self = this, $writer = nil; + + if (options == null) { options = $hash2([], {}); - } - - $writer = [name.$to_sym(), Opal.const_get_relative($nesting, 'ModelFilter').$new(name.$to_sym(), options)]; + }; + $writer = [name.$to_sym(), $$($nesting, 'ModelFilter').$new(name.$to_sym(), options)]; $send(self.current_inputs, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - }, TMP_HashFilter_model_12.$$arity = -2); + }, $HashFilter_model$12.$$arity = -2); - Opal.defn(self, '$array', TMP_HashFilter_array_13 = function $$array(name, options) { - var self = this, $iter = TMP_HashFilter_array_13.$$p, block = $iter || nil, name_sym = nil, $writer = nil; + Opal.def(self, '$array', $HashFilter_array$13 = function $$array(name, options) { + var $iter = $HashFilter_array$13.$$p, block = $iter || nil, self = this, name_sym = nil, $writer = nil; + if ($iter) $HashFilter_array$13.$$p = null; + + + if ($iter) $HashFilter_array$13.$$p = null;; + if (options == null) { options = $hash2([], {}); - } - if ($iter) TMP_HashFilter_array_13.$$p = null; - + }; name_sym = name.$to_sym(); - $writer = [name.$to_sym(), $send(Opal.const_get_relative($nesting, 'ArrayFilter'), 'new', [name_sym, options], block.$to_proc())]; + $writer = [name.$to_sym(), $send($$($nesting, 'ArrayFilter'), 'new', [name_sym, options], block.$to_proc())]; $send(self.current_inputs, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - }, TMP_HashFilter_array_13.$$arity = -2); - return (Opal.defn(self, '$filter', TMP_HashFilter_filter_17 = function $$filter(data) { - var TMP_14, TMP_16, self = this, errors = nil, filtered_data = nil, wildcard_filterer = nil, filtered_keys = nil; + }, $HashFilter_array$13.$$arity = -2); + return (Opal.def(self, '$filter', $HashFilter_filter$14 = function $$filter(data) { + var $$15, $$17, self = this, errors = nil, filtered_data = nil, wildcard_filterer = nil, filtered_keys = nil; if ($truthy(data['$nil?']())) { @@ -25462,34 +28568,35 @@ if (k == null) k = nil;if (v == null) v = nil; return [nil, nil]}; return [nil, "nils"];}; if ($truthy(data['$respond_to?']("to_hash"))) { - } else { + } else { return [data, "hash"] }; - if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'HashWithIndifferentAccess')))) { - } else { + if ($truthy(data['$is_a?']($$($nesting, 'HashWithIndifferentAccess')))) { + } else { data = data.$to_hash().$with_indifferent_access() }; - errors = Opal.const_get_relative($nesting, 'ErrorHash').$new(); - filtered_data = Opal.const_get_relative($nesting, 'HashWithIndifferentAccess').$new(); + errors = $$($nesting, 'ErrorHash').$new(); + filtered_data = $$($nesting, 'HashWithIndifferentAccess').$new(); wildcard_filterer = nil; - $send([[self.required_inputs, true], [self.optional_inputs, false]], 'each', [], (TMP_14 = function($a){var self = TMP_14.$$s || this, $a_args, inputs, is_required, TMP_15; + $send([[self.required_inputs, true], [self.optional_inputs, false]], 'each', [], ($$15 = function($mlhs_tmp1){var self = $$15.$$s == null ? this : $$15.$$s, $a, $b, $$16, inputs = nil, is_required = nil; - if ($a == null) { - $a = nil; - } - $a = Opal.to_ary($a); - $a_args = Opal.slice.call($a, 0, $a.length); - inputs = $a_args.splice(0,1)[0]; - if (inputs == null) { - inputs = nil; - } - is_required = $a_args.splice(0,1)[0]; - if (is_required == null) { - is_required = nil; - } - return $send(inputs, 'each_pair', [], (TMP_15 = function(key, filterer){var self = TMP_15.$$s || this, $a, $b, data_element = nil, sub_data = nil, sub_error = nil, $writer = nil, error_key = nil; -if (key == null) key = nil;if (filterer == null) filterer = nil; + + if ($mlhs_tmp1 == null) { + $mlhs_tmp1 = nil; + }; + $b = $mlhs_tmp1, $a = Opal.to_ary($b), (inputs = ($a[0] == null ? nil : $a[0])), (is_required = ($a[1] == null ? nil : $a[1])), $b; + return $send(inputs, 'each_pair', [], ($$16 = function(key, filterer){var self = $$16.$$s == null ? this : $$16.$$s, $c, $d, data_element = nil, sub_data = nil, sub_error = nil, $writer = nil, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, error_key = nil, $ret_or_6 = nil, $ret_or_7 = nil; + + + + if (key == null) { + key = nil; + }; + + if (filterer == null) { + filterer = nil; + }; if (key['$==']("*")) { wildcard_filterer = filterer; @@ -25497,23 +28604,47 @@ if (key == null) key = nil;if (filterer == null) filterer = nil; data_element = data['$[]'](key); if ($truthy(data['$has_key?'](key))) { - $b = filterer.$filter(data_element), $a = Opal.to_ary($b), (sub_data = ($a[0] == null ? nil : $a[0])), (sub_error = ($a[1] == null ? nil : $a[1])), $b; + $d = filterer.$filter(data_element), $c = Opal.to_ary($d), (sub_data = ($c[0] == null ? nil : $c[0])), (sub_error = ($c[1] == null ? nil : $c[1])), $d; if ($truthy(sub_error['$nil?']())) { $writer = [key, sub_data]; $send(filtered_data, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else if ($truthy(($truthy($a = is_required['$!']()) ? filterer['$discard_invalid?']() : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_1 = is_required['$!']()))) { + return filterer['$discard_invalid?']() + } else { + return $ret_or_1 + }; return nil; })())) { data.$delete(key) - } else if ($truthy(($truthy($a = ($truthy($b = is_required['$!']()) ? sub_error['$==']("empty") : $b)) ? filterer['$discard_empty?']() : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = is_required['$!']()))) { + return sub_error['$==']("empty") + } else { + return $ret_or_3 + }; return nil; })()))) { + return filterer['$discard_empty?']() + } else { + return $ret_or_2 + }; return nil; })())) { data.$delete(key) - } else if ($truthy(($truthy($a = ($truthy($b = is_required['$!']()) ? sub_error['$==']("nils") : $b)) ? filterer['$discard_nils?']() : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = is_required['$!']()))) { + return sub_error['$==']("nils") + } else { + return $ret_or_5 + }; return nil; })()))) { + return filterer['$discard_nils?']() + } else { + return $ret_or_4 + }; return nil; })())) { data.$delete(key) - } else { + } else { - error_key = ($truthy($a = filterer.$options()['$[]']("error_key")) ? $a : key); - if ($truthy(sub_error['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { - sub_error = Opal.const_get_relative($nesting, 'ErrorAtom').$new(error_key, sub_error)}; + error_key = (function() {if ($truthy(($ret_or_6 = filterer.$options()['$[]']("error_key")))) { + return $ret_or_6 + } else { + return key + }; return nil; })(); + if ($truthy(sub_error['$is_a?']($$($nesting, 'Symbol')))) { + sub_error = $$($nesting, 'ErrorAtom').$new(error_key, sub_error)}; $writer = [key, sub_error]; $send(errors, '[]=', Opal.to_a($writer)); @@ -25527,23 +28658,31 @@ if (key == null) key = nil;if (filterer == null) filterer = nil; return $writer[$rb_minus($writer["length"], 1)]; } else if ($truthy(is_required)) { - error_key = ($truthy($a = filterer.$options()['$[]']("error_key")) ? $a : key); + error_key = (function() {if ($truthy(($ret_or_7 = filterer.$options()['$[]']("error_key")))) { + return $ret_or_7 + } else { + return key + }; return nil; })(); - $writer = [key, Opal.const_get_relative($nesting, 'ErrorAtom').$new(error_key, "required")]; + $writer = [key, $$($nesting, 'ErrorAtom').$new(error_key, "required")]; $send(errors, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - } else { + } else { return nil } - } else { + } else { return nil - };}, TMP_15.$$s = self, TMP_15.$$arity = 2, TMP_15))}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14.$$has_top_level_mlhs_arg = true, TMP_14)); + };}, $$16.$$s = self, $$16.$$arity = 2, $$16));}, $$15.$$s = self, $$15.$$arity = 1, $$15.$$has_top_level_mlhs_arg = true, $$15)); if ($truthy(wildcard_filterer)) { filtered_keys = $rb_minus(data.$keys(), filtered_data.$keys()); - $send(filtered_keys, 'each', [], (TMP_16 = function(key){var self = TMP_16.$$s || this, $a, $b, data_element = nil, sub_data = nil, sub_error = nil, $writer = nil; -if (key == null) key = nil; - + $send(filtered_keys, 'each', [], ($$17 = function(key){var self = $$17.$$s == null ? this : $$17.$$s, $a, $b, data_element = nil, sub_data = nil, sub_error = nil, $writer = nil, $ret_or_8 = nil, $ret_or_9 = nil; + + + + if (key == null) { + key = nil; + }; data_element = data['$[]'](key); $b = wildcard_filterer.$filter(data_element), $a = Opal.to_ary($b), (sub_data = ($a[0] == null ? nil : $a[0])), (sub_error = ($a[1] == null ? nil : $a[1])), $b; if ($truthy(sub_error['$nil?']())) { @@ -25553,31 +28692,38 @@ if (key == null) key = nil; return $writer[$rb_minus($writer["length"], 1)]; } else if ($truthy(wildcard_filterer['$discard_invalid?']())) { return data.$delete(key) - } else if ($truthy((($a = sub_error['$==']("empty")) ? wildcard_filterer['$discard_empty?']() : sub_error['$==']("empty")))) { + } else if ($truthy((function() {if ($truthy(($ret_or_8 = sub_error['$==']("empty")))) { + return wildcard_filterer['$discard_empty?']() + } else { + return $ret_or_8 + }; return nil; })())) { return data.$delete(key) - } else if ($truthy((($a = sub_error['$==']("nils")) ? wildcard_filterer['$discard_nils?']() : sub_error['$==']("nils")))) { + } else if ($truthy((function() {if ($truthy(($ret_or_9 = sub_error['$==']("nils")))) { + return wildcard_filterer['$discard_nils?']() + } else { + return $ret_or_9 + }; return nil; })())) { return data.$delete(key) - } else { + } else { - if ($truthy(sub_error['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { - sub_error = Opal.const_get_relative($nesting, 'ErrorAtom').$new(key, sub_error)}; + if ($truthy(sub_error['$is_a?']($$($nesting, 'Symbol')))) { + sub_error = $$($nesting, 'ErrorAtom').$new(key, sub_error)}; $writer = [key, sub_error]; $send(errors, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; - };}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16));}; + };}, $$17.$$s = self, $$17.$$arity = 1, $$17));}; if ($truthy(errors['$any?']())) { return [data, errors] - } else { + } else { return [filtered_data, nil] }; - }, TMP_HashFilter_filter_17.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'InputFilter'), $nesting) + }, $HashFilter_filter$14.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'InputFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/array_filter"] = function(Opal) { +Opal.modules["mutations/array_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } @@ -25587,120 +28733,134 @@ Opal.modules["mutations/array_filter"] = function(Opal) { function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; - Opal.add_stubs(['$define_method', '$[]', '$new', '$to_proc', '$instance_eval', '$options', '$raise', '$to_sym', '$is_a?', '$constantize', '$[]=', '$-', '$cache_constants?', '$to_s', '$initialize_constants!', '$nil?', '$!', '$==', '$Array', '$<', '$length', '$>', '$each_with_index', '$filter_element', '$<<', '$discard_invalid?', '$filter']); + Opal.add_stubs(['$define_method', '$new', '$to_proc', '$instance_eval', '$[]', '$options', '$raise', '$to_sym', '$is_a?', '$constantize', '$[]=', '$-', '$cache_constants?', '$to_s', '$initialize_constants!', '$nil?', '$!', '$==', '$Array', '$<', '$length', '$>', '$each_with_index', '$filter_element', '$<<', '$discard_invalid?', '$filter']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ArrayFilter(){}; - var self = $ArrayFilter = $klass($base, $super, 'ArrayFilter', $ArrayFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ArrayFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ArrayFilter_register_additional_filter_2, TMP_ArrayFilter_initialize_3, TMP_ArrayFilter_hash_4, TMP_ArrayFilter_model_5, TMP_ArrayFilter_array_6, TMP_ArrayFilter_initialize_constants$B_7, TMP_ArrayFilter_filter_9, TMP_ArrayFilter_filter_element_10; + var $nesting = [self].concat($parent_nesting), $ArrayFilter_register_additional_filter$1, $ArrayFilter_initialize$3, $ArrayFilter_hash$4, $ArrayFilter_model$5, $ArrayFilter_array$6, $ArrayFilter_initialize_constants$excl$7, $ArrayFilter_filter$8, $ArrayFilter_filter_element$10; - def.element_filter = def.initialize_constants = nil; + self.$$prototype.element_filter = self.$$prototype.initialize_constants = nil; - Opal.defs(self, '$register_additional_filter', TMP_ArrayFilter_register_additional_filter_2 = function $$register_additional_filter(type_class, type_name) { - var TMP_1, self = this; + Opal.defs(self, '$register_additional_filter', $ArrayFilter_register_additional_filter$1 = function $$register_additional_filter(type_class, type_name) { + var $$2, $iter = $ArrayFilter_register_additional_filter$1.$$p, $yield = $iter || nil, self = this; - return $send(self, 'define_method', [type_name], (TMP_1 = function($a_rest){var self = TMP_1.$$s || this, block, args, $b, options = nil; + if ($iter) $ArrayFilter_register_additional_filter$1.$$p = null; + return $send(self, 'define_method', [type_name], ($$2 = function(options){var self = $$2.$$s == null ? this : $$2.$$s, $iter = $$2.$$p, block = $iter || nil; - block = TMP_1.$$p || nil; - if (block) TMP_1.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - options = ($truthy($b = args['$[]'](0)) ? $b : $hash2([], {})); - return (self.element_filter = $send(type_class, 'new', [options], block.$to_proc()));}, TMP_1.$$s = self, TMP_1.$$arity = -1, TMP_1)) - }, TMP_ArrayFilter_register_additional_filter_2.$$arity = 2); + + + if ($iter) $$2.$$p = null;; + + if (options == null) { + options = $hash2([], {}); + }; + return (self.element_filter = $send(type_class, 'new', [options], block.$to_proc()));}, $$2.$$s = self, $$2.$$arity = -1, $$2)) + }, $ArrayFilter_register_additional_filter$1.$$arity = 2); self.default_options = $hash2(["nils", "class", "arrayize", "min_length", "max_length"], {"nils": false, "class": nil, "arrayize": false, "min_length": nil, "max_length": nil}); - Opal.defn(self, '$initialize', TMP_ArrayFilter_initialize_3 = function $$initialize(name, opts) { - var $a, self = this, $iter = TMP_ArrayFilter_initialize_3.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $ArrayFilter_initialize$3 = function $$initialize(name, opts) { + var $iter = $ArrayFilter_initialize$3.$$p, block = $iter || nil, self = this, $ret_or_1 = nil; + if ($iter) $ArrayFilter_initialize$3.$$p = null; + + + if ($iter) $ArrayFilter_initialize$3.$$p = null;; + if (opts == null) { opts = $hash2([], {}); - } - if ($iter) TMP_ArrayFilter_initialize_3.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_ArrayFilter_initialize_3, false), [opts], null); + }; + $send2(self, $find_super(self, 'initialize', $ArrayFilter_initialize$3, false, true), 'initialize', [opts], null); self.name = name; self.element_filter = nil; if ((block !== nil)) { $send(self, 'instance_eval', [], block.$to_proc())}; - if ($truthy(($truthy($a = self.element_filter) ? self.$options()['$[]']("class") : $a))) { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError').$new("Can't supply both a class and a filter")) - } else { + if ($truthy((function() {if ($truthy(($ret_or_1 = self.element_filter))) { + return self.$options()['$[]']("class") + } else { + return $ret_or_1 + }; return nil; })())) { + return self.$raise($$($nesting, 'ArgumentError').$new("Can't supply both a class and a filter")) + } else { return nil }; - }, TMP_ArrayFilter_initialize_3.$$arity = -2); + }, $ArrayFilter_initialize$3.$$arity = -2); - Opal.defn(self, '$hash', TMP_ArrayFilter_hash_4 = function $$hash(options) { - var self = this, $iter = TMP_ArrayFilter_hash_4.$$p, block = $iter || nil; + Opal.def(self, '$hash', $ArrayFilter_hash$4 = function $$hash(options) { + var $iter = $ArrayFilter_hash$4.$$p, block = $iter || nil, self = this; + if ($iter) $ArrayFilter_hash$4.$$p = null; + + + if ($iter) $ArrayFilter_hash$4.$$p = null;; + if (options == null) { options = $hash2([], {}); - } - if ($iter) TMP_ArrayFilter_hash_4.$$p = null; - return (self.element_filter = $send(Opal.const_get_relative($nesting, 'HashFilter'), 'new', [options], block.$to_proc())) - }, TMP_ArrayFilter_hash_4.$$arity = -1); + }; + return (self.element_filter = $send($$($nesting, 'HashFilter'), 'new', [options], block.$to_proc())); + }, $ArrayFilter_hash$4.$$arity = -1); - Opal.defn(self, '$model', TMP_ArrayFilter_model_5 = function $$model(name, options) { + Opal.def(self, '$model', $ArrayFilter_model$5 = function $$model(name, options) { var self = this; + + if (options == null) { options = $hash2([], {}); - } - return (self.element_filter = Opal.const_get_relative($nesting, 'ModelFilter').$new(name.$to_sym(), options)) - }, TMP_ArrayFilter_model_5.$$arity = -2); + }; + return (self.element_filter = $$($nesting, 'ModelFilter').$new(name.$to_sym(), options)); + }, $ArrayFilter_model$5.$$arity = -2); - Opal.defn(self, '$array', TMP_ArrayFilter_array_6 = function $$array(options) { - var self = this, $iter = TMP_ArrayFilter_array_6.$$p, block = $iter || nil; + Opal.def(self, '$array', $ArrayFilter_array$6 = function $$array(options) { + var $iter = $ArrayFilter_array$6.$$p, block = $iter || nil, self = this; + if ($iter) $ArrayFilter_array$6.$$p = null; + + + if ($iter) $ArrayFilter_array$6.$$p = null;; + if (options == null) { options = $hash2([], {}); - } - if ($iter) TMP_ArrayFilter_array_6.$$p = null; - return (self.element_filter = $send(Opal.const_get_relative($nesting, 'ArrayFilter'), 'new', [nil, options], block.$to_proc())) - }, TMP_ArrayFilter_array_6.$$arity = -1); + }; + return (self.element_filter = $send($$($nesting, 'ArrayFilter'), 'new', [nil, options], block.$to_proc())); + }, $ArrayFilter_array$6.$$arity = -1); - Opal.defn(self, '$initialize_constants!', TMP_ArrayFilter_initialize_constants$B_7 = function() { - var $a, self = this, $writer = nil; + Opal.def(self, '$initialize_constants!', $ArrayFilter_initialize_constants$excl$7 = function() { + var self = this, $ret_or_2 = nil, $writer = nil; - self.initialize_constants = ($truthy($a = self.initialize_constants) ? $a : ((function() {if ($truthy(self.$options()['$[]']("class"))) { - if ($truthy(self.$options()['$[]']("class")['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - - $writer = ["class", self.$options()['$[]']("class").$constantize()]; - $send(self.$options(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - } else { - return nil - } - } else { - return nil - }; return nil; })(), true)); - if ($truthy(Opal.const_get_relative($nesting, 'Mutations')['$cache_constants?']())) { + self.initialize_constants = (function() {if ($truthy(($ret_or_2 = self.initialize_constants))) { + return $ret_or_2 + } else { + + if ($truthy(self.$options()['$[]']("class"))) { + if ($truthy(self.$options()['$[]']("class")['$is_a?']($$($nesting, 'String')))) { + + $writer = ["class", self.$options()['$[]']("class").$constantize()]; + $send(self.$options(), '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];}}; + return true; + }; return nil; })(); + if ($truthy($$($nesting, 'Mutations')['$cache_constants?']())) { return nil } else if ($truthy(self.$options()['$[]']("class"))) { $writer = ["class", self.$options()['$[]']("class").$to_s().$constantize()]; $send(self.$options(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { return nil }; - }, TMP_ArrayFilter_initialize_constants$B_7.$$arity = 0); + }, $ArrayFilter_initialize_constants$excl$7.$$arity = 0); - Opal.defn(self, '$filter', TMP_ArrayFilter_filter_9 = function $$filter(data) { - var $a, TMP_8, $b, self = this, errors = nil, filtered_data = nil, found_error = nil; + Opal.def(self, '$filter', $ArrayFilter_filter$8 = function $$filter(data) { + var $$9, self = this, $ret_or_3 = nil, errors = nil, filtered_data = nil, found_error = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil; self['$initialize_constants!'](); @@ -25709,43 +28869,71 @@ Opal.modules["mutations/array_filter"] = function(Opal) { if ($truthy(self.$options()['$[]']("nils"))) { return [nil, nil]}; return [nil, "nils"];}; - if ($truthy(($truthy($a = data['$is_a?'](Opal.const_get_relative($nesting, 'Array'))['$!']()) ? self.$options()['$[]']("arrayize") : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = data['$is_a?']($$($nesting, 'Array'))['$!']()))) { + return self.$options()['$[]']("arrayize") + } else { + return $ret_or_3 + }; return nil; })())) { if (data['$==']("")) { return [[], nil]}; data = self.$Array(data);}; - if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'Array')))) { + if ($truthy(data['$is_a?']($$($nesting, 'Array')))) { - errors = Opal.const_get_relative($nesting, 'ErrorArray').$new(); + errors = $$($nesting, 'ErrorArray').$new(); filtered_data = []; found_error = false; - if ($truthy(($truthy($a = self.$options()['$[]']("min_length")) ? $rb_lt(data.$length(), self.$options()['$[]']("min_length")) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = self.$options()['$[]']("min_length")))) { + return $rb_lt(data.$length(), self.$options()['$[]']("min_length")) + } else { + return $ret_or_4 + }; return nil; })())) { return [data, "min_length"]}; - if ($truthy(($truthy($a = self.$options()['$[]']("max_length")) ? $rb_gt(data.$length(), self.$options()['$[]']("max_length")) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_5 = self.$options()['$[]']("max_length")))) { + return $rb_gt(data.$length(), self.$options()['$[]']("max_length")) + } else { + return $ret_or_5 + }; return nil; })())) { return [data, "max_length"]}; - $send(data, 'each_with_index', [], (TMP_8 = function(el, i){var self = TMP_8.$$s || this, $b, $c, el_filtered = nil, el_error = nil; + $send(data, 'each_with_index', [], ($$9 = function(el, i){var self = $$9.$$s == null ? this : $$9.$$s, $a, $b, el_filtered = nil, el_error = nil; if (self.name == null) self.name = nil; -if (el == null) el = nil;if (i == null) i = nil; - - $c = self.$filter_element(el), $b = Opal.to_ary($c), (el_filtered = ($b[0] == null ? nil : $b[0])), (el_error = ($b[1] == null ? nil : $b[1])), $c; - if ($truthy(el_error['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { - el_error = Opal.const_get_relative($nesting, 'ErrorAtom').$new(self.name, el_error, $hash2(["index"], {"index": i}))}; + + + + if (el == null) { + el = nil; + }; + + if (i == null) { + i = nil; + }; + $b = self.$filter_element(el), $a = Opal.to_ary($b), (el_filtered = ($a[0] == null ? nil : $a[0])), (el_error = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy(el_error['$is_a?']($$($nesting, 'Symbol')))) { + el_error = $$($nesting, 'ErrorAtom').$new(self.name, el_error, $hash2(["index"], {"index": i}))}; errors['$<<'](el_error); if ($truthy(el_error)) { return (found_error = true) - } else { + } else { return filtered_data['$<<'](el_filtered) - };}, TMP_8.$$s = self, TMP_8.$$arity = 2, TMP_8)); - if ($truthy(($truthy($a = found_error) ? ($truthy($b = self.element_filter) ? self.element_filter['$discard_invalid?']() : $b)['$!']() : $a))) { - return [data, errors] + };}, $$9.$$s = self, $$9.$$arity = 2, $$9)); + if ($truthy((function() {if ($truthy(($ret_or_6 = found_error))) { + return (function() {if ($truthy(($ret_or_7 = self.element_filter))) { + return self.element_filter['$discard_invalid?']() } else { + return $ret_or_7 + }; return nil; })()['$!']() + } else { + return $ret_or_6 + }; return nil; })())) { + return [data, errors] + } else { return [filtered_data, nil] }; - } else { + } else { return [data, "array"] }; - }, TMP_ArrayFilter_filter_9.$$arity = 1); - return (Opal.defn(self, '$filter_element', TMP_ArrayFilter_filter_element_10 = function $$filter_element(data) { + }, $ArrayFilter_filter$8.$$arity = 1); + return (Opal.def(self, '$filter_element', $ArrayFilter_filter_element$10 = function $$filter_element(data) { var $a, $b, self = this, el_errors = nil; @@ -25758,192 +28946,236 @@ if (el == null) el = nil;if (i == null) i = nil; if ($truthy(data['$is_a?'](self.$options()['$[]']("class"))['$!']())) { return [data, "class"]}}; return [data, nil]; - }, TMP_ArrayFilter_filter_element_10.$$arity = 1), nil) && 'filter_element'; - })($nesting[0], Opal.const_get_relative($nesting, 'InputFilter'), $nesting) + }, $ArrayFilter_filter_element$10.$$arity = 1), nil) && 'filter_element'; + })($nesting[0], $$($nesting, 'InputFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/additional_filter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["mutations/additional_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$require', '$underscore', '$[]', '$name', '$register_additional_filter']); self.$require("mutations/hash_filter"); self.$require("mutations/array_filter"); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $AdditionalFilter(){}; - var self = $AdditionalFilter = $klass($base, $super, 'AdditionalFilter', $AdditionalFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'AdditionalFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_AdditionalFilter_inherited_1; + var $nesting = [self].concat($parent_nesting), $AdditionalFilter_inherited$1; - return Opal.defs(self, '$inherited', TMP_AdditionalFilter_inherited_1 = function $$inherited(subclass) { + return (Opal.defs(self, '$inherited', $AdditionalFilter_inherited$1 = function $$inherited(subclass) { var self = this, type_name = nil; type_name = subclass.$name()['$[]'](/^Mutations::([a-zA-Z]*)Filter$/, 1).$underscore(); - Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'HashFilter').$register_additional_filter(subclass, type_name); - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'ArrayFilter').$register_additional_filter(subclass, type_name); - }, TMP_AdditionalFilter_inherited_1.$$arity = 1) - })($nesting[0], Opal.const_get_relative($nesting, 'InputFilter'), $nesting) + $$$($$($nesting, 'Mutations'), 'HashFilter').$register_additional_filter(subclass, type_name); + return $$$($$($nesting, 'Mutations'), 'ArrayFilter').$register_additional_filter(subclass, type_name); + }, $AdditionalFilter_inherited$1.$$arity = 1), nil) && 'inherited' + })($nesting[0], $$($nesting, 'InputFilter'), $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/string_filter"] = function(Opal) { +Opal.modules["mutations/string_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; - Opal.add_stubs(['$[]', '$options', '$==', '$nil?', '$!', '$any?', '$is_a?', '$to_s', '$gsub', '$strip', '$<', '$length', '$>', '$include?', '$!~']); + Opal.add_stubs(['$nil?', '$[]', '$options', '$!', '$any?', '$is_a?', '$to_s', '$gsub', '$strip', '$==', '$<', '$length', '$>', '$include?', '$!~']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $StringFilter(){}; - var self = $StringFilter = $klass($base, $super, 'StringFilter', $StringFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'StringFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_StringFilter_filter_2; + var $nesting = [self].concat($parent_nesting), $StringFilter_filter$1; self.default_options = $hash2(["strip", "strict", "nils", "empty_is_nil", "empty", "min_length", "max_length", "matches", "in", "discard_empty", "allow_control_characters"], {"strip": true, "strict": false, "nils": false, "empty_is_nil": false, "empty": false, "min_length": nil, "max_length": nil, "matches": nil, "in": nil, "discard_empty": false, "allow_control_characters": false}); - return (Opal.defn(self, '$filter', TMP_StringFilter_filter_2 = function $$filter(data) { - var $a, TMP_1, self = this; + return (Opal.def(self, '$filter', $StringFilter_filter$1 = function $$filter(data) { + var $$2, self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; - if ($truthy(($truthy($a = self.$options()['$[]']("empty_is_nil")) ? data['$==']("") : $a))) { - data = nil}; if ($truthy(data['$nil?']())) { if ($truthy(self.$options()['$[]']("nils"))) { return [nil, nil]}; return [nil, "nils"];}; - if ($truthy(($truthy($a = self.$options()['$[]']("strict")['$!']()) ? $send([Opal.const_get_relative($nesting, 'TrueClass'), Opal.const_get_relative($nesting, 'FalseClass'), Opal.const_get_relative($nesting, 'Integer'), Opal.const_get_relative($nesting, 'Float'), Opal.const_get_relative($nesting, 'BigDecimal'), Opal.const_get_relative($nesting, 'Symbol')], 'any?', [], (TMP_1 = function(klass){var self = TMP_1.$$s || this; -if (klass == null) klass = nil; - return data['$is_a?'](klass)}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = self.$options()['$[]']("strict")['$!']()))) { + return $send([$$($nesting, 'TrueClass'), $$($nesting, 'FalseClass'), $$($nesting, 'Integer'), $$($nesting, 'Float'), $$($nesting, 'BigDecimal'), $$($nesting, 'Symbol')], 'any?', [], ($$2 = function(klass){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (klass == null) { + klass = nil; + }; + return data['$is_a?'](klass);}, $$2.$$s = self, $$2.$$arity = 1, $$2)) + } else { + return $ret_or_1 + }; return nil; })())) { data = data.$to_s()}; - if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - } else { + if ($truthy(data['$is_a?']($$($nesting, 'String')))) { + } else { return [data, "string"] }; if ($truthy(self.$options()['$[]']("allow_control_characters"))) { - } else { - data = data.$gsub(/[^[:print:]\t\r\n]+/, " ") + } else { + data = data.$gsub(/((?=[[:cntrl:]])[^\t\r\n])+/, " ") }; if ($truthy(self.$options()['$[]']("strip"))) { data = data.$strip()}; if (data['$==']("")) { - if ($truthy(self.$options()['$[]']("empty"))) { - return [data, nil] + if ($truthy(self.$options()['$[]']("empty_is_nil"))) { + return [nil, (function() {if ($truthy(self.$options()['$[]']("nils"))) { + return nil } else { + return "nils" + }; return nil; })()] + } else if ($truthy(self.$options()['$[]']("empty"))) { + return [data, nil] + } else { return [data, "empty"] }}; - if ($truthy(($truthy($a = self.$options()['$[]']("min_length")) ? $rb_lt(data.$length(), self.$options()['$[]']("min_length")) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_2 = self.$options()['$[]']("min_length")))) { + return $rb_lt(data.$length(), self.$options()['$[]']("min_length")) + } else { + return $ret_or_2 + }; return nil; })())) { return [data, "min_length"]}; - if ($truthy(($truthy($a = self.$options()['$[]']("max_length")) ? $rb_gt(data.$length(), self.$options()['$[]']("max_length")) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = self.$options()['$[]']("max_length")))) { + return $rb_gt(data.$length(), self.$options()['$[]']("max_length")) + } else { + return $ret_or_3 + }; return nil; })())) { return [data, "max_length"]}; - if ($truthy(($truthy($a = self.$options()['$[]']("in")) ? self.$options()['$[]']("in")['$include?'](data)['$!']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = self.$options()['$[]']("in")))) { + return self.$options()['$[]']("in")['$include?'](data)['$!']() + } else { + return $ret_or_4 + }; return nil; })())) { return [data, "in"]}; - if ($truthy(($truthy($a = self.$options()['$[]']("matches")) ? self.$options()['$[]']("matches")['$!~'](data) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_5 = self.$options()['$[]']("matches")))) { + + return self.$options()['$[]']("matches")['$!~'](data); + } else { + return $ret_or_5 + }; return nil; })())) { return [data, "matches"]}; return [data, nil]; - }, TMP_StringFilter_filter_2.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $StringFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/integer_filter"] = function(Opal) { +Opal.modules["mutations/integer_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; - Opal.add_stubs(['$[]', '$options', '$==', '$nil?', '$!', '$is_a?', '$=~', '$to_i', '$<', '$>', '$include?']); + Opal.add_stubs(['$nil?', '$[]', '$options', '$==', '$!', '$is_a?', '$=~', '$to_i', '$<', '$>', '$include?']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $IntegerFilter(){}; - var self = $IntegerFilter = $klass($base, $super, 'IntegerFilter', $IntegerFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'IntegerFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IntegerFilter_filter_1; + var $nesting = [self].concat($parent_nesting), $IntegerFilter_filter$1; self.default_options = $hash2(["nils", "empty_is_nil", "min", "max", "in"], {"nils": false, "empty_is_nil": false, "min": nil, "max": nil, "in": nil}); - return (Opal.defn(self, '$filter', TMP_IntegerFilter_filter_1 = function $$filter(data) { - var $a, self = this; + return (Opal.def(self, '$filter', $IntegerFilter_filter$1 = function $$filter(data) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil; - if ($truthy(($truthy($a = self.$options()['$[]']("empty_is_nil")) ? data['$==']("") : $a))) { - data = nil}; if ($truthy(data['$nil?']())) { if ($truthy(self.$options()['$[]']("nils"))) { return [nil, nil]}; return [nil, "nils"];}; if (data['$==']("")) { - return [data, "empty"]}; - if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'Integer'))['$!']())) { - if ($truthy(($truthy($a = data['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? data['$=~'](/^-?\d/) : $a))) { - data = data.$to_i() + if ($truthy(self.$options()['$[]']("empty_is_nil"))) { + return [nil, (function() {if ($truthy(self.$options()['$[]']("nils"))) { + return nil } else { + return "nils" + }; return nil; })()] + } else { + return [data, "empty"] + }}; + if ($truthy(data['$is_a?']($$($nesting, 'Integer'))['$!']())) { + if ($truthy((function() {if ($truthy(($ret_or_1 = data['$is_a?']($$($nesting, 'String'))))) { + return data['$=~'](/^-?\d/) + } else { + return $ret_or_1 + }; return nil; })())) { + data = data.$to_i() + } else { return [data, "integer"] }}; - if ($truthy(($truthy($a = self.$options()['$[]']("min")) ? $rb_lt(data, self.$options()['$[]']("min")) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_2 = self.$options()['$[]']("min")))) { + return $rb_lt(data, self.$options()['$[]']("min")) + } else { + return $ret_or_2 + }; return nil; })())) { return [data, "min"]}; - if ($truthy(($truthy($a = self.$options()['$[]']("max")) ? $rb_gt(data, self.$options()['$[]']("max")) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = self.$options()['$[]']("max")))) { + return $rb_gt(data, self.$options()['$[]']("max")) + } else { + return $ret_or_3 + }; return nil; })())) { return [data, "max"]}; - if ($truthy(($truthy($a = self.$options()['$[]']("in")) ? self.$options()['$[]']("in")['$include?'](data)['$!']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = self.$options()['$[]']("in")))) { + return self.$options()['$[]']("in")['$include?'](data)['$!']() + } else { + return $ret_or_4 + }; return nil; })())) { return [data, "in"]}; return [data, nil]; - }, TMP_IntegerFilter_filter_1.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $IntegerFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/float_filter"] = function(Opal) { +Opal.modules["mutations/float_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$nil?', '$[]', '$options', '$==', '$!', '$is_a?', '$=~', '$to_f', '$<', '$>']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $FloatFilter(){}; - var self = $FloatFilter = $klass($base, $super, 'FloatFilter', $FloatFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'FloatFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_FloatFilter_filter_1; + var $nesting = [self].concat($parent_nesting), $FloatFilter_filter$1; self.default_options = $hash2(["nils", "min", "max"], {"nils": false, "min": nil, "max": nil}); - return (Opal.defn(self, '$filter', TMP_FloatFilter_filter_1 = function $$filter(data) { - var $a, self = this; + return (Opal.def(self, '$filter', $FloatFilter_filter$1 = function $$filter(data) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; if ($truthy(data['$nil?']())) { @@ -25953,45 +29185,55 @@ Opal.modules["mutations/float_filter"] = function(Opal) { return [nil, "nils"];}; if (data['$==']("")) { return [data, "empty"]}; - if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'Float'))['$!']())) { - if ($truthy(($truthy($a = data['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? data['$=~'](/^[-+]?\d*\.?\d+/) : $a))) { + if ($truthy(data['$is_a?']($$($nesting, 'Float'))['$!']())) { + if ($truthy((function() {if ($truthy(($ret_or_1 = data['$is_a?']($$($nesting, 'String'))))) { + return data['$=~'](/^[-+]?\d*\.?\d+/) + } else { + return $ret_or_1 + }; return nil; })())) { data = data.$to_f() - } else if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'Integer')))) { + } else if ($truthy(data['$is_a?']($$($nesting, 'Integer')))) { data = data.$to_f() - } else { + } else { return [data, "float"] }}; - if ($truthy(($truthy($a = self.$options()['$[]']("min")) ? $rb_lt(data, self.$options()['$[]']("min")) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_2 = self.$options()['$[]']("min")))) { + return $rb_lt(data, self.$options()['$[]']("min")) + } else { + return $ret_or_2 + }; return nil; })())) { return [data, "min"]}; - if ($truthy(($truthy($a = self.$options()['$[]']("max")) ? $rb_gt(data, self.$options()['$[]']("max")) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = self.$options()['$[]']("max")))) { + return $rb_gt(data, self.$options()['$[]']("max")) + } else { + return $ret_or_3 + }; return nil; })())) { return [data, "max"]}; return [data, nil]; - }, TMP_FloatFilter_filter_1.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $FloatFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/boolean_filter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["mutations/boolean_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$nil?', '$[]', '$options', '$==', '$is_a?', '$to_s', '$downcase']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $BooleanFilter(){}; - var self = $BooleanFilter = $klass($base, $super, 'BooleanFilter', $BooleanFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'BooleanFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BooleanFilter_filter_1; + var $nesting = [self].concat($parent_nesting), $BooleanFilter_filter$1; self.default_options = $hash2(["nils"], {"nils": false}); Opal.const_set($nesting[0], 'BOOL_MAP', $hash2(["true", "1", "false", "0"], {"true": true, "1": true, "false": false, "0": false})); - return (Opal.defn(self, '$filter', TMP_BooleanFilter_filter_1 = function $$filter(data) { - var $a, self = this, res = nil; + return (Opal.def(self, '$filter', $BooleanFilter_filter$1 = function $$filter(data) { + var self = this, $ret_or_1 = nil, res = nil; if ($truthy(data['$nil?']())) { @@ -26001,47 +29243,49 @@ Opal.modules["mutations/boolean_filter"] = function(Opal) { return [nil, "nils"];}; if (data['$==']("")) { return [data, "empty"]}; - if ($truthy(($truthy($a = data['$=='](true)) ? $a : data['$=='](false)))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = data['$=='](true)))) { + return $ret_or_1 + } else { + return data['$=='](false) + }; return nil; })())) { return [data, nil]}; - if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'Integer')))) { + if ($truthy(data['$is_a?']($$($nesting, 'Integer')))) { data = data.$to_s()}; - if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + if ($truthy(data['$is_a?']($$($nesting, 'String')))) { - res = Opal.const_get_relative($nesting, 'BOOL_MAP')['$[]'](data.$downcase()); + res = $$($nesting, 'BOOL_MAP')['$[]'](data.$downcase()); if ($truthy(res['$nil?']())) { - } else { + } else { return [res, nil] }; return [data, "boolean"]; - } else { + } else { return [data, "boolean"] }; - }, TMP_BooleanFilter_filter_1.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $BooleanFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/duck_filter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["mutations/duck_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$nil?', '$[]', '$options', '$each', '$Array', '$respond_to?']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $DuckFilter(){}; - var self = $DuckFilter = $klass($base, $super, 'DuckFilter', $DuckFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DuckFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DuckFilter_filter_2; + var $nesting = [self].concat($parent_nesting), $DuckFilter_filter$1; self.default_options = $hash2(["nils", "methods"], {"nils": false, "methods": nil}); - return (Opal.defn(self, '$filter', TMP_DuckFilter_filter_2 = function $$filter(data) {try { + return (Opal.def(self, '$filter', $DuckFilter_filter$1 = function $$filter(data) {try { - var TMP_1, self = this; + var $$2, self = this; if ($truthy(data['$nil?']())) { @@ -26049,77 +29293,86 @@ Opal.modules["mutations/duck_filter"] = function(Opal) { if ($truthy(self.$options()['$[]']("nils"))) { return [nil, nil]}; return [nil, "nils"];}; - $send(self.$Array(self.$options()['$[]']("methods")), 'each', [], (TMP_1 = function(method){var self = TMP_1.$$s || this; -if (method == null) method = nil; - if ($truthy(data['$respond_to?'](method))) { + $send(self.$Array(self.$options()['$[]']("methods")), 'each', [], ($$2 = function(method){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (method == null) { + method = nil; + }; + if ($truthy(data['$respond_to?'](method))) { return nil - } else { + } else { Opal.ret([data, "duck"]) - }}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); return [data, nil]; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_DuckFilter_filter_2.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $DuckFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/date_filter"] = function(Opal) { +Opal.modules["mutations/date_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_le(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); } function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; - Opal.add_stubs(['$[]', '$options', '$==', '$nil?', '$is_a?', '$strptime', '$parse', '$respond_to?', '$to_date', '$<=', '$>=']); + Opal.add_stubs(['$nil?', '$[]', '$options', '$==', '$is_a?', '$strptime', '$parse', '$respond_to?', '$to_date', '$<=', '$>=']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $DateFilter(){}; - var self = $DateFilter = $klass($base, $super, 'DateFilter', $DateFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'DateFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_DateFilter_filter_1; + var $nesting = [self].concat($parent_nesting), $DateFilter_filter$1; self.default_options = $hash2(["nils", "empty_is_nil", "format", "after", "before"], {"nils": false, "empty_is_nil": false, "format": nil, "after": nil, "before": nil}); - return (Opal.defn(self, '$filter', TMP_DateFilter_filter_1 = function $$filter(data) { - var $a, self = this, actual_date = nil; + return (Opal.def(self, '$filter', $DateFilter_filter$1 = function $$filter(data) { + var self = this, actual_date = nil; - if ($truthy(($truthy($a = self.$options()['$[]']("empty_is_nil")) ? data['$==']("") : $a))) { - data = nil}; if ($truthy(data['$nil?']())) { if ($truthy(self.$options()['$[]']("nils"))) { return [nil, nil]}; return [nil, "nils"];}; - if (""['$=='](data)) { - return [data, "empty"]}; - if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'Date')))) { + if (data['$==']("")) { + if ($truthy(self.$options()['$[]']("empty_is_nil"))) { + return [nil, (function() {if ($truthy(self.$options()['$[]']("nils"))) { + return nil + } else { + return "nils" + }; return nil; })()] + } else { + return [data, "empty"] + }}; + if ($truthy(data['$is_a?']($$($nesting, 'Date')))) { actual_date = data - } else if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + } else if ($truthy(data['$is_a?']($$($nesting, 'String')))) { try { actual_date = (function() {if ($truthy(self.$options()['$[]']("format"))) { - return Opal.const_get_relative($nesting, 'Date').$strptime(data, self.$options()['$[]']("format")) - } else { - return Opal.const_get_relative($nesting, 'Date').$parse(data) + return $$($nesting, 'Date').$strptime(data, self.$options()['$[]']("format")) + } else { + return $$($nesting, 'Date').$parse(data) }; return nil; })() } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'ArgumentError')])) { + if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) { try { return [nil, "date"] - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }; } else if ($truthy(data['$respond_to?']("to_date"))) { actual_date = data.$to_date() - } else { + } else { return [nil, "date"] }; if ($truthy(self.$options()['$[]']("after"))) { @@ -26129,36 +29382,34 @@ Opal.modules["mutations/date_filter"] = function(Opal) { if ($truthy($rb_ge(actual_date, self.$options()['$[]']("before")))) { return [nil, "before"]}}; return [actual_date, nil]; - }, TMP_DateFilter_filter_1.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $DateFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/time_filter"] = function(Opal) { +Opal.modules["mutations/time_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_le(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); } function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$nil?', '$[]', '$options', '$==', '$is_a?', '$strptime', '$parse', '$respond_to?', '$to_time', '$<=', '$>=']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $TimeFilter(){}; - var self = $TimeFilter = $klass($base, $super, 'TimeFilter', $TimeFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'TimeFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_TimeFilter_filter_1; + var $nesting = [self].concat($parent_nesting), $TimeFilter_filter$1; self.default_options = $hash2(["nils", "format", "after", "before"], {"nils": false, "format": nil, "after": nil, "before": nil}); - return (Opal.defn(self, '$filter', TMP_TimeFilter_filter_1 = function $$filter(data) { + return (Opal.def(self, '$filter', $TimeFilter_filter$1 = function $$filter(data) { var self = this, actual_time = nil; @@ -26169,26 +29420,26 @@ Opal.modules["mutations/time_filter"] = function(Opal) { return [nil, "nils"];}; if (""['$=='](data)) { return [data, "empty"]}; - if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'Time')))) { + if ($truthy(data['$is_a?']($$($nesting, 'Time')))) { actual_time = data - } else if ($truthy(data['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { + } else if ($truthy(data['$is_a?']($$($nesting, 'String')))) { try { actual_time = (function() {if ($truthy(self.$options()['$[]']("format"))) { - return Opal.const_get_relative($nesting, 'Time').$strptime(data, self.$options()['$[]']("format")) - } else { - return Opal.const_get_relative($nesting, 'Time').$parse(data) + return $$($nesting, 'Time').$strptime(data, self.$options()['$[]']("format")) + } else { + return $$($nesting, 'Time').$parse(data) }; return nil; })() } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'ArgumentError')])) { + if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) { try { return [nil, "time"] - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } }; } else if ($truthy(data['$respond_to?']("to_time"))) { actual_time = data.$to_time() - } else { + } else { return [nil, "time"] }; if ($truthy(self.$options()['$[]']("after"))) { @@ -26198,35 +29449,33 @@ Opal.modules["mutations/time_filter"] = function(Opal) { if ($truthy($rb_ge(actual_time, self.$options()['$[]']("before")))) { return [nil, "before"]}}; return [actual_time, nil]; - }, TMP_TimeFilter_filter_1.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $TimeFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/file_filter"] = function(Opal) { +Opal.modules["mutations/file_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$nil?', '$[]', '$options', '$==', '$concat', '$each', '$respond_to?', '$is_a?', '$>', '$size']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $FileFilter(){}; - var self = $FileFilter = $klass($base, $super, 'FileFilter', $FileFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'FileFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_FileFilter_filter_2; + var $nesting = [self].concat($parent_nesting), $FileFilter_filter$1; self.default_options = $hash2(["nils", "upload", "size"], {"nils": false, "upload": false, "size": nil}); - return (Opal.defn(self, '$filter', TMP_FileFilter_filter_2 = function $$filter(data) {try { + return (Opal.def(self, '$filter', $FileFilter_filter$1 = function $$filter(data) {try { - var TMP_1, self = this, methods = nil; + var $$2, self = this, methods = nil; if ($truthy(data['$nil?']())) { @@ -26239,81 +29488,92 @@ Opal.modules["mutations/file_filter"] = function(Opal) { methods = ["read", "size"]; if ($truthy(self.$options()['$[]']("upload"))) { methods.$concat(["original_filename", "content_type"])}; - $send(methods, 'each', [], (TMP_1 = function(method){var self = TMP_1.$$s || this; -if (method == null) method = nil; - if ($truthy(data['$respond_to?'](method))) { + $send(methods, 'each', [], ($$2 = function(method){var self = $$2.$$s == null ? this : $$2.$$s; + + + + if (method == null) { + method = nil; + }; + if ($truthy(data['$respond_to?'](method))) { return nil - } else { + } else { Opal.ret([data, "file"]) - }}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); - if ($truthy(self.$options()['$[]']("size")['$is_a?'](Opal.const_get_relative($nesting, 'Integer')))) { + };}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + if ($truthy(self.$options()['$[]']("size")['$is_a?']($$($nesting, 'Integer')))) { if ($truthy($rb_gt(data.$size(), self.$options()['$[]']("size")))) { return [data, "size"]}}; return [data, nil]; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_FileFilter_filter_2.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $FileFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/model_filter"] = function(Opal) { +Opal.modules["mutations/model_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$[]', '$options', '$camelize', '$to_s', '$is_a?', '$constantize', '$[]=', '$-', '$cache_constants?', '$initialize_constants!', '$nil?', '$run', '$success?', '$result', '$errors', '$!', '$respond_to?', '$new_record?']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ModelFilter(){}; - var self = $ModelFilter = $klass($base, $super, 'ModelFilter', $ModelFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ModelFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ModelFilter_initialize_1, TMP_ModelFilter_initialize_constants$B_2, TMP_ModelFilter_filter_3; + var $nesting = [self].concat($parent_nesting), $ModelFilter_initialize$1, $ModelFilter_initialize_constants$excl$2, $ModelFilter_filter$3; - def.initialize_constants = def.name = nil; + self.$$prototype.initialize_constants = self.$$prototype.name = nil; self.default_options = $hash2(["nils", "class", "builder", "new_records"], {"nils": false, "class": nil, "builder": nil, "new_records": false}); - Opal.defn(self, '$initialize', TMP_ModelFilter_initialize_1 = function $$initialize(name, opts) { - var self = this, $iter = TMP_ModelFilter_initialize_1.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $ModelFilter_initialize$1 = function $$initialize(name, opts) { + var $iter = $ModelFilter_initialize$1.$$p, $yield = $iter || nil, self = this; + if ($iter) $ModelFilter_initialize$1.$$p = null; + + if (opts == null) { opts = $hash2([], {}); - } - if ($iter) TMP_ModelFilter_initialize_1.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_ModelFilter_initialize_1, false), [opts], null); + }; + $send2(self, $find_super(self, 'initialize', $ModelFilter_initialize$1, false, true), 'initialize', [opts], null); return (self.name = name); - }, TMP_ModelFilter_initialize_1.$$arity = -2); + }, $ModelFilter_initialize$1.$$arity = -2); - Opal.defn(self, '$initialize_constants!', TMP_ModelFilter_initialize_constants$B_2 = function() { - var $a, $b, self = this, class_const = nil, $writer = nil; + Opal.def(self, '$initialize_constants!', $ModelFilter_initialize_constants$excl$2 = function() { + var self = this, $ret_or_1 = nil, class_const = nil, $ret_or_2 = nil, $writer = nil; - self.initialize_constants = ($truthy($a = self.initialize_constants) ? $a : ((class_const = ($truthy($b = self.$options()['$[]']("class")) ? $b : self.name.$to_s().$camelize())), (function() {if ($truthy(class_const['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - return (class_const = class_const.$constantize()) - } else { - return nil - }; return nil; })(), (($writer = ["class", class_const]), $send(self.$options(), '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]), (function() {if ($truthy(self.$options()['$[]']("builder"))) { - if ($truthy(self.$options()['$[]']("builder")['$is_a?'](Opal.const_get_relative($nesting, 'String')))) { - - $writer = ["builder", self.$options()['$[]']("builder").$constantize()]; - $send(self.$options(), '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)]; - } else { - return nil - } + self.initialize_constants = (function() {if ($truthy(($ret_or_1 = self.initialize_constants))) { + return $ret_or_1 + } else { + + class_const = (function() {if ($truthy(($ret_or_2 = self.$options()['$[]']("class")))) { + return $ret_or_2 } else { + return self.name.$to_s().$camelize() + }; return nil; })(); + if ($truthy(class_const['$is_a?']($$($nesting, 'String')))) { + class_const = class_const.$constantize()}; + + $writer = ["class", class_const]; + $send(self.$options(), '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + if ($truthy(self.$options()['$[]']("builder"))) { + if ($truthy(self.$options()['$[]']("builder")['$is_a?']($$($nesting, 'String')))) { + + $writer = ["builder", self.$options()['$[]']("builder").$constantize()]; + $send(self.$options(), '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];}}; + return true; + }; return nil; })(); + if ($truthy($$($nesting, 'Mutations')['$cache_constants?']())) { return nil - }; return nil; })(), true)); - if ($truthy(Opal.const_get_relative($nesting, 'Mutations')['$cache_constants?']())) { - return nil - } else { + } else { if ($truthy(self.$options()['$[]']("class"))) { @@ -26325,13 +29585,13 @@ Opal.modules["mutations/model_filter"] = function(Opal) { $writer = ["builder", self.$options()['$[]']("builder").$to_s().$constantize()]; $send(self.$options(), '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { return nil }; }; - }, TMP_ModelFilter_initialize_constants$B_2.$$arity = 0); - return (Opal.defn(self, '$filter', TMP_ModelFilter_filter_3 = function $$filter(data) { - var $a, $b, self = this, ret = nil; + }, $ModelFilter_initialize_constants$excl$2.$$arity = 0); + return (Opal.def(self, '$filter', $ModelFilter_filter$3 = function $$filter(data) { + var self = this, $ret_or_3 = nil, ret = nil, $ret_or_4 = nil, $ret_or_5 = nil; self['$initialize_constants!'](); @@ -26340,45 +29600,56 @@ Opal.modules["mutations/model_filter"] = function(Opal) { if ($truthy(self.$options()['$[]']("nils"))) { return [nil, nil]}; return [nil, "nils"];}; - if ($truthy(($truthy($a = data['$is_a?'](Opal.const_get_relative($nesting, 'Hash'))) ? self.$options()['$[]']("builder") : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = data['$is_a?']($$($nesting, 'Hash'))))) { + return self.$options()['$[]']("builder") + } else { + return $ret_or_3 + }; return nil; })())) { ret = self.$options()['$[]']("builder").$run(data); if ($truthy(ret['$success?']())) { data = ret.$result() - } else { + } else { return [data, ret.$errors()] };}; if ($truthy(data['$is_a?'](self.$options()['$[]']("class")))) { - if ($truthy(($truthy($a = self.$options()['$[]']("new_records")['$!']()) ? ($truthy($b = data['$respond_to?']("new_record?")) ? data['$new_record?']() : $b) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = self.$options()['$[]']("new_records")['$!']()))) { + + if ($truthy(($ret_or_5 = data['$respond_to?']("new_record?")))) { + return data['$new_record?']() + } else { + return $ret_or_5 + }; + } else { + return $ret_or_4 + }; return nil; })())) { return [data, "new_records"]}; return [data, nil];}; return [data, "model"]; - }, TMP_ModelFilter_filter_3.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'InputFilter'), $nesting) + }, $ModelFilter_filter$3.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'InputFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/symbol_filter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; +Opal.modules["mutations/symbol_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$nil?', '$[]', '$options', '$===', '$to_sym', '$!', '$include?']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $SymbolFilter(){}; - var self = $SymbolFilter = $klass($base, $super, 'SymbolFilter', $SymbolFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SymbolFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_SymbolFilter_filter_1; + var $nesting = [self].concat($parent_nesting), $SymbolFilter_filter$1; self.default_options = $hash2(["nils", "in"], {"nils": false, "in": nil}); - return (Opal.defn(self, '$filter', TMP_SymbolFilter_filter_1 = function $$filter(data) { - var $a, self = this, $case = nil; + return (Opal.def(self, '$filter', $SymbolFilter_filter$1 = function $$filter(data) { + var self = this, $case = nil, $ret_or_1 = nil; if ($truthy(data['$nil?']())) { @@ -26387,298 +29658,352 @@ Opal.modules["mutations/symbol_filter"] = function(Opal) { return [nil, nil]}; return [nil, "nils"];}; $case = data; - if (Opal.const_get_relative($nesting, 'Symbol')['$===']($case)) {nil} - else if (Opal.const_get_relative($nesting, 'String')['$===']($case)) {data = data.$to_sym()} + if ($$($nesting, 'Symbol')['$===']($case)) {nil} + else if ($$($nesting, 'String')['$===']($case)) {data = data.$to_sym()} else {return [nil, "symbol"]}; - if ($truthy(($truthy($a = self.$options()['$[]']("in")) ? self.$options()['$[]']("in")['$include?'](data)['$!']() : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = self.$options()['$[]']("in")))) { + return self.$options()['$[]']("in")['$include?'](data)['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { return [data, "in"]}; return [data, nil]; - }, TMP_SymbolFilter_filter_1.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $SymbolFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/outcome"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["mutations/outcome"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; Opal.add_stubs(['$attr_reader']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Outcome(){}; - var self = $Outcome = $klass($base, $super, 'Outcome', $Outcome); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Outcome'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Outcome_initialize_1, TMP_Outcome_success$q_2; + var $nesting = [self].concat($parent_nesting), $Outcome_initialize$1, $Outcome_success$ques$2; - def.success = nil; + self.$$prototype.success = nil; self.$attr_reader("result", "errors", "inputs"); - Opal.defn(self, '$initialize', TMP_Outcome_initialize_1 = function $$initialize(is_success, result, errors, inputs) { + Opal.def(self, '$initialize', $Outcome_initialize$1 = function $$initialize(is_success, result, errors, inputs) { var $a, self = this; return $a = [is_success, result, errors, inputs], (self.success = $a[0]), (self.result = $a[1]), (self.errors = $a[2]), (self.inputs = $a[3]), $a - }, TMP_Outcome_initialize_1.$$arity = 4); - return (Opal.defn(self, '$success?', TMP_Outcome_success$q_2 = function() { + }, $Outcome_initialize$1.$$arity = 4); + return (Opal.def(self, '$success?', $Outcome_success$ques$2 = function() { var self = this; return self.success - }, TMP_Outcome_success$q_2.$$arity = 0), nil) && 'success?'; + }, $Outcome_success$ques$2.$$arity = 0), nil) && 'success?'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations/command"] = function(Opal) { +Opal.modules["mutations/command"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $hash2 = Opal.hash2; Opal.add_stubs(['$send', '$input_filters', '$to_proc', '$each', '$define_method', '$[]', '$has_key?', '$[]=', '$-', '$private', '$create_attr_methods', '$run', '$new', '$run!', '$validation_outcome', '$==', '$superclass', '$dup', '$inject', '$with_indifferent_access', '$respond_to?', '$raise', '$merge!', '$filter', '$has_errors?', '$validate', '$class', '$!', '$nil?', '$execute', '$success?', '$result', '$errors', '$protected', '$attr_reader', '$is_a?', '$tap', '$split', '$to_s', '$pop', '$to_sym', '$any?']); return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Command(){}; - var self = $Command = $klass($base, $super, 'Command', $Command); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Command'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Command_initialize_13, TMP_Command_input_filters_14, TMP_Command_has_errors$q_15, TMP_Command_run_16, TMP_Command_run$B_17, TMP_Command_validation_outcome_18, TMP_Command_validate_19, TMP_Command_execute_20, TMP_Command_add_error_23, TMP_Command_merge_errors_24; + var $nesting = [self].concat($parent_nesting), $Command_initialize$12, $Command_input_filters$14, $Command_has_errors$ques$15, $Command_run$16, $Command_run$excl$17, $Command_validation_outcome$18, $Command_validate$19, $Command_execute$20, $Command_add_error$21, $Command_merge_errors$24; - def.raw_inputs = def.errors = def.inputs = nil; + self.$$prototype.raw_inputs = self.$$prototype.errors = self.$$prototype.inputs = nil; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_create_attr_methods_1, TMP_required_6, TMP_optional_7, TMP_run_8, TMP_run$B_9, TMP_validate_10, TMP_input_filters_11; + var $nesting = [self].concat($parent_nesting), $create_attr_methods$1, $required$6, $optional$7, $run$8, $run$excl$9, $validate$10, $input_filters$11; - Opal.defn(self, '$create_attr_methods', TMP_create_attr_methods_1 = function $$create_attr_methods(meth) { - var TMP_2, self = this, $iter = TMP_create_attr_methods_1.$$p, block = $iter || nil, keys = nil; + Opal.def(self, '$create_attr_methods', $create_attr_methods$1 = function $$create_attr_methods(meth) { + var $iter = $create_attr_methods$1.$$p, block = $iter || nil, $$2, self = this, keys = nil; - if ($iter) TMP_create_attr_methods_1.$$p = null; + if ($iter) $create_attr_methods$1.$$p = null; + + if ($iter) $create_attr_methods$1.$$p = null;; $send(self.$input_filters(), 'send', [meth], block.$to_proc()); keys = self.$input_filters().$send("" + (meth) + "_keys"); - return $send(keys, 'each', [], (TMP_2 = function(key){var self = TMP_2.$$s || this, TMP_3, TMP_4, TMP_5; -if (key == null) key = nil; - - $send(self, 'define_method', [key], (TMP_3 = function(){var self = TMP_3.$$s || this; + return $send(keys, 'each', [], ($$2 = function(key){var self = $$2.$$s == null ? this : $$2.$$s, $$3, $$4, $$5; + + + + if (key == null) { + key = nil; + }; + $send(self, 'define_method', [key], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; if (self.inputs == null) self.inputs = nil; - return self.inputs['$[]'](key)}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)); - $send(self, 'define_method', ["" + (key) + "_present?"], (TMP_4 = function(){var self = TMP_4.$$s || this; + return self.inputs['$[]'](key)}, $$3.$$s = self, $$3.$$arity = 0, $$3)); + $send(self, 'define_method', ["" + (key) + "_present?"], ($$4 = function(){var self = $$4.$$s == null ? this : $$4.$$s; if (self.inputs == null) self.inputs = nil; - return self.inputs['$has_key?'](key)}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4)); - return $send(self, 'define_method', ["" + (key) + "="], (TMP_5 = function(v){var self = TMP_5.$$s || this, $writer = nil; + return self.inputs['$has_key?'](key)}, $$4.$$s = self, $$4.$$arity = 0, $$4)); + return $send(self, 'define_method', ["" + (key) + "="], ($$5 = function(v){var self = $$5.$$s == null ? this : $$5.$$s, $writer = nil; if (self.inputs == null) self.inputs = nil; -if (v == null) v = nil; - + + + + if (v == null) { + v = nil; + }; $writer = [key, v]; $send(self.inputs, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_5.$$s = self, TMP_5.$$arity = 1, TMP_5));}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - }, TMP_create_attr_methods_1.$$arity = 1); + return $writer[$rb_minus($writer["length"], 1)];}, $$5.$$s = self, $$5.$$arity = 1, $$5));}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $create_attr_methods$1.$$arity = 1); self.$private("create_attr_methods"); - Opal.defn(self, '$required', TMP_required_6 = function $$required() { - var self = this, $iter = TMP_required_6.$$p, block = $iter || nil; + Opal.def(self, '$required', $required$6 = function $$required() { + var $iter = $required$6.$$p, block = $iter || nil, self = this; - if ($iter) TMP_required_6.$$p = null; - return $send(self, 'create_attr_methods', ["required"], block.$to_proc()) - }, TMP_required_6.$$arity = 0); + if ($iter) $required$6.$$p = null; + + + if ($iter) $required$6.$$p = null;; + return $send(self, 'create_attr_methods', ["required"], block.$to_proc()); + }, $required$6.$$arity = 0); - Opal.defn(self, '$optional', TMP_optional_7 = function $$optional() { - var self = this, $iter = TMP_optional_7.$$p, block = $iter || nil; + Opal.def(self, '$optional', $optional$7 = function $$optional() { + var $iter = $optional$7.$$p, block = $iter || nil, self = this; - if ($iter) TMP_optional_7.$$p = null; - return $send(self, 'create_attr_methods', ["optional"], block.$to_proc()) - }, TMP_optional_7.$$arity = 0); + if ($iter) $optional$7.$$p = null; + + + if ($iter) $optional$7.$$p = null;; + return $send(self, 'create_attr_methods', ["optional"], block.$to_proc()); + }, $optional$7.$$arity = 0); - Opal.defn(self, '$run', TMP_run_8 = function $$run($a_rest) { - var self = this, args; + Opal.def(self, '$run', $run$8 = function $$run($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self, 'new', Opal.to_a(args)).$run() - }, TMP_run_8.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, 'new', Opal.to_a(args)).$run(); + }, $run$8.$$arity = -1); - Opal.defn(self, '$run!', TMP_run$B_9 = function($a_rest) { - var self = this, args; + Opal.def(self, '$run!', $run$excl$9 = function($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self, 'new', Opal.to_a(args))['$run!']() - }, TMP_run$B_9.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, 'new', Opal.to_a(args))['$run!'](); + }, $run$excl$9.$$arity = -1); - Opal.defn(self, '$validate', TMP_validate_10 = function $$validate($a_rest) { - var self = this, args; + Opal.def(self, '$validate', $validate$10 = function $$validate($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self, 'new', Opal.to_a(args)).$validation_outcome() - }, TMP_validate_10.$$arity = -1); - return (Opal.defn(self, '$input_filters', TMP_input_filters_11 = function $$input_filters() { - var $a, self = this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, 'new', Opal.to_a(args)).$validation_outcome(); + }, $validate$10.$$arity = -1); + return (Opal.def(self, '$input_filters', $input_filters$11 = function $$input_filters() { + var self = this, $ret_or_1 = nil; if (self.input_filters == null) self.input_filters = nil; - return (self.input_filters = ($truthy($a = self.input_filters) ? $a : (function() {if (Opal.const_get_relative($nesting, 'Command')['$=='](self.$superclass())) { - return Opal.const_get_relative($nesting, 'HashFilter').$new() + return (self.input_filters = (function() {if ($truthy(($ret_or_1 = self.input_filters))) { + return $ret_or_1 + } else { + + if ($$($nesting, 'Command')['$=='](self.$superclass())) { + return $$($nesting, 'HashFilter').$new() } else { - return self.$superclass().$input_filters().$dup() - }; return nil; })())) - }, TMP_input_filters_11.$$arity = 0), nil) && 'input_filters'; + return self.$superclass().$input_filters().$dup() + }; + }; return nil; })()) + }, $input_filters$11.$$arity = 0), nil) && 'input_filters'; })(Opal.get_singleton_class(self), $nesting); - Opal.defn(self, '$initialize', TMP_Command_initialize_13 = function $$initialize($a_rest) { - var TMP_12, $b, $c, self = this, args; + Opal.def(self, '$initialize', $Command_initialize$12 = function $$initialize($a) { + var $post_args, args, $$13, $b, $c, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - self.raw_inputs = $send(args, 'inject', [$hash2([], {}).$with_indifferent_access()], (TMP_12 = function(h, arg){var self = TMP_12.$$s || this; -if (h == null) h = nil;if (arg == null) arg = nil; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + self.raw_inputs = $send(args, 'inject', [$hash2([], {}).$with_indifferent_access()], ($$13 = function(h, arg){var self = $$13.$$s == null ? this : $$13.$$s; + + + + if (h == null) { + h = nil; + }; + + if (arg == null) { + arg = nil; + }; if ($truthy(arg['$respond_to?']("to_hash"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError').$new("All arguments must be hashes")) + } else { + self.$raise($$($nesting, 'ArgumentError').$new("All arguments must be hashes")) }; - return h['$merge!'](arg);}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12)); + return h['$merge!'](arg);}, $$13.$$s = self, $$13.$$arity = 2, $$13)); $c = self.$input_filters().$filter(self.raw_inputs), $b = Opal.to_ary($c), (self.inputs = ($b[0] == null ? nil : $b[0])), (self.errors = ($b[1] == null ? nil : $b[1])), $c; if ($truthy(self['$has_errors?']())) { return nil - } else { + } else { return self.$validate() }; - }, TMP_Command_initialize_13.$$arity = -1); + }, $Command_initialize$12.$$arity = -1); - Opal.defn(self, '$input_filters', TMP_Command_input_filters_14 = function $$input_filters() { + Opal.def(self, '$input_filters', $Command_input_filters$14 = function $$input_filters() { var self = this; return self.$class().$input_filters() - }, TMP_Command_input_filters_14.$$arity = 0); + }, $Command_input_filters$14.$$arity = 0); - Opal.defn(self, '$has_errors?', TMP_Command_has_errors$q_15 = function() { + Opal.def(self, '$has_errors?', $Command_has_errors$ques$15 = function() { var self = this; return self.errors['$nil?']()['$!']() - }, TMP_Command_has_errors$q_15.$$arity = 0); + }, $Command_has_errors$ques$15.$$arity = 0); - Opal.defn(self, '$run', TMP_Command_run_16 = function $$run() { + Opal.def(self, '$run', $Command_run$16 = function $$run() { var self = this; if ($truthy(self['$has_errors?']())) { return self.$validation_outcome()}; return self.$validation_outcome(self.$execute()); - }, TMP_Command_run_16.$$arity = 0); + }, $Command_run$16.$$arity = 0); - Opal.defn(self, '$run!', TMP_Command_run$B_17 = function() { + Opal.def(self, '$run!', $Command_run$excl$17 = function() { var self = this, outcome = nil; outcome = self.$run(); if ($truthy(outcome['$success?']())) { return outcome.$result() - } else { - return self.$raise(Opal.const_get_relative($nesting, 'ValidationException').$new(outcome.$errors())) + } else { + return self.$raise($$($nesting, 'ValidationException').$new(outcome.$errors())) }; - }, TMP_Command_run$B_17.$$arity = 0); + }, $Command_run$excl$17.$$arity = 0); - Opal.defn(self, '$validation_outcome', TMP_Command_validation_outcome_18 = function $$validation_outcome(result) { + Opal.def(self, '$validation_outcome', $Command_validation_outcome$18 = function $$validation_outcome(result) { var self = this; + + if (result == null) { result = nil; - } - return Opal.const_get_relative($nesting, 'Outcome').$new(self['$has_errors?']()['$!'](), (function() {if ($truthy(self['$has_errors?']())) { + }; + return $$($nesting, 'Outcome').$new(self['$has_errors?']()['$!'](), (function() {if ($truthy(self['$has_errors?']())) { return nil - } else { + } else { return result - }; return nil; })(), self.errors, self.inputs) - }, TMP_Command_validation_outcome_18.$$arity = -1); + }; return nil; })(), self.errors, self.inputs); + }, $Command_validation_outcome$18.$$arity = -1); self.$protected(); self.$attr_reader("inputs", "raw_inputs"); - Opal.defn(self, '$validate', TMP_Command_validate_19 = function $$validate() { + Opal.def(self, '$validate', $Command_validate$19 = function $$validate() { var self = this; return nil - }, TMP_Command_validate_19.$$arity = 0); + }, $Command_validate$19.$$arity = 0); - Opal.defn(self, '$execute', TMP_Command_execute_20 = function $$execute() { + Opal.def(self, '$execute', $Command_execute$20 = function $$execute() { var self = this; return nil - }, TMP_Command_execute_20.$$arity = 0); + }, $Command_execute$20.$$arity = 0); - Opal.defn(self, '$add_error', TMP_Command_add_error_23 = function $$add_error(key, kind, message) { - var $a, TMP_21, self = this; + Opal.def(self, '$add_error', $Command_add_error$21 = function $$add_error(key, kind, message) { + var $$22, self = this, $ret_or_2 = nil; + + if (message == null) { message = nil; - } - - if ($truthy(kind['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError').$new("Invalid kind")) }; - self.errors = ($truthy($a = self.errors) ? $a : Opal.const_get_relative($nesting, 'ErrorHash').$new()); - return $send(self.errors, 'tap', [], (TMP_21 = function(errs){var self = TMP_21.$$s || this, TMP_22, path = nil, last = nil, inner = nil, $writer = nil; -if (errs == null) errs = nil; - + if ($truthy(kind['$is_a?']($$($nesting, 'Symbol')))) { + } else { + self.$raise($$($nesting, 'ArgumentError').$new("Invalid kind")) + }; + self.errors = (function() {if ($truthy(($ret_or_2 = self.errors))) { + return $ret_or_2 + } else { + return $$($nesting, 'ErrorHash').$new() + }; return nil; })(); + return $send(self.errors, 'tap', [], ($$22 = function(errs){var self = $$22.$$s == null ? this : $$22.$$s, $$23, path = nil, last = nil, inner = nil, $writer = nil; + + + + if (errs == null) { + errs = nil; + }; path = key.$to_s().$split("."); last = path.$pop(); - inner = $send(path, 'inject', [errs], (TMP_22 = function(cur_errors, part){var self = TMP_22.$$s || this, $b, $writer = nil; -if (cur_errors == null) cur_errors = nil;if (part == null) part = nil; - return ($truthy($b = cur_errors['$[]'](part.$to_sym())) ? $b : (($writer = [part.$to_sym(), Opal.const_get_relative($nesting, 'ErrorHash').$new()]), $send(cur_errors, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))}, TMP_22.$$s = self, TMP_22.$$arity = 2, TMP_22)); + inner = $send(path, 'inject', [errs], ($$23 = function(cur_errors, part){var self = $$23.$$s == null ? this : $$23.$$s, $ret_or_3 = nil, $writer = nil; + + + + if (cur_errors == null) { + cur_errors = nil; + }; + + if (part == null) { + part = nil; + }; + if ($truthy(($ret_or_3 = cur_errors['$[]'](part.$to_sym())))) { + return $ret_or_3 + } else { + + $writer = [part.$to_sym(), $$($nesting, 'ErrorHash').$new()]; + $send(cur_errors, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + };}, $$23.$$s = self, $$23.$$arity = 2, $$23)); - $writer = [last, Opal.const_get_relative($nesting, 'ErrorAtom').$new(key, kind, $hash2(["message"], {"message": message}))]; + $writer = [last, $$($nesting, 'ErrorAtom').$new(last.$to_sym(), kind, $hash2(["message"], {"message": message}))]; $send(inner, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, TMP_21.$$s = self, TMP_21.$$arity = 1, TMP_21)); - }, TMP_Command_add_error_23.$$arity = -3); - return (Opal.defn(self, '$merge_errors', TMP_Command_merge_errors_24 = function $$merge_errors(hash) { - var $a, self = this; + return $writer[$rb_minus($writer["length"], 1)];;}, $$22.$$s = self, $$22.$$arity = 1, $$22)); + }, $Command_add_error$21.$$arity = -3); + return (Opal.def(self, '$merge_errors', $Command_merge_errors$24 = function $$merge_errors(hash) { + var self = this, $ret_or_4 = nil; if ($truthy(hash['$any?']())) { - self.errors = ($truthy($a = self.errors) ? $a : Opal.const_get_relative($nesting, 'ErrorHash').$new()); - return self.errors['$merge!'](hash); + self.errors = (function() {if ($truthy(($ret_or_4 = self.errors))) { + return $ret_or_4 } else { + return $$($nesting, 'ErrorHash').$new() + }; return nil; })(); + return self.errors['$merge!'](hash); + } else { return nil } - }, TMP_Command_merge_errors_24.$$arity = 1), nil) && 'merge_errors'; + }, $Command_merge_errors$24.$$arity = 1), nil) && 'merge_errors'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["mutations"] = function(Opal) { +Opal.modules["mutations"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $writer = nil; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $send = Opal.send, $writer = nil; Opal.add_stubs(['$require', '$new', '$cache_constants=', '$-']); @@ -26707,75 +30032,76 @@ Opal.modules["mutations"] = function(Opal) { self.$require("mutations/outcome"); self.$require("mutations/command"); (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_error_message_creator_1, TMP_error_message_creator$eq_2, TMP_cache_constants$eq_3, TMP_cache_constants$q_4; + return (function(self, $parent_nesting) { + var $nesting = [self].concat($parent_nesting), $error_message_creator$1, $error_message_creator$eq$2, $cache_constants$eq$3, $cache_constants$ques$4; - Opal.defn(self, '$error_message_creator', TMP_error_message_creator_1 = function $$error_message_creator() { - var $a, self = this; + Opal.def(self, '$error_message_creator', $error_message_creator$1 = function $$error_message_creator() { + var self = this, $ret_or_1 = nil; if (self.error_message_creator == null) self.error_message_creator = nil; - return (self.error_message_creator = ($truthy($a = self.error_message_creator) ? $a : Opal.const_get_relative($nesting, 'DefaultErrorMessageCreator').$new())) - }, TMP_error_message_creator_1.$$arity = 0); + return (self.error_message_creator = (function() {if ($truthy(($ret_or_1 = self.error_message_creator))) { + return $ret_or_1 + } else { + return $$($nesting, 'DefaultErrorMessageCreator').$new() + }; return nil; })()) + }, $error_message_creator$1.$$arity = 0); - Opal.defn(self, '$error_message_creator=', TMP_error_message_creator$eq_2 = function(creator) { + Opal.def(self, '$error_message_creator=', $error_message_creator$eq$2 = function(creator) { var self = this; return (self.error_message_creator = creator) - }, TMP_error_message_creator$eq_2.$$arity = 1); + }, $error_message_creator$eq$2.$$arity = 1); - Opal.defn(self, '$cache_constants=', TMP_cache_constants$eq_3 = function(val) { + Opal.def(self, '$cache_constants=', $cache_constants$eq$3 = function(val) { var self = this; return (self.cache_constants = val) - }, TMP_cache_constants$eq_3.$$arity = 1); - return (Opal.defn(self, '$cache_constants?', TMP_cache_constants$q_4 = function() { + }, $cache_constants$eq$3.$$arity = 1); + return (Opal.def(self, '$cache_constants?', $cache_constants$ques$4 = function() { var self = this; if (self.cache_constants == null) self.cache_constants = nil; return self.cache_constants - }, TMP_cache_constants$q_4.$$arity = 0), nil) && 'cache_constants?'; + }, $cache_constants$ques$4.$$arity = 0), nil) && 'cache_constants?'; })(Opal.get_singleton_class(self), $nesting) })($nesting[0], $nesting); $writer = [true]; - $send(Opal.const_get_relative($nesting, 'Mutations'), 'cache_constants=', Opal.to_a($writer)); + $send($$($nesting, 'Mutations'), 'cache_constants=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)];; }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/filters/outbound_filter"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2; +Opal.modules["hyper-operation/filters/outbound_filter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $hash2 = Opal.hash2; return (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $OutboundFilter(){}; - var self = $OutboundFilter = $klass($base, $super, 'OutboundFilter', $OutboundFilter); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'OutboundFilter'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_OutboundFilter_filter_1; + var $nesting = [self].concat($parent_nesting), $OutboundFilter_filter$1; self.default_options = $hash2([], {}); - return (Opal.defn(self, '$filter', TMP_OutboundFilter_filter_1 = function $$filter(data) { + return (Opal.def(self, '$filter', $OutboundFilter_filter$1 = function $$filter(data) { var self = this; return [data, "outbound"] - }, TMP_OutboundFilter_filter_1.$$arity = 1), nil) && 'filter'; - })($nesting[0], Opal.const_get_relative($nesting, 'AdditionalFilter'), $nesting) + }, $OutboundFilter_filter$1.$$arity = 1), nil) && 'filter'; + })($nesting[0], $$($nesting, 'AdditionalFilter'), $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/http"] = function(Opal) { +Opal.modules["hyper-operation/http"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } @@ -26788,50 +30114,65 @@ Opal.modules["hyper-operation/http"] = function(Opal) { function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; Opal.add_stubs(['$each', '$define_singleton_method', '$send', '$new', '$define_method', '$attr_reader', '$>', '$+', '$-', '$<', '$delete', '$succeed', '$fail', '$promise', '$parse', '$private', '$tap', '$proc', '$ok?', '$resolve', '$reject', '$from_object', '$call']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting), $Hyperstack$3; - (function($base, $super, $parent_nesting) { - function $HTTP(){}; - var self = $HTTP = $klass($base, $super, 'HTTP', $HTTP); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'HTTP'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_HTTP_1, TMP_HTTP_initialize_4, TMP_HTTP_active$q_5, TMP_HTTP_active_requests_6, TMP_HTTP_incr_active_requests_7, TMP_HTTP_decr_active_requests_8, TMP_HTTP_send_9, TMP_HTTP_json_10, TMP_HTTP_ok$q_11, TMP_HTTP_get_header_12, TMP_HTTP_inspect_13, TMP_HTTP_promise_16, TMP_HTTP_succeed_17, TMP_HTTP_fail_18; + var $nesting = [self].concat($parent_nesting), $HTTP$1, $HTTP_initialize$5, $HTTP_active$ques$6, $HTTP_active_requests$7, $HTTP_incr_active_requests$8, $HTTP_decr_active_requests$9, $HTTP_send$10, $HTTP_json$11, $HTTP_ok$ques$12, $HTTP_get_header$13, $HTTP_inspect$14, $HTTP_promise$15, $HTTP_succeed$18, $HTTP_fail$19; - def.handler = def.json = def.body = def.ok = def.xhr = def.url = def.method = def.promise = def.status_code = nil; + self.$$prototype.handler = self.$$prototype.json = self.$$prototype.body = self.$$prototype.ok = self.$$prototype.xhr = self.$$prototype.url = self.$$prototype.method = self.$$prototype.promise = self.$$prototype.status_code = nil; Opal.const_set($nesting[0], 'ACTIONS', ["get", "post", "put", "delete", "patch", "head"]); - $send(Opal.const_get_relative($nesting, 'ACTIONS'), 'each', [], (TMP_HTTP_1 = function(action){var self = TMP_HTTP_1.$$s || this, TMP_2, TMP_3; -if (action == null) action = nil; - - $send(self, 'define_singleton_method', [action], (TMP_2 = function(url, options){var self = TMP_2.$$s || this, block; + $send($$($nesting, 'ACTIONS'), 'each', [], ($HTTP$1 = function(action){var self = $HTTP$1.$$s == null ? this : $HTTP$1.$$s, $$2, $$4; + + + + if (action == null) { + action = nil; + }; + $send(self, 'define_singleton_method', [action], ($$2 = function(url, options){var self = $$2.$$s == null ? this : $$2.$$s, $iter = $$2.$$p, block = $iter || nil; - block = TMP_2.$$p || nil; - if (block) TMP_2.$$p = null; + + + if ($iter) $$2.$$p = null;; + + if (url == null) { + url = nil; + }; + if (options == null) { options = $hash2([], {}); - }if (url == null) url = nil; - return self.$new().$send(action, url, options, block)}, TMP_2.$$s = self, TMP_2.$$arity = -2, TMP_2)); - return $send(self, 'define_method', [action], (TMP_3 = function(url, options){var self = TMP_3.$$s || this, block; + }; + return self.$new().$send(action, url, options, block);}, $$2.$$s = self, $$2.$$arity = -2, $$2)); + return $send(self, 'define_method', [action], ($$4 = function(url, options){var self = $$4.$$s == null ? this : $$4.$$s, $iter = $$4.$$p, block = $iter || nil; - block = TMP_3.$$p || nil; - if (block) TMP_3.$$p = null; + + + if ($iter) $$4.$$p = null;; + + if (url == null) { + url = nil; + }; + if (options == null) { options = $hash2([], {}); - }if (url == null) url = nil; - return self.$send(action, url, options, block)}, TMP_3.$$s = self, TMP_3.$$arity = -2, TMP_3));}, TMP_HTTP_1.$$s = self, TMP_HTTP_1.$$arity = 1, TMP_HTTP_1)); + }; + return self.$send(action, url, options, block);}, $$4.$$s = self, $$4.$$arity = -2, $$4));}, $HTTP$1.$$s = self, $HTTP$1.$$arity = 1, $HTTP$1)); self.$attr_reader("body", "error_message", "method", "status_code", "url", "xhr"); - Opal.defn(self, '$initialize', TMP_HTTP_initialize_4 = function $$initialize() { + Opal.def(self, '$initialize', $HTTP_initialize$5 = function $$initialize() { var self = this; return (self.ok = true) - }, TMP_HTTP_initialize_4.$$arity = 0); - Opal.defs(self, '$active?', TMP_HTTP_active$q_5 = function() { + }, $HTTP_initialize$5.$$arity = 0); + Opal.defs(self, '$active?', $HTTP_active$ques$6 = function() { var self = this, jquery_active_requests = nil; if (self.active_requests == null) self.active_requests = nil; @@ -26843,40 +30184,52 @@ if (action == null) action = nil; } ; return $rb_gt($rb_plus(jquery_active_requests, self.active_requests), 0); - }, TMP_HTTP_active$q_5.$$arity = 0); - Opal.defs(self, '$active_requests', TMP_HTTP_active_requests_6 = function $$active_requests() { - var $a, self = this; + }, $HTTP_active$ques$6.$$arity = 0); + Opal.defs(self, '$active_requests', $HTTP_active_requests$7 = function $$active_requests() { + var self = this, $ret_or_1 = nil; if (self.active_requests == null) self.active_requests = nil; - self.active_requests = ($truthy($a = self.active_requests) ? $a : 0); + self.active_requests = (function() {if ($truthy(($ret_or_1 = self.active_requests))) { + return $ret_or_1 + } else { + return 0 + }; return nil; })(); return self.active_requests; - }, TMP_HTTP_active_requests_6.$$arity = 0); - Opal.defs(self, '$incr_active_requests', TMP_HTTP_incr_active_requests_7 = function $$incr_active_requests() { - var $a, self = this; + }, $HTTP_active_requests$7.$$arity = 0); + Opal.defs(self, '$incr_active_requests', $HTTP_incr_active_requests$8 = function $$incr_active_requests() { + var self = this, $ret_or_2 = nil; if (self.active_requests == null) self.active_requests = nil; - self.active_requests = ($truthy($a = self.active_requests) ? $a : 0); + self.active_requests = (function() {if ($truthy(($ret_or_2 = self.active_requests))) { + return $ret_or_2 + } else { + return 0 + }; return nil; })(); return (self.active_requests = $rb_plus(self.active_requests, 1)); - }, TMP_HTTP_incr_active_requests_7.$$arity = 0); - Opal.defs(self, '$decr_active_requests', TMP_HTTP_decr_active_requests_8 = function $$decr_active_requests() { - var $a, self = this; + }, $HTTP_incr_active_requests$8.$$arity = 0); + Opal.defs(self, '$decr_active_requests', $HTTP_decr_active_requests$9 = function $$decr_active_requests() { + var self = this, $ret_or_3 = nil; if (self.active_requests == null) self.active_requests = nil; - self.active_requests = ($truthy($a = self.active_requests) ? $a : 0); + self.active_requests = (function() {if ($truthy(($ret_or_3 = self.active_requests))) { + return $ret_or_3 + } else { + return 0 + }; return nil; })(); self.active_requests = $rb_minus(self.active_requests, 1); if ($truthy($rb_lt(self.active_requests, 0))) { console.log("Ooops, Hyperstack::HTTP active_requests out of sync!"); return (self.active_requests = 0); - } else { + } else { return nil }; - }, TMP_HTTP_decr_active_requests_8.$$arity = 0); + }, $HTTP_decr_active_requests$9.$$arity = 0); - Opal.defn(self, '$send', TMP_HTTP_send_9 = function $$send(method, url, options, block) { + Opal.def(self, '$send', $HTTP_send$10 = function $$send(method, url, options, block) { var self = this; @@ -26929,57 +30282,71 @@ if (action == null) action = nil; ; if ($truthy(self.handler)) { return self - } else { + } else { return self.$promise() }; - }, TMP_HTTP_send_9.$$arity = 4); + }, $HTTP_send$10.$$arity = 4); - Opal.defn(self, '$json', TMP_HTTP_json_10 = function $$json() { - var $a, self = this; + Opal.def(self, '$json', $HTTP_json$11 = function $$json() { + var self = this, $ret_or_4 = nil; - return (self.json = ($truthy($a = self.json) ? $a : Opal.const_get_relative($nesting, 'JSON').$parse(self.body))) - }, TMP_HTTP_json_10.$$arity = 0); + return (self.json = (function() {if ($truthy(($ret_or_4 = self.json))) { + return $ret_or_4 + } else { + return $$($nesting, 'JSON').$parse(self.body) + }; return nil; })()) + }, $HTTP_json$11.$$arity = 0); - Opal.defn(self, '$ok?', TMP_HTTP_ok$q_11 = function() { + Opal.def(self, '$ok?', $HTTP_ok$ques$12 = function() { var self = this; return self.ok - }, TMP_HTTP_ok$q_11.$$arity = 0); + }, $HTTP_ok$ques$12.$$arity = 0); - Opal.defn(self, '$get_header', TMP_HTTP_get_header_12 = function $$get_header(key) { + Opal.def(self, '$get_header', $HTTP_get_header$13 = function $$get_header(key) { var self = this; var value = self.xhr.getResponseHeader(key); return (value === null) ? nil : value; - }, TMP_HTTP_get_header_12.$$arity = 1); + }, $HTTP_get_header$13.$$arity = 1); - Opal.defn(self, '$inspect', TMP_HTTP_inspect_13 = function $$inspect() { + Opal.def(self, '$inspect', $HTTP_inspect$14 = function $$inspect() { var self = this; return "" + "#" - }, TMP_HTTP_inspect_13.$$arity = 0); + }, $HTTP_inspect$14.$$arity = 0); self.$private(); - Opal.defn(self, '$promise', TMP_HTTP_promise_16 = function $$promise() { - var TMP_14, self = this; + Opal.def(self, '$promise', $HTTP_promise$15 = function $$promise() { + var $$16, self = this; if ($truthy(self.promise)) { return self.promise}; - return (self.promise = $send(Opal.const_get_relative($nesting, 'Promise').$new(), 'tap', [], (TMP_14 = function(promise){var self = TMP_14.$$s || this, TMP_15; -if (promise == null) promise = nil; - return (self.handler = $send(self, 'proc', [], (TMP_15 = function(res){var self = TMP_15.$$s || this; -if (res == null) res = nil; - if ($truthy(res['$ok?']())) { + return (self.promise = $send($$($nesting, 'Promise').$new(), 'tap', [], ($$16 = function(promise){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + + + + if (promise == null) { + promise = nil; + }; + return (self.handler = $send(self, 'proc', [], ($$17 = function(res){var self = $$17.$$s == null ? this : $$17.$$s; + + + + if (res == null) { + res = nil; + }; + if ($truthy(res['$ok?']())) { return promise.$resolve(res) - } else { + } else { return promise.$reject(res) - }}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)))}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14))); - }, TMP_HTTP_promise_16.$$arity = 0); + };}, $$17.$$s = self, $$17.$$arity = 1, $$17)));}, $$16.$$s = self, $$16.$$arity = 1, $$16))); + }, $HTTP_promise$15.$$arity = 0); - Opal.defn(self, '$succeed', TMP_HTTP_succeed_17 = function $$succeed(data, status, xhr) { + Opal.def(self, '$succeed', $HTTP_succeed$18 = function $$succeed(data, status, xhr) { var self = this; @@ -26989,16 +30356,16 @@ if (res == null) res = nil; self.status_code = xhr.status; if (typeof(data) === 'object') { - self.json = Opal.const_get_relative($nesting, 'JSON').$from_object(data); + self.json = $$($nesting, 'JSON').$from_object(data); } ; if ($truthy(self.handler)) { return self.handler.$call(self) - } else { + } else { return nil }; - }, TMP_HTTP_succeed_17.$$arity = 3); - return (Opal.defn(self, '$fail', TMP_HTTP_fail_18 = function $$fail(xhr, status, error) { + }, $HTTP_succeed$18.$$arity = 3); + return (Opal.def(self, '$fail', $HTTP_fail$19 = function $$fail(xhr, status, error) { var self = this; @@ -27010,338 +30377,399 @@ if (res == null) res = nil; self.ok = false; if ($truthy(self.handler)) { return self.handler.$call(self) - } else { + } else { return nil }; - }, TMP_HTTP_fail_18.$$arity = 3), nil) && 'fail'; + }, $HTTP_fail$19.$$arity = 3), nil) && 'fail'; })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/transport/client_drivers"] = function(Opal) { +Opal.modules["hyper-operation/transport/client_drivers"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $lambda = Opal.lambda, $hash2 = Opal.hash2; - Opal.add_stubs(['$[]', '$opts', '$extend', '$on_opal_client?', '$client_drivers_get_acting_user_id', '$env', '$==', '$respond_to?', '$tap', '$new', '$resolve', '$each', '$is_a?', '$connect_to', '$name', '$then', '$load', '$id', '$raise', '$inspect', '$class', '$connect', '$last', '$split', '$+', '$to_s', '$include?', '$open_channels', '$<<', '$add_connection', '$gsub', '$lambda', '$get_queued_data', '$post', '$polling_path', '$action_cable_consumer', '$json', '$complete_connection', '$sync_dispatch', '$parse', '$get', '$include', '$dispatch_from_server', '$constantize', '$!=', '$attr_reader', '$isomorphic_method', '$send_to_server', '$when_on_server', '$acting_user', '$controller', '$when_on_client', '$fail', '$zero?', '$after', '$-', '$[]=', '$every']); + Opal.add_stubs(['$[]', '$opts', '$extend', '$on_opal_client?', '$client_drivers_get_acting_user_id', '$env', '$==', '$respond_to?', '$tap', '$new', '$resolve', '$each', '$is_a?', '$connect_to', '$name', '$then', '$load', '$id', '$raise', '$inspect', '$class', '$connect', '$last', '$split', '$+', '$to_s', '$include?', '$open_channels', '$<<', '$add_connection', '$gsub', '$get_queued_data', '$post', '$polling_path', '$action_cable_consumer', '$json', '$complete_connection', '$sync_dispatch', '$parse', '$get', '$include', '$dispatch_from_server', '$constantize', '$attr_reader', '$isomorphic_method', '$send_to_server', '$when_on_server', '$acting_user', '$controller', '$when_on_client', '$fail', '$zero?', '$after', '$-', '$!=', '$lambda', '$[]=', '$every']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_anti_csrf_token_1, TMP_Hyperstack_connect_11, TMP_Hyperstack_connect_session_12, TMP_Hyperstack_action_cable_consumer_13; + var $nesting = [self].concat($parent_nesting), $Hyperstack_anti_csrf_token$1, $Hyperstack_connect$8, $Hyperstack_connect_session$12, $Hyperstack_action_cable_consumer$13; - Opal.defs(self, '$anti_csrf_token', TMP_Hyperstack_anti_csrf_token_1 = function $$anti_csrf_token() { + Opal.defs(self, '$anti_csrf_token', $Hyperstack_anti_csrf_token$1 = function $$anti_csrf_token() { var self = this; - return Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("form_authenticity_token") - }, TMP_Hyperstack_anti_csrf_token_1.$$arity = 0); + return $$($nesting, 'ClientDrivers').$opts()['$[]']("form_authenticity_token") + }, $Hyperstack_anti_csrf_token$1.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Application(){}; - var self = $Application = $klass($base, $super, 'Application', $Application); + var self = $klass($base, $super, 'Application'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Application_acting_user_id_2, TMP_Application_acting_user_id_3, TMP_Application_env_4, TMP_Application_production$q_5; + var $nesting = [self].concat($parent_nesting), $Application_acting_user_id$2, $Application_acting_user_id$3, $Application_env$4, $Application_production$ques$5; - self.$extend(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Component'), 'IsomorphicHelpers'), 'ClassMethods')); + self.$extend($$$($$$($$($nesting, 'Component'), 'IsomorphicHelpers'), 'ClassMethods')); if ($truthy(self['$on_opal_client?']())) { - Opal.defs(self, '$acting_user_id', TMP_Application_acting_user_id_2 = function $$acting_user_id() { + Opal.defs(self, '$acting_user_id', $Application_acting_user_id$2 = function $$acting_user_id() { var self = this; - return Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("acting_user_id") - }, TMP_Application_acting_user_id_2.$$arity = 0) - } else { - Opal.defs(self, '$acting_user_id', TMP_Application_acting_user_id_3 = function $$acting_user_id() { + return $$($nesting, 'ClientDrivers').$opts()['$[]']("acting_user_id") + }, $Application_acting_user_id$2.$$arity = 0) + } else { + Opal.defs(self, '$acting_user_id', $Application_acting_user_id$3 = function $$acting_user_id() { var self = this; - return Opal.const_get_relative($nesting, 'ClientDrivers').$client_drivers_get_acting_user_id() - }, TMP_Application_acting_user_id_3.$$arity = 0) + return $$($nesting, 'ClientDrivers').$client_drivers_get_acting_user_id() + }, $Application_acting_user_id$3.$$arity = 0) }; - Opal.defs(self, '$env', TMP_Application_env_4 = function $$env() { + Opal.defs(self, '$env', $Application_env$4 = function $$env() { var self = this; if (self.env == null) self.env = nil; if ($truthy(self.env)) { - } else { - self.env = Opal.const_get_relative($nesting, 'ClientDrivers').$env() + } else { + self.env = $$($nesting, 'ClientDrivers').$env() }; return self.env; - }, TMP_Application_env_4.$$arity = 0); - return Opal.defs(self, '$production?', TMP_Application_production$q_5 = function() { + }, $Application_env$4.$$arity = 0); + return (Opal.defs(self, '$production?', $Application_production$ques$5 = function() { var self = this; return self.$env()['$==']("production") - }, TMP_Application_production$q_5.$$arity = 0); + }, $Application_production$ques$5.$$arity = 0), nil) && 'production?'; })($nesting[0], null, $nesting); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { + + (function($base, $parent_nesting) { + var self = $module($base, 'Model'); + + var $nesting = [self].concat($parent_nesting), $Model_load$6; + + if ($truthy(self['$respond_to?']("load"))) { + return nil + } else { + return (Opal.defs(self, '$load', $Model_load$6 = function $$load() { + var $$7, $iter = $Model_load$6.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Model_load$6.$$p = null; + return $send($$($nesting, 'Promise').$new(), 'tap', [], ($$7 = function(promise){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (promise == null) { + promise = nil; + }; + return promise.$resolve(Opal.yieldX($yield, []));}, $$7.$$s = self, $$7.$$arity = 1, $$7)) + }, $Model_load$6.$$arity = 0), nil) && 'load' + } + })($nesting[0], $nesting); + Opal.defs(self, '$connect', $Hyperstack_connect$8 = function $$connect($a) { + var $post_args, channels, $$9, self = this; + + - (function($base, $parent_nesting) { - var $Model, self = $Model = $module($base, 'Model'); + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + channels = $post_args;; + return $send(channels, 'each', [], ($$9 = function(channel){var self = $$9.$$s == null ? this : $$9.$$s, $$10, $$11, $ret_or_1 = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Model_load_7; + + + if (channel == null) { + channel = nil; + }; + if ($truthy(channel['$is_a?']($$($nesting, 'Class')))) { + return $$($nesting, 'IncomingBroadcast').$connect_to(channel.$name()) + } else if ($truthy((function() {if ($truthy(($ret_or_1 = channel['$is_a?']($$($nesting, 'String'))))) { + return $ret_or_1 + } else { + return channel['$is_a?']($$($nesting, 'Array')) + }; return nil; })())) { + return $send($$($nesting, 'IncomingBroadcast'), 'connect_to', Opal.to_a(channel)) + } else if ($truthy(channel['$respond_to?']("id"))) { + return $send($send($$$($$($nesting, 'Hyperstack'), 'Model'), 'load', [], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - if ($truthy(self['$respond_to?']("load"))) { - } else { - Opal.defs(self, '$load', TMP_Model_load_7 = function $$load() { - var TMP_6, self = this, $iter = TMP_Model_load_7.$$p, $yield = $iter || nil; - - if ($iter) TMP_Model_load_7.$$p = null; - return $send(Opal.const_get_relative($nesting, 'Promise').$new(), 'tap', [], (TMP_6 = function(promise){var self = TMP_6.$$s || this; -if (promise == null) promise = nil; - return promise.$resolve(Opal.yieldX($yield, []))}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)) - }, TMP_Model_load_7.$$arity = 0) - } - })($nesting[0], $nesting); - Opal.defs(self, '$connect', TMP_Hyperstack_connect_11 = function $$connect($a_rest) { - var TMP_8, self = this, channels; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - channels = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - channels[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(channels, 'each', [], (TMP_8 = function(channel){var self = TMP_8.$$s || this, $a, TMP_9, TMP_10; -if (channel == null) channel = nil; - if ($truthy(channel['$is_a?'](Opal.const_get_relative($nesting, 'Class')))) { - return Opal.const_get_relative($nesting, 'IncomingBroadcast').$connect_to(channel.$name()) - } else if ($truthy(($truthy($a = channel['$is_a?'](Opal.const_get_relative($nesting, 'String'))) ? $a : channel['$is_a?'](Opal.const_get_relative($nesting, 'Array'))))) { - return $send(Opal.const_get_relative($nesting, 'IncomingBroadcast'), 'connect_to', Opal.to_a(channel)) - } else if ($truthy(channel['$respond_to?']("id"))) { - return $send($send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Model'), 'load', [], (TMP_9 = function(){var self = TMP_9.$$s || this; - - return channel.$id()}, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)), 'then', [], (TMP_10 = function(id){var self = TMP_10.$$s || this; -if (id == null) id = nil; - - if ($truthy(id)) { - } else { - self.$raise("" + ("" + "Hyperstack.connect cannot connect to " + (channel.$inspect()) + ". ") + "The id is nil. This can be caused by connecting to a model " + "that is not saved, or that does not exist.") - }; - return Opal.const_get_relative($nesting, 'IncomingBroadcast').$connect_to(channel.$class().$name(), id);}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10)) + return channel.$id()}, $$10.$$s = self, $$10.$$arity = 0, $$10)), 'then', [], ($$11 = function(id){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (id == null) { + id = nil; + }; + if ($truthy(id)) { } else { - return self.$raise("" + ("" + "Hyperstack.connect cannot connect to " + (channel.$inspect()) + ".\n") + "Channels must be either a class, or a class name,\n" + "a string in the form 'ClassName-id',\n" + "an array in the form [class, id] or [class-name, id],\n" + "or an object that responds to the id method with a non-nil value") - }}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)) - }, TMP_Hyperstack_connect_11.$$arity = -1); - Opal.defs(self, '$connect_session', TMP_Hyperstack_connect_session_12 = function $$connect_session() { - var self = this; + self.$raise("" + ("" + "Hyperstack.connect cannot connect to " + (channel.$inspect()) + ". ") + "The id is nil. This can be caused by connecting to a model " + "that is not saved, or that does not exist.") + }; + return $$($nesting, 'IncomingBroadcast').$connect_to(channel.$class().$name(), id);}, $$11.$$s = self, $$11.$$arity = 1, $$11)) + } else { + return self.$raise("" + ("" + "Hyperstack.connect cannot connect to " + (channel.$inspect()) + ".\n") + "Channels must be either a class, or a class name,\n" + "a string in the form 'ClassName-id',\n" + "an array in the form [class, id] or [class-name, id],\n" + "or an object that responds to the id method with a non-nil value") + };}, $$9.$$s = self, $$9.$$arity = 1, $$9)); + }, $Hyperstack_connect$8.$$arity = -1); + Opal.defs(self, '$connect_session', $Hyperstack_connect_session$12 = function $$connect_session() { + var self = this; - return self.$connect(["Hyperstack::Session", Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("id").$split("-").$last()]) - }, TMP_Hyperstack_connect_session_12.$$arity = 0); - Opal.defs(self, '$action_cable_consumer', TMP_Hyperstack_action_cable_consumer_13 = function $$action_cable_consumer() { - var self = this; + return self.$connect(["Hyperstack::Session", $$($nesting, 'ClientDrivers').$opts()['$[]']("id").$split("-").$last()]) + }, $Hyperstack_connect_session$12.$$arity = 0); + Opal.defs(self, '$action_cable_consumer', $Hyperstack_action_cable_consumer$13 = function $$action_cable_consumer() { + var self = this; - return Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("action_cable_consumer") - }, TMP_Hyperstack_action_cable_consumer_13.$$arity = 0); - (function($base, $super, $parent_nesting) { - function $IncomingBroadcast(){}; - var self = $IncomingBroadcast = $klass($base, $super, 'IncomingBroadcast', $IncomingBroadcast); + return $$($nesting, 'ClientDrivers').$opts()['$[]']("action_cable_consumer") + }, $Hyperstack_action_cable_consumer$13.$$arity = 0); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'IncomingBroadcast'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IncomingBroadcast_open_channels_14, TMP_IncomingBroadcast_add_connection_15, TMP_IncomingBroadcast_connect_to_18; + var $nesting = [self].concat($parent_nesting), $IncomingBroadcast_open_channels$14, $IncomingBroadcast_add_connection$15, $IncomingBroadcast_connect_to$16; - - Opal.defs(self, '$open_channels', TMP_IncomingBroadcast_open_channels_14 = function $$open_channels() { - var $a, self = this; - if (self.open_channels == null) self.open_channels = nil; + + Opal.defs(self, '$open_channels', $IncomingBroadcast_open_channels$14 = function $$open_channels() { + var self = this, $ret_or_2 = nil; + if (self.open_channels == null) self.open_channels = nil; - return (self.open_channels = ($truthy($a = self.open_channels) ? $a : Opal.const_get_relative($nesting, 'Set').$new())) - }, TMP_IncomingBroadcast_open_channels_14.$$arity = 0); - Opal.defs(self, '$add_connection', TMP_IncomingBroadcast_add_connection_15 = function $$add_connection(channel_name, id) { - var self = this, channel_string = nil; + return (self.open_channels = (function() {if ($truthy(($ret_or_2 = self.open_channels))) { + return $ret_or_2 + } else { + return $$($nesting, 'Set').$new() + }; return nil; })()) + }, $IncomingBroadcast_open_channels$14.$$arity = 0); + Opal.defs(self, '$add_connection', $IncomingBroadcast_add_connection$15 = function $$add_connection(channel_name, id) { + var self = this, channel_string = nil; - if (id == null) { - id = nil; - } + + + if (id == null) { + id = nil; + }; + channel_string = "" + (channel_name) + ((function() {if ($truthy(id)) { + return $rb_plus("-", id.$to_s()) + } else { + return nil + }; return nil; })()); + if ($truthy(self.$open_channels()['$include?'](channel_string))) { + return nil}; + self.$open_channels()['$<<'](channel_string); + return channel_string; + }, $IncomingBroadcast_add_connection$15.$$arity = -2); + return (Opal.defs(self, '$connect_to', $IncomingBroadcast_connect_to$16 = function $$connect_to(channel_name, id) { + var $$17, $$18, self = this, channel_string = nil, channel = nil; + + + + if (id == null) { + id = nil; + }; + channel_string = self.$add_connection(channel_name, id); + if ($truthy(channel_string)) { + } else { + return nil + }; + if ($$($nesting, 'ClientDrivers').$opts()['$[]']("transport")['$==']("pusher")) { - channel_string = "" + (channel_name) + ((function() {if ($truthy(id)) { - return $rb_plus("-", id.$to_s()) - } else { - return nil - }; return nil; })()); - if ($truthy(self.$open_channels()['$include?'](channel_string))) { - return nil}; - self.$open_channels()['$<<'](channel_string); - return channel_string; - }, TMP_IncomingBroadcast_add_connection_15.$$arity = -2); - return Opal.defs(self, '$connect_to', TMP_IncomingBroadcast_connect_to_18 = function $$connect_to(channel_name, id) { - var TMP_16, TMP_17, self = this, channel_string = nil, channel = nil; - - if (id == null) { - id = nil; - } + channel = "" + ($$($nesting, 'ClientDrivers').$opts()['$[]']("channel")) + "-" + (channel_string); - channel_string = self.$add_connection(channel_name, id); - if ($truthy(channel_string)) { - } else { - return nil - }; - if (Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("transport")['$==']("pusher")) { + var channel = $$($nesting, 'ClientDrivers').$opts()['$[]']("pusher_api").subscribe(channel.$gsub("::", "==")); + channel.bind('dispatch', $$($nesting, 'ClientDrivers').$opts()['$[]']("dispatch")) + channel.bind('pusher:subscription_succeeded', $lambda(($$17 = function($a){var self = $$17.$$s == null ? this : $$17.$$s, $post_args, $rest_arg; + - channel = "" + (Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("channel")) + "-" + (channel_string); - var channel = Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("pusher_api").subscribe(channel.$gsub("::", "==")); - channel.bind('dispatch', Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("dispatch")) - channel.bind('pusher:subscription_succeeded', $send(self, 'lambda', [], (TMP_16 = function(){var self = TMP_16.$$s || this; - - return Opal.const_get_relative($nesting, 'ClientDrivers').$get_queued_data("connect-to-transport", channel_string)}, TMP_16.$$s = self, TMP_16.$$arity = 0, TMP_16))) + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return $$($nesting, 'ClientDrivers').$get_queued_data("connect-to-transport", channel_string);}, $$17.$$s = self, $$17.$$arity = -1, $$17))) ; - return (self.pusher_dispatcher_registered = true); - } else if (Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("transport")['$==']("action_cable")) { + return (self.pusher_dispatcher_registered = true); + } else if ($$($nesting, 'ClientDrivers').$opts()['$[]']("transport")['$==']("action_cable")) { + + channel = "" + ($$($nesting, 'ClientDrivers').$opts()['$[]']("channel")) + "-" + (channel_string); + return $send($$$($$($nesting, 'Hyperstack'), 'HTTP').$post($$($nesting, 'ClientDrivers').$polling_path("action-cable-auth", channel), $hash2(["headers"], {"headers": $hash2(["X-CSRF-Token"], {"X-CSRF-Token": $$($nesting, 'ClientDrivers').$opts()['$[]']("form_authenticity_token")})})), 'then', [], ($$18 = function(response){var self = $$18.$$s == null ? this : $$18.$$s; + - channel = "" + (Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("channel")) + "-" + (channel_string); - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'HTTP').$post(Opal.const_get_relative($nesting, 'ClientDrivers').$polling_path("action-cable-auth", channel), $hash2(["headers"], {"headers": $hash2(["X-CSRF-Token"], {"X-CSRF-Token": Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("form_authenticity_token")})})), 'then', [], (TMP_17 = function(response){var self = TMP_17.$$s || this; -if (response == null) response = nil; + + if (response == null) { + response = nil; + }; var fix_opal_0110 = 'return'; - Opal.const_get_relative($nesting, 'Hyperstack').$action_cable_consumer().subscriptions.create( + $$($nesting, 'Hyperstack').$action_cable_consumer().subscriptions.create( { channel: "Hyperstack::ActionCableChannel", - client_id: Opal.const_get_relative($nesting, 'ClientDrivers').$opts()['$[]']("id"), + client_id: $$($nesting, 'ClientDrivers').$opts()['$[]']("id"), hyperstack_channel: channel_string, authorization: response.$json()['$[]']("authorization"), salt: response.$json()['$[]']("salt") }, { connected: function() { - if (Opal.const_get_relative($nesting, 'ClientDrivers').$env()['$==']("development")) { console.log("ActionCable connected to: ", channel_string); } - Opal.const_get_relative($nesting, 'ClientDrivers').$complete_connection(channel_string) + if ($$($nesting, 'ClientDrivers').$env()['$==']("development")) { console.log("ActionCable connected to: ", channel_string); } + $$($nesting, 'ClientDrivers').$complete_connection(channel_string) }, received: function(data) { - if (Opal.const_get_relative($nesting, 'ClientDrivers').$env()['$==']("development")) { console.log("ActionCable received: ", data); } - Opal.const_get_relative($nesting, 'ClientDrivers').$sync_dispatch(Opal.const_get_relative($nesting, 'JSON').$parse(JSON.stringify(data))['$[]']("data")) + if ($$($nesting, 'ClientDrivers').$env()['$==']("development")) { console.log("ActionCable received: ", data); } + $$($nesting, 'ClientDrivers').$sync_dispatch($$($nesting, 'JSON').$parse(JSON.stringify(data))['$[]']("data")) } } ) - }, TMP_17.$$s = self, TMP_17.$$arity = 1, TMP_17)); - } else { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'HTTP').$get(Opal.const_get_relative($nesting, 'ClientDrivers').$polling_path("subscribe", channel_string)) - }; - }, TMP_IncomingBroadcast_connect_to_18.$$arity = -2); - })($nesting[0], null, $nesting); - } else { - nil - }; - (function($base, $super, $parent_nesting) { - function $ClientDrivers(){}; - var self = $ClientDrivers = $klass($base, $super, 'ClientDrivers', $ClientDrivers); + ;}, $$18.$$s = self, $$18.$$arity = 1, $$18)); + } else { + return $$$($$($nesting, 'Hyperstack'), 'HTTP').$get($$($nesting, 'ClientDrivers').$polling_path("subscribe", channel_string)) + }; + }, $IncomingBroadcast_connect_to$16.$$arity = -2), nil) && 'connect_to'; + })($nesting[0], null, $nesting);; + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ClientDrivers'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ClientDrivers_sync_dispatch_19, TMP_ClientDrivers_20, TMP_ClientDrivers_22, TMP_ClientDrivers_complete_connection_27, TMP_ClientDrivers_get_queued_data_30, TMP_ClientDrivers_initialize_client_drivers_on_boot_35, TMP_ClientDrivers_polling_path_36; + var $nesting = [self].concat($parent_nesting), $ClientDrivers_sync_dispatch$19, $ClientDrivers$20, $ClientDrivers$22, $ClientDrivers_complete_connection$25, $ClientDrivers_get_queued_data$28, $ClientDrivers_initialize_client_drivers_on_boot$31, $ClientDrivers_polling_path$36; - self.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')); - Opal.defs(self, '$sync_dispatch', TMP_ClientDrivers_sync_dispatch_19 = function $$sync_dispatch(data) { + self.$include($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')); + Opal.defs(self, '$sync_dispatch', $ClientDrivers_sync_dispatch$19 = function $$sync_dispatch(data) { var self = this; return data['$[]']("operation").$constantize().$dispatch_from_server(data['$[]']("params")) - }, TMP_ClientDrivers_sync_dispatch_19.$$arity = 1); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; + }, $ClientDrivers_sync_dispatch$19.$$arity = 1); + nil; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$attr_reader("opts") })(Opal.get_singleton_class(self), $nesting); - $send(self, 'isomorphic_method', ["client_drivers_get_acting_user_id"], (TMP_ClientDrivers_20 = function(f){var self = TMP_ClientDrivers_20.$$s || this, TMP_21; -if (f == null) f = nil; - - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - f.$send_to_server() - } else { - nil + $send(self, 'isomorphic_method', ["client_drivers_get_acting_user_id"], ($ClientDrivers$20 = function(f){var self = $ClientDrivers$20.$$s == null ? this : $ClientDrivers$20.$$s, $$21; + + + + if (f == null) { + f = nil; }; - return $send(f, 'when_on_server', [], (TMP_21 = function(){var self = TMP_21.$$s || this, $a; + f.$send_to_server(); + return $send(f, 'when_on_server', [], ($$21 = function(){var self = $$21.$$s == null ? this : $$21.$$s, $ret_or_3 = nil; + + if ($truthy(($ret_or_3 = self.$controller().$acting_user()))) { + return self.$controller().$acting_user().$id() + } else { + return $ret_or_3 + }}, $$21.$$s = self, $$21.$$arity = 0, $$21));}, $ClientDrivers$20.$$s = self, $ClientDrivers$20.$$arity = 1, $ClientDrivers$20)); + $send(self, 'isomorphic_method', ["env"], ($ClientDrivers$22 = function(f){var self = $ClientDrivers$22.$$s == null ? this : $ClientDrivers$22.$$s, $$23, $$24; - return ($truthy($a = self.$controller().$acting_user()) ? self.$controller().$acting_user().$id() : $a);}, TMP_21.$$s = self, TMP_21.$$arity = 0, TMP_21));}, TMP_ClientDrivers_20.$$s = self, TMP_ClientDrivers_20.$$arity = 1, TMP_ClientDrivers_20)); - $send(self, 'isomorphic_method', ["env"], (TMP_ClientDrivers_22 = function(f){var self = TMP_ClientDrivers_22.$$s || this, TMP_23, TMP_24; -if (f == null) f = nil; - - $send(f, 'when_on_client', [], (TMP_23 = function(){var self = TMP_23.$$s || this; + + if (f == null) { + f = nil; + }; + $send(f, 'when_on_client', [], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s; - return self.$opts()['$[]']("env")}, TMP_23.$$s = self, TMP_23.$$arity = 0, TMP_23)); + return self.$opts()['$[]']("env")}, $$23.$$s = self, $$23.$$arity = 0, $$23)); f.$send_to_server(); - return $send(f, 'when_on_server', [], (TMP_24 = function(){var self = TMP_24.$$s || this; + return $send(f, 'when_on_server', [], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s; - return Opal.const_get_qualified('::', 'Rails').$env()}, TMP_24.$$s = self, TMP_24.$$arity = 0, TMP_24));}, TMP_ClientDrivers_22.$$s = self, TMP_ClientDrivers_22.$$arity = 1, TMP_ClientDrivers_22)); - Opal.defs(self, '$complete_connection', TMP_ClientDrivers_complete_connection_27 = function $$complete_connection(channel, retries) { - var TMP_25, self = this; + return $$$('::', 'Rails').$env()}, $$24.$$s = self, $$24.$$arity = 0, $$24));}, $ClientDrivers$22.$$s = self, $ClientDrivers$22.$$arity = 1, $ClientDrivers$22)); + Opal.defs(self, '$complete_connection', $ClientDrivers_complete_connection$25 = function $$complete_connection(channel, retries) { + var $$26, self = this; + + if (retries == null) { retries = 10; - } - return $send(self.$get_queued_data("connect-to-transport", channel), 'fail', [], (TMP_25 = function(){var self = TMP_25.$$s || this, TMP_26; + }; + return $send(self.$get_queued_data("connect-to-transport", channel), 'fail', [], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s, $$27; - if ($truthy(retries['$zero?']())) { + if ($truthy(retries['$zero?']())) { return nil - } else { - return $send(self, 'after', [0.25], (TMP_26 = function(){var self = TMP_26.$$s || this; + } else { + return $send(self, 'after', [0.25], ($$27 = function(){var self = $$27.$$s == null ? this : $$27.$$s; - return self.$complete_connection(channel, $rb_minus(retries, 1))}, TMP_26.$$s = self, TMP_26.$$arity = 0, TMP_26)) - }}, TMP_25.$$s = self, TMP_25.$$arity = 0, TMP_25)) - }, TMP_ClientDrivers_complete_connection_27.$$arity = -2); - Opal.defs(self, '$get_queued_data', TMP_ClientDrivers_get_queued_data_30 = function $$get_queued_data(operation, channel, opts) { - var TMP_28, self = this; + return self.$complete_connection(channel, $rb_minus(retries, 1))}, $$27.$$s = self, $$27.$$arity = 0, $$27)) + }}, $$26.$$s = self, $$26.$$arity = 0, $$26)); + }, $ClientDrivers_complete_connection$25.$$arity = -2); + Opal.defs(self, '$get_queued_data', $ClientDrivers_get_queued_data$28 = function $$get_queued_data(operation, channel, opts) { + var $$29, self = this; + + if (channel == null) { channel = nil; - } + }; + if (opts == null) { opts = $hash2([], {}); - } - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'HTTP').$get(self.$polling_path(operation, channel), opts), 'then', [], (TMP_28 = function(response){var self = TMP_28.$$s || this, TMP_29; -if (response == null) response = nil; - return $send(response.$json(), 'each', [], (TMP_29 = function(data){var self = TMP_29.$$s || this; -if (data == null) data = nil; + }; + return $send($$$($$($nesting, 'Hyperstack'), 'HTTP').$get(self.$polling_path(operation, channel), opts), 'then', [], ($$29 = function(response){var self = $$29.$$s == null ? this : $$29.$$s, $$30; + - if (Opal.const_get_relative($nesting, 'ClientDrivers').$env()['$==']("development")) { + + if (response == null) { + response = nil; + }; + return $send(response.$json(), 'each', [], ($$30 = function(data){var self = $$30.$$s == null ? this : $$30.$$s; + + + + if (data == null) { + data = nil; + }; + if ($$($nesting, 'ClientDrivers').$env()['$==']("development")) { console.log("simple_poller received: ", data)}; - return self.$sync_dispatch(data['$[]'](1));}, TMP_29.$$s = self, TMP_29.$$arity = 1, TMP_29))}, TMP_28.$$s = self, TMP_28.$$arity = 1, TMP_28)) - }, TMP_ClientDrivers_get_queued_data_30.$$arity = -2); - Opal.defs(self, '$initialize_client_drivers_on_boot', TMP_ClientDrivers_initialize_client_drivers_on_boot_35 = function $$initialize_client_drivers_on_boot() { - var $a, TMP_31, TMP_32, TMP_33, TMP_34, self = this, $writer = nil, h = nil, pusher_api = nil; + return self.$sync_dispatch(data['$[]'](1));}, $$30.$$s = self, $$30.$$arity = 1, $$30));}, $$29.$$s = self, $$29.$$arity = 1, $$29)); + }, $ClientDrivers_get_queued_data$28.$$arity = -2); + Opal.defs(self, '$initialize_client_drivers_on_boot', $ClientDrivers_initialize_client_drivers_on_boot$31 = function $$initialize_client_drivers_on_boot() { + var $$32, $$33, $$34, $$35, self = this, $ret_or_4 = nil, $ret_or_5 = nil, $writer = nil, $ret_or_6 = nil, h = nil, pusher_api = nil; if (self.initialized == null) self.initialized = nil; - if (Opal.const_get_relative($nesting, 'Hyperstack').$env()['$==']("express")) { - return nil}; if ($truthy(self.initialized)) { - if ($truthy(($truthy($a = self['$on_opal_client?']()) ? Opal.const_get_relative($nesting, 'Hyperstack').$action_cable_consumer() : $a))) { - $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'HTTP'), 'get', ["" + (window.HyperstackEnginePath) + "/server_up"], (TMP_31 = function(){var self = TMP_31.$$s || this; + if ($truthy((function() {if ($truthy(($ret_or_4 = self['$on_opal_client?']()))) { + return $$($nesting, 'Hyperstack').$action_cable_consumer() + } else { + return $ret_or_4 + }; return nil; })())) { + $send($$$($$($nesting, 'Hyperstack'), 'HTTP'), 'get', ["" + (window.HyperstackEnginePath) + "/server_up"], ($$32 = function(){var self = $$32.$$s == null ? this : $$32.$$s; - if ($truthy(Opal.const_get_relative($nesting, 'Hyperstack').$action_cable_consumer().connection.disconnected)) { - return Opal.const_get_relative($nesting, 'Hyperstack').$action_cable_consumer().connection.open() - } else { + if ($truthy($$($nesting, 'Hyperstack').$action_cable_consumer().connection.disconnected)) { + return $$($nesting, 'Hyperstack').$action_cable_consumer().connection.open() + } else { return nil - }}, TMP_31.$$s = self, TMP_31.$$arity = 0, TMP_31))}; + }}, $$32.$$s = self, $$32.$$arity = 0, $$32))}; return nil;}; self.initialized = true; self.opts = $hash2([], {}); if ($truthy(self['$on_opal_client?']())) { - self.opts = Opal.const_get_relative($nesting, 'Hash').$new(window.HyperstackOpts); - if ($truthy(($truthy($a = self.$opts()['$[]']("transport")['$!=']("none")) ? typeof(window.HyperstackEnginePath) == 'undefined' : $a))) { + self.opts = $$($nesting, 'Hash').$new(window.HyperstackOpts); + if ($truthy((function() {if ($truthy(($ret_or_5 = self.$opts()['$[]']("transport")['$!=']("none")))) { + return typeof(window.HyperstackEnginePath) == 'undefined'; + } else { + return $ret_or_5 + }; return nil; })())) { self.$raise("No hyperstack mount point found!\nCheck your Rails routes.rb file")}; if (self.$opts()['$[]']("transport")['$==']("pusher")) { - $writer = ["dispatch", $send(self, 'lambda', [], (TMP_32 = function(data){var self = TMP_32.$$s || this; -if (data == null) data = nil; - return self.$sync_dispatch(Opal.const_get_relative($nesting, 'JSON').$parse(JSON.stringify(data)))}, TMP_32.$$s = self, TMP_32.$$arity = 1, TMP_32))]; + $writer = ["dispatch", $send(self, 'lambda', [], ($$33 = function(data){var self = $$33.$$s == null ? this : $$33.$$s; + + + + if (data == null) { + data = nil; + }; + return self.$sync_dispatch($$($nesting, 'JSON').$parse(JSON.stringify(data)));}, $$33.$$s = self, $$33.$$arity = 1, $$33))]; $send(self.$opts(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - if ($truthy(($truthy($a = self.$opts()['$[]']("client_logging")) ? window.console && window.console.log : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_6 = self.$opts()['$[]']("client_logging")))) { + return window.console && window.console.log; + } else { + return $ret_or_6 + }; return nil; })())) { Pusher.log = function(message) {window.console.log(message);}}; if ($truthy(self.$opts()['$[]']("pusher_fake_js"))) { $writer = ["pusher_api", eval(self.$opts()['$[]']("pusher_fake_js"))]; $send(self.$opts(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { h = nil; pusher_api = nil; @@ -27359,150 +30787,166 @@ if (data == null) data = nil; $send(self.$opts(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; }; - return $send(Opal.const_get_relative($nesting, 'Hyperstack'), 'connect', Opal.to_a(self.$opts()['$[]']("auto_connect"))); + return $send($$($nesting, 'Hyperstack'), 'connect', Opal.to_a(self.$opts()['$[]']("auto_connect"))); } else if (self.$opts()['$[]']("transport")['$==']("action_cable")) { $writer = ["action_cable_consumer", ActionCable.createConsumer.apply(ActionCable, [].concat(Opal.to_a(self.$opts()['$[]']("action_cable_consumer_url"))))]; $send(self.$opts(), '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; - return $send(Opal.const_get_relative($nesting, 'Hyperstack'), 'connect', Opal.to_a(self.$opts()['$[]']("auto_connect"))); + return $send($$($nesting, 'Hyperstack'), 'connect', Opal.to_a(self.$opts()['$[]']("auto_connect"))); } else if (self.$opts()['$[]']("transport")['$==']("simple_poller")) { - $send(self.$opts()['$[]']("auto_connect"), 'each', [], (TMP_33 = function(channel){var self = TMP_33.$$s || this; -if (channel == null) channel = nil; - return $send(Opal.const_get_relative($nesting, 'IncomingBroadcast'), 'add_connection', Opal.to_a(channel))}, TMP_33.$$s = self, TMP_33.$$arity = 1, TMP_33)); - return $send(self, 'every', [self.$opts()['$[]']("seconds_between_poll")], (TMP_34 = function(){var self = TMP_34.$$s || this; + $send(self.$opts()['$[]']("auto_connect"), 'each', [], ($$34 = function(channel){var self = $$34.$$s == null ? this : $$34.$$s; - return self.$get_queued_data("read", nil)}, TMP_34.$$s = self, TMP_34.$$arity = 0, TMP_34)); - } else { + + + if (channel == null) { + channel = nil; + }; + return $send($$($nesting, 'IncomingBroadcast'), 'add_connection', Opal.to_a(channel));}, $$34.$$s = self, $$34.$$arity = 1, $$34)); + return $send(self, 'every', [self.$opts()['$[]']("seconds_between_poll")], ($$35 = function(){var self = $$35.$$s == null ? this : $$35.$$s; + + return self.$get_queued_data("read", nil)}, $$35.$$s = self, $$35.$$arity = 0, $$35)); + } else { return nil }; - } else { + } else { return nil }; - }, TMP_ClientDrivers_initialize_client_drivers_on_boot_35.$$arity = 0); - return Opal.defs(self, '$polling_path', TMP_ClientDrivers_polling_path_36 = function $$polling_path(to, id) { + }, $ClientDrivers_initialize_client_drivers_on_boot$31.$$arity = 0); + return (Opal.defs(self, '$polling_path', $ClientDrivers_polling_path$36 = function $$polling_path(to, id) { var self = this, s = nil; + + if (id == null) { id = nil; - } - + }; s = "" + (window.HyperstackEnginePath) + "/hyperstack-" + (to) + "/" + (self.$opts()['$[]']("id")); if ($truthy(id)) { s = "" + (s) + "/" + (id)}; return s; - }, TMP_ClientDrivers_polling_path_36.$$arity = -2); + }, $ClientDrivers_polling_path$36.$$arity = -2), nil) && 'polling_path'; })($nesting[0], null, $nesting); })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/exception"] = function(Opal) { +Opal.modules["hyper-operation/exception"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy; Opal.add_stubs(['$new', '$collect', '$[]', '$attr_accessor', '$+', '$to_s', '$on_error', '$as_json', '$errors', '$is_a?', '$new_from_error_hash']); (function($base, $parent_nesting) { - var $Mutations, self = $Mutations = $module($base, 'Mutations'); + var self = $module($base, 'Mutations'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $ErrorArray(){}; - var self = $ErrorArray = $klass($base, $super, 'ErrorArray', $ErrorArray); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ErrorArray'); + + var $nesting = [self].concat($parent_nesting), $ErrorArray_new_from_error_hash$1; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ErrorArray_new_from_error_hash_2; + return (Opal.defs(self, '$new_from_error_hash', $ErrorArray_new_from_error_hash$1 = function $$new_from_error_hash(errors) { + var $$2, self = this; - return Opal.defs(self, '$new_from_error_hash', TMP_ErrorArray_new_from_error_hash_2 = function $$new_from_error_hash(errors) { - var TMP_1, self = this; + return self.$new($send(errors, 'collect', [], ($$2 = function(key, values){var self = $$2.$$s == null ? this : $$2.$$s; - return self.$new($send(errors, 'collect', [], (TMP_1 = function(key, values){var self = TMP_1.$$s || this; -if (key == null) key = nil;if (values == null) values = nil; - return Opal.const_get_relative($nesting, 'ErrorAtom').$new(key, values['$[]']("symbol"), values)}, TMP_1.$$s = self, TMP_1.$$arity = 2, TMP_1))) - }, TMP_ErrorArray_new_from_error_hash_2.$$arity = 1) + + + if (key == null) { + key = nil; + }; + + if (values == null) { + values = nil; + }; + return $$($nesting, 'ErrorAtom').$new(key, values['$[]']("symbol"), values);}, $$2.$$s = self, $$2.$$arity = 2, $$2))) + }, $ErrorArray_new_from_error_hash$1.$$arity = 1), nil) && 'new_from_error_hash' })($nesting[0], null, $nesting) })($nesting[0], $nesting); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $AccessViolation(){}; - var self = $AccessViolation = $klass($base, $super, 'AccessViolation', $AccessViolation); + var self = $klass($base, $super, 'AccessViolation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_AccessViolation_initialize_3, TMP_AccessViolation___hyperstack_on_error_4; + var $nesting = [self].concat($parent_nesting), $AccessViolation_initialize$3, $AccessViolation___hyperstack_on_error$4; self.$attr_accessor("details"); - Opal.defn(self, '$initialize', TMP_AccessViolation_initialize_3 = function $$initialize(message, details) { - var self = this, $iter = TMP_AccessViolation_initialize_3.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $AccessViolation_initialize$3 = function $$initialize(message, details) { + var $iter = $AccessViolation_initialize$3.$$p, $yield = $iter || nil, self = this; + if ($iter) $AccessViolation_initialize$3.$$p = null; + + if (message == null) { message = nil; - } + }; + if (details == null) { details = nil; - } - if ($iter) TMP_AccessViolation_initialize_3.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_AccessViolation_initialize_3, false), ["" + "Hyperstack::AccessViolation" + ((function() {if ($truthy(message)) { + }; + $send2(self, $find_super(self, 'initialize', $AccessViolation_initialize$3, false, true), 'initialize', ["" + "Hyperstack::AccessViolation" + ((function() {if ($truthy(message)) { return $rb_plus(":", message.$to_s()) - } else { + } else { return nil }; return nil; })())], null); return (self.details = details); - }, TMP_AccessViolation_initialize_3.$$arity = -1); - return (Opal.defn(self, '$__hyperstack_on_error', TMP_AccessViolation___hyperstack_on_error_4 = function $$__hyperstack_on_error(operation, params, fmted_message) { + }, $AccessViolation_initialize$3.$$arity = -1); + return (Opal.def(self, '$__hyperstack_on_error', $AccessViolation___hyperstack_on_error$4 = function $$__hyperstack_on_error(operation, params, fmted_message) { var self = this; - return Opal.const_get_relative($nesting, 'Hyperstack').$on_error(operation, self, params, fmted_message) - }, TMP_AccessViolation___hyperstack_on_error_4.$$arity = 3), nil) && '__hyperstack_on_error'; - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); - (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + return $$($nesting, 'Hyperstack').$on_error(operation, self, params, fmted_message) + }, $AccessViolation___hyperstack_on_error$4.$$arity = 3), nil) && '__hyperstack_on_error'; + })($nesting[0], $$($nesting, 'StandardError'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $ValidationException(){}; - var self = $ValidationException = $klass($base, $super, 'ValidationException', $ValidationException); + var self = $klass($base, $super, 'ValidationException'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ValidationException_as_json_5, TMP_ValidationException_initialize_6; + var $nesting = [self].concat($parent_nesting), $ValidationException_as_json$5, $ValidationException_initialize$6; - Opal.defn(self, '$as_json', TMP_ValidationException_as_json_5 = function $$as_json($a_rest) { - var self = this; + Opal.def(self, '$as_json', $ValidationException_as_json$5 = function $$as_json($a) { + var $post_args, $rest_arg, self = this; - return self.$errors().$as_json() - }, TMP_ValidationException_as_json_5.$$arity = -1); - return (Opal.defn(self, '$initialize', TMP_ValidationException_initialize_6 = function $$initialize(errors) { - var self = this, $iter = TMP_ValidationException_initialize_6.$$p, $yield = $iter || nil; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return self.$errors().$as_json(); + }, $ValidationException_as_json$5.$$arity = -1); + return (Opal.def(self, '$initialize', $ValidationException_initialize$6 = function $$initialize(errors) { + var $iter = $ValidationException_initialize$6.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_ValidationException_initialize_6.$$p = null; + if ($iter) $ValidationException_initialize$6.$$p = null; - if ($truthy(errors['$is_a?'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'ErrorHash')))) { - } else { - errors = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'ErrorArray').$new_from_error_hash(errors) + if ($truthy(errors['$is_a?']($$$($$($nesting, 'Mutations'), 'ErrorHash')))) { + } else { + errors = $$$($$($nesting, 'Mutations'), 'ErrorArray').$new_from_error_hash(errors) }; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_ValidationException_initialize_6, false), [errors], null); - }, TMP_ValidationException_initialize_6.$$arity = 1), nil) && 'initialize'; - })($nesting[0], Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'ValidationException'), $nesting) + return $send2(self, $find_super(self, 'initialize', $ValidationException_initialize$6, false, true), 'initialize', [errors], null); + }, $ValidationException_initialize$6.$$arity = 1), nil) && 'initialize'; + })($nesting[0], $$$($$($nesting, 'Mutations'), 'ValidationException'), $nesting) })($nesting[0], null, $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/promise"] = function(Opal) { +Opal.modules["hyper-operation/promise"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } @@ -27512,61 +30956,59 @@ Opal.modules["hyper-operation/promise"] = function(Opal) { function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super; Opal.add_stubs(['$resolve', '$new', '$reject', '$attr_reader', '$===', '$value', '$has_key?', '$keys', '$!', '$==', '$realized?', '$<<', '$>>', '$exception?', '$[]', '$resolved?', '$rejected?', '$error', '$include?', '$action', '$raise', '$^', '$call', '$resolve!', '$exception!', '$any?', '$each', '$reject!', '$is_a?', '$result', '$there_can_be_only_one!', '$then', '$to_proc', '$fail', '$always', '$trace', '$class', '$object_id', '$+', '$inspect', '$act?', '$nil?', '$prev', '$push', '$concat', '$it', '$proc', '$reverse', '$pop', '$<=', '$length', '$shift', '$-', '$wait', '$map', '$reduce', '$try', '$tap', '$all?', '$find']); return (function($base, $super, $parent_nesting) { - function $Promise(){}; - var self = $Promise = $klass($base, $super, 'Promise', $Promise); + var self = $klass($base, $super, 'Promise'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Promise_value_1, TMP_Promise_error_2, TMP_Promise_when_3, TMP_Promise_initialize_5, TMP_Promise_value_6, TMP_Promise_act$q_7, TMP_Promise_action_8, TMP_Promise_exception$q_9, TMP_Promise_realized$q_10, TMP_Promise_resolved$q_11, TMP_Promise_rejected$q_12, TMP_Promise_pending$q_13, TMP_Promise_$_14, TMP_Promise_$lt$lt_15, TMP_Promise_$gt$gt_16, TMP_Promise_resolve_17, TMP_Promise_resolve$B_19, TMP_Promise_reject_20, TMP_Promise_reject$B_22, TMP_Promise_exception$B_23, TMP_Promise_then_24, TMP_Promise_then$B_25, TMP_Promise_fail_26, TMP_Promise_fail$B_27, TMP_Promise_always_28, TMP_Promise_always$B_29, TMP_Promise_trace_30, TMP_Promise_trace$B_31, TMP_Promise_there_can_be_only_one$B_32, TMP_Promise_inspect_33; + var $nesting = [self].concat($parent_nesting), $Promise_value$1, $Promise_error$2, $Promise_when$3, $Promise_initialize$5, $Promise_value$6, $Promise_act$ques$7, $Promise_action$8, $Promise_exception$ques$9, $Promise_realized$ques$10, $Promise_resolved$ques$11, $Promise_rejected$ques$12, $Promise_pending$ques$13, $Promise_$$14, $Promise_$lt$lt$15, $Promise_$gt$gt$16, $Promise_resolve$17, $Promise_resolve$excl$18, $Promise_reject$20, $Promise_reject$excl$21, $Promise_exception$excl$23, $Promise_then$24, $Promise_then$excl$25, $Promise_fail$26, $Promise_fail$excl$27, $Promise_always$28, $Promise_always$excl$29, $Promise_trace$30, $Promise_trace$excl$31, $Promise_there_can_be_only_one$excl$32, $Promise_inspect$33; - def.value = def.action = def.exception = def.realized = def.next = def.delayed = def.error = def.prev = nil; + self.$$prototype.value = self.$$prototype.action = self.$$prototype.exception = self.$$prototype.realized = self.$$prototype.next = self.$$prototype.delayed = self.$$prototype.error = self.$$prototype.prev = nil; - Opal.defs(self, '$value', TMP_Promise_value_1 = function $$value(value) { + Opal.defs(self, '$value', $Promise_value$1 = function $$value(value) { var self = this; return self.$new().$resolve(value) - }, TMP_Promise_value_1.$$arity = 1); - Opal.defs(self, '$error', TMP_Promise_error_2 = function $$error(value) { + }, $Promise_value$1.$$arity = 1); + Opal.defs(self, '$error', $Promise_error$2 = function $$error(value) { var self = this; return self.$new().$reject(value) - }, TMP_Promise_error_2.$$arity = 1); - Opal.defs(self, '$when', TMP_Promise_when_3 = function $$when($a_rest) { - var self = this, promises; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - promises = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - promises[$arg_idx - 0] = arguments[$arg_idx]; - } - return Opal.const_get_relative($nesting, 'When').$new(promises) - }, TMP_Promise_when_3.$$arity = -1); + }, $Promise_error$2.$$arity = 1); + Opal.defs(self, '$when', $Promise_when$3 = function $$when($a) { + var $post_args, promises, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + promises = $post_args;; + return $$($nesting, 'When').$new(promises); + }, $Promise_when$3.$$arity = -1); (function($base, $super, $parent_nesting) { - function $Fail(){}; - var self = $Fail = $klass($base, $super, 'Fail', $Fail); + var self = $klass($base, $super, 'Fail'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Fail_initialize_4; + var $nesting = [self].concat($parent_nesting), $Fail_initialize$4; self.$attr_reader("result"); - return (Opal.defn(self, '$initialize', TMP_Fail_initialize_4 = function $$initialize(result) { + return (Opal.def(self, '$initialize', $Fail_initialize$4 = function $$initialize(result) { var self = this; return (self.result = result) - }, TMP_Fail_initialize_4.$$arity = 1), nil) && 'initialize'; - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + }, $Fail_initialize$4.$$arity = 1), nil) && 'initialize'; + })($nesting[0], $$($nesting, 'StandardError'), $nesting); self.$attr_reader("error", "prev", "next"); - Opal.defn(self, '$initialize', TMP_Promise_initialize_5 = function $$initialize(action) { + Opal.def(self, '$initialize', $Promise_initialize$5 = function $$initialize(action) { var self = this; + + if (action == null) { action = $hash2([], {}); - } - + }; self.action = action; self.realized = false; self.exception = false; @@ -27575,79 +31017,83 @@ Opal.modules["hyper-operation/promise"] = function(Opal) { self.delayed = false; self.prev = nil; return (self.next = []); - }, TMP_Promise_initialize_5.$$arity = -1); + }, $Promise_initialize$5.$$arity = -1); - Opal.defn(self, '$value', TMP_Promise_value_6 = function $$value() { + Opal.def(self, '$value', $Promise_value$6 = function $$value() { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Promise')['$==='](self.value))) { + if ($truthy($$($nesting, 'Promise')['$==='](self.value))) { return self.value.$value() - } else { + } else { return self.value } - }, TMP_Promise_value_6.$$arity = 0); + }, $Promise_value$6.$$arity = 0); - Opal.defn(self, '$act?', TMP_Promise_act$q_7 = function() { - var $a, self = this; + Opal.def(self, '$act?', $Promise_act$ques$7 = function() { + var self = this, $ret_or_1 = nil; - return ($truthy($a = self.action['$has_key?']("success")) ? $a : self.action['$has_key?']("always")) - }, TMP_Promise_act$q_7.$$arity = 0); + if ($truthy(($ret_or_1 = self.action['$has_key?']("success")))) { + return $ret_or_1 + } else { + return self.action['$has_key?']("always") + } + }, $Promise_act$ques$7.$$arity = 0); - Opal.defn(self, '$action', TMP_Promise_action_8 = function $$action() { + Opal.def(self, '$action', $Promise_action$8 = function $$action() { var self = this; return self.action.$keys() - }, TMP_Promise_action_8.$$arity = 0); + }, $Promise_action$8.$$arity = 0); - Opal.defn(self, '$exception?', TMP_Promise_exception$q_9 = function() { + Opal.def(self, '$exception?', $Promise_exception$ques$9 = function() { var self = this; return self.exception - }, TMP_Promise_exception$q_9.$$arity = 0); + }, $Promise_exception$ques$9.$$arity = 0); - Opal.defn(self, '$realized?', TMP_Promise_realized$q_10 = function() { + Opal.def(self, '$realized?', $Promise_realized$ques$10 = function() { var self = this; return self.realized['$!']()['$!']() - }, TMP_Promise_realized$q_10.$$arity = 0); + }, $Promise_realized$ques$10.$$arity = 0); - Opal.defn(self, '$resolved?', TMP_Promise_resolved$q_11 = function() { + Opal.def(self, '$resolved?', $Promise_resolved$ques$11 = function() { var self = this; return self.realized['$==']("resolve") - }, TMP_Promise_resolved$q_11.$$arity = 0); + }, $Promise_resolved$ques$11.$$arity = 0); - Opal.defn(self, '$rejected?', TMP_Promise_rejected$q_12 = function() { + Opal.def(self, '$rejected?', $Promise_rejected$ques$12 = function() { var self = this; return self.realized['$==']("reject") - }, TMP_Promise_rejected$q_12.$$arity = 0); + }, $Promise_rejected$ques$12.$$arity = 0); - Opal.defn(self, '$pending?', TMP_Promise_pending$q_13 = function() { + Opal.def(self, '$pending?', $Promise_pending$ques$13 = function() { var self = this; return self['$realized?']()['$!']() - }, TMP_Promise_pending$q_13.$$arity = 0); + }, $Promise_pending$ques$13.$$arity = 0); - Opal.defn(self, '$^', TMP_Promise_$_14 = function(promise) { + Opal.def(self, '$^', $Promise_$$14 = function(promise) { var self = this; promise['$<<'](self); self['$>>'](promise); return promise; - }, TMP_Promise_$_14.$$arity = 1); + }, $Promise_$$14.$$arity = 1); - Opal.defn(self, '$<<', TMP_Promise_$lt$lt_15 = function(promise) { + Opal.def(self, '$<<', $Promise_$lt$lt$15 = function(promise) { var self = this; self.prev = promise; return self; - }, TMP_Promise_$lt$lt_15.$$arity = 1); + }, $Promise_$lt$lt$15.$$arity = 1); - Opal.defn(self, '$>>', TMP_Promise_$gt$gt_16 = function(promise) { - var $a, self = this; + Opal.def(self, '$>>', $Promise_$gt$gt$16 = function(promise) { + var self = this, $ret_or_2 = nil; self.next['$<<'](promise); @@ -27656,1100 +31102,1300 @@ Opal.modules["hyper-operation/promise"] = function(Opal) { } else if ($truthy(self['$resolved?']())) { promise.$resolve((function() {if ($truthy(self.delayed)) { return self.delayed['$[]'](0) - } else { + } else { return self.$value() }; return nil; })()) } else if ($truthy(self['$rejected?']())) { - if ($truthy(($truthy($a = self.action['$has_key?']("failure")['$!']()) ? $a : Opal.const_get_relative($nesting, 'Promise')['$===']((function() {if ($truthy(self.delayed)) { - return self.delayed['$[]'](0) + if ($truthy((function() {if ($truthy(($ret_or_2 = self.action['$has_key?']("failure")['$!']()))) { + return $ret_or_2 + } else { + return $$($nesting, 'Promise')['$===']((function() {if ($truthy(self.delayed)) { + return self.delayed['$[]'](0) } else { - return self.error - }; return nil; })())))) { + return self.error + }; return nil; })()) + }; return nil; })())) { promise.$reject((function() {if ($truthy(self.delayed)) { return self.delayed['$[]'](0) - } else { + } else { return self.$error() }; return nil; })()) } else if ($truthy(promise.$action()['$include?']("always"))) { promise.$reject((function() {if ($truthy(self.delayed)) { return self.delayed['$[]'](0) - } else { + } else { return self.$error() }; return nil; })())}}; return self; - }, TMP_Promise_$gt$gt_16.$$arity = 1); + }, $Promise_$gt$gt$16.$$arity = 1); - Opal.defn(self, '$resolve', TMP_Promise_resolve_17 = function $$resolve(value) { - var $a, self = this, block = nil, e = nil; + Opal.def(self, '$resolve', $Promise_resolve$17 = function $$resolve(value) { + var self = this, block = nil, $ret_or_3 = nil, e = nil; + + if (value == null) { value = nil; - } - + }; if ($truthy(self['$realized?']())) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "the promise has already been realized")}; - if ($truthy(Opal.const_get_relative($nesting, 'Promise')['$==='](value))) { + self.$raise($$($nesting, 'ArgumentError'), "the promise has already been realized")}; + if ($truthy($$($nesting, 'Promise')['$==='](value))) { return value['$<<'](self.prev)['$^'](self)}; try { - if ($truthy((block = ($truthy($a = self.action['$[]']("success")) ? $a : self.action['$[]']("always"))))) { - value = block.$call(value)}; + if ($truthy((block = (function() {if ($truthy(($ret_or_3 = self.action['$[]']("success")))) { + return $ret_or_3 + } else { + return self.action['$[]']("always") + }; return nil; })()))) { + + self.realized = "resolve"; + value = block.$call(value);}; self['$resolve!'](value); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { self['$exception!'](e) - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } };; return self; - }, TMP_Promise_resolve_17.$$arity = -1); + }, $Promise_resolve$17.$$arity = -1); - Opal.defn(self, '$resolve!', TMP_Promise_resolve$B_19 = function(value) { - var TMP_18, self = this; + Opal.def(self, '$resolve!', $Promise_resolve$excl$18 = function(value) { + var $$19, self = this; self.realized = "resolve"; self.value = value; if ($truthy(self.next['$any?']())) { - return $send(self.next, 'each', [], (TMP_18 = function(p){var self = TMP_18.$$s || this; -if (p == null) p = nil; - return p.$resolve(value)}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)) - } else { + return $send(self.next, 'each', [], ($$19 = function(p){var self = $$19.$$s == null ? this : $$19.$$s; + + + + if (p == null) { + p = nil; + }; + return p.$resolve(value);}, $$19.$$s = self, $$19.$$arity = 1, $$19)) + } else { return (self.delayed = [value]) }; - }, TMP_Promise_resolve$B_19.$$arity = 1); + }, $Promise_resolve$excl$18.$$arity = 1); - Opal.defn(self, '$reject', TMP_Promise_reject_20 = function $$reject(value) { - var $a, self = this, block = nil, e = nil; + Opal.def(self, '$reject', $Promise_reject$20 = function $$reject(value) { + var self = this, block = nil, $ret_or_4 = nil, e = nil; + + if (value == null) { value = nil; - } - + }; if ($truthy(self['$realized?']())) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "the promise has already been realized")}; - if ($truthy(Opal.const_get_relative($nesting, 'Promise')['$==='](value))) { + self.$raise($$($nesting, 'ArgumentError'), "the promise has already been realized")}; + if ($truthy($$($nesting, 'Promise')['$==='](value))) { return value['$<<'](self.prev)['$^'](self)}; try { - if ($truthy((block = ($truthy($a = self.action['$[]']("failure")) ? $a : self.action['$[]']("always"))))) { - value = block.$call(value)}; + if ($truthy((block = (function() {if ($truthy(($ret_or_4 = self.action['$[]']("failure")))) { + return $ret_or_4 + } else { + return self.action['$[]']("always") + }; return nil; })()))) { + + self.realized = "reject"; + value = block.$call(value);}; if ($truthy(self.action['$has_key?']("always"))) { self['$resolve!'](value) - } else { + } else { self['$reject!'](value) }; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { self['$exception!'](e) - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } };; return self; - }, TMP_Promise_reject_20.$$arity = -1); + }, $Promise_reject$20.$$arity = -1); - Opal.defn(self, '$reject!', TMP_Promise_reject$B_22 = function(value) { - var TMP_21, self = this; + Opal.def(self, '$reject!', $Promise_reject$excl$21 = function(value) { + var $$22, self = this; self.realized = "reject"; self.error = value; if ($truthy(self.next['$any?']())) { - return $send(self.next, 'each', [], (TMP_21 = function(p){var self = TMP_21.$$s || this; -if (p == null) p = nil; - return p.$reject(value)}, TMP_21.$$s = self, TMP_21.$$arity = 1, TMP_21)) - } else { + return $send(self.next, 'each', [], ($$22 = function(p){var self = $$22.$$s == null ? this : $$22.$$s; + + + + if (p == null) { + p = nil; + }; + return p.$reject(value);}, $$22.$$s = self, $$22.$$arity = 1, $$22)) + } else { return (self.delayed = [value]) }; - }, TMP_Promise_reject$B_22.$$arity = 1); + }, $Promise_reject$excl$21.$$arity = 1); - Opal.defn(self, '$exception!', TMP_Promise_exception$B_23 = function(error) { + Opal.def(self, '$exception!', $Promise_exception$excl$23 = function(error) { var self = this; - if ($truthy(error['$is_a?'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Promise'), 'Fail')))) { + if ($truthy(error['$is_a?']($$$($$($nesting, 'Promise'), 'Fail')))) { error = error.$result() - } else { + } else { self.exception = true }; return self['$reject!'](error); - }, TMP_Promise_exception$B_23.$$arity = 1); + }, $Promise_exception$excl$23.$$arity = 1); - Opal.defn(self, '$then', TMP_Promise_then_24 = function $$then() { - var self = this, $iter = TMP_Promise_then_24.$$p, block = $iter || nil; + Opal.def(self, '$then', $Promise_then$24 = function $$then() { + var $iter = $Promise_then$24.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_then_24.$$p = null; - return self['$^'](Opal.const_get_relative($nesting, 'Promise').$new($hash2(["success"], {"success": block}))) - }, TMP_Promise_then_24.$$arity = 0); + if ($iter) $Promise_then$24.$$p = null; + + + if ($iter) $Promise_then$24.$$p = null;; + return self['$^']($$($nesting, 'Promise').$new($hash2(["success"], {"success": block}))); + }, $Promise_then$24.$$arity = 0); - Opal.defn(self, '$then!', TMP_Promise_then$B_25 = function() { - var self = this, $iter = TMP_Promise_then$B_25.$$p, block = $iter || nil; + Opal.def(self, '$then!', $Promise_then$excl$25 = function() { + var $iter = $Promise_then$excl$25.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_then$B_25.$$p = null; + if ($iter) $Promise_then$excl$25.$$p = null; + + if ($iter) $Promise_then$excl$25.$$p = null;; self['$there_can_be_only_one!'](); return $send(self, 'then', [], block.$to_proc()); - }, TMP_Promise_then$B_25.$$arity = 0); - Opal.alias(self, "do", "then"); - Opal.alias(self, "do!", "then!"); + }, $Promise_then$excl$25.$$arity = 0); + $alias(self, "do", "then"); + $alias(self, "do!", "then!"); - Opal.defn(self, '$fail', TMP_Promise_fail_26 = function $$fail() { - var self = this, $iter = TMP_Promise_fail_26.$$p, block = $iter || nil; + Opal.def(self, '$fail', $Promise_fail$26 = function $$fail() { + var $iter = $Promise_fail$26.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_fail_26.$$p = null; - return self['$^'](Opal.const_get_relative($nesting, 'Promise').$new($hash2(["failure"], {"failure": block}))) - }, TMP_Promise_fail_26.$$arity = 0); + if ($iter) $Promise_fail$26.$$p = null; + + + if ($iter) $Promise_fail$26.$$p = null;; + return self['$^']($$($nesting, 'Promise').$new($hash2(["failure"], {"failure": block}))); + }, $Promise_fail$26.$$arity = 0); - Opal.defn(self, '$fail!', TMP_Promise_fail$B_27 = function() { - var self = this, $iter = TMP_Promise_fail$B_27.$$p, block = $iter || nil; + Opal.def(self, '$fail!', $Promise_fail$excl$27 = function() { + var $iter = $Promise_fail$excl$27.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_fail$B_27.$$p = null; + if ($iter) $Promise_fail$excl$27.$$p = null; + + if ($iter) $Promise_fail$excl$27.$$p = null;; self['$there_can_be_only_one!'](); return $send(self, 'fail', [], block.$to_proc()); - }, TMP_Promise_fail$B_27.$$arity = 0); - Opal.alias(self, "rescue", "fail"); - Opal.alias(self, "catch", "fail"); - Opal.alias(self, "rescue!", "fail!"); - Opal.alias(self, "catch!", "fail!"); + }, $Promise_fail$excl$27.$$arity = 0); + $alias(self, "rescue", "fail"); + $alias(self, "catch", "fail"); + $alias(self, "rescue!", "fail!"); + $alias(self, "catch!", "fail!"); - Opal.defn(self, '$always', TMP_Promise_always_28 = function $$always() { - var self = this, $iter = TMP_Promise_always_28.$$p, block = $iter || nil; + Opal.def(self, '$always', $Promise_always$28 = function $$always() { + var $iter = $Promise_always$28.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_always_28.$$p = null; - return self['$^'](Opal.const_get_relative($nesting, 'Promise').$new($hash2(["always"], {"always": block}))) - }, TMP_Promise_always_28.$$arity = 0); + if ($iter) $Promise_always$28.$$p = null; + + + if ($iter) $Promise_always$28.$$p = null;; + return self['$^']($$($nesting, 'Promise').$new($hash2(["always"], {"always": block}))); + }, $Promise_always$28.$$arity = 0); - Opal.defn(self, '$always!', TMP_Promise_always$B_29 = function() { - var self = this, $iter = TMP_Promise_always$B_29.$$p, block = $iter || nil; + Opal.def(self, '$always!', $Promise_always$excl$29 = function() { + var $iter = $Promise_always$excl$29.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Promise_always$B_29.$$p = null; + if ($iter) $Promise_always$excl$29.$$p = null; + + if ($iter) $Promise_always$excl$29.$$p = null;; self['$there_can_be_only_one!'](); return $send(self, 'always', [], block.$to_proc()); - }, TMP_Promise_always$B_29.$$arity = 0); - Opal.alias(self, "finally", "always"); - Opal.alias(self, "ensure", "always"); - Opal.alias(self, "finally!", "always!"); - Opal.alias(self, "ensure!", "always!"); + }, $Promise_always$excl$29.$$arity = 0); + $alias(self, "finally", "always"); + $alias(self, "ensure", "always"); + $alias(self, "finally!", "always!"); + $alias(self, "ensure!", "always!"); - Opal.defn(self, '$trace', TMP_Promise_trace_30 = function $$trace(depth) { - var self = this, $iter = TMP_Promise_trace_30.$$p, block = $iter || nil; + Opal.def(self, '$trace', $Promise_trace$30 = function $$trace(depth) { + var $iter = $Promise_trace$30.$$p, block = $iter || nil, self = this; + if ($iter) $Promise_trace$30.$$p = null; + + + if ($iter) $Promise_trace$30.$$p = null;; + if (depth == null) { depth = nil; - } - if ($iter) TMP_Promise_trace_30.$$p = null; - return self['$^'](Opal.const_get_relative($nesting, 'Trace').$new(depth, block)) - }, TMP_Promise_trace_30.$$arity = -1); - - Opal.defn(self, '$trace!', TMP_Promise_trace$B_31 = function($a_rest) { - var self = this, args, $iter = TMP_Promise_trace$B_31.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Promise_trace$B_31.$$p = null; + }; + return self['$^']($$($nesting, 'Trace').$new(depth, block)); + }, $Promise_trace$30.$$arity = -1); + + Opal.def(self, '$trace!', $Promise_trace$excl$31 = function($a) { + var $iter = $Promise_trace$excl$31.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Promise_trace$excl$31.$$p = null; + + if ($iter) $Promise_trace$excl$31.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self['$there_can_be_only_one!'](); return $send(self, 'trace', Opal.to_a(args), block.$to_proc()); - }, TMP_Promise_trace$B_31.$$arity = -1); + }, $Promise_trace$excl$31.$$arity = -1); - Opal.defn(self, '$there_can_be_only_one!', TMP_Promise_there_can_be_only_one$B_32 = function() { + Opal.def(self, '$there_can_be_only_one!', $Promise_there_can_be_only_one$excl$32 = function() { var self = this; if ($truthy(self.next['$any?']())) { - return self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "a promise has already been chained") - } else { + return self.$raise($$($nesting, 'ArgumentError'), "a promise has already been chained") + } else { return nil } - }, TMP_Promise_there_can_be_only_one$B_32.$$arity = 0); + }, $Promise_there_can_be_only_one$excl$32.$$arity = 0); - Opal.defn(self, '$inspect', TMP_Promise_inspect_33 = function $$inspect() { - var $a, self = this, result = nil; + Opal.def(self, '$inspect', $Promise_inspect$33 = function $$inspect() { + var self = this, result = nil, $ret_or_5 = nil; result = "" + "#<" + (self.$class()) + "(" + (self.$object_id()) + ")"; if ($truthy(self.next['$any?']())) { result = $rb_plus(result, "" + " >> " + (self.next.$inspect()))}; if ($truthy(self['$realized?']())) { - result = $rb_plus(result, "" + ": " + (($truthy($a = self.value) ? $a : self.error).$inspect()) + ">") + result = $rb_plus(result, "" + ": " + ((function() {if ($truthy(($ret_or_5 = self.value))) { + return $ret_or_5 } else { + return self.error + }; return nil; })().$inspect()) + ">") + } else { result = $rb_plus(result, ">") }; return result; - }, TMP_Promise_inspect_33.$$arity = 0); + }, $Promise_inspect$33.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Trace(){}; - var self = $Trace = $klass($base, $super, 'Trace', $Trace); + var self = $klass($base, $super, 'Trace'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Trace_it_34, TMP_Trace_initialize_35; + var $nesting = [self].concat($parent_nesting), $Trace_it$34, $Trace_initialize$35; - Opal.defs(self, '$it', TMP_Trace_it_34 = function $$it(promise) { - var $a, self = this, current = nil, prev = nil; + Opal.defs(self, '$it', $Trace_it$34 = function $$it(promise) { + var self = this, current = nil, $ret_or_6 = nil, prev = nil; current = []; - if ($truthy(($truthy($a = promise['$act?']()) ? $a : promise.$prev()['$nil?']()))) { + if ($truthy((function() {if ($truthy(($ret_or_6 = promise['$act?']()))) { + return $ret_or_6 + } else { + return promise.$prev()['$nil?']() + }; return nil; })())) { current.$push(promise.$value())}; if ($truthy((prev = promise.$prev()))) { return current.$concat(self.$it(prev)) - } else { + } else { return current }; - }, TMP_Trace_it_34.$$arity = 1); - return (Opal.defn(self, '$initialize', TMP_Trace_initialize_35 = function $$initialize(depth, block) { - var TMP_36, self = this, $iter = TMP_Trace_initialize_35.$$p, $yield = $iter || nil; + }, $Trace_it$34.$$arity = 1); + return (Opal.def(self, '$initialize', $Trace_initialize$35 = function $$initialize(depth, block) { + var $$36, $iter = $Trace_initialize$35.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Trace_initialize_35.$$p = null; + if ($iter) $Trace_initialize$35.$$p = null; self.depth = depth; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Trace_initialize_35, false), [$hash2(["success"], {"success": $send(self, 'proc', [], (TMP_36 = function(){var self = TMP_36.$$s || this, $a, trace = nil; + return $send2(self, $find_super(self, 'initialize', $Trace_initialize$35, false, true), 'initialize', [$hash2(["success"], {"success": $send(self, 'proc', [], ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s, trace = nil, $ret_or_7 = nil; - - trace = Opal.const_get_relative($nesting, 'Trace').$it(self).$reverse(); + + trace = $$($nesting, 'Trace').$it(self).$reverse(); trace.$pop(); - if ($truthy(($truthy($a = depth) ? $rb_le(depth, trace.$length()) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_7 = depth))) { + return $rb_le(depth, trace.$length()) + } else { + return $ret_or_7 + }; return nil; })())) { trace.$shift($rb_minus(trace.$length(), depth))}; - return $send(block, 'call', Opal.to_a(trace));}, TMP_36.$$s = self, TMP_36.$$arity = 0, TMP_36))})], null); - }, TMP_Trace_initialize_35.$$arity = 2), nil) && 'initialize'; + return $send(block, 'call', Opal.to_a(trace));}, $$36.$$s = self, $$36.$$arity = 0, $$36))})], null); + }, $Trace_initialize$35.$$arity = 2), nil) && 'initialize'; })($nesting[0], self, $nesting); return (function($base, $super, $parent_nesting) { - function $When(){}; - var self = $When = $klass($base, $super, 'When', $When); + var self = $klass($base, $super, 'When'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_When_initialize_37, TMP_When_each_39, TMP_When_collect_41, TMP_When_inject_43, TMP_When_wait_46, TMP_When_$gt$gt_47, TMP_When_try_49; + var $nesting = [self].concat($parent_nesting), $When_initialize$37, $When_each$39, $When_collect$41, $When_inject$43, $When_wait$45, $When_$gt$gt$47, $When_try$49; - def.wait = nil; + self.$$prototype.wait = nil; - Opal.defn(self, '$initialize', TMP_When_initialize_37 = function $$initialize(promises) { - var TMP_38, self = this, $iter = TMP_When_initialize_37.$$p, $yield = $iter || nil; + Opal.def(self, '$initialize', $When_initialize$37 = function $$initialize(promises) { + var $$38, $iter = $When_initialize$37.$$p, $yield = $iter || nil, self = this; + if ($iter) $When_initialize$37.$$p = null; + + if (promises == null) { promises = []; - } - if ($iter) TMP_When_initialize_37.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_When_initialize_37, false), [], null); + }; + $send2(self, $find_super(self, 'initialize', $When_initialize$37, false, true), 'initialize', [], null); self.wait = []; - return $send(promises, 'each', [], (TMP_38 = function(promise){var self = TMP_38.$$s || this; -if (promise == null) promise = nil; - return self.$wait(promise)}, TMP_38.$$s = self, TMP_38.$$arity = 1, TMP_38)); - }, TMP_When_initialize_37.$$arity = -1); + return $send(promises, 'each', [], ($$38 = function(promise){var self = $$38.$$s == null ? this : $$38.$$s; + + + + if (promise == null) { + promise = nil; + }; + return self.$wait(promise);}, $$38.$$s = self, $$38.$$arity = 1, $$38)); + }, $When_initialize$37.$$arity = -1); - Opal.defn(self, '$each', TMP_When_each_39 = function $$each() { - var TMP_40, self = this, $iter = TMP_When_each_39.$$p, block = $iter || nil; + Opal.def(self, '$each', $When_each$39 = function $$each() { + var $iter = $When_each$39.$$p, block = $iter || nil, $$40, self = this; - if ($iter) TMP_When_each_39.$$p = null; + if ($iter) $When_each$39.$$p = null; + + if ($iter) $When_each$39.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no block given") + } else { + self.$raise($$($nesting, 'ArgumentError'), "no block given") }; - return $send(self, 'then', [], (TMP_40 = function(values){var self = TMP_40.$$s || this; -if (values == null) values = nil; - return $send(values, 'each', [], block.$to_proc())}, TMP_40.$$s = self, TMP_40.$$arity = 1, TMP_40)); - }, TMP_When_each_39.$$arity = 0); + return $send(self, 'then', [], ($$40 = function(values){var self = $$40.$$s == null ? this : $$40.$$s; + + + + if (values == null) { + values = nil; + }; + return $send(values, 'each', [], block.$to_proc());}, $$40.$$s = self, $$40.$$arity = 1, $$40)); + }, $When_each$39.$$arity = 0); - Opal.defn(self, '$collect', TMP_When_collect_41 = function $$collect() { - var TMP_42, self = this, $iter = TMP_When_collect_41.$$p, block = $iter || nil; + Opal.def(self, '$collect', $When_collect$41 = function $$collect() { + var $iter = $When_collect$41.$$p, block = $iter || nil, $$42, self = this; - if ($iter) TMP_When_collect_41.$$p = null; + if ($iter) $When_collect$41.$$p = null; + + if ($iter) $When_collect$41.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no block given") + } else { + self.$raise($$($nesting, 'ArgumentError'), "no block given") }; - return $send(self, 'then', [], (TMP_42 = function(values){var self = TMP_42.$$s || this; -if (values == null) values = nil; - return Opal.const_get_relative($nesting, 'When').$new($send(values, 'map', [], block.$to_proc()))}, TMP_42.$$s = self, TMP_42.$$arity = 1, TMP_42)); - }, TMP_When_collect_41.$$arity = 0); - - Opal.defn(self, '$inject', TMP_When_inject_43 = function $$inject($a_rest) { - var TMP_44, self = this, args, $iter = TMP_When_inject_43.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_When_inject_43.$$p = null; - return $send(self, 'then', [], (TMP_44 = function(values){var self = TMP_44.$$s || this; -if (values == null) values = nil; - return $send(values, 'reduce', Opal.to_a(args), block.$to_proc())}, TMP_44.$$s = self, TMP_44.$$arity = 1, TMP_44)) - }, TMP_When_inject_43.$$arity = -1); - Opal.alias(self, "map", "collect"); - Opal.alias(self, "reduce", "inject"); + return $send(self, 'then', [], ($$42 = function(values){var self = $$42.$$s == null ? this : $$42.$$s; + + + + if (values == null) { + values = nil; + }; + return $$($nesting, 'When').$new($send(values, 'map', [], block.$to_proc()));}, $$42.$$s = self, $$42.$$arity = 1, $$42)); + }, $When_collect$41.$$arity = 0); - Opal.defn(self, '$wait', TMP_When_wait_46 = function $$wait(promise) { - var TMP_45, self = this; + Opal.def(self, '$inject', $When_inject$43 = function $$inject($a) { + var $iter = $When_inject$43.$$p, block = $iter || nil, $post_args, args, $$44, self = this; + if ($iter) $When_inject$43.$$p = null; - if ($truthy(Opal.const_get_relative($nesting, 'Promise')['$==='](promise))) { - } else { - promise = Opal.const_get_relative($nesting, 'Promise').$value(promise) + + if ($iter) $When_inject$43.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, 'then', [], ($$44 = function(values){var self = $$44.$$s == null ? this : $$44.$$s; + + + + if (values == null) { + values = nil; + }; + return $send(values, 'reduce', Opal.to_a(args), block.$to_proc());}, $$44.$$s = self, $$44.$$arity = 1, $$44)); + }, $When_inject$43.$$arity = -1); + $alias(self, "map", "collect"); + $alias(self, "reduce", "inject"); + + Opal.def(self, '$wait', $When_wait$45 = function $$wait(promise) { + var $$46, self = this; + + + if ($truthy($$($nesting, 'Promise')['$==='](promise))) { + } else { + promise = $$($nesting, 'Promise').$value(promise) }; if ($truthy(promise['$act?']())) { promise = promise.$then()}; self.wait['$<<'](promise); - $send(promise, 'always', [], (TMP_45 = function(){var self = TMP_45.$$s || this; + $send(promise, 'always', [], ($$46 = function(){var self = $$46.$$s == null ? this : $$46.$$s; if (self.next == null) self.next = nil; - if ($truthy(self.next['$any?']())) { + if ($truthy(self.next['$any?']())) { return self.$try() - } else { + } else { return nil - }}, TMP_45.$$s = self, TMP_45.$$arity = 0, TMP_45)); + }}, $$46.$$s = self, $$46.$$arity = 0, $$46)); return self; - }, TMP_When_wait_46.$$arity = 1); - Opal.alias(self, "and", "wait"); + }, $When_wait$45.$$arity = 1); + $alias(self, "and", "wait"); - Opal.defn(self, '$>>', TMP_When_$gt$gt_47 = function($a_rest) { - var TMP_48, self = this, $iter = TMP_When_$gt$gt_47.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$>>', $When_$gt$gt$47 = function($a) { + var $post_args, $rest_arg, $$48, $iter = $When_$gt$gt$47.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_When_$gt$gt_47.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return $send($send(self, Opal.find_super_dispatcher(self, '>>', TMP_When_$gt$gt_47, false), $zuper, $iter), 'tap', [], (TMP_48 = function(){var self = TMP_48.$$s || this; + if ($iter) $When_$gt$gt$47.$$p = null; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return $send($send2(self, $find_super(self, '>>', $When_$gt$gt$47, false, true), '>>', Opal.to_a($rest_arg), $iter), 'tap', [], ($$48 = function(){var self = $$48.$$s == null ? this : $$48.$$s; - return self.$try()}, TMP_48.$$s = self, TMP_48.$$arity = 0, TMP_48)) - }, TMP_When_$gt$gt_47.$$arity = -1); - return (Opal.defn(self, '$try', TMP_When_try_49 = function() { + return self.$try()}, $$48.$$s = self, $$48.$$arity = 0, $$48)); + }, $When_$gt$gt$47.$$arity = -1); + return (Opal.def(self, '$try', $When_try$49 = function() { var self = this, promise = nil; if ($truthy($send(self.wait, 'all?', [], "realized?".$to_proc()))) { if ($truthy((promise = $send(self.wait, 'find', [], "rejected?".$to_proc())))) { return self.$reject(promise.$error()) - } else { + } else { return self.$resolve($send(self.wait, 'map', [], "value".$to_proc())) } - } else { + } else { return nil } - }, TMP_When_try_49.$$arity = 0), nil) && 'try'; + }, $When_try$49.$$arity = 0), nil) && 'try'; })($nesting[0], self, $nesting); })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/railway"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass; +Opal.modules["hyper-operation/railway"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/api"] = function(Opal) { +Opal.modules["hyper-operation/api"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $hash = Opal.hash; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $hash = Opal.hash; - Opal.add_stubs(['$is_a?', '$raise', '$new', '$tap', '$split', '$to_s', '$pop', '$inject', '$[]', '$to_sym', '$[]=', '$-', '$!', '$nil?', '$abort!', '$succeed!', '$_Railway', '$class', '$_run', '$instance_eval', '$process_params', '$process_validations', '$run', '$dispatch', '$result', '$then', '$to_proc', '$fail', '$add_param', '$get_name_and_opts', '$merge', '$each', '$add_validation', '$add_error', '$add_step', '$add_failed', '$add_async', '$add_receiver', '$singleton_class', '$define_singleton_method', '$set_var', '$superclass', '$==', '$instance_variable_get', '$instance_variable_set', '$dup']); + Opal.add_stubs(['$is_a?', '$raise', '$new', '$tap', '$split', '$to_s', '$pop', '$inject', '$[]', '$to_sym', '$[]=', '$-', '$!', '$nil?', '$abort!', '$succeed!', '$_Railway', '$class', '$_run', '$instance_eval', '$process_params', '$process_validations', '$run', '$rejected?', '$dispatch', '$result', '$then', '$to_proc', '$fail', '$add_param', '$get_name_and_opts', '$merge', '$each', '$add_validation', '$add_error', '$add_step', '$add_failed', '$add_async', '$add_receiver', '$singleton_class', '$define_singleton_method', '$set_var', '$superclass', '$==', '$instance_variable_get', '$instance_variable_set', '$dup']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Operation_add_error_3, TMP_Operation_has_errors$q_4, TMP_Operation_params_5, TMP_Operation_abort$B_6, TMP_Operation_succeed$B_7, TMP_Operation_initialize_8; + var $nesting = [self].concat($parent_nesting), $Operation_add_error$1, $Operation_has_errors$ques$4, $Operation_params$5, $Operation_abort$excl$6, $Operation_succeed$excl$7, $Operation_initialize$8; - def.errors = def.params = nil; + self.$$prototype.errors = self.$$prototype.params = nil; - Opal.defn(self, '$add_error', TMP_Operation_add_error_3 = function $$add_error(key, kind, message) { - var $a, TMP_1, self = this; + Opal.def(self, '$add_error', $Operation_add_error$1 = function $$add_error(key, kind, message) { + var $$2, self = this, $ret_or_1 = nil; + + if (message == null) { message = nil; - } - - if ($truthy(kind['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError').$new("Invalid kind")) }; - self.errors = ($truthy($a = self.errors) ? $a : Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'ErrorHash').$new()); - return $send(self.errors, 'tap', [], (TMP_1 = function(errs){var self = TMP_1.$$s || this, TMP_2, path = nil, last = nil, inner = nil, $writer = nil; -if (errs == null) errs = nil; - + if ($truthy(kind['$is_a?']($$($nesting, 'Symbol')))) { + } else { + self.$raise($$($nesting, 'ArgumentError').$new("Invalid kind")) + }; + self.errors = (function() {if ($truthy(($ret_or_1 = self.errors))) { + return $ret_or_1 + } else { + return $$$($$($nesting, 'Mutations'), 'ErrorHash').$new() + }; return nil; })(); + return $send(self.errors, 'tap', [], ($$2 = function(errs){var self = $$2.$$s == null ? this : $$2.$$s, $$3, path = nil, last = nil, inner = nil, $writer = nil; + + + + if (errs == null) { + errs = nil; + }; path = key.$to_s().$split("."); last = path.$pop(); - inner = $send(path, 'inject', [errs], (TMP_2 = function(cur_errors, part){var self = TMP_2.$$s || this, $b, $writer = nil; -if (cur_errors == null) cur_errors = nil;if (part == null) part = nil; - return ($truthy($b = cur_errors['$[]'](part.$to_sym())) ? $b : (($writer = [part.$to_sym(), Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'ErrorHash').$new()]), $send(cur_errors, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))}, TMP_2.$$s = self, TMP_2.$$arity = 2, TMP_2)); + inner = $send(path, 'inject', [errs], ($$3 = function(cur_errors, part){var self = $$3.$$s == null ? this : $$3.$$s, $ret_or_2 = nil, $writer = nil; + + + + if (cur_errors == null) { + cur_errors = nil; + }; + + if (part == null) { + part = nil; + }; + if ($truthy(($ret_or_2 = cur_errors['$[]'](part.$to_sym())))) { + return $ret_or_2 + } else { + + $writer = [part.$to_sym(), $$$($$($nesting, 'Mutations'), 'ErrorHash').$new()]; + $send(cur_errors, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + };}, $$3.$$s = self, $$3.$$arity = 2, $$3)); - $writer = [last, Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'ErrorAtom').$new(key, kind, $hash2(["message"], {"message": message}))]; + $writer = [last, $$$($$($nesting, 'Mutations'), 'ErrorAtom').$new(key, kind, $hash2(["message"], {"message": message}))]; $send(inner, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)); - }, TMP_Operation_add_error_3.$$arity = -3); + return $writer[$rb_minus($writer["length"], 1)];;}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $Operation_add_error$1.$$arity = -3); - Opal.defn(self, '$has_errors?', TMP_Operation_has_errors$q_4 = function() { + Opal.def(self, '$has_errors?', $Operation_has_errors$ques$4 = function() { var self = this; return self.errors['$nil?']()['$!']() - }, TMP_Operation_has_errors$q_4.$$arity = 0); + }, $Operation_has_errors$ques$4.$$arity = 0); - Opal.defn(self, '$params', TMP_Operation_params_5 = function $$params() { + Opal.def(self, '$params', $Operation_params$5 = function $$params() { var self = this; return self.params - }, TMP_Operation_params_5.$$arity = 0); + }, $Operation_params$5.$$arity = 0); - Opal.defn(self, '$abort!', TMP_Operation_abort$B_6 = function(arg) { + Opal.def(self, '$abort!', $Operation_abort$excl$6 = function(arg) { var self = this; + + if (arg == null) { arg = nil; - } - return Opal.const_get_relative($nesting, 'Railway')['$abort!'](arg) - }, TMP_Operation_abort$B_6.$$arity = -1); + }; + return $$($nesting, 'Railway')['$abort!'](arg); + }, $Operation_abort$excl$6.$$arity = -1); - Opal.defn(self, '$succeed!', TMP_Operation_succeed$B_7 = function(arg) { + Opal.def(self, '$succeed!', $Operation_succeed$excl$7 = function(arg) { var self = this; + + if (arg == null) { arg = nil; - } - return Opal.const_get_relative($nesting, 'Railway')['$succeed!'](arg) - }, TMP_Operation_succeed$B_7.$$arity = -1); + }; + return $$($nesting, 'Railway')['$succeed!'](arg); + }, $Operation_succeed$excl$7.$$arity = -1); - Opal.defn(self, '$initialize', TMP_Operation_initialize_8 = function $$initialize() { + Opal.def(self, '$initialize', $Operation_initialize$8 = function $$initialize() { var self = this; return (self._railway = self.$class().$_Railway().$new(self)) - }, TMP_Operation_initialize_8.$$arity = 0); + }, $Operation_initialize$8.$$arity = 0); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_run_9, TMP__run_11, TMP_then_12, TMP_fail_13, TMP_param_14, TMP_inbound_15, TMP_outbound_17, TMP_validate_18, TMP_add_error_19, TMP_step_20, TMP_failed_21, TMP_async_22, TMP_on_dispatch_23, TMP__Railway_24, TMP_inherited_38; + var $nesting = [self].concat($parent_nesting), $run$9, $_run$10, $then$12, $fail$13, $param$14, $inbound$15, $outbound$16, $validate$18, $add_error$19, $step$20, $failed$21, $async$22, $on_dispatch$23, $_Railway$24, $inherited$25; - Opal.defn(self, '$run', TMP_run_9 = function $$run($a_rest) { - var self = this, args; + Opal.def(self, '$run', $run$9 = function $$run($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self, '_run', Opal.to_a(args)) - }, TMP_run_9.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, '_run', Opal.to_a(args)); + }, $run$9.$$arity = -1); - Opal.defn(self, '$_run', TMP__run_11 = function $$_run($a_rest) { - var TMP_10, self = this, args; + Opal.def(self, '$_run', $_run$10 = function $$_run($a) { + var $post_args, args, $$11, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$new(), 'instance_eval', [], (TMP_10 = function(){var self = TMP_10.$$s || this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$new(), 'instance_eval', [], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s, dispatch_result = nil; if (self._railway == null) self._railway = nil; - + self._railway.$process_params(args); self._railway.$process_validations(); self._railway.$run(); - self._railway.$dispatch(); - return self._railway.$result();}, TMP_10.$$s = self, TMP_10.$$arity = 0, TMP_10)) - }, TMP__run_11.$$arity = -1); - - Opal.defn(self, '$then', TMP_then_12 = function $$then($a_rest) { - var self = this, args, $iter = TMP_then_12.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_then_12.$$p = null; - return $send($send(self, 'run', Opal.to_a(args)), 'then', [], block.$to_proc()) - }, TMP_then_12.$$arity = -1); - - Opal.defn(self, '$fail', TMP_fail_13 = function $$fail($a_rest) { - var self = this, args, $iter = TMP_fail_13.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_fail_13.$$p = null; - return $send($send(self, 'run', Opal.to_a(args)), 'fail', [], block.$to_proc()) - }, TMP_fail_13.$$arity = -1); - - Opal.defn(self, '$param', TMP_param_14 = function $$param($a_rest) { - var self = this, args, $iter = TMP_param_14.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_param_14.$$p = null; - return $send(self.$_Railway(), 'add_param', Opal.to_a(args), block.$to_proc()) - }, TMP_param_14.$$arity = -1); - - Opal.defn(self, '$inbound', TMP_inbound_15 = function $$inbound($a_rest) { - var $b, $c, self = this, args, $iter = TMP_inbound_15.$$p, block = $iter || nil, name = nil, opts = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_inbound_15.$$p = null; + if ($truthy((dispatch_result = self._railway.$dispatch())['$rejected?']())) { + return dispatch_result + } else { + return self._railway.$result() + };}, $$11.$$s = self, $$11.$$arity = 0, $$11)); + }, $_run$10.$$arity = -1); + + Opal.def(self, '$then', $then$12 = function $$then($a) { + var $iter = $then$12.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $then$12.$$p = null; + + + if ($iter) $then$12.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($send(self, 'run', Opal.to_a(args)), 'then', [], block.$to_proc()); + }, $then$12.$$arity = -1); + + Opal.def(self, '$fail', $fail$13 = function $$fail($a) { + var $iter = $fail$13.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $fail$13.$$p = null; + + + if ($iter) $fail$13.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($send(self, 'run', Opal.to_a(args)), 'fail', [], block.$to_proc()); + }, $fail$13.$$arity = -1); + + Opal.def(self, '$param', $param$14 = function $$param($a) { + var $iter = $param$14.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $param$14.$$p = null; + + + if ($iter) $param$14.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_param', Opal.to_a(args), block.$to_proc()); + }, $param$14.$$arity = -1); + + Opal.def(self, '$inbound', $inbound$15 = function $$inbound($a) { + var $iter = $inbound$15.$$p, block = $iter || nil, $post_args, args, $b, $c, self = this, name = nil, opts = nil; + + if ($iter) $inbound$15.$$p = null; + + + if ($iter) $inbound$15.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); - $c = $send(Opal.const_get_relative($nesting, 'ParamsWrapper'), 'get_name_and_opts', Opal.to_a(args)), $b = Opal.to_ary($c), (name = ($b[0] == null ? nil : $b[0])), (opts = ($b[1] == null ? nil : $b[1])), $c; + args = $post_args;; + $c = $send($$($nesting, 'ParamsWrapper'), 'get_name_and_opts', Opal.to_a(args)), $b = Opal.to_ary($c), (name = ($b[0] == null ? nil : $b[0])), (opts = ($b[1] == null ? nil : $b[1])), $c; return $send(self.$_Railway(), 'add_param', [name, opts.$merge($hash2(["inbound"], {"inbound": "true"}))], block.$to_proc()); - }, TMP_inbound_15.$$arity = -1); + }, $inbound$15.$$arity = -1); - Opal.defn(self, '$outbound', TMP_outbound_17 = function $$outbound($a_rest) { - var TMP_16, self = this, keys; + Opal.def(self, '$outbound', $outbound$16 = function $$outbound($a) { + var $post_args, keys, $$17, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - keys = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - keys[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(keys, 'each', [], (TMP_16 = function(key){var self = TMP_16.$$s || this; -if (key == null) key = nil; - return self.$_Railway().$add_param($hash(key, nil, "type", "outbound"))}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)) - }, TMP_outbound_17.$$arity = -1); - - Opal.defn(self, '$validate', TMP_validate_18 = function $$validate($a_rest) { - var self = this, args, $iter = TMP_validate_18.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_validate_18.$$p = null; - return $send(self.$_Railway(), 'add_validation', Opal.to_a(args), block.$to_proc()) - }, TMP_validate_18.$$arity = -1); - - Opal.defn(self, '$add_error', TMP_add_error_19 = function $$add_error(param, symbol, message, $a_rest) { - var self = this, args, $iter = TMP_add_error_19.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 3; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 3; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 3] = arguments[$arg_idx]; - } - if ($iter) TMP_add_error_19.$$p = null; - return $send(self.$_Railway(), 'add_error', [param, symbol, message].concat(Opal.to_a(args)), block.$to_proc()) - }, TMP_add_error_19.$$arity = -4); - - Opal.defn(self, '$step', TMP_step_20 = function $$step($a_rest) { - var self = this, args, $iter = TMP_step_20.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_step_20.$$p = null; - return $send(self.$_Railway(), 'add_step', Opal.to_a(args), block.$to_proc()) - }, TMP_step_20.$$arity = -1); - - Opal.defn(self, '$failed', TMP_failed_21 = function $$failed($a_rest) { - var self = this, args, $iter = TMP_failed_21.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_failed_21.$$p = null; - return $send(self.$_Railway(), 'add_failed', Opal.to_a(args), block.$to_proc()) - }, TMP_failed_21.$$arity = -1); - - Opal.defn(self, '$async', TMP_async_22 = function $$async($a_rest) { - var self = this, args, $iter = TMP_async_22.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_async_22.$$p = null; - return $send(self.$_Railway(), 'add_async', Opal.to_a(args), block.$to_proc()) - }, TMP_async_22.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + keys = $post_args;; + return $send(keys, 'each', [], ($$17 = function(key){var self = $$17.$$s == null ? this : $$17.$$s; + + + + if (key == null) { + key = nil; + }; + return self.$_Railway().$add_param($hash(key, nil, "type", "outbound"));}, $$17.$$s = self, $$17.$$arity = 1, $$17)); + }, $outbound$16.$$arity = -1); + + Opal.def(self, '$validate', $validate$18 = function $$validate($a) { + var $iter = $validate$18.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $validate$18.$$p = null; + + + if ($iter) $validate$18.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_validation', Opal.to_a(args), block.$to_proc()); + }, $validate$18.$$arity = -1); + + Opal.def(self, '$add_error', $add_error$19 = function $$add_error(param, symbol, message, $a) { + var $iter = $add_error$19.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $add_error$19.$$p = null; + + + if ($iter) $add_error$19.$$p = null;; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_error', [param, symbol, message].concat(Opal.to_a(args)), block.$to_proc()); + }, $add_error$19.$$arity = -4); + + Opal.def(self, '$step', $step$20 = function $$step($a) { + var $iter = $step$20.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $step$20.$$p = null; + + + if ($iter) $step$20.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_step', Opal.to_a(args), block.$to_proc()); + }, $step$20.$$arity = -1); + + Opal.def(self, '$failed', $failed$21 = function $$failed($a) { + var $iter = $failed$21.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $failed$21.$$p = null; + + + if ($iter) $failed$21.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_failed', Opal.to_a(args), block.$to_proc()); + }, $failed$21.$$arity = -1); + + Opal.def(self, '$async', $async$22 = function $$async($a) { + var $iter = $async$22.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $async$22.$$p = null; + + + if ($iter) $async$22.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_async', Opal.to_a(args), block.$to_proc()); + }, $async$22.$$arity = -1); - Opal.defn(self, '$on_dispatch', TMP_on_dispatch_23 = function $$on_dispatch() { - var self = this, $iter = TMP_on_dispatch_23.$$p, block = $iter || nil; + Opal.def(self, '$on_dispatch', $on_dispatch$23 = function $$on_dispatch() { + var $iter = $on_dispatch$23.$$p, block = $iter || nil, self = this; - if ($iter) TMP_on_dispatch_23.$$p = null; - return $send(self.$_Railway(), 'add_receiver', [], block.$to_proc()) - }, TMP_on_dispatch_23.$$arity = 0); + if ($iter) $on_dispatch$23.$$p = null; + + + if ($iter) $on_dispatch$23.$$p = null;; + return $send(self.$_Railway(), 'add_receiver', [], block.$to_proc()); + }, $on_dispatch$23.$$arity = 0); - Opal.defn(self, '$_Railway', TMP__Railway_24 = function $$_Railway() { + Opal.def(self, '$_Railway', $_Railway$24 = function $$_Railway() { var self = this; return self.$singleton_class().$_Railway() - }, TMP__Railway_24.$$arity = 0); - return (Opal.defn(self, '$inherited', TMP_inherited_38 = function $$inherited(child) { - var TMP_25, TMP_26, TMP_27, TMP_29, TMP_30, TMP_31, TMP_32, TMP_33, TMP_34, self = this; + }, $_Railway$24.$$arity = 0); + return (Opal.def(self, '$inherited', $inherited$25 = function $$inherited(child) { + var $$26, $$27, $$28, $$30, $$31, $$32, $$33, $$34, $$35, $iter = $inherited$25.$$p, $yield = $iter || nil, self = this; + if ($iter) $inherited$25.$$p = null; - $send(child.$singleton_class(), 'define_singleton_method', ["param"], (TMP_25 = function($a_rest){var self = TMP_25.$$s || this, block, args; + $send(child.$singleton_class(), 'define_singleton_method', ["param"], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $iter = $$26.$$p, block = $iter || nil, $post_args, args; - block = TMP_25.$$p || nil; - if (block) TMP_25.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$_Railway(), 'add_param', Opal.to_a(args), block.$to_proc())}, TMP_25.$$s = self, TMP_25.$$arity = -1, TMP_25)); - $send(child.$singleton_class(), 'define_singleton_method', ["inbound"], (TMP_26 = function($a_rest){var self = TMP_26.$$s || this, block, args, $b, $c, name = nil, opts = nil; - - block = TMP_26.$$p || nil; - if (block) TMP_26.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - $c = $send(Opal.const_get_relative($nesting, 'ParamsWrapper'), 'get_name_and_opts', Opal.to_a(args)), $b = Opal.to_ary($c), (name = ($b[0] == null ? nil : $b[0])), (opts = ($b[1] == null ? nil : $b[1])), $c; - return $send(self.$_Railway(), 'add_param', [name, opts.$merge($hash2(["inbound"], {"inbound": "true"}))], block.$to_proc());}, TMP_26.$$s = self, TMP_26.$$arity = -1, TMP_26)); - $send(child.$singleton_class(), 'define_singleton_method', ["outbound"], (TMP_27 = function($a_rest){var self = TMP_27.$$s || this, keys, TMP_28; + + + if ($iter) $$26.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_param', Opal.to_a(args), block.$to_proc());}, $$26.$$s = self, $$26.$$arity = -1, $$26)); + $send(child.$singleton_class(), 'define_singleton_method', ["inbound"], ($$27 = function($a){var self = $$27.$$s == null ? this : $$27.$$s, $iter = $$27.$$p, block = $iter || nil, $post_args, args, $b, $c, name = nil, opts = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - keys = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - keys[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(keys, 'each', [], (TMP_28 = function(key){var self = TMP_28.$$s || this; -if (key == null) key = nil; - return self.$_Railway().$add_param($hash(key, nil, "type", "outbound"))}, TMP_28.$$s = self, TMP_28.$$arity = 1, TMP_28))}, TMP_27.$$s = self, TMP_27.$$arity = -1, TMP_27)); - $send(child.$singleton_class(), 'define_singleton_method', ["validate"], (TMP_29 = function($a_rest){var self = TMP_29.$$s || this, block, args; - - block = TMP_29.$$p || nil; - if (block) TMP_29.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$_Railway(), 'add_validation', Opal.to_a(args), block.$to_proc())}, TMP_29.$$s = self, TMP_29.$$arity = -1, TMP_29)); - $send(child.$singleton_class(), 'define_singleton_method', ["add_error"], (TMP_30 = function(param, symbol, message, $a_rest){var self = TMP_30.$$s || this, block, args; - - block = TMP_30.$$p || nil; - if (block) TMP_30.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 3; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 3; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 3] = arguments[$arg_idx]; - }if (param == null) param = nil;if (symbol == null) symbol = nil;if (message == null) message = nil; - return $send(self.$_Railway(), 'add_error', [param, symbol, message].concat(Opal.to_a(args)), block.$to_proc())}, TMP_30.$$s = self, TMP_30.$$arity = -4, TMP_30)); - $send(child.$singleton_class(), 'define_singleton_method', ["step"], (TMP_31 = function($a_rest){var self = TMP_31.$$s || this, block, args; - - block = TMP_31.$$p || nil; - if (block) TMP_31.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$_Railway(), 'add_step', [$hash2(["scope"], {"scope": "class"})].concat(Opal.to_a(args)), block.$to_proc())}, TMP_31.$$s = self, TMP_31.$$arity = -1, TMP_31)); - $send(child.$singleton_class(), 'define_singleton_method', ["failed"], (TMP_32 = function($a_rest){var self = TMP_32.$$s || this, block, args; - - block = TMP_32.$$p || nil; - if (block) TMP_32.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$_Railway(), 'add_failed', [$hash2(["scope"], {"scope": "class"})].concat(Opal.to_a(args)), block.$to_proc())}, TMP_32.$$s = self, TMP_32.$$arity = -1, TMP_32)); - $send(child.$singleton_class(), 'define_singleton_method', ["async"], (TMP_33 = function($a_rest){var self = TMP_33.$$s || this, block, args; - - block = TMP_33.$$p || nil; - if (block) TMP_33.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self.$_Railway(), 'add_async', [$hash2(["scope"], {"scope": "class"})].concat(Opal.to_a(args)), block.$to_proc())}, TMP_33.$$s = self, TMP_33.$$arity = -1, TMP_33)); - return $send(child.$singleton_class(), 'define_singleton_method', ["_Railway"], (TMP_34 = function(){var self = TMP_34.$$s || this, TMP_35; + + + if ($iter) $$27.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + $c = $send($$($nesting, 'ParamsWrapper'), 'get_name_and_opts', Opal.to_a(args)), $b = Opal.to_ary($c), (name = ($b[0] == null ? nil : $b[0])), (opts = ($b[1] == null ? nil : $b[1])), $c; + return $send(self.$_Railway(), 'add_param', [name, opts.$merge($hash2(["inbound"], {"inbound": "true"}))], block.$to_proc());}, $$27.$$s = self, $$27.$$arity = -1, $$27)); + $send(child.$singleton_class(), 'define_singleton_method', ["outbound"], ($$28 = function($a){var self = $$28.$$s == null ? this : $$28.$$s, $post_args, keys, $$29; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + keys = $post_args;; + return $send(keys, 'each', [], ($$29 = function(key){var self = $$29.$$s == null ? this : $$29.$$s; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@_railway"], (TMP_35 = function(){var self = TMP_35.$$s || this, $a, TMP_36, my_super = nil; + + + if (key == null) { + key = nil; + }; + return self.$_Railway().$add_param($hash(key, nil, "type", "outbound"));}, $$29.$$s = self, $$29.$$arity = 1, $$29));}, $$28.$$s = self, $$28.$$arity = -1, $$28)); + $send(child.$singleton_class(), 'define_singleton_method', ["validate"], ($$30 = function($a){var self = $$30.$$s == null ? this : $$30.$$s, $iter = $$30.$$p, block = $iter || nil, $post_args, args; - my_super = ($truthy($a = self.$superclass()) ? $a : (self.$$singleton_of).$superclass().$singleton_class()); - if (my_super['$=='](Opal.const_get_relative($nesting, 'Operation').$singleton_class())) { - return Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'Railway')) - } else { - return $send(Opal.const_get_relative($nesting, 'Class').$new(my_super.$_Railway()), 'tap', [], (TMP_36 = function(wrapper){var self = TMP_36.$$s || this, TMP_37; -if (wrapper == null) wrapper = nil; - return $send(["@validations", "@tracks", "@receivers"], 'each', [], (TMP_37 = function(var$){var self = TMP_37.$$s || this, $b, value = nil; -if (var$ == null) var$ = nil; + + if ($iter) $$30.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_validation', Opal.to_a(args), block.$to_proc());}, $$30.$$s = self, $$30.$$arity = -1, $$30)); + $send(child.$singleton_class(), 'define_singleton_method', ["add_error"], ($$31 = function(param, symbol, message, $a){var self = $$31.$$s == null ? this : $$31.$$s, $iter = $$31.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$31.$$p = null;; + + if (param == null) { + param = nil; + }; + + if (symbol == null) { + symbol = nil; + }; + + if (message == null) { + message = nil; + }; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_error', [param, symbol, message].concat(Opal.to_a(args)), block.$to_proc());}, $$31.$$s = self, $$31.$$arity = -4, $$31)); + $send(child.$singleton_class(), 'define_singleton_method', ["step"], ($$32 = function($a){var self = $$32.$$s == null ? this : $$32.$$s, $iter = $$32.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$32.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_step', [$hash2(["scope"], {"scope": "class"})].concat(Opal.to_a(args)), block.$to_proc());}, $$32.$$s = self, $$32.$$arity = -1, $$32)); + $send(child.$singleton_class(), 'define_singleton_method', ["failed"], ($$33 = function($a){var self = $$33.$$s == null ? this : $$33.$$s, $iter = $$33.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$33.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_failed', [$hash2(["scope"], {"scope": "class"})].concat(Opal.to_a(args)), block.$to_proc());}, $$33.$$s = self, $$33.$$arity = -1, $$33)); + $send(child.$singleton_class(), 'define_singleton_method', ["async"], ($$34 = function($a){var self = $$34.$$s == null ? this : $$34.$$s, $iter = $$34.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$34.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$_Railway(), 'add_async', [$hash2(["scope"], {"scope": "class"})].concat(Opal.to_a(args)), block.$to_proc());}, $$34.$$s = self, $$34.$$arity = -1, $$34)); + return $send(child.$singleton_class(), 'define_singleton_method', ["_Railway"], ($$35 = function(){var self = $$35.$$s == null ? this : $$35.$$s, $$36; + + return $send($$$($$($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@_railway"], ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s, $$37, my_super = nil, $ret_or_3 = nil; + + + my_super = (function() {if ($truthy(($ret_or_3 = self.$superclass()))) { + return $ret_or_3 + } else { + return (self.$$singleton_of).$superclass().$singleton_class() + }; return nil; })(); + if (my_super['$==']($$($nesting, 'Operation').$singleton_class())) { + return $$($nesting, 'Class').$new($$($nesting, 'Railway')) + } else { + return $send($$($nesting, 'Class').$new(my_super.$_Railway()), 'tap', [], ($$37 = function(wrapper){var self = $$37.$$s == null ? this : $$37.$$s, $$38; + + + if (wrapper == null) { + wrapper = nil; + }; + return $send(["@validations", "@tracks", "@receivers"], 'each', [], ($$38 = function(var$){var self = $$38.$$s == null ? this : $$38.$$s, value = nil, $ret_or_4 = nil; + + + + if (var$ == null) { + var$ = nil; + }; value = my_super.$_Railway().$instance_variable_get(var$); - return wrapper.$instance_variable_set(var$, ($truthy($b = value) ? value.$dup() : $b));}, TMP_37.$$s = self, TMP_37.$$arity = 1, TMP_37))}, TMP_36.$$s = self, TMP_36.$$arity = 1, TMP_36)) - };}, TMP_35.$$s = self, TMP_35.$$arity = 0, TMP_35))}, TMP_34.$$s = self, TMP_34.$$arity = 0, TMP_34)); - }, TMP_inherited_38.$$arity = 1), nil) && 'inherited'; + return wrapper.$instance_variable_set(var$, (function() {if ($truthy(($ret_or_4 = value))) { + return value.$dup() + } else { + return $ret_or_4 + }; return nil; })());}, $$38.$$s = self, $$38.$$arity = 1, $$38));}, $$37.$$s = self, $$37.$$arity = 1, $$37)) + };}, $$36.$$s = self, $$36.$$arity = 0, $$36))}, $$35.$$s = self, $$35.$$arity = 0, $$35)); + }, $inherited$25.$$arity = 1), nil) && 'inherited'; })(Opal.get_singleton_class(self), $nesting); return (function($base, $super, $parent_nesting) { - function $Railway(){}; - var self = $Railway = $klass($base, $super, 'Railway', $Railway); + var self = $klass($base, $super, 'Railway'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Railway_initialize_39; + var $nesting = [self].concat($parent_nesting), $Railway_initialize$39; - return (Opal.defn(self, '$initialize', TMP_Railway_initialize_39 = function $$initialize(operation) { + return (Opal.def(self, '$initialize', $Railway_initialize$39 = function $$initialize(operation) { var self = this; return (self.operation = operation) - }, TMP_Railway_initialize_39.$$arity = 1), nil) && 'initialize' + }, $Railway_initialize$39.$$arity = 1), nil) && 'initialize' })($nesting[0], null, $nesting); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/railway/dispatcher"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2; +Opal.modules["hyper-operation/railway/dispatcher"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $lambda = Opal.lambda; - Opal.add_stubs(['$receivers', '$class', '$set_var', '$lambda', '$call', '$to_proc', '$define_singleton_method', '$delete', '$<<', '$then', '$result', '$each', '$dispatch_params', '$params_wrapper', '$params']); + Opal.add_stubs(['$receivers', '$class', '$set_var', '$call', '$to_proc', '$define_singleton_method', '$delete', '$<<', '$then', '$result', '$each', '$dispatch_params', '$params_wrapper', '$params']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Railway(){}; - var self = $Railway = $klass($base, $super, 'Railway', $Railway); + var self = $klass($base, $super, 'Railway'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Railway_receivers_1, TMP_Railway_dispatch_9; + var $nesting = [self].concat($parent_nesting), $Railway_receivers$1, $Railway_dispatch$7; - Opal.defn(self, '$receivers', TMP_Railway_receivers_1 = function $$receivers() { + Opal.def(self, '$receivers', $Railway_receivers$1 = function $$receivers() { var self = this; return self.$class().$receivers() - }, TMP_Railway_receivers_1.$$arity = 0); + }, $Railway_receivers$1.$$arity = 0); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_receivers_3, TMP_add_receiver_4; + var $nesting = [self].concat($parent_nesting), $receivers$2, $add_receiver$4; - Opal.defn(self, '$receivers', TMP_receivers_3 = function $$receivers() { - var TMP_2, self = this; + Opal.def(self, '$receivers', $receivers$2 = function $$receivers() { + var $$3, self = this; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@receivers", $hash2(["force"], {"force": true})], (TMP_2 = function(){var self = TMP_2.$$s || this; + return $send($$$($$($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@receivers", $hash2(["force"], {"force": true})], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s; - return []}, TMP_2.$$s = self, TMP_2.$$arity = 0, TMP_2)) - }, TMP_receivers_3.$$arity = 0); - return (Opal.defn(self, '$add_receiver', TMP_add_receiver_4 = function $$add_receiver() { - var TMP_5, TMP_6, self = this, $iter = TMP_add_receiver_4.$$p, block = $iter || nil, cloned_block = nil, operation = nil; + return []}, $$3.$$s = self, $$3.$$arity = 0, $$3)) + }, $receivers$2.$$arity = 0); + return (Opal.def(self, '$add_receiver', $add_receiver$4 = function $$add_receiver() { + var $iter = $add_receiver$4.$$p, block = $iter || nil, $$5, $$6, self = this, cloned_block = nil, operation = nil; - if ($iter) TMP_add_receiver_4.$$p = null; + if ($iter) $add_receiver$4.$$p = null; - cloned_block = $send(self, 'lambda', [], (TMP_5 = function($a_rest){var self = TMP_5.$$s || this, b, args; + + if ($iter) $add_receiver$4.$$p = null;; + cloned_block = $lambda(($$5 = function($a){var self = $$5.$$s == null ? this : $$5.$$s, $iter = $$5.$$p, b = $iter || nil, $post_args, args; - b = TMP_5.$$p || nil; - if (b) TMP_5.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(block, 'call', Opal.to_a(args), b.$to_proc())}, TMP_5.$$s = self, TMP_5.$$arity = -1, TMP_5)); + + + if ($iter) $$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(block, 'call', Opal.to_a(args), b.$to_proc());}, $$5.$$s = self, $$5.$$arity = -1, $$5)); operation = self; - $send(cloned_block, 'define_singleton_method', ["unmount"], (TMP_6 = function(){var self = TMP_6.$$s || this; + $send(cloned_block, 'define_singleton_method', ["unmount"], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; - return operation.$receivers().$delete(cloned_block)}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6)); + return operation.$receivers().$delete(cloned_block)}, $$6.$$s = self, $$6.$$arity = 0, $$6)); self.$receivers()['$<<'](cloned_block); return cloned_block; - }, TMP_add_receiver_4.$$arity = 0), nil) && 'add_receiver'; + }, $add_receiver$4.$$arity = 0), nil) && 'add_receiver'; })(Opal.get_singleton_class(self), $nesting); - return (Opal.defn(self, '$dispatch', TMP_Railway_dispatch_9 = function $$dispatch() { - var TMP_7, self = this; + return (Opal.def(self, '$dispatch', $Railway_dispatch$7 = function $$dispatch() { + var $$8, self = this; - return $send(self.$result(), 'then', [], (TMP_7 = function(){var self = TMP_7.$$s || this, TMP_8; + return $send(self.$result(), 'then', [], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s, $$9; - return $send(self.$receivers(), 'each', [], (TMP_8 = function(receiver){var self = TMP_8.$$s || this; + return $send(self.$receivers(), 'each', [], ($$9 = function(receiver){var self = $$9.$$s == null ? this : $$9.$$s; if (self.operation == null) self.operation = nil; -if (receiver == null) receiver = nil; - return receiver.$call(self.$class().$params_wrapper().$dispatch_params(self.operation.$params()), self.operation)}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8))}, TMP_7.$$s = self, TMP_7.$$arity = 0, TMP_7)) - }, TMP_Railway_dispatch_9.$$arity = 0), nil) && 'dispatch'; + + + + if (receiver == null) { + receiver = nil; + }; + return receiver.$call(self.$class().$params_wrapper().$dispatch_params(self.operation.$params()), self.operation);}, $$9.$$s = self, $$9.$$arity = 1, $$9))}, $$8.$$s = self, $$8.$$arity = 0, $$8)) + }, $Railway_dispatch$7.$$arity = 0), nil) && 'dispatch'; })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/railway/params_wrapper"] = function(Opal) { +Opal.modules["hyper-operation/railway/params_wrapper"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; Opal.add_stubs(['$dup', '$each', '$inbound_params', '$class', '$delete', '$with_indifferent_access', '$to_s', '$to_h', '$inject', '$respond_to?', '$raise', '$new', '$merge!', '$combine_arg_array', '$filter', '$hash_filter', '$instance_eval', '$translate_args', '$to_proc', '$<<', '$key?', '$optional', '$send', '$required', '$define_method', '$[]', '$method_missing', '$[]=', '$-', '$lock', '$get_name_and_opts', '$is_a?', '$>', '$count', '$first', '$==', '$proc', '$duck', '$underscore', '$last', '$process_params', '$params_wrapper', '$add_param', '$set_var', '$superclass', '$tap', '$instance_variable_set']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $ParamsWrapper(){}; - var self = $ParamsWrapper = $klass($base, $super, 'ParamsWrapper', $ParamsWrapper); + var self = $klass($base, $super, 'ParamsWrapper'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ParamsWrapper_initialize_1, TMP_ParamsWrapper_lock_2, TMP_ParamsWrapper_to_h_4, TMP_ParamsWrapper_to_s_5; + var $nesting = [self].concat($parent_nesting), $ParamsWrapper_initialize$1, $ParamsWrapper_lock$2, $ParamsWrapper_to_h$3, $ParamsWrapper_to_s$5; - def.inputs = def.locked = nil; + self.$$prototype.inputs = self.$$prototype.locked = nil; - Opal.defn(self, '$initialize', TMP_ParamsWrapper_initialize_1 = function $$initialize(inputs) { + Opal.def(self, '$initialize', $ParamsWrapper_initialize$1 = function $$initialize(inputs) { var self = this; return (self.inputs = inputs) - }, TMP_ParamsWrapper_initialize_1.$$arity = 1); + }, $ParamsWrapper_initialize$1.$$arity = 1); - Opal.defn(self, '$lock', TMP_ParamsWrapper_lock_2 = function $$lock() { + Opal.def(self, '$lock', $ParamsWrapper_lock$2 = function $$lock() { var self = this; self.locked = true; return self; - }, TMP_ParamsWrapper_lock_2.$$arity = 0); + }, $ParamsWrapper_lock$2.$$arity = 0); - Opal.defn(self, '$to_h', TMP_ParamsWrapper_to_h_4 = function $$to_h() { - var TMP_3, self = this, inputs = nil; + Opal.def(self, '$to_h', $ParamsWrapper_to_h$3 = function $$to_h() { + var $$4, self = this, inputs = nil; inputs = self.inputs; if ($truthy(self.locked)) { inputs = inputs.$dup(); - $send(self.$class().$inbound_params(), 'each', [], (TMP_3 = function(name){var self = TMP_3.$$s || this; -if (name == null) name = nil; - return inputs.$delete("" + (name))}, TMP_3.$$s = self, TMP_3.$$arity = 1, TMP_3));}; + $send(self.$class().$inbound_params(), 'each', [], ($$4 = function(name){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (name == null) { + name = nil; + }; + return inputs.$delete("" + (name));}, $$4.$$s = self, $$4.$$arity = 1, $$4));}; return inputs.$with_indifferent_access(); - }, TMP_ParamsWrapper_to_h_4.$$arity = 0); + }, $ParamsWrapper_to_h$3.$$arity = 0); - Opal.defn(self, '$to_s', TMP_ParamsWrapper_to_s_5 = function $$to_s() { + Opal.def(self, '$to_s', $ParamsWrapper_to_s$5 = function $$to_s() { var self = this; return self.$to_h().$to_s() - }, TMP_ParamsWrapper_to_s_5.$$arity = 0); + }, $ParamsWrapper_to_s$5.$$arity = 0); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_combine_arg_array_7, TMP_process_params_9, TMP_add_param_10, TMP_dispatch_params_17, TMP_hash_filter_18, TMP_inbound_params_19, TMP_translate_args_20, TMP_get_name_and_opts_23; + var $nesting = [self].concat($parent_nesting), $combine_arg_array$6, $process_params$8, $add_param$10, $dispatch_params$15, $hash_filter$18, $inbound_params$19, $translate_args$20, $get_name_and_opts$23; - Opal.defn(self, '$combine_arg_array', TMP_combine_arg_array_7 = function $$combine_arg_array(args) { - var TMP_6, self = this, hash = nil; + Opal.def(self, '$combine_arg_array', $combine_arg_array$6 = function $$combine_arg_array(args) { + var $$7, self = this, hash = nil; - return (hash = $send(args, 'inject', [$hash2([], {}).$with_indifferent_access()], (TMP_6 = function(h, arg){var self = TMP_6.$$s || this; -if (h == null) h = nil;if (arg == null) arg = nil; - + return (hash = $send(args, 'inject', [$hash2([], {}).$with_indifferent_access()], ($$7 = function(h, arg){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (h == null) { + h = nil; + }; + + if (arg == null) { + arg = nil; + }; if ($truthy(arg['$respond_to?']("to_h"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError').$new("All arguments must be hashes")) + } else { + self.$raise($$($nesting, 'ArgumentError').$new("All arguments must be hashes")) }; - return h['$merge!'](arg.$to_h());}, TMP_6.$$s = self, TMP_6.$$arity = 2, TMP_6))) - }, TMP_combine_arg_array_7.$$arity = 1); + return h['$merge!'](arg.$to_h());}, $$7.$$s = self, $$7.$$arity = 2, $$7))) + }, $combine_arg_array$6.$$arity = 1); - Opal.defn(self, '$process_params', TMP_process_params_9 = function $$process_params(operation, args) { - var $a, $b, TMP_8, self = this, raw_inputs = nil, inputs = nil, errors = nil, params_wrapper = nil; + Opal.def(self, '$process_params', $process_params$8 = function $$process_params(operation, args) { + var $a, $b, $$9, self = this, raw_inputs = nil, inputs = nil, errors = nil, params_wrapper = nil; raw_inputs = self.$combine_arg_array(args); $b = self.$hash_filter().$filter(raw_inputs), $a = Opal.to_ary($b), (inputs = ($a[0] == null ? nil : $a[0])), (errors = ($a[1] == null ? nil : $a[1])), $b; params_wrapper = self.$new(inputs); - return $send(operation, 'instance_eval', [], (TMP_8 = function(){var self = TMP_8.$$s || this, $c; + return $send(operation, 'instance_eval', [], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s, $c; - return $c = [raw_inputs, params_wrapper, errors], (self.raw_inputs = $c[0]), (self.params = $c[1]), (self.errors = $c[2]), $c}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8)); - }, TMP_process_params_9.$$arity = 2); + return $c = [raw_inputs, params_wrapper, errors], (self.raw_inputs = $c[0]), (self.params = $c[1]), (self.errors = $c[2]), $c}, $$9.$$s = self, $$9.$$arity = 0, $$9)); + }, $process_params$8.$$arity = 2); - Opal.defn(self, '$add_param', TMP_add_param_10 = function $$add_param($a_rest) { - var $b, $c, TMP_11, TMP_12, TMP_13, TMP_14, self = this, args, $iter = TMP_add_param_10.$$p, block = $iter || nil, type_method = nil, name = nil, opts = nil; + Opal.def(self, '$add_param', $add_param$10 = function $$add_param($a) { + var $iter = $add_param$10.$$p, block = $iter || nil, $post_args, args, $b, $c, $$11, $$12, $$13, $$14, self = this, type_method = nil, name = nil, opts = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_add_param_10.$$p = null; + if ($iter) $add_param$10.$$p = null; + + if ($iter) $add_param$10.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; $c = $send(self, 'translate_args', Opal.to_a(args), block.$to_proc()), $b = Opal.to_ary($c), (type_method = ($b[0] == null ? nil : $b[0])), (name = ($b[1] == null ? nil : $b[1])), (opts = ($b[2] == null ? nil : $b[2])), (block = ($b[3] == null ? nil : $b[3])), $c; if ($truthy(opts.$delete("inbound"))) { self.$inbound_params()['$<<']("" + (name))}; if ($truthy(opts['$key?']("default"))) { - $send(self.$hash_filter(), 'optional', [], (TMP_11 = function(){var self = TMP_11.$$s || this; + $send(self.$hash_filter(), 'optional', [], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; - return $send(self, 'send', [type_method, name, opts], block.$to_proc())}, TMP_11.$$s = self, TMP_11.$$arity = 0, TMP_11)) - } else { - $send(self.$hash_filter(), 'required', [], (TMP_12 = function(){var self = TMP_12.$$s || this; + return $send(self, 'send', [type_method, name, opts], block.$to_proc())}, $$11.$$s = self, $$11.$$arity = 0, $$11)) + } else { + $send(self.$hash_filter(), 'required', [], ($$12 = function(){var self = $$12.$$s == null ? this : $$12.$$s; - return $send(self, 'send', [type_method, name, opts], block.$to_proc())}, TMP_12.$$s = self, TMP_12.$$arity = 0, TMP_12)) + return $send(self, 'send', [type_method, name, opts], block.$to_proc())}, $$12.$$s = self, $$12.$$arity = 0, $$12)) }; - $send(self, 'define_method', [name], (TMP_13 = function(){var self = TMP_13.$$s || this; + $send(self, 'define_method', [name], ($$13 = function(){var self = $$13.$$s == null ? this : $$13.$$s; if (self.inputs == null) self.inputs = nil; - return self.inputs['$[]'](name)}, TMP_13.$$s = self, TMP_13.$$arity = 0, TMP_13)); - return $send(self, 'define_method', ["" + (name) + "="], (TMP_14 = function(x){var self = TMP_14.$$s || this, $writer = nil; + return self.inputs['$[]'](name)}, $$13.$$s = self, $$13.$$arity = 0, $$13)); + return $send(self, 'define_method', ["" + (name) + "="], ($$14 = function(x){var self = $$14.$$s == null ? this : $$14.$$s, $writer = nil; if (self.locked == null) self.locked = nil; if (self.inputs == null) self.inputs = nil; -if (x == null) x = nil; - + + + + if (x == null) { + x = nil; + }; if ($truthy(self.locked)) { self.$method_missing("" + (name) + "=", x)}; $writer = [name, x]; $send(self.inputs, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];;}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)); - }, TMP_add_param_10.$$arity = -1); + return $writer[$rb_minus($writer["length"], 1)];;}, $$14.$$s = self, $$14.$$arity = 1, $$14)); + }, $add_param$10.$$arity = -1); - Opal.defn(self, '$dispatch_params', TMP_dispatch_params_17 = function $$dispatch_params(params, hashes) { - var TMP_15, self = this; + Opal.def(self, '$dispatch_params', $dispatch_params$15 = function $$dispatch_params(params, hashes) { + var $$16, self = this; + + if (hashes == null) { hashes = $hash2([], {}); - } - + }; params = params.$dup(); - $send(hashes, 'each', [], (TMP_15 = function(hash){var self = TMP_15.$$s || this, TMP_16; -if (hash == null) hash = nil; - return $send(hash, 'each', [], (TMP_16 = function(k, v){var self = TMP_16.$$s || this; -if (k == null) k = nil;if (v == null) v = nil; - return params.$send("" + (k) + "=", v)}, TMP_16.$$s = self, TMP_16.$$arity = 2, TMP_16))}, TMP_15.$$s = self, TMP_15.$$arity = 1, TMP_15)); + $send(hashes, 'each', [], ($$16 = function(hash){var self = $$16.$$s == null ? this : $$16.$$s, $$17; + + + + if (hash == null) { + hash = nil; + }; + return $send(hash, 'each', [], ($$17 = function(k, v){var self = $$17.$$s == null ? this : $$17.$$s; + + + + if (k == null) { + k = nil; + }; + + if (v == null) { + v = nil; + }; + return params.$send("" + (k) + "=", v);}, $$17.$$s = self, $$17.$$arity = 2, $$17));}, $$16.$$s = self, $$16.$$arity = 1, $$16)); return params.$lock(); - }, TMP_dispatch_params_17.$$arity = -2); + }, $dispatch_params$15.$$arity = -2); - Opal.defn(self, '$hash_filter', TMP_hash_filter_18 = function $$hash_filter() { - var $a, self = this; + Opal.def(self, '$hash_filter', $hash_filter$18 = function $$hash_filter() { + var self = this, $ret_or_1 = nil; if (self.hash_filter == null) self.hash_filter = nil; - return (self.hash_filter = ($truthy($a = self.hash_filter) ? $a : Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'HashFilter').$new())) - }, TMP_hash_filter_18.$$arity = 0); + return (self.hash_filter = (function() {if ($truthy(($ret_or_1 = self.hash_filter))) { + return $ret_or_1 + } else { + return $$$($$($nesting, 'Mutations'), 'HashFilter').$new() + }; return nil; })()) + }, $hash_filter$18.$$arity = 0); - Opal.defn(self, '$inbound_params', TMP_inbound_params_19 = function $$inbound_params() { - var $a, self = this; + Opal.def(self, '$inbound_params', $inbound_params$19 = function $$inbound_params() { + var self = this, $ret_or_2 = nil; if (self.inbound_params == null) self.inbound_params = nil; - return (self.inbound_params = ($truthy($a = self.inbound_params) ? $a : Opal.const_get_relative($nesting, 'Set').$new())) - }, TMP_inbound_params_19.$$arity = 0); + return (self.inbound_params = (function() {if ($truthy(($ret_or_2 = self.inbound_params))) { + return $ret_or_2 + } else { + return $$($nesting, 'Set').$new() + }; return nil; })()) + }, $inbound_params$19.$$arity = 0); - Opal.defn(self, '$translate_args', TMP_translate_args_20 = function $$translate_args($a_rest) { - var $b, $c, TMP_21, TMP_22, self = this, args, $iter = TMP_translate_args_20.$$p, block = $iter || nil, name = nil, opts = nil, type_method = nil, $writer = nil; + Opal.def(self, '$translate_args', $translate_args$20 = function $$translate_args($a) { + var $iter = $translate_args$20.$$p, block = $iter || nil, $post_args, args, $b, $c, $$21, $$22, self = this, name = nil, opts = nil, type_method = nil, $writer = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_translate_args_20.$$p = null; + if ($iter) $translate_args$20.$$p = null; + + if ($iter) $translate_args$20.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; $c = $send(self, 'get_name_and_opts', Opal.to_a(args)), $b = Opal.to_ary($c), (name = ($b[0] == null ? nil : $b[0])), (opts = ($b[1] == null ? nil : $b[1])), $c; if ($truthy(opts['$key?']("type"))) { type_method = opts.$delete("type"); - if ($truthy(type_method['$is_a?'](Opal.const_get_relative($nesting, 'Array')))) { + if ($truthy(type_method['$is_a?']($$($nesting, 'Array')))) { if ($truthy($rb_gt(type_method.$count(), 0))) { $writer = ["class", type_method.$first()]; $send(opts, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];}; - type_method = Opal.const_get_relative($nesting, 'Array'); - } else if ($truthy(($truthy($b = type_method['$is_a?'](Opal.const_get_relative($nesting, 'Hash'))) ? $b : type_method['$=='](Opal.const_get_relative($nesting, 'Hash'))))) { + type_method = $$($nesting, 'Array'); + } else if ($truthy((function() {if ($truthy(($ret_or_3 = type_method['$is_a?']($$($nesting, 'Hash'))))) { + return $ret_or_3 + } else { + return type_method['$==']($$($nesting, 'Hash')) + }; return nil; })())) { - type_method = Opal.const_get_relative($nesting, 'Hash'); - block = ($truthy($b = block) ? $b : $send(self, 'proc', [], (TMP_21 = function(){var self = TMP_21.$$s || this; + type_method = $$($nesting, 'Hash'); + block = (function() {if ($truthy(($ret_or_4 = block))) { + return $ret_or_4 + } else { + return $send(self, 'proc', [], ($$21 = function(){var self = $$21.$$s == null ? this : $$21.$$s; - return self.$duck("*")}, TMP_21.$$s = self, TMP_21.$$arity = 0, TMP_21)));}; + return self.$duck("*")}, $$21.$$s = self, $$21.$$arity = 0, $$21)) + }; return nil; })();}; type_method = type_method.$to_s().$underscore(); - } else { + } else { type_method = "duck" }; - return [type_method, name, opts, ($truthy($b = block) ? $b : $send(self, 'proc', [], (TMP_22 = function(){var self = TMP_22.$$s || this; - - return nil}, TMP_22.$$s = self, TMP_22.$$arity = 0, TMP_22)))]; - }, TMP_translate_args_20.$$arity = -1); - return (Opal.defn(self, '$get_name_and_opts', TMP_get_name_and_opts_23 = function $$get_name_and_opts($a_rest) { - var $b, self = this, args, opts = nil, name = nil, $writer = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + return [type_method, name, opts, (function() {if ($truthy(($ret_or_5 = block))) { + return $ret_or_5 + } else { + return $send(self, 'proc', [], ($$22 = function(){var self = $$22.$$s == null ? this : $$22.$$s; + + return nil}, $$22.$$s = self, $$22.$$arity = 0, $$22)) + }; return nil; })()]; + }, $translate_args$20.$$arity = -1); + return (Opal.def(self, '$get_name_and_opts', $get_name_and_opts$23 = function $$get_name_and_opts($a) { + var $post_args, args, self = this, opts = nil, name = nil, $writer = nil, $ret_or_6 = nil; + + - if ($truthy(args['$[]'](0)['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(args['$[]'](0)['$is_a?']($$($nesting, 'Hash')))) { opts = args['$[]'](0); name = opts.$first().$first(); @@ -28758,415 +32404,511 @@ if (k == null) k = nil;if (v == null) v = nil; $send(opts, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; opts.$delete(name); - } else { + } else { name = args['$[]'](0); - opts = ($truthy($b = args['$[]'](1)) ? $b : $hash2([], {})); + opts = (function() {if ($truthy(($ret_or_6 = args['$[]'](1)))) { + return $ret_or_6 + } else { + return $hash2([], {}) + }; return nil; })(); }; return [name, opts]; - }, TMP_get_name_and_opts_23.$$arity = -1), nil) && 'get_name_and_opts'; + }, $get_name_and_opts$23.$$arity = -1), nil) && 'get_name_and_opts'; })(Opal.get_singleton_class(self), $nesting); })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $Railway(){}; - var self = $Railway = $klass($base, $super, 'Railway', $Railway); + var self = $klass($base, $super, 'Railway'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Railway_process_params_24, TMP_Railway_add_param_25, TMP_Railway_params_wrapper_28; + var $nesting = [self].concat($parent_nesting), $Railway_process_params$24, $Railway_add_param$25, $Railway_params_wrapper$26; - def.operation = nil; + self.$$prototype.operation = nil; - Opal.defn(self, '$process_params', TMP_Railway_process_params_24 = function $$process_params(args) { + Opal.def(self, '$process_params', $Railway_process_params$24 = function $$process_params(args) { var self = this; - return self.$class().$params_wrapper().$process_params(self.operation, args) - }, TMP_Railway_process_params_24.$$arity = 1); - Opal.defs(self, '$add_param', TMP_Railway_add_param_25 = function $$add_param($a_rest) { - var self = this, args, $iter = TMP_Railway_add_param_25.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Railway_add_param_25.$$p = null; - return $send(self.$params_wrapper(), 'add_param', Opal.to_a(args), block.$to_proc()) - }, TMP_Railway_add_param_25.$$arity = -1); - return Opal.defs(self, '$params_wrapper', TMP_Railway_params_wrapper_28 = function $$params_wrapper() { - var TMP_26, self = this; + return self.$class().$params_wrapper().$process_params(self.operation, args) + }, $Railway_process_params$24.$$arity = 1); + Opal.defs(self, '$add_param', $Railway_add_param$25 = function $$add_param($a) { + var $iter = $Railway_add_param$25.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $Railway_add_param$25.$$p = null; + + + if ($iter) $Railway_add_param$25.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self.$params_wrapper(), 'add_param', Opal.to_a(args), block.$to_proc()); + }, $Railway_add_param$25.$$arity = -1); + return (Opal.defs(self, '$params_wrapper', $Railway_params_wrapper$26 = function $$params_wrapper() { + var $$27, self = this; + + return $send($$$($$($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@params_wrapper"], ($$27 = function(){var self = $$27.$$s == null ? this : $$27.$$s, $$28; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Context'), 'set_var', [self, "@params_wrapper"], (TMP_26 = function(){var self = TMP_26.$$s || this, TMP_27; + if ($$($nesting, 'Railway')['$=='](self.$superclass())) { + return $$($nesting, 'Class').$new($$($nesting, 'ParamsWrapper')) + } else { + return $send($$($nesting, 'Class').$new(self.$superclass().$params_wrapper()), 'tap', [], ($$28 = function(wrapper){var self = $$28.$$s == null ? this : $$28.$$s, hash_filter = nil, $ret_or_7 = nil, inbound_params = nil, $ret_or_8 = nil; - if (Opal.const_get_relative($nesting, 'Railway')['$=='](self.$superclass())) { - return Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'ParamsWrapper')) - } else { - return $send(Opal.const_get_relative($nesting, 'Class').$new(self.$superclass().$params_wrapper()), 'tap', [], (TMP_27 = function(wrapper){var self = TMP_27.$$s || this, $a, hash_filter = nil, inbound_params = nil; -if (wrapper == null) wrapper = nil; - + + + if (wrapper == null) { + wrapper = nil; + }; hash_filter = self.$superclass().$params_wrapper().$hash_filter(); - wrapper.$instance_variable_set("@hash_filter", ($truthy($a = hash_filter) ? hash_filter.$dup() : $a)); + wrapper.$instance_variable_set("@hash_filter", (function() {if ($truthy(($ret_or_7 = hash_filter))) { + return hash_filter.$dup() + } else { + return $ret_or_7 + }; return nil; })()); inbound_params = self.$superclass().$params_wrapper().$inbound_params(); - return wrapper.$instance_variable_set("@inbound_params", ($truthy($a = inbound_params) ? inbound_params.$dup() : $a));}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)) - }}, TMP_26.$$s = self, TMP_26.$$arity = 0, TMP_26)) - }, TMP_Railway_params_wrapper_28.$$arity = 0); + return wrapper.$instance_variable_set("@inbound_params", (function() {if ($truthy(($ret_or_8 = inbound_params))) { + return inbound_params.$dup() + } else { + return $ret_or_8 + }; return nil; })());}, $$28.$$s = self, $$28.$$arity = 1, $$28)) + }}, $$27.$$s = self, $$27.$$arity = 0, $$27)) + }, $Railway_params_wrapper$26.$$arity = 0), nil) && 'params_wrapper'; })($nesting[0], null, $nesting); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/railway/run"] = function(Opal) { +Opal.modules["hyper-operation/railway/run"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send; - Opal.add_stubs(['$attr_reader', '$tracks', '$class', '$merge', '$zero?', '$count', '$is_a?', '$[]', '$==', '$<', '$proc', '$run', '$params', '$instance_method', '$each', '$define_method', '$<<', '$build_tie', '$raise', '$new', '$then', '$apply', '$always', '$resolve', '$step', '$method', '$arity', '$instance_exec', '$to_proc', '$state', '$result', '$call', '$bind', '$include?']); + Opal.add_stubs(['$attr_reader', '$tracks', '$class', '$merge', '$zero?', '$count', '$is_a?', '$[]', '$==', '$<', '$proc', '$run', '$params', '$instance_method', '$each', '$define_method', '$<<', '$build_tie', '$raise', '$new', '$then', '$apply', '$always', '$rejected?', '$!=', '$resolve', '$step', '$method', '$arity', '$instance_exec', '$to_proc', '$state', '$result', '$call', '$bind', '$include?']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $Exit(){}; - var self = $Exit = $klass($base, $super, 'Exit', $Exit); + var self = $klass($base, $super, 'Exit'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Exit_initialize_1; + var $nesting = [self].concat($parent_nesting), $Exit_initialize$1, $Exit_to_s$2; + self.$$prototype.state = nil; self.$attr_reader("state"); self.$attr_reader("result"); - return (Opal.defn(self, '$initialize', TMP_Exit_initialize_1 = function $$initialize(state, result) { + + Opal.def(self, '$initialize', $Exit_initialize$1 = function $$initialize(state, result) { var self = this; + + if (result == null) { + result = nil; + }; self.state = state; return (self.result = result); - }, TMP_Exit_initialize_1.$$arity = 2), nil) && 'initialize'; - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + }, $Exit_initialize$1.$$arity = -2); + return (Opal.def(self, '$to_s', $Exit_to_s$2 = function $$to_s() { + var self = this; + + return self.state + }, $Exit_to_s$2.$$arity = 0), nil) && 'to_s'; + })($nesting[0], $$($nesting, 'StandardError'), $nesting); return (function($base, $super, $parent_nesting) { - function $Railway(){}; - var self = $Railway = $klass($base, $super, 'Railway', $Railway); + var self = $klass($base, $super, 'Railway'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Railway_tracks_2, TMP_Railway_step_11, TMP_Railway_failed_13, TMP_Railway_async_14, TMP_Railway_apply_15, TMP_Railway_run_17, TMP_Railway_result_19; + var $nesting = [self].concat($parent_nesting), $Railway_tracks$3, $Railway$9, $Railway_step$12, $Railway_failed$14, $Railway_async$16, $Railway_apply$17, $Railway_run$18, $Railway_result$20; - def.promise_chain = def.last_async_result = def.state = def.operation = def.promise_chain_start = def.last_result = def.result = nil; + self.$$prototype.promise_chain = self.$$prototype.last_async_result = self.$$prototype.state = self.$$prototype.operation = self.$$prototype.promise_chain_start = self.$$prototype.last_result = self.$$prototype.result = nil; - Opal.defn(self, '$tracks', TMP_Railway_tracks_2 = function $$tracks() { + Opal.def(self, '$tracks', $Railway_tracks$3 = function $$tracks() { var self = this; return self.$class().$tracks() - }, TMP_Railway_tracks_2.$$arity = 0); + }, $Railway_tracks$3.$$arity = 0); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_tracks_3, TMP_build_tie_5, TMP_6, TMP_abort$B_8, TMP_succeed$B_9; + var $nesting = [self].concat($parent_nesting), $tracks$4, $build_tie$5, $$7, $abort$excl$10, $succeed$excl$11; - Opal.defn(self, '$tracks', TMP_tracks_3 = function $$tracks() { - var $a, self = this; + Opal.def(self, '$tracks', $tracks$4 = function $$tracks() { + var self = this, $ret_or_1 = nil; if (self.tracks == null) self.tracks = nil; - return (self.tracks = ($truthy($a = self.tracks) ? $a : [])) - }, TMP_tracks_3.$$arity = 0); + return (self.tracks = (function() {if ($truthy(($ret_or_1 = self.tracks))) { + return $ret_or_1 + } else { + return [] + }; return nil; })()) + }, $tracks$4.$$arity = 0); - Opal.defn(self, '$build_tie', TMP_build_tie_5 = function $$build_tie(tie, args, block) { - var $a, $b, TMP_4, self = this, scope = nil; + Opal.def(self, '$build_tie', $build_tie$5 = function $$build_tie(tie, args, block) { + var $$6, self = this, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, scope = nil; return (function() {if ($truthy(args.$count()['$zero?']())) { return $hash2(["run"], {"run": block}) - } else if ($truthy(args['$[]'](0)['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + } else if ($truthy(args['$[]'](0)['$is_a?']($$($nesting, 'Hash')))) { return $hash2(["scope", "run"], {"scope": (function() {if ($truthy(args['$[]'](0)['$[]']("class"))) { return "class" - } else { + } else { return args['$[]'](0)['$[]']("scope") - }; return nil; })(), "run": ($truthy($a = ($truthy($b = args['$[]'](0)['$[]']("class")) ? $b : args['$[]'](0)['$[]']("run"))) ? $a : block)}) - } else if ($truthy((($a = args['$[]'](0)['$==']("class")) ? block : args['$[]'](0)['$==']("class")))) { + }; return nil; })(), "run": (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = args['$[]'](0)['$[]']("class")))) { + return $ret_or_3 + } else { + return args['$[]'](0)['$[]']("run") + }; return nil; })()))) { + return $ret_or_2 + } else { + return block + }; return nil; })()}) + } else if ($truthy((function() {if ($truthy(($ret_or_4 = args['$[]'](0)['$==']("class")))) { + return block + } else { + return $ret_or_4 + }; return nil; })())) { return $hash2(["run", "scope"], {"run": block, "scope": "class"}) - } else if ($truthy(($truthy($a = args['$[]'](0)['$is_a?'](Opal.const_get_relative($nesting, 'Class'))) ? $rb_lt(args['$[]'](0), Opal.const_get_relative($nesting, 'Operation')) : $a))) { - return $hash2(["run"], {"run": $send(self, 'proc', [], (TMP_4 = function(){var self = TMP_4.$$s || this; + } else if ($truthy((function() {if ($truthy(($ret_or_5 = args['$[]'](0)['$is_a?']($$($nesting, 'Class'))))) { + return $rb_lt(args['$[]'](0), $$($nesting, 'Operation')) + } else { + return $ret_or_5 + }; return nil; })())) { + return $hash2(["run"], {"run": $send(self, 'proc', [], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; - return args['$[]'](0).$run(self.$params())}, TMP_4.$$s = self, TMP_4.$$arity = 0, TMP_4))}) - } else { + return args['$[]'](0).$run(self.$params())}, $$6.$$s = self, $$6.$$arity = 0, $$6))}) + } else { - if ($truthy(args['$[]'](1)['$is_a?'](Opal.const_get_relative($nesting, 'Hash')))) { + if ($truthy(args['$[]'](1)['$is_a?']($$($nesting, 'Hash')))) { scope = args['$[]'](1)['$[]']("scope")}; return $hash2(["run", "scope"], {"run": args['$[]'](0), "scope": scope}); }; return nil; })().$merge($hash2(["tie"], {"tie": self.$instance_method(tie)})) - }, TMP_build_tie_5.$$arity = 3); - $send(["step", "failed", "async"], 'each', [], (TMP_6 = function(tie){var self = TMP_6.$$s || this, TMP_7; -if (tie == null) tie = nil; - return $send(self, 'define_method', ["" + "add_" + (tie)], (TMP_7 = function($a_rest){var self = TMP_7.$$s || this, block, args; - - block = TMP_7.$$p || nil; - if (block) TMP_7.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$tracks()['$<<'](self.$build_tie(tie, args, block))}, TMP_7.$$s = self, TMP_7.$$arity = -1, TMP_7))}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); + }, $build_tie$5.$$arity = 3); + $send(["step", "failed", "async"], 'each', [], ($$7 = function(tie){var self = $$7.$$s == null ? this : $$7.$$s, $$8; + + + + if (tie == null) { + tie = nil; + }; + return $send(self, 'define_method', ["" + "add_" + (tie)], ($$8 = function($a){var self = $$8.$$s == null ? this : $$8.$$s, $iter = $$8.$$p, block = $iter || nil, $post_args, args; + + + + if ($iter) $$8.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return self.$tracks()['$<<'](self.$build_tie(tie, args, block));}, $$8.$$s = self, $$8.$$arity = -1, $$8));}, $$7.$$s = self, $$7.$$arity = 1, $$7)); - Opal.defn(self, '$abort!', TMP_abort$B_8 = function(arg) { + Opal.def(self, '$abort!', $abort$excl$10 = function(arg) { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'Exit').$new("failed", arg)) - }, TMP_abort$B_8.$$arity = 1); - return (Opal.defn(self, '$succeed!', TMP_succeed$B_9 = function(arg) { + return self.$raise($$($nesting, 'Exit').$new("failed", arg)) + }, $abort$excl$10.$$arity = 1); + return (Opal.def(self, '$succeed!', $succeed$excl$11 = function(arg) { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'Exit').$new("success", arg)) - }, TMP_succeed$B_9.$$arity = 1), nil) && 'succeed!'; + return self.$raise($$($nesting, 'Exit').$new("success", arg)) + }, $succeed$excl$11.$$arity = 1), nil) && 'succeed!'; })(Opal.get_singleton_class(self), $nesting); - Opal.defn(self, '$step', TMP_Railway_step_11 = function $$step(opts) { - var TMP_10, self = this; + Opal.def(self, '$step', $Railway_step$12 = function $$step(opts) { + var $$13, self = this; + + return (self.promise_chain = $send(self.promise_chain, 'then', [], ($$13 = function(result){var self = $$13.$$s == null ? this : $$13.$$s; - return (self.promise_chain = $send(self.promise_chain, 'then', [], (TMP_10 = function(result){var self = TMP_10.$$s || this; -if (result == null) result = nil; - return self.$apply(result, "success", opts)}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10))) - }, TMP_Railway_step_11.$$arity = 1); + + + if (result == null) { + result = nil; + }; + return self.$apply(result, "success", opts);}, $$13.$$s = self, $$13.$$arity = 1, $$13))) + }, $Railway_step$12.$$arity = 1); - Opal.defn(self, '$failed', TMP_Railway_failed_13 = function $$failed(opts) { - var TMP_12, self = this; + Opal.def(self, '$failed', $Railway_failed$14 = function $$failed(opts) { + var $$15, self = this; + + return (self.promise_chain = $send(self.promise_chain, 'always', [], ($$15 = function(result){var self = $$15.$$s == null ? this : $$15.$$s, $ret_or_6 = nil; + if (self.promise_chain == null) self.promise_chain = nil; + if (self.state == null) self.state = nil; - return (self.promise_chain = $send(self.promise_chain, 'always', [], (TMP_12 = function(result){var self = TMP_12.$$s || this; -if (result == null) result = nil; - return self.$apply(result, "failed", opts)}, TMP_12.$$s = self, TMP_12.$$arity = 1, TMP_12))) - }, TMP_Railway_failed_13.$$arity = 1); + + + if (result == null) { + result = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_6 = self.promise_chain['$rejected?']()))) { + return self.state['$!=']("abort") + } else { + return $ret_or_6 + }; return nil; })())) { + self.state = "failed"}; + return self.$apply(result, "failed", opts);}, $$15.$$s = self, $$15.$$arity = 1, $$15))) + }, $Railway_failed$14.$$arity = 1); - Opal.defn(self, '$async', TMP_Railway_async_14 = function $$async(opts) { + Opal.def(self, '$async', $Railway_async$16 = function $$async(opts) { var self = this; - self.promise_chain = (self.promise_chain_start = Opal.const_get_relative($nesting, 'Promise').$new()); + self.promise_chain = (self.promise_chain_start = $$($nesting, 'Promise').$new()); self.promise_chain.$resolve(self.last_async_result); return self.$step(opts); - }, TMP_Railway_async_14.$$arity = 1); + }, $Railway_async$16.$$arity = 1); - Opal.defn(self, '$apply', TMP_Railway_apply_15 = function $$apply(result, state, opts) { - var $a, self = this, args = nil, instance = nil, block = nil, last_result = nil, e = nil; + Opal.def(self, '$apply', $Railway_apply$17 = function $$apply(result, state, opts) { + var self = this, args = nil, instance = nil, block = nil, last_result = nil, $ret_or_7 = nil, e = nil; try { if (self.state['$=='](state)) { - } else { + } else { return result }; if (opts['$[]']("scope")['$==']("class")) { args = [self.operation].concat(Opal.to_a(result)); instance = self.operation.$class(); - } else { + } else { args = result; instance = self.operation; }; block = opts['$[]']("run"); - if ($truthy(block['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { + if ($truthy(block['$is_a?']($$($nesting, 'Symbol')))) { block = instance.$method(block)}; last_result = (function() {if ($truthy(block.$arity()['$zero?']())) { return $send(instance, 'instance_exec', [], block.$to_proc()) - } else if ($truthy(($truthy($a = args['$is_a?'](Opal.const_get_relative($nesting, 'Array'))) ? block.$arity()['$=='](args.$count()) : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_7 = args['$is_a?']($$($nesting, 'Array'))))) { + return block.$arity()['$=='](args.$count()) + } else { + return $ret_or_7 + }; return nil; })())) { return $send(instance, 'instance_exec', Opal.to_a(args), block.$to_proc()) - } else { + } else { return $send(instance, 'instance_exec', [args], block.$to_proc()) }; return nil; })(); - if ($truthy(last_result['$is_a?'](Opal.const_get_relative($nesting, 'Promise')))) { - } else { + if ($truthy(last_result['$is_a?']($$($nesting, 'Promise')))) { + } else { self.last_async_result = last_result }; return last_result; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exit')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exit')])) {(e = $err) try { if (e.$state()['$==']("failed")) { self.state = "abort"; - return self.$raise((function() {if ($truthy(e.$result()['$is_a?'](Opal.const_get_relative($nesting, 'Exception')))) { + return self.$raise((function() {if ($truthy(e.$result()['$is_a?']($$($nesting, 'Exception')))) { return e.$result() - } else { + } else { return e }; return nil; })()); - } else { + } else { self.state = "succeed"; return e.$result(); } - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { self.state = "failed"; return self.$raise(e); - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Railway_apply_15.$$arity = 3); + }, $Railway_apply$17.$$arity = 3); - Opal.defn(self, '$run', TMP_Railway_run_17 = function $$run() { - var $a, TMP_16, self = this; + Opal.def(self, '$run', $Railway_run$18 = function $$run() { + var $$19, self = this, $ret_or_8 = nil; - self.state = ($truthy($a = self.state) ? $a : "success"); - self.promise_chain_start = (self.promise_chain = Opal.const_get_relative($nesting, 'Promise').$new()); + self.state = (function() {if ($truthy(($ret_or_8 = self.state))) { + return $ret_or_8 + } else { + return "success" + }; return nil; })(); + self.promise_chain_start = (self.promise_chain = $$($nesting, 'Promise').$new()); self.promise_chain_start.$resolve(self.last_result); if (self.state['$==']("abort")) { return nil - } else { - return $send(self.$tracks(), 'each', [], (TMP_16 = function(opts){var self = TMP_16.$$s || this; -if (opts == null) opts = nil; - return opts['$[]']("tie").$bind(self).$call(opts)}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)) + } else { + return $send(self.$tracks(), 'each', [], ($$19 = function(opts){var self = $$19.$$s == null ? this : $$19.$$s; + + + + if (opts == null) { + opts = nil; + }; + return opts['$[]']("tie").$bind(self).$call(opts);}, $$19.$$s = self, $$19.$$arity = 1, $$19)) }; - }, TMP_Railway_run_17.$$arity = 0); - return (Opal.defn(self, '$result', TMP_Railway_result_19 = function $$result() { - var $a, TMP_18, self = this; + }, $Railway_run$18.$$arity = 0); + return (Opal.def(self, '$result', $Railway_result$20 = function $$result() { + var $$21, self = this, $ret_or_9 = nil; - return (self.result = ($truthy($a = self.result) ? $a : $send(self.promise_chain, 'always', [], (TMP_18 = function(e){var self = TMP_18.$$s || this; - if (self.state == null) self.state = nil; -if (e == null) e = nil; - if ($truthy(["abort", "failed"]['$include?'](self.state))) { - if ($truthy(e['$is_a?'](Opal.const_get_relative($nesting, 'Exception')))) { - return self.$raise(e) + return (self.result = (function() {if ($truthy(($ret_or_9 = self.result))) { + return $ret_or_9 + } else { + return $send(self.promise_chain, 'always', [], ($$21 = function(e){var self = $$21.$$s == null ? this : $$21.$$s; + if (self.state == null) self.state = nil; + + + + if (e == null) { + e = nil; + }; + if ($truthy(["abort", "failed"]['$include?'](self.state))) { + if ($truthy(e['$is_a?']($$($nesting, 'Exception')))) { + return self.$raise(e) } else { - return self.$raise(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Promise'), 'Fail').$new(e)) - } + return self.$raise($$$($$($nesting, 'Promise'), 'Fail').$new(e)) + } } else { - return e - }}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)))) - }, TMP_Railway_result_19.$$arity = 0), nil) && 'result'; + return e + };}, $$21.$$s = self, $$21.$$arity = 1, $$21)) + }; return nil; })()) + }, $Railway_result$20.$$arity = 0), nil) && 'result'; })($nesting[0], null, $nesting); })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/railway/validations"] = function(Opal) { +Opal.modules["hyper-operation/railway/validations"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$validations', '$class', '$add_error', '$+', '$to_s', '$[]', '$<<', '$add_validation', '$instance_eval', '$to_proc', '$==', '$state', '$raise', '$new', '$result', '$each_with_index', '$is_a?', '$method', '$instance_exec', '$add_validation_error', '$===', '$has_errors?', '$instance_variable_get']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Operation(){}; - var self = $Operation = $klass($base, $super, 'Operation', $Operation); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Operation'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function($base, $super, $parent_nesting) { - function $Railway(){}; - var self = $Railway = $klass($base, $super, 'Railway', $Railway); + var self = $klass($base, $super, 'Railway'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Railway_validations_1, TMP_Railway_add_validation_error_2, TMP_Railway_process_validations_8; + var $nesting = [self].concat($parent_nesting), $Railway_validations$1, $Railway_add_validation_error$2, $Railway_process_validations$7; - def.operation = def.last_result = def.state = nil; + self.$$prototype.operation = self.$$prototype.last_result = self.$$prototype.state = nil; - Opal.defn(self, '$validations', TMP_Railway_validations_1 = function $$validations() { + Opal.def(self, '$validations', $Railway_validations$1 = function $$validations() { var self = this; return self.$class().$validations() - }, TMP_Railway_validations_1.$$arity = 0); + }, $Railway_validations$1.$$arity = 0); - Opal.defn(self, '$add_validation_error', TMP_Railway_add_validation_error_2 = function $$add_validation_error(i, e) { + Opal.def(self, '$add_validation_error', $Railway_add_validation_error$2 = function $$add_validation_error(i, e) { var self = this; return self.operation.$add_error("" + "param validation " + ($rb_plus(i, 1)), "validation_error", e.$to_s()) - }, TMP_Railway_add_validation_error_2.$$arity = 2); + }, $Railway_add_validation_error$2.$$arity = 2); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_validations_3, TMP_add_validation_4, TMP_add_error_5; + var $nesting = [self].concat($parent_nesting), $validations$3, $add_validation$4, $add_error$5; - Opal.defn(self, '$validations', TMP_validations_3 = function $$validations() { - var $a, self = this; + Opal.def(self, '$validations', $validations$3 = function $$validations() { + var self = this, $ret_or_1 = nil; if (self.validations == null) self.validations = nil; - return (self.validations = ($truthy($a = self.validations) ? $a : [])) - }, TMP_validations_3.$$arity = 0); + return (self.validations = (function() {if ($truthy(($ret_or_1 = self.validations))) { + return $ret_or_1 + } else { + return [] + }; return nil; })()) + }, $validations$3.$$arity = 0); - Opal.defn(self, '$add_validation', TMP_add_validation_4 = function $$add_validation($a_rest) { - var self = this, args, $iter = TMP_add_validation_4.$$p, block = $iter || nil; + Opal.def(self, '$add_validation', $add_validation$4 = function $$add_validation($a) { + var $iter = $add_validation$4.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_add_validation_4.$$p = null; + if ($iter) $add_validation$4.$$p = null; + + if ($iter) $add_validation$4.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ($truthy(args['$[]'](0))) { block = args['$[]'](0)}; return self.$validations()['$<<'](block); - }, TMP_add_validation_4.$$arity = -1); - return (Opal.defn(self, '$add_error', TMP_add_error_5 = function $$add_error(param, symbol, message, $a_rest) { - var TMP_6, self = this, args, $iter = TMP_add_error_5.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 3; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 3; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 3] = arguments[$arg_idx]; - } - if ($iter) TMP_add_error_5.$$p = null; - return $send(self, 'add_validation', [], (TMP_6 = function(){var self = TMP_6.$$s || this, e = nil; + }, $add_validation$4.$$arity = -1); + return (Opal.def(self, '$add_error', $add_error$5 = function $$add_error(param, symbol, message, $a) { + var $iter = $add_error$5.$$p, block = $iter || nil, $post_args, args, $$6, self = this; + if ($iter) $add_error$5.$$p = null; + + if ($iter) $add_error$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + return $send(self, 'add_validation', [], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s, e = nil; + try { if ($truthy($send(self, 'instance_eval', [], block.$to_proc()))) { self.$add_error(param, symbol, message)}; return true; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exit')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exit')])) {(e = $err) try { if (e.$state()['$==']("failed")) { - } else { + } else { self.$raise(e) }; self.$add_error(param, symbol, message); - return self.$raise(Opal.const_get_relative($nesting, 'Exit').$new("abort_from_add_error", e.$result())); - } finally { Opal.pop_exception() } + return self.$raise($$($nesting, 'Exit').$new("abort_from_add_error", e.$result())); + } finally { Opal.pop_exception(); } } else { throw $err; } - };}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6)) - }, TMP_add_error_5.$$arity = -4), nil) && 'add_error'; + }}, $$6.$$s = self, $$6.$$arity = 0, $$6)); + }, $add_error$5.$$arity = -4), nil) && 'add_error'; })(Opal.get_singleton_class(self), $nesting); - return (Opal.defn(self, '$process_validations', TMP_Railway_process_validations_8 = function $$process_validations() {try { + return (Opal.def(self, '$process_validations', $Railway_process_validations$7 = function $$process_validations() {try { - var TMP_7, $a, self = this; + var $$8, self = this, $ret_or_2 = nil, $ret_or_3 = nil; return (function() { try { - return $send(self.$validations(), 'each_with_index', [], (TMP_7 = function(validator, i){var self = TMP_7.$$s || this, e = nil, $case = nil; + return $send(self.$validations(), 'each_with_index', [], ($$8 = function(validator, i){var self = $$8.$$s == null ? this : $$8.$$s, e = nil, $case = nil; if (self.operation == null) self.operation = nil; -if (validator == null) validator = nil;if (i == null) i = nil; - + + + + if (validator == null) { + validator = nil; + }; + + if (i == null) { + i = nil; + }; try { - if ($truthy(validator['$is_a?'](Opal.const_get_relative($nesting, 'Symbol')))) { + if ($truthy(validator['$is_a?']($$($nesting, 'Symbol')))) { validator = self.operation.$method(validator)}; if ($truthy($send(self.operation, 'instance_exec', [], validator.$to_proc()))) { return nil;}; return self.$add_validation_error(i, "" + "param validation " + ($rb_plus(i, 1)) + " failed"); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exit')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exit')])) {(e = $err) try { $case = e.$state(); @@ -29174,471 +32916,551 @@ if (validator == null) validator = nil;if (i == null) i = nil; else if ("failed"['$===']($case)) {self.$add_validation_error(i, "" + "param validation " + ($rb_plus(i, 1)) + " aborted")}; self.state = "abort"; Opal.ret(nil); - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'AccessViolation')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'AccessViolation')])) {(e = $err) try { self.$add_validation_error(i, e); self.state = "abort"; self.last_result = e; Opal.ret(nil); - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { return self.$add_validation_error(i, e) - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - };}, TMP_7.$$s = self, TMP_7.$$arity = 2, TMP_7)) + };}, $$8.$$s = self, $$8.$$arity = 2, $$8)) } finally { (function() {if ($truthy(self.operation['$has_errors?']())) { - self.last_result = ($truthy($a = self.last_result) ? $a : Opal.const_get_relative($nesting, 'ValidationException').$new(self.operation.$instance_variable_get("@errors"))); - return (self.state = ($truthy($a = self.state) ? $a : "failed")); + self.last_result = (function() {if ($truthy(($ret_or_2 = self.last_result))) { + return $ret_or_2 } else { + return $$($nesting, 'ValidationException').$new(self.operation.$instance_variable_get("@errors")) + }; return nil; })(); + return (self.state = (function() {if ($truthy(($ret_or_3 = self.state))) { + return $ret_or_3 + } else { + return "failed" + }; return nil; })()); + } else { return nil }; return nil; })() }; })() } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Railway_process_validations_8.$$arity = 0), nil) && 'process_validations'; + }, $Railway_process_validations$7.$$arity = 0), nil) && 'process_validations'; })($nesting[0], null, $nesting) })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/server_op"] = function(Opal) { +Opal.modules["hyper-operation/server_op"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2, $alias = Opal.alias; - Opal.add_stubs(['$==', '$include', '$on_opal_client?', '$combine_arg_array', '$params_wrapper', '$_Railway', '$serialize_params', '$fail', '$then', '$post', '$to_json', '$name', '$merge', '$headers', '$[]', '$opts', '$deserialize_response', '$json', '$new', '$const_get', '$on_opal_server?', '$internal_iso_run', '$resolve', '$reject', '$isomorphic_method', '$send_to_server', '$when_on_server', '$run_from_client', '$controller', '$map', '$descendants', '$to_proc', '$production?', '$env', '$include?', '$descendants_map_cache', '$raise_operation_access_violation', '$<', '$class_eval', '$constantize', '$method_defined?', '$[]=', '$-', '$!', '$raise', '$run', '$deserialize_params', '$serialize_response', '$handle_exception', '$is_a?', '$respond_to?', '$to_h', '$<<', '$red', '$inspect', '$each', '$truncate', '$details', '$__hyperstack_on_error', '$join', '$to_s', '$class', '$status', '$URI', '$host', '$port', '$path', '$scheme', '$use_ssl=', '$body=', '$request', '$!=', '$lock', '$deserialize_dispatch', '$receivers', '$call', '$inbound', '$params', '$send', '$pre_controller_op_method_missing']); + Opal.add_stubs(['$include', '$on_opal_client?', '$combine_arg_array', '$params_wrapper', '$_Railway', '$serialize_params', '$fail', '$then', '$post', '$to_json', '$name', '$merge', '$headers', '$[]', '$opts', '$deserialize_response', '$json', '$new', '$const_get', '$on_opal_server?', '$internal_iso_run', '$resolve', '$reject', '$isomorphic_method', '$send_to_server', '$when_on_server', '$run_from_client', '$controller', '$map', '$descendants', '$to_proc', '$production?', '$env', '$include?', '$descendants_map_cache', '$raise_operation_access_violation', '$<', '$class_eval', '$constantize', '$method_defined?', '$[]=', '$-', '$!', '$raise', '$run', '$deserialize_params', '$serialize_response', '$handle_exception', '$is_a?', '$respond_to?', '$to_h', '$<<', '$red', '$inspect', '$each', '$truncate', '$details', '$__hyperstack_on_error', '$join', '$to_s', '$class', '$status', '$URI', '$host', '$port', '$path', '$==', '$scheme', '$use_ssl=', '$body=', '$request', '$lock', '$deserialize_dispatch', '$receivers', '$call', '$inbound', '$params', '$send', '$pre_controller_op_method_missing']); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - } else { - nil - }; + nil; return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); (function($base, $super, $parent_nesting) { - function $ServerOp(){}; - var self = $ServerOp = $klass($base, $super, 'ServerOp', $ServerOp); + var self = $klass($base, $super, 'ServerOp'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_run_3, TMP_run_4, TMP_5, TMP_descendants_map_cache_7, TMP_run_from_client_11, TMP_status_12, TMP_handle_exception_14, TMP_remote_15, TMP_headers_16, TMP_serialize_params_17, TMP_deserialize_params_18, TMP_serialize_response_19, TMP_deserialize_response_20, TMP_serialize_dispatch_21, TMP_deserialize_dispatch_22, TMP_dispatch_to_23, TMP_dispatch_from_server_25; + var $nesting = [self].concat($parent_nesting), $run$1, $run$4, $$5, $descendants_map_cache$7, $run_from_client$8, $status$12, $handle_exception$13, $remote$15, $headers$16, $serialize_params$17, $deserialize_params$18, $serialize_response$19, $deserialize_response$20, $serialize_dispatch$21, $deserialize_dispatch$22, $dispatch_to$23, $dispatch_from_server$24; - self.$include(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - if ($truthy(self['$on_opal_client?']())) { + self.$include($$$($$$($$($nesting, 'Hyperstack'), 'Component'), 'IsomorphicHelpers')); + if ($truthy(self['$on_opal_client?']())) { + + Opal.def(self, '$run', $run$1 = function $$run($a) { + var $post_args, args, $$2, $$3, self = this, hash = nil; + - Opal.defn(self, '$run', TMP_run_3 = function $$run($a_rest) { - var TMP_1, TMP_2, self = this, args, hash = nil; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + hash = self.$_Railway().$params_wrapper().$combine_arg_array(args); + hash = self.$serialize_params(hash); + return $send($send($$$($$($nesting, 'Hyperstack'), 'HTTP').$post("" + (window.HyperstackEnginePath) + "/execute_remote", $hash2(["payload", "headers"], {"payload": $hash2(["hyperstack_secured_json"], {"hyperstack_secured_json": $hash2(["operation", "params"], {"operation": self.$name(), "params": hash}).$to_json()}), "headers": self.$headers().$merge($hash2(["X-CSRF-Token"], {"X-CSRF-Token": $$$($$($nesting, 'Hyperstack'), 'ClientDrivers').$opts()['$[]']("form_authenticity_token")}))})), 'then', [], ($$2 = function(response){var self = $$2.$$s == null ? this : $$2.$$s; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - hash = self.$_Railway().$params_wrapper().$combine_arg_array(args); - hash = self.$serialize_params(hash); - return $send($send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'HTTP').$post("" + (window.HyperstackEnginePath) + "/execute_remote", $hash2(["payload", "headers"], {"payload": $hash2(["hyperstack_secured_json"], {"hyperstack_secured_json": $hash2(["operation", "params"], {"operation": self.$name(), "params": hash}).$to_json()}), "headers": self.$headers().$merge($hash2(["X-CSRF-Token"], {"X-CSRF-Token": Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'ClientDrivers').$opts()['$[]']("form_authenticity_token")}))})), 'then', [], (TMP_1 = function(response){var self = TMP_1.$$s || this; -if (response == null) response = nil; - return self.$deserialize_response(response.$json()['$[]']("response"))}, TMP_1.$$s = self, TMP_1.$$arity = 1, TMP_1)), 'fail', [], (TMP_2 = function(response){var self = TMP_2.$$s || this; -if (response == null) response = nil; - try { - return self.$const_get(response.$json()['$[]']("error_class")).$new(response.$json()['$[]']("error")) - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { - try { - return Opal.const_get_relative($nesting, 'Exception').$new(response.$json()['$[]']("error")) - } finally { Opal.pop_exception() } - } else { throw $err; } - };}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - }, TMP_run_3.$$arity = -1) - } else if ($truthy(self['$on_opal_server?']())) { - - Opal.defn(self, '$run', TMP_run_4 = function $$run($a_rest) { - var self = this, args, promise = nil, response = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + if (response == null) { + response = nil; + }; + return self.$deserialize_response(response.$json()['$[]']("response"));}, $$2.$$s = self, $$2.$$arity = 1, $$2)), 'fail', [], ($$3 = function(response){var self = $$3.$$s == null ? this : $$3.$$s; + - promise = Opal.const_get_relative($nesting, 'Promise').$new(); - response = self.$internal_iso_run(self.$name(), args); - if ($truthy(response['$[]']("json")['$[]']("response"))) { - promise.$resolve(response['$[]']("json")['$[]']("response")) - } else { - promise.$reject(Opal.const_get_relative($nesting, 'Exception').$new(response['$[]']("json")['$[]']("error"))) + + if (response == null) { + response = nil; }; - return promise; - }, TMP_run_4.$$arity = -1)} - } else { - nil - }; - $send(self, 'isomorphic_method', ["internal_iso_run"], (TMP_5 = function(f, klass_name, op_params){var self = TMP_5.$$s || this, TMP_6; -if (f == null) f = nil;if (klass_name == null) klass_name = nil;if (op_params == null) op_params = nil; - + try { + return self.$const_get(response.$json()['$[]']("error_class")).$new(response.$json()['$[]']("error")) + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { + try { + return $$($nesting, 'Exception').$new(response.$json()['$[]']("error")) + } finally { Opal.pop_exception(); } + } else { throw $err; } + };}, $$3.$$s = self, $$3.$$arity = 1, $$3)); + }, $run$1.$$arity = -1) + } else if ($truthy(self['$on_opal_server?']())) { + + Opal.def(self, '$run', $run$4 = function $$run($a) { + var $post_args, args, self = this, promise = nil, response = nil; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + promise = $$($nesting, 'Promise').$new(); + response = self.$internal_iso_run(self.$name(), args); + if ($truthy(response['$[]']("json")['$[]']("response"))) { + promise.$resolve(response['$[]']("json")['$[]']("response")) + } else { + promise.$reject($$($nesting, 'Exception').$new(response['$[]']("json")['$[]']("error"))) + }; + return promise; + }, $run$4.$$arity = -1)}; + $send(self, 'isomorphic_method', ["internal_iso_run"], ($$5 = function(f, klass_name, op_params){var self = $$5.$$s == null ? this : $$5.$$s, $$6; + + + + if (f == null) { + f = nil; + }; + + if (klass_name == null) { + klass_name = nil; + }; + + if (op_params == null) { + op_params = nil; + }; f.$send_to_server(klass_name, op_params); - return $send(f, 'when_on_server', [], (TMP_6 = function(){var self = TMP_6.$$s || this; + return $send(f, 'when_on_server', [], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'ServerOp'), 'run_from_client', ["acting_user", self.$controller(), klass_name].concat(Opal.to_a(op_params)))}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6));}, TMP_5.$$s = self, TMP_5.$$arity = 3, TMP_5)); + return $send($$$($$($nesting, 'Hyperstack'), 'ServerOp'), 'run_from_client', ["acting_user", self.$controller(), klass_name].concat(Opal.to_a(op_params)))}, $$6.$$s = self, $$6.$$arity = 0, $$6));}, $$5.$$s = self, $$5.$$arity = 3, $$5)); - Opal.defn(self, '$descendants_map_cache', TMP_descendants_map_cache_7 = function $$descendants_map_cache() { - var $a, self = this; + Opal.def(self, '$descendants_map_cache', $descendants_map_cache$7 = function $$descendants_map_cache() { + var self = this, $ret_or_1 = nil; if (self.cached_descendants == null) self.cached_descendants = nil; - return (self.cached_descendants = ($truthy($a = self.cached_descendants) ? $a : $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'ServerOp').$descendants(), 'map', [], "to_s".$to_proc()))) - }, TMP_descendants_map_cache_7.$$arity = 0); + return (self.cached_descendants = (function() {if ($truthy(($ret_or_1 = self.cached_descendants))) { + return $ret_or_1 + } else { + return $send($$$($$($nesting, 'Hyperstack'), 'ServerOp').$descendants(), 'map', [], "to_s".$to_proc()) + }; return nil; })()) + }, $descendants_map_cache$7.$$arity = 0); - Opal.defn(self, '$run_from_client', TMP_run_from_client_11 = function $$run_from_client(security_param, controller, operation, params) {try { + Opal.def(self, '$run_from_client', $run_from_client$8 = function $$run_from_client(security_param, controller, operation, params) {try { - var TMP_8, self = this, const$ = nil, e = nil; + var $$9, self = this, const$ = nil, e = nil; try { - if ($truthy(Opal.const_get_relative($nesting, 'Rails').$env()['$production?']())) { - if ($truthy(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'ServerOp').$descendants_map_cache()['$include?'](operation))) { - } else { - Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'InternalPolicy').$raise_operation_access_violation("illegal_remote_op_call", "" + "Operation: " + (operation) + " (in production)") - } + if ($truthy($$($nesting, 'Rails').$env()['$production?']())) { + if ($truthy($$$($$($nesting, 'Hyperstack'), 'ServerOp').$descendants_map_cache()['$include?'](operation))) { } else { + $$$($$($nesting, 'Hyperstack'), 'InternalPolicy').$raise_operation_access_violation("illegal_remote_op_call", "" + "Operation: " + (operation) + " (in production)") + } + } else { try { - const$ = Opal.const_get_relative($nesting, 'Object').$const_get(operation) + const$ = $$($nesting, 'Object').$const_get(operation) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'NameError')])) { + if (Opal.rescue($err, [$$($nesting, 'NameError')])) { try { - Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'InternalPolicy').$raise_operation_access_violation("illegal_remote_op_call", "" + "Operation: " + (operation) + " (const not found)") - } finally { Opal.pop_exception() } + $$$($$($nesting, 'Hyperstack'), 'InternalPolicy').$raise_operation_access_violation("illegal_remote_op_call", "" + "Operation: " + (operation) + " (const not found)") + } finally { Opal.pop_exception(); } } else { throw $err; } };; - if ($truthy($rb_lt(const$, Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'ServerOp')))) { - } else { - Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'InternalPolicy').$raise_operation_access_violation("illegal_remote_op_call", "" + "Operation: " + (operation) + " (not a ServerOp subclass)") + if ($truthy($rb_lt(const$, $$$($$($nesting, 'Hyperstack'), 'ServerOp')))) { + } else { + $$$($$($nesting, 'Hyperstack'), 'InternalPolicy').$raise_operation_access_violation("illegal_remote_op_call", "" + "Operation: " + (operation) + " (not a ServerOp subclass)") }; }; - return $send(operation.$constantize(), 'class_eval', [], (TMP_8 = function(){var self = TMP_8.$$s || this, TMP_9, TMP_10, $writer = nil; + return $send(operation.$constantize(), 'class_eval', [], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s, $$10, $$11, $writer = nil; - + if ($truthy(self.$_Railway().$params_wrapper()['$method_defined?']("controller"))) { $writer = ["controller", controller]; $send(params, '[]=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; } else if ($truthy(self.$_Railway().$params_wrapper()['$method_defined?'](security_param)['$!']())) { - self.$raise(Opal.const_get_relative($nesting, 'AccessViolation').$new("remote_access_not_allowed"))}; - return $send($send(self.$run(self.$deserialize_params(params)), 'then', [], (TMP_9 = function(r){var self = TMP_9.$$s || this; -if (r == null) r = nil; - Opal.ret($hash2(["json"], {"json": $hash2(["response"], {"response": self.$serialize_response(r)})}))}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)), 'fail', [], (TMP_10 = function(e){var self = TMP_10.$$s || this; -if (e == null) e = nil; - Opal.ret(self.$handle_exception(e, operation, params))}, TMP_10.$$s = self, TMP_10.$$arity = 1, TMP_10));}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8)); + self.$raise($$($nesting, 'AccessViolation').$new("remote_access_not_allowed"))}; + return $send($send(self.$run(self.$deserialize_params(params)), 'then', [], ($$10 = function(r){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (r == null) { + r = nil; + }; + Opal.ret($hash2(["json"], {"json": $hash2(["response"], {"response": self.$serialize_response(r)})}));}, $$10.$$s = self, $$10.$$arity = 1, $$10)), 'fail', [], ($$11 = function(e){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (e == null) { + e = nil; + }; + Opal.ret(self.$handle_exception(e, operation, params));}, $$11.$$s = self, $$11.$$arity = 1, $$11));}, $$9.$$s = self, $$9.$$arity = 0, $$9)); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { return self.$handle_exception(e, operation, params) - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_run_from_client_11.$$arity = 4); + }, $run_from_client$8.$$arity = 4); - Opal.defn(self, '$status', TMP_status_12 = function $$status(e) { + Opal.def(self, '$status', $status$12 = function $$status(e) { var self = this; - if ($truthy(e['$is_a?'](Opal.const_get_relative($nesting, 'AccessViolation')))) { + if ($truthy(e['$is_a?']($$($nesting, 'AccessViolation')))) { return 403 - } else if ($truthy(e['$is_a?'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Operation'), 'ValidationException')))) { + } else if ($truthy(e['$is_a?']($$$($$($nesting, 'Operation'), 'ValidationException')))) { return 400 - } else { + } else { return 500 } - }, TMP_status_12.$$arity = 1); + }, $status$12.$$arity = 1); - Opal.defn(self, '$handle_exception', TMP_handle_exception_14 = function $$handle_exception(e, operation, params) { - var TMP_13, self = this, message = nil; + Opal.def(self, '$handle_exception', $handle_exception$13 = function $$handle_exception(e, operation, params) { + var $$14, self = this, message = nil; if ($truthy(e['$respond_to?']("__hyperstack_on_error"))) { params = params.$to_h(); message = []; - message['$<<'](Opal.const_get_relative($nesting, 'Pastel').$new().$red("" + "HYPERSTACK ERROR during " + (operation) + " " + (e.$inspect()))); - $send(params, 'each', [], (TMP_13 = function(param, value){var self = TMP_13.$$s || this; -if (param == null) param = nil;if (value == null) value = nil; - return message['$<<']("" + " " + (param) + " => " + (value.$inspect().$truncate(120, $hash2(["separator"], {"separator": "..."}))))}, TMP_13.$$s = self, TMP_13.$$arity = 2, TMP_13)); + message['$<<']($$($nesting, 'Pastel').$new().$red("" + "HYPERSTACK ERROR during " + (operation) + " " + (e.$inspect()))); + $send(params, 'each', [], ($$14 = function(param, value){var self = $$14.$$s == null ? this : $$14.$$s; + + + + if (param == null) { + param = nil; + }; + + if (value == null) { + value = nil; + }; + return message['$<<']("" + " " + (param) + " => " + (value.$inspect().$truncate(120, $hash2(["separator"], {"separator": "..."}))));}, $$14.$$s = self, $$14.$$arity = 2, $$14)); if ($truthy(e['$respond_to?']("details"))) { message['$<<']("" + "\n" + (e.$details()))}; e.$__hyperstack_on_error(operation, params, message.$join("\n"));}; return $hash2(["json", "status"], {"json": $hash2(["error_class", "error"], {"error_class": e.$class().$to_s(), "error": e}), "status": self.$status(e)}); - }, TMP_handle_exception_14.$$arity = 3); + }, $handle_exception$13.$$arity = 3); - Opal.defn(self, '$remote', TMP_remote_15 = function $$remote(path, $a_rest) { - var self = this, args, promise = nil, uri = nil, http = nil, request = nil, $writer = nil, e = nil; + Opal.def(self, '$remote', $remote$15 = function $$remote(path, $a) { + var $post_args, args, self = this, promise = nil, uri = nil, http = nil, request = nil, $writer = nil, e = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; try { - promise = Opal.const_get_relative($nesting, 'Promise').$new(); + promise = $$($nesting, 'Promise').$new(); uri = self.$URI("" + (path) + "execute_remote_api"); - http = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Net'), 'HTTP').$new(uri.$host(), uri.$port()); - request = Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Net'), 'HTTP'), 'Post').$new(uri.$path(), $hash2(["Content-Type"], {"Content-Type": "application/json"})); + http = $$$($$($nesting, 'Net'), 'HTTP').$new(uri.$host(), uri.$port()); + request = $$$($$$($$($nesting, 'Net'), 'HTTP'), 'Post').$new(uri.$path(), $hash2(["Content-Type"], {"Content-Type": "application/json"})); if (uri.$scheme()['$==']("https")) { $writer = [true]; $send(http, 'use_ssl=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];}; - $writer = [$hash2(["operation", "params"], {"operation": self.$name(), "params": Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Hyperstack'), 'Operation'), 'ParamsWrapper').$combine_arg_array(args)}).$to_json()]; + $writer = [$hash2(["operation", "params"], {"operation": self.$name(), "params": $$$($$$($$($nesting, 'Hyperstack'), 'Operation'), 'ParamsWrapper').$combine_arg_array(args)}).$to_json()]; $send(request, 'body=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)];; return promise.$resolve(http.$request(request)); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'Exception')])) {(e = $err) try { return promise.$reject(e) - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - } - }, TMP_remote_15.$$arity = -2); + }; + }, $remote$15.$$arity = -2); - Opal.defn(self, '$headers', TMP_headers_16 = function $$headers() { + Opal.def(self, '$headers', $headers$16 = function $$headers() { var self = this; return $hash2([], {}) - }, TMP_headers_16.$$arity = 0); + }, $headers$16.$$arity = 0); - Opal.defn(self, '$serialize_params', TMP_serialize_params_17 = function $$serialize_params(hash) { + Opal.def(self, '$serialize_params', $serialize_params$17 = function $$serialize_params(hash) { var self = this; return hash - }, TMP_serialize_params_17.$$arity = 1); + }, $serialize_params$17.$$arity = 1); - Opal.defn(self, '$deserialize_params', TMP_deserialize_params_18 = function $$deserialize_params(hash) { + Opal.def(self, '$deserialize_params', $deserialize_params$18 = function $$deserialize_params(hash) { var self = this; return hash - }, TMP_deserialize_params_18.$$arity = 1); + }, $deserialize_params$18.$$arity = 1); - Opal.defn(self, '$serialize_response', TMP_serialize_response_19 = function $$serialize_response(hash) { + Opal.def(self, '$serialize_response', $serialize_response$19 = function $$serialize_response(hash) { var self = this; return hash - }, TMP_serialize_response_19.$$arity = 1); + }, $serialize_response$19.$$arity = 1); - Opal.defn(self, '$deserialize_response', TMP_deserialize_response_20 = function $$deserialize_response(hash) { + Opal.def(self, '$deserialize_response', $deserialize_response$20 = function $$deserialize_response(hash) { var self = this; return hash - }, TMP_deserialize_response_20.$$arity = 1); + }, $deserialize_response$20.$$arity = 1); - Opal.defn(self, '$serialize_dispatch', TMP_serialize_dispatch_21 = function $$serialize_dispatch(hash) { + Opal.def(self, '$serialize_dispatch', $serialize_dispatch$21 = function $$serialize_dispatch(hash) { var self = this; return hash - }, TMP_serialize_dispatch_21.$$arity = 1); + }, $serialize_dispatch$21.$$arity = 1); - Opal.defn(self, '$deserialize_dispatch', TMP_deserialize_dispatch_22 = function $$deserialize_dispatch(hash) { + Opal.def(self, '$deserialize_dispatch', $deserialize_dispatch$22 = function $$deserialize_dispatch(hash) { var self = this; return hash - }, TMP_deserialize_dispatch_22.$$arity = 1); + }, $deserialize_dispatch$22.$$arity = 1); - Opal.defn(self, '$dispatch_to', TMP_dispatch_to_23 = function $$dispatch_to($a_rest) { - var self = this, args, $iter = TMP_dispatch_to_23.$$p, regulation = $iter || nil; + Opal.def(self, '$dispatch_to', $dispatch_to$23 = function $$dispatch_to($a) { + var $iter = $dispatch_to$23.$$p, regulation = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_dispatch_to_23.$$p = null; - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - return nil - } else { - return nil - } - }, TMP_dispatch_to_23.$$arity = -1); - if ($truthy(Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$!=']("opal"))) { - nil}; - return (Opal.defn(self, '$dispatch_from_server', TMP_dispatch_from_server_25 = function $$dispatch_from_server(params_hash) { - var TMP_24, self = this, params = nil; + if ($iter) $dispatch_to$23.$$p = null; + + + if ($iter) $dispatch_to$23.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return nil; + }, $dispatch_to$23.$$arity = -1); + nil; + return (Opal.def(self, '$dispatch_from_server', $dispatch_from_server$24 = function $$dispatch_from_server(params_hash) { + var $$25, self = this, params = nil; params = self.$_Railway().$params_wrapper().$new(self.$deserialize_dispatch(params_hash)).$lock(); - return $send(self.$_Railway().$receivers(), 'each', [], (TMP_24 = function(receiver){var self = TMP_24.$$s || this; -if (receiver == null) receiver = nil; - return receiver.$call(params)}, TMP_24.$$s = self, TMP_24.$$arity = 1, TMP_24)); - }, TMP_dispatch_from_server_25.$$arity = 1), nil) && 'dispatch_from_server'; + return $send(self.$_Railway().$receivers(), 'each', [], ($$25 = function(receiver){var self = $$25.$$s == null ? this : $$25.$$s; + + + + if (receiver == null) { + receiver = nil; + }; + return receiver.$call(params);}, $$25.$$s = self, $$25.$$arity = 1, $$25)); + }, $dispatch_from_server$24.$$arity = 1), nil) && 'dispatch_from_server'; })(Opal.get_singleton_class(self), $nesting) - })($nesting[0], Opal.const_get_relative($nesting, 'Operation'), $nesting); - (function($base, $super, $parent_nesting) { - function $ControllerOp(){}; - var self = $ControllerOp = $klass($base, $super, 'ControllerOp', $ControllerOp); + })($nesting[0], $$($nesting, 'Operation'), $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ControllerOp'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_ControllerOp_method_missing_26; + var $nesting = [self].concat($parent_nesting), $ControllerOp_method_missing$26; self.$inbound("controller"); - Opal.alias(self, "pre_controller_op_method_missing", "method_missing"); - return (Opal.defn(self, '$method_missing', TMP_ControllerOp_method_missing_26 = function $$method_missing(name, $a_rest) { - var self = this, args, $iter = TMP_ControllerOp_method_missing_26.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_ControllerOp_method_missing_26.$$p = null; + $alias(self, "pre_controller_op_method_missing", "method_missing"); + return (Opal.def(self, '$method_missing', $ControllerOp_method_missing$26 = function $$method_missing(name, $a) { + var $iter = $ControllerOp_method_missing$26.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $ControllerOp_method_missing$26.$$p = null; + + + if ($iter) $ControllerOp_method_missing$26.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if ($truthy(self.$params().$controller()['$respond_to?'](name))) { return $send(self.$params().$controller(), 'send', [name].concat(Opal.to_a(args)), block.$to_proc()) - } else { + } else { return $send(self, 'pre_controller_op_method_missing', [name].concat(Opal.to_a(args)), block.$to_proc()) - } - }, TMP_ControllerOp_method_missing_26.$$arity = -2), nil) && 'method_missing'; - })($nesting[0], Opal.const_get_relative($nesting, 'ServerOp'), $nesting); + }; + }, $ControllerOp_method_missing$26.$$arity = -2), nil) && 'method_missing'; + })($nesting[0], $$($nesting, 'ServerOp'), $nesting); })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation/boot"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; +Opal.modules["hyper-operation/boot"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; Opal.add_stubs(['$inherited', '$add_receiver', '$_Railway', '$to_proc', '$initialize_client_drivers_on_boot', '$_run', '$respond_to?', '$each', '$receivers', '$on_dispatch']); return (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Application(){}; - var self = $Application = $klass($base, $super, 'Application', $Application); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Application'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), $a, TMP_Application_3; + var $nesting = [self].concat($parent_nesting), $a, $Application$3; - if ($truthy((($a = Opal.const_get_relative($nesting, 'Boot', 'skip_raise')) ? 'constant' : nil))) { - Opal.const_get_relative($nesting, 'Operation').$inherited(Opal.const_get_relative($nesting, 'Boot'))}; + if ($truthy((($a = $$($nesting, 'Boot', 'skip_raise')) ? 'constant' : nil))) { + $$($nesting, 'Operation').$inherited($$($nesting, 'Boot'))}; (function($base, $super, $parent_nesting) { - function $Boot(){}; - var self = $Boot = $klass($base, $super, 'Boot', $Boot); + var self = $klass($base, $super, 'Boot'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Boot_on_dispatch_1, TMP_Boot_run_2; + var $nesting = [self].concat($parent_nesting), $Boot_on_dispatch$1, $Boot_run$2; - Opal.defs(self, '$on_dispatch', TMP_Boot_on_dispatch_1 = function $$on_dispatch() { - var self = this, $iter = TMP_Boot_on_dispatch_1.$$p, block = $iter || nil; + Opal.defs(self, '$on_dispatch', $Boot_on_dispatch$1 = function $$on_dispatch() { + var $iter = $Boot_on_dispatch$1.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Boot_on_dispatch_1.$$p = null; - return $send(self.$_Railway(), 'add_receiver', [], block.$to_proc()) - }, TMP_Boot_on_dispatch_1.$$arity = 0); - return Opal.defs(self, '$run', TMP_Boot_run_2 = function $$run($a_rest) { - var self = this, args; + if ($iter) $Boot_on_dispatch$1.$$p = null; + + + if ($iter) $Boot_on_dispatch$1.$$p = null;; + return $send(self.$_Railway(), 'add_receiver', [], block.$to_proc()); + }, $Boot_on_dispatch$1.$$arity = 0); + return (Opal.defs(self, '$run', $Boot_run$2 = function $$run($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - Opal.const_get_relative($nesting, 'ClientDrivers').$initialize_client_drivers_on_boot(); + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + $$($nesting, 'ClientDrivers').$initialize_client_drivers_on_boot(); return $send(self, '_run', Opal.to_a(args)); - }, TMP_Boot_run_2.$$arity = -1); - })($nesting[0], Opal.const_get_relative($nesting, 'Operation'), $nesting); - if ($truthy(Opal.const_get_relative($nesting, 'Boot')['$respond_to?']("receivers"))) { - return $send(Opal.const_get_relative($nesting, 'Boot').$receivers(), 'each', [], (TMP_Application_3 = function(r){var self = TMP_Application_3.$$s || this; -if (r == null) r = nil; - return $send(Opal.const_get_relative($nesting, 'Boot'), 'on_dispatch', [], r.$to_proc())}, TMP_Application_3.$$s = self, TMP_Application_3.$$arity = 1, TMP_Application_3)) - } else { + }, $Boot_run$2.$$arity = -1), nil) && 'run'; + })($nesting[0], $$($nesting, 'Operation'), $nesting); + if ($truthy($$($nesting, 'Boot')['$respond_to?']("receivers"))) { + return $send($$($nesting, 'Boot').$receivers(), 'each', [], ($Application$3 = function(r){var self = $Application$3.$$s == null ? this : $Application$3.$$s; + + + + if (r == null) { + r = nil; + }; + return $send($$($nesting, 'Boot'), 'on_dispatch', [], r.$to_proc());}, $Application$3.$$s = self, $Application$3.$$arity = 1, $Application$3)) + } else { return nil }; })($nesting[0], null, $nesting) })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["hyper-operation"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; +Opal.modules["hyper-operation/async_sleep"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $send = Opal.send; + + Opal.add_stubs(['$every', '$to_proc', '$after']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Hyperstack'); + + var $nesting = [self].concat($parent_nesting); + + return (function($base, $parent_nesting) { + var self = $module($base, 'AsyncSleep'); + + var $nesting = [self].concat($parent_nesting), $AsyncSleep_every$1, $AsyncSleep_after$2; + + + Opal.defs(self, '$every', $AsyncSleep_every$1 = function $$every($a) { + var $iter = $AsyncSleep_every$1.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $AsyncSleep_every$1.$$p = null; + + + if ($iter) $AsyncSleep_every$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, 'every', Opal.to_a(args), block.$to_proc()); + }, $AsyncSleep_every$1.$$arity = -1); + return (Opal.defs(self, '$after', $AsyncSleep_after$2 = function $$after($a) { + var $iter = $AsyncSleep_after$2.$$p, block = $iter || nil, $post_args, args, self = this; + + if ($iter) $AsyncSleep_after$2.$$p = null; + + + if ($iter) $AsyncSleep_after$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, 'after', Opal.to_a(args), block.$to_proc()); + }, $AsyncSleep_after$2.$$arity = -1), nil) && 'after'; + })($nesting[0], $nesting) + })($nesting[0], $nesting) +}; + +Opal.modules["hyper-operation"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; - Opal.add_stubs(['$require', '$import', '$==', '$register_additional_filter']); + Opal.add_stubs(['$require', '$import', '$register_additional_filter']); self.$require("hyper-operation/version"); self.$require("hyperstack-config"); - Opal.const_get_relative($nesting, 'Hyperstack').$import("hyper-operation"); - if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - - self.$require("active_support/core_ext/string"); - self.$require("mutations"); - Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'HashFilter').$register_additional_filter(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Mutations'), 'DuckFilter'), "duck"); - self.$require("hyper-operation/filters/outbound_filter"); - self.$require("hyper-component"); - self.$require("hyper-operation/http"); - self.$require("hyper-operation/transport/client_drivers"); - (function($base, $super, $parent_nesting) { - function $HashWithIndifferentAccess(){}; - var self = $HashWithIndifferentAccess = $klass($base, $super, 'HashWithIndifferentAccess', $HashWithIndifferentAccess); + $$($nesting, 'Hyperstack').$import("hyper-operation"); + + self.$require("active_support/core_ext/string"); + self.$require("mutations"); + $$$($$($nesting, 'Mutations'), 'HashFilter').$register_additional_filter($$$($$($nesting, 'Mutations'), 'DuckFilter'), "duck"); + self.$require("hyper-operation/filters/outbound_filter"); + self.$require("hyper-component"); + self.$require("hyper-operation/http"); + self.$require("hyper-operation/transport/client_drivers"); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'HashWithIndifferentAccess'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Hash'), $nesting); - (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + return nil + })($nesting[0], $$($nesting, 'Hash'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_titleize_1; + var $nesting = [self].concat($parent_nesting), $String_titleize$1; - return (Opal.defn(self, '$titleize', TMP_String_titleize_1 = function $$titleize() { - var self = this; + return (Opal.def(self, '$titleize', $String_titleize$1 = function $$titleize() { + var self = this; - return self - }, TMP_String_titleize_1.$$arity = 0), nil) && 'titleize' - })($nesting[0], null, $nesting); - self.$require("hyper-operation/exception"); - self.$require("hyper-operation/promise"); - self.$require("hyper-operation/railway"); - self.$require("hyper-operation/api"); - self.$require("hyper-operation/railway/dispatcher"); - self.$require("hyper-operation/railway/params_wrapper"); - self.$require("hyper-operation/railway/run"); - self.$require("hyper-operation/railway/validations"); - self.$require("hyper-operation/server_op"); - return self.$require("hyper-operation/boot"); - } else { - return nil - }; + return self + }, $String_titleize$1.$$arity = 0), nil) && 'titleize' + })($nesting[0], null, $nesting); + self.$require("hyper-operation/exception"); + self.$require("hyper-operation/promise"); + self.$require("hyper-operation/railway"); + self.$require("hyper-operation/api"); + self.$require("hyper-operation/railway/dispatcher"); + self.$require("hyper-operation/railway/params_wrapper"); + self.$require("hyper-operation/railway/run"); + self.$require("hyper-operation/railway/validations"); + self.$require("hyper-operation/server_op"); + self.$require("hyper-operation/boot"); + return self.$require("hyper-operation/async_sleep");; }; -/* Generated by Opal 0.11.4 */ -(function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.queue(function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; Opal.add_stubs(['$require', '$new']); @@ -29651,16 +33473,20 @@ Opal.modules["hyper-operation"] = function(Opal) { self.$require("browser/delay"); self.$require("hyperstack-config"); (function($base, $parent_nesting) { - var $Hyperstack, self = $Hyperstack = $module($base, 'Hyperstack'); + var self = $module($base, 'Hyperstack'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hyperstack_env_1; + var $nesting = [self].concat($parent_nesting), $Hyperstack_env$1; - Opal.defs(self, '$env', TMP_Hyperstack_env_1 = function $$env() { - var $a, self = this; + return (Opal.defs(self, '$env', $Hyperstack_env$1 = function $$env() { + var self = this, $ret_or_1 = nil; if (self.environment == null) self.environment = nil; - return (self.environment = ($truthy($a = self.environment) ? $a : Opal.const_get_qualified(Opal.const_get_relative($nesting, 'ActiveSupport'), 'StringInquirer').$new("express"))) - }, TMP_Hyperstack_env_1.$$arity = 0) + return (self.environment = (function() {if ($truthy(($ret_or_1 = self.environment))) { + return $ret_or_1 + } else { + return $$$($$($nesting, 'ActiveSupport'), 'StringInquirer').$new("express") + }; return nil; })()) + }, $Hyperstack_env$1.$$arity = 0), nil) && 'env' })($nesting[0], $nesting); self.$require("hyperstack/autoloader"); self.$require("hyperstack/autoloader_starter"); @@ -29668,4 +33494,4 @@ Opal.modules["hyper-operation"] = function(Opal) { self.$require("hyperstack/component/auto-import"); self.$require("hyper-state"); return self.$require("hyper-operation"); -})(Opal); +}); diff --git a/dist/hyperstack.min.js b/dist/hyperstack.min.js index e5cb80c..b447858 100644 --- a/dist/hyperstack.min.js +++ b/dist/hyperstack.min.js @@ -1,21 +1,20 @@ -Opal.modules["active_support/core_ext/array/extract_options"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.klass),a=e.truthy,i=e.hash2;return e.add_stubs(["$instance_of?","$is_a?","$last","$extractable_options?","$pop"]),function(t,$super,n){function a(){}var i,o=a=r(t,null,"Hash",a),$=(o.$$proto,[o].concat(n));e.defn(o,"$extractable_options?",i=function(){return this["$instance_of?"](e.const_get_relative($,"Hash"))},i.$$arity=0)}(t[0],0,t),function(t,$super,o){function $(){}var s,c=$=r(t,null,"Array",$),l=(c.$$proto,[c].concat(o));return e.defn(c,"$extract_options!",s=function(){var t,n=this;return a(a(t=n.$last()["$is_a?"](e.const_get_relative(l,"Hash")))?n.$last()["$extractable_options?"]():t)?n.$pop():i([],{})},s.$$arity=0),n&&"extract_options!"}(t[0],0,t)},Opal.modules["active_support/core_ext/array/wrap"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.klass),r=e.truthy;return e.add_stubs(["$nil?","$respond_to?","$to_ary"]),function(t,$super,a){function i(){}var o,$=i=n(t,null,"Array",i);$.$$proto,[$].concat(a);return e.defs($,"$wrap",o=function(e){var t;return r(e["$nil?"]())?[]:r(e["$respond_to?"]("to_ary"))&&r(t=e.$to_ary())?t:[e]},o.$$arity=1)}(t[0],0,t)},Opal.modules["active_support/core_ext/array/grouping"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var i=[],o=e.nil,$=(e.breaker,e.slice,e.klass),s=e.send,c=e.truthy;return e.add_stubs(["$==","$%","$-","$size","$concat","$dup","$*","$each_slice","$<<","$div","$times","$+","$>","$slice","$!=","$each","$inject","$call","$last"]),function(i,$super,l){function u(){}var _,f,p,d=u=$(i,null,"Array",u);d.$$proto,[d].concat(l);return e.defn(d,"$in_groups_of",_=function(r,a){var i,$,c=this,l=_.$$p,u=l||o,f=o,p=o,d=o;return null==a&&(a=o),l&&(_.$$p=null),a["$=="](!1)?f=c:(p=t(r,c.$size()["$%"](r))["$%"](r),f=c.$dup().$concat(n([a],p))),u!==o?s(f,"each_slice",[r],((i=function(t){i.$$s;return null==t&&(t=o),e.yield1(u,t)}).$$s=c,i.$$arity=1,i)):(d=[],s(f,"each_slice",[r],(($=function(e){$.$$s;return null==e&&(e=o),d["$<<"](e)}).$$s=c,$.$$arity=1,$)),d)},_.$$arity=-2),e.defn(d,"$in_groups",f=function(t,n){var i,$,l=this,u=f.$$p,_=u||o,p=o,d=o,v=o,h=o;return null==n&&(n=o),u&&(f.$$p=null),p=l.$size().$div(t),d=l.$size()["$%"](t),v=[],h=0,s(t,"times",[],((i=function(e){var t,$,s=i.$$s||this,l=o,u=o;return null==e&&(e=o),l=r(p,c(c(t=a(d,0))?a(d,e):t)?1:0),v["$<<"](u=s.$slice(h,l)),c(c(t=c($=n["$!="](!1))?a(d,0):$)?l["$=="](p):t)&&u["$<<"](n),h=r(h,l)}).$$s=l,i.$$arity=1,i)),_!==o?s(v,"each",[],(($=function(t){$.$$s;return null==t&&(t=o),e.yield1(_,t)}).$$s=l,$.$$arity=1,$)):v},f.$$arity=-2),e.defn(d,"$split",p=function(e){var t,n=this,r=p.$$p,a=r||o;return null==e&&(e=o),r&&(p.$$p=null),s(n,"inject",[[[]]],((t=function(n,r){var i,$;t.$$s;return null==n&&(n=o),null==r&&(r=o),c(c(i=c($=a)?a.$call(r):$)?i:e["$=="](r))?n["$<<"]([]):n.$last()["$<<"](r),n}).$$s=n,t.$$arity=2,t))},p.$$arity=-1),o&&"split"}(i[0],0,i)},Opal.modules["active_support/core_ext/array"]=function(e){var t=e.top;e.nil,e.breaker,e.slice;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/array/extract_options"),t.$require("active_support/core_ext/array/wrap"),t.$require("active_support/core_ext/array/grouping")},Opal.modules["active_support/core_ext/kernel/singleton_class"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.send;return e.add_stubs(["$class_eval","$singleton_class","$to_proc"]),function(t,i){var o,$=r(t,"Kernel");$.$$proto,[$].concat(i);e.defn($,"$class_eval",o=function(){var t,r=this,i=o.$$p,$=i||n,s=arguments.length,c=s-0;c<0&&(c=0),t=new Array(c);for(var l=0;l"},d.$$arity=0),e.defn(R,"$==",v=function(t){var n,r,a=this;return!!$(a["$equal?"](t))||($(t["$instance_of?"](a.$class()))?a.hash["$=="](t.$instance_variable_get("@hash")):!!$($(n=t["$is_a?"](e.const_get_relative(B,"Set")))?a.$size()["$=="](t.$size()):n)&&s(t,"all?",[],((r=function(e){var t=r.$$s||this;return null==t.hash&&(t.hash=i),null==e&&(e=i),t.hash["$include?"](e)}).$$s=a,r.$$arity=1,r)))},v.$$arity=1),e.defn(R,"$add",h=function(n){var r=this,a=i;return a=[n,!0],s(r.hash,"[]=",e.to_a(a)),a[t(a.length,1)],r},h.$$arity=1),e.alias(R,"<<","add"),e.defn(R,"$classify",y=function(){var n,r,a=this,o=y.$$p,$=o||i,c=i;return o&&(y.$$p=null),$===i?a.$enum_for("classify"):(c=s(e.const_get_relative(B,"Hash"),"new",[],((n=function(r,a){var o=n.$$s||this,$=i;return null==r&&(r=i),null==a&&(a=i),$=[a,o.$class().$new()],s(r,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=a,n.$$arity=2,n)),s(a,"each",[],((r=function(t){r.$$s;return null==t&&(t=i),c["$[]"](e.yield1($,t)).$add(t)}).$$s=a,r.$$arity=1,r)),c)},y.$$arity=0),e.defn(R,"$collect!",m=function(){var t,n=this,r=m.$$p,a=r||i,o=i;return r&&(m.$$p=null),a===i?n.$enum_for("collect!"):(o=n.$class().$new(),s(n,"each",[],((t=function(n){t.$$s;return null==n&&(n=i),o["$<<"](e.yield1(a,n))}).$$s=n,t.$$arity=1,t)),n.$replace(o))},m.$$arity=0),e.alias(R,"map!","collect!"),e.defn(R,"$delete",g=function(e){var t=this;return t.hash.$delete(e),t},g.$$arity=1),e.defn(R,"$delete?",b=function(e){var t=this;return $(t["$include?"](e))?(t.$delete(e),t):i},b.$$arity=1),e.defn(R,"$delete_if",w=function(){try{var t,n,r=this,a=w.$$p,o=a||i;return a&&(w.$$p=null),$(o!==i)||e.ret(r.$enum_for("delete_if")),s(s(r,"select",[],((t=function(n){t.$$s;return null==n&&(n=i),e.yield1(o,n)}).$$s=r,t.$$arity=1,t)),"each",[],((n=function(e){var t=n.$$s||this;return null==t.hash&&(t.hash=i),null==e&&(e=i),t.hash.$delete(e)}).$$s=r,n.$$arity=1,n)),r}catch(c){if(c===e.returner)return c.$v;throw c}},w.$$arity=0),e.defn(R,"$add?",k=function(e){var t=this;return $(t["$include?"](e))?i:t.$add(e)},k.$$arity=1),e.defn(R,"$each",O=function(){var e=this,t=O.$$p,n=t||i;return t&&(O.$$p=null),n===i?e.$enum_for("each"):(s(e.hash,"each_key",[],n.$to_proc()),e)},O.$$arity=0),e.defn(R,"$empty?",q=function(){return this.hash["$empty?"]()},q.$$arity=0),e.defn(R,"$eql?",E=function(e){var t,n=this;return n.hash["$eql?"](s(e,"instance_eval",[],((t=function(){var e=t.$$s||this;return null==e.hash&&(e.hash=i),e.hash}).$$s=n,t.$$arity=0,t)))},E.$$arity=1),e.defn(R,"$clear",x=function(){var e=this;return e.hash.$clear(),e},x.$$arity=0),e.defn(R,"$include?",A=function(e){return this.hash["$include?"](e)},A.$$arity=1),e.alias(R,"member?","include?"),e.defn(R,"$merge",S=function(e){var t,n=this;return s(e,"each",[],((t=function(e){var n=t.$$s||this;return null==e&&(e=i),n.$add(e)}).$$s=n,t.$$arity=1,t)),n},S.$$arity=1),e.defn(R,"$replace",M=function(e){var t=this;return t.$clear(),t.$merge(e),t},M.$$arity=1),e.defn(R,"$size",N=function(){return this.hash.$size()},N.$$arity=0),e.alias(R,"length","size"),e.defn(R,"$subtract",T=function(e){var t,n=this;return s(e,"each",[],((t=function(e){var n=t.$$s||this;return null==e&&(e=i),n.$delete(e)}).$$s=n,t.$$arity=1,t)),n},T.$$arity=1),e.defn(R,"$|",C=function(t){var n=this;return $(t["$respond_to?"]("each"))||n.$raise(e.const_get_relative(B,"ArgumentError"),"value must be enumerable"),n.$dup().$merge(t)},C.$$arity=1),e.defn(R,"$superset?",I=function(t){var r,a=this;return $(t["$is_a?"](e.const_get_relative(B,"Set")))||a.$raise(e.const_get_relative(B,"ArgumentError"),"value must be a set"),!$(n(a.$size(),t.$size()))&&s(t,"all?",[],((r=function(e){var t=r.$$s||this;return null==e&&(e=i),t["$include?"](e)}).$$s=a,r.$$arity=1,r))},I.$$arity=1),e.alias(R,">=","superset?"),e.defn(R,"$proper_superset?",D=function(t){var n,a=this;return $(t["$is_a?"](e.const_get_relative(B,"Set")))||a.$raise(e.const_get_relative(B,"ArgumentError"),"value must be a set"),!$(r(a.$size(),t.$size()))&&s(t,"all?",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=i),t["$include?"](e)}).$$s=a,n.$$arity=1,n))},D.$$arity=1),e.alias(R,">","proper_superset?"),e.defn(R,"$subset?",H=function(t){var r,a=this;return $(t["$is_a?"](e.const_get_relative(B,"Set")))||a.$raise(e.const_get_relative(B,"ArgumentError"),"value must be a set"),!$(n(t.$size(),a.$size()))&&s(a,"all?",[],((r=function(e){r.$$s;return null==e&&(e=i),t["$include?"](e)}).$$s=a,r.$$arity=1,r))},H.$$arity=1),e.alias(R,"<=","subset?"),e.defn(R,"$proper_subset?",z=function(t){var n,a=this;return $(t["$is_a?"](e.const_get_relative(B,"Set")))||a.$raise(e.const_get_relative(B,"ArgumentError"),"value must be a set"),!$(r(t.$size(),a.$size()))&&s(a,"all?",[],((n=function(e){n.$$s;return null==e&&(e=i),t["$include?"](e)}).$$s=a,n.$$arity=1,n))},z.$$arity=1),e.alias(R,"<","proper_subset?"),e.alias(R,"+","|"),e.alias(R,"union","|"),e.defn(R,"$to_a",P=function(){return this.hash.$keys()},P.$$arity=0)}(a[0],0,a),function(t,n){var r,a=c(t,"Enumerable"),o=(a.$$proto,[a].concat(n));e.defn(a,"$to_set",r=function(t){var n,a=this,$=r.$$p,c=$||i;null==t&&(t=e.const_get_relative(o,"Set"));var l=arguments.length,u=l-1;u<0&&(u=0),n=new Array(u);for(var _=1;_t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,a=[],i=e.nil,o=(e.breaker,e.slice,e.module),$=e.truthy,s=e.send,c=e.gvars,l=e.hash2,u=e.range;return e.add_stubs(["$require","$extend","$apply_inflections","$plurals","$inflections","$singulars","$to_s","$sub","$capitalize","$downcase","$gsub","$freeze","$match?","$tr","$dup","$each","$humans","$is_a?","$=~","$==","$upcase","$>","$length","$+","$[]","$humanize","$underscore","$pluralize","$camelize","$singularize","$rindex","$demodulize","$split","$empty?","$raise","$size","$first","$shift","$inject","$const_get","$const_defined?","$ancestors","$constantize","$name","$!","$include?","$const_regexp","$message","$abs","$to_i","$%","$===","$ordinal","$private","$blank?","$escape","$pop","$reverse","$uncountable?","$uncountables"]),r.$require("active_support/inflections"),function(r,a){var _=o(r,"ActiveSupport"),f=(_.$$proto,[_].concat(a));!function(r,a){var _,f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M,N=o(r,"Inflector"),T=(N.$$proto,[N].concat(a));N.$extend(N),e.defn(N,"$pluralize",_=function(e,t){var n=this;return null==t&&(t="en"),n.$apply_inflections(e,n.$inflections(t).$plurals(),t)},_.$$arity=-2),e.defn(N,"$singularize",f=function(e,t){var n=this;return null==t&&(t="en"),n.$apply_inflections(e,n.$inflections(t).$singulars(),t)},f.$$arity=-2),e.defn(N,"$camelize",p=function(e,t){var n,r,a=this,o=i;return null==t&&(t=!0),o=e.$to_s(),o=$(t)?s(o,"sub",[/^[a-z\d]*/],((n=function(e){n.$$s;return null==e&&(e=i),e.$capitalize()}).$$s=a,n.$$arity=1,n)):o.$downcase(),o=(o=s(o,"gsub",[/(?:_|(\/))([a-z\d]*)/i],((r=function(){var e;r.$$s;return""+((e=c["~"])===i?i:e["$[]"](1))+((e=c["~"])===i?i:e["$[]"](2)).$capitalize()}).$$s=a,r.$$arity=0,r))).$gsub("/".$freeze(),"::".$freeze())},p.$$arity=-2),e.defn(N,"$underscore",d=function(e){return $(/[A-Z-]|::/["$match?"](e))?e.$to_s().$gsub("::".$freeze(),"/".$freeze()).$gsub(/([A-Z\d]+)([A-Z][a-z])/,"\\1_\\2".$freeze()).$gsub(/([a-z\d])([A-Z])/,"\\1_\\2".$freeze()).$tr("-".$freeze(),"_".$freeze()).$downcase():e},d.$$arity=1),e.defn(N,"$humanize",v=function(t,n){var r,a,o,c,u,_=this,f=i;if(null==n||!n.$$is_hash){if(null!=n)throw e.ArgumentError.$new("expected kwargs");n=l([],{})}return null==(c=n.$$smap.capitalize)&&(c=!0),null==(u=n.$$smap.keep_id_suffix)&&(u=!1),f=t.$to_s().$dup(),function(){var t=e.new_brk();try{s(_.$inflections().$humans(),"each",[],((r=function(n){var a,o,s,c,l;r.$$s;if(null==n&&(n=i),n=e.to_ary(n),null==(o=(a=e.slice.call(n,0,n.length)).splice(0,1)[0])&&(o=i),null==(s=a.splice(0,1)[0])&&(s=i),!$($(c=$(l=o["$is_a?"](e.const_get_relative(T,"Regexp")))?f["$=~"](o):l)?c:$(l=o["$is_a?"](e.const_get_relative(T,"String")))?f["$=="](o):l))return i;f=f.$sub(o,s),e.brk(i,t)}).$$s=_,r.$$brk=t,r.$$arity=1,r.$$has_top_level_mlhs_arg=!0,r))}catch(n){if(n===t)return n.$v;throw n}}(),f=f.$sub(/^_+/,"".$freeze()),$(u)||(f=f.$sub(/_id$/,"".$freeze())),f=f.$tr("_".$freeze()," ".$freeze()),f=s(f,"gsub",[/([a-z\d]*)/i],((a=function(e){a.$$s;return null==e&&(e=i),""+e.$downcase()}).$$s=_,a.$$arity=1,a)),$(c)&&(f=s(f,"sub",[/^\w/],((o=function(e){o.$$s;return null==e&&(e=i),e.$upcase()}).$$s=_,o.$$arity=1,o))),f},v.$$arity=-2),e.defn(N,"$upcase_first",h=function(e){return $(t(e.$length(),0))?n(e["$[]"](0).$upcase(),e["$[]"](u(1,-1,!1))):""},h.$$arity=1),e.defn(N,"$titleize",y=function(t,n){var r,a,o=this;if(null==n||!n.$$is_hash){if(null!=n)throw e.ArgumentError.$new("expected kwargs");n=l([],{})}return null==(a=n.$$smap.keep_id_suffix)&&(a=!1),s(o.$humanize(o.$underscore(t),l(["keep_id_suffix"],{keep_id_suffix:a})),"gsub",[/([a-zA-Z'\u2019`])[a-z]*/],((r=function(e){r.$$s;return null==e&&(e=i),e.$capitalize()}).$$s=o,r.$$arity=1,r))},y.$$arity=-2),e.defn(N,"$tableize",m=function(e){var t=this;return t.$pluralize(t.$underscore(e))},m.$$arity=1),e.defn(N,"$classify",g=function(e){var t=this;return t.$camelize(t.$singularize(e.$to_s().$sub(/.*\./,"".$freeze())))},g.$$arity=1),e.defn(N,"$dasherize",b=function(e){return e.$tr("_".$freeze(),"-".$freeze())},b.$$arity=1),e.defn(N,"$demodulize",w=function(t){var r=i;return t=t.$to_s(),$(r=t.$rindex("::"))?t["$[]"](e.Range.$new(n(r,2),-1,!1)):t},w.$$arity=1),e.defn(N,"$deconstantize",k=function(e){var t;return e.$to_s()["$[]"](0,$(t=e.$rindex("::"))?t:0)},k.$$arity=1),e.defn(N,"$foreign_key",O=function(e,t){var r=this;return null==t&&(t=!0),n(r.$underscore(r.$demodulize(e)),$(t)?"_id":"id")},O.$$arity=-2),e.defn(N,"$constantize",q=function(n){var r,a,o=this,c=i;return c=n.$split("::"),$(c["$empty?"]())&&o.$raise(e.const_get_relative(T,"NameError"),"wrong constant name "),$($(r=t(c.$size(),1))?c.$first()["$empty?"]():r)&&c.$shift(),function(){var t=e.new_brk();try{return s(c,"inject",[e.const_get_relative(T,"Object")],((a=function(t,n){var r,o=a.$$s||this,c=i;return null==t&&(t=i),null==n&&(n=i),t["$=="](e.const_get_relative(T,"Object"))?t.$const_get(n):(c=t.$const_get(n),$(t["$const_defined?"](n,!1))?c:$(e.const_get_relative(T,"Object")["$const_defined?"](n))?(t=function(){var a=e.new_brk();try{return s(t.$ancestors(),"inject",[t],((r=function(t,o){r.$$s;return null==t&&(t=i),null==o&&(o=i), -o["$=="](e.const_get_relative(T,"Object"))&&e.brk(t,a),$(o["$const_defined?"](n,!1))&&e.brk(o,a),t}).$$s=o,r.$$brk=a,r.$$arity=2,r))}catch(c){if(c===a)return c.$v;throw c}}()).$const_get(n,!1):c)}).$$s=o,a.$$brk=t,a.$$arity=2,a))}catch(n){if(n===t)return n.$v;throw n}}()},q.$$arity=1),e.defn(N,"$safe_constantize",E=function(t){var n,r,a=this,o=i;try{return a.$constantize(t)}catch(s){if(e.rescue(s,[e.const_get_relative(T,"NameError")])){o=s;try{return $($(n=o.$name())?($(r=t.$to_s().$split("::")["$include?"](o.$name().$to_s()))?r:o.$name().$to_s()["$=="](t.$to_s()))["$!"]():n)?a.$raise():i}finally{e.pop_exception()}}else{if(!e.rescue(s,[e.const_get_relative(T,"ArgumentError")]))throw s;o=s;try{return $(new RegExp("not missing constant "+a.$const_regexp(t)+"!$")["$match?"](o.$message()))?i:a.$raise()}finally{e.pop_exception()}}}},E.$$arity=1),e.defn(N,"$ordinal",x=function(e){var t=i,n=i;return t=e.$to_i().$abs(),$(u(11,13,!1)["$include?"](t["$%"](100)))?"th":(n=t["$%"](10),1["$==="](n)?"st":2["$==="](n)?"nd":3["$==="](n)?"rd":"th")},x.$$arity=1),e.defn(N,"$ordinalize",A=function(e){return""+e+this.$ordinal(e)},A.$$arity=1),N.$private(),e.defn(N,"$const_regexp",S=function(t){var n,r=this,a=i,o=i;return a=t.$split("::".$freeze()),$(a["$blank?"]())?e.const_get_relative(T,"Regexp").$escape(t):(o=a.$pop(),s(a.$reverse(),"inject",[o],((n=function(e,t){n.$$s;return null==e&&(e=i),null==t&&(t=i),$(t["$empty?"]())?e:t+"(::"+e+")?"}).$$s=r,n.$$arity=2,n)))},S.$$arity=1),e.defn(N,"$apply_inflections",M=function(t,n,r){var a,o,c=this,l=i;return null==r&&(r="en"),l=t.$to_s().$dup(),$($(a=t["$empty?"]())?a:c.$inflections(r).$uncountables()["$uncountable?"](l))?l:(function(){var t=e.new_brk();try{s(n,"each",[],((o=function(n){var r,a,s,c,u;o.$$s;if(null==n&&(n=i),n=e.to_ary(n),null==(a=(r=e.slice.call(n,0,n.length)).splice(0,1)[0])&&(a=i),null==(s=r.splice(0,1)[0])&&(s=i),!$($(c=$(u=a["$is_a?"](e.const_get_relative(T,"Regexp")))?l["$=~"](a):u)?c:$(u=a["$is_a?"](e.const_get_relative(T,"String")))?l["$=="](a):u))return i;l=l.$sub(a,s),e.brk(i,t)}).$$s=c,o.$$brk=t,o.$$arity=1,o.$$has_top_level_mlhs_arg=!0,o))}catch(r){if(r===t)return r.$v;throw r}}(),l)},M.$$arity=-3)}(f[0],f)}(a[0],a)},Opal.modules["active_support/core_ext/string/inflections"]=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.klass),i=e.truthy,o=e.hash2;return e.add_stubs(["$require","$is_a?","$==","$dup","$pluralize","$singularize","$constantize","$safe_constantize","$===","$camelize","$raise","$alias_method","$titleize","$underscore","$dasherize","$demodulize","$deconstantize","$tableize","$classify","$humanize","$upcase_first","$foreign_key"]),t.$require("active_support/inflector"),function(t,$super,n){function $(){}var s,c,l,u,_,f,p,d,v,h,y,m,g,b,w,k=$=a(t,null,"String",$),O=(k.$$proto,[k].concat(n));return e.defn(k,"$pluralize",s=function(t,n){var a=this;return null==t&&(t=r),null==n&&(n="en"),i(t["$is_a?"](e.const_get_relative(O,"Symbol")))&&(n=t),t["$=="](1)?a.$dup():e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$pluralize(a,n)},s.$$arity=-1),e.defn(k,"$singularize",c=function(t){var n=this;return null==t&&(t="en"),e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$singularize(n,t)},c.$$arity=-1),e.defn(k,"$constantize",l=function(){var t=this;return e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$constantize(t)},l.$$arity=0),e.defn(k,"$safe_constantize",u=function(){var t=this;return e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$safe_constantize(t)},u.$$arity=0),e.defn(k,"$camelize",_=function(t){var n=this,a=r;return null==t&&(t="upper"),a=t,"upper"["$==="](a)?e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$camelize(n,!0):"lower"["$==="](a)?e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$camelize(n,!1):n.$raise(e.const_get_relative(O,"ArgumentError"),"Invalid option, use either :upper or :lower.")},_.$$arity=-1),k.$alias_method("camelcase","camelize"),e.defn(k,"$titleize",f=function(t){var n,r=this;if(null==t||!t.$$is_hash){if(null!=t)throw e.ArgumentError.$new("expected kwargs");t=o([],{})}return null==(n=t.$$smap.keep_id_suffix)&&(n=!1),e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$titleize(r,o(["keep_id_suffix"],{keep_id_suffix:n}))},f.$$arity=-1),k.$alias_method("titlecase","titleize"),e.defn(k,"$underscore",p=function(){var t=this;return e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$underscore(t)},p.$$arity=0),e.defn(k,"$dasherize",d=function(){var t=this;return e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$dasherize(t)},d.$$arity=0),e.defn(k,"$demodulize",v=function(){var t=this;return e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$demodulize(t)},v.$$arity=0),e.defn(k,"$deconstantize",h=function(){var t=this;return e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$deconstantize(t)},h.$$arity=0),e.defn(k,"$tableize",y=function(){var t=this;return e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$tableize(t)},y.$$arity=0),e.defn(k,"$classify",m=function(){var t=this;return e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$classify(t)},m.$$arity=0),e.defn(k,"$humanize",g=function(t){var n,r,a=this;if(null==t||!t.$$is_hash){if(null!=t)throw e.ArgumentError.$new("expected kwargs");t=o([],{})}return null==(n=t.$$smap.capitalize)&&(n=!0),null==(r=t.$$smap.keep_id_suffix)&&(r=!1),e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$humanize(a,o(["capitalize","keep_id_suffix"],{capitalize:n,keep_id_suffix:r}))},g.$$arity=-1),e.defn(k,"$upcase_first",b=function(){var t=this;return e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$upcase_first(t)},b.$$arity=0),e.defn(k,"$foreign_key",w=function(t){var n=this;return null==t&&(t=!0),e.const_get_qualified(e.const_get_relative(O,"ActiveSupport"),"Inflector").$foreign_key(n,t)},w.$$arity=-1),r&&"foreign_key"}(n[0],0,n)},Opal.modules["active_support/inflector"]=function(e){var t=e.top;e.nil,e.breaker,e.slice;return e.add_stubs(["$require"]),t.$require("active_support/inflector/inflections"),t.$require("active_support/inflector/methods"),t.$require("active_support/inflections"),t.$require("active_support/core_ext/string/inflections")},Opal.modules["active_support/core_ext/module/introspection"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}var n=e.top,r=[],a=e.nil,i=(e.breaker,e.slice,e.klass),o=e.truthy,$=e.gvars;return e.add_stubs(["$require","$=~","$name","$freeze","$parent_name","$constantize","$split","$empty?","$<<","$*","$pop","$include?","$constants"]),n.$require("active_support/inflector"),function(n,$super,r){function s(){}var c,l,u,_,f=s=i(n,null,"Module",s),p=f.$$proto,d=[f].concat(r);return p.parent_name=a,e.defn(f,"$parent_name",c=function(){var e,t,n=this;return o(null!=(e=n.parent_name)&&e!==a?"instance-variable":a)?n.parent_name:n.parent_name=o(n.$name()["$=~"](/::[^:]+$/))?((t=$["~"])===a?a:t.$pre_match()).$freeze():a},c.$$arity=0),e.defn(f,"$parent",l=function(){var t=this;return o(t.$parent_name())?e.const_get_qualified(e.const_get_relative(d,"ActiveSupport"),"Inflector").$constantize(t.$parent_name()):e.const_get_relative(d,"Object")},l.$$arity=0),e.defn(f,"$parents",u=function(){var n=this,r=a,i=a;if(r=[],o(n.$parent_name()))for(i=n.$parent_name().$split("::");!o(i["$empty?"]());)r["$<<"](e.const_get_qualified(e.const_get_relative(d,"ActiveSupport"),"Inflector").$constantize(t(i,"::"))),i.$pop();return o(r["$include?"](e.const_get_relative(d,"Object")))||r["$<<"](e.const_get_relative(d,"Object")),r},u.$$arity=0),e.defn(f,"$local_constants",_=function(){return this.$constants(!1)},_.$$arity=0),a&&"local_constants"}(r[0],0,r)},Opal.modules["active_support/core_ext/module/delegation"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.klass),i=e.truthy,o=e.send,$=e.range;return e.add_stubs(["$pop","$is_a?","$[]","$raise","$values_at","$==","$=~","$to_s","$each","$+","$lambda","$start_with?","$__send__","$new","$inspect","$define_method","$to_proc"]),function(n,$super,s){function c(){}var l,u=c=a(n,null,"Module",c),_=(u.$$proto,[u].concat(s));return function(e,$super,t){function n(){}var r=n=a(e,$super,"DelegationError",n);r.$$proto,[r].concat(t)}(_[0],e.const_get_relative(_,"NoMethodError"),_),e.defn(u,"$delegate",l=function(){var n,a,s,c,l=this,u=r,f=r,p=r,d=r,v=r,h=arguments.length,y=h-0;y<0&&(y=0),c=new Array(y);for(var m=0;mt:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.klass),o=e.truthy,$=e.hash2;return e.add_stubs(["$>","$length","$dup","$[]","$-","$rindex"]),function(r,$super,s){function c(){}var l,u=c=i(r,null,"String",c);u.$$proto,[u].concat(s);return e.defn(u,"$truncate",l=function(e,r){var i,s=this,c=a,l=a,u=a;return null==r&&(r=$([],{})),o(t(s.$length(),e))?(c=o(i=r["$[]"]("omission"))?i:"...",l=n(e,c.$length()),u=o(r["$[]"]("separator"))&&o(i=s.$rindex(r["$[]"]("separator"),l))?i:l,""+s["$[]"](0,u)+c):s.$dup()},l.$$arity=-2),a&&"truncate"}(r[0],0,r)},Opal.modules["active_support/core_ext/string"]=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.klass);return e.add_stubs(["$require","$gsub","$strip","$downcase"]),t.$require("active_support/core_ext/string/filters"),t.$require("active_support/core_ext/string/inflections"),function(t,$super,n){function i(){}var o,$=i=a(t,null,"String",i);$.$$proto,[$].concat(n);return e.defn($,"$parameterize",o=function(){return this.$downcase().$strip().$gsub(/\W+/,"-")},o.$$arity=0),r&&"parameterize"}(n[0],0,n)},Opal.modules["active_support/core_ext"]=function(e){var t=e.top;e.nil,e.breaker,e.slice;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/array"),t.$require("active_support/core_ext/class"),t.$require("active_support/core_ext/enumerable"),t.$require("active_support/core_ext/hash"),t.$require("active_support/core_ext/integer"),t.$require("active_support/core_ext/kernel"),t.$require("active_support/core_ext/module"),t.$require("active_support/core_ext/numeric"),t.$require("active_support/core_ext/object"),t.$require("active_support/core_ext/string")},Opal.modules.active_support=function(e){var t=e.top;e.nil,e.breaker,e.slice;return e.add_stubs(["$require"]),t.$require("active_support/core_ext")},Opal.modules.time=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.klass);return e.add_stubs(["$strftime"]),function(t,$super,a){function i(){}var o,$,s=i=r(t,null,"Time",i);s.$$proto,[s].concat(a);return e.defs(s,"$parse",o=function(e){return new Date(Date.parse(e))},o.$$arity=1),e.defn(s,"$iso8601",$=function(){return this.$strftime("%FT%T%z")},$.$$arity=0),n&&"iso8601"}(t[0],0,t)},Opal.modules.date=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e","$nonzero?","$d","$zero?","$new","$class","$-@","$+@","$===","$coerce","$==","$>","$+","$allocate","$join","$compact","$map","$to_proc","$downcase","$wrap","$raise","$clone","$jd","$>>","$wday","$-","$to_s","$alias_method","$to_i","$<","$*","$reverse","$step","$abs","$each"]),function(o,$super,u){function _(){}function f(e,t){return[31,e%4==0&&e%100!=0||e%400==0?29:28,31,30,31,30,31,31,30,31,30,31][t]}var p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M,N,T,C,I,D,H,z,P,R,j,B,L,U,F,W,Y,G,K,X,V=_=s(o,null,"Date",_),J=V.$$proto,Z=[V].concat(u);J.date=$,V.$include(e.const_get_relative(Z,"Comparable")),function(n,$super,r){function a(){}var i,o,u,_,f,p,d,v,h,y,m,g,b=a=s(n,$super,"Infinity",a),w=b.$$proto,k=[b].concat(r);w.d=$,b.$include(e.const_get_relative(k,"Comparable")),e.defn(b,"$initialize",i=function(e){return null==e&&(e=1),this.d=e["$<=>"](0)},i.$$arity=-1),e.defn(b,"$d",o=function(){return this.d},o.$$arity=0),e.defn(b,"$zero?",u=function(){return!1},u.$$arity=0),e.defn(b,"$finite?",_=function(){return!1},_.$$arity=0),e.defn(b,"$infinite?",f=function(){return this.$d()["$nonzero?"]()},f.$$arity=0),e.defn(b,"$nan?",p=function(){return this.$d()["$zero?"]()},p.$$arity=0),e.defn(b,"$abs",d=function(){return this.$class().$new()},d.$$arity=0),e.defn(b,"$-@",v=function(){var e=this;return e.$class().$new(e.$d()["$-@"]())},v.$$arity=0),e.defn(b,"$+@",h=function(){var e=this;return e.$class().$new(e.$d()["$+@"]())},h.$$arity=0),e.defn(b,"$<=>",y=function(t){var n,r,a=this,i=$,o=$,s=$;if(i=t,e.const_get_relative(k,"Infinity")["$==="](i))return a.$d()["$<=>"](t.$d());if(e.const_get_relative(k,"Numeric")["$==="](i))return a.$d();try{return r=t.$coerce(a),o=null==(n=e.to_ary(r))[0]?$:n[0],s=null==n[1]?$:n[1],o["$<=>"](s)}catch(c){if(!e.rescue(c,[e.const_get_relative(k,"NoMethodError")]))throw c;e.pop_exception()}return $},y.$$arity=1),e.defn(b,"$coerce",m=function(t){var n=this,r=m.$$p,a=$,i=$,o=$,s=$;for(r&&(m.$$p=null),o=0,s=arguments.length,i=new Array(s);o=69?1900:2e3}}function l(t){return function(n){var r=t(n).toLowerCase();return e.const_get_relative(s,"ABBR_MONTHNAMES").indexOf(r)+1}}function u(e){return function(t){var n=e(t);return parseInt(n,10)}}function _(e){return function(t){var r=e(t);return n?r+2e3:r}}function f(t){return function(n){var r=t(n),a=c(e.const_get_relative(s,"DAYNAMES"),"map",[],"downcase".$to_proc()).indexOf(r.$downcase());return g-k+a}}function p(t){return function(n){var r=t(n);return c(e.const_get_relative(s,"MONTHNAMES").$compact(),"map",[],"downcase".$to_proc()).indexOf(r.$downcase())+1}}var d=this;null==n&&(n=!0);var v,h,y,m=new Date,g=m.getDate(),b=m.getMonth(),w=m.getFullYear(),k=m.getDay(),O=e.const_get_relative(s,"MONTHNAMES").$compact().$join("|"),q=[{regexp:/^(\d{2})$/,year:w,month:b,day:u(r)},{regexp:/^(\d{3})$/,year:w,month:0,day:u(r)},{regexp:/^(\d{2})(\d{2})$/,year:w,month:u(r),day:u(a)},{regexp:/^(\d{2})(\d{3})$/,year:$(u(r)),month:0,day:u(a)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:$(u(r)),month:u(a),day:u(i)},{regexp:/^(\d{4})(\d{3})$/,year:u(r),month:0,day:u(a)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:u(r),month:u(a),day:u(i)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{3,4})$/,year:u(a),month:l(r),day:1},{regexp:/^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i,year:u(i),month:l(a),day:u(r)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i,year:u(i),month:l(r),day:u(a)},{regexp:/^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i,year:u(r),month:l(a),day:u(i)},{regexp:/^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:u(r),month:u(a),day:u(i)},{regexp:/^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:_(u(r)),month:u(a),day:u(i)},{regexp:/^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/,year:u(i),month:u(a),day:u(r)},{regexp:new RegExp("^("+e.const_get_relative(s,"DAYNAMES").$join("|")+")$","i"),year:w,month:b,day:f(r)},{regexp:new RegExp("^("+O+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:u(o),month:p(r),day:u(a)},{regexp:new RegExp("^("+O+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:w,month:p(r),day:u(a)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+O+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:u(o),month:p(i),day:u(r)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+O+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:u(r),month:p(a),day:u(i)}];for(h=0;h=0&&E<=1970&&S.setFullYear(E),d.$wrap(S)}return d.$raise(e.const_get_relative(s,"ArgumentError"),"invalid date")},a.$$arity=-2),e.defn(t,"$today",i=function(){return this.$wrap(new Date)},i.$$arity=0),e.defn(t,"$gregorian_leap?",o=function(e){return new Date(e,1,29).getMonth()-1==0},o.$$arity=1)}(e.get_singleton_class(V),Z),e.defn(V,"$initialize",p=function(t,n,r,a){var i=this;return null==t&&(t=-4712),null==n&&(n=1),null==r&&(r=1),null==a&&(a=e.const_get_relative(Z,"ITALY")),i.date=new Date(t,n-1,r)},p.$$arity=-1),e.defn(V,"$-",d=function(t){var n=this;if(t.$$is_number){var r=n.$clone();return r.date.setDate(n.date.getDate()-t),r}if(t.date)return Math.round((n.date-t.date)/864e5);n.$raise(e.const_get_relative(Z,"TypeError"))},d.$$arity=1),e.defn(V,"$+",v=function(t){var n=this;if(t.$$is_number){var r=n.$clone();return r.date.setDate(n.date.getDate()+t),r}n.$raise(e.const_get_relative(Z,"TypeError"))},v.$$arity=1),e.defn(V,"$<",h=function(e){var t=this.date,n=e.date;return t.setHours(0,0,0,0),n.setHours(0,0,0,0),t",m=function(e){var t=this.date,n=e.date;return t.setHours(0,0,0,0),n.setHours(0,0,0,0),t>n},m.$$arity=1),e.defn(V,"$>=",g=function(e){var t=this.date,n=e.date;return t.setHours(0,0,0,0),n.setHours(0,0,0,0),t>=n},g.$$arity=1),e.defn(V,"$<=>",b=function(t){var n=this;if(t.$$is_number)return n.$jd()["$<=>"](t);if(e.const_get_relative(Z,"Date")["$==="](t)){var r=n.date,a=t.date;return r.setHours(0,0,0,0),a.setHours(0,0,0,0),ra?1:0}return $},b.$$arity=1),e.defn(V,"$>>",w=function(t){var n=this;t.$$is_number||n.$raise(e.const_get_relative(Z,"TypeError"));var r=n.$clone(),a=r.date,i=a.getDate();return a.setDate(1),a.setMonth(a.getMonth()+t),a.setDate(Math.min(i,f(a.getFullYear(),a.getMonth()))),r},w.$$arity=1),e.defn(V,"$<<",k=function(t){var n=this;return t.$$is_number||n.$raise(e.const_get_relative(Z,"TypeError")),n["$>>"](-t)},k.$$arity=1),e.alias(V,"eql?","=="),e.defn(V,"$clone",O=function(){var t=this;return e.const_get_relative(Z,"Date").$wrap(new Date(t.date.getTime()))},O.$$arity=0),e.defn(V,"$day",q=function(){return this.date.getDate()},q.$$arity=0),e.defn(V,"$friday?",E=function(){return this.$wday()["$=="](5)},E.$$arity=0),e.defn(V,"$jd",x=function(){var e,t,n,r,a,i=this,o=i.date.getMonth()+1,$=i.date.getDate(),s=i.date.getFullYear(),c=12;return c=c+0/60+0/3600,e=1,s<=1585&&(e=0),a=-1*Math.floor(7*(Math.floor((o+9)/12)+s)/4),t=1,o-9<0&&(t=-1),n=Math.abs(o-9),r=Math.floor(s+t*Math.floor(n/7)),r=-1*Math.floor(3*(Math.floor(r/100)+1)/4),a=(a=a+Math.floor(275*o/9)+$+e*r)+1721027+2*e+367*s-.5,a+=c/24},x.$$arity=0),e.defn(V,"$julian?",A=function(){return this.date=t:e["$>="](t)}var r=e.top,a=[],i=e.nil,o=(e.breaker,e.slice,e.module),$=e.truthy,s=e.send,c=e.range,l=e.hash2,u=e.klass,_=e.gvars;return e.add_stubs(["$try_convert","$native?","$respond_to?","$to_n","$raise","$inspect","$Native","$proc","$map!","$end_with?","$define_method","$[]","$convert","$call","$to_proc","$new","$each","$native_reader","$native_writer","$extend","$is_a?","$map","$alias_method","$to_a","$_Array","$include","$method_missing","$bind","$instance_method","$slice","$-","$length","$[]=","$enum_for","$===","$>=","$<<","$each_pair","$_initialize","$name","$exiting_mid","$native_module"]),function(t,n){var r,a,u,_,f,p,d,v,h=o(t,"Native"),y=(h.$$proto,[h].concat(n));e.defs(h,"$is_a?",r=function(e,t){var n=this;try{return e instanceof n.$try_convert(t)}catch(r){return!1}},r.$$arity=2),e.defs(h,"$try_convert",a=function(e,t){return null==t&&(t=i),this["$native?"](e)?e:e["$respond_to?"]("to_n")?e.$to_n():t},a.$$arity=-2),e.defs(h,"$convert",u=function(t){var n=this;return n["$native?"](t)?t:t["$respond_to?"]("to_n")?t.$to_n():void n.$raise(e.const_get_relative(y,"ArgumentError"),t.$inspect()+" isn't native")},u.$$arity=1),e.defs(h,"$call",_=function(e,t){var n,r=this,a=_.$$p,o=a||i,$=arguments.length,s=$-2;s<0&&(s=0),n=new Array(s);for(var c=2;c<$;c++)n[c-2]=arguments[c];a&&(_.$$p=null);var l=e[t];if(l instanceof Function){for(var u=new Array(n.length),f=0,p=n.length;f"},O.$$arity=0)}(e.const_get_relative(a,"Native"),e.const_get_relative(a,"BasicObject"),a),function(r,$super,a){function o(){}var c,_,f,p,d,v,h,y=o=u(r,null,"Array",o),m=y.$$proto,g=[y].concat(a);m.named=m.native=m.get=m.block=m.set=m.length=i,y.$include(e.const_get_relative(g,"Native")),y.$include(e.const_get_relative(g,"Enumerable")),e.defn(y,"$initialize",c=function(t,n){var r,a=this,o=c.$$p,u=o||i;return null==n&&(n=l([],{})),o&&(c.$$p=null),s(a,e.find_super_dispatcher(a,"initialize",c,!1),[t],null),a.get=$(r=n["$[]"]("get"))?r:n["$[]"]("access"),a.named=n["$[]"]("named"),a.set=$(r=n["$[]"]("set"))?r:n["$[]"]("access"),a.length=$(r=n["$[]"]("length"))?r:"length",a.block=u,$(null==a.$length())?a.$raise(e.const_get_relative(g,"ArgumentError"),"no length found on the array-like object"):i},c.$$arity=-2),e.defn(y,"$each",_=function(){var t=this,n=_.$$p,r=n||i;if(n&&(_.$$p=null),!$(r))return t.$enum_for("each");for(var a=0,o=t.$length();a=n?r:te(t[e])},w.$$arity=1),e.defn(Q,"$class_name",k=function(){var e=this[0];return e&&e.className||""},k.$$arity=0),e.defn(Q,"$class_name=",O=function(e){for(var t=this,n=0,r=t.length;n0?e[0].tagName.toLowerCase():r},H.$$arity=0),e.defn(Q,"$inspect",z=function(){var e=this;if(e[0]===document)return"#";if(e[0]===window)return"#";for(var t,n,r,a=[],i=0,o=e.length;i")}return"#"},z.$$arity=0),e.defn(Q,"$to_s",P=function(){for(var e,t=this,n=[],r=0,a=t.length;r0},j.$$arity=0),e.defn(Q,"$empty?",B=function(){return 0===this.length},B.$$arity=0),e.alias(Q,"empty?","none?"),e.defn(Q,"$on",L=function(t,n){var a=this,i=L.$$p,o=i||r;null==n&&(n=r),i&&(L.$$p=null);var $=0!==o.$arity(),s=function(){for(var t=new Array(arguments.length),n=0,r=t.length;n>","$exception?","$[]","$resolved?","$rejected?","$error","$include?","$action","$realized?","$raise","$^","$call","$resolve!","$exception!","$any?","$each","$reject!","$there_can_be_only_one!","$then","$to_proc","$fail","$always","$trace","$class","$object_id","$+","$inspect","$act?","$nil?","$prev","$push","$concat","$it","$proc","$reverse","$pop","$<=","$length","$shift","$-","$wait","$map","$reduce","$try","$tap","$all?","$find"]),function(a,$super,l){function u(){}var _,f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M,N,T,C,I,D,H,z,P,R,j,B=u=o(a,null,"Promise",u),L=B.$$proto,U=[B].concat(l);return L.value=L.action=L.exception=L.realized=L.next=L.delayed=L.error=L.prev=i,e.defs(B,"$value",_=function(e){return this.$new().$resolve(e)},_.$$arity=1),e.defs(B,"$error",f=function(e){return this.$new().$reject(e)},f.$$arity=1),e.defs(B,"$when",p=function(){var t,n=arguments.length,r=n-0;r<0&&(r=0),t=new Array(r) -;for(var a=0;a>"](e),e},k.$$arity=1),e.defn(B,"$<<",O=function(e){var t=this;return t.prev=e,t},O.$$arity=1),e.defn(B,"$>>",q=function(t){var n,r=this;return r.next["$<<"](t),s(r["$exception?"]())?t.$reject(r.delayed["$[]"](0)):s(r["$resolved?"]())?t.$resolve(s(r.delayed)?r.delayed["$[]"](0):r.$value()):s(r["$rejected?"]())&&(s(s(n=r.action["$has_key?"]("failure")["$!"]())?n:e.const_get_relative(U,"Promise")["$==="](s(r.delayed)?r.delayed["$[]"](0):r.error))?t.$reject(s(r.delayed)?r.delayed["$[]"](0):r.$error()):s(t.$action()["$include?"]("always"))&&t.$reject(s(r.delayed)?r.delayed["$[]"](0):r.$error())),r},q.$$arity=1),e.defn(B,"$resolve",E=function(t){var n,r=this,a=i,o=i;if(null==t&&(t=i),s(r["$realized?"]())&&r.$raise(e.const_get_relative(U,"ArgumentError"),"the promise has already been realized"),s(e.const_get_relative(U,"Promise")["$==="](t)))return t["$<<"](r.prev)["$^"](r);try{s(a=s(n=r.action["$[]"]("success"))?n:r.action["$[]"]("always"))&&(t=a.$call(t)),r["$resolve!"](t)}catch($){if(!e.rescue($,[e.const_get_relative(U,"Exception")]))throw $;o=$;try{r["$exception!"](o)}finally{e.pop_exception()}}return r},E.$$arity=-1),e.defn(B,"$resolve!",x=function(e){var t,n=this;return n.realized="resolve",n.value=e,s(n.next["$any?"]())?c(n.next,"each",[],((t=function(n){t.$$s;return null==n&&(n=i),n.$resolve(e)}).$$s=n,t.$$arity=1,t)):n.delayed=[e]},x.$$arity=1),e.defn(B,"$reject",A=function(t){var n,r=this,a=i,o=i;if(null==t&&(t=i),s(r["$realized?"]())&&r.$raise(e.const_get_relative(U,"ArgumentError"),"the promise has already been realized"),s(e.const_get_relative(U,"Promise")["$==="](t)))return t["$<<"](r.prev)["$^"](r);try{s(a=s(n=r.action["$[]"]("failure"))?n:r.action["$[]"]("always"))&&(t=a.$call(t)),s(r.action["$has_key?"]("always"))?r["$resolve!"](t):r["$reject!"](t)}catch($){if(!e.rescue($,[e.const_get_relative(U,"Exception")]))throw $;o=$;try{r["$exception!"](o)}finally{e.pop_exception()}}return r},A.$$arity=-1),e.defn(B,"$reject!",S=function(e){var t,n=this;return n.realized="reject",n.error=e,s(n.next["$any?"]())?c(n.next,"each",[],((t=function(n){t.$$s;return null==n&&(n=i),n.$reject(e)}).$$s=n,t.$$arity=1,t)):n.delayed=[e]},S.$$arity=1),e.defn(B,"$exception!",M=function(e){var t=this;return t.exception=!0,t["$reject!"](e)},M.$$arity=1),e.defn(B,"$then",N=function(){var t=this,n=N.$$p,r=n||i;return n&&(N.$$p=null),t["$^"](e.const_get_relative(U,"Promise").$new($(["success"],{success:r})))},N.$$arity=0),e.defn(B,"$then!",T=function(){var e=this,t=T.$$p,n=t||i;return t&&(T.$$p=null),e["$there_can_be_only_one!"](),c(e,"then",[],n.$to_proc())},T.$$arity=0),e.alias(B,"do","then"),e.alias(B,"do!","then!"),e.defn(B,"$fail",C=function(){var t=this,n=C.$$p,r=n||i;return n&&(C.$$p=null),t["$^"](e.const_get_relative(U,"Promise").$new($(["failure"],{failure:r})))},C.$$arity=0),e.defn(B,"$fail!",I=function(){var e=this,t=I.$$p,n=t||i;return t&&(I.$$p=null),e["$there_can_be_only_one!"](),c(e,"fail",[],n.$to_proc())},I.$$arity=0),e.alias(B,"rescue","fail"),e.alias(B,"catch","fail"),e.alias(B,"rescue!","fail!"),e.alias(B,"catch!","fail!"),e.defn(B,"$always",D=function(){var t=this,n=D.$$p,r=n||i;return n&&(D.$$p=null),t["$^"](e.const_get_relative(U,"Promise").$new($(["always"],{always:r})))},D.$$arity=0),e.defn(B,"$always!",H=function(){var e=this,t=H.$$p,n=t||i;return t&&(H.$$p=null),e["$there_can_be_only_one!"](),c(e,"always",[],n.$to_proc())},H.$$arity=0),e.alias(B,"finally","always"),e.alias(B,"ensure","always"),e.alias(B,"finally!","always!"),e.alias(B,"ensure!","always!"),e.defn(B,"$trace",z=function(t){var n=this,r=z.$$p,a=r||i;return null==t&&(t=i),r&&(z.$$p=null),n["$^"](e.const_get_relative(U,"Trace").$new(t,a))},z.$$arity=-1),e.defn(B,"$trace!",P=function(){var t,n=this,r=P.$$p,a=r||i,o=arguments.length,$=o-0;$<0&&($=0),t=new Array($);for(var s=0;s> "+n.next.$inspect())),r=s(n["$realized?"]())?t(r,": "+(s(e=n.value)?e:n.error).$inspect()+">"):t(r,">")},j.$$arity=0),function(t,$super,a){function l(){}var u,_,f=l=o(t,$super,"Trace",l),p=(f.$$proto,[f].concat(a));e.defs(f,"$it",u=function(e){var t,n=this,r=i,a=i;return r=[],s(s(t=e["$act?"]())?t:e.$prev()["$nil?"]())&&r.$push(e.$value()),s(a=e.$prev())?r.$concat(n.$it(a)):r},u.$$arity=1),e.defn(f,"$initialize",_=function(t,a){var o,l=this,u=_.$$p;return u&&(_.$$p=null),l.depth=t,c(l,e.find_super_dispatcher(l,"initialize",_,!1),[$(["success"],{success:c(l,"proc",[],(o=function(){var $,l=o.$$s||this,u=i;return(u=e.const_get_relative(p,"Trace").$it(l).$reverse()).$pop(),s(s($=t)?n(t,u.$length()):$)&&u.$shift(r(u.$length(),t)),c(a,"call",e.to_a(u))},o.$$s=l,o.$$arity=0,o))})],null)},_.$$arity=2)}(U[0],B,U),function(t,$super,n){function r(){}var a,$,l,u,_,f,p,d=r=o(t,$super,"When",r),v=d.$$proto,h=[d].concat(n);return v.wait=i,e.defn(d,"$initialize",a=function(t){var n,r=this,o=a.$$p;return null==t&&(t=[]),o&&(a.$$p=null),c(r,e.find_super_dispatcher(r,"initialize",a,!1),[],null),r.wait=[],c(t,"each",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=i),t.$wait(e)}).$$s=r,n.$$arity=1,n))},a.$$arity=-1),e.defn(d,"$each",$=function(){var t,n=this,r=$.$$p,a=r||i;return r&&($.$$p=null),s(a)||n.$raise(e.const_get_relative(h,"ArgumentError"),"no block given"),c(n,"then",[],((t=function(e){t.$$s;return null==e&&(e=i),c(e,"each",[],a.$to_proc())}).$$s=n,t.$$arity=1,t))},$.$$arity=0),e.defn(d,"$collect",l=function(){var t,n=this,r=l.$$p,a=r||i;return r&&(l.$$p=null),s(a)||n.$raise(e.const_get_relative(h,"ArgumentError"),"no block given"),c(n,"then",[],((t=function(n){t.$$s;return null==n&&(n=i),e.const_get_relative(h,"When").$new(c(n,"map",[],a.$to_proc()))}).$$s=n,t.$$arity=1,t))},l.$$arity=0),e.defn(d,"$inject",u=function(){var t,n,r=this,a=u.$$p,o=a||i,$=arguments.length,s=$-0;s<0&&(s=0),n=new Array(s);for(var l=0;l<$;l++)n[l-0]=arguments[l];return a&&(u.$$p=null),c(r,"then",[],((t=function(r){t.$$s;return null==r&&(r=i),c(r,"reduce",e.to_a(n),o.$to_proc())}).$$s=r,t.$$arity=1,t))},u.$$arity=-1),e.alias(d,"map","collect"),e.alias(d,"reduce","inject"),e.defn(d,"$wait",_=function(t){var n,r=this;return s(e.const_get_relative(h,"Promise")["$==="](t))||(t=e.const_get_relative(h,"Promise").$value(t)),s(t["$act?"]())&&(t=t.$then()),r.wait["$<<"](t),c(t,"always",[],((n=function(){var e=n.$$s||this;return null==e.next&&(e.next=i),s(e.next["$any?"]())?e.$try():i}).$$s=r,n.$$arity=0,n)),r},_.$$arity=1),e.alias(d,"and","wait"),e.defn(d,"$>>",f=function(){var t,n=this,r=f.$$p,a=i,o=i,$=i;for(r&&(f.$$p=null),o=0,$=arguments.length,a=new Array($);o<$;o++)a[o]=arguments[o];return c(c(n,e.find_super_dispatcher(n,">>",f,!1),a,r),"tap",[],((t=function(){return(t.$$s||this).$try()}).$$s=n,t.$$arity=0,t))},f.$$arity=-1),e.defn(d,"$try",p=function(){var e=this,t=i;return s(c(e.wait,"all?",[],"realized?".$to_proc()))?s(t=c(e.wait,"find",[],"rejected?".$to_proc()))?e.$reject(t.$error()):e.$resolve(c(e.wait,"map",[],"value".$to_proc())):i},p.$$arity=0),i&&"try"}(U[0],B,U)}(a[0],0,a)},Opal.modules["opal/jquery/http"]=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.klass),i=e.send,o=e.hash2,$=e.truthy;return e.add_stubs(["$require","$to_n","$each","$define_singleton_method","$send","$new","$define_method","$attr_reader","$delete","$update","$upcase","$succeed","$fail","$promise","$parse","$private","$tap","$proc","$ok?","$resolve","$reject","$from_object","$call"]),t.$require("json"),t.$require("native"),t.$require("promise"),t.$require("opal/jquery/constants"),function(t,$super,n){function s(){}var c,l,u,_,f,p,d,v,h,y,m,g,b=s=a(t,null,"HTTP",s),w=b.$$proto,k=[b].concat(n);w.settings=w.payload=w.url=w.method=w.handler=w.json=w.body=w.ok=w.xhr=w.promise=w.status_code=r;var O=e.const_get_relative(k,"JQUERY_SELECTOR").$to_n();return e.const_set(k[0],"ACTIONS",["get","post","put","delete","patch","head"]),i(e.const_get_relative(k,"ACTIONS"),"each",[],((c=function(e){var t,n,a=c.$$s||this;return null==e&&(e=r),i(a,"define_singleton_method",[e],((t=function(n,a){var i,$=t.$$s||this;return(i=t.$$p||r)&&(t.$$p=null),null==a&&(a=o([],{})),null==n&&(n=r),$.$new().$send(e,n,a,i)}).$$s=a,t.$$arity=-2,t)),i(a,"define_method",[e],((n=function(t,a){var i,$=n.$$s||this;return(i=n.$$p||r)&&(n.$$p=null),null==a&&(a=o([],{})),null==t&&(t=r),$.$send(e,t,a,i)}).$$s=a,n.$$arity=-2,n))}).$$s=b,c.$$arity=1,c)),e.defs(b,"$setup",l=function(){return e.const_get_relative(k,"Hash").$new(O.ajaxSetup())},l.$$arity=0),e.defs(b,"$setup=",u=function(e){return O.ajaxSetup(e.$to_n())},u.$$arity=1),b.$attr_reader("body","error_message","method","status_code","url","xhr"),e.defn(b,"$initialize",_=function(){var e=this;return e.settings=o([],{}),e.ok=!0},_.$$arity=0),e.defn(b,"$send",f=function(e,t,n,a){var i,o=this,s=r,c=r;return o.method=e,o.url=t,o.payload=n.$delete("payload"),o.handler=a,o.settings.$update(n),s=(i=[o.settings.$to_n(),o.payload])[0],"string"==typeof(c=i[1])?s.data=c:c!=r&&(s.data=c.$to_json(),s.contentType="application/json"),s.url=o.url,s.type=o.method.$upcase(),s.success=function(e,t,n){return o.$succeed(e,t,n)},s.error=function(e,t,n){return o.$fail(e,t,n)},O.ajax(s),$(o.handler)?o:o.$promise()},f.$$arity=4),e.defn(b,"$json",p=function(){var t,n=this;return n.json=$(t=n.json)?t:e.const_get_relative(k,"JSON").$parse(n.body)},p.$$arity=0),e.defn(b,"$ok?",d=function(){return this.ok},d.$$arity=0),e.defn(b,"$get_header",v=function(e){var t=this.xhr.getResponseHeader(e);return null===t?r:t},v.$$arity=1),e.defn(b,"$inspect",h=function(){var e=this;return"#"},h.$$arity=0),b.$private(),e.defn(b,"$promise",y=function(){var t,n=this;return $(n.promise)?n.promise:n.promise=i(e.const_get_relative(k,"Promise").$new(),"tap",[],((t=function(e){var n,a=t.$$s||this;return null==e&&(e=r),a.handler=i(a,"proc",[],((n=function(t){n.$$s;return null==t&&(t=r),$(t["$ok?"]())?e.$resolve(t):e.$reject(t)}).$$s=a,n.$$arity=1,n))}).$$s=n,t.$$arity=1,t))},y.$$arity=0),e.defn(b,"$succeed",m=function(t,n,a){var i=this;return i.body=t,i.xhr=a,i.status_code=a.status,"object"==typeof t&&(i.json=e.const_get_relative(k,"JSON").$from_object(t)),$(i.handler)?i.handler.$call(i):r},m.$$arity=3),e.defn(b,"$fail",g=function(e){var t=this;return t.body=e.responseText,t.xhr=e,t.status_code=e.status,t.ok=!1,$(t.handler)?t.handler.$call(t):r},g.$$arity=3),r&&"fail"}(n[0],0,n)},Opal.modules["opal/jquery/kernel"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module);return function(t,a){var i,o=r(t,"Kernel");o.$$proto,[o].concat(a);e.defn(o,"$alert",i=function(e){return alert(e),n},i.$$arity=1)}(t[0],t)},Opal.modules["opal/jquery"]=function(e){var t=e.top,n=[],r=e.nil;e.breaker,e.slice;return e.add_stubs(["$==","$require"]),e.const_get_relative(n,"RUBY_ENGINE")["$=="]("opal")?(t.$require("opal/jquery/window"),t.$require("opal/jquery/document"),t.$require("opal/jquery/element"),t.$require("opal/jquery/event"),t.$require("opal/jquery/http"),t.$require("opal/jquery/kernel")):r},Opal.modules["opal-jquery"]=function(e){var t=e.top;e.nil,e.breaker,e.slice;return e.add_stubs(["$require"]),t.$require("opal/jquery")},Opal.modules["paggio/utils"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.klass),a=e.module,i=e.send,o=e.truthy;return e.add_stubs(["$size","$min","$scan","$gsub","$proc","$===","$merge","$to_proc","$merge!"]),function(t,$super,$){function s(){}var c=s=r(t,null,"Paggio",s),l=(c.$$proto,[c].concat($));return function(t,r){var $,s,c,l=a(t,"Utils"),u=(l.$$proto,[l].concat(r));e.defs(l,"$heredoc",$=function(t){var r=n;return r=function(){try{return t.$scan(/^[ \t]*(?=\S)/).$min().$size()}catch(n){if(!e.rescue(n,[e.const_get_relative(u,"StandardError")]))throw n;try{return 0}finally{e.pop_exception()}}}(),t.$gsub(new RegExp("^[ \\t]{"+r+"}"),"")},$.$$arity=1),e.defs(l,"$deep_merge",s=function(t,r){var a,$=this,s=n;return s=i($,"proc",[],((a=function(t,r,$){var c;a.$$s;return null==t&&(t=n),null==r&&(r=n),null==$&&($=n),o(o(c=e.const_get_relative(u,"Hash")["$==="](r))?e.const_get_relative(u,"Hash")["$==="]($):c)?i(r,"merge",[$],s.$to_proc()):$}).$$s=$,a.$$arity=3,a)),i(t,"merge",[r],s.$to_proc())},s.$$arity=2),e.defs(l,"$deep_merge!",c=function(t,r){var a,$=this,s=n;return s=i($,"proc",[],((a=function(t,r,$){var c;a.$$s;return null==t&&(t=n),null==r&&(r=n),null==$&&($=n),o(o(c=e.const_get_relative(u,"Hash")["$==="](r))?e.const_get_relative(u,"Hash")["$==="]($):c)?(i(r,"merge!",[$],s.$to_proc()),r):$}).$$s=$,a.$$arity=3,a)),i(t,"merge!",[r],s.$to_proc())},c.$$arity=2)}(l[0],l)}(t[0],0,t)},Opal.modules["paggio/html/helpers"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.klass),i=e.send,o=e.truthy;return e.add_stubs(["$define_method","$instance_exec","$to_proc","$do","$defhelper","$[]=","$-"]),function(n,$super,$){function s(){}var c=s=a(n,null,"Paggio",s),l=(c.$$proto,[c].concat($));return function(n,$super,$){function s(){}var c=s=a(n,$super,"HTML",s),l=(c.$$proto,[c].concat($));return function(n,$super,$){function s(){}var c,l,u=s=a(n,$super,"Element",s);u.$$proto,[u].concat($);return e.defs(u,"$defhelper",c=function(t){var n,a=this,$=c.$$p,s=$||r;return $&&(c.$$p=null),i(a,"define_method",[t],((n=function(){var t,a,$=n.$$s||this;(t=n.$$p||r)&&(n.$$p=null);var c=arguments.length,l=c-0;l<0&&(l=0),a=new Array(l);for(var u=0;u>","$extend!","$pop","$join","$heredoc","$defhelper","$map","$empty?","$upcase","$inspect"]),n.$require("paggio/html/element/a"),n.$require("paggio/html/element/base"),n.$require("paggio/html/element/blockquote"),n.$require("paggio/html/element/button"),n.$require("paggio/html/element/canvas"),n.$require("paggio/html/element/embed"),n.$require("paggio/html/element/img"),n.$require("paggio/html/element/input"),n.$require("paggio/html/element/link"),n.$require("paggio/html/element/object"),n.$require("paggio/html/element/option"),n.$require("paggio/html/element/optgroup"),n.$require("paggio/html/element/select"),n.$require("paggio/html/element/td"),function(n,$super,r){function l(){}var u=l=i(n,null,"Paggio",l),_=(u.$$proto,[u].concat(r));return function(n,$super,r){function l(){}var u=l=i(n,$super,"HTML",l),_=(u.$$proto,[u].concat(r));return function(n,$super,r){function l(){}var u,_,f,p,d,v,h,y,m,g,b,w=l=i(n,$super,"Element",l),k=w.$$proto,O=[w].concat(r);return k.children=k.attributes=k.class_names=k.owner=k.name=a,e.defs(w,"$new",u=function(t,n,r){var i=this,c=u.$$p,_=a,f=a,p=a,d=a;for(null==r&&(r=s([],{})),c&&(u.$$p=null),p=0,d=arguments.length,f=new Array(d);p>"](r),$(u)&&o(s.owner,"extend!",[s],u.$to_proc()),s},d.$$arity=-2),e.defn(w,"$[]",v=function(){var t,n=this,r=a,i=arguments.length,o=i-0;o<0&&(o=0),t=new Array(o);for(var s=0;s>",y=function(t){var n=this;return n["$<<"](e.const_get_qualified(e.const_get_qualified("::","Paggio"),"Utils").$heredoc(t.$to_s())),n},y.$$arity=1),o(w,"defhelper",["style"],((m=function(n){var r,i=m.$$s||this,$=a;return null==i.attributes&&(i.attributes=a),null==n&&(n=a),$=["style",o(n,"map",[],(r=function(e,t){r.$$s;return null==e&&(e=a),null==t&&(t=a),e+": "+t},r.$$s=i,r.$$arity=2,r)).$join(";")],o(i.attributes,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=w,m.$$arity=1,m)),o(w,"defhelper",["data"],((g=function(n){var r,i=g.$$s||this;return null==n&&(n=a),o(n,"each",[],((r=function(n,i){var $=r.$$s||this,s=a;return null==$.attributes&&($.attributes=a),null==n&&(n=a),null==i&&(i=a),s=["data-"+n,i.$to_s()],o($.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=i,r.$$arity=2,r))}).$$s=w,g.$$arity=1,g)),e.defn(w,"$inspect",b=function(){var e=this;return $(e.children["$empty?"]())?"#":"#"},b.$$arity=0),a&&"inspect"}(_[0],e.const_get_relative(_,"BasicObject"),_)}(_[0],e.const_get_relative(_,"BasicObject"),_)}(r[0],0,r)},Opal.modules["paggio/html"]=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.klass),i=e.truthy,o=e.send,$=e.range;return e.add_stubs(["$require","$attr_reader","$raise","$==","$arity","$instance_exec","$to_proc","$call","$<<","$first","$===","$instance_eval","$each","$end_with?","$to_s","$empty?","$heredoc","$shift","$new","$[]","$inspect"]),t.$require("paggio/html/helpers"),t.$require("paggio/html/element"),function(t,$super,n){function s(){}var c=s=a(t,null,"Paggio",s),l=(c.$$proto,[c].concat(n));return function(t,$super,n){function s(){}var c,l,u,_,f,p,d,v,h,y=s=a(t,$super,"HTML",s),m=y.$$proto,g=[y].concat(n);return m.current=m.roots=m.version=r,y.$attr_reader("version"),e.defn(y,"$initialize",c=function(t){var n=this,a=c.$$p,$=a||r;return null==t&&(t=5),a&&(c.$$p=null),i($)||e.const_get_qualified("::","Kernel").$raise(e.const_get_qualified("::","ArgumentError"),"no block given"),n.version=t,n.roots=[],n.current=r,$.$arity()["$=="](0)?o(n,"instance_exec",[],$.$to_proc()):$.$call(n)},c.$$arity=-1),e.defn(y,"$<<",l=function(e){var t,n=this;return(i(t=n.current)?t:n.roots)["$<<"](e)},l.$$arity=1),e.defn(y,"$root!",u=function(){return this.roots.$first()},u.$$arity=0),e.defn(y,"$roots!",_=function(){return this.roots},_.$$arity=0),e.defn(y,"$element!",f=function(){return this.current},f.$$arity=0),e.defn(y,"$extend!",p=function(t){var n,a,$=this,s=p.$$p,c=s||r,l=r,u=r;return null==t&&(t=r),s&&(p.$$p=null),l=(n=[$.current,t])[0],$.current=n[1],u=c.$call($),i(e.const_get_qualified("::","String")["$==="](u))&&o($.current,"instance_eval",[],((a=function(){return(a.$$s||this).inner_html=u}).$$s=$,a.$$arity=0,a)),$.current=l,$},p.$$arity=-1),e.defn(y,"$each",d=function(){var e=this,t=d.$$p,n=t||r;return t&&(d.$$p=null),o(e.roots,"each",[],n.$to_proc())},d.$$arity=0),e.defn(y,"$method_missing",v=function(t){var n,a,$,s=this,c=v.$$p,l=c||r,u=r,_=r,f=r,p=r,d=r,h=r,y=r,m=arguments.length,b=m-1;b<0&&(b=0),$=new Array(b);for(var w=1;w":"#"},h.$$arity=0),r&&"inspect"}(l[0],e.const_get_relative(l,"BasicObject"),l)}(n[0],0,n)},Opal.modules["paggio/css/unit"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e/t:e["$/"](t)}var i,o=e.top,$=[],s=e.nil,c=(e.breaker,e.slice,e.klass),l=e.send,u=e.truthy;return e.add_stubs(["$map","$to_proc","$attr_reader","$===","$respond_to?","$raise","$class","$to_u","$new","$==","$convert","$type","$number","$hash","$each","$define_method","$+","$compatible?","$-","$*","$/","$to_i","$to_f","$private","$include?","$class_eval","$old_percent","$match","$[]","$__send__","$downcase"]),function(i,$super,o){function $(){}var _=$=c(i,null,"Paggio",$),f=(_.$$proto,[_].concat(o));(function(i,$super,o){function $(){}var _=$=c(i,$super,"CSS",$),f=(_.$$proto,[_].concat(o));(function(i,$super,o){function $(){}var _,f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M=$=c(i,null,"Unit",$),N=M.$$proto,T=[M].concat(o);N.type=N.number=s,e.const_set(T[0],"TYPES",l(["em","ex","ch","rem","vh","vw","vmin","vmax","px","mm","cm","in","pt","pc","s","deg"],"map",[],"to_sym".$to_proc())),e.const_set(T[0],"COMPATIBLE",l(["in","pt","mm","cm","px","pc"],"map",[],"to_sym".$to_proc())),M.$attr_reader("type","number"),e.defn(M,"$initialize",_=function(e,t){var n=this;return n.number=e,n.type=t},_.$$arity=2),e.defn(M,"$coerce",f=function(e){return[this,e]},f.$$arity=1),e.defn(M,"$==",p=function(t){var n=this;return u(e.const_get_relative(T,"Unit")["$==="](t))||(u(t["$respond_to?"]("to_u"))||n.$raise(e.const_get_relative(T,"TypeError"),"no implicit conversion of "+t.$class()+" into Unit"),t=t.$to_u()),u(e.const_get_relative(T,"Unit")["$==="](t))||(t=e.const_get_relative(T,"Unit").$new(t,n.type)),n.number["$=="](n.$convert(t,n.type))},p.$$arity=1),e.defn(M,"$===",d=function(e){var t=this;return t.type["$=="](e.$type())?t.number["$=="](e.$number()):t.type["$=="](e.$type())},d.$$arity=1),e.alias(M,"eql?","=="),e.defn(M,"$hash",v=function(){var e=this;return[e.number,e.type].$hash()},v.$$arity=0),l(e.const_get_relative(T,"TYPES"),"each",[],((h=function(t){var n,r=h.$$s||this;return null==t&&(t=s),l(r,"define_method",[t],((n=function(){var r=n.$$s||this;return e.const_get_relative(T,"Unit").$new(r.$convert(r,t),t)}).$$s=r,n.$$arity=0,n))}).$$s=M,h.$$arity=1,h)),e.defn(M,"$+",y=function(n){var r,a=this;return u(e.const_get_relative(T,"Unit")["$==="](n))?a.type["$=="](n.$type())?e.const_get_relative(T,"Unit").$new(t(a.number,n.$number()),a.type):u(u(r=a["$compatible?"](a))?a["$compatible?"](n):r)?e.const_get_relative(T,"Unit").$new(t(a.number,a.$convert(n,a.type)),a.type):a.$raise(e.const_get_relative(T,"ArgumentError"),n.$type()+" isn't compatible with "+a.type):e.const_get_relative(T,"Unit").$new(t(a.number,n),a.type)},y.$$arity=1),e.defn(M,"$-",m=function(t){var r,a=this;return u(e.const_get_relative(T,"Unit")["$==="](t))?a.type["$=="](t.$type())?e.const_get_relative(T,"Unit").$new(n(a.number,t.$number()),a.type):u(u(r=a["$compatible?"](a))?a["$compatible?"](t):r)?e.const_get_relative(T,"Unit").$new(n(a.number,a.$convert(t,a.type)),a.type):a.$raise(e.const_get_relative(T,"ArgumentError"),t.$type()+" isn't compatible with "+a.type):e.const_get_relative(T,"Unit").$new(n(a.number,t),a.type)},m.$$arity=1),e.defn(M,"$*",g=function(t){var n,a=this;return u(e.const_get_relative(T,"Unit")["$==="](t))?a.type["$=="](t.$type())?e.const_get_relative(T,"Unit").$new(r(a.number,t.$number()),a.type):u(u(n=a["$compatible?"](a))?a["$compatible?"](t):n)?e.const_get_relative(T,"Unit").$new(r(a.number,a.$convert(t,a.type)),a.type):a.$raise(e.const_get_relative(T,"ArgumentError"),t.$type()+" isn't compatible with "+a.type):e.const_get_relative(T,"Unit").$new(r(a.number,t),a.type)},g.$$arity=1),e.defn(M,"$/",b=function(t){var n,r=this;return u(e.const_get_relative(T,"Unit")["$==="](t))?r.type["$=="](t.$type())?e.const_get_relative(T,"Unit").$new(a(r.number,t.$number()),r.type):u(u(n=r["$compatible?"](r))?r["$compatible?"](t):n)?e.const_get_relative(T,"Unit").$new(a(r.number,r.$convert(t,r.type)),r.type):r.$raise(e.const_get_relative(T,"ArgumentError"),t.$type()+" isn't compatible with "+r.type):e.const_get_relative(T,"Unit").$new(a(r.number,t),r.type)},b.$$arity=1),e.defn(M,"$-@",w=function(){var t=this;return e.const_get_relative(T,"Unit").$new(r(t.number,-1),t.type)},w.$$arity=0),e.defn(M,"$+@",k=function(){var t=this;return e.const_get_relative(T,"Unit").$new(t.number,t.type)},k.$$arity=0),e.defn(M,"$to_i",O=function(){return this.number.$to_i()},O.$$arity=0),e.defn(M,"$to_f",q=function(){return this.number.$to_f()},q.$$arity=0),e.defn(M,"$to_u",E=function(){return this},E.$$arity=0),e.defn(M,"$to_s",x=function(){var e=this;return""+e.number+e.type},x.$$arity=0),e.alias(M,"to_str","to_s"),e.alias(M,"inspect","to_s"),M.$private(),e.defn(M,"$compatible?",A=function(t){return e.const_get_relative(T,"COMPATIBLE")["$include?"](t.$type())},A.$$arity=1),e.defn(M,"$convert",S=function(e,t){var n=s,i=s,o=s;return n=e.$number(),e.$type()["$=="](t)?n:(o=e.$type(),i="in"["$==="](o)?r(n,96):"pt"["$==="](o)?a(r(n,4),3):"pc"["$==="](o)?a(r(a(n,12),4),3):"mm"["$==="](o)?r(n,3.77953):"cm"["$==="](o)?r(r(n,10),3.77953):"px"["$==="](o)?n:s,o=t,"in"["$==="](o)?a(i,96):"pt"["$==="](o)?a(a(i,4),3):"pc"["$==="](o)?a(a(r(i,12),4),3):"mm"["$==="](o)?a(i,3.77953):"cm"["$==="](o)?a(a(i,10),3.77953):"px"["$==="](o)?i:s)},S.$$arity=2)})(f[0],0,f)})(f[0],e.const_get_relative(f,"BasicObject"),f)}($[0],0,$),function(t,$super,n){function r(){}var a,i,o=r=c(t,null,"Numeric",r),$=(o.$$proto,[o].concat(n));l(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative($,"Paggio"),"CSS"),"Unit"),"TYPES"),"each",[],((a=function(t){var n,r=a.$$s||this;return null==t&&(t=s),l(r,"define_method",[t],((n=function(){var r=n.$$s||this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative($,"Paggio"),"CSS"),"Unit").$new(r,t)}).$$s=r,n.$$arity=0,n))}).$$s=o,a.$$arity=1,a)),e.defn(o,"$to_u",i=function(){return this},i.$$arity=0)}($[0],0,$),l([e.const_get_relative($,"Fixnum"),e.const_get_relative($,"Float")],"each",[],((i=function(t){var n,r=i.$$s||this;return null==t&&(t=s),l(t,"class_eval",[],((n=function(){var t,r=n.$$s||this;return e.alias(r,"old_percent","%"),e.def(r,"$%",t=function(t){var n=this;return null==t&&(t=s),u(t)?n.$old_percent(t):e.const_get_qualified(e.const_get_qualified(e.const_get_relative($,"Paggio"),"CSS"),"Unit").$new(n,"%")},t.$$arity=-1),s&&"%"}).$$s=r,n.$$arity=0,n))}).$$s=o,i.$$arity=1,i)),function(t,$super,n){function r(){}var a,i=r=c(t,null,"String",r);i.$$proto,[i].concat(n);e.defn(i,"$to_u",a=function(){var e=s,t=s,n=s;return u(e=this.$match(/^([\d+.]+)(.+)?$/))?(t=e["$[]"](1).$to_f(),u(n=e["$[]"](2))?t.$__send__(n.$downcase()):t):0},a.$$arity=0)}($[0],0,$),function(t,$super,n){function r(){}var a,i=r=c(t,null,"NilClass",r);i.$$proto,[i].concat(n);return e.defn(i,"$to_u",a=function(){return 0},a.$$arity=0),s&&"to_u"}($[0],0,$)},Opal.modules["paggio/css/color"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.klass),a=e.send;return e.add_stubs(["$each","$map","$to_proc","$define_method","$new"]),function(t,$super,n){function a(){}var i=a=r(t,null,"Paggio",a),o=(i.$$proto,[i].concat(n));(function(t,$super,n){function a(){}var i=a=r(t,$super,"CSS",a),o=(i.$$proto,[i].concat(n));(function(t,$super,n){function a(){}var i,o=a=r(t,null,"Color",a);o.$$proto,[o].concat(n);e.defn(o,"$initialize",i=function(e,t){var n=this;return n.internal=e,n.type=t},i.$$arity=2)})(o[0],0,o)})(o[0],e.const_get_relative(o,"BasicObject"),o)}(t[0],0,t),function(t,$super,i){function o(){}var $,s=o=r(t,null,"String",o),c=(s.$$proto,[s].concat(i));a(a(["rgb","rgba","hsl","hsla"],"map",[],"to_sym".$to_proc()),"each",[],(($=function(t){var r,i=$.$$s||this;return null==t&&(t=n),a(i,"define_method",[t],((r=function(){var n=r.$$s||this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(c,"Paggio"),"CSS"),"Color").$new(n,t)}).$$s=i,r.$$arity=0,r))}).$$s=s,$.$$arity=1,$))}(t[0],0,t),function(t,$super,i){function o(){}var $,s=o=r(t,null,"Array",o),c=(s.$$proto,[s].concat(i));return a(a(["rgb","rgba","hsl","hsla"],"map",[],"to_sym".$to_proc()),"each",[],(($=function(t){var r,i=$.$$s||this;return null==t&&(t=n),a(i,"define_method",[t],((r=function(){var n=r.$$s||this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(c,"Paggio"),"CSS"),"Color").$new(n,t)}).$$s=i,r.$$arity=0,r))}).$$s=s,$.$$arity=1,$))}(t[0],0,t)},Opal.modules["paggio/css/definition"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.klass),o=e.truthy,$=e.send,s=e.range,c=e.hash2;return e.add_stubs(["$new","$==","$arity","$instance_exec","$to_proc","$call","$empty?","$each","$inspect","$to_s","$define_method","$a","$===","$first","$>","$length","$raise","$style","$name","$value","$[]","$join","$map","$to_i","$*","$end_with?","$__send__","$<<","$last","$pop","$!","$other","$shift","$horizontal?","$private"]),function(r,$super,l){function u(){}var _=u=i(r,null,"Paggio",u),f=(_.$$proto,[_].concat(l));return function(r,$super,l){function u(){}var _=u=i(r,$super,"CSS",u),f=(_.$$proto,[_].concat(l));return function(r,$super,l){function u(){}var _,f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M,N,T,C,I=u=i(r,$super,"Definition",u),D=I.$$proto,H=[I].concat(l);return D.style=D.important=a,e.const_set(H[0],"Style",e.const_get_qualified("::","Struct").$new("name","value","important")),e.defn(I,"$initialize",_=function(){var e=this,t=_.$$p,n=t||a;return t&&(_.$$p=null),e.style=[],o(n)?n.$arity()["$=="](0)?$(e,"instance_exec",[],n.$to_proc()):n.$call(e):a},_.$$arity=0),e.defn(I,"$empty?",f=function(){return this.style["$empty?"]()},f.$$arity=0),e.defn(I,"$each",p=function(){var e=this,t=p.$$p,n=t||a;return t&&(p.$$p=null),$(e.style,"each",[],n.$to_proc())},p.$$arity=0),e.defn(I,"$gradient",d=function(){var t,n=arguments.length,r=n-0;r<0&&(r=0),t=new Array(r);for(var a=0;a=t:e["$>="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var i=[],o=e.nil,$=(e.breaker,e.slice,e.klass),s=e.truthy;return e.add_stubs(["$include","$new","$call","$close","$attr_accessor","$length","$include?","$!","$check_readable","$==","$===","$>=","$raise","$>","$+","$-","$seek","$enum_for","$eof?","$ord","$[]","$check_writable","$String","$write","$closed_write?","$closed_read?"]),function(i,$super,c){function l(){}var u,_,f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S=l=$(i,$super,"StringIO",l),M=S.$$proto,N=[S].concat(c);return M.position=M.string=M.closed=o,S.$include(e.const_get_qualified(e.const_get_relative(N,"IO"),"Readable")),S.$include(e.const_get_qualified(e.const_get_relative(N,"IO"),"Writable")),e.defs(S,"$open",u=function(e,t){var n=this,r=u.$$p,a=r||o,i=o,$=o;return null==e&&(e=""),null==t&&(t=o),r&&(u.$$p=null),i=n.$new(e,t),$=a.$call(i),i.$close(),$},u.$$arity=-1),S.$attr_accessor("string"),e.defn(S,"$initialize",_=function(e,t){var n,r=this;return null==e&&(e=""),null==t&&(t="rw"),r.string=e,r.position=e.$length(),s(s(n=t["$include?"]("r"))?t["$include?"]("w")["$!"]():n)?r.closed="write":s(s(n=t["$include?"]("w"))?t["$include?"]("r")["$!"]():n)?r.closed="read":o},_.$$arity=-1),e.defn(S,"$eof?",f=function(){var e=this;return e.$check_readable(),e.position["$=="](e.string.$length())},f.$$arity=0),e.alias(S,"eof","eof?"),e.defn(S,"$seek",p=function(i,$){var c=this,l=o;return null==$&&($=e.const_get_qualified(e.const_get_relative(N,"IO"),"SEEK_SET")),l=$,e.const_get_qualified(e.const_get_relative(N,"IO"),"SEEK_SET")["$==="](l)?(s(t(i,0))||c.$raise(e.const_get_qualified(e.const_get_relative(N,"Errno"),"EINVAL")),c.position=i):e.const_get_qualified(e.const_get_relative(N,"IO"),"SEEK_CUR")["$==="](l)?s(n(r(c.position,i),c.string.$length()))?c.position=c.string.$length():c.position=r(c.position,i):e.const_get_qualified(e.const_get_relative(N,"IO"),"SEEK_END")["$==="](l)&&(s(n(i,c.string.$length()))?c.position=0:c.position=a(c.position,i)),0},p.$$arity=-2),e.defn(S,"$tell",d=function(){return this.position},d.$$arity=0),e.alias(S,"pos","tell"),e.alias(S,"pos=","seek"),e.defn(S,"$rewind",v=function(){return this.$seek(0)},v.$$arity=0),e.defn(S,"$each_byte",h=function(){var e=this,t=h.$$p,n=t||o,a=o;if(t&&(h.$$p=null),!s(n))return e.$enum_for("each_byte");for(e.$check_readable(),a=e.position;!s(e["$eof?"]());)n.$call(e.string["$[]"](a).$ord()),a=r(a,1);return e},h.$$arity=0),e.defn(S,"$each_char",y=function(){var e=this,t=y.$$p,n=t||o,a=o;if(t&&(y.$$p=null),!s(n))return e.$enum_for("each_char");for(e.$check_readable(),a=e.position;!s(e["$eof?"]());)n.$call(e.string["$[]"](a)),a=r(a,1);return e},y.$$arity=0),e.defn(S,"$write",m=function(t){var n=this,i=o,$=o;return n.$check_writable(),t=n.$String(t),n.string.$length()["$=="](n.position)?(n.string=r(n.string,t),n.position=r(n.position,t.$length())):(i=n.string["$[]"](e.Range.$new(0,a(n.position,1),!1)),$=n.string["$[]"](e.Range.$new(r(n.position,t.$length()),-1,!1)),n.string=r(r(i,t),$),n.position=r(n.position,t.$length()))},m.$$arity=1),e.defn(S,"$read",g=function(t,n){var a=this,i=o,$=o;return null==t&&(t=o),null==n&&(n=o),a.$check_readable(),s(a["$eof?"]())?o:(i=s(t)?($=a.string["$[]"](a.position,t),a.position=r(a.position,t),$):($=a.string["$[]"](e.Range.$new(a.position,-1,!1)),a.position=a.string.$length(),$),s(n)?n.$write(i):i)},g.$$arity=-1),e.defn(S,"$close",b=function(){return this.closed="both"},b.$$arity=0),e.defn(S,"$close_read",w=function(){var e=this;return e.closed["$=="]("write")?e.closed="both":e.closed="read"},w.$$arity=0),e.defn(S,"$close_write",k=function(){var e=this;return e.closed["$=="]("read")?e.closed="both":e.closed="write"},k.$$arity=0),e.defn(S,"$closed?",O=function(){return this.closed["$=="]("both")},O.$$arity=0),e.defn(S,"$closed_read?",q=function(){var e,t=this;return s(e=t.closed["$=="]("read"))?e:t.closed["$=="]("both")},q.$$arity=0),e.defn(S,"$closed_write?",E=function(){var e,t=this;return s(e=t.closed["$=="]("write"))?e:t.closed["$=="]("both")},E.$$arity=0),e.defn(S,"$check_writable",x=function(){var t=this;return s(t["$closed_write?"]())?t.$raise(e.const_get_relative(N,"IOError"),"not opened for writing"):o},x.$$arity=0),e.defn(S,"$check_readable",A=function(){var t=this;return s(t["$closed_read?"]())?t.$raise(e.const_get_relative(N,"IOError"),"not opened for reading"):o},A.$$arity=0),o&&"check_readable"}(i[0],e.const_get_relative(i,"IO"),i)},Opal.modules["paggio/formatter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}var a=e.top,i=[],o=e.nil,$=(e.breaker,e.slice,e.klass),s=e.truthy,c=e.hash2,l=e.send;return e.add_stubs(["$require","$[]=","$to_h","$-","$[]","$dup","$deep_merge!","$call","$replace","$===","$new","$merge","$each","$string","$indent?","$+","$lines","$puts","$*","$chomp","$print","$gsub","$to_s","$for","$version","$indent","$format","$instance_eval","$empty?","$map","$escape","$<<","$join","$include?","$downcase","$name","$value","$important","$fonts","$animations","$steps","$reverse","$rules","$media","$selector","$deindent"]),a.$require("stringio"),function(a,$super,i){function u(){}var _,f,p,d,v=u=$(a,null,"Paggio",u),h=(v.$$proto,[v].concat(i));return function(a,$super,i){function u(){}var _,f,p,d,v,h,y,m,g,b,w,k=u=$(a,null,"Formatter",u),O=k.$$proto,q=[k].concat(i);O.options=O.io=o,e.defs(k,"$to_h",_=function(){var e,t=this;return null==t.formatters&&(t.formatters=o),t.formatters=s(e=t.formatters)?e:c([],{})},_.$$arity=0),e.defs(k,"$for",f=function(n){var r=this,a=f.$$p,i=a||o,$=o;return a&&(f.$$p=null),s(i)?($=[n,i],l(r.$to_h(),"[]=",e.to_a($)),$[t($.length,1)]):r.$to_h()["$[]"](n)},f.$$arity=1),e.defs(k,"$options",p=function(t){var n=p.$$p,r=n||o,a=o,i=o;return n&&(p.$$p=null),a=e.const_get_relative(q,"OPTIONS").$dup(),e.const_get_relative(q,"Utils")["$deep_merge!"](e.const_get_relative(q,"OPTIONS"),t),i=r.$call(),e.const_get_relative(q,"OPTIONS").$replace(a),i},p.$$arity=1),e.const_set(q[0],"OPTIONS",c(["indent"],{indent:c(["level","with"],{level:0,"with":"\t"})})),e.defn(k,"$initialize",d=function(t,n){var r,a=this;return null==t&&(t=o),null==n&&(n=c([],{})),s(e.const_get_relative(q,"Hash")["$==="](t))?(a.io=e.const_get_relative(q,"StringIO").$new(),a.options=t):(a.io=s(r=t)?r:e.const_get_relative(q,"StringIO").$new(),a.options=n),a.options=e.const_get_relative(q,"OPTIONS").$merge(a.options)},d.$$arity=-1),e.defn(k,"$format",v=function(t){var n,r=this;return function(){var a=e.new_brk();try{l(e.const_get_relative(q,"Formatter").$to_h(),"each",[],((n=function(r,i){var $=n.$$s||this;if(null==r&&(r=o),null==i&&(i=o),!s(r["$==="](t)))return o;i.$call($,t),e.brk(o,a)}).$$s=r,n.$$brk=a,n.$$arity=2,n))}catch(i){if(i===a)return i.$v;throw i}}(),r},v.$$arity=1),e.defn(k,"$to_s",h=function(){return this.io.$string()},h.$$arity=0),e.defn(k,"$indent?",y=function(){var t=this,n=y.$$p;n&&(y.$$p=null);try{return t.options["$[]"]("indent")["$[]"]("level")}catch(r){if(!e.rescue(r,[e.const_get_relative(q,"StandardError")]))throw r;try{return!1}finally{e.pop_exception()}}},y.$$arity=0),e.defn(k,"$indent",m=function(){var r=this,a=m.$$p,i=a||o,$=o,c=o,u=o,_=o;return a&&(m.$$p=null),s(r["$indent?"]())?s(i)?(c=["level",n(($=r.options["$[]"]("indent"))["$[]"]("level"),1)],l($,"[]=",e.to_a(c)),c[t(c.length,1)],i.$call(),c=["level",t((u=r.options["$[]"]("indent"))["$[]"]("level"),1)],l(u,"[]=",e.to_a(c)),c[t(c.length,1)]):(c=["level",n((_=r.options["$[]"]("indent"))["$[]"]("level"),1)],l(_,"[]=",e.to_a(c)),c[t(c.length,1)]):s(i)?i.$call():o},m.$$arity=0),e.defn(k,"$deindent",g=function(){var n=this,r=o,a=o;return s(n["$indent?"]())?(a=["level",t((r=n.options["$[]"]("indent"))["$[]"]("level"),1)],l(r,"[]=",e.to_a(a)),a[t(a.length,1)]):o},g.$$arity=0),e.defn(k,"$print",b=function(e){var t,n=this,a=o;return s(a=n["$indent?"]())?l(e.$lines(),"each",[],((t=function(e){var n=t.$$s||this;return null==n.io&&(n.io=o),null==n.options&&(n.options=o),null==e&&(e=o),n.io.$puts(""+r(n.options["$[]"]("indent")["$[]"]("with"),a)+e.$chomp())}).$$s=n,t.$$arity=1,t)):n.io.$print(e)},b.$$arity=1),e.defn(k,"$escape",w=function(e){return e.$to_s().$gsub(/["><']|&(?!([a-zA-Z]+|(#\d+));)/,c(["&",">","<",'"',"'"],{"&":"&",">":">","<":"<",'"':""","'":"'"}))},w.$$arity=1)}(h[0],0,h),l(e.const_get_relative(h,"Formatter"),"for",[e.const_get_relative(h,"HTML")],((_=function(e,t){var n,r=_.$$s||this,a=o;return null==e&&(e=o),null==t&&(t=o),a=t.$version(),5["$==="](a)&&e.$print(""),e.$print(""),l(e,"indent",[],((n=function(){var r,a=n.$$s||this;return l(t,"each",[],((r=function(t){r.$$s;return null==t&&(t=o),e.$format(t)}).$$s=a,r.$$arity=1,r))}).$$s=r,n.$$arity=0,n)),e.$print("")}).$$s=v,_.$$arity=2,_)),l(e.const_get_relative(h,"Formatter"),"for",[e.const_get_qualified(e.const_get_relative(h,"HTML"),"Element")],((f=function(t,n){var r,a,i,$,c,u=f.$$s||this,_=o,p=o,d=o,v=o;return null==t&&(t=o),null==n&&(n=o),a=l(n,"instance_eval",[],((i=function(){var e=i.$$s||this;return null==e.name&&(e.name=o),null==e.attributes&&(e.attributes=o),null==e.class_names&&(e.class_names=o),[e.name,e.attributes,e.class_names]}).$$s=u,i.$$arity=0,i)),_=null==(r=e.to_ary(a))[0]?o:r[0],p=null==r[1]?o:r[1],d=null==r[2]?o:r[2],s(s(r=p["$empty?"]())?d["$empty?"]():r)?t.$print("<"+_+">"):(v=l(p,"map",[],(($=function(e,n){$.$$s;return null==e&&(e=o),null==n&&(n=o),t.$escape(e)+'="'+t.$escape(n)+'"'}).$$s=u,$.$$arity=2,$)),s(d["$empty?"]())||v["$<<"]('class="'+t.$escape(d.$join(" "))+'"'),t.$print("<"+_+" "+v.$join(" ")+">")),s(["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"]["$include?"](_.$to_s().$downcase()))?o:(l(t,"indent",[],((c=function(){var r,a,i=c.$$s||this,$=o;return s($=l(n,"instance_eval",[],((r=function(){var e=r.$$s||this;return null==e.inner_html&&(e.inner_html=o),e.inner_html}).$$s=i,r.$$arity=0,r)))?t.$print($):l(n,"each",[],((a=function(n){var r,i=a.$$s||this,$=o;return null==n&&(n=o),$=n,e.const_get_relative(h,"String")["$==="]($)?t.$print(t.$escape(n)):e.const_get_relative(h,"CSS")["$==="]($)?(t.$print("")):t.$format(n)}).$$s=i,a.$$arity=1,a))}).$$s=u,c.$$arity=0,c)),t.$print(""))}).$$s=v,f.$$arity=2,f)),l(e.const_get_relative(h,"Formatter"),"for",[e.const_get_qualified(e.const_get_qualified(e.const_get_relative(h,"CSS"),"Definition"),"Style")],((p=function(e,t){p.$$s;return null==e&&(e=o),null==t&&(t=o),e.$print(t.$name()+": "+t.$value()+(s(t.$important())?" !important":o)+";")}).$$s=v,p.$$arity=2,p)),l(e.const_get_relative(h,"Formatter"),"for",[e.const_get_relative(h,"CSS")],((d=function(e,t){var n,r,a,i=d.$$s||this;return null==e&&(e=o),null==t&&(t=o),l(t.$fonts(),"each",[],((n=function(t){var r,a=n.$$s||this;return null==t&&(t=o),e.$print("@font-face {"),l(e,"indent",[],((r=function(){var n,a=r.$$s||this;return l(t,"each",[],((n=function(t){n.$$s;return null==t&&(t=o),e.$format(t)}).$$s=a,n.$$arity=1,n))}).$$s=a,r.$$arity=0,r)),e.$print("}")}).$$s=i,n.$$arity=1,n)),l(t.$animations(),"each",[],((r=function(t){var n,a=r.$$s||this;return null==t&&(t=o),l(["","-webkit-","-moz-","-o-"],"each",[],((n=function(r){var a,i=n.$$s||this;return null==r&&(r=o),e.$print("@"+r+"keyframes "+t.$name()+" {"),l(t.$steps(),"each",[],((a=function(t){var n,r=a.$$s||this;return null==t&&(t=o),e.$print(t.$value()+" {"),l(t,"each",[],((n=function(t){n.$$s;return null==t&&(t=o),e.$format(t)}).$$s=r,n.$$arity=1,n)),e.$print("}")}).$$s=i,a.$$arity=1,a)),e.$print("}")}).$$s=a,n.$$arity=1,n))}).$$s=i,r.$$arity=1,r)),l(t.$rules().$reverse(),"each",[],((a=function(t){var n,r=a.$$s||this,i=o;return null==t&&(t=o),s(t["$empty?"]())?o:(s(i=t.$media())&&(e.$print("@media "+i+" {"),e.$indent()),e.$print(t.$selector()+" {"),l(e,"indent",[],((n=function(){var r,a=n.$$s||this;return l(t,"each",[],((r=function(t){r.$$s;return null==t&&(t=o),e.$format(t)}).$$s=a,r.$$arity=1,r))}).$$s=r,n.$$arity=0,n)),e.$print("}"),s(t.$media())?(e.$print("}"),e.$deindent()):o)}).$$s=i,a.$$arity=1,a))}).$$s=v,d.$$arity=2,d))}(i[0],0,i)},Opal.modules.paggio=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.klass),i=e.send,o=e.hash2;return e.add_stubs(["$require","$options","$to_proc","$to_s","$format","$new","$tap","$each"]),t.$require("paggio/utils"),t.$require("paggio/html"),t.$require("paggio/css"),t.$require("paggio/formatter"),function(t,$super,n){function $(){}var s,c,l,u,_,f=$=a(t,null,"Paggio",$),p=(f.$$proto,[f].concat(n));return e.defs(f,"$options",s=function(t){var n=s.$$p,a=n||r;return n&&(s.$$p=null),i(e.const_get_relative(p,"Formatter"),"options",[t],a.$to_proc())},s.$$arity=1),e.defs(f,"$indent",c=function(e){var t=this,n=c.$$p,a=n||r;return n&&(c.$$p=null),i(t,"options",[o(["indent"],{indent:e})],a.$to_proc())},c.$$arity=1),e.defs(f,"$css",l=function(){var t,n=l.$$p,a=n||r,o=arguments.length,$=o-0;$<0&&($=0),t=new Array($);for(var s=0;st:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var a=[],i=e.nil,o=(e.breaker,e.slice,e.klass),$=e.hash2,s=e.truthy,c=e.send,l=e.range;return e.add_stubs(["$each_pair","$new_ostruct_member","$[]=","$-","$[]","$to_sym","$>","$length","$raise","$new","$end_with?","$!=","$enum_for","$is_a?","$==","$instance_variable_get","$===","$eql?","$dup","$to_n","$hash","$attr_reader","$__send__","$singleton_class","$delete","$respond_to?","$define_singleton_method","$__id__","$class","$any?","$+","$join","$map","$inspect"]),function(a,$super,u){function _(){}var f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A=_=o(a,null,"OpenStruct",_),S=A.$$proto,M=[A].concat(u);return S.table=i,e.defn(A,"$initialize",f=function(n){var r,a=this;return null==n&&(n=i),a.table=$([],{}),s(n)?c(n,"each_pair",[],((r=function(n,a){var o=r.$$s||this,$=i;return null==o.table&&(o.table=i),null==n&&(n=i),null==a&&(a=i),$=[o.$new_ostruct_member(n),a],c(o.table,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=a,r.$$arity=2,r)):i},f.$$arity=-1),e.defn(A,"$[]",p=function(e){return this.table["$[]"](e.$to_sym())},p.$$arity=1),e.defn(A,"$[]=",d=function(n,r){var a=this,o=i;return o=[a.$new_ostruct_member(n),r],c(a.table,"[]=",e.to_a(o)),o[t(o.length,1)]},d.$$arity=2),e.defn(A,"$method_missing",v=function(r){var a,o=this,$=i,u=arguments.length,_=u-1;_<0&&(_=0),a=new Array(_);for(var f=1;f",r)),s(r["$end_with?"]("="))?(s(a.$length()["$!="](1))&&o.$raise(e.const_get_relative(M,"ArgumentError").$new("wrong number of arguments (0 for 1)")),$=[o.$new_ostruct_member(r["$[]"](l(0,-2,!1))),a["$[]"](0)],c(o.table,"[]=",e.to_a($)),$[t($.length,1)]):o.table["$[]"](r.$to_sym())},v.$$arity=-2),e.defn(A,"$each_pair",h=function(){var t,n=this,r=h.$$p,a=r||i;return r&&(h.$$p=null),a===i?n.$enum_for("each_pair"):c(n.table,"each_pair",[],((t=function(n){t.$$s;return null==n&&(n=i),e.yield1(a,n)}).$$s=n,t.$$arity=1,t))},h.$$arity=0),e.defn(A,"$==",y=function(t){var n=this;return!!s(t["$is_a?"](e.const_get_relative(M,"OpenStruct")))&&n.table["$=="](t.$instance_variable_get("@table"))},y.$$arity=1),e.defn(A,"$===",m=function(t){var n=this;return!!s(t["$is_a?"](e.const_get_relative(M,"OpenStruct")))&&n.table["$==="](t.$instance_variable_get("@table"))},m.$$arity=1),e.defn(A,"$eql?",g=function(t){var n=this;return!!s(t["$is_a?"](e.const_get_relative(M,"OpenStruct")))&&n.table["$eql?"](t.$instance_variable_get("@table"))},g.$$arity=1),e.defn(A,"$to_h",b=function(){return this.table.$dup()},b.$$arity=0),e.defn(A,"$to_n",w=function(){return this.table.$to_n()},w.$$arity=0),e.defn(A,"$hash",k=function(){return this.table.$hash()},k.$$arity=0),A.$attr_reader("table"),e.defn(A,"$delete_field",O=function(t){var n=this,r=i;r=t.$to_sym();try{n.$singleton_class().$__send__("remove_method",r,r+"=")}catch(a){if(!e.rescue(a,[e.const_get_relative(M,"NameError")]))throw a;e.pop_exception()}return n.table.$delete(r)},O.$$arity=1),e.defn(A,"$new_ostruct_member",q=function(n){var r,a,o=this;return n=n.$to_sym(),s(o["$respond_to?"](n))||(c(o,"define_singleton_method",[n],((r=function(){var e=r.$$s||this;return null==e.table&&(e.table=i),e.table["$[]"](n)}).$$s=o,r.$$arity=0,r)),c(o,"define_singleton_method",[n+"="],((a=function(r){var o=a.$$s||this,$=i;return null==o.table&&(o.table=i),null==r&&(r=i),$=[n,r],c(o.table,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=o,a.$$arity=1,a))),n},q.$$arity=1),e.defn(A,"$inspect",E=function(){var e,t=this,n=i,a=x===undefined,o=t.$__id__();return function(){try{return n="#<"+t.$class(),a&&(x={}),x.hasOwnProperty(o)?n+" ...>":(x[o]=!0,s(t.table["$any?"]())&&(n=r(n," ")),n=r(n=r(n,c(t.$each_pair(),"map",[],(e=function(t,n){e.$$s;return null==t&&(t=i),null==n&&(n=i),t+"="+n.$inspect()},e.$$s=t,e.$$arity=2,e)).$join(", ")),">"))}finally{a&&(x=undefined)}}()},E.$$arity=0),e.alias(A,"to_s","inspect")}(a[0],0,a)},Opal.modules["browser/event/custom"]=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.truthy,$=e.range,s=e.send;return e.add_stubs(["$require","$supports?","$end_with?","$[]","$to_n","$merge!","$Native","$new","$has_key?"]),t.$require("ostruct"),function(t,n){var c=a(t,"Browser"),l=(c.$$proto,[c].concat(n));!function(t,$super,n){function a(){}var c=a=i(t,null,"Event",a),l=(c.$$proto,[c].concat(n));(function(t,$super,n){function a(){}var c,l,u,_,f,p,d,v=a=i(t,$super,"Custom",a),h=v.$$proto,y=[v].concat(n);h.detail=r,e.defs(v,"$supported?",c=function(){return e.const_get_relative(y,"Browser")["$supports?"]("Event.Custom")},c.$$arity=0),function(t,$super,n){function a(){}var s,c=a=i(t,$super,"Definition",a),l=c.$$proto;[c].concat(n);l.native=r,e.defn(c,"$method_missing",s=function(e,t){var n=this;return o(e["$end_with?"]("="))?n.native[e["$[]"]($(0,-2,!1))]=t:r},s.$$arity=2)}(y[0],e.const_get_relative(y,"Definition"),y),o(e.const_get_relative(y,"Browser")["$supports?"]("Event.constructor"))?e.defs(v,"$construct",l=function(e,t){return new CustomEvent(e,{bubbles:t.bubbles,cancelable:t.cancelable,detail:t})},l.$$arity=2):o(e.const_get_relative(y,"Browser")["$supports?"]("Event.create"))?e.defs(v,"$construct",u=function(e,t){var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t),n},u.$$arity=2):o(e.const_get_relative(y,"Browser")["$supports?"]("Event.createObject"))?e.defs(v,"$construct",_=function(e,t){return this.$Native(document.createEventObject())["$merge!"]({type:e,bubbles:t.bubbles,cancelable:t.cancelable,detail:t}).$to_n()},_.$$arity=2):e.defs(v,"$construct",f=function(e,t){return this.$Native(t)["$merge!"]({type:e,bubbles:t.bubbles,cancelable:t.cancelable,detail:t}).$to_n()},f.$$arity=2),e.defn(v,"$initialize",p=function(t,n){var a=this,i=p.$$p;return null==n&&(n=r),i&&(p.$$p=null),s(a,e.find_super_dispatcher(a,"initialize",p,!1),[t,n],null),a.detail=e.const_get_relative(y,"Hash").$new(t.detail)},p.$$arity=-2),e.defn(v,"$method_missing",d=function(t){var n=this,a=d.$$p,i=r,$=r,c=r;for(a&&(d.$$p=null),$=0,c=arguments.length,i=new Array(c);$>","$DOM","$to_proc","$parent","$last","$pop","$select!","$=~","$remove_child","$remove","$children","$supports?","$node_type","$first","$select","$element_children","$to_s","$next","$!","$element?","$previous","$try_convert","$name"]),function(t,s){var c=r(t,"Browser"),l=(c.$$proto,[c].concat(s));!function(t,s){var c=r(t,"DOM"),l=(c.$$proto,[c].concat(s));!function(t,$super,r){function s(){}var c,l,u,_,f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M,N,T,C,I,D,H,z,P,R,j,B,L,U,F,W,Y,G,K,X,V,J,Z,Q,ee,te,ne,re,ae,ie,oe,$e=s=a(t,null,"Node",s),se=$e.$$proto,ce=[$e].concat(r);se.native=n,$e.$include(e.const_get_relative(ce,"Native")),e.const_set(ce[0],"ELEMENT_NODE",1),e.const_set(ce[0],"ATTRIBUTE_NODE",2),e.const_set(ce[0],"TEXT_NODE",3),e.const_set(ce[0],"CDATA_SECTION_NODE",4),e.const_set(ce[0],"ENTITY_REFERENCE_NOCE",5),e.const_set(ce[0],"ENTITY_NODE",6),e.const_set(ce[0],"PROCESSING_INSTRUCTION_NODE",7),e.const_set(ce[0],"COMMENT_NODE",8),e.const_set(ce[0],"DOCUMENT_NODE",9),e.const_set(ce[0],"DOCUMENT_TYPE_NODE",10),e.const_set(ce[0],"DOCUMENT_FRAGMENT_NODE",11),e.const_set(ce[0],"NOTATION_NODE",12),e.defs($e,"$new",c=function(t){var r,a=this,$=c.$$p,l=n,u=n,_=n,f=n;for(null==a.classes&&(a.classes=n),$&&(c.$$p=null),_=0,f=arguments.length,u=new Array(f);_>",_=function(t){var r,a=this;return i(e.const_get_relative(ce,"Opal")["$respond_to?"](t,"each"))?(o(t,"each",[],((r=function(e){var t=r.$$s||this;return null==e&&(e=n),t["$>>"](e)}).$$s=a,r.$$arity=1,r)),a):(i(a["$native?"](t))||(t=i(e.const_get_relative(ce,"String")["$==="](t))?a.native.ownerDocument.createTextNode(t):e.const_get_relative(ce,"Native").$convert(t)),i(null==a.native.firstChild)?a.native.appendChild(t):a.native.insertBefore(t,a.native.firstChild),a)},_.$$arity=1),e.defn($e,"$add_child",f=function(e){var t=this,r=f.$$p,a=r||n;return null==e&&(e=n),r&&(f.$$p=null),i(e)||(e=o(t,"DOM",[],a.$to_proc())),t["$<<"](e)},f.$$arity=-1),e.defn($e,"$add_next_sibling",p=function(t){var r=this,a=p.$$p,$=a||n;return null==t&&(t=n),a&&(p.$$p=null),i(t)||(t=o(r,"DOM",[],$.$to_proc())),i(r["$native?"](t))||(t=i(e.const_get_relative(ce,"String")["$==="](t))?r.native.ownerDocument.createTextNode(t):e.const_get_relative(ce,"Native").$convert(t)),r.native.parentNode.insertBefore(t,r.native.nextSibling)},p.$$arity=-1),e.defn($e,"$add_previous_sibling",d=function(t){var r=this,a=d.$$p,$=a||n;return null==t&&(t=n),a&&(d.$$p=null),i(t)||(t=o(r,"DOM",[],$.$to_proc())),i(r["$native?"](t))||(t=i(e.const_get_relative(ce,"String")["$==="](t))?r.native.ownerDocument.createTextNode(t):e.const_get_relative(ce,"Native").$convert(t)),r.native.parentNode.insertBefore(t,r.native)},d.$$arity=-1),e.alias($e,"after","add_next_sibling"),e.defn($e,"$append_to",v=function(e){var t=this;return e["$<<"](t)},v.$$arity=1),e.defn($e,"$ancestors",h=function(t){var r,a=this,$=n,s=n;if(null==t&&(t=n),!i(a.$parent()))return e.const_get_relative(ce,"NodeSet")["$[]"]();for($=[a.$parent()];i(s=$.$last().$parent());)$["$<<"](s);return i(e.const_get_relative(ce,"Document")["$==="]($.$last()))&&$.$pop(),i(t)&&o($,"select!",[],((r=function(e){r.$$s;return null==e&&(e=n),e["$=~"](t)}).$$s=a,r.$$arity=1,r)),e.const_get_relative(ce,"NodeSet").$new($)},h.$$arity=-1),e.alias($e,"before","add_previous_sibling"),e.defn($e,"$remove",y=function(){var e=this;return i(e.$parent())?e.$parent().$remove_child(e):n},y.$$arity=0),e.defn($e,"$clear",m=function(){return this.$children().$remove()},m.$$arity=0),i(e.const_get_relative(ce,"Browser")["$supports?"]("Element.textContent"))?(e.defn($e,"$content",g=function(){return this.native.textContent},g.$$arity=0),e.defn($e,"$content=",b=function(e){return this.native.textContent=e},b.$$arity=1)):i(e.const_get_relative(ce,"Browser")["$supports?"]("Element.innerText"))?(e.defn($e,"$content",w=function(){return this.native.innerText},w.$$arity=0),e.defn($e,"$content=",k=function(e){return this.native.innerText=e},k.$$arity=1)):(e.defn($e,"$content",O=function(){return this.$raise(e.const_get_relative(ce,"NotImplementedError"),"node text content unsupported")},O.$$arity=0),e.defn($e,"$content=",q=function(){return this.$raise(e.const_get_relative(ce,"NotImplementedError"),"node text content unsupported")},q.$$arity=1)),e.defn($e,"$blank?",E=function(){return this.$raise(e.const_get_relative(ce,"NotImplementedError"))},E.$$arity=0),e.defn($e,"$cdata?",x=function(){return this.$node_type()["$=="](e.const_get_relative(ce,"CDATA_SECTION_NODE"))},x.$$arity=0),e.defn($e,"$child",A=function(){return this.$children().$first()},A.$$arity=0),e.defn($e,"$children",S=function(){var t=this;return e.const_get_relative(ce,"NodeSet")["$[]"](e.const_get_qualified(e.const_get_relative(ce,"Native"),"Array").$new(t.native.childNodes))},S.$$arity=0),e.defn($e,"$children=",M=function(){return this.$raise(e.const_get_relative(ce,"NotImplementedError"))},M.$$arity=1),e.defn($e,"$comment?",N=function(){return this.$node_type()["$=="](e.const_get_relative(ce,"COMMENT_NODE"))},N.$$arity=0),e.defn($e,"$document",T=function(){var e=this;return i("undefined"!=typeof e.native.ownerDocument)?e.$DOM(e.native.ownerDocument):n},T.$$arity=0),e.defn($e,"$document?",C=function(){return this.$node_type()["$=="](e.const_get_relative(ce,"DOCUMENT_NODE"))},C.$$arity=0),e.defn($e,"$elem?",I=function(){return this.$node_type()["$=="](e.const_get_relative(ce,"ELEMENT_NODE"))},I.$$arity=0),e.alias($e,"element?","elem?"),e.defn($e,"$element_children",D=function(){return o(this.$children(),"select",[],"element?".$to_proc())},D.$$arity=0),e.alias($e,"elements","element_children"),e.defn($e,"$first_element_child",H=function(){return this.$element_children().$first()},H.$$arity=0),e.defn($e,"$fragment?",z=function(){return this.$node_type()["$=="](e.const_get_relative(ce,"DOCUMENT_FRAGMENT_NODE"))},z.$$arity=0),e.defn($e,"$inner_html",P=function(){return this.native.innerHTML},P.$$arity=0),e.defn($e,"$inner_html=",R=function(e){return this.native.innerHTML=e},R.$$arity=1),e.alias($e,"inner_text","content"),e.alias($e,"inner_text=","content="),e.defn($e,"$last_element_child",j=function(){return this.$element_children().$last()},j.$$arity=0),e.defn($e,"$name",B=function(){return this.native.nodeName||n},B.$$arity=0),e.defn($e,"$name=",L=function(e){return this.native.nodeName=e.$to_s()},L.$$arity=1),e.defn($e,"$namespace",U=function(){return this.native.namespaceURI||n},U.$$arity=0),e.defn($e,"$next",F=function(){var e=this;return i(null!=e.native.nextSibling)?e.$DOM(e.native.nextSibling):n},F.$$arity=0),e.alias($e,"next=","add_next_sibling"),e.defn($e,"$next_element",W=function(){var e,t=n;for(t=this.$next();i(i(e=t)?t["$element?"]()["$!"]():e);)t=t.$next();return t},W.$$arity=0),e.alias($e,"next_sibling","next"),e.alias($e,"node_name","name"),e.alias($e,"node_name=","name="),e.defn($e,"$node_type",Y=function(){return this.native.nodeType},Y.$$arity=0),e.defn($e,"$parent",G=function(){var e=this;return i(null!=e.native.parentNode)?e.$DOM(e.native.parentNode):n},G.$$arity=0),e.defn($e,"$parent=",K=function(t){return this.native.parentNode=e.const_get_relative(ce,"Native").$convert(t)},K.$$arity=1),e.defn($e,"$parse",X=function(t,n){var r=this;return null==n&&(n=$([],{})),r.$raise(e.const_get_relative(ce,"NotImplementedError"))},X.$$arity=-2),e.defn($e,"$path",V=function(){return this.$raise(e.const_get_relative(ce,"NotImplementedError"))},V.$$arity=0),e.defn($e,"$prepend_to",J=function(e){var t=this;return e["$>>"](t)},J.$$arity=1),e.defn($e,"$previous",Z=function(){var e=this;return i(null!=e.native.previousSibling)?e.$DOM(e.native.previousSibling):n},Z.$$arity=0),e.alias($e,"previous=","add_previous_sibling"),e.defn($e,"$previous_element",Q=function(){var e,t=n;for(t=this.$previous();i(i(e=t)?t["$element?"]()["$!"]():e);)t=t.$previous();return t},Q.$$arity=0),e.alias($e,"previous_sibling","previous"),e.defn($e,"$remove_child",ee=function(t){return this.native.removeChild(e.const_get_relative(ce,"Native").$try_convert(t))},ee.$$arity=1),e.defn($e,"$replace",te=function(t){var n=this;return i(n["$native?"](t))||(t=i(e.const_get_relative(ce,"String")["$==="](t))?n.native.ownerDocument.createTextNode(t):e.const_get_relative(ce,"Native").$convert(t)),n.native.parentNode.replaceChild(t,n.native),t},te.$$arity=1),e.alias($e,"replace_with","replace"),e.alias($e,"text","content"),e.alias($e,"text=","content="),e.defn($e,"$text?",ne=function(){return this.$node_type()["$=="](e.const_get_relative(ce,"TEXT_NODE"))},ne.$$arity=0),e.defn($e,"$traverse",re=function(){var t=this,n=re.$$p;return n&&(re.$$p=null),t.$raise(e.const_get_relative(ce,"NotImplementedError"))},re.$$arity=0),e.alias($e,"type","node_type"),e.defn($e,"$value",ae=function(){return this.native.nodeValue||n},ae.$$arity=0),e.defn($e,"$value=",ie=function(e){return this.native.nodeValue=e},ie.$$arity=1),e.defn($e,"$inspect",oe=function(){return"#"},oe.$$arity=0)}(l[0],0,l)}(l[0],l)}(t[0],t)},Opal.modules["browser/dom/attribute"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.module),r=e.klass,a=e.truthy;return e.add_stubs(["$include","$alias_native","$supports?","$==","$name"]),function(t,i){var o=n(t,"Browser"),$=(o.$$proto,[o].concat(i));!function(t,i){var o=n(t,"DOM"),$=(o.$$proto,[o].concat(i));!function(t,$super,n){function i(){}var o,$=i=r(t,null,"Attribute",i),s=($.$$proto,[$].concat(n));$.$include(e.const_get_relative(s,"Native")),$.$alias_native("name"),$.$alias_native("value"),$.$alias_native("value="),a(e.const_get_relative(s,"Browser")["$supports?"]("Attr.isId"))?$.$alias_native("id?","isId"):e.defn($,"$id?",o=function(){return this.$name()["$=="]("id")},o.$$arity=0)}($[0],0,$)}($[0],$)}(t[0],t)},Opal.modules["browser/dom/character_data"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.klass;return e.add_stubs(["$alias_native"]),function(t,i){var o=r(t,"Browser"),$=(o.$$proto,[o].concat(i));!function(t,i){var o=r(t,"DOM"),$=(o.$$proto,[o].concat(i));!function(t,$super,r){function i(){}var o,$,s,c,l,u,_=i=a(t,$super,"CharacterData",i),f=_.$$proto;[_].concat(r);f.native=n,e.defn(_,"$append",o=function(e){var t=this;return t.native.appendData(e),t},o.$$arity=1),e.defn(_,"$data",$=function(){return this.native.data},$.$$arity=0),e.defn(_,"$delete",s=function(e,t){var n=this;return null==t&&(t=0),n.native.deleteData(t,e),n},s.$$arity=-2),e.defn(_,"$insert",c=function(e,t){var n=this;return null==t&&(t=0),n.native.insertData(t,e),n},c.$$arity=-2),_.$alias_native("length"),e.defn(_,"$replace",l=function(e,t,n){var r=this;return null==t&&(t=0),null==n&&(n=r.native.length),r.native.replaceData(t,n,e),r},l.$$arity=-2),e.defn(_,"$substring",u=function(e,t){return null==t&&(t=0),this.native.substringData(t,e)},u.$$arity=-2)}($[0],e.const_get_relative($,"Node"),$)}($[0],$)}(t[0],t)},Opal.modules["browser/dom/text"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.klass,i=e.send,o=e.gvars;return e.add_stubs(["$create_text","$DOM","$data"]),function(t,$){var s=r(t,"Browser"),c=(s.$$proto,[s].concat($));!function(t,$){var s=r(t,"DOM"),c=(s.$$proto,[s].concat($));!function(t,$super,r){function $(){}var s,c,l,u,_=$=a(t,$super,"Text",$),f=_.$$proto;[_].concat(r);f.native=n,e.defs(_,"$create",s=function(){var t;null==o.document&&(o.document=n);var r=arguments.length,a=r-0;a<0&&(a=0),t=new Array(a);for(var $=0;$"},u.$$arity=0)}(c[0],e.const_get_relative(c,"CharacterData"),c)}(c[0],c)}(t[0],t)},Opal.modules["browser/dom/cdata"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.module),r=e.klass;return e.add_stubs(["$value"]),function(t,a){var i=n(t,"Browser"),o=(i.$$proto,[i].concat(a));!function(t,a){var i=n(t,"DOM"),o=(i.$$proto,[i].concat(a));!function(t,$super,n){function a(){}var i,o=a=r(t,$super,"CDATA",a);o.$$proto,[o].concat(n);e.defn(o,"$inspect",i=function(){return"#"},i.$$arity=0)}(o[0],e.const_get_relative(o,"Text"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/comment"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.module),r=e.klass;return e.add_stubs(["$value"]),function(t,a){var i=n(t,"Browser"),o=(i.$$proto,[i].concat(a));!function(t,a){var i=n(t,"DOM"),o=(i.$$proto,[i].concat(a));!function(t,$super,n){function a(){}var i,o=a=r(t,$super,"Comment",a);o.$$proto,[o].concat(n);e.defn(o,"$inspect",i=function(){return"#"},i.$$arity=0)}(o[0],e.const_get_relative(o,"CharacterData"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/element/attributes"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.truthy,$=e.hash2,s=e.send;return e.add_stubs(["$attr_reader","$to_n","$[]","$supports?","$==","$to_s","$include","$enum_for","$each","$attribute_nodes","$name","$value","$!","$[]=","$-"]),function(n,c){ -var l=a(n,"Browser"),u=(l.$$proto,[l].concat(c));!function(n,c){var l=a(n,"DOM"),u=(l.$$proto,[l].concat(c));!function(n,$super,a){function c(){}var l=c=i(n,$super,"Element",c),u=(l.$$proto,[l].concat(a));(function(n,$super,a){function c(){}var l,u,_,f,p,d,v,h,y,m=c=i(n,null,"Attributes",c),g=m.$$proto,b=[m].concat(a);g.namespace=g.native=g.element=r,m.$attr_reader("namespace"),e.defn(m,"$initialize",l=function(e,t){var n=this;return n.element=e,n.native=e.$to_n(),n.namespace=t["$[]"]("namespace")},l.$$arity=2),o(o(u=e.const_get_relative(b,"Browser")["$supports?"]("Element.className"))?u:e.const_get_relative(b,"Browser")["$supports?"]("Element.htmlFor"))?(e.defn(m,"$[]",_=function(t,n){var a,i=this,s=r;return null==n&&(n=$([],{})),o((a=t["$=="]("class"))?e.const_get_relative(b,"Browser")["$supports?"]("Element.className"):t["$=="]("class"))?t="className":o((a=t["$=="]("for"))?e.const_get_relative(b,"Browser")["$supports?"]("Element.htmlFor"):t["$=="]("for"))&&(t="htmlFor"),o(s=o(a=n["$[]"]("namespace"))?a:i.namespace)?i.native.getAttributeNS(s.$to_s(),t.$to_s())||r:i.native.getAttribute(t.$to_s())||r},_.$$arity=-2),e.defn(m,"$[]=",f=function(t,n,a){var i,s=this,c=r;return null==a&&(a=$([],{})),o((i=t["$=="]("class"))?e.const_get_relative(b,"Browser")["$supports?"]("Element.className"):t["$=="]("class"))?t="className":o((i=t["$=="]("for"))?e.const_get_relative(b,"Browser")["$supports?"]("Element.htmlFor"):t["$=="]("for"))&&(t="htmlFor"),o(c=o(i=a["$[]"]("namespace"))?i:s.namespace)?s.native.setAttributeNS(c.$to_s(),t.$to_s(),n):s.native.setAttribute(t.$to_s(),n.$to_s())},f.$$arity=-3)):(e.defn(m,"$[]",p=function(e,t){var n,a=this,i=r;return null==t&&(t=$([],{})),o(i=o(n=t["$[]"]("namespace"))?n:a.namespace)?a.native.getAttributeNS(i.$to_s(),e.$to_s())||r:a.native.getAttribute(e.$to_s())||r},p.$$arity=-2),e.defn(m,"$[]=",d=function(e,t,n){var a,i=this,s=r;return null==n&&(n=$([],{})),o(s=o(a=n["$[]"]("namespace"))?a:i.namespace)?i.native.setAttributeNS(s.$to_s(),e.$to_s(),t):i.native.setAttribute(e.$to_s(),t.$to_s())},d.$$arity=-3)),m.$include(e.const_get_relative(b,"Enumerable")),e.defn(m,"$each",v=function(){var t,n=this,a=v.$$p,i=a||r;return a&&(v.$$p=null),i===r?n.$enum_for("each"):(s(n.element.$attribute_nodes(),"each",[],((t=function(n){t.$$s;return null==n&&(n=r),e.yieldX(i,[n.$name(),n.$value()])}).$$s=n,t.$$arity=1,t)),n)},v.$$arity=0),e.alias(m,"get","[]"),e.defn(m,"$has_key?",h=function(e){return this["$[]"](e)["$!"]()["$!"]()},h.$$arity=1),e.defn(m,"$merge!",y=function(n){var a,i=this;return s(n,"each",[],((a=function(n,i){var o=a.$$s||this,$=r;return null==n&&(n=r),null==i&&(i=r),$=[n,i],s(o,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=i,a.$$arity=2,a)),i},y.$$arity=1),e.alias(m,"set","[]=")})(u[0],0,u)}(u[0],e.const_get_relative(u,"Node"),u)}(u[0],u)}(n[0],n)},Opal.modules["browser/dom/element/data"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.klass,i=e.truthy,o=e.send,$=e.gvars;return e.add_stubs(["$attr_reader","$to_n","$include","$enum_for","$call","$each","$attributes","$=~","$[]"]),function(t,s){var c=r(t,"Browser"),l=(c.$$proto,[c].concat(s));!function(t,s){var c=r(t,"DOM"),l=(c.$$proto,[c].concat(s));!function(t,$super,r){function s(){}var c=s=a(t,$super,"Element",s),l=(c.$$proto,[c].concat(r));(function(t,$super,r){function s(){}var c,l,u,_,f,p=s=a(t,null,"Data",s),d=p.$$proto,v=[p].concat(r);d.native=d.element=n,p.$attr_reader("element"),e.defn(p,"$initialize",c=function(e){var t=this;return t.element=e,t.native=e.$to_n(),i("undefined"!=typeof t.native.$data)?n:t.native.$data={}},c.$$arity=1),p.$include(e.const_get_relative(v,"Enumerable")),e.defn(p,"$each",l=function(){var e,t=this,r=l.$$p,a=r||n;if(r&&(l.$$p=null),!i(a))return t.$enum_for("each");var s=t.native.$data;for(var c in s)a.$call(c,s[c]);return o(t.element.$attributes(),"each",[],((e=function(t,r){var o;e.$$s;return null==t&&(t=n),null==r&&(r=n),i(t["$=~"](/^data-(.*)$/))?a.$call((o=$["~"])===n?n:o["$[]"](1),r):n}).$$s=t,e.$$arity=2,e)),t},l.$$arity=0),e.defn(p,"$assign",u=function(e){var t,r=this;return o(e,"each",[],((t=function(e,r){var a=t.$$s||this;return null==a.native&&(a.native=n),null==e&&(e=n),null==r&&(r=n),a.native.$data[e]=r}).$$s=r,t.$$arity=2,t)),r},u.$$arity=1),e.defn(p,"$[]",_=function(e){var t=this,r=n;if(i(r=t.element["$[]"]("data-"+e)))return r;var a=t.native.$data[e];return a===undefined?n:a},_.$$arity=1),e.defn(p,"$[]=",f=function(e,t){return this.native.$data[e]=t},f.$$arity=2)})(l[0],0,l)}(l[0],e.const_get_relative(l,"Node"),l)}(l[0],l)}(t[0],t)},Opal.modules["browser/dom/element/position"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.truthy,s=e.send;return e.add_stubs(["$attr_reader","$to_n","$offset","$get","$parent","$new","$==","$[]","$style","$=~","$+","$x","$to_i","$x=","$-","$y","$y="]),function(r,c){var l=i(r,"Browser"),u=(l.$$proto,[l].concat(c));!function(r,c){var l=i(r,"DOM"),u=(l.$$proto,[l].concat(c));!function(r,$super,i){function c(){}var l=c=o(r,$super,"Element",c),u=(l.$$proto,[l].concat(i));(function(r,$super,i){function c(){}var l,u,_,f,p=c=o(r,null,"Position",c),d=p.$$proto,v=[p].concat(i);d.element=a,p.$attr_reader("element"),e.defn(p,"$initialize",l=function(e){var t=this;return t.element=e,t.native=e.$to_n()},l.$$arity=1),e.defn(p,"$get",u=function(){var r=this,i=a,o=a,c=a,l=a,u=a;return o=(i=r.element.$offset()).$get(),c=i.$parent(),l=e.const_get_qualified(e.const_get_relative(v,"Browser"),"Position").$new(0,0),r.element.$style()["$[]"]("position")["$=="]("fixed")&&($(c["$=~"]("html"))||(l=c.$offset()),u=[t(l.$x(),c.$style()["$[]"]("border-top-width").$to_i())],s(l,"x=",e.to_a(u)),u[n(u.length,1)],u=[t(l.$y(),c.$style()["$[]"]("border-left-width").$to_i())],s(l,"y=",e.to_a(u)),u[n(u.length,1)]),e.const_get_qualified(e.const_get_relative(v,"Browser"),"Position").$new(n(n(o.$x(),l.$x()),r.element.$style()["$[]"]("margin-left").$to_i()),n(n(o.$y(),l.$y()),r.element.$style()["$[]"]("margin-top").$to_i()))},u.$$arity=0),e.defn(p,"$x",_=function(){return this.$get().$x()},_.$$arity=0),e.defn(p,"$y",f=function(){return this.$get().$y()},f.$$arity=0)})(u[0],0,u)}(u[0],e.const_get_relative(u,"Node"),u)}(u[0],u)}(r[0],r)},Opal.modules["browser/dom/element/offset"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.truthy,s=e.send;return e.add_stubs(["$attr_reader","$to_n","$DOM","$root","$document","$x","$get","$set","$y","$supports?","$window","$new","$[]","$style!","$==","$[]=","$style","$-","$to_u","$===","$first","$+","$px"]),function(r,c){var l=i(r,"Browser"),u=(l.$$proto,[l].concat(c));!function(r,c){var l=i(r,"DOM"),u=(l.$$proto,[l].concat(c));!function(r,$super,i){function c(){}var l=c=o(r,$super,"Element",c),u=(l.$$proto,[l].concat(i));(function(r,$super,i){function c(){}var l,u,_,f,p,d,v,h,y,m=c=o(r,null,"Offset",c),g=m.$$proto,b=[m].concat(i);g.native=g.element=a,m.$attr_reader("element"),e.defn(m,"$initialize",l=function(e){var t=this;return t.element=e,t.native=e.$to_n()},l.$$arity=1),e.defn(m,"$parent",u=function(){var e=this;return e.$DOM(e.native.offsetParent||e.element.$document().$root().$to_n())},u.$$arity=0),e.defn(m,"$x",_=function(){return this.$get().$x()},_.$$arity=0),e.defn(m,"$x=",f=function(e){return this.$set(e,a)},f.$$arity=1),e.defn(m,"$y",p=function(){return this.$get().$y()},p.$$arity=0),e.defn(m,"$y=",d=function(e){return this.$set(a,e)},d.$$arity=1),$(e.const_get_relative(b,"Browser")["$supports?"]("Element.getBoundingClientRect"))?e.defn(m,"$get",v=function(){var t=this,n=a,r=a,i=a;r=(n=t.element.$document()).$root().$to_n(),i=n.$window().$to_n();var o=t.native.getBoundingClientRect(),$=o.top+(i.pageYOffset||r.scrollTop)-(r.clientTop||0),s=o.left+(i.pageXOffset||r.scrollLeft)-(r.clientLeft||0);return e.const_get_qualified(e.const_get_relative(b,"Browser"),"Position").$new(s,$)},v.$$arity=0):e.defn(m,"$get",h=function(){var t=a,n=a,r=a;n=(t=this.$document()).$root().$to_n();var i=((r=t.$window().$to_n()).pageYOffset||n.scrollTop)-(n.clientTop||0),o=(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0);return e.const_get_qualified(e.const_get_relative(b,"Browser"),"Position").$new(o,i)},h.$$arity=0),e.defn(m,"$set",y=function(){var r,i,o,c=this,l=a,u=a,_=a,f=a,p=a,d=a,v=arguments.length,h=v-0;h<0&&(h=0),o=new Array(h);for(var y=0;y"},L.$$arity=0),e.defn($e,"$offset",U=function(){var t,n=this,r=i,a=arguments.length,o=a-0;o<0&&(o=0),t=new Array(o);for(var $=0;$"},d.$$arity=0),i(e.const_get_relative(M,"Browser")["$supports?"]("Event.addListener"))?e.defn(A,"$ready",v=function(){var t,r=this,a=v.$$p,o=a||n;return a&&(v.$$p=null),i(o)||r.$raise(e.const_get_relative(M,"ArgumentError"),"no block given"), -i(r["$ready?"]())?o.$call():$(r,"on",["dom:load"],((t=function(e){t.$$s;return null==e&&(e=n),e.$off(),o.$call()}).$$s=r,t.$$arity=1,t))},v.$$arity=0):i(e.const_get_relative(M,"Browser")["$supports?"]("Event.attach"))?e.defn(A,"$ready",h=function(){var t,r=this,a=h.$$p,o=a||n;return a&&(h.$$p=null),i(o)||r.$raise(e.const_get_relative(M,"ArgumentError"),"no block given"),i(r["$ready?"]())?o.$call():$(r,"on",["ready:state:change"],((t=function(e){var r=t.$$s||this;return null==e&&(e=n),i(r["$ready?"]())?(e.$off(),o.$call()):n}).$$s=r,t.$$arity=1,t))},h.$$arity=0):e.defn(A,"$ready",y=function(){var t=this,n=y.$$p;return n&&(y.$$p=null),t.$raise(e.const_get_relative(M,"NotImplementedError"),"document ready unsupported")},y.$$arity=0),e.defn(A,"$ready?",m=function(){return"complete"===this.native.readyState},m.$$arity=0),e.defn(A,"$root",g=function(){var e=this;return e.$DOM(e.native.documentElement)},g.$$arity=0),e.defn(A,"$root=",b=function(t){return this.native.documentElement=e.const_get_relative(M,"Native").$convert(t)},b.$$arity=1),e.defn(A,"$style_sheets",w=function(){var t,r=this;return $(e.const_get_qualified(e.const_get_relative(M,"Native"),"Array"),"new",[r.native.styleSheets],((t=function(r){t.$$s;return null==r&&(r=n),e.const_get_qualified(e.const_get_relative(M,"CSS"),"StyleSheet").$new(r)}).$$s=r,t.$$arity=1,t))},w.$$arity=0),e.defn(A,"$title",k=function(){return this.native.title},k.$$arity=0),e.defn(A,"$title=",O=function(e){return this.native.title=e},O.$$arity=1),i(e.const_get_relative(M,"Browser")["$supports?"]("Document.view"))?e.defn(A,"$window",q=function(){var t=this;return e.const_get_relative(M,"Window").$new(t.native.defaultView)},q.$$arity=0):i(e.const_get_relative(M,"Browser")["$supports?"]("Document.window"))?e.defn(A,"$window",E=function(){var t=this;return e.const_get_relative(M,"Window").$new(t.native.parentWindow)},E.$$arity=0):e.defn(A,"$window",x=function(){return this.$raise(e.const_get_relative(M,"NotImplementedError"),"window from document unsupported")},x.$$arity=0)}(l[0],e.const_get_relative(l,"Element"),l)}(l[0],l)}(t[0],t)},Opal.modules["browser/dom/document_fragment"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.module),r=e.klass;return function(t,a){var i=n(t,"Browser"),o=(i.$$proto,[i].concat(a));!function(t,a){var i=n(t,"DOM"),o=(i.$$proto,[i].concat(a));!function(e,$super,t){function n(){}var a=n=r(e,$super,"DocumentFragment",n);a.$$proto,[a].concat(t)}(o[0],e.const_get_relative(o,"Element"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/builder"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.truthy,$=e.hash2,s=e.send;return e.add_stubs(["$<<","$[]=","$to_h","$-","$[]","$each","$===","$call","$raise","$attr_reader","$new","$to_proc","$map","$build","$for","$create_text","$document","$create_element","$merge!","$attributes","$add_class","$on","$inner_html="]),function(t,n){var r,i=a(t,"Utils");i.$$proto,[i].concat(n);e.defs(i,"$heredoc",r=function(e){return e},r.$$arity=1)}(e.const_get_relative(n,"Paggio"),n),function(t,$super,n){function a(){}var $,s=a=i(t,$super,"Element",a),c=s.$$proto;[s].concat(n);c.on=r,e.defn(s,"$on",$=function(){var e,t,n=this,a=$.$$p,i=a||r,s=arguments.length,c=s-0;c<0&&(c=0),t=new Array(c);for(var l=0;lt:e["$>"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.send,s=e.hash2,c=e.truthy;return e.add_stubs(["$attr_accessor","$attr_reader","$private","$tap","$new","$each","$instance_variable_set","$dup","$instance_variable_get","$build","$to_proc","$instance_eval","$[]=","$-","$define_rule","$coerce_native_hash_values","$rules","$define_all_others","$props_wrapper","$reject","$[]","$errors=","$allow_undefined_props?","$validate_undefined","$defined_props","$validate_required","$validate_types","$validate_allowed","$errors","$inject","$select","$include?","$keys","$!","$define_param","$is_a?","$type_check","$>","$length","$validate_value_array","$nil?","$respond_to?","$_react_param_conversion","$<<","$each_with_index","$Native"]),function(r,l){var u=i(r,"Hyperstack"),_=(u.$$proto,[u].concat(l));!function(r,l){var u=i(r,"Internal"),_=(u.$$proto,[u].concat(l));!function(r,l){var u=i(r,"Component"),_=(u.$$proto,[u].concat(l));!function(r,$super,i){function l(){}var u,_,f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M,N,T,C=l=o(r,null,"Validator",l),I=C.$$proto,D=[C].concat(i);I.allow_undefined_props=I.rules=I.errors=a,C.$attr_accessor("errors"),C.$attr_reader("props_wrapper"),C.$private("errors","props_wrapper"),e.defn(C,"$copy",u=function(t){var n,r=this;return $(e.const_get_relative(D,"Validator").$new(t),"tap",[],((n=function(e){var t,r=n.$$s||this;return null==e&&(e=a),$(["@allow_undefined_props","@rules","@errors"],"each",[],((t=function(n){var r=t.$$s||this;return null==n&&(n=a),e.$instance_variable_set(n,r.$instance_variable_get(n).$dup())}).$$s=r,t.$$arity=1,t))}).$$s=r,n.$$arity=1,n))},u.$$arity=1),e.defn(C,"$initialize",_=function(t){var n=this;return null==t&&(t=e.const_get_relative(D,"Class").$new(e.const_get_relative(D,"PropsWrapper"))),n.props_wrapper=t},_.$$arity=-1),e.defs(C,"$build",f=function(){var e=this,t=f.$$p,n=t||a;return t&&(f.$$p=null),$(e.$new(),"build",[],n.$to_proc())},f.$$arity=0),e.defn(C,"$build",p=function(){var e=this,t=p.$$p,n=t||a;return t&&(p.$$p=null),$(e,"instance_eval",[],n.$to_proc()),e},p.$$arity=0),e.defn(C,"$requires",d=function(n,r){var i=this,o=a;return null==r&&(r=s([],{})),o=["required",!0],$(r,"[]=",e.to_a(o)),o[t(o.length,1)],i.$define_rule(n,r)},d.$$arity=-2),e.defn(C,"$optional",v=function(n,r){var i=this,o=a;return null==r&&(r=s([],{})),o=["required",!1],$(r,"[]=",e.to_a(o)),o[t(o.length,1)],i.$define_rule(n,r)},v.$$arity=-2),e.defn(C,"$event",h=function(n){var r=this,i=a;return i=[n,r.$coerce_native_hash_values(s(["default","type","allow_nil"],{"default":a,type:e.const_get_relative(D,"Proc"),allow_nil:!0}))],$(r.$rules(),"[]=",e.to_a(i)),i[t(i.length,1)]},h.$$arity=1),e.defn(C,"$all_other_params",y=function(e){var t,n=this;return n.allow_undefined_props=!0,$(n.$props_wrapper(),"define_all_others",[e],((t=function(e){var n,r=t.$$s||this;return null==e&&(e=a),$(e,"reject",[],((n=function(e,t){var r=n.$$s||this;return null==e&&(e=a),null==t&&(t=a),r.$rules()["$[]"](e)}).$$s=r,n.$$arity=2,n))}).$$s=n,t.$$arity=1,t))},y.$$arity=1),e.defn(C,"$validate",m=function(n){var r,i=this,o=a;return o=[[]],$(i,"errors=",e.to_a(o)),o[t(o.length,1)],c(i["$allow_undefined_props?"]())||i.$validate_undefined(n),n=i.$coerce_native_hash_values(i.$defined_props(n)),i.$validate_required(n),$(n,"each",[],((r=function(e,t){var n=r.$$s||this;return null==e&&(e=a),null==t&&(t=a),n.$validate_types(e,t),n.$validate_allowed(e,t)}).$$s=i,r.$$arity=2,r)),i.$errors()},m.$$arity=1),e.defn(C,"$default_props",g=function(){var n,r,i=this;return $($(i.$rules(),"select",[],((n=function(e,t){n.$$s;return null==e&&(e=a),null==t&&(t=a),t.$keys()["$include?"]("default")}).$$s=i,n.$$arity=2,n)),"inject",[s([],{})],((r=function(n,i){r.$$s;var o,s,c,l=a;return null==i&&(i=a),i=e.to_ary(i),null==(s=(o=e.slice.call(i,0,i.length)).splice(0,1)[0])&&(s=a),null==(c=o.splice(0,1)[0])&&(c=a),null==n&&(n=a),l=[s,c["$[]"]("default")],$(n,"[]=",e.to_a(l)),l[t(l.length,1)],n}).$$s=i,r.$$arity=2,r.$$has_top_level_mlhs_arg=!0,r))},g.$$arity=0),C.$private(),e.defn(C,"$defined_props",b=function(e){var t,n=this;return $(e,"select",[],((t=function(e){var n=t.$$s||this;return null==e&&(e=a),n.$rules().$keys()["$include?"](e)}).$$s=n,t.$$arity=1,t))},b.$$arity=1),e.defn(C,"$allow_undefined_props?",w=function(){return this.allow_undefined_props["$!"]()["$!"]()},w.$$arity=0),e.defn(C,"$rules",k=function(){var e,t=this;return t.rules=c(e=t.rules)?e:s(["children"],{children:s(["required"],{required:!1})})},k.$$arity=0),e.defn(C,"$define_rule",O=function(n,r){var i=this,o=a;return null==r&&(r=s([],{})),o=[n,i.$coerce_native_hash_values(r)],$(i.$rules(),"[]=",e.to_a(o)),o[t(o.length,1)],i.$props_wrapper().$define_param(n,r["$[]"]("type"),r["$[]"]("alias"))},O.$$arity=-2),e.defn(C,"$errors",q=function(){var e,t=this;return t.errors=c(e=t.errors)?e:[]},q.$$arity=0),e.defn(C,"$validate_types",E=function(t,r){var i=this,o=a,$=a;return c(o=i.$rules()["$[]"](t)["$[]"]("type"))?c(o["$is_a?"](e.const_get_relative(D,"Array"))["$!"]())?($=i.$rules()["$[]"](t)["$[]"]("allow_nil")["$!"]()["$!"](),i.$type_check("`"+t+"`",r,o,$)):c(n(o.$length(),0))?i.$validate_value_array(t,r):($=i.$rules()["$[]"](t)["$[]"]("allow_nil")["$!"]()["$!"](),i.$type_check("`"+t+"`",r,e.const_get_relative(D,"Array"),$)):a},E.$$arity=2),e.defn(C,"$type_check",x=function(e,t,n,r){var i,o=this;return c(c(i=r)?t["$nil?"]():i)?a:c(t["$is_a?"](n))?a:c(c(i=n["$respond_to?"]("_react_param_conversion"))?n.$_react_param_conversion(t,"validate_only"):i)?a:o.$errors()["$<<"]("Provided prop "+e+" could not be converted to "+n)},x.$$arity=4),e.defn(C,"$validate_allowed",A=function(e,t){var n=this,r=a;return c(r=n.$rules()["$[]"](e)["$[]"]("values"))?c(r["$include?"](t))?a:n.$errors()["$<<"]("Value `"+t+"` for prop `"+e+"` is not an allowed value"):a},A.$$arity=2),e.defn(C,"$validate_required",S=function(e){var n,r=this;return $(t(r.$rules().$keys(),e.$keys()),"each",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=a),c(t.$rules()["$[]"](e)["$[]"]("required"))?t.$errors()["$<<"]("Required prop `"+e+"` was not specified"):a}).$$s=r,n.$$arity=1,n))},S.$$arity=1),e.defn(C,"$validate_undefined",M=function(e){var n,r=this;return $(t(e.$keys(),r.$rules().$keys()),"each",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=a),t.$errors()["$<<"]("Provided prop `"+e+"` not specified in spec")}).$$s=r,n.$$arity=1,n))},M.$$arity=1),e.defn(C,"$validate_value_array",N=function(t,n){var r,i=this,o=a,s=a;try{return o=i.$rules()["$[]"](t)["$[]"]("type"),s=i.$rules()["$[]"](t)["$[]"]("allow_nil")["$!"]()["$!"](),$(n,"each_with_index",[],((r=function(e,n){var i=r.$$s||this;return null==e&&(e=a),null==n&&(n=a),i.$type_check("`"+t+"`["+n+"]",i.$Native(e),o["$[]"](0),s)}).$$s=i,r.$$arity=2,r))}catch(c){if(!e.rescue(c,[e.const_get_relative(D,"NoMethodError")]))throw c;try{return i.$errors()["$<<"]("Provided prop `"+t+"` was not an Array")}finally{e.pop_exception()}}},N.$$arity=2),e.defn(C,"$coerce_native_hash_values",T=function(n){var r,i=this;return $(n,"each",[],((r=function(i,o){var s=r.$$s||this,c=a;return null==i&&(i=a),null==o&&(o=a),c=[i,s.$Native(o)],$(n,"[]=",e.to_a(c)),c[t(c.length,1)]}).$$s=i,r.$$arity=2,r))},T.$$arity=1)}(_[0],0,_)}(_[0],_)}(_[0],_)}(r[0],r)},Opal.modules["hyperstack/ext/component/string"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.klass);return function(t,$super,a){function i(){}var o,$=i=r(t,null,"String",i);$.$$proto,[$].concat(a);return e.defn($,"$event_camelize",o=function(){return this.replace(/(^|_)([^_]+)/g,function(e,t,n){return!0?n.substr(0,1).toUpperCase()+n.substr(1):n})},o.$$arity=0),n&&"event_camelize"}(t[0],0,t)},Opal.modules["hyperstack/component/element"]=function(e){var t=e.top,n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.truthy,$=e.hash2,s=e.send,c=e.hash;return e.add_stubs(["$require","$include","$alias_native","$attr_reader","$attr_accessor","$_update_ref","$[]","$properties","$raise","$type","$ref","$dom_node","$each","$!=","$strip","$merge_event_prop!","$to_proc","$shallow_to_n","$empty?","$render","$convert_props","$new","$block","$delete","$private","$=~","$merge_component_event_prop!","$gsub","$include?","$event_camelize","$merge_built_in_event_prop!","$==","$key_code","$instance_variable_get","$merge!","$Array","$ignore_bulk_updates"]),t.$require("hyperstack/ext/component/string"),function(t,n){var l=a(t,"Hyperstack"),u=(l.$$proto,[l].concat(n));!function(t,n){var l=a(t,"Component"),u=(l.$$proto,[l].concat(n));!function(t,$super,n){function a(){}var l,u,_,f,p,d,v,h,y,m,g=a=i(t,null,"Element",a),b=g.$$proto,w=[g].concat(n);b._child_element=b.ref=b.native=b.properties=b.type=r,g.$include(e.const_get_relative(w,"Native")),g.$alias_native("element_type","type"),g.$alias_native("props","props"),g.$attr_reader("type"),g.$attr_reader("properties"),g.$attr_reader("block"),g.$attr_accessor("waiting_on_resources"),e.defn(g,"$initialize",l=function(e,t,n,a){var i,s=this;return null==t&&(t=r),null==n&&(n=$([],{})),null==a&&(a=r),s.type=t,s.properties=o(i=o(void 0===n)?r:n)?i:$([],{}),s.block=a,s.native=e},l.$$arity=-2),e.defn(g,"$_update_ref",u=function(e){var t=this;return t.ref=e,o(t._child_element)?t._child_element.$_update_ref(e):r},u.$$arity=1),e.defn(g,"$ref",_=function(){var e=this;return o(e.ref)?e.ref:(o(e.$properties()["$[]"]("ref"))&&e.$raise("The instance of "+e.$type()+" has not been mounted yet"),e.$raise("Attempt to get a ref on "+e.$type()+" which is a static component."))},_.$$arity=0),e.defn(g,"$dom_node",f=function(){var e=this;return o("function"==typeof e.$ref().$dom_node)?e.$ref().$dom_node():e.$ref()},f.$$arity=0),e.defn(g,"$on",p=function(){var e,t,n=this,a=p.$$p,i=a||r,$=r,c=arguments.length,l=c-0;l<0&&(l=0),t=new Array(l);for(var u=0;u$/))?s(a,"merge_component_event_prop!",[t.$gsub(/^<(.+)>$/,"\\1")],$.$to_proc()):o(e.const_get_qualified(e.const_get_relative(w,"Event"),"BUILT_IN_EVENTS")["$include?"](c="on"+t.$event_camelize()))?s(a,"merge_built_in_event_prop!",[c],$.$to_proc()):t["$=="]("enter")?s(a,"merge_built_in_event_prop!",["onKeyDown"],((n=function(t){n.$$s;return null==t&&(t=r),t.$key_code()["$=="](13)?e.yield1($,t):r}).$$s=a,n.$$arity=1,n)):o(a.type.$instance_variable_get("@native_import"))?s(a,"merge_component_event_prop!",[c],$.$to_proc()):s(a,"merge_component_event_prop!",["on_"+t],$.$to_proc())},h.$$arity=1),e.defn(g,"$merge_built_in_event_prop!",y=function(t){var n=this,a=y.$$p,i=a||r;return a&&(y.$$p=null),n.properties["$merge!"](c(t,function(){var t,r=arguments[0];return 0!=arguments.length&&r.nativeEvent?arguments.length>1?(t=Array.prototype.slice.call(arguments).slice(1,arguments.length),s(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(w,"Internal"),"State"),"Mapper"),"ignore_bulk_updates",[e.const_get_relative(w,"Event").$new(r)].concat(e.to_a(t)),i.$to_proc())):s(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(w,"Internal"),"State"),"Mapper"),"ignore_bulk_updates",[e.const_get_relative(w,"Event").$new(r)],i.$to_proc()):e.yieldX(i,e.to_a(n.$Array(arguments)))}))},y.$$arity=1),e.defn(g,"$merge_component_event_prop!",m=function(t){var n=this,a=m.$$p,i=a||r;return a&&(m.$$p=null),n.properties["$merge!"](c(t,function(){return e.yieldX(i,e.to_a(n.$Array(arguments)))}))},m.$$arity=1)}(u[0],0,u)}(u[0],u)}(n[0],n)},Opal.modules["hyperstack/component/native_library"]=function(Opal){function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$breaker=Opal.breaker,$slice=Opal.slice,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range;return Opal.add_stubs(["$each","$lookup_native_name","$create_component_wrapper","$create_library_wrapper","$raise","$name","$scope_native_name","$+","$downcase","$[]","$import_const_from_native","$const_defined?","$const_get","$render","$to_proc","$private","$native_react_component?","$const_set","$imports","$new","$class_eval","$include"]),function($base,$parent_nesting){var $Hyperstack,self=$Hyperstack=$module($base,"Hyperstack"),def=self.$$proto,$nesting=[self].concat($parent_nesting);!function($base,$parent_nesting){var $Component,self=$Component=$module($base,"Component"),def=self.$$proto,$nesting=[self].concat($parent_nesting);!function($base,$super,$parent_nesting){function $NativeLibrary(){} -var self=$NativeLibrary=$klass($base,$super,"NativeLibrary",$NativeLibrary),def=self.$$proto,$nesting=[self].concat($parent_nesting);(function(self,$parent_nesting){var def=self.$$proto,$nesting=[self].concat($parent_nesting),TMP_imports_1,TMP_rename_3,TMP_import_const_from_native_4,TMP_const_missing_5,TMP_method_missing_6,TMP_lookup_native_name_7,TMP_scope_native_name_8,TMP_create_component_wrapper_10,TMP_create_library_wrapper_11;Opal.defn(self,"$imports",TMP_imports_1=function(e){var t=this;return t.__hyperstack_component_native_prefix=e+".",t},TMP_imports_1.$$arity=1),Opal.defn(self,"$rename",TMP_rename_3=function(e){var t,n=this;return $send(e,"each",[],((t=function(e,n){var r,a=t.$$s||this,i=nil;return null==e&&(e=nil),null==n&&(n=nil),i=a.$lookup_native_name(e),$truthy(a.$lookup_native_name(e))?$truthy(r=a.$create_component_wrapper(a,i,n))?r:a.$create_library_wrapper(a,i,n):a.$raise("class "+a.$name()+" < Hyperstack::Component::NativeLibrary could not import "+e+". Native value "+a.$scope_native_name(e)+" is undefined.")}).$$s=n,t.$$arity=2,t))},TMP_rename_3.$$arity=1),Opal.defn(self,"$import_const_from_native",TMP_import_const_from_native_4=function(e,t,n){var r,a,i,o=this,$=nil;return $=$truthy(r=o.$lookup_native_name(t))?r:o.$lookup_native_name($rb_plus(t["$[]"](0).$downcase(),t["$[]"]($range(1,-1,!1)))),$truthy(r=$)?$truthy(a=o.$create_component_wrapper(e,$,t))?a:$truthy(i=n)?o.$create_library_wrapper(e,$,t):i:r},TMP_import_const_from_native_4.$$arity=3),Opal.defn(self,"$const_missing",TMP_const_missing_5=function(e){var t,n=this,r=TMP_const_missing_5.$$p,a=nil,i=nil,o=nil;for(r&&(TMP_const_missing_5.$$p=null),i=0,o=arguments.length,a=new Array(o);it:e["$>"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.truthy,s=e.send;return e.add_stubs(["$attr_accessor","$waiting_on_resources","$raise_if_not_quiet?","$raise","$new","$!","$remove_nodes_from_args","$build","$waiting_on_resources=","$-","$run_child_block","$nil?","$to_proc","$dup","$tap","$create_element","$detect","$respond_to?","$is_a?","$last","$to_s","$render","$<<","$delete","$include?","$index","$[]=","$[]","$each","$acts_as_string?","$empty?","$!=","$raise_render_error","$==","$count","$improper_render","$>","$try","$class","$define_method","$unshift","$hyper_component?","$send"]),function(r,c){var l=i(r,"Hyperstack"),u=(l.$$proto,[l].concat(c));!function(r,c){var l=i(r,"Internal"),u=(l.$$proto,[l].concat(c));!function(r,c){var l=i(r,"Component"),u=(l.$$proto,[l].concat(c));!function(r,$super,i){function c(){}var l=c=o(r,null,"RenderingContext",c),u=(l.$$proto,[l].concat(i));(function(e,$super,t){function n(){}var r=n=o(e,$super,"NotQuiet",n);r.$$proto,[r].concat(t)})(u[0],e.const_get_relative(u,"Exception"),u),function(r,i){r.$$proto;var o,c,l,u,_,f,p,d,v,h,y,m,g=[r].concat(i);r.$attr_accessor("waiting_on_resources"),e.defn(r,"$raise_if_not_quiet?",o=function(){var e=this;return null==e.raise_if_not_quiet&&(e.raise_if_not_quiet=a),e.raise_if_not_quiet},o.$$arity=0),e.defn(r,"$raise_if_not_quiet=",c=function(e){return this.raise_if_not_quiet=e},c.$$arity=1),e.defn(r,"$quiet_test",l=function(t){var n,r=this;return $($(n=t.$waiting_on_resources())?r["$raise_if_not_quiet?"]():n)?r.$raise(e.const_get_relative(g,"NotQuiet").$new(t+" is waiting on resources")):a},l.$$arity=1),e.defn(r,"$render",u=function(n){var r,i,o,c=this,l=u.$$p,_=l||a,f=a,p=a,d=a;null==c.not_outer_most&&(c.not_outer_most=a),null==c.buffer&&(c.buffer=a);var v=arguments.length,h=v-1;h<0&&(h=0),o=new Array(h);for(var y=1;yt:e["$>"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.send,$=e.truthy;return e.add_stubs(["$include","$each","$to_proc","$lambda","$render","$to_enum","$length","$>","$new","$call","$<<","$alias_method"]),function(n,s){var c=a(n,"Hyperstack"),l=(c.$$proto,[c].concat(s));!function(n,s){var c=a(n,"Component"),l=(c.$$proto,[c].concat(s));!function(n,$super,a){function s(){}var c,l,u,_,f,p=s=i(n,null,"Children",s),d=p.$$proto,v=[p].concat(a);d.children=d.length=r,p.$include(e.const_get_relative(v,"Enumerable")),e.defn(p,"$initialize",c=function(e){return this.children=e},c.$$arity=1),e.defn(p,"$render",l=function(){return o(this,"each",[],"render".$to_proc())},l.$$arity=0),e.defn(p,"$to_proc",u=function(){var e,t=this;return o(t,"lambda",[],((e=function(){return(e.$$s||this).$render()}).$$s=t,e.$$arity=0,e))},u.$$arity=0),e.defn(p,"$each",_=function(){var n,a=this,i=_.$$p,s=i||r,c=r,l=r;return i&&(_.$$p=null),s===r?o(a,"to_enum",["each"],((n=function(){return(n.$$s||this).$length()}).$$s=a,n.$$arity=0,n)):$(t(a.$length(),0))?(c=[],React.Children.forEach(a.children,function(t){l=e.const_get_relative(v,"Element").$new(t),s.$call(l),c["$<<"](l)}),c):[]},_.$$arity=0),e.defn(p,"$length",f=function(){var e,t=this;return t.length=$(e=t.length)?e:React.Children.count(t.children)},f.$$arity=0),p.$alias_method("size","length")}(l[0],0,l)}(l[0],l)}(n[0],n)},Opal.modules["hyperstack/internal/component/instance_methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var n=e.top,r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.truthy,$=e.send,s=e.hash2;return e.add_stubs(["$require","$new","$include?","$param_accessor_style","$raise","$[]","$dom_node","$==","$=~","$pluralize","$set_or_replace_state_or_prop","$to_proc","$private","$lambda","$instance_eval","$callbacks?","$class","$RescueWrapper","$call","$after_error_args=","$-","$__hyperstack_component_run_post_render_hooks","$__hyperstack_component_rescue_wrapper","$__hyperstack_router_wrapper","$shallow_to_n"]),n.$require("hyperstack/component/children"),function(n,r){var c=i(n,"Hyperstack"),l=(c.$$proto,[c].concat(r));!function(n,r){var c=i(n,"Internal"),l=(c.$$proto,[c].concat(r));!function(n,r){var c=i(n,"Component"),l=(c.$$proto,[c].concat(r));!function(n,r){var c,l,u,_,f,p,d,v,h,y,m,g,b,w,k=i(n,"InstanceMethods"),O=(k.$$proto,[k].concat(r)) -;e.defn(k,"$children",c=function(){var t=this;return null==t.__hyperstack_component_native&&(t.__hyperstack_component_native=a),e.const_get_qualified(e.const_get_qualified(e.const_get_relative(O,"Hyperstack"),"Component"),"Children").$new(t.__hyperstack_component_native.props.children)},c.$$arity=0),e.defn(k,"$params",l=function(){var e=this;return null==e.__hyperstack_component_params_wrapper&&(e.__hyperstack_component_params_wrapper=a),o(["hyperstack","accessors"]["$include?"](e.__hyperstack_component_params_wrapper.$param_accessor_style()))&&e.$raise("params are now directly accessible via instance variables.\n to access the legacy behavior add `param_accessor_style = :legacy` to your component class\n to access both behaviors add `param_accessor_style = :both` to your component class"),e.__hyperstack_component_params_wrapper},l.$$arity=0),e.defn(k,"$props",u=function(){var t=this;return null==t.__hyperstack_component_native&&(t.__hyperstack_component_native=a),e.const_get_relative(O,"Hash").$new(t.__hyperstack_component_native.props)},u.$$arity=0),e.defn(k,"$dom_node",_=function(){var e=this;return ReactDOM.findDOMNode(e.__hyperstack_component_native)},_.$$arity=0),e.defn(k,"$jq_node",f=function(){var t=this;return e.const_get_qualified("::","Element")["$[]"](t.$dom_node())},f.$$arity=0),e.defn(k,"$mounted?",p=function(){var e=this;return e.__hyperstack_component_is_mounted!==undefined&&e.__hyperstack_component_is_mounted},p.$$arity=0),e.defn(k,"$pluralize",d=function(e,t,n){var r,i=a;return null==n&&(n=a),i=o(o(r=e["$=="](1))?r:e["$=~"](/^1(\.0+)?$/))?t:o(r=n)?r:t.$pluralize(),(o(r=e)?r:0)+" "+i},d.$$arity=-3),e.defn(k,"$force_update!",v=function(){var e=this;return e.__hyperstack_component_native.forceUpdate(),e},v.$$arity=0),e.defn(k,"$set_state",h=function(e){var t=this,n=h.$$p,r=n||a;return n&&(h.$$p=null),$(t,"set_or_replace_state_or_prop",[e,"setState"],r.$to_proc())},h.$$arity=1),e.defn(k,"$set_state!",y=function(e){var t=this,n=y.$$p,r=n||a;return n&&(y.$$p=null),$(t,"set_or_replace_state_or_prop",[e,"setState"],r.$to_proc()),t.__hyperstack_component_native.forceUpdate()},y.$$arity=1),k.$private(),e.defn(k,"$__hyperstack_router_wrapper",m=function(){var e,t=this,n=m.$$p,r=n||a;return n&&(m.$$p=null),$(t,"lambda",[],((e=function(){var t=e.$$s||this;return $(t,"instance_eval",[],r.$to_proc())}).$$s=t,e.$$arity=0,e))},m.$$arity=0),e.defn(k,"$__hyperstack_component_rescue_wrapper",g=function(t){var n=this;return o(n.$class()["$callbacks?"]("__hyperstack_component_rescue_hook"))?e.const_get_qualified(e.const_get_qualified(e.const_get_relative(O,"Hyperstack"),"Internal"),"Component").$RescueWrapper(s(["child","children_elements"],{child:n,children_elements:t})):t.$call()},g.$$arity=1),e.defn(k,"$__hyperstack_component_select_wrappers",b=function(){var n=this,r=b.$$p,i=r||a,o=a;return r&&(b.$$p=null),o=[a],$(e.const_get_relative(O,"RescueWrapper"),"after_error_args=",e.to_a(o)),o[t(o.length,1)],n.$__hyperstack_component_run_post_render_hooks(n.$__hyperstack_component_rescue_wrapper($(n,"__hyperstack_router_wrapper",[],i.$to_proc())))},b.$$arity=0),e.defn(k,"$set_or_replace_state_or_prop",w=function(e,t){var n=this,r=w.$$p,i=r||a;null==n.__hyperstack_component_native&&(n.__hyperstack_component_native=a),r&&(w.$$p=null),o(n.__hyperstack_component_native)||n.$raise("No native ReactComponent associated");var $=e.$shallow_to_n();if(o(i))if(!0===n.__hyperstack_component_native.__opalInstanceInitializedState)n.__hyperstack_component_native[t]($,function(){i.$call()});else for(var s in $)$.hasOwnProperty(s)&&(n.__hyperstack_component_native.state[s]=$[s]);else if(!0===n.__hyperstack_component_native.__opalInstanceInitializedState)n.__hyperstack_component_native[t]($);else for(var s in $)$.hasOwnProperty(s)&&(n.__hyperstack_component_native.state[s]=$[s])},w.$$arity=2)}(l[0],l)}(l[0],l)}(l[0],l)}(r[0],r)},Opal.modules["hyperstack/internal/component/class_methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var i=[],o=e.nil,$=(e.breaker,e.slice,e.module),s=e.send,c=e.truthy,l=e.range,u=e.hash2,_=e.hash;return e.add_stubs(["$create_element","$to_proc","$render","$deprecation_warning","$select","$mounted_components","$<=","$class","$param_accessor_style","$props_wrapper","$==","$[]","$<<","$each","$before_new_params","$included","$is_a?","$type","$define_method","$__hyperstack_component_select_wrappers","$instance_eval","$__hyperstack_component_after_render_hook","$on","$instance_exec","$empty?","$__hyperstack_component_rescue_hook","$!","$detect","$before_mount","$before_update","$after_mount","$after_update","$any?","$respond_to?","$haml_class_name","$superclass","$copy","$validator","$new","$validate","$>","$count","$+","$name","$join","$default_props","$build","$first","$delete","$merge!","$[]=","$-","$key?","$optional","$requires","$all_other_params","$props","$=~","$gsub","$include?","$event_camelize","$event","$call","$arity","$last","$pop","$state","$singleton_class","$__send__","$mutate","$native_mixins","$static_call_backs","$split","$to_n","$add_item_to_tree","$Native","$create_native_react_class","$reverse","$import_native_component","$eval_native_react_component","$raise","$message","$!=","$length","$inject"]),function(i,f){var p=$(i,"Hyperstack"),d=(p.$$proto,[p].concat(f));!function(i,f){var p=$(i,"Internal"),d=(p.$$proto,[p].concat(f));!function(i,f){var p=$(i,"Component"),d=(p.$$proto,[p].concat(f));!function(i,f){var p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M,N,T,C,I,D,H,z,P,R,j,B,L,U,F,W,Y,G,K=$(i,"ClassMethods"),X=(K.$$proto,[K].concat(f));e.defn(K,"$create_element",p=function(){var t,n=this,r=p.$$p,a=r||o,i=arguments.length,$=i-0;$<0&&($=0),t=new Array($);for(var c=0;c$/))?t.$gsub(/^<(.+)>$/,"\\1"):c(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(X,"Hyperstack"),"Component"),"Event"),"BUILT_IN_EVENTS")["$include?"]("on"+t.$event_camelize()))?"on"+t.$event_camelize():"on_"+t,i.$validator().$event(t),s(i,"define_method",[$],((a=function(){var n,r,i=a.$$s||this,$=arguments.length,c=$-0;c<0&&(c=0),n=new Array(c);for(var l=0;l<$;l++)n[l-0]=arguments[l];return(r=i.$props()["$[]"](t))===o||null==r?o:s(r,"call",e.to_a(n))}).$$s=i,a.$$arity=-1,a))},z.$$arity=-2),e.alias(K,"triggers","fires"),e.defn(K,"$define_state",P=function(){var t,n,r,a,i=this,$=P.$$p,l=$||o,f=o,p=o,d=arguments.length,v=d-0;v<0&&(v=0),a=new Array(v);for(var h=0;ht:e["$>"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.send,$=e.truthy,s=e.klass;return e.add_stubs(["$+","$each","$define_method","$upcase","$render","$to_proc","$const_set","$downcase","$=~","$include?","$create_element","$find_component","$find_name_and_parent","$new","$extend","$private","$name","$split","$>","$length","$last","$[]","$inject","$const_get","$lookup_const","$!","$method_defined?","$raise","$_reactrb_import_component_class","$reverse","$to_s","$class","$detect","$const_defined?","$respond_to?"]),function(r,s){var c=i(r,"Hyperstack"),l=(c.$$proto,[c].concat(s));!function(r,s){var c=i(r,"Internal"),l=(c.$$proto,[c].concat(s));!function(r,s){var c=i(r,"Component"),l=(c.$$proto,[c].concat(s));!function(r,s){var c,l,u,_,f,p=i(r,"Tags"),d=(p.$$proto,[p].concat(s));e.const_set(d[0],"HTML_TAGS",t(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],["circle","clipPath","defs","ellipse","g","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"])),o(e.const_get_relative(d,"HTML_TAGS"),"each",[],((c=function(t){var n,r=c.$$s||this;return null==t&&(t=a),o(r,"define_method",[t.$upcase()],((n=function(){var r,i;n.$$s;(r=n.$$p||a)&&(n.$$p=null);var $=arguments.length,s=$-0;s<0&&(s=0),i=new Array(s);for(var c=0;c<$;c++)i[c-0]=arguments[c];return o(e.const_get_relative(d,"RenderingContext"),"render",[t].concat(e.to_a(i)),r.$to_proc())}).$$s=r,n.$$arity=-1,n)),r.$const_set(t.$upcase(),t)}).$$s=p,c.$$arity=1,c)),e.defs(p,"$html_tag_class_for",l=function(t){var n,r=a;return r=t.$downcase(),$($(n=t["$=~"](/^[A-Z]+$/))?e.const_get_relative(d,"HTML_TAGS")["$include?"](r):n)?e.const_get_relative(d,"Object").$const_set(t,e.const_get_relative(d,"ReactWrapper").$create_element(r)):a},l.$$arity=1),e.defn(p,"$method_missing",u=function(t){var n,r=this,i=u.$$p,s=i||a,c=a,l=a,_=a,f=a,p=arguments.length,v=p-1;v<0&&(v=0),n=new Array(v);for(var h=1;h= v15 you must import it with ReactDOM"),n=n.$$class?n[0]:n,o!==a?(s=function(){setTimeout(function(){e.yieldX(o,[])},0)},c=ReactDOM.render(t.$to_n(),n,s)):c=ReactDOM.render(t.$to_n(),n),$(null!==c)?$(c.__opalInstance!==undefined&&null!==c.__opalInstance)?c.__opalInstance:$(ReactDOM.findDOMNode!==undefined&&c.nodeType===undefined)?ReactDOM.findDOMNode(c):c:a},u.$$arity=2),e.defs(h,"$is_valid_element",_=function(t){var n -;return console.error("Warning: `is_valid_element` is deprecated in favor of `is_valid_element?`."),$(n=t["$kind_of?"](e.const_get_qualified(e.const_get_qualified(e.const_get_relative(y,"Hyperstack"),"Component"),"Element")))?React.isValidElement(t.$to_n()):n},_.$$arity=1),e.defs(h,"$is_valid_element?",f=function(t){var n;return $(n=t["$kind_of?"](e.const_get_qualified(e.const_get_qualified(e.const_get_relative(y,"Hyperstack"),"Component"),"Element")))?React.isValidElement(t.$to_n()):n},f.$$arity=1),e.defs(h,"$render_to_string",p=function(t){var n,r=this;return console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_string` is deprecated in favor of `React::Server.render_to_string`."),$(("undefined"==typeof ReactDOMServer)["$!"]())?o(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(y,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"build",[],((n=function(){n.$$s;return ReactDOMServer.renderToString(t.$to_n())}).$$s=r,n.$$arity=0,n)):r.$raise("renderToString is not defined. In React >= v15 you must import it with ReactDOMServer")},p.$$arity=1),e.defs(h,"$render_to_static_markup",d=function(t){var n,r=this;return console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_static_markup` is deprecated in favor of `React::Server.render_to_static_markup`."),$(("undefined"==typeof ReactDOMServer)["$!"]())?o(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(y,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"build",[],((n=function(){n.$$s;return ReactDOMServer.renderToStaticMarkup(t.$to_n())}).$$s=r,n.$$arity=0,n)):r.$raise("renderToStaticMarkup is not defined. In React >= v15 you must import it with ReactDOMServer")},d.$$arity=1),e.defs(h,"$unmount_component_at_node",v=function(e){var t=this;return $(("undefined"==typeof ReactDOM)["$!"]())?ReactDOM.unmountComponentAtNode(e.$$class?e[0]:e):t.$raise("unmountComponentAtNode is not defined. In React >= v15 you must import it with ReactDOM")},v.$$arity=1)}(c[0],c)}(c[0],c)}(r[0],r)},Opal.modules["hyperstack/internal/component/top_level_rails_component"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.truthy,$=e.send;return e.add_stubs(["$include","$export_component","$param","$backtrace","$top_level_render","$start_with?","$<<","$const_get","$each","$search_path","$class","$name","$!=","$method_defined?","$render","$raise","$join","$search_path=","$-","$!","$include?","$add_to_react_search_path"]),function(t,n){var s=a(t,"Hyperstack"),c=(s.$$proto,[s].concat(n));!function(t,n){var s=a(t,"Internal"),c=(s.$$proto,[s].concat(n));!function(t,n){var s=a(t,"Component"),c=(s.$$proto,[s].concat(n));!function(t,$super,n){function a(){}var s,c,l,u,_=a=i(t,null,"TopLevelRailsComponent",a),f=_.$$proto,p=[_].concat(n);f.ComponentName=f.RenderParams=f.Controller=r,_.$include(e.const_get_qualified(e.const_get_relative(p,"Hyperstack"),"Component")),e.defs(_,"$search_path",s=function(){var t,n=this;return null==n.search_path&&(n.search_path=r),n.search_path=o(t=n.search_path)?t:[e.const_get_relative(p,"Object")]},s.$$arity=0),_.$export_component(),_.$param("component_name"),_.$param("controller"),_.$param("render_params"),_.$backtrace("off"),e.defs(_,"$allow_deprecated_render_definition?",c=function(){return!0},c.$$arity=0),e.defn(_,"$render",l=function(){return this.$top_level_render()},l.$$arity=0),e.defn(_,"$top_level_render",u=function(){var t,n,a,i=this,s=r,c=r;return s=[],c=r,o(i.ComponentName["$start_with?"]("::"))?(s["$<<"](i.ComponentName),c=function(){try{return e.const_get_relative(p,"Object").$const_get(i.ComponentName)}catch(t){if(!e.rescue(t,[e.const_get_relative(p,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}()):(function(){var n=e.new_brk();try{$(i.$class().$search_path(),"each",[],((t=function(a){var i=t.$$s||this;if(null==i.Controller&&(i.Controller=r),null==i.ComponentName&&(i.ComponentName=r),null==a&&(a=r),s["$<<"](a.$name()+"::"+i.Controller+"::"+i.ComponentName),c=function(){try{return a.$const_get(i.Controller,!1).$const_get(i.ComponentName,!1)}catch(t){if(!e.rescue(t,[e.const_get_relative(p,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}(),!o(c["$!="](r)))return r;e.brk(r,n)}).$$s=i,t.$$brk=n,t.$$arity=1,t))}catch(a){if(a===n)return a.$v;throw a}}(),o(c)||function(){var t=e.new_brk();try{$(i.$class().$search_path(),"each",[],((n=function(a){var i=n.$$s||this;if(null==i.ComponentName&&(i.ComponentName=r),null==a&&(a=r),s["$<<"](a.$name()+"::"+i.ComponentName),c=function(){try{return a.$const_get(i.ComponentName,!1)}catch(t){if(!e.rescue(t,[e.const_get_relative(p,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}(),!o(c["$!="](r)))return r;e.brk(r,t)}).$$s=i,n.$$brk=t,n.$$arity=1,n))}catch(a){if(a===t)return a.$v;throw a}}()),o(o(a=c)?c["$method_defined?"]("render"):a)?e.const_get_relative(p,"RenderingContext").$render(c,i.RenderParams):i.$raise("Could not find component class '"+i.ComponentName+"' for @Controller '"+i.Controller+"' in any component directory. Tried ["+s.$join(", ")+"]")},u.$$arity=0)}(c[0],0,c)}(c[0],c)}(c[0],c)}(n[0],n),function(n,$super,a){function s(){}var c,l=s=i(n,null,"Module",s),u=(l.$$proto,[l].concat(a));e.defn(l,"$add_to_react_search_path",c=function(n){var a=this,i=r;return null==n&&(n=r),o(n)?(i=[[a]],$(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(u,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent"),"search_path=",e.to_a(i)),i[t(i.length,1)]):o(e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(u,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent").$search_path()["$include?"](a)["$!"]())?e.const_get_qualified(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(u,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent").$search_path()["$<<"](a):r},c.$$arity=-1)}(n[0],0,n),function(e,t){var n=a(e,"Components");n.$$proto,[n].concat(t);n.$add_to_react_search_path()}(n[0],n)},Opal.modules["hyperstack/component/while_loading"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.hash2,i=e.truthy;return e.add_stubs(["$WhileLoadingWrapper","$!","$on_opal_client?"]),function(t,o){var $=r(t,"Hyperstack"),s=($.$$proto,[$].concat(o));!function(t,o){var $=r(t,"Component"),s=($.$$proto,[$].concat(o));!function(t,o){var $,s,c,l=r(t,"WhileLoading"),u=(l.$$proto,[l].concat(o));if(e.defn(l,"$__hyperstack_component_rescue_wrapper",$=function(t){var n=this;return e.const_get_qualified(e.const_get_qualified(e.const_get_relative(u,"Hyperstack"),"Internal"),"Component").$WhileLoadingWrapper(a(["child","children_elements"],{child:n,children_elements:t}))},$.$$arity=1),e.defn(l,"$resources_loading?",s=function(){var e=this;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=n),e.__hyperstack_while_loading_waiting_on_resources},s.$$arity=0),e.defn(l,"$resources_loaded?",c=function(){var e=this;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=n),e.__hyperstack_while_loading_waiting_on_resources["$!"]()},c.$$arity=0),i(e.const_get_qualified(e.const_get_qualified(e.const_get_relative(u,"Hyperstack"),"Component"),"IsomorphicHelpers")["$on_opal_client?"]())){function _(e){e.message.match(/^Uncaught NotQuiet: /)&&e.preventDefault()}window.addEventListener("error",_)}}(s[0],s)}(s[0],s)}(t[0],t)},Opal.modules["hyperstack/component/free_render"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.send,i=e.truthy;return e.add_stubs(["$instance_eval","$const_defined?","$const_get","$is_a?","$method_defined?","$include?","$render","$to_proc","$hyperstack_component_original_meth_missing"]),function(t,o){var $=r(t,"Hyperstack"),s=($.$$proto,[$].concat(o));!function(t,o){var $=r(t,"Component"),s=($.$$proto,[$].concat(o));!function(t,o){var $,s=r(t,"FreeRender"),c=(s.$$proto,[s].concat(o));e.defs(s,"$included",$=function(t){var r,o=this;return a(t,"instance_eval",[],((r=function(){var t,o=r.$$s||this;return e.alias(o,"hyperstack_component_original_meth_missing","method_missing"),e.def(o,"$method_missing",t=function(r){var o,$,s,l,u=this,_=t.$$p,f=_||n,p=n,d=arguments.length,v=d-1;v<0&&(v=0),l=new Array(v);for(var h=1;ht?"i":"").test(c))return p(l,c,$,t);$?(l.s=0>1/e?(c=c.slice(1),-1):1,F&&c.replace(/^0\.0*|\./,"").length>15&&T(D,g,e),$=!1):l.s=45===c.charCodeAt(0)?(c=c.slice(1),-1):1,c=o(c,10,t,l.s)}else{if(e instanceof i)return l.s=e.s,l.e=e.e,l.c=(e=e.c)?e.slice():e,void(D=0);if(($="number"==typeof e)&&0*e==0){if(l.s=0>1/e?(e=-e,-1):1,e===~~e){for(r=0,a=e;a>=10;a/=10,r++);return l.e=r,l.c=[e],void(D=0)}c=e+""}else{if(!d.test(c=e+""))return p(l,c,$);l.s=45===c.charCodeAt(0)?(c=c.slice(1),-1):1}}for((r=c.indexOf("."))>-1&&(c=c.replace(".","")),(a=c.search(/e/i))>0?(0>r&&(r=a),r+=+c.slice(a+1),c=c.substring(0,a)):0>r&&(r=c.length),a=0;48===c.charCodeAt(a);a++);for(s=c.length;48===c.charCodeAt(--s););if(c=c.slice(a,s+1))if(s=c.length,$&&F&&s>15&&T(D,g,l.s*e),(r=r-a-1)>U)l.c=l.e=null;else if(L>r)l.c=[l.e=0];else{if(l.e=r,l.c=[],a=(r+1)%k,0>r&&(a+=k),s>a){for(a&&l.c.push(+c.slice(0,a)),s-=k;s>a;)l.c.push(+c.slice(a,a+=k));c=c.slice(a),a=k-c.length}else a-=s;for(;a--;c+="0");l.c.push(+c)}else l.c=[l.e=0];D=0}function o(e,t,n,a){var o,$,s,l,_,f,p,d=e.indexOf("."),v=P,h=R;for(37>n&&(e=e.toLowerCase()),d>=0&&(s=K,K=0,e=e.replace(".",""),_=(p=new i(n)).pow(e.length-d),K=s,p.c=c(u(r(_.c),_.e),10,t),p.e=p.c.length),$=s=(f=c(e,n,t)).length;0==f[--s];f.pop());if(!f[0])return"0";if(0>d?--$:(_.c=f,_.e=$,_.s=a,f=(_=I(_,p,v,h,t)).c,l=_.r,$=_.e),d=f[o=$+v+1],s=t/2,l=l||0>o||null!=f[o+1],l=4>h?(null!=d||l)&&(0==h||h==(_.s<0?3:2)):d>s||d==s&&(4==h||l||6==h&&1&f[o-1]||h==(_.s<0?8:7)),1>o||!f[0])e=l?u("1",-v):"0";else{if(f.length=o,l)for(--t;++f[--o]>t;)f[o]=0,o||(++$,f.unshift(1));for(s=f.length;!f[--s];);for(d=0,e="";s>=d;e+=b.charAt(f[d++]));e=u(e,$)}return e}function A(e,t,n,a){var o,$,s,c,_;if(n=null!=n&&W(n,0,8,a,m)?0|n:R,!e.c)return e.toString();if(o=e.c[0],s=e.e,null==t)_=r(e.c),_=19==a||24==a&&j>=s?l(_,s):u(_,s);else if($=(e=C(new i(e),t,n)).e,c=(_=r(e.c)).length,19==a||24==a&&($>=t||j>=$)){for(;t>c;_+="0",c++);_=l(_,$)}else if(t-=s,_=u(_,$),$+1>c){if(--t>0)for(_+=".";t--;_+="0");}else if((t+=$-c)>0)for($+1==c&&(_+=".");t--;_+="0");return e.s<0&&o?"-"+_:_}function S(e,t){var n,r,a=0;for(s(e[0])&&(e=e[0]),n=new i(e[0]);++ae||e>n||e!=_(e))&&T(r,(a||"decimal places")+(t>e||e>n?" out of range":" not an integer"),e),!0}function N(e,t,n){for(var r=1,a=t.length;!t[--a];t.pop());for(a=t[0];a>=10;a/=10,r++);return(n=r+n*k-1)>U?e.c=e.e=null:L>n?e.c=[e.e=0]:(e.e=n,e.c=t),e}function T(e,t,n){var r=new Error(["new BigNumber","cmp","config","div","divToInt","eq","gt","gte","lt","lte","minus","mod","plus","precision","random","round","shift","times","toDigits","toExponential","toFixed","toFormat","toFraction","pow","toPrecision","toString","BigNumber"][e]+"() "+t+": "+n);throw r.name="BigNumber Error",D=0,r}function C(e,t,n,r){var a,i,o,$,s,c,l,u=e.c,_=q;if(u){e:{for(a=1,$=u[0];$>=10;$/=10,a++);if(0>(i=t-a))i+=k,o=t,l=(s=u[c=0])/_[a-o-1]%10|0;else if((c=v((i+1)/k))>=u.length){if(!r)break e;for(;u.length<=c;u.push(0));s=l=0,a=1,o=(i%=k)-k+1}else{for(s=$=u[c],a=1;$>=10;$/=10,a++);l=0>(o=(i%=k)-k+a)?0:s/_[a-o-1]%10|0}if(r=r||0>t||null!=u[c+1]||(0>o?s:s%_[a-o-1]),r=4>n?(l||r)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||r||6==n&&(i>0?o>0?s/_[a-o]:0:u[c-1])%10&1||n==(e.s<0?8:7)),1>t||!u[0])return u.length=0,r?(t-=e.e+1,u[0]=_[(k-t%k)%k],e.e=-t||0):u[0]=e.e=0,e;if(0==i?(u.length=c,$=1,c--):(u.length=c+1,$=_[k-i],u[c]=o>0?h(s/_[a-o]%_[o])*$:0),r)for(;;){if(0==c){for(i=1,o=u[0];o>=10;o/=10,i++);for(o=u[0]+=$,$=1;o>=10;o/=10,$++);i!=$&&(e.e++,u[0]==w&&(u[0]=1));break}if(u[c]+=$,u[c]!=w)break;u[c--]=0,$=1}for(i=u.length;0===u[--i];u.pop());}e.e>U?e.c=e.e=null:e.en?null!=(e=a[n++]):void 0};return o(t="DECIMAL_PLACES")&&W(e,0,x,2,t)&&(P=0|e),r[t]=P,o(t="ROUNDING_MODE")&&W(e,0,8,2,t)&&(R=0|e),r[t]=R,o(t="EXPONENTIAL_AT")&&(s(e)?W(e[0],-x,0,2,t)&&W(e[1],0,x,2,t)&&(j=0|e[0],B=0|e[1]):W(e,-x,x,2,t)&&(j=-(B=0|(0>e?-e:e)))),r[t]=[j,B],o(t="RANGE")&&(s(e)?W(e[0],-x,-1,2,t)&&W(e[1],1,x,2,t)&&(L=0|e[0],U=0|e[1]):W(e,-x,x,2,t)&&(0|e?L=-(U=0|(0>e?-e:e)):F&&T(2,t+" cannot be zero",e))),r[t]=[L,U],o(t="ERRORS")&&(e===!!e||1===e||0===e?(D=0,W=(F=!!e)?M:$):F&&T(2,t+y,e)),r[t]=F,o(t="CRYPTO")&&(e===!!e||1===e||0===e?(Y=!(!e||!f),e&&!Y&&F&&T(2,"crypto unavailable",f)):F&&T(2,t+y,e)),r[t]=Y,o(t="MODULO_MODE")&&W(e,0,9,2,t)&&(G=0|e),r[t]=G,o(t="POW_PRECISION")&&W(e,0,x,2,t)&&(K=0|e),r[t]=K,o(t="FORMAT")&&("object"==typeof e?X=e:F&&T(2,t+" not an object",e)),r[t]=X,r},i.max=function(){return S(arguments,H.lt)},i.min=function(){return S(arguments,H.gt)},i.random=function(){var e=9007199254740992,t=Math.random()*e&2097151?function(){return h(Math.random()*e)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(e){var n,r,a,o,$,s=0,c=[],l=new i(z);if(e=null!=e&&W(e,0,x,14)?0|e:P,o=v(e/k),Y)if(f&&f.getRandomValues){for(n=f.getRandomValues(new Uint32Array(o*=2));o>s;)($=131072*n[s]+(n[s+1]>>>11))>=9e15?(r=f.getRandomValues(new Uint32Array(2)),n[s]=r[0],n[s+1]=r[1]):(c.push($%1e14),s+=2);s=o/2}else if(f&&f.randomBytes){for(n=f.randomBytes(o*=7);o>s;)($=281474976710656*(31&n[s])+1099511627776*n[s+1]+4294967296*n[s+2]+16777216*n[s+3]+(n[s+4]<<16)+(n[s+5]<<8)+n[s+6])>=9e15?f.randomBytes(7).copy(n,s):(c.push($%1e14),s+=7);s=o/7}else F&&T(14,"crypto unavailable",f);if(!s)for(;o>s;)9e15>($=t())&&(c[s++]=$%1e14);for(o=c[--s],e%=k,o&&e&&($=q[k-e],c[s]=h(o/$)*$);0===c[s];c.pop(),s--);if(0>s)c=[a=0];else{for(a=-1;0===c[0];c.shift(),a-=k);for(s=1,$=c[0];$>=10;$/=10,s++);k>s&&(a-=k-s)}return l.e=a,l.c=c,l}}(),I=function(){function e(e,t,n){var r,a,i,o,$=0,s=e.length,c=t%E,l=t/E|0;for(e=e.slice();s--;)$=((a=c*(i=e[s]%E)+(r=l*i+(o=e[s]/E|0)*c)%E*E+$)/n|0)+(r/E|0)+l*o,e[s]=a%n;return $&&e.unshift($),e}function t(e,t,n,r){var a,i;if(n!=r)i=n>r?1:-1;else for(a=i=0;n>a;a++)if(e[a]!=t[a]){i=e[a]>t[a]?1:-1;break}return i}function r(e,t,n,r){for(var a=0;n--;)e[n]-=a,a=e[n]1;e.shift());}return function(a,o,$,s,c){var l,u,_,f,p,d,v,y,m,g,b,O,q,E,x,A,S,M=a.s==o.s?1:-1,N=a.c,T=o.c;if(!(N&&N[0]&&T&&T[0]))return new i(a.s&&o.s&&(N?!T||N[0]!=T[0]:T)?N&&0==N[0]||!T?0*M:M/0:NaN);for(m=(y=new i(M)).c=[],M=$+(u=a.e-o.e)+1,c||(c=w,u=n(a.e/k)-n(o.e/k),M=M/k|0),_=0;T[_]==(N[_]||0);_++);if(T[_]>(N[_]||0)&&u--,0>M)m.push(1),f=!0;else{for(E=N.length,A=T.length,_=0,M+=2,(p=h(c/(T[0]+1)))>1&&(T=e(T,p,c),N=e(N,p,c),A=T.length,E=N.length),q=A,b=(g=N.slice(0,A)).length;A>b;g[b++]=0);(S=T.slice()).unshift(0),x=T[0],T[1]>=c/2&&x++;do{if(p=0,0>(l=t(T,g,A,b))){if(O=g[0],A!=b&&(O=O*c+(g[1]||0)),(p=h(O/x))>1)for(p>=c&&(p=c-1),v=(d=e(T,p,c)).length,b=g.length;1==t(d,g,v,b);)p--,r(d,v>A?S:T,v,c),v=d.length,l=1;else 0==p&&(l=p=1),v=(d=T.slice()).length;if(b>v&&d.unshift(0),r(g,d,b,c),b=g.length,-1==l)for(;t(T,g,A,b)<1;)p++,r(g,b>A?S:T,b,c),b=g.length}else 0===l&&(p++,g=[0]);m[_++]=p,g[0]?g[b++]=N[q]||0:(g=[N[q]],b=1)}while((q++=10;M/=10,_++);C(y,$+(y.e=_+u*k-1)+1,s,f)}else y.e=u,y.r=+f;return y}}(),p=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,t=/^([^.]+)\.$/,n=/^\.([^.]+)$/,r=/^-?(Infinity|NaN)$/,a=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(o,$,s,c){var l,u=s?$:$.replace(a,"");if(r.test(u))o.s=isNaN(u)?null:0>u?-1:1;else{if(!s&&(u=u.replace(e,function(e,t,n){return l="x"==(n=n.toLowerCase())?16:"b"==n?2:8,c&&c!=l?e:t}),c&&(l=c,u=u.replace(t,"$1").replace(n,"0.$1")),$!=u))return new i(u,l);F&&T(D,"not a"+(c?" base "+c:"")+" number",$),o.s=null}o.c=o.e=null,D=0}}(),H.absoluteValue=H.abs=function(){var e=new i(this);return e.s<0&&(e.s=1),e},H.ceil=function(){return C(new i(this),this.e+1,2)},H.comparedTo=H.cmp=function(e,t){return D=1,a(this,new i(e,t))},H.decimalPlaces=H.dp=function(){var e,t,r=this.c;if(!r)return null;if(e=((t=r.length-1)-n(this.e/k))*k,t=r[t])for(;t%10==0;t/=10,e--);return 0>e&&(e=0),e},H.dividedBy=H.div=function(e,t){return D=3,I(this,new i(e,t),P,R)},H.dividedToIntegerBy=H.divToInt=function(e,t){return D=4,I(this,new i(e,t),0,1)},H.equals=H.eq=function(e,t){return D=5,0===a(this,new i(e,t))},H.floor=function(){return C(new i(this),this.e+1,3)},H.greaterThan=H.gt=function(e,t){return D=6,a(this,new i(e,t))>0},H.greaterThanOrEqualTo=H.gte=function(e,t){return D=7,1===(t=a(this,new i(e,t)))||0===t},H.isFinite=function(){return!!this.c},H.isInteger=H.isInt=function(){return!!this.c&&n(this.e/k)>this.c.length-2},H.isNaN=function(){return!this.s},H.isNegative=H.isNeg=function(){return this.s<0},H.isZero=function(){return!!this.c&&0==this.c[0]},H.lessThan=H.lt=function(e,t){return D=8,a(this,new i(e,t))<0},H.lessThanOrEqualTo=H.lte=function(e,t){return D=9,-1===(t=a(this,new i(e,t)))||0===t},H.minus=H.sub=function(e,t){var r,a,o,$,s=this,c=s.s;if(D=10,t=(e=new i(e,t)).s,!c||!t)return new i(NaN);if(c!=t)return e.s=-t,s.plus(e);var l=s.e/k,u=e.e/k,_=s.c,f=e.c;if(!l||!u){if(!_||!f)return _?(e.s=-t,e):new i(f?s:NaN);if(!_[0]||!f[0])return f[0]?(e.s=-t,e):new i(_[0]?s:3==R?-0:0)}if(l=n(l),u=n(u),_=_.slice(),c=l-u){for(($=0>c)?(c=-c,o=_):(u=l,o=f),o.reverse(),t=c;t--;o.push(0));o.reverse()}else for(a=($=(c=_.length)<(t=f.length))?c:t,c=t=0;a>t;t++)if(_[t]!=f[t]){$=_[t]0)for(;t--;_[r++]=0);for(t=w-1;a>c;){if(_[--a]0?(s=$,r=l):(o=-o,r=c),r.reverse();o--;r.push(0));r.reverse()}for(0>(o=c.length)-(t=l.length)&&(r=l,l=c,c=r,t=o),o=0;t;)o=(c[--t]=c[t]+l[t]+o)/w|0,c[t]%=w;return o&&(c.unshift(o),++s),N(e,c,s)},H.precision=H.sd=function(e){var t,n,r=this,a=r.c;if(null!=e&&e!==!!e&&1!==e&&0!==e&&(F&&T(13,"argument"+y,e),e!=!!e&&(e=null)),!a)return null;if(t=(n=a.length-1)*k+1,n=a[n]){for(;n%10==0;n/=10,t--);for(n=a[0];n>=10;n/=10,t++);}return e&&r.e+1>t&&(t=r.e+1),t},H.round=function(e,t){var n=new i(this);return(null==e||W(e,0,x,15))&&C(n,~~e+this.e+1,null!=t&&W(t,0,8,15,m)?0|t:R),n},H.shift=function(e){var t=this;return W(e,-O,O,16,"argument")?t.times("1e"+_(e)):new i(t.c&&t.c[0]&&(-O>e||e>O)?t.s*(0>e?0:1/0):t)},H.squareRoot=H.sqrt=function(){var e,t,a,o,$,s=this,c=s.c,l=s.s,u=s.e,_=P+4,f=new i("0.5");if(1!==l||!c||!c[0])return new i(!l||0>l&&(!c||c[0])?NaN:c?s:1/0);if(0==(l=Math.sqrt(+s))||l==1/0?(((t=r(c)).length+u)%2==0&&(t+="0"),l=Math.sqrt(t),u=n((u+1)/2)-(0>u||u%2),l==1/0?t="1e"+u:t=(t=l.toExponential()).slice(0,t.indexOf("e")+1)+u,a=new i(t)):a=new i(l+""),a.c[0])for(3>(l=(u=a.e)+_)&&(l=0);;)if($=a,a=f.times($.plus(I(s,$,_,1))),r($.c).slice(0,l)===(t=r(a.c)).slice(0,l)){if(a.el&&(v=g,g=b,b=v,o=l,l=f,f=o),o=l+f,v=[];o--;v.push(0));for(h=w,y=E,o=f;--o>=0;){for(r=0,p=b[o]%y,d=b[o]/y|0,$=o+(s=l);$>o;)r=((u=p*(u=g[--s]%y)+(c=d*u+(_=g[s]/y|0)*p)%y*y+v[$]+r)/h|0)+(c/y|0)+d*_,v[$--]=u%h;v[$]=r}return r?++a:v.shift(),N(e,v,a)},H.toDigits=function(e,t){var n=new i(this);return e=null!=e&&W(e,1,x,18,"precision")?0|e:null,t=null!=t&&W(t,0,8,18,m)?0|t:R,e?C(n,e,t):n},H.toExponential=function(e,t){return A(this,null!=e&&W(e,0,x,19)?1+~~e:null,t,19)},H.toFixed=function(e,t){return A(this,null!=e&&W(e,0,x,20)?~~e+this.e+1:null,t,20)},H.toFormat=function(e,t){var n=A(this,null!=e&&W(e,0,x,21)?~~e+this.e+1:null,t,21);if(this.c){var r,a=n.split("."),i=+X.groupSize,o=+X.secondaryGroupSize,$=X.groupSeparator,s=a[0],c=a[1],l=this.s<0,u=l?s.slice(1):s,_=u.length;if(o&&(r=i,i=o,o=r,_-=r),i>0&&_>0){for(r=_%i||i,s=u.substr(0,r);_>r;r+=i)s+=$+u.substr(r,i);o>0&&(s+=$+u.slice(r)),l&&(s="-"+s)}n=c?s+X.decimalSeparator+((o=+X.fractionGroupSize)?c.replace(new RegExp("\\d{"+o+"}\\B","g"),"$&"+X.fractionGroupSeparator):c):s}return n},H.toFraction=function(e){var t,n,a,o,$,s,c,l,u,_=F,f=this,p=f.c,d=new i(z),v=n=new i(z),h=c=new i(z);if(null!=e&&(F=!1,s=new i(e),F=_,(!(_=s.isInt())||s.lt(z))&&(F&&T(22,"max denominator "+(_?"out of range":"not an integer"),e),e=!_&&s.c&&C(s,s.e+1,1).gte(z)?s:null)),!p)return f.toString();for(u=r(p),o=d.e=u.length-f.e-1,d.c[0]=q[($=o%k)<0?k+$:$],e=!e||s.cmp(d)>0?o>0?d:v:s,$=U,U=1/0,s=new i(u),c.c[0]=0;l=I(s,d,0,1),1!=(a=n.plus(l.times(h))).cmp(e);)n=h,h=a,v=c.plus(l.times(a=v)),c=a,d=s.minus(l.times(a=d)),s=a;return a=I(e.minus(n),h,0,1),c=c.plus(a.times(v)),n=n.plus(a.times(h)),c.s=v.s=f.s,t=I(v,h,o*=2,R).minus(f).abs().cmp(I(c,n,o,R).minus(f).abs())<1?[v.toString(),h.toString()]:[c.toString(),n.toString()],U=$,t},H.toNumber=function(){return+this},H.toPower=H.pow=function(e){var t,n,r=h(0>e?-e:+e),a=this;if(!W(e,-O,O,23,"exponent")&&(!isFinite(e)||r>O&&(e/=0)||parseFloat(e)!=e&&!(e=NaN)))return new i(Math.pow(+a,e));for(t=K?v(K/k+2):0,n=new i(z);;){if(r%2){if(!(n=n.times(a)).c)break;t&&n.c.length>t&&(n.c.length=t)}if(!(r=h(r/2)))break;a=a.times(a),t&&a.c&&a.c.length>t&&(a.c.length=t)}return 0>e&&(n=z.div(n)),t?C(n,K,R):n},H.toPrecision=function(e,t){return A(this,null!=e&&W(e,1,x,24,"precision")?0|e:null,t,24)},H.toString=function(e){var t,n=this,a=n.s,i=n.e;return null===i?a?(t="Infinity",0>a&&(t="-"+t)):t="NaN":(t=r(n.c),t=null!=e&&W(e,2,64,25,"base")?o(u(t,i),0|e,10,a):j>=i||i>=B?l(t,i):u(t,i),0>a&&n.c[0]&&(t="-"+t)),t},H.truncated=H.trunc=function(){return C(new i(this),this.e+1,1)},H.valueOf=H.toJSON=function(){var e,t=this,n=t.e;return null===n?t.toString():(e=r(t.c),e=j>=n||n>=B?l(e,n):u(e,n),t.s<0?"-"+e:e)},null!=e&&i.config(e),i}function n(e){var t=0|e;return e>0||e===t?t:t-1}function r(e){for(var t,n,r=1,a=e.length,i=e[0]+"";a>r;){for(t=e[r++]+"",n=k-t.length;n--;t="0"+t);i+=t}for(a=i.length;48===i.charCodeAt(--a););return i.slice(0,a+1||1)}function a(e,t){var n,r,a=e.c,i=t.c,o=e.s,$=t.s,s=e.e,c=t.e;if(!o||!$)return null;if(n=a&&!a[0],r=i&&!i[0],n||r)return n?r?0:-$:o;if(o!=$)return o;if(n=0>o,r=s==c,!a||!i)return r?0:!a^n?1:-1;if(!r)return s>c^n?1:-1;for($=(s=a.length)<(c=i.length)?s:c,o=0;$>o;o++)if(a[o]!=i[o])return a[o]>i[o]^n?1:-1;return s==c?0:s>c^n?1:-1}function $(e,t,n){return(e=_(e))>=t&&n>=e}function s(e){return"[object Array]"==Object.prototype.toString.call(e)}function c(e,t,n){for(var r,a,i=[0],o=0,$=e.length;$>o;){for(a=i.length;a--;i[a]*=t);for(i[r=0]+=b.indexOf(e.charAt(o++));rn-1&&(null==i[r+1]&&(i[r+1]=0),i[r+1]+=i[r]/n|0,i[r]%=n)}return i.reverse()}function l(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(0>t?"e":"e+")+t}function u(e,t){var n,r;if(0>t){for(r="0.";++t;r+="0");e=r+e}else if(++t>(n=e.length)){for(r="0",t-=n;--t;r+="0");e+=r}else n>t&&(e=e.slice(0,t)+"."+e.slice(t));return e}function _(e){return 0>(e=parseFloat(e))?v(e):h(e)}var f,p,d=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,v=Math.ceil,h=Math.floor,y=" not a boolean or binary digit",m="rounding mode",g="number type has more than 15 significant digits",b="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",w=1e14,k=14,O=9007199254740991,q=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],E=1e7,x=1e9;if("undefined"!=typeof crypto&&(f=crypto),"function"==typeof o&&o.amd)o(function(){return t()});else if("undefined"!=typeof module&&module.exports){if(module.exports=t(),!f)try{f=require("crypto")}catch(A){}}else e||(e=void 0!==i?i:Function("return this")()),e.BigNumber=t()}(this)}(t[0],0,t)},Opal.modules.bigdecimal=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e/t:e["$/"](t)}var i=e.top,o=[],$=e.nil,s=(e.breaker,e.slice,e.klass),c=e.truthy,l=e.send;return e.add_stubs(["$require","$===","$attr_reader","$new","$class","$bignumber","$nan?","$==","$raise","$<","$coerce","$>","$mode","$>=","$/","$zero?","$infinite?","$finite?"]),function(e,$super,t){function n(){}var r=n=s(e,$super,"BigDecimal",n);r.$$proto,[r].concat(t)}(o[0],e.const_get_relative(o,"Numeric"),o),i.$require("js"),i.$require("bigdecimal/kernel"),i.$require("bigdecimal/bignumber.js"),function(i,$super,o){function u(){}var _,f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M,N,T,C,I,D,H,z=u=s(i,null,"BigDecimal",u),P=(z.$$proto,[z].concat(o));return e.const_set(P[0],"ROUND_MODE",256),e.const_set(P[0],"ROUND_UP",0),e.const_set(P[0],"ROUND_DOWN",1),e.const_set(P[0],"ROUND_CEILING",2),e.const_set(P[0],"ROUND_FLOOR",3),e.const_set(P[0],"ROUND_HALF_UP",4),e.const_set(P[0],"ROUND_HALF_DOWN",5),e.const_set(P[0],"ROUND_HALF_EVEN",6),e.const_set(P[0],"SIGN_NaN",0),e.const_set(P[0],"SIGN_POSITIVE_ZERO",1),e.const_set(P[0],"SIGN_NEGATIVE_ZERO",-1),e.const_set(P[0],"SIGN_POSITIVE_FINITE",2),e.const_set(P[0],"SIGN_NEGATIVE_FINITE",-2),e.const_set(P[0],"SIGN_POSITIVE_INFINITE",3),e.const_set(P[0],"SIGN_NEGATIVE_INFINITE",-3),e.defs(z,"$limit",_=function(e){var t=this;return null==t.digits&&(t.digits=$),null==e&&(e=$),c(e)&&(t.digits=e),t.digits},_.$$arity=-1),e.defs(z,"$mode",f=function(t,n){var r,a=this,i=$;return null==a.round_mode&&(a.round_mode=$),null==n&&(n=$),i=t,e.const_get_relative(P,"ROUND_MODE")["$==="](i)?(c(n)&&(a.round_mode=n),c(r=a.round_mode)?r:e.const_get_relative(P,"ROUND_HALF_UP")):$},f.$$arity=-2),z.$attr_reader("bignumber"),e.defn(z,"$initialize",p=function(t,n){return null==n&&(n=0),this.bignumber=e.const_get_relative(P,"JS").$new(e.const_get_relative(P,"BigNumber"),t)},p.$$arity=-2),e.defn(z,"$==",d=function(t){var n=this,r=$;return r=t,n.$class()["$==="](r)?n.$bignumber().equals(t.$bignumber()):!!e.const_get_relative(P,"Number")["$==="](r)&&n.$bignumber().equals(t)},d.$$arity=1),e.alias(z,"===","=="),e.defn(z,"$<=>",v=function(t){var n=this,r=$,a=$;return r=t,null===(a=n.$class()["$==="](r)?n.$bignumber().comparedTo(t.$bignumber()):e.const_get_relative(P,"Number")["$==="](r)?n.$bignumber().comparedTo(t):$)?$:a},v.$$arity=1),e.defn(z,"$<",h=function(t){var n,r,a=this,i=h.$$p,o=$,s=$,u=$;for(i&&(h.$$p=null),s=0,u=arguments.length,o=new Array(u);s",m=function(t){var n,r,a=this,i=m.$$p,o=$,s=$,u=$;for(i&&(m.$$p=null),s=0,u=arguments.length,o=new Array(u);s",m,!1),o,i)},m.$$arity=1),e.defn(z,"$>=",g=function(t){var n,r,a=this,i=g.$$p,o=$,s=$,u=$;for(i&&(g.$$p=null),s=0,u=arguments.length,o=new Array(u);s=",g,!1),o,i)},g.$$arity=1),e.defn(z,"$abs",b=function(){var e=this;return e.$class().$new(e.$bignumber().abs())},b.$$arity=0),e.defn(z,"$add",w=function(r,a){var i,o,s=this,l=$;return null==a&&(a=0),a["$=="]($)&&s.$raise(e.const_get_relative(P,"TypeError"),"wrong argument type nil (expected Fixnum)"),c(t(a,0))&&s.$raise(e.const_get_relative(P,"ArgumentError"),"argument must be positive"),o=s.$coerce(r),r=null==(i=e.to_ary(o))[0]?$:i[0],null==i[1]?$:i[1],l=s.$bignumber().plus(r.$bignumber()),c(n(a,0))&&(l=l.toDigits(a,s.$class().$mode(e.const_get_relative(P,"ROUND_MODE")))),s.$class().$new(l)},w.$$arity=-2),e.alias(z,"+","add"),e.defn(z,"$ceil",k=function(t){var n=this;return null==t&&(t=$),c(n.$bignumber().isFinite())||n.$raise(e.const_get_relative(P,"FloatDomainError"),"Computation results to 'Infinity'"),t["$=="]($)?n.$bignumber().round(0,e.const_get_relative(P,"ROUND_CEILING")).toNumber():c(r(t,0))?n.$class().$new(n.$bignumber().round(t,e.const_get_relative(P,"ROUND_CEILING"))):n.$class().$new(n.$bignumber().round(0,e.const_get_relative(P,"ROUND_CEILING")))},k.$$arity=-1),e.defn(z,"$coerce",O=function(t){var n=this,r=$;return r=t,n.$class()["$==="](r)?[t,n]:e.const_get_relative(P,"Number")["$==="](r)?[n.$class().$new(t),n]:n.$raise(e.const_get_relative(P,"TypeError"),t.$class()+" can't be coerced into "+n.$class())},O.$$arity=1),e.defn(z,"$div",q=function(t,n){var r,i,o=this;return null==n&&(n=$),n["$=="](0)?a(o,t):(i=o.$coerce(t),t=null==(r=e.to_ary(i))[0]?$:r[0],null==r[1]?$:r[1],c(c(r=o["$nan?"]())?r:t["$nan?"]())&&o.$raise(e.const_get_relative(P,"FloatDomainError"),"Computation results to 'NaN'(Not a Number)"),n["$=="]($)?(c(t["$zero?"]())&&o.$raise(e.const_get_relative(P,"ZeroDivisionError"),"divided by 0"),c(o["$infinite?"]())&&o.$raise(e.const_get_relative(P,"FloatDomainError"),"Computation results to 'Infinity'"),o.$class().$new(o.$bignumber().dividedToIntegerBy(t.$bignumber()))):o.$class().$new(o.$bignumber().dividedBy(t.$bignumber()).round(n,o.$class().$mode(e.const_get_relative(P,"ROUND_MODE")))))},q.$$arity=-2),e.defn(z,"$finite?",E=function(){return this.$bignumber().isFinite()},E.$$arity=0),e.defn(z,"$infinite?",x=function(){var e,t=this;return c(c(e=t["$finite?"]())?e:t["$nan?"]())?$:c(t.$bignumber().isNegative())?-1:1},x.$$arity=0),e.defn(z,"$minus",A=function(t){var n,r,a=this;return r=a.$coerce(t),t=null==(n=e.to_ary(r))[0]?$:n[0],null==n[1]?$:n[1],a.$class().$new(a.$bignumber().minus(t.$bignumber()))},A.$$arity=1),e.alias(z,"-","minus"),e.defn(z,"$mult",S=function(t,n){var r,a,i=this;return null==n&&(n=$),a=i.$coerce(t),t=null==(r=e.to_ary(a))[0]?$:r[0],null==r[1]?$:r[1],n["$=="]($)?i.$class().$new(i.$bignumber().times(t.$bignumber())):i.$class().$new(i.$bignumber().times(t.$bignumber()).round(n,i.$class().$mode(e.const_get_relative(P,"ROUND_MODE"))))},S.$$arity=-2),e.alias(z,"*","mult"),e.defn(z,"$nan?",M=function(){return this.$bignumber().isNaN()},M.$$arity=0),e.defn(z,"$quo",N=function(t){var n,r,a=this;return r=a.$coerce(t),t=null==(n=e.to_ary(r))[0]?$:n[0],null==n[1]?$:n[1],a.$class().$new(a.$bignumber().dividedBy(t.$bignumber()))},N.$$arity=1),e.alias(z,"/","quo"),e.defn(z,"$sign",T=function(){var t=this;return c(t.$bignumber().isNaN())?e.const_get_relative(P,"SIGN_NaN"):c(t.$bignumber().isZero())?c(t.$bignumber().isNegative())?e.const_get_relative(P,"SIGN_NEGATIVE_ZERO"):e.const_get_relative(P,"SIGN_POSITIVE_ZERO"):$},T.$$arity=0),e.defn(z,"$sub",C=function(t){var n,r,a=this;return r=a.$coerce(t),t=null==(n=e.to_ary(r))[0]?$:n[0],null==n[1]?$:n[1],a.$class().$new(a.$bignumber().minus(t.$bignumber()))},C.$$arity=2),e.defn(z,"$to_f",I=function(){return this.$bignumber().toNumber()},I.$$arity=0),e.defn(z,"$to_s",D=function(e){return null==e&&(e=""),this.$bignumber().toString()},D.$$arity=-1),e.defn(z,"$zero?",H=function(){return this.$bignumber().isZero()},H.$$arity=0),$&&"zero?"}(o[0],0,o)},Opal.modules["mutations/version"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.module);return function(t,r){var a=n(t,"Mutations"),i=(a.$$proto,[a].concat(r));e.const_set(i[0],"VERSION","0.9.0")}(t[0],t)},Opal.modules["mutations/exception"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.send -;return e.add_stubs(["$attr_accessor","$errors=","$-","$join","$message_list","$errors"]),function(n,$){var s=a(n,"Mutations"),c=(s.$$proto,[s].concat($));!function(n,$super,a){function $(){}var s,c,l=$=i(n,$super,"ValidationException",$);l.$$proto,[l].concat(a);l.$attr_accessor("errors"),e.defn(l,"$initialize",s=function(n){var a=r;return a=[n],o(this,"errors=",e.to_a(a)),a[t(a.length,1)]},s.$$arity=1),e.defn(l,"$to_s",c=function(){return""+this.$errors().$message_list().$join("; ")},c.$$arity=0)}(c[0],e.const_get_qualified("::","StandardError"),c)}(n[0],n)},Opal.modules["mutations/errors"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.send,$=e.hash2,s=e.truthy;return e.add_stubs(["$tap","$new","$merge!","$[]","$titleize","$downcase","$to_s","$==","$end_with?","$message","$error_message_creator","$Array","$each","$symbolic","$[]=","$-","$concat","$message_list","$map","$flatten","$compact"]),function(n,c){var l=a(n,"Mutations"),u=(l.$$proto,[l].concat(c));!function(t,$super,n){function a(){}var c,l,u,_=a=i(t,null,"DefaultErrorMessageCreator",a),f=(_.$$proto,[_].concat(n));e.const_set(f[0],"MESSAGES",o(e.const_get_relative(f,"Hash").$new("is invalid"),"tap",[],((c=function(e){c.$$s;return null==e&&(e=r),e["$merge!"]($(["nils","required","string","integer","boolean","hash","array","model","date","before","after","empty","max_length","min_length","matches","in","class","min","max","new_records"],{nils:"can't be nil",required:"is required",string:"isn't a string",integer:"isn't an integer",boolean:"isn't a boolean",hash:"isn't a hash",array:"isn't an array",model:"isn't the right class",date:"date doesn't exist",before:"isn't before given date",after:"isn't after given date",empty:"can't be blank",max_length:"is too long",min_length:"is too short",matches:"isn't in the right format","in":"isn't an option","class":"isn't the right class",min:"is too small",max:"is too big",new_records:"isn't a saved model"}))}).$$s=_,c.$$arity=1,c))),e.defn(_,"$message",l=function(t,n,r){var a,i=this;return null==r&&(r=$([],{})),s(r["$[]"]("index"))?i.$titleize(s(a=t)?a:"array")+"["+r["$[]"]("index")+"] "+e.const_get_relative(f,"MESSAGES")["$[]"](n):i.$titleize(t)+" "+e.const_get_relative(f,"MESSAGES")["$[]"](n)},l.$$arity=-3),e.defn(_,"$titleize",u=function(e){return(e=e.$to_s().$downcase())["$=="]("id")?"ID":s(e["$end_with?"]("_id"))?e.$titleize()+" ID":e.$titleize()},u.$$arity=1)}(u[0],0,u),function(t,$super,n){function a(){}var o,c,l,u,_=a=i(t,null,"ErrorAtom",a),f=_.$$proto,p=[_].concat(n);f.symbol=f.message=f.key=f.index=r,e.defn(_,"$initialize",o=function(e,t,n){var r=this;return null==n&&(n=$([],{})),r.key=e,r.symbol=t,r.message=n["$[]"]("message"),r.index=n["$[]"]("index")},o.$$arity=-3),e.defn(_,"$symbolic",c=function(){return this.symbol},c.$$arity=0),e.defn(_,"$message",l=function(){var t,n=this;return n.message=s(t=n.message)?t:e.const_get_relative(p,"Mutations").$error_message_creator().$message(n.key,n.symbol,$(["index"],{index:n.index}))},l.$$arity=0),e.defn(_,"$message_list",u=function(){var e=this;return e.$Array(e.$message())},u.$$arity=0)}(u[0],0,u),function(n,$super,a){function $(){}var s,c,l,u=$=i(n,$super,"ErrorHash",$),_=(u.$$proto,[u].concat(a));e.defn(u,"$symbolic",s=function(){var n,a=this;return o(e.const_get_relative(_,"HashWithIndifferentAccess").$new(),"tap",[],((n=function(a){var i,$=n.$$s||this;return null==a&&(a=r),o($,"each",[],((i=function(n,$){i.$$s;var s=r;return null==n&&(n=r),null==$&&($=r),s=[n,$.$symbolic()],o(a,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=$,i.$$arity=2,i))}).$$s=a,n.$$arity=1,n))},s.$$arity=0),e.defn(u,"$message",c=function(){var n,a=this;return o(e.const_get_relative(_,"HashWithIndifferentAccess").$new(),"tap",[],((n=function(a){var i,$=n.$$s||this;return null==a&&(a=r),o($,"each",[],((i=function(n,$){i.$$s;var s=r;return null==n&&(n=r),null==$&&($=r),s=[n,$.$message()],o(a,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=$,i.$$arity=2,i))}).$$s=a,n.$$arity=1,n))},c.$$arity=0),e.defn(u,"$message_list",l=function(){var e,t=this,n=r;return n=[],o(t,"each",[],((e=function(t,a){e.$$s;return null==t&&(t=r),null==a&&(a=r),n.$concat(a.$message_list())}).$$s=t,e.$$arity=2,e)),n},l.$$arity=0)}(u[0],e.const_get_relative(u,"Hash"),u),function(t,$super,n){function a(){}var $,c,l,u=a=i(t,$super,"ErrorArray",a);u.$$proto,[u].concat(n);e.defn(u,"$symbolic",$=function(){var e,t=this;return o(t,"map",[],((e=function(t){var n;e.$$s;return null==t&&(t=r),s(n=t)?t.$symbolic():n}).$$s=t,e.$$arity=1,e))},$.$$arity=0),e.defn(u,"$message",c=function(){var e,t=this;return o(t,"map",[],((e=function(t){var n;e.$$s;return null==t&&(t=r),s(n=t)?t.$message():n}).$$s=t,e.$$arity=1,e))},c.$$arity=0),e.defn(u,"$message_list",l=function(){var e,t=this;return o(t.$compact(),"map",[],(e=function(t){e.$$s;return null==t&&(t=r),t.$message_list()},e.$$s=t,e.$$arity=1,e)).$flatten()},l.$$arity=0)}(u[0],e.const_get_relative(u,"Array"),u)}(n[0],n)},Opal.modules["mutations/input_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.truthy,$=e.hash2,s=e.send;return e.add_stubs(["$attr_accessor","$merge","$default_options","$class","$options=","$-","$has_key?","$options","$[]","$!"]),function(n,c){var l=a(n,"Mutations"),u=(l.$$proto,[l].concat(c));!function(n,$super,a){function c(){}var l,u,_,f,p,d,v,h,y=c=i(n,null,"InputFilter",c);y.$$proto,[y].concat(a);e.defs(y,"$default_options",l=function(){var e,t=this;return null==t.default_options&&(t.default_options=r),t.default_options=o(e=t.default_options)?e:$([],{})},l.$$arity=0),y.$attr_accessor("options"),e.defn(y,"$initialize",u=function(n){var a,i=this,c=r;return null==n&&(n=$([],{})),c=[(o(a=i.$class().$default_options())?a:$([],{})).$merge(n)],s(i,"options=",e.to_a(c)),c[t(c.length,1)]},u.$$arity=-1),e.defn(y,"$filter",_=function(e){return[e,r]},_.$$arity=1),e.defn(y,"$has_default?",f=function(){return this.$options()["$has_key?"]("default")},f.$$arity=0),e.defn(y,"$default",p=function(){return this.$options()["$[]"]("default")},p.$$arity=0),e.defn(y,"$discard_nils?",d=function(){return this.$options()["$[]"]("nils")["$!"]()},d.$$arity=0),e.defn(y,"$discard_empty?",v=function(){return this.$options()["$[]"]("discard_empty")},v.$$arity=0),e.defn(y,"$discard_invalid?",h=function(){return this.$options()["$[]"]("discard_invalid")},h.$$arity=0)}(u[0],0,u)}(n[0],n)},Opal.modules["mutations/hash_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.send,$=e.truthy,s=e.hash2;return e.add_stubs(["$define_method","$[]","$to_sym","$new","$to_proc","$[]=","$-","$attr_accessor","$instance_eval","$each_pair","$optional_inputs","$required_inputs","$keys","$nil?","$options","$respond_to?","$is_a?","$with_indifferent_access","$to_hash","$each","$==","$has_key?","$filter","$!","$discard_invalid?","$delete","$discard_empty?","$discard_nils?","$has_default?","$default","$any?"]),function(n,c){var l=a(n,"Mutations"),u=(l.$$proto,[l].concat(c));!function(n,$super,a){function c(){}var l,u,_,f,p,d,v,h,y,m,g,b=c=i(n,$super,"HashFilter",c),w=b.$$proto,k=[b].concat(a);w.required_inputs=w.optional_inputs=w.current_inputs=r,e.defs(b,"$register_additional_filter",l=function(n,a){var i,c=this;return o(c,"define_method",[a],((i=function(){var a,c,l,u=i.$$s||this,_=r,f=r,p=r;null==u.current_inputs&&(u.current_inputs=r),(a=i.$$p||r)&&(i.$$p=null);var d=arguments.length,v=d-0;v<0&&(v=0),c=new Array(v);for(var h=0;ht:e["$>"](t)}e.top;var a=[],i=e.nil,o=(e.breaker,e.slice,e.module),$=e.klass,s=e.send,c=e.truthy,l=e.hash2;return e.add_stubs(["$define_method","$[]","$new","$to_proc","$instance_eval","$options","$raise","$to_sym","$is_a?","$constantize","$[]=","$-","$cache_constants?","$to_s","$initialize_constants!","$nil?","$!","$==","$Array","$<","$length","$>","$each_with_index","$filter_element","$<<","$discard_invalid?","$filter"]),function(a,u){var _=o(a,"Mutations"),f=(_.$$proto,[_].concat(u));!function(a,$super,o){function u(){}var _,f,p,d,v,h,y,m,g=u=$(a,$super,"ArrayFilter",u),b=g.$$proto,w=[g].concat(o);b.element_filter=b.initialize_constants=i,e.defs(g,"$register_additional_filter",_=function(e,t){var n,r=this;return s(r,"define_method",[t],((n=function(){var t,r,a,o=n.$$s||this,$=i;(t=n.$$p||i)&&(n.$$p=null);var u=arguments.length,_=u-0;_<0&&(_=0),r=new Array(_);for(var f=0;ft:e["$>"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.hash2,s=e.truthy,c=e.send;return e.add_stubs(["$[]","$options","$==","$nil?","$!","$any?","$is_a?","$to_s","$gsub","$strip","$<","$length","$>","$include?","$!~"]),function(r,l){var u=i(r,"Mutations"),_=(u.$$proto,[u].concat(l));!function(r,$super,i){function l(){}var u,_=l=o(r,$super,"StringFilter",l),f=(_.$$proto,[_].concat(i));_.default_options=$(["strip","strict","nils","empty_is_nil","empty","min_length","max_length","matches","in","discard_empty","allow_control_characters"],{strip:!0,strict:!1,nils:!1,empty_is_nil:!1,empty:!1,min_length:a,max_length:a,matches:a,"in":a,discard_empty:!1,allow_control_characters:!1}),e.defn(_,"$filter",u=function(r){var i,o,$=this;return s(s(i=$.$options()["$[]"]("empty_is_nil"))?r["$=="](""):i)&&(r=a),s(r["$nil?"]())?s($.$options()["$[]"]("nils"))?[a,a]:[a,"nils"]:(s(s(i=$.$options()["$[]"]("strict")["$!"]())?c([e.const_get_relative(f,"TrueClass"),e.const_get_relative(f,"FalseClass"),e.const_get_relative(f,"Integer"),e.const_get_relative(f,"Float"),e.const_get_relative(f,"BigDecimal"),e.const_get_relative(f,"Symbol")],"any?",[],((o=function(e){o.$$s;return null==e&&(e=a),r["$is_a?"](e)}).$$s=$,o.$$arity=1,o)):i)&&(r=r.$to_s()),s(r["$is_a?"](e.const_get_relative(f,"String")))?(s($.$options()["$[]"]("allow_control_characters"))||(r=r.$gsub(/[^[:print:]\t\r\n]+/," ")),s($.$options()["$[]"]("strip"))&&(r=r.$strip()),r["$=="]("")?s($.$options()["$[]"]("empty"))?[r,a]:[r,"empty"]:s(s(i=$.$options()["$[]"]("min_length"))?t(r.$length(),$.$options()["$[]"]("min_length")):i)?[r,"min_length"]:s(s(i=$.$options()["$[]"]("max_length"))?n(r.$length(),$.$options()["$[]"]("max_length")):i)?[r,"max_length"]:s(s(i=$.$options()["$[]"]("in"))?$.$options()["$[]"]("in")["$include?"](r)["$!"]():i)?[r,"in"]:s(s(i=$.$options()["$[]"]("matches"))?$.$options()["$[]"]("matches")["$!~"](r):i)?[r,"matches"]:[r,a]):[r,"string"])},u.$$arity=1)}(_[0],e.const_get_relative(_,"AdditionalFilter"),_)}(r[0],r)},Opal.modules["mutations/integer_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.hash2,s=e.truthy;return e.add_stubs(["$[]","$options","$==","$nil?","$!","$is_a?","$=~","$to_i","$<","$>","$include?"]),function(r,c){var l=i(r,"Mutations"),u=(l.$$proto,[l].concat(c));!function(r,$super,i){function c(){}var l,u=c=o(r,$super,"IntegerFilter",c),_=(u.$$proto,[u].concat(i));u.default_options=$(["nils","empty_is_nil","min","max","in"],{nils:!1,empty_is_nil:!1,min:a,max:a,"in":a}),e.defn(u,"$filter",l=function(r){var i,o=this;if(s(s(i=o.$options()["$[]"]("empty_is_nil"))?r["$=="](""):i)&&(r=a),s(r["$nil?"]()))return s(o.$options()["$[]"]("nils"))?[a,a]:[a,"nils"];if(r["$=="](""))return[r,"empty"];if(s(r["$is_a?"](e.const_get_relative(_,"Integer"))["$!"]())){if(!s(s(i=r["$is_a?"](e.const_get_relative(_,"String")))?r["$=~"](/^-?\d/):i))return[r,"integer"];r=r.$to_i()}return s(s(i=o.$options()["$[]"]("min"))?t(r,o.$options()["$[]"]("min")):i)?[r,"min"]:s(s(i=o.$options()["$[]"]("max"))?n(r,o.$options()["$[]"]("max")):i)?[r,"max"]:s(s(i=o.$options()["$[]"]("in"))?o.$options()["$[]"]("in")["$include?"](r)["$!"]():i)?[r,"in"]:[r,a]},l.$$arity=1)}(u[0],e.const_get_relative(u,"AdditionalFilter"),u)}(r[0],r)},Opal.modules["mutations/float_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.hash2,s=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$==","$!","$is_a?","$=~","$to_f","$<","$>"]),function(r,c){var l=i(r,"Mutations"),u=(l.$$proto,[l].concat(c));!function(r,$super,i){function c(){}var l,u=c=o(r,$super,"FloatFilter",c),_=(u.$$proto,[u].concat(i));u.default_options=$(["nils","min","max"],{nils:!1,min:a,max:a}),e.defn(u,"$filter",l=function(r){var i,o=this;if(s(r["$nil?"]()))return s(o.$options()["$[]"]("nils"))?[a,a]:[a,"nils"];if(r["$=="](""))return[r,"empty"];if(s(r["$is_a?"](e.const_get_relative(_,"Float"))["$!"]()))if(s(s(i=r["$is_a?"](e.const_get_relative(_,"String")))?r["$=~"](/^[-+]?\d*\.?\d+/):i))r=r.$to_f();else{if(!s(r["$is_a?"](e.const_get_relative(_,"Integer"))))return[r,"float"];r=r.$to_f()}return s(s(i=o.$options()["$[]"]("min"))?t(r,o.$options()["$[]"]("min")):i)?[r,"min"]:s(s(i=o.$options()["$[]"]("max"))?n(r,o.$options()["$[]"]("max")):i)?[r,"max"]:[r,a]},l.$$arity=1)}(u[0],e.const_get_relative(u,"AdditionalFilter"),u)}(r[0],r)},Opal.modules["mutations/boolean_filter"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.klass,i=e.hash2,o=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$==","$is_a?","$to_s","$downcase"]),function(t,$){var s=r(t,"Mutations"),c=(s.$$proto,[s].concat($));!function(t,$super,r){function $(){}var s,c=$=a(t,$super,"BooleanFilter",$),l=(c.$$proto,[c].concat(r));c.default_options=i(["nils"],{nils:!1}),e.const_set(l[0],"BOOL_MAP",i(["true","1","false","0"],{"true":!0,1:!0,"false":!1,0:!1})),e.defn(c,"$filter",s=function(t){var r,a=this,i=n;return o(t["$nil?"]())?o(a.$options()["$[]"]("nils"))?[n,n]:[n,"nils"]:t["$=="]("")?[t,"empty"]:o(o(r=t["$=="](!0))?r:t["$=="](!1))?[t,n]:(o(t["$is_a?"](e.const_get_relative(l,"Integer")))&&(t=t.$to_s()),o(t["$is_a?"](e.const_get_relative(l,"String")))?(i=e.const_get_relative(l,"BOOL_MAP")["$[]"](t.$downcase()),o(i["$nil?"]())?[t,"boolean"]:[i,n]):[t,"boolean"])},s.$$arity=1)}(c[0],e.const_get_relative(c,"AdditionalFilter"),c)}(t[0],t)},Opal.modules["mutations/duck_filter"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.klass,i=e.hash2,o=e.truthy,$=e.send;return e.add_stubs(["$nil?","$[]","$options","$each","$Array","$respond_to?"]),function(t,s){var c=r(t,"Mutations"),l=(c.$$proto,[c].concat(s));!function(t,$super,r){function s(){}var c,l=s=a(t,$super,"DuckFilter",s);l.$$proto,[l].concat(r);l.default_options=i(["nils","methods"],{nils:!1,methods:n}),e.defn(l,"$filter",c=function(t){try{var r,a=this;return o(t["$nil?"]())?o(a.$options()["$[]"]("nils"))?[n,n]:[n,"nils"]:($(a.$Array(a.$options()["$[]"]("methods")),"each",[],((r=function(a){r.$$s;if(null==a&&(a=n),o(t["$respond_to?"](a)))return n;e.ret([t,"duck"])}).$$s=a,r.$$arity=1,r)),[t,n])}catch(i){if(i===e.returner)return i.$v;throw i}},c.$$arity=1)}(l[0],e.const_get_relative(l,"AdditionalFilter"),l)}(t[0],t)},Opal.modules["mutations/date_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.hash2,s=e.truthy;return e.add_stubs(["$[]","$options","$==","$nil?","$is_a?","$strptime","$parse","$respond_to?","$to_date","$<=","$>="]),function(r,c){var l=i(r,"Mutations"),u=(l.$$proto,[l].concat(c));!function(r,$super,i){function c(){}var l,u=c=o(r,$super,"DateFilter",c),_=(u.$$proto,[u].concat(i));u.default_options=$(["nils","empty_is_nil","format","after","before"],{nils:!1,empty_is_nil:!1,format:a,after:a,before:a}),e.defn(u,"$filter",l=function(r){var i,o=this,$=a;if(s(s(i=o.$options()["$[]"]("empty_is_nil"))?r["$=="](""):i)&&(r=a),s(r["$nil?"]()))return s(o.$options()["$[]"]("nils"))?[a,a]:[a,"nils"];if(""["$=="](r))return[r,"empty"];if(s(r["$is_a?"](e.const_get_relative(_,"Date"))))$=r;else if(s(r["$is_a?"](e.const_get_relative(_,"String"))))try{$=s(o.$options()["$[]"]("format"))?e.const_get_relative(_,"Date").$strptime(r,o.$options()["$[]"]("format")):e.const_get_relative(_,"Date").$parse(r)}catch(c){if(!e.rescue(c,[e.const_get_relative(_,"ArgumentError")]))throw c;try{return[a,"date"]}finally{e.pop_exception()}}else{if(!s(r["$respond_to?"]("to_date")))return[a,"date"];$=r.$to_date()}return s(o.$options()["$[]"]("after"))&&s(t($,o.$options()["$[]"]("after")))?[a,"after"]:s(o.$options()["$[]"]("before"))&&s(n($,o.$options()["$[]"]("before")))?[a,"before"]:[$,a]},l.$$arity=1)}(u[0],e.const_get_relative(u,"AdditionalFilter"),u)}(r[0],r)},Opal.modules["mutations/time_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.hash2,s=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$==","$is_a?","$strptime","$parse","$respond_to?","$to_time","$<=","$>="]),function(r,c){var l=i(r,"Mutations"),u=(l.$$proto,[l].concat(c));!function(r,$super,i){function c(){}var l,u=c=o(r,$super,"TimeFilter",c),_=(u.$$proto,[u].concat(i));u.default_options=$(["nils","format","after","before"],{nils:!1,format:a,after:a,before:a}),e.defn(u,"$filter",l=function(r){var i=this,o=a;if(s(r["$nil?"]()))return s(i.$options()["$[]"]("nils"))?[a,a]:[a,"nils"];if(""["$=="](r))return[r,"empty"];if(s(r["$is_a?"](e.const_get_relative(_,"Time"))))o=r;else if(s(r["$is_a?"](e.const_get_relative(_,"String"))))try{o=s(i.$options()["$[]"]("format"))?e.const_get_relative(_,"Time").$strptime(r,i.$options()["$[]"]("format")):e.const_get_relative(_,"Time").$parse(r)}catch($){if(!e.rescue($,[e.const_get_relative(_,"ArgumentError")]))throw $;try{return[a,"time"]}finally{e.pop_exception()}}else{if(!s(r["$respond_to?"]("to_time")))return[a,"time"];o=r.$to_time()}return s(i.$options()["$[]"]("after"))&&s(t(o,i.$options()["$[]"]("after")))?[a,"after"]:s(i.$options()["$[]"]("before"))&&s(n(o,i.$options()["$[]"]("before")))?[a,"before"]:[o,a]},l.$$arity=1)}(u[0],e.const_get_relative(u,"AdditionalFilter"),u)}(r[0],r)},Opal.modules["mutations/file_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.hash2,$=e.truthy,s=e.send;return e.add_stubs(["$nil?","$[]","$options","$==","$concat","$each","$respond_to?","$is_a?","$>","$size"]),function(n,c){var l=a(n,"Mutations"),u=(l.$$proto,[l].concat(c));!function(n,$super,a){function c(){}var l,u=c=i(n,$super,"FileFilter",c),_=(u.$$proto,[u].concat(a));u.default_options=o(["nils","upload","size"],{nils:!1,upload:!1,size:r}),e.defn(u,"$filter",l=function(n){try{var a,i=this,o=r;return $(n["$nil?"]())?$(i.$options()["$[]"]("nils"))?[r,r]:[r,"nils"]:n["$=="]("")?[n,"empty"]:(o=["read","size"],$(i.$options()["$[]"]("upload"))&&o.$concat(["original_filename","content_type"]),s(o,"each",[],((a=function(t){a.$$s;if(null==t&&(t=r),$(n["$respond_to?"](t)))return r;e.ret([n,"file"])}).$$s=i,a.$$arity=1,a)),$(i.$options()["$[]"]("size")["$is_a?"](e.const_get_relative(_,"Integer")))&&$(t(n.$size(),i.$options()["$[]"]("size")))?[n,"size"]:[n,r])}catch(c){if(c===e.returner)return c.$v;throw c}},l.$$arity=1)}(u[0],e.const_get_relative(u,"AdditionalFilter"),u)}(n[0],n)},Opal.modules["mutations/model_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.hash2,$=e.send,s=e.truthy;return e.add_stubs(["$[]","$options","$camelize","$to_s","$is_a?","$constantize","$[]=","$-","$cache_constants?","$initialize_constants!","$nil?","$run","$success?","$result","$errors","$!","$respond_to?","$new_record?"]),function(n,c){var l=a(n,"Mutations"),u=(l.$$proto,[l].concat(c));!function(n,$super,a){function c(){}var l,u,_,f=c=i(n,$super,"ModelFilter",c),p=f.$$proto,d=[f].concat(a);p.initialize_constants=p.name=r,f.default_options=o(["nils","class","builder","new_records"],{nils:!1,"class":r,builder:r,new_records:!1}),e.defn(f,"$initialize",l=function(t,n){var r=this,a=l.$$p;return null==n&&(n=o([],{})),a&&(l.$$p=null),$(r,e.find_super_dispatcher(r,"initialize",l,!1),[n],null),r.name=t},l.$$arity=-2),e.defn(f,"$initialize_constants!",u=function(){var n,a,i=this,o=r,c=r;return i.initialize_constants=s(n=i.initialize_constants)?n:(o=s(a=i.$options()["$[]"]("class"))?a:i.name.$to_s().$camelize(),s(o["$is_a?"](e.const_get_relative(d,"String")))&&(o=o.$constantize()),c=["class",o],$(i.$options(),"[]=",e.to_a(c)),c[t(c.length,1)],s(i.$options()["$[]"]("builder"))&&s(i.$options()["$[]"]("builder")["$is_a?"](e.const_get_relative(d,"String")))&&(c=["builder",i.$options()["$[]"]("builder").$constantize()],$(i.$options(),"[]=",e.to_a(c)),c[t(c.length,1)]),!0),s(e.const_get_relative(d,"Mutations")["$cache_constants?"]())?r:(s(i.$options()["$[]"]("class"))&&(c=["class",i.$options()["$[]"]("class").$to_s().$constantize()],$(i.$options(),"[]=",e.to_a(c)),c[t(c.length,1)]),s(i.$options()["$[]"]("builder"))?(c=["builder",i.$options()["$[]"]("builder").$to_s().$constantize()],$(i.$options(),"[]=",e.to_a(c)),c[t(c.length,1)]):r)},u.$$arity=0),e.defn(f,"$filter",_=function(t){var n,a,i=this,o=r;if(i["$initialize_constants!"](),s(t["$nil?"]()))return s(i.$options()["$[]"]("nils"))?[r,r]:[r,"nils"];if(s(s(n=t["$is_a?"](e.const_get_relative(d,"Hash")))?i.$options()["$[]"]("builder"):n)){if(o=i.$options()["$[]"]("builder").$run(t),!s(o["$success?"]()))return[t,o.$errors()];t=o.$result()}return s(t["$is_a?"](i.$options()["$[]"]("class")))?s(s(n=i.$options()["$[]"]("new_records")["$!"]())?s(a=t["$respond_to?"]("new_record?"))?t["$new_record?"]():a:n)?[t,"new_records"]:[t,r]:[t,"model"]},_.$$arity=1)}(u[0],e.const_get_relative(u,"InputFilter"),u)}(n[0],n)},Opal.modules["mutations/symbol_filter"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.klass,i=e.hash2,o=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$===","$to_sym","$!","$include?"]),function(t,$){var s=r(t,"Mutations"),c=(s.$$proto,[s].concat($));!function(t,$super,r){function $(){}var s,c=$=a(t,$super,"SymbolFilter",$),l=(c.$$proto,[c].concat(r));c.default_options=i(["nils","in"],{nils:!1,"in":n}),e.defn(c,"$filter",s=function(t){var r,a=this,i=n;if(o(t["$nil?"]()))return o(a.$options()["$[]"]("nils"))?[n,n]:[n,"nils"];if(i=t,e.const_get_relative(l,"Symbol")["$==="](i));else{if(!e.const_get_relative(l,"String")["$==="](i))return[n,"symbol"];t=t.$to_sym()}return o(o(r=a.$options()["$[]"]("in"))?a.$options()["$[]"]("in")["$include?"](t)["$!"]():r)?[t,"in"]:[t,n]},s.$$arity=1)}(c[0],e.const_get_relative(c,"AdditionalFilter"),c)}(t[0],t)},Opal.modules["mutations/outcome"]=function(e){e.top;var t=[],n=e.nil,r=(e.breaker,e.slice,e.module),a=e.klass;return e.add_stubs(["$attr_reader"]),function(t,i){var o=r(t,"Mutations"),$=(o.$$proto,[o].concat(i));!function(t,$super,r){function i(){}var o,$,s=i=a(t,null,"Outcome",i),c=s.$$proto;[s].concat(r);c.success=n, -s.$attr_reader("result","errors","inputs"),e.defn(s,"$initialize",o=function(e,t,n,r){var a,i=this;return a=[e,t,n,r],i.success=a[0],i.result=a[1],i.errors=a[2],i.inputs=a[3],a},o.$$arity=4),e.defn(s,"$success?",$=function(){return this.success},$.$$arity=0)}($[0],0,$)}(t[0],t)},Opal.modules["mutations/command"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.send,$=e.truthy,s=e.hash2;return e.add_stubs(["$send","$input_filters","$to_proc","$each","$define_method","$[]","$has_key?","$[]=","$-","$private","$create_attr_methods","$run","$new","$run!","$validation_outcome","$==","$superclass","$dup","$inject","$with_indifferent_access","$respond_to?","$raise","$merge!","$filter","$has_errors?","$validate","$class","$!","$nil?","$execute","$success?","$result","$errors","$protected","$attr_reader","$is_a?","$tap","$split","$to_s","$pop","$to_sym","$any?"]),function(n,c){var l=a(n,"Mutations"),u=(l.$$proto,[l].concat(c));!function(n,$super,a){function c(){}var l,u,_,f,p,d,v,h,y,m,g=c=i(n,null,"Command",c),b=g.$$proto,w=[g].concat(a);b.raw_inputs=b.errors=b.inputs=r,function(n,a){n.$$proto;var i,s,c,l,u,_,f,p=[n].concat(a);e.defn(n,"$create_attr_methods",i=function(n){var a,$=this,s=i.$$p,c=s||r,l=r;return s&&(i.$$p=null),o($.$input_filters(),"send",[n],c.$to_proc()),l=$.$input_filters().$send(n+"_keys"),o(l,"each",[],((a=function(n){var i,$,s,c=a.$$s||this;return null==n&&(n=r),o(c,"define_method",[n],((i=function(){var e=i.$$s||this;return null==e.inputs&&(e.inputs=r),e.inputs["$[]"](n)}).$$s=c,i.$$arity=0,i)),o(c,"define_method",[n+"_present?"],(($=function(){var e=$.$$s||this;return null==e.inputs&&(e.inputs=r),e.inputs["$has_key?"](n)}).$$s=c,$.$$arity=0,$)),o(c,"define_method",[n+"="],((s=function(a){var i=s.$$s||this,$=r;return null==i.inputs&&(i.inputs=r),null==a&&(a=r),$=[n,a],o(i.inputs,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=c,s.$$arity=1,s))}).$$s=$,a.$$arity=1,a))},i.$$arity=1),n.$private("create_attr_methods"),e.defn(n,"$required",s=function(){var e=this,t=s.$$p,n=t||r;return t&&(s.$$p=null),o(e,"create_attr_methods",["required"],n.$to_proc())},s.$$arity=0),e.defn(n,"$optional",c=function(){var e=this,t=c.$$p,n=t||r;return t&&(c.$$p=null),o(e,"create_attr_methods",["optional"],n.$to_proc())},c.$$arity=0),e.defn(n,"$run",l=function(){var t,n=this,r=arguments.length,a=r-0;a<0&&(a=0),t=new Array(a);for(var i=0;it:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e","$+","$-","$<","$delete","$succeed","$fail","$promise","$parse","$private","$tap","$proc","$ok?","$resolve","$reject","$from_object","$call"]),function(i,_){var f=$(i,"Hyperstack"),p=(f.$$proto,[f].concat(_));!function(i,$super,$){function _(){}var f,p,d,v,h,y,m,g,b,w,k,O,q,E,x=_=s(i,null,"HTTP",_),A=x.$$proto,S=[x].concat($);A.handler=A.json=A.body=A.ok=A.xhr=A.url=A.method=A.promise=A.status_code=o,e.const_set(S[0],"ACTIONS",["get","post","put","delete","patch","head"]),c(e.const_get_relative(S,"ACTIONS"),"each",[],((f=function(e){var t,n,r=f.$$s||this;return null==e&&(e=o),c(r,"define_singleton_method",[e],((t=function(n,r){var a,i=t.$$s||this;return(a=t.$$p||o)&&(t.$$p=null),null==r&&(r=l([],{})),null==n&&(n=o),i.$new().$send(e,n,r,a)}).$$s=r,t.$$arity=-2,t)),c(r,"define_method",[e],((n=function(t,r){var a,i=n.$$s||this;return(a=n.$$p||o)&&(n.$$p=null),null==r&&(r=l([],{})),null==t&&(t=o),i.$send(e,t,r,a)}).$$s=r,n.$$arity=-2,n))}).$$s=x,f.$$arity=1,f)),x.$attr_reader("body","error_message","method","status_code","url","xhr"),e.defn(x,"$initialize",p=function(){return this.ok=!0},p.$$arity=0),e.defs(x,"$active?",d=function(){var e=this,r=o;return null==e.active_requests&&(e.active_requests=o),r=0,"undefined"!=typeof jQuery&&"undefined"!=typeof jQuery.active&&null!==jQuery.active&&(r=jQuery.active),t(n(r,e.active_requests),0)},d.$$arity=0),e.defs(x,"$active_requests",v=function(){var e,t=this;return null==t.active_requests&&(t.active_requests=o),t.active_requests=u(e=t.active_requests)?e:0,t.active_requests},v.$$arity=0),e.defs(x,"$incr_active_requests",h=function(){var e,t=this;return null==t.active_requests&&(t.active_requests=o),t.active_requests=u(e=t.active_requests)?e:0,t.active_requests=n(t.active_requests,1)},h.$$arity=0),e.defs(x,"$decr_active_requests",y=function(){var e,t=this;return null==t.active_requests&&(t.active_requests=o),t.active_requests=u(e=t.active_requests)?e:0,t.active_requests=r(t.active_requests,1),u(a(t.active_requests,0))?(console.log("Ooops, Hyperstack::HTTP active_requests out of sync!"),t.active_requests=0):o},y.$$arity=0),e.defn(x,"$send",m=function(e,t,n,r){var a=this;a.method=e,a.url=t,a.payload=n.$delete("payload"),a.handler=r;var i=null,$=null;"string"==typeof this.payload?i=this.payload:this.payload!=o&&(i=this.payload.$to_json(),$="application/json");var s=new XMLHttpRequest;if(s.onreadystatechange=function(){if(s.readyState===XMLHttpRequest.DONE)return a.$class().$decr_active_requests(),s.status>=200&&s.status<300||304==s.status?a.$succeed(s.responseText,s.status,s):a.$fail(s,s.status,s.statusText)},s.open(this.method.toUpperCase(),this.url),null!==i&&null!==$&&s.setRequestHeader("Content-Type",$),n["$has_key?"]("headers"))for(var c=n["$[]"]("headers"),l=c.$keys(),_=l.length,f=0;f<_;f++)s.setRequestHeader(l[f],c["$[]"](l[f]));return null!==i?(a.$class().$incr_active_requests(),s.send(i)):(a.$class().$incr_active_requests(),s.send()),u(a.handler)?a:a.$promise()},m.$$arity=4),e.defn(x,"$json",g=function(){var t,n=this;return n.json=u(t=n.json)?t:e.const_get_relative(S,"JSON").$parse(n.body)},g.$$arity=0),e.defn(x,"$ok?",b=function(){return this.ok},b.$$arity=0),e.defn(x,"$get_header",w=function(e){var t=this.xhr.getResponseHeader(e);return null===t?o:t},w.$$arity=1),e.defn(x,"$inspect",k=function(){var e=this;return"#"},k.$$arity=0),x.$private(),e.defn(x,"$promise",O=function(){var t,n=this;return u(n.promise)?n.promise:n.promise=c(e.const_get_relative(S,"Promise").$new(),"tap",[],((t=function(e){var n,r=t.$$s||this;return null==e&&(e=o),r.handler=c(r,"proc",[],((n=function(t){n.$$s;return null==t&&(t=o),u(t["$ok?"]())?e.$resolve(t):e.$reject(t)}).$$s=r,n.$$arity=1,n))}).$$s=n,t.$$arity=1,t))},O.$$arity=0),e.defn(x,"$succeed",q=function(t,n,r){var a=this;return a.body=t,a.xhr=r,a.status_code=r.status,"object"==typeof t&&(a.json=e.const_get_relative(S,"JSON").$from_object(t)),u(a.handler)?a.handler.$call(a):o},q.$$arity=3),e.defn(x,"$fail",E=function(e){var t=this;return t.body=e.responseText,t.xhr=e,t.status_code=e.status,t.ok=!1,u(t.handler)?t.handler.$call(t):o},E.$$arity=3)}(p[0],0,p)}(i[0],i)},Opal.modules["hyper-operation/transport/client_drivers"]=function(Opal){function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $rb_minus(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$breaker=Opal.breaker,$slice=Opal.slice,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$hash2=Opal.hash2;return Opal.add_stubs(["$[]","$opts","$extend","$on_opal_client?","$client_drivers_get_acting_user_id","$env","$==","$respond_to?","$tap","$new","$resolve","$each","$is_a?","$connect_to","$name","$then","$load","$id","$raise","$inspect","$class","$connect","$last","$split","$+","$to_s","$include?","$open_channels","$<<","$add_connection","$gsub","$lambda","$get_queued_data","$post","$polling_path","$action_cable_consumer","$json","$complete_connection","$sync_dispatch","$parse","$get","$include","$dispatch_from_server","$constantize","$!=","$attr_reader","$isomorphic_method","$send_to_server","$when_on_server","$acting_user","$controller","$when_on_client","$fail","$zero?","$after","$-","$[]=","$every"]),function($base,$parent_nesting){var $Hyperstack,self=$Hyperstack=$module($base,"Hyperstack"),def=self.$$proto,$nesting=[self].concat($parent_nesting),TMP_Hyperstack_anti_csrf_token_1,TMP_Hyperstack_connect_11,TMP_Hyperstack_connect_session_12,TMP_Hyperstack_action_cable_consumer_13;Opal.defs(self,"$anti_csrf_token",TMP_Hyperstack_anti_csrf_token_1=function(){return Opal.const_get_relative($nesting,"ClientDrivers").$opts()["$[]"]("form_authenticity_token")},TMP_Hyperstack_anti_csrf_token_1.$$arity=0),function(e,$super,t){function n(){}var r,a,i,o,$=n=$klass(e,null,"Application",n),s=($.$$proto,[$].concat(t));$.$extend(Opal.const_get_qualified(Opal.const_get_qualified(Opal.const_get_relative(s,"Component"),"IsomorphicHelpers"),"ClassMethods")),$truthy($["$on_opal_client?"]())?Opal.defs($,"$acting_user_id",r=function(){return Opal.const_get_relative(s,"ClientDrivers").$opts()["$[]"]("acting_user_id")},r.$$arity=0):Opal.defs($,"$acting_user_id",a=function(){return Opal.const_get_relative(s,"ClientDrivers").$client_drivers_get_acting_user_id()},a.$$arity=0),Opal.defs($,"$env",i=function(){var e=this;return null==e.env&&(e.env=nil),$truthy(e.env)||(e.env=Opal.const_get_relative(s,"ClientDrivers").$env()),e.env},i.$$arity=0),Opal.defs($,"$production?",o=function(){return this.$env()["$=="]("production")},o.$$arity=0)}($nesting[0],0,$nesting),Opal.const_get_relative($nesting,"RUBY_ENGINE")["$=="]("opal")&&(function(e,t){var n,r=$module(e,"Model"),a=(r.$$proto,[r].concat(t));$truthy(r["$respond_to?"]("load"))||Opal.defs(r,"$load",n=function(){var e,t=this,r=n.$$p,i=r||nil;return r&&(n.$$p=null),$send(Opal.const_get_relative(a,"Promise").$new(),"tap",[],((e=function(t){e.$$s;return null==t&&(t=nil),t.$resolve(Opal.yieldX(i,[]))}).$$s=t,e.$$arity=1,e))},n.$$arity=0)}($nesting[0],$nesting),Opal.defs(self,"$connect",TMP_Hyperstack_connect_11=function(){var e,t,n=this,r=arguments.length,a=r-0;a<0&&(a=0),t=new Array(a);for(var i=0;i>","$exception?","$[]","$resolved?","$rejected?","$error","$include?","$action","$raise","$^","$call","$resolve!","$exception!","$any?","$each","$reject!","$is_a?","$result","$there_can_be_only_one!","$then","$to_proc","$fail","$always","$trace","$class","$object_id","$+","$inspect","$act?","$nil?","$prev","$push","$concat","$it","$proc","$reverse","$pop","$<=","$length","$shift","$-","$wait","$map","$reduce","$try","$tap","$all?","$find"]),function(a,$super,l){function u(){}var _,f,p,d,v,h,y,m,g,b,w,k,O,q,E,x,A,S,M,N,T,C,I,D,H,z,P,R,j,B,L=u=o(a,null,"Promise",u),U=L.$$proto,F=[L].concat(l);return U.value=U.action=U.exception=U.realized=U.next=U.delayed=U.error=U.prev=i,e.defs(L,"$value",_=function(e){return this.$new().$resolve(e)},_.$$arity=1),e.defs(L,"$error",f=function(e){return this.$new().$reject(e)},f.$$arity=1),e.defs(L,"$when",p=function(){var t,n=arguments.length,r=n-0;r<0&&(r=0),t=new Array(r);for(var a=0;a>"](e),e},O.$$arity=1),e.defn(L,"$<<",q=function(e){var t=this;return t.prev=e,t},q.$$arity=1),e.defn(L,"$>>",E=function(t){var n,r=this;return r.next["$<<"](t), -s(r["$exception?"]())?t.$reject(r.delayed["$[]"](0)):s(r["$resolved?"]())?t.$resolve(s(r.delayed)?r.delayed["$[]"](0):r.$value()):s(r["$rejected?"]())&&(s(s(n=r.action["$has_key?"]("failure")["$!"]())?n:e.const_get_relative(F,"Promise")["$==="](s(r.delayed)?r.delayed["$[]"](0):r.error))?t.$reject(s(r.delayed)?r.delayed["$[]"](0):r.$error()):s(t.$action()["$include?"]("always"))&&t.$reject(s(r.delayed)?r.delayed["$[]"](0):r.$error())),r},E.$$arity=1),e.defn(L,"$resolve",x=function(t){var n,r=this,a=i,o=i;if(null==t&&(t=i),s(r["$realized?"]())&&r.$raise(e.const_get_relative(F,"ArgumentError"),"the promise has already been realized"),s(e.const_get_relative(F,"Promise")["$==="](t)))return t["$<<"](r.prev)["$^"](r);try{s(a=s(n=r.action["$[]"]("success"))?n:r.action["$[]"]("always"))&&(t=a.$call(t)),r["$resolve!"](t)}catch($){if(!e.rescue($,[e.const_get_relative(F,"Exception")]))throw $;o=$;try{r["$exception!"](o)}finally{e.pop_exception()}}return r},x.$$arity=-1),e.defn(L,"$resolve!",A=function(e){var t,n=this;return n.realized="resolve",n.value=e,s(n.next["$any?"]())?c(n.next,"each",[],((t=function(n){t.$$s;return null==n&&(n=i),n.$resolve(e)}).$$s=n,t.$$arity=1,t)):n.delayed=[e]},A.$$arity=1),e.defn(L,"$reject",S=function(t){var n,r=this,a=i,o=i;if(null==t&&(t=i),s(r["$realized?"]())&&r.$raise(e.const_get_relative(F,"ArgumentError"),"the promise has already been realized"),s(e.const_get_relative(F,"Promise")["$==="](t)))return t["$<<"](r.prev)["$^"](r);try{s(a=s(n=r.action["$[]"]("failure"))?n:r.action["$[]"]("always"))&&(t=a.$call(t)),s(r.action["$has_key?"]("always"))?r["$resolve!"](t):r["$reject!"](t)}catch($){if(!e.rescue($,[e.const_get_relative(F,"Exception")]))throw $;o=$;try{r["$exception!"](o)}finally{e.pop_exception()}}return r},S.$$arity=-1),e.defn(L,"$reject!",M=function(e){var t,n=this;return n.realized="reject",n.error=e,s(n.next["$any?"]())?c(n.next,"each",[],((t=function(n){t.$$s;return null==n&&(n=i),n.$reject(e)}).$$s=n,t.$$arity=1,t)):n.delayed=[e]},M.$$arity=1),e.defn(L,"$exception!",N=function(t){var n=this;return s(t["$is_a?"](e.const_get_qualified(e.const_get_relative(F,"Promise"),"Fail")))?t=t.$result():n.exception=!0,n["$reject!"](t)},N.$$arity=1),e.defn(L,"$then",T=function(){var t=this,n=T.$$p,r=n||i;return n&&(T.$$p=null),t["$^"](e.const_get_relative(F,"Promise").$new($(["success"],{success:r})))},T.$$arity=0),e.defn(L,"$then!",C=function(){var e=this,t=C.$$p,n=t||i;return t&&(C.$$p=null),e["$there_can_be_only_one!"](),c(e,"then",[],n.$to_proc())},C.$$arity=0),e.alias(L,"do","then"),e.alias(L,"do!","then!"),e.defn(L,"$fail",I=function(){var t=this,n=I.$$p,r=n||i;return n&&(I.$$p=null),t["$^"](e.const_get_relative(F,"Promise").$new($(["failure"],{failure:r})))},I.$$arity=0),e.defn(L,"$fail!",D=function(){var e=this,t=D.$$p,n=t||i;return t&&(D.$$p=null),e["$there_can_be_only_one!"](),c(e,"fail",[],n.$to_proc())},D.$$arity=0),e.alias(L,"rescue","fail"),e.alias(L,"catch","fail"),e.alias(L,"rescue!","fail!"),e.alias(L,"catch!","fail!"),e.defn(L,"$always",H=function(){var t=this,n=H.$$p,r=n||i;return n&&(H.$$p=null),t["$^"](e.const_get_relative(F,"Promise").$new($(["always"],{always:r})))},H.$$arity=0),e.defn(L,"$always!",z=function(){var e=this,t=z.$$p,n=t||i;return t&&(z.$$p=null),e["$there_can_be_only_one!"](),c(e,"always",[],n.$to_proc())},z.$$arity=0),e.alias(L,"finally","always"),e.alias(L,"ensure","always"),e.alias(L,"finally!","always!"),e.alias(L,"ensure!","always!"),e.defn(L,"$trace",P=function(t){var n=this,r=P.$$p,a=r||i;return null==t&&(t=i),r&&(P.$$p=null),n["$^"](e.const_get_relative(F,"Trace").$new(t,a))},P.$$arity=-1),e.defn(L,"$trace!",R=function(){var t,n=this,r=R.$$p,a=r||i,o=arguments.length,$=o-0;$<0&&($=0),t=new Array($);for(var s=0;s> "+n.next.$inspect())),r=s(n["$realized?"]())?t(r,": "+(s(e=n.value)?e:n.error).$inspect()+">"):t(r,">")},B.$$arity=0),function(t,$super,a){function l(){}var u,_,f=l=o(t,$super,"Trace",l),p=(f.$$proto,[f].concat(a));e.defs(f,"$it",u=function(e){var t,n=this,r=i,a=i;return r=[],s(s(t=e["$act?"]())?t:e.$prev()["$nil?"]())&&r.$push(e.$value()),s(a=e.$prev())?r.$concat(n.$it(a)):r},u.$$arity=1),e.defn(f,"$initialize",_=function(t,a){var o,l=this,u=_.$$p;return u&&(_.$$p=null),l.depth=t,c(l,e.find_super_dispatcher(l,"initialize",_,!1),[$(["success"],{success:c(l,"proc",[],(o=function(){var $,l=o.$$s||this,u=i;return(u=e.const_get_relative(p,"Trace").$it(l).$reverse()).$pop(),s(s($=t)?n(t,u.$length()):$)&&u.$shift(r(u.$length(),t)),c(a,"call",e.to_a(u))},o.$$s=l,o.$$arity=0,o))})],null)},_.$$arity=2)}(F[0],L,F),function(t,$super,n){function r(){}var a,$,l,u,_,f,p,d=r=o(t,$super,"When",r),v=d.$$proto,h=[d].concat(n);return v.wait=i,e.defn(d,"$initialize",a=function(t){var n,r=this,o=a.$$p;return null==t&&(t=[]),o&&(a.$$p=null),c(r,e.find_super_dispatcher(r,"initialize",a,!1),[],null),r.wait=[],c(t,"each",[],((n=function(e){var t=n.$$s||this;return null==e&&(e=i),t.$wait(e)}).$$s=r,n.$$arity=1,n))},a.$$arity=-1),e.defn(d,"$each",$=function(){var t,n=this,r=$.$$p,a=r||i;return r&&($.$$p=null),s(a)||n.$raise(e.const_get_relative(h,"ArgumentError"),"no block given"),c(n,"then",[],((t=function(e){t.$$s;return null==e&&(e=i),c(e,"each",[],a.$to_proc())}).$$s=n,t.$$arity=1,t))},$.$$arity=0),e.defn(d,"$collect",l=function(){var t,n=this,r=l.$$p,a=r||i;return r&&(l.$$p=null),s(a)||n.$raise(e.const_get_relative(h,"ArgumentError"),"no block given"),c(n,"then",[],((t=function(n){t.$$s;return null==n&&(n=i),e.const_get_relative(h,"When").$new(c(n,"map",[],a.$to_proc()))}).$$s=n,t.$$arity=1,t))},l.$$arity=0),e.defn(d,"$inject",u=function(){var t,n,r=this,a=u.$$p,o=a||i,$=arguments.length,s=$-0;s<0&&(s=0),n=new Array(s);for(var l=0;l<$;l++)n[l-0]=arguments[l];return a&&(u.$$p=null),c(r,"then",[],((t=function(r){t.$$s;return null==r&&(r=i),c(r,"reduce",e.to_a(n),o.$to_proc())}).$$s=r,t.$$arity=1,t))},u.$$arity=-1),e.alias(d,"map","collect"),e.alias(d,"reduce","inject"),e.defn(d,"$wait",_=function(t){var n,r=this;return s(e.const_get_relative(h,"Promise")["$==="](t))||(t=e.const_get_relative(h,"Promise").$value(t)),s(t["$act?"]())&&(t=t.$then()),r.wait["$<<"](t),c(t,"always",[],((n=function(){var e=n.$$s||this;return null==e.next&&(e.next=i),s(e.next["$any?"]())?e.$try():i}).$$s=r,n.$$arity=0,n)),r},_.$$arity=1),e.alias(d,"and","wait"),e.defn(d,"$>>",f=function(){var t,n=this,r=f.$$p,a=i,o=i,$=i;for(r&&(f.$$p=null),o=0,$=arguments.length,a=new Array($);o<$;o++)a[o]=arguments[o];return c(c(n,e.find_super_dispatcher(n,">>",f,!1),a,r),"tap",[],((t=function(){return(t.$$s||this).$try()}).$$s=n,t.$$arity=0,t))},f.$$arity=-1),e.defn(d,"$try",p=function(){var e=this,t=i;return s(c(e.wait,"all?",[],"realized?".$to_proc()))?s(t=c(e.wait,"find",[],"rejected?".$to_proc()))?e.$reject(t.$error()):e.$resolve(c(e.wait,"map",[],"value".$to_proc())):i},p.$$arity=0),i&&"try"}(F[0],L,F)}(a[0],0,a)},Opal.modules["hyper-operation/railway"]=function(e){e.top;var t=[],n=(e.nil,e.breaker,e.slice,e.module),r=e.klass;return function(e,t){var a=n(e,"Hyperstack"),i=(a.$$proto,[a].concat(t));!function(e,$super,t){function n(){}var a=n=r(e,null,"Operation",n);a.$$proto,[a].concat(t)}(i[0],0,i)}(t[0],t)},Opal.modules["hyper-operation/api"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,a=(e.breaker,e.slice,e.module),i=e.klass,o=e.truthy,$=e.send,s=e.hash2,c=e.hash;return e.add_stubs(["$is_a?","$raise","$new","$tap","$split","$to_s","$pop","$inject","$[]","$to_sym","$[]=","$-","$!","$nil?","$abort!","$succeed!","$_Railway","$class","$_run","$instance_eval","$process_params","$process_validations","$run","$dispatch","$result","$then","$to_proc","$fail","$add_param","$get_name_and_opts","$merge","$each","$add_validation","$add_error","$add_step","$add_failed","$add_async","$add_receiver","$singleton_class","$define_singleton_method","$set_var","$superclass","$==","$instance_variable_get","$instance_variable_set","$dup"]),function(n,l){var u=a(n,"Hyperstack"),_=(u.$$proto,[u].concat(l));!function(n,$super,a){function l(){}var u,_,f,p,d,v,h=l=i(n,null,"Operation",l),y=h.$$proto,m=[h].concat(a);y.errors=y.params=r,e.defn(h,"$add_error",u=function(n,a,i){var c,l,u=this;return null==i&&(i=r),o(a["$is_a?"](e.const_get_relative(m,"Symbol")))||u.$raise(e.const_get_relative(m,"ArgumentError").$new("Invalid kind")),u.errors=o(c=u.errors)?c:e.const_get_qualified(e.const_get_relative(m,"Mutations"),"ErrorHash").$new(),$(u.errors,"tap",[],((l=function(c){var u,_=l.$$s||this,f=r,p=r,d=r,v=r;return null==c&&(c=r),p=(f=n.$to_s().$split(".")).$pop(),d=$(f,"inject",[c],((u=function(n,a){u.$$s;var i,s=r;return null==n&&(n=r),null==a&&(a=r),o(i=n["$[]"](a.$to_sym()))?i:(s=[a.$to_sym(),e.const_get_qualified(e.const_get_relative(m,"Mutations"),"ErrorHash").$new()],$(n,"[]=",e.to_a(s)),s[t(s.length,1)])}).$$s=_,u.$$arity=2,u)),v=[p,e.const_get_qualified(e.const_get_relative(m,"Mutations"),"ErrorAtom").$new(n,a,s(["message"],{message:i}))],$(d,"[]=",e.to_a(v)),v[t(v.length,1)]}).$$s=u,l.$$arity=1,l))},u.$$arity=-3),e.defn(h,"$has_errors?",_=function(){return this.errors["$nil?"]()["$!"]()},_.$$arity=0),e.defn(h,"$params",f=function(){return this.params},f.$$arity=0),e.defn(h,"$abort!",p=function(t){return null==t&&(t=r),e.const_get_relative(m,"Railway")["$abort!"](t)},p.$$arity=-1),e.defn(h,"$succeed!",d=function(t){return null==t&&(t=r),e.const_get_relative(m,"Railway")["$succeed!"](t)},d.$$arity=-1),e.defn(h,"$initialize",v=function(){var e=this;return e._railway=e.$class().$_Railway().$new(e)},v.$$arity=0),function(t,n){t.$$proto;var a,i,l,u,_,f,p,d,v,h,y,m,g,b,w,k=[t].concat(n);e.defn(t,"$run",a=function(){var t,n=this,r=arguments.length,a=r-0;a<0&&(a=0),t=new Array(a);for(var i=0;it:e["$>"](t)}e.top;var r=[],a=e.nil,i=(e.breaker,e.slice,e.module),o=e.klass,$=e.truthy,s=e.send,c=e.hash2;return e.add_stubs(["$dup","$each","$inbound_params","$class","$delete","$with_indifferent_access","$to_s","$to_h","$inject","$respond_to?","$raise","$new","$merge!","$combine_arg_array","$filter","$hash_filter","$instance_eval","$translate_args","$to_proc","$<<","$key?","$optional","$send","$required","$define_method","$[]","$method_missing","$[]=","$-","$lock","$get_name_and_opts","$is_a?","$>","$count","$first","$==","$proc","$duck","$underscore","$last","$process_params","$params_wrapper","$add_param","$set_var","$superclass","$tap","$instance_variable_set"]),function(r,l){var u=i(r,"Hyperstack"),_=(u.$$proto,[u].concat(l));!function(r,$super,i){function l(){}var u=l=o(r,null,"Operation",l),_=(u.$$proto,[u].concat(i));(function(r,$super,i){function l(){}var u,_,f,p,d=l=o(r,null,"ParamsWrapper",l),v=d.$$proto,h=[d].concat(i);v.inputs=v.locked=a,e.defn(d,"$initialize",u=function(e){return this.inputs=e},u.$$arity=1),e.defn(d,"$lock",_=function(){var e=this;return e.locked=!0,e},_.$$arity=0),e.defn(d,"$to_h",f=function(){var e,t=this,n=a;return n=t.inputs,$(t.locked)&&(n=n.$dup(),s(t.$class().$inbound_params(),"each",[],((e=function(t){e.$$s;return null==t&&(t=a),n.$delete(""+t)}).$$s=t,e.$$arity=1,e))),n.$with_indifferent_access()},f.$$arity=0),e.defn(d,"$to_s",p=function(){return this.$to_h().$to_s()},p.$$arity=0),function(r,i){r.$$proto;var o,l,u,_,f,p,d,v,h=[r].concat(i);e.defn(r,"$combine_arg_array",o=function(t){var n,r=this;return s(t,"inject",[c([],{}).$with_indifferent_access()],((n=function(t,r){var i=n.$$s||this;return null==t&&(t=a),null==r&&(r=a),$(r["$respond_to?"]("to_h"))||i.$raise(e.const_get_relative(h,"ArgumentError").$new("All arguments must be hashes")),t["$merge!"](r.$to_h())}).$$s=r,n.$$arity=2,n))},o.$$arity=1),e.defn(r,"$process_params",l=function(t,n){var r,i,o,$=this,c=a,l=a,u=a,_=a;return c=$.$combine_arg_array(n),i=$.$hash_filter().$filter(c),l=null==(r=e.to_ary(i))[0]?a:r[0],u=null==r[1]?a:r[1],_=$.$new(l),s(t,"instance_eval",[],((o=function(){var e,t=o.$$s||this;return e=[c,_,u],t.raw_inputs=e[0],t.params=e[1],t.errors=e[2],e}).$$s=$,o.$$arity=0,o))},l.$$arity=2),e.defn(r,"$add_param",u=function(){var n,r,i,o,c,l,_,f=this,p=u.$$p,d=p||a,v=a,h=a,y=a,m=arguments.length,g=m-0;g<0&&(g=0),_=new Array(g);for(var b=0;b "+t.$inspect().$truncate(120,c(["separator"],{separator:"..."})))}).$$s=o,i.$$arity=2,i)),$(t["$respond_to?"]("details"))&&l["$<<"]("\n"+t.$details()),t.$__hyperstack_on_error(n,r,l.$join("\n"))),c(["json","status"],{json:c(["error_class","error"],{error_class:t.$class().$to_s(),error:t}),status:o.$status(t)})},d.$$arity=3),e.defn(r,"$remote",v=function(t){var r,i=this,o=a,$=a,l=a,u=a,_=a,f=a,p=arguments.length,d=p-1;d<0&&(d=0),r=new Array(d);for(var v=1;vt:e["$>"](t)}e.top;var a=[],i=e.nil,o=(e.$$$,e.$$,e.klass),s=e.send,u=e.truthy;return e.add_stubs(["$==","$%","$-","$size","$concat","$dup","$*","$each_slice","$<<","$div","$times","$+","$>","$slice","$!=","$each","$inject","$call","$last"]),function(a,$super,l){var c,p,d,f=o(a,null,"Array");[f].concat(l);return e.def(f,"$in_groups_of",c=function(r,$){var a,o,u=c.$$p,l=u||i,p=this,d=i,f=i,_=i;return u&&(c.$$p=null),null==$&&($=i),$["$=="](!1)?d=p:(f=t(r,p.$size()["$%"](r))["$%"](r),d=p.$dup().$concat(n([$],f))),l!==i?s(d,"each_slice",[r],((a=function(t){null==a.$$s||a.$$s;return null==t&&(t=i),e.yield1(l,t)}).$$s=p,a.$$arity=1,a)):(_=[],s(d,"each_slice",[r],((o=function(e){null==o.$$s||o.$$s;return null==e&&(e=i),_["$<<"](e)}).$$s=p,o.$$arity=1,o)),_)},c.$$arity=-2),e.def(f,"$in_groups",p=function(t,n){var a,o,l=p.$$p,c=l||i,d=this,f=i,_=i,h=i,y=i;return l&&(p.$$p=null),null==n&&(n=i),f=d.$size().$div(t),_=d.$size()["$%"](t),h=[],y=0,s(t,"times",[],((a=function(e){var t=null==a.$$s?this:a.$$s,o=i,s=i,l=i,c=i,p=i;return null==e&&(e=i),o=r(f,u(u(s=$(_,0))?$(_,e):s)?1:0),h["$<<"](l=t.$slice(y,o)),u(u(c=u(p=n["$!="](!1))?$(_,0):p)?o["$=="](f):c)&&l["$<<"](n),y=r(y,o)}).$$s=d,a.$$arity=1,a)),c!==i?s(h,"each",[],((o=function(t){null==o.$$s||o.$$s;return null==t&&(t=i),e.yield1(c,t)}).$$s=d,o.$$arity=1,o)):h},p.$$arity=-2),e.def(f,"$split",d=function(e){var t,n=d.$$p,r=n||i,$=this;return n&&(d.$$p=null),n&&(d.$$p=null),null==e&&(e=i),s($,"inject",[[[]]],((t=function(n,$){null==t.$$s||t.$$s;var a=i,o=i;return null==n&&(n=i),null==$&&($=i),u(u(a=u(o=r)?r.$call($):o)?a:e["$=="]($))?n["$<<"]([]):n.$last()["$<<"]($),n}).$$s=$,t.$$arity=2,t))},d.$$arity=-1),i&&"split"}(a[0],0,a)},Opal.modules["active_support/core_ext/array"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/array/extract_options"),t.$require("active_support/core_ext/array/wrap"),t.$require("active_support/core_ext/array/grouping")},Opal.modules["active_support/core_ext/kernel/singleton_class"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.module),$=e.send;return e.add_stubs(["$class_eval","$singleton_class","$to_proc"]),function(t,a){var i,o=r(t,"Kernel");[o].concat(a);return e.def(o,"$class_eval",i=function(){var t,r=i.$$p,a=r||n,o=this;return r&&(i.$$p=null),r&&(i.$$p=null),t=e.slice.call(arguments,0,arguments.length),$(o.$singleton_class(),"class_eval",e.to_a(t),a.$to_proc())},i.$$arity=-1),n&&"class_eval"}(t[0],t)},Opal.modules["active_support/core_ext/module/remove_method"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass),$=e.truthy,a=e.send;return e.add_stubs(["$method_defined?","$private_method_defined?","$undef_method","$remove_possible_method","$define_method","$to_proc"]),function(t,$super,i){var o,s,u=r(t,null,"Module");[u].concat(i);return e.def(u,"$remove_possible_method",o=function(e){var t=this,r=n;return $($(r=t["$method_defined?"](e))?r:t["$private_method_defined?"](e))?t.$undef_method(e):n},o.$$arity=1),e.def(u,"$redefine_method",s=function(e){var t=s.$$p,r=t||n,$=this;return t&&(s.$$p=null),t&&(s.$$p=null),$.$remove_possible_method(e),a($,"define_method",[e],r.$to_proc())},s.$$arity=1),n&&"redefine_method"}(t[0],0,t)},Opal.modules["active_support/core_ext/class/attribute"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.$$$,e.$$,e.klass),a=e.truthy,i=e.send;return e.add_stubs(["$require","$extract_options!","$fetch","$each","$define_singleton_method","$!","$public_send","$class_eval","$singleton_class","$remove_possible_method","$define_method","$singleton_class?","$instance_variable_defined?","$instance_variable_get","$send","$class","$attr_writer","$private","$respond_to?","$!=","$first","$ancestors"]),t.$require("active_support/core_ext/kernel/singleton_class"),t.$require("active_support/core_ext/module/remove_method"),t.$require("active_support/core_ext/array/extract_options"),function(t,$super,n){var o,s,u=$(t,null,"Class");[u].concat(n);return e.def(u,"$class_attribute",o=function(){var t,n,$,o=this,s=r,u=r,l=r,c=r,p=r,d=r;return t=e.slice.call(arguments,0,arguments.length),s=(n=t)["$extract_options!"](),u=a(l=s.$fetch("instance_accessor",!0))?s.$fetch("instance_reader",!0):l,c=a(p=s.$fetch("instance_accessor",!0))?s.$fetch("instance_writer",!0):p,d=s.$fetch("instance_predicate",!0),i(n,"each",[],(($=function(e){var t,n,o,s,l,p=null==$.$$s?this:$.$$s,f=r;return null==e&&(e=r),i(p,"define_singleton_method",[e],((t=function(){null==t.$$s||t.$$s;return r}).$$s=p,t.$$arity=0,t)),a(d)&&i(p,"define_singleton_method",[e+"?"],((n=function(){return(null==n.$$s?this:n.$$s).$public_send(e)["$!"]()["$!"]()}).$$s=p,n.$$arity=0,n)),f="@"+e,i(p,"define_singleton_method",[e+"="],((o=function(t){var n,$,s=null==o.$$s?this:o.$$s;return null==t&&(t=r),i(s.$singleton_class(),"class_eval",[],((n=function(){var r,$=null==n.$$s?this:n.$$s;return $.$remove_possible_method(e),i($,"define_method",[e],((r=function(){null==r.$$s||r.$$s;return t}).$$s=$,r.$$arity=0,r))}).$$s=s,n.$$arity=0,n)),a(s["$singleton_class?"]())&&i(s,"class_eval",[],(($=function(){var t,n=null==$.$$s?this:$.$$s;return n.$remove_possible_method(e),i(n,"define_method",[e],((t=function(){var n=null==t.$$s?this:t.$$s;return a(n["$instance_variable_defined?"](f))?n.$instance_variable_get(f):n.$singleton_class().$send(e)}).$$s=n,t.$$arity=0,t))}).$$s=s,$.$$arity=0,$)),t}).$$s=p,o.$$arity=1,o)),a(u)&&(p.$remove_possible_method(e),i(p,"define_method",[e],((s=function(){var t=null==s.$$s?this:s.$$s;return a(t["$instance_variable_defined?"](f))?t.$instance_variable_get(f):t.$class().$public_send(e)}).$$s=p,s.$$arity=0,s)),a(d)&&i(p,"define_method",[e+"?"],((l=function(){return(null==l.$$s?this:l.$$s).$public_send(e)["$!"]()["$!"]()}).$$s=p,l.$$arity=0,l))),a(c)?p.$attr_writer(e):r}).$$s=o,$.$$arity=1,$))},o.$$arity=-1),u.$private(),a(u["$respond_to?"]("singleton_class?"))?r:(e.def(u,"$singleton_class?",s=function(){var e=this,t=r;return a(t=!0)?t:e.$ancestors().$first()["$!="](e)},s.$$arity=0),r&&"singleton_class?")}(n[0],0,n)},Opal.modules["active_support/core_ext/class"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/class/attribute")},Opal.modules["active_support/core_ext/enumerable"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.send;return e.add_stubs(["$enum_for","$new","$destructure","$[]=","$-"]),function(n,o){var s,u=a(n,"Enumerable"),l=[u].concat(o);return e.def(u,"$index_by",s=function(){var n,a=s.$$p,o=a||r,u=this,c=r,p=r;return a&&(s.$$p=null),a&&(s.$$p=null),o===r?u.$enum_for("index_by"):(c=$(l,"Hash").$new(),u.$each._p=function(){var r=$(l,"Opal").$destructure(arguments),a=$opal.$yield1(o,r);if(a===$breaker)return n=$breaker.$v,$breaker;p=[a,r],i(c,"[]=",e.to_a(p)),p[t(p.length,1)]},u.$each(),n!==undefined?n:c)},s.$$arity=0),r&&"index_by"}(n[0],n)},Opal.modules["active_support/hash_with_indifferent_access"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.klass,o=e.hash2,s=e.truthy,u=e.send2,l=e.find_super,c=e.send;return e.add_stubs(["$dup","$respond_to?","$update","$to_hash","$tap","$new","$default","$default=","$-","$default_proc","$default_proc="]),function(n,p){var d=[a(n,"ActiveSupport")].concat(p);return function(n,$super,$){var a,p,d,f,_,h=i(n,$super,"HashWithIndifferentAccess");[h].concat($);return e.def(h,"$extractable_options?",a=function(){return!0},a.$$arity=0),e.def(h,"$with_indifferent_access",p=function(){return this.$dup()},p.$$arity=0),e.def(h,"$nested_under_indifferent_access",d=function(){return this},d.$$arity=0),e.def(h,"$initialize",f=function(e){var t=f.$$p,n=this;return t&&(f.$$p=null),null==e&&(e=o([],{})),s(e["$respond_to?"]("to_hash"))?(u(n,l(n,"initialize",f,!1,!0),"initialize",[],null),n.$update(e)):u(n,l(n,"initialize",f,!1,!0),"initialize",[e],null)},f.$$arity=-1),e.defs(h,"$new_from_hash_copying_default",_=function(n){var $,a=this;return n=n.$to_hash(),c(a.$new(n),"tap",[],(($=function(a){null==$.$$s||$.$$s;var i=r;return null==a&&(a=r),i=[n.$default()],c(a,"default=",e.to_a(i)),i[t(i.length,1)],s(n.$default_proc())?(i=[n.$default_proc()],c(a,"default_proc=",e.to_a(i)),i[t(i.length,1)]):r}).$$s=a,$.$$arity=1,$))},_.$$arity=1),r&&"new_from_hash_copying_default"}(d[0],$(d,"Hash"),d)}(n[0],n)},Opal.modules["active_support/core_ext/hash/indifferent_access"]=function(e){var t=e.top,n=[],r=(e.nil,e.$$$),$=e.$$,a=e.klass,i=e.alias;return e.add_stubs(["$require","$new_from_hash_copying_default"]),t.$require("active_support/hash_with_indifferent_access"),function(t,$super,n){var o,s=a(t,null,"Hash"),u=[s].concat(n);return e.def(s,"$with_indifferent_access",o=function(){var e=this;return r($(u,"ActiveSupport"),"HashWithIndifferentAccess").$new_from_hash_copying_default(e)},o.$$arity=0),i(s,"nested_under_indifferent_access","with_indifferent_access")}(n[0],0,n)},Opal.modules["active_support/core_ext/hash"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/hash/indifferent_access")},Opal.modules["active_support/core_ext/numeric/time"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var $=[],a=(e.nil,e.$$$),i=(e.$$,e.klass),o=e.alias;return e.add_stubs(["$*","$hours","$days","$weeks","$current","$-","$+"]),function($,$super,s){var u,l,c,p,d,f,_,h,y=i($,null,"Numeric");[y].concat(s);return e.def(y,"$seconds",u=function(){return this},u.$$arity=0),o(y,"second","seconds"),e.def(y,"$minutes",l=function(){return t(this,60)},l.$$arity=0),o(y,"minute","minutes"),e.def(y,"$hours",c=function(){return t(this,3600)},c.$$arity=0),o(y,"hour","hours"),e.def(y,"$days",p=function(){return t(this,24..$hours())},p.$$arity=0),o(y,"day","days"),e.def(y,"$weeks",d=function(){return t(this,7..$days())},d.$$arity=0),o(y,"week","weeks"),e.def(y,"$fortnights",f=function(){return t(this,2..$weeks())},f.$$arity=0),o(y,"fortnight","fortnights"),e.def(y,"$ago",_=function(e){var t=this;return null==e&&(e=a("::","Time").$current()),n(e,t)},_.$$arity=-1),o(y,"until","ago"),e.def(y,"$since",h=function(e){var t=this;return null==e&&(e=a("::","Time").$current()),r(e,t)},h.$$arity=-1),o(y,"from_now","since")}($[0],0,$)},Opal.modules["active_support/core_ext/integer/time"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}var n=e.top,r=[],$=(e.nil,e.$$$,e.$$,e.klass),a=e.alias;return e.add_stubs(["$require","$*","$days"]),n.$require("active_support/core_ext/numeric/time"),function(n,$super,r){var i,o,s=$(n,null,"Numeric");[s].concat(r);return e.def(s,"$months",i=function(){return t(this,30..$days())},i.$$arity=0),a(s,"month","months"),e.def(s,"$years",o=function(){return t(this,365.25.$days())},o.$$arity=0),a(s,"year","years")}(r[0],0,r)},Opal.modules["active_support/core_ext/integer"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/integer/time")},Opal.modules["active_support/core_ext/kernel"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/kernel/singleton_class")},Opal.modules.set=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e"},y.$$arity=0),e.def(K,"$==",v=function(e){var t,n=this,r=a;return!!u(n["$equal?"](e))||(u(e["$instance_of?"](n.$class()))?n.hash["$=="](e.$instance_variable_get("@hash")):!!u(u(r=e["$is_a?"](i(X,"Set")))?n.$size()["$=="](e.$size()):r)&&l(e,"all?",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==n.hash&&(n.hash=a),null==e&&(e=a),n.hash["$include?"](e)}).$$s=n,t.$$arity=1,t)))},v.$$arity=1),e.def(K,"$add",m=function(n){var r=this,$=a;return $=[n,!0],l(r.hash,"[]=",e.to_a($)),$[t($.length,1)],r},m.$$arity=1),c(K,"<<","add"),e.def(K,"$classify",g=function(){var n,r,$=g.$$p,o=$||a,s=this,u=a;return $&&(g.$$p=null),$&&(g.$$p=null),o===a?s.$enum_for("classify"):(u=l(i(X,"Hash"),"new",[],((n=function(r,$){var i=null==n.$$s?this:n.$$s,o=a;return null==r&&(r=a),null==$&&($=a),o=[$,i.$class().$new()],l(r,"[]=",e.to_a(o)),o[t(o.length,1)]}).$$s=s,n.$$arity=2,n)),l(s,"each",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=a),u["$[]"](e.yield1(o,t)).$add(t)}).$$s=s,r.$$arity=1,r)),u)},g.$$arity=0),e.def(K,"$collect!",b=function(){var t,n=b.$$p,r=n||a,$=this,i=a;return n&&(b.$$p=null),n&&(b.$$p=null),r===a?$.$enum_for("collect!"):(i=$.$class().$new(),l($,"each",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),i["$<<"](e.yield1(r,n))}).$$s=$,t.$$arity=1,t)),$.$replace(i))},b.$$arity=0),c(K,"map!","collect!"),e.def(K,"$delete",w=function(e){var t=this;return t.hash.$delete(e),t},w.$$arity=1),e.def(K,"$delete?",k=function(e){var t=this;return u(t["$include?"](e))?(t.$delete(e),t):a},k.$$arity=1),e.def(K,"$delete_if",O=function(){var t,n,r=O.$$p,$=r||a,i=this;return r&&(O.$$p=null),$===a?i.$enum_for("delete_if"):(l(l(i,"select",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e.yield1($,n)}).$$s=i,t.$$arity=1,t)),"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==t.hash&&(t.hash=a),null==e&&(e=a),t.hash.$delete(e)}).$$s=i,n.$$arity=1,n)),i)},O.$$arity=0),e.def(K,"$keep_if",E=function(){var t,n,r=E.$$p,$=r||a,i=this;return r&&(E.$$p=null),$===a?i.$enum_for("keep_if"):(l(l(i,"reject",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e.yield1($,n)}).$$s=i,t.$$arity=1,t)),"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==t.hash&&(t.hash=a),null==e&&(e=a),t.hash.$delete(e)}).$$s=i,n.$$arity=1,n)),i)},E.$$arity=0),e.def(K,"$reject!",x=function(){var e=x.$$p,t=e||a,n=this,r=a;return e&&(x.$$p=null),e&&(x.$$p=null),t===a?n.$enum_for("reject!"):(r=n.$size(),l(n,"delete_if",[],t.$to_proc()),n.$size()["$=="](r)?a:n)},x.$$arity=0),e.def(K,"$select!",S=function(){var e=S.$$p,t=e||a,n=this,r=a;return e&&(S.$$p=null),e&&(S.$$p=null),t===a?n.$enum_for("select!"):(r=n.$size(),l(n,"keep_if",[],t.$to_proc()),n.$size()["$=="](r)?a:n)},S.$$arity=0),c(K,"filter!","select!"),e.def(K,"$add?",q=function(e){var t=this;return u(t["$include?"](e))?a:t.$add(e)},q.$$arity=1),e.def(K,"$each",N=function(){var e=N.$$p,t=e||a,n=this;return e&&(N.$$p=null),e&&(N.$$p=null),t===a?n.$enum_for("each"):(l(n.hash,"each_key",[],t.$to_proc()),n)},N.$$arity=0),e.def(K,"$empty?",C=function(){return this.hash["$empty?"]()},C.$$arity=0),e.def(K,"$eql?",z=function(e){var t,n=this;return n.hash["$eql?"](l(e,"instance_eval",[],((t=function(){var e=null==t.$$s?this:t.$$s;return null==e.hash&&(e.hash=a),e.hash}).$$s=n,t.$$arity=0,t)))},z.$$arity=1),e.def(K,"$clear",I=function(){var e=this;return e.hash.$clear(),e},I.$$arity=0),e.def(K,"$include?",D=function(e){return this.hash["$include?"](e)},D.$$arity=1),c(K,"member?","include?"),e.def(K,"$merge",H=function(e){var t,n=this;return l(e,"each",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n.$add(e)}).$$s=n,t.$$arity=1,t)),n},H.$$arity=1),e.def(K,"$replace",A=function(e){var t=this;return t.$clear(),t.$merge(e),t},A.$$arity=1),e.def(K,"$size",j=function(){return this.hash.$size()},j.$$arity=0),c(K,"length","size"),e.def(K,"$subtract",M=function(e){var t,n=this;return l(e,"each",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n.$delete(e)}).$$s=n,t.$$arity=1,t)),n},M.$$arity=1),e.def(K,"$|",R=function(e){var t=this;return u(e["$respond_to?"]("each"))||t.$raise(i(X,"ArgumentError"),"value must be enumerable"),t.$dup().$merge(e)},R.$$arity=1),e.def(K,"$superset?",T=function(e){var t,r=this;return u(e["$is_a?"](i(X,"Set")))||r.$raise(i(X,"ArgumentError"),"value must be a set"),!u(n(r.$size(),e.$size()))&&l(e,"all?",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n["$include?"](e)}).$$s=r,t.$$arity=1,t))},T.$$arity=1),c(K,">=","superset?"),e.def(K,"$proper_superset?",B=function(e){var t,n=this;return u(e["$is_a?"](i(X,"Set")))||n.$raise(i(X,"ArgumentError"),"value must be a set"),!u(r(n.$size(),e.$size()))&&l(e,"all?",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n["$include?"](e)}).$$s=n,t.$$arity=1,t))},B.$$arity=1),c(K,">","proper_superset?"),e.def(K,"$subset?",P=function(e){var t,r=this;return u(e["$is_a?"](i(X,"Set")))||r.$raise(i(X,"ArgumentError"),"value must be a set"),!u(n(e.$size(),r.$size()))&&l(r,"all?",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e["$include?"](n)}).$$s=r,t.$$arity=1,t))},P.$$arity=1),c(K,"<=","subset?"),e.def(K,"$proper_subset?",L=function(e){var t,n=this;return u(e["$is_a?"](i(X,"Set")))||n.$raise(i(X,"ArgumentError"),"value must be a set"),!u(r(e.$size(),n.$size()))&&l(n,"all?",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e["$include?"](n)}).$$s=n,t.$$arity=1,t))},L.$$arity=1),c(K,"<","proper_subset?"),e.def(K,"$intersect?",F=function(e){var t,r,$=this;return u(e["$is_a?"](i(X,"Set")))||$.$raise(i(X,"ArgumentError"),"value must be a set"),u(n($.$size(),e.$size()))?l($,"any?",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e["$include?"](n)}).$$s=$,t.$$arity=1,t)):l(e,"any?",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==e&&(e=a),t["$include?"](e)}).$$s=$,r.$$arity=1,r))},F.$$arity=1),e.def(K,"$disjoint?",U=function(e){return this["$intersect?"](e)["$!"]()},U.$$arity=1),c(K,"+","|"),c(K,"union","|"),e.def(K,"$to_a",W=function(){return this.hash.$keys()},W.$$arity=0)}($[0],0,$),function(t,n){var r,$=p(t,"Enumerable"),o=[$].concat(n);return e.def($,"$to_set",r=function(){var t,n,$,s=r.$$p,u=s||a,c=this;return s&&(r.$$p=null),s&&(r.$$p=null),(t=e.slice.call(arguments,0,arguments.length)).length>0&&(n=t[0],t.splice(0,1)),null==n&&(n=i(o,"Set")),$=t,l(n,"new",[c].concat(e.to_a($)),u.$to_proc())},r.$$arity=-1),a&&"to_set"}($[0],$)},Opal.modules["active_support/inflector/inflections"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],a=e.nil,i=(e.$$$,e.$$),o=e.module,s=e.klass,u=e.hash2,l=e.send,c=e.truthy,p=e.range;return e.add_stubs(["$require","$extend","$add","$map","$flatten","$to_proc","$concat","$include?","$downcase","$new","$[]","$[]=","$-","$attr_reader","$each","$instance_variable_set","$dup","$send","$is_a?","$delete","$unshift","$==","$upcase","$plural","$+","$singular","$===","$instance"]),r.$require("set"),function(r,$){var d=[o(r,"ActiveSupport")].concat($);return function(r,$){var d,f=o(r,"Inflector"),_=[f].concat($);return f.$extend(f),function(r,$super,$){var o,d,f,_,h,y,v,m,g,b=s(r,null,"Inflections"),w=[b].concat($);b.$$prototype.uncountables=b.$$prototype.plurals=b.$$prototype.singulars=b.$$prototype.humans=a,b.__instance__=u([],{}),function(t,$super,n){var r,$,o,u,c=s(t,$super,"Uncountables"),p=[c].concat(n);e.def(c,"$<<",r=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),n.$add(t)},r.$$arity=-1),e.def(c,"$add",$=function(e){var t=this;return e=l(e.$flatten(),"map",[],"downcase".$to_proc()),t.$concat(e),t},$.$$arity=1),e.def(c,"$uncountable?",o=function(e){return this["$include?"](e.$downcase())},o.$$arity=1),e.def(c,"$dup",u=function(){var e=this,t=a;return(t=i(p,"Uncountables").$new()).$add(e),t},u.$$arity=0)}(w[0],i(w,"Array"),w),e.defs(b,"$instance",o=function(n){var r=this,$=a,i=a;return null==r.__instance__&&(r.__instance__=a),c($=r.__instance__["$[]"](n))?$:(i=[n,r.$new()],l(r.__instance__,"[]=",e.to_a(i)),i[t(i.length,1)])},o.$$arity=1),b.$attr_reader("plurals","singulars","uncountables","humans"),e.def(b,"$initialize",d=function(){var e,t=this;return e=[[],[],i(w,"Uncountables").$new(),[]],t.plurals=e[0],t.singulars=e[1],t.uncountables=e[2],t.humans=e[3],e},d.$$arity=0),e.def(b,"$initialize_dup",f=function(e){var t,n=this;return l(["plurals","singulars","uncountables","humans"],"each",[],((t=function(n){var r=null==t.$$s?this:t.$$s;return null==n&&(n=a),r.$instance_variable_set("@"+n,e.$send(n).$dup())}).$$s=n,t.$$arity=1,t))},f.$$arity=1),e.def(b,"$plural",_=function(e,t){var n=this;return c(e["$is_a?"](i(w,"String")))&&n.uncountables.$delete(e),n.uncountables.$delete(t),n.plurals.$unshift([e,t])},_.$$arity=2),e.def(b,"$singular",h=function(e,t){var n=this;return c(e["$is_a?"](i(w,"String")))&&n.uncountables.$delete(e),n.uncountables.$delete(t),n.singulars.$unshift([e,t])},h.$$arity=2),e.def(b,"$uncountable",y=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),n.uncountables.$add(t)},y.$$arity=-1),e.def(b,"$human",v=function(e,t){return this.humans.$unshift([e,t])},v.$$arity=2),e.def(b,"$irregular",m=function(t,r){var $=this,i=a,o=a,s=a,u=a;return $.uncountables.$delete(t),$.uncountables.$delete(r),i=t["$[]"](0),o=t["$[]"](p(1,-1,!1)),s=r["$[]"](0),u=r["$[]"](p(1,-1,!1)),i.$upcase()["$=="](s.$upcase())?($.$plural(e.regexp(["(",i,")",o,"$"],"i"),n("\\1",u)),$.$plural(e.regexp(["(",s,")",u,"$"],"i"),n("\\1",u)),$.$singular(e.regexp(["(",i,")",o,"$"],"i"),n("\\1",o)),$.$singular(e.regexp(["(",s,")",u,"$"],"i"),n("\\1",o))):($.$plural(e.regexp([i.$upcase(),o,"$"],"i"),n(s.$upcase(),u)),$.$plural(e.regexp([i.$downcase(),o,"$"],"i"),n(s.$downcase(),u)),$.$plural(e.regexp([s.$upcase(),u,"$"],"i"),n(s.$upcase(),u)),$.$plural(e.regexp([s.$downcase(),u,"$"],"i"),n(s.$downcase(),u)),$.$singular(e.regexp([i.$upcase(),o,"$"],"i"),n(i.$upcase(),o)),$.$singular(e.regexp([i.$downcase(),o,"$"],"i"),n(i.$downcase(),o)),$.$singular(e.regexp([s.$upcase(),u,"$"],"i"),n(i.$upcase(),o)),$.$singular(e.regexp([s.$downcase(),u,"$"],"i"),n(i.$downcase(),o)))},m.$$arity=2),e.def(b,"$clear",g=function(e){var t,n=this,r=a;return null==e&&(e="all"),r=e,"all"["$==="](r)?(t=[[],[],i(w,"Uncountables").$new(),[]],n.plurals=t[0],n.singulars=t[1],n.uncountables=t[2],n.humans=t[3],t):n.$instance_variable_set("@"+e,[])},g.$$arity=-1)}(_[0],0,_),e.def(f,"$inflections",d=function(t){var n=d.$$p,r=n||a;return n&&(d.$$p=null),null==t&&(t="en"),r!==a?e.yield1(r,i(_,"Inflections").$instance(t)):i(_,"Inflections").$instance(t)},d.$$arity=-1),a&&"inflections"}(d[0],d)}($[0],$)},Opal.modules["active_support/inflections"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.send;return e.add_stubs(["$require","$inflections","$plural","$singular","$irregular","$uncountable"]),t.$require("active_support/inflector/inflections"),function(e,t){var n,o=a(e,"ActiveSupport"),s=[o].concat(t);return i($(s,"Inflector"),"inflections",["en"],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=r),e.$plural(/$/,"s"),e.$plural(/s$/i,"s"),e.$plural(/^(ax|test)is$/i,"\\1es"),e.$plural(/(octop|vir)us$/i,"\\1i"),e.$plural(/(octop|vir)i$/i,"\\1i"),e.$plural(/(alias|status)$/i,"\\1es"),e.$plural(/(bu)s$/i,"\\1ses"),e.$plural(/(buffal|tomat)o$/i,"\\1oes"),e.$plural(/([ti])um$/i,"\\1a"),e.$plural(/([ti])a$/i,"\\1a"),e.$plural(/sis$/i,"ses"),e.$plural(/(?:([^f])fe|([lr])f)$/i,"\\1\\2ves"),e.$plural(/(hive)$/i,"\\1s"),e.$plural(/([^aeiouy]|qu)y$/i,"\\1ies"),e.$plural(/(x|ch|ss|sh)$/i,"\\1es"),e.$plural(/(matr|vert|ind)(?:ix|ex)$/i,"\\1ices"),e.$plural(/^(m|l)ouse$/i,"\\1ice"),e.$plural(/^(m|l)ice$/i,"\\1ice"),e.$plural(/^(ox)$/i,"\\1en"),e.$plural(/^(oxen)$/i,"\\1"),e.$plural(/(quiz)$/i,"\\1zes"),e.$singular(/s$/i,""),e.$singular(/(ss)$/i,"\\1"),e.$singular(/(n)ews$/i,"\\1ews"),e.$singular(/([ti])a$/i,"\\1um"),e.$singular(/((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)(sis|ses)$/i,"\\1sis"),e.$singular(/(^analy)(sis|ses)$/i,"\\1sis"),e.$singular(/([^f])ves$/i,"\\1fe"),e.$singular(/(hive)s$/i,"\\1"),e.$singular(/(tive)s$/i,"\\1"),e.$singular(/([lr])ves$/i,"\\1f"),e.$singular(/([^aeiouy]|qu)ies$/i,"\\1y"),e.$singular(/(s)eries$/i,"\\1eries"),e.$singular(/(m)ovies$/i,"\\1ovie"),e.$singular(/(x|ch|ss|sh)es$/i,"\\1"),e.$singular(/^(m|l)ice$/i,"\\1ouse"),e.$singular(/(bus)(es)?$/i,"\\1"),e.$singular(/(o)es$/i,"\\1"),e.$singular(/(shoe)s$/i,"\\1"),e.$singular(/(cris|test)(is|es)$/i,"\\1is"),e.$singular(/^(a)x[ie]s$/i,"\\1xis"),e.$singular(/(octop|vir)(us|i)$/i,"\\1us"),e.$singular(/(alias|status)(es)?$/i,"\\1"),e.$singular(/^(ox)en/i,"\\1"),e.$singular(/(vert|ind)ices$/i,"\\1ex"),e.$singular(/(matr)ices$/i,"\\1ix"),e.$singular(/(quiz)zes$/i,"\\1"),e.$singular(/(database)s$/i,"\\1"),e.$irregular("person","people"),e.$irregular("man","men"),e.$irregular("child","children"),e.$irregular("sex","sexes"),e.$irregular("move","moves"),e.$irregular("zombie","zombies"),e.$uncountable(["equipment","information","rice","money","species","series","fish","sheep","jeans","police"])}).$$s=o,n.$$arity=1,n))}(n[0],n)},Opal.modules["active_support/inflector/methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var r=e.top,$=[],a=e.nil,i=(e.$$$,e.$$),o=e.module,s=e.truthy,u=e.send,l=e.gvars,c=e.hash2,p=e.range;return e.add_stubs(["$require","$extend","$apply_inflections","$plurals","$inflections","$singulars","$to_s","$sub","$capitalize","$downcase","$gsub","$freeze","$match?","$tr","$dup","$each","$humans","$is_a?","$=~","$==","$upcase","$>","$length","$+","$[]","$humanize","$underscore","$pluralize","$camelize","$singularize","$rindex","$demodulize","$split","$empty?","$raise","$size","$first","$shift","$inject","$const_get","$const_defined?","$ancestors","$constantize","$name","$!","$include?","$const_regexp","$message","$abs","$to_i","$%","$===","$ordinal","$private","$blank?","$escape","$pop","$reverse","$uncountable?","$uncountables"]),r.$require("active_support/inflections"),function(r,$){var d=[o(r,"ActiveSupport")].concat($);return function(r,$){var d,f,_,h,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I=o(r,"Inflector"),D=[I].concat($);return I.$extend(I),e.def(I,"$pluralize",d=function(e,t){var n=this;return null==t&&(t="en"),n.$apply_inflections(e,n.$inflections(t).$plurals(),t)},d.$$arity=-2),e.def(I,"$singularize",f=function(e,t){var n=this;return null==t&&(t="en"),n.$apply_inflections(e,n.$inflections(t).$singulars(),t)},f.$$arity=-2),e.def(I,"$camelize",_=function(e,t){var n,r,$=this,i=a;return null==t&&(t=!0),i=e.$to_s(),i=s(t)?u(i,"sub",[/^[a-z\d]*/],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=a),e.$capitalize()}).$$s=$,n.$$arity=1,n)):i.$downcase(),i=(i=u(i,"gsub",[/(?:_|(\/))([a-z\d]*)/i],((r=function(){var e;null==r.$$s||r.$$s;return""+((e=l["~"])===a?a:e["$[]"](1))+((e=l["~"])===a?a:e["$[]"](2)).$capitalize()}).$$s=$,r.$$arity=0,r))).$gsub("/".$freeze(),"::".$freeze())},_.$$arity=-2),e.def(I,"$underscore",h=function(e){return s(/[A-Z-]|::/["$match?"](e))?e.$to_s().$gsub("::".$freeze(),"/".$freeze()).$gsub(/([A-Z\d]+)([A-Z][a-z])/,"\\1_\\2".$freeze()).$gsub(/([a-z\d])([A-Z])/,"\\1_\\2".$freeze()).$tr("-".$freeze(),"_".$freeze()).$downcase():e},h.$$arity=1),e.def(I,"$humanize",y=function(t,n){var r,$,o,l,p,d=this,f=a;if(null==n)n=c([],{});else if(!n.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(r=n.$$smap.capitalize)&&(r=!0),null==($=n.$$smap.keep_id_suffix)&&($=!1),f=t.$to_s().$dup(),function(){var t=e.new_brk();try{u(d.$inflections().$humans(),"each",[],((o=function(n){null==o.$$s||o.$$s;var r,$,u=a,l=a,c=a,p=a,d=a;if(null==n&&(n=a),$=n,r=e.to_ary($),u=null==r[0]?a:r[0],l=null==r[1]?a:r[1],!s(s(c=s(p=u["$is_a?"](i(D,"Regexp")))?f["$=~"](u):p)?c:s(d=u["$is_a?"](i(D,"String")))?f["$=="](u):d))return a;f=f.$sub(u,l),e.brk(a,t)}).$$s=d,o.$$brk=t,o.$$arity=1,o.$$has_top_level_mlhs_arg=!0,o))}catch(n){if(n===t)return n.$v;throw n}}(),f=f.$sub(/^_+/,"".$freeze()),s($)||(f=f.$sub(/_id$/,"".$freeze())),f=f.$tr("_".$freeze()," ".$freeze()),f=u(f,"gsub",[/([a-z\d]*)/i],((l=function(e){null==l.$$s||l.$$s;return null==e&&(e=a),""+e.$downcase()}).$$s=d,l.$$arity=1,l)),s(r)&&(f=u(f,"sub",[/^\w/],((p=function(e){null==p.$$s||p.$$s;return null==e&&(e=a),e.$upcase()}).$$s=d,p.$$arity=1,p))),f},y.$$arity=-2),e.def(I,"$upcase_first",v=function(e){return s(t(e.$length(),0))?n(e["$[]"](0).$upcase(),e["$[]"](p(1,-1,!1))):""},v.$$arity=1),e.def(I,"$titleize",m=function(t,n){var r,$,i=this;if(null==n)n=c([],{});else if(!n.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(r=n.$$smap.keep_id_suffix)&&(r=!1),u(i.$humanize(i.$underscore(t),c(["keep_id_suffix"],{keep_id_suffix:r})),"gsub",[/([a-zA-Z'\u2019`])[a-z]*/],(($=function(e){null==$.$$s||$.$$s;return null==e&&(e=a),e.$capitalize()}).$$s=i,$.$$arity=1,$))},m.$$arity=-2),e.def(I,"$tableize",g=function(e){var t=this;return t.$pluralize(t.$underscore(e))},g.$$arity=1),e.def(I,"$classify",b=function(e){var t=this;return t.$camelize(t.$singularize(e.$to_s().$sub(/.*\./,"".$freeze())))},b.$$arity=1),e.def(I,"$dasherize",w=function(e){return e.$tr("_".$freeze(),"-".$freeze())},w.$$arity=1),e.def(I,"$demodulize",k=function(t){var r=a;return t=t.$to_s(),s(r=t.$rindex("::"))?t["$[]"](e.Range.$new(n(r,2),-1,!1)):t},k.$$arity=1),e.def(I,"$deconstantize",O=function(e){var t=a;return e.$to_s()["$[]"](0,s(t=e.$rindex("::"))?t:0)},O.$$arity=1),e.def(I,"$foreign_key",E=function(e,t){var r=this;return null==t&&(t=!0),n(r.$underscore(r.$demodulize(e)),s(t)?"_id":"id")},E.$$arity=-2),e.def(I,"$constantize",x=function(n){var r,$=this,o=a,l=a;return o=n.$split("::"),s(o["$empty?"]())&&$.$raise(i(D,"NameError"),"wrong constant name "),s(s(l=t(o.$size(),1))?o.$first()["$empty?"]():l)&&o.$shift(),function(){var t=e.new_brk();try{ +return u(o,"inject",[i(D,"Object")],((r=function(t,n){var $,o=null==r.$$s?this:r.$$s,l=a;return null==t&&(t=a),null==n&&(n=a),t["$=="](i(D,"Object"))?t.$const_get(n):(l=t.$const_get(n),s(t["$const_defined?"](n,!1))?l:s(i(D,"Object")["$const_defined?"](n))?(t=function(){var r=e.new_brk();try{return u(t.$ancestors(),"inject",[t],(($=function(t,o){null==$.$$s||$.$$s;return null==t&&(t=a),null==o&&(o=a),o["$=="](i(D,"Object"))&&e.brk(t,r),s(o["$const_defined?"](n,!1))&&e.brk(o,r),t}).$$s=o,$.$$brk=r,$.$$arity=2,$))}catch(l){if(l===r)return l.$v;throw l}}()).$const_get(n,!1):l)}).$$s=$,r.$$brk=t,r.$$arity=2,r))}catch(n){if(n===t)return n.$v;throw n}}()},x.$$arity=1),e.def(I,"$safe_constantize",S=function(t){var n=this,r=a,$=a,o=a;try{return n.$constantize(t)}catch(u){if(e.rescue(u,[i(D,"NameError")])){r=u;try{return s(s($=r.$name())?(s(o=t.$to_s().$split("::")["$include?"](r.$name().$to_s()))?o:r.$name().$to_s()["$=="](t.$to_s()))["$!"]():$)?n.$raise():a}finally{e.pop_exception()}}else{if(!e.rescue(u,[i(D,"ArgumentError")]))throw u;r=u;try{return s(e.regexp(["not missing constant ",n.$const_regexp(t),"!$"])["$match?"](r.$message()))?a:n.$raise()}finally{e.pop_exception()}}}},S.$$arity=1),e.def(I,"$ordinal",q=function(e){var t=a,n=a;return t=e.$to_i().$abs(),s(p(11,13,!1)["$include?"](t["$%"](100)))?"th":(n=t["$%"](10),1["$==="](n)?"st":2["$==="](n)?"nd":3["$==="](n)?"rd":"th")},q.$$arity=1),e.def(I,"$ordinalize",N=function(e){return""+e+this.$ordinal(e)},N.$$arity=1),I.$private(),e.def(I,"$const_regexp",C=function(e){var t,n=this,r=a,$=a;return r=e.$split("::".$freeze()),s(r["$blank?"]())?i(D,"Regexp").$escape(e):($=r.$pop(),u(r.$reverse(),"inject",[$],((t=function(e,n){null==t.$$s||t.$$s;return null==e&&(e=a),null==n&&(n=a),s(n["$empty?"]())?e:n+"(::"+e+")?"}).$$s=n,t.$$arity=2,t)))},C.$$arity=1),e.def(I,"$apply_inflections",z=function(t,n,r){var $,o=this,l=a,c=a;return null==r&&(r="en"),l=t.$to_s().$dup(),s(s(c=t["$empty?"]())?c:o.$inflections(r).$uncountables()["$uncountable?"](l))?l:(function(){var t=e.new_brk();try{u(n,"each",[],(($=function(n){null==$.$$s||$.$$s;var r,o,u=a,c=a,p=a,d=a,f=a;if(null==n&&(n=a),o=n,r=e.to_ary(o),u=null==r[0]?a:r[0],c=null==r[1]?a:r[1],!s(s(p=s(d=u["$is_a?"](i(D,"Regexp")))?l["$=~"](u):d)?p:s(f=u["$is_a?"](i(D,"String")))?l["$=="](u):f))return a;l=l.$sub(u,c),e.brk(a,t)}).$$s=o,$.$$brk=t,$.$$arity=1,$.$$has_top_level_mlhs_arg=!0,$))}catch(r){if(r===t)return r.$v;throw r}}(),l)},z.$$arity=-3),a&&"apply_inflections"}(d[0],d)}($[0],$)},Opal.modules["active_support/core_ext/string/inflections"]=function(e){var t=e.top,n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.klass,o=e.truthy,s=e.hash2;return e.add_stubs(["$require","$is_a?","$==","$dup","$pluralize","$singularize","$constantize","$safe_constantize","$===","$camelize","$raise","$alias_method","$titleize","$underscore","$dasherize","$demodulize","$deconstantize","$tableize","$classify","$humanize","$upcase_first","$foreign_key"]),t.$require("active_support/inflector"),function(t,$super,n){var u,l,c,p,d,f,_,h,y,v,m,g,b,w,k,O=i(t,null,"String"),E=[O].concat(n);return e.def(O,"$pluralize",u=function(e,t){var n=this;return null==e&&(e=r),null==t&&(t="en"),o(e["$is_a?"](a(E,"Symbol")))&&(t=e),e["$=="](1)?n.$dup():$(a(E,"ActiveSupport"),"Inflector").$pluralize(n,t)},u.$$arity=-1),e.def(O,"$singularize",l=function(e){var t=this;return null==e&&(e="en"),$(a(E,"ActiveSupport"),"Inflector").$singularize(t,e)},l.$$arity=-1),e.def(O,"$constantize",c=function(){var e=this;return $(a(E,"ActiveSupport"),"Inflector").$constantize(e)},c.$$arity=0),e.def(O,"$safe_constantize",p=function(){var e=this;return $(a(E,"ActiveSupport"),"Inflector").$safe_constantize(e)},p.$$arity=0),e.def(O,"$camelize",d=function(e){var t=this,n=r;return null==e&&(e="upper"),n=e,"upper"["$==="](n)?$(a(E,"ActiveSupport"),"Inflector").$camelize(t,!0):"lower"["$==="](n)?$(a(E,"ActiveSupport"),"Inflector").$camelize(t,!1):t.$raise(a(E,"ArgumentError"),"Invalid option, use either :upper or :lower.")},d.$$arity=-1),O.$alias_method("camelcase","camelize"),e.def(O,"$titleize",f=function(t){var n,r=this;if(null==t)t=s([],{});else if(!t.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(n=t.$$smap.keep_id_suffix)&&(n=!1),$(a(E,"ActiveSupport"),"Inflector").$titleize(r,s(["keep_id_suffix"],{keep_id_suffix:n}))},f.$$arity=-1),O.$alias_method("titlecase","titleize"),e.def(O,"$underscore",_=function(){var e=this;return $(a(E,"ActiveSupport"),"Inflector").$underscore(e)},_.$$arity=0),e.def(O,"$dasherize",h=function(){var e=this;return $(a(E,"ActiveSupport"),"Inflector").$dasherize(e)},h.$$arity=0),e.def(O,"$demodulize",y=function(){var e=this;return $(a(E,"ActiveSupport"),"Inflector").$demodulize(e)},y.$$arity=0),e.def(O,"$deconstantize",v=function(){var e=this;return $(a(E,"ActiveSupport"),"Inflector").$deconstantize(e)},v.$$arity=0),e.def(O,"$tableize",m=function(){var e=this;return $(a(E,"ActiveSupport"),"Inflector").$tableize(e)},m.$$arity=0),e.def(O,"$classify",g=function(){var e=this;return $(a(E,"ActiveSupport"),"Inflector").$classify(e)},g.$$arity=0),e.def(O,"$humanize",b=function(t){var n,r,i=this;if(null==t)t=s([],{});else if(!t.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==(n=t.$$smap.capitalize)&&(n=!0),null==(r=t.$$smap.keep_id_suffix)&&(r=!1),$(a(E,"ActiveSupport"),"Inflector").$humanize(i,s(["capitalize","keep_id_suffix"],{capitalize:n,keep_id_suffix:r}))},b.$$arity=-1),e.def(O,"$upcase_first",w=function(){var e=this;return $(a(E,"ActiveSupport"),"Inflector").$upcase_first(e)},w.$$arity=0),e.def(O,"$foreign_key",k=function(e){var t=this;return null==e&&(e=!0),$(a(E,"ActiveSupport"),"Inflector").$foreign_key(t,e)},k.$$arity=-1),r&&"foreign_key"}(n[0],0,n)},Opal.modules["active_support/inflector"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/inflector/inflections"),t.$require("active_support/inflector/methods"),t.$require("active_support/inflections"),t.$require("active_support/core_ext/string/inflections")},Opal.modules["active_support/core_ext/module/introspection"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}var n=e.top,r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.klass,s=e.truthy,u=e.gvars;return e.add_stubs(["$require","$=~","$name","$freeze","$parent_name","$constantize","$split","$empty?","$<<","$*","$pop","$include?","$constants"]),n.$require("active_support/inflector"),function(n,$super,r){var l,c,p,d,f=o(n,null,"Module"),_=[f].concat(r);return f.$$prototype.parent_name=$,e.def(f,"$parent_name",l=function(){var e,t,n=this;return s(null!=(e=n.parent_name)&&e!==$?"instance-variable":$)?n.parent_name:n.parent_name=s(n.$name()["$=~"](/::[^:]+$/))?((t=u["~"])===$?$:t.$pre_match()).$freeze():$},l.$$arity=0),e.def(f,"$parent",c=function(){var e=this;return s(e.$parent_name())?a(i(_,"ActiveSupport"),"Inflector").$constantize(e.$parent_name()):i(_,"Object")},c.$$arity=0),e.def(f,"$parents",p=function(){var e=this,n=$,r=$;if(n=[],s(e.$parent_name()))for(r=e.$parent_name().$split("::");!s(r["$empty?"]());)n["$<<"](a(i(_,"ActiveSupport"),"Inflector").$constantize(t(r,"::"))),r.$pop();return s(n["$include?"](i(_,"Object")))||n["$<<"](i(_,"Object")),n},p.$$arity=0),e.def(f,"$local_constants",d=function(){return this.$constants(!1)},d.$$arity=0),$&&"local_constants"}(r[0],0,r)},Opal.modules["active_support/core_ext/module/delegation"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.truthy,o=e.send,s=e.range;return e.add_stubs(["$pop","$is_a?","$[]","$raise","$values_at","$==","$=~","$to_s","$each","$+","$lambda","$start_with?","$__send__","$new","$inspect","$define_method","$to_proc"]),function(n,$super,u){var l,c=a(n,null,"Module"),p=[c].concat(u);return function(e,$super,t){[a(e,$super,"DelegationError")].concat(t)}(p[0],$(p,"NoMethodError"),p),e.def(c,"$delegate",l=function(){var n,a,u,c,d,f=l.$$p,_=this,h=r,y=r,v=r,m=r,g=r,b=r,w=r;return f&&(l.$$p=null),n=e.slice.call(arguments,0,arguments.length),h=(a=n).$pop(),i(i(y=h["$is_a?"]($(p,"Hash")))?v=h["$[]"]("to"):y)||_.$raise($(p,"ArgumentError"),"Delegation needs a target. Supply an options hash with a :to key as the last argument (e.g. delegate :hello, to: :greeter)."),c=h.$values_at("prefix","allow_nil"),u=e.to_ary(c),m=null==u[0]?r:u[0],g=null==u[1]?r:u[1],i(i(b=m["$=="](!0))?v["$=~"](/^[^a-z_]/):b)&&_.$raise($(p,"ArgumentError"),"Can only automatically set the delegation prefix when delegating to a method."),w=i(m)?(m["$=="](!0)?v:m)+"_":"",v=v.$to_s(),o(a,"each",[],((d=function(n){var a,u,l,c,f=null==d.$$s?this:d.$$s,_=r,h=r,y=r,m=r;return null==n&&(n=r),_=!i(n["$=~"](/[^\]]=$/)),h=t(w,n),y=o(f,"lambda",[],((a=function(e){null==a.$$s||a.$$s;return null==e&&(e=r),i(v["$start_with?"]("@"))?e[v["$[]"](s(1,-1,!1))]:e.$__send__(v)}).$$s=f,a.$$arity=1,a)),m=o(f,"lambda",[],((u=function(e){null==u.$$s||u.$$s;return null==e&&(e=r),$(p,"DelegationError").$new(""+e+h+" delegated to "+v+"."+n+" but "+v+" is nil: "+e.$inspect(),h)}).$$s=f,u.$$arity=1,u)),i(_)?o(f,"define_method",[h],((l=function(){var t,$=null==l.$$s?this:l.$$s,a=l.$$p,s=a||r,u=r;if(a&&(l.$$p=null),t=e.slice.call(arguments,0,arguments.length),u=y["$[]"]($),i(u));else{if(i(g))return r;$.$raise(m["$[]"]($))}return o(u,"__send__",[n].concat(e.to_a(t)),s.$to_proc())}).$$s=f,l.$$arity=-1,l)):o(f,"define_method",[h],((c=function(e){var t=null==c.$$s?this:c.$$s,$=r;if(null==e&&(e=r),$=y["$[]"](t),i($));else{if(i(g))return r;t.$raise(m["$[]"](t))}return $.$__send__(n,e)}).$$s=f,c.$$arity=1,c))}).$$s=_,d.$$arity=1,d))},l.$$arity=-1),r&&"delegate"}(n[0],0,n)},Opal.modules["active_support/core_ext/module"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/module/introspection"),t.$require("active_support/core_ext/module/remove_method"),t.$require("active_support/core_ext/module/delegation")},Opal.modules["active_support/core_ext/numeric/calculations"]=function(e){e.top;var t=[],n=(e.nil,e.$$$,e.$$),r=e.alias;return function(e,t){[e].concat(t);return r(e,"current","now")}(e.get_singleton_class(n(t,"Time")),t)},Opal.modules["active_support/core_ext/numeric"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/numeric/time"),t.$require("active_support/core_ext/numeric/calculations")},Opal.modules["active_support/core_ext/object/blank"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass),$=e.truthy;return e.add_stubs(["$respond_to?","$empty?","$!","$blank?","$present?","$==","$alias_method","$!~"]),function(t,$super,a){var i,o,s,u=r(t,null,"Object");[u].concat(a);e.def(u,"$blank?",i=function(){var e=this;return $(e["$respond_to?"]("empty?"))?e["$empty?"]():e["$!"]()},i.$$arity=0),e.def(u,"$present?",o=function(){return this["$blank?"]()["$!"]()},o.$$arity=0),e.def(u,"$presence",s=function(){var e=this;return $(e["$present?"]())?e:n},s.$$arity=0)}(t[0],0,t),function(t,$super,n){var $,a=r(t,null,"NilClass");[a].concat(n);e.def(a,"$blank?",$=function(){return!0},$.$$arity=0)}(t[0],0,t),function(t,$super,n){var $,a=r(t,null,"Boolean");[a].concat(n);e.def(a,"$blank?",$=function(){return this["$=="](!1)},$.$$arity=0)}(t[0],0,t),function(e,$super,t){var n=r(e,null,"Array");[n].concat(t);n.$alias_method("blank?","empty?")}(t[0],0,t),function(e,$super,t){var n=r(e,null,"Hash");[n].concat(t);n.$alias_method("blank?","empty?")}(t[0],0,t),function(t,$super,n){var $,a=r(t,null,"String");[a].concat(n);e.def(a,"$blank?",$=function(){return this["$!~"](/[^\s\u3000]/)},$.$$arity=0)}(t[0],0,t),function(t,$super,$){var a,i=r(t,null,"Numeric");[i].concat($);return e.def(i,"$blank?",a=function(){return!1},a.$$arity=0),n&&"blank?"}(t[0],0,t)},Opal.modules["active_support/core_ext/object/try"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass),$=e.truthy,a=e.send;return e.add_stubs(["$empty?","$respond_to?","$first","$try!","$to_proc","$zero?","$arity","$instance_eval","$public_send"]),function(t,$super,i){var o,s,u=r(t,null,"Object");[u].concat(i);e.def(u,"$try",o=function(){var t,r,i=o.$$p,s=i||n,u=this,l=n;return i&&(o.$$p=null),i&&(o.$$p=null),t=e.slice.call(arguments,0,arguments.length),$($(l=(r=t)["$empty?"]())?l:u["$respond_to?"](r.$first()))?a(u,"try!",e.to_a(r),s.$to_proc()):n},o.$$arity=-1),e.def(u,"$try!",s=function(){var t,r,i=s.$$p,o=i||n,u=this,l=n;return i&&(s.$$p=null),i&&(s.$$p=null),t=e.slice.call(arguments,0,arguments.length),$($(l=(r=t)["$empty?"]())?o!==n:l)?$(o.$arity()["$zero?"]())?a(u,"instance_eval",[],o.$to_proc()):e.yield1(o,u):a(u,"public_send",e.to_a(r),o.$to_proc())},s.$$arity=-1)}(t[0],0,t),function(t,$super,$){var a,i,o=r(t,null,"NilClass");[o].concat($);return e.def(o,"$try",a=function(){return e.slice.call(arguments,0,arguments.length),n},a.$$arity=-1),e.def(o,"$try!",i=function(){return e.slice.call(arguments,0,arguments.length),n},i.$$arity=-1),n&&"try!"}(t[0],0,t)},Opal.modules["active_support/core_ext/object"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/object/blank"),t.$require("active_support/core_ext/object/try")},Opal.modules["active_support/core_ext/string/filters"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$,e.klass),i=e.hash2,o=e.truthy;return e.add_stubs(["$>","$length","$dup","$[]","$-","$rindex"]),function(r,$super,s){var u,l=a(r,null,"String");[l].concat(s);return e.def(l,"$truncate",u=function(e,r){var a=this,s=$,u=$,l=$,c=$,p=$;return null==r&&(r=i([],{})),o(t(a.$length(),e))?(s=o(u=r["$[]"]("omission"))?u:"...",l=n(e,s.$length()),c=o(r["$[]"]("separator"))&&o(p=a.$rindex(r["$[]"]("separator"),l))?p:l,""+a["$[]"](0,c)+s):a.$dup()},u.$$arity=-2),$&&"truncate"}(r[0],0,r)},Opal.modules["active_support/core_ext/string"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.$$$,e.$$,e.klass);return e.add_stubs(["$require","$gsub","$strip","$downcase"]),t.$require("active_support/core_ext/string/filters"),t.$require("active_support/core_ext/string/inflections"),function(t,$super,n){var a,i=$(t,null,"String");[i].concat(n);return e.def(i,"$parameterize",a=function(){return this.$downcase().$strip().$gsub(/\W+/,"-")},a.$$arity=0),r&&"parameterize"}(n[0],0,n)},Opal.modules["active_support/core_ext"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext/array"),t.$require("active_support/core_ext/class"),t.$require("active_support/core_ext/enumerable"),t.$require("active_support/core_ext/hash"),t.$require("active_support/core_ext/integer"),t.$require("active_support/core_ext/kernel"),t.$require("active_support/core_ext/module"),t.$require("active_support/core_ext/numeric"),t.$require("active_support/core_ext/object"),t.$require("active_support/core_ext/string")},Opal.modules.active_support=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("active_support/core_ext")},Opal.modules.time=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass);return e.add_stubs(["$strftime"]),function(t,$super,$){var a,i,o=r(t,null,"Time");[o].concat($);return e.defs(o,"$parse",a=function(e){return new Date(Date.parse(e))},a.$$arity=1),e.def(o,"$iso8601",i=function(){return this.$strftime("%FT%T%z")},i.$$arity=0),n&&"iso8601"}(t[0],0,t)},Opal.modules.date=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e","$attr_reader","$nonzero?","$d","$zero?","$new","$class","$-@","$+@","$===","$coerce","$==","$>","$+","$allocate","$join","$compact","$map","$to_proc","$downcase","$wrap","$raise","$clone","$jd","$>>","$wday","$year","$month","$day","$-","$to_s","$to_i","$<","$*","$reverse","$step","$abs","$each"]),function(i,$super,h){function y(e,t){return[31,e%4==0&&e%100!=0||e%400==0?29:28,31,30,31,30,31,31,30,31,30,31][t]}var v,m,g,b,w,k,O,E,x,S,q,N,C,z,I,D,H,A,j,M,R,T,B,P,L,F,U,W,K,X,Y,V,G,J,Z,Q,ee,te,ne,re,$e=l(i,null,"Date"),ae=[$e].concat(h);$e.$$prototype.date=o,$e.$include(u(ae,"Comparable")),function(n,$super,r){var $,a,i,f,_,h,y,v,m,g,b,w=l(n,$super,"Infinity"),k=[w].concat(r);w.$$prototype.d=o,w.$include(u(k,"Comparable")),e.def(w,"$initialize",$=function(e){return null==e&&(e=1),this.d=e["$<=>"](0)},$.$$arity=-1),w.$attr_reader("d"),e.def(w,"$zero?",a=function(){return!1},a.$$arity=0),e.def(w,"$finite?",i=function(){return!1},i.$$arity=0),e.def(w,"$infinite?",f=function(){return this.$d()["$nonzero?"]()},f.$$arity=0),e.def(w,"$nan?",_=function(){return this.$d()["$zero?"]()},_.$$arity=0),e.def(w,"$abs",h=function(){return this.$class().$new()},h.$$arity=0),e.def(w,"$-@",y=function(){var e=this;return e.$class().$new(e.$d()["$-@"]())},y.$$arity=0),e.def(w,"$+@",v=function(){var e=this;return e.$class().$new(e.$d()["$+@"]())},v.$$arity=0),e.def(w,"$<=>",m=function(t){var n,r,$=this,a=o,i=o,s=o;return function(){if(a=t,u(k,"Infinity")["$==="](a))return $.$d()["$<=>"](t.$d());if(u(k,"Numeric")["$==="](a))return $.$d();try{return r=t.$coerce($),n=e.to_ary(r),i=null==n[0]?o:n[0],s=null==n[1]?o:n[1],i["$<=>"](s)}catch(l){if(!e.rescue(l,[u(k,"NoMethodError")]))throw l;try{return o}finally{e.pop_exception()}}}()},m.$$arity=1),e.def(w,"$coerce",g=function(e){var t=g.$$p,n=this,r=o;return t&&(g.$$p=null),r=e,u(k,"Numeric")["$==="](r)?[n.$d()["$-@"](),n.$d()]:c(n,p(n,"coerce",g,!1,!0),"coerce",[e],t)},g.$$arity=1),e.def(w,"$to_f",b=function(){var e=this;return e.d["$=="](0)?0:d(t(e.d,0))?s(u(k,"Float"),"INFINITY"):s(u(k,"Float"),"INFINITY")["$-@"]()},b.$$arity=0)}(ae[0],u(ae,"Numeric"),ae),e.const_set(ae[0],"JULIAN",u(ae,"Infinity").$new()),e.const_set(ae[0],"GREGORIAN",u(ae,"Infinity").$new()["$-@"]()),e.const_set(ae[0],"ITALY",2299161),e.const_set(ae[0],"ENGLAND",2361222),e.const_set(ae[0],"MONTHNAMES",n([o],["January","February","March","April","May","June","July","August","September","October","November","December"])),e.const_set(ae[0],"ABBR_MONTHNAMES",["jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec"]),e.const_set(ae[0],"DAYNAMES",["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]),e.const_set(ae[0],"ABBR_DAYNAMES",["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]),function(t,n){var r,$,a,i,s=[t].concat(n);f(t,"civil","new"),e.def(t,"$wrap",r=function(e){var t=o;return(t=this.$allocate()).date=e,t},r.$$arity=1),e.def(t,"$parse",$=function(e,t){function n(e){return e[1]}function r(e){return e[2]}function $(e){return e[3]}function a(e){return e[4]}function i(e){return function(t){var n=e(t);return n+=n>=69?1900:2e3}}function o(e){return function(t){var n=e(t).toLowerCase();return u(s,"ABBR_MONTHNAMES").indexOf(n)+1}}function l(e){return function(t){var n=e(t);return parseInt(n,10)}}function c(e){return function(n){var r=e(n);return t?r+2e3:r}}function p(e){return function(t){var n=e(t),r=_(u(s,"DAYNAMES"),"map",[],"downcase".$to_proc()).indexOf(n.$downcase());return g-k+r}}function d(e){return function(t){var n=e(t);return _(u(s,"MONTHNAMES").$compact(),"map",[],"downcase".$to_proc()).indexOf(n.$downcase())+1}}var f=this;null==t&&(t=!0);var h,y,v,m=new Date,g=m.getDate(),b=m.getMonth(),w=m.getFullYear(),k=m.getDay(),O=u(s,"MONTHNAMES").$compact().$join("|"),E=[{regexp:/^(\d{2})$/,year:w,month:b,day:l(n)},{regexp:/^(\d{3})$/,year:w,month:0,day:l(n)},{regexp:/^(\d{2})(\d{2})$/,year:w,month:l(n),day:l(r)},{regexp:/^(\d{2})(\d{3})$/,year:i(l(n)),month:0,day:l(r)},{regexp:/^(\d{2})(\d{2})(\d{2})$/,year:i(l(n)),month:l(r),day:l($)},{regexp:/^(\d{4})(\d{3})$/,year:l(n),month:0,day:l(r)},{regexp:/^(\d{4})(\d{2})(\d{2})$/,year:l(n),month:l(r),day:l($)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{3,4})$/,year:l(r),month:o(n),day:1},{regexp:/^(\d{1,2})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{3,4})$/i,year:l($),month:o(r),day:l(n)},{regexp:/^([a-z]{3})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{3,4})$/i,year:l($),month:o(n),day:l(r)},{regexp:/^(\d{3,4})[\s\.\/\-]([a-z]{3})[\s\.\/\-](\d{1,2})$/i,year:l(n),month:o(r),day:l($)},{regexp:/^(\-?\d{3,4})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:l(n),month:l(r),day:l($)},{regexp:/^(\d{2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\d{1,2})$/,year:c(l(n)),month:l(r),day:l($)},{regexp:/^(\d{1,2})[\s\.\/\-](\d{1,2})[\s\.\/\-](\-?\d{3,4})$/,year:l($),month:l(r),day:l(n)},{regexp:new RegExp("^("+u(s,"DAYNAMES").$join("|")+")$","i"),year:w,month:b,day:p(n)},{regexp:new RegExp("^("+O+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:l(a),month:d(n),day:l(r)},{regexp:new RegExp("^("+O+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)","i"),year:w,month:d(n),day:l(r)},{regexp:new RegExp("^(\\d{1,2})(th|nd|rd)[\\s\\.\\/\\-]("+O+")[\\s\\.\\/\\-](\\-?\\d{3,4})$","i"),year:l(a),month:d($),day:l(n)},{regexp:new RegExp("^(\\-?\\d{3,4})[\\s\\.\\/\\-]("+O+")[\\s\\.\\/\\-](\\d{1,2})(th|nd|rd)$","i"),year:l(n),month:d(r),day:l($)}];for(y=0;y=0&&x<=1970&&N.setFullYear(x),f.$wrap(N)}return f.$raise(u(s,"ArgumentError"),"invalid date")},$.$$arity=-2),e.def(t,"$today",a=function(){return this.$wrap(new Date)},a.$$arity=0),e.def(t,"$gregorian_leap?",i=function(e){return new Date(e,1,29).getMonth()-1==0},i.$$arity=1)}(e.get_singleton_class($e),ae),e.def($e,"$initialize",v=function(e,t,n,r){var $=this;return null==e&&(e=-4712),null==t&&(t=1),null==n&&(n=1),null==r&&(r=u(ae,"ITALY")),1582===e&&10===t&&n>4&&n<15&&(n=4),$.date=new Date(e,t-1,n)},v.$$arity=-1),e.def($e,"$-",m=function(e){var t=this;if(e.$$is_number){var n=t.$clone();return n.date.setDate(t.date.getDate()-e),n}if(e.date)return Math.round((t.date-e.date)/864e5);t.$raise(u(ae,"TypeError"))},m.$$arity=1),e.def($e,"$+",g=function(e){var t=this;if(e.$$is_number){var n=t.$clone();return n.date.setDate(t.date.getDate()+e),n}t.$raise(u(ae,"TypeError"))},g.$$arity=1),e.def($e,"$<",b=function(e){var t=this.date,n=e.date;return t.setHours(0,0,0,0),n.setHours(0,0,0,0),t",k=function(e){var t=this.date,n=e.date;return t.setHours(0,0,0,0),n.setHours(0,0,0,0),t>n},k.$$arity=1),e.def($e,"$>=",O=function(e){var t=this.date,n=e.date;return t.setHours(0,0,0,0),n.setHours(0,0,0,0),t>=n},O.$$arity=1),e.def($e,"$<=>",E=function(e){var t=this;if(e.$$is_number)return t.$jd()["$<=>"](e);if(u(ae,"Date")["$==="](e)){var n=t.date,r=e.date;return n.setHours(0,0,0,0),r.setHours(0,0,0,0),nr?1:0}return o},E.$$arity=1),e.def($e,"$>>",x=function(e){var t=this;e.$$is_number||t.$raise(u(ae,"TypeError"));var n=t.$clone(),r=n.date,$=r.getDate();return r.setDate(1),r.setMonth(r.getMonth()+e),r.setDate(Math.min($,y(r.getFullYear(),r.getMonth()))),n},x.$$arity=1),e.def($e,"$<<",S=function(e){var t=this;return e.$$is_number||t.$raise(u(ae,"TypeError")),t["$>>"](-e)},S.$$arity=1),f($e,"eql?","=="),e.def($e,"$clone",q=function(){var e=this;return u(ae,"Date").$wrap(new Date(e.date.getTime()))},q.$$arity=0),e.def($e,"$day",N=function(){return this.date.getDate()},N.$$arity=0),e.def($e,"$friday?",C=function(){return this.$wday()["$=="](5)},C.$$arity=0),e.def($e,"$jd",z=function(){var e,t,n,r,$,a=this,i=a.date.getMonth()+1,o=a.date.getDate(),s=a.date.getFullYear(),u=12;return u=u+0/60+0/3600,e=1,s<=1585&&(e=0),$=-1*Math.floor(7*(Math.floor((i+9)/12)+s)/4),t=1,i-9<0&&(t=-1),n=Math.abs(i-9),r=Math.floor(s+t*Math.floor(n/7)),r=-1*Math.floor(3*(Math.floor(r/100)+1)/4),$=($=$+Math.floor(275*i/9)+o+e*r)+1721027+2*e+367*s-.5,$+=u/24},z.$$arity=0),e.def($e,"$julian?",I=function(){return this.date=t:e["$>="](t)}var r=e.top,$=[],a=e.nil,i=e.$$$,o=e.$$,s=e.module,u=e.truthy,l=e.send,c=e.hash2,p=e.range,d=e.alias,f=e.klass,_=e.send2,h=e.find_super,y=e.gvars;return e.add_stubs(["$try_convert","$native?","$respond_to?","$to_n","$raise","$inspect","$Native","$proc","$map!","$end_with?","$define_method","$[]","$convert","$call","$to_proc","$new","$each","$native_reader","$native_writer","$extend","$warn","$include","$is_a?","$map","$to_a","$_Array","$method_missing","$bind","$instance_method","$slice","$-","$length","$[]=","$enum_for","$===","$>=","$<<","$each_pair","$method_defined?","$_initialize","$name","$native_module"]),function(t,n){var r,$,d,f,_,h,y=s(t,"Native"),v=[y].concat(n);e.defs(y,"$is_a?",r=function(e,t){var n=this;try{return e instanceof n.$try_convert(t)}catch(r){return!1}},r.$$arity=2),e.defs(y,"$try_convert",$=function(e,t){return null==t&&(t=a),this["$native?"](e)?e:e["$respond_to?"]("to_n")?e.$to_n():t},$.$$arity=-2),e.defs(y,"$convert",d=function(e){var t=this;return t["$native?"](e)?e:e["$respond_to?"]("to_n")?e.$to_n():void t.$raise(o(v,"ArgumentError"),e.$inspect()+" isn't native")},d.$$arity=1),e.defs(y,"$call",f=function(t,n){var r,$=f.$$p,i=$||a,o=this;$&&(f.$$p=null),$&&(f.$$p=null),r=e.slice.call(arguments,2,arguments.length);var s=t[n];if(s instanceof Function){for(var u=new Array(r.length),l=0,c=r.length;l0&&(i=n[0],n.splice(0,1)),null==i&&(i=t),null==(s=$.$$smap.as)&&(s=a),u(i["$end_with?"]("="))?l(v,"define_method",[t],((d=function(e){var t=null==d.$$s?this:d.$$s;return null==t.native&&(t.native=a),null==e&&(e=a),t.native[i["$[]"](p(0,-2,!1))]=o(_,"Native").$convert(e),e}).$$s=v,d.$$arity=1,d)):u(s)?l(v,"define_method",[t],((f=function(){var t,n=null==f.$$s?this:f.$$s,r=f.$$p,$=r||a,c=a;return null==n.native&&(n.native=a),r&&(f.$$p=null),t=e.slice.call(arguments,0,arguments.length),c=l(o(_,"Native"),"call",[n.native,i].concat(e.to_a(t)),$.$to_proc()),u(c)?s.$new(c.$to_n()):a}).$$s=v,f.$$arity=-1,f)):l(v,"define_method",[t],((h=function(){var t,n=null==h.$$s?this:h.$$s,r=h.$$p,$=r||a;return null==n.native&&(n.native=a),r&&(h.$$p=null),t=e.slice.call(arguments,0,arguments.length),l(o(_,"Native"),"call",[n.native,i].concat(e.to_a(t)),$.$to_proc())}).$$s=v,h.$$arity=-1,h))},r.$$arity=-2),e.def(f,"$native_reader",$=function(){var t,n,r=this;return t=e.slice.call(arguments,0,arguments.length),l(t,"each",[],((n=function(e){var t,r=null==n.$$s?this:n.$$s;return null==e&&(e=a),l(r,"define_method",[e],((t=function(){var n=null==t.$$s?this:t.$$s;return null==n.native&&(n.native=a),n.$Native(n.native[e])}).$$s=r,t.$$arity=0,t))}).$$s=r,n.$$arity=1,n))},$.$$arity=-1),e.def(f,"$native_writer",i=function(){var t,n,r=this;return t=e.slice.call(arguments,0,arguments.length),l(t,"each",[],((n=function(e){var t,r=null==n.$$s?this:n.$$s;return null==e&&(e=a),l(r,"define_method",[e+"="],((t=function(n){var r=null==t.$$s?this:t.$$s;return null==r.native&&(r.native=a),null==n&&(n=a),r.$Native(r.native[e]=n)}).$$s=r,t.$$arity=1,t))}).$$s=r,n.$$arity=1,n))},i.$$arity=-1),e.def(f,"$native_accessor",d=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),l(n,"native_reader",e.to_a(t)),l(n,"native_writer",e.to_a(t))},d.$$arity=-1)}(v[0],v),function(t,n){var r,$,l,c=s(t,"Wrapper"),p=[c].concat(n);e.def(c,"$initialize",r=function(e){var t=this;return u(i("::","Kernel")["$native?"](e))||i("::","Kernel").$raise(o(p,"ArgumentError"),e.$inspect()+" isn't native"),t.native=e},r.$$arity=1),e.def(c,"$to_n",$=function(){var e=this;return null==e.native&&(e.native=a),e.native},$.$$arity=0),e.defs(c,"$included",l=function(e){return e.$extend(o(p,"Helpers"))},l.$$arity=1)}(v[0],v),e.defs(y,"$included",h=function(e){return this.$warn("Including ::Native is deprecated. Please include Native::Wrapper instead."),e.$include(o(v,"Wrapper"))},h.$$arity=1)}($[0],$),function(t,n){var r,$,c,p=s(t,"Kernel"),f=[p].concat(n);e.def(p,"$native?",r=function(e){return null==e||!e.$$class},r.$$arity=1),e.def(p,"$Native",$=function(t){var n,r,s=$.$$p,c=this;return s&&($.$$p=null), +u(null==t)?a:u(c["$native?"](t))?i(o(f,"Native"),"Object").$new(t):u(t["$is_a?"](o(f,"Array")))?l(t,"map",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=a),t.$Native(e)}).$$s=c,n.$$arity=1,n)):u(t["$is_a?"](o(f,"Proc")))?l(c,"proc",[],((r=function(){var n,$=null==r.$$s?this:r.$$s,i=r.$$p,o=i||a;return i&&(r.$$p=null),n=e.slice.call(arguments,0,arguments.length),$.$Native(l(t,"call",e.to_a(n),o.$to_proc()))}).$$s=c,r.$$arity=-1,r)):t},$.$$arity=1),d(p,"_Array","Array"),e.def(p,"$Array",c=function(t){var n,r=c.$$p,$=r||a,s=this;return r&&(c.$$p=null),r&&(c.$$p=null),n=e.slice.call(arguments,1,arguments.length),u(s["$native?"](t))?l(i(o(f,"Native"),"Array"),"new",[t].concat(e.to_a(n)),$.$to_proc()).$to_a():s.$_Array(t)},c.$$arity=-2)}($[0],$),function(n,$super,r){var $,o,s,p,_,h,y,v,m,g,b,w,k,O,E,x=f(n,$super,"Object");[x].concat(r);x.$$prototype.native=a,x.$include(i(i("::","Native"),"Wrapper")),e.def(x,"$==",$=function(e){return this.native===i("::","Native").$try_convert(e)},$.$$arity=1),e.def(x,"$has_key?",o=function(t){var n=this;return e.hasOwnProperty.call(n.native,t)},o.$$arity=1),d(x,"key?","has_key?"),d(x,"include?","has_key?"),d(x,"member?","has_key?"),e.def(x,"$each",s=function(){var t,n=s.$$p,r=n||a,$=this;if(n&&(s.$$p=null),t=e.slice.call(arguments,0,arguments.length),r!==a){for(var i in $.native)e.yieldX(r,[i,$.native[i]]);return $}return l($,"method_missing",["each"].concat(e.to_a(t)))},s.$$arity=-1),e.def(x,"$[]",p=function(e){var t=this,n=t.native[e];return n instanceof Function?n:i("::","Native").$call(t.native,e)},p.$$arity=1),e.def(x,"$[]=",_=function(e,t){var n=this,r=a;return r=i("::","Native").$try_convert(t),u(r===a)?n.native[e]=t:n.native[e]=r},_.$$arity=2),e.def(x,"$merge!",h=function(e){var t=this;for(var n in e=i("::","Native").$convert(e))t.native[n]=e[n];return t},h.$$arity=1),e.def(x,"$respond_to?",y=function(e,t){var n=this;return null==t&&(t=!1),i("::","Kernel").$instance_method("respond_to?").$bind(n).$call(e,t)},y.$$arity=-2),e.def(x,"$respond_to_missing?",v=function(t,n){var r=this;return null==n&&(n=!1),e.hasOwnProperty.call(r.native,t)},v.$$arity=-2),e.def(x,"$method_missing",m=function(n){var r,$=m.$$p,o=$||a,s=this,u=a;return $&&(m.$$p=null),$&&(m.$$p=null),r=e.slice.call(arguments,1,arguments.length),"="===n.charAt(n.length-1)?(u=[n.$slice(0,t(n.$length(),1)),r["$[]"](0)],l(s,"[]=",e.to_a(u)),u[t(u.length,1)]):l(i("::","Native"),"call",[s.native,n].concat(e.to_a(r)),o.$to_proc())},m.$$arity=-2),e.def(x,"$nil?",g=function(){return!1},g.$$arity=0),e.def(x,"$is_a?",b=function(t){var n=this;return e.is_a(n,t)},b.$$arity=1),d(x,"kind_of?","is_a?"),e.def(x,"$instance_of?",w=function(e){return this.$$class===e},w.$$arity=1),e.def(x,"$class",k=function(){return this.$$class},k.$$arity=0),e.def(x,"$to_a",O=function(e){var t=O.$$p,n=t||a,r=this;return t&&(O.$$p=null),t&&(O.$$p=null),null==e&&(e=c([],{})),l(i(i("::","Native"),"Array"),"new",[r.native,e],n.$to_proc()).$to_a()},O.$$arity=-1),e.def(x,"$inspect",E=function(){return"#"},E.$$arity=0)}(o($,"Native"),o($,"BasicObject"),$),function(r,$super,$){var s,l,p,y,v,m,g,b=f(r,null,"Array"),w=[b].concat($);b.$$prototype.named=b.$$prototype.native=b.$$prototype.get=b.$$prototype.block=b.$$prototype.set=b.$$prototype.length=a,b.$include(i(o(w,"Native"),"Wrapper")),b.$include(o(w,"Enumerable")),e.def(b,"$initialize",s=function(e,t){var n=s.$$p,r=n||a,$=this,i=a,l=a,p=a;return n&&(s.$$p=null),n&&(s.$$p=null),null==t&&(t=c([],{})),_($,h($,"initialize",s,!1,!0),"initialize",[e],null),$.get=u(i=t["$[]"]("get"))?i:t["$[]"]("access"),$.named=t["$[]"]("named"),$.set=u(l=t["$[]"]("set"))?l:t["$[]"]("access"),$.length=u(p=t["$[]"]("length"))?p:"length",$.block=r,u(null==$.$length())?$.$raise(o(w,"ArgumentError"),"no length found on the array-like object"):a},s.$$arity=-2),e.def(b,"$each",l=function(){var t=l.$$p,n=t||a,r=this;if(t&&(l.$$p=null),t&&(l.$$p=null),!u(n))return r.$enum_for("each");for(var $=0,i=r.$length();$=n?r:$e(t[e])},E.$$arity=1),e.def(ne,"$class_name",x=function(){var e=this[0];return e&&e.className||""},x.$$arity=0),e.def(ne,"$class_name=",S=function(e){for(var t=this,n=0,r=t.length;n0?e[0].tagName.toLowerCase():r},T.$$arity=0),e.def(ne,"$inspect",B=function(){var e=this;if(e[0]===document)return"#";if(e[0]===window)return"#";for(var t,n,r,$=[],a=0,i=e.length;a")}return"#"},B.$$arity=0),e.def(ne,"$to_s",P=function(){for(var e,t=this,n=[],r=0,$=t.length;r<$;r++)e=t[r],n.push(e.outerHTML);return n.join(", ")},P.$$arity=0),e.def(ne,"$length",L=function(){return this.length},L.$$arity=0),e.def(ne,"$any?",F=function(){return this.length>0},F.$$arity=0),e.def(ne,"$empty?",U=function(){return 0===this.length},U.$$arity=0),o(ne,"empty?","none?"),e.def(ne,"$on",W=function(e,t){var n=W.$$p,a=n||r,i=this;n&&(W.$$p=null),n&&(W.$$p=null),null==t&&(t=r);var o=0!==a.$arity(),s=function(){for(var e=new Array(arguments.length),t=0,n=e.length;t>","$exception?","$[]","$resolved?","$rejected?","$!","$error","$include?","$action","$realized?","$raise","$^","$call","$resolve!","$exception!","$any?","$each","$reject!","$there_can_be_only_one!","$then","$to_proc","$fail","$always","$trace","$class","$object_id","$+","$inspect","$rescue","$act?","$nil?","$prev","$push","$concat","$it","$proc","$reverse","$pop","$<=","$length","$shift","$-","$wait","$map","$reduce","$try","$tap","$all?","$find"]),function($,$super,f){var _,h,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I,D,H,A,j,M,R,T,B,P,L,F,U,W=o($,null,"Promise"),K=[W].concat(f);W.$$prototype.value=W.$$prototype.action=W.$$prototype.exception=W.$$prototype.realized=W.$$prototype.next=W.$$prototype.delayed=W.$$prototype.error=W.$$prototype.prev=a,e.defs(W,"$value",_=function(e){return this.$new().$resolve(e)},_.$$arity=1),e.defs(W,"$error",h=function(e){return this.$new().$reject(e)},h.$$arity=1),e.defs(W,"$when",y=function(){var t;return t=e.slice.call(arguments,0,arguments.length),i(K,"When").$new(t)},y.$$arity=-1),W.$attr_reader("error","prev","next"),e.def(W,"$initialize",v=function(e){var t=this;return null==e&&(e=s([],{})),t.action=e,t.realized=!1,t.exception=!1,t.value=a,t.error=a,t.delayed=!1,t.prev=a,t.next=[]},v.$$arity=-1),e.def(W,"$value",m=function(){var e=this;return u(i(K,"Promise")["$==="](e.value))?e.value.$value():e.value},m.$$arity=0),e.def(W,"$act?",g=function(){var e=this,t=a;return u(t=e.action["$key?"]("success"))?t:e.action["$key?"]("always")},g.$$arity=0),e.def(W,"$action",b=function(){return this.action.$keys()},b.$$arity=0),e.def(W,"$exception?",w=function(){return this.exception},w.$$arity=0),e.def(W,"$realized?",k=function(){return this.realized["$!="](!1)},k.$$arity=0),e.def(W,"$resolved?",O=function(){return this.realized["$=="]("resolve")},O.$$arity=0),e.def(W,"$rejected?",E=function(){return this.realized["$=="]("reject")},E.$$arity=0),e.def(W,"$^",x=function(e){var t=this;return e["$<<"](t),t["$>>"](e),e},x.$$arity=1),e.def(W,"$<<",S=function(e){var t=this;return t.prev=e,t},S.$$arity=1),e.def(W,"$>>",q=function(e){var t=this,n=a;return t.next["$<<"](e),u(t["$exception?"]())?e.$reject(t.delayed["$[]"](0)):u(t["$resolved?"]())?e.$resolve(u(t.delayed)?t.delayed["$[]"](0):t.$value()):u(t["$rejected?"]())&&(u(u(n=t.action["$key?"]("failure")["$!"]())?n:i(K,"Promise")["$==="](u(t.delayed)?t.delayed["$[]"](0):t.error))?e.$reject(u(t.delayed)?t.delayed["$[]"](0):t.$error()):u(e.$action()["$include?"]("always"))&&e.$reject(u(t.delayed)?t.delayed["$[]"](0):t.$error())),t},q.$$arity=1),e.def(W,"$resolve",N=function(t){var n=this,r=a,$=a,o=a;if(null==t&&(t=a),u(n["$realized?"]())&&n.$raise(i(K,"ArgumentError"),"the promise has already been realized"),u(i(K,"Promise")["$==="](t)))return t["$<<"](n.prev)["$^"](n);try{r=u($=n.action["$[]"]("success"))?$:n.action["$[]"]("always"),u(r)&&(t=r.$call(t)),n["$resolve!"](t)}catch(s){if(!e.rescue(s,[i(K,"Exception")]))throw s;o=s;try{n["$exception!"](o)}finally{e.pop_exception()}}return n},N.$$arity=-1),e.def(W,"$resolve!",C=function(e){var t,n=this;return n.realized="resolve",n.value=e,u(n.next["$any?"]())?l(n.next,"each",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),n.$resolve(e)}).$$s=n,t.$$arity=1,t)):n.delayed=[e]},C.$$arity=1),e.def(W,"$reject",z=function(t){var n=this,r=a,$=a,o=a;if(null==t&&(t=a),u(n["$realized?"]())&&n.$raise(i(K,"ArgumentError"),"the promise has already been realized"),u(i(K,"Promise")["$==="](t)))return t["$<<"](n.prev)["$^"](n);try{r=u($=n.action["$[]"]("failure"))?$:n.action["$[]"]("always"),u(r)&&(t=r.$call(t)),u(n.action["$key?"]("always"))?n["$resolve!"](t):n["$reject!"](t)}catch(s){if(!e.rescue(s,[i(K,"Exception")]))throw s;o=s;try{n["$exception!"](o)}finally{e.pop_exception()}}return n},z.$$arity=-1),e.def(W,"$reject!",I=function(e){var t,n=this;return n.realized="reject",n.error=e,u(n.next["$any?"]())?l(n.next,"each",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),n.$reject(e)}).$$s=n,t.$$arity=1,t)):n.delayed=[e]},I.$$arity=1),e.def(W,"$exception!",D=function(e){var t=this;return t.exception=!0,t["$reject!"](e)},D.$$arity=1),e.def(W,"$then",H=function(){var e=H.$$p,t=e||a,n=this;return e&&(H.$$p=null),e&&(H.$$p=null),n["$^"](i(K,"Promise").$new(s(["success"],{success:t})))},H.$$arity=0),e.def(W,"$then!",A=function(){var e=A.$$p,t=e||a,n=this;return e&&(A.$$p=null),e&&(A.$$p=null),n["$there_can_be_only_one!"](),l(n,"then",[],t.$to_proc())},A.$$arity=0),c(W,"do","then"),c(W,"do!","then!"),e.def(W,"$fail",j=function(){var e=j.$$p,t=e||a,n=this;return e&&(j.$$p=null),e&&(j.$$p=null),n["$^"](i(K,"Promise").$new(s(["failure"],{failure:t})))},j.$$arity=0),e.def(W,"$fail!",M=function(){var e=M.$$p,t=e||a,n=this;return e&&(M.$$p=null),e&&(M.$$p=null),n["$there_can_be_only_one!"](),l(n,"fail",[],t.$to_proc())},M.$$arity=0),c(W,"rescue","fail"),c(W,"catch","fail"), +c(W,"rescue!","fail!"),c(W,"catch!","fail!"),e.def(W,"$always",R=function(){var e=R.$$p,t=e||a,n=this;return e&&(R.$$p=null),e&&(R.$$p=null),n["$^"](i(K,"Promise").$new(s(["always"],{always:t})))},R.$$arity=0),e.def(W,"$always!",T=function(){var e=T.$$p,t=e||a,n=this;return e&&(T.$$p=null),e&&(T.$$p=null),n["$there_can_be_only_one!"](),l(n,"always",[],t.$to_proc())},T.$$arity=0),c(W,"finally","always"),c(W,"ensure","always"),c(W,"finally!","always!"),c(W,"ensure!","always!"),e.def(W,"$trace",B=function(e){var t=B.$$p,n=t||a,r=this;return t&&(B.$$p=null),t&&(B.$$p=null),null==e&&(e=a),r["$^"](i(K,"Trace").$new(e,n))},B.$$arity=-1),e.def(W,"$trace!",P=function(){var t,n=P.$$p,r=n||a,$=this;return n&&(P.$$p=null),n&&(P.$$p=null),t=e.slice.call(arguments,0,arguments.length),$["$there_can_be_only_one!"](),l($,"trace",e.to_a(t),r.$to_proc())},P.$$arity=-1),e.def(W,"$there_can_be_only_one!",L=function(){var e=this;return u(e.next["$any?"]())?e.$raise(i(K,"ArgumentError"),"a promise has already been chained"):a},L.$$arity=0),e.def(W,"$inspect",F=function(){var e=this,n=a,r=a;return n="#<"+e.$class()+"("+e.$object_id()+")",u(e.next["$any?"]())&&(n=t(n," >> "+e.next.$inspect())),n=t(n,u(e["$realized?"]())?": "+(u(r=e.value)?r:e.error).$inspect()+">":">")},F.$$arity=0),c(W,"to_v1","itself"),e.def(W,"$to_v2",U=function(){var e,t,n=this,r=a;return r=i(K,"PromiseV2").$new(),l(l(n,"then",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=a),r.$resolve(t)}).$$s=n,e.$$arity=1,e)),"rescue",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=a),r.$reject(e)}).$$s=n,t.$$arity=1,t)),r},U.$$arity=0),c(W,"to_n","to_v2"),function(t,$super,$){var c,f,_=o(t,$super,"Trace"),h=[_].concat($);e.defs(_,"$it",c=function(e){var t=this,n=a,r=a,$=a;return n=[],u(u(r=e["$act?"]())?r:e.$prev()["$nil?"]())&&n.$push(e.$value()),$=e.$prev(),u($)?n.$concat(t.$it($)):n},c.$$arity=1),e.def(_,"$initialize",f=function(t,$){var o,c=f.$$p,_=this;return c&&(f.$$p=null),_.depth=t,p(_,d(_,"initialize",f,!1,!0),"initialize",[s(["success"],{success:l(_,"proc",[],(o=function(){var s=null==o.$$s?this:o.$$s,c=a,p=a;return(c=i(h,"Trace").$it(s).$reverse()).$pop(),u(u(p=t)?n(t,c.$length()):p)&&c.$shift(r(c.$length(),t)),l($,"call",e.to_a(c))},o.$$s=_,o.$$arity=0,o))})],null)},f.$$arity=2)}(K[0],W,K),function(t,$super,n){var r,$,s,f,_,h,y,v=o(t,$super,"When"),m=[v].concat(n);v.$$prototype.wait=a,e.def(v,"$initialize",r=function(e){var t,n=r.$$p,$=this;return n&&(r.$$p=null),null==e&&(e=[]),p($,d($,"initialize",r,!1,!0),"initialize",[],null),$.wait=[],l(e,"each",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n.$wait(e)}).$$s=$,t.$$arity=1,t))},r.$$arity=-1),e.def(v,"$each",$=function(){var e,t=$.$$p,n=t||a,r=this;return t&&($.$$p=null),t&&($.$$p=null),u(n)||r.$raise(i(m,"ArgumentError"),"no block given"),l(r,"then",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=a),l(t,"each",[],n.$to_proc())}).$$s=r,e.$$arity=1,e))},$.$$arity=0),e.def(v,"$collect",s=function(){var e,t=s.$$p,n=t||a,r=this;return t&&(s.$$p=null),t&&(s.$$p=null),u(n)||r.$raise(i(m,"ArgumentError"),"no block given"),l(r,"then",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=a),i(m,"When").$new(l(t,"map",[],n.$to_proc()))}).$$s=r,e.$$arity=1,e))},s.$$arity=0),e.def(v,"$inject",f=function(){var t,n,r,$=f.$$p,i=$||a,o=this;return $&&(f.$$p=null),$&&(f.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,l(o,"then",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=a),l(t,"reduce",e.to_a(n),i.$to_proc())}).$$s=o,r.$$arity=1,r))},f.$$arity=-1),c(v,"map","collect"),c(v,"reduce","inject"),e.def(v,"$wait",_=function(e){var t,n=this;return u(i(m,"Promise")["$==="](e))||(e=i(m,"Promise").$value(e)),u(e["$act?"]())&&(e=e.$then()),n.wait["$<<"](e),l(e,"always",[],((t=function(){var e=null==t.$$s?this:t.$$s;return null==e.next&&(e.next=a),u(e.next["$any?"]())?e.$try():a}).$$s=n,t.$$arity=0,t)),n},_.$$arity=1),c(v,"and","wait"),e.def(v,"$>>",h=function(){var t,n,r=h.$$p,$=this;return r&&(h.$$p=null),t=e.slice.call(arguments,0,arguments.length),l(p($,d($,">>",h,!1,!0),">>",e.to_a(t),r),"tap",[],((n=function(){return(null==n.$$s?this:n.$$s).$try()}).$$s=$,n.$$arity=0,n))},h.$$arity=-1),e.def(v,"$try",y=function(){var e=this,t=a;return u(l(e.wait,"all?",[],"realized?".$to_proc()))?(t=l(e.wait,"find",[],"rejected?".$to_proc()),u(t)?e.$reject(t.$error()):e.$resolve(l(e.wait,"map",[],"value".$to_proc()))):a},y.$$arity=0)}(K[0],W,K)}($[0],0,$),e.const_set($[0],"PromiseV1",i($,"Promise"))},Opal.modules["opal/jquery/http"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2,s=e.truthy;return e.add_stubs(["$require","$to_n","$each","$define_singleton_method","$send","$new","$define_method","$attr_reader","$delete","$update","$upcase","$succeed","$fail","$promise","$parse","$private","$tap","$proc","$ok?","$resolve","$reject","$from_object","$call"]),t.$require("json"),t.$require("native"),t.$require("promise"),t.$require("opal/jquery/constants"),function(t,$super,n){var u,l,c,p,d,f,_,h,y,v,m,g,b=a(t,null,"HTTP"),w=[b].concat(n);b.$$prototype.settings=b.$$prototype.payload=b.$$prototype.url=b.$$prototype.method=b.$$prototype.handler=b.$$prototype.json=b.$$prototype.body=b.$$prototype.ok=b.$$prototype.xhr=b.$$prototype.promise=b.$$prototype.status_code=r;var k=$(w,"JQUERY_SELECTOR").$to_n();return e.const_set(w[0],"ACTIONS",["get","post","put","delete","patch","head"]),i($(w,"ACTIONS"),"each",[],((u=function(e){var t,n,$=null==u.$$s?this:u.$$s;return null==e&&(e=r),i($,"define_singleton_method",[e],((t=function(n,$){var a=null==t.$$s?this:t.$$s,i=t.$$p,s=i||r;return i&&(t.$$p=null),null==n&&(n=r),null==$&&($=o([],{})),a.$new().$send(e,n,$,s)}).$$s=$,t.$$arity=-2,t)),i($,"define_method",[e],((n=function(t,$){var a=null==n.$$s?this:n.$$s,i=n.$$p,s=i||r;return i&&(n.$$p=null),null==t&&(t=r),null==$&&($=o([],{})),a.$send(e,t,$,s)}).$$s=$,n.$$arity=-2,n))}).$$s=b,u.$$arity=1,u)),e.defs(b,"$setup",l=function(){return $(w,"Hash").$new(k.ajaxSetup())},l.$$arity=0),e.defs(b,"$setup=",c=function(e){return k.ajaxSetup(e.$to_n())},c.$$arity=1),b.$attr_reader("body","error_message","method","status_code","url","xhr"),e.def(b,"$initialize",p=function(){var e=this;return e.settings=o([],{}),e.ok=!0},p.$$arity=0),e.def(b,"$send",d=function(e,t,n,$){var a,i=this,o=r,u=r;return i.method=e,i.url=t,i.payload=n.$delete("payload"),i.handler=$,i.settings.$update(n),o=(a=[i.settings.$to_n(),i.payload])[0],"string"==typeof(u=a[1])?o.data=u:u!=r&&(o.data=u.$to_json(),o.contentType="application/json"),o.url=i.url,o.type=i.method.$upcase(),o.success=function(e,t,n){return i.$succeed(e,t,n)},o.error=function(e,t,n){return i.$fail(e,t,n)},k.ajax(o),s(i.handler)?i:i.$promise()},d.$$arity=4),e.def(b,"$json",f=function(){var e=this,t=r;return e.json=s(t=e.json)?t:$(w,"JSON").$parse(e.body)},f.$$arity=0),e.def(b,"$ok?",_=function(){return this.ok},_.$$arity=0),e.def(b,"$get_header",h=function(e){var t=this.xhr.getResponseHeader(e);return null===t?r:t},h.$$arity=1),e.def(b,"$inspect",y=function(){var e=this;return"#"},y.$$arity=0),b.$private(),e.def(b,"$promise",v=function(){var e,t=this;return s(t.promise)?t.promise:t.promise=i($(w,"Promise").$new(),"tap",[],((e=function(t){var n,$=null==e.$$s?this:e.$$s;return null==t&&(t=r),$.handler=i($,"proc",[],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=r),s(e["$ok?"]())?t.$resolve(e):t.$reject(e)}).$$s=$,n.$$arity=1,n))}).$$s=t,e.$$arity=1,e))},v.$$arity=0),e.def(b,"$succeed",m=function(e,t,n){var a=this;return a.body=e,a.xhr=n,a.status_code=n.status,"object"==typeof e&&(a.json=$(w,"JSON").$from_object(e)),s(a.handler)?a.handler.$call(a):r},m.$$arity=3),e.def(b,"$fail",g=function(e){var t=this;return t.body=e.responseText,t.xhr=e,t.status_code=e.status,t.ok=!1,s(t.handler)?t.handler.$call(t):r},g.$$arity=3),r&&"fail"}(n[0],0,n)},Opal.modules["opal/jquery/kernel"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.module);return function(t,$){var a,i=r(t,"Kernel");[i].concat($);return e.def(i,"$alert",a=function(e){return alert(e),n},a.$$arity=1),n&&"alert"}(t[0],t)},Opal.modules["opal/jquery"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("opal/jquery/window"),t.$require("opal/jquery/document"),t.$require("opal/jquery/element"),t.$require("opal/jquery/event"),t.$require("opal/jquery/http"),t.$require("opal/jquery/kernel")},Opal.modules["opal-jquery"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("opal/jquery")},Opal.modules["paggio/utils"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.klass,a=e.module,i=e.send,o=e.truthy;return e.add_stubs(["$size","$min","$scan","$gsub","$proc","$===","$merge","$to_proc","$merge!"]),function(t,$super,s){var u=[$(t,null,"Paggio")].concat(s);return function(t,$){var s,u,l,c=a(t,"Utils"),p=[c].concat($);return e.defs(c,"$heredoc",s=function(t){var $=n;return $=function(){try{return t.$scan(/^[ \t]*(?=\S)/).$min().$size()}catch(n){if(!e.rescue(n,[r(p,"StandardError")]))throw n;try{return 0}finally{e.pop_exception()}}}(),t.$gsub(e.regexp(["^[ \\t]{",$,"}"]),"")},s.$$arity=1),e.defs(c,"$deep_merge",u=function(e,t){var $,a=this,s=n;return s=i(a,"proc",[],(($=function(e,t,a){null==$.$$s||$.$$s;var u=n;return null==e&&(e=n),null==t&&(t=n),null==a&&(a=n),o(o(u=r(p,"Hash")["$==="](t))?r(p,"Hash")["$==="](a):u)?i(t,"merge",[a],s.$to_proc()):a}).$$s=a,$.$$arity=3,$)),i(e,"merge",[t],s.$to_proc())},u.$$arity=2),e.defs(c,"$deep_merge!",l=function(e,t){var $,a=this,s=n;return s=i(a,"proc",[],(($=function(e,t,a){null==$.$$s||$.$$s;var u=n;return null==e&&(e=n),null==t&&(t=n),null==a&&(a=n),o(o(u=r(p,"Hash")["$==="](t))?r(p,"Hash")["$==="](a):u)?(i(t,"merge!",[a],s.$to_proc()),t):a}).$$s=a,$.$$arity=3,$)),i(e,"merge!",[t],s.$to_proc())},l.$$arity=2),n&&"deep_merge!"}(u[0],u)}(t[0],0,t)},Opal.modules["paggio/html/helpers"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.truthy;return e.add_stubs(["$define_method","$instance_exec","$to_proc","$do","$defhelper","$[]=","$-"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s,u,l=a(n,$super,"Element");[l].concat($);return e.defs(l,"$defhelper",s=function(t){var n,$=s.$$p,a=$||r,u=this;return $&&(s.$$p=null),$&&(s.$$p=null),i(u,"define_method",[t],((n=function(){var t,$=null==n.$$s?this:n.$$s,s=n.$$p,u=s||r;return s&&(n.$$p=null),t=e.slice.call(arguments,0,arguments.length),i($,"instance_exec",e.to_a(t),a.$to_proc()),o(u)&&i($,"do",[],u.$to_proc()),$}).$$s=u,n.$$arity=-1,n))},s.$$arity=1),e.defs(l,"$defhelper!",u=function(n,$){var a,o=this;return null==$&&($=n),i(o,"defhelper",[n+"!"],((a=function(){var n=null==a.$$s?this:a.$$s,o=r;return null==n.attributes&&(n.attributes=r),o=[$,!0],i(n.attributes,"[]=",e.to_a(o)),o[t(o.length,1)]}).$$s=o,a.$$arity=0,a))},u.$$arity=-2),r&&"defhelper!"}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/a"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$each","$defhelper","$to_s","$[]=","$-","$defhelper!","$<<"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s=a(n,$super,"Element"),u=[s].concat($);return function(n,$super,$){var s,u,l=a(n,$super,"A");[l].concat($);return i(o(["href","url","rel","relative","target","type","lang","language","media"],{href:"href",url:"href",rel:"rel",relative:"rel",target:"target",type:"type",lang:"hreflang",language:"hreflang",media:"media"}),"each",[],((s=function(n,$){var a,o=null==s.$$s?this:s.$$s;return null==n&&(n=r),null==$&&($=r),i(o,"defhelper",[n],((a=function($){var o=null==a.$$s?this:a.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==$&&($=r),s=[n,$.$to_s()],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,a.$$arity=1,a))}).$$s=l,s.$$arity=2,s)),l["$defhelper!"]("download"),l["$defhelper!"]("ping"),i(l,"defhelper",["text"],((u=function(e){var t=null==u.$$s?this:u.$$s;return null==e&&(e=r),t["$<<"](e)}).$$s=l,u.$$arity=1,u))}(u[0],s,u)}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/base"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$each","$defhelper","$to_s","$[]=","$-"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s=a(n,$super,"Element"),u=[s].concat($);return function(n,$super,$){var s,u=a(n,$super,"Base");[u].concat($);return i(o(["href","url","target"],{href:"href",url:"href",target:"target"}),"each",[],((s=function(n,$){var a,o=null==s.$$s?this:s.$$s;return null==n&&(n=r),null==$&&($=r),i(o,"defhelper",[n],((a=function($){var o=null==a.$$s?this:a.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==$&&($=r),s=[n,$.$to_s()],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,a.$$arity=1,a))}).$$s=u,s.$$arity=2,s))}(u[0],s,u)}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/blockquote"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send;return e.add_stubs(["$defhelper","$to_s","$[]=","$-"]),function(n,$super,o){var s=[a(n,null,"Paggio")].concat(o);return function(n,$super,o){var s=[a(n,$super,"HTML")].concat(o);return function(n,$super,$){var o=a(n,$super,"Element"),s=[o].concat($);return function(n,$super,$){var o,s=a(n,$super,"Blockquote");[s].concat($);return i(s,"defhelper",["cite"],((o=function(n){var $=null==o.$$s?this:o.$$s,a=r;return null==$.attributes&&($.attributes=r),null==n&&(n=r),a=["cite",n.$to_s()],i($.attributes,"[]=",e.to_a(a)),a[t(a.length,1)]}).$$s=s,o.$$arity=1,o))}(s[0],o,s)}(s[0],$(s,"BasicObject"),s)}(s[0],$(s,"BasicObject"),s)}(n[0],0,n)},Opal.modules["paggio/html/element/button"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$each","$defhelper","$to_s","$[]=","$-","$defhelper!"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s=a(n,$super,"Element"),u=[s].concat($);return function(n,$super,$){var s,u=a(n,$super,"Button");[u].concat($);return i(o(["form","name","type","value","action","encoding","method","target"],{form:"form",name:"name",type:"type",value:"value",action:"formaction",encoding:"formenctype",method:"formmethod",target:"formtarget"}),"each",[],((s=function(n,$){var a,o=null==s.$$s?this:s.$$s;return null==n&&(n=r),null==$&&($=r),i(o,"defhelper",[n],((a=function($){var o=null==a.$$s?this:a.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==$&&($=r),s=[n,$.$to_s()],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,a.$$arity=1,a))}).$$s=u,s.$$arity=2,s)),u["$defhelper!"]("autofocus"),u["$defhelper!"]("disabled")}(u[0],s,u)}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/canvas"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$each","$defhelper","$to_s","$[]=","$-"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s=a(n,$super,"Element"),u=[s].concat($);return function(n,$super,$){var s,u=a(n,$super,"Canvas");[u].concat($);return i(o(["width","height"],{width:"width",height:"height"}),"each",[],((s=function(n,$){var a,o=null==s.$$s?this:s.$$s;return null==n&&(n=r),null==$&&($=r),i(o,"defhelper",[n],((a=function($){var o=null==a.$$s?this:a.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==$&&($=r),s=[n,$.$to_s()],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,a.$$arity=1,a))}).$$s=u,s.$$arity=2,s))}(u[0],s,u)}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/embed"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$each","$defhelper","$[]=","$-"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s=a(n,$super,"Element"),u=[s].concat($);return function(n,$super,$){var s,u=a(n,$super,"Embed");[u].concat($);return i(o(["type","height","width"],{type:"type",height:"height",width:"width"}),"each",[],((s=function(n,$){var a,o=null==s.$$s?this:s.$$s;return null==n&&(n=r),null==$&&($=r),i(o,"defhelper",[n],((a=function($){var o=null==a.$$s?this:a.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==$&&($=r),s=[n,$],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,a.$$arity=1,a))}).$$s=u,s.$$arity=2,s))}(u[0],s,u)}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/img"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$each","$defhelper","$to_s","$[]=","$-"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s=a(n,$super,"Element"),u=[s].concat($);return function(n,$super,$){var s,u,l=a(n,$super,"Img");[l].concat($);return i(o(["src","url","alt","description","height","width","map"],{src:"src",url:"src",alt:"alt",description:"alt",height:"height",width:"width",map:"usemap"}),"each",[],((s=function(n,$){var a,o=null==s.$$s?this:s.$$s;return null==n&&(n=r),null==$&&($=r),i(o,"defhelper",[n],((a=function($){var o=null==a.$$s?this:a.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==$&&($=r),s=[n,$.$to_s()],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,a.$$arity=1,a))}).$$s=l,s.$$arity=2,s)),i(l,"defhelper",["map!"],((u=function(){var n=null==u.$$s?this:u.$$s,$=r;return null==n.attributes&&(n.attributes=r),$=["ismap",!0],i(n.attributes,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=l,u.$$arity=0,u))}(u[0],s,u)}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/input"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$each","$defhelper","$[]=","$-"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s=a(n,$super,"Element"),u=[s].concat($);return function(n,$super,$){var s,u=a(n,$super,"Input");[u].concat($);return i(o(["type","name","value","size","place_holder","read_only","required","limit"],{type:"type",name:"name",value:"value",size:"size",place_holder:"placeholder",read_only:"readonly",required:"required",limit:"maxlength"}),"each",[],((s=function(n,$){var a,o=null==s.$$s?this:s.$$s;return null==n&&(n=r),null==$&&($=r),i(o,"defhelper",[n],((a=function($){var o=null==a.$$s?this:a.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==$&&($=r),s=[n,$],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,a.$$arity=1,a))}).$$s=u,s.$$arity=2,s))}(u[0],s,u)}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/link"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$each","$defhelper","$to_s","$[]=","$-"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s=a(n,$super,"Element"),u=[s].concat($);return function(n,$super,$){var s,u=a(n,$super,"Link");[u].concat($);return i(o(["cross_origin","href","href_lang","media","rel","sizes","type"],{cross_origin:"crossorigin",href:"href",href_lang:"hreflang",media:"media",rel:"rel",sizes:"sizes",type:"type"}),"each",[],((s=function(n,$){var a,o=null==s.$$s?this:s.$$s;return null==n&&(n=r),null==$&&($=r),i(o,"defhelper",[n],((a=function($){var o=null==a.$$s?this:a.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==$&&($=r),s=[n,$.$to_s()],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,a.$$arity=1,a))}).$$s=u,s.$$arity=2,s))}(u[0],s,u)}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/object"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$each","$defhelper","$[]=","$-"]),function(n,$super,s){var u=[a(n,null,"Paggio")].concat(s);return function(n,$super,s){var u=[a(n,$super,"HTML")].concat(s);return function(n,$super,$){var s=a(n,$super,"Element"),u=[s].concat($);return function(n,$super,$){var s,u=a(n,$super,"Object");[u].concat($);return i(o(["type","data","name","height","width"],{type:"type",data:"data",name:"name",height:"height",width:"width"}),"each",[],((s=function(n,$){var a,o=null==s.$$s?this:s.$$s;return null==n&&(n=r),null==$&&($=r),i(o,"defhelper",[n],((a=function($){var o=null==a.$$s?this:a.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==$&&($=r),s=[n,$],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=o,a.$$arity=1,a))}).$$s=u,s.$$arity=2,s))}(u[0],s,u)}(u[0],$(u,"BasicObject"),u)}(u[0],$(u,"BasicObject"),u)}(n[0],0,n)},Opal.modules["paggio/html/element/option"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send;return e.add_stubs(["$each","$defhelper","$[]=","$-","$defhelper!"]),function(n,$super,o){var s=[a(n,null,"Paggio")].concat(o);return function(n,$super,o){var s=[a(n,$super,"HTML")].concat(o);return function(n,$super,$){var o=a(n,$super,"Element"),s=[o].concat($);return function(n,$super,$){var o,s=a(n,$super,"Option");[s].concat($);return i(["label","value"],"each",[],((o=function(n){var $,a=null==o.$$s?this:o.$$s;return null==n&&(n=r),i(a,"defhelper",[n],(($=function(a){var o=null==$.$$s?this:$.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==a&&(a=r),s=[n,a],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=a,$.$$arity=1,$))}).$$s=s,o.$$arity=1,o)),s["$defhelper!"]("disabled"),s["$defhelper!"]("selected")}(s[0],o,s)}(s[0],$(s,"BasicObject"),s)}(s[0],$(s,"BasicObject"),s)}(n[0],0,n)},Opal.modules["paggio/html/element/optgroup"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send;return e.add_stubs(["$each","$defhelper","$[]=","$-","$defhelper!"]),function(n,$super,o){var s=[a(n,null,"Paggio")].concat(o);return function(n,$super,o){var s=[a(n,$super,"HTML")].concat(o);return function(n,$super,$){var o=a(n,$super,"Element"),s=[o].concat($);return function(n,$super,$){var o,s=a(n,$super,"Optgroup");[s].concat($);return i(["label","value"],"each",[],((o=function(n){var $,a=null==o.$$s?this:o.$$s;return null==n&&(n=r),i(a,"defhelper",[n],(($=function(a){var o=null==$.$$s?this:$.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==a&&(a=r),s=[n,a],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=a,$.$$arity=1,$))}).$$s=s,o.$$arity=1,o)),s["$defhelper!"]("disabled"),s["$defhelper!"]("selected")}(s[0],o,s)}(s[0],$(s,"BasicObject"),s)}(s[0],$(s,"BasicObject"),s)}(n[0],0,n)},Opal.modules["paggio/html/element/select"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send;return e.add_stubs(["$each","$defhelper","$[]=","$-","$defhelper!"]),function(n,$super,o){var s=[a(n,null,"Paggio")].concat(o);return function(n,$super,o){var s=[a(n,$super,"HTML")].concat(o);return function(n,$super,$){var o=a(n,$super,"Element"),s=[o].concat($);return function(n,$super,$){var o,s=a(n,$super,"Select");[s].concat($);return i(["form","name","size"],"each",[],((o=function(n){var $,a=null==o.$$s?this:o.$$s;return null==n&&(n=r),i(a,"defhelper",[n],(($=function(a){var o=null==$.$$s?this:$.$$s,s=r;return null==o.attributes&&(o.attributes=r),null==a&&(a=r),s=[n,a],i(o.attributes,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=a,$.$$arity=1,$))}).$$s=s,o.$$arity=1,o)),s["$defhelper!"]("auto_focus","autofocus"),s["$defhelper!"]("disabled"),s["$defhelper!"]("required")}(s[0],o,s)}(s[0],$(s,"BasicObject"),s)}(s[0],$(s,"BasicObject"),s)}(n[0],0,n)},Opal.modules["paggio/html/element/td"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send;return e.add_stubs(["$defhelper","$to_s","$[]=","$-","$join"]),function(n,$super,o){var s=[a(n,null,"Paggio")].concat(o);return function(n,$super,o){var s=[a(n,$super,"HTML")].concat(o);return function(n,$super,$){var o=a(n,$super,"Element"),s=[o].concat($);return function(n,$super,$){var o,s,u,l=a(n,$super,"Td");[l].concat($);return i(l,"defhelper",["columns"],((o=function(n){var $=null==o.$$s?this:o.$$s,a=r;return null==$.attributes&&($.attributes=r),null==n&&(n=r),a=["colspan",n.$to_s()],i($.attributes,"[]=",e.to_a(a)),a[t(a.length,1)]}).$$s=l,o.$$arity=1,o)),i(l,"defhelper",["rows"],((s=function(n){var $=null==s.$$s?this:s.$$s,a=r;return null==$.attributes&&($.attributes=r),null==n&&(n=r),a=["rowspan",n.$to_s()],i($.attributes,"[]=",e.to_a(a)),a[t(a.length,1)]}).$$s=l,s.$$arity=1,s)),i(l,"defhelper",["headers"],((u=function(){var n=null==u.$$s?this:u.$$s,$=r;return null==n.attributes&&(n.attributes=r),$=["headers",e.slice.call(arguments,0,arguments.length).$join(" ")],i(n.attributes,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=l,u.$$arity=-1,u))}(s[0],o,s)}(s[0],$(s,"BasicObject"),s)}(s[0],$(s,"BasicObject"),s)}(n[0],0,n)},Opal.modules["paggio/html/element"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var n=e.top,r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.klass,s=e.hash2,u=e.send2,l=e.find_super,c=e.truthy,p=e.send,d=e.range;return e.add_stubs(["$require","$==","$capitalize","$const_defined?","$new","$const_get","$each","$to_proc","$<<","$end_with?","$to_s","$[]","$[]=","$-","$===","$has_key?","$unshift","$|","$split","$delete","$to_a","$deep_merge!","$>>","$extend!","$pop","$join","$heredoc","$defhelper","$map","$empty?","$upcase","$inspect"]),n.$require("paggio/html/element/a"),n.$require("paggio/html/element/base"),n.$require("paggio/html/element/blockquote"),n.$require("paggio/html/element/button"),n.$require("paggio/html/element/canvas"),n.$require("paggio/html/element/embed"),n.$require("paggio/html/element/img"),n.$require("paggio/html/element/input"),n.$require("paggio/html/element/link"),n.$require("paggio/html/element/object"),n.$require("paggio/html/element/option"),n.$require("paggio/html/element/optgroup"),n.$require("paggio/html/element/select"),n.$require("paggio/html/element/td"),function(n,$super,r){var f=[o(n,null,"Paggio")].concat(r);return function(n,$super,r){var f=[o(n,$super,"HTML")].concat(r);return function(n,$super,r){var f,_,h,y,v,m,g,b,w,k,O,E=o(n,$super,"Element"),x=[E].concat(r);return E.$$prototype.children=E.$$prototype.attributes=E.$$prototype.class_names=E.$$prototype.owner=E.$$prototype.name=$,e.defs(E,"$new",f=function(e,t,n){var r=f.$$p,a=this,o=$;return r&&(f.$$p=null),null==n&&(n=s([],{})),a["$=="](i(x,"Element"))?(o=t.$capitalize(),c(a["$const_defined?"](o))?a.$const_get(o).$new(e,t,n):u(a,l(a,"new",f,!1,!0),"new",[e,t,n],r)):u(a,l(a,"new",f,!1,!0),"new",[e,t,n],r)},f.$$arity=-3),e.def(E,"$initialize",_=function(e,t,n){var r=this;return null==n&&(n=s([],{})),r.owner=e,r.name=t,r.attributes=n,r.children=[],r.class_names=[]},_.$$arity=-3),e.def(E,"$each",h=function(){var e=h.$$p,t=e||$,n=this;return e&&(h.$$p=null),e&&(h.$$p=null),p(n.children,"each",[],t.$to_proc())},h.$$arity=0),e.def(E,"$<<",y=function(e){var t=this;return t.children["$<<"](e),t},y.$$arity=1),e.def(E,"$method_missing",v=function(n,r){var i=v.$$p,o=i||$,s=this,u=$,l=$;return i&&(v.$$p=null),i&&(v.$$p=null),null==r&&(r=$),c(n.$to_s()["$end_with?"]("!"))?(u=["id",n["$[]"](d(0,-2,!1))],p(s.attributes,"[]=",e.to_a(u)),u[t(u.length,1)]):s.class_names["$<<"](n),c(a("::","Hash")["$==="](r))?(c(c(l=r["$has_key?"]("class"))?l:r["$has_key?"]("classes"))&&p(s.class_names,"unshift",e.to_a(r.$delete("class").$to_s().$split()["$|"](r.$delete("classes").$to_a()))),a(a("::","Paggio"),"Utils")["$deep_merge!"](s.attributes,r)):c(r)&&s["$>>"](r),c(o)&&p(s.owner,"extend!",[s],o.$to_proc()),s},v.$$arity=-2),e.def(E,"$[]",m=function(){var t,n=this,r=$;return t=e.slice.call(arguments,0,arguments.length),c(r=n.class_names.$pop())&&n.class_names["$<<"]([r].concat(e.to_a(t)).$join("-")),n},m.$$arity=-1),e.def(E,"$do",g=function(){var e=g.$$p,t=e||$,n=this;return e&&(g.$$p=null),e&&(g.$$p=null),p(n.owner,"extend!",[n],t.$to_proc()),n},g.$$arity=0),e.def(E,"$>>",b=function(e){var t=this;return t["$<<"](a(a("::","Paggio"),"Utils").$heredoc(e.$to_s())),t},b.$$arity=1),p(E,"defhelper",["style"],((w=function(n){var r,a=null==w.$$s?this:w.$$s,i=$;return null==a.attributes&&(a.attributes=$),null==n&&(n=$),i=["style",p(n,"map",[],(r=function(e,t){null==r.$$s||r.$$s;return null==e&&(e=$),null==t&&(t=$),e+": "+t},r.$$s=a,r.$$arity=2,r)).$join(";")],p(a.attributes,"[]=",e.to_a(i)),i[t(i.length,1)]}).$$s=E,w.$$arity=1,w)),p(E,"defhelper",["data"],((k=function(n){var r,a=null==k.$$s?this:k.$$s;return null==n&&(n=$),p(n,"each",[],((r=function(n,a){var i=null==r.$$s?this:r.$$s,o=$;return null==i.attributes&&(i.attributes=$),null==n&&(n=$),null==a&&(a=$),o=["data-"+n,a.$to_s()],p(i.attributes,"[]=",e.to_a(o)),o[t(o.length,1)]}).$$s=a,r.$$arity=2,r))}).$$s=E,k.$$arity=1,k)),e.def(E,"$inspect",O=function(){var e=this;return c(e.children["$empty?"]())?"#":"#"},O.$$arity=0),$&&"inspect"}(f[0],i(f,"BasicObject"),f)}(f[0],i(f,"BasicObject"),f)}(r[0],0,r)},Opal.modules["paggio/html"]=function(e){var t=e.top,n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.klass,o=e.truthy,s=e.send,u=e.send2,l=e.find_super,c=e.range;return e.add_stubs(["$require","$attr_reader","$raise","$==","$arity","$instance_exec","$to_proc","$call","$<<","$first","$===","$instance_eval","$each","$end_with?","$to_s","$empty?","$heredoc","$shift","$new","$[]","$inspect"]),t.$require("paggio/html/helpers"),t.$require("paggio/html/element"),function(t,$super,n){var p=[i(t,null,"Paggio")].concat(n);return function(t,$super,n){var p,d,f,_,h,y,v,m,g,b=i(t,$super,"HTML"),w=[b].concat(n);return b.$$prototype.current=b.$$prototype.roots=b.$$prototype.version=r,b.$attr_reader("version"),e.def(b,"$initialize",p=function(e){var t=p.$$p,n=t||r,a=this;return t&&(p.$$p=null),t&&(p.$$p=null),null==e&&(e=5),o(n)||$("::","Kernel").$raise($("::","ArgumentError"),"no block given"),a.version=e,a.roots=[],a.current=r,n.$arity()["$=="](0)?s(a,"instance_exec",[],n.$to_proc()):n.$call(a)},p.$$arity=-1),e.def(b,"$<<",d=function(e){var t=this,n=r;return(o(n=t.current)?n:t.roots)["$<<"](e)},d.$$arity=1),e.def(b,"$root!",f=function(){return this.roots.$first()},f.$$arity=0),e.def(b,"$roots!",_=function(){return this.roots},_.$$arity=0),e.def(b,"$element!",h=function(){return this.current},h.$$arity=0),e.def(b,"$extend!",y=function(e){var t,n,a=y.$$p,i=a||r,u=this,l=r,c=r;return a&&(y.$$p=null),a&&(y.$$p=null),null==e&&(e=r),l=(t=[u.current,e])[0],u.current=t[1],c=i.$call(u),o($("::","String")["$==="](c))&&s(u.current,"instance_eval",[],((n=function(){return(null==n.$$s?this:n.$$s).inner_html=c}).$$s=u,n.$$arity=0,n)),u.current=l,u},y.$$arity=-1),e.def(b,"$each",v=function(){var e=v.$$p,t=e||r,n=this;return e&&(v.$$p=null),e&&(v.$$p=null),s(n.roots,"each",[],t.$to_proc())},v.$$arity=0),e.def(b,"$method_missing",m=function(t){var n,i,c,p=m.$$p,d=p||r,f=this,_=r,h=r,y=r,v=r,g=r;return p&&(m.$$p=null),p&&(m.$$p=null), +n=e.slice.call(arguments,1,arguments.length),i=n,o(t.$to_s()["$end_with?"]("!"))?u(f,l(f,"method_missing",m,!1,!0),"method_missing",[t].concat(e.to_a(i)),p):(o(o(_=i["$empty?"]())?_:$("::","Hash")["$==="](i.$first()))||(h=$($("::","Paggio"),"Utils").$heredoc(i.$shift().$to_s())),y=s(a(w,"Element"),"new",[f,t].concat(e.to_a(i))),o(h)&&y["$<<"](h),o(d)&&(v=f.current,f.current=y,g=d.$call(f),f.current=v,o($("::","String")["$==="](g))&&s(y,"instance_eval",[],((c=function(){return(null==c.$$s?this:c.$$s).inner_html=g}).$$s=f,c.$$arity=0,c))),f["$<<"](y),y)},m.$$arity=-2),e.def(b,"$inspect",g=function(){var e=this;return o(e.roots["$empty?"]())?"#":"#"},g.$$arity=0),r&&"inspect"}(p[0],a(p,"BasicObject"),p)}(n[0],0,n)},Opal.modules["paggio/css/unit"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e/t:e["$/"](t)}var a,i=e.top,o=[],s=e.nil,u=e.$$$,l=e.$$,c=e.klass,p=e.send,d=e.truthy,f=e.alias;return e.add_stubs(["$map","$to_proc","$attr_reader","$===","$respond_to?","$raise","$class","$to_u","$new","$==","$convert","$type","$number","$hash","$each","$define_method","$+","$compatible?","$-","$*","$/","$to_i","$to_f","$private","$include?","$class_eval","$old_percent","$match","$[]","$__send__","$downcase"]),function(a,$super,i){var o=[c(a,null,"Paggio")].concat(i);(function(a,$super,i){var o=[c(a,$super,"CSS")].concat(i);(function(a,$super,i){var o,u,_,h,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z=c(a,null,"Unit"),I=[z].concat(i);z.$$prototype.type=z.$$prototype.number=s,e.const_set(I[0],"TYPES",p(["em","ex","ch","rem","vh","vw","vmin","vmax","px","mm","cm","in","pt","pc","s","deg"],"map",[],"to_sym".$to_proc())),e.const_set(I[0],"COMPATIBLE",p(["in","pt","mm","cm","px","pc"],"map",[],"to_sym".$to_proc())),z.$attr_reader("type","number"),e.def(z,"$initialize",o=function(e,t){var n=this;return n.number=e,n.type=t},o.$$arity=2),e.def(z,"$coerce",u=function(e){return[this,e]},u.$$arity=1),e.def(z,"$==",_=function(e){var t=this;return d(l(I,"Unit")["$==="](e))||(d(e["$respond_to?"]("to_u"))||t.$raise(l(I,"TypeError"),"no implicit conversion of "+e.$class()+" into Unit"),e=e.$to_u()),d(l(I,"Unit")["$==="](e))||(e=l(I,"Unit").$new(e,t.type)),t.number["$=="](t.$convert(e,t.type))},_.$$arity=1),e.def(z,"$===",h=function(e){var t=this,n=s;return d(n=t.type["$=="](e.$type()))?t.number["$=="](e.$number()):n},h.$$arity=1),f(z,"eql?","=="),e.def(z,"$hash",y=function(){var e=this;return[e.number,e.type].$hash()},y.$$arity=0),p(l(I,"TYPES"),"each",[],((v=function(e){var t,n=null==v.$$s?this:v.$$s;return null==e&&(e=s),p(n,"define_method",[e],((t=function(){var n=null==t.$$s?this:t.$$s;return l(I,"Unit").$new(n.$convert(n,e),e)}).$$s=n,t.$$arity=0,t))}).$$s=z,v.$$arity=1,v)),e.def(z,"$+",m=function(e){var n=this,r=s;return d(l(I,"Unit")["$==="](e))?n.type["$=="](e.$type())?l(I,"Unit").$new(t(n.number,e.$number()),n.type):d(d(r=n["$compatible?"](n))?n["$compatible?"](e):r)?l(I,"Unit").$new(t(n.number,n.$convert(e,n.type)),n.type):n.$raise(l(I,"ArgumentError"),e.$type()+" isn't compatible with "+n.type):l(I,"Unit").$new(t(n.number,e),n.type)},m.$$arity=1),e.def(z,"$-",g=function(e){var t=this,r=s;return d(l(I,"Unit")["$==="](e))?t.type["$=="](e.$type())?l(I,"Unit").$new(n(t.number,e.$number()),t.type):d(d(r=t["$compatible?"](t))?t["$compatible?"](e):r)?l(I,"Unit").$new(n(t.number,t.$convert(e,t.type)),t.type):t.$raise(l(I,"ArgumentError"),e.$type()+" isn't compatible with "+t.type):l(I,"Unit").$new(n(t.number,e),t.type)},g.$$arity=1),e.def(z,"$*",b=function(e){var t=this,n=s;return d(l(I,"Unit")["$==="](e))?t.type["$=="](e.$type())?l(I,"Unit").$new(r(t.number,e.$number()),t.type):d(d(n=t["$compatible?"](t))?t["$compatible?"](e):n)?l(I,"Unit").$new(r(t.number,t.$convert(e,t.type)),t.type):t.$raise(l(I,"ArgumentError"),e.$type()+" isn't compatible with "+t.type):l(I,"Unit").$new(r(t.number,e),t.type)},b.$$arity=1),e.def(z,"$/",w=function(e){var t=this,n=s;return d(l(I,"Unit")["$==="](e))?t.type["$=="](e.$type())?l(I,"Unit").$new($(t.number,e.$number()),t.type):d(d(n=t["$compatible?"](t))?t["$compatible?"](e):n)?l(I,"Unit").$new($(t.number,t.$convert(e,t.type)),t.type):t.$raise(l(I,"ArgumentError"),e.$type()+" isn't compatible with "+t.type):l(I,"Unit").$new($(t.number,e),t.type)},w.$$arity=1),e.def(z,"$-@",k=function(){var e=this;return l(I,"Unit").$new(r(e.number,-1),e.type)},k.$$arity=0),e.def(z,"$+@",O=function(){var e=this;return l(I,"Unit").$new(e.number,e.type)},O.$$arity=0),e.def(z,"$to_i",E=function(){return this.number.$to_i()},E.$$arity=0),e.def(z,"$to_f",x=function(){return this.number.$to_f()},x.$$arity=0),e.def(z,"$to_u",S=function(){return this},S.$$arity=0),e.def(z,"$to_s",q=function(){var e=this;return""+e.number+e.type},q.$$arity=0),f(z,"to_str","to_s"),f(z,"inspect","to_s"),z.$private(),e.def(z,"$compatible?",N=function(e){return l(I,"COMPATIBLE")["$include?"](e.$type())},N.$$arity=1),e.def(z,"$convert",C=function(e,t){var n=s,a=s,i=s;return n=e.$number(),e.$type()["$=="](t)?n:(i=e.$type(),a="in"["$==="](i)?r(n,96):"pt"["$==="](i)?$(r(n,4),3):"pc"["$==="](i)?$(r($(n,12),4),3):"mm"["$==="](i)?r(n,3.77953):"cm"["$==="](i)?r(r(n,10),3.77953):"px"["$==="](i)?n:s,i=t,"in"["$==="](i)?$(a,96):"pt"["$==="](i)?$($(a,4),3):"pc"["$==="](i)?$($(r(a,12),4),3):"mm"["$==="](i)?$(a,3.77953):"cm"["$==="](i)?$($(a,10),3.77953):"px"["$==="](i)?a:s)},C.$$arity=2)})(o[0],0,o)})(o[0],l(o,"BasicObject"),o)}(o[0],0,o),function(t,$super,n){var r,$,a=c(t,null,"Numeric"),i=[a].concat(n);p(u(u(u(l(i,"Paggio"),"CSS"),"Unit"),"TYPES"),"each",[],((r=function(e){var t,n=null==r.$$s?this:r.$$s;return null==e&&(e=s),p(n,"define_method",[e],((t=function(){var n=null==t.$$s?this:t.$$s;return u(u(l(i,"Paggio"),"CSS"),"Unit").$new(n,e)}).$$s=n,t.$$arity=0,t))}).$$s=a,r.$$arity=1,r)),e.def(a,"$to_u",$=function(){return this},$.$$arity=0)}(o[0],0,o),p([l(o,"Fixnum"),l(o,"Float")],"each",[],((a=function(t){var n,r=null==a.$$s?this:a.$$s;return null==t&&(t=s),p(t,"class_eval",[],((n=function(){var t,r=null==n.$$s?this:n.$$s;return f(r,"old_percent","%"),e.def(r,"$%",t=function(e){var t=this;return null==e&&(e=s),d(e)?t.$old_percent(e):u(u(l(o,"Paggio"),"CSS"),"Unit").$new(t,"%")},t.$$arity=-1),s&&"%"}).$$s=r,n.$$arity=0,n))}).$$s=i,a.$$arity=1,a)),function(t,$super,n){var r,$=c(t,null,"String");[$].concat(n);e.def($,"$to_u",r=function(){var e=s,t=s,n=s;return d(e=this.$match(/^([\d+.]+)(.+)?$/))?(t=e["$[]"](1).$to_f(),d(n=e["$[]"](2))?t.$__send__(n.$downcase()):t):0},r.$$arity=0)}(o[0],0,o),function(t,$super,n){var r,$=c(t,null,"NilClass");[$].concat(n);return e.def($,"$to_u",r=function(){return 0},r.$$arity=0),s&&"to_u"}(o[0],0,o)},Opal.modules["paggio/css/color"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.klass,i=e.send;return e.add_stubs(["$each","$map","$to_proc","$define_method","$new"]),function(t,$super,n){var r=[a(t,null,"Paggio")].concat(n);(function(t,$super,n){var r=[a(t,$super,"CSS")].concat(n);(function(t,$super,n){var r,$=a(t,null,"Color");[$].concat(n);e.def($,"$initialize",r=function(e,t){var n=this;return n.internal=e,n.type=t},r.$$arity=2)})(r[0],0,r)})(r[0],$(r,"BasicObject"),r)}(t[0],0,t),function(e,$super,t){var o,s=a(e,null,"String"),u=[s].concat(t);i(i(["rgb","rgba","hsl","hsla"],"map",[],"to_sym".$to_proc()),"each",[],((o=function(e){var t,a=null==o.$$s?this:o.$$s;return null==e&&(e=n),i(a,"define_method",[e],((t=function(){var n=null==t.$$s?this:t.$$s;return r(r($(u,"Paggio"),"CSS"),"Color").$new(n,e)}).$$s=a,t.$$arity=0,t))}).$$s=s,o.$$arity=1,o))}(t[0],0,t),function(e,$super,t){var o,s=a(e,null,"Array"),u=[s].concat(t);return i(i(["rgb","rgba","hsl","hsla"],"map",[],"to_sym".$to_proc()),"each",[],((o=function(e){var t,a=null==o.$$s?this:o.$$s;return null==e&&(e=n),i(a,"define_method",[e],((t=function(){var n=null==t.$$s?this:t.$$s;return r(r($(u,"Paggio"),"CSS"),"Color").$new(n,e)}).$$s=a,t.$$arity=0,t))}).$$s=s,o.$$arity=1,o))}(t[0],0,t)},Opal.modules["paggio/css/definition"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}e.top;var r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.klass,s=e.truthy,u=e.send,l=e.range,c=e.hash2;return e.add_stubs(["$new","$==","$arity","$instance_exec","$to_proc","$call","$empty?","$each","$inspect","$to_s","$define_method","$a","$===","$first","$>","$length","$raise","$style","$name","$value","$[]","$join","$map","$to_i","$*","$end_with?","$__send__","$<<","$last","$pop","$!","$other","$shift","$horizontal?","$private"]),function(r,$super,p){var d=[o(r,null,"Paggio")].concat(p);return function(r,$super,p){var d=[o(r,$super,"CSS")].concat(p);return function(r,$super,p){var d,f,_,h,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I,D,H,A=o(r,$super,"Definition"),j=[A].concat(p);return A.$$prototype.style=A.$$prototype.important=$,e.const_set(j[0],"Style",a("::","Struct").$new("name","value","important")),e.def(A,"$initialize",d=function(){var e=d.$$p,t=e||$,n=this;return e&&(d.$$p=null),e&&(d.$$p=null),n.style=[],s(t)?t.$arity()["$=="](0)?u(n,"instance_exec",[],t.$to_proc()):t.$call(n):$},d.$$arity=0),e.def(A,"$empty?",f=function(){return this.style["$empty?"]()},f.$$arity=0),e.def(A,"$each",_=function(){var e=_.$$p,t=e||$,n=this;return e&&(_.$$p=null),e&&(_.$$p=null),u(n.style,"each",[],t.$to_proc())},_.$$arity=0),e.def(A,"$gradient",h=function(){var t;return t=e.slice.call(arguments,0,arguments.length),u(i(j,"Gradient"),"new",e.to_a(t))},h.$$arity=-1),e.def(A,"$url",y=function(e){return"url("+e.$to_s().$inspect()+")"},y.$$arity=1),u(["url","blur","brightness","rotate","contrast","grayscale","invert","opacity","saturate","sepia"],"each",[],((v=function(e){var t,n=null==v.$$s?this:v.$$s;return null==e&&(e=$),u(n,"define_method",[e],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=$),e+"("+n+")"}).$$s=n,t.$$arity=1,t))}).$$s=A,v.$$arity=1,v)),e.def(A,"$rgb",m=function(e,t,n){return"rgb("+e+", "+t+", "+n+", "+this.$a()+")"},m.$$arity=3),e.def(A,"$rgba",g=function(e,t,n,r){return"rgba("+e+", "+t+", "+n+", "+r+")"},g.$$arity=4),u(["scale","skew","translate"],"each",[],((b=function(e){var t,n=null==b.$$s?this:b.$$s;return null==e&&(e=$),u(n,"define_method",[e],((t=function(n,r){null==t.$$s||t.$$s;return null==n&&(n=$),null==r&&(r=$),s(r)?e+"("+n+", "+r+")":e+"("+n+")"}).$$s=n,t.$$arity=-2,t))}).$$s=A,b.$$arity=1,b)),u(["translateX","translateY","translateZ","rotateX","rotateY","rotateZ","skewX","skewY","scaleX","scaleY"],"each",[],((w=function(e){var t,n=null==w.$$s?this:w.$$s;return null==e&&(e=$),u(n,"define_method",[e],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=$),e+"("+n+")"}).$$s=n,t.$$arity=1,t))}).$$s=A,w.$$arity=1,w)),e.def(A,"$background",k=function(){var n,r,o,l=this;return n=e.slice.call(arguments,0,arguments.length),s(i(j,"Gradient")["$==="](n.$first()))?(s(t(n.$length(),1))&&l.$raise(i(j,"NotImplementedError"),"multiple gradients not implemented yet"),u(n.$first(),"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s,n=$;return null==e&&(e=$),t.$style(s(n=e.$name())?n:"background-image",e.$value())}).$$s=l,r.$$arity=1,r))):s(a("::","Hash")["$==="](n.$first()))?u(n.$first(),"each",[],((o=function(e,t){var n=null==o.$$s?this:o.$$s;return null==e&&(e=$),null==t&&(t=$),n.$style("background-"+e,t)}).$$s=l,o.$$arity=2,o)):l.$style("background",n)},k.$$arity=-1),e.def(A,"$border",O=function(){var t,n,r=this,i=$;return t=e.slice.call(arguments,0,arguments.length),s(a("::","Hash")["$==="](t.$first()))?(t.$length()["$=="](1)&&(i=t.$first()),u(i,"each",[],((n=function(e,t){var r,i,o,l=null==n.$$s?this:n.$$s,c=$;return null==e&&(e=$),null==t&&(t=$),c=e,"top"["$==="](c)||"bottom"["$==="](c)||"left"["$==="](c)||"right"["$==="](c)?s(a("::","Hash")["$==="](t))?u(t,"each",[],((r=function(t,n){var a=null==r.$$s?this:r.$$s;return null==t&&(t=$),null==n&&(n=$),a.$style("border-"+e+"-"+t,n)}).$$s=l,r.$$arity=2,r)):l.$style("border-"+e,t):"radius"["$==="](c)?s(a("::","Hash")["$==="](t))?u(t,"each",[],((i=function(e,t){var n,r=null==i.$$s?this:i.$$s;return null==e&&(e=$),null==t&&(t=$),u(t,"each",[],((n=function(t,r){var a=null==n.$$s?this:n.$$s;return null==t&&(t=$),null==r&&(r=$),a.$style("-moz-border-radius-"+e+t,r),a.$style("-webkit-border-"+e+"-"+t+"-radius",r),a.$style("border-"+e+"-"+t+"-radius",r)}).$$s=r,n.$$arity=2,n))}).$$s=l,i.$$arity=2,i)):(l.$style("-moz-border-radius",t),l.$style("-webkit-border-radius",t),l.$style("border-radius",t)):"color"["$==="](c)?s(a("::","Hash")["$==="](t))?u(t,"each",[],((o=function(e,t){var n=null==o.$$s?this:o.$$s;return null==e&&(e=$),null==t&&(t=$),n.$style("border-"+e+"-color",t)}).$$s=l,o.$$arity=2,o)):l.$style("border-color",t):l.$style("border-"+e,t)}).$$s=r,n.$$arity=2,n))):r.$style("border",t)},O.$$arity=-1),e.def(A,"$box",E=function(e){var t,n=this;return s(a("::","Hash")["$==="](e))?u(e,"each",[],((t=function(e,n){var r,i=null==t.$$s?this:t.$$s,o=$;return null==e&&(e=$),null==n&&(n=$),o=e,"shadow"["$==="](o)?(s(a("::","Array")["$==="](n))&&(n=s(a("::","Array")["$==="](n["$[]"](0)))?u(n,"map",[],(r=function(e){return null==r.$$s||r.$$s,null==e&&(e=$),e.$join(" ")},r.$$s=i,r.$$arity=1,r)).$join(", "):n.$join(" ")),i.$style("-moz-box-shadow",n),i.$style("-webkit-box-shadow",n),i.$style("box-shadow",n)):i.$style("box-"+e,n)}).$$s=n,t.$$arity=2,t)):n.$style("box",e)},E.$$arity=1),e.def(A,"$opacity",x=function(e){var t=this;return t.$style("opacity",e),t.$style("-moz-opacity",e),t.$style("-ms-filter",'"progid:DXImageTransform.Microsoft.Alpha(Opacity='+n(e,100).$to_i()+')"'),t.$style("filter","alpha(opacity="+n(e,100).$to_i()+")")},x.$$arity=1),e.def(A,"$animation",S=function(){var t,n,r=this,a=$;return t=e.slice.call(arguments,0,arguments.length),s(i(j,"Hash")["$==="](t.$first()))?(t.$length()["$=="](1)&&(a=t.$first()),u(a,"each",[],((n=function(e,t){var r=null==n.$$s?this:n.$$s;return null==e&&(e=$),null==t&&(t=$),r.$style("-webkit-animation-"+e,t),r.$style("animation-"+e,t)}).$$s=r,n.$$arity=2,n))):(r.$style("animation",t),r.$style("-webkit-animation",t))},S.$$arity=-1),e.def(A,"$transition",q=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),n.$style("transition",t),n.$style("-webkit-transition",t),n.$style("-moz-transition",t)},q.$$arity=-1),e.def(A,"$user_select",N=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),n.$style("user-select",t),n.$style("-webkit-user-select",t),n.$style("-moz-user-select",t),n.$style("-ms-user-select",t)},N.$$arity=-1),e.def(A,"$transform",C=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),n.$style("transform",t),n.$style("-webkit-transform",t),n.$style("-moz-transform",t),n.$style("-ms-transform",t),n.$style("-o-transform",t)},C.$$arity=-1),e.def(A,"$filter",z=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),n.$style("filter",t),n.$style("-webkit-filter",t),n.$style("-moz-filter",t),n.$style("-ms-filter",t),n.$style("-o-filter",t)},z.$$arity=-1),e.def(A,"$method_missing",I=function(t){var n,r,i=I.$$p,o=i||$,c=this,p=$;return i&&(I.$$p=null),i&&(I.$$p=null),n=e.slice.call(arguments,1,arguments.length),t=t.$to_s(),s(t["$end_with?"]("!"))?(t=t["$[]"](l(0,-2,!1)),c.important=!0,u(c,"__send__",[t].concat(e.to_a(n)),o.$to_proc()),c.important=!1,$):(n.$length()["$=="](1)?(p=n.$first(),s(a("::","Hash")["$==="](p))?u(p,"each",[],((r=function(e,n){var a=null==r.$$s?this:r.$$s;return null==e&&(e=$),null==n&&(n=$),a.$style(t+"-"+e,n)}).$$s=c,r.$$arity=2,r)):c.$style(t,p)):c.$style(t,n.$join(" ")),c.important=!1,c)},I.$$arity=-2),e.def(A,"$style",D=function(e,t,n){var r=this;return null==t&&(t=$),null==n&&(n=r.important),s(a("::","Array")["$==="](t))&&(t=t.$join(" ")),s(i(j,"Style")["$==="](e))?r.style["$<<"](e):r.style["$<<"](i(j,"Style").$new(e,t,n))},D.$$arity=-2),e.def(A,"$style!",H=function(e,t){return null==t&&(t=$),this.$style(e,t,!0)},H.$$arity=-2),function(t,$super,n){var r,l,p,d,f,_,h=o(t,null,"Gradient"),y=[h].concat(n);return h.$$prototype.to=h.$$prototype.from=h.$$prototype.start=h.$$prototype.end=$,e.def(h,"$initialize",r=function(){var t,n,r=this,i=$,o=$,u=$;return t=e.slice.call(arguments,0,arguments.length),n=t,i=s(a("::","Hash")["$==="](n.$last()))?n.$pop():c([],{}),r.to=i["$[]"]("to"),r.from=i["$[]"]("from"),s(s(o=r.to)?r.from["$!"]():o)?r.from=r.$other(r.to):s(s(u=r.from)?r.to["$!"]():u)&&(r.to=r.$other(r.from)),r.start=n.$shift(),r.end=n.$shift()},r.$$arity=-1),e.def(h,"$each",l=function(){var e=l.$$p,t=e||$,n=this;return e&&(l.$$p=null),e&&(l.$$p=null),t.$call(n.$style("-moz-linear-gradient("+n.to+", "+n.start+" 0%, "+n.end+" 100%)")),s(n["$horizontal?"]())?t.$call(n.$style("-webkit-gradient(linear, "+n.from+" top, "+n.to+" top, color-stop(0%, "+n.start+"), color-stop(100%, "+n.end+"))")):t.$call(n.$style("-webkit-gradient(linear, left "+n.from+", left "+n.to+", color-stop(0%, "+n.start+"), color-stop(100%, "+n.end+"))")),t.$call(n.$style("-webkit-linear-gradient("+n.to+", "+n.start+" 0%, "+n.end+" 100%)")),t.$call(n.$style("-o-linear-gradient("+n.to+", "+n.start+" 0%, "+n.end+" 100%)")),t.$call(n.$style("-ms-linear-gradient("+n.to+", "+n.start+" 0%, "+n.end+" 100%)")),t.$call(n.$style("linear-gradient(to "+n.to+", "+n.start+" 0%, "+n.end+" 100%)"))},l.$$arity=0),e.def(h,"$horizontal?",p=function(){var e=this,t=$;return s(t=e.to["$=="]("left"))?t:e.to["$=="]("right")},p.$$arity=0),e.def(h,"$vertical?",d=function(){var e=this,t=$;return s(t=e.to["$=="]("top"))?t:e.to["$=="]("bottom")},d.$$arity=0),h.$private(),e.def(h,"$other",f=function(e){var t=$;return t=e,"left"["$==="](t)?"right":"right"["$==="](t)?"left":"top"["$==="](t)?"bottom":"bottom"["$==="](t)?"top":$},f.$$arity=1),e.def(h,"$style",_=function(){var t;return(t=e.slice.call(arguments,0,arguments.length)).$length()["$=="](1)?i(y,"Style").$new($,t.$first()):u(i(y,"Style"),"new",e.to_a(t))},_.$$arity=-1),$&&"style"}(j[0],0,j)}(d[0],i(d,"BasicObject"),d)}(d[0],i(d,"BasicObject"),d)}(r[0],0,r)},Opal.modules["paggio/css/rule"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.klass,a=e.send;return e.add_stubs(["$attr_reader","$new","$__send__","$to_proc"]),function(t,$super,i){var o=[$(t,null,"Paggio")].concat(i);return function(t,$super,i){var o=[$(t,$super,"CSS")].concat(i);return function(t,$super,i){var o,s,u=$(t,$super,"Rule"),l=[u].concat(i);return u.$$prototype.definition=n,u.$attr_reader("selector","media"),e.def(u,"$initialize",o=function(e,t){var n=this;return n.selector=e,n.media=t,n.definition=r(l,"Definition").$new()},o.$$arity=2),e.def(u,"$method_missing",s=function(){var t,r=s.$$p,$=r||n,i=this;return r&&(s.$$p=null),r&&(s.$$p=null),t=e.slice.call(arguments,0,arguments.length),a(i.definition,"__send__",e.to_a(t),$.$to_proc())},s.$$arity=-1),n&&"method_missing"}(o[0],r(o,"BasicObject"),o)}(o[0],r(o,"BasicObject"),o)}(t[0],0,t)},Opal.modules["paggio/css/font"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.klass,a=e.hash2,i=e.send;return e.add_stubs(["$attr_reader","$new","$font","$__send__","$to_proc"]),function(t,$super,o){var s=[$(t,null,"Paggio")].concat(o);return function(t,$super,o){var s=[$(t,$super,"CSS")].concat(o);return function(t,$super,o){var s,u,l=$(t,$super,"Font"),c=[l].concat(o);return l.$$prototype.definition=n,l.$attr_reader("name"),e.def(l,"$initialize",s=function(e){var t=this;return t.name=e,t.definition=r(c,"Definition").$new(),t.$font(a(["family"],{family:e}))},s.$$arity=1),e.def(l,"$method_missing",u=function(){var t,r=u.$$p,$=r||n,a=this;return r&&(u.$$p=null),r&&(u.$$p=null),t=e.slice.call(arguments,0,arguments.length),i(a.definition,"__send__",e.to_a(t),$.$to_proc())},u.$$arity=-1),n&&"method_missing"}(s[0],r(s,"BasicObject"),s)}(s[0],r(s,"BasicObject"),s)}(t[0],0,t)},Opal.modules["paggio/css/animation"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.klass,a=e.send;return e.add_stubs(["$attr_reader","$new","$__send__","$to_proc","$<<","$call","$%","$last"]),function(t,$super,i){var o=[$(t,null,"Paggio")].concat(i);return function(t,$super,i){var o=[$(t,$super,"CSS")].concat(i);return function(t,$super,i){var o,s,u,l,c,p=$(t,$super,"Animation"),d=[p].concat(i);return p.$$prototype.steps=n,function(t,$super,i){var o,s,u=$(t,$super,"Step"),l=[u].concat(i);u.$$prototype.definition=n,u.$attr_reader("value"),e.def(u,"$initialize",o=function(e){var t=this;return t.value=e,t.definition=r(l,"Definition").$new()},o.$$arity=1),e.def(u,"$method_missing",s=function(){var t,r=s.$$p,$=r||n,i=this;return r&&(s.$$p=null),r&&(s.$$p=null),t=e.slice.call(arguments,0,arguments.length),a(i.definition,"__send__",e.to_a(t),$.$to_proc())},s.$$arity=-1)}(d[0],r(d,"BasicObject"),d),p.$attr_reader("name","steps"),e.def(p,"$initialize",o=function(e){var t=this;return t.name=e,t.steps=[]},o.$$arity=1),e.def(p,"$step",s=function(e){var t=s.$$p,$=t||n,a=this;return t&&(s.$$p=null),t&&(s.$$p=null),a.steps["$<<"](r(d,"Step").$new(e)),$.$call()},s.$$arity=1),e.def(p,"$from",u=function(){var e=u.$$p,t=e||n,$=this;return e&&(u.$$p=null),e&&(u.$$p=null),$.steps["$<<"](r(d,"Step").$new((0)["$%"]())),t.$call()},u.$$arity=1),e.def(p,"$to",l=function(){var e=l.$$p,t=e||n,$=this;return e&&(l.$$p=null),e&&(l.$$p=null),$.steps["$<<"](r(d,"Step").$new(100["$%"]())),t.$call()},l.$$arity=1),e.def(p,"$method_missing",c=function(){var t,r=c.$$p,$=r||n,i=this;return r&&(c.$$p=null),r&&(c.$$p=null),t=e.slice.call(arguments,0,arguments.length),a(i.steps.$last(),"__send__",e.to_a(t),$.$to_proc())},c.$$arity=-1),n&&"method_missing"}(o[0],r(o,"BasicObject"),o)}(o[0],r(o,"BasicObject"),o)}(t[0],0,t)},Opal.modules["paggio/css"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var n=e.top,r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.klass,s=e.send,u=e.truthy,l=e.range;return e.add_stubs(["$require","$each","$start_with?","$+","$[]","$==","$attr_reader","$raise","$arity","$instance_exec","$to_proc","$call","$any?","$include?","$<<","$new","$selector","$pop","$method_missing","$__send__","$last"]),n.$require("paggio/css/unit"),n.$require("paggio/css/color"),n.$require("paggio/css/definition"),n.$require("paggio/css/rule"),n.$require("paggio/css/font"),n.$require("paggio/css/animation"),function(n,$super,r){var c=[o(n,null,"Paggio")].concat(r);return function(n,$super,r){var c,p,d,f,_,h,y,v=o(n,$super,"CSS"),m=[v].concat(r);v.$$prototype.media=v.$$prototype.current=v.$$prototype.fonts=v.$$prototype.animations=$,e.defs(v,"$selector",c=function(e){var n,r=this,a=$;return a="",s(e,"each",[],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=$),a=u(e["$start_with?"]("&"))?t(a,e["$[]"](l(1,-1,!1))):t(a,t(" ",e))}).$$s=r,n.$$arity=1,n)),a["$[]"](0)["$=="](" ")?a["$[]"](l(1,-1,!1)):a},c.$$arity=1),v.$attr_reader("rules","media","fonts","animations"),e.def(v,"$initialize",p=function(){var e=p.$$p,t=e||$,n=this;return e&&(p.$$p=null),e&&(p.$$p=null),u(t)||a("::","Kernel").$raise(a("::","ArgumentError"),"no block given"),n.selector=[],n.current=[],n.rules=[],n.fonts=[],n.animations=[],t.$arity()["$=="](0)?s(n,"instance_exec",[],t.$to_proc()):t.$call(n)},p.$$arity=0),e.def(v,"$rule",d=function(){var t,n,r,o=d.$$p,l=o||$,c=this;return o&&(d.$$p=null),o&&(d.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(l)?(u(s(t,"any?",[],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=$),e["$include?"](",")}).$$s=c,n.$$arity=1,n)))&&a("::","Kernel").$raise(a("::","ArgumentError"),"selectors cannot contain commas"),s(t,"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==t.selector&&(t.selector=$),null==t.current&&(t.current=$),null==t.media&&(t.media=$),null==t.rules&&(t.rules=$),null==e&&(e=$),t.selector["$<<"](e),t.current["$<<"](i(m,"Rule").$new(i(m,"CSS").$selector(t.selector),t.media)),l.$call(),t.selector.$pop(),t.rules["$<<"](t.current.$pop())}).$$s=c,r.$$arity=1,r))):$},d.$$arity=-1),e.def(v,"$media",f=function(t){var n,r,a=f.$$p,i=a||$,o=this,l=$;return a&&(f.$$p=null),a&&(f.$$p=null),n=e.slice.call(arguments,1,arguments.length),u(i)?(l=(r=[o.media,t])[0],o.media=r[1],i.$call(),o.media=l):s(o,"method_missing",["media",t].concat(e.to_a(n)))},f.$$arity=-2),e.def(v,"$font",_=function(t){var n,r=_.$$p,a=r||$,o=this;return r&&(_.$$p=null),r&&(_.$$p=null),n=e.slice.call(arguments,1,arguments.length),u(a)?(o.current["$<<"](i(m,"Font").$new(t)),a.$call(),o.fonts["$<<"](o.current.$pop())):s(o,"method_missing",["font",t].concat(e.to_a(n)))},_.$$arity=-2),e.def(v,"$animation",h=function(t){var n,r=h.$$p,a=r||$,o=this;return r&&(h.$$p=null),r&&(h.$$p=null),n=e.slice.call(arguments,1,arguments.length),u(a)?(o.current["$<<"](i(m,"Animation").$new(t)),a.$call(),o.animations["$<<"](o.current.$pop())):s(o,"method_missing",["animation",t].concat(e.to_a(n)))},h.$$arity=-2),e.def(v,"$method_missing",y=function(){var t,n=y.$$p,r=n||$,a=this;return n&&(y.$$p=null),n&&(y.$$p=null),t=e.slice.call(arguments,0,arguments.length),s(a.current.$last(),"__send__",e.to_a(t),r.$to_proc())},y.$$arity=-1)}(c[0],i(c,"BasicObject"),c),function(t,$super,n){var r,a=o(t,$super,"HTML"),l=[a].concat(n);return a.$$prototype.current=a.$$prototype.roots=$,e.def(a,"$style",r=function(){var e=r.$$p,t=e||$,n=this,a=$;return e&&(r.$$p=null),e&&(r.$$p=null),(u(a=n.current)?a:n.roots)["$<<"](s(i(l,"CSS"),"new",[],t.$to_proc()))},r.$$arity=0),$&&"style"}(c[0],i(c,"BasicObject"),c)}(r[0],0,r)},Opal.modules.stringio=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var a=[],i=e.nil,o=e.$$$,s=e.$$,u=e.klass,l=e.send2,c=e.find_super,p=e.alias,d=e.truthy;return e.add_stubs(["$new","$call","$close","$attr_accessor","$check_readable","$==","$length","$===","$>=","$raise","$>","$+","$-","$seek","$check_writable","$String","$[]","$eof?","$write","$read"]),function(a,$super,f){var _,h,y,v,m,g,b,w,k,O=u(a,$super,"StringIO"),E=[O].concat(f);return O.$$prototype.position=O.$$prototype.string=i,e.defs(O,"$open",_=function(e,t){var n=_.$$p,r=n||i,$=this,a=i,o=i;return n&&(_.$$p=null),n&&(_.$$p=null),null==e&&(e=""),null==t&&(t=i),a=$.$new(e,t),o=r.$call(a),a.$close(),o},_.$$arity=-1),O.$attr_accessor("string"),e.def(O,"$initialize",h=function(e,t){var n=h.$$p,r=this;return n&&(h.$$p=null),null==e&&(e=""),null==t&&(t="rw"),r.string=e,r.position=0,l(r,c(r,"initialize",h,!1,!0),"initialize",[i,t],null)},h.$$arity=-1),e.def(O,"$eof?",y=function(){var e=this;return e.$check_readable(),e.position["$=="](e.string.$length())},y.$$arity=0),p(O,"eof","eof?"),e.def(O,"$seek",v=function(e,a){var u=this,l=i;return null==a&&(a=o(s(E,"IO"),"SEEK_SET")),u.read_buffer="",l=a,o(s(E,"IO"),"SEEK_SET")["$==="](l)?(d(t(e,0))||u.$raise(o(s(E,"Errno"),"EINVAL")),u.position=e):o(s(E,"IO"),"SEEK_CUR")["$==="](l)?d(n(r(u.position,e),u.string.$length()))?u.position=u.string.$length():u.position=r(u.position,e):o(s(E,"IO"),"SEEK_END")["$==="](l)&&(d(n(e,u.string.$length()))?u.position=0:u.position=$(u.position,e)),0},v.$$arity=-2),e.def(O,"$tell",m=function(){return this.position},m.$$arity=0),p(O,"pos","tell"),p(O,"pos=","seek"),e.def(O,"$rewind",g=function(){return this.$seek(0)},g.$$arity=0),e.def(O,"$write",b=function(t){var n=this,a=i,o=i;return n.$check_writable(),n.read_buffer="",t=n.$String(t),n.string.$length()["$=="](n.position)?(n.string=r(n.string,t),n.position=r(n.position,t.$length())):(a=n.string["$[]"](e.Range.$new(0,$(n.position,1),!1)),o=n.string["$[]"](e.Range.$new(r(n.position,t.$length()),-1,!1)),n.string=r(r(a,t),o),n.position=r(n.position,t.$length()))},b.$$arity=1),e.def(O,"$read",w=function(t,$){var a=this,o=i,s=i;return null==t&&(t=i),null==$&&($=i),a.$check_readable(),d(a["$eof?"]())?i:(o=d(t)?(s=a.string["$[]"](a.position,t),a.position=r(a.position,t),d(n(a.position,a.string.$length()))&&(a.position=a.string.$length()),s):(s=a.string["$[]"](e.Range.$new(a.position,-1,!1)),a.position=a.string.$length(),s),d($)?$.$write(o):o)},w.$$arity=-1),e.def(O,"$sysread",k=function(e){var t=this;return t.$check_readable(),t.$read(e)},k.$$arity=1),p(O,"readpartial","read")}(a[0],s(a,"IO"),a)},Opal.modules["paggio/formatter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}var $=e.top,a=[],i=e.nil,o=e.$$$,s=e.$$,u=e.klass,l=e.truthy,c=e.hash2,p=e.send;return e.add_stubs(["$require","$[]=","$to_h","$-","$[]","$dup","$deep_merge!","$call","$replace","$===","$new","$merge","$each","$string","$indent?","$+","$lines","$puts","$*","$chomp","$print","$gsub","$to_s","$for","$version","$indent","$format","$instance_eval","$empty?","$map","$escape","$<<","$join","$include?","$downcase","$name","$value","$important","$fonts","$animations","$steps","$reverse","$rules","$media","$selector","$deindent"]),$.$require("stringio"),function($,$super,a){var d,f,_,h,y=u($,null,"Paggio"),v=[y].concat(a);return function($,$super,a){var o,d,f,_,h,y,v,m,g,b,w,k=u($,null,"Formatter"),O=[k].concat(a);k.$$prototype.options=k.$$prototype.io=i,e.defs(k,"$to_h",o=function(){var e=this,t=i;return null==e.formatters&&(e.formatters=i),e.formatters=l(t=e.formatters)?t:c([],{})},o.$$arity=0),e.defs(k,"$for",d=function(n){var r=d.$$p,$=r||i,a=this,o=i;return r&&(d.$$p=null),r&&(d.$$p=null),l($)?(o=[n,$],p(a.$to_h(),"[]=",e.to_a(o)),o[t(o.length,1)]):a.$to_h()["$[]"](n)},d.$$arity=1),e.defs(k,"$options",f=function(e){var t=f.$$p,n=t||i,r=i,$=i;return t&&(f.$$p=null),t&&(f.$$p=null),r=s(O,"OPTIONS").$dup(),s(O,"Utils")["$deep_merge!"](s(O,"OPTIONS"),e),$=n.$call(),s(O,"OPTIONS").$replace(r),$},f.$$arity=1),e.const_set(O[0],"OPTIONS",c(["indent"],{indent:c(["level","with"],{level:0,"with":"\t"})})),e.def(k,"$initialize",_=function(e,t){var n=this,r=i;return null==e&&(e=i),null==t&&(t=c([],{})),l(s(O,"Hash")["$==="](e))?(n.io=s(O,"StringIO").$new(),n.options=e):(n.io=l(r=e)?r:s(O,"StringIO").$new(),n.options=t),n.options=s(O,"OPTIONS").$merge(n.options)},_.$$arity=-1),e.def(k,"$format",h=function(t){var n,r=this;return function(){var $=e.new_brk();try{p(s(O,"Formatter").$to_h(),"each",[],((n=function(r,a){var o=null==n.$$s?this:n.$$s;if(null==r&&(r=i),null==a&&(a=i),!l(r["$==="](t)))return i;a.$call(o,t),e.brk(i,$)}).$$s=r,n.$$brk=$,n.$$arity=2,n))}catch(a){if(a===$)return a.$v;throw a}}(),r},h.$$arity=1),e.def(k,"$to_s",y=function(){return this.io.$string()},y.$$arity=0),e.def(k,"$indent?",v=function(){var t=v.$$p,n=this;t&&(v.$$p=null),t&&(v.$$p=null);try{return n.options["$[]"]("indent")["$[]"]("level")}catch(r){if(!e.rescue(r,[s(O,"StandardError")]))throw r;try{return!1}finally{e.pop_exception()}}},v.$$arity=0),e.def(k,"$indent",m=function(){var r=m.$$p,$=r||i,a=this,o=i,s=i,u=i,c=i;return r&&(m.$$p=null),r&&(m.$$p=null),l(a["$indent?"]())?l($)?(s=["level",n((o=a.options["$[]"]("indent"))["$[]"]("level"),1)],p(o,"[]=",e.to_a(s)),s[t(s.length,1)],$.$call(),s=["level",t((u=a.options["$[]"]("indent"))["$[]"]("level"),1)],p(u,"[]=",e.to_a(s)),s[t(s.length,1)]):(s=["level",n((c=a.options["$[]"]("indent"))["$[]"]("level"),1)],p(c,"[]=",e.to_a(s)),s[t(s.length,1)]):l($)?$.$call():i},m.$$arity=0),e.def(k,"$deindent",g=function(){var n=this,r=i,$=i;return l(n["$indent?"]())?($=["level",t((r=n.options["$[]"]("indent"))["$[]"]("level"),1)],p(r,"[]=",e.to_a($)),$[t($.length,1)]):i},g.$$arity=0),e.def(k,"$print",b=function(e){var t,n=this,$=i;return l($=n["$indent?"]())?p(e.$lines(),"each",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==n.io&&(n.io=i),null==n.options&&(n.options=i),null==e&&(e=i),n.io.$puts(""+r(n.options["$[]"]("indent")["$[]"]("with"),$)+e.$chomp())}).$$s=n,t.$$arity=1,t)):n.io.$print(e)},b.$$arity=1),e.def(k,"$escape",w=function(e){return e.$to_s().$gsub(/["><']|&(?!([a-zA-Z]+|(#\d+));)/,c(["&",">","<",'"',"'"],{"&":"&",">":">","<":"<",'"':""","'":"'"}))},w.$$arity=1)}(v[0],0,v),p(s(v,"Formatter"),"for",[s(v,"HTML")],((d=function(e,t){var n,r=null==d.$$s?this:d.$$s,$=i;return null==e&&(e=i),null==t&&(t=i),$=t.$version(),5["$==="]($)&&e.$print(""),e.$print(""),p(e,"indent",[],((n=function(){var r,$=null==n.$$s?this:n.$$s;return p(t,"each",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=i),e.$format(t)}).$$s=$,r.$$arity=1,r))}).$$s=r,n.$$arity=0,n)),e.$print("")}).$$s=y,d.$$arity=2,d)), +p(s(v,"Formatter"),"for",[o(s(v,"HTML"),"Element")],((f=function(t,n){var r,$,a,o,u,c=null==f.$$s?this:f.$$s,d=i,_=i,h=i,y=i,m=i;return null==t&&(t=i),null==n&&(n=i),$=p(n,"instance_eval",[],((a=function(){var e=null==a.$$s?this:a.$$s;return null==e.name&&(e.name=i),null==e.attributes&&(e.attributes=i),null==e.class_names&&(e.class_names=i),[e.name,e.attributes,e.class_names]}).$$s=c,a.$$arity=0,a)),d=null==(r=e.to_ary($))[0]?i:r[0],_=null==r[1]?i:r[1],h=null==r[2]?i:r[2],l(l(y=_["$empty?"]())?h["$empty?"]():y)?t.$print("<"+d+">"):(m=p(_,"map",[],((o=function(e,n){null==o.$$s||o.$$s;return null==e&&(e=i),null==n&&(n=i),t.$escape(e)+'="'+t.$escape(n)+'"'}).$$s=c,o.$$arity=2,o)),l(h["$empty?"]())||m["$<<"]('class="'+t.$escape(h.$join(" "))+'"'),t.$print("<"+d+" "+m.$join(" ")+">")),l(["area","base","br","col","embed","hr","img","input","keygen","link","menuitem","meta","param","source","track","wbr"]["$include?"](d.$to_s().$downcase()))?i:(p(t,"indent",[],((u=function(){var e,r,$=null==u.$$s?this:u.$$s,a=i;return l(a=p(n,"instance_eval",[],((e=function(){var t=null==e.$$s?this:e.$$s;return null==t.inner_html&&(t.inner_html=i),t.inner_html}).$$s=$,e.$$arity=0,e)))?t.$print(a):p(n,"each",[],((r=function(e){var n,$=null==r.$$s?this:r.$$s,a=i;return null==e&&(e=i),a=e,s(v,"String")["$==="](a)?t.$print(t.$escape(e)):s(v,"CSS")["$==="](a)?(t.$print("")):t.$format(e)}).$$s=$,r.$$arity=1,r))}).$$s=c,u.$$arity=0,u)),t.$print(""))}).$$s=y,f.$$arity=2,f)),p(s(v,"Formatter"),"for",[o(o(s(v,"CSS"),"Definition"),"Style")],((_=function(e,t){null==_.$$s||_.$$s;return null==e&&(e=i),null==t&&(t=i),e.$print(t.$name()+": "+t.$value()+(l(t.$important())?" !important":i)+";")}).$$s=y,_.$$arity=2,_)),p(s(v,"Formatter"),"for",[s(v,"CSS")],((h=function(e,t){var n,r,$,a=null==h.$$s?this:h.$$s;return null==e&&(e=i),null==t&&(t=i),p(t.$fonts(),"each",[],((n=function(t){var r,$=null==n.$$s?this:n.$$s;return null==t&&(t=i),e.$print("@font-face {"),p(e,"indent",[],((r=function(){var n,$=null==r.$$s?this:r.$$s;return p(t,"each",[],((n=function(t){null==n.$$s||n.$$s;return null==t&&(t=i),e.$format(t)}).$$s=$,n.$$arity=1,n))}).$$s=$,r.$$arity=0,r)),e.$print("}")}).$$s=a,n.$$arity=1,n)),p(t.$animations(),"each",[],((r=function(t){var n,$=null==r.$$s?this:r.$$s;return null==t&&(t=i),p(["","-webkit-","-moz-","-o-"],"each",[],((n=function(r){var $,a=null==n.$$s?this:n.$$s;return null==r&&(r=i),e.$print("@"+r+"keyframes "+t.$name()+" {"),p(t.$steps(),"each",[],(($=function(t){var n,r=null==$.$$s?this:$.$$s;return null==t&&(t=i),e.$print(t.$value()+" {"),p(t,"each",[],((n=function(t){null==n.$$s||n.$$s;return null==t&&(t=i),e.$format(t)}).$$s=r,n.$$arity=1,n)),e.$print("}")}).$$s=a,$.$$arity=1,$)),e.$print("}")}).$$s=$,n.$$arity=1,n))}).$$s=a,r.$$arity=1,r)),p(t.$rules().$reverse(),"each",[],(($=function(t){var n,r=null==$.$$s?this:$.$$s,a=i;return null==t&&(t=i),l(t["$empty?"]())?i:(l(a=t.$media())&&(e.$print("@media "+a+" {"),e.$indent()),e.$print(t.$selector()+" {"),p(e,"indent",[],((n=function(){var r,$=null==n.$$s?this:n.$$s;return p(t,"each",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=i),e.$format(t)}).$$s=$,r.$$arity=1,r))}).$$s=r,n.$$arity=0,n)),e.$print("}"),l(t.$media())?(e.$print("}"),e.$deindent()):i)}).$$s=a,$.$$arity=1,$))}).$$s=y,h.$$arity=2,h))}(a[0],0,a)},Opal.modules.paggio=function(e){var t=e.top,n=[],r=e.nil,$=(e.$$$,e.$$),a=e.klass,i=e.send,o=e.hash2;return e.add_stubs(["$require","$options","$to_proc","$to_s","$format","$new","$tap","$each"]),t.$require("paggio/utils"),t.$require("paggio/html"),t.$require("paggio/css"),t.$require("paggio/formatter"),function(t,$super,n){var s,u,l,c,p,d=a(t,null,"Paggio"),f=[d].concat(n);return e.defs(d,"$options",s=function(e){var t=s.$$p,n=t||r;return t&&(s.$$p=null),t&&(s.$$p=null),i($(f,"Formatter"),"options",[e],n.$to_proc())},s.$$arity=1),e.defs(d,"$indent",u=function(e){var t=u.$$p,n=t||r,$=this;return t&&(u.$$p=null),t&&(u.$$p=null),i($,"options",[o(["indent"],{indent:e})],n.$to_proc())},u.$$arity=1),e.defs(d,"$css",l=function(){var t,n=l.$$p,a=n||r;return n&&(l.$$p=null),n&&(l.$$p=null),t=e.slice.call(arguments,0,arguments.length),$(f,"Formatter").$new().$format(i($(f,"CSS"),"new",e.to_a(t),a.$to_proc())).$to_s()},l.$$arity=-1),e.defs(d,"$html",c=function(){var t,n=c.$$p,a=n||r;return n&&(c.$$p=null),n&&(c.$$p=null),t=e.slice.call(arguments,0,arguments.length),$(f,"Formatter").$new().$format(i($(f,"HTML"),"new",e.to_a(t),a.$to_proc())).$to_s()},c.$$arity=-1),e.defs(d,"$html!",p=function(){var e,t=p.$$p,n=t||r,a=this;return t&&(p.$$p=null),t&&(p.$$p=null),i($(f,"Formatter").$new(),"tap",[],(e=function(t){var a,o=null==e.$$s?this:e.$$s;return null==t&&(t=r),i(i($(f,"HTML"),"new",[],n.$to_proc()),"each",[],((a=function(e){null==a.$$s||a.$$s;return null==e&&(e=r),t.$format(e)}).$$s=o,a.$$arity=1,a))},e.$$s=a,e.$$arity=1,e)).$to_s()},p.$$arity=0),r&&"html!"}(n[0],0,n)},Opal.modules["browser/version"]=function(e){e.top;var t=[],n=(e.nil,e.$$$,e.$$,e.module);return function(t,r){var $=[n(t,"Browser")].concat(r);return e.const_set($[0],"VERSION","0.2.0")}(t[0],t)},Opal.modules["browser/utils"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass,i=e.send;return e.add_stubs(["$new","$encode_uri","$to_s","$encode_uri_component","$[]","$map","$split","$decode_uri_component","$join"]),function(t,n){var a=[$(t,"Browser")].concat(n);e.const_set(a[0],"Size",r(a,"Struct").$new("width","height")),e.const_set(a[0],"Position",r(a,"Struct").$new("x","y"))}(t[0],t),function(t,$super,n){var r,$,i=a(t,null,"Object");[i].concat(n);e.def(i,"$encode_uri",r=function(){return this.$to_s().$encode_uri()},r.$$arity=0),e.def(i,"$encode_uri_component",$=function(){return this.$to_s().$encode_uri_component()},$.$$arity=0)}(t[0],0,t),function(t,$super,n){var r,$,i,o,s=a(t,null,"String");[s].concat(n);e.def(s,"$encode_uri_component",r=function(){return encodeURIComponent(this)},r.$$arity=0),e.def(s,"$encode_uri",$=function(){return encodeURI(this)},$.$$arity=0),e.def(s,"$decode_uri_component",i=function(){return decodeURIComponent(this)},i.$$arity=0),e.def(s,"$decode_uri",o=function(){return decodeURI(this)},o.$$arity=0)}(t[0],0,t),function(t,$super,r){var $,o,s=a(t,null,"Hash");[s].concat(r);return e.defs(s,"$decode_uri",$=function(t){var r,$=this;return $["$[]"](i(t.$split("&"),"map",[],((r=function(t){null==r.$$s||r.$$s;var $,a,i=n,o=n;return null==t&&(t=n),a=t.$split("="),i=null==($=e.to_ary(a))[0]?n:$[0],o=null==$[1]?n:$[1],[i.$decode_uri_component(),o.$decode_uri_component()]}).$$s=$,r.$$arity=1,r)))},$.$$arity=1),e.def(s,"$encode_uri",o=function(){var e,t=this;return i(t,"map",[],(e=function(t,r){null==e.$$s||e.$$s;return null==t&&(t=n),null==r&&(r=n),t.$to_s().$encode_uri_component()+"="+r.$to_s().$encode_uri_component()},e.$$s=t,e.$$arity=2,e)).$join("&")},o.$$arity=0),n&&"encode_uri"}(t[0],0,t)},Opal.modules["browser/support"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.truthy,i=e.gvars;return e.add_stubs(["$downcase","$===","$!","$supports?"]),e.const_set(t[0],"BROWSER_ENGINE",function(){try{return/MSIE|WebKit|Presto|Gecko/.exec(navigator.userAgent)[0].$downcase()}catch(n){if(!e.rescue(n,[r(t,"StandardError")]))throw n;try{return"unknown"}finally{e.pop_exception()}}}()),function(t,o){var s,u,l=$(t,"Browser"),c=[l].concat(o);return l.support={},e.defs(l,"$supports?",s=function(t){var $,o=this,s=n,u=n,l=n;return null==o.support&&(o.support=n),a("undefined"!=typeof o.support[t])?o.support[t]:(s=function(){if(u=t,"MutationObserver"["$==="](u))return"undefined"!=typeof window.MutationObserver;if("WebSocket"["$==="](u))return"undefined"!=typeof window.WebSocket;if("EventSource"["$==="](u))return"undefined"!=typeof window.EventSource;if("XHR"["$==="](u))return"undefined"!=typeof window.XMLHttpRequest;if("ActiveX"["$==="](u))return"undefined"!=typeof window.ActiveXObject;if("WebSQL"["$==="](u))return"undefined"!=typeof window.openDatabase;if("Query.css"["$==="](u))return"undefined"!=typeof document.querySelectorAll;if("Query.xpath"["$==="](u))return"undefined"!=typeof document.evaluate;if("Storage.local"["$==="](u))return"undefined"!=typeof window.localStorage;if("Storage.global"["$==="](u))return"undefined"!=typeof window.globalStorage;if("Storage.session"["$==="](u))return"undefined"!=typeof window.sessionStorage;if("Immediate"["$==="](u))return"undefined"!=typeof window.setImmediate;if("Immediate (Internet Explorer)"["$==="](u))return"undefined"!=typeof window.msSetImmediate;if("Immediate (Firefox)"["$==="](u))return"undefined"!=typeof window.mozSetImmediate;if("Immediate (Opera)"["$==="](u))return"undefined"!=typeof window.oSetImmediate;if("Immediate (Chrome)"["$==="](u)||"setImmediate (Safari)"["$==="](u))return"undefined"!=typeof window.webkitSetImmediate;if("CSS.computed"["$==="](u))return"undefined"!=typeof window.getComputedStyle;if("CSS.current"["$==="](u))return"undefined"!=typeof document.documentElement.currentStyle;if("Window.send"["$==="](u))return"undefined"!=typeof window.postMessage;if("Window.send (Asynchronous)"["$==="](u)){if(a(a(l="undefined"!=typeof window.postMessage)?("undefined"!=typeof window.importScripts)["$!"]():l)){var s=!0,p=window.onmessage;return window.onmessage=function(){s=!1},window.postMessage("","*"),window.onmessage=p,s}return n}if("Window.send (Synchronous)"["$==="](u))return o["$supports?"]("Window.send (Asynchronous)")["$!"]();if("Window.innerSize"["$==="](u))return"undefined"!=typeof window.innerHeight;if("Window.outerSize"["$==="](u))return"undefined"!=typeof window.outerHeight;if("Window.scroll"["$==="](u))return"undefined"!=typeof document.documentElement.scrollLeft;if("Window.pageOffset"["$==="](u))return"undefined"!=typeof window.pageXOffset;var d,f;if("Attr.isId"["$==="](u))return(d=document.createElement("div")).setAttribute("id","xxxxxxxxxxxxx"),"undefined"!=typeof d.attributes.id.isId;if("Element.addBehavior"["$==="](u))return"undefined"!=typeof document.documentElement.addBehavior;if("Element.className"["$==="](u))return(d=document.createElement("div")).setAttribute("className","x"),"x"===d.className;if("Element.class"["$==="](u))return(d=document.createElement("div")).setAttribute("class","x"),"x"===d.className;if("Element.for"["$==="](u))return(f=document.createElement("label")).setAttribute("for","x"),"x"===f.htmlFor;if("Element.htmlFor"["$==="](u))return(f=document.createElement("label")).setAttribute("htmlFor","x"),"x"===f.htmlFor;if("Element.clientSize"["$==="](u))return"undefined"!=typeof document.documentElement.clientHeight;if("Element.scroll"["$==="](u))return"undefined"!=typeof document.documentElement.scrollLeft;if("Element.textContent"["$==="](u))return"undefined"!=typeof document.documentElement.textContent;if("Element.innerText"["$==="](u))return"undefined"!=typeof document.documentElement.innerText;if("Element.matches"["$==="](u))return"undefined"!=typeof document.documentElement.matches;if("Element.matches (Internet Explorer)"["$==="](u))return"undefined"!=typeof document.documentElement.msMatchesSelector;if("Element.matches (Firefox)"["$==="](u))return"undefined"!=typeof document.documentElement.mozMatchesSelector;if("Element.matches (Opera)"["$==="](u))return"undefined"!=typeof document.documentElement.oMatchesSelector;if("Element.matches (Chrome)"["$==="](u)||"Element.matches (Safari)"["$==="](u))return"undefined"!=typeof document.documentElement.webkitMatchesSelector;if("Element.getBoundingClientRect"["$==="](u))return"undefined"!=typeof document.documentElement.getBoundingClientRect;if("Event.readystatechange"["$==="](u))return"onreadystatechange"in window.document.createElement("script");if(!"Event.constructor"["$==="](u))return"Event.create"["$==="](u)?"undefined"!=typeof document.createEvent:"Event.createObject"["$==="](u)?"undefined"!=typeof document.createEventObject:"Event.addListener"["$==="](u)?"undefined"!=typeof document.addEventListener:"Event.attach"["$==="](u)?"undefined"!=typeof document.attachEvent:"Event.removeListener"["$==="](u)?"undefined"!=typeof document.removeEventListener:"Event.detach"["$==="](u)?"undefined"!=typeof document.detachEvent:"Event.dispatch"["$==="](u)?"undefined"!=typeof document.dispatchEvent:"Event.fire"["$==="](u)?"undefined"!=typeof document.fireEvent:/^Event\.([A-Z].*?)$/["$==="](u)?(($=i["~"])===n?n:$["$[]"](1))+"Event"in window:"Document.view"["$==="](u)?"undefined"!=typeof document.defaultView:"Document.window"["$==="](u)?"undefined"!=typeof document.parentWindow:"History"["$==="](u)?"undefined"!=typeof window.history.pushState:"History.state"["$==="](u)?"undefined"!=typeof window.history.state:"Animation.request"["$==="](u)?"undefined"!=typeof window.requestAnimationFrame:"Animation.request (Internet Explorer)"["$==="](u)?"undefined"!=typeof window.msRequestAnimationFrame:"Animation.request (Firefox)"["$==="](u)?"undefined"!=typeof window.mozRequestAnimationFrame:"Animation.request (Opera)"["$==="](u)?"undefined"!=typeof window.oRequestAnimationFrame:"Animation.request (Chrome)"["$==="](u)||"Animation.request (Safari)"["$==="](u)?"undefined"!=typeof window.webkitRequestAnimationFrame:"Animation.cancel"["$==="](u)?"undefined"!=typeof window.cancelAnimationFrame:"Animation.cancel (Internet Explorer)"["$==="](u)?"undefined"!=typeof window.msCancelAnimationFrame:"Animation.cancel (Firefox)"["$==="](u)?"undefined"!=typeof window.mozCancelAnimationFrame:"Animation.cancel (Opera)"["$==="](u)?"undefined"!=typeof window.oCancelAnimationFrame:"Animation.cancel (Chrome)"["$==="](u)||"Animation.cancel (Safari)"["$==="](u)?"undefined"!=typeof window.webkitCancelAnimationFrame:"Animation.cancelRequest"["$==="](u)?"undefined"!=typeof window.cancelRequestAnimationFrame:"Animation.cancelRequest (Internet Explorer)"["$==="](u)?"undefined"!=typeof window.msCancelRequestAnimationFrame:"Animation.cancelRequest (Firefox)"["$==="](u)?"undefined"!=typeof window.mozCancelRequestAnimationFrame:"Animation.cancelRequest (Opera)"["$==="](u)?"undefined"!=typeof window.oCancelRequestAnimationFrame:"Animation.cancelRequest (Chrome)"["$==="](u)||"Animation.cancelRequest (Safari)"["$==="](u)?"undefined"!=typeof window.webkitCancelRequestAnimationFrame:n;try{return new MouseEvent("click"),!0}catch(_){if(!e.rescue(_,[r(c,"StandardError")]))throw _;try{return!1}finally{e.pop_exception()}}}(),o.support[t]=s)},s.$$arity=1),e.defs(l,"$loaded?",u=function(e){var t=n;return t=e,"Sizzle"["$==="](t)?"undefined"!=typeof window.Sizzle:"wicked-good-xpath"["$==="](t)?"undefined"!=typeof window.wgxpath:n},u.$$arity=1),n&&"loaded?"}(t[0],t)},Opal.modules["browser/event/base"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.send2,u=e.find_super,l=e.truthy,c=e.send,p=e.lambda,d=e.hash2;return e.add_stubs(["$include","$call","$to_n","$<<","$converters","$native?","$each","$instance_eval","$register","$to_proc","$attr_reader","$new","$stopped?","$arguments","$!","$prevented?","$class_for","$off","$target","$[]","$delegated","$delete","$last","$empty?","$first","$raise","$name_for","$handlers","$[]=","$-","$include?","$on!","$delegate","$callback=","$on","$handlers=","$push","$callbacks","$attach","$attach!","$supports?","$name","$==","$event","$===","$warn","$detach","$gsub","$delete_if","$=~","$clear","$none?","$is_a?","$create","$dispatch","$trigger","$bubbles=","$private","$nil?","$dup","$on=","$parent"]),function(n,f){var _=[i(n,"Browser")].concat(f);return function(n,$super,f){var _=o(n,null,"Event"),h=[_].concat(f);return _.$include(a(h,"Native")),function(t,$super,n){var $,i,c,p=o(t,null,"Definition"),d=[p].concat(n);p.$$prototype.native=r,p.$include(a(d,"Native")),e.defs(p,"$new",$=function(){var e=$.$$p,t=e||r,n=this,a=r;return e&&($.$$p=null),e&&($.$$p=null),a=s(n,u(n,"new",$,!1,!0),"new",[{bubbles:!0,cancelable:!0}],null),l(t)&&t.$call(a),a.$to_n()},$.$$arity=0),e.def(p,"$bubbles=",i=function(e){return this.native.bubbles=e},i.$$arity=1),e.def(p,"$cancelable=",c=function(e){return this.native.cancelable=e},c.$$arity=1)}(h[0],0,h),function(n,s){var u,f,_,h,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I,D,H,A,j,M=i(n,"Target"),R=[M].concat(s);return e.defs(M,"$converters",u=function(){var e=this,t=r;return null==e.converters&&(e.converters=r),e.converters=l(t=e.converters)?t:[]},u.$$arity=0),e.defs(M,"$register",f=function(){var e=f.$$p,t=e||r,n=this;return e&&(f.$$p=null),e&&(f.$$p=null),n.$converters()["$<<"](t)},f.$$arity=0),e.defs(M,"$convert",_=function(t){try{var n,$=this;return l($["$native?"](t))?(c($.$converters(),"each",[],((n=function($){null==n.$$s||n.$$s;var a=r;if(null==$&&($=r),!l(a=$.$call(t)))return r;e.ret(a)}).$$s=$,n.$$arity=1,n)),r):t}catch(a){if(a===e.returner)return a.$v;throw a}},_.$$arity=1),e.defs(M,"$included",h=function(t){var n,i=this;return c(t,"instance_eval",[],((n=function(){var t,i=null==n.$$s?this:n.$$s;return e.defs(i,"$target",t=function(){var e=t.$$p,n=e||r;return e&&(t.$$p=null),e&&(t.$$p=null),c($(a(R,"Event"),"Target"),"register",[],n.$to_proc())},t.$$arity=0),r&&"target"}).$$s=i,n.$$arity=0,n))},h.$$arity=1),function(t,$super,n){var $,i,s,u,d,f=o(t,null,"Callback"),_=[f].concat(n);f.$$prototype.proc=f.$$prototype.name=r,f.$attr_reader("target","name","selector"),e.def(f,"$initialize",$=function(e,t,n){var a=$.$$p,i=a||r,o=this;return a&&($.$$p=null),a&&($.$$p=null),null==n&&(n=r),o.target=e,o.name=t,o.selector=n,o.block=i},$.$$arity=-3),e.def(f,"$call",i=function(e){return this.$to_proc().$call(e)},i.$$arity=1),e.def(f,"$to_proc",s=function(){var t,n=this,$=r;return n.proc=l($=n.proc)?$:p(((t=function(n){var $=null==t.$$s?this:t.$$s;return null==$.block&&($.block=r),null==n&&(n=r),n.currentTarget||(n.currentTarget=$.target.native),n=a(_,"Event").$new(n,$),l(n["$stopped?"]())||c($.block,"call",[n].concat(e.to_a(n.$arguments()))),n["$prevented?"]()["$!"]()}).$$s=n,t.$$arity=1,t))},s.$$arity=0),e.def(f,"$event",u=function(){var e=this;return a(_,"Event").$class_for(e.name)},u.$$arity=0),e.def(f,"$off",d=function(){var e=this;return e.$target().$off(e)},d.$$arity=0)}(R[0],0,R),function(t,$super,n){var $,a,i=o(t,null,"Delegate");[i].concat(n);i.$$prototype.target=i.$$prototype.name=i.$$prototype.pair=r,e.def(i,"$initialize",$=function(e,t,n){var r=this;return r.target=e,r.name=t,r.pair=n},$.$$arity=3),e.def(i,"$off",a=function(){var e=this,t=r;return(t=e.target.$delegated()["$[]"](e.name)).$last().$delete(e.pair),l(t.$last()["$empty?"]())?(t.$first().$off(),t.$delete(e.name)):r},a.$$arity=0)}(R[0],0,R),e.const_set(R[0],"Delegates",a(R,"Struct").$new("callback","handlers")),e.def(M,"$on",y=function(n,$){var i,o,s=y.$$p,u=s||r,p=this,d=r,f=r,_=r,h=r;return s&&(y.$$p=null),s&&(y.$$p=null),null==$&&($=r),l(u)||p.$raise(a(R,"ArgumentError"),"no block has been given"),n=a(R,"Event").$name_for(n),l($)?l(d=p.$delegated()["$[]"](n))?(f=[$,u],d.$handlers()["$<<"](f),a(R,"Delegate").$new(p,n,f)):(_=[n,a(R,"Delegates").$new()],c(p.$delegated(),"[]=",e.to_a(_)),d=_[t(_.length,1)],l(["blur","focus"]["$include?"](n))?(_=[c(p,"on!",[n],(i=function(e){var t=null==i.$$s?this:i.$$s;return null==e&&(e=r),t.$delegate(d,e)},i.$$s=p,i.$$arity=1,i))],c(d,"callback=",e.to_a(_)),_[t(_.length,1)]):(_=[c(p,"on",[n],(o=function(e){var t=null==o.$$s?this:o.$$s;return null==e&&(e=r),t.$delegate(d,e)},o.$$s=p,o.$$arity=1,o))],c(d,"callback=",e.to_a(_)),_[t(_.length,1)]),_=[[f=[$,u]]],c(d,"handlers=",e.to_a(_)),_[t(_.length,1)],a(R,"Delegate").$new(p,n,f)):(h=c(a(R,"Callback"),"new",[p,n,$],u.$to_proc()),p.$callbacks().$push(h),p.$attach(h))},y.$$arity=-2),e.def(M,"$on!",v=function(e){var t=v.$$p,n=t||r,$=this,i=r;return t&&(v.$$p=null),t&&(v.$$p=null),l(n)||$.$raise(a(R,"ArgumentError"),"no block has been given"),e=a(R,"Event").$name_for(e),i=c(a(R,"Callback"),"new",[$,e],n.$to_proc()),$.$callbacks().$push(i),$["$attach!"](i)},v.$$arity=1),l(a(R,"Browser")["$supports?"]("Event.addListener"))?(e.def(M,"$attach",m=function(e){var t=this;return null==t.native&&(t.native=r),t.native.addEventListener(e.$name(),e.$to_proc()),e},m.$$arity=1),e.def(M,"$attach!",g=function(e){var t=this;return null==t.native&&(t.native=r),t.native.addEventListener(e.$name(),e.$to_proc(),!0),e},g.$$arity=1)):l(a(R,"Browser")["$supports?"]("Event.attach"))?(e.def(M,"$attach",b=function(e){var t=this;return null==t.native&&(t.native=r),e.$event()["$=="](a(R,"Custom"))?t.native.$custom||(t.native.$custom=function(e){for(var n=0,r=t.native.$callbacks.length;nt:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var $=[],a=e.nil,i=(e.$$$,e.$$),o=e.klass,s=e.hash2,u=e.truthy,l=e.send,c=e.range,p=e.send2,d=e.find_super,f=e.alias;return e.add_stubs(["$each_pair","$new_ostruct_member","$[]=","$-","$[]","$to_sym","$>","$length","$raise","$new","$end_with?","$!=","$chomp","$to_s","$key?","$enum_for","$is_a?","$==","$instance_variable_get","$===","$eql?","$dup","$to_n","$hash","$attr_reader","$__send__","$singleton_class","$delete","$respond_to?","$define_singleton_method","$__id__","$class","$any?","$+","$join","$map","$inspect"]),function($,$super,_){var h,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I=o($,null,"OpenStruct"),D=[I].concat(_);return I.$$prototype.table=a,e.def(I,"$initialize",h=function(n){var r,$=this;return null==n&&(n=a),$.table=s([],{}),u(n)?l(n,"each_pair",[],((r=function(n,$){var i=null==r.$$s?this:r.$$s,o=a;return null==i.table&&(i.table=a),null==n&&(n=a),null==$&&($=a),o=[i.$new_ostruct_member(n),$],l(i.table,"[]=",e.to_a(o)),o[t(o.length,1)]}).$$s=$,r.$$arity=2,r)):a},h.$$arity=-1),e.def(I,"$[]",y=function(e){return this.table["$[]"](e.$to_sym())},y.$$arity=1),e.def(I,"$[]=",v=function(n,r){var $=this,i=a;return i=[$.$new_ostruct_member(n),r],l($.table,"[]=",e.to_a(i)),i[t(i.length,1)]},v.$$arity=2),e.def(I,"$method_missing",m=function(r){var $,o,s=this,p=a;return $=e.slice.call(arguments,1,arguments.length),u(n((o=$).$length(),2))&&s.$raise(i(D,"NoMethodError").$new("undefined method `"+r+"' for #",r)),u(r["$end_with?"]("="))?(u(o.$length()["$!="](1))&&s.$raise(i(D,"ArgumentError"),"wrong number of arguments (0 for 1)"),p=[s.$new_ostruct_member(r["$[]"](c(0,-2,!1))),o["$[]"](0)],l(s.table,"[]=",e.to_a(p)),p[t(p.length,1)]):s.table["$[]"](r.$to_sym())},m.$$arity=-2),e.def(I,"$respond_to_missing?",g=function(e,t){var n,r=g.$$p,$=this,i=a,o=a;return r&&(g.$$p=null),null==t&&(t=!1),i=e.$to_s().$chomp("=").$to_sym(),u(o=(n=$.table)===a||null==n?a:l(n,"key?",[i]))?o:p($,d($,"respond_to_missing?",g,!1,!0),"respond_to_missing?",[e,t],r)},g.$$arity=-2),e.def(I,"$each_pair",b=function(){var t,n=b.$$p,r=n||a,$=this;return n&&(b.$$p=null),r===a?$.$enum_for("each_pair"):l($.table,"each_pair",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),e.yield1(r,n)}).$$s=$,t.$$arity=1,t))},b.$$arity=0),e.def(I,"$==",w=function(e){var t=this +;return!!u(e["$is_a?"](i(D,"OpenStruct")))&&t.table["$=="](e.$instance_variable_get("@table"))},w.$$arity=1),e.def(I,"$===",k=function(e){var t=this;return!!u(e["$is_a?"](i(D,"OpenStruct")))&&t.table["$==="](e.$instance_variable_get("@table"))},k.$$arity=1),e.def(I,"$eql?",O=function(e){var t=this;return!!u(e["$is_a?"](i(D,"OpenStruct")))&&t.table["$eql?"](e.$instance_variable_get("@table"))},O.$$arity=1),e.def(I,"$to_h",E=function(){return this.table.$dup()},E.$$arity=0),e.def(I,"$to_n",x=function(){return this.table.$to_n()},x.$$arity=0),e.def(I,"$hash",S=function(){return this.table.$hash()},S.$$arity=0),I.$attr_reader("table"),e.def(I,"$delete_field",q=function(t){var n=this,r=a;r=t.$to_sym();try{n.$singleton_class().$__send__("remove_method",r,r+"=")}catch($){if(!e.rescue($,[i(D,"NameError")]))throw $;e.pop_exception()}return n.table.$delete(r)},q.$$arity=1),e.def(I,"$new_ostruct_member",N=function(n){var r,$,i=this;return n=n.$to_sym(),u(i["$respond_to?"](n))||(l(i,"define_singleton_method",[n],((r=function(){var e=null==r.$$s?this:r.$$s;return null==e.table&&(e.table=a),e.table["$[]"](n)}).$$s=i,r.$$arity=0,r)),l(i,"define_singleton_method",[n+"="],(($=function(r){var i=null==$.$$s?this:$.$$s,o=a;return null==i.table&&(i.table=a),null==r&&(r=a),o=[n,r],l(i.table,"[]=",e.to_a(o)),o[t(o.length,1)]}).$$s=i,$.$$arity=1,$))),n},N.$$arity=1),e.def(I,"$inspect",C=function(){var e,t=this,n=a,$=z===undefined,i=t.$__id__();return function(){try{return n="#<"+t.$class(),$&&(z={}),z.hasOwnProperty(i)?n+" ...>":(z[i]=!0,u(t.table["$any?"]())&&(n=r(n," ")),n=r(n=r(n,l(t.$each_pair(),"map",[],(e=function(t,n){null==e.$$s||e.$$s;return null==t&&(t=a),null==n&&(n=a),t+"="+n.$inspect()},e.$$s=t,e.$$arity=2,e)).$join(", ")),">"))}finally{$&&(z=undefined)}}()},C.$$arity=0),f(I,"to_s","inspect")}($[0],0,$)},Opal.modules["browser/event/custom"]=function(e){var t=e.top,n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.klass,o=e.truthy,s=e.range,u=e.send2,l=e.find_super;return e.add_stubs(["$require","$supports?","$end_with?","$[]","$to_n","$merge!","$Native","$new","$has_key?"]),t.$require("ostruct"),function(t,n){var c=[a(t,"Browser")].concat(n);return function(t,$super,n){var a=[i(t,null,"Event")].concat(n);return function(t,$super,n){var a,c,p,d,f,_,h,y=i(t,$super,"Custom"),v=[y].concat(n);return y.$$prototype.detail=r,e.defs(y,"$supported?",a=function(){return $(v,"Browser")["$supports?"]("Event.Custom")},a.$$arity=0),function(t,$super,n){var $,a=i(t,$super,"Definition");[a].concat(n);a.$$prototype.native=r,e.def(a,"$method_missing",$=function(e,t){var n=this;return o(e["$end_with?"]("="))?n.native[e["$[]"](s(0,-2,!1))]=t:r},$.$$arity=2)}(v[0],$(v,"Definition"),v),o($(v,"Browser")["$supports?"]("Event.constructor"))?e.defs(y,"$construct",c=function(e,t){new CustomEvent(e,{bubbles:t.bubbles,cancelable:t.cancelable,detail:t})},c.$$arity=2):o($(v,"Browser")["$supports?"]("Event.create"))?e.defs(y,"$construct",p=function(e,t){var n=document.createEvent("CustomEvent");return n.initCustomEvent(e,t.bubbles,t.cancelable,t),n},p.$$arity=2):o($(v,"Browser")["$supports?"]("Event.createObject"))?e.defs(y,"$construct",d=function(e,t){return this.$Native(document.createEventObject())["$merge!"]({type:e,bubbles:t.bubbles,cancelable:t.cancelable,detail:t}).$to_n()},d.$$arity=2):e.defs(y,"$construct",f=function(e,t){return this.$Native(t)["$merge!"]({type:e,bubbles:t.bubbles,cancelable:t.cancelable,detail:t}).$to_n()},f.$$arity=2),e.def(y,"$initialize",_=function(e,t){var n=_.$$p,a=this;return n&&(_.$$p=null),null==t&&(t=r),u(a,l(a,"initialize",_,!1,!0),"initialize",[e,t],null),a.detail=$(v,"Hash").$new(e.detail)},_.$$arity=-2),e.def(y,"$method_missing",h=function(t){var n,r=h.$$p,$=this;return r&&(h.$$p=null),n=e.slice.call(arguments,1,arguments.length),o($.detail["$has_key?"](t))?$.detail["$[]"](t):u($,l($,"method_missing",h,!1,!0),"method_missing",[t].concat(e.to_a(n)),r)},h.$$arity=-2),r&&"method_missing"}(a[0],$(a,"Event"),a)}(c[0],0,c)}(n[0],n)},Opal.modules["buffer/array"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.klass,i=e.gvars,o=e.send2,s=e.find_super,u=e.truthy,l=e.alias;return e.add_stubs(["$include","$[]","$name_for","$attr_reader","$==","$for","$to_n","$enum_for"]),function(t,$super,c){var p=[a(t,null,"Buffer")].concat(c);return function(t,$super,c){var p,d,f,_,h,y,v,m,g,b=a(t,null,"Array"),w=[b].concat(c);return b.$$prototype.native=n,b.$include(r($(w,"Native"),"Wrapper")),e.defs(b,"$for",p=function(e,t){return null==i.$&&(i.$=n),i.$["$[]"]($(w,"Buffer").$name_for(e,t)+"Array")},p.$$arity=2),b.$include($(w,"Enumerable")),b.$attr_reader("buffer","type"),e.def(b,"$initialize",d=function(e,t,r){var a=d.$$p,i=this;if(a&&(d.$$p=null),null==t&&(t=n),null==r&&(r=n),$(w,"Native")["$=="](e))o(i,s(i,"initialize",d,!1,!0),"initialize",[e],null);else{var u=$(w,"Array").$for(t,r);o(i,s(i,"initialize",d,!1,!0),"initialize",[new u(e.$to_n())],null)}return i.buffer=e,i.type=r},d.$$arity=-2),e.def(b,"$bits",f=function(){return 8*this.native.BYTES_PER_ELEMENT},f.$$arity=0),e.def(b,"$[]",_=function(e,t){var r=this;return null==t&&(t=n),u(t)?r.native.subarray(e,t):r.native[e]},_.$$arity=-2),e.def(b,"$[]=",h=function(e,t){return this.native[e]=t},h.$$arity=2),e.def(b,"$bytesize",y=function(){return this.native.byteLength},y.$$arity=0),e.def(b,"$each",v=function(){var t=v.$$p,r=t||n,$=this;if(t&&(v.$$p=null),r===n)return $.$enum_for("each");for(var a=0,i=$.native.length;a>","$DOM","$to_proc","$parent","$last","$pop","$select!","$=~","$remove_child","$remove","$children","$supports?","$node_type","$first","$select","$element_children","$to_s","$next","$!","$element?","$previous","$try_convert","$name"]),function(t,d){var f=[a(t,"Browser")].concat(d);return function(t,d){var f=[a(t,"DOM")].concat(d);return function(t,$super,a){var d,f,_,h,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I,D,H,A,j,M,R,T,B,P,L,F,U,W,K,X,Y,V,G,J,Z,Q,ee,te,ne,re,$e,ae,ie,oe,se,ue,le,ce=i(t,null,"Node"),pe=[ce].concat(a);return ce.$$prototype.native=n,ce.$include($(pe,"Native")),e.const_set(pe[0],"ELEMENT_NODE",1),e.const_set(pe[0],"ATTRIBUTE_NODE",2), +e.const_set(pe[0],"TEXT_NODE",3),e.const_set(pe[0],"CDATA_SECTION_NODE",4),e.const_set(pe[0],"ENTITY_REFERENCE_NOCE",5),e.const_set(pe[0],"ENTITY_NODE",6),e.const_set(pe[0],"PROCESSING_INSTRUCTION_NODE",7),e.const_set(pe[0],"COMMENT_NODE",8),e.const_set(pe[0],"DOCUMENT_NODE",9),e.const_set(pe[0],"DOCUMENT_TYPE_NODE",10),e.const_set(pe[0],"DOCUMENT_FRAGMENT_NODE",11),e.const_set(pe[0],"NOTATION_NODE",12),e.defs(ce,"$new",d=function(e){var t=d.$$p,r=this,a=n,i=n;return null==r.classes&&(r.classes=n),t&&(d.$$p=null),r["$=="]($(pe,"Node"))?(r.classes=o(a=r.classes)?a:[n,$(pe,"Element"),$(pe,"Attribute"),$(pe,"Text"),$(pe,"CDATA"),n,n,n,$(pe,"Comment"),$(pe,"Document"),n,$(pe,"DocumentFragment")],o(i=r.classes["$[]"](e.nodeType))?i.$new(e):r.$raise($(pe,"ArgumentError"),"cannot instantiate a non derived Node object")):s(r,u(r,"new",d,!1,!0),"new",[e],t)},d.$$arity=1),e.def(ce,"$==",f=function(e){return this.native===$(pe,"Native").$convert(e)},f.$$arity=1),e.def(ce,"$<<",_=function(e){var t,r=this;return o($(pe,"Opal")["$respond_to?"](e,"each"))?(l(e,"each",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==e&&(e=n),r["$<<"](e)}).$$s=r,t.$$arity=1,t)),r):(o(r["$native?"](e))||(e=o($(pe,"String")["$==="](e))?r.native.ownerDocument.createTextNode(e):$(pe,"Native").$convert(e)),r.native.appendChild(e),r)},_.$$arity=1),e.def(ce,"$>>",h=function(e){var t,r=this;return o($(pe,"Opal")["$respond_to?"](e,"each"))?(l(e,"each",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==e&&(e=n),r["$>>"](e)}).$$s=r,t.$$arity=1,t)),r):(o(r["$native?"](e))||(e=o($(pe,"String")["$==="](e))?r.native.ownerDocument.createTextNode(e):$(pe,"Native").$convert(e)),o(null==r.native.firstChild)?r.native.appendChild(e):r.native.insertBefore(e,r.native.firstChild),r)},h.$$arity=1),e.def(ce,"$add_child",y=function(e){var t=y.$$p,r=t||n,$=this;return t&&(y.$$p=null),t&&(y.$$p=null),null==e&&(e=n),o(e)||(e=l($,"DOM",[],r.$to_proc())),$["$<<"](e)},y.$$arity=-1),e.def(ce,"$add_next_sibling",v=function(e){var t=v.$$p,r=t||n,a=this;return t&&(v.$$p=null),t&&(v.$$p=null),null==e&&(e=n),o(e)||(e=l(a,"DOM",[],r.$to_proc())),o(a["$native?"](e))||(e=o($(pe,"String")["$==="](e))?a.native.ownerDocument.createTextNode(e):$(pe,"Native").$convert(e)),a.native.parentNode.insertBefore(e,a.native.nextSibling)},v.$$arity=-1),e.def(ce,"$add_previous_sibling",m=function(e){var t=m.$$p,r=t||n,a=this;return t&&(m.$$p=null),t&&(m.$$p=null),null==e&&(e=n),o(e)||(e=l(a,"DOM",[],r.$to_proc())),o(a["$native?"](e))||(e=o($(pe,"String")["$==="](e))?a.native.ownerDocument.createTextNode(e):$(pe,"Native").$convert(e)),a.native.parentNode.insertBefore(e,a.native)},m.$$arity=-1),c(ce,"after","add_next_sibling"),e.def(ce,"$append_to",g=function(e){var t=this;return e["$<<"](t)},g.$$arity=1),e.def(ce,"$ancestors",b=function(e){var t,r=this,a=n,i=n;if(null==e&&(e=n),!o(r.$parent()))return $(pe,"NodeSet")["$[]"]();for(a=[r.$parent()];o(i=a.$last().$parent());)a["$<<"](i);return o($(pe,"Document")["$==="](a.$last()))&&a.$pop(),o(e)&&l(a,"select!",[],((t=function(r){null==t.$$s||t.$$s;return null==r&&(r=n),r["$=~"](e)}).$$s=r,t.$$arity=1,t)),$(pe,"NodeSet").$new(a)},b.$$arity=-1),c(ce,"before","add_previous_sibling"),e.def(ce,"$remove",w=function(){var e=this;return o(e.$parent())?e.$parent().$remove_child(e):n},w.$$arity=0),e.def(ce,"$clear",k=function(){return this.$children().$remove()},k.$$arity=0),o($(pe,"Browser")["$supports?"]("Element.textContent"))?(e.def(ce,"$content",O=function(){return this.native.textContent},O.$$arity=0),e.def(ce,"$content=",E=function(e){return this.native.textContent=e},E.$$arity=1)):o($(pe,"Browser")["$supports?"]("Element.innerText"))?(e.def(ce,"$content",x=function(){return this.native.innerText},x.$$arity=0),e.def(ce,"$content=",S=function(e){return this.native.innerText=e},S.$$arity=1)):(e.def(ce,"$content",q=function(){return this.$raise($(pe,"NotImplementedError"),"node text content unsupported")},q.$$arity=0),e.def(ce,"$content=",N=function(){return this.$raise($(pe,"NotImplementedError"),"node text content unsupported")},N.$$arity=1)),e.def(ce,"$blank?",C=function(){return this.$raise($(pe,"NotImplementedError"))},C.$$arity=0),e.def(ce,"$cdata?",z=function(){return this.$node_type()["$=="]($(pe,"CDATA_SECTION_NODE"))},z.$$arity=0),e.def(ce,"$child",I=function(){return this.$children().$first()},I.$$arity=0),e.def(ce,"$children",D=function(){var e=this;return $(pe,"NodeSet")["$[]"](r($(pe,"Native"),"Array").$new(e.native.childNodes))},D.$$arity=0),e.def(ce,"$children=",H=function(){return this.$raise($(pe,"NotImplementedError"))},H.$$arity=1),e.def(ce,"$comment?",A=function(){return this.$node_type()["$=="]($(pe,"COMMENT_NODE"))},A.$$arity=0),e.def(ce,"$document",j=function(){var e=this;return o("undefined"!=typeof e.native.ownerDocument)?e.$DOM(e.native.ownerDocument):n},j.$$arity=0),e.def(ce,"$document?",M=function(){return this.$node_type()["$=="]($(pe,"DOCUMENT_NODE"))},M.$$arity=0),e.def(ce,"$elem?",R=function(){return this.$node_type()["$=="]($(pe,"ELEMENT_NODE"))},R.$$arity=0),c(ce,"element?","elem?"),e.def(ce,"$element_children",T=function(){return l(this.$children(),"select",[],"element?".$to_proc())},T.$$arity=0),c(ce,"elements","element_children"),e.def(ce,"$first_element_child",B=function(){return this.$element_children().$first()},B.$$arity=0),e.def(ce,"$fragment?",P=function(){return this.$node_type()["$=="]($(pe,"DOCUMENT_FRAGMENT_NODE"))},P.$$arity=0),e.def(ce,"$inner_html",L=function(){return this.native.innerHTML},L.$$arity=0),e.def(ce,"$inner_html=",F=function(e){return this.native.innerHTML=e},F.$$arity=1),c(ce,"inner_text","content"),c(ce,"inner_text=","content="),e.def(ce,"$last_element_child",U=function(){return this.$element_children().$last()},U.$$arity=0),e.def(ce,"$name",W=function(){return this.native.nodeName||n},W.$$arity=0),e.def(ce,"$name=",K=function(e){return this.native.nodeName=e.$to_s()},K.$$arity=1),e.def(ce,"$namespace",X=function(){return this.native.namespaceURI||n},X.$$arity=0),e.def(ce,"$next",Y=function(){var e=this;return o(null!=e.native.nextSibling)?e.$DOM(e.native.nextSibling):n},Y.$$arity=0),c(ce,"next=","add_next_sibling"),e.def(ce,"$next_element",V=function(){var e=n,t=n;for(e=this.$next();o(o(t=e)?e["$element?"]()["$!"]():t);)e=e.$next();return e},V.$$arity=0),c(ce,"next_sibling","next"),c(ce,"node_name","name"),c(ce,"node_name=","name="),e.def(ce,"$node_type",G=function(){return this.native.nodeType},G.$$arity=0),e.def(ce,"$parent",J=function(){var e=this;return o(null!=e.native.parentNode)?e.$DOM(e.native.parentNode):n},J.$$arity=0),e.def(ce,"$parent=",Z=function(e){return this.native.parentNode=$(pe,"Native").$convert(e)},Z.$$arity=1),e.def(ce,"$parse",Q=function(e,t){var n=this;return null==t&&(t=p([],{})),n.$raise($(pe,"NotImplementedError"))},Q.$$arity=-2),e.def(ce,"$path",ee=function(){return this.$raise($(pe,"NotImplementedError"))},ee.$$arity=0),e.def(ce,"$prepend_to",te=function(e){var t=this;return e["$>>"](t)},te.$$arity=1),e.def(ce,"$previous",ne=function(){var e=this;return o(null!=e.native.previousSibling)?e.$DOM(e.native.previousSibling):n},ne.$$arity=0),c(ce,"previous=","add_previous_sibling"),e.def(ce,"$previous_element",re=function(){var e=n,t=n;for(e=this.$previous();o(o(t=e)?e["$element?"]()["$!"]():t);)e=e.$previous();return e},re.$$arity=0),c(ce,"previous_sibling","previous"),e.def(ce,"$remove_child",$e=function(e){return this.native.removeChild($(pe,"Native").$try_convert(e))},$e.$$arity=1),e.def(ce,"$replace",ae=function(e){var t=this;return o(t["$native?"](e))||(e=o($(pe,"String")["$==="](e))?t.native.ownerDocument.createTextNode(e):$(pe,"Native").$convert(e)),t.native.parentNode.replaceChild(e,t.native),e},ae.$$arity=1),c(ce,"replace_with","replace"),c(ce,"text","content"),c(ce,"text=","content="),e.def(ce,"$text?",ie=function(){return this.$node_type()["$=="]($(pe,"TEXT_NODE"))},ie.$$arity=0),e.def(ce,"$traverse",oe=function(){var e=oe.$$p,t=this;return e&&(oe.$$p=null),e&&(oe.$$p=null),t.$raise($(pe,"NotImplementedError"))},oe.$$arity=0),c(ce,"type","node_type"),e.def(ce,"$value",se=function(){return this.native.nodeValue||n},se.$$arity=0),e.def(ce,"$value=",ue=function(e){return this.native.nodeValue=e},ue.$$arity=1),e.def(ce,"$inspect",le=function(){return"#"},le.$$arity=0),n&&"inspect"}(f[0],0,f)}(f[0],f)}(t[0],t)},Opal.modules["browser/dom/attribute"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass,i=e.truthy;return e.add_stubs(["$include","$alias_native","$supports?","$==","$name"]),function(t,o){var s=[$(t,"Browser")].concat(o);return function(t,o){var s=[$(t,"DOM")].concat(o);return function(t,$super,$){var o,s=a(t,null,"Attribute"),u=[s].concat($);return s.$include(r(u,"Native")),s.$alias_native("name"),s.$alias_native("value"),s.$alias_native("value="),i(r(u,"Browser")["$supports?"]("Attr.isId"))?s.$alias_native("id?","isId"):(e.def(s,"$id?",o=function(){return this.$name()["$=="]("id")},o.$$arity=0),n&&"id?")}(s[0],0,s)}(s[0],s)}(t[0],t)},Opal.modules["browser/dom/character_data"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass;return e.add_stubs(["$alias_native"]),function(t,i){var o=[$(t,"Browser")].concat(i);return function(t,i){var o=[$(t,"DOM")].concat(i);return function(t,$super,r){var $,i,o,s,u,l,c=a(t,$super,"CharacterData");[c].concat(r);return c.$$prototype.native=n,e.def(c,"$append",$=function(e){var t=this;return t.native.appendData(e),t},$.$$arity=1),e.def(c,"$data",i=function(){return this.native.data},i.$$arity=0),e.def(c,"$delete",o=function(e,t){var n=this;return null==t&&(t=0),n.native.deleteData(t,e),n},o.$$arity=-2),e.def(c,"$insert",s=function(e,t){var n=this;return null==t&&(t=0),n.native.insertData(t,e),n},s.$$arity=-2),c.$alias_native("length"),e.def(c,"$replace",u=function(e,t,n){var r=this;return null==t&&(t=0),null==n&&(n=r.native.length),r.native.replaceData(t,n,e),r},u.$$arity=-2),e.def(c,"$substring",l=function(e,t){return null==t&&(t=0),this.native.substringData(t,e)},l.$$arity=-2),n&&"substring"}(o[0],r(o,"Node"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/text"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass,i=e.send,o=e.gvars;return e.add_stubs(["$create_text","$DOM","$data"]),function(t,s){var u=[$(t,"Browser")].concat(s);return function(t,s){var u=[$(t,"DOM")].concat(s);return function(t,$super,r){var $,s,u,l,c=a(t,$super,"Text");[c].concat(r);return c.$$prototype.native=n,e.defs(c,"$create",$=function(){var t;return null==o.document&&(o.document=n),t=e.slice.call(arguments,0,arguments.length),i(o.document,"create_text",e.to_a(t))},$.$$arity=-1),e.def(c,"$whole",s=function(){return this.native.wholeText},s.$$arity=0),e.def(c,"$split",u=function(e){var t=this;return t.$DOM(t.native.splitText(e))},u.$$arity=1),e.def(c,"$inspect",l=function(){return"#"},l.$$arity=0),n&&"inspect"}(u[0],r(u,"CharacterData"),u)}(u[0],u)}(t[0],t)},Opal.modules["browser/dom/cdata"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass;return e.add_stubs(["$value"]),function(t,i){var o=[$(t,"Browser")].concat(i);return function(t,i){var o=[$(t,"DOM")].concat(i);return function(t,$super,r){var $,i=a(t,$super,"CDATA");[i].concat(r);return e.def(i,"$inspect",$=function(){return"#"},$.$$arity=0),n&&"inspect"}(o[0],r(o,"Text"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/comment"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass;return e.add_stubs(["$value"]),function(t,i){var o=[$(t,"Browser")].concat(i);return function(t,i){var o=[$(t,"DOM")].concat(i);return function(t,$super,r){var $,i=a(t,$super,"Comment");[i].concat(r);return e.def(i,"$inspect",$=function(){return"#"},$.$$arity=0),n&&"inspect"}(o[0],r(o,"CharacterData"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/element/attributes"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.klass,o=e.truthy,s=e.hash2,u=e.send,l=e.alias;return e.add_stubs(["$attr_reader","$to_n","$[]","$supports?","$==","$to_s","$include","$enum_for","$each","$attribute_nodes","$name","$value","$!","$[]=","$-"]),function(n,c){var p=[a(n,"Browser")].concat(c);return function(n,c){var p=[a(n,"DOM")].concat(c);return function(n,$super,a){var c=[i(n,$super,"Element")].concat(a);return function(n,$super,a){var c,p,d,f,_,h,y,v,m=i(n,null,"Attributes"),g=[m].concat(a),b=r;return m.$$prototype.namespace=m.$$prototype.native=m.$$prototype.element=r,m.$attr_reader("namespace"),e.def(m,"$initialize",c=function(e,t){var n=this;return n.element=e,n.native=e.$to_n(),n.namespace=t["$[]"]("namespace")},c.$$arity=2),o(o(b=$(g,"Browser")["$supports?"]("Element.className"))?b:$(g,"Browser")["$supports?"]("Element.htmlFor"))?(e.def(m,"$[]",p=function(e,t){var n=this,a=r,i=r,u=r,l=r;return null==t&&(t=s([],{})),o(o(a=e["$=="]("class"))?$(g,"Browser")["$supports?"]("Element.className"):a)?e="className":o(o(i=e["$=="]("for"))?$(g,"Browser")["$supports?"]("Element.htmlFor"):i)&&(e="htmlFor"),o(u=o(l=t["$[]"]("namespace"))?l:n.namespace)?n.native.getAttributeNS(u.$to_s(),e.$to_s())||r:n.native.getAttribute(e.$to_s())||r},p.$$arity=-2),e.def(m,"$[]=",d=function(e,t,n){var a=this,i=r,u=r,l=r,c=r;return null==n&&(n=s([],{})),o(o(i=e["$=="]("class"))?$(g,"Browser")["$supports?"]("Element.className"):i)?e="className":o(o(u=e["$=="]("for"))?$(g,"Browser")["$supports?"]("Element.htmlFor"):u)&&(e="htmlFor"),o(l=o(c=n["$[]"]("namespace"))?c:a.namespace)?a.native.setAttributeNS(l.$to_s(),e.$to_s(),t):a.native.setAttribute(e.$to_s(),t.$to_s())},d.$$arity=-3)):(e.def(m,"$[]",f=function(e,t){var n=this,$=r,a=r;return null==t&&(t=s([],{})),o($=o(a=t["$[]"]("namespace"))?a:n.namespace)?n.native.getAttributeNS($.$to_s(),e.$to_s())||r:n.native.getAttribute(e.$to_s())||r},f.$$arity=-2),e.def(m,"$[]=",_=function(e,t,n){var $=this,a=r,i=r;return null==n&&(n=s([],{})),o(a=o(i=n["$[]"]("namespace"))?i:$.namespace)?$.native.setAttributeNS(a.$to_s(),e.$to_s(),t):$.native.setAttribute(e.$to_s(),t.$to_s())},_.$$arity=-3)),m.$include($(g,"Enumerable")),e.def(m,"$each",h=function(){var t,n=h.$$p,$=n||r,a=this;return n&&(h.$$p=null),n&&(h.$$p=null),$===r?a.$enum_for("each"):(u(a.element.$attribute_nodes(),"each",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=r),e.yieldX($,[n.$name(),n.$value()])}).$$s=a,t.$$arity=1,t)),a)},h.$$arity=0),l(m,"get","[]"),e.def(m,"$has_key?",y=function(e){return this["$[]"](e)["$!"]()["$!"]()},y.$$arity=1),e.def(m,"$merge!",v=function(n){var $,a=this;return u(n,"each",[],(($=function(n,a){var i=null==$.$$s?this:$.$$s,o=r;return null==n&&(n=r),null==a&&(a=r),o=[n,a],u(i,"[]=",e.to_a(o)),o[t(o.length,1)]}).$$s=a,$.$$arity=2,$)),a},v.$$arity=1),l(m,"set","[]=")}(c[0],0,c)}(p[0],$(p,"Node"),p)}(p[0],p)}(n[0],n)},Opal.modules["browser/dom/element/data"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass,i=e.truthy,o=e.send,s=e.gvars;return e.add_stubs(["$attr_reader","$to_n","$include","$enum_for","$call","$each","$attributes","$=~","$[]"]),function(t,u){var l=[$(t,"Browser")].concat(u);return function(t,u){var l=[$(t,"DOM")].concat(u);return function(t,$super,$){var u=[a(t,$super,"Element")].concat($);return function(t,$super,$){var u,l,c,p,d,f=a(t,null,"Data"),_=[f].concat($);return f.$$prototype.native=f.$$prototype.element=n,f.$attr_reader("element"),e.def(f,"$initialize",u=function(e){var t=this;return t.element=e,t.native=e.$to_n(),i("undefined"!=typeof t.native.$data)?n:t.native.$data={}},u.$$arity=1),f.$include(r(_,"Enumerable")),e.def(f,"$each",l=function(){var e,t=l.$$p,r=t||n,$=this;if(t&&(l.$$p=null),t&&(l.$$p=null),!i(r))return $.$enum_for("each");var a=$.native.$data;for(var u in a)r.$call(u,a[u]);return o($.element.$attributes(),"each",[],((e=function(t,$){var a;null==e.$$s||e.$$s;return null==t&&(t=n),null==$&&($=n),i(t["$=~"](/^data-(.*)$/))?r.$call((a=s["~"])===n?n:a["$[]"](1),$):n}).$$s=$,e.$$arity=2,e)),$},l.$$arity=0),e.def(f,"$assign",c=function(e){var t,r=this;return o(e,"each",[],((t=function(e,r){var $=null==t.$$s?this:t.$$s;return null==$.native&&($.native=n),null==e&&(e=n),null==r&&(r=n),$.native.$data[e]=r}).$$s=r,t.$$arity=2,t)),r},c.$$arity=1),e.def(f,"$[]",p=function(e){var t=this,r=n;if(i(r=t.element["$[]"]("data-"+e)))return r;var $=t.native.$data[e];return $===undefined?n:$},p.$$arity=1),e.def(f,"$[]=",d=function(e,t){return this.native.$data[e]=t},d.$$arity=2),n&&"[]="}(u[0],0,u)}(l[0],r(l,"Node"),l)}(l[0],l)}(t[0],t)},Opal.modules["browser/dom/element/position"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.module,s=e.klass,u=e.truthy,l=e.send;return e.add_stubs(["$attr_reader","$to_n","$offset","$get","$parent","$new","$==","$[]","$style","$=~","$+","$x","$to_i","$x=","$-","$y","$y="]),function(r,c){var p=[o(r,"Browser")].concat(c);return function(r,c){var p=[o(r,"DOM")].concat(c);return function(r,$super,o){var c=[s(r,$super,"Element")].concat(o);return function(r,$super,o){var c,p,d,f,_=s(r,null,"Position"),h=[_].concat(o);return _.$$prototype.element=$,_.$attr_reader("element"),e.def(_,"$initialize",c=function(e){var t=this;return t.element=e,t.native=e.$to_n()},c.$$arity=1),e.def(_,"$get",p=function(){var r=this,o=$,s=$,c=$,p=$,d=$;return s=(o=r.element.$offset()).$get(),c=o.$parent(),p=a(i(h,"Browser"),"Position").$new(0,0),r.element.$style()["$[]"]("position")["$=="]("fixed")&&(u(c["$=~"]("html"))||(p=c.$offset()),d=[t(p.$x(),c.$style()["$[]"]("border-top-width").$to_i())],l(p,"x=",e.to_a(d)),d[n(d.length,1)],d=[t(p.$y(),c.$style()["$[]"]("border-left-width").$to_i())],l(p,"y=",e.to_a(d)),d[n(d.length,1)]),a(i(h,"Browser"),"Position").$new(n(n(s.$x(),p.$x()),r.element.$style()["$[]"]("margin-left").$to_i()),n(n(s.$y(),p.$y()),r.element.$style()["$[]"]("margin-top").$to_i()))},p.$$arity=0),e.def(_,"$x",d=function(){return this.$get().$x()},d.$$arity=0),e.def(_,"$y",f=function(){return this.$get().$y()},f.$$arity=0),$&&"y"}(c[0],0,c)}(p[0],i(p,"Node"),p)}(p[0],p)}(r[0],r)},Opal.modules["browser/dom/element/offset"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.module,s=e.klass,u=e.truthy,l=e.send;return e.add_stubs(["$attr_reader","$to_n","$DOM","$root","$document","$x","$get","$set","$y","$supports?","$window","$new","$[]","$style!","$==","$[]=","$style","$-","$to_u","$===","$first","$+","$px"]),function(r,c){var p=[o(r,"Browser")].concat(c);return function(r,c){var p=[o(r,"DOM")].concat(c);return function(r,$super,o){var c=[s(r,$super,"Element")].concat(o);return function(r,$super,o){var c,p,d,f,_,h,y,v,m,g=s(r,null,"Offset"),b=[g].concat(o);return g.$$prototype.native=g.$$prototype.element=$,g.$attr_reader("element"),e.def(g,"$initialize",c=function(e){var t=this;return t.element=e,t.native=e.$to_n()},c.$$arity=1),e.def(g,"$parent",p=function(){var e=this;return e.$DOM(e.native.offsetParent||e.element.$document().$root().$to_n())},p.$$arity=0),e.def(g,"$x",d=function(){return this.$get().$x()},d.$$arity=0),e.def(g,"$x=",f=function(e){return this.$set(e,$)},f.$$arity=1),e.def(g,"$y",_=function(){return this.$get().$y()},_.$$arity=0),e.def(g,"$y=",h=function(e){return this.$set($,e)},h.$$arity=1),u(i(b,"Browser")["$supports?"]("Element.getBoundingClientRect"))?e.def(g,"$get",y=function(){var e=this,t=$,n=$,r=$;n=(t=e.element.$document()).$root().$to_n(),r=t.$window().$to_n();var o=e.native.getBoundingClientRect(),s=o.top+(r.pageYOffset||n.scrollTop)-(n.clientTop||0),u=o.left+(r.pageXOffset||n.scrollLeft)-(n.clientLeft||0);return a(i(b,"Browser"),"Position").$new(u,s)},y.$$arity=0):e.def(g,"$get",v=function(){var e=$,t=$,n=$;t=(e=this.$document()).$root().$to_n();var r=((n=e.$window().$to_n()).pageYOffset||t.scrollTop)-(t.clientTop||0),o=(n.pageXOffset||t.scrollLeft)-(t.clientLeft||0);return a(i(b,"Browser"),"Position").$new(o,r)},v.$$arity=0),e.def(g,"$set",m=function(){var r,o,s,c=this,p=$,d=$,f=$,_=$,h=$,y=$;return r=e.slice.call(arguments,0,arguments.length),c.element["$style!"]()["$[]"]("position")["$=="]("static")&&(p=["position","relative"],l(c.element.$style(),"[]=",e.to_a(p)),p[t(p.length,1)]),d=c.$get(),f=c.element["$style!"]()["$[]"]("top").$to_u(),_=c.element["$style!"]()["$[]"]("left").$to_u(),u(a(i(b,"Browser"),"Position")["$==="](r.$first()))?(h=(o=[r.$first().$x(),r.$first().$y()])[0],y=o[1]):u(i(b,"Hash")["$==="](r.$first()))?(h=(o=[r.$first()["$[]"]("x"),r.$first()["$[]"]("y")])[0],y=o[1]):(s=r,h=null==(o=e.to_ary(s))[0]?$:o[0],y=null==o[1]?$:o[1]),u(h)&&(p=["left",n(t(h.$px(),d.$x()),_)],l(c.element.$style(),"[]=",e.to_a(p)),p[t(p.length,1)]),u(y)?(p=["top",n(t(y.$px(),d.$y()),f)],l(c.element.$style(),"[]=",e.to_a(p)),p[t(p.length,1)]):$},m.$$arity=-1),$&&"set"}(c[0],0,c)}(p[0],i(p,"Node"),p)}(p[0],p)}(r[0],r)},Opal.modules["browser/dom/element/scroll"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,i=e.klass,o=e.truthy;return e.add_stubs(["$attr_reader","$to_n","$supports?","$===","$first","$[]","$x","$y","$new","$raise","$position"]),function(t,s){var u=[a(t,"Browser")].concat(s);return function(t,s){var u=[a(t,"DOM")].concat(s);return function(t,$super,a){var s=[i(t,$super,"Element")].concat(a);return function(t,$super,a){var s,u,l,c,p,d,f,_,h,y,v,m,g,b,w,k=i(t,null,"Scroll"),O=[k].concat(a);return k.$$prototype.native=n,k.$attr_reader("element"),e.def(k,"$initialize",s=function(e){var t=this;return t.element=e,t.native=e.$to_n()},s.$$arity=1),o($(O,"Browser")["$supports?"]("Element.scroll"))?(e.def(k,"$to",u=function(){var t,r,a,i,s=this,u=n,l=n,c=n,p=n;return t=e.slice.call(arguments,0,arguments.length),r=t,o($(O,"Hash")["$==="](r.$first()))?(u=o(l=r.$first()["$[]"]("x"))?l:s.$x(),c=o(p=r.$first()["$[]"]("y"))?p:s.$y()):(i=r,u=null==(a=e.to_ary(i))[0]?n:a[0],c=null==a[1]?n:a[1]),s.native.scrollTop=c,s.native.scrollLeft=u},u.$$arity=-1),e.def(k,"$position",l=function(){var e=this;return r($(O,"Browser"),"Position").$new(e.native.scrollLeft,e.native.scrollTop)},l.$$arity=0)):o($(O,"Browser")["$supports?"]("Element.pageOffset"))?(e.def(k,"$to",c=function(){var t,r,a,i,s=this,u=n,l=n,c=n,p=n;return t=e.slice.call(arguments,0,arguments.length),r=t,o($(O,"Hash")["$==="](r.$first()))?(u=o(l=r.$first()["$[]"]("x"))?l:s.$x(),c=o(p=r.$first()["$[]"]("y"))?p:s.$y()):(i=r,u=null==(a=e.to_ary(i))[0]?n:a[0],c=null==a[1]?n:a[1]),s.native.pageYOffset=c,s.native.pageXOffset=u},c.$$arity=-1),e.def(k,"$position",p=function(){var e=this;return $(O,"Position").$new(e.native.pageXOffset,e.native.pageYOffset)},p.$$arity=0)):(e.def(k,"$to",d=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise($(O,"NotImplementedError"),"scroll on element unsupported")},d.$$arity=-1),e.def(k,"$position",f=function(){return this.$raise($(O,"NotImplementedError"),"scroll on element unsupported")},f.$$arity=0)),e.def(k,"$x",_=function(){return this.$position().$x()},_.$$arity=0),e.def(k,"$y",h=function(){return this.$position().$y()},h.$$arity=0),e.def(k,"$height",y=function(){return this.native.scrollHeight},y.$$arity=0),e.def(k,"$width",v=function(){return this.native.scrollWidth},v.$$arity=0),e.def(k,"$by",m=function(){var t,r,a,i,s=this,u=n,l=n,c=n,p=n;return t=e.slice.call(arguments,0,arguments.length),r=t,o($(O,"Hash")["$==="](r.$first()))?(u=o(l=r.$first()["$[]"]("x"))?l:0,c=o(p=r.$first()["$[]"]("y"))?p:0):(i=r,u=null==(a=e.to_ary(i))[0]?n:a[0],c=null==a[1]?n:a[1]),s.native.scrollBy(u,c),s},m.$$arity=-1),o($(O,"Browser")["$supports?"]("Element.scrollIntoViewIfNeeded"))?e.def(k,"$to",g=function(e){return null==e&&(e=!0),this.native.scrollIntoViewIfNeeded(e)},g.$$arity=-1):e.def(k,"$to",b=function(e){return null==e&&(e=!0),this.$raise($(O,"NotImplementedError"))},b.$$arity=-1),e.def(k,"$to!",w=function(e){return null==e&&(e=!0),this.native.scrollIntoView(e)},w.$$arity=-1),n&&"to!"}(s[0],0,s)}(u[0],$(u,"Node"),u)}(u[0],u)}(t[0],t)},Opal.modules["browser/dom/element/size"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.klass,o=e.send;return e.add_stubs(["$attr_reader","$to_n","$[]=","$style","$-"]),function(n,s){var u=[a(n,"Browser")].concat(s);return function(n,s){var u=[a(n,"DOM")].concat(s);return function(n,$super,$){var a=[i(n,$super,"Element")].concat($);return function(n,$super,$){var a,s,u,l,c,p=i(n,null,"Size");[p].concat($);return p.$$prototype.native=p.$$prototype.element=r,p.$attr_reader("element"),e.def(p,"$initialize",a=function(t){var n,r=this;return n=e.slice.call(arguments,1,arguments.length),r.element=t,r.native=t.$to_n(),r.include=n},a.$$arity=-2),e.def(p,"$width",s=function(){return this.native.offsetWidth},s.$$arity=0),e.def(p,"$width=",u=function(n){var $=r;return $=["width",n],o(this.element.$style(),"[]=",e.to_a($)),$[t($.length,1)]},u.$$arity=1),e.def(p,"$height",l=function(){return this.native.offsetHeight},l.$$arity=0),e.def(p,"$height=",c=function(n){var $=r;return $=["height",n],o(this.element.$style(),"[]=",e.to_a($)),$[t($.length,1)]},c.$$arity=1),r&&"height="}(a[0],0,a)}(u[0],$(u,"Node"),u)}(u[0],u)}(n[0],n)},Opal.modules["browser/dom/element/input"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass;return function(t,i){var o=[$(t,"Browser")].concat(i);return function(t,i){var o=[$(t,"DOM")].concat(i);return function(t,$super,$){var i=[a(t,$super,"Element")].concat($);return function(t,$super,r){var $,i,o,s,u=a(t,$super,"Input");[u].concat(r);return u.$$prototype.native=n,e.def(u,"$value",$=function(){var e=this;return""==e.native.value?n:e.native.value},$.$$arity=0),e.def(u,"$value=",i=function(e){return this.native.value=e},i.$$arity=1),e.def(u,"$checked?",o=function(){return this.native.checked},o.$$arity=0),e.def(u,"$clear",s=function(){return this.native.value=""},s.$$arity=0),n&&"clear"}(i[0],r(i,"Element"),i)}(o[0],r(o,"Node"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/element/select"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,i=e.klass;return e.add_stubs(["$[]","$new","$DOM","$alias_native"]),function(t,o){var s=[a(t,"Browser")].concat(o);return function(t,o){var s=[a(t,"DOM")].concat(o);return function(t,$super,a){var o=[i(t,$super,"Element")].concat(a);return function(t,$super,a){var o,s,u,l,c,p=i(t,$super,"Select"),d=[p].concat(a);return p.$$prototype.native=n,e.def(p,"$value",o=function(){var e=this;return""==e.native.value?n:e.native.value},o.$$arity=0),e.def(p,"$labels",s=function(){var e=this;return $(d,"NodeSet")["$[]"](r($(d,"Native"),"Array").$new(e.native.labels))},s.$$arity=0),e.def(p,"$options",u=function(){var e=this;return $(d,"NodeSet")["$[]"](r($(d,"Native"),"Array").$new(e.native.options))},u.$$arity=0),e.def(p,"$option",l=function(){var e=this;return e.$DOM(e.native.options[e.native.selectedIndex])},l.$$arity=0),e.def(p,"$index",c=function(){return this.native.selectedIndex},c.$$arity=0),p.$alias_native("multiple?","multiple"),p.$alias_native("required?","required"),p.$alias_native("length")}(o[0],$(o,"Element"),o)}(s[0],$(s,"Node"),s)}(s[0],s)}(t[0],t)},Opal.modules["browser/dom/element/image"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass;return function(t,i){var o=[$(t,"Browser")].concat(i);return function(t,i){var o=[$(t,"DOM")].concat(i);return function(t,$super,$){var i=[a(t,$super,"Element")].concat($);return function(t,$super,r){var $,i,o,s,u=a(t,$super,"Image");[u].concat(r);u.$$prototype.native=n,e.def(u,"$complete?",$=function(){return this.native.complete},$.$$arity=0),e.def(u,"$cross?",i=function(){return this.native.crossOrigin},i.$$arity=0),e.def(u,"$height",o=function(){return this.native.naturalHeight},o.$$arity=0),e.def(u,"$width",s=function(){return this.native.naturalWidth},s.$$arity=0)}(i[0],r(i,"Element"),i),e.const_set(i[0],"Img",r(i,"Image"))}(o[0],r(o,"Node"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/element/template"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass;return e.add_stubs(["$DOM"]),function(t,i){var o=[$(t,"Browser")].concat(i);return function(t,i){var o=[$(t,"DOM")].concat(i);return function(t,$super,$){var i=[a(t,$super,"Element")].concat($);return function(t,$super,r){var $,i=a(t,$super,"Template");[i].concat(r);return i.$$prototype.native=n,e.def(i,"$content",$=function(){var e=this;return e.$DOM(e.native.content)},$.$$arity=0),n&&"content"}(i[0],r(i,"Element"),i)}(o[0],r(o,"Node"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/element/textarea"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass;return function(t,i){var o=[$(t,"Browser")].concat(i);return function(t,i){var o=[$(t,"DOM")].concat(i);return function(t,$super,$){var i=[a(t,$super,"Element")].concat($);return function(t,$super,r){var $,i,o,s=a(t,$super,"Textarea");[s].concat(r);return s.$$prototype.native=n,e.def(s,"$value",$=function(){var e=this;return""==e.native.value?n:e.native.value},$.$$arity=0),e.def(s,"$value=",i=function(e){return this.native.value=e},i.$$arity=1),e.def(s,"$clear",o=function(){return this.native.value=""},o.$$arity=0),n&&"clear"}(i[0],r(i,"Element"),i)}(o[0],r(o,"Node"),o)}(o[0],o)}(t[0],t)},Opal.modules["browser/dom/element"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],a=e.nil,i=e.$$$,o=e.$$,s=e.module,u=e.klass,l=e.send,c=e.gvars,p=e.truthy,d=e.send2,f=e.find_super,_=e.hash2,h=e.alias;return e.add_stubs(["$require","$create_element","$==","$capitalize","$include?","$constants","$new","$const_get","$include","$target","$DOM","$supports?","$loaded?","$raise","$[]","$map","$xpath","$get","$attributes","$set","$+","$class_names","$empty?","$join","$uniq","$first","$css","$each","$alias_native","$reject","$split","$to_proc","$===","$assign","$height","$size","$height=","$-","$to_s","$clear","$document","$<<","$to_a","$downcase","$name","$id","$offset","$flatten","$concat","$replace","$apply","$to_n","$window","$width","$width="]),r.$require("browser/dom/element/attributes"),r.$require("browser/dom/element/data"),r.$require("browser/dom/element/position"),r.$require("browser/dom/element/offset"),r.$require("browser/dom/element/scroll"),r.$require("browser/dom/element/size"),r.$require("browser/dom/element/input"),r.$require("browser/dom/element/select"),r.$require("browser/dom/element/image"),r.$require("browser/dom/element/template"),r.$require("browser/dom/element/textarea"),function(r,$){var y=[s(r,"Browser")].concat($);return function(r,$){var y=[s(r,"DOM")].concat($);return function(r,$super,$){var s,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I,D,H,A,j,M,R,T,B,P,L,F,U,W,K,X,Y,V,G,J,Z,Q,ee,te,ne,re,$e,ae,ie,oe,se,ue,le=u(r,$super,"Element"),ce=[le].concat($),pe=a;return le.$$prototype.native=a,e.defs(le,"$create",s=function(){var t;return null==c.document&&(c.document=a),t=e.slice.call(arguments,0,arguments.length),l(c.document,"create_element",e.to_a(t))},s.$$arity=-1),e.defs(le,"$new",y=function(e){var t=y.$$p,n=this,r=a;return t&&(y.$$p=null),n["$=="](o(ce,"Element"))?(r=e.nodeName.$capitalize(),p(o(ce,"Element").$constants()["$include?"](r))?o(ce,"Element").$const_get(r).$new(e):d(n,f(n,"new",y,!1,!0),"new",[e],t)):d(n,f(n,"new",y,!1,!0),"new",[e],t)},y.$$arity=1),le.$include(i(o(ce,"Event"),"Target")),l(le,"target",[],((v=function(t){var n=null==v.$$s?this:v.$$s;null==t&&(t=a);try{return n.$DOM(t)}catch(r){if(!e.rescue(r,[o(ce,"StandardError")]))throw r;try{return a}finally{e.pop_exception()}}}).$$s=le,v.$$arity=1,v)),p(o(ce,"Browser")["$supports?"]("Element.matches"))?e.def(le,"$=~",m=function(e){return this.native.matches(e)},m.$$arity=1):p(o(ce,"Browser")["$supports?"]("Element.matches (Opera)"))?e.def(le,"$=~",g=function(e){return this.native.oMatchesSelector(e)},g.$$arity=1):p(o(ce,"Browser")["$supports?"]("Element.matches (Internet Explorer)"))?e.def(le,"$=~",b=function(e){return this.native.msMatchesSelector(e)},b.$$arity=1):p(o(ce,"Browser")["$supports?"]("Element.matches (Firefox)"))?e.def(le,"$=~",w=function(e){return this.native.mozMatchesSelector(e)},w.$$arity=1):p(o(ce,"Browser")["$supports?"]("Element.matches (Chrome)"))?e.def(le,"$=~",k=function(e){return this.native.webkitMatchesSelector(e)},k.$$arity=1):p(o(ce,"Browser")["$loaded?"]("Sizzle"))?e.def(le,"$=~",O=function(e){var t=this;return Sizzle.matchesSelector(t.native,e)},O.$$arity=1):e.def(le,"$=~",E=function(){ +return this.$raise(o(ce,"NotImplementedError"),"selector matching unsupported")},E.$$arity=1),e.def(le,"$/",x=function(){var t,n,r=this;return t=e.slice.call(arguments,0,arguments.length),o(ce,"NodeSet")["$[]"](l(t,"map",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=a),t.$xpath(e)}).$$s=r,n.$$arity=1,n)))},x.$$arity=-1),e.def(le,"$[]",S=function(e,t){var n=this;return null==t&&(t=_([],{})),n.$attributes().$get(e,t)},S.$$arity=-2),e.def(le,"$[]=",q=function(e,t,n){var r=this;return null==n&&(n=_([],{})),r.$attributes().$set(e,t,n)},q.$$arity=-3),e.def(le,"$add_class",N=function(){var n,r=this,$=a;return n=e.slice.call(arguments,0,arguments.length),$=t(r.$class_names(),n),p($["$empty?"]())||(r.native.className=$.$uniq().$join(" ")),r},N.$$arity=-1),e.def(le,"$at",C=function(e){var t=this,n=a;return p(n=t.$xpath(e).$first())?n:t.$css(e).$first()},C.$$arity=1),e.def(le,"$at_css",z=function(){var t,n,r,$=this,i=a;return t=e.slice.call(arguments,0,arguments.length),n=t,i=a,function(){var t=e.new_brk();try{l(n,"each",[],((r=function(n){var $=null==r.$$s?this:r.$$s;if(null==n&&(n=a),!p(i=$.$css(n).$first()))return a;e.brk(a,t)}).$$s=$,r.$$brk=t,r.$$arity=1,r))}catch(o){if(o===t)return o.$v;throw o}}(),i},z.$$arity=-1),e.def(le,"$at_xpath",I=function(){var t,n,r,$=this,i=a;return t=e.slice.call(arguments,0,arguments.length),n=t,i=a,function(){var t=e.new_brk();try{l(n,"each",[],((r=function(n){var $=null==r.$$s?this:r.$$s;if(null==n&&(n=a),!p(i=$.$xpath(n).$first()))return a;e.brk(a,t)}).$$s=$,r.$$brk=t,r.$$arity=1,r))}catch(o){if(o===t)return o.$v;throw o}}(),i},I.$$arity=-1),h(le,"attr","[]"),h(le,"attribute","[]"),e.def(le,"$attributes",D=function(e){var t=this;return null==e&&(e=_([],{})),o(ce,"Attributes").$new(t,e)},D.$$arity=-1),e.def(le,"$attribute_nodes",H=function(){var e=this;return o(ce,"NodeSet")["$[]"](i(o(ce,"Native"),"Array").$new(e.native.attributes,_(["get"],{get:"item"})))},H.$$arity=0),le.$alias_native("class_name","className"),e.def(le,"$class_names",A=function(){return l(this.native.className.$split(/\s+/),"reject",[],"empty?".$to_proc())},A.$$arity=0),p(o(ce,"Browser")["$supports?"]("Query.css"))?e.def(le,"$css",j=function(t){var n=this;try{return o(ce,"NodeSet")["$[]"](i(o(ce,"Native"),"Array").$new(n.native.querySelectorAll(t)))}catch(r){if(!e.rescue(r,[o(ce,"StandardError")]))throw r;try{return o(ce,"NodeSet")["$[]"]()}finally{e.pop_exception()}}},j.$$arity=1):p(o(ce,"Browser")["$loaded?"]("Sizzle"))?e.def(le,"$css",M=function(t){var n=this;try{return o(ce,"NodeSet")["$[]"](Sizzle(t,n.native))}catch(r){if(!e.rescue(r,[o(ce,"StandardError")]))throw r;try{return o(ce,"NodeSet")["$[]"]()}finally{e.pop_exception()}}},M.$$arity=1):e.def(le,"$css",R=function(){return this.$raise(o(ce,"NotImplementedError"),"query by CSS selector unsupported")},R.$$arity=1),e.def(le,"$data",T=function(e){var t=this,n=a;return null==e&&(e=a),n=o(ce,"Data").$new(t),p(e)?(p(o(ce,"Hash")["$==="](e))?n.$assign(e):t.$raise(o(ce,"ArgumentError"),"unknown data type"),t):n},T.$$arity=-1),h(le,"get_attribute","[]"),h(le,"get","[]"),e.def(le,"$height",B=function(){return this.$size().$height()},B.$$arity=0),e.def(le,"$height=",P=function(t){var r=a;return r=[t],l(this.$size(),"height=",e.to_a(r)),r[n(r.length,1)]},P.$$arity=1),e.def(le,"$id",L=function(){var e=this.native.id;return""===e?a:e},L.$$arity=0),e.def(le,"$id=",F=function(e){return this.native.id=e.$to_s()},F.$$arity=1),e.def(le,"$inner_dom",U=function(){var e=U.$$p,t=e||a,n=this,r=a;return e&&(U.$$p=null),e&&(U.$$p=null),n.$clear(),r=n.$document(),n["$<<"](l(o(ce,"Builder"),"new",[r,n],t.$to_proc()).$to_a())},U.$$arity=0),e.def(le,"$inner_dom=",W=function(e){var t=this;return t.$clear(),t["$<<"](e)},W.$$arity=1),e.def(le,"$inspect",K=function(){var e=this,n=a;return n=e.$name().$downcase(),p(e.$id())&&(n=t(n,t(t(".",e.$id()),"!"))),p(e.$class_names()["$empty?"]())||(n=t(n,t(".",e.$class_names().$join(".")))),"#"},K.$$arity=0),e.def(le,"$offset",X=function(){var t,n=this,r=a;return t=e.slice.call(arguments,0,arguments.length),r=o(ce,"Offset").$new(n),p(t["$empty?"]())||l(r,"set",e.to_a(t)),r},X.$$arity=-1),e.def(le,"$offset=",Y=function(t){return l(this.$offset(),"set",e.to_a(t))},Y.$$arity=1),e.def(le,"$position",V=function(){var e=this;return o(ce,"Position").$new(e)},V.$$arity=0),e.def(le,"$scroll",G=function(){var e=this;return o(ce,"Scroll").$new(e)},G.$$arity=0),e.def(le,"$search",J=function(){var t,n,r=this;return t=e.slice.call(arguments,0,arguments.length),o(ce,"NodeSet").$new(l(t,"map",[],(n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=a),t.$xpath(e).$to_a().$concat(t.$css(e).$to_a())},n.$$s=r,n.$$arity=1,n)).$flatten().$uniq())},J.$$arity=-1),h(le,"set","[]="),h(le,"set_attribute","[]="),e.def(le,"$style",Z=function(e){var t=Z.$$p,n=t||a,r=this,$=a,s=a;return t&&(Z.$$p=null),t&&(Z.$$p=null),null==e&&(e=a),$=i(o(ce,"CSS"),"Declaration").$new(r.native.style),p(p(s=e)?s:n)?(p(o(ce,"String")["$==="](e))?$.$replace(e):p(o(ce,"Hash")["$==="](e))?$.$assign(e):p(n)?l($,"apply",[],n.$to_proc()):r.$raise(o(ce,"ArgumentError"),"unknown data type"),r):$},Z.$$arity=-1),p(o(ce,"Browser")["$supports?"]("CSS.computed"))?e.def(le,"$style!",Q=function(){var e=this;return i(o(ce,"CSS"),"Declaration").$new(e.$window().$to_n().getComputedStyle(e.native,null))},Q.$$arity=0):p(o(ce,"Browser")["$supports?"]("CSS.current"))?e.def(le,"$style!",ee=function(){var e=this;return i(o(ce,"CSS"),"Declaration").$new(e.native.currentStyle)},ee.$$arity=0):e.def(le,"$style!",te=function(){return this.$raise(o(ce,"NotImplementedError"),"computed style unsupported")},te.$$arity=0),e.def(le,"$remove_attribute",ne=function(e){return this.native.removeAttribute(e)},ne.$$arity=1),e.def(le,"$remove_class",re=function(){var t,r=this,$=a;return t=e.slice.call(arguments,0,arguments.length),$=n(r.$class_names(),t),p($["$empty?"]())?r.native.removeAttribute("class"):r.native.className=$.$join(" "),r},re.$$arity=-1),e.def(le,"$size",$e=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),l(o(ce,"Size"),"new",[n].concat(e.to_a(t)))},$e.$$arity=-1),e.def(le,"$width",ae=function(){return this.$size().$width()},ae.$$arity=0),e.def(le,"$width=",ie=function(t){var r=a;return r=[t],l(this.$size(),"width=",e.to_a(r)),r[n(r.length,1)]},ie.$$arity=1),e.def(le,"$window",oe=function(){return this.$document().$window()},oe.$$arity=0),p(p(pe=o(ce,"Browser")["$supports?"]("Query.xpath"))?pe:o(ce,"Browser")["$loaded?"]("wicked-good-xpath"))?(p(o(ce,"Browser")["$loaded?"]("wicked-good-xpath"))&&wgxpath.install(),e.def(le,"$xpath",se=function(t){var n=this;try{return o(ce,"NodeSet")["$[]"](i(o(ce,"Native"),"Array").$new((n.native.ownerDocument||n.native).evaluate(t,n.native,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),_(["get","length"],{get:"snapshotItem",length:"snapshotLength"})))}catch(r){if(!e.rescue(r,[o(ce,"StandardError")]))throw r;try{return o(ce,"NodeSet")["$[]"]()}finally{e.pop_exception()}}},se.$$arity=1),a&&"xpath"):(e.def(le,"$xpath",ue=function(){return this.$raise(o(ce,"NotImplementedError"),"query by XPath unsupported")},ue.$$arity=1),a&&"xpath")}(y[0],o(y,"Node"),y)}(y[0],y)}($[0],$)},Opal.modules["browser/dom/document"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,i=e.klass,o=e.truthy,s=e.alias,u=e.hash2,l=e.send;return e.add_stubs(["$DOM","$first","$css","$xpath","$[]","$supports?","$raise","$ready?","$call","$on","$off","$convert","$new"]),function(t,c){var p=[a(t,"Browser")].concat(c);return function(t,c){var p=[a(t,"DOM")].concat(c);return function(t,$super,a){var c,p,d,f,_,h,y,v,m,g,b,w,k,O,E,x,S,q,N,C=i(t,$super,"Document"),z=[C].concat(a);return C.$$prototype.native=n,e.def(C,"$[]",c=function(e){var t=this,r=n,$=t.native.getElementById(e);return $?t.$DOM($):o(r=t.$css(e).$first())?r:t.$xpath(e).$first()},c.$$arity=1),s(C,"at","[]"),e.def(C,"$body",p=function(){var e=this;return e.$DOM(e.native.body)},p.$$arity=0),e.def(C,"$create_element",d=function(e,t){var r=this,$=n;return null==t&&(t=u([],{})),o($=t["$[]"]("namespace"))?r.$DOM(r.native.createElementNS($,e)):r.$DOM(r.native.createElement(e))},d.$$arity=-2),e.def(C,"$create_text",f=function(e){var t=this;return t.$DOM(t.native.createTextNode(e))},f.$$arity=1),e.def(C,"$document",_=function(){return this},_.$$arity=0),e.def(C,"$head",h=function(){var e=this;return e.$DOM(e.native.getElementsByTagName("head")[0])},h.$$arity=0),e.def(C,"$inspect",y=function(){return"#"},y.$$arity=0),o($(z,"Browser")["$supports?"]("Event.addListener"))?e.def(C,"$ready",v=function(){var e,t=v.$$p,r=t||n,a=this;return t&&(v.$$p=null),t&&(v.$$p=null),o(r)||a.$raise($(z,"ArgumentError"),"no block given"),o(a["$ready?"]())?r.$call():l(a,"on",["dom:load"],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=n),t.$off(),r.$call()}).$$s=a,e.$$arity=1,e))},v.$$arity=0):o($(z,"Browser")["$supports?"]("Event.attach"))?e.def(C,"$ready",m=function(){var e,t=m.$$p,r=t||n,a=this;return t&&(m.$$p=null),t&&(m.$$p=null),o(r)||a.$raise($(z,"ArgumentError"),"no block given"),o(a["$ready?"]())?r.$call():l(a,"on",["ready:state:change"],((e=function(t){var $=null==e.$$s?this:e.$$s;return null==t&&(t=n),o($["$ready?"]())?(t.$off(),r.$call()):n}).$$s=a,e.$$arity=1,e))},m.$$arity=0):e.def(C,"$ready",g=function(){var e=g.$$p,t=this;return e&&(g.$$p=null),e&&(g.$$p=null),t.$raise($(z,"NotImplementedError"),"document ready unsupported")},g.$$arity=0),e.def(C,"$ready?",b=function(){return"complete"===this.native.readyState},b.$$arity=0),e.def(C,"$root",w=function(){var e=this;return e.$DOM(e.native.documentElement)},w.$$arity=0),e.def(C,"$root=",k=function(e){return this.native.documentElement=$(z,"Native").$convert(e)},k.$$arity=1),e.def(C,"$style_sheets",O=function(){var e,t=this;return l(r($(z,"Native"),"Array"),"new",[t.native.styleSheets],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=n),r($(z,"CSS"),"StyleSheet").$new(t)}).$$s=t,e.$$arity=1,e))},O.$$arity=0),e.def(C,"$title",E=function(){return this.native.title},E.$$arity=0),e.def(C,"$title=",x=function(e){return this.native.title=e},x.$$arity=1),o($(z,"Browser")["$supports?"]("Document.view"))?(e.def(C,"$window",S=function(){var e=this;return $(z,"Window").$new(e.native.defaultView)},S.$$arity=0),n&&"window"):o($(z,"Browser")["$supports?"]("Document.window"))?(e.def(C,"$window",q=function(){var e=this;return $(z,"Window").$new(e.native.parentWindow)},q.$$arity=0),n&&"window"):(e.def(C,"$window",N=function(){return this.$raise($(z,"NotImplementedError"),"window from document unsupported")},N.$$arity=0),n&&"window")}(p[0],$(p,"Element"),p)}(p[0],p)}(t[0],t)},Opal.modules["browser/dom/document_fragment"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass;return function(e,t){var i=[$(e,"Browser")].concat(t);return function(e,t){var i=[$(e,"DOM")].concat(t);return function(e,$super,t){[a(e,$super,"DocumentFragment")].concat(t);return n}(i[0],r(i,"Element"),i)}(i[0],i)}(t[0],t)},Opal.modules["browser/dom/builder"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.truthy,u=e.hash2,l=e.send;return e.add_stubs(["$<<","$[]=","$to_h","$-","$[]","$each","$===","$call","$raise","$attr_reader","$new","$to_proc","$map","$build","$for","$create_text","$document","$create_element","$merge!","$attributes","$add_class","$on","$inner_html="]),function(t,n){var r,$=i(t,"Utils");[$].concat(n);e.defs($,"$heredoc",r=function(e){return e},r.$$arity=1)}(a(n,"Paggio"),n),function(t,$super,n){var $,a=o(t,$super,"Element");[a].concat(n);a.$$prototype.on=r,e.def(a,"$on",$=function(){var t,n=$.$$p,a=n||r,i=this,o=r;return n&&($.$$p=null),n&&($.$$p=null),t=e.slice.call(arguments,0,arguments.length),(i.on=s(o=i.on)?o:[])["$<<"]([t,a])},$.$$arity=-1)}($(a(n,"Paggio"),"HTML"),a(n,"BasicObject"),n),function(n,c){var p=[i(n,"Browser")].concat(c);return function(n,c){var p,d,f,_=i(n,"DOM"),h=[_].concat(c);return function(n,$super,i){var c,p,d,f,_,h=o(n,null,"Builder"),y=[h].concat(i);h.$$prototype.builder=h.$$prototype.roots=r,e.defs(h,"$to_h",c=function(){var e=this,t=r;return null==e.builders&&(e.builders=r),e.builders=s(t=e.builders)?t:u([],{})},c.$$arity=0),e.defs(h,"$for",p=function(n){var $=p.$$p,a=$||r,i=this,o=r;return $&&(p.$$p=null),$&&(p.$$p=null),s(a)?(o=[n,a],l(i.$to_h(),"[]=",e.to_a(o)),o[t(o.length,1)]):i.$to_h()["$[]"](n)},p.$$arity=1),e.defs(h,"$build",d=function(t,n){try{var $,i=this;return l(i.$to_h(),"each",[],(($=function(a,i){null==$.$$s||$.$$s;if(null==a&&(a=r),null==i&&(i=r),!s(a["$==="](n)))return r;e.ret(i.$call(t,n))}).$$s=i,$.$$arity=2,$)),i.$raise(a(y,"ArgumentError"),"cannot build unknown item "+n)}catch(o){if(o===e.returner)return o.$v;throw o}},d.$$arity=2),h.$attr_reader("document","element"),e.def(h,"$initialize",f=function(e){var t,n=f.$$p,i=n||r,o=this;return n&&(f.$$p=null),n&&(f.$$p=null),o.document=e,o.builder=l($(a(y,"Paggio"),"HTML"),"new",[],i.$to_proc()),o.roots=l(o.builder.$each(),"map",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=r),a(y,"Builder").$build(n,e)}).$$s=o,t.$$arity=1,t))},f.$$arity=1),e.def(h,"$to_a",_=function(){return this.roots},_.$$arity=0)}(h[0],0,h),l(a(h,"Builder"),"for",[a(h,"String")],((p=function(e,t){null==p.$$s||p.$$s;return null==e&&(e=r),null==t&&(t=r),e.$document().$create_text(t)}).$$s=_,p.$$arity=2,p)),l(a(h,"Builder"),"for",[$($(a(h,"Paggio"),"HTML"),"Element")],((d=function(n,$){var i,o,u,c=null==d.$$s?this:d.$$s,p=r,f=r,_=r,y=r;return null==n&&(n=r),null==$&&($=r),p=n.$document().$create_element($.name),s(a(h,"Hash")["$==="]($.attributes))&&p.$attributes()["$merge!"]($.attributes),l($.class_names,"each",[],((i=function(e){null==i.$$s||i.$$s;return null==e&&(e=r),p.$add_class(e)}).$$s=c,i.$$arity=1,i)),s(f=$.on||r)&&l(f,"each",[],((o=function(t,n){null==o.$$s||o.$$s;return null==t&&(t=r),null==n&&(n=r),l(p,"on",e.to_a(t),n.$to_proc())}).$$s=c,o.$$arity=2,o)),s(_=$.inner_html||r)?(y=[_],l(p,"inner_html=",e.to_a(y)),y[t(y.length,1)]):l($,"each",[],((u=function(e){null==u.$$s||u.$$s;return null==e&&(e=r),p["$<<"](a(h,"Builder").$build(n,e))}).$$s=c,u.$$arity=1,u)),p}).$$s=_,d.$$arity=2,d)),l(a(h,"Builder"),"for",[$(a(h,"DOM"),"Node")],((f=function(e,t){null==f.$$s||f.$$s;return null==e&&(e=r),null==t&&(t=r),t}).$$s=_,f.$$arity=2,f))}(p[0],p)}(n[0],n)},Opal.modules["browser/dom/mutation_observer"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.truthy,u=e.send,l=e.send2,c=e.find_super,p=e.hash2;return e.add_stubs(["$supports?","$include","$===","$==","$type","$new","$[]","$DOM","$alias_native","$call","$map","$convert","$private","$Native","$[]=","$-","$to_n"]),function(n,d){var f=[i(n,"Browser")].concat(d);return function(n,d){var f=[i(n,"DOM")].concat(d);return function(n,$super,i){var d,f,_,h,y,v,m=o(n,null,"MutationObserver"),g=[m].concat(i);return m.$$prototype.native=r,e.defs(m,"$supported?",d=function(){return a(g,"Browser")["$supports?"]("MutationObserver")},d.$$arity=0),m.$include(a(g,"Native")),function(t,$super,n){var i,u,l,c,p,d,f,_=o(t,null,"Record"),h=[_].concat(n);_.$$prototype.native=r,_.$include(a(h,"Native")),e.def(_,"$type",i=function(){var e=r;return e=this.native.type,"attributes"["$==="](e)?"attribute":"childList"["$==="](e)?"tree":"characterData"["$==="](e)?"cdata":r},i.$$arity=0),e.def(_,"$attribute?",u=function(){return this.$type()["$=="]("attribute")},u.$$arity=0),e.def(_,"$tree?",l=function(){return this.$type()["$=="]("tree")},l.$$arity=0),e.def(_,"$cdata?",c=function(){return this.$type()["$=="]("cdata")},c.$$arity=0),e.def(_,"$added",p=function(){var e=this,t=r;return t=s(null!=e.native.addedNodes)?$(a(h,"Native"),"Array").$new(e.native.addedNodes):[],a(h,"NodeSet")["$[]"](t)},p.$$arity=0),e.def(_,"$removed",d=function(){var e=this,t=r;return t=s(null!=e.native.removedNodes)?$(a(h,"Native"),"Array").$new(e.native.removedNodes):[],a(h,"NodeSet")["$[]"](t)},d.$$arity=0),e.def(_,"$target",f=function(){var e=this;return e.$DOM(e.native.target)},f.$$arity=0),_.$alias_native("old","oldValue"),_.$alias_native("name","attributeName"),_.$alias_native("namespace","attributeNamespace")}(g[0],0,g),e.def(m,"$initialize",f=function(){var e,t=f.$$p,n=t||r,i=this;t&&(f.$$p=null),t&&(f.$$p=null);var o=function(t){return n.$call(u(t,"map",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=r),$($($(a(g,"Browser"),"DOM"),"MutationObserver"),"Record").$new(t)}).$$s=i,e.$$arity=1,e)))};return l(i,c(i,"initialize",f,!1,!0),"initialize",[new window.MutationObserver(o)],null)},f.$$arity=0),e.def(m,"$observe",_=function(e,t){var n=this;return null==t&&(t=r),s(t)||(t=p(["children","tree","attributes","cdata"],{children:!0,tree:!0,attributes:"old",cdata:"old"})),n.native.observe(a(g,"Native").$convert(e),n.$convert(t)),n},_.$$arity=-2),e.def(m,"$take",h=function(){var e,t=this;return u(t.native.takeRecords(),"map",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=r),a(g,"Record").$new(t)}).$$s=t,e.$$arity=1,e))},h.$$arity=0),e.def(m,"$disconnect",y=function(){return this.native.disconnect()},y.$$arity=0),m.$private(),e.def(m,"$convert",v=function(n){var $=r,a=r,i=r,o=r,l=r;return $=this.$Native({}),s(n["$[]"]("children"))&&(a=["childList",!0],u($,"[]=",e.to_a(a)),a[t(a.length,1)]),s(n["$[]"]("tree"))&&(a=["subtree",!0],u($,"[]=",e.to_a(a)),a[t(a.length,1)]),s(i=n["$[]"]("attributes"))&&(a=["attributes",!0],u($,"[]=",e.to_a(a)),a[t(a.length,1)],i["$=="]("old")&&(a=["attributeOldValue",!0],u($,"[]=",e.to_a(a)),a[t(a.length,1)])),s(o=n["$[]"]("filter"))&&(a=["attributeFilter",o],u($,"[]=",e.to_a(a)),a[t(a.length,1)]),s(l=n["$[]"]("cdata"))&&(a=["characterData",!0],u($,"[]=",e.to_a(a)),a[t(a.length,1)],l["$=="]("old")&&(a=["characterDataOldValue",!0],u($,"[]=",e.to_a(a)),a[t(a.length,1)])),$.$to_n()},v.$$arity=1),r&&"convert"}(f[0],0,f)}(f[0],f)}(n[0],n)},Opal.modules["browser/dom"]=function(e){var t=e.top,n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.truthy,s=e.gvars,u=e.send,l=e.klass;return null==s.window&&(s.window=r),e.add_stubs(["$require","$DOM","$shift","$to_a","$new","$to_proc","$==","$length","$first","$native?","$===","$try_convert","$raise","$document"]),t.$require("browser/dom/node_set"),t.$require("browser/dom/node"),t.$require("browser/dom/attribute"),t.$require("browser/dom/character_data"),t.$require("browser/dom/text"),t.$require("browser/dom/cdata"),t.$require("browser/dom/comment"),t.$require("browser/dom/element"),t.$require("browser/dom/document"),t.$require("browser/dom/document_fragment"),t.$require("browser/dom/builder"),t.$require("browser/dom/mutation_observer"),function(t,n){var l,c,p=i(t,"Kernel"),d=[p].concat(n);e.def(p,"$XML",l=function(e){var t,n=this;return window.DOMParser?t=(new DOMParser).parseFromString(e,"text/xml"):((t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e)),n.$DOM(t)},l.$$arity=1),e.def(p,"$DOM",c=function(){var t,n,i=c.$$p,l=i||r,p=this,f=r,_=r,h=r,y=r,v=r;if(null==s.document&&(s.document=r),i&&(c.$$p=null),i&&(c.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,o(l))return f=o(_=n.$shift())?_:s.document,(h=u($($(a(d,"Browser"),"DOM"),"Builder"),"new",[f],l.$to_proc()).$to_a()).$length()["$=="](1)?h.$first():$($(a(d,"Browser"),"DOM"),"NodeSet").$new(h);if(y=n.$shift(),f=o(v=n.$shift())?v:s.document,o(p["$native?"](y)))return $($(a(d,"Browser"),"DOM"),"Node").$new(y);if(o($($(a(d,"Browser"),"DOM"),"Node")["$==="](y)))return y;if(o(a(d,"String")["$==="](y))){var m=a(d,"Native").$try_convert(f).createElement("div");return m.innerHTML=y,p.$DOM(1==m.childNodes.length?m.childNodes[0]:m)}return p.$raise(a(d,"ArgumentError"),"argument not DOM convertible")},c.$$arity=-1)}(n[0],n),function(t,n){var $=[i(t,"Browser")].concat(n);(function(t,$super,n){var $,a=l(t,null,"Window");[a].concat(n);a.$$prototype.native=r,e.def(a,"$document",$=function(){var e=this;return e.$DOM(e.native.document)},$.$$arity=0)})($[0],0,$)}(n[0],n),s.document=s.window.$document()},Opal.modules["browser/css/declaration"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.truthy,u=e.send,l=e.range;return e.add_stubs(["$include","$new","$each","$[]=","$-","$to_proc","$important","$name","$value","$to_s","$enum_for","$[]","$alias_native","$end_with?"]),function(n,c){var p=[i(n,"Browser")].concat(c);return function(n,c){var p=[i(n,"CSS")].concat(c);return function(n,$super,i){var c,p,d,f,_,h,y,v,m,g,b=o(n,null,"Declaration"),w=[b].concat(i);return b.$$prototype.native=r,b.$include(a(w,"Native")),b.$include(a(w,"Enumerable")),e.def(b,"$rule",c=function(){var e=this;return s("undefined"!=typeof e.native.parentRule)?a(w,"Rule").$new(e.native.parentRule):r},c.$$arity=0),e.def(b,"$assign",p=function(n){var $,a=this;return u(n,"each",[],(($=function(n,a){var i=null==$.$$s?this:$.$$s,o=r;return null==n&&(n=r),null==a&&(a=r),o=[n,a],u(i,"[]=",e.to_a(o)),o[t(o.length,1)]}).$$s=a,$.$$arity=2,$)),a},p.$$arity=1),e.def(b,"$replace",d=function(e){return this.native.cssText=e},d.$$arity=1),e.def(b,"$apply",f=function(){var e,t=f.$$p,n=t||r,i=this;return t&&(f.$$p=null),t&&(f.$$p=null),u(u($($(a(w,"Paggio"),"CSS"),"Definition"),"new",[],n.$to_proc()),"each",[],((e=function(t){var n=null==e.$$s?this:e.$$s;return null==n.native&&(n.native=r),null==t&&(t=r),s(t.$important())?n.native.setProperty(t.$name(),t.$value(),"important"):n.native.setProperty(t.$name(),t.$value(),"")}).$$s=i,e.$$arity=1,e))},f.$$arity=0),e.def(b,"$delete",_=function(e){return this.native.removeProperty(e)},_.$$arity=1),e.def(b,"$[]",h=function(e){var t=this.native.getPropertyValue(e);return null==t||""===t?r:t},h.$$arity=1),e.def(b,"$[]=",y=function(e,t){return this.native.setProperty(e,t.$to_s(),"")},y.$$arity=2),e.def(b,"$important?",v=function(e){return"important"==this.native.getPropertyPriority(e)},v.$$arity=1),e.def(b,"$each",m=function(){var t=m.$$p,n=t||r,$=this;if(t&&(m.$$p=null),t&&(m.$$p=null),n===r)return $.$enum_for("each");for(var a=0,i=$.native.length;at:e["$>"](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$),i=e.module,o=e.klass,s=e.send,u=e.hash2,l=e.truthy;return e.add_stubs(["$attr_accessor","$attr_reader","$private","$tap","$new","$each","$instance_variable_set","$dup","$instance_variable_get","$build","$to_proc","$instance_eval","$[]=","$-","$define_rule","$coerce_native_hash_values","$rules","$define_all_others","$props_wrapper","$reject","$[]","$errors=","$allow_undefined_props?","$validate_undefined","$defined_props","$validate_required","$validate_types","$validate_allowed","$errors","$inject","$select","$include?","$keys","$!","$define_param","$is_a?","$type_check","$>","$length","$validate_value_array","$nil?","$respond_to?","$_react_param_conversion","$<<","$each_with_index","$Native"]),function(r,c){var p=[i(r,"Hyperstack")].concat(c);return function(r,c){var p=[i(r,"Internal")].concat(c);return function(r,c){var p=[i(r,"Component")].concat(c);return function(r,$super,i){var c,p,d,f,_,h,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I,D=o(r,null,"Validator"),H=[D].concat(i);return D.$$prototype.allow_undefined_props=D.$$prototype.rules=D.$$prototype.errors=$,D.$attr_accessor("errors"),D.$attr_reader("props_wrapper"),D.$private("errors","props_wrapper"),e.def(D,"$copy",c=function(e){var t,n=this;return s(a(H,"Validator").$new(e),"tap",[],((t=function(e){var n,r=null==t.$$s?this:t.$$s;return null==e&&(e=$),s(["@allow_undefined_props","@rules","@errors"],"each",[],((n=function(t){var r=null==n.$$s?this:n.$$s;return null==t&&(t=$),e.$instance_variable_set(t,r.$instance_variable_get(t).$dup())}).$$s=r,n.$$arity=1,n))}).$$s=n,t.$$arity=1,t))},c.$$arity=1),e.def(D,"$initialize",p=function(e){var t=this;return null==e&&(e=a(H,"Class").$new(a(H,"PropsWrapper"))),t.props_wrapper=e},p.$$arity=-1),e.defs(D,"$build",d=function(){var e=d.$$p,t=e||$,n=this;return e&&(d.$$p=null),e&&(d.$$p=null),s(n.$new(),"build",[],t.$to_proc())},d.$$arity=0),e.def(D,"$build",f=function(){var e=f.$$p,t=e||$,n=this;return e&&(f.$$p=null),e&&(f.$$p=null),s(n,"instance_eval",[],t.$to_proc()),n},f.$$arity=0),e.def(D,"$requires",_=function(n,r){var a=this,i=$;return null==r&&(r=u([],{})),i=["required",!0],s(r,"[]=",e.to_a(i)),i[t(i.length,1)],a.$define_rule(n,r)},_.$$arity=-2),e.def(D,"$optional",h=function(n,r){var a=this,i=$;return null==r&&(r=u([],{})),i=["required",!1],s(r,"[]=",e.to_a(i)),i[t(i.length,1)],a.$define_rule(n,r)},h.$$arity=-2),e.def(D,"$event",y=function(n){var r=this,i=$;return i=[n,r.$coerce_native_hash_values(u(["default","type","allow_nil"],{"default":$,type:a(H,"Proc"),allow_nil:!0}))],s(r.$rules(),"[]=",e.to_a(i)),i[t(i.length,1)]},y.$$arity=1),e.def(D,"$all_other_params",v=function(e){var t,n=this;return n.allow_undefined_props=!0,s(n.$props_wrapper(),"define_all_others",[e],((t=function(e){var n,r=null==t.$$s?this:t.$$s;return null==e&&(e=$),s(e,"reject",[],((n=function(e,t){var r=null==n.$$s?this:n.$$s;return null==e&&(e=$),null==t&&(t=$),r.$rules()["$[]"](e)}).$$s=r,n.$$arity=2,n))}).$$s=n,t.$$arity=1,t))},v.$$arity=1),e.def(D,"$validate",m=function(n){var r,a=this,i=$;return i=[[]],s(a,"errors=",e.to_a(i)),i[t(i.length,1)],l(a["$allow_undefined_props?"]())||a.$validate_undefined(n),n=a.$coerce_native_hash_values(a.$defined_props(n)),a.$validate_required(n),s(n,"each",[],((r=function(e,t){var n=null==r.$$s?this:r.$$s;return null==e&&(e=$),null==t&&(t=$),n.$validate_types(e,t),n.$validate_allowed(e,t)}).$$s=a,r.$$arity=2,r)),a.$errors()},m.$$arity=1),e.def(D,"$default_props",g=function(){var n,r,a=this;return s(s(a.$rules(),"select",[],((n=function(e,t){null==n.$$s||n.$$s;return null==e&&(e=$),null==t&&(t=$),t.$keys()["$include?"]("default")}).$$s=a,n.$$arity=2,n)),"inject",[u([],{})],((r=function(n,a){null==r.$$s||r.$$s;var i,o,u=$;return null==n&&(n=$),null==a&&(a=$),o=a,u=[null==(i=e.to_ary(o))[0]?$:i[0],(null==i[1]?$:i[1])["$[]"]("default")],s(n,"[]=",e.to_a(u)),u[t(u.length,1)],n}).$$s=a,r.$$arity=2,r.$$has_top_level_mlhs_arg=!0,r))},g.$$arity=0),D.$private(),e.def(D,"$defined_props",b=function(e){var t,n=this;return s(e,"select",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=$),n.$rules().$keys()["$include?"](e)}).$$s=n,t.$$arity=1,t))},b.$$arity=1),e.def(D,"$allow_undefined_props?",w=function(){return this.allow_undefined_props["$!"]()["$!"]()},w.$$arity=0),e.def(D,"$rules",k=function(){var e=this,t=$;return e.rules=l(t=e.rules)?t:u(["children"],{children:u(["required"],{required:!1})})},k.$$arity=0),e.def(D,"$define_rule",O=function(n,r){var a=this,i=$;return null==r&&(r=u([],{})),i=[n,a.$coerce_native_hash_values(r)],s(a.$rules(),"[]=",e.to_a(i)),i[t(i.length,1)],a.$props_wrapper().$define_param(n,r["$[]"]("type"),r["$[]"]("alias"))},O.$$arity=-2),e.def(D,"$errors",E=function(){var e=this,t=$;return e.errors=l(t=e.errors)?t:[]},E.$$arity=0),e.def(D,"$validate_types",x=function(e,t){var r=this,i=$,o=$;return l(i=r.$rules()["$[]"](e)["$[]"]("type"))?l(i["$is_a?"](a(H,"Array"))["$!"]())?(o=r.$rules()["$[]"](e)["$[]"]("allow_nil")["$!"]()["$!"](),r.$type_check("`"+e+"`",t,i,o)):l(n(i.$length(),0))?r.$validate_value_array(e,t):(o=r.$rules()["$[]"](e)["$[]"]("allow_nil")["$!"]()["$!"](),r.$type_check("`"+e+"`",t,a(H,"Array"),o)):$},x.$$arity=2),e.def(D,"$type_check",S=function(e,t,n,r){var a=this,i=$,o=$;return l(l(i=r)?t["$nil?"]():i)?$:l(t["$is_a?"](n))?$:l(l(o=n["$respond_to?"]("_react_param_conversion"))?n.$_react_param_conversion(t,"validate_only"):o)?$:a.$errors()["$<<"]("Provided prop "+e+" could not be converted to "+n)},S.$$arity=4),e.def(D,"$validate_allowed",q=function(e,t){var n=this,r=$;return l(r=n.$rules()["$[]"](e)["$[]"]("values"))?l(r["$include?"](t))?$:n.$errors()["$<<"]("Value `"+t+"` for prop `"+e+"` is not an allowed value"):$},q.$$arity=2),e.def(D,"$validate_required",N=function(e){var n,r=this;return s(t(r.$rules().$keys(),e.$keys()),"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=$),l(t.$rules()["$[]"](e)["$[]"]("required"))?t.$errors()["$<<"]("Required prop `"+e+"` was not specified"):$}).$$s=r,n.$$arity=1,n))},N.$$arity=1),e.def(D,"$validate_undefined",C=function(e){var n,r=this;return s(t(e.$keys(),r.$rules().$keys()),"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=$),t.$errors()["$<<"]("Provided prop `"+e+"` not specified in spec")}).$$s=r,n.$$arity=1,n))},C.$$arity=1),e.def(D,"$validate_value_array",z=function(t,n){var r,i=this,o=$,u=$;try{return o=i.$rules()["$[]"](t)["$[]"]("type"),u=i.$rules()["$[]"](t)["$[]"]("allow_nil")["$!"]()["$!"](),s(n,"each_with_index",[],((r=function(e,n){var a=null==r.$$s?this:r.$$s;return null==e&&(e=$),null==n&&(n=$),a.$type_check("`"+t+"`["+n+"]",a.$Native(e),o["$[]"](0),u)}).$$s=i,r.$$arity=2,r))}catch(l){if(!e.rescue(l,[a(H,"NoMethodError")]))throw l;try{return i.$errors()["$<<"]("Provided prop `"+t+"` was not an Array")}finally{e.pop_exception()}}},z.$$arity=2),e.def(D,"$coerce_native_hash_values",I=function(n){var r,a=this;return s(n,"each",[],((r=function(a,i){var o=null==r.$$s?this:r.$$s,u=$;return null==a&&(a=$),null==i&&(i=$),u=[a,o.$Native(i)],s(n,"[]=",e.to_a(u)),u[t(u.length,1)]}).$$s=a,r.$$arity=2,r))},I.$$arity=1),$&&"coerce_native_hash_values"}(p[0],0,p)}(p[0],p)}(p[0],p)}(r[0],r)},Opal.modules["hyperstack/ext/component/string"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass);return function(t,$super,$){var a,i=r(t,null,"String");[i].concat($);return e.def(i,"$event_camelize",a=function(){return this.replace(/(^|_)([^_]+)/g,function(e,t,n){return!0?n.substr(0,1).toUpperCase()+n.substr(1):n})},a.$$arity=0),n&&"event_camelize"}(t[0],0,t)},Opal.modules["hyperstack/component/element"]=function(e){var t=e.top,n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.truthy,u=e.hash2,l=e.send,c=e.alias,p=e.hash +;return e.add_stubs(["$require","$attr_reader","$attr_accessor","$new","$is_a?","$!","$empty?","$raise","$==","$convert_string","$set_native_attributes","$_update_ref","$[]","$properties","$element_type","$ref","$dom_node","$each","$!=","$strip","$merge_event_prop!","$to_proc","$shallow_to_n","$render","$convert_props","$block","$delete","$private","$=~","$merge_component_event_prop!","$gsub","$include?","$event_camelize","$merge_built_in_event_prop!","$key_code","$instance_variable_get","$merge!","$Array","$ignore_bulk_updates"]),t.$require("hyperstack/ext/component/string"),function(t,n){var d=[i(t,"Hyperstack")].concat(n);return function(t,n){var d=[i(t,"Component")].concat(n);return function(t,$super,n){var i,d,f,_,h,y,v,m,g,b,w,k,O,E,x=o(t,null,"Element"),S=[x].concat(n);return x.$$prototype.props=x.$$prototype._props_as_hash=x.$$prototype._child_element=x.$$prototype._ref=x.$$prototype.properties=r,x.$attr_reader("type"),x.$attr_reader("element_type"),x.$attr_reader("properties"),x.$attr_reader("block"),x.$attr_reader("to_n"),x.$attr_accessor("waiting_on_resources"),e.def(x,"$set_native_attributes",i=function(e){var t=this;return t.key=e.key,t.props=e.props,t.ref=e.ref,t.type=e.type,t._owner=e._owner,t._props_as_hash=a(S,"Hash").$new(t.props)},i.$$arity=1),e.def(x,"$props",d=function(){return this._props_as_hash},d.$$arity=0),e.def(x,"$convert_string",f=function(e,t,n,$){var i=this,o=r;return s(e["$is_a?"])&&s(e["$is_a?"](a(S,"String")))?(s(s(o=n["$empty?"]()["$!"]())?o:$)&&i.$raise("Internal Error Element.new called with string, but non-nil props or block"),t["$=="]("wrap_child")?React.createElement(React.Fragment,null,[e]):React.createElement(e,null)):e},f.$$arity=4),e.def(x,"$initialize",_=function(t,n,$,i){var o=this,l=r;null==n&&(n=r),null==$&&($=u([],{})),null==i&&(i=r);try{return t=o.$convert_string(t,n,$,i),n["$=="]("wrap_child")||(o.element_type=n),o.properties=s(l=s(void 0===$)?r:$)?l:u([],{}),o.block=i,o.$$typeof=t.$$typeof,o.to_n=o,o.$set_native_attributes(t)}catch(c){if(!e.rescue(c,[a(S,"Exception")]))throw c;try{return r}finally{e.pop_exception()}}},_.$$arity=-2),e.def(x,"$children",h=function(){return this.props.children},h.$$arity=0),e.def(x,"$_update_ref",y=function(e){var t=this;return t._ref=e,s(t._child_element)?t._child_element.$_update_ref(e):r},y.$$arity=1),e.def(x,"$ref",v=function(){var e=this;return s(e._ref)?e._ref:(s(e.$properties()["$[]"]("ref"))&&e.$raise("The instance of "+e.$element_type()+" has not been mounted yet"),e.$raise("Attempt to get a ref on "+e.$element_type()+" which is a static component."))},v.$$arity=0),e.def(x,"$dom_node",m=function(){var e=this;return s("function"==typeof e.$ref().$dom_node)?e.$ref().$dom_node():e.$ref()},m.$$arity=0),e.def(x,"$on",g=function(){var t,n,$=g.$$p,a=$||r,i=this,o=r;return $&&(g.$$p=null),$&&(g.$$p=null),t=e.slice.call(arguments,0,arguments.length),o=!1,l(t,"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s,$=r;return null==e&&(e=r),s(s($=e)?e.$strip()["$!="](""):$)?(l(t,"merge_event_prop!",[e],a.$to_proc()),o=!0):r}).$$s=i,n.$$arity=1,n)),s(o)&&i.$set_native_attributes(React.cloneElement(i,i.properties.$shallow_to_n())),i},g.$$arity=-1),e.def(x,"$render",b=function(){var t,n,r=this;return t=e.slice.call(arguments,0,arguments.length),s((n=t)["$empty?"]())?$($($(a(S,"Hyperstack"),"Internal"),"Component"),"RenderingContext").$render(r):(n=l($($($(a(S,"Hyperstack"),"Internal"),"Component"),"ReactWrapper"),"convert_props",[r.$element_type(),r.properties].concat(e.to_a(n))),r._child_element=$($($(a(S,"Hyperstack"),"Internal"),"Component"),"RenderingContext").$render(a(S,"Element").$new(React.cloneElement(r,n.$shallow_to_n()),r.$element_type(),n,r.$block())))},b.$$arity=-1),e.def(x,"$~",w=function(){var e=this;return $($($(a(S,"Hyperstack"),"Internal"),"Component"),"RenderingContext").$delete(e)},w.$$arity=0),c(x,"as_node","~"),c(x,"delete","~"),x.$private(),e.def(x,"$merge_event_prop!",k=function(t){var n,i=k.$$p,o=i||r,u=this,c=r;return i&&(k.$$p=null),i&&(k.$$p=null),s(t["$=~"](/^<(.+)>$/))?l(u,"merge_component_event_prop!",[t.$gsub(/^<(.+)>$/,"\\1")],o.$to_proc()):s($(a(S,"Event"),"BUILT_IN_EVENTS")["$include?"](c="on"+t.$event_camelize()))?l(u,"merge_built_in_event_prop!",[c],o.$to_proc()):t["$=="]("enter")?l(u,"merge_built_in_event_prop!",["onKeyDown"],((n=function(t){null==n.$$s||n.$$s;return null==t&&(t=r),t.$key_code()["$=="](13)?e.yield1(o,t):r}).$$s=u,n.$$arity=1,n)):s(u.$element_type().$instance_variable_get("@native_import"))?l(u,"merge_component_event_prop!",[c],o.$to_proc()):l(u,"merge_component_event_prop!",["on_"+t],o.$to_proc())},k.$$arity=1),e.def(x,"$merge_built_in_event_prop!",O=function(t){var n=O.$$p,i=n||r,o=this;return n&&(O.$$p=null),n&&(O.$$p=null),o.properties["$merge!"](p(t,function(){var t,n=arguments[0];return 0!=arguments.length&&n.nativeEvent?arguments.length>1?(t=Array.prototype.slice.call(arguments).slice(1,arguments.length),l($($(a(S,"Internal"),"State"),"Mapper"),"ignore_bulk_updates",[a(S,"Event").$new(n)].concat(e.to_a(t)),i.$to_proc())):l($($(a(S,"Internal"),"State"),"Mapper"),"ignore_bulk_updates",[a(S,"Event").$new(n)],i.$to_proc()):e.yieldX(i,e.to_a(o.$Array(arguments)))}))},O.$$arity=1),e.def(x,"$merge_component_event_prop!",E=function(t){var n=E.$$p,$=n||r,a=this;return n&&(E.$$p=null),a.properties["$merge!"](p(t,function(){return e.yieldX($,e.to_a(a.$Array(arguments)))}))},E.$$arity=1),r&&"merge_component_event_prop!"}(d[0],0,d)}(d[0],d)}(n[0],n)},Opal.modules["hyperstack/component/native_library"]=function(Opal){function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$send=Opal.send,$truthy=Opal.truthy,$range=Opal.range,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$each","$lookup_native_name","$create_component_wrapper","$create_library_wrapper","$raise","$name","$scope_native_name","$+","$downcase","$[]","$import_const_from_native","$const_defined?","$const_get","$render","$to_proc","$private","$native_react_component?","$const_set","$imports","$new","$class_eval","$include"]),function($base,$parent_nesting){var self=$module($base,"Hyperstack"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Component"),$nesting=[self].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"NativeLibrary"),$nesting=[self].concat($parent_nesting);return function(self,$parent_nesting){var $nesting=[self].concat($parent_nesting),$imports$1,$rename$2,$import_const_from_native$4,$const_missing$5,$method_missing$6,$lookup_native_name$7,$scope_native_name$8,$create_component_wrapper$9,$create_library_wrapper$11;Opal.def(self,"$imports",$imports$1=function(e){var t=this;return t.__hyperstack_component_native_prefix=e+".",t},$imports$1.$$arity=1),Opal.def(self,"$rename",$rename$2=function(e){var t,n=this;return $send(e,"each",[],((t=function(e,n){var r=null==t.$$s?this:t.$$s,$=nil,a=nil;return null==e&&(e=nil),null==n&&(n=nil),$=r.$lookup_native_name(e),$truthy(r.$lookup_native_name(e))?$truthy(a=r.$create_component_wrapper(r,$,n))?a:r.$create_library_wrapper(r,$,n):r.$raise("class "+r.$name()+" < Hyperstack::Component::NativeLibrary could not import "+e+". Native value "+r.$scope_native_name(e)+" is undefined.")}).$$s=n,t.$$arity=2,t))},$rename$2.$$arity=1),Opal.def(self,"$import_const_from_native",$import_const_from_native$4=function(e,t,n){var r=this,$=nil,a=nil,i=nil,o=nil,s=nil;return $=$truthy(a=r.$lookup_native_name(t))?a:r.$lookup_native_name($rb_plus(t["$[]"](0).$downcase(),t["$[]"]($range(1,-1,!1)))),$truthy(i=$)?$truthy(o=r.$create_component_wrapper(e,$,t))?o:$truthy(s=n)?r.$create_library_wrapper(e,$,t):s:i},$import_const_from_native$4.$$arity=3),Opal.def(self,"$const_missing",$const_missing$5=function(e){var t=$const_missing$5.$$p,n=this,r=nil;return t&&($const_missing$5.$$p=null),$truthy(r=n.$import_const_from_native(n,e,!0))?r:$send2(n,$find_super(n,"const_missing",$const_missing$5,!1,!0),"const_missing",[e],t)},$const_missing$5.$$arity=1),Opal.def(self,"$method_missing",$method_missing$6=function(e){var t,n=$method_missing$6.$$p,r=n||nil,$=this,a=nil,i=nil;return n&&($method_missing$6.$$p=null),n&&($method_missing$6.$$p=null),t=Opal.slice.call(arguments,1,arguments.length),$truthy($["$const_defined?"](e,!1))&&(a=$.$const_get(e)),a=$truthy(i=a)?i:$.$import_const_from_native($,e,!1),$truthy(a)||$.$raise("could not import a react component named: "+$.$scope_native_name(e)),$send($$$($$$($$$($$($nesting,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",[a].concat(Opal.to_a(t)),r.$to_proc())},$method_missing$6.$$arity=-2),self.$private(),Opal.def(self,"$lookup_native_name",$lookup_native_name$7=function $$lookup_native_name(js_name){var self=this,native_name=nil;try{return native_name=self.$scope_native_name(js_name),eval(native_name)!==undefined&&native_name}catch($err){if(!Opal.rescue($err,[$$($nesting,"Exception")]))throw $err;try{return nil}finally{Opal.pop_exception()}}},$lookup_native_name$7.$$arity=1),Opal.def(self,"$scope_native_name",$scope_native_name$8=function(e){var t=this;return null==t.__hyperstack_component_native_prefix&&(t.__hyperstack_component_native_prefix=nil),""+t.__hyperstack_component_native_prefix+e},$scope_native_name$8.$$arity=1),Opal.def(self,"$create_component_wrapper",$create_component_wrapper$9=function(e,t,n){var r,$=this,a=nil;return $truthy($$$($$$($$$($$($nesting,"Hyperstack"),"Internal"),"Component"),"ReactWrapper")["$native_react_component?"](t))?(a=e.$const_set(n,$$($nesting,"Class").$new($$($nesting,"NativeLibrary")).$imports(t)),$send(a,"class_eval",[],((r=function(){var e=null==r.$$s?this:r.$$s;return e.$include($$($nesting,"Component")),e.$imports(t)}).$$s=$,r.$$arity=0,r)),a):nil},$create_component_wrapper$9.$$arity=3),Opal.def(self,"$create_library_wrapper",$create_library_wrapper$11=function(e,t,n){return e.$const_set(n,$$($nesting,"Class").$new($$($nesting,"NativeLibrary")).$imports(t))},$create_library_wrapper$11.$$arity=3)}(Opal.get_singleton_class(self),$nesting),self.$imports("NativeLibrary")}($nesting[0],null,$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["hyperstack/internal/component/react_wrapper"]=function(Opal){function $rb_minus(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$hash2=Opal.hash2,$send=Opal.send,$class_variable_get=Opal.class_variable_get,$truthy=Opal.truthy,$lambda=Opal.lambda,$range=Opal.range;return Opal.add_stubs(["$require","$instance_variable_set","$[]=","$-","$raise","$stateless?","$eval_native_react_component","$add_after_error_hook_to_native","$[]","$!","$method_defined?","$respond_to?","$native_mixins","$to_n","$static_call_backs","$new","$name","$default_props","$prop_types","$callbacks?","$<<","$is_a?","$create_native_react_class","$include?","$_update_ref","$convert_props","$shallow_to_n","$flatten","$call","$each","$split","$==","$merge","$lower_camelize","$join","$to_key","$ignore_mutations","$const_defined?","$gsub","$html_attr?","$private","$first","$concat","$map","$+","$upcase"]),self.$require("hyperstack/component/native_library"),function($base,$parent_nesting){var self=$module($base,"Hyperstack"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Internal"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Component"),$nesting=[self].concat($parent_nesting);return function($base,$super,$parent_nesting){var self=$klass($base,$super,"ReactWrapper"),$nesting=[self].concat($parent_nesting),$ReactWrapper_stateless$ques$1,$ReactWrapper_import_native_component$2,$ReactWrapper_eval_native_react_component$3,$ReactWrapper_native_react_component$ques$4,$ReactWrapper_add_after_error_hook$5,$ReactWrapper_add_after_error_hook_to_native$6,$ReactWrapper_create_native_react_class$7,$ReactWrapper_create_element$8,$ReactWrapper_clear_component_class_cache$10,$ReactWrapper_convert_props$11,$ReactWrapper_lower_camelize$22;return $class_variable_set($nesting[0],"@@component_classes",$hash2([],{})),Opal.defs(self,"$stateless?",$ReactWrapper_stateless$ques$1=function(e){return"symbol"==typeof e||"function"==typeof e&&!(e.prototype&&e.prototype.isReactComponent)},$ReactWrapper_stateless$ques$1.$$arity=1),Opal.defs(self,"$import_native_component",$ReactWrapper_import_native_component$2=function(e,t){var n=nil;return e.$instance_variable_set("@native_import",!0),n=[e,t],$send($class_variable_get($nesting[0],"@@component_classes",!1),"[]=",Opal.to_a(n)),n[$rb_minus(n.length,1)]},$ReactWrapper_import_native_component$2.$$arity=2),Opal.defs(self,"$eval_native_react_component",$ReactWrapper_eval_native_react_component$3=function $$eval_native_react_component(name){var self=this,component=nil,is_component_class=nil,$ret_or_1=nil,$ret_or_2=nil,has_render_method=nil,$ret_or_3=nil,$ret_or_4=nil;return component=eval(name),$truthy(component===undefined)&&self.$raise(name+" is not defined"),$truthy(component.__esModule)&&(component=component["default"]),is_component_class=$truthy($ret_or_1=component.prototype!==undefined)?$truthy($ret_or_2=!!component.prototype.isReactComponent)?$ret_or_2:!!component.prototype.render:$ret_or_1,has_render_method="function"==typeof component.render,$truthy($truthy($ret_or_3=$truthy($ret_or_4=is_component_class)?$ret_or_4:self["$stateless?"](component))?$ret_or_3:has_render_method)||self.$raise("does not appear to be a native react component"),component},$ReactWrapper_eval_native_react_component$3.$$arity=1),Opal.defs(self,"$native_react_component?",$ReactWrapper_native_react_component$ques$4=function(e){var t=this;null==e&&(e=nil);try{return!!$truthy(e)&&(t.$eval_native_react_component(e),!0)}catch(n){if(!Opal.rescue(n,[$$($nesting,"Exception")]))throw n;try{return!1}finally{Opal.pop_exception()}}},$ReactWrapper_native_react_component$ques$4.$$arity=-1),Opal.defs(self,"$add_after_error_hook",$ReactWrapper_add_after_error_hook$5=function(e){return this.$add_after_error_hook_to_native($class_variable_get($nesting[0],"@@component_classes",!1)["$[]"](e))},$ReactWrapper_add_after_error_hook$5.$$arity=1),Opal.defs(self,"$add_after_error_hook_to_native",$ReactWrapper_add_after_error_hook_to_native$6=function(e){if(!$truthy(e))return nil;e.prototype.componentDidCatch=function(e,t){this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_did_catch(e,Opal.Hash.$new(t))}},$ReactWrapper_add_after_error_hook_to_native$6.$$arity=1),Opal.defs(self,"$create_native_react_class",$ReactWrapper_create_native_react_class$7=function(e){var t=this,n=nil,r=nil,$=nil,a=nil,i=nil,o=nil;return $truthy("undefined"==typeof createReactClass)&&t.$raise("createReactClass is undefined. Add the 'react-create-class' npm module, and import it as 'createReactClass'"),$truthy(e["$method_defined?"]("render")["$!"]())&&t.$raise("Provided class should define `render` method"),n=e["$method_defined?"]("_render_wrapper")["$!"](),r=$truthy(n)?"render":"_render_wrapper",$truthy($=$class_variable_get($nesting[0],"@@component_classes",!1)["$[]"](e))?$:(a=[e,(i=createReactClass({getInitialState:function(){return this.mixins=$truthy(e["$respond_to?"]("native_mixins"))?e.$native_mixins():[],this.statics=$truthy(e["$respond_to?"]("static_call_backs"))?e.$static_call_backs().$to_n():{},this.__opalInstanceInitializedState=!1,this.__opalInstanceSyncSetState=!0,this.__opalInstance=e.$new(this),this.__opalInstanceInitializedState=!0,this.__opalInstanceSyncSetState=!1,this.__name=e.$name(),{}},displayName:e.$name(),getDefaultProps:function(){return $truthy(e["$respond_to?"]("default_props"))?e.$default_props().$to_n():{}},propTypes:$truthy(e["$respond_to?"]("prop_types"))?e.$prop_types().$to_n():{},componentWillMount:n&&function(){e["$method_defined?"]("component_will_mount")&&(this.__opalInstanceSyncSetState=!0,this.__opalInstance.$component_will_mount(),this.__opalInstanceSyncSetState=!1)},componentDidMount:function(){this.__opalInstance.__hyperstack_component_is_mounted=!0,e["$method_defined?"]("component_did_mount")&&(this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_did_mount())},UNSAFE_componentWillReceiveProps:function(t){e["$method_defined?"]("component_will_receive_props")&&(this.__opalInstanceSyncSetState=!0,this.__opalInstance.$component_will_receive_props(Opal.Hash.$new(t)),this.__opalInstanceSyncSetState=!1)},shouldComponentUpdate:function(t,n){return!e["$method_defined?"]("should_component_update?")||(this.__opalInstanceSyncSetState=!1,this.__opalInstance["$should_component_update?"](Opal.Hash.$new(t),Opal.Hash.$new(n)))},UNSAFE_componentWillUpdate:function(t,n){e["$method_defined?"]("component_will_update")&&(this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_will_update(Opal.Hash.$new(t),Opal.Hash.$new(n)))},componentDidUpdate:function(t,n){e["$method_defined?"]("component_did_update")&&(this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_did_update(Opal.Hash.$new(t),Opal.Hash.$new(n)))},componentWillUnmount:function(){e["$method_defined?"]("component_will_unmount")&&(this.__opalInstanceSyncSetState=!1,this.__opalInstance.$component_will_unmount()),this.__opalInstance.__hyperstack_component_is_mounted=!1},render:function(){return this.__opalInstanceSyncSetState=!1,this.__opalInstance.$send(r).$to_n()}}),$truthy($truthy(o=e["$respond_to?"]("callbacks?"))?e["$callbacks?"]("after_error"):o)&&t.$add_after_error_hook_to_native(i),i)],$send($class_variable_get($nesting[0],"@@component_classes",!1),"[]=",Opal.to_a(a)),a[$rb_minus(a.length,1)])},$ReactWrapper_create_native_react_class$7.$$arity=1),Opal.defs(self,"$create_element",$ReactWrapper_create_element$8=function(e){var t,n,r=$ReactWrapper_create_element$8.$$p,$=r||nil,a=this,i=nil,o=nil,s=nil,u=nil,l=nil,c=nil,p=nil;if(r&&($ReactWrapper_create_element$8.$$p=null),r&&($ReactWrapper_create_element$8.$$p=null),t=Opal.slice.call(arguments,1,arguments.length),i=[],o=$class_variable_get($nesting[0],"@@component_classes",!1)["$[]"](e),$truthy(o))i["$<<"](o);else if($truthy(e["$is_a?"]($$($nesting,"Class"))))i["$<<"](a.$create_native_react_class(e));else if($truthy($truthy(s=$!==nil)?s:$$$($$($nesting,"Tags"),"HTML_TAGS")["$include?"](e)))i["$<<"](e);else{if($truthy(e["$is_a?"]($$($nesting,"String"))))return $$$($$$($$($nesting,"Hyperstack"),"Component"),"Element").$new(e);a.$raise(e+" not implemented")}if(u=nil,$truthy(a["$stateless?"](o))||(l=$lambda(((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=nil),u.$_update_ref(e)}).$$s=a,n.$$arity=1,n))),c=$send(a,"convert_props",[e,$hash2(["ref"],{ref:l})].concat(Opal.to_a(t))),i["$<<"](c.$shallow_to_n()),$truthy($))for(var d=0,f=(p=[$.$call()].$flatten()).length;dt:e["$>"](t)}e.top;var r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.module,s=e.klass,u=e.truthy,l=e.send,c=e.alias;return e.add_stubs(["$attr_accessor","$waiting_on_resources","$raise_if_not_quiet?","$raise","$new","$<<","$!","$remove_nodes_from_args","$build","$waiting_on_resources=","$-","$run_child_block","$to_proc","$dup","$tap","$create_element","$detect","$respond_to?","$is_a?","$last","$collect","$render","$to_s","$>","$length","$first","$delete","$include?","$index","$[]=","$[]","$each","$check_for_component_return","$dummy_value?","$==","$empty?","$pushable_string?","$try","$log","$loading?","$define_method","$unshift","$hyper_component?","$send"]),function(r,p){var d=[o(r,"Hyperstack")].concat(p);(function(r,p){var d=[o(r,"Internal")].concat(p);(function(r,p){var d=[o(r,"Component")].concat(p);(function(r,$super,o){var p=s(r,null,"RenderingContext"),d=[p].concat(o);(function(e,$super,t){[s(e,$super,"NotQuiet")].concat(t)})(d[0],i(d,"Exception"),d),function(r,o){var s,p,d,f,_,h,y,v,m,g,b,w,k,O,E,x=[r].concat(o);r.$attr_accessor("waiting_on_resources"),e.def(r,"$raise_if_not_quiet?",s=function(){var e=this;return null==e.raise_if_not_quiet&&(e.raise_if_not_quiet=$),e.raise_if_not_quiet},s.$$arity=0),e.def(r,"$raise_if_not_quiet=",p=function(e){return this.raise_if_not_quiet=e},p.$$arity=1),e.def(r,"$quiet_test",d=function(e){var t=this,n=$;return u(u(n=e.$waiting_on_resources())?t["$raise_if_not_quiet?"]():n)?t.$raise(i(x,"NotQuiet").$new(e+" is waiting on resources")):$},d.$$arity=1),e.def(r,"$render_string",f=function(e){var t=this,n=$;return null==t.buffer&&(t.buffer=$),t.buffer=u(n=t.buffer)?n:[],t.buffer["$<<"](e)},f.$$arity=1),e.def(r,"$render",_=function(r){var o,s,c,p=_.$$p,d=p||$,f=this,h=$,y=$,v=$,m=$;return null==f.not_outer_most&&(f.not_outer_most=$),null==f.buffer&&(f.buffer=$),p&&(_.$$p=null),p&&(_.$$p=null),o=e.slice.call(arguments,1,arguments.length),s=o,function(){try{return h=f.not_outer_most["$!"](),f.not_outer_most=!0,f.$remove_nodes_from_args(s),f.buffer=u(y=f.buffer)?y:[],u(d)?v=l(f,"build",[],((c=function(){var o,p,f,_=null==c.$$s?this:c.$$s,h=$,y=$,v=$;return null==_.buffer&&(_.buffer=$),h=$,y=[$],l(_,"waiting_on_resources=",e.to_a(y)),y[t(y.length,1)],l(_,"run_child_block",[],d.$to_proc()),u(r)?(v=_.buffer.$dup(),l(l(i(x,"ReactWrapper"),"create_element",[r].concat(e.to_a(s)),((o=function(){null==o.$$s||o.$$s;return v}).$$s=_,o.$$arity=0,o)),"tap",[],((p=function(n){var r,a=null==p.$$s?this:p.$$s,o=$,s=$;return null==n&&(n=$),y=[u(o=h)?o:l(v,"detect",[],(r=function(e){return null==r.$$s||r.$$s,null==e&&(e=$),u(e["$respond_to?"]("waiting_on_resources"))?e.$waiting_on_resources():$},r.$$s=a,r.$$arity=1,r))["$!"]()["$!"]()],l(n,"waiting_on_resources=",e.to_a(y)),y[t(y.length,1)],u(v.$last()["$is_a?"](i(x,"String")))?u(s=n.$waiting_on_resources())?s:(y=[a.$waiting_on_resources()],l(n,"waiting_on_resources=",e.to_a(y)),y[t(y.length,1)]):$}).$$s=_,p.$$arity=1,p))):(v=l(_.buffer,"collect",[],((f=function(n){var r,o,s=null==f.$$s?this:f.$$s;return null==n&&(n=$),u(n["$is_a?"](a(a(i(x,"Hyperstack"),"Component"),"Element")))?(u(n.$waiting_on_resources())||(y=[h],l(n,"waiting_on_resources=",e.to_a(y)),y[t(y.length,1)]),n):l(l(i(x,"RenderingContext"),"render",["span"],((r=function(){null==r.$$s||r.$$s;return n.$to_s()}).$$s=s,r.$$arity=0,r)),"tap",[],((o=function(n){null==o.$$s||o.$$s;return null==n&&(n=$),y=[h],l(n,"waiting_on_resources=",e.to_a(y)),y[t(y.length,1)]}).$$s=s,o.$$arity=1,o))}).$$s=_,f.$$arity=1,f)),u(n(v.$length(),1))?v:v.$first())}).$$s=f,c.$$arity=0,c)):u(r["$is_a?"](a(a(i(x,"Hyperstack"),"Component"),"Element")))?v=r:(v=l(i(x,"ReactWrapper"),"create_element",[r].concat(e.to_a(s))),m=[f.$waiting_on_resources()],l(v,"waiting_on_resources=",e.to_a(m)),m[t(m.length,1)]),f.buffer["$<<"](v),m=[$],l(f,"waiting_on_resources=",e.to_a(m)),m[t(m.length,1)],v}finally{u(h)&&(f.not_outer_most=f.buffer=$)}}()},_.$$arity=-2),e.def(r,"$build",h=function(){var t=h.$$p,n=t||$,r=this,a=$,i=$;return null==r.buffer&&(r.buffer=$),t&&(h.$$p=null),a=r.buffer,r.buffer=[],i=e.yield1(n,r.buffer),r.buffer=a,i},h.$$arity=0),e.def(r,"$delete",y=function(e){var t=this;return null==t.buffer&&(t.buffer=$),t.buffer.$delete(e),t.last_deleted=e,e},y.$$arity=1),c(r,"as_node","delete"),e.def(r,"$rendered?",v=function(e){var t=this;return null==t.buffer&&(t.buffer=$),t.buffer["$include?"](e)},v.$$arity=1),e.def(r,"$replace",m=function(n,r){var a=this,i=$;return null==a.buffer&&(a.buffer=$),i=[a.buffer.$index(n),r],l(a.buffer,"[]=",e.to_a(i)),i[t(i.length,1)]},m.$$arity=2),e.def(r,"$remove_nodes_from_args",g=function(t){var n,r=this,o=$;return u(u(o=t["$[]"](0))?t["$[]"](0)["$is_a?"](i(x,"Hash")):o)?l(t["$[]"](0),"each",[],((n=function(t,r){null==n.$$s||n.$$s;null==t&&(t=$),null==r&&(r=$);try{return u(r["$is_a?"](a(a(i(x,"Hyperstack"),"Component"),"Element")))?r.$delete():$}catch(o){if(!e.rescue(o,[i(x,"Exception")]))throw o;try{return $}finally{e.pop_exception()}}}).$$s=r,n.$$arity=2,n)):$},g.$$arity=1),e.def(r,"$run_child_block",b=function(){var t,n=b.$$p,r=n||$,o=this,s=$;return null==o.last_deleted&&(o.last_deleted=$),null==o.buffer&&(o.buffer=$),n&&(b.$$p=null),s=e.yieldX(r,[]),o.$check_for_component_return(s),u(o["$dummy_value?"](s))?l(i(x,"RenderingContext"),"render",["span"],((t=function(){null==t.$$s||t.$$s;return s.$to_s()}).$$s=o,t.$$arity=0,t)):u(s["$is_a?"](a(a(i(x,"Hyperstack"),"Component"),"Element")))?o.last_deleted["$=="](s)||u(o.buffer["$empty?"]())&&o.buffer["$<<"](s):u(o["$pushable_string?"](s))&&o.buffer["$<<"](s.$to_s()),o.last_deleted=$},b.$$arity=0),e.def(r,"$check_for_component_return",w=function(e){return u(e.$try("hyper_component?"))?a(a(i(x,"Hyperstack"),"Component"),"IsomorphicHelpers").$log("a component's render method returned the component class "+e+", did you mean to say "+e+"()","warning"):$},w.$$arity=1),e.def(r,"$dummy_value?",k=function(e){var t=$;return u(t=e["$respond_to?"]("loading?"))?e["$loading?"]():t},k.$$arity=1),e.def(r,"$pushable_string?",O=function(e){var t=this,n=$,r=$;return null==t.buffer&&(t.buffer=$),u(t.buffer["$empty?"]())?u(n=u(r=e)?e["$respond_to?"]("to_n"):r)?e["$is_a?"](i(x,"Array"))["$!"]():n:e["$is_a?"](i(x,"String"))},O.$$arity=1),e.def(r,"$improper_render",E=function(){return $},E.$$arity=2)}(e.get_singleton_class(p),d)})(d[0],0,d)})(d[0],d)})(d[0],d)}(r[0],r),function(t,$super,n){var r,o,c,p=s(t,null,"Object"),d=[p].concat(n);return l(["span","td","th"],"each",[],((r=function(t){var n,o=null==r.$$s?this:r.$$s;return null==t&&(t=$), +l(o,"define_method",[t],((n=function(){var r,o,s=null==n.$$s?this:n.$$s,c=n.$$p,p=c||$,f=$;return c&&(n.$$p=null),(r=e.slice.call(arguments,0,arguments.length)).$unshift(t),u(u(f=s["$respond_to?"]("hyper_component?"))?s["$hyper_component?"]():f)?l(s,"send",e.to_a(r),p.$to_proc()):l(a(a(a(i(d,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",e.to_a(r),((o=function(){return(null==o.$$s?this:o.$$s).$to_s()}).$$s=s,o.$$arity=0,o))}).$$s=o,n.$$arity=-1,n))}).$$s=p,r.$$arity=1,r)),e.def(p,"$para",o=function(){var t,n,r=o.$$p,s=r||$,c=this,p=$;return r&&(o.$$p=null),r&&(o.$$p=null),(t=e.slice.call(arguments,0,arguments.length)).$unshift("p"),u(u(p=c["$respond_to?"]("hyper_component?"))?c["$hyper_component?"]():p)?l(c,"send",e.to_a(t),s.$to_proc()):l(a(a(a(i(d,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",e.to_a(t),((n=function(){return(null==n.$$s?this:n.$$s).$to_s()}).$$s=c,n.$$arity=0,n))},o.$$arity=-1),e.def(p,"$br",c=function(){var e,t=this,n=$;return u(u(n=t["$respond_to?"]("hyper_component?"))?t["$hyper_component?"]():n)?t.$send("br"):l(a(a(a(i(d,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",[a(a(a(a(i(d,"Hyperstack"),"Internal"),"Component"),"Tags"),"FRAGMENT")],((e=function(){var t,n=null==e.$$s?this:e.$$s;return l(a(a(a(i(d,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",[a(a(a(a(i(d,"Hyperstack"),"Internal"),"Component"),"Tags"),"FRAGMENT")],((t=function(){return(null==t.$$s?this:t.$$s).$to_s()}).$$s=n,t.$$arity=0,t)),a(a(a(i(d,"Hyperstack"),"Internal"),"Component"),"RenderingContext").$render(a(a(a(a(i(d,"Hyperstack"),"Internal"),"Component"),"Tags"),"BR"))}).$$s=t,e.$$arity=0,e))},c.$$arity=0),$&&"br"}(r[0],0,r)},Opal.modules["hyperstack/component/children"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.klass,o=e.send,s=e.lambda,u=e.truthy;return e.add_stubs(["$include","$each","$to_proc","$render","$to_enum","$length","$>","$new","$call","$<<","$alias_method"]),function(n,l){var c=[a(n,"Hyperstack")].concat(l);return function(n,l){var c=[a(n,"Component")].concat(l);return function(n,$super,a){var l,c,p,d,f,_=i(n,null,"Children"),h=[_].concat(a);return _.$$prototype.children=_.$$prototype.length=r,_.$include($(h,"Enumerable")),e.def(_,"$initialize",l=function(e){return this.children=e},l.$$arity=1),e.def(_,"$render",c=function(){return o(this,"each",[],"render".$to_proc())},c.$$arity=0),e.def(_,"$to_proc",p=function(){var e,t=this;return s(((e=function(){return(null==e.$$s?this:e.$$s).$render()}).$$s=t,e.$$arity=0,e))},p.$$arity=0),e.def(_,"$each",d=function(){var e,n=d.$$p,a=n||r,i=this,s=r,l=r;return n&&(d.$$p=null),n&&(d.$$p=null),a===r?o(i,"to_enum",["each"],((e=function(){return(null==e.$$s?this:e.$$s).$length()}).$$s=i,e.$$arity=0,e)):u(t(i.$length(),0))?(s=[],React.Children.forEach(i.children,function(e){l=$(h,"Element").$new(e,"wrap_child"),a.$call(l),s["$<<"](l)}),s):[]},d.$$arity=0),e.def(_,"$length",f=function(){var e=this,t=r;return e.length=u(t=e.length)?t:React.Children.count(e.children)},f.$$arity=0),_.$alias_method("size","length")}(c[0],0,c)}(c[0],c)}(n[0],n)},Opal.modules["hyperstack/internal/component/instance_methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var n=e.top,r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.module,s=e.truthy,u=e.send,l=e.lambda,c=e.hash2;return e.add_stubs(["$require","$new","$include?","$param_accessor_style","$raise","$[]","$dom_node","$==","$=~","$pluralize","$set_or_replace_state_or_prop","$to_proc","$private","$instance_eval","$callbacks?","$class","$RescueWrapper","$call","$after_error_args=","$-","$__hyperstack_component_run_post_render_hooks","$__hyperstack_component_rescue_wrapper","$__hyperstack_router_wrapper","$shallow_to_n"]),n.$require("hyperstack/component/children"),function(n,r){var p=[o(n,"Hyperstack")].concat(r);return function(n,r){var p=[o(n,"Internal")].concat(r);return function(n,r){var p=[o(n,"Component")].concat(r);return function(n,r){var p,d,f,_,h,y,v,m,g,b,w,k,O,E,x=o(n,"InstanceMethods"),S=[x].concat(r);return e.def(x,"$children",p=function(){var e=this;return null==e.__hyperstack_component_native&&(e.__hyperstack_component_native=$),a(a(i(S,"Hyperstack"),"Component"),"Children").$new(e.__hyperstack_component_native.props.children)},p.$$arity=0),e.def(x,"$params",d=function(){var e=this;return null==e.__hyperstack_component_params_wrapper&&(e.__hyperstack_component_params_wrapper=$),s(["hyperstack","accessors"]["$include?"](e.__hyperstack_component_params_wrapper.$param_accessor_style()))&&e.$raise("params are now directly accessible via instance variables.\n to access the legacy behavior add `param_accessor_style = :legacy` to your component class\n to access both behaviors add `param_accessor_style = :both` to your component class"),e.__hyperstack_component_params_wrapper},d.$$arity=0),e.def(x,"$props",f=function(){var e=this;return null==e.__hyperstack_component_native&&(e.__hyperstack_component_native=$),i(S,"Hash").$new(e.__hyperstack_component_native.props)},f.$$arity=0),e.def(x,"$dom_node",_=function(){var e=this;return ReactDOM.findDOMNode(e.__hyperstack_component_native)},_.$$arity=0),e.def(x,"$jq_node",h=function(){var e=this;return a("::","Element")["$[]"](e.$dom_node())},h.$$arity=0),e.def(x,"$mounted?",y=function(){var e=this;return e.__hyperstack_component_is_mounted!==undefined&&e.__hyperstack_component_is_mounted},y.$$arity=0),e.def(x,"$pluralize",v=function(e,t,n){var r=$,a=$,i=$,o=$;return null==n&&(n=$),r=s(s(a=e["$=="](1))?a:e["$=~"](/^1(\.0+)?$/))?t:s(i=n)?i:t.$pluralize(),(s(o=e)?o:0)+" "+r},v.$$arity=-3),e.def(x,"$force_update!",m=function(){var e=this;return e.__hyperstack_component_native.forceUpdate(),e},m.$$arity=0),e.def(x,"$set_state",g=function(e){var t=g.$$p,n=t||$,r=this;return t&&(g.$$p=null),t&&(g.$$p=null),u(r,"set_or_replace_state_or_prop",[e,"setState"],n.$to_proc())},g.$$arity=1),e.def(x,"$set_state!",b=function(e){var t=b.$$p,n=t||$,r=this;return t&&(b.$$p=null),t&&(b.$$p=null),u(r,"set_or_replace_state_or_prop",[e,"setState"],n.$to_proc()),r.__hyperstack_component_native.forceUpdate()},b.$$arity=1),x.$private(),e.def(x,"$__hyperstack_router_wrapper",w=function(){var e,t=w.$$p,n=t||$,r=this;return t&&(w.$$p=null),t&&(w.$$p=null),l(((e=function(){var t=null==e.$$s?this:e.$$s;return u(t,"instance_eval",[],n.$to_proc())}).$$s=r,e.$$arity=0,e))},w.$$arity=0),e.def(x,"$__hyperstack_component_rescue_wrapper",k=function(e){var t=this;return s(t.$class()["$callbacks?"]("__hyperstack_component_rescue_hook"))?a(a(i(S,"Hyperstack"),"Internal"),"Component").$RescueWrapper(c(["child","children_elements"],{child:t,children_elements:e})):e.$call()},k.$$arity=1),e.def(x,"$__hyperstack_component_select_wrappers",O=function(){var n=O.$$p,r=n||$,a=this,o=$;return n&&(O.$$p=null),n&&(O.$$p=null),o=[$],u(i(S,"RescueWrapper"),"after_error_args=",e.to_a(o)),o[t(o.length,1)],a.$__hyperstack_component_run_post_render_hooks(a.$__hyperstack_component_rescue_wrapper(u(a,"__hyperstack_router_wrapper",[],r.$to_proc())))},O.$$arity=0),e.def(x,"$set_or_replace_state_or_prop",E=function(e,t){var n=E.$$p,r=n||$,a=this;null==a.__hyperstack_component_native&&(a.__hyperstack_component_native=$),n&&(E.$$p=null),n&&(E.$$p=null),s(a.__hyperstack_component_native)||a.$raise("No native ReactComponent associated");var i=e.$shallow_to_n();if(s(r))if(!0===a.__hyperstack_component_native.__opalInstanceInitializedState)a.__hyperstack_component_native[t](i,function(){r.$call()});else for(var o in i)i.hasOwnProperty(o)&&(a.__hyperstack_component_native.state[o]=i[o]);else if(!0===a.__hyperstack_component_native.__opalInstanceInitializedState)a.__hyperstack_component_native[t](i);else for(var o in i)i.hasOwnProperty(o)&&(a.__hyperstack_component_native.state[o]=i[o])},E.$$arity=2),$&&"set_or_replace_state_or_prop"}(p[0],p)}(p[0],p)}(p[0],p)}(r[0],r)},Opal.modules["hyperstack/internal/component/class_methods"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var a=[],i=e.nil,o=e.$$$,s=e.$$,u=e.module,l=e.send,c=e.truthy,p=e.range,d=e.hash2,f=e.send2,_=e.find_super,h=e.alias,y=e.hash;return e.add_stubs(["$create_element","$to_proc","$render","$deprecation_warning","$select","$mounted_components","$<=","$class","$param_accessor_style","$props_wrapper","$==","$[]","$<<","$each","$before_new_params","$included","$is_a?","$element_type","$define_method","$__hyperstack_component_select_wrappers","$instance_eval","$__hyperstack_component_after_render_hook","$on","$instance_exec","$empty?","$__hyperstack_component_rescue_hook","$!","$detect","$before_mount","$before_update","$after_mount","$after_update","$any?","$respond_to?","$haml_class_name","$superclass","$copy","$validator","$new","$validate","$>","$count","$+","$name","$join","$default_props","$build","$first","$delete","$merge!","$[]=","$-","$key?","$optional","$requires","$all_other_params","$props","$=~","$gsub","$include?","$event_camelize","$event","$call","$arity","$last","$pop","$state","$singleton_class","$__send__","$mutate","$native_mixins","$static_call_backs","$split","$to_n","$add_item_to_tree","$Native","$create_native_react_class","$reverse","$import_native_component","$eval_native_react_component","$raise","$message","$!=","$length","$inject"]),function(a,v){var m=[u(a,"Hyperstack")].concat(v);return function(a,v){var m=[u(a,"Internal")].concat(v);return function(a,v){var m=[u(a,"Component")].concat(v);return function(a,v){var m,g,b,w,k,O,E,x,S,q,N,C,z,I,D,H,A,j,M,R,T,B,P,L,F,U,W,K,X,Y,V,G,J,Z,Q=u(a,"ClassMethods"),ee=[Q].concat(v);return e.def(Q,"$create_element",m=function(){var t,n=m.$$p,r=n||i,$=this;return n&&(m.$$p=null),n&&(m.$$p=null),t=e.slice.call(arguments,0,arguments.length),l(s(ee,"ReactWrapper"),"create_element",[$].concat(e.to_a(t)),r.$to_proc())},m.$$arity=-1),e.def(Q,"$insert_element",g=function(){var t,n=g.$$p,r=n||i,$=this;return n&&(g.$$p=null),n&&(g.$$p=null),t=e.slice.call(arguments,0,arguments.length),l(s(ee,"RenderingContext"),"render",[$].concat(e.to_a(t)),r.$to_proc())},g.$$arity=-1),e.def(Q,"$deprecation_warning",b=function(e){var t=this;return s(ee,"Hyperstack").$deprecation_warning(t,e)},b.$$arity=1),e.def(Q,"$hyper_component?",w=function(){return!0},w.$$arity=0),e.def(Q,"$allow_deprecated_render_definition?",k=function(){return!1},k.$$arity=0),e.def(Q,"$mounted_components",O=function(){var e,n=this;return l(o(s(ee,"Hyperstack"),"Component").$mounted_components(),"select",[],((e=function(n){var r=null==e.$$s?this:e.$$s;return null==n&&(n=i),t(n.$class(),r)}).$$s=n,e.$$arity=1,e))},O.$$arity=0),e.def(Q,"$param_accessor_style",E=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),l(n.$props_wrapper(),"param_accessor_style",e.to_a(t))},E.$$arity=-1),e.def(Q,"$backtrace",x=function(){var t,n,r=this,$=i;return null==r.__hyperstack_component_dont_catch_exceptions&&(r.__hyperstack_component_dont_catch_exceptions=i),t=e.slice.call(arguments,0,arguments.length),n=t,r.__hyperstack_component_dont_catch_exceptions=n["$[]"](0)["$=="]("none"),r.__hyperstack_component_backtrace_off=c($=r.__hyperstack_component_dont_catch_exceptions)?$:n["$[]"](0)["$=="]("off")},x.$$arity=-1),e.def(Q,"$append_backtrace",S=function(e,t){var n,r=this;return e["$<<"](" "+t["$[]"](0)),l(t["$[]"](p(1,-1,!1)),"each",[],((n=function(t){null==n.$$s||n.$$s;return null==t&&(t=i),e["$<<"](t)}).$$s=r,n.$$arity=1,n))},S.$$arity=2),e.def(Q,"$before_receive_props",q=function(){var t,n=q.$$p,r=n||i,$=this;return n&&(q.$$p=null),n&&(q.$$p=null),t=e.slice.call(arguments,0,arguments.length),$.$deprecation_warning("'before_receive_props' is deprecated. Use the 'before_new_params' macro instead."),l($,"before_new_params",e.to_a(t),r.$to_proc())},q.$$arity=-1),e.def(Q,"$render",N=function(e,t){var n,r,$=N.$$p,a=$||i,u=this;return $&&(N.$$p=null),$&&(N.$$p=null),null==e&&(e=i),null==t&&(t=d([],{})),s(ee,"Tags").$included(u),c(e)?(c(e["$is_a?"](o(o(s(ee,"Hyperstack"),"Component"),"Element")))&&(e=e.$element_type()),l(u,"define_method",["__hyperstack_component_render"],((n=function(){var r,$=null==n.$$s?this:n.$$s;return l($,"__hyperstack_component_select_wrappers",[],((r=function(){var n,$=null==r.$$s?this:r.$$s;return l(s(ee,"RenderingContext"),"render",[e,t],((n=function(){var e=null==n.$$s?this:n.$$s;return c(a)?l(e,"instance_eval",[],a.$to_proc()):i}).$$s=$,n.$$arity=0,n))}).$$s=$,r.$$arity=0,r))}).$$s=u,n.$$arity=0,n))):l(u,"define_method",["__hyperstack_component_render"],((r=function(){var e,t=null==r.$$s?this:r.$$s;return l(t,"__hyperstack_component_select_wrappers",[],((e=function(){var t=null==e.$$s?this:e.$$s;return l(t,"instance_eval",[],a.$to_proc())}).$$s=t,e.$$arity=0,e))}).$$s=u,r.$$arity=0,r))},N.$$arity=-1),e.def(Q,"$on",C=function(){var t,n,r,$=C.$$p,a=$||i,o=this;return $&&(C.$$p=null),$&&(C.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,l(o,"__hyperstack_component_after_render_hook",[],((r=function(t){var $,o=null==r.$$s?this:r.$$s;return null==t&&(t=i),l(t,"on",e.to_a(n),(($=function(){var t,n=null==$.$$s?this:$.$$s;return t=e.slice.call(arguments,0,arguments.length),l(n,"instance_exec",e.to_a(t),a.$to_proc())}).$$s=o,$.$$arity=-1,$))}).$$s=o,r.$$arity=1,r))},C.$$arity=-1),e.def(Q,"$rescues",z=function(){var t,n,r,$=z.$$p,a=$||i,o=this;return $&&(z.$$p=null),$&&(z.$$p=null),t=e.slice.call(arguments,0,arguments.length),c((n=t)["$empty?"]())&&(n=[s(ee,"StandardError")]),l(o,"__hyperstack_component_rescue_hook",[],((r=function(t){var $,o,s,u=null==r.$$s?this:r.$$s,p=i;return null==t&&(t=i),$=e.slice.call(arguments,1,arguments.length),o=$,c(c(p=t)?p:l(n,"detect",[],(s=function(e){return null==s.$$s||s.$$s,null==e&&(e=i),o["$[]"](0)["$is_a?"](e)},s.$$s=u,s.$$arity=1,s))["$!"]())?[t].concat(e.to_a(o)):(l(u,"instance_exec",e.to_a(o),a.$to_proc()),[!0].concat(e.to_a(o)))}).$$s=o,r.$$arity=-2,r))},z.$$arity=-1),e.def(Q,"$before_render",I=function(){var t,n=I.$$p,r=n||i,$=this;return n&&(I.$$p=null),n&&(I.$$p=null),t=e.slice.call(arguments,0,arguments.length),l($,"before_mount",e.to_a(t),r.$to_proc()),l($,"before_update",e.to_a(t),r.$to_proc())},I.$$arity=-1),e.def(Q,"$after_render",D=function(){var t,n=D.$$p,r=n||i,$=this;return n&&(D.$$p=null),n&&(D.$$p=null),t=e.slice.call(arguments,0,arguments.length),l($,"after_mount",e.to_a(t),r.$to_proc()),l($,"after_update",e.to_a(t),r.$to_proc())},D.$$arity=-1),e.def(Q,"$method_missing",H=function(t){var n,r,$=H.$$p,a=$||i,u=this,p=i;return $&&(H.$$p=null),$&&(H.$$p=null),n=e.slice.call(arguments,1,arguments.length),c(c(p=(r=n)["$any?"]())?p:o(o(s(ee,"Hyperstack"),"Component"),"Element")["$respond_to?"]("haml_class_name")["$!"]())?f(u,_(u,"method_missing",H,!1,!0),"method_missing",[t].concat(e.to_a(r)),$):l(s(ee,"RenderingContext"),"render",[u,d(["class"],{"class":o(o(s(ee,"Hyperstack"),"Component"),"Element").$haml_class_name(t)})],a.$to_proc())},H.$$arity=-2),e.def(Q,"$validator",A=function(){var e=this;return null==e.__hyperstack_component_validator&&(e.__hyperstack_component_validator=i),c(e.__hyperstack_component_validator)?e.__hyperstack_component_validator:c(e.$superclass()["$respond_to?"]("validator"))?e.__hyperstack_component_validator=e.$superclass().$validator().$copy(e.$props_wrapper()):e.__hyperstack_component_validator=s(ee,"Validator").$new(e.$props_wrapper())},A.$$arity=0),e.def(Q,"$prop_types",j=function(){var e=this;return c(e.$validator())?d(["_componentValidator"],{_componentValidator:function(t){var $=e.$validator().$validate(s(ee,"Hash").$new(t));return c(n($.$count(),0))?new Error(r("In component `"+e.$name()+"`\n",$.$join("\n"))):undefined}}):d([],{})},j.$$arity=0),e.def(Q,"$default_props",M=function(){return this.$validator().$default_props()},M.$$arity=0),e.def(Q,"$params",R=function(){var e=R.$$p,t=e||i,n=this;return e&&(R.$$p=null),e&&(R.$$p=null),l(n.$validator(),"build",[],t.$to_proc())},R.$$arity=0),e.def(Q,"$props_wrapper",T=function(){var e=this,t=i;return null==e.__hyperstack_component_props_wrapper&&(e.__hyperstack_component_props_wrapper=i),c(e.__hyperstack_component_props_wrapper)?e.__hyperstack_component_props_wrapper:c(e.$superclass()["$respond_to?"]("props_wrapper"))?e.__hyperstack_component_props_wrapper=s(ee,"Class").$new(e.$superclass().$props_wrapper()):e.__hyperstack_component_props_wrapper=c(t=e.__hyperstack_component_props_wrapper)?t:s(ee,"Class").$new(s(ee,"PropsWrapper"))},T.$$arity=0),e.def(Q,"$param",B=function(){var t,n,r=this,a=i,o=i,u=i,p=i,f=i;return t=e.slice.call(arguments,0,arguments.length),c((n=t)["$[]"](0)["$is_a?"](s(ee,"Hash")))?(o=(a=n["$[]"](0)).$first()["$[]"](0),u=a.$first()["$[]"](1),a.$delete(o),a["$merge!"](d(["default"],{"default":u}))):(o=n["$[]"](0),a=c(p=n["$[]"](1))?p:d([],{})),a["$[]"]("type")["$=="](s(ee,"Proc"))&&(c(a["$[]"]("default"))||(f=["default",i],l(a,"[]=",e.to_a(f)),f[$(f.length,1)]),c(a["$key?"]("allow_nil"))||(f=["allow_nil",!0],l(a,"[]=",e.to_a(f)),f[$(f.length,1)])),o["$=="]("class")&&(o="className",c(a["$[]"]("alias"))||(f=["alias","Class"],l(a,"[]=",e.to_a(f)),f[$(f.length,1)])),c(a["$[]"]("default"))?r.$validator().$optional(o,a):r.$validator().$requires(o,a)},B.$$arity=-1),e.def(Q,"$collect_other_params_as",P=function(e){var t,n=this;return l(n.$validator(),"all_other_params",[e],((t=function(){return(null==t.$$s?this:t.$$s).$props()}).$$s=n,t.$$arity=0,t))},P.$$arity=1),h(Q,"other_params","collect_other_params_as"),h(Q,"others","collect_other_params_as"),h(Q,"other","collect_other_params_as"),h(Q,"opts","collect_other_params_as"),e.def(Q,"$fires",L=function(t,n){var r,$=this,a=i,u=i;return null==n&&(n=d([],{})),a=c(u=n["$[]"]("alias"))?u:t+"!",t=c(t["$=~"](/^<(.+)>$/))?t.$gsub(/^<(.+)>$/,"\\1"):c(o(o(o(s(ee,"Hyperstack"),"Component"),"Event"),"BUILT_IN_EVENTS")["$include?"]("on"+t.$event_camelize()))?"on"+t.$event_camelize():"on_"+t,$.$validator().$event(t),l($,"define_method",[a],((r=function(){var n,$,a=null==r.$$s?this:r.$$s;return n=e.slice.call(arguments,0,arguments.length),($=a.$props()["$[]"](t))===i||null==$?i:l($,"call",e.to_a(n))}).$$s=$,r.$$arity=-1,r))},L.$$arity=-2),h(Q,"triggers","fires"),e.def(Q,"$define_state",F=function(){var t,n,r,$,a=F.$$p,o=a||i,u=this,p=i,f=i,_=i;return a&&(F.$$p=null),a&&(F.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,u.$deprecation_warning("'define_state' is deprecated. Use the 'state' macro to declare states."),p=c(c(f=o)?o.$arity()["$=="](0):f)?e.yieldX(o,[]):i,_=c(n.$last()["$is_a?"](s(ee,"Hash")))?n.$pop():d([],{}),l(n,"each",[],((r=function(e){var t=null==r.$$s?this:r.$$s;return null==e&&(e=i),t.$state(y(e,p))}).$$s=u,r.$$arity=1,r)),l(_,"each",[],(($=function(e,t){var n=null==$.$$s?this:$.$$s;return null==e&&(e=i),null==t&&(t=i),n.$state(y(e,t))}).$$s=u,$.$$arity=2,$))},F.$$arity=-1),e.def(Q,"$export_state",U=function(){var t,n,r,a,o=U.$$p,u=o||i,p=this,f=i,_=i,h=i;return o&&(U.$$p=null),o&&(U.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,p.$deprecation_warning("'export_state' is deprecated. Use the 'state' macro to declare states."),f=c(c(_=u)?u.$arity()["$=="](0):_)?e.yieldX(u,[]):i,h=c(n.$last()["$is_a?"](s(ee,"Hash")))?n.$pop():d([],{}),l(n,"each",[],((r=function(t){null==r.$$s||r.$$s;var n=i;return null==t&&(t=i),n=[t,f],l(h,"[]=",e.to_a(n)),n[$(n.length,1)]}).$$s=p,r.$$arity=1,r)),l(h,"each",[],((a=function(t,n){var r,$=null==a.$$s?this:a.$$s;return null==t&&(t=i),null==n&&(n=i),$.$state(y(t,n,"scope","class","reader",!0)),l($.$singleton_class(),"define_method",[t+"!"],((r=function(){var n,$=null==r.$$s?this:r.$$s;return n=e.slice.call(arguments,0,arguments.length),l($.$mutate(),"__send__",[t].concat(e.to_a(n)))}).$$s=$,r.$$arity=-1,r))}).$$s=p,a.$$arity=2,a))},U.$$arity=-1),e.def(Q,"$native_mixin",W=function(e){return this.$native_mixins()["$<<"](e)},W.$$arity=1),e.def(Q,"$native_mixins",K=function(){var e=this,t=i;return null==e.__hyperstack_component_native_mixins&&(e.__hyperstack_component_native_mixins=i),e.__hyperstack_component_native_mixins=c(t=e.__hyperstack_component_native_mixins)?t:[]},K.$$arity=0),e.def(Q,"$static_call_back",X=function(t){var n=X.$$p,r=n||i,a=this,o=i;return n&&(X.$$p=null),n&&(X.$$p=null),o=[t,r],l(a.$static_call_backs(),"[]=",e.to_a(o)),o[$(o.length,1)]},X.$$arity=1),e.def(Q,"$static_call_backs",Y=function(){var e=this,t=i;return null==e.__hyperstack_component_static_call_backs&&(e.__hyperstack_component_static_call_backs=i),e.__hyperstack_component_static_call_backs=c(t=e.__hyperstack_component_static_call_backs)?t:d([],{})},Y.$$arity=0),e.def(Q,"$export_component",V=function(t){var n=this,a=i,o=i,u=i,f=i;return null==t&&(t=d([],{})),f=[u=(a=(c(o=t["$[]"]("as"))?o:n.$name()).$split("::")).$first(),n.$add_item_to_tree(n.$Native(e.global)["$[]"](u),r([s(ee,"ReactWrapper").$create_native_react_class(n)],a["$[]"](p(1,-1,!1)).$reverse())).$to_n()],l(n.$Native(e.global),"[]=",e.to_a(f)),f[$(f.length,1)]},V.$$arity=-1),e.def(Q,"$imports",G=function(t){var n,r=this,$=i;return function(){try{try{return s(ee,"ReactWrapper").$import_native_component(r,s(ee,"ReactWrapper").$eval_native_react_component(t)),l(r,"render",[],((n=function(){null==n.$$s||n.$$s;return i}).$$s=r,n.$$arity=0,n))}catch(a){if(!e.rescue(a,[s(ee,"Exception")]))throw a;$=a;try{return r.$raise(r+" cannot import '"+t+"': "+$.$message()+".")}finally{e.pop_exception()}}}finally{}}()},G.$$arity=1),e.def(Q,"$add_item_to_tree",J=function(t,n){var r,a=this,u=i,d=i;return c(c(u=a.$Native(t).$class()["$!="](o(s(ee,"Native"),"Object")))?u:n.$length()["$=="](1))?l(n,"inject",[],((r=function(e,t){null==r.$$s||r.$$s;return null==e&&(e=i),null==t&&(t=i),y(t,e)}).$$s=a,r.$$arity=2,r)):(d=[n.$last(),a.$add_item_to_tree(a.$Native(t)["$[]"](n.$last()),n["$[]"](p(0,-2,!1)))],l(a.$Native(t),"[]=",e.to_a(d)),d[$(d.length,1)],t)},J.$$arity=2),e.def(Q,"$to_n",Z=function(){var e=this;return o(o(o(s(ee,"Hyperstack"),"Internal"),"Component"),"ReactWrapper").$create_native_react_class(e)},Z.$$arity=0),i&&"to_n"}(m[0],m)}(m[0],m)}(m[0],m)}(a[0],a)},Opal.modules["hyperstack/internal/component/props_wrapper"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var r=e.top,$=[],a=e.nil,i=(e.$$$,e.$$),o=e.module,s=e.klass,u=e.truthy,l=e.range,c=e.send;return e.add_stubs(["$require","$attr_reader","$naming_convention","$===","$fix_suffix","$camelize","$=~","$+","$[]","$respond_to?","$superclass","$param_accessor_style","$dup","$param_definitions","$new","$!=","$instance_var_name_for","$lambda","$instance_variable_set","$fetch_from_cache","$==","$[]=","$-","$include?","$define_method","$to_sym","$props","$call","$to_proc","$class","$each_value","$instance_exec","$initialize","$private","$cache","$equal?","$tap","$convert_param","$_react_param_conversion","$is_a?","$collect","$component","$instance_variable_get"]),r.$require("active_support/core_ext/string"),function(r,$){var p=[o(r,"Hyperstack")].concat($);return function(r,$){var p=[o(r,"Internal")].concat($);return function(r,$){var p=[o(r,"Component")].concat($);return function(r,$super,$){var o,p,d,f,_,h,y,v,m,g=s(r,null,"PropsWrapper"),b=[g].concat($);return g.$$prototype.component=g.$$prototype.cache=a,g.$attr_reader("component"),function(r,$){var o,s,p,d,f,_,h=[r].concat($);e.def(r,"$instance_var_name_for",o=function(e){var t=this,n=a;return n=i(h,"Hyperstack").$naming_convention(),"camelize_params"["$==="](n)?t.$fix_suffix(e.$camelize()):"prefix_params"["$==="](n)?"_"+e:e},o.$$arity=1),e.def(r,"$fix_suffix",s=function(e){return u(e)?u(e["$=~"](/\?$/))?t(e["$[]"](l(0,-2,!1)),"_q"):u(e["$=~"](/\!$/))?t(e["$[]"](l(0,-2,!1)),"_b"):e:a},s.$$arity=1),e.def(r,"$param_accessor_style",p=function(e){var t=this,n=a;return null==t.param_accessor_style&&(t.param_accessor_style=a),null==e&&(e=a),u(e)&&(t.param_accessor_style=e),t.param_accessor_style=u(n=t.param_accessor_style)?n:u(t.$superclass()["$respond_to?"]("param_accessor_style"))?t.$superclass().$param_accessor_style():"hyperstack"},p.$$arity=-1),e.def(r,"$param_definitions",d=function(){var e=this,t=a;return null==e.param_definitions&&(e.param_definitions=a),e.param_definitions=u(t=e.param_definitions)?t:u(e.$superclass()["$respond_to?"]("param_definitions"))?e.$superclass().$param_definitions().$dup():i(h,"Hash").$new()},d.$$arity=0),e.def(r,"$define_param",f=function(t,r,$){var o,s,l,p=f.$$p,d=this,_=a,y=a,v=a,m=a,g=a,b=a;return p&&(f.$$p=null),null==$&&($=a),u(u(_=d.$param_accessor_style()["$!="]("legacy"))?_:$)&&(y=u(v=$)?v:t,m=u(g=d.$fix_suffix($))?g:d.$instance_var_name_for(t),b=[t,c(d,"lambda",[],(o=function(e){var n=null==o.$$s?this:o.$$s,$=a;return null==n.component&&(n.component=a),null==e&&(e=a),n.component.$instance_variable_set("@"+m,$=n.$fetch_from_cache(t,r,e)),n.$param_accessor_style()["$=="]("accessors")?n.component["$"+y]=function(){return $}:a},o.$$s=d,o.$$arity=1,o))],c(d.$param_definitions(),"[]=",e.to_a(b)),b[n(b.length,1)],u(["hyperstack","accessors"]["$include?"](d.$param_accessor_style())))?a:r["$=="](i(h,"Proc"))?c(d,"define_method",[t.$to_sym()],((s=function(){var n,r=null==s.$$s?this:s.$$s,$=s.$$p,i=$||a;return $&&(s.$$p=null),n=e.slice.call(arguments,0,arguments.length),u(r.$props()["$[]"](t))?c(r.$props()["$[]"](t),"call",e.to_a(n),i.$to_proc()):a}).$$s=d,s.$$arity=-1,s)):c(d,"define_method",[t.$to_sym()],((l=function(){var e=null==l.$$s?this:l.$$s;return e.$fetch_from_cache(t,r,e.$props())}).$$s=d,l.$$arity=0,l))},f.$$arity=-3),e.def(r,"$define_all_others",_=function(t){var r,$,i=_.$$p,o=i||a,s=this,l=a,p=a;return i&&(_.$$p=null),l=s.$instance_var_name_for(t),p=[t,c(s,"lambda",[],(r=function(n){var $=null==r.$$s?this:r.$$s,i=a;return null==$.component&&($.component=a),null==n&&(n=a),$.component.$instance_variable_set("@"+l,i=e.yield1(o,n)),$.$param_accessor_style()["$=="]("accessors")?$.component["$"+t]=function(){return i}:a},r.$$s=s,r.$$arity=1,r))],c(s.$param_definitions(),"[]=",e.to_a(p)),p[n(p.length,1)],c(s,"define_method",[t.$to_sym()],(($=function(){var t=null==$.$$s?this:$.$$s,n=a;return null==t._all_others_cache&&(t._all_others_cache=a),t._all_others_cache=u(n=t._all_others_cache)?n:e.yield1(o,t.$props())}).$$s=s,$.$$arity=0,$))},_.$$arity=1)}(e.get_singleton_class(g),b),e.def(g,"$param_accessor_style",o=function(){return this.$class().$param_accessor_style()},o.$$arity=0),e.def(g,"$initialize",p=function(e,t){var n,r=this;return null==t&&(t=a),r.component=e,c(r.$class().$param_definitions(),"each_value",[],((n=function(e){var r=null==n.$$s?this:n.$$s,$=a;return null==e&&(e=a),c(r,"instance_exec",[u($=t)?$:r.$props()],e.$to_proc())}).$$s=r,n.$$arity=1,n))},p.$$arity=-2),e.def(g,"$reload",d=function(e){var t=this;return t._all_others_cache=a,t.$initialize(t.component,e)},d.$$arity=1),e.def(g,"$[]",f=function(e){return this.$props()["$[]"](e)},f.$$arity=1),g.$private(),e.def(g,"$fetch_from_cache",_=function(t,r,$){var i,o,s,l=this,p=a,d=a;return o=l.$cache()["$[]"](t),p=null==(i=e.to_ary(o))[0]?a:i[0],d=null==i[1]?a:i[1],u(p["$equal?"]($["$[]"](t)))?d:c(l.$convert_param(t,r,$),"tap",[],((s=function(r){var i=null==s.$$s?this:s.$$s,o=a;return null==r&&(r=a),o=[t,[$["$[]"](t),r]],c(i.$cache(),"[]=",e.to_a(o)),o[n(o.length,1)]}).$$s=l,s.$$arity=1,s))},_.$$arity=3),e.def(g,"$convert_param",h=function(e,t,n){var r,$=this,o=a;return u(t["$respond_to?"]("_react_param_conversion"))?t.$_react_param_conversion(n["$[]"](e),a):u(u(o=t["$is_a?"](i(b,"Array")))?t["$[]"](0)["$respond_to?"]("_react_param_conversion"):o)?c(n["$[]"](e),"collect",[],((r=function(e){null==r.$$s||r.$$s;return null==e&&(e=a),t["$[]"](0).$_react_param_conversion(e,a)}).$$s=$,r.$$arity=1,r)):n["$[]"](e)},h.$$arity=3),e.def(g,"$cache",y=function(){var t,r=this,$=a;return r.cache=u($=r.cache)?$:c(i(b,"Hash"),"new",[],((t=function(r,$){null==t.$$s||t.$$s;var i=a;return null==r&&(r=a),null==$&&($=a),i=[$,[]],c(r,"[]=",e.to_a(i)),i[n(i.length,1)]}).$$s=r,t.$$arity=2,t))},y.$$arity=0),e.def(g,"$props",v=function(){return this.$component().$props()},v.$$arity=0),e.def(g,"$value_for",m=function(e){var t=this;return u(t["$[]"](e))?t["$[]"](e).$instance_variable_get("@value"):a},m.$$arity=1),a&&"value_for"}(p[0],0,p)}(p[0],p)}(p[0],p)}($[0],$)},Opal.modules["hyperstack/component"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}e.top;var r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.module,s=e.send,u=e.truthy,l=e.send2,c=e.find_super,p=e.klass;return e.add_stubs(["$+","$each","$define_method","$upcase","$render","$to_proc","$const_set","$new","$include","$import_native_component","$downcase","$=~","$include?","$create_element","$find_component","$find_name_and_parent","$extend","$private","$name","$split","$>","$length","$last","$[]","$inject","$const_get","$lookup_const","$!","$method_defined?","$raise","$_reactrb_import_component_class","$==","$reverse","$to_s","$class","$detect","$const_defined?","$respond_to?"]),function(r,p){var d=[o(r,"Hyperstack")].concat(p);(function(r,p){var d=[o(r,"Internal")].concat(p);(function(r,p){var d=[o(r,"Component")].concat(p);(function(r,p){var d,f,_,h,y,v,m=o(r,"Tags"),g=[m].concat(p);e.const_set(g[0],"HTML_TAGS",t(["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","big","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","menu","menuitem","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr"],["circle","clipPath","defs","ellipse","g","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","svg","text","tspan"])),s(i(g,"HTML_TAGS"),"each",[],((d=function(t){var n,r=null==d.$$s?this:d.$$s;return null==t&&(t=$),s(r,"define_method",[t.$upcase()],((n=function(){null==n.$$s||n.$$s;var r,a=n.$$p,o=a||$;return a&&(n.$$p=null),r=e.slice.call(arguments,0,arguments.length),s(i(g,"RenderingContext"),"render",[t].concat(e.to_a(r)),o.$to_proc())}).$$s=r,n.$$arity=-1,n)),r.$const_set(t.$upcase(),t)}).$$s=m,d.$$arity=1,d)),m.$const_set("FRAGMENT",s(i(g,"Class"),"new",[],((f=function(){var e,t=null==f.$$s?this:f.$$s;return t.$include(a(i(g,"Hyperstack"),"Component")),s(t,"render",[],((e=function(){null==e.$$s||e.$$s;return $}).$$s=t,e.$$arity=0,e)),a(a(a(i(g,"Hyperstack"),"Internal"),"Component"),"ReactWrapper").$import_native_component(t,React.Fragment)}).$$s=m,f.$$arity=0,f))),e.defs(m,"$html_tag_class_for",_=function(e){var t=$,n=$;return t=e.$downcase(),u(u(n=e["$=~"](/^[A-Z]+$/))?i(g,"HTML_TAGS")["$include?"](t):n)?i(g,"Object").$const_set(e,i(g,"ReactWrapper").$create_element(t)):$},_.$$arity=1),e.def(m,"$method_missing",h=function(t){var n,r=h.$$p,a=r||$,o=this,p=$;return r&&(h.$$p=null),r&&(h.$$p=null),n=e.slice.call(arguments,1,arguments.length),p=o.$find_component(t),u(p)?s(i(g,"RenderingContext"),"render",[p].concat(e.to_a(n)),a.$to_proc()):l(o,c(o,"method_missing",h,!1,!0),"method_missing",[t].concat(e.to_a(n)),r)},h.$$arity=-2),function(r,a){var o,l,c=[r].concat(a);e.def(r,"$included",o=function(t){var n,r,a,u=o.$$p,l=this,p=$,d=$,f=$;return u&&(o.$$p=null),r=l.$find_name_and_parent(t),n=e.to_ary(r),p=null==n[0]?$:n[0],d=null==n[1]?$:n[1],f=s(i(c,"Module"),"new",[],((a=function(){var n,r=null==a.$$s?this:a.$$s;return s(r,"define_method",[p],((n=function(){null==n.$$s||n.$$s;var r,a=n.$$p,o=a||$;return a&&(n.$$p=null),r=e.slice.call(arguments,0,arguments.length),s(i(c,"RenderingContext"),"render",[t].concat(e.to_a(r)),o.$to_proc())}).$$s=r,n.$$arity=-1,n))}).$$s=l,a.$$arity=0,a)),d.$extend(f)},o.$$arity=1),r.$private(),e.def(r,"$find_name_and_parent",l=function(e){var r,a=this,o=$,l=$,p=$;return o=u(l=e.$name())?e.$name().$split("::"):l,u(u(p=o)?n(o.$length(),1):p)?[o.$last(),s(o,"inject",[[i(c,"Module")]],(r=function(e,n){null==r.$$s||r.$$s;return null==e&&(e=$),null==n&&(n=$),t(e,[e.$last().$const_get(n)])},r.$$s=a,r.$$arity=2,r))["$[]"](-2)]:$},l.$$arity=1)}(e.get_singleton_class(m),g),m.$private(),e.def(m,"$find_component",y=function(e){var t=this,n=$,r=$,a=$;return n=t.$lookup_const(e),u(u(r=n)?n["$method_defined?"]("render")["$!"]():r)&&t.$raise(e+" does not appear to be a react component."),u(a=n)?a:i(g,"Object").$_reactrb_import_component_class(e)},y.$$arity=1),e.def(m,"$lookup_const",v=function(e){var n,r,o=this,l=$,c=$;return u(e["$=~"](/^[A-Z]/))?e["$=="]("FRAGMENT")?a(a(a(a(i(g,"Hyperstack"),"Internal"),"Component"),"Tags"),"FRAGMENT"):(l=s(o.$class().$name().$to_s().$split("::"),"inject",[[i(g,"Object")]],(n=function(e,r){null==n.$$s||n.$$s;return null==e&&(e=$),null==r&&(r=$),t(e,[e.$last().$const_get(r)])},n.$$s=o,n.$$arity=2,n)).$reverse(),c=s(l,"detect",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=$),t["$const_defined?"](e,!1)}).$$s=o,r.$$arity=1,r)),u(c)?c.$const_get(e,!1):$):$},v.$$arity=1)})(d[0],d)})(d[0],d)})(d[0],d)}(r[0],r),u(i(r,"Object")["$respond_to?"]("_reactrb_import_component_class"))?$:function(t,$super,n){var r,a=p(t,null,"Object");[a].concat(n);return e.defs(a,"$_reactrb_import_component_class",r=function(){return $},r.$$arity=1),$&&"_reactrb_import_component_class"}(r[0],0,r)},Opal.modules["hyperstack/component/event"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,i=e.klass;return e.add_stubs(["$include","$alias_native"]),function(t,o){var s=[a(t,"Hyperstack")].concat(o);return function(t,o){var s=[a(t,"Component")].concat(o);return function(t,$super,a){var o,s=i(t,null,"Event"),u=[s].concat(a);return s.$include(r($(u,"Native"),"Wrapper")),s.$alias_native("bubbles","bubbles"),s.$alias_native("cancelable","cancelable"),s.$alias_native("current_target","currentTarget"),s.$alias_native("default_prevented","defaultPrevented"),s.$alias_native("event_phase","eventPhase"),s.$alias_native("is_trusted?","isTrusted"),s.$alias_native("native_event","nativeEvent"),s.$alias_native("target","target"),s.$alias_native("timestamp","timeStamp"),s.$alias_native("event_type","type"),s.$alias_native("prevent_default","preventDefault"),s.$alias_native("stop_propagation","stopPropagation"),s.$alias_native("clipboard_data","clipboardData"),s.$alias_native("alt_key","altKey"),s.$alias_native("char_code","charCode"),s.$alias_native("ctrl_key","ctrlKey"),s.$alias_native("get_modifier_state","getModifierState"),s.$alias_native("key","key"),s.$alias_native("key_code","keyCode"),s.$alias_native("locale","locale"),s.$alias_native("location","location"),s.$alias_native("meta_key","metaKey"),s.$alias_native("repeat","repeat"),s.$alias_native("shift_key","shiftKey"),s.$alias_native("which","which"),s.$alias_native("related_target","relatedTarget"),s.$alias_native("button","button"),s.$alias_native("buttons","buttons"),s.$alias_native("client_x","clientX"),s.$alias_native("client_y","clientY"),s.$alias_native("get_modifier_state","getModifierState"),s.$alias_native("page_x","pageX"),s.$alias_native("page_y","pageY"),s.$alias_native("screen_x","screen_x"),s.$alias_native("screen_y","screen_y"),s.$alias_native("changed_touches","changedTouches"),s.$alias_native("target_touches","targetTouches"),s.$alias_native("touches","touches"),s.$alias_native("detail","detail"),s.$alias_native("view","view"),s.$alias_native("delta_mode","deltaMode"),s.$alias_native("delta_x","deltaX"),s.$alias_native("delta_y","deltaY"),s.$alias_native("delta_z","deltaZ"),e.const_set(u[0],"BUILT_IN_EVENTS",["onCopy","onCut","onPaste","onKeyDown","onKeyPress","onKeyUp","onFocus","onBlur","onChange","onInput","onSubmit","onClick","onContextMenu","onDoubleClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onSelect","onTouchCancel","onTouchEnd","onTouchMove","onTouchStart","onScroll","onWheel"]),e.def(s,"$initialize",o=function(e){return this.native=e},o.$$arity=1),n&&"initialize"}(s[0],0,s)}(s[0],s)}(t[0],t)},Opal.modules["hyperstack/ext/component/object"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.klass,i=e.alias,o=e.truthy;return e.add_stubs(["$_reactrb_tag_original_const_missing","$html_tag_class_for","$raise","$object_id"]),function(t,$super,s){var u,l=a(t,null,"Object"),c=[l].concat(s);return function(t,$super,s){var u=a(t,null,"Object"),l=[u].concat(s);(function(t,a){var s,u=[t].concat(a);i(t,"_reactrb_tag_original_const_missing","const_missing"),e.def(t,"$const_missing",s=function(t){var a=this,i=n,s=n;try{return a.$_reactrb_tag_original_const_missing(t)}catch(l){if(!e.rescue(l,[$(u,"StandardError")]))throw l;i=l;try{return o(s=r(r(r($(u,"Hyperstack"),"Internal"),"Component"),"Tags").$html_tag_class_for(t))?s:a.$raise(i)}finally{e.pop_exception()}}},s.$$arity=1)})(e.get_singleton_class(u),l)}(c[0],0,c),e.def(l,"$to_key",u=function(){return this.$object_id()},u.$$arity=0),n&&"to_key"}(t[0],0,t)},Opal.modules["hyperstack/ext/component/kernel"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.send,i=e.truthy,o=e.alias;return e.add_stubs(["$tap","$new","$after","$resolve","$call"]),function(t,s){var u,l=$(t,"Kernel"),c=[l].concat(s);return e.def(l,"$pause",u=function(t){var $,o=u.$$p,s=o||n,l=this;return o&&(u.$$p=null),o&&(u.$$p=null),a(r(c,"Promise").$new(),"tap",[],(($=function(r){var o,u=null==$.$$s?this:$.$$s;return null==r&&(r=n),a(u,"after",[t],((o=function(){null==o.$$s||o.$$s;var t=n;return a(r,"resolve",e.to_a(i(t=s)?[s.$call()]:t))}).$$s=u,o.$$arity=0,o))}).$$s=l,$.$$arity=1,$))},u.$$arity=1),o(l,"busy_sleep","sleep"),o(l,"sleep","pause")}(t[0],t)},Opal.modules["hyperstack/ext/component/number"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass);return function(t,$super,$){var a,i=r(t,null,"Number");[i].concat($);return e.def(i,"$to_key",a=function(){return this},a.$$arity=0),n&&"to_key"}(t[0],0,t)},Opal.modules["hyperstack/ext/component/boolean"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass);return function(t,$super,$){var a,i=r(t,null,"Boolean");[i].concat($);return e.def(i,"$to_key",a=function(){return this},a.$$arity=0),n&&"to_key"}(t[0],0,t)},Opal.modules["hyperstack/ext/component/array"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass),$=e.send,a=e.truthy;return e.add_stubs(["$to_enum","$size","$reject!","$<<"]),function(t,$super,i){var o,s=r(t,null,"Array");[s].concat(i);return e.def(s,"$extract!",o=function(){var t,r,i=o.$$p,s=i||n,u=this,l=n;return i&&(o.$$p=null),s===n?$(u,"to_enum",["extract!"],((t=function(){return(null==t.$$s?this:t.$$s).$size()}).$$s=u,t.$$arity=0,t)):(l=[],$(u,"reject!",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=n),a(e.yield1(s,t))?l["$<<"](t):n}).$$s=u,r.$$arity=1,r)),l)},o.$$arity=0),n&&"extract!"}(t[0],0,t)},Opal.modules["hyperstack/ext/component/enumerable"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.hash2,o=e.send,s=e.truthy;return e.add_stubs(["$new","$private_constant","$each","$[]=","$-","$!=","$to_enum","$respond_to?","$size"]),function(n,u){var l,c=a(n,"Enumerable"),p=[c].concat(u);return e.const_set(p[0],"INDEX_WITH_DEFAULT",$(p,"Object").$new()),c.$private_constant("INDEX_WITH_DEFAULT"),e.def(c,"$index_with",l=function(n){var a,u,c,d=l.$$p,f=d||r,_=this,h=r;return d&&(l.$$p=null),null==n&&(n=$(p,"INDEX_WITH_DEFAULT")),f!==r?(h=i([],{}),o(_,"each",[],((a=function(n){null==a.$$s||a.$$s;var $=r;return null==n&&(n=r),$=[n,e.yield1(f,n)],o(h,"[]=",e.to_a($)),$[t($.length,1)]}).$$s=_,a.$$arity=1,a)),h):s(n["$!="]($(p,"INDEX_WITH_DEFAULT")))?(h=i([],{}),o(_,"each",[],((u=function($){null==u.$$s||u.$$s;var a=r;return null==$&&($=r),a=[$,n],o(h,"[]=",e.to_a(a)),a[t(a.length,1)]}).$$s=_,u.$$arity=1,u)),h):o(_,"to_enum",["index_with"],((c=function(){var e=null==c.$$s?this:c.$$s;return s(e["$respond_to?"]("size"))?e.$size():r}).$$s=_,c.$$arity=0,c))},l.$$arity=-1),r&&"index_with"}(n[0],n)},Opal.modules["hyperstack/ext/component/time"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.klass);return e.add_stubs(["$to_json","$strftime"]),function(t,$super,$){var a,i=r(t,null,"Time");[i].concat($);return e.def(i,"$to_json",a=function(){return this.$strftime("%FT%T.%3N%z").$to_json()},a.$$arity=0),n&&"to_json"}(t[0],0,t)},Opal.modules["hyperstack/component/isomorphic_helpers"]=function(Opal){function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $rb_minus(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$truthy=Opal.truthy,$range=Opal.range,$send=Opal.send,$klass=Opal.klass,$class_variable_set=Opal.class_variable_set,$class_variable_get=Opal.class_variable_get,$hash2=Opal.hash2;return Opal.add_stubs(["$require","$extend","$!","$!=","$unique_id","$on_opal_server?","$log","$new","$is_a?","$==","$production?","$env","$+","$[]","$class","$on_opal_client?","$join","$collect","$prerender_footer_blocks","$call","$attr_reader","$[]=","$-","$run","$each","$before_first_mount_blocks","$send_to_opal","$eval","$load!","$tr","$<<","$first","$send_to_server","$to_json","$parse","$controller","$context","$register_before_first_mount_block","$to_proc","$register_prerender_footer_block","$send","$result"]),self.$require("hyperstack/internal/component"),function($base,$parent_nesting){var self=$module($base,"Hyperstack"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"Component"),$nesting=[self].concat($parent_nesting);return function($base,$parent_nesting){var self=$module($base,"IsomorphicHelpers"),$nesting=[self].concat($parent_nesting),$IsomorphicHelpers_included$1,$IsomorphicHelpers_load_context$2,$IsomorphicHelpers_context$3,$IsomorphicHelpers_log$4,$IsomorphicHelpers_on_opal_server$ques$5,$IsomorphicHelpers_on_opal_client$ques$6,$IsomorphicHelpers_log$7,$IsomorphicHelpers_on_opal_server$ques$8,$IsomorphicHelpers_on_opal_client$ques$9,$IsomorphicHelpers_prerender_footers$10;return Opal.defs(self,"$included",$IsomorphicHelpers_included$1=function(e){return e.$extend($$($nesting,"ClassMethods"))},$IsomorphicHelpers_included$1.$$arity=1),Opal.defs(self,"$load_context",$IsomorphicHelpers_load_context$2=function(e,t){var n=this,r=nil,$=nil,a=nil;return null==n.context&&(n.context=nil),null==e&&(e=nil),null==t&&(t=nil),$truthy($truthy(r=$truthy($=e["$!"]())?$:n.context["$!"]())?r:n.context.$unique_id()["$!="](e))&&(a=function(){if($truthy(n["$on_opal_server?"]())){try{console.history=[]}catch(e){if(!Opal.rescue(e,[$$($nesting,"StandardError")]))throw e;Opal.pop_exception()}return"************************ React Prerendering Context Initialized "+t+" ***********************"}return"************************ React Browser Context Initialized ****************************"}(),n.$log(a),n.context=$$($nesting,"Context").$new(e)),!0},$IsomorphicHelpers_load_context$2.$$arity=-1),Opal.defs(self,"$context",$IsomorphicHelpers_context$3=function(){var e=this;return null==e.context&&(e.context=nil),e.context},$IsomorphicHelpers_context$3.$$arity=0),Opal.defs(self,"$log",$IsomorphicHelpers_log$4=function(e,t){var n=this,r=nil,$=nil,a=nil;return null==t&&(t="info"),$truthy(e["$is_a?"]($$($nesting,"Array")))||(e=[e]),$truthy($truthy(r=$truthy($=t["$=="]("info"))?$:t["$=="]("warning"))?$$($nesting,"Hyperstack").$env()["$production?"]():r)?nil:t["$=="]("info")?(a=$truthy(n["$on_opal_server?"]())?"background: #00FFFF; color: red":"background: #222; color: #bada55",e=$rb_plus([$rb_plus("%c",e["$[]"](0)),a],e["$[]"]($range(1,-1,!1))),console.log.apply(console,e)):t["$=="]("warning")?console.warn.apply(console,e):console.error.apply(console,e)},$IsomorphicHelpers_log$4.$$arity=-2),Opal.defs(self,"$on_opal_server?",$IsomorphicHelpers_on_opal_server$ques$5=function(){return"undefined"==typeof Opal.global.document},$IsomorphicHelpers_on_opal_server$ques$5.$$arity=0),Opal.defs(self,"$on_opal_client?",$IsomorphicHelpers_on_opal_client$ques$6=function(){return this["$on_opal_server?"]()["$!"]()},$IsomorphicHelpers_on_opal_client$ques$6.$$arity=0),Opal.def(self,"$log",$IsomorphicHelpers_log$7=function(){var e;return e=Opal.slice.call(arguments,0,arguments.length),$send($$($nesting,"IsomorphicHelpers"),"log",Opal.to_a(e))},$IsomorphicHelpers_log$7.$$arity=-1),Opal.def(self,"$on_opal_server?",$IsomorphicHelpers_on_opal_server$ques$8=function(){return this.$class()["$on_opal_server?"]()},$IsomorphicHelpers_on_opal_server$ques$8.$$arity=0),Opal.def(self,"$on_opal_client?",$IsomorphicHelpers_on_opal_client$ques$9=function(){return this.$class()["$on_opal_client?"]()},$IsomorphicHelpers_on_opal_client$ques$9.$$arity=0),Opal.defs(self,"$prerender_footers",$IsomorphicHelpers_prerender_footers$10=function(e){var t,n=this;return null==e&&(e=nil),$send($$($nesting,"Context").$prerender_footer_blocks(),"collect",[],(t=function(n){null==t.$$s||t.$$s;return null==n&&(n=nil),n.$call(e)},t.$$s=n,t.$$arity=1,t)).$join("\n")},$IsomorphicHelpers_prerender_footers$10.$$arity=-1),function(e,$super,t){var n,r,$,a,i,o,s,u,l,c=$klass(e,null,"Context"),p=[c].concat(t);c.$$prototype.unique_id=c.$$prototype.cname=c.$$prototype.ctx=nil,c.$attr_reader("controller"),c.$attr_reader("unique_id"),Opal.defs(c,"$define_isomorphic_method",n=function(e){var t=n.$$p,r=t||nil,$=nil,a=nil;return t&&(n.$$p=null),t&&(n.$$p=null),$class_variable_set(p[0],"@@ctx_methods",$truthy(null!=p[0].$$cvars["@@ctx_methods"]?"class variable":nil)&&$truthy($=$class_variable_get(p[0],"@@ctx_methods",!1))?$:$hash2([],{})),a=[e,r],$send($class_variable_get(p[0],"@@ctx_methods",!1),"[]=",Opal.to_a(a)),a[$rb_minus(a.length,1)]},n.$$arity=1),Opal.defs(c,"$before_first_mount_blocks",r=function(){var e=this,t=nil;return null==e.before_first_mount_blocks&&(e.before_first_mount_blocks=nil),e.before_first_mount_blocks=$truthy(t=e.before_first_mount_blocks)?t:[]},r.$$arity=0),Opal.defs(c,"$prerender_footer_blocks",$=function(){var e=this,t=nil;return null==e.prerender_footer_blocks&&(e.prerender_footer_blocks=nil),e.prerender_footer_blocks=$truthy(t=e.prerender_footer_blocks)?t:[]},$.$$arity=0),Opal.def(c,"$initialize",a=function(e,t,n,r){var $,a=this;return null==t&&(t=nil),null==n&&(n=nil),null==r&&(r=nil),a.unique_id=e,a.cname=r,$$$($$$($$(p,"Hyperstack"),"Application"),"Boot").$run($hash2(["context"],{context:a})),$send(a.$class().$before_first_mount_blocks(),"each",[],(($=function(e){var t=null==$.$$s?this:$.$$s;return null==e&&(e=nil),e.$call(t)}).$$s=a,$.$$arity=1,$))},a.$$arity=-2),Opal.def(c,"$load_opal_context",i=function(){var e=this;return e.$send_to_opal("load_context",e.unique_id,e.cname)},i.$$arity=0),Opal.def(c,"$eval",o=function(e){var t=this;return $truthy(t.ctx)?t.ctx.$eval(e):nil},o.$$arity=1),Opal.def(c,"$send_to_opal",s=function(e){var t,n,r=this,$=nil;return t=Opal.slice.call(arguments,1,arguments.length),$truthy(r.ctx)?($$$($$$($$$($$$($$(p,"Hyperstack"),"Internal"),"Component"),"Rails"),"ComponentLoader").$new(r.ctx)["$load!"](),$=$send(t,"collect",[],(n=function(e){null==n.$$s||n.$$s;return null==e&&(e=nil),'"'+(""+e).$tr('"',"'")+'"'},n.$$s=r,n.$$arity=1,n)).$join(", "),r.ctx.$eval("Opal.Hyperstack.$const_get('Component').$const_get('IsomorphicHelpers').$"+e+"("+$+")")):nil},s.$$arity=-2),Opal.defs(c,"$register_before_first_mount_block",u=function(){var e=u.$$p,t=e||nil,n=this;return e&&(u.$$p=null),e&&(u.$$p=null),n.$before_first_mount_blocks()["$<<"](t)},u.$$arity=0),Opal.defs(c,"$register_prerender_footer_block",l=function(){var e=l.$$p,t=e||nil,n=this;return e&&(l.$$p=null),e&&(l.$$p=null),n.$prerender_footer_blocks()["$<<"](t)},l.$$arity=0)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"IsomorphicProcCall"),$nesting=[self].concat($parent_nesting),$IsomorphicProcCall_result$23,$IsomorphicProcCall_initialize$24,$IsomorphicProcCall_when_on_client$25,$IsomorphicProcCall_send_to_server$26,$IsomorphicProcCall_when_on_server$27;self.$$prototype.result=self.$$prototype.name=nil,self.$attr_reader("context"),Opal.def(self,"$result",$IsomorphicProcCall_result$23=function(){var e=this;return $truthy(e.result)?e.result.$first():nil},$IsomorphicProcCall_result$23.$$arity=0),Opal.def(self,"$initialize",$IsomorphicProcCall_initialize$24=function(e,t,n){var r,$,a=this,i=nil;return r=Opal.slice.call(arguments,3,arguments.length),$=r,a.name=e,a.context=n,$send(t,"call",[a].concat(Opal.to_a($))),a.result=$truthy(i=a.result)?i:$send(a,"send_to_server",Opal.to_a($))},$IsomorphicProcCall_initialize$24.$$arity=-4),Opal.def(self,"$when_on_client",$IsomorphicProcCall_when_on_client$25=function(){var e=$IsomorphicProcCall_when_on_client$25.$$p,t=e||nil,n=this;return e&&($IsomorphicProcCall_when_on_client$25.$$p=null),e&&($IsomorphicProcCall_when_on_client$25.$$p=null),$truthy($$($nesting,"IsomorphicHelpers")["$on_opal_client?"]())?n.result=[t.$call()]:nil},$IsomorphicProcCall_when_on_client$25.$$arity=0),Opal.def(self,"$send_to_server",$IsomorphicProcCall_send_to_server$26=function $$send_to_server($a){var $post_args,args,self=this,method_string=nil;return $post_args=Opal.slice.call(arguments,0,arguments.length),args=$post_args,$truthy($$($nesting,"IsomorphicHelpers")["$on_opal_server?"]())?(method_string=$rb_plus($rb_plus($rb_plus($rb_plus("ServerSideIsomorphicMethod.",self.name),"("),args.$to_json()),")"),self.result=[$$($nesting,"JSON").$parse(eval(method_string))]):nil},$IsomorphicProcCall_send_to_server$26.$$arity=-1),Opal.def(self,"$when_on_server",$IsomorphicProcCall_when_on_server$27=function(){var e=$IsomorphicProcCall_when_on_server$27.$$p,t=e||nil,n=this,r=nil;return e&&($IsomorphicProcCall_when_on_server$27.$$p=null),e&&($IsomorphicProcCall_when_on_server$27.$$p=null),$truthy($truthy(r=$$($nesting,"IsomorphicHelpers")["$on_opal_client?"]())?r:$$($nesting,"IsomorphicHelpers")["$on_opal_server?"]())?nil:n.result=[t.$call().$to_json()]},$IsomorphicProcCall_when_on_server$27.$$arity=0)}($nesting[0],null,$nesting),function(e,t){var n,r,$,a,i,o,s,u=$module(e,"ClassMethods"),l=[u].concat(t);return Opal.def(u,"$on_opal_server?",n=function(){return $$(l,"IsomorphicHelpers")["$on_opal_server?"]()},n.$$arity=0),Opal.def(u,"$on_opal_client?",r=function(){return $$(l,"IsomorphicHelpers")["$on_opal_client?"]()},r.$$arity=0),Opal.def(u,"$log",$=function(){var e;return e=Opal.slice.call(arguments,0,arguments.length),$send($$(l,"IsomorphicHelpers"),"log",Opal.to_a(e))},$.$$arity=-1),Opal.def(u,"$controller",a=function(){return $$(l,"IsomorphicHelpers").$context().$controller()},a.$$arity=0),Opal.def(u,"$before_first_mount",i=function(){var e=i.$$p,t=e||nil;return e&&(i.$$p=null),e&&(i.$$p=null),$send($$$($$(l,"IsomorphicHelpers"),"Context"),"register_before_first_mount_block",[],t.$to_proc())},i.$$arity=0),Opal.def(u,"$prerender_footer",o=function(){var e=o.$$p,t=e||nil;return e&&(o.$$p=null),e&&(o.$$p=null),$send($$$($$(l,"IsomorphicHelpers"),"Context"),"register_prerender_footer_block",[],t.$to_proc())},o.$$arity=0),Opal.def(u,"$isomorphic_method",s=function(e){var t,n=s.$$p,r=n||nil,$=this;return n&&(s.$$p=null),n&&(s.$$p=null),$send($.$class(),"send",["define_method",e],((t=function(){var n,$=null==t.$$s?this:t.$$s;return n=Opal.slice.call(arguments,0,arguments.length),$send($$$($$(l,"IsomorphicHelpers"),"IsomorphicProcCall"),"new",[e,r,$].concat(Opal.to_a(n))).$result()}).$$s=$,t.$$arity=-1,t))},s.$$arity=1),nil&&"isomorphic_method"}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)}($nesting[0],$nesting)},Opal.modules["hyperstack/component/react_api"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var n=e.top,r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.module,s=e.send,u=e.truthy;return e.add_stubs(["$require","$+","$create_element","$to_proc","$raise","$to_n","$kind_of?","$!","$build"]),n.$require("native"),n.$require("active_support/core_ext/object/try"),n.$require("hyperstack/internal/component/tags"),function(n,r){var l=[o(n,"Hyperstack")].concat(r);return function(n,r){var l=[o(n,"Component")].concat(r);return function(n,r){var l,c,p,d,f,_,h,y,v,m=o(n,"ReactAPI"),g=[m].concat(r) +;return e.const_set(g[0],"ATTRIBUTES",t(["accept","acceptCharset","accessKey","action","allowFullScreen","allowTransparency","alt","async","autoComplete","autoPlay","cellPadding","cellSpacing","charSet","checked","classID","className","cols","colSpan","content","contentEditable","contextMenu","controls","coords","crossOrigin","data","dateTime","defer","dir","disabled","download","draggable","encType","form","formAction","formEncType","formMethod","formNoValidate","formTarget","frameBorder","height","hidden","href","hrefLang","htmlFor","httpEquiv","icon","id","label","lang","list","loop","manifest","marginHeight","marginWidth","max","maxLength","media","mediaGroup","method","min","multiple","muted","name","noValidate","open","pattern","placeholder","poster","preload","radioGroup","readOnly","rel","required","role","rows","rowSpan","sandbox","scope","scrolling","seamless","selected","shape","size","sizes","span","spellCheck","src","srcDoc","srcSet","start","step","style","tabIndex","target","title","type","useMap","value","width","wmode","dangerouslySetInnerHTML"],["clipPath","cx","cy","d","dx","dy","fill","fillOpacity","fontFamily","fontSize","fx","fy","gradientTransform","gradientUnits","markerEnd","markerMid","markerStart","offset","opacity","patternContentUnits","patternUnits","points","preserveAspectRatio","r","rx","ry","spreadMethod","stopColor","stopOpacity","stroke","strokeDasharray","strokeLinecap","strokeOpacity","strokeWidth","textAnchor","transform","version","viewBox","x1","x2","x","xlinkActuate","xlinkArcrole","xlinkHref","xlinkRole","xlinkShow","xlinkTitle","xlinkType","xmlBase","xmlLang","xmlSpace","y1","y2","y"])),e.const_set(g[0],"HASH_ATTRIBUTES",["data","aria"]),e.const_set(g[0],"HTML_TAGS",a(a(a(a(i(g,"Hyperstack"),"Internal"),"Component"),"Tags"),"HTML_TAGS")),e.defs(m,"$html_tag?",l=function(e){var t=$;t=i(g,"HTML_TAGS");for(var n=0;n= v15 you must import it with ReactDOM"),n=n.$$class?n[0]:n,a!==$?(o=function(){setTimeout(function(){e.yieldX(a,[])},0)},s=ReactDOM.render(t.$to_n(),n,o)):s=ReactDOM.render(t.$to_n(),n),u(null!==s)?u(s.__opalInstance!==undefined&&null!==s.__opalInstance)?s.__opalInstance:u(ReactDOM.findDOMNode!==undefined&&s.nodeType===undefined)?ReactDOM.findDOMNode(s):s:$},d.$$arity=2),e.defs(m,"$is_valid_element",f=function(e){var t=$;return console.error("Warning: `is_valid_element` is deprecated in favor of `is_valid_element?`."),u(t=e["$kind_of?"](a(a(i(g,"Hyperstack"),"Component"),"Element")))?React.isValidElement(e.$to_n()):t},f.$$arity=1),e.defs(m,"$is_valid_element?",_=function(e){var t=$;return u(t=e["$kind_of?"](a(a(i(g,"Hyperstack"),"Component"),"Element")))?React.isValidElement(e.$to_n()):t},_.$$arity=1),e.defs(m,"$render_to_string",h=function(e){var t,n=this;return console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_string` is deprecated in favor of `React::Server.render_to_string`."),u(("undefined"==typeof ReactDOMServer)["$!"]())?s(a(a(a(i(g,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"build",[],((t=function(){null==t.$$s||t.$$s;return ReactDOMServer.renderToString(e.$to_n())}).$$s=n,t.$$arity=0,t)):n.$raise("renderToString is not defined. In React >= v15 you must import it with ReactDOMServer")},h.$$arity=1),e.defs(m,"$render_to_static_markup",y=function(e){var t,n=this;return console.error("Warning: `Hyperstack::Component::ReactAPI.render_to_static_markup` is deprecated in favor of `React::Server.render_to_static_markup`."),u(("undefined"==typeof ReactDOMServer)["$!"]())?s(a(a(a(i(g,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"build",[],((t=function(){null==t.$$s||t.$$s;return ReactDOMServer.renderToStaticMarkup(e.$to_n())}).$$s=n,t.$$arity=0,t)):n.$raise("renderToStaticMarkup is not defined. In React >= v15 you must import it with ReactDOMServer")},y.$$arity=1),e.defs(m,"$unmount_component_at_node",v=function(e){var t=this;return u(("undefined"==typeof ReactDOM)["$!"]())?ReactDOM.unmountComponentAtNode(e.$$class?e[0]:e):t.$raise("unmountComponentAtNode is not defined. In React >= v15 you must import it with ReactDOM")},v.$$arity=1),$&&"unmount_component_at_node"}(l[0],l)}(l[0],l)}(r[0],r)},Opal.modules["hyperstack/internal/component/top_level_rails_component"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.truthy,u=e.send;return e.add_stubs(["$include","$export_component","$param","$backtrace","$top_level_render","$start_with?","$<<","$const_get","$each","$search_path","$class","$name","$!=","$method_defined?","$render","$raise","$join","$search_path=","$-","$!","$include?","$add_to_react_search_path"]),function(t,n){var l=[i(t,"Hyperstack")].concat(n);(function(t,n){var l=[i(t,"Internal")].concat(n);(function(t,n){var l=[i(t,"Component")].concat(n);(function(t,$super,n){var i,l,c,p,d=o(t,null,"TopLevelRailsComponent"),f=[d].concat(n);d.$$prototype.ComponentName=d.$$prototype.RenderParams=d.$$prototype.Controller=r,d.$include($(a(f,"Hyperstack"),"Component")),e.defs(d,"$search_path",i=function(){var e=this,t=r;return null==e.search_path&&(e.search_path=r),e.search_path=s(t=e.search_path)?t:[a(f,"Object")]},i.$$arity=0),d.$export_component(),d.$param("component_name"),d.$param("controller"),d.$param("render_params"),d.$backtrace("off"),e.defs(d,"$allow_deprecated_render_definition?",l=function(){return!0},l.$$arity=0),e.def(d,"$render",c=function(){return this.$top_level_render()},c.$$arity=0),e.def(d,"$top_level_render",p=function(){var t,n,$=this,i=r,o=r,l=r;return i=[],o=r,s($.ComponentName["$start_with?"]("::"))?(i["$<<"]($.ComponentName),o=function(){try{return a(f,"Object").$const_get($.ComponentName)}catch(t){if(!e.rescue(t,[a(f,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}()):(function(){var n=e.new_brk();try{u($.$class().$search_path(),"each",[],((t=function($){var u=null==t.$$s?this:t.$$s;if(null==u.Controller&&(u.Controller=r),null==u.ComponentName&&(u.ComponentName=r),null==$&&($=r),i["$<<"]($.$name()+"::"+u.Controller+"::"+u.ComponentName),o=function(){try{return $.$const_get(u.Controller,!1).$const_get(u.ComponentName,!1)}catch(t){if(!e.rescue(t,[a(f,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}(),!s(o["$!="](r)))return r;e.brk(r,n)}).$$s=$,t.$$brk=n,t.$$arity=1,t))}catch(l){if(l===n)return l.$v;throw l}}(),s(o)||function(){var t=e.new_brk();try{u($.$class().$search_path(),"each",[],((n=function($){var u=null==n.$$s?this:n.$$s;if(null==u.ComponentName&&(u.ComponentName=r),null==$&&($=r),i["$<<"]($.$name()+"::"+u.ComponentName),o=function(){try{return $.$const_get(u.ComponentName,!1)}catch(t){if(!e.rescue(t,[a(f,"NameError")]))throw t;try{return r}finally{e.pop_exception()}}}(),!s(o["$!="](r)))return r;e.brk(r,t)}).$$s=$,n.$$brk=t,n.$$arity=1,n))}catch(l){if(l===t)return l.$v;throw l}}()),s(s(l=o)?o["$method_defined?"]("render"):l)?a(f,"RenderingContext").$render(o,$.RenderParams):$.$raise("Could not find component class '"+$.ComponentName+"' for @Controller '"+$.Controller+"' in any component directory. Tried ["+i.$join(", ")+"]")},p.$$arity=0)})(l[0],0,l)})(l[0],l)})(l[0],l)}(n[0],n),function(n,$super,i){var l,c=o(n,null,"Module"),p=[c].concat(i);e.def(c,"$add_to_react_search_path",l=function(n){var i=this,o=r;return null==n&&(n=r),s(n)?(o=[[i]],u($($($(a(p,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent"),"search_path=",e.to_a(o)),o[t(o.length,1)]):s($($($(a(p,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent").$search_path()["$include?"](i)["$!"]())?$($($(a(p,"Hyperstack"),"Internal"),"Component"),"TopLevelRailsComponent").$search_path()["$<<"](i):r},l.$$arity=-1)}(n[0],0,n),function(e,t){var n=i(e,"Components");[n].concat(t);return n.$add_to_react_search_path()}(n[0],n)},Opal.modules["hyperstack/component/while_loading"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,i=e.hash2,o=e.truthy;return e.add_stubs(["$WhileLoadingWrapper","$!","$on_opal_client?"]),function(t,s){var u=[a(t,"Hyperstack")].concat(s);return function(t,s){var u=[a(t,"Component")].concat(s);return function(t,s){var u,l,c,p=a(t,"WhileLoading"),d=[p].concat(s);if(e.def(p,"$__hyperstack_component_rescue_wrapper",u=function(e){var t=this;return r(r($(d,"Hyperstack"),"Internal"),"Component").$WhileLoadingWrapper(i(["child","children_elements"],{child:t,children_elements:e}))},u.$$arity=1),e.def(p,"$resources_loading?",l=function(){var e=this;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=n),e.__hyperstack_while_loading_waiting_on_resources},l.$$arity=0),e.def(p,"$resources_loaded?",c=function(){var e=this;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=n),e.__hyperstack_while_loading_waiting_on_resources["$!"]()},c.$$arity=0),!o(r(r($(d,"Hyperstack"),"Component"),"IsomorphicHelpers")["$on_opal_client?"]()))return n;{function f(e){e.message.match(/^Uncaught NotQuiet: /)&&e.preventDefault()}window.addEventListener("error",f)}}(u[0],u)}(u[0],u)}(t[0],t)},Opal.modules["hyperstack/component/free_render"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,i=e.send,o=e.alias,s=e.truthy;return e.add_stubs(["$instance_eval","$const_defined?","$const_get","$is_a?","$method_defined?","$include?","$render","$to_proc","$hyperstack_component_original_meth_missing"]),function(t,u){var l=[a(t,"Hyperstack")].concat(u);return function(t,u){var l=[a(t,"Component")].concat(u);return function(t,u){var l,c=a(t,"FreeRender"),p=[c].concat(u);return e.defs(c,"$included",l=function(t){var a,u=this;return i(t,"instance_eval",[],((a=function(){var t,u=null==a.$$s?this:a.$$s;return o(u,"hyperstack_component_original_meth_missing","method_missing"),e.def(u,"$method_missing",t=function(a){var o,u=t.$$p,l=u||n,c=this,d=n,f=n,_=n,h=n,y=n;return u&&(t.$$p=null),u&&(t.$$p=null),o=e.slice.call(arguments,1,arguments.length),s(s(d=s(f=c["$const_defined?"](a))?_=c.$const_get(a):f)?s(h=s(y=_["$is_a?"]($(p,"Class")))?_["$method_defined?"]("render"):y)?h:r(r(r(r($(p,"Hyperstack"),"Internal"),"Component"),"Tags"),"HTML_TAGS")["$include?"](_):d)?i(c,"render",[_].concat(e.to_a(o)),l.$to_proc()):i(c,"hyperstack_component_original_meth_missing",[a].concat(e.to_a(o)),l.$to_proc())},t.$$arity=-2),n&&"method_missing"}).$$s=u,a.$$arity=0,a))},l.$$arity=1),n&&"included"}(l[0],l)}(l[0],l)}(t[0],t)},Opal.modules["hyperstack/internal/component/rescue_wrapper"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.send,u=e.hash2,l=e.truthy;return e.add_stubs(["$include","$param","$render","$call","$attr_accessor","$RescueMetaWrapper","$after_error","$after_error_args","$run_callback","$after_error_args=","$-","$raise","$force_update!"]),function(n,c){var p=[i(n,"Hyperstack")].concat(c);return function(n,c){var p=[i(n,"Internal")].concat(c);return function(n,c){var p=[i(n,"Component")].concat(c);return function(e,$super,t){var n,i=o(e,null,"RescueMetaWrapper"),u=[i].concat(t);i.$include($(a(u,"Hyperstack"),"Component")),i.$param("children_elements"),s(i,"render",[],((n=function(){var e=null==n.$$s?this:n.$$s;return null==e.ChildrenElements&&(e.ChildrenElements=r),e.ChildrenElements.$call()}).$$s=i,n.$$arity=0,n))}(p[0],0,p),function(n,$super,i){var c,p,d=o(n,null,"RescueWrapper"),f=[d].concat(i);return function(e,t){[e].concat(t);e.$attr_accessor("after_error_args")}(e.get_singleton_class(d),f),d.$include($(a(f,"Hyperstack"),"Component")),d.$param("child"),d.$param("children_elements"),s(d,"render",[],((c=function(){var e=null==c.$$s?this:c.$$s;return null==e.ChildrenElements&&(e.ChildrenElements=r),e.$RescueMetaWrapper(u(["children_elements"],{children_elements:e.ChildrenElements}))}).$$s=d,c.$$arity=0,c)),s(d,"after_error",[],((p=function(n,$){var i,o,u=null==p.$$s?this:p.$$s,c=r,d=r,_=r,h=r;return null==u.Child&&(u.Child=r),null==n&&(n=r),null==$&&($=r),c=l(d=a(f,"RescueWrapper").$after_error_args())?d:[n,$],o=s(u.Child,"run_callback",["__hyperstack_component_rescue_hook",_].concat(e.to_a(c))),_=null==(i=e.to_ary(o))[0]?r:i[0],l(_)||(h=[c],s(a(f,"RescueWrapper"),"after_error_args=",e.to_a(h)),h[t(h.length,1)],u.$raise(n)),u.Child["$force_update!"]()}).$$s=d,p.$$arity=2,p))}(p[0],0,p)}(p[0],p)}(p[0],p)}(n[0],n)},Opal.modules["hyperstack/internal/component/while_loading_wrapper"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.send,u=e.truthy,l=e.hash2;return e.add_stubs(["$render","$!","$quiet?","$raise_if_not_quiet=","$-","$instance_eval","$mutate","$RescueMetaWrapper","$before_mount","$rescues","$class","$instance_variable_set"]),function(n,c){var p=[i(n,"Hyperstack")].concat(c);return function(n,c){var p=[i(n,"Internal")].concat(c);return function(n,c){var p=[i(n,"Component")].concat(c);return function(n,$super,i){var c,p,d=o(n,$super,"WhileLoadingWrapper"),f=[d].concat(i);return s(d,"render",[],((c=function(){var n,$=null==c.$$s?this:c.$$s,i=r,o=r;return null==$.waiting_on_resources&&($.waiting_on_resources=r),null==$.Child&&($.Child=r),null==$.ChildrenElements&&($.ChildrenElements=r),u(u(i=$.waiting_on_resources)?$["$quiet?"]()["$!"]():i)?(o=[!1],s(a(f,"RenderingContext"),"raise_if_not_quiet=",e.to_a(o)),o[t(o.length,1)]):($.waiting_on_resources=!1,s($.Child,"instance_eval",[],((n=function(){var e=null==n.$$s?this:n.$$s;return null==e.__hyperstack_while_loading_waiting_on_resources&&(e.__hyperstack_while_loading_waiting_on_resources=r),u(e.__hyperstack_while_loading_waiting_on_resources)&&e.$mutate(),e.__hyperstack_while_loading_waiting_on_resources=!1}).$$s=$,n.$$arity=0,n)),o=[!0],s(a(f,"RenderingContext"),"raise_if_not_quiet=",e.to_a(o)),o[t(o.length,1)]),$.$RescueMetaWrapper(l(["children_elements"],{children_elements:$.ChildrenElements}))}).$$s=d,c.$$arity=0,c)),s(d,"before_mount",[],((p=function(){var e,t=null==p.$$s?this:p.$$s,n=r;return null==t.Child&&(t.Child=r),n=t,s(t.Child.$class(),"rescues",[$(a(f,"RenderingContext"),"NotQuiet")],((e=function(){var t=null==e.$$s?this:e.$$s;return n.$instance_variable_set("@waiting_on_resources",!0),t.__hyperstack_while_loading_waiting_on_resources=!0}).$$s=t,e.$$arity=0,e))}).$$s=d,p.$$arity=0,p))}(p[0],a(p,"RescueWrapper"),p)}(p[0],p)}(p[0],p)}(n[0],n)},Opal.modules["hyperstack/component/version"]=function(e){e.top;var t=[],n=(e.nil,e.$$$,e.$$,e.module);return function(t,r){var $=[n(t,"Hyperstack")].concat(r);return function(t,r){var $=[n(t,"Component")].concat(r);return e.const_set($[0],"VERSION","1.0.alpha1.8")}($[0],$)}(t[0],t)},Opal.modules["hyper-component"]=function(e){var t=e.top,n=[],r=(e.nil,e.$$$,e.$$),$=e.hash2;return e.add_stubs(["$require","$js_import","$import"]),t.$require("hyperstack/internal/component"),r(n,"Hyperstack").$js_import("react/react-source-browser",$(["client_only","defines"],{client_only:!0,defines:["ReactDOM","React"]})),r(n,"Hyperstack").$js_import("react/react-source-server",$(["server_only","defines"],{server_only:!0,defines:"React"})),r(n,"Hyperstack").$import("browser/delay",$(["client_only"],{client_only:!0})),r(n,"Hyperstack").$import("browser/interval",$(["client_only"],{client_only:!0})),r(n,"Hyperstack").$js_import("react_ujs",$(["defines"],{defines:"ReactRailsUJS"})),r(n,"Hyperstack").$import("hyper-component"),r(n,"Hyperstack").$import("hyperstack/component/auto-import"),t.$require("hyperstack/internal/callbacks"),t.$require("hyperstack/internal/auto_unmount"),t.$require("native"),t.$require("json"),t.$require("hyperstack/state/observer"),t.$require("hyperstack/internal/component/validator"),t.$require("hyperstack/component/element"),t.$require("hyperstack/internal/component/react_wrapper"),t.$require("hyperstack/component"),t.$require("hyperstack/internal/component/should_component_update"),t.$require("hyperstack/internal/component/tags"),t.$require("hyperstack/component/event"),t.$require("hyperstack/internal/component/rendering_context"),t.$require("hyperstack/ext/component/object"),t.$require("hyperstack/ext/component/kernel"),t.$require("hyperstack/ext/component/number"),t.$require("hyperstack/ext/component/boolean"),t.$require("hyperstack/ext/component/array"),t.$require("hyperstack/ext/component/enumerable"),t.$require("hyperstack/ext/component/time"),t.$require("hyperstack/component/isomorphic_helpers"),t.$require("hyperstack/component/react_api"),t.$require("hyperstack/internal/component/top_level_rails_component"),t.$require("hyperstack/component/while_loading"),t.$require("hyperstack/component/free_render"),t.$require("hyperstack/internal/component/rescue_wrapper"),t.$require("hyperstack/internal/component/while_loading_wrapper"),t.$require("hyperstack/component/version")},Opal.modules["hyperstack/component/auto-import"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.klass,i=e.alias,o=e.truthy,s=e.send,u=e.module;return e.add_stubs(["$_reactrb_original_const_missing","$import_const_from_native","$raise","$_reactrb_import_component_class","$_reactrb_original_method_missing","$to_proc","$render"]),function(t,$super,u){var l=a(t,null,"Object"),c=[l].concat(u);(function(t,a){var u,l,c,p=[t].concat(a);i(t,"_reactrb_original_const_missing","const_missing"),i(t,"_reactrb_original_method_missing","method_missing"),e.def(t,"$const_missing",u=function(t){var a=this,i=n,s=n;try{return a.$_reactrb_original_const_missing(t)}catch(u){if(!e.rescue(u,[$(p,"StandardError")]))throw u;i=u;try{return o(s=r(r(r($(p,"Hyperstack"),"Internal"),"Component"),"NativeLibrary").$import_const_from_native($(p,"Object"),t,!0))?s:a.$raise(i)}finally{e.pop_exception()}}},u.$$arity=1),e.def(t,"$_reactrb_import_component_class",l=function(e){var t=this;return r(r(r($(p,"Hyperstack"),"Internal"),"Component"),"NativeLibrary").$import_const_from_native(t,e,!1)},l.$$arity=1),e.def(t,"$method_missing",c=function(t){var a,i=c.$$p,u=i||n,l=this,d=n;return i&&(c.$$p=null),i&&(c.$$p=null),a=e.slice.call(arguments,1,arguments.length),d=l.$_reactrb_import_component_class(t),o(d)||s(l,"_reactrb_original_method_missing",[t].concat(e.to_a(a)),u.$to_proc()),s(r(r(r($(p,"Hyperstack"),"Internal"),"Component"),"RenderingContext"),"render",[d].concat(e.to_a(a)),u.$to_proc())},c.$$arity=-2)})(e.get_singleton_class(l),c)}(t[0],0,t),function(e,t){var i=[u(e,"Hyperstack")].concat(t);return function(e,t){var i=[u(e,"Internal")].concat(t);return function(e,t){var i=[u(e,"Component")].concat(t);return function(e,$super,t){[a(e,$super,"NativeLibrary")].concat(t);return n}(i[0],r(r($(i,"Hyperstack"),"Component"),"NativeLibrary"),i)}(i[0],i)}(i[0],i)}(t[0],t)},Opal.modules["hyperstack/internal/state/mapper"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$),i=e.module,o=e.truthy,s=e.send;return e.add_stubs(["$+","$observed!","$class","$update_objects_to_observe","$-","$<<","$[]","$new_objects","$update_exclusions","$delay_updates?","$schedule_delayed_updater","$zero?","$key?","$current_observers","$each","$mutations","$remove_current_observers_and_objects","$delete","$[]=","$current_objects","$new","$raise","$empty?","$on_client?","$!=","$after","$run_delayed_updater","$observers_to_update","$include?","$tap"]),function(r,u){var l=[i(r,"Hyperstack")].concat(u);return function(r,u){var l=[i(r,"Internal")].concat(u);return function(r,u){var l=[i(r,"State")].concat(u);return function(r,u){var l=i(r,"Mapper"),c=[l].concat(u);return l.rendering_level=0,function(r,i){var u,l,c,p,d,f,_,h,y,v,m,g,b,w,k,O,E,x,S=[r].concat(i);return e.def(r,"$observing",u=function(r,a,i,s){var l,c,p=u.$$p,d=p||$,f=this,_=$,h=$,y=$;return null==f.current_observer&&(f.current_observer=$),null==f.immediate_update&&(f.immediate_update=$),null==f.rendering_level&&(f.rendering_level=$),p&&(u.$$p=null),function(){try{return _=[f.current_observer,f.immediate_update],f.current_observer=r,f.immediate_update=o(h=a)?r:h,o(i)&&(f.rendering_level=t(f.rendering_level,1),f["$observed!"](r),f["$observed!"](r.$class())),y=e.yieldX(d,[]),o(s)&&f.$update_objects_to_observe(r),y}finally{c=_,l=e.to_ary(c),f.current_observer=null==l[0]?$:l[0],f.immediate_update=null==l[1]?$:l[1],o(i)&&(f.rendering_level=n(f.rendering_level,1))}}()},u.$$arity=4),e.def(r,"$observed!",l=function(e){var t=this;return null==t.current_observer&&(t.current_observer=$),o(t.current_observer)?(t.$new_objects()["$[]"](t.current_observer)["$<<"](e),o(t.$update_exclusions()["$[]"](e))?t.$update_exclusions()["$[]"](e)["$<<"](t.current_observer):$):$},l.$$arity=1),e.def(r,"$mutated!",c=function(e){var t,n=this;return null==n.ignore_mutations&&(n.ignore_mutations=$),null==n.rendering_level&&(n.rendering_level=$),o(n.ignore_mutations)?$:o(n["$delay_updates?"](e))?n.$schedule_delayed_updater(e):o(n.rendering_level["$zero?"]())&&o(n.$current_observers()["$key?"](e))?s(n.$current_observers()["$[]"](e),"each",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=$),n.$mutations([e])}).$$s=n,t.$$arity=1,t)):$},c.$$arity=1),e.def(r,"$observed?",p=function(e){return this.$current_observers()["$key?"](e)},p.$$arity=1),e.def(r,"$bulk_update",d=function(){var t=d.$$p,n=t||$,r=this,a=$;return null==r.bulk_update_flag&&(r.bulk_update_flag=$),t&&(d.$$p=null),function(){try{return a=r.bulk_update_flag,r.bulk_update_flag=!0,e.yieldX(n,[])}finally{r.bulk_update_flag=a}}()},d.$$arity=0),e.def(r,"$ignore_bulk_updates",f=function(){var t,n,r=f.$$p,a=r||$,i=this,o=$;return null==i.ignore_bulk_update_flag&&(i.ignore_bulk_update_flag=$),r&&(f.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,function(){try{return o=i.ignore_bulk_update_flag,i.ignore_bulk_update_flag=!0,e.yieldX(a,e.to_a(n))}finally{i.ignore_bulk_update_flag=o}}()},f.$$arity=-1),e.def(r,"$ignore_mutations",_=function(){var t=_.$$p,n=t||$,r=this,a=$;return null==r.ignore_mutations&&(r.ignore_mutations=$),t&&(_.$$p=null),function(){try{return a=r.ignore_mutations,r.ignore_mutations=!0,e.yieldX(n,[])}finally{r.ignore_mutations=a}}()},_.$$arity=0),e.def(r,"$update_objects_to_observe",h=function(t){var r,a=this,i=$,u=$;return null==a.current_observer&&(a.current_observer=$),null==t&&(t=a.current_observer),a.$remove_current_observers_and_objects(t),i=a.$new_objects().$delete(t),o(i)&&s(i,"each",[],((r=function(e){var n=null==r.$$s?this:r.$$s;return null==e&&(e=$),n.$current_observers()["$[]"](e)["$<<"](t)}).$$s=a,r.$$arity=1,r)),u=[t,i],s(a.$current_objects(),"[]=",e.to_a(u)),u[n(u.length,1)]},h.$$arity=-1),e.def(r,"$remove",y=function(e){var t=this;return null==t.current_observer&&(t.current_observer=$),null==t.removed_observers&&(t.removed_observers=$),null==e&&(e=t.current_observer),t.$remove_current_observers_and_objects(e),t.$new_objects().$delete(e),o(t.removed_observers)?t.removed_observers["$<<"](e):$},y.$$arity=-1),e.def(r,"$new_objects",v=function(){var t,r=this,i=$;return null==r.new_objects&&(r.new_objects=$),r.new_objects=o(i=r.new_objects)?i:s(a(S,"Hash"),"new",[],((t=function(r,i){null==t.$$s||t.$$s;var o=$;return null==r&&(r=$),null==i&&(i=$),o=[i,a(S,"Set").$new()],s(r,"[]=",e.to_a(o)),o[n(o.length,1)]}).$$s=r,t.$$arity=2,t))},v.$$arity=0),e.def(r,"$current_observers",m=function(){var t,r=this,i=$;return null==r.current_observers&&(r.current_observers=$),r.current_observers=o(i=r.current_observers)?i:s(a(S,"Hash"),"new",[],((t=function(r,a){null==t.$$s||t.$$s;var i=$;return null==r&&(r=$),null==a&&(a=$),i=[a,[]],s(r,"[]=",e.to_a(i)),i[n(i.length,1)]}).$$s=r,t.$$arity=2,t))},m.$$arity=0),e.def(r,"$current_objects",g=function(){var t,r=this,i=$;return null==r.current_objects&&(r.current_objects=$),r.current_objects=o(i=r.current_objects)?i:s(a(S,"Hash"),"new",[],((t=function(r,a){null==t.$$s||t.$$s;var i=$;return null==r&&(r=$),null==a&&(a=$),i=[a,[]],s(r,"[]=",e.to_a(i)),i[n(i.length,1)]}).$$s=r,t.$$arity=2,t))},g.$$arity=0),e.def(r,"$update_exclusions",b=function(){var e=this,t=$;return null==e.update_exclusions&&(e.update_exclusions=$),e.update_exclusions=o(t=e.update_exclusions)?t:a(S,"Hash").$new()},b.$$arity=0),e.def(r,"$remove_current_observers_and_objects",w=function(e){var t,n=this,r=$;return o(e)||n.$raise("state management called outside of watch block"),r=n.$current_objects().$delete(e),o(r)?s(r,"each",[],((t=function(n){var r=null==t.$$s?this:t.$$s;return null==n&&(n=$),o(r.$current_observers()["$key?"](n))?(r.$current_observers()["$[]"](n).$delete(e),o(r.$current_observers()["$[]"](n)["$empty?"]())?r.$current_observers().$delete(n):$):$}).$$s=n,t.$$arity=1,t)):$},w.$$arity=1),e.def(r,"$delay_updates?",k=function(e){var t=this,n=$;return null==t.ignore_bulk_update_flag&&(t.ignore_bulk_update_flag=$),null==t.bulk_update_flag&&(t.bulk_update_flag=$),null==t.immediate_update&&(t.immediate_update=$),null==t.current_observer&&(t.current_observer=$),!o(t.ignore_bulk_update_flag)&&(!!o(t.bulk_update_flag)||!!o(a(S,"Hyperstack")["$on_client?"]())&&(o(n=t.immediate_update["$!="](t.current_observer))?n:t.current_observer["$!="](e)))},k.$$arity=1),e.def(r,"$schedule_delayed_updater",O=function(t){var r,i=this,u=$,l=$;return null==i.delayed_updater&&(i.delayed_updater=$),u=[t,a(S,"Set").$new()],s(i.$update_exclusions(),"[]=",e.to_a(u)),u[n(u.length,1)],i.delayed_updater=o(l=i.delayed_updater)?l:s(i,"after",[0],((r=function(){return(null==r.$$s?this:r.$$s).$run_delayed_updater()}).$$s=i,r.$$arity=0,r))},O.$$arity=1),e.def(r,"$run_delayed_updater",E=function(){var e,t=this,n=$;return null==t.update_exclusions&&(t.update_exclusions=$),function(){try{return n=t.update_exclusions,t.update_exclusions=t.delayed_updater=$,t.removed_observers=a(S,"Set").$new(),s(t.$observers_to_update(n),"each",[],((e=function(t,n){var r=null==e.$$s?this:e.$$s;return null==r.removed_observers&&(r.removed_observers=$),null==t&&(t=$),null==n&&(n=$),o(r.removed_observers["$include?"](t))?$:t.$mutations(n)}).$$s=t,e.$$arity=2,e))}finally{t.removed_observers=$}}()},E.$$arity=0),e.def(r,"$observers_to_update",x=function(t){var r,i,u=this;return s(s(a(S,"Hash"),"new",[],((r=function(t,i){null==r.$$s||r.$$s;var o=$;return null==t&&(t=$),null==i&&(i=$),o=[i,a(S,"Array").$new()],s(t,"[]=",e.to_a(o)),o[n(o.length,1)]}).$$s=u,r.$$arity=2,r)),"tap",[],((i=function(e){var n,r=null==i.$$s?this:i.$$s;return null==e&&(e=$),s(t,"each",[],((n=function(t,r){var a,i=null==n.$$s?this:n.$$s;return null==t&&(t=$),null==r&&(r=$),o(i.$current_observers()["$key?"](t))?s(i.$current_observers()["$[]"](t),"each",[],((a=function(n){null==a.$$s||a.$$s;return null==n&&(n=$),o(r["$include?"](n))?$:e["$[]"](n)["$<<"](t)}).$$s=i,a.$$arity=1,a)):$}).$$s=r,n.$$arity=2,n))}).$$s=u,i.$$arity=1,i))},x.$$arity=1),$&&"observers_to_update"}(e.get_singleton_class(l),c)}(l[0],l)}(l[0],l)}(l[0],l)}(r[0],r)},Opal.modules["hyperstack/internal/state/variable"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.truthy,s=e.send;return e.add_stubs(["$new","$[]=","$-","$[]","$legacy_map","$observed!","$object_id","$mutated!","$observed?"]),function(n,u){var l=[i(n,"Hyperstack")].concat(u);return function(n,u){var l=[i(n,"Internal")].concat(u);return function(n,u){var l=[i(n,"State")].concat(u);return function(n,u){var l=i(n,"Variable"),c=[l].concat(u);return function(n,i){var u,l,c,p,d=[n].concat(i);return e.def(n,"$legacy_map",u=function(){var n,$=this,i=r;return null==$.legacy_map&&($.legacy_map=r),$.legacy_map=o(i=$.legacy_map)?i:s(a(d,"Hash"),"new",[],((n=function($,i){var o,u=null==n.$$s?this:n.$$s,l=r;return null==$&&($=r),null==i&&(i=r),l=[i,s(a(d,"Hash"),"new",[],(o=function(n,$){return null==o.$$s||o.$$s,null==n&&(n=r),null==$&&($=r),l=[$,a(d,"Array").$new()],s(n,"[]=",e.to_a(l)),l[t(l.length,1)]},o.$$s=u,o.$$arity=2,o))],s($,"[]=",e.to_a(l)),l[t(l.length,1)]}).$$s=$,n.$$arity=2,n))},u.$$arity=0),e.def(n,"$get",l=function(e,t){var n=r;return n=this.$legacy_map()["$[]"](e)["$[]"](t),$($($(a(d,"Hyperstack"),"Internal"),"State"),"Mapper")["$observed!"](n.$object_id()),n["$[]"](0)},l.$$arity=2),e.def(n,"$set",c=function(n,i,o,u){var l=r,c=r;return null==u&&(u=r),l=this.$legacy_map()["$[]"](n)["$[]"](i),c=[0,o],s(l,"[]=",e.to_a(c)),c[t(c.length,1)],$($($(a(d,"Hyperstack"),"Internal"),"State"),"Mapper")["$mutated!"](l.$object_id()),o},c.$$arity=-4),e.def(n,"$observed?",p=function(e,t){var n=r;return n=this.$legacy_map()["$[]"](e)["$[]"](t),$($($(a(d,"Hyperstack"),"Internal"),"State"),"Mapper")["$observed?"](n.$object_id())},p.$$arity=2),r&&"observed?"}(e.get_singleton_class(l),c)}(l[0],l)}(l[0],l)}(l[0],l)}(n[0],n)},Opal.modules["hyperstack/internal/receiver"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,i=e.truthy,o=e.send,s=e.lambda;return e.add_stubs(["$respond_to?","$unmounted?","$format_callback","$each","$on_dispatch","$call","$<<","$[]","$objects_to_unmount","$is_a?","$last","$pop","$send","$empty?","$raise"]),function(t,u){var l=[a(t,"Hyperstack")].concat(u);return function(t,u){var l=[a(t,"Internal")].concat(u);return function(t,u){var l=a(t,"Receiver"),c=[l].concat(u);return function(t,a){var u,l,c=[t].concat(a);return e.def(t,"$mount",u=function(t){var r,a,s=u.$$p,l=s||n,p=this,d=n,f=n;return s&&(u.$$p=null),s&&(u.$$p=null),r=e.slice.call(arguments,1,arguments.length),i(i(d=t["$respond_to?"]("unmounted?"))?t["$unmounted?"]():d)?n:(f=p.$format_callback(t,r),o(r,"each",[],((a=function(r){var s,u=null==a.$$s?this:a.$$s,p=n;return null==r&&(r=n),p=o(r,"on_dispatch",[],((s=function(t){null==s.$$s||s.$$s;return null==t&&(t=n),i(f)&&f.$call(t),i(l)?e.yield1(l,t):n}).$$s=u,s.$$arity=1,s)),i(t["$respond_to?"]("unmount"))?$(c,"AutoUnmount").$objects_to_unmount()["$[]"](t)["$<<"](p):n}).$$s=p,a.$$arity=1,a)))},u.$$arity=-2),e.def(t,"$format_callback",l=function(t,a){var u,l=this,p=n,d=n,f=n;return p=i(a.$last()["$is_a?"]($(c,"Symbol")))?(d=a.$pop(),s(((u=function(){var n;return null==u.$$s||u.$$s,n=e.slice.call(arguments,0,arguments.length),o(t,"send",[""+d].concat(e.to_a(n)))}).$$s=l,u.$$arity=-1,u))):i(a.$last()["$is_a?"]($(c,"Proc")))?a.$pop():n,i(a["$empty?"]())?(f="At least one operation must be passed in to the 'receives' macro",l.$raise(r(r($(c,"Legacy"),"Store"),"InvalidOperationError"),f)):p},l.$$arity=2),n&&"format_callback"}(e.get_singleton_class(l),c)}(l[0],l)}(l[0],l)}(t[0],t)},Opal.modules["hyperstack/state/observable"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.send,s=e.truthy;return e.add_stubs(["$bulk_update","$to_proc","$include","$each","$send","$mount","$call","$last","$observed!","$mutated!","$instance_variable_set","$!","$instance_variable_get","$==","$naming_convention","$!~","$!=","$lambda","$mutate","$singleton_class","$define_method","$tap","$instance_exec","$state_reader","$state_writer","$define_singleton_method","$respond_to?","$receives","$each_object","$<=","$zero?","$arity","$method","$initialize","$attr_reader"]),function(n,u){var l=[i(n,"Hyperstack")].concat(u);return function(n,u){var l=[i(n,"State")].concat(u);return function(n,u){var l,c,p=i(n,"Observable"),d=[p].concat(u);return e.defs(p,"$bulk_update",l=function(){var e=l.$$p,t=e||r;return e&&(l.$$p=null),e&&(l.$$p=null),o($($(a(d,"Internal"),"State"),"Mapper"),"bulk_update",[],t.$to_proc())},l.$$arity=0),e.defs(p,"$included",c=function(n){var i,u,l,p=c.$$p,f=this;return p&&(c.$$p=null),n.$include($(a(d,"Internal"),"AutoUnmount")),o(["singleton_method","method"],"each",[],((i=function(t){var u,l,c,p,f,_,h,y,v,m,g=null==i.$$s?this:i.$$s;return null==t&&(t=r),o(n,"send",["define_"+t,"receives"],((u=function(){var t,n=null==u.$$s?this:u.$$s,i=u.$$p,s=i||r;return i&&(u.$$p=null),t=e.slice.call(arguments,0,arguments.length),o($(a(d,"Internal"),"Receiver"),"mount",[n].concat(e.to_a(t)),s.$to_proc())}).$$s=g,u.$$arity=-1,u)),o(n,"send",["define_"+t,"observe"],((l=function(){var t,n,i=null==l.$$s?this:l.$$s,o=l.$$p,u=o||r,c=r;return o&&(l.$$p=null), +t=e.slice.call(arguments,0,arguments.length),n=t,c=s(u)?u.$call():n.$last(),$($(a(d,"Internal"),"State"),"Mapper")["$observed!"](i),c}).$$s=g,l.$$arity=-1,l)),o(n,"send",["define_"+t,"mutate"],((c=function(){var t,n,i=null==c.$$s?this:c.$$s,o=c.$$p,u=o||r,l=r;return o&&(c.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,l=s(u)?u.$call():n.$last(),$($(a(d,"Internal"),"State"),"Mapper")["$mutated!"](i),l}).$$s=g,c.$$arity=-1,c)),o(n,"send",["define_"+t,"toggle"],((p=function(e){var t=null==p.$$s?this:p.$$s,n=r;return null==e&&(e=r),e="@"+e,n=t.$instance_variable_set(e,t.$instance_variable_get(e)["$!"]()),$($(a(d,"Internal"),"State"),"Mapper")["$mutated!"](t),n}).$$s=g,p.$$arity=1,p)),o(n,"send",["define_"+t,"set"],((f=function(e){var t,n=null==f.$$s?this:f.$$s,$=r,i=r;return null==e&&(e=r),a(d,"Hyperstack").$naming_convention()["$=="]("prefix_state")?s(e["$!~"](/^_/))&&(e="_"+e):s(s($=a(d,"Hyperstack").$naming_convention()["$!="]("none"))?e["$!~"](/^[a-z]/):$)&&(i=!0),o(n,"lambda",[],((t=function(n){var $=null==t.$$s?this:t.$$s;return null==n&&(n=r),$[e]=n,s(i)?r:$.$mutate()}).$$s=n,t.$$arity=1,t))}).$$s=g,f.$$arity=1,f)),o(n.$singleton_class(),"send",["define_"+t,"observer"],((_=function(t){var n,i=null==_.$$s?this:_.$$s,s=_.$$p,u=s||r;return s&&(_.$$p=null),null==t&&(t=r),o(i,"define_method",[t],((n=function(){var t,r,i=null==n.$$s?this:n.$$s;return t=e.slice.call(arguments,0,arguments.length),o(o(i,"instance_exec",e.to_a(t),u.$to_proc()),"tap",[],((r=function(){var e=null==r.$$s?this:r.$$s;return $($(a(d,"Internal"),"State"),"Mapper")["$observed!"](e)}).$$s=i,r.$$arity=0,r))}).$$s=i,n.$$arity=-1,n))}).$$s=g,_.$$arity=1,_)),o(n.$singleton_class(),"send",["define_"+t,"mutator"],((h=function(t){var n,i=null==h.$$s?this:h.$$s,s=h.$$p,u=s||r;return s&&(h.$$p=null),null==t&&(t=r),o(i,"define_method",[t],((n=function(){var t,r,i=null==n.$$s?this:n.$$s;return t=e.slice.call(arguments,0,arguments.length),o(o(i,"instance_exec",e.to_a(t),u.$to_proc()),"tap",[],((r=function(){var e=null==r.$$s?this:r.$$s;return $($(a(d,"Internal"),"State"),"Mapper")["$mutated!"](e)}).$$s=i,r.$$arity=0,r))}).$$s=i,n.$$arity=-1,n))}).$$s=g,h.$$arity=1,h)),o(n.$singleton_class(),"send",["define_"+t,"state_reader"],((y=function(){var t,n,i=null==y.$$s?this:y.$$s;return t=e.slice.call(arguments,0,arguments.length),o(t,"each",[],((n=function(e){var t,i=null==n.$$s?this:n.$$s,u=r,l=r;return null==e&&(e=r),u=s(s(l=a(d,"Hyperstack").$naming_convention()["$=="]("prefix_state"))?e["$!~"](/^_/):l)?"_"+e:e,o(i,"define_method",[e],((t=function(){var e,n=null==t.$$s?this:t.$$s;return o(n.$instance_variable_get("@"+u),"tap",[],((e=function(){var t=null==e.$$s?this:e.$$s;return $($(a(d,"Internal"),"State"),"Mapper")["$observed!"](t)}).$$s=n,e.$$arity=0,e))}).$$s=i,t.$$arity=0,t))}).$$s=i,n.$$arity=1,n))}).$$s=g,y.$$arity=-1,y)),o(n.$singleton_class(),"send",["define_"+t,"state_writer"],((v=function(){var t,n,i=null==v.$$s?this:v.$$s;return t=e.slice.call(arguments,0,arguments.length),o(t,"each",[],((n=function(e){var t,i=null==n.$$s?this:n.$$s,u=r,l=r;return null==e&&(e=r),u=s(s(l=a(d,"Hyperstack").$naming_convention()["$=="]("prefix_state"))?e["$!~"](/^_/):l)?"_"+e:e,o(i,"define_method",[e+"="],((t=function(e){var n,i=null==t.$$s?this:t.$$s;return null==e&&(e=r),o(i.$instance_variable_set("@"+u,e),"tap",[],((n=function(){var e=null==n.$$s?this:n.$$s;return $($(a(d,"Internal"),"State"),"Mapper")["$mutated!"](e)}).$$s=i,n.$$arity=0,n))}).$$s=i,t.$$arity=1,t))}).$$s=i,n.$$arity=1,n))}).$$s=g,v.$$arity=-1,v)),o(n.$singleton_class(),"send",["define_"+t,"state_accessor"],((m=function(){var t,n=null==m.$$s?this:m.$$s;return t=e.slice.call(arguments,0,arguments.length),o(n,"state_reader",e.to_a(t)),o(n,"state_writer",e.to_a(t))}).$$s=g,m.$$arity=-1,m))}).$$s=f,i.$$arity=1,i)),o(n.$singleton_class(),"define_singleton_method",["receives"],((u=function(){null==u.$$s||u.$$s;var t,i=u.$$p,s=i||r;return i&&(u.$$p=null),t=e.slice.call(arguments,0,arguments.length),o($(a(d,"Internal"),"Receiver"),"mount",[n].concat(e.to_a(t)),s.$to_proc())}).$$s=f,u.$$arity=-1,u)),s(n["$respond_to?"]("__hyperstack_state_observer_included"))?r:(o(n,"receives",[$($(a(d,"Hyperstack"),"Application"),"Boot")],((l=function(){var e,$=null==l.$$s?this:l.$$s;return o(a(d,"ObjectSpace"),"each_object",[a(d,"Class")],((e=function($){null==e.$$s||e.$$s;return null==$&&($=r),s(t($,n))&&s($["$respond_to?"]("initialize"))&&s($.$method("initialize").$arity()["$zero?"]())?$.$initialize():r}).$$s=$,e.$$arity=1,e))}).$$s=f,l.$$arity=0,l)),n.$singleton_class().$attr_reader("__hyperstack_state_observer_included"))},c.$$arity=1),r&&"included"}(l[0],l)}(l[0],l)}(n[0],n)},Opal.modules["hyperstack/state/version"]=function(e){e.top;var t=[],n=(e.nil,e.$$$,e.$$,e.module);return function(t,r){var $=[n(t,"Hyperstack")].concat(r);return function(t,r){var $=[n(t,"State")].concat(r);return e.const_set($[0],"VERSION","1.0.alpha1.8")}($[0],$)}(t[0],t)},Opal.modules["ext/object_space"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$),i=e.module,o=e.send,s=e.truthy;return e.add_stubs(["$loop","$[]","$each","$const_get","$respond_to?","$include?","$is_a?","$<<","$+","$>=","$length"]),function(r,u){var l,c=i(r,"ObjectSpace"),p=[c].concat(u);return e.defs(c,"$each_object",l=function(r){var i,u=l.$$p,c=u||$,d=this,f=$,_=$;return u&&(l.$$p=null),u&&(l.$$p=null),f=[a(p,"Object")],_=0,function(){var u=e.new_brk();try{return o(d,"loop",[],((i=function(){var l,d=null==i.$$s?this:i.$$s,h=$,y=$,v=$;if(h=f["$[]"](_),e.yield1(c,h),y=s(v=h.$$const)?Object.keys(h.$$const):v,s(y)&&o(y,"each",[],((l=function(t){null==l.$$s||l.$$s;var n=$;null==t&&(t=$);try{return n=function(){try{return h.$const_get(t)}catch(n){if(!e.rescue(n,[a(p,"StandardError")]))throw n;try{return $}finally{e.pop_exception()}}}(),s(n.$$const)&&s(n["$respond_to?"]("is_a?"))?s(f["$include?"](n))?$:s(n["$is_a?"](r))?f["$<<"](n):$:$}catch(i){if(!e.rescue(i,[a(p,"Exception")]))throw i;i;try{return $}finally{e.pop_exception()}}}).$$s=d,l.$$arity=1,l)),_=t(_,1),!s(n(_,f.$length())))return $;e.brk($,u)}).$$s=d,i.$$brk=u,i.$$arity=0,i))}catch(l){if(l===u)return l.$v;throw l}}()},l.$$arity=1),$&&"each_object"}(r[0],r)},Opal.modules["hyper-state"]=function(e){var t=e.top,n=[],r=(e.nil,e.$$$,e.$$);return e.add_stubs(["$require","$import"]),t.$require("set"),t.$require("hyperstack-config"),r(n,"Hyperstack").$import("hyper-state"),t.$require("hyperstack/internal/callbacks"),t.$require("hyperstack/internal/auto_unmount"),t.$require("hyperstack/internal/state/mapper"),t.$require("hyperstack/internal/state/variable"),t.$require("hyperstack/internal/auto_unmount"),t.$require("hyperstack/internal/receiver"),t.$require("hyperstack/state/observable"),t.$require("hyperstack/state/observer"),t.$require("hyperstack/state/version"),t.$require("ext/object_space")},Opal.modules["hyper-operation/version"]=function(e){e.top;var t=[],n=(e.nil,e.$$$,e.$$,e.module),r=e.klass;return function(t,$){var a=[n(t,"Hyperstack")].concat($);return function(t,$super,n){var $=[r(t,null,"Operation")].concat(n);return e.const_set($[0],"VERSION","1.0.alpha1.8")}(a[0],0,a)}(t[0],t)},Opal.modules.js=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.module),$=e.truthy,a=e.alias;return e.add_stubs(["$insert","$<<","$global","$extend"]),function(t,i){var o,s,u,l,c,p,d,f,_,h,y=r(t,"JS");[y].concat(i);return e.def(y,"$delete",o=function(e,t){return delete e[t]},o.$$arity=2),e.def(y,"$global",s=function(){return e.global},s.$$arity=0),e.def(y,"$in",u=function(e,t){return e in t},u.$$arity=2),e.def(y,"$instanceof",l=function(e,t){return e instanceof t},l.$$arity=2),$("function"==typeof Function.prototype.bind)?e.def(y,"$new",c=function(t){var r,a=c.$$p,i=a||n;return a&&(c.$$p=null),a&&(c.$$p=null),(r=e.slice.call(arguments,1,arguments.length)).$insert(0,this),$(i)&&r["$<<"](i),new(t.bind.apply(t,r))},c.$$arity=-2):e.def(y,"$new",p=function(t){var r,a,i=p.$$p,o=i||n,s=n;return i&&(p.$$p=null),i&&(p.$$p=null),r=e.slice.call(arguments,1,arguments.length),a=r,$(o)&&a["$<<"](o),(s=function(){return t.apply(this,a)}).prototype=t.prototype,new s},p.$$arity=-2),e.def(y,"$typeof",d=function(e){return typeof e},d.$$arity=1),e.def(y,"$void",f=function(){},f.$$arity=1),e.def(y,"$call",_=function(t){var r,a=_.$$p,i=a||n,o=this,s=n;return a&&(_.$$p=null),a&&(_.$$p=null),r=e.slice.call(arguments,1,arguments.length),s=o.$global(),$(i)&&r["$<<"](i),s[t].apply(s,r)},_.$$arity=-2),a(y,"method_missing","call"),e.def(y,"$[]",h=function(t){return e.global[t]},h.$$arity=1),y.$extend(y)}(t[0],t)},Opal.modules["bigdecimal/bignumber"]=function(e){e.top;var t=[],n=(e.nil,e.$$$,e.$$),r=e.klass;return function(t,$super,n){var $=r(t,$super,"BigDecimal"),a=([$].concat(n),function(t){e.const_set($,"BigNumber",t())});a.amd=!0,function(e){"use strict";function t(e){function $(e,t){var n,r,i,o,s,u,l=this;if(!(l instanceof $))return U&&I(26,"constructor call without new",e),new $(e,t);if(null!=t&&W(t,2,64,A,"base")){if(u=e+"",10==(t|=0))return D(l=new $(e instanceof $?e:u),R+l.e+1,T);if((o="number"==typeof e)&&0*e!=0||!new RegExp("^-?"+(n="["+b.slice(0,t)+"]+")+"(?:\\."+n+")?$",37>t?"i":"").test(u))return f(l,u,o,t);o?(l.s=0>1/e?(u=u.slice(1),-1):1,U&&u.replace(/^0\.0*|\./,"").length>15&&I(A,g,e),o=!1):l.s=45===u.charCodeAt(0)?(u=u.slice(1),-1):1,u=a(u,10,t,l.s)}else{if(e instanceof $)return l.s=e.s,l.e=e.e,l.c=(e=e.c)?e.slice():e,void(A=0);if((o="number"==typeof e)&&0*e==0){if(l.s=0>1/e?(e=-e,-1):1,e===~~e){for(r=0,i=e;i>=10;i/=10,r++);return l.e=r,l.c=[e],void(A=0)}u=e+""}else{if(!_.test(u=e+""))return f(l,u,o);l.s=45===u.charCodeAt(0)?(u=u.slice(1),-1):1}}for((r=u.indexOf("."))>-1&&(u=u.replace(".","")),(i=u.search(/e/i))>0?(0>r&&(r=i),r+=+u.slice(i+1),u=u.substring(0,i)):0>r&&(r=u.length),i=0;48===u.charCodeAt(i);i++);for(s=u.length;48===u.charCodeAt(--s););if(u=u.slice(i,s+1))if(s=u.length,o&&U&&s>15&&I(A,g,l.s*e),(r=r-i-1)>F)l.c=l.e=null;else if(L>r)l.c=[l.e=0];else{if(l.e=r,l.c=[],i=(r+1)%k,0>r&&(i+=k),s>i){for(i&&l.c.push(+u.slice(0,i)),s-=k;s>i;)l.c.push(+u.slice(i,i+=k));u=u.slice(i),i=k-u.length}else i-=s;for(;i--;u+="0");l.c.push(+u)}else l.c=[l.e=0];A=0}function a(e,t,n,a){var i,o,s,l,p,d,f,_=e.indexOf("."),h=R,y=T;for(37>n&&(e=e.toLowerCase()),_>=0&&(s=Y,Y=0,e=e.replace(".",""),p=(f=new $(n)).pow(e.length-_),Y=s,f.c=u(c(r(p.c),p.e),10,t),f.e=f.c.length),o=s=(d=u(e,n,t)).length;0==d[--s];d.pop());if(!d[0])return"0";if(0>_?--o:(p.c=d,p.e=o,p.s=a,d=(p=H(p,f,h,y,t)).c,l=p.r,o=p.e),_=d[i=o+h+1],s=t/2,l=l||0>i||null!=d[i+1],l=4>y?(null!=_||l)&&(0==y||y==(p.s<0?3:2)):_>s||_==s&&(4==y||l||6==y&&1&d[i-1]||y==(p.s<0?8:7)),1>i||!d[0])e=l?c("1",-h):"0";else{if(d.length=i,l)for(--t;++d[--i]>t;)d[i]=0,i||(++o,d.unshift(1));for(s=d.length;!d[--s];);for(_=0,e="";s>=_;e+=b.charAt(d[_++]));e=c(e,o)}return e}function q(e,t,n,a){var i,o,s,u,p;if(n=null!=n&&W(n,0,8,a,m)?0|n:T,!e.c)return e.toString();if(i=e.c[0],s=e.e,null==t)p=r(e.c),p=19==a||24==a&&B>=s?l(p,s):c(p,s);else if(o=(e=D(new $(e),t,n)).e,u=(p=r(e.c)).length,19==a||24==a&&(o>=t||B>=o)){for(;t>u;p+="0",u++);p=l(p,o)}else if(t-=s,p=c(p,o),o+1>u){if(--t>0)for(p+=".";t--;p+="0");}else if((t+=o-u)>0)for(o+1==u&&(p+=".");t--;p+="0");return e.s<0&&i?"-"+p:p}function N(e,t){var n,r,a=0;for(s(e[0])&&(e=e[0]),n=new $(e[0]);++ae||e>n||e!=p(e))&&I(r,($||"decimal places")+(t>e||e>n?" out of range":" not an integer"),e),!0}function z(e,t,n){for(var r=1,$=t.length;!t[--$];t.pop());for($=t[0];$>=10;$/=10,r++);return(n=r+n*k-1)>F?e.c=e.e=null:L>n?e.c=[e.e=0]:(e.e=n,e.c=t),e}function I(e,t,n){var r=new Error(["new BigNumber","cmp","config","div","divToInt","eq","gt","gte","lt","lte","minus","mod","plus","precision","random","round","shift","times","toDigits","toExponential","toFixed","toFormat","toFraction","pow","toPrecision","toString","BigNumber"][e]+"() "+t+": "+n);throw r.name="BigNumber Error",A=0,r}function D(e,t,n,r){var $,a,i,o,s,u,l,c=e.c,p=E;if(c){e:{for($=1,o=c[0];o>=10;o/=10,$++);if(0>(a=t-$))a+=k,i=t,l=(s=c[u=0])/p[$-i-1]%10|0;else if((u=h((a+1)/k))>=c.length){if(!r)break e;for(;c.length<=u;c.push(0));s=l=0,$=1,i=(a%=k)-k+1}else{for(s=o=c[u],$=1;o>=10;o/=10,$++);l=0>(i=(a%=k)-k+$)?0:s/p[$-i-1]%10|0}if(r=r||0>t||null!=c[u+1]||(0>i?s:s%p[$-i-1]),r=4>n?(l||r)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||r||6==n&&(a>0?i>0?s/p[$-i]:0:c[u-1])%10&1||n==(e.s<0?8:7)),1>t||!c[0])return c.length=0,r?(t-=e.e+1,c[0]=p[(k-t%k)%k],e.e=-t||0):c[0]=e.e=0,e;if(0==a?(c.length=u,o=1,u--):(c.length=u+1,o=p[k-a],c[u]=i>0?y(s/p[$-i]%p[i])*o:0),r)for(;;){if(0==u){for(a=1,i=c[0];i>=10;i/=10,a++);for(i=c[0]+=o,o=1;i>=10;i/=10,o++);a!=o&&(e.e++,c[0]==w&&(c[0]=1));break}if(c[u]+=o,c[u]!=w)break;c[u--]=0,o=1}for(a=c.length;0===c[--a];c.pop());}e.e>F?e.c=e.e=null:e.en?null!=(e=$[n++]):void 0};return i(t="DECIMAL_PLACES")&&W(e,0,S,2,t)&&(R=0|e),r[t]=R,i(t="ROUNDING_MODE")&&W(e,0,8,2,t)&&(T=0|e),r[t]=T,i(t="EXPONENTIAL_AT")&&(s(e)?W(e[0],-S,0,2,t)&&W(e[1],0,S,2,t)&&(B=0|e[0],P=0|e[1]):W(e,-S,S,2,t)&&(B=-(P=0|(0>e?-e:e)))),r[t]=[B,P],i(t="RANGE")&&(s(e)?W(e[0],-S,-1,2,t)&&W(e[1],1,S,2,t)&&(L=0|e[0],F=0|e[1]):W(e,-S,S,2,t)&&(0|e?L=-(F=0|(0>e?-e:e)):U&&I(2,t+" cannot be zero",e))),r[t]=[L,F],i(t="ERRORS")&&(e===!!e||1===e||0===e?(A=0,W=(U=!!e)?C:o):U&&I(2,t+v,e)),r[t]=U,i(t="CRYPTO")&&(e===!!e||1===e||0===e?(K=!(!e||!d),e&&!K&&U&&I(2,"crypto unavailable",d)):U&&I(2,t+v,e)),r[t]=K,i(t="MODULO_MODE")&&W(e,0,9,2,t)&&(X=0|e),r[t]=X,i(t="POW_PRECISION")&&W(e,0,S,2,t)&&(Y=0|e),r[t]=Y,i(t="FORMAT")&&("object"==typeof e?V=e:U&&I(2,t+" not an object",e)),r[t]=V,r},$.max=function(){return N(arguments,j.lt)},$.min=function(){return N(arguments,j.gt)},$.random=function(){var e=9007199254740992,t=Math.random()*e&2097151?function(){return y(Math.random()*e)}:function(){return 8388608*(1073741824*Math.random()|0)+(8388608*Math.random()|0)};return function(e){var n,r,a,i,o,s=0,u=[],l=new $(M);if(e=null!=e&&W(e,0,S,14)?0|e:R,i=h(e/k),K)if(d&&d.getRandomValues){for(n=d.getRandomValues(new Uint32Array(i*=2));i>s;)(o=131072*n[s]+(n[s+1]>>>11))>=9e15?(r=d.getRandomValues(new Uint32Array(2)),n[s]=r[0],n[s+1]=r[1]):(u.push(o%1e14),s+=2);s=i/2}else if(d&&d.randomBytes){for(n=d.randomBytes(i*=7);i>s;)(o=281474976710656*(31&n[s])+1099511627776*n[s+1]+4294967296*n[s+2]+16777216*n[s+3]+(n[s+4]<<16)+(n[s+5]<<8)+n[s+6])>=9e15?d.randomBytes(7).copy(n,s):(u.push(o%1e14),s+=7);s=i/7}else U&&I(14,"crypto unavailable",d);if(!s)for(;i>s;)9e15>(o=t())&&(u[s++]=o%1e14);for(i=u[--s],e%=k,i&&e&&(o=E[k-e],u[s]=y(i/o)*o);0===u[s];u.pop(),s--);if(0>s)u=[a=0];else{for(a=-1;0===u[0];u.shift(),a-=k);for(s=1,o=u[0];o>=10;o/=10,s++);k>s&&(a-=k-s)}return l.e=a,l.c=u,l}}(),H=function(){function e(e,t,n){var r,$,a,i,o=0,s=e.length,u=t%x,l=t/x|0;for(e=e.slice();s--;)o=(($=u*(a=e[s]%x)+(r=l*a+(i=e[s]/x|0)*u)%x*x+o)/n|0)+(r/x|0)+l*i,e[s]=$%n;return o&&e.unshift(o),e}function t(e,t,n,r){var $,a;if(n!=r)a=n>r?1:-1;else for($=a=0;n>$;$++)if(e[$]!=t[$]){a=e[$]>t[$]?1:-1;break}return a}function r(e,t,n,r){for(var $=0;n--;)e[n]-=$,$=e[n]1;e.shift());}return function(a,i,o,s,u){var l,c,p,d,f,_,h,v,m,g,b,O,E,x,S,q,N,C=a.s==i.s?1:-1,z=a.c,I=i.c;if(!(z&&z[0]&&I&&I[0]))return new $(a.s&&i.s&&(z?!I||z[0]!=I[0]:I)?z&&0==z[0]||!I?0*C:C/0:NaN);for(m=(v=new $(C)).c=[],C=o+(c=a.e-i.e)+1,u||(u=w,c=n(a.e/k)-n(i.e/k),C=C/k|0),p=0;I[p]==(z[p]||0);p++);if(I[p]>(z[p]||0)&&c--,0>C)m.push(1),d=!0;else{for(x=z.length,q=I.length,p=0,C+=2,(f=y(u/(I[0]+1)))>1&&(I=e(I,f,u),z=e(z,f,u),q=I.length,x=z.length),E=q,b=(g=z.slice(0,q)).length;q>b;g[b++]=0);(N=I.slice()).unshift(0),S=I[0],I[1]>=u/2&&S++;do{if(f=0,0>(l=t(I,g,q,b))){if(O=g[0],q!=b&&(O=O*u+(g[1]||0)),(f=y(O/S))>1)for(f>=u&&(f=u-1),h=(_=e(I,f,u)).length,b=g.length;1==t(_,g,h,b);)f--,r(_,h>q?N:I,h,u),h=_.length,l=1;else 0==f&&(l=f=1),h=(_=I.slice()).length;if(b>h&&_.unshift(0),r(g,_,b,u),b=g.length,-1==l)for(;t(I,g,q,b)<1;)f++,r(g,b>q?N:I,b,u),b=g.length}else 0===l&&(f++,g=[0]);m[p++]=f,g[0]?g[b++]=z[E]||0:(g=[z[E]],b=1)}while((E++=10;C/=10,p++);D(v,o+(v.e=p+c*k-1)+1,s,d)}else v.e=c,v.r=+d;return v}}(),f=function(){var e=/^(-?)0([xbo])(?=\w[\w.]*$)/i,t=/^([^.]+)\.$/,n=/^\.([^.]+)$/,r=/^-?(Infinity|NaN)$/,a=/^\s*\+(?=[\w.])|^\s+|\s+$/g;return function(i,o,s,u){var l,c=s?o:o.replace(a,"");if(r.test(c))i.s=isNaN(c)?null:0>c?-1:1;else{if(!s&&(c=c.replace(e,function(e,t,n){return l="x"==(n=n.toLowerCase())?16:"b"==n?2:8,u&&u!=l?e:t}),u&&(l=u,c=c.replace(t,"$1").replace(n,"0.$1")),o!=c))return new $(c,l);U&&I(A,"not a"+(u?" base "+u:"")+" number",o),i.s=null}i.c=i.e=null,A=0}}(),j.absoluteValue=j.abs=function(){var e=new $(this);return e.s<0&&(e.s=1),e},j.ceil=function(){return D(new $(this),this.e+1,2)},j.comparedTo=j.cmp=function(e,t){return A=1,i(this,new $(e,t))},j.decimalPlaces=j.dp=function(){var e,t,r=this.c;if(!r)return null;if(e=((t=r.length-1)-n(this.e/k))*k,t=r[t])for(;t%10==0;t/=10,e--);return 0>e&&(e=0),e},j.dividedBy=j.div=function(e,t){return A=3,H(this,new $(e,t),R,T)},j.dividedToIntegerBy=j.divToInt=function(e,t){return A=4,H(this,new $(e,t),0,1)},j.equals=j.eq=function(e,t){return A=5,0===i(this,new $(e,t))},j.floor=function(){return D(new $(this),this.e+1,3)},j.greaterThan=j.gt=function(e,t){return A=6,i(this,new $(e,t))>0},j.greaterThanOrEqualTo=j.gte=function(e,t){return A=7,1===(t=i(this,new $(e,t)))||0===t},j.isFinite=function(){return!!this.c},j.isInteger=j.isInt=function(){return!!this.c&&n(this.e/k)>this.c.length-2},j.isNaN=function(){return!this.s},j.isNegative=j.isNeg=function(){return this.s<0},j.isZero=function(){return!!this.c&&0==this.c[0]},j.lessThan=j.lt=function(e,t){return A=8,i(this,new $(e,t))<0},j.lessThanOrEqualTo=j.lte=function(e,t){return A=9,-1===(t=i(this,new $(e,t)))||0===t},j.minus=j.sub=function(e,t){var r,a,i,o,s=this,u=s.s;if(A=10,t=(e=new $(e,t)).s,!u||!t)return new $(NaN);if(u!=t)return e.s=-t,s.plus(e);var l=s.e/k,c=e.e/k,p=s.c,d=e.c;if(!l||!c){if(!p||!d)return p?(e.s=-t,e):new $(d?s:NaN);if(!p[0]||!d[0])return d[0]?(e.s=-t,e):new $(p[0]?s:3==T?-0:0)}if(l=n(l),c=n(c),p=p.slice(),u=l-c){for((o=0>u)?(u=-u,i=p):(c=l,i=d),i.reverse(),t=u;t--;i.push(0));i.reverse()}else for(a=(o=(u=p.length)<(t=d.length))?u:t,u=t=0;a>t;t++)if(p[t]!=d[t]){o=p[t]0)for(;t--;p[r++]=0);for(t=w-1;a>u;){if(p[--a]0?(s=o,r=l):(i=-i,r=u),r.reverse();i--;r.push(0));r.reverse()}for(0>(i=u.length)-(t=l.length)&&(r=l,l=u,u=r,t=i),i=0;t;)i=(u[--t]=u[t]+l[t]+i)/w|0,u[t]%=w;return i&&(u.unshift(i),++s),z(e,u,s)},j.precision=j.sd=function(e){var t,n,r=this,$=r.c;if(null!=e&&e!==!!e&&1!==e&&0!==e&&(U&&I(13,"argument"+v,e),e!=!!e&&(e=null)),!$)return null;if(t=(n=$.length-1)*k+1,n=$[n]){for(;n%10==0;n/=10,t--);for(n=$[0];n>=10;n/=10,t++);}return e&&r.e+1>t&&(t=r.e+1),t},j.round=function(e,t){var n=new $(this);return(null==e||W(e,0,S,15))&&D(n,~~e+this.e+1,null!=t&&W(t,0,8,15,m)?0|t:T),n},j.shift=function(e){var t=this;return W(e,-O,O,16,"argument")?t.times("1e"+p(e)):new $(t.c&&t.c[0]&&(-O>e||e>O)?t.s*(0>e?0:1/0):t)},j.squareRoot=j.sqrt=function(){var e,t,a,i,o,s=this,u=s.c,l=s.s,c=s.e,p=R+4,d=new $("0.5");if(1!==l||!u||!u[0])return new $(!l||0>l&&(!u||u[0])?NaN:u?s:1/0);if(0==(l=Math.sqrt(+s))||l==1/0?(((t=r(u)).length+c)%2==0&&(t+="0"),l=Math.sqrt(t),c=n((c+1)/2)-(0>c||c%2),l==1/0?t="1e"+c:t=(t=l.toExponential()).slice(0,t.indexOf("e")+1)+c,a=new $(t)):a=new $(l+""),a.c[0])for(3>(l=(c=a.e)+p)&&(l=0);;)if(o=a,a=d.times(o.plus(H(s,o,p,1))),r(o.c).slice(0,l)===(t=r(a.c)).slice(0,l)){if(a.el&&(h=g,g=b,b=h,i=l,l=d,d=i),i=l+d,h=[];i--;h.push(0));for(y=w,v=x,i=d;--i>=0;){for(r=0,f=b[i]%v,_=b[i]/v|0,o=i+(s=l);o>i;)r=((c=f*(c=g[--s]%v)+(u=_*c+(p=g[s]/v|0)*f)%v*v+h[o]+r)/y|0)+(u/v|0)+_*p,h[o--]=c%y;h[o]=r}return r?++a:h.shift(),z(e,h,a)},j.toDigits=function(e,t){var n=new $(this);return e=null!=e&&W(e,1,S,18,"precision")?0|e:null,t=null!=t&&W(t,0,8,18,m)?0|t:T,e?D(n,e,t):n},j.toExponential=function(e,t){return q(this,null!=e&&W(e,0,S,19)?1+~~e:null,t,19)},j.toFixed=function(e,t){return q(this,null!=e&&W(e,0,S,20)?~~e+this.e+1:null,t,20)},j.toFormat=function(e,t){var n=q(this,null!=e&&W(e,0,S,21)?~~e+this.e+1:null,t,21);if(this.c){var r,$=n.split("."),a=+V.groupSize,i=+V.secondaryGroupSize,o=V.groupSeparator,s=$[0],u=$[1],l=this.s<0,c=l?s.slice(1):s,p=c.length;if(i&&(r=a,a=i,i=r,p-=r),a>0&&p>0){for(r=p%a||a,s=c.substr(0,r);p>r;r+=a)s+=o+c.substr(r,a);i>0&&(s+=o+c.slice(r)),l&&(s="-"+s)}n=u?s+V.decimalSeparator+((i=+V.fractionGroupSize)?u.replace(new RegExp("\\d{"+i+"}\\B","g"),"$&"+V.fractionGroupSeparator):u):s}return n},j.toFraction=function(e){var t,n,a,i,o,s,u,l,c,p=U,d=this,f=d.c,_=new $(M),h=n=new $(M),y=u=new $(M);if(null!=e&&(U=!1,s=new $(e),U=p,(!(p=s.isInt())||s.lt(M))&&(U&&I(22,"max denominator "+(p?"out of range":"not an integer"),e),e=!p&&s.c&&D(s,s.e+1,1).gte(M)?s:null)),!f)return d.toString();for(c=r(f),i=_.e=c.length-d.e-1,_.c[0]=E[(o=i%k)<0?k+o:o],e=!e||s.cmp(_)>0?i>0?_:h:s,o=F,F=1/0,s=new $(c),u.c[0]=0;l=H(s,_,0,1),1!=(a=n.plus(l.times(y))).cmp(e);)n=y,y=a,h=u.plus(l.times(a=h)),u=a,_=s.minus(l.times(a=_)),s=a;return a=H(e.minus(n),y,0,1),u=u.plus(a.times(h)),n=n.plus(a.times(y)),u.s=h.s=d.s,t=H(h,y,i*=2,T).minus(d).abs().cmp(H(u,n,i,T).minus(d).abs())<1?[h.toString(),y.toString()]:[u.toString(),n.toString()],F=o,t},j.toNumber=function(){return+this},j.toPower=j.pow=function(e){var t,n,r=y(0>e?-e:+e),a=this;if(!W(e,-O,O,23,"exponent")&&(!isFinite(e)||r>O&&(e/=0)||parseFloat(e)!=e&&!(e=NaN)))return new $(Math.pow(+a,e));for(t=Y?h(Y/k+2):0,n=new $(M);;){if(r%2){if(!(n=n.times(a)).c)break;t&&n.c.length>t&&(n.c.length=t)}if(!(r=y(r/2)))break;a=a.times(a),t&&a.c&&a.c.length>t&&(a.c.length=t)}return 0>e&&(n=M.div(n)),t?D(n,Y,T):n},j.toPrecision=function(e,t){return q(this,null!=e&&W(e,1,S,24,"precision")?0|e:null,t,24)},j.toString=function(e){var t,n=this,$=n.s,i=n.e;return null===i?$?(t="Infinity",0>$&&(t="-"+t)):t="NaN":(t=r(n.c),t=null!=e&&W(e,2,64,25,"base")?a(c(t,i),0|e,10,$):B>=i||i>=P?l(t,i):c(t,i),0>$&&n.c[0]&&(t="-"+t)),t},j.truncated=j.trunc=function(){return D(new $(this),this.e+1,1)},j.valueOf=j.toJSON=function(){var e,t=this,n=t.e;return null===n?t.toString():(e=r(t.c),e=B>=n||n>=P?l(e,n):c(e,n),t.s<0?"-"+e:e)},null!=e&&$.config(e),$}function n(e){var t=0|e;return e>0||e===t?t:t-1}function r(e){for(var t,n,r=1,$=e.length,a=e[0]+"";$>r;){for(t=e[r++]+"",n=k-t.length;n--;t="0"+t);a+=t}for($=a.length;48===a.charCodeAt(--$););return a.slice(0,$+1||1)}function i(e,t){var n,r,$=e.c,a=t.c,i=e.s,o=t.s,s=e.e,u=t.e;if(!i||!o)return null;if(n=$&&!$[0],r=a&&!a[0],n||r)return n?r?0:-o:i;if(i!=o)return i;if(n=0>i,r=s==u,!$||!a)return r?0:!$^n?1:-1;if(!r)return s>u^n?1:-1;for(o=(s=$.length)<(u=a.length)?s:u,i=0;o>i;i++)if($[i]!=a[i])return $[i]>a[i]^n?1:-1;return s==u?0:s>u^n?1:-1}function o(e,t,n){return(e=p(e))>=t&&n>=e}function s(e){return"[object Array]"==Object.prototype.toString.call(e)}function u(e,t,n){for(var r,$,a=[0],i=0,o=e.length;o>i;){for($=a.length;$--;a[$]*=t);for(a[r=0]+=b.indexOf(e.charAt(i++));rn-1&&(null==a[r+1]&&(a[r+1]=0),a[r+1]+=a[r]/n|0,a[r]%=n)}return a.reverse()}function l(e,t){return(e.length>1?e.charAt(0)+"."+e.slice(1):e)+(0>t?"e":"e+")+t}function c(e,t){var n,r;if(0>t){for(r="0.";++t;r+="0");e=r+e}else if(++t>(n=e.length)){for(r="0",t-=n;--t;r+="0");e+=r}else n>t&&(e=e.slice(0,t)+"."+e.slice(t));return e}function p(e){return 0>(e=parseFloat(e))?h(e):y(e)}var d,f,_=/^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,h=Math.ceil,y=Math.floor,v=" not a boolean or binary digit",m="rounding mode",g="number type has more than 15 significant digits",b="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_",w=1e14,k=14,O=9007199254740991,E=[1,10,100,1e3,1e4,1e5,1e6,1e7,1e8,1e9,1e10,1e11,1e12,1e13],x=1e7,S=1e9;if("undefined"!=typeof crypto&&(d=crypto),"function"==typeof a&&a.amd)a(function(){return t()});else if("undefined"!=typeof module&&module.exports){if(module.exports=t(),!d)try{d=require("crypto")}catch(q){}}else e||(e=void 0!==$?$:Function("return this")()),e.BigNumber=t()}(this)}(t[0],n(t,"Numeric"),t)},Opal.modules.bigdecimal=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e/t:e["$/"](t)}var a,i=e.top,o=[],s=e.nil,u=(e.$$$,e.$$),l=e.klass,c=e.module,p=e.hash2,d=e.send,f=(e.hash,e.truthy),_=e.alias,h=e.send2,y=e.find_super;return e.add_stubs(["$require","$allocate","$initialize","$warn","$BigDecimal","$===","$attr_reader","$new","$class","$bignumber","$nan?","$nil?","$raise","$<","$coerce","$>","$mode","$>=","$==","$/","$zero?","$infinite?","$finite?"]),function(e,$super,t){[l(e,$super,"BigDecimal")].concat(t)}(o[0],u(o,"Numeric"),o),i.$require("js"),i.$require("bigdecimal/bignumber"),function(t,n){var r,$=c(t,"Kernel"),a=[$].concat(n);e.def($,"$BigDecimal",r=function(e,t){var n=s;return null==t&&(t=0),(n=u(a,"BigDecimal").$allocate()).$initialize(e,t),n},r.$$arity=-2)}(o[0],o),e.defs(u(o,"BigDecimal"),"$new",a=function(){var t,n,r,$,a=this;if(t=e.slice.call(arguments,0,arguments.length),null==(n=e.extract_kwargs(t)))n=p([],{});else if(!n.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return r=t,$=e.kwrestargs(n,{}),a.$warn("BigDecimal.new is deprecated; use BigDecimal() method instead.",p(["uplevel"],{uplevel:1})),d(a,"BigDecimal",e.to_a(r).concat([e.to_hash($)]))},a.$$arity=-1),function(a,$super,i){var o,c,p,d,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I,D,H,A,j,M,R,T=l(a,$super,"BigDecimal"),B=[T].concat(i);return e.const_set(B[0],"ROUND_MODE",256),e.const_set(B[0],"ROUND_UP",0),e.const_set(B[0],"ROUND_DOWN",1),e.const_set(B[0],"ROUND_CEILING",2),e.const_set(B[0],"ROUND_FLOOR",3),e.const_set(B[0],"ROUND_HALF_UP",4),e.const_set(B[0],"ROUND_HALF_DOWN",5),e.const_set(B[0],"ROUND_HALF_EVEN",6),e.const_set(B[0],"SIGN_NaN",0),e.const_set(B[0],"SIGN_POSITIVE_ZERO",1),e.const_set(B[0],"SIGN_NEGATIVE_ZERO",-1),e.const_set(B[0],"SIGN_POSITIVE_FINITE",2),e.const_set(B[0],"SIGN_NEGATIVE_FINITE",-2),e.const_set(B[0],"SIGN_POSITIVE_INFINITE",3),e.const_set(B[0],"SIGN_NEGATIVE_INFINITE",-3),e.defs(T,"$limit",o=function(e){var t=this;return null==t.digits&&(t.digits=s),null==e&&(e=s),f(e)&&(t.digits=e),t.digits},o.$$arity=-1),e.defs(T,"$mode",c=function(e,t){var n=this,r=s,$=s;return null==n.round_mode&&(n.round_mode=s),null==t&&(t=s),r=e,u(B,"ROUND_MODE")["$==="](r)?(f(t)&&(n.round_mode=t),f($=n.round_mode)?$:u(B,"ROUND_HALF_UP")):s},c.$$arity=-2),T.$attr_reader("bignumber"),e.def(T,"$initialize",p=function(e,t){return null==t&&(t=0),this.bignumber=u(B,"JS").$new(u(B,"BigNumber"),e)},p.$$arity=-2),e.def(T,"$==",d=function(e){var t=this,n=s;return n=e,t.$class()["$==="](n)?t.$bignumber().equals(e.$bignumber()):!!u(B,"Number")["$==="](n)&&t.$bignumber().equals(e)},d.$$arity=1),_(T,"===","=="),e.def(T,"$<=>",v=function(e){var t=this,n=s,r=s;return r=e,null===(n=t.$class()["$==="](r)?t.$bignumber().comparedTo(e.$bignumber()):u(B,"Number")["$==="](r)?t.$bignumber().comparedTo(e):s)?s:n},v.$$arity=1),e.def(T,"$<",m=function(e){var t=m.$$p,n=this,r=s,$=s;return t&&(m.$$p=null),!f(f(r=n["$nan?"]())?r:f($=e)?e["$nan?"]():$)&&h(n,y(n,"<",m,!1,!0),"<",[e],t)},m.$$arity=1),e.def(T,"$<=",g=function(e){var t=g.$$p,n=this,r=s,$=s;return t&&(g.$$p=null),!f(f(r=n["$nan?"]())?r:f($=e)?e["$nan?"]():$)&&h(n,y(n,"<=",g,!1,!0),"<=",[e],t)},g.$$arity=1),e.def(T,"$>",b=function(e){var t=b.$$p,n=this,r=s,$=s;return t&&(b.$$p=null),!f(f(r=n["$nan?"]())?r:f($=e)?e["$nan?"]():$)&&h(n,y(n,">",b,!1,!0),">",[e],t)},b.$$arity=1),e.def(T,"$>=",w=function(e){var t=w.$$p,n=this,r=s,$=s;return t&&(w.$$p=null),!f(f(r=n["$nan?"]())?r:f($=e)?e["$nan?"]():$)&&h(n,y(n,">=",w,!1,!0),">=",[e],t)},w.$$arity=1),e.def(T,"$abs",k=function(){var e=this;return e.$class().$new(e.$bignumber().abs())},k.$$arity=0),e.def(T,"$add",O=function(r,$){var a,i,o=this,l=s;return null==$&&($=0),f($["$nil?"]())&&o.$raise(u(B,"TypeError"),"wrong argument type nil (expected Fixnum)"),f(t($,0))&&o.$raise(u(B,"ArgumentError"),"argument must be positive"),i=o.$coerce(r),r=null==(a=e.to_ary(i))[0]?s:a[0],null==a[1]?s:a[1],l=o.$bignumber().plus(r.$bignumber()),f(n($,0))&&(l=l.toDigits($,o.$class().$mode(u(B,"ROUND_MODE")))),o.$class().$new(l)},O.$$arity=-2),_(T,"+","add"),e.def(T,"$ceil",E=function(e){var t=this;return null==e&&(e=s),f(t.$bignumber().isFinite())||t.$raise(u(B,"FloatDomainError"),"Computation results to 'Infinity'"),f(e["$nil?"]())?t.$bignumber().round(0,u(B,"ROUND_CEILING")).toNumber():f(r(e,0))?t.$class().$new(t.$bignumber().round(e,u(B,"ROUND_CEILING"))):t.$class().$new(t.$bignumber().round(0,u(B,"ROUND_CEILING")))},E.$$arity=-1),e.def(T,"$coerce",x=function(e){var t=this,n=s;return n=e,t.$class()["$==="](n)?[e,t]:u(B,"Number")["$==="](n)?[t.$class().$new(e),t]:t.$raise(u(B,"TypeError"),e.$class()+" can't be coerced into "+t.$class())},x.$$arity=1),e.def(T,"$div",S=function(t,n){var r,a,i=this,o=s;return null==n&&(n=s),n["$=="](0)?$(i,t):(a=i.$coerce(t),r=e.to_ary(a),t=null==r[0]?s:r[0],null==r[1]?s:r[1],f(f(o=i["$nan?"]())?o:t["$nan?"]())&&i.$raise(u(B,"FloatDomainError"),"Computation results to 'NaN'(Not a Number)"),f(n["$nil?"]())?(f(t["$zero?"]())&&i.$raise(u(B,"ZeroDivisionError"),"divided by 0"),f(i["$infinite?"]())&&i.$raise(u(B,"FloatDomainError"),"Computation results to 'Infinity'"),i.$class().$new(i.$bignumber().dividedToIntegerBy(t.$bignumber()))):i.$class().$new(i.$bignumber().dividedBy(t.$bignumber()).round(n,i.$class().$mode(u(B,"ROUND_MODE")))))},S.$$arity=-2),e.def(T,"$finite?",q=function(){return this.$bignumber().isFinite()},q.$$arity=0),e.def(T,"$infinite?",N=function(){var e=this,t=s;return f(f(t=e["$finite?"]())?t:e["$nan?"]())?s:f(e.$bignumber().isNegative())?-1:1},N.$$arity=0),e.def(T,"$minus",C=function(t){var n,r,$=this;return r=$.$coerce(t),t=null==(n=e.to_ary(r))[0]?s:n[0],null==n[1]?s:n[1],$.$class().$new($.$bignumber().minus(t.$bignumber()))},C.$$arity=1),_(T,"-","minus"),e.def(T,"$mult",z=function(t,n){var r,$,a=this;return null==n&&(n=s),$=a.$coerce(t),t=null==(r=e.to_ary($))[0]?s:r[0],null==r[1]?s:r[1],f(n["$nil?"]())?a.$class().$new(a.$bignumber().times(t.$bignumber())):a.$class().$new(a.$bignumber().times(t.$bignumber()).round(n,a.$class().$mode(u(B,"ROUND_MODE"))))},z.$$arity=-2),_(T,"*","mult"),e.def(T,"$nan?",I=function(){return this.$bignumber().isNaN()},I.$$arity=0),e.def(T,"$quo",D=function(t){var n,r,$=this;return r=$.$coerce(t),t=null==(n=e.to_ary(r))[0]?s:n[0],null==n[1]?s:n[1],$.$class().$new($.$bignumber().dividedBy(t.$bignumber()))},D.$$arity=1),_(T,"/","quo"), +e.def(T,"$sign",H=function(){var e=this;return f(e.$bignumber().isNaN())?u(B,"SIGN_NaN"):f(e.$bignumber().isZero())?f(e.$bignumber().isNegative())?u(B,"SIGN_NEGATIVE_ZERO"):u(B,"SIGN_POSITIVE_ZERO"):s},H.$$arity=0),e.def(T,"$sub",A=function(t){var n,r,$=this;return r=$.$coerce(t),t=null==(n=e.to_ary(r))[0]?s:n[0],null==n[1]?s:n[1],$.$class().$new($.$bignumber().minus(t.$bignumber()))},A.$$arity=2),e.def(T,"$to_f",j=function(){return this.$bignumber().toNumber()},j.$$arity=0),e.def(T,"$to_s",M=function(e){return null==e&&(e=""),this.$bignumber().toString()},M.$$arity=-1),_(T,"inspect","to_s"),e.def(T,"$zero?",R=function(){return this.$bignumber().isZero()},R.$$arity=0),s&&"zero?"}(o[0],u(o,"Numeric"),o)},Opal.modules["mutations/version"]=function(e){e.top;var t=[],n=(e.nil,e.$$$,e.$$,e.module);return function(t,r){var $=[n(t,"Mutations")].concat(r);return e.const_set($[0],"VERSION","0.9.1")}(t[0],t)},Opal.modules["mutations/exception"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=(e.$$,e.module),i=e.klass,o=e.send;return e.add_stubs(["$attr_accessor","$errors=","$-","$join","$message_list","$errors"]),function(n,s){var u=[a(n,"Mutations")].concat(s);return function(n,$super,$){var a,s,u=i(n,$super,"ValidationException");[u].concat($);return u.$attr_accessor("errors"),e.def(u,"$initialize",a=function(n){var $=r;return $=[n],o(this,"errors=",e.to_a($)),$[t($.length,1)]},a.$$arity=1),e.def(u,"$to_s",s=function(){return""+this.$errors().$message_list().$join("; ")},s.$$arity=0),r&&"to_s"}(u[0],$("::","StandardError"),u)}(n[0],n)},Opal.modules["mutations/errors"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.klass,o=e.send,s=e.hash2,u=e.truthy;return e.add_stubs(["$tap","$new","$merge!","$[]","$titleize","$downcase","$to_s","$==","$end_with?","$message","$error_message_creator","$Array","$each","$symbolic","$[]=","$-","$concat","$message_list","$map","$flatten","$compact"]),function(n,l){var c=[a(n,"Mutations")].concat(l);return function(t,$super,n){var a,l,c,p=i(t,null,"DefaultErrorMessageCreator"),d=[p].concat(n);e.const_set(d[0],"MESSAGES",o($(d,"Hash").$new("is invalid"),"tap",[],((a=function(e){null==a.$$s||a.$$s;return null==e&&(e=r),e["$merge!"](s(["nils","required","string","integer","boolean","hash","array","model","date","before","after","empty","max_length","min_length","matches","in","class","min","max","new_records"],{nils:"can't be nil",required:"is required",string:"isn't a string",integer:"isn't an integer",boolean:"isn't a boolean",hash:"isn't a hash",array:"isn't an array",model:"isn't the right class",date:"date doesn't exist",before:"isn't before given date",after:"isn't after given date",empty:"can't be blank",max_length:"is too long",min_length:"is too short",matches:"isn't in the right format","in":"isn't an option","class":"isn't the right class",min:"is too small",max:"is too big",new_records:"isn't a saved model"}))}).$$s=p,a.$$arity=1,a))),e.def(p,"$message",l=function(e,t,n){var a=this,i=r;return null==n&&(n=s([],{})),u(n["$[]"]("index"))?a.$titleize(u(i=e)?i:"array")+"["+n["$[]"]("index")+"] "+$(d,"MESSAGES")["$[]"](t):a.$titleize(e)+" "+$(d,"MESSAGES")["$[]"](t)},l.$$arity=-3),e.def(p,"$titleize",c=function(e){return(e=e.$to_s().$downcase())["$=="]("id")?"ID":u(e["$end_with?"]("_id"))?e.$titleize()+" ID":e.$titleize()},c.$$arity=1)}(c[0],0,c),function(t,$super,n){var a,o,l,c,p=i(t,null,"ErrorAtom"),d=[p].concat(n);p.$$prototype.symbol=p.$$prototype.message=p.$$prototype.key=p.$$prototype.index=r,e.def(p,"$initialize",a=function(e,t,n){var r=this;return null==n&&(n=s([],{})),r.key=e,r.symbol=t,r.message=n["$[]"]("message"),r.index=n["$[]"]("index")},a.$$arity=-3),e.def(p,"$symbolic",o=function(){return this.symbol},o.$$arity=0),e.def(p,"$message",l=function(){var e=this,t=r;return e.message=u(t=e.message)?t:$(d,"Mutations").$error_message_creator().$message(e.key,e.symbol,s(["index"],{index:e.index}))},l.$$arity=0),e.def(p,"$message_list",c=function(){var e=this;return e.$Array(e.$message())},c.$$arity=0)}(c[0],0,c),function(n,$super,a){var s,u,l,c=i(n,$super,"ErrorHash"),p=[c].concat(a);e.def(c,"$symbolic",s=function(){var n,a=this;return o($(p,"HashWithIndifferentAccess").$new(),"tap",[],((n=function($){var a,i=null==n.$$s?this:n.$$s;return null==$&&($=r),o(i,"each",[],((a=function(n,i){null==a.$$s||a.$$s;var s=r;return null==n&&(n=r),null==i&&(i=r),s=[n,i.$symbolic()],o($,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=i,a.$$arity=2,a))}).$$s=a,n.$$arity=1,n))},s.$$arity=0),e.def(c,"$message",u=function(){var n,a=this;return o($(p,"HashWithIndifferentAccess").$new(),"tap",[],((n=function($){var a,i=null==n.$$s?this:n.$$s;return null==$&&($=r),o(i,"each",[],((a=function(n,i){null==a.$$s||a.$$s;var s=r;return null==n&&(n=r),null==i&&(i=r),s=[n,i.$message()],o($,"[]=",e.to_a(s)),s[t(s.length,1)]}).$$s=i,a.$$arity=2,a))}).$$s=a,n.$$arity=1,n))},u.$$arity=0),e.def(c,"$message_list",l=function(){var e,t=this,n=r;return n=[],o(t,"each",[],((e=function(t,$){null==e.$$s||e.$$s;return null==t&&(t=r),null==$&&($=r),n.$concat($.$message_list())}).$$s=t,e.$$arity=2,e)),n},l.$$arity=0)}(c[0],$(c,"Hash"),c),function(t,$super,n){var $,a,s,l=i(t,$super,"ErrorArray");[l].concat(n);return e.def(l,"$symbolic",$=function(){var e,t=this;return o(t,"map",[],((e=function(t){null==e.$$s||e.$$s;var n=r;return null==t&&(t=r),u(n=t)?t.$symbolic():n}).$$s=t,e.$$arity=1,e))},$.$$arity=0),e.def(l,"$message",a=function(){var e,t=this;return o(t,"map",[],((e=function(t){null==e.$$s||e.$$s;var n=r;return null==t&&(t=r),u(n=t)?t.$message():n}).$$s=t,e.$$arity=1,e))},a.$$arity=0),e.def(l,"$message_list",s=function(){var e,t=this;return o(t.$compact(),"map",[],(e=function(t){null==e.$$s||e.$$s;return null==t&&(t=r),t.$message_list()},e.$$s=t,e.$$arity=1,e)).$flatten()},s.$$arity=0),r&&"message_list"}(c[0],$(c,"Array"),c)}(n[0],n)},Opal.modules["mutations/input_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$,e.module),a=e.klass,i=e.truthy,o=e.hash2,s=e.send;return e.add_stubs(["$attr_accessor","$merge","$default_options","$class","$options=","$-","$has_key?","$options","$[]","$!"]),function(n,u){var l=[$(n,"Mutations")].concat(u);return function(n,$super,$){var u,l,c,p,d,f,_,h,y=a(n,null,"InputFilter");[y].concat($);return e.defs(y,"$default_options",u=function(){var e=this,t=r;return null==e.default_options&&(e.default_options=r),e.default_options=i(t=e.default_options)?t:o([],{})},u.$$arity=0),y.$attr_accessor("options"),e.def(y,"$initialize",l=function(n){var $=this,a=r,u=r;return null==n&&(n=o([],{})),a=[(i(u=$.$class().$default_options())?u:o([],{})).$merge(n)],s($,"options=",e.to_a(a)),a[t(a.length,1)]},l.$$arity=-1),e.def(y,"$filter",c=function(e){return[e,r]},c.$$arity=1),e.def(y,"$has_default?",p=function(){return this.$options()["$has_key?"]("default")},p.$$arity=0),e.def(y,"$default",d=function(){return this.$options()["$[]"]("default")},d.$$arity=0),e.def(y,"$discard_nils?",f=function(){return this.$options()["$[]"]("nils")["$!"]()},f.$$arity=0),e.def(y,"$discard_empty?",_=function(){return this.$options()["$[]"]("discard_empty")},_.$$arity=0),e.def(y,"$discard_invalid?",h=function(){return this.$options()["$[]"]("discard_invalid")},h.$$arity=0),r&&"discard_invalid?"}(l[0],0,l)}(n[0],n)},Opal.modules["mutations/hash_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.klass,o=e.send,s=e.hash2,u=e.send2,l=e.find_super,c=e.truthy;return e.add_stubs(["$define_method","$to_sym","$new","$to_proc","$[]=","$-","$attr_accessor","$instance_eval","$each_pair","$optional_inputs","$required_inputs","$keys","$nil?","$[]","$options","$respond_to?","$is_a?","$with_indifferent_access","$to_hash","$each","$==","$has_key?","$filter","$!","$discard_invalid?","$delete","$discard_empty?","$discard_nils?","$has_default?","$default","$any?"]),function(n,p){var d=[a(n,"Mutations")].concat(p);return function(n,$super,a){var p,d,f,_,h,y,v,m,g,b,w,k=i(n,$super,"HashFilter"),O=[k].concat(a);return k.$$prototype.required_inputs=k.$$prototype.optional_inputs=k.$$prototype.current_inputs=r,e.defs(k,"$register_additional_filter",p=function(n,$){var a,i=p.$$p,u=this;return i&&(p.$$p=null),o(u,"define_method",[$],((a=function($,i){var u=null==a.$$s?this:a.$$s,l=a.$$p,c=l||r,p=r;return null==u.current_inputs&&(u.current_inputs=r),l&&(a.$$p=null),null==$&&($=r),null==i&&(i=s([],{})),p=[$.$to_sym(),o(n,"new",[i],c.$to_proc())],o(u.current_inputs,"[]=",e.to_a(p)),p[t(p.length,1)]}).$$s=u,a.$$arity=-2,a))},p.$$arity=2),k.default_options=s(["nils"],{nils:!1}),k.$attr_accessor("optional_inputs"),k.$attr_accessor("required_inputs"),e.def(k,"$initialize",d=function(e){var t=d.$$p,n=t||r,$=this;return t&&(d.$$p=null),t&&(d.$$p=null),null==e&&(e=s([],{})),u($,l($,"initialize",d,!1,!0),"initialize",[e],null),$.optional_inputs=s([],{}),$.required_inputs=s([],{}),$.current_inputs=$.required_inputs,n!==r?o($,"instance_eval",[],n.$to_proc()):r},d.$$arity=-1),e.def(k,"$dup",f=function(){var n,a,i=this,s=r;return s=$(O,"HashFilter").$new(),o(i.optional_inputs,"each_pair",[],((n=function($,a){null==n.$$s||n.$$s;var i=r;return null==$&&($=r),null==a&&(a=r),i=[$,a],o(s.$optional_inputs(),"[]=",e.to_a(i)),i[t(i.length,1)]}).$$s=i,n.$$arity=2,n)),o(i.required_inputs,"each_pair",[],((a=function(n,$){null==a.$$s||a.$$s;var i=r;return null==n&&(n=r),null==$&&($=r),i=[n,$],o(s.$required_inputs(),"[]=",e.to_a(i)),i[t(i.length,1)]}).$$s=i,a.$$arity=2,a)),s},f.$$arity=0),e.def(k,"$required",_=function(){var e=_.$$p,t=e||r,n=this;return e&&(_.$$p=null),e&&(_.$$p=null),n.current_inputs=n.required_inputs,o(n,"instance_eval",[],t.$to_proc())},_.$$arity=0),e.def(k,"$optional",h=function(){var e=h.$$p,t=e||r,n=this;return e&&(h.$$p=null),e&&(h.$$p=null),n.current_inputs=n.optional_inputs,o(n,"instance_eval",[],t.$to_proc())},h.$$arity=0),e.def(k,"$required_keys",y=function(){return this.required_inputs.$keys()},y.$$arity=0),e.def(k,"$optional_keys",v=function(){return this.optional_inputs.$keys()},v.$$arity=0),e.def(k,"$hash",m=function(n,a){var i=m.$$p,u=i||r,l=this,c=r;return i&&(m.$$p=null),i&&(m.$$p=null),null==a&&(a=s([],{})),c=[n.$to_sym(),o($(O,"HashFilter"),"new",[a],u.$to_proc())],o(l.current_inputs,"[]=",e.to_a(c)),c[t(c.length,1)]},m.$$arity=-2),e.def(k,"$model",g=function(n,a){var i=this,u=r;return null==a&&(a=s([],{})),u=[n.$to_sym(),$(O,"ModelFilter").$new(n.$to_sym(),a)],o(i.current_inputs,"[]=",e.to_a(u)),u[t(u.length,1)]},g.$$arity=-2),e.def(k,"$array",b=function(n,a){var i=b.$$p,u=i||r,l=this,c=r,p=r;return i&&(b.$$p=null),i&&(b.$$p=null),null==a&&(a=s([],{})),c=n.$to_sym(),p=[n.$to_sym(),o($(O,"ArrayFilter"),"new",[c,a],u.$to_proc())],o(l.current_inputs,"[]=",e.to_a(p)),p[t(p.length,1)]},b.$$arity=-2),e.def(k,"$filter",w=function(n){var a,i,s=this,u=r,l=r,p=r,d=r;return c(n["$nil?"]())?c(s.$options()["$[]"]("nils"))?[r,r]:[r,"nils"]:c(n["$respond_to?"]("to_hash"))?(c(n["$is_a?"]($(O,"HashWithIndifferentAccess")))||(n=n.$to_hash().$with_indifferent_access()),u=$(O,"ErrorHash").$new(),l=$(O,"HashWithIndifferentAccess").$new(),p=r,o([[s.required_inputs,!0],[s.optional_inputs,!1]],"each",[],((a=function(i){var s,d,f,_=null==a.$$s?this:a.$$s,h=r,y=r;return null==i&&(i=r),d=i,h=null==(s=e.to_ary(d))[0]?r:s[0],y=null==s[1]?r:s[1],o(h,"each_pair",[],((f=function(a,i){null==f.$$s||f.$$s;var s,d,_=r,h=r,v=r,m=r,g=r,b=r,w=r,k=r,E=r,x=r,S=r,q=r;return null==a&&(a=r),null==i&&(i=r),a["$=="]("*")?(p=i,r):(_=n["$[]"](a),c(n["$has_key?"](a))&&(d=i.$filter(_),h=null==(s=e.to_ary(d))[0]?r:s[0],v=null==s[1]?r:s[1],c(v["$nil?"]())?(m=[a,h],o(l,"[]=",e.to_a(m)),m[t(m.length,1)]):c(c(g=y["$!"]())?i["$discard_invalid?"]():g)?n.$delete(a):c(c(b=c(w=y["$!"]())?v["$=="]("empty"):w)?i["$discard_empty?"]():b)?n.$delete(a):c(c(k=c(E=y["$!"]())?v["$=="]("nils"):E)?i["$discard_nils?"]():k)?n.$delete(a):(x=c(S=i.$options()["$[]"]("error_key"))?S:a,c(v["$is_a?"]($(O,"Symbol")))&&(v=$(O,"ErrorAtom").$new(x,v)),m=[a,v],o(u,"[]=",e.to_a(m)),m[t(m.length,1)])),c(n["$has_key?"](a)["$!"]())?c(i["$has_default?"]())?(m=[a,i.$default()],o(l,"[]=",e.to_a(m)),m[t(m.length,1)]):c(y)?(x=c(q=i.$options()["$[]"]("error_key"))?q:a,m=[a,$(O,"ErrorAtom").$new(x,"required")],o(u,"[]=",e.to_a(m)),m[t(m.length,1)]):r:r)}).$$s=_,f.$$arity=2,f))}).$$s=s,a.$$arity=1,a.$$has_top_level_mlhs_arg=!0,a)),c(p)&&(d=t(n.$keys(),l.$keys()),o(d,"each",[],((i=function(a){null==i.$$s||i.$$s;var s,d,f=r,_=r,h=r,y=r,v=r,m=r;return null==a&&(a=r),f=n["$[]"](a),d=p.$filter(f),_=null==(s=e.to_ary(d))[0]?r:s[0],h=null==s[1]?r:s[1],c(h["$nil?"]())?(y=[a,_],o(l,"[]=",e.to_a(y)),y[t(y.length,1)]):c(p["$discard_invalid?"]())?n.$delete(a):c(c(v=h["$=="]("empty"))?p["$discard_empty?"]():v)?n.$delete(a):c(c(m=h["$=="]("nils"))?p["$discard_nils?"]():m)?n.$delete(a):(c(h["$is_a?"]($(O,"Symbol")))&&(h=$(O,"ErrorAtom").$new(a,h)),y=[a,h],o(u,"[]=",e.to_a(y)),y[t(y.length,1)])}).$$s=s,i.$$arity=1,i))),c(u["$any?"]())?[n,u]:[l,r]):[n,"hash"]},w.$$arity=1),r&&"filter"}(d[0],$(d,"InputFilter"),d)}(n[0],n)},Opal.modules["mutations/array_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}e.top;var $=[],a=e.nil,i=(e.$$$,e.$$),o=e.module,s=e.klass,u=e.send,l=e.hash2,c=e.send2,p=e.find_super,d=e.truthy;return e.add_stubs(["$define_method","$new","$to_proc","$instance_eval","$[]","$options","$raise","$to_sym","$is_a?","$constantize","$[]=","$-","$cache_constants?","$to_s","$initialize_constants!","$nil?","$!","$==","$Array","$<","$length","$>","$each_with_index","$filter_element","$<<","$discard_invalid?","$filter"]),function($,f){var _=[o($,"Mutations")].concat(f);return function($,$super,o){var f,_,h,y,v,m,g,b,w=s($,$super,"ArrayFilter"),k=[w].concat(o);return w.$$prototype.element_filter=w.$$prototype.initialize_constants=a,e.defs(w,"$register_additional_filter",f=function(e,t){var n,r=f.$$p,$=this;return r&&(f.$$p=null),u($,"define_method",[t],((n=function(t){var r=null==n.$$s?this:n.$$s,$=n.$$p,i=$||a;return $&&(n.$$p=null),null==t&&(t=l([],{})),r.element_filter=u(e,"new",[t],i.$to_proc())}).$$s=$,n.$$arity=-1,n))},f.$$arity=2),w.default_options=l(["nils","class","arrayize","min_length","max_length"],{nils:!1,"class":a,arrayize:!1,min_length:a,max_length:a}),e.def(w,"$initialize",_=function(e,t){var n=_.$$p,r=n||a,$=this,o=a;return n&&(_.$$p=null),n&&(_.$$p=null),null==t&&(t=l([],{})),c($,p($,"initialize",_,!1,!0),"initialize",[t],null),$.name=e,$.element_filter=a,r!==a&&u($,"instance_eval",[],r.$to_proc()),d(d(o=$.element_filter)?$.$options()["$[]"]("class"):o)?$.$raise(i(k,"ArgumentError").$new("Can't supply both a class and a filter")):a},_.$$arity=-2),e.def(w,"$hash",h=function(e){var t=h.$$p,n=t||a,r=this;return t&&(h.$$p=null),t&&(h.$$p=null),null==e&&(e=l([],{})),r.element_filter=u(i(k,"HashFilter"),"new",[e],n.$to_proc())},h.$$arity=-1),e.def(w,"$model",y=function(e,t){var n=this;return null==t&&(t=l([],{})),n.element_filter=i(k,"ModelFilter").$new(e.$to_sym(),t)},y.$$arity=-2),e.def(w,"$array",v=function(e){var t=v.$$p,n=t||a,r=this;return t&&(v.$$p=null),t&&(v.$$p=null),null==e&&(e=l([],{})),r.element_filter=u(i(k,"ArrayFilter"),"new",[a,e],n.$to_proc())},v.$$arity=-1),e.def(w,"$initialize_constants!",m=function(){var n=this,r=a,$=a;return n.initialize_constants=d(r=n.initialize_constants)?r:(d(n.$options()["$[]"]("class"))&&d(n.$options()["$[]"]("class")["$is_a?"](i(k,"String")))&&($=["class",n.$options()["$[]"]("class").$constantize()],u(n.$options(),"[]=",e.to_a($)),$[t($.length,1)]),!0),d(i(k,"Mutations")["$cache_constants?"]())?a:d(n.$options()["$[]"]("class"))?($=["class",n.$options()["$[]"]("class").$to_s().$constantize()],u(n.$options(),"[]=",e.to_a($)),$[t($.length,1)]):a},m.$$arity=0),e.def(w,"$filter",g=function(t){var $,o=this,s=a,c=a,p=a,f=a,_=a,h=a,y=a,v=a;if(o["$initialize_constants!"](),d(t["$nil?"]()))return d(o.$options()["$[]"]("nils"))?[a,a]:[a,"nils"];if(d(d(s=t["$is_a?"](i(k,"Array"))["$!"]())?o.$options()["$[]"]("arrayize"):s)){if(t["$=="](""))return[[],a];t=o.$Array(t)}return d(t["$is_a?"](i(k,"Array")))?(c=i(k,"ErrorArray").$new(),p=[],f=!1,d(d(_=o.$options()["$[]"]("min_length"))?n(t.$length(),o.$options()["$[]"]("min_length")):_)?[t,"min_length"]:d(d(h=o.$options()["$[]"]("max_length"))?r(t.$length(),o.$options()["$[]"]("max_length")):h)?[t,"max_length"]:(u(t,"each_with_index",[],(($=function(t,n){var r,o,s=null==$.$$s?this:$.$$s,u=a,_=a;return null==s.name&&(s.name=a),null==t&&(t=a),null==n&&(n=a),o=s.$filter_element(t),u=null==(r=e.to_ary(o))[0]?a:r[0],_=null==r[1]?a:r[1],d(_["$is_a?"](i(k,"Symbol")))&&(_=i(k,"ErrorAtom").$new(s.name,_,l(["index"],{index:n}))),c["$<<"](_),d(_)?f=!0:p["$<<"](u)}).$$s=o,$.$$arity=2,$)),d(d(y=f)?(d(v=o.element_filter)?o.element_filter["$discard_invalid?"]():v)["$!"]():y)?[t,c]:[p,a])):[t,"array"]},g.$$arity=1),e.def(w,"$filter_element",b=function(t){var n,r,$=this,i=a;if(d($.element_filter)){if(r=$.element_filter.$filter(t),t=null==(n=e.to_ary(r))[0]?a:n[0],i=null==n[1]?a:n[1],d(i))return[t,i]}else if(d($.$options()["$[]"]("class"))&&d(t["$is_a?"]($.$options()["$[]"]("class"))["$!"]()))return[t,"class"];return[t,a]},b.$$arity=1),a&&"filter_element"}(_[0],i(_,"InputFilter"),_)}($[0],$)},Opal.modules["mutations/additional_filter"]=function(e){var t=e.top,n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass;return e.add_stubs(["$require","$underscore","$[]","$name","$register_additional_filter"]),t.$require("mutations/hash_filter"),t.$require("mutations/array_filter"),function(t,n){var s=[i(t,"Mutations")].concat(n);return function(t,$super,n){var i,s=o(t,$super,"AdditionalFilter"),u=[s].concat(n);return e.defs(s,"$inherited",i=function(e){var t=r;return t=e.$name()["$[]"](/^Mutations::([a-zA-Z]*)Filter$/,1).$underscore(),$(a(u,"Mutations"),"HashFilter").$register_additional_filter(e,t),$(a(u,"Mutations"),"ArrayFilter").$register_additional_filter(e,t)},i.$$arity=1),r&&"inherited"}(s[0],a(s,"InputFilter"),s)}(n[0],n)},Opal.modules["mutations/string_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$),i=e.module,o=e.klass,s=e.hash2,u=e.truthy,l=e.send;return e.add_stubs(["$nil?","$[]","$options","$!","$any?","$is_a?","$to_s","$gsub","$strip","$==","$<","$length","$>","$include?","$!~"]),function(r,c){var p=[i(r,"Mutations")].concat(c);return function(r,$super,i){var c,p=o(r,$super,"StringFilter"),d=[p].concat(i);return p.default_options=s(["strip","strict","nils","empty_is_nil","empty","min_length","max_length","matches","in","discard_empty","allow_control_characters"],{strip:!0,strict:!1,nils:!1,empty_is_nil:!1,empty:!1,min_length:$,max_length:$,matches:$,"in":$,discard_empty:!1,allow_control_characters:!1}),e.def(p,"$filter",c=function(e){var r,i=this,o=$,s=$,c=$,p=$,f=$;return u(e["$nil?"]())?u(i.$options()["$[]"]("nils"))?[$,$]:[$,"nils"]:(u(u(o=i.$options()["$[]"]("strict")["$!"]())?l([a(d,"TrueClass"),a(d,"FalseClass"),a(d,"Integer"),a(d,"Float"),a(d,"BigDecimal"),a(d,"Symbol")],"any?",[],((r=function(t){return null==r.$$s||r.$$s,null==t&&(t=$),e["$is_a?"](t)}).$$s=i,r.$$arity=1,r)):o)&&(e=e.$to_s()),u(e["$is_a?"](a(d,"String")))?(u(i.$options()["$[]"]("allow_control_characters"))||(e=e.$gsub(/((?=[[:cntrl:]])[^\t\r\n])+/," ")),u(i.$options()["$[]"]("strip"))&&(e=e.$strip()),e["$=="]("")?u(i.$options()["$[]"]("empty_is_nil"))?[$,u(i.$options()["$[]"]("nils"))?$:"nils"]:u(i.$options()["$[]"]("empty"))?[e,$]:[e,"empty"]:u(u(s=i.$options()["$[]"]("min_length"))?t(e.$length(),i.$options()["$[]"]("min_length")):s)?[e,"min_length"]:u(u(c=i.$options()["$[]"]("max_length"))?n(e.$length(),i.$options()["$[]"]("max_length")):c)?[e,"max_length"]:u(u(p=i.$options()["$[]"]("in"))?i.$options()["$[]"]("in")["$include?"](e)["$!"]():p)?[e,"in"]:u(u(f=i.$options()["$[]"]("matches"))?i.$options()["$[]"]("matches")["$!~"](e):f)?[e,"matches"]:[e,$]):[e,"string"])},c.$$arity=1),$&&"filter"}(p[0],a(p,"AdditionalFilter"),p)}(r[0],r)},Opal.modules["mutations/integer_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$),i=e.module,o=e.klass,s=e.hash2,u=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$==","$!","$is_a?","$=~","$to_i","$<","$>","$include?"]),function(r,l){var c=[i(r,"Mutations")].concat(l);return function(r,$super,i){var l,c=o(r,$super,"IntegerFilter"),p=[c].concat(i);return c.default_options=s(["nils","empty_is_nil","min","max","in"],{nils:!1,empty_is_nil:!1,min:$,max:$,"in":$}),e.def(c,"$filter",l=function(e){var r=this,i=$,o=$,s=$,l=$;if(u(e["$nil?"]()))return u(r.$options()["$[]"]("nils"))?[$,$]:[$,"nils"];if(e["$=="](""))return u(r.$options()["$[]"]("empty_is_nil"))?[$,u(r.$options()["$[]"]("nils"))?$:"nils"]:[e,"empty"];if(u(e["$is_a?"](a(p,"Integer"))["$!"]())){if(!u(u(i=e["$is_a?"](a(p,"String")))?e["$=~"](/^-?\d/):i))return[e,"integer"];e=e.$to_i()}return u(u(o=r.$options()["$[]"]("min"))?t(e,r.$options()["$[]"]("min")):o)?[e,"min"]:u(u(s=r.$options()["$[]"]("max"))?n(e,r.$options()["$[]"]("max")):s)?[e,"max"]:u(u(l=r.$options()["$[]"]("in"))?r.$options()["$[]"]("in")["$include?"](e)["$!"]():l)?[e,"in"]:[e,$]},l.$$arity=1),$&&"filter"}(c[0],a(c,"AdditionalFilter"),c)}(r[0],r)},Opal.modules["mutations/float_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$),i=e.module,o=e.klass,s=e.hash2,u=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$==","$!","$is_a?","$=~","$to_f","$<","$>"]),function(r,l){var c=[i(r,"Mutations")].concat(l);return function(r,$super,i){var l,c=o(r,$super,"FloatFilter"),p=[c].concat(i);return c.default_options=s(["nils","min","max"],{nils:!1,min:$,max:$}),e.def(c,"$filter",l=function(e){var r=this,i=$,o=$,s=$;if(u(e["$nil?"]()))return u(r.$options()["$[]"]("nils"))?[$,$]:[$,"nils"];if(e["$=="](""))return[e,"empty"];if(u(e["$is_a?"](a(p,"Float"))["$!"]()))if(u(u(i=e["$is_a?"](a(p,"String")))?e["$=~"](/^[-+]?\d*\.?\d+/):i))e=e.$to_f();else{if(!u(e["$is_a?"](a(p,"Integer"))))return[e,"float"];e=e.$to_f()}return u(u(o=r.$options()["$[]"]("min"))?t(e,r.$options()["$[]"]("min")):o)?[e,"min"]:u(u(s=r.$options()["$[]"]("max"))?n(e,r.$options()["$[]"]("max")):s)?[e,"max"]:[e,$]},l.$$arity=1),$&&"filter"}(c[0],a(c,"AdditionalFilter"),c)}(r[0],r)},Opal.modules["mutations/boolean_filter"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass,i=e.hash2,o=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$==","$is_a?","$to_s","$downcase"]),function(t,s){var u=[$(t,"Mutations")].concat(s);return function(t,$super,$){var s,u=a(t,$super,"BooleanFilter"),l=[u].concat($);return u.default_options=i(["nils"],{nils:!1}),e.const_set(l[0],"BOOL_MAP",i(["true","1","false","0"],{"true":!0,1:!0,"false":!1,0:!1})),e.def(u,"$filter",s=function(e){var t=this,$=n,a=n;return o(e["$nil?"]())?o(t.$options()["$[]"]("nils"))?[n,n]:[n,"nils"]:e["$=="]("")?[e,"empty"]:o(o($=e["$=="](!0))?$:e["$=="](!1))?[e,n]:(o(e["$is_a?"](r(l,"Integer")))&&(e=e.$to_s()),o(e["$is_a?"](r(l,"String")))?(a=r(l,"BOOL_MAP")["$[]"](e.$downcase()),o(a["$nil?"]())?[e,"boolean"]:[a,n]):[e,"boolean"])},s.$$arity=1),n&&"filter"}(u[0],r(u,"AdditionalFilter"),u)}(t[0],t)},Opal.modules["mutations/duck_filter"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass,i=e.hash2,o=e.truthy,s=e.send;return e.add_stubs(["$nil?","$[]","$options","$each","$Array","$respond_to?"]),function(t,u){var l=[$(t,"Mutations")].concat(u);return function(t,$super,r){var $,u=a(t,$super,"DuckFilter");[u].concat(r);return u.default_options=i(["nils","methods"],{nils:!1,methods:n}),e.def(u,"$filter",$=function(t){try{var r,$=this;return o(t["$nil?"]())?o($.$options()["$[]"]("nils"))?[n,n]:[n,"nils"]:(s($.$Array($.$options()["$[]"]("methods")),"each",[],((r=function($){null==r.$$s||r.$$s;if(null==$&&($=n),o(t["$respond_to?"]($)))return n;e.ret([t,"duck"])}).$$s=$,r.$$arity=1,r)),[t,n])}catch(a){if(a===e.returner)return a.$v;throw a}},$.$$arity=1),n&&"filter"}(l[0],r(l,"AdditionalFilter"),l)}(t[0],t)},Opal.modules["mutations/date_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$),i=e.module,o=e.klass,s=e.hash2,u=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$==","$is_a?","$strptime","$parse","$respond_to?","$to_date","$<=","$>="]),function(r,l){var c=[i(r,"Mutations")].concat(l);return function(r,$super,i){var l,c=o(r,$super,"DateFilter"),p=[c].concat(i);return c.default_options=s(["nils","empty_is_nil","format","after","before"],{nils:!1,empty_is_nil:!1,format:$,after:$,before:$}),e.def(c,"$filter",l=function(r){var i=this,o=$;if(u(r["$nil?"]()))return u(i.$options()["$[]"]("nils"))?[$,$]:[$,"nils"];if(r["$=="](""))return u(i.$options()["$[]"]("empty_is_nil"))?[$,u(i.$options()["$[]"]("nils"))?$:"nils"]:[r,"empty"];if(u(r["$is_a?"](a(p,"Date"))))o=r;else if(u(r["$is_a?"](a(p,"String"))))try{o=u(i.$options()["$[]"]("format"))?a(p,"Date").$strptime(r,i.$options()["$[]"]("format")):a(p,"Date").$parse(r)}catch(s){if(!e.rescue(s,[a(p,"ArgumentError")]))throw s;try{return[$,"date"]}finally{e.pop_exception()}}else{if(!u(r["$respond_to?"]("to_date")))return[$,"date"];o=r.$to_date()}return u(i.$options()["$[]"]("after"))&&u(t(o,i.$options()["$[]"]("after")))?[$,"after"]:u(i.$options()["$[]"]("before"))&&u(n(o,i.$options()["$[]"]("before")))?[$,"before"]:[o,$]},l.$$arity=1),$&&"filter"}(c[0],a(c,"AdditionalFilter"),c)}(r[0],r)},Opal.modules["mutations/time_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}e.top;var r=[],$=e.nil,a=(e.$$$,e.$$),i=e.module,o=e.klass,s=e.hash2,u=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$==","$is_a?","$strptime","$parse","$respond_to?","$to_time","$<=","$>="]),function(r,l){var c=[i(r,"Mutations")].concat(l);return function(r,$super,i){var l,c=o(r,$super,"TimeFilter"),p=[c].concat(i);return c.default_options=s(["nils","format","after","before"],{nils:!1,format:$,after:$,before:$}),e.def(c,"$filter",l=function(r){var i=this,o=$;if(u(r["$nil?"]()))return u(i.$options()["$[]"]("nils"))?[$,$]:[$,"nils"];if(""["$=="](r))return[r,"empty"];if(u(r["$is_a?"](a(p,"Time"))))o=r;else if(u(r["$is_a?"](a(p,"String"))))try{o=u(i.$options()["$[]"]("format"))?a(p,"Time").$strptime(r,i.$options()["$[]"]("format")):a(p,"Time").$parse(r)}catch(s){if(!e.rescue(s,[a(p,"ArgumentError")]))throw s;try{return[$,"time"]}finally{e.pop_exception()}}else{if(!u(r["$respond_to?"]("to_time")))return[$,"time"];o=r.$to_time()}return u(i.$options()["$[]"]("after"))&&u(t(o,i.$options()["$[]"]("after")))?[$,"after"]:u(i.$options()["$[]"]("before"))&&u(n(o,i.$options()["$[]"]("before")))?[$,"before"]:[o,$]},l.$$arity=1),$&&"filter"}(c[0],a(c,"AdditionalFilter"),c)}(r[0],r)},Opal.modules["mutations/file_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.klass,o=e.hash2,s=e.truthy,u=e.send;return e.add_stubs(["$nil?","$[]","$options","$==","$concat","$each","$respond_to?","$is_a?","$>","$size"]),function(n,l){var c=[a(n,"Mutations")].concat(l);return function(n,$super,a){var l,c=i(n,$super,"FileFilter"),p=[c].concat(a);return c.default_options=o(["nils","upload","size"],{nils:!1,upload:!1,size:r}),e.def(c,"$filter",l=function(n){try{var a,i=this,o=r;return s(n["$nil?"]())?s(i.$options()["$[]"]("nils"))?[r,r]:[r,"nils"]:n["$=="]("")?[n,"empty"]:(o=["read","size"],s(i.$options()["$[]"]("upload"))&&o.$concat(["original_filename","content_type"]),u(o,"each",[],((a=function(t){null==a.$$s||a.$$s;if(null==t&&(t=r),s(n["$respond_to?"](t)))return r;e.ret([n,"file"])}).$$s=i,a.$$arity=1,a)),s(i.$options()["$[]"]("size")["$is_a?"]($(p,"Integer")))&&s(t(n.$size(),i.$options()["$[]"]("size")))?[n,"size"]:[n,r])}catch(l){if(l===e.returner)return l.$v;throw l}},l.$$arity=1),r&&"filter"}(c[0],$(c,"AdditionalFilter"),c)}(n[0],n)},Opal.modules["mutations/model_filter"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$,e.$$),a=e.module,i=e.klass,o=e.hash2,s=e.send2,u=e.find_super,l=e.truthy,c=e.send;return e.add_stubs(["$[]","$options","$camelize","$to_s","$is_a?","$constantize","$[]=","$-","$cache_constants?","$initialize_constants!","$nil?","$run","$success?","$result","$errors","$!","$respond_to?","$new_record?"]),function(n,p){var d=[a(n,"Mutations")].concat(p);return function(n,$super,a){var p,d,f,_=i(n,$super,"ModelFilter"),h=[_].concat(a);return _.$$prototype.initialize_constants=_.$$prototype.name=r,_.default_options=o(["nils","class","builder","new_records"],{nils:!1,"class":r,builder:r,new_records:!1}),e.def(_,"$initialize",p=function(e,t){var n=p.$$p,r=this;return n&&(p.$$p=null),null==t&&(t=o([],{})),s(r,u(r,"initialize",p,!1,!0),"initialize",[t],null),r.name=e},p.$$arity=-2),e.def(_,"$initialize_constants!",d=function(){var n=this,a=r,i=r,o=r,s=r;return n.initialize_constants=l(a=n.initialize_constants)?a:(i=l(o=n.$options()["$[]"]("class"))?o:n.name.$to_s().$camelize(),l(i["$is_a?"]($(h,"String")))&&(i=i.$constantize()),s=["class",i],c(n.$options(),"[]=",e.to_a(s)),s[t(s.length,1)],l(n.$options()["$[]"]("builder"))&&l(n.$options()["$[]"]("builder")["$is_a?"]($(h,"String")))&&(s=["builder",n.$options()["$[]"]("builder").$constantize()],c(n.$options(),"[]=",e.to_a(s)),s[t(s.length,1)]),!0),l($(h,"Mutations")["$cache_constants?"]())?r:(l(n.$options()["$[]"]("class"))&&(s=["class",n.$options()["$[]"]("class").$to_s().$constantize()],c(n.$options(),"[]=",e.to_a(s)),s[t(s.length,1)]),l(n.$options()["$[]"]("builder"))?(s=["builder",n.$options()["$[]"]("builder").$to_s().$constantize()],c(n.$options(),"[]=",e.to_a(s)),s[t(s.length,1)]):r)},d.$$arity=0),e.def(_,"$filter",f=function(e){var t=this,n=r,a=r,i=r,o=r;if(t["$initialize_constants!"](),l(e["$nil?"]()))return l(t.$options()["$[]"]("nils"))?[r,r]:[r,"nils"];if(l(l(n=e["$is_a?"]($(h,"Hash")))?t.$options()["$[]"]("builder"):n)){if(a=t.$options()["$[]"]("builder").$run(e),!l(a["$success?"]()))return[e,a.$errors()];e=a.$result()}return l(e["$is_a?"](t.$options()["$[]"]("class")))?l(l(i=t.$options()["$[]"]("new_records")["$!"]())?l(o=e["$respond_to?"]("new_record?"))?e["$new_record?"]():o:i)?[e,"new_records"]:[e,r]:[e,"model"]},f.$$arity=1),r&&"filter"}(d[0],$(d,"InputFilter"),d)}(n[0],n)},Opal.modules["mutations/symbol_filter"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass,i=e.hash2,o=e.truthy;return e.add_stubs(["$nil?","$[]","$options","$===","$to_sym","$!","$include?"]),function(t,s){var u=[$(t,"Mutations")].concat(s);return function(t,$super,$){var s,u=a(t,$super,"SymbolFilter"),l=[u].concat($);return u.default_options=i(["nils","in"],{nils:!1,"in":n}),e.def(u,"$filter",s=function(e){var t=this,$=n,a=n;if(o(e["$nil?"]()))return o(t.$options()["$[]"]("nils"))?[n,n]:[n,"nils"];if($=e,r(l,"Symbol")["$==="]($));else{if(!r(l,"String")["$==="]($))return[n,"symbol"];e=e.$to_sym()}return o(o(a=t.$options()["$[]"]("in"))?t.$options()["$[]"]("in")["$include?"](e)["$!"]():a)?[e,"in"]:[e,n]},s.$$arity=1),n&&"filter"}(u[0],r(u,"AdditionalFilter"),u)}(t[0],t)},Opal.modules["mutations/outcome"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.module),$=e.klass;return e.add_stubs(["$attr_reader"]),function(t,a){var i=[r(t,"Mutations")].concat(a);return function(t,$super,r){var a,i,o=$(t,null,"Outcome");[o].concat(r);return o.$$prototype.success=n,o.$attr_reader("result","errors","inputs"),e.def(o,"$initialize",a=function(e,t,n,r){var $,a=this;return $=[e,t,n,r],a.success=$[0],a.result=$[1],a.errors=$[2],a.inputs=$[3],$},a.$$arity=4),e.def(o,"$success?",i=function(){return this.success},i.$$arity=0),n&&"success?"}(i[0],0,i)}(t[0],t)},Opal.modules["mutations/command"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=(e.$$$, +e.$$),a=e.module,i=e.klass,o=e.send,s=e.truthy,u=e.hash2;return e.add_stubs(["$send","$input_filters","$to_proc","$each","$define_method","$[]","$has_key?","$[]=","$-","$private","$create_attr_methods","$run","$new","$run!","$validation_outcome","$==","$superclass","$dup","$inject","$with_indifferent_access","$respond_to?","$raise","$merge!","$filter","$has_errors?","$validate","$class","$!","$nil?","$execute","$success?","$result","$errors","$protected","$attr_reader","$is_a?","$tap","$split","$to_s","$pop","$to_sym","$any?"]),function(n,l){var c=[a(n,"Mutations")].concat(l);return function(n,$super,a){var l,c,p,d,f,_,h,y,v,m,g=i(n,null,"Command"),b=[g].concat(a);return g.$$prototype.raw_inputs=g.$$prototype.errors=g.$$prototype.inputs=r,function(n,a){var i,u,l,c,p,d,f,_=[n].concat(a);e.def(n,"$create_attr_methods",i=function(n){var $,a=i.$$p,s=a||r,u=this,l=r;return a&&(i.$$p=null),a&&(i.$$p=null),o(u.$input_filters(),"send",[n],s.$to_proc()),l=u.$input_filters().$send(n+"_keys"),o(l,"each",[],(($=function(n){var a,i,s,u=null==$.$$s?this:$.$$s;return null==n&&(n=r),o(u,"define_method",[n],((a=function(){var e=null==a.$$s?this:a.$$s;return null==e.inputs&&(e.inputs=r),e.inputs["$[]"](n)}).$$s=u,a.$$arity=0,a)),o(u,"define_method",[n+"_present?"],((i=function(){var e=null==i.$$s?this:i.$$s;return null==e.inputs&&(e.inputs=r),e.inputs["$has_key?"](n)}).$$s=u,i.$$arity=0,i)),o(u,"define_method",[n+"="],((s=function($){var a=null==s.$$s?this:s.$$s,i=r;return null==a.inputs&&(a.inputs=r),null==$&&($=r),i=[n,$],o(a.inputs,"[]=",e.to_a(i)),i[t(i.length,1)]}).$$s=u,s.$$arity=1,s))}).$$s=u,$.$$arity=1,$))},i.$$arity=1),n.$private("create_attr_methods"),e.def(n,"$required",u=function(){var e=u.$$p,t=e||r,n=this;return e&&(u.$$p=null),e&&(u.$$p=null),o(n,"create_attr_methods",["required"],t.$to_proc())},u.$$arity=0),e.def(n,"$optional",l=function(){var e=l.$$p,t=e||r,n=this;return e&&(l.$$p=null),e&&(l.$$p=null),o(n,"create_attr_methods",["optional"],t.$to_proc())},l.$$arity=0),e.def(n,"$run",c=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),o(n,"new",e.to_a(t)).$run()},c.$$arity=-1),e.def(n,"$run!",p=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),o(n,"new",e.to_a(t))["$run!"]()},p.$$arity=-1),e.def(n,"$validate",d=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),o(n,"new",e.to_a(t)).$validation_outcome()},d.$$arity=-1),e.def(n,"$input_filters",f=function(){var e=this,t=r;return null==e.input_filters&&(e.input_filters=r),e.input_filters=s(t=e.input_filters)?t:$(_,"Command")["$=="](e.$superclass())?$(_,"HashFilter").$new():e.$superclass().$input_filters().$dup()},f.$$arity=0)}(e.get_singleton_class(g),b),e.def(g,"$initialize",l=function(){var t,n,a,i,l=this;return t=e.slice.call(arguments,0,arguments.length),l.raw_inputs=o(t,"inject",[u([],{}).$with_indifferent_access()],((n=function(e,t){var a=null==n.$$s?this:n.$$s;return null==e&&(e=r),null==t&&(t=r),s(t["$respond_to?"]("to_hash"))||a.$raise($(b,"ArgumentError").$new("All arguments must be hashes")),e["$merge!"](t)}).$$s=l,n.$$arity=2,n)),i=l.$input_filters().$filter(l.raw_inputs),a=e.to_ary(i),l.inputs=null==a[0]?r:a[0],l.errors=null==a[1]?r:a[1],s(l["$has_errors?"]())?r:l.$validate()},l.$$arity=-1),e.def(g,"$input_filters",c=function(){return this.$class().$input_filters()},c.$$arity=0),e.def(g,"$has_errors?",p=function(){return this.errors["$nil?"]()["$!"]()},p.$$arity=0),e.def(g,"$run",d=function(){var e=this;return s(e["$has_errors?"]())?e.$validation_outcome():e.$validation_outcome(e.$execute())},d.$$arity=0),e.def(g,"$run!",f=function(){var e=this,t=r;return t=e.$run(),s(t["$success?"]())?t.$result():e.$raise($(b,"ValidationException").$new(t.$errors()))},f.$$arity=0),e.def(g,"$validation_outcome",_=function(e){var t=this;return null==e&&(e=r),$(b,"Outcome").$new(t["$has_errors?"]()["$!"](),s(t["$has_errors?"]())?r:e,t.errors,t.inputs)},_.$$arity=-1),g.$protected(),g.$attr_reader("inputs","raw_inputs"),e.def(g,"$validate",h=function(){return r},h.$$arity=0),e.def(g,"$execute",y=function(){return r},y.$$arity=0),e.def(g,"$add_error",v=function(n,a,i){var l,c=this,p=r;return null==i&&(i=r),s(a["$is_a?"]($(b,"Symbol")))||c.$raise($(b,"ArgumentError").$new("Invalid kind")),c.errors=s(p=c.errors)?p:$(b,"ErrorHash").$new(),o(c.errors,"tap",[],((l=function(c){var p,d=null==l.$$s?this:l.$$s,f=r,_=r,h=r,y=r;return null==c&&(c=r),_=(f=n.$to_s().$split(".")).$pop(),h=o(f,"inject",[c],((p=function(n,a){null==p.$$s||p.$$s;var i=r,u=r;return null==n&&(n=r),null==a&&(a=r),s(i=n["$[]"](a.$to_sym()))?i:(u=[a.$to_sym(),$(b,"ErrorHash").$new()],o(n,"[]=",e.to_a(u)),u[t(u.length,1)])}).$$s=d,p.$$arity=2,p)),y=[_,$(b,"ErrorAtom").$new(_.$to_sym(),a,u(["message"],{message:i}))],o(h,"[]=",e.to_a(y)),y[t(y.length,1)]}).$$s=c,l.$$arity=1,l))},v.$$arity=-3),e.def(g,"$merge_errors",m=function(e){var t=this,n=r;return s(e["$any?"]())?(t.errors=s(n=t.errors)?n:$(b,"ErrorHash").$new(),t.errors["$merge!"](e)):r},m.$$arity=1),r&&"merge_errors"}(c[0],0,c)}(n[0],n)},Opal.modules.mutations=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var n=e.top,r=[],$=e.nil,a=(e.$$$,e.$$),i=e.module,o=e.truthy,s=e.send,u=$;return e.add_stubs(["$require","$new","$cache_constants=","$-"]),n.$require("active_support/core_ext/hash/indifferent_access"),n.$require("active_support/core_ext/string/inflections"),n.$require("date"),n.$require("time"),n.$require("bigdecimal"),n.$require("mutations/version"),n.$require("mutations/exception"),n.$require("mutations/errors"),n.$require("mutations/input_filter"),n.$require("mutations/additional_filter"),n.$require("mutations/string_filter"),n.$require("mutations/integer_filter"),n.$require("mutations/float_filter"),n.$require("mutations/boolean_filter"),n.$require("mutations/duck_filter"),n.$require("mutations/date_filter"),n.$require("mutations/time_filter"),n.$require("mutations/file_filter"),n.$require("mutations/model_filter"),n.$require("mutations/array_filter"),n.$require("mutations/hash_filter"),n.$require("mutations/symbol_filter"),n.$require("mutations/outcome"),n.$require("mutations/command"),function(t,n){var r=i(t,"Mutations"),s=[r].concat(n);(function(t,n){var r,i,s,u,l=[t].concat(n);e.def(t,"$error_message_creator",r=function(){var e=this,t=$;return null==e.error_message_creator&&(e.error_message_creator=$),e.error_message_creator=o(t=e.error_message_creator)?t:a(l,"DefaultErrorMessageCreator").$new()},r.$$arity=0),e.def(t,"$error_message_creator=",i=function(e){return this.error_message_creator=e},i.$$arity=1),e.def(t,"$cache_constants=",s=function(e){return this.cache_constants=e},s.$$arity=1),e.def(t,"$cache_constants?",u=function(){var e=this;return null==e.cache_constants&&(e.cache_constants=$),e.cache_constants},u.$$arity=0)})(e.get_singleton_class(r),s)}(r[0],r),u=[!0],s(a(r,"Mutations"),"cache_constants=",e.to_a(u)),u[t(u.length,1)]},Opal.modules["hyper-operation/filters/outbound_filter"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass,i=e.hash2;return function(t,o){var s=[$(t,"Mutations")].concat(o);return function(t,$super,r){var $,o=a(t,$super,"OutboundFilter");[o].concat(r);return o.default_options=i([],{}),e.def(o,"$filter",$=function(e){return[e,"outbound"]},$.$$arity=1),n&&"filter"}(s[0],r(s,"AdditionalFilter"),s)}(t[0],t)},Opal.modules["hyper-operation/http"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e","$+","$-","$<","$delete","$succeed","$fail","$promise","$parse","$private","$tap","$proc","$ok?","$resolve","$reject","$from_object","$call"]),function(a,d){var f=[s(a,"Hyperstack")].concat(d);return function(a,$super,s){var d,f,_,h,y,v,m,g,b,w,k,O,E,x,S=u(a,null,"HTTP"),q=[S].concat(s);return S.$$prototype.handler=S.$$prototype.json=S.$$prototype.body=S.$$prototype.ok=S.$$prototype.xhr=S.$$prototype.url=S.$$prototype.method=S.$$prototype.promise=S.$$prototype.status_code=i,e.const_set(q[0],"ACTIONS",["get","post","put","delete","patch","head"]),l(o(q,"ACTIONS"),"each",[],((d=function(e){var t,n,r=null==d.$$s?this:d.$$s;return null==e&&(e=i),l(r,"define_singleton_method",[e],((t=function(n,r){var $=null==t.$$s?this:t.$$s,a=t.$$p,o=a||i;return a&&(t.$$p=null),null==n&&(n=i),null==r&&(r=c([],{})),$.$new().$send(e,n,r,o)}).$$s=r,t.$$arity=-2,t)),l(r,"define_method",[e],((n=function(t,r){var $=null==n.$$s?this:n.$$s,a=n.$$p,o=a||i;return a&&(n.$$p=null),null==t&&(t=i),null==r&&(r=c([],{})),$.$send(e,t,r,o)}).$$s=r,n.$$arity=-2,n))}).$$s=S,d.$$arity=1,d)),S.$attr_reader("body","error_message","method","status_code","url","xhr"),e.def(S,"$initialize",f=function(){return this.ok=!0},f.$$arity=0),e.defs(S,"$active?",_=function(){var e=this,r=i;return null==e.active_requests&&(e.active_requests=i),r=0,"undefined"!=typeof jQuery&&"undefined"!=typeof jQuery.active&&null!==jQuery.active&&(r=jQuery.active),t(n(r,e.active_requests),0)},_.$$arity=0),e.defs(S,"$active_requests",h=function(){var e=this,t=i;return null==e.active_requests&&(e.active_requests=i),e.active_requests=p(t=e.active_requests)?t:0,e.active_requests},h.$$arity=0),e.defs(S,"$incr_active_requests",y=function(){var e=this,t=i;return null==e.active_requests&&(e.active_requests=i),e.active_requests=p(t=e.active_requests)?t:0,e.active_requests=n(e.active_requests,1)},y.$$arity=0),e.defs(S,"$decr_active_requests",v=function(){var e=this,t=i;return null==e.active_requests&&(e.active_requests=i),e.active_requests=p(t=e.active_requests)?t:0,e.active_requests=r(e.active_requests,1),p($(e.active_requests,0))?(console.log("Ooops, Hyperstack::HTTP active_requests out of sync!"),e.active_requests=0):i},v.$$arity=0),e.def(S,"$send",m=function(e,t,n,r){var $=this;$.method=e,$.url=t,$.payload=n.$delete("payload"),$.handler=r;var a=null,o=null;"string"==typeof this.payload?a=this.payload:this.payload!=i&&(a=this.payload.$to_json(),o="application/json");var s=new XMLHttpRequest;if(s.onreadystatechange=function(){if(s.readyState===XMLHttpRequest.DONE)return $.$class().$decr_active_requests(),s.status>=200&&s.status<300||304==s.status?$.$succeed(s.responseText,s.status,s):$.$fail(s,s.status,s.statusText)},s.open(this.method.toUpperCase(),this.url),null!==a&&null!==o&&s.setRequestHeader("Content-Type",o),n["$has_key?"]("headers"))for(var u=n["$[]"]("headers"),l=u.$keys(),c=l.length,d=0;d"},k.$$arity=0),S.$private(),e.def(S,"$promise",O=function(){var e,t=this;return p(t.promise)?t.promise:t.promise=l(o(q,"Promise").$new(),"tap",[],((e=function(t){var n,r=null==e.$$s?this:e.$$s;return null==t&&(t=i),r.handler=l(r,"proc",[],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=i),p(e["$ok?"]())?t.$resolve(e):t.$reject(e)}).$$s=r,n.$$arity=1,n))}).$$s=t,e.$$arity=1,e))},O.$$arity=0),e.def(S,"$succeed",E=function(e,t,n){var r=this;return r.body=e,r.xhr=n,r.status_code=n.status,"object"==typeof e&&(r.json=o(q,"JSON").$from_object(e)),p(r.handler)?r.handler.$call(r):i},E.$$arity=3),e.def(S,"$fail",x=function(e){var t=this;return t.body=e.responseText,t.xhr=e,t.status_code=e.status,t.ok=!1,p(t.handler)?t.handler.$call(t):i},x.$$arity=3),i&&"fail"}(f[0],0,f)}(a[0],a)},Opal.modules["hyper-operation/transport/client_drivers"]=function(Opal){function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function $rb_minus(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$module=Opal.module,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$lambda=Opal.lambda,$hash2=Opal.hash2;return Opal.add_stubs(["$[]","$opts","$extend","$on_opal_client?","$client_drivers_get_acting_user_id","$env","$==","$respond_to?","$tap","$new","$resolve","$each","$is_a?","$connect_to","$name","$then","$load","$id","$raise","$inspect","$class","$connect","$last","$split","$+","$to_s","$include?","$open_channels","$<<","$add_connection","$gsub","$get_queued_data","$post","$polling_path","$action_cable_consumer","$json","$complete_connection","$sync_dispatch","$parse","$get","$include","$dispatch_from_server","$constantize","$attr_reader","$isomorphic_method","$send_to_server","$when_on_server","$acting_user","$controller","$when_on_client","$fail","$zero?","$after","$-","$!=","$lambda","$[]=","$every"]),function($base,$parent_nesting){var self=$module($base,"Hyperstack"),$nesting=[self].concat($parent_nesting),$Hyperstack_anti_csrf_token$1,$Hyperstack_connect$8,$Hyperstack_connect_session$12,$Hyperstack_action_cable_consumer$13;return Opal.defs(self,"$anti_csrf_token",$Hyperstack_anti_csrf_token$1=function(){return $$($nesting,"ClientDrivers").$opts()["$[]"]("form_authenticity_token")},$Hyperstack_anti_csrf_token$1.$$arity=0),function(e,$super,t){var n,r,$,a,i=$klass(e,null,"Application"),o=[i].concat(t);i.$extend($$$($$$($$(o,"Component"),"IsomorphicHelpers"),"ClassMethods")),$truthy(i["$on_opal_client?"]())?Opal.defs(i,"$acting_user_id",n=function(){return $$(o,"ClientDrivers").$opts()["$[]"]("acting_user_id")},n.$$arity=0):Opal.defs(i,"$acting_user_id",r=function(){return $$(o,"ClientDrivers").$client_drivers_get_acting_user_id()},r.$$arity=0),Opal.defs(i,"$env",$=function(){var e=this;return null==e.env&&(e.env=nil),$truthy(e.env)||(e.env=$$(o,"ClientDrivers").$env()),e.env},$.$$arity=0),Opal.defs(i,"$production?",a=function(){return this.$env()["$=="]("production")},a.$$arity=0)}($nesting[0],0,$nesting),function(e,t){var n,r=$module(e,"Model"),$=[r].concat(t);$truthy(r["$respond_to?"]("load"))||Opal.defs(r,"$load",n=function(){var e,t=n.$$p,r=t||nil,a=this;return t&&(n.$$p=null),$send($$($,"Promise").$new(),"tap",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=nil),t.$resolve(Opal.yieldX(r,[]))}).$$s=a,e.$$arity=1,e))},n.$$arity=0)}($nesting[0],$nesting),Opal.defs(self,"$connect",$Hyperstack_connect$8=function(){var e,t,n=this;return e=Opal.slice.call(arguments,0,arguments.length),$send(e,"each",[],((t=function(e){var n,r,$=null==t.$$s?this:t.$$s,a=nil;return null==e&&(e=nil),$truthy(e["$is_a?"]($$($nesting,"Class")))?$$($nesting,"IncomingBroadcast").$connect_to(e.$name()):$truthy($truthy(a=e["$is_a?"]($$($nesting,"String")))?a:e["$is_a?"]($$($nesting,"Array")))?$send($$($nesting,"IncomingBroadcast"),"connect_to",Opal.to_a(e)):$truthy(e["$respond_to?"]("id"))?$send($send($$$($$($nesting,"Hyperstack"),"Model"),"load",[],((n=function(){null==n.$$s||n.$$s;return e.$id()}).$$s=$,n.$$arity=0,n)),"then",[],((r=function(t){var n=null==r.$$s?this:r.$$s;return null==t&&(t=nil),$truthy(t)||n.$raise("Hyperstack.connect cannot connect to "+e.$inspect()+". The id is nil. This can be caused by connecting to a model that is not saved, or that does not exist."),$$($nesting,"IncomingBroadcast").$connect_to(e.$class().$name(),t)}).$$s=$,r.$$arity=1,r)):$.$raise("Hyperstack.connect cannot connect to "+e.$inspect()+".\nChannels must be either a class, or a class name,\na string in the form 'ClassName-id',\nan array in the form [class, id] or [class-name, id],\nor an object that responds to the id method with a non-nil value")}).$$s=n,t.$$arity=1,t))},$Hyperstack_connect$8.$$arity=-1),Opal.defs(self,"$connect_session",$Hyperstack_connect_session$12=function(){return this.$connect(["Hyperstack::Session",$$($nesting,"ClientDrivers").$opts()["$[]"]("id").$split("-").$last()])},$Hyperstack_connect_session$12.$$arity=0),Opal.defs(self,"$action_cable_consumer",$Hyperstack_action_cable_consumer$13=function(){return $$($nesting,"ClientDrivers").$opts()["$[]"]("action_cable_consumer")},$Hyperstack_action_cable_consumer$13.$$arity=0),function(e,$super,t){var n,r,$,a=$klass(e,null,"IncomingBroadcast"),i=[a].concat(t);Opal.defs(a,"$open_channels",n=function(){var e=this,t=nil;return null==e.open_channels&&(e.open_channels=nil),e.open_channels=$truthy(t=e.open_channels)?t:$$(i,"Set").$new()},n.$$arity=0),Opal.defs(a,"$add_connection",r=function(e,t){var n=this,r=nil;return null==t&&(t=nil),r=""+e+($truthy(t)?$rb_plus("-",t.$to_s()):nil),$truthy(n.$open_channels()["$include?"](r))?nil:(n.$open_channels()["$<<"](r),r)},r.$$arity=-2),Opal.defs(a,"$connect_to",$=function(e,t){var n,r,$=this,a=nil,o=nil;return null==t&&(t=nil),a=$.$add_connection(e,t),$truthy(a)?$$(i,"ClientDrivers").$opts()["$[]"]("transport")["$=="]("pusher")?(o=$$(i,"ClientDrivers").$opts()["$[]"]("channel")+"-"+a,(o=$$(i,"ClientDrivers").$opts()["$[]"]("pusher_api").subscribe(o.$gsub("::","=="))).bind("dispatch",$$(i,"ClientDrivers").$opts()["$[]"]("dispatch")),o.bind("pusher:subscription_succeeded",$lambda(((n=function(){null==n.$$s||n.$$s;return Opal.slice.call(arguments,0,arguments.length),$$(i,"ClientDrivers").$get_queued_data("connect-to-transport",a)}).$$s=$,n.$$arity=-1,n))),$.pusher_dispatcher_registered=!0):$$(i,"ClientDrivers").$opts()["$[]"]("transport")["$=="]("action_cable")?(o=$$(i,"ClientDrivers").$opts()["$[]"]("channel")+"-"+a,$send($$$($$(i,"Hyperstack"),"HTTP").$post($$(i,"ClientDrivers").$polling_path("action-cable-auth",o),$hash2(["headers"],{headers:$hash2(["X-CSRF-Token"],{"X-CSRF-Token":$$(i,"ClientDrivers").$opts()["$[]"]("form_authenticity_token")})})),"then",[],((r=function(e){null==r.$$s||r.$$s;null==e&&(e=nil);$$(i,"Hyperstack").$action_cable_consumer().subscriptions.create({channel:"Hyperstack::ActionCableChannel",client_id:$$(i,"ClientDrivers").$opts()["$[]"]("id"),hyperstack_channel:a,authorization:e.$json()["$[]"]("authorization"),salt:e.$json()["$[]"]("salt")},{connected:function(){$$(i,"ClientDrivers").$env()["$=="]("development")&&console.log("ActionCable connected to: ",a),$$(i,"ClientDrivers").$complete_connection(a)},received:function(e){$$(i,"ClientDrivers").$env()["$=="]("development")&&console.log("ActionCable received: ",e),$$(i,"ClientDrivers").$sync_dispatch($$(i,"JSON").$parse(JSON.stringify(e))["$[]"]("data"))}})}).$$s=$,r.$$arity=1,r))):$$$($$(i,"Hyperstack"),"HTTP").$get($$(i,"ClientDrivers").$polling_path("subscribe",a)):nil},$.$$arity=-2)}($nesting[0],0,$nesting),function($base,$super,$parent_nesting){var self=$klass($base,$super,"ClientDrivers"),$nesting=[self].concat($parent_nesting),$ClientDrivers_sync_dispatch$19,$ClientDrivers$20,$ClientDrivers$22,$ClientDrivers_complete_connection$25,$ClientDrivers_get_queued_data$28,$ClientDrivers_initialize_client_drivers_on_boot$31,$ClientDrivers_polling_path$36;return self.$include($$$($$$($$($nesting,"Hyperstack"),"Component"),"IsomorphicHelpers")),Opal.defs(self,"$sync_dispatch",$ClientDrivers_sync_dispatch$19=function(e){return e["$[]"]("operation").$constantize().$dispatch_from_server(e["$[]"]("params"))},$ClientDrivers_sync_dispatch$19.$$arity=1),function(e,t){[e].concat(t);e.$attr_reader("opts")}(Opal.get_singleton_class(self),$nesting),$send(self,"isomorphic_method",["client_drivers_get_acting_user_id"],($ClientDrivers$20=function(e){var t,n=null==$ClientDrivers$20.$$s?this:$ClientDrivers$20.$$s;return null==e&&(e=nil),e.$send_to_server(),$send(e,"when_on_server",[],((t=function(){var e=null==t.$$s?this:t.$$s,n=nil;return $truthy(n=e.$controller().$acting_user())?e.$controller().$acting_user().$id():n}).$$s=n,t.$$arity=0,t))},$ClientDrivers$20.$$s=self,$ClientDrivers$20.$$arity=1,$ClientDrivers$20)),$send(self,"isomorphic_method",["env"],($ClientDrivers$22=function(e){var t,n,r=null==$ClientDrivers$22.$$s?this:$ClientDrivers$22.$$s;return null==e&&(e=nil),$send(e,"when_on_client",[],((t=function(){return(null==t.$$s?this:t.$$s).$opts()["$[]"]("env")}).$$s=r,t.$$arity=0,t)),e.$send_to_server(),$send(e,"when_on_server",[],((n=function(){null==n.$$s||n.$$s;return $$$("::","Rails").$env()}).$$s=r,n.$$arity=0,n))},$ClientDrivers$22.$$s=self,$ClientDrivers$22.$$arity=1,$ClientDrivers$22)),Opal.defs(self,"$complete_connection",$ClientDrivers_complete_connection$25=function(e,t){var n,r=this;return null==t&&(t=10),$send(r.$get_queued_data("connect-to-transport",e),"fail",[],((n=function(){var r,$=null==n.$$s?this:n.$$s;return $truthy(t["$zero?"]())?nil:$send($,"after",[.25],((r=function(){return(null==r.$$s?this:r.$$s).$complete_connection(e,$rb_minus(t,1))}).$$s=$,r.$$arity=0,r))}).$$s=r,n.$$arity=0,n))},$ClientDrivers_complete_connection$25.$$arity=-2),Opal.defs(self,"$get_queued_data",$ClientDrivers_get_queued_data$28=function(e,t,n){var r,$=this;return null==t&&(t=nil),null==n&&(n=$hash2([],{})),$send($$$($$($nesting,"Hyperstack"),"HTTP").$get($.$polling_path(e,t),n),"then",[],((r=function(e){var t,n=null==r.$$s?this:r.$$s;return null==e&&(e=nil),$send(e.$json(),"each",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=nil),$$($nesting,"ClientDrivers").$env()["$=="]("development")&&console.log("simple_poller received: ",e),n.$sync_dispatch(e["$[]"](1))}).$$s=n,t.$$arity=1,t))}).$$s=$,r.$$arity=1,r))},$ClientDrivers_get_queued_data$28.$$arity=-2),Opal.defs(self,"$initialize_client_drivers_on_boot",$ClientDrivers_initialize_client_drivers_on_boot$31=function $$initialize_client_drivers_on_boot(){var $$32,$$33,$$34,$$35,self=this,$ret_or_4=nil,$ret_or_5=nil,$writer=nil,$ret_or_6=nil,h=nil,pusher_api=nil;return null==self.initialized&&(self.initialized=nil),$truthy(self.initialized)?($truthy($truthy($ret_or_4=self["$on_opal_client?"]())?$$($nesting,"Hyperstack").$action_cable_consumer():$ret_or_4)&&$send($$$($$($nesting,"Hyperstack"),"HTTP"),"get",[window.HyperstackEnginePath+"/server_up"],($$32=function(){null==$$32.$$s||$$32.$$s;return $truthy($$($nesting,"Hyperstack").$action_cable_consumer().connection.disconnected)?$$($nesting,"Hyperstack").$action_cable_consumer().connection.open():nil},$$32.$$s=self,$$32.$$arity=0,$$32)),nil):(self.initialized=!0,self.opts=$hash2([],{}),$truthy(self["$on_opal_client?"]())?(self.opts=$$($nesting,"Hash").$new(window.HyperstackOpts),$truthy($truthy($ret_or_5=self.$opts()["$[]"]("transport")["$!="]("none"))?"undefined"==typeof window.HyperstackEnginePath:$ret_or_5)&&self.$raise("No hyperstack mount point found!\nCheck your Rails routes.rb file"),self.$opts()["$[]"]("transport")["$=="]("pusher")?($writer=["dispatch",$send(self,"lambda",[],($$33=function(e){var t=null==$$33.$$s?this:$$33.$$s;return null==e&&(e=nil),t.$sync_dispatch($$($nesting,"JSON").$parse(JSON.stringify(e)))},$$33.$$s=self,$$33.$$arity=1,$$33))],$send(self.$opts(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$truthy($truthy($ret_or_6=self.$opts()["$[]"]("client_logging"))?window.console&&window.console.log:$ret_or_6)&&(Pusher.log=function(e){window.console.log(e)}),$truthy(self.$opts()["$[]"]("pusher_fake_js"))?($writer=["pusher_api",eval(self.$opts()["$[]"]("pusher_fake_js"))],$send(self.$opts(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]):(h=nil,pusher_api=nil,h={encrypted:self.$opts()["$[]"]("encrypted"),cluster:self.$opts()["$[]"]("cluster"),authEndpoint:window.HyperstackEnginePath+"/hyperstack-pusher-auth",auth:{headers:{"X-CSRF-Token":self.$opts()["$[]"]("form_authenticity_token")}}},pusher_api=new Pusher(self.$opts()["$[]"]("key"),h),$writer=["pusher_api",pusher_api],$send(self.$opts(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)]),$send($$($nesting,"Hyperstack"),"connect",Opal.to_a(self.$opts()["$[]"]("auto_connect")))):self.$opts()["$[]"]("transport")["$=="]("action_cable")?($writer=["action_cable_consumer",ActionCable.createConsumer.apply(ActionCable,[].concat(Opal.to_a(self.$opts()["$[]"]("action_cable_consumer_url"))))],$send(self.$opts(),"[]=",Opal.to_a($writer)),$writer[$rb_minus($writer.length,1)],$send($$($nesting,"Hyperstack"),"connect",Opal.to_a(self.$opts()["$[]"]("auto_connect")))):self.$opts()["$[]"]("transport")["$=="]("simple_poller")?($send(self.$opts()["$[]"]("auto_connect"),"each",[],($$34=function(e){null==$$34.$$s||$$34.$$s;return null==e&&(e=nil),$send($$($nesting,"IncomingBroadcast"),"add_connection",Opal.to_a(e))},$$34.$$s=self,$$34.$$arity=1,$$34)),$send(self,"every",[self.$opts()["$[]"]("seconds_between_poll")],($$35=function(){return(null==$$35.$$s?this:$$35.$$s).$get_queued_data("read",nil)},$$35.$$s=self,$$35.$$arity=0,$$35))):nil):nil)},$ClientDrivers_initialize_client_drivers_on_boot$31.$$arity=0),Opal.defs(self,"$polling_path",$ClientDrivers_polling_path$36=function(e,t){var n=this,r=nil;return null==t&&(t=nil),r=window.HyperstackEnginePath+"/hyperstack-"+e+"/"+n.$opts()["$[]"]("id"),$truthy(t)&&(r=r+"/"+t),r},$ClientDrivers_polling_path$36.$$arity=-2),nil&&"polling_path"}($nesting[0],null,$nesting)}($nesting[0],$nesting)},Opal.modules["hyper-operation/exception"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.send,u=e.send2,l=e.find_super,c=e.truthy;return e.add_stubs(["$new","$collect","$[]","$attr_accessor","$+","$to_s","$on_error","$as_json","$errors","$is_a?","$new_from_error_hash"]),function(t,n){var $=[i(t,"Mutations")].concat(n);(function(t,$super,n){var $,i=o(t,null,"ErrorArray"),u=[i].concat(n);e.defs(i,"$new_from_error_hash",$=function(e){var t,n=this;return n.$new(s(e,"collect",[],((t=function(e,n){null==t.$$s||t.$$s;return null==e&&(e=r),null==n&&(n=r),a(u,"ErrorAtom").$new(e,n["$[]"]("symbol"),n)}).$$s=n,t.$$arity=2,t)))},$.$$arity=1)})($[0],0,$)}(n[0],n),function(n,s){var p=[i(n,"Hyperstack")].concat(s);return function(n,$super,$){var i,s,p=o(n,$super,"AccessViolation"),d=[p].concat($);p.$attr_accessor("details"),e.def(p,"$initialize",i=function(e,n){var $=i.$$p,a=this;return $&&(i.$$p=null),null==e&&(e=r),null==n&&(n=r),u(a,l(a,"initialize",i,!1,!0),"initialize",["Hyperstack::AccessViolation"+(c(e)?t(":",e.$to_s()):r)],null),a.details=n},i.$$arity=-1),e.def(p,"$__hyperstack_on_error",s=function(e,t,n){var r=this;return a(d,"Hyperstack").$on_error(e,r,t,n)},s.$$arity=3)}(p[0],a(p,"StandardError"),p),function(t,$super,n){var i=[o(t,null,"Operation")].concat(n);return function(t,$super,n){var i,s,p=o(t,$super,"ValidationException"),d=[p].concat(n);return e.def(p,"$as_json",i=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$errors().$as_json()},i.$$arity=-1),e.def(p,"$initialize",s=function(e){var t=s.$$p,n=this;return t&&(s.$$p=null),c(e["$is_a?"]($(a(d,"Mutations"),"ErrorHash")))||(e=$(a(d,"Mutations"),"ErrorArray").$new_from_error_hash(e)),u(n,l(n,"initialize",s,!1,!0),"initialize",[e],null)},s.$$arity=1),r&&"initialize"}(i[0],$(a(i,"Mutations"),"ValidationException"),i)}(p[0],0,p)}(n[0],n)},Opal.modules["hyper-operation/promise"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var $=[],a=e.nil,i=e.$$$,o=e.$$,s=e.klass,u=e.hash2,l=e.truthy,c=e.send,p=e.alias,d=e.send2,f=e.find_super;return e.add_stubs(["$resolve","$new","$reject","$attr_reader","$===","$value","$has_key?","$keys","$!","$==","$realized?","$<<","$>>","$exception?","$[]","$resolved?","$rejected?","$error","$include?","$action","$raise","$^","$call","$resolve!","$exception!","$any?","$each","$reject!","$is_a?","$result","$there_can_be_only_one!","$then","$to_proc","$fail","$always","$trace","$class","$object_id","$+","$inspect","$act?","$nil?","$prev","$push","$concat","$it","$proc","$reverse","$pop","$<=","$length","$shift","$-","$wait","$map","$reduce","$try","$tap","$all?","$find"]),function($,$super,_){var h,y,v,m,g,b,w,k,O,E,x,S,q,N,C,z,I,D,H,A,j,M,R,T,B,P,L,F,U,W,K=s($,null,"Promise"),X=[K].concat(_);return K.$$prototype.value=K.$$prototype.action=K.$$prototype.exception=K.$$prototype.realized=K.$$prototype.next=K.$$prototype.delayed=K.$$prototype.error=K.$$prototype.prev=a,e.defs(K,"$value",h=function(e){return this.$new().$resolve(e)},h.$$arity=1),e.defs(K,"$error",y=function(e){return this.$new().$reject(e)},y.$$arity=1),e.defs(K,"$when",v=function(){var t;return t=e.slice.call(arguments,0,arguments.length),o(X,"When").$new(t)},v.$$arity=-1),function(t,$super,n){var r,$=s(t,$super,"Fail");[$].concat(n);$.$attr_reader("result"),e.def($,"$initialize",r=function(e){return this.result=e},r.$$arity=1)}(X[0],o(X,"StandardError"),X),K.$attr_reader("error","prev","next"),e.def(K,"$initialize",m=function(e){var t=this;return null==e&&(e=u([],{})),t.action=e,t.realized=!1,t.exception=!1,t.value=a,t.error=a,t.delayed=!1,t.prev=a,t.next=[]},m.$$arity=-1),e.def(K,"$value",g=function(){var e=this;return l(o(X,"Promise")["$==="](e.value))?e.value.$value():e.value},g.$$arity=0),e.def(K,"$act?",b=function(){var e=this,t=a;return l(t=e.action["$has_key?"]("success"))?t:e.action["$has_key?"]("always")},b.$$arity=0),e.def(K,"$action",w=function(){return this.action.$keys()},w.$$arity=0),e.def(K,"$exception?",k=function(){return this.exception},k.$$arity=0),e.def(K,"$realized?",O=function(){return this.realized["$!"]()["$!"]()},O.$$arity=0),e.def(K,"$resolved?",E=function(){return this.realized["$=="]("resolve")},E.$$arity=0),e.def(K,"$rejected?",x=function(){return this.realized["$=="]("reject")},x.$$arity=0),e.def(K,"$pending?",S=function(){return this["$realized?"]()["$!"]()},S.$$arity=0),e.def(K,"$^",q=function(e){var t=this;return e["$<<"](t),t["$>>"](e),e},q.$$arity=1),e.def(K,"$<<",N=function(e){var t=this;return t.prev=e,t},N.$$arity=1),e.def(K,"$>>",C=function(e){var t=this,n=a;return t.next["$<<"](e),l(t["$exception?"]())?e.$reject(t.delayed["$[]"](0)):l(t["$resolved?"]())?e.$resolve(l(t.delayed)?t.delayed["$[]"](0):t.$value()):l(t["$rejected?"]())&&(l(l(n=t.action["$has_key?"]("failure")["$!"]())?n:o(X,"Promise")["$==="](l(t.delayed)?t.delayed["$[]"](0):t.error))?e.$reject(l(t.delayed)?t.delayed["$[]"](0):t.$error()):l(e.$action()["$include?"]("always"))&&e.$reject(l(t.delayed)?t.delayed["$[]"](0):t.$error())),t},C.$$arity=1),e.def(K,"$resolve",z=function(t){var n=this,r=a,$=a,i=a;if(null==t&&(t=a),l(n["$realized?"]())&&n.$raise(o(X,"ArgumentError"),"the promise has already been realized"),l(o(X,"Promise")["$==="](t)))return t["$<<"](n.prev)["$^"](n);try{l(r=l($=n.action["$[]"]("success"))?$:n.action["$[]"]("always"))&&(n.realized="resolve",t=r.$call(t)),n["$resolve!"](t)}catch(s){if(!e.rescue(s,[o(X,"Exception")]))throw s;i=s;try{n["$exception!"](i)}finally{e.pop_exception()}}return n},z.$$arity=-1),e.def(K,"$resolve!",I=function(e){var t,n=this;return n.realized="resolve",n.value=e,l(n.next["$any?"]())?c(n.next,"each",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),n.$resolve(e)}).$$s=n,t.$$arity=1,t)):n.delayed=[e]},I.$$arity=1),e.def(K,"$reject",D=function(t){var n=this,r=a,$=a,i=a;if(null==t&&(t=a),l(n["$realized?"]())&&n.$raise(o(X,"ArgumentError"),"the promise has already been realized"),l(o(X,"Promise")["$==="](t)))return t["$<<"](n.prev)["$^"](n);try{l(r=l($=n.action["$[]"]("failure"))?$:n.action["$[]"]("always"))&&(n.realized="reject",t=r.$call(t)),l(n.action["$has_key?"]("always"))?n["$resolve!"](t):n["$reject!"](t)}catch(s){if(!e.rescue(s,[o(X,"Exception")]))throw s;i=s;try{n["$exception!"](i)}finally{e.pop_exception()}}return n},D.$$arity=-1),e.def(K,"$reject!",H=function(e){var t,n=this;return n.realized="reject",n.error=e,l(n.next["$any?"]())?c(n.next,"each",[],((t=function(n){null==t.$$s||t.$$s;return null==n&&(n=a),n.$reject(e)}).$$s=n,t.$$arity=1,t)):n.delayed=[e]},H.$$arity=1),e.def(K,"$exception!",A=function(e){var t=this;return l(e["$is_a?"](i(o(X,"Promise"),"Fail")))?e=e.$result():t.exception=!0,t["$reject!"](e)},A.$$arity=1),e.def(K,"$then",j=function(){var e=j.$$p,t=e||a,n=this;return e&&(j.$$p=null),e&&(j.$$p=null),n["$^"](o(X,"Promise").$new(u(["success"],{success:t})))},j.$$arity=0),e.def(K,"$then!",M=function(){var e=M.$$p,t=e||a,n=this;return e&&(M.$$p=null),e&&(M.$$p=null),n["$there_can_be_only_one!"](),c(n,"then",[],t.$to_proc())},M.$$arity=0),p(K,"do","then"),p(K,"do!","then!"),e.def(K,"$fail",R=function(){ +var e=R.$$p,t=e||a,n=this;return e&&(R.$$p=null),e&&(R.$$p=null),n["$^"](o(X,"Promise").$new(u(["failure"],{failure:t})))},R.$$arity=0),e.def(K,"$fail!",T=function(){var e=T.$$p,t=e||a,n=this;return e&&(T.$$p=null),e&&(T.$$p=null),n["$there_can_be_only_one!"](),c(n,"fail",[],t.$to_proc())},T.$$arity=0),p(K,"rescue","fail"),p(K,"catch","fail"),p(K,"rescue!","fail!"),p(K,"catch!","fail!"),e.def(K,"$always",B=function(){var e=B.$$p,t=e||a,n=this;return e&&(B.$$p=null),e&&(B.$$p=null),n["$^"](o(X,"Promise").$new(u(["always"],{always:t})))},B.$$arity=0),e.def(K,"$always!",P=function(){var e=P.$$p,t=e||a,n=this;return e&&(P.$$p=null),e&&(P.$$p=null),n["$there_can_be_only_one!"](),c(n,"always",[],t.$to_proc())},P.$$arity=0),p(K,"finally","always"),p(K,"ensure","always"),p(K,"finally!","always!"),p(K,"ensure!","always!"),e.def(K,"$trace",L=function(e){var t=L.$$p,n=t||a,r=this;return t&&(L.$$p=null),t&&(L.$$p=null),null==e&&(e=a),r["$^"](o(X,"Trace").$new(e,n))},L.$$arity=-1),e.def(K,"$trace!",F=function(){var t,n=F.$$p,r=n||a,$=this;return n&&(F.$$p=null),n&&(F.$$p=null),t=e.slice.call(arguments,0,arguments.length),$["$there_can_be_only_one!"](),c($,"trace",e.to_a(t),r.$to_proc())},F.$$arity=-1),e.def(K,"$there_can_be_only_one!",U=function(){var e=this;return l(e.next["$any?"]())?e.$raise(o(X,"ArgumentError"),"a promise has already been chained"):a},U.$$arity=0),e.def(K,"$inspect",W=function(){var e=this,n=a,r=a;return n="#<"+e.$class()+"("+e.$object_id()+")",l(e.next["$any?"]())&&(n=t(n," >> "+e.next.$inspect())),n=l(e["$realized?"]())?t(n,": "+(l(r=e.value)?r:e.error).$inspect()+">"):t(n,">")},W.$$arity=0),function(t,$super,$){var i,p,_=s(t,$super,"Trace"),h=[_].concat($);e.defs(_,"$it",i=function(e){var t=this,n=a,r=a,$=a;return n=[],l(l(r=e["$act?"]())?r:e.$prev()["$nil?"]())&&n.$push(e.$value()),l($=e.$prev())?n.$concat(t.$it($)):n},i.$$arity=1),e.def(_,"$initialize",p=function(t,$){var i,s=p.$$p,_=this;return s&&(p.$$p=null),_.depth=t,d(_,f(_,"initialize",p,!1,!0),"initialize",[u(["success"],{success:c(_,"proc",[],(i=function(){var s=null==i.$$s?this:i.$$s,u=a,p=a;return(u=o(h,"Trace").$it(s).$reverse()).$pop(),l(l(p=t)?n(t,u.$length()):p)&&u.$shift(r(u.$length(),t)),c($,"call",e.to_a(u))},i.$$s=_,i.$$arity=0,i))})],null)},p.$$arity=2)}(X[0],K,X),function(t,$super,n){var r,$,i,u,_,h,y,v=s(t,$super,"When"),m=[v].concat(n);return v.$$prototype.wait=a,e.def(v,"$initialize",r=function(e){var t,n=r.$$p,$=this;return n&&(r.$$p=null),null==e&&(e=[]),d($,f($,"initialize",r,!1,!0),"initialize",[],null),$.wait=[],c(e,"each",[],((t=function(e){var n=null==t.$$s?this:t.$$s;return null==e&&(e=a),n.$wait(e)}).$$s=$,t.$$arity=1,t))},r.$$arity=-1),e.def(v,"$each",$=function(){var e,t=$.$$p,n=t||a,r=this;return t&&($.$$p=null),t&&($.$$p=null),l(n)||r.$raise(o(m,"ArgumentError"),"no block given"),c(r,"then",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=a),c(t,"each",[],n.$to_proc())}).$$s=r,e.$$arity=1,e))},$.$$arity=0),e.def(v,"$collect",i=function(){var e,t=i.$$p,n=t||a,r=this;return t&&(i.$$p=null),t&&(i.$$p=null),l(n)||r.$raise(o(m,"ArgumentError"),"no block given"),c(r,"then",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=a),o(m,"When").$new(c(t,"map",[],n.$to_proc()))}).$$s=r,e.$$arity=1,e))},i.$$arity=0),e.def(v,"$inject",u=function(){var t,n,r,$=u.$$p,i=$||a,o=this;return $&&(u.$$p=null),$&&(u.$$p=null),t=e.slice.call(arguments,0,arguments.length),n=t,c(o,"then",[],((r=function(t){null==r.$$s||r.$$s;return null==t&&(t=a),c(t,"reduce",e.to_a(n),i.$to_proc())}).$$s=o,r.$$arity=1,r))},u.$$arity=-1),p(v,"map","collect"),p(v,"reduce","inject"),e.def(v,"$wait",_=function(e){var t,n=this;return l(o(m,"Promise")["$==="](e))||(e=o(m,"Promise").$value(e)),l(e["$act?"]())&&(e=e.$then()),n.wait["$<<"](e),c(e,"always",[],((t=function(){var e=null==t.$$s?this:t.$$s;return null==e.next&&(e.next=a),l(e.next["$any?"]())?e.$try():a}).$$s=n,t.$$arity=0,t)),n},_.$$arity=1),p(v,"and","wait"),e.def(v,"$>>",h=function(){var t,n,r=h.$$p,$=this;return r&&(h.$$p=null),t=e.slice.call(arguments,0,arguments.length),c(d($,f($,">>",h,!1,!0),">>",e.to_a(t),r),"tap",[],((n=function(){return(null==n.$$s?this:n.$$s).$try()}).$$s=$,n.$$arity=0,n))},h.$$arity=-1),e.def(v,"$try",y=function(){var e=this,t=a;return l(c(e.wait,"all?",[],"realized?".$to_proc()))?l(t=c(e.wait,"find",[],"rejected?".$to_proc()))?e.$reject(t.$error()):e.$resolve(c(e.wait,"map",[],"value".$to_proc())):a},y.$$arity=0),a&&"try"}(X[0],K,X)}($[0],0,$)},Opal.modules["hyper-operation/railway"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.module),$=e.klass;return function(e,t){var a=[r(e,"Hyperstack")].concat(t);return function(e,$super,t){[$(e,null,"Operation")].concat(t);return n}(a[0],0,a)}(t[0],t)},Opal.modules["hyper-operation/api"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.klass,s=e.truthy,u=e.send,l=e.hash2,c=e.hash;return e.add_stubs(["$is_a?","$raise","$new","$tap","$split","$to_s","$pop","$inject","$[]","$to_sym","$[]=","$-","$!","$nil?","$abort!","$succeed!","$_Railway","$class","$_run","$instance_eval","$process_params","$process_validations","$run","$rejected?","$dispatch","$result","$then","$to_proc","$fail","$add_param","$get_name_and_opts","$merge","$each","$add_validation","$add_error","$add_step","$add_failed","$add_async","$add_receiver","$singleton_class","$define_singleton_method","$set_var","$superclass","$==","$instance_variable_get","$instance_variable_set","$dup"]),function(n,p){var d=[i(n,"Hyperstack")].concat(p);return function(n,$super,i){var p,d,f,_,h,y,v=o(n,null,"Operation"),m=[v].concat(i);return v.$$prototype.errors=v.$$prototype.params=r,e.def(v,"$add_error",p=function(n,i,o){var c,p=this,d=r;return null==o&&(o=r),s(i["$is_a?"](a(m,"Symbol")))||p.$raise(a(m,"ArgumentError").$new("Invalid kind")),p.errors=s(d=p.errors)?d:$(a(m,"Mutations"),"ErrorHash").$new(),u(p.errors,"tap",[],((c=function(p){var d,f=null==c.$$s?this:c.$$s,_=r,h=r,y=r,v=r;return null==p&&(p=r),h=(_=n.$to_s().$split(".")).$pop(),y=u(_,"inject",[p],((d=function(n,i){null==d.$$s||d.$$s;var o=r,l=r;return null==n&&(n=r),null==i&&(i=r),s(o=n["$[]"](i.$to_sym()))?o:(l=[i.$to_sym(),$(a(m,"Mutations"),"ErrorHash").$new()],u(n,"[]=",e.to_a(l)),l[t(l.length,1)])}).$$s=f,d.$$arity=2,d)),v=[h,$(a(m,"Mutations"),"ErrorAtom").$new(n,i,l(["message"],{message:o}))],u(y,"[]=",e.to_a(v)),v[t(v.length,1)]}).$$s=p,c.$$arity=1,c))},p.$$arity=-3),e.def(v,"$has_errors?",d=function(){return this.errors["$nil?"]()["$!"]()},d.$$arity=0),e.def(v,"$params",f=function(){return this.params},f.$$arity=0),e.def(v,"$abort!",_=function(e){return null==e&&(e=r),a(m,"Railway")["$abort!"](e)},_.$$arity=-1),e.def(v,"$succeed!",h=function(e){return null==e&&(e=r),a(m,"Railway")["$succeed!"](e)},h.$$arity=-1),e.def(v,"$initialize",y=function(){var e=this;return e._railway=e.$class().$_Railway().$new(e)},y.$$arity=0),function(t,n){var i,o,p,d,f,_,h,y,v,m,g,b,w,k,O,E=[t].concat(n);e.def(t,"$run",i=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),u(n,"_run",e.to_a(t))},i.$$arity=-1),e.def(t,"$_run",o=function(){var t,n,$,a=this;return t=e.slice.call(arguments,0,arguments.length),n=t,u(a.$new(),"instance_eval",[],(($=function(){var e=null==$.$$s?this:$.$$s,t=r;return null==e._railway&&(e._railway=r),e._railway.$process_params(n),e._railway.$process_validations(),e._railway.$run(),s((t=e._railway.$dispatch())["$rejected?"]())?t:e._railway.$result()}).$$s=a,$.$$arity=0,$))},o.$$arity=-1),e.def(t,"$then",p=function(){var t,n=p.$$p,$=n||r,a=this;return n&&(p.$$p=null),n&&(p.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(u(a,"run",e.to_a(t)),"then",[],$.$to_proc())},p.$$arity=-1),e.def(t,"$fail",d=function(){var t,n=d.$$p,$=n||r,a=this;return n&&(d.$$p=null),n&&(d.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(u(a,"run",e.to_a(t)),"fail",[],$.$to_proc())},d.$$arity=-1),e.def(t,"$param",f=function(){var t,n=f.$$p,$=n||r,a=this;return n&&(f.$$p=null),n&&(f.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(a.$_Railway(),"add_param",e.to_a(t),$.$to_proc())},f.$$arity=-1),e.def(t,"$inbound",_=function(){var t,n,$,i=_.$$p,o=i||r,s=this,c=r,p=r;return i&&(_.$$p=null),i&&(_.$$p=null),t=e.slice.call(arguments,0,arguments.length),$=u(a(E,"ParamsWrapper"),"get_name_and_opts",e.to_a(t)),c=null==(n=e.to_ary($))[0]?r:n[0],p=null==n[1]?r:n[1],u(s.$_Railway(),"add_param",[c,p.$merge(l(["inbound"],{inbound:"true"}))],o.$to_proc())},_.$$arity=-1),e.def(t,"$outbound",h=function(){var t,n,$=this;return t=e.slice.call(arguments,0,arguments.length),u(t,"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=r),t.$_Railway().$add_param(c(e,r,"type","outbound"))}).$$s=$,n.$$arity=1,n))},h.$$arity=-1),e.def(t,"$validate",y=function(){var t,n=y.$$p,$=n||r,a=this;return n&&(y.$$p=null),n&&(y.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(a.$_Railway(),"add_validation",e.to_a(t),$.$to_proc())},y.$$arity=-1),e.def(t,"$add_error",v=function(t,n,$){var a,i=v.$$p,o=i||r,s=this;return i&&(v.$$p=null),i&&(v.$$p=null),a=e.slice.call(arguments,3,arguments.length),u(s.$_Railway(),"add_error",[t,n,$].concat(e.to_a(a)),o.$to_proc())},v.$$arity=-4),e.def(t,"$step",m=function(){var t,n=m.$$p,$=n||r,a=this;return n&&(m.$$p=null),n&&(m.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(a.$_Railway(),"add_step",e.to_a(t),$.$to_proc())},m.$$arity=-1),e.def(t,"$failed",g=function(){var t,n=g.$$p,$=n||r,a=this;return n&&(g.$$p=null),n&&(g.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(a.$_Railway(),"add_failed",e.to_a(t),$.$to_proc())},g.$$arity=-1),e.def(t,"$async",b=function(){var t,n=b.$$p,$=n||r,a=this;return n&&(b.$$p=null),n&&(b.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(a.$_Railway(),"add_async",e.to_a(t),$.$to_proc())},b.$$arity=-1),e.def(t,"$on_dispatch",w=function(){var e=w.$$p,t=e||r,n=this;return e&&(w.$$p=null),e&&(w.$$p=null),u(n.$_Railway(),"add_receiver",[],t.$to_proc())},w.$$arity=0),e.def(t,"$_Railway",k=function(){return this.$singleton_class().$_Railway()},k.$$arity=0),e.def(t,"$inherited",O=function(t){var n,i,o,p,d,f,_,h,y,v=O.$$p,m=this;return v&&(O.$$p=null),u(t.$singleton_class(),"define_singleton_method",["param"],((n=function(){var t,$=null==n.$$s?this:n.$$s,a=n.$$p,i=a||r;return a&&(n.$$p=null),t=e.slice.call(arguments,0,arguments.length),u($.$_Railway(),"add_param",e.to_a(t),i.$to_proc())}).$$s=m,n.$$arity=-1,n)),u(t.$singleton_class(),"define_singleton_method",["inbound"],((i=function(){var t,n,$,o=null==i.$$s?this:i.$$s,s=i.$$p,c=s||r,p=r,d=r;return s&&(i.$$p=null),t=e.slice.call(arguments,0,arguments.length),$=u(a(E,"ParamsWrapper"),"get_name_and_opts",e.to_a(t)),p=null==(n=e.to_ary($))[0]?r:n[0],d=null==n[1]?r:n[1],u(o.$_Railway(),"add_param",[p,d.$merge(l(["inbound"],{inbound:"true"}))],c.$to_proc())}).$$s=m,i.$$arity=-1,i)),u(t.$singleton_class(),"define_singleton_method",["outbound"],((o=function(){var t,n,$=null==o.$$s?this:o.$$s;return t=e.slice.call(arguments,0,arguments.length),u(t,"each",[],((n=function(e){var t=null==n.$$s?this:n.$$s;return null==e&&(e=r),t.$_Railway().$add_param(c(e,r,"type","outbound"))}).$$s=$,n.$$arity=1,n))}).$$s=m,o.$$arity=-1,o)),u(t.$singleton_class(),"define_singleton_method",["validate"],((p=function(){var t,n=null==p.$$s?this:p.$$s,$=p.$$p,a=$||r;return $&&(p.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(n.$_Railway(),"add_validation",e.to_a(t),a.$to_proc())}).$$s=m,p.$$arity=-1,p)),u(t.$singleton_class(),"define_singleton_method",["add_error"],((d=function(t,n,$){var a,i=null==d.$$s?this:d.$$s,o=d.$$p,s=o||r;return o&&(d.$$p=null),null==t&&(t=r),null==n&&(n=r),null==$&&($=r),a=e.slice.call(arguments,3,arguments.length),u(i.$_Railway(),"add_error",[t,n,$].concat(e.to_a(a)),s.$to_proc())}).$$s=m,d.$$arity=-4,d)),u(t.$singleton_class(),"define_singleton_method",["step"],((f=function(){var t,n=null==f.$$s?this:f.$$s,$=f.$$p,a=$||r;return $&&(f.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(n.$_Railway(),"add_step",[l(["scope"],{scope:"class"})].concat(e.to_a(t)),a.$to_proc())}).$$s=m,f.$$arity=-1,f)),u(t.$singleton_class(),"define_singleton_method",["failed"],((_=function(){var t,n=null==_.$$s?this:_.$$s,$=_.$$p,a=$||r;return $&&(_.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(n.$_Railway(),"add_failed",[l(["scope"],{scope:"class"})].concat(e.to_a(t)),a.$to_proc())}).$$s=m,_.$$arity=-1,_)),u(t.$singleton_class(),"define_singleton_method",["async"],((h=function(){var t,n=null==h.$$s?this:h.$$s,$=h.$$p,a=$||r;return $&&(h.$$p=null),t=e.slice.call(arguments,0,arguments.length),u(n.$_Railway(),"add_async",[l(["scope"],{scope:"class"})].concat(e.to_a(t)),a.$to_proc())}).$$s=m,h.$$arity=-1,h)),u(t.$singleton_class(),"define_singleton_method",["_Railway"],((y=function(){var e,t=null==y.$$s?this:y.$$s;return u($(a(E,"Hyperstack"),"Context"),"set_var",[t,"@_railway"],((e=function(){var t,n=null==e.$$s?this:e.$$s,$=r,i=r;return($=s(i=n.$superclass())?i:n.$$singleton_of.$superclass().$singleton_class())["$=="](a(E,"Operation").$singleton_class())?a(E,"Class").$new(a(E,"Railway")):u(a(E,"Class").$new($.$_Railway()),"tap",[],((t=function(e){var n,a=null==t.$$s?this:t.$$s;return null==e&&(e=r),u(["@validations","@tracks","@receivers"],"each",[],((n=function(t){null==n.$$s||n.$$s;var a=r,i=r;return null==t&&(t=r),a=$.$_Railway().$instance_variable_get(t),e.$instance_variable_set(t,s(i=a)?a.$dup():i)}).$$s=a,n.$$arity=1,n))}).$$s=n,t.$$arity=1,t))}).$$s=t,e.$$arity=0,e))}).$$s=m,y.$$arity=0,y))},O.$$arity=1)}(e.get_singleton_class(v),m),function(t,$super,n){var $,a=o(t,null,"Railway");[a].concat(n);return e.def(a,"$initialize",$=function(e){return this.operation=e},$.$$arity=1),r&&"initialize"}(m[0],0,m)}(d[0],0,d)}(n[0],n)},Opal.modules["hyper-operation/railway/dispatcher"]=function(e){e.top;var t=[],n=e.nil,r=e.$$$,$=e.$$,a=e.module,i=e.klass,o=e.send,s=e.hash2,u=e.lambda;return e.add_stubs(["$receivers","$class","$set_var","$call","$to_proc","$define_singleton_method","$delete","$<<","$then","$result","$each","$dispatch_params","$params_wrapper","$params"]),function(t,l){var c=[a(t,"Hyperstack")].concat(l);return function(t,$super,a){var l=[i(t,null,"Operation")].concat(a);return function(t,$super,a){var l,c,p=i(t,null,"Railway"),d=[p].concat(a);return e.def(p,"$receivers",l=function(){return this.$class().$receivers()},l.$$arity=0),function(t,a){var i,l,c=[t].concat(a);e.def(t,"$receivers",i=function(){var e,t=this;return o(r($(c,"Hyperstack"),"Context"),"set_var",[t,"@receivers",s(["force"],{force:!0})],((e=function(){null==e.$$s||e.$$s;return[]}).$$s=t,e.$$arity=0,e))},i.$$arity=0),e.def(t,"$add_receiver",l=function(){var t,r,$=l.$$p,a=$||n,i=this,s=n,c=n;return $&&(l.$$p=null),$&&(l.$$p=null),s=u(((t=function(){null==t.$$s||t.$$s;var r,$=t.$$p,i=$||n;return $&&(t.$$p=null),r=e.slice.call(arguments,0,arguments.length),o(a,"call",e.to_a(r),i.$to_proc())}).$$s=i,t.$$arity=-1,t)),c=i,o(s,"define_singleton_method",["unmount"],((r=function(){null==r.$$s||r.$$s;return c.$receivers().$delete(s)}).$$s=i,r.$$arity=0,r)),i.$receivers()["$<<"](s),s},l.$$arity=0)}(e.get_singleton_class(p),d),e.def(p,"$dispatch",c=function(){var e,t=this;return o(t.$result(),"then",[],((e=function(){var t,r=null==e.$$s?this:e.$$s;return o(r.$receivers(),"each",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==r.operation&&(r.operation=n),null==e&&(e=n),e.$call(r.$class().$params_wrapper().$dispatch_params(r.operation.$params()),r.operation)}).$$s=r,t.$$arity=1,t))}).$$s=t,e.$$arity=0,e))},c.$$arity=0),n&&"dispatch"}(l[0],0,l)}(c[0],0,c)}(t[0],t)},Opal.modules["hyper-operation/railway/params_wrapper"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var r=[],$=e.nil,a=e.$$$,i=e.$$,o=e.module,s=e.klass,u=e.truthy,l=e.send,c=e.hash2;return e.add_stubs(["$dup","$each","$inbound_params","$class","$delete","$with_indifferent_access","$to_s","$to_h","$inject","$respond_to?","$raise","$new","$merge!","$combine_arg_array","$filter","$hash_filter","$instance_eval","$translate_args","$to_proc","$<<","$key?","$optional","$send","$required","$define_method","$[]","$method_missing","$[]=","$-","$lock","$get_name_and_opts","$is_a?","$>","$count","$first","$==","$proc","$duck","$underscore","$last","$process_params","$params_wrapper","$add_param","$set_var","$superclass","$tap","$instance_variable_set"]),function(r,p){var d=[o(r,"Hyperstack")].concat(p);return function(r,$super,o){var p=[s(r,null,"Operation")].concat(o);return function(r,$super,o){var p,d,f,_,h=s(r,null,"ParamsWrapper"),y=[h].concat(o);h.$$prototype.inputs=h.$$prototype.locked=$,e.def(h,"$initialize",p=function(e){return this.inputs=e},p.$$arity=1),e.def(h,"$lock",d=function(){var e=this;return e.locked=!0,e},d.$$arity=0),e.def(h,"$to_h",f=function(){var e,t=this,n=$;return n=t.inputs,u(t.locked)&&(n=n.$dup(),l(t.$class().$inbound_params(),"each",[],((e=function(t){null==e.$$s||e.$$s;return null==t&&(t=$),n.$delete(""+t)}).$$s=t,e.$$arity=1,e))),n.$with_indifferent_access()},f.$$arity=0),e.def(h,"$to_s",_=function(){return this.$to_h().$to_s()},_.$$arity=0),function(r,o){var s,p,d,f,_,h,y,v,m=[r].concat(o);e.def(r,"$combine_arg_array",s=function(e){var t,n=this;return l(e,"inject",[c([],{}).$with_indifferent_access()],((t=function(e,n){var r=null==t.$$s?this:t.$$s;return null==e&&(e=$),null==n&&(n=$),u(n["$respond_to?"]("to_h"))||r.$raise(i(m,"ArgumentError").$new("All arguments must be hashes")),e["$merge!"](n.$to_h())}).$$s=n,t.$$arity=2,t))},s.$$arity=1),e.def(r,"$process_params",p=function(t,n){var r,a,i,o=this,s=$,u=$,c=$,p=$;return s=o.$combine_arg_array(n),a=o.$hash_filter().$filter(s),u=null==(r=e.to_ary(a))[0]?$:r[0],c=null==r[1]?$:r[1],p=o.$new(u),l(t,"instance_eval",[],((i=function(){var e,t=null==i.$$s?this:i.$$s;return e=[s,p,c],t.raw_inputs=e[0],t.params=e[1],t.errors=e[2],e}).$$s=o,i.$$arity=0,i))},p.$$arity=2),e.def(r,"$add_param",d=function(){var n,r,a,i,o,s,c,p=d.$$p,f=p||$,_=this,h=$,y=$,v=$;return p&&(d.$$p=null),p&&(d.$$p=null),n=e.slice.call(arguments,0,arguments.length),a=l(_,"translate_args",e.to_a(n),f.$to_proc()),r=e.to_ary(a),h=null==r[0]?$:r[0],y=null==r[1]?$:r[1],v=null==r[2]?$:r[2],f=null==r[3]?$:r[3],u(v.$delete("inbound"))&&_.$inbound_params()["$<<"](""+y),u(v["$key?"]("default"))?l(_.$hash_filter(),"optional",[],((i=function(){var e=null==i.$$s?this:i.$$s;return l(e,"send",[h,y,v],f.$to_proc())}).$$s=_,i.$$arity=0,i)):l(_.$hash_filter(),"required",[],((o=function(){var e=null==o.$$s?this:o.$$s;return l(e,"send",[h,y,v],f.$to_proc())}).$$s=_,o.$$arity=0,o)),l(_,"define_method",[y],((s=function(){var e=null==s.$$s?this:s.$$s;return null==e.inputs&&(e.inputs=$),e.inputs["$[]"](y)}).$$s=_,s.$$arity=0,s)),l(_,"define_method",[y+"="],((c=function(n){var r=null==c.$$s?this:c.$$s,a=$;return null==r.locked&&(r.locked=$),null==r.inputs&&(r.inputs=$),null==n&&(n=$),u(r.locked)&&r.$method_missing(y+"=",n),a=[y,n],l(r.inputs,"[]=",e.to_a(a)),a[t(a.length,1)]}).$$s=_,c.$$arity=1,c))},d.$$arity=-1),e.def(r,"$dispatch_params",f=function(e,t){var n,r=this;return null==t&&(t=c([],{})),e=e.$dup(),l(t,"each",[],((n=function(t){var r,a=null==n.$$s?this:n.$$s;return null==t&&(t=$),l(t,"each",[],((r=function(t,n){null==r.$$s||r.$$s;return null==t&&(t=$),null==n&&(n=$),e.$send(t+"=",n)}).$$s=a,r.$$arity=2,r))}).$$s=r,n.$$arity=1,n)),e.$lock()},f.$$arity=-2),e.def(r,"$hash_filter",_=function(){var e=this,t=$;return null==e.hash_filter&&(e.hash_filter=$),e.hash_filter=u(t=e.hash_filter)?t:a(i(m,"Mutations"),"HashFilter").$new()},_.$$arity=0),e.def(r,"$inbound_params",h=function(){var e=this,t=$;return null==e.inbound_params&&(e.inbound_params=$),e.inbound_params=u(t=e.inbound_params)?t:i(m,"Set").$new()},h.$$arity=0),e.def(r,"$translate_args",y=function(){var r,a,o,s,c,p=y.$$p,d=p||$,f=this,_=$,h=$,v=$,g=$,b=$,w=$,k=$;return p&&(y.$$p=null),p&&(y.$$p=null),r=e.slice.call(arguments,0,arguments.length),o=l(f,"get_name_and_opts",e.to_a(r)),_=null==(a=e.to_ary(o))[0]?$:a[0],h=null==a[1]?$:a[1],u(h["$key?"]("type"))?(v=h.$delete("type"),u(v["$is_a?"](i(m,"Array")))?(u(n(v.$count(),0))&&(g=["class",v.$first()],l(h,"[]=",e.to_a(g)),g[t(g.length,1)]),v=i(m,"Array")):u(u(b=v["$is_a?"](i(m,"Hash")))?b:v["$=="](i(m,"Hash")))&&(v=i(m,"Hash"),d=u(w=d)?w:l(f,"proc",[],((s=function(){return(null==s.$$s?this:s.$$s).$duck("*")}).$$s=f,s.$$arity=0,s))),v=v.$to_s().$underscore()):v="duck",[v,_,h,u(k=d)?k:l(f,"proc",[],((c=function(){return null==c.$$s||c.$$s,$}).$$s=f,c.$$arity=0,c))]},y.$$arity=-1),e.def(r,"$get_name_and_opts",v=function(){var n,r,a=$,o=$,s=$,p=$;return n=e.slice.call(arguments,0,arguments.length),u((r=n)["$[]"](0)["$is_a?"](i(m,"Hash")))?(o=(a=r["$[]"](0)).$first().$first(),s=["default",a.$first().$last()],l(a,"[]=",e.to_a(s)),s[t(s.length,1)],a.$delete(o)):(o=r["$[]"](0),a=u(p=r["$[]"](1))?p:c([],{})),[o,a]},v.$$arity=-1)}(e.get_singleton_class(h),y)}(p[0],0,p),function(t,$super,n){var r,o,c,p=s(t,null,"Railway"),d=[p].concat(n);return p.$$prototype.operation=$,e.def(p,"$process_params",r=function(e){var t=this;return t.$class().$params_wrapper().$process_params(t.operation,e)},r.$$arity=1),e.defs(p,"$add_param",o=function(){var t,n=o.$$p,r=n||$,a=this;return n&&(o.$$p=null),n&&(o.$$p=null),t=e.slice.call(arguments,0,arguments.length),l(a.$params_wrapper(),"add_param",e.to_a(t),r.$to_proc())},o.$$arity=-1),e.defs(p,"$params_wrapper",c=function(){var e,t=this;return l(a(i(d,"Hyperstack"),"Context"),"set_var",[t,"@params_wrapper"],((e=function(){var t,n=null==e.$$s?this:e.$$s;return i(d,"Railway")["$=="](n.$superclass())?i(d,"Class").$new(i(d,"ParamsWrapper")):l(i(d,"Class").$new(n.$superclass().$params_wrapper()),"tap",[],((t=function(e){var n=null==t.$$s?this:t.$$s,r=$,a=$,i=$,o=$;return null==e&&(e=$),r=n.$superclass().$params_wrapper().$hash_filter(),e.$instance_variable_set("@hash_filter",u(a=r)?r.$dup():a),i=n.$superclass().$params_wrapper().$inbound_params(),e.$instance_variable_set("@inbound_params",u(o=i)?i.$dup():o)}).$$s=n,t.$$arity=1,t))}).$$s=t,e.$$arity=0,e))},c.$$arity=0),$&&"params_wrapper"}(p[0],0,p)}(d[0],0,d)}(r[0],r)},Opal.modules["hyper-operation/railway/run"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e "+t.$inspect().$truncate(120,c(["separator"],{separator:"..."})))}).$$s=a,r.$$arity=2,r)),u(e["$respond_to?"]("details"))&&o["$<<"]("\n"+e.$details()),e.$__hyperstack_on_error(t,n,o.$join("\n"))),c(["json","status"],{json:c(["error_class","error"],{error_class:e.$class().$to_s(),error:e}),status:a.$status(e)})},y.$$arity=3),e.def(r,"$remote",v=function(t){var r,o=this,s=$,u=$,p=$,d=$,f=$,_=$;r=e.slice.call(arguments,1,arguments.length);try{return s=i(q,"Promise").$new(),u=o.$URI(t+"execute_remote_api"),p=a(i(q,"Net"),"HTTP").$new(u.$host(),u.$port()),d=a(a(i(q,"Net"),"HTTP"),"Post").$new(u.$path(),c(["Content-Type"],{"Content-Type":"application/json"})),u.$scheme()["$=="]("https")&&(f=[!0],l(p,"use_ssl=",e.to_a(f)),f[n(f.length,1)]),f=[c(["operation","params"],{operation:o.$name(),params:a(a(i(q,"Hyperstack"),"Operation"),"ParamsWrapper").$combine_arg_array(r)}).$to_json()],l(d,"body=",e.to_a(f)),f[n(f.length,1)],s.$resolve(p.$request(d))}catch(h){if(!e.rescue(h,[i(q,"Exception")]))throw h;_=h;try{return s.$reject(_)}finally{e.pop_exception()}}},v.$$arity=-2),e.def(r,"$headers",m=function(){return c([],{})},m.$$arity=0),e.def(r,"$serialize_params",g=function(e){return e},g.$$arity=1),e.def(r,"$deserialize_params",b=function(e){return e},b.$$arity=1),e.def(r,"$serialize_response",w=function(e){return e},w.$$arity=1),e.def(r,"$deserialize_response",k=function(e){return e},k.$$arity=1),e.def(r,"$serialize_dispatch",O=function(e){return e},O.$$arity=1),e.def(r,"$deserialize_dispatch",E=function(e){return e},E.$$arity=1),e.def(r,"$dispatch_to",x=function(){var t=x.$$p;return t&&(x.$$p=null),t&&(x.$$p=null),e.slice.call(arguments,0,arguments.length),$},x.$$arity=-1),e.def(r,"$dispatch_from_server",S=function(e){var t,n=this,r=$;return r=n.$_Railway().$params_wrapper().$new(n.$deserialize_dispatch(e)).$lock(),l(n.$_Railway().$receivers(),"each",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=$),e.$call(r)}).$$s=n,t.$$arity=1,t))},S.$$arity=1)})(e.get_singleton_class(p),d)}(f[0],i(f,"Operation"),f),function(t,$super,n){var r,a=s(t,$super,"ControllerOp");[a].concat(n);return a.$inbound("controller"),p(a,"pre_controller_op_method_missing","method_missing"),e.def(a,"$method_missing",r=function(t){var n,a=r.$$p,i=a||$,o=this;return a&&(r.$$p=null),a&&(r.$$p=null),n=e.slice.call(arguments,1,arguments.length),u(o.$params().$controller()["$respond_to?"](t))?l(o.$params().$controller(),"send",[t].concat(e.to_a(n)),i.$to_proc()):l(o,"pre_controller_op_method_missing",[t].concat(e.to_a(n)),i.$to_proc())},r.$$arity=-2),$&&"method_missing"}(f[0],i(f,"ServerOp"),f)}(r[0],r)},Opal.modules["hyper-operation/boot"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$),$=e.module,a=e.klass,i=e.truthy,o=e.send;return e.add_stubs(["$inherited","$add_receiver","$_Railway","$to_proc","$initialize_client_drivers_on_boot","$_run","$respond_to?","$each","$receivers","$on_dispatch"]),function(t,s){var u=[$(t,"Hyperstack")].concat(s);return function(t,$super,$){var s,u=a(t,null,"Application"),l=[u].concat($);return i(r(l,"Boot","skip_raise")?"constant":n)&&r(l,"Operation").$inherited(r(l,"Boot")),function(t,$super,$){var i,s,u=a(t,$super,"Boot"),l=[u].concat($);e.defs(u,"$on_dispatch",i=function(){var e=i.$$p,t=e||n,r=this;return e&&(i.$$p=null),e&&(i.$$p=null),o(r.$_Railway(),"add_receiver",[],t.$to_proc())},i.$$arity=0),e.defs(u,"$run",s=function(){var t,n=this;return t=e.slice.call(arguments,0,arguments.length),r(l,"ClientDrivers").$initialize_client_drivers_on_boot(),o(n,"_run",e.to_a(t))},s.$$arity=-1)}(l[0],r(l,"Operation"),l),i(r(l,"Boot")["$respond_to?"]("receivers"))?o(r(l,"Boot").$receivers(),"each",[],((s=function(e){null==s.$$s||s.$$s;return null==e&&(e=n),o(r(l,"Boot"),"on_dispatch",[],e.$to_proc())}).$$s=u,s.$$arity=1,s)):n}(u[0],0,u)}(t[0],t)},Opal.modules["hyper-operation/async_sleep"]=function(e){e.top;var t=[],n=e.nil,r=(e.$$$,e.$$,e.module),$=e.send;return e.add_stubs(["$every","$to_proc","$after"]),function(t,a){var i=[r(t,"Hyperstack")].concat(a);return function(t,a){var i,o,s=r(t,"AsyncSleep");[s].concat(a);return e.defs(s,"$every",i=function(){var t,r=i.$$p,a=r||n,o=this;return r&&(i.$$p=null),r&&(i.$$p=null),t=e.slice.call(arguments,0,arguments.length),$(o,"every",e.to_a(t),a.$to_proc())},i.$$arity=-1),e.defs(s,"$after",o=function(){var t,r=o.$$p,a=r||n,i=this;return r&&(o.$$p=null),r&&(o.$$p=null),t=e.slice.call(arguments,0,arguments.length),$(i,"after",e.to_a(t),a.$to_proc())},o.$$arity=-1),n&&"after"}(i[0],i)}(t[0],t)},Opal.modules["hyper-operation"]=function(e){var t=e.top,n=[],r=(e.nil,e.$$$),$=e.$$,a=e.klass;return e.add_stubs(["$require","$import","$register_additional_filter"]),t.$require("hyper-operation/version"),t.$require("hyperstack-config"),$(n,"Hyperstack").$import("hyper-operation"),t.$require("active_support/core_ext/string"),t.$require("mutations"),r($(n,"Mutations"),"HashFilter").$register_additional_filter(r($(n,"Mutations"),"DuckFilter"),"duck"),t.$require("hyper-operation/filters/outbound_filter"),t.$require("hyper-component"),t.$require("hyper-operation/http"),t.$require("hyper-operation/transport/client_drivers"),function(e,$super,t){[a(e,$super,"HashWithIndifferentAccess")].concat(t)}(n[0],$(n,"Hash"),n),function(t,$super,n){var r,$=a(t,null,"String");[$].concat(n);e.def($,"$titleize",r=function(){return this},r.$$arity=0)}(n[0],0,n),t.$require("hyper-operation/exception"),t.$require("hyper-operation/promise"),t.$require("hyper-operation/railway"),t.$require("hyper-operation/api"),t.$require("hyper-operation/railway/dispatcher"),t.$require("hyper-operation/railway/params_wrapper"),t.$require("hyper-operation/railway/run"),t.$require("hyper-operation/railway/validations"),t.$require("hyper-operation/server_op"),t.$require("hyper-operation/boot"),t.$require("hyper-operation/async_sleep")},Opal.queue(function(e){var t=e.top,n=[],r=e.nil,$=e.$$$,a=e.$$,i=e.module,o=e.truthy;return e.add_stubs(["$require","$new"]),t.$require("active_support"),t.$require("time"),t.$require("date"),t.$require("opal-jquery"),t.$require("browser"),t.$require("browser/interval"),t.$require("browser/delay"),t.$require("hyperstack-config"),function(t,n){var s,u=i(t,"Hyperstack"),l=[u].concat(n);e.defs(u,"$env",s=function(){var e=this,t=r;return null==e.environment&&(e.environment=r),e.environment=o(t=e.environment)?t:$(a(l,"ActiveSupport"),"StringInquirer").$new("express")},s.$$arity=0)}(n[0],n),t.$require("hyperstack/autoloader"),t.$require("hyperstack/autoloader_starter"),t.$require("hyper-component"),t.$require("hyperstack/component/auto-import"),t.$require("hyper-state"),t.$require("hyper-operation")}); \ No newline at end of file diff --git a/dist/opal.js b/dist/opal.js index eef0614..6c7fd35 100644 --- a/dist/opal.js +++ b/dist/opal.js @@ -1,4 +1,6 @@ -(function(undefined) { +(function(global_object) { + "use strict"; + // @note // A few conventions for the documentation of this file: // 1. Always use "//" (in contrast with "/**/") @@ -13,11 +15,12 @@ // The way the code is digested before going through Yardoc is a secret kept // in the docs repo (https://github.com/opal/docs/tree/master). - var global_object = this, console; + var console; // Detect the global object - if (typeof(global) !== 'undefined') { global_object = global; } - if (typeof(window) !== 'undefined') { global_object = window; } + if (typeof(globalThis) !== 'undefined') { global_object = globalThis; } + else if (typeof(global) !== 'undefined') { global_object = global; } + else if (typeof(window) !== 'undefined') { global_object = window; } // Setup a dummy console object if missing if (typeof(global_object.console) === 'object') { @@ -31,9 +34,9 @@ if (!('log' in console)) { console.log = function () {}; } if (!('warn' in console)) { console.warn = console.log; } - if (typeof(this.Opal) !== 'undefined') { + if (typeof(global_object.Opal) !== 'undefined') { console.warn('Opal already loaded. Loading twice can cause troubles, please fix your setup.'); - return this.Opal; + return global_object.Opal; } var nil; @@ -51,41 +54,27 @@ // The actual Class class var Class; - // Constructor for instances of BasicObject - function BasicObject_alloc(){} - - // Constructor for instances of Object - function Object_alloc(){} - - // Constructor for instances of Class - function Class_alloc(){} - - // Constructor for instances of Module - function Module_alloc(){} - - // Constructor for instances of NilClass (nil) - function NilClass_alloc(){} - // The Opal object that is exposed globally - var Opal = this.Opal = {}; - - // All bridged classes - keep track to donate methods from Object - var BridgedClasses = {}; + var Opal = global_object.Opal = {}; // This is a useful reference to global object inside ruby files Opal.global = global_object; global_object.Opal = Opal; - // Configure runtime behavior with regards to require and unsupported fearures + // Configure runtime behavior with regards to require and unsupported features Opal.config = { missing_require_severity: 'error', // error, warning, ignore unsupported_features_severity: 'warning', // error, warning, ignore + experimental_features_severity: 'warning',// warning, ignore enable_stack_trace: true // true, false - } + }; // Minify common function calls - var $hasOwn = Object.hasOwnProperty; - var $slice = Opal.slice = Array.prototype.slice; + var $has_own = Object.hasOwnProperty; + var $bind = Function.prototype.bind; + var $set_proto = Object.setPrototypeOf; + var $slice = Array.prototype.slice; + var $splice = Array.prototype.splice; // Nil object id is always 4 var nil_id = 4; @@ -103,7 +92,11 @@ // Retrieve or assign the id of an object Opal.id = function(obj) { if (obj.$$is_number) return (obj * 2)+1; - return obj.$$id || (obj.$$id = Opal.uid()); + if (obj.$$id != null) { + return obj.$$id; + } + $defineProperty(obj, '$$id', Opal.uid()); + return obj.$$id; }; // Globals table @@ -119,8 +112,15 @@ // @private // Pops an exception from the stack and updates `$!`. Opal.pop_exception = function() { - Opal.gvars["!"] = Opal.exceptions.pop() || nil; - } + var exception = Opal.exceptions.pop(); + if (exception) { + Opal.gvars["!"] = exception; + Opal.gvars["@"] = exception.$backtrace(); + } + else { + Opal.gvars["!"] = Opal.gvars["@"] = nil; + } + }; // Inspect any kind of object, including non Ruby ones Opal.inspect = function(obj) { @@ -136,10 +136,34 @@ else { return obj.$inspect(); } + }; + + function $defineProperty(object, name, initialValue) { + if (typeof(object) === "string") { + // Special case for: + // s = "string" + // def s.m; end + // String class is the only class that: + // + compiles to JS primitive + // + allows method definition directly on instances + // numbers, true, false and null do not support it. + object[name] = initialValue; + } else { + Object.defineProperty(object, name, { + value: initialValue, + enumerable: false, + configurable: true, + writable: true + }); + } } + Opal.defineProperty = $defineProperty; - // Truth + Opal.slice = $slice; + + + // Helpers // ----- Opal.truthy = function(val) { @@ -150,6 +174,84 @@ return (val === nil || val == null || (val.$$is_boolean && val == false)) }; + Opal.type_error = function(object, type, method, coerced) { + object = object.$$class; + + if (coerced && method) { + coerced = coerced.$$class; + return Opal.TypeError.$new( + "can't convert " + object + " into " + type + + " (" + object + "#" + method + " gives " + coerced + ")" + ) + } else { + return Opal.TypeError.$new( + "no implicit conversion of " + object + " into " + type + ) + } + }; + + Opal.coerce_to = function(object, type, method, args) { + if (type['$==='](object)) return object; + + if (!object['$respond_to?'](method)) { + throw Opal.type_error(object, type); + } + + if (args == null) args = []; + return Opal.send(object, method, args); + } + + Opal.respond_to = function(obj, jsid, include_all) { + if (obj == null || !obj.$$class) return false; + include_all = !!include_all; + var body = obj[jsid]; + + if (obj['$respond_to?'].$$pristine) { + if (obj['$respond_to_missing?'].$$pristine) { + return typeof(body) === "function" && !body.$$stub; + } else { + return Opal.send(obj, obj['$respond_to_missing?'], [jsid.substr(1), include_all]); + } + } else { + return Opal.send(obj, obj['$respond_to?'], [jsid.substr(1), include_all]); + } + } + + // TracePoint support + // ------------------ + // + // Support for `TracePoint.trace(:class) do ... end` + Opal.trace_class = false; + Opal.tracers_for_class = []; + + function invoke_tracers_for_class(klass_or_module) { + var i, ii, tracer; + + for(i = 0, ii = Opal.tracers_for_class.length; i < ii; i++) { + tracer = Opal.tracers_for_class[i]; + tracer.trace_object = klass_or_module; + tracer.block.$call(tracer); + } + } + + function handle_autoload(cref, name) { + if (!cref.$$autoload[name].loaded) { + cref.$$autoload[name].loaded = true; + try { + Opal.Kernel.$require(cref.$$autoload[name].path); + } catch (e) { + cref.$$autoload[name].exception = e; + throw e; + } + cref.$$autoload[name].required = true; + if (cref.$$const[name] != null) { + cref.$$autoload[name].success = true; + return cref.$$const[name]; + } + } else if (cref.$$autoload[name].loaded && !cref.$$autoload[name].required) { + if (cref.$$autoload[name].exception) { throw cref.$$autoload[name].exception; } + } + } // Constants // --------- @@ -165,12 +267,17 @@ // Get the constant in the scope of the current cref function const_get_name(cref, name) { - if (cref) return cref.$$const[name]; + if (cref) { + if (cref.$$const[name] != null) { return cref.$$const[name]; } + if (cref.$$autoload && cref.$$autoload[name]) { + return handle_autoload(cref, name); + } + } } // Walk up the nesting array looking for the constant function const_lookup_nesting(nesting, name) { - var i, ii, result, constant; + var i, ii, constant; if (nesting.length === 0) return; @@ -178,21 +285,27 @@ // and in order. The ancestors of those elements are ignored. for (i = 0, ii = nesting.length; i < ii; i++) { constant = nesting[i].$$const[name]; - if (constant != null) return constant; + if (constant != null) { + return constant; + } else if (nesting[i].$$autoload && nesting[i].$$autoload[name]) { + return handle_autoload(nesting[i], name); + } } } // Walk up the ancestors chain looking for the constant function const_lookup_ancestors(cref, name) { - var i, ii, result, ancestors; + var i, ii, ancestors; if (cref == null) return; ancestors = Opal.ancestors(cref); for (i = 0, ii = ancestors.length; i < ii; i++) { - if (ancestors[i].$$const && $hasOwn.call(ancestors[i].$$const, name)) { + if (ancestors[i].$$const && $has_own.call(ancestors[i].$$const, name)) { return ancestors[i].$$const[name]; + } else if (ancestors[i].$$autoload && ancestors[i].$$autoload[name]) { + return handle_autoload(ancestors[i], name); } } } @@ -220,13 +333,13 @@ if (cref === '::') cref = _Object; - if (!cref.$$is_a_module) { + if (!cref.$$is_module && !cref.$$is_class) { throw new Opal.TypeError(cref.toString() + " is not a class/module"); } result = const_get_name(cref, name); if (result != null) return result; result = const_missing(cref, name, skip_missing); if (result != null) return result; - } + }; // Look for the constant relative to a cref or call `#const_missing` (when the // constant is prefixed by `::`). @@ -237,12 +350,13 @@ if (cref === '::') cref = _Object; - if (!cref.$$is_a_module) { + if (!cref.$$is_module && !cref.$$is_class) { throw new Opal.TypeError(cref.toString() + " is not a class/module"); } if ((cache = cref.$$const_cache) == null) { - cache = cref.$$const_cache = Object.create(null); + $defineProperty(cref, '$$const_cache', Object.create(null)); + cache = cref.$$const_cache; } cached = cache[name]; @@ -266,7 +380,8 @@ var cref = nesting[0], result, current_version = Opal.const_cache_version, cache, cached; if ((cache = nesting.$$const_cache) == null) { - cache = nesting.$$const_cache = Object.create(null); + $defineProperty(nesting, '$$const_cache', Object.create(null)); + cache = nesting.$$const_cache; } cached = cache[name]; @@ -297,11 +412,19 @@ cref.$$const = (cref.$$const || Object.create(null)); cref.$$const[name] = value; + // Add a short helper to navigate constants manually. + // @example + // Opal.$$.Regexp.$$.IGNORECASE + cref.$$ = cref.$$const; + Opal.const_cache_version++; // Expose top level constants onto the Opal object if (cref === _Object) Opal[name] = value; + // Name new class directly onto current scope (Opal.Foo.Baz = klass) + $defineProperty(cref, name, value); + return value; }; @@ -310,7 +433,7 @@ Opal.constants = function(cref, inherit) { if (inherit == null) inherit = true; - var module, modules = [cref], module_constants, i, ii, constants = {}, constant; + var module, modules = [cref], i, ii, constants = {}, constant; if (inherit) modules = modules.concat(Opal.ancestors(cref)); if (inherit && cref.$$is_module) modules = modules.concat([Opal.Object]).concat(Opal.ancestors(Opal.Object)); @@ -318,12 +441,17 @@ for (i = 0, ii = modules.length; i < ii; i++) { module = modules[i]; - // Don not show Objects constants unless we're querying Object itself + // Do not show Objects constants unless we're querying Object itself if (cref !== _Object && module == _Object) break; for (constant in module.$$const) { constants[constant] = true; } + if (module.$$autoload) { + for (constant in module.$$autoload) { + constants[constant] = true; + } + } } return Object.keys(constants); @@ -339,7 +467,7 @@ return old; } - if (cref.$$autoload != null && cref.$$autoload[name] != null) { + if (cref.$$autoload && cref.$$autoload[name]) { delete cref.$$autoload[name]; return nil; } @@ -347,6 +475,10 @@ throw Opal.NameError.$new("constant "+cref+"::"+cref.$name()+" not defined"); }; + // Setup some shortcuts to reduce compiled size + Opal.$$ = Opal.const_get_relative; + Opal.$$$ = Opal.const_get_qualified; + // Modules & Classes // ----------------- @@ -364,38 +496,81 @@ // simply so that classes show up with nicely formatted names inside debuggers // in the web browser (or node/sprockets). // - // The `base` is the current `self` value where the class is being created + // The `scope` is the current `self` value where the class is being created // from. We use this to get the scope for where the class should be created. - // If `base` is an object (not a class/module), we simple get its class and - // use that as the base instead. + // If `scope` is an object (not a class/module), we simple get its class and + // use that as the scope instead. // - // @param base [Object] where the class is being created + // @param scope [Object] where the class is being created // @param superclass [Class,null] superclass of the new class (may be null) // @param id [String] the name of the class to be created // @param constructor [JS.Function] function to use as constructor // // @return new [Class] or existing ruby class // - Opal.klass = function(base, superclass, name, constructor) { - var klass, bridged, alloc; + Opal.allocate_class = function(name, superclass) { + var klass, constructor; + + if (superclass != null && superclass.$$bridge) { + // Inheritance from bridged classes requires + // calling original JS constructors + constructor = function() { + var args = $slice.call(arguments), + self = new ($bind.apply(superclass.$$constructor, [null].concat(args)))(); + + // and replacing a __proto__ manually + $set_proto(self, klass.$$prototype); + return self; + } + } else { + constructor = function(){}; + } - if (base == null) { - base = _Object; + if (name) { + $defineProperty(constructor, 'displayName', '::'+name); } - // If base is an object, use its class - if (!base.$$is_class && !base.$$is_module) { - base = base.$$class; + klass = constructor; + + $defineProperty(klass, '$$name', name); + $defineProperty(klass, '$$constructor', constructor); + $defineProperty(klass, '$$prototype', constructor.prototype); + $defineProperty(klass, '$$const', {}); + $defineProperty(klass, '$$is_class', true); + $defineProperty(klass, '$$is_a_module', true); + $defineProperty(klass, '$$super', superclass); + $defineProperty(klass, '$$cvars', {}); + $defineProperty(klass, '$$own_included_modules', []); + $defineProperty(klass, '$$own_prepended_modules', []); + $defineProperty(klass, '$$ancestors', []); + $defineProperty(klass, '$$ancestors_cache_version', null); + + $defineProperty(klass.$$prototype, '$$class', klass); + + // By default if there are no singleton class methods + // __proto__ is Class.prototype + // Later singleton methods generate a singleton_class + // and inject it into ancestors chain + if (Opal.Class) { + $set_proto(klass, Opal.Class.prototype); } - // If the superclass is a function then we're bridging a native JS class - if (typeof(superclass) === 'function') { - bridged = superclass; - superclass = _Object; + if (superclass != null) { + $set_proto(klass.$$prototype, superclass.$$prototype); + + if (superclass.$$meta) { + // If superclass has metaclass then we have explicitely inherit it. + Opal.build_class_singleton_class(klass); + } } + return klass; + }; + + + function find_existing_class(scope, name) { // Try to find the class in the current scope - klass = const_get_name(base, name); + var klass = const_get_name(scope, name); // If the class exists in the scope, then we must use that if (klass) { @@ -404,268 +579,167 @@ throw Opal.TypeError.$new(name + " is not a class"); } - // Make sure existing class has same superclass - if (superclass && klass.$$super !== superclass) { - throw Opal.TypeError.$new("superclass mismatch for class " + name); - } - return klass; } + } - // Class doesnt exist, create a new one with given superclass... - - // Not specifying a superclass means we can assume it to be Object - if (superclass == null) { - superclass = _Object; - } - - // If bridged the JS class will also be the alloc function - alloc = bridged || Opal.boot_class_alloc(name, constructor, superclass); - - // Create the class object (instance of Class) - klass = Opal.setup_class_object(name, alloc, superclass.$$name, superclass.constructor); - - // @property $$super the superclass, doesn't get changed by module inclusions - klass.$$super = superclass; - - // @property $$parent direct parent class - // starts with the superclass, after klass inclusion is - // the last included klass - klass.$$parent = superclass; - - Opal.const_set(base, name, klass); - - // Name new class directly onto current scope (Opal.Foo.Baz = klass) - base[name] = klass; - - if (bridged) { - Opal.bridge(klass, alloc); - } - else { - // Call .inherited() hook with new class on the superclass - if (superclass.$inherited) { - superclass.$inherited(klass); - } + function ensureSuperclassMatch(klass, superclass) { + if (klass.$$super !== superclass) { + throw Opal.TypeError.$new("superclass mismatch for class " + klass.$$name); } + } - return klass; - }; + Opal.klass = function(scope, superclass, name) { + var bridged; - // Boot a base class (makes instances). - // - // @param name [String,null] the class name - // @param constructor [JS.Function] the class' instances constructor/alloc function - // @param superclass [Class,null] the superclass object - // @return [JS.Function] the consturctor holding the prototype for the class' instances - Opal.boot_class_alloc = function(name, constructor, superclass) { - if (superclass) { - var alloc_proxy = function() {}; - alloc_proxy.prototype = superclass.$$proto || superclass.prototype; - constructor.prototype = new alloc_proxy(); + if (scope == null || scope == '::') { + // Global scope + scope = _Object; + } else if (!scope.$$is_class && !scope.$$is_module) { + // Scope is an object, use its class + scope = scope.$$class; } - if (name) { - constructor.displayName = name+'_alloc'; + // If the superclass is not an Opal-generated class then we're bridging a native JS class + if ( + superclass != null && (!superclass.hasOwnProperty || ( + superclass.hasOwnProperty && !superclass.hasOwnProperty('$$is_class') + )) + ) { + if (superclass.constructor && superclass.constructor.name == "Function") { + bridged = superclass; + superclass = _Object; + } else { + throw Opal.TypeError.$new("superclass must be a Class (" + ( + (superclass.constructor && (superclass.constructor.name || superclass.constructor.$$name)) || + typeof(superclass) + ) + " given)"); + } } - constructor.prototype.constructor = constructor; - - return constructor; - }; - - Opal.setup_module_or_class = function(module) { - // @property $$id Each class/module is assigned a unique `id` that helps - // comparation and implementation of `#object_id` - module.$$id = Opal.uid(); - - // @property $$is_a_module Will be true for Module and its subclasses - // instances (namely: Class). - module.$$is_a_module = true; - - // @property $$inc included modules - module.$$inc = []; - - // initialize the name with nil - module.$$name = nil; - - // Initialize the constants table - module.$$const = Object.create(null); - - // @property $$cvars class variables defined in the current module - module.$$cvars = Object.create(null); - } - - - - // Adds common/required properties to class object (as in `Class.new`) - // - // @param name [String,null] The name of the class - // - // @param alloc [JS.Function] The constructor of the class' instances - // - // @param superclass_name [String,null] - // The name of the super class, this is - // usefule to build the `.displayName` of the singleton class - // - // @param superclass_alloc [JS.Function] - // The constructor of the superclass from which the singleton_class is - // derived. - // - // @return [Class] - Opal.setup_class_object = function(name, alloc, superclass_name, superclass_alloc) { - // Grab the superclass prototype and use it to build an intermediary object - // in the prototype chain. - var superclass_alloc_proxy = function() {}; - superclass_alloc_proxy.prototype = superclass_alloc.prototype; - superclass_alloc_proxy.displayName = superclass_name; - - var singleton_class_alloc = function() {} - singleton_class_alloc.prototype = new superclass_alloc_proxy(); + var klass = find_existing_class(scope, name); - // The built class is the only instance of its singleton_class - var klass = new singleton_class_alloc(); - - Opal.setup_module_or_class(klass); + if (klass) { + if (superclass) { + // Make sure existing class has same superclass + ensureSuperclassMatch(klass, superclass); + } - // @property $$alloc This is the constructor of instances of the current - // class. Its prototype will be used for method lookup - klass.$$alloc = alloc; + if (Opal.trace_class) { invoke_tracers_for_class(klass); } - klass.$$name = name || nil; + return klass; + } - // Set a displayName for the singleton_class - singleton_class_alloc.displayName = "#"))+">"; + // Class doesn't exist, create a new one with given superclass... - // @property $$proto This is the prototype on which methods will be defined - klass.$$proto = alloc.prototype; + // Not specifying a superclass means we can assume it to be Object + if (superclass == null) { + superclass = _Object; + } - // @property $$proto.$$class Make available to instances a reference to the - // class they belong to. - klass.$$proto.$$class = klass; + // Create the class object (instance of Class) + klass = Opal.allocate_class(name, superclass); + Opal.const_set(scope, name, klass); - // @property constructor keeps a ref to the constructor, but apparently the - // constructor is already set on: - // - // `var klass = new constructor` is called. - // - // Maybe there are some browsers not abiding (IE6?) - klass.constructor = singleton_class_alloc; + // Call .inherited() hook with new class on the superclass + if (superclass.$inherited) { + superclass.$inherited(klass); + } - // @property $$is_class Clearly mark this as a class - klass.$$is_class = true; + if (bridged) { + Opal.bridge(bridged, klass); + } - // @property $$class Classes are instances of the class Class - klass.$$class = Class; + if (Opal.trace_class) { invoke_tracers_for_class(klass); } return klass; }; - // Define new module (or return existing module). The given `base` is basically + // Define new module (or return existing module). The given `scope` is basically // the current `self` value the `module` statement was defined in. If this is - // a ruby module or class, then it is used, otherwise if the base is a ruby - // object then that objects real ruby class is used (e.g. if the base is the - // main object, then the top level `Object` class is used as the base). + // a ruby module or class, then it is used, otherwise if the scope is a ruby + // object then that objects real ruby class is used (e.g. if the scope is the + // main object, then the top level `Object` class is used as the scope). // - // If a module of the given name is already defined in the base, then that + // If a module of the given name is already defined in the scope, then that // instance is just returned. // - // If there is a class of the given name in the base, then an error is - // generated instead (cannot have a class and module of same name in same base). + // If there is a class of the given name in the scope, then an error is + // generated instead (cannot have a class and module of same name in same scope). // - // Otherwise, a new module is created in the base with the given name, and that + // Otherwise, a new module is created in the scope with the given name, and that // new instance is returned back (to be referenced at runtime). // - // @param base [Module, Class] class or module this definition is inside + // @param scope [Module, Class] class or module this definition is inside // @param id [String] the name of the new (or existing) module // // @return [Module] - Opal.module = function(base, name) { - var module; - - if (base == null) { - base = _Object; + Opal.allocate_module = function(name) { + var constructor = function(){}; + if (name) { + $defineProperty(constructor, 'displayName', name+'.$$constructor'); } - if (!base.$$is_class && !base.$$is_module) { - base = base.$$class; - } + var module = constructor; + + if (name) + $defineProperty(constructor, 'displayName', name+'.constructor'); + + $defineProperty(module, '$$name', name); + $defineProperty(module, '$$prototype', constructor.prototype); + $defineProperty(module, '$$const', {}); + $defineProperty(module, '$$is_module', true); + $defineProperty(module, '$$is_a_module', true); + $defineProperty(module, '$$cvars', {}); + $defineProperty(module, '$$iclasses', []); + $defineProperty(module, '$$own_included_modules', []); + $defineProperty(module, '$$own_prepended_modules', []); + $defineProperty(module, '$$ancestors', [module]); + $defineProperty(module, '$$ancestors_cache_version', null); - module = const_get_name(base, name); - if (module == null && base === _Object) module = const_lookup_ancestors(_Object, name); + $set_proto(module, Opal.Module.prototype); + + return module; + }; + + function find_existing_module(scope, name) { + var module = const_get_name(scope, name); + if (module == null && scope === _Object) module = const_lookup_ancestors(_Object, name); if (module) { if (!module.$$is_module && module !== _Object) { throw Opal.TypeError.$new(name + " is not a module"); } } - else { - module = Opal.module_allocate(Module); - Opal.const_set(base, name, module); - } return module; - }; - - // The implementation for Module#initialize - // @param module [Module] - // @param block [Proc,nil] - // @return nil - Opal.module_initialize = function(module, block) { - if (block !== nil) { - var block_self = block.$$s; - block.$$s = null; - block.call(module); - block.$$s = block_self; - } - return nil; - }; - - // Internal function to create a new module instance. This simply sets up - // the prototype hierarchy and method tables. - // - Opal.module_allocate = function(superclass) { - var mtor = function() {}; - mtor.prototype = superclass.$$alloc.prototype; - - var module_constructor = function() {}; - module_constructor.prototype = new mtor(); - - var module = new module_constructor(); - var module_prototype = {}; + } - Opal.setup_module_or_class(module); + Opal.module = function(scope, name) { + var module; - // initialize dependency tracking - module.$$included_in = []; + if (scope == null || scope == '::') { + // Global scope + scope = _Object; + } else if (!scope.$$is_class && !scope.$$is_module) { + // Scope is an object, use its class + scope = scope.$$class; + } - // Set the display name of the singleton prototype holder - module_constructor.displayName = "#>" + module = find_existing_module(scope, name); - // @property $$proto This is the prototype on which methods will be defined - module.$$proto = module_prototype; + if (module) { - // @property constructor - // keeps a ref to the constructor, but apparently the - // constructor is already set on: - // - // `var module = new constructor` is called. - // - // Maybe there are some browsers not abiding (IE6?) - module.constructor = module_constructor; + if (Opal.trace_class) { invoke_tracers_for_class(module); } - // @property $$is_module Clearly mark this as a module - module.$$is_module = true; - module.$$class = Module; + return module; + } - // @property $$super - // the superclass, doesn't get changed by module inclusions - module.$$super = superclass; + // Module doesnt exist, create a new one... + module = Opal.allocate_module(name); + Opal.const_set(scope, name, module); - // @property $$parent - // direct parent class or module - // starts with the superclass, after module inclusion is - // the last included module - module.$$parent = superclass; + if (Opal.trace_class) { invoke_tracers_for_class(module); } return module; }; @@ -686,11 +760,13 @@ return object.$$meta; } - if (object.$$is_class || object.$$is_module) { + if (object.hasOwnProperty('$$is_class')) { return Opal.build_class_singleton_class(object); + } else if (object.hasOwnProperty('$$is_module')) { + return Opal.build_module_singleton_class(object); + } else { + return Opal.build_object_singleton_class(object); } - - return Opal.build_object_singleton_class(object); }; // Build the singleton class for an existing class. Class object are built @@ -702,30 +778,45 @@ // // @param klass [Class] // @return [Class] - Opal.build_class_singleton_class = function(object) { - var alloc, superclass, klass; + Opal.build_class_singleton_class = function(klass) { + var superclass, meta; - if (object.$$meta) { - return object.$$meta; + if (klass.$$meta) { + return klass.$$meta; } - // The constructor and prototype of the singleton_class instances is the - // current class constructor and prototype. - alloc = object.constructor; - // The singleton_class superclass is the singleton_class of its superclass; // but BasicObject has no superclass (its `$$super` is null), thus we // fallback on `Class`. - superclass = object === BasicObject ? Class : Opal.build_class_singleton_class(object.$$super); + superclass = klass === BasicObject ? Class : Opal.get_singleton_class(klass.$$super); + + meta = Opal.allocate_class(null, superclass, function(){}); - klass = Opal.setup_class_object(null, alloc, superclass.$$name, superclass.constructor); - klass.$$super = superclass; - klass.$$parent = superclass; + $defineProperty(meta, '$$is_singleton', true); + $defineProperty(meta, '$$singleton_of', klass); + $defineProperty(klass, '$$meta', meta); + $set_proto(klass, meta.$$prototype); + // Restoring ClassName.class + $defineProperty(klass, '$$class', Opal.Class); - klass.$$is_singleton = true; - klass.$$singleton_of = object; + return meta; + }; + + Opal.build_module_singleton_class = function(mod) { + if (mod.$$meta) { + return mod.$$meta; + } + + var meta = Opal.allocate_class(null, Opal.Module, function(){}); - return object.$$meta = klass; + $defineProperty(meta, '$$is_singleton', true); + $defineProperty(meta, '$$singleton_of', mod); + $defineProperty(mod, '$$meta', meta); + $set_proto(mod, meta.$$prototype); + // Restoring ModuleName.class + $defineProperty(mod, '$$class', Opal.Module); + + return meta; }; // Build the singleton class for a Ruby (non class) Object. @@ -734,20 +825,97 @@ // @return [Class] Opal.build_object_singleton_class = function(object) { var superclass = object.$$class, - name = "#>"; + klass = Opal.allocate_class(nil, superclass, function(){}); + + $defineProperty(klass, '$$is_singleton', true); + $defineProperty(klass, '$$singleton_of', object); + + delete klass.$$prototype.$$class; + + $defineProperty(object, '$$meta', klass); + + $set_proto(object, object.$$meta.$$prototype); + + return klass; + }; + + Opal.is_method = function(prop) { + return (prop[0] === '$' && prop[1] !== '$'); + }; + + Opal.instance_methods = function(mod) { + var exclude = [], results = [], ancestors = Opal.ancestors(mod); + + for (var i = 0, l = ancestors.length; i < l; i++) { + var ancestor = ancestors[i], + proto = ancestor.$$prototype; - var alloc = Opal.boot_class_alloc(name, function(){}, superclass) - var klass = Opal.setup_class_object(name, alloc, superclass.$$name, superclass.constructor); + if (proto.hasOwnProperty('$$dummy')) { + proto = proto.$$define_methods_on; + } + + var props = Object.getOwnPropertyNames(proto); + + for (var j = 0, ll = props.length; j < ll; j++) { + var prop = props[j]; + + if (Opal.is_method(prop)) { + var method_name = prop.slice(1), + method = proto[prop]; + + if (method.$$stub && exclude.indexOf(method_name) === -1) { + exclude.push(method_name); + } + + if (!method.$$stub && results.indexOf(method_name) === -1 && exclude.indexOf(method_name) === -1) { + results.push(method_name); + } + } + } + } + + return results; + }; + + Opal.own_instance_methods = function(mod) { + var results = [], + proto = mod.$$prototype; + + if (proto.hasOwnProperty('$$dummy')) { + proto = proto.$$define_methods_on; + } - klass.$$super = superclass; - klass.$$parent = superclass; - klass.$$class = superclass.$$class; - klass.$$proto = object; + var props = Object.getOwnPropertyNames(proto); - klass.$$is_singleton = true; - klass.$$singleton_of = object; + for (var i = 0, length = props.length; i < length; i++) { + var prop = props[i]; - return object.$$meta = klass; + if (Opal.is_method(prop)) { + var method = proto[prop]; + + if (!method.$$stub) { + var method_name = prop.slice(1); + results.push(method_name); + } + } + } + + return results; + }; + + Opal.methods = function(obj) { + return Opal.instance_methods(Opal.get_singleton_class(obj)); + }; + + Opal.own_methods = function(obj) { + return Opal.own_instance_methods(Opal.get_singleton_class(obj)); + }; + + Opal.receiver_methods = function(obj) { + var mod = Opal.get_singleton_class(obj); + var singleton_methods = Opal.own_instance_methods(mod); + var instance_methods = Opal.own_instance_methods(mod.$$super); + return singleton_methods.concat(instance_methods); }; // Returns an object containing all pairs of names/values @@ -770,7 +938,7 @@ } return result; - } + }; // Sets class variable with specified +name+ to +value+ // in provided +module+ @@ -785,7 +953,7 @@ for (i = length - 2; i >= 0; i--) { var ancestor = ancestors[i]; - if ($hasOwn.call(ancestor.$$cvars, name)) { + if ($has_own.call(ancestor.$$cvars, name)) { ancestor.$$cvars[name] = value; return value; } @@ -794,113 +962,79 @@ module.$$cvars[name] = value; return value; - } - - // Bridges a single method. - // - // @param target [JS::Function] the constructor of the bridged class - // @param from [Module] the module/class we are importing the method from - // @param name [String] the method name in JS land (i.e. starting with $) - // @param body [JS::Function] the body of the method - Opal.bridge_method = function(target_constructor, from, name, body) { - var ancestors, i, ancestor, length; - - ancestors = target_constructor.$$bridge.$ancestors(); - - // order important here, we have to check for method presence in - // ancestors from the bridged class to the last ancestor - for (i = 0, length = ancestors.length; i < length; i++) { - ancestor = ancestors[i]; - - if ($hasOwn.call(ancestor.$$proto, name) && - ancestor.$$proto[name] && - !ancestor.$$proto[name].$$donated && - !ancestor.$$proto[name].$$stub && - ancestor !== from) { - break; - } - - if (ancestor === from) { - target_constructor.prototype[name] = body - break; - } - } }; - // Bridges from *donator* to a *target*. + // Gets class variable with specified +name+ from provided +module+ // - // @param target [Module] the potentially associated with bridged classes module - // @param donator [Module] the module/class source of the methods that should be bridged - Opal.bridge_methods = function(target, donator) { - var i, - bridged = BridgedClasses[target.$__id__()], - donator_id = donator.$__id__(); + // @param module [Module] + // @param name [String] + Opal.class_variable_get = function(module, name, tolerant) { + if ($has_own.call(module.$$cvars, name)) + return module.$$cvars[name]; - if (bridged) { - BridgedClasses[donator_id] = bridged.slice(); + var ancestors = Opal.ancestors(module), + i, length = ancestors.length; + + for (i = 0; i < length; i++) { + var ancestor = ancestors[i]; - for (i = bridged.length - 1; i >= 0; i--) { - Opal_bridge_methods_to_constructor(bridged[i], donator) + if ($has_own.call(ancestor.$$cvars, name)) { + return ancestor.$$cvars[name]; } } - }; - // Actually bridge methods to the bridged (shared) prototype. - function Opal_bridge_methods_to_constructor(target_constructor, donator) { - var i, - method, - methods = donator.$instance_methods(); + if (!tolerant) + throw Opal.NameError.$new('uninitialized class variable '+name+' in '+module.$name()); - for (i = methods.length - 1; i >= 0; i--) { - method = '$' + methods[i]; - Opal.bridge_method(target_constructor, donator, method, donator.$$proto[method]); - } + return nil; } - // Associate the target as a bridged class for the current "donator" - function Opal_add_bridged_constructor(target_constructor, donator) { - var donator_id = donator.$__id__(); - - if (!BridgedClasses[donator_id]) { - BridgedClasses[donator_id] = []; - } - BridgedClasses[donator_id].push(target_constructor); + function isRoot(proto) { + return proto.hasOwnProperty('$$iclass') && proto.hasOwnProperty('$$root'); } - // Walks the dependency tree detecting the presence of the base among its - // own dependencies. - // - // @param [Integer] base_id The id of the base module (eg. the "includer") - // @param [Array] deps The array of dependencies (eg. the included module, included.$$deps) - // @param [String] prop The property that holds dependencies (eg. "$$deps") - // @param [JS::Object] seen A JS object holding the cache of already visited objects - // @return [Boolean] true if a cyclic dependency is present - Opal.has_cyclic_dep = function has_cyclic_dep(base_id, deps, prop, seen) { - var i, dep_id, dep; - - for (i = deps.length - 1; i >= 0; i--) { - dep = deps[i]; - dep_id = dep.$$id; - - if (seen[dep_id]) { - continue; - } - seen[dep_id] = true; + function own_included_modules(module) { + var result = [], mod, proto = Object.getPrototypeOf(module.$$prototype); - if (dep_id === base_id) { - return true; + while (proto) { + if (proto.hasOwnProperty('$$class')) { + // superclass + break; } - - if (has_cyclic_dep(base_id, dep[prop], prop, seen)) { - return true; + mod = protoToModule(proto); + if (mod) { + result.push(mod); } + proto = Object.getPrototypeOf(proto); } - return false; + return result; } - // The actual inclusion of a module into a class. - // + function own_prepended_modules(module) { + var result = [], mod, proto = Object.getPrototypeOf(module.$$prototype); + + if (module.$$prototype.hasOwnProperty('$$dummy')) { + while (proto) { + if (proto === module.$$prototype.$$define_methods_on) { + break; + } + + mod = protoToModule(proto); + if (mod) { + result.push(mod); + } + + proto = Object.getPrototypeOf(proto); + } + } + + return result; + } + + + // The actual inclusion of a module into a class. + // // ## Class `$$parent` and `iclass` // // To handle `super` calls, every class has a `$$parent`. This parent is @@ -918,47 +1052,248 @@ // @param includer [Module] the target class to include module into // @return [null] Opal.append_features = function(module, includer) { - var iclass, donator, prototype, methods, id, i; + var module_ancestors = Opal.ancestors(module); + var iclasses = []; - // check if this module is already included in the class - for (i = includer.$$inc.length - 1; i >= 0; i--) { - if (includer.$$inc[i] === module) { - return; - } + if (module_ancestors.indexOf(includer) !== -1) { + throw Opal.ArgumentError.$new('cyclic include detected'); + } + + for (var i = 0, length = module_ancestors.length; i < length; i++) { + var ancestor = module_ancestors[i], iclass = create_iclass(ancestor); + $defineProperty(iclass, '$$included', true); + iclasses.push(iclass); } + var includer_ancestors = Opal.ancestors(includer), + chain = chain_iclasses(iclasses), + start_chain_after, + end_chain_on; + + if (includer_ancestors.indexOf(module) === -1) { + // first time include + + // includer -> chain.first -> ...chain... -> chain.last -> includer.parent + start_chain_after = includer.$$prototype; + end_chain_on = Object.getPrototypeOf(includer.$$prototype); + } else { + // The module has been already included, + // we don't need to put it into the ancestors chain again, + // but this module may have new included modules. + // If it's true we need to copy them. + // + // The simplest way is to replace ancestors chain from + // parent + // | + // `module` iclass (has a $$root flag) + // | + // ...previos chain of module.included_modules ... + // | + // "next ancestor" (has a $$root flag or is a real class) + // + // to + // parent + // | + // `module` iclass (has a $$root flag) + // | + // ...regenerated chain of module.included_modules + // | + // "next ancestor" (has a $$root flag or is a real class) + // + // because there are no intermediate classes between `parent` and `next ancestor`. + // It doesn't break any prototypes of other objects as we don't change class references. + + var parent = includer.$$prototype, module_iclass = Object.getPrototypeOf(parent); + + while (module_iclass != null) { + if (module_iclass.$$module === module && isRoot(module_iclass)) { + break; + } - // Check that the base module is not also a dependency, classes can't be - // dependencies so we have a special case for them. - if (!includer.$$is_class && Opal.has_cyclic_dep(includer.$$id, [module], '$$inc', {})) { - throw Opal.ArgumentError.$new('cyclic include detected') + parent = module_iclass; + module_iclass = Object.getPrototypeOf(module_iclass); + } + + if (module_iclass) { + // module has been directly included + var next_ancestor = Object.getPrototypeOf(module_iclass); + + // skip non-root iclasses (that were recursively included) + while (next_ancestor.hasOwnProperty('$$iclass') && !isRoot(next_ancestor)) { + next_ancestor = Object.getPrototypeOf(next_ancestor); + } + + start_chain_after = parent; + end_chain_on = next_ancestor; + } else { + // module has not been directly included but was in ancestor chain because it was included by another module + // include it directly + start_chain_after = includer.$$prototype; + end_chain_on = Object.getPrototypeOf(includer.$$prototype); + } } + $set_proto(start_chain_after, chain.first); + $set_proto(chain.last, end_chain_on); + + // recalculate own_included_modules cache + includer.$$own_included_modules = own_included_modules(includer); + Opal.const_cache_version++; - includer.$$inc.push(module); - module.$$included_in.push(includer); - Opal.bridge_methods(includer, module); - - // iclass - iclass = { - $$name: module.$$name, - $$proto: module.$$proto, - $$parent: includer.$$parent, - $$module: module, - $$iclass: true - }; + }; + + Opal.prepend_features = function(module, prepender) { + // Here we change the ancestors chain from + // + // prepender + // | + // parent + // + // to: + // + // dummy(prepender) + // | + // iclass(module) + // | + // iclass(prepender) + // | + // parent + var module_ancestors = Opal.ancestors(module); + var iclasses = []; + + if (module_ancestors.indexOf(prepender) !== -1) { + throw Opal.ArgumentError.$new('cyclic prepend detected'); + } - includer.$$parent = iclass; + for (var i = 0, length = module_ancestors.length; i < length; i++) { + var ancestor = module_ancestors[i], iclass = create_iclass(ancestor); + $defineProperty(iclass, '$$prepended', true); + iclasses.push(iclass); + } + + var chain = chain_iclasses(iclasses), + dummy_prepender = prepender.$$prototype, + previous_parent = Object.getPrototypeOf(dummy_prepender), + prepender_iclass, + start_chain_after, + end_chain_on; + + if (dummy_prepender.hasOwnProperty('$$dummy')) { + // The module already has some prepended modules + // which means that we don't need to make it "dummy" + prepender_iclass = dummy_prepender.$$define_methods_on; + } else { + // Making the module "dummy" + prepender_iclass = create_dummy_iclass(prepender); + flush_methods_in(prepender); + $defineProperty(dummy_prepender, '$$dummy', true); + $defineProperty(dummy_prepender, '$$define_methods_on', prepender_iclass); + + // Converting + // dummy(prepender) -> previous_parent + // to + // dummy(prepender) -> iclass(prepender) -> previous_parent + $set_proto(dummy_prepender, prepender_iclass); + $set_proto(prepender_iclass, previous_parent); + } - methods = module.$instance_methods(); + var prepender_ancestors = Opal.ancestors(prepender); + + if (prepender_ancestors.indexOf(module) === -1) { + // first time prepend + + start_chain_after = dummy_prepender; + + // next $$root or prepender_iclass or non-$$iclass + end_chain_on = Object.getPrototypeOf(dummy_prepender); + while (end_chain_on != null) { + if ( + end_chain_on.hasOwnProperty('$$root') || + end_chain_on === prepender_iclass || + !end_chain_on.hasOwnProperty('$$iclass') + ) { + break; + } - for (i = methods.length - 1; i >= 0; i--) { - Opal.update_includer(module, includer, '$' + methods[i]) + end_chain_on = Object.getPrototypeOf(end_chain_on); + } + } else { + throw Opal.RuntimeError.$new("Prepending a module multiple times is not supported"); } + + $set_proto(start_chain_after, chain.first); + $set_proto(chain.last, end_chain_on); + + // recalculate own_prepended_modules cache + prepender.$$own_prepended_modules = own_prepended_modules(prepender); + + Opal.const_cache_version++; }; - // Table that holds all methods that have been defined on all objects - // It is used for defining method stubs for new coming native classes - Opal.stubs = {}; + function flush_methods_in(module) { + var proto = module.$$prototype, + props = Object.getOwnPropertyNames(proto); + + for (var i = 0; i < props.length; i++) { + var prop = props[i]; + if (Opal.is_method(prop)) { + delete proto[prop]; + } + } + } + + function create_iclass(module) { + var iclass = create_dummy_iclass(module); + + if (module.$$is_module) { + module.$$iclasses.push(iclass); + } + + return iclass; + } + + // Dummy iclass doesn't receive updates when the module gets a new method. + function create_dummy_iclass(module) { + var iclass = {}, + proto = module.$$prototype; + + if (proto.hasOwnProperty('$$dummy')) { + proto = proto.$$define_methods_on; + } + + var props = Object.getOwnPropertyNames(proto), + length = props.length, i; + + for (i = 0; i < length; i++) { + var prop = props[i]; + $defineProperty(iclass, prop, proto[prop]); + } + + $defineProperty(iclass, '$$iclass', true); + $defineProperty(iclass, '$$module', module); + + return iclass; + } + + function chain_iclasses(iclasses) { + var length = iclasses.length, first = iclasses[0]; + + $defineProperty(first, '$$root', true); + + if (length === 1) { + return { first: first, last: first }; + } + + var previous = first; + + for (var i = 1; i < length; i++) { + var current = iclasses[i]; + $set_proto(previous, current); + previous = current; + } + + + return { first: iclasses[0], last: iclasses[length - 1] }; + } // For performance, some core Ruby classes are toll-free bridged to their // native JavaScript counterparts (e.g. a Ruby Array is a JavaScript Array). @@ -966,7 +1301,7 @@ // This method is used to setup a native constructor (e.g. Array), to have // its prototype act like a normal Ruby class. Firstly, a new Ruby class is // created using the native constructor so that its prototype is set as the - // target for th new class. Note: all bridged classes are set to inherit + // target for the new class. Note: all bridged classes are set to inherit // from Object. // // Example: @@ -977,127 +1312,82 @@ // @param constructor [JS.Function] native JavaScript constructor to use // @return [Class] returns the passed Ruby class // - Opal.bridge = function(klass, constructor) { - if (constructor.$$bridge) { + Opal.bridge = function(native_klass, klass) { + if (native_klass.hasOwnProperty('$$bridge')) { throw Opal.ArgumentError.$new("already bridged"); } - Opal.stub_subscribers.push(constructor.prototype); - - // Populate constructor with previously stored stubs - for (var method_name in Opal.stubs) { - if (!(method_name in constructor.prototype)) { - constructor.prototype[method_name] = Opal.stub_for(method_name); - } - } - - constructor.prototype.$$class = klass; - constructor.$$bridge = klass; - - var ancestors = klass.$ancestors(); - - // order important here, we have to bridge from the last ancestor to the - // bridged class - for (var i = ancestors.length - 1; i >= 0; i--) { - Opal_add_bridged_constructor(constructor, ancestors[i]); - Opal_bridge_methods_to_constructor(constructor, ancestors[i]); - } - - for (var name in BasicObject_alloc.prototype) { - var method = BasicObject_alloc.prototype[method]; - - if (method && method.$$stub && !(name in constructor.prototype)) { - constructor.prototype[name] = method; - } - } + // constructor is a JS function with a prototype chain like: + // - constructor + // - super + // + // What we need to do is to inject our class (with its prototype chain) + // between constructor and super. For example, after injecting ::Object + // into JS String we get: + // + // - constructor (window.String) + // - Opal.Object + // - Opal.Kernel + // - Opal.BasicObject + // - super (window.Object) + // - null + // + $defineProperty(native_klass, '$$bridge', klass); + $set_proto(native_klass.prototype, (klass.$$super || Opal.Object).$$prototype); + $defineProperty(klass, '$$prototype', native_klass.prototype); - return klass; + $defineProperty(klass.$$prototype, '$$class', klass); + $defineProperty(klass, '$$constructor', native_klass); + $defineProperty(klass, '$$bridge', true); }; - // Update `jsid` method cache of all classes / modules including `module`. - Opal.update_includer = function(module, includer, jsid) { - var dest, current, body, - klass_includees, j, jj, current_owner_index, module_index; - - body = module.$$proto[jsid]; - dest = includer.$$proto; - current = dest[jsid]; - - if (dest.hasOwnProperty(jsid) && !current.$$donated && !current.$$stub) { - // target class has already defined the same method name - do nothing + function protoToModule(proto) { + if (proto.hasOwnProperty('$$dummy')) { + return; + } else if (proto.hasOwnProperty('$$iclass')) { + return proto.$$module; + } else if (proto.hasOwnProperty('$$class')) { + return proto.$$class; } - else if (dest.hasOwnProperty(jsid) && !current.$$stub) { - // target class includes another module that has defined this method - klass_includees = includer.$$inc; + } - for (j = 0, jj = klass_includees.length; j < jj; j++) { - if (klass_includees[j] === current.$$donated) { - current_owner_index = j; - } - if (klass_includees[j] === module) { - module_index = j; - } - } + function own_ancestors(module) { + return module.$$own_prepended_modules.concat([module]).concat(module.$$own_included_modules); + } - // only redefine method on class if the module was included AFTER - // the module which defined the current method body. Also make sure - // a module can overwrite a method it defined before - if (current_owner_index <= module_index) { - dest[jsid] = body; - dest[jsid].$$donated = module; - } - } - else { - // neither a class, or module included by class, has defined method - dest[jsid] = body; - dest[jsid].$$donated = module; - } + // The Array of ancestors for a given module/class + Opal.ancestors = function(module) { + if (!module) { return []; } - // if the includer is a module, recursively update all of its includres. - if (includer.$$included_in) { - Opal.update_includers(includer, jsid); + if (module.$$ancestors_cache_version === Opal.const_cache_version) { + return module.$$ancestors; } - }; - // Update `jsid` method cache of all classes / modules including `module`. - Opal.update_includers = function(module, jsid) { - var i, ii, includee, included_in; + var result = [], i, mods, length; - included_in = module.$$included_in; - - if (!included_in) { - return; + for (i = 0, mods = own_ancestors(module), length = mods.length; i < length; i++) { + result.push(mods[i]); } - for (i = 0, ii = included_in.length; i < ii; i++) { - includee = included_in[i]; - Opal.update_includer(module, includee, jsid); + if (module.$$super) { + for (i = 0, mods = Opal.ancestors(module.$$super), length = mods.length; i < length; i++) { + result.push(mods[i]); + } } - }; - // The Array of ancestors for a given module/class - Opal.ancestors = function(module_or_class) { - var parent = module_or_class, - result = [], - modules, i, ii, j, jj; + module.$$ancestors_cache_version = Opal.const_cache_version; + module.$$ancestors = result; - while (parent) { - result.push(parent); - for (i = parent.$$inc.length-1; i >= 0; i--) { - modules = Opal.ancestors(parent.$$inc[i]); + return result; + }; - for(j = 0, jj = modules.length; j < jj; j++) { - result.push(modules[j]); - } - } + Opal.included_modules = function(module) { + var result = [], mod = null, proto = Object.getPrototypeOf(module.$$prototype); - // only the actual singleton class gets included in its ancestry - // after that, traverse the normal class hierarchy - if (parent.$$is_singleton && parent.$$singleton_of.$$is_module) { - parent = parent.$$singleton_of.$$super; - } - else { - parent = parent.$$is_class ? parent.$$super : null; + for (; proto && Object.getPrototypeOf(proto); proto = Object.getPrototypeOf(proto)) { + mod = protoToModule(proto); + if (mod && mod.$$is_module && proto.$$iclass && proto.$$included) { + result.push(mod); } } @@ -1136,37 +1426,18 @@ // @param stubs [Array] an array of method stubs to add // @return [undefined] Opal.add_stubs = function(stubs) { - var subscriber, subscribers = Opal.stub_subscribers, - i, ilength = stubs.length, - j, jlength = subscribers.length, - method_name, stub, - opal_stubs = Opal.stubs; - - for (i = 0; i < ilength; i++) { - method_name = stubs[i]; + var proto = Opal.BasicObject.$$prototype; + var stub, existing_method; - if(!opal_stubs.hasOwnProperty(method_name)) { - // Save method name to populate other subscribers with this stub - opal_stubs[method_name] = true; - stub = Opal.stub_for(method_name); + for (var i = 0, length = stubs.length; i < length; i++) { + stub = stubs[i], existing_method = proto[stub]; - for (j = 0; j < jlength; j++) { - subscriber = subscribers[j]; - - if (!(method_name in subscriber)) { - subscriber[method_name] = stub; - } - } + if (existing_method == null || existing_method.$$stub) { + Opal.add_stub_for(proto, stub); } } }; - // Keep a list of prototypes that want method_missing stubs to be added. - // - // @default [Prototype List] BasicObject_alloc.prototype - // - Opal.stub_subscribers = [BasicObject_alloc.prototype]; - // Add a method_missing stub function to the given prototype for the // given name. // @@ -1174,8 +1445,8 @@ // @param stub [String] stub name to add (e.g. "$foo") // @return [undefined] Opal.add_stub_for = function(prototype, stub) { - var method_missing_stub = Opal.stub_for(stub); - prototype[stub] = method_missing_stub; + // Opal.stub_for(stub) is the method_missing_stub + $defineProperty(prototype, stub, Opal.stub_for(stub)); }; // Generate the method_missing stub for a given method name. @@ -1183,6 +1454,7 @@ // @param method_name [String] The js-name of the method to stub (e.g. "$foo") // @return [undefined] Opal.stub_for = function(method_name) { + function method_missing_stub() { // Copy any given block onto the method_missing dispatcher this.$method_missing.$$p = method_missing_stub.$$p; @@ -1215,7 +1487,7 @@ // @raise [ArgumentError] Opal.ac = function(actual, expected, object, meth) { var inspect = ''; - if (object.$$is_class || object.$$is_module) { + if (object.$$is_a_module) { inspect += object.$$name + '.'; } else { @@ -1239,33 +1511,41 @@ }; // Super dispatcher - Opal.find_super_dispatcher = function(obj, mid, current_func, defcheck, defs) { - var dispatcher, super_method; + Opal.find_super = function(obj, mid, current_func, defcheck, allow_stubs) { + var jsid = '$' + mid, ancestors, super_method; + + if (obj.hasOwnProperty('$$meta')) { + ancestors = Opal.ancestors(obj.$$meta); + } else { + ancestors = Opal.ancestors(obj.$$class); + } + + var current_index = ancestors.indexOf(current_func.$$owner); + + for (var i = current_index + 1; i < ancestors.length; i++) { + var ancestor = ancestors[i], + proto = ancestor.$$prototype; - if (defs) { - if (obj.$$is_class || obj.$$is_module) { - dispatcher = defs.$$super; + if (proto.hasOwnProperty('$$dummy')) { + proto = proto.$$define_methods_on; } - else { - dispatcher = obj.$$class.$$proto; + + if (proto.hasOwnProperty(jsid)) { + super_method = proto[jsid]; + break; } } - else { - dispatcher = Opal.find_obj_super_dispatcher(obj, mid, current_func); - } - - super_method = dispatcher['$' + mid]; - if (!defcheck && super_method.$$stub && Opal.Kernel.$method_missing === obj.$method_missing) { + if (!defcheck && super_method && super_method.$$stub && obj.$method_missing.$$pristine) { // method_missing hasn't been explicitly defined throw Opal.NoMethodError.$new('super: no superclass method `'+mid+"' for "+obj, mid); } - return super_method; + return (super_method.$$stub && !allow_stubs) ? null : super_method; }; // Iter dispatcher for super in a block - Opal.find_iter_super_dispatcher = function(obj, jsid, current_func, defcheck, implicit) { + Opal.find_block_super = function(obj, jsid, current_func, defcheck, implicit) { var call_jsid = jsid; if (!current_func) { @@ -1283,66 +1563,11 @@ return Opal.find_super_dispatcher(obj, call_jsid, current_func, defcheck); }; - Opal.find_obj_super_dispatcher = function(obj, mid, current_func) { - var klass = obj.$$meta || obj.$$class; - - // first we need to find the class/module current_func is located on - klass = Opal.find_owning_class(klass, current_func); - - if (!klass) { - throw new Error("could not find current class for super()"); - } - - return Opal.find_super_func(klass, '$' + mid, current_func); - }; - - Opal.find_owning_class = function(klass, current_func) { - var owner = current_func.$$owner; - - while (klass) { - // repeating for readability - - if (klass.$$iclass && klass.$$module === current_func.$$donated) { - // this klass was the last one the module donated to - // case is also hit with multiple module includes - break; - } - else if (klass.$$iclass && klass.$$module === owner) { - // module has donated to other classes but klass isn't one of those - break; - } - else if (owner.$$is_singleton && klass === owner.$$singleton_of.$$class) { - // cases like stdlib `Singleton::included` that use a singleton of a singleton - break; - } - else if (klass === owner) { - // no modules, pure class inheritance - break; - } - - klass = klass.$$parent; - } - - return klass; - }; - - Opal.find_super_func = function(owning_klass, jsid, current_func) { - var klass = owning_klass.$$parent; - - // now we can find the super - while (klass) { - var working = klass.$$proto[jsid]; - - if (working && working !== current_func) { - // ok - break; - } - - klass = klass.$$parent; - } + // @deprecated + Opal.find_super_dispatcher = Opal.find_super; - return klass.$$proto; - }; + // @deprecated + Opal.find_iter_super_dispatcher = Opal.find_block_super; // Used to return as an expression. Sometimes, we can't simply return from // a javascript function as if we were a method, as the return is used as @@ -1436,12 +1661,12 @@ }; Opal.is_a = function(object, klass) { - if (object.$$meta === klass || object.$$class === klass) { + if (klass != null && object.$$meta === klass || object.$$class === klass) { return true; } if (object.$$is_number && klass.$$is_number_class) { - return true; + return (klass.$$is_integer_class) ? (object % 1) === 0 : true; } var i, length, ancestors = Opal.ancestors(object.$$is_class ? Opal.get_singleton_class(object) : (object.$$meta || object.$$class)); @@ -1537,14 +1762,14 @@ // Opal.extract_kwargs = function(parameters) { var kwargs = parameters[parameters.length - 1]; - if (kwargs != null && kwargs['$respond_to?']('to_hash', true)) { - Array.prototype.splice.call(parameters, parameters.length - 1, 1); + if (kwargs != null && Opal.respond_to(kwargs, '$to_hash', true)) { + $splice.call(parameters, parameters.length - 1, 1); return kwargs.$to_hash(); } else { return Opal.hash2([], {}); } - } + }; // Used to get a list of rest keyword arguments. Method takes the given // keyword args, i.e. the hash literal passed to the method containing all @@ -1560,7 +1785,7 @@ Opal.kwrestargs = function(given_args, used_args) { var keys = [], map = {}, - key = null, + key , given_map = given_args.$$smap; for (key in given_map) { @@ -1598,15 +1823,72 @@ // @param block [Function] ruby block // @return [Object] returning value of the method call Opal.send = function(recv, method, args, block) { - var body = (typeof(method) === 'string') ? recv['$'+method] : method; + var body; - if (body != null) { - body.$$p = block; - return body.apply(recv, args); + if (typeof(method) === 'function') { + body = method; + method = null; + } else if (typeof(method) === 'string') { + body = recv['$'+method]; + } else { + throw Opal.NameError.$new("Passed method should be a string or a function"); } - return recv.$method_missing.apply(recv, [method].concat(args)); - } + return Opal.send2(recv, body, method, args, block); + }; + + Opal.send2 = function(recv, body, method, args, block) { + if (body == null && method != null && recv.$method_missing) { + body = recv.$method_missing; + args = [method].concat(args); + } + + if (typeof block === 'function') body.$$p = block; + return body.apply(recv, args); + }; + + Opal.refined_send = function(refinement_groups, recv, method, args, block) { + var i, j, k, ancestors, ancestor, refinements, refinement, refine_modules, refine_module, body; + + if (recv.hasOwnProperty('$$meta')) { + ancestors = Opal.ancestors(recv.$$meta); + } else { + ancestors = Opal.ancestors(recv.$$class); + } + + // For all ancestors that there are, starting from the closest to the furthest... + for (i = 0; i < ancestors.length; i++) { + ancestor = Opal.id(ancestors[i]); + // For all refinement groups there are, starting from the closest scope to the furthest... + for (j = 0; j < refinement_groups.length; j++) { + refinements = refinement_groups[j]; + // For all refinements there are, starting from the last `using` call to the furthest... + for (k = refinements.length - 1; k >= 0; k--) { + refinement = refinements[k]; + if (typeof refinement.$$refine_modules === 'undefined') continue; + // A single module being given as an argument of the `using` call contains multiple + // refinement modules + refine_modules = refinement.$$refine_modules; + // Does this module refine a given call for a given ancestor module? + if (typeof refine_modules[ancestor] !== 'undefined') { + refine_module = refine_modules[ancestor]; + // Does this module define a method we want to call? + if (typeof refine_module.$$prototype['$'+method] !== 'undefined') { + body = refine_module.$$prototype['$'+method]; + return Opal.send2(recv, body, method, args, block); + } + } + } + } + } + + return Opal.send(recv, method, args, block); + }; + + Opal.lambda = function(block) { + block.$$is_lambda = true; + return block; + }; // Used to define methods on an object. This is a helper method, used by the // compiled source to define methods on special case objects when the compiler @@ -1645,8 +1927,13 @@ // @return [null] // Opal.def = function(obj, jsid, body) { + // Special case for a method definition in the + // top-level namespace + if (obj === Opal.top) { + Opal.defn(Opal.Object, jsid, body) + } // if instance_eval is invoked on a module/class, it sets inst_eval_mod - if (!obj.$$eval && (obj.$$is_class || obj.$$is_module)) { + else if (!obj.$$eval && obj.$$is_a_module) { Opal.defn(obj, jsid, body); } else { @@ -1655,59 +1942,55 @@ }; // Define method on a module or class (see Opal.def). - Opal.defn = function(obj, jsid, body) { - obj.$$proto[jsid] = body; - // for super dispatcher, etc. - body.$$owner = obj; - if (body.displayName == null) body.displayName = jsid.substr(1); + Opal.defn = function(module, jsid, body) { + body.displayName = jsid; + body.$$owner = module; - // is it a module? - if (obj.$$is_module) { - Opal.update_includers(obj, jsid); + var proto = module.$$prototype; + if (proto.hasOwnProperty('$$dummy')) { + proto = proto.$$define_methods_on; + } + $defineProperty(proto, jsid, body); - if (obj.$$module_function) { - Opal.defs(obj, jsid, body); + if (module.$$is_module) { + if (module.$$module_function) { + Opal.defs(module, jsid, body) } - } - // is it a bridged class? - var bridged = obj.$__id__ && !obj.$__id__.$$stub && BridgedClasses[obj.$__id__()]; - if (bridged) { - for (var i = bridged.length - 1; i >= 0; i--) { - Opal.bridge_method(bridged[i], obj, jsid, body); + for (var i = 0, iclasses = module.$$iclasses, length = iclasses.length; i < length; i++) { + var iclass = iclasses[i]; + $defineProperty(iclass, jsid, body); } } - // method_added/singleton_method_added hooks - var singleton_of = obj.$$singleton_of; - if (obj.$method_added && !obj.$method_added.$$stub && !singleton_of) { - obj.$method_added(jsid.substr(1)); + var singleton_of = module.$$singleton_of; + if (module.$method_added && !module.$method_added.$$stub && !singleton_of) { + module.$method_added(jsid.substr(1)); } else if (singleton_of && singleton_of.$singleton_method_added && !singleton_of.$singleton_method_added.$$stub) { singleton_of.$singleton_method_added(jsid.substr(1)); } - - return nil; }; // Define a singleton method on the given object (see Opal.def). Opal.defs = function(obj, jsid, body) { + if (obj.$$is_string || obj.$$is_number) { + throw Opal.TypeError.$new("can't define singleton"); + } Opal.defn(Opal.get_singleton_class(obj), jsid, body) }; // Called from #remove_method. Opal.rdef = function(obj, jsid) { - // TODO: remove from BridgedClasses as well - - if (!$hasOwn.call(obj.$$proto, jsid)) { + if (!$has_own.call(obj.$$prototype, jsid)) { throw Opal.NameError.$new("method '" + jsid.substr(1) + "' not defined in " + obj.$name()); } - delete obj.$$proto[jsid]; + delete obj.$$prototype[jsid]; if (obj.$$is_singleton) { - if (obj.$$proto.$singleton_method_removed && !obj.$$proto.$singleton_method_removed.$$stub) { - obj.$$proto.$singleton_method_removed(jsid.substr(1)); + if (obj.$$prototype.$singleton_method_removed && !obj.$$prototype.$singleton_method_removed.$$stub) { + obj.$$prototype.$singleton_method_removed(jsid.substr(1)); } } else { @@ -1719,15 +2002,15 @@ // Called from #undef_method. Opal.udef = function(obj, jsid) { - if (!obj.$$proto[jsid] || obj.$$proto[jsid].$$stub) { + if (!obj.$$prototype[jsid] || obj.$$prototype[jsid].$$stub) { throw Opal.NameError.$new("method '" + jsid.substr(1) + "' not defined in " + obj.$name()); } - Opal.add_stub_for(obj.$$proto, jsid); + Opal.add_stub_for(obj.$$prototype, jsid); if (obj.$$is_singleton) { - if (obj.$$proto.$singleton_method_undefined && !obj.$$proto.$singleton_method_undefined.$$stub) { - obj.$$proto.$singleton_method_undefined(jsid.substr(1)); + if (obj.$$prototype.$singleton_method_undefined && !obj.$$prototype.$singleton_method_undefined.$$stub) { + obj.$$prototype.$singleton_method_undefined(jsid.substr(1)); } } else { @@ -1737,18 +2020,29 @@ } }; + function is_method_body(body) { + return (typeof(body) === "function" && !body.$$stub); + } + Opal.alias = function(obj, name, old) { var id = '$' + name, old_id = '$' + old, - body = obj.$$proto['$' + old], + body, alias; + // Aliasing on main means aliasing on Object... + if (typeof obj.$$prototype === 'undefined') { + obj = Opal.Object; + } + + body = obj.$$prototype['$' + old]; + // When running inside #instance_eval the alias refers to class methods. if (obj.$$eval) { return Opal.alias(Opal.get_singleton_class(obj), name, old); } - if (typeof(body) !== "function" || body.$$stub) { + if (!is_method_body(body)) { var ancestor = obj.$$super; while (typeof(body) !== "function" && ancestor) { @@ -1756,7 +2050,12 @@ ancestor = ancestor.$$super; } - if (typeof(body) !== "function" || body.$$stub) { + if (!is_method_body(body) && obj.$$is_module) { + // try to look into Object + body = Opal.Object.$$prototype[old_id] + } + + if (!is_method_body(body)) { throw Opal.NameError.$new("undefined method `" + old + "' for class `" + obj.$name() + "'") } } @@ -1765,8 +2064,8 @@ // to keep the max depth at 1. if (body.$$alias_of) body = body.$$alias_of; - // We need a wrapper because otherwise method $$owner and other properties - // would be ovrewritten on the original body. + // We need a wrapper because otherwise properties + // would be overwritten on the original body. alias = function() { var block = alias.$$p, args, i, ii; @@ -1780,9 +2079,17 @@ return Opal.send(this, body, args, block); }; + // Assign the 'length' value with defineProperty because + // in strict mode the property is not writable. + // It doesn't work in older browsers (like Chrome 38), where + // an exception is thrown breaking Opal altogether. + try { + Object.defineProperty(alias, 'length', { value: body.length }); + } catch (e) {} + // Try to make the browser pick the right name alias.displayName = name; - alias.length = body.length; + alias.$$arity = body.$$arity; alias.$$parameters = body.$$parameters; alias.$$source_location = body.$$source_location; @@ -1794,9 +2101,23 @@ return obj; }; + Opal.alias_gvar = function(new_name, old_name) { + Object.defineProperty(Opal.gvars, new_name, { + configurable: true, + enumerable: true, + get: function() { + return Opal.gvars[old_name]; + }, + set: function(new_value) { + Opal.gvars[old_name] = new_value; + } + }); + return nil; + } + Opal.alias_native = function(obj, name, native_name) { var id = '$' + name, - body = obj.$$proto[native_name]; + body = obj.$$prototype[native_name]; if (typeof(body) !== "function" || body.$$stub) { throw Opal.NameError.$new("undefined native method `" + native_name + "' for class `" + obj.$name() + "'") @@ -1837,7 +2158,7 @@ Opal.hash_put = function(hash, key, value) { if (key.$$is_string) { - if (!$hasOwn.call(hash.$$smap, key)) { + if (!$has_own.call(hash.$$smap, key)) { hash.$$keys.push(key); } hash.$$smap[key] = value; @@ -1847,7 +2168,7 @@ var key_hash, bucket, last_bucket; key_hash = hash.$$by_identity ? Opal.id(key) : key.$hash(); - if (!$hasOwn.call(hash.$$map, key_hash)) { + if (!$has_own.call(hash.$$map, key_hash)) { bucket = {key: key, key_hash: key_hash, value: value}; hash.$$keys.push(bucket); hash.$$map[key_hash] = bucket; @@ -1875,7 +2196,7 @@ Opal.hash_get = function(hash, key) { if (key.$$is_string) { - if ($hasOwn.call(hash.$$smap, key)) { + if ($has_own.call(hash.$$smap, key)) { return hash.$$smap[key]; } return; @@ -1884,7 +2205,7 @@ var key_hash, bucket; key_hash = hash.$$by_identity ? Opal.id(key) : key.$hash(); - if ($hasOwn.call(hash.$$map, key_hash)) { + if ($has_own.call(hash.$$map, key_hash)) { bucket = hash.$$map[key_hash]; while (bucket) { @@ -1897,15 +2218,23 @@ }; Opal.hash_delete = function(hash, key) { - var i, keys = hash.$$keys, length = keys.length, value; + var i, keys = hash.$$keys, length = keys.length, value, key_tmp; if (key.$$is_string) { - if (!$hasOwn.call(hash.$$smap, key)) { + if (typeof key !== "string") key = key.valueOf(); + + if (!$has_own.call(hash.$$smap, key)) { return; } for (i = 0; i < length; i++) { - if (keys[i] === key) { + key_tmp = keys[i]; + + if (key_tmp.$$is_string && typeof key_tmp !== "string") { + key_tmp = key_tmp.valueOf(); + } + + if (key_tmp === key) { keys.splice(i, 1); break; } @@ -1918,7 +2247,7 @@ var key_hash = key.$hash(); - if (!$hasOwn.call(hash.$$map, key_hash)) { + if (!$has_own.call(hash.$$map, key_hash)) { return; } @@ -1993,7 +2322,7 @@ hash.$$keys[i].key_hash = key_hash; - if (!$hasOwn.call(hash.$$map, key_hash)) { + if (!$has_own.call(hash.$$map, key_hash)) { hash.$$map[key_hash] = hash.$$keys[i]; continue; } @@ -2023,7 +2352,7 @@ return arguments[0]; } - hash = new Opal.Hash.$$alloc(); + hash = new Opal.Hash(); Opal.hash_init(hash); if (arguments_length === 1 && arguments[0].$$is_array) { @@ -2047,7 +2376,7 @@ if (arguments_length === 1) { args = arguments[0]; for (key in args) { - if ($hasOwn.call(args, key)) { + if ($has_own.call(args, key)) { value = args[key]; Opal.hash_put(hash, key, value); @@ -2077,7 +2406,7 @@ // function. // Opal.hash2 = function(keys, smap) { - var hash = new Opal.Hash.$$alloc(); + var hash = new Opal.Hash(); hash.$$smap = smap; hash.$$map = Object.create(null); @@ -2090,7 +2419,7 @@ // range excludes the last value. // Opal.range = function(first, last, exc) { - var range = new Opal.Range.$$alloc(); + var range = new Opal.Range(); range.begin = first; range.end = last; range.excl = exc; @@ -2135,15 +2464,80 @@ .replace(/[\r]/g, '\\r') .replace(/[\f]/g, '\\f') .replace(/[\t]/g, '\\t'); - } + }; + + // Create a global Regexp from a RegExp object and cache the result + // on the object itself ($$g attribute). + // + Opal.global_regexp = function(pattern) { + if (pattern.global) { + return pattern; // RegExp already has the global flag + } + if (pattern.$$g == null) { + pattern.$$g = new RegExp(pattern.source, (pattern.multiline ? 'gm' : 'g') + (pattern.ignoreCase ? 'i' : '')); + } else { + pattern.$$g.lastIndex = null; // reset lastIndex property + } + return pattern.$$g; + }; + + // Create a global multiline Regexp from a RegExp object and cache the result + // on the object itself ($$gm or $$g attribute). + // + Opal.global_multiline_regexp = function(pattern) { + var result; + if (pattern.multiline) { + if (pattern.global) { + return pattern; // RegExp already has the global and multiline flag + } + // we are using the $$g attribute because the Regexp is already multiline + if (pattern.$$g != null) { + result = pattern.$$g; + } else { + result = pattern.$$g = new RegExp(pattern.source, 'gm' + (pattern.ignoreCase ? 'i' : '')); + } + } else if (pattern.$$gm != null) { + result = pattern.$$gm; + } else { + result = pattern.$$gm = new RegExp(pattern.source, 'gm' + (pattern.ignoreCase ? 'i' : '')); + } + result.lastIndex = null; // reset lastIndex property + return result; + }; + + // Combine multiple regexp parts together + Opal.regexp = function(parts, flags) { + var part; + var ignoreCase = typeof flags !== 'undefined' && flags && flags.indexOf('i') >= 0; + + for (var i = 0, ii = parts.length; i < ii; i++) { + part = parts[i]; + if (part instanceof RegExp) { + if (part.ignoreCase !== ignoreCase) + Opal.Kernel.$warn( + "ignore case doesn't match for " + part.source.$inspect(), + Opal.hash({uplevel: 1}) + ) + + part = part.source; + } + if (part === '') part = '(?:' + part + ')'; + parts[i] = part; + } + if (flags) { + return new RegExp(parts.join(''), flags); + } else { + return new RegExp(parts.join('')); + } + }; // Require system // -------------- Opal.modules = {}; Opal.loaded_features = ['corelib/runtime']; - Opal.current_dir = '.' + Opal.current_dir = '.'; Opal.require_table = {'corelib/runtime': true}; Opal.normalize = function(path) { @@ -2173,7 +2567,7 @@ path = Opal.normalize(paths[i]); if (Opal.require_table[path]) { - return; + continue; } Opal.loaded_features.push(path); @@ -2189,14 +2583,23 @@ var module = Opal.modules[path]; if (module) { - module(Opal); + var retval = module(Opal); + if (typeof Promise !== 'undefined' && retval instanceof Promise) { + // A special case of require having an async top: + // We will need to await it. + return retval.then(function() { return true; }); + } } else { var severity = Opal.config.missing_require_severity; var message = 'cannot load such file -- ' + path; if (severity === "error") { - Opal.LoadError ? Opal.LoadError.$new(message) : function(){throw message}(); + if (Opal.LoadError) { + throw Opal.LoadError.$new(message) + } else { + throw message + } } else if (severity === "warning") { console.warn('WARNING: LoadError: ' + message); @@ -2217,20 +2620,101 @@ }; - // Initialization - // -------------- + // Strings + // ------- - // Constructors for *instances* of core objects - Opal.boot_class_alloc('BasicObject', BasicObject_alloc); - Opal.boot_class_alloc('Object', Object_alloc, BasicObject_alloc); - Opal.boot_class_alloc('Module', Module_alloc, Object_alloc); - Opal.boot_class_alloc('Class', Class_alloc, Module_alloc); + Opal.encodings = Object.create(null); - // Constructors for *classes* of core objects - Opal.BasicObject = BasicObject = Opal.setup_class_object('BasicObject', BasicObject_alloc, 'Class', Class_alloc); - Opal.Object = _Object = Opal.setup_class_object('Object', Object_alloc, 'BasicObject', BasicObject.constructor); - Opal.Module = Module = Opal.setup_class_object('Module', Module_alloc, 'Object', _Object.constructor); - Opal.Class = Class = Opal.setup_class_object('Class', Class_alloc, 'Module', Module.constructor); + // Sets the encoding on a string, will treat string literals as frozen strings + // raising a FrozenError. + // + // @param str [String] the string on which the encoding should be set + // @param name [String] the canonical name of the encoding + // @param type [String] possible values are either `"encoding"`, `"internal_encoding"`, or `undefined + Opal.set_encoding = function(str, name, type) { + if (typeof type === "undefined") type = "encoding"; + if (typeof str === 'string' || str.$$frozen === true) + throw Opal.FrozenError.$new("can't modify frozen String"); + + var encoding = Opal.find_encoding(name); + + if (encoding === str[type]) { return str; } + + str[type] = encoding; + + return str; + }; + + // Fetches the encoding for the given name or raises ArgumentError. + Opal.find_encoding = function(name) { + var register = Opal.encodings; + var encoding = register[name] || register[name.toUpperCase()]; + if (!encoding) throw Opal.ArgumentError.$new("unknown encoding name - " + name); + return encoding; + } + + // @returns a String object with the encoding set from a string literal + Opal.enc = function(str, name) { + var dup = new String(str); + dup = Opal.set_encoding(dup, name); + dup.internal_encoding = dup.encoding; + return dup + } + + // @returns a String object with the internal encoding set to Binary + Opal.binary = function(str) { + var dup = new String(str); + return Opal.set_encoding(dup, "binary", "internal_encoding"); + } + + Opal.last_promise = null; + Opal.promise_unhandled_exception = false; + + // Run a block of code, but if it returns a Promise, don't run the next + // one, but queue it. + Opal.queue = function(proc) { + if (Opal.last_promise) { + // The async path is taken only if anything before returned a + // Promise(V2). + Opal.last_promise = Opal.last_promise.then(function() { + if (!Opal.promise_unhandled_exception) return proc(Opal); + })['catch'](function(error) { + if (Opal.respond_to(error, '$full_message')) { + error = error.$full_message(); + } + console.error(error); + // Abort further execution + Opal.promise_unhandled_exception = true; + Opal.exit(1); + }); + return Opal.last_promise; + } + else { + var ret = proc(Opal); + if (typeof Promise === 'function' && typeof ret === 'object' && ret instanceof Promise) { + Opal.last_promise = ret; + } + return ret; + } + } + + + // Initialization + // -------------- + function $BasicObject() {} + function $Object() {} + function $Module() {} + function $Class() {} + + Opal.BasicObject = BasicObject = Opal.allocate_class('BasicObject', null, $BasicObject); + Opal.Object = _Object = Opal.allocate_class('Object', Opal.BasicObject, $Object); + Opal.Module = Module = Opal.allocate_class('Module', Opal.Object, $Module); + Opal.Class = Class = Opal.allocate_class('Class', Opal.Module, $Class); + + $set_proto(Opal.BasicObject, Opal.Class.$$prototype); + $set_proto(Opal.Object, Opal.Class.$$prototype); + $set_proto(Opal.Module, Opal.Class.$$prototype); + $set_proto(Opal.Class, Opal.Class.$$prototype); // BasicObject can reach itself, avoid const_set to skip the $$base_module logic BasicObject.$$const["BasicObject"] = BasicObject; @@ -2241,26 +2725,14 @@ Opal.const_set(_Object, "Module", Module); Opal.const_set(_Object, "Class", Class); - - // Fix booted classes to use their metaclass + // Fix booted classes to have correct .class value BasicObject.$$class = Class; _Object.$$class = Class; Module.$$class = Class; Class.$$class = Class; - // Fix superclasses of booted classes - BasicObject.$$super = null; - _Object.$$super = BasicObject; - Module.$$super = _Object; - Class.$$super = Module; - - BasicObject.$$parent = null; - _Object.$$parent = BasicObject; - Module.$$parent = _Object; - Class.$$parent = Module; - // Forward .toString() to #to_s - _Object.$$proto.toString = function() { + $defineProperty(_Object.$$prototype, 'toString', function() { var to_s = this.$to_s(); if (to_s.$$is_string && typeof(to_s) === 'object') { // a string created using new String('string') @@ -2268,98 +2740,92 @@ } else { return to_s; } - }; + }); // Make Kernel#require immediately available as it's needed to require all the // other corelib files. - _Object.$$proto.$require = Opal.require; + $defineProperty(_Object.$$prototype, '$require', Opal.require); + + // Instantiate the main object + Opal.top = new _Object(); + Opal.top.$to_s = Opal.top.$inspect = function() { return 'main' }; + Opal.top.$define_method = top_define_method; + + // Foward calls to define_method on the top object to Object + function top_define_method() { + var args = Opal.slice.call(arguments, 0, arguments.length); + var block = top_define_method.$$p; + top_define_method.$$p = null; + return Opal.send(_Object, 'define_method', args, block) + }; - // Instantiate the top object - Opal.top = new _Object.$$alloc(); // Nil - Opal.klass(_Object, _Object, 'NilClass', NilClass_alloc); - nil = Opal.nil = new NilClass_alloc(); + function $NilClass() {} + Opal.NilClass = Opal.allocate_class('NilClass', Opal.Object, $NilClass); + Opal.const_set(_Object, 'NilClass', Opal.NilClass); + nil = Opal.nil = new Opal.NilClass(); nil.$$id = nil_id; nil.call = nil.apply = function() { throw Opal.LocalJumpError.$new('no block given'); }; + + // Errors Opal.breaker = new Error('unexpected break (old)'); Opal.returner = new Error('unexpected return'); - TypeError.$$super = Error; }).call(this); -Opal.loaded(["corelib/runtime"]); -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/helpers"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; +Opal.loaded(["corelib/runtime.js"]); +Opal.modules["corelib/helpers"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $type_error = Opal.type_error, $coerce_to = Opal.coerce_to, $module = Opal.module, $truthy = Opal.truthy; - Opal.add_stubs(['$new', '$class', '$===', '$respond_to?', '$raise', '$type_error', '$__send__', '$coerce_to', '$nil?', '$<=>', '$coerce_to!', '$!=', '$[]', '$upcase']); + Opal.add_stubs(['$===', '$raise', '$respond_to?', '$nil?', '$__send__', '$<=>', '$class', '$coerce_to!', '$new', '$!=', '$[]', '$upcase']); return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + var self = $module($base, 'Opal'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Opal_bridge_1, TMP_Opal_type_error_2, TMP_Opal_coerce_to_3, TMP_Opal_coerce_to$B_4, TMP_Opal_coerce_to$q_5, TMP_Opal_try_convert_6, TMP_Opal_compare_7, TMP_Opal_destructure_8, TMP_Opal_respond_to$q_9, TMP_Opal_inspect_obj_10, TMP_Opal_instance_variable_name$B_11, TMP_Opal_class_variable_name$B_12, TMP_Opal_const_name$B_13, TMP_Opal_pristine_14; + var $nesting = [self].concat($parent_nesting), $Opal_bridge$1, $Opal_coerce_to$excl$2, $Opal_coerce_to$ques$3, $Opal_try_convert$4, $Opal_compare$5, $Opal_destructure$6, $Opal_respond_to$ques$7, $Opal_instance_variable_name$excl$8, $Opal_class_variable_name$excl$9, $Opal_const_name$ques$10, $Opal_const_name$excl$11, $Opal_pristine$12; - Opal.defs(self, '$bridge', TMP_Opal_bridge_1 = function $$bridge(klass, constructor) { + Opal.defs(self, '$bridge', $Opal_bridge$1 = function $$bridge(constructor, klass) { var self = this; - return Opal.bridge(klass, constructor) - }, TMP_Opal_bridge_1.$$arity = 2); - Opal.defs(self, '$type_error', TMP_Opal_type_error_2 = function $$type_error(object, type, method, coerced) { - var $a, self = this; - - if (method == null) { - method = nil; - } - if (coerced == null) { - coerced = nil; - } - if ($truthy(($truthy($a = method) ? coerced : $a))) { - return Opal.const_get_relative($nesting, 'TypeError').$new("" + "can't convert " + (object.$class()) + " into " + (type) + " (" + (object.$class()) + "#" + (method) + " gives " + (coerced.$class())) - } else { - return Opal.const_get_relative($nesting, 'TypeError').$new("" + "no implicit conversion of " + (object.$class()) + " into " + (type)) - } - }, TMP_Opal_type_error_2.$$arity = -3); - Opal.defs(self, '$coerce_to', TMP_Opal_coerce_to_3 = function $$coerce_to(object, type, method) { - var self = this; + return Opal.bridge(constructor, klass); + }, $Opal_bridge$1.$$arity = 2); + Opal.defs(self, '$coerce_to!', $Opal_coerce_to$excl$2 = function(object, type, method, $a) { + var $post_args, args, self = this, coerced = nil; - if ($truthy(type['$==='](object))) { - return object}; - if ($truthy(object['$respond_to?'](method))) { - } else { - self.$raise(self.$type_error(object, type)) - }; - return object.$__send__(method); - }, TMP_Opal_coerce_to_3.$$arity = 3); - Opal.defs(self, '$coerce_to!', TMP_Opal_coerce_to$B_4 = function(object, type, method) { - var self = this, coerced = nil; - - coerced = self.$coerce_to(object, type, method); + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; + coerced = $coerce_to(object, type, method, args); if ($truthy(type['$==='](coerced))) { - } else { - self.$raise(self.$type_error(object, type, method, coerced)) + } else { + self.$raise($type_error(object, type, method, coerced)) }; return coerced; - }, TMP_Opal_coerce_to$B_4.$$arity = 3); - Opal.defs(self, '$coerce_to?', TMP_Opal_coerce_to$q_5 = function(object, type, method) { - var self = this, coerced = nil; + }, $Opal_coerce_to$excl$2.$$arity = -4); + Opal.defs(self, '$coerce_to?', $Opal_coerce_to$ques$3 = function(object, type, method, $a) { + var $post_args, args, self = this, coerced = nil; + + $post_args = Opal.slice.call(arguments, 3, arguments.length); + + args = $post_args;; if ($truthy(object['$respond_to?'](method))) { - } else { + } else { return nil }; - coerced = self.$coerce_to(object, type, method); + coerced = $coerce_to(object, type, method, args); if ($truthy(coerced['$nil?']())) { return nil}; if ($truthy(type['$==='](coerced))) { - } else { - self.$raise(self.$type_error(object, type, method, coerced)) + } else { + self.$raise($type_error(object, type, method, coerced)) }; return coerced; - }, TMP_Opal_coerce_to$q_5.$$arity = 3); - Opal.defs(self, '$try_convert', TMP_Opal_try_convert_6 = function $$try_convert(object, type, method) { + }, $Opal_coerce_to$ques$3.$$arity = -4); + Opal.defs(self, '$try_convert', $Opal_try_convert$4 = function $$try_convert(object, type, method) { var self = this; @@ -2367,20 +2833,20 @@ Opal.modules["corelib/helpers"] = function(Opal) { return object}; if ($truthy(object['$respond_to?'](method))) { return object.$__send__(method) - } else { + } else { return nil }; - }, TMP_Opal_try_convert_6.$$arity = 3); - Opal.defs(self, '$compare', TMP_Opal_compare_7 = function $$compare(a, b) { + }, $Opal_try_convert$4.$$arity = 3); + Opal.defs(self, '$compare', $Opal_compare$5 = function $$compare(a, b) { var self = this, compare = nil; compare = a['$<=>'](b); if ($truthy(compare === nil)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (a.$class()) + " with " + (b.$class()) + " failed")}; + self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (a.$class()) + " with " + (b.$class()) + " failed")}; return compare; - }, TMP_Opal_compare_7.$$arity = 2); - Opal.defs(self, '$destructure', TMP_Opal_destructure_8 = function $$destructure(args) { + }, $Opal_compare$5.$$arity = 2); + Opal.defs(self, '$destructure', $Opal_destructure$6 = function $$destructure(args) { var self = this; @@ -2397,132 +2863,143 @@ Opal.modules["corelib/helpers"] = function(Opal) { return args_ary; } - }, TMP_Opal_destructure_8.$$arity = 1); - Opal.defs(self, '$respond_to?', TMP_Opal_respond_to$q_9 = function(obj, method) { + }, $Opal_destructure$6.$$arity = 1); + Opal.defs(self, '$respond_to?', $Opal_respond_to$ques$7 = function(obj, method, include_all) { var self = this; + if (include_all == null) { + include_all = false; + }; + if (obj == null || !obj.$$class) { return false; } ; - return obj['$respond_to?'](method); - }, TMP_Opal_respond_to$q_9.$$arity = 2); - Opal.defs(self, '$inspect_obj', TMP_Opal_inspect_obj_10 = function $$inspect_obj(obj) { - var self = this; - - return Opal.inspect(obj) - }, TMP_Opal_inspect_obj_10.$$arity = 1); - Opal.defs(self, '$instance_variable_name!', TMP_Opal_instance_variable_name$B_11 = function(name) { + return obj['$respond_to?'](method, include_all); + }, $Opal_respond_to$ques$7.$$arity = -3); + Opal.defs(self, '$instance_variable_name!', $Opal_instance_variable_name$excl$8 = function(name) { var self = this; - name = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](name, Opal.const_get_relative($nesting, 'String'), "to_str"); + name = $$($nesting, 'Opal')['$coerce_to!'](name, $$($nesting, 'String'), "to_str"); if ($truthy(/^@[a-zA-Z_][a-zA-Z0-9_]*?$/.test(name))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "'" + (name) + "' is not allowed as an instance variable name", name)) + } else { + self.$raise($$($nesting, 'NameError').$new("" + "'" + (name) + "' is not allowed as an instance variable name", name)) }; return name; - }, TMP_Opal_instance_variable_name$B_11.$$arity = 1); - Opal.defs(self, '$class_variable_name!', TMP_Opal_class_variable_name$B_12 = function(name) { + }, $Opal_instance_variable_name$excl$8.$$arity = 1); + Opal.defs(self, '$class_variable_name!', $Opal_class_variable_name$excl$9 = function(name) { var self = this; - name = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](name, Opal.const_get_relative($nesting, 'String'), "to_str"); + name = $$($nesting, 'Opal')['$coerce_to!'](name, $$($nesting, 'String'), "to_str"); if ($truthy(name.length < 3 || name.slice(0,2) !== '@@')) { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "`" + (name) + "' is not allowed as a class variable name", name))}; + self.$raise($$($nesting, 'NameError').$new("" + "`" + (name) + "' is not allowed as a class variable name", name))}; return name; - }, TMP_Opal_class_variable_name$B_12.$$arity = 1); - Opal.defs(self, '$const_name!', TMP_Opal_const_name$B_13 = function(const_name) { + }, $Opal_class_variable_name$excl$9.$$arity = 1); + Opal.defs(self, '$const_name?', $Opal_const_name$ques$10 = function(const_name) { + var self = this; + + + if (typeof const_name !== 'string') { + (const_name = $$($nesting, 'Opal')['$coerce_to!'](const_name, $$($nesting, 'String'), "to_str")) + } + + return const_name[0] === const_name[0].toUpperCase() + + }, $Opal_const_name$ques$10.$$arity = 1); + Opal.defs(self, '$const_name!', $Opal_const_name$excl$11 = function(const_name) { var self = this; - const_name = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](const_name, Opal.const_get_relative($nesting, 'String'), "to_str"); + const_name = $$($nesting, 'Opal')['$coerce_to!'](const_name, $$($nesting, 'String'), "to_str"); if ($truthy(const_name['$[]'](0)['$!='](const_name['$[]'](0).$upcase()))) { - self.$raise(Opal.const_get_relative($nesting, 'NameError'), "" + "wrong constant name " + (const_name))}; + self.$raise($$($nesting, 'NameError'), "" + "wrong constant name " + (const_name))}; return const_name; - }, TMP_Opal_const_name$B_13.$$arity = 1); - Opal.defs(self, '$pristine', TMP_Opal_pristine_14 = function $$pristine(owner_class, $a_rest) { - var self = this, method_names; + }, $Opal_const_name$excl$11.$$arity = 1); + return (Opal.defs(self, '$pristine', $Opal_pristine$12 = function $$pristine(owner_class, $a) { + var $post_args, method_names, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - method_names = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - method_names[$arg_idx - 1] = arguments[$arg_idx]; - } + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + method_names = $post_args;; + var method_name, method; for (var i = method_names.length - 1; i >= 0; i--) { method_name = method_names[i]; - method = owner_class.$$proto['$'+method_name]; + method = owner_class.$$prototype['$'+method_name]; + if (method && !method.$$stub) { method.$$pristine = true; } } ; return nil; - }, TMP_Opal_pristine_14.$$arity = -2); + }, $Opal_pristine$12.$$arity = -2), nil) && 'pristine'; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/module"] = function(Opal) { +Opal.modules["corelib/module"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $range = Opal.range, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $lambda = Opal.lambda, $range = Opal.range, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$===', '$raise', '$equal?', '$<', '$>', '$nil?', '$attr_reader', '$attr_writer', '$class_variable_name!', '$new', '$const_name!', '$=~', '$inject', '$split', '$const_get', '$==', '$!', '$start_with?', '$to_proc', '$lambda', '$bind', '$call', '$class', '$append_features', '$included', '$name', '$cover?', '$size', '$merge', '$compile', '$proc', '$+', '$to_s', '$__id__', '$constants', '$include?', '$copy_class_variables', '$copy_constants']); + Opal.add_stubs(['$module_eval', '$to_proc', '$===', '$raise', '$equal?', '$<', '$>', '$nil?', '$attr_reader', '$attr_writer', '$warn', '$attr_accessor', '$const_name?', '$class_variable_name!', '$const_name!', '$=~', '$new', '$inject', '$split', '$const_get', '$==', '$!~', '$start_with?', '$bind', '$call', '$class', '$append_features', '$included', '$name', '$cover?', '$size', '$merge', '$compile', '$proc', '$any?', '$prepend_features', '$prepended', '$to_s', '$__id__', '$constants', '$include?', '$copy_class_variables', '$copy_constants', '$define_singleton_method', '$inspect', '$class_exec']); return (function($base, $super, $parent_nesting) { - function $Module(){}; - var self = $Module = $klass($base, $super, 'Module', $Module); + var self = $klass($base, $super, 'Module'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Module_allocate_1, TMP_Module_initialize_2, TMP_Module_$eq$eq$eq_3, TMP_Module_$lt_4, TMP_Module_$lt$eq_5, TMP_Module_$gt_6, TMP_Module_$gt$eq_7, TMP_Module_$lt$eq$gt_8, TMP_Module_alias_method_9, TMP_Module_alias_native_10, TMP_Module_ancestors_11, TMP_Module_append_features_12, TMP_Module_attr_accessor_13, TMP_Module_attr_reader_14, TMP_Module_attr_writer_15, TMP_Module_autoload_16, TMP_Module_class_variables_17, TMP_Module_class_variable_get_18, TMP_Module_class_variable_set_19, TMP_Module_class_variable_defined$q_20, TMP_Module_remove_class_variable_21, TMP_Module_constants_22, TMP_Module_constants_23, TMP_Module_nesting_24, TMP_Module_const_defined$q_25, TMP_Module_const_get_27, TMP_Module_const_missing_28, TMP_Module_const_set_29, TMP_Module_public_constant_30, TMP_Module_define_method_31, TMP_Module_remove_method_33, TMP_Module_singleton_class$q_34, TMP_Module_include_35, TMP_Module_included_modules_36, TMP_Module_include$q_37, TMP_Module_instance_method_38, TMP_Module_instance_methods_39, TMP_Module_included_40, TMP_Module_extended_41, TMP_Module_method_added_42, TMP_Module_method_removed_43, TMP_Module_method_undefined_44, TMP_Module_module_eval_45, TMP_Module_module_exec_47, TMP_Module_method_defined$q_48, TMP_Module_module_function_49, TMP_Module_name_50, TMP_Module_remove_const_51, TMP_Module_to_s_52, TMP_Module_undef_method_53, TMP_Module_instance_variables_54, TMP_Module_dup_55, TMP_Module_copy_class_variables_56, TMP_Module_copy_constants_57; + var $nesting = [self].concat($parent_nesting), $Module_allocate$1, $Module_initialize$2, $Module_$eq_eq_eq$3, $Module_$lt$4, $Module_$lt_eq$5, $Module_$gt$6, $Module_$gt_eq$7, $Module_$lt_eq_gt$8, $Module_alias_method$9, $Module_alias_native$10, $Module_ancestors$11, $Module_append_features$12, $Module_attr_accessor$13, $Module_attr$14, $Module_attr_reader$15, $Module_attr_writer$16, $Module_autoload$17, $Module_autoload$ques$18, $Module_class_variables$19, $Module_class_variable_get$20, $Module_class_variable_set$21, $Module_class_variable_defined$ques$22, $Module_remove_class_variable$23, $Module_constants$24, $Module_constants$25, $Module_nesting$26, $Module_const_defined$ques$27, $Module_const_get$28, $Module_const_missing$30, $Module_const_set$31, $Module_public_constant$32, $Module_define_method$33, $Module_remove_method$35, $Module_singleton_class$ques$36, $Module_include$37, $Module_included_modules$38, $Module_include$ques$39, $Module_instance_method$40, $Module_instance_methods$41, $Module_included$42, $Module_extended$43, $Module_extend_object$44, $Module_method_added$45, $Module_method_removed$46, $Module_method_undefined$47, $Module_module_eval$48, $Module_module_exec$50, $Module_method_defined$ques$51, $Module_module_function$52, $Module_name$53, $Module_prepend$54, $Module_prepend_features$55, $Module_prepended$56, $Module_remove_const$57, $Module_to_s$58, $Module_undef_method$59, $Module_instance_variables$60, $Module_dup$61, $Module_copy_class_variables$62, $Module_copy_constants$63, $Module_refine$64, $Module_using$66; - Opal.defs(self, '$allocate', TMP_Module_allocate_1 = function $$allocate() { + Opal.defs(self, '$allocate', $Module_allocate$1 = function $$allocate() { var self = this; - var module; - - module = Opal.module_allocate(self); + var module = Opal.allocate_module(nil, function(){}); + // Link the prototype of Module subclasses + if (self !== Opal.Module) Object.setPrototypeOf(module, self.$$prototype); return module; - }, TMP_Module_allocate_1.$$arity = 0); + }, $Module_allocate$1.$$arity = 0); - Opal.defn(self, '$initialize', TMP_Module_initialize_2 = function $$initialize() { - var self = this, $iter = TMP_Module_initialize_2.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Module_initialize$2 = function $$initialize() { + var $iter = $Module_initialize$2.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Module_initialize_2.$$p = null; - return Opal.module_initialize(self, block) - }, TMP_Module_initialize_2.$$arity = 0); + if ($iter) $Module_initialize$2.$$p = null; + + + if ($iter) $Module_initialize$2.$$p = null;; + if ((block !== nil)) { + return $send(self, 'module_eval', [], block.$to_proc()) + } else { + return nil + }; + }, $Module_initialize$2.$$arity = 0); - Opal.defn(self, '$===', TMP_Module_$eq$eq$eq_3 = function(object) { + Opal.def(self, '$===', $Module_$eq_eq_eq$3 = function(object) { var self = this; if ($truthy(object == null)) { return false}; - return Opal.is_a(object, self); - }, TMP_Module_$eq$eq$eq_3.$$arity = 1); + return Opal.is_a(object, self);; + }, $Module_$eq_eq_eq$3.$$arity = 1); - Opal.defn(self, '$<', TMP_Module_$lt_4 = function(other) { + Opal.def(self, '$<', $Module_$lt$4 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Module')['$==='](other))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "compared with non class/module") + if ($truthy($$($nesting, 'Module')['$==='](other))) { + } else { + self.$raise($$($nesting, 'TypeError'), "compared with non class/module") }; var working = self, @@ -2547,32 +3024,40 @@ Opal.modules["corelib/module"] = function(Opal) { return nil; ; - }, TMP_Module_$lt_4.$$arity = 1); + }, $Module_$lt$4.$$arity = 1); - Opal.defn(self, '$<=', TMP_Module_$lt$eq_5 = function(other) { - var $a, self = this; + Opal.def(self, '$<=', $Module_$lt_eq$5 = function(other) { + var self = this, $ret_or_1 = nil; - return ($truthy($a = self['$equal?'](other)) ? $a : $rb_lt(self, other)) - }, TMP_Module_$lt$eq_5.$$arity = 1); + if ($truthy(($ret_or_1 = self['$equal?'](other)))) { + return $ret_or_1 + } else { + return $rb_lt(self, other) + } + }, $Module_$lt_eq$5.$$arity = 1); - Opal.defn(self, '$>', TMP_Module_$gt_6 = function(other) { + Opal.def(self, '$>', $Module_$gt$6 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Module')['$==='](other))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "compared with non class/module") + if ($truthy($$($nesting, 'Module')['$==='](other))) { + } else { + self.$raise($$($nesting, 'TypeError'), "compared with non class/module") }; return $rb_lt(other, self); - }, TMP_Module_$gt_6.$$arity = 1); + }, $Module_$gt$6.$$arity = 1); - Opal.defn(self, '$>=', TMP_Module_$gt$eq_7 = function(other) { - var $a, self = this; + Opal.def(self, '$>=', $Module_$gt_eq$7 = function(other) { + var self = this, $ret_or_2 = nil; - return ($truthy($a = self['$equal?'](other)) ? $a : $rb_gt(self, other)) - }, TMP_Module_$gt$eq_7.$$arity = 1); + if ($truthy(($ret_or_2 = self['$equal?'](other)))) { + return $ret_or_2 + } else { + return $rb_gt(self, other) + } + }, $Module_$gt_eq$7.$$arity = 1); - Opal.defn(self, '$<=>', TMP_Module_$lt$eq$gt_8 = function(other) { + Opal.def(self, '$<=>', $Module_$lt_eq_gt$8 = function(other) { var self = this, lt = nil; @@ -2581,8 +3066,8 @@ Opal.modules["corelib/module"] = function(Opal) { return 0; } ; - if ($truthy(Opal.const_get_relative($nesting, 'Module')['$==='](other))) { - } else { + if ($truthy($$($nesting, 'Module')['$==='](other))) { + } else { return nil }; lt = $rb_lt(self, other); @@ -2590,71 +3075,88 @@ Opal.modules["corelib/module"] = function(Opal) { return nil}; if ($truthy(lt)) { return -1 - } else { + } else { return 1 }; - }, TMP_Module_$lt$eq$gt_8.$$arity = 1); + }, $Module_$lt_eq_gt$8.$$arity = 1); - Opal.defn(self, '$alias_method', TMP_Module_alias_method_9 = function $$alias_method(newname, oldname) { + Opal.def(self, '$alias_method', $Module_alias_method$9 = function $$alias_method(newname, oldname) { var self = this; + newname = $coerce_to(newname, $$($nesting, 'String'), 'to_str'); + oldname = $coerce_to(oldname, $$($nesting, 'String'), 'to_str'); Opal.alias(self, newname, oldname); return self; - }, TMP_Module_alias_method_9.$$arity = 2); + }, $Module_alias_method$9.$$arity = 2); - Opal.defn(self, '$alias_native', TMP_Module_alias_native_10 = function $$alias_native(mid, jsid) { + Opal.def(self, '$alias_native', $Module_alias_native$10 = function $$alias_native(mid, jsid) { var self = this; + + if (jsid == null) { jsid = mid; - } - + }; Opal.alias_native(self, mid, jsid); return self; - }, TMP_Module_alias_native_10.$$arity = -2); + }, $Module_alias_native$10.$$arity = -2); - Opal.defn(self, '$ancestors', TMP_Module_ancestors_11 = function $$ancestors() { + Opal.def(self, '$ancestors', $Module_ancestors$11 = function $$ancestors() { var self = this; - return Opal.ancestors(self) - }, TMP_Module_ancestors_11.$$arity = 0); + return Opal.ancestors(self); + }, $Module_ancestors$11.$$arity = 0); - Opal.defn(self, '$append_features', TMP_Module_append_features_12 = function $$append_features(includer) { + Opal.def(self, '$append_features', $Module_append_features$12 = function $$append_features(includer) { var self = this; Opal.append_features(self, includer); return self; - }, TMP_Module_append_features_12.$$arity = 1); + }, $Module_append_features$12.$$arity = 1); - Opal.defn(self, '$attr_accessor', TMP_Module_attr_accessor_13 = function $$attr_accessor($a_rest) { - var self = this, names; + Opal.def(self, '$attr_accessor', $Module_attr_accessor$13 = function $$attr_accessor($a) { + var $post_args, names, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; $send(self, 'attr_reader', Opal.to_a(names)); return $send(self, 'attr_writer', Opal.to_a(names)); - }, TMP_Module_attr_accessor_13.$$arity = -1); - Opal.alias(self, "attr", "attr_accessor"); + }, $Module_attr_accessor$13.$$arity = -1); - Opal.defn(self, '$attr_reader', TMP_Module_attr_reader_14 = function $$attr_reader($a_rest) { - var self = this, names; + Opal.def(self, '$attr', $Module_attr$14 = function $$attr($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + + if (args.length == 2 && (args[1] === true || args[1] === false)) { + self.$warn("optional boolean argument is obsoleted", $hash2(["uplevel"], {"uplevel": 1})) - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; + args[1] ? self.$attr_accessor(args[0]) : self.$attr_reader(args[0]); + return nil; } + ; + return $send(self, 'attr_reader', Opal.to_a(args)); + }, $Module_attr$14.$$arity = -1); + + Opal.def(self, '$attr_reader', $Module_attr_reader$15 = function $$attr_reader($a) { + var $post_args, names, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + names = $post_args;; - var proto = self.$$proto; + var proto = self.$$prototype; for (var i = names.length - 1; i >= 0; i--) { var name = names[i], @@ -2675,34 +3177,27 @@ Opal.modules["corelib/module"] = function(Opal) { })(ivar); // initialize the instance variable as nil - proto[ivar] = nil; + Opal.defineProperty(proto, ivar, nil); body.$$parameters = []; body.$$arity = 0; - if (self.$$is_singleton) { - proto.constructor.prototype[id] = body; - } - else { - Opal.defn(self, id, body); - } + Opal.defn(self, id, body); } ; return nil; - }, TMP_Module_attr_reader_14.$$arity = -1); + }, $Module_attr_reader$15.$$arity = -1); - Opal.defn(self, '$attr_writer', TMP_Module_attr_writer_15 = function $$attr_writer($a_rest) { - var self = this, names; + Opal.def(self, '$attr_writer', $Module_attr_writer$16 = function $$attr_writer($a) { + var $post_args, names, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } - var proto = self.$$proto; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; + + var proto = self.$$prototype; for (var i = names.length - 1; i >= 0; i--) { var name = names[i], @@ -2721,94 +3216,118 @@ Opal.modules["corelib/module"] = function(Opal) { body.$$arity = 1; // initialize the instance variable as nil - proto[ivar] = nil; + Opal.defineProperty(proto, ivar, nil); - if (self.$$is_singleton) { - proto.constructor.prototype[id] = body; - } - else { - Opal.defn(self, id, body); - } + Opal.defn(self, id, body); } ; return nil; - }, TMP_Module_attr_writer_15.$$arity = -1); + }, $Module_attr_writer$16.$$arity = -1); + + Opal.def(self, '$autoload', $Module_autoload$17 = function $$autoload(const$, path) { + var self = this; + + + if (!$$($nesting, 'Opal')['$const_name?'](const$)) { + self.$raise($$($nesting, 'NameError'), "" + "autoload must be constant name: " + (const$)) + } + + if (path == "") { + self.$raise($$($nesting, 'ArgumentError'), "empty file name") + } + + if (!self.$$const.hasOwnProperty(const$)) { + if (!self.$$autoload) { + self.$$autoload = {}; + } + Opal.const_cache_version++; + self.$$autoload[const$] = { path: path, loaded: false, required: false, success: false, exception: false }; + } + return nil; - Opal.defn(self, '$autoload', TMP_Module_autoload_16 = function $$autoload(const$, path) { + }, $Module_autoload$17.$$arity = 2); + + Opal.def(self, '$autoload?', $Module_autoload$ques$18 = function(const$) { var self = this; - if (self.$$autoload == null) self.$$autoload = {}; - Opal.const_cache_version++; - self.$$autoload[const$] = path; + if (self.$$autoload && self.$$autoload[const$] && !self.$$autoload[const$].required && !self.$$autoload[const$].success) { + return self.$$autoload[const$].path; + } + + var ancestors = self.$ancestors(); + + for (var i = 0, length = ancestors.length; i < length; i++) { + if (ancestors[i].$$autoload && ancestors[i].$$autoload[const$] && !ancestors[i].$$autoload[const$].required && !ancestors[i].$$autoload[const$].success) { + return ancestors[i].$$autoload[const$].path; + } + } return nil; - }, TMP_Module_autoload_16.$$arity = 2); + }, $Module_autoload$ques$18.$$arity = 1); - Opal.defn(self, '$class_variables', TMP_Module_class_variables_17 = function $$class_variables() { + Opal.def(self, '$class_variables', $Module_class_variables$19 = function $$class_variables() { var self = this; - return Object.keys(Opal.class_variables(self)) - }, TMP_Module_class_variables_17.$$arity = 0); + return Object.keys(Opal.class_variables(self)); + }, $Module_class_variables$19.$$arity = 0); - Opal.defn(self, '$class_variable_get', TMP_Module_class_variable_get_18 = function $$class_variable_get(name) { + Opal.def(self, '$class_variable_get', $Module_class_variable_get$20 = function $$class_variable_get(name) { var self = this; - name = Opal.const_get_relative($nesting, 'Opal')['$class_variable_name!'](name); - - var value = Opal.class_variables(self)[name]; - if (value == null) { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "uninitialized class variable " + (name) + " in " + (self), name)) - } - return value; - ; - }, TMP_Module_class_variable_get_18.$$arity = 1); + name = $$($nesting, 'Opal')['$class_variable_name!'](name); + return Opal.class_variable_get(self, name, false);; + }, $Module_class_variable_get$20.$$arity = 1); - Opal.defn(self, '$class_variable_set', TMP_Module_class_variable_set_19 = function $$class_variable_set(name, value) { + Opal.def(self, '$class_variable_set', $Module_class_variable_set$21 = function $$class_variable_set(name, value) { var self = this; - name = Opal.const_get_relative($nesting, 'Opal')['$class_variable_name!'](name); - return Opal.class_variable_set(self, name, value); - }, TMP_Module_class_variable_set_19.$$arity = 2); + name = $$($nesting, 'Opal')['$class_variable_name!'](name); + return Opal.class_variable_set(self, name, value);; + }, $Module_class_variable_set$21.$$arity = 2); - Opal.defn(self, '$class_variable_defined?', TMP_Module_class_variable_defined$q_20 = function(name) { + Opal.def(self, '$class_variable_defined?', $Module_class_variable_defined$ques$22 = function(name) { var self = this; - name = Opal.const_get_relative($nesting, 'Opal')['$class_variable_name!'](name); - return Opal.class_variables(self).hasOwnProperty(name); - }, TMP_Module_class_variable_defined$q_20.$$arity = 1); + name = $$($nesting, 'Opal')['$class_variable_name!'](name); + return Opal.class_variables(self).hasOwnProperty(name);; + }, $Module_class_variable_defined$ques$22.$$arity = 1); - Opal.defn(self, '$remove_class_variable', TMP_Module_remove_class_variable_21 = function $$remove_class_variable(name) { + Opal.def(self, '$remove_class_variable', $Module_remove_class_variable$23 = function $$remove_class_variable(name) { var self = this; - name = Opal.const_get_relative($nesting, 'Opal')['$class_variable_name!'](name); + name = $$($nesting, 'Opal')['$class_variable_name!'](name); if (Opal.hasOwnProperty.call(self.$$cvars, name)) { var value = self.$$cvars[name]; delete self.$$cvars[name]; return value; } else { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "cannot remove " + (name) + " for " + (self))) + self.$raise($$($nesting, 'NameError'), "" + "cannot remove " + (name) + " for " + (self)) } ; - }, TMP_Module_remove_class_variable_21.$$arity = 1); + }, $Module_remove_class_variable$23.$$arity = 1); - Opal.defn(self, '$constants', TMP_Module_constants_22 = function $$constants(inherit) { + Opal.def(self, '$constants', $Module_constants$24 = function $$constants(inherit) { var self = this; + + if (inherit == null) { inherit = true; - } - return Opal.constants(self, inherit) - }, TMP_Module_constants_22.$$arity = -1); - Opal.defs(self, '$constants', TMP_Module_constants_23 = function $$constants(inherit) { + }; + return Opal.constants(self, inherit);; + }, $Module_constants$24.$$arity = -1); + Opal.defs(self, '$constants', $Module_constants$25 = function $$constants(inherit) { var self = this; + ; + if (inherit == null) { var nesting = (self.$$nesting || []).concat(Opal.Object), constant, constants = {}, @@ -2823,25 +3342,26 @@ Opal.modules["corelib/module"] = function(Opal) { } else { return Opal.constants(self, inherit) } - - }, TMP_Module_constants_23.$$arity = -1); - Opal.defs(self, '$nesting', TMP_Module_nesting_24 = function $$nesting() { + ; + }, $Module_constants$25.$$arity = -1); + Opal.defs(self, '$nesting', $Module_nesting$26 = function $$nesting() { var self = this; - return self.$$nesting || [] - }, TMP_Module_nesting_24.$$arity = 0); + return self.$$nesting || []; + }, $Module_nesting$26.$$arity = 0); - Opal.defn(self, '$const_defined?', TMP_Module_const_defined$q_25 = function(name, inherit) { + Opal.def(self, '$const_defined?', $Module_const_defined$ques$27 = function(name, inherit) { var self = this; + + if (inherit == null) { inherit = true; - } - - name = Opal.const_get_relative($nesting, 'Opal')['$const_name!'](name); - if ($truthy(name['$=~'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'CONST_NAME_REGEXP')))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "wrong constant name " + (name), name)) + }; + name = $$($nesting, 'Opal')['$const_name!'](name); + if ($truthy(name['$=~']($$$($$($nesting, 'Opal'), 'CONST_NAME_REGEXP')))) { + } else { + self.$raise($$($nesting, 'NameError').$new("" + "wrong constant name " + (name), name)) }; var module, modules = [self], module_constants, i, ii; @@ -2858,107 +3378,121 @@ Opal.modules["corelib/module"] = function(Opal) { for (i = 0, ii = modules.length; i < ii; i++) { module = modules[i]; - if (module.$$const[name] != null) { + if (module.$$const[name] != null) { return true; } + if ( + module.$$autoload && + module.$$autoload[name] && + !module.$$autoload[name].required && + !module.$$autoload[name].success + ) { return true; } } return false; ; - }, TMP_Module_const_defined$q_25.$$arity = -2); + }, $Module_const_defined$ques$27.$$arity = -2); - Opal.defn(self, '$const_get', TMP_Module_const_get_27 = function $$const_get(name, inherit) { - var TMP_26, self = this; + Opal.def(self, '$const_get', $Module_const_get$28 = function $$const_get(name, inherit) { + var $$29, self = this; + + if (inherit == null) { inherit = true; - } - - name = Opal.const_get_relative($nesting, 'Opal')['$const_name!'](name); + }; + name = $$($nesting, 'Opal')['$const_name!'](name); if (name.indexOf('::') === 0 && name !== '::'){ name = name.slice(2); } ; if ($truthy(name.indexOf('::') != -1 && name != '::')) { - return $send(name.$split("::"), 'inject', [self], (TMP_26 = function(o, c){var self = TMP_26.$$s || this; -if (o == null) o = nil;if (c == null) c = nil; - return o.$const_get(c)}, TMP_26.$$s = self, TMP_26.$$arity = 2, TMP_26))}; - if ($truthy(name['$=~'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'CONST_NAME_REGEXP')))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "wrong constant name " + (name), name)) + return $send(name.$split("::"), 'inject', [self], ($$29 = function(o, c){var self = $$29.$$s == null ? this : $$29.$$s; + + + + if (o == null) { + o = nil; + }; + + if (c == null) { + c = nil; + }; + return o.$const_get(c);}, $$29.$$s = self, $$29.$$arity = 2, $$29))}; + if ($truthy(name['$=~']($$$($$($nesting, 'Opal'), 'CONST_NAME_REGEXP')))) { + } else { + self.$raise($$($nesting, 'NameError').$new("" + "wrong constant name " + (name), name)) }; if (inherit) { - return Opal.const_get_relative([self], name); + return $$([self], name); } else { return Opal.const_get_local(self, name); } ; - }, TMP_Module_const_get_27.$$arity = -2); + }, $Module_const_get$28.$$arity = -2); - Opal.defn(self, '$const_missing', TMP_Module_const_missing_28 = function $$const_missing(name) { + Opal.def(self, '$const_missing', $Module_const_missing$30 = function $$const_missing(name) { var self = this, full_const_name = nil; - - if (self.$$autoload) { - var file = self.$$autoload[name]; - - if (file) { - self.$require(file); - - return self.$const_get(name); - } - } - ; - full_const_name = (function() {if (self['$=='](Opal.const_get_relative($nesting, 'Object'))) { + full_const_name = (function() {if (self['$==']($$($nesting, 'Object'))) { return name - } else { + } else { return "" + (self) + "::" + (name) }; return nil; })(); - return self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "uninitialized constant " + (full_const_name), name)); - }, TMP_Module_const_missing_28.$$arity = 1); + return self.$raise($$($nesting, 'NameError').$new("" + "uninitialized constant " + (full_const_name), name)); + }, $Module_const_missing$30.$$arity = 1); - Opal.defn(self, '$const_set', TMP_Module_const_set_29 = function $$const_set(name, value) { - var $a, self = this; + Opal.def(self, '$const_set', $Module_const_set$31 = function $$const_set(name, value) { + var self = this, $ret_or_3 = nil; - name = Opal.const_get_relative($nesting, 'Opal')['$const_name!'](name); - if ($truthy(($truthy($a = name['$=~'](Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Opal'), 'CONST_NAME_REGEXP'))['$!']()) ? $a : name['$start_with?']("::")))) { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "wrong constant name " + (name), name))}; + name = $$($nesting, 'Opal')['$const_name!'](name); + if ($truthy((function() {if ($truthy(($ret_or_3 = name['$!~']($$$($$($nesting, 'Opal'), 'CONST_NAME_REGEXP'))))) { + return $ret_or_3 + } else { + return name['$start_with?']("::") + }; return nil; })())) { + self.$raise($$($nesting, 'NameError').$new("" + "wrong constant name " + (name), name))}; Opal.const_set(self, name, value); return value; - }, TMP_Module_const_set_29.$$arity = 2); + }, $Module_const_set$31.$$arity = 2); - Opal.defn(self, '$public_constant', TMP_Module_public_constant_30 = function $$public_constant(const_name) { + Opal.def(self, '$public_constant', $Module_public_constant$32 = function $$public_constant(const_name) { var self = this; return nil - }, TMP_Module_public_constant_30.$$arity = 1); + }, $Module_public_constant$32.$$arity = 1); - Opal.defn(self, '$define_method', TMP_Module_define_method_31 = function $$define_method(name, method) { - var $a, TMP_32, self = this, $iter = TMP_Module_define_method_31.$$p, block = $iter || nil, $case = nil; + Opal.def(self, '$define_method', $Module_define_method$33 = function $$define_method(name, method) { + var $iter = $Module_define_method$33.$$p, block = $iter || nil, $$34, self = this, $ret_or_4 = nil, $case = nil; - if ($iter) TMP_Module_define_method_31.$$p = null; + if ($iter) $Module_define_method$33.$$p = null; + + if ($iter) $Module_define_method$33.$$p = null;; + ; if ($truthy(method === undefined && block === nil)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to create a Proc object without a block")}; - block = ($truthy($a = block) ? $a : (function() {$case = method; - if (Opal.const_get_relative($nesting, 'Proc')['$===']($case)) {return method} - else if (Opal.const_get_relative($nesting, 'Method')['$===']($case)) {return method.$to_proc().$$unbound} - else if (Opal.const_get_relative($nesting, 'UnboundMethod')['$===']($case)) {return $send(self, 'lambda', [], (TMP_32 = function($b_rest){var self = TMP_32.$$s || this, args, bound = nil; + self.$raise($$($nesting, 'ArgumentError'), "tried to create a Proc object without a block")}; + block = (function() {if ($truthy(($ret_or_4 = block))) { + return $ret_or_4 + } else { + return (function() {$case = method; + if ($$($nesting, 'Proc')['$===']($case)) {return method} + else if ($$($nesting, 'Method')['$===']($case)) {return method.$to_proc().$$unbound} + else if ($$($nesting, 'UnboundMethod')['$===']($case)) {return $lambda(($$34 = function($a){var self = $$34.$$s == null ? this : $$34.$$s, $post_args, args, bound = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - bound = method.$bind(self); - return $send(bound, 'call', Opal.to_a(args));}, TMP_32.$$s = self, TMP_32.$$arity = -1, TMP_32))} - else {return self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "wrong argument type " + (block.$class()) + " (expected Proc/Method)")}})()); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + bound = method.$bind(self); + return $send(bound, 'call', Opal.to_a(args));}, $$34.$$s = self, $$34.$$arity = -1, $$34))} + else {return self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (block.$class()) + " (expected Proc/Method)")}})() + }; return nil; })(); var id = '$' + name; @@ -2971,48 +3505,44 @@ if (o == null) o = nil;if (c == null) c = nil; return name; ; - }, TMP_Module_define_method_31.$$arity = -2); + }, $Module_define_method$33.$$arity = -2); - Opal.defn(self, '$remove_method', TMP_Module_remove_method_33 = function $$remove_method($a_rest) { - var self = this, names; + Opal.def(self, '$remove_method', $Module_remove_method$35 = function $$remove_method($a) { + var $post_args, names, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; - } + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; + for (var i = 0, length = names.length; i < length; i++) { Opal.rdef(self, "$" + names[i]); } ; return self; - }, TMP_Module_remove_method_33.$$arity = -1); + }, $Module_remove_method$35.$$arity = -1); - Opal.defn(self, '$singleton_class?', TMP_Module_singleton_class$q_34 = function() { + Opal.def(self, '$singleton_class?', $Module_singleton_class$ques$36 = function() { var self = this; - return !!self.$$is_singleton - }, TMP_Module_singleton_class$q_34.$$arity = 0); + return !!self.$$is_singleton; + }, $Module_singleton_class$ques$36.$$arity = 0); - Opal.defn(self, '$include', TMP_Module_include_35 = function $$include($a_rest) { - var self = this, mods; + Opal.def(self, '$include', $Module_include$37 = function $$include($a) { + var $post_args, mods, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - mods = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - mods[$arg_idx - 0] = arguments[$arg_idx]; - } + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + mods = $post_args;; + for (var i = mods.length - 1; i >= 0; i--) { var mod = mods[i]; if (!mod.$$is_module) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); } (mod).$append_features(self); @@ -3020,45 +3550,20 @@ if (o == null) o = nil;if (c == null) c = nil; } ; return self; - }, TMP_Module_include_35.$$arity = -1); + }, $Module_include$37.$$arity = -1); - Opal.defn(self, '$included_modules', TMP_Module_included_modules_36 = function $$included_modules() { + Opal.def(self, '$included_modules', $Module_included_modules$38 = function $$included_modules() { var self = this; - - var results; - - var module_chain = function(klass) { - var included = []; - - for (var i = 0, ii = klass.$$inc.length; i < ii; i++) { - var mod_or_class = klass.$$inc[i]; - included.push(mod_or_class); - included = included.concat(module_chain(mod_or_class)); - } - - return included; - }; - - results = module_chain(self); - - // need superclass's modules - if (self.$$is_class) { - for (var cls = self; cls; cls = cls.$$super) { - results = results.concat(module_chain(cls)); - } - } - - return results; - - }, TMP_Module_included_modules_36.$$arity = 0); + return Opal.included_modules(self); + }, $Module_included_modules$38.$$arity = 0); - Opal.defn(self, '$include?', TMP_Module_include$q_37 = function(mod) { + Opal.def(self, '$include?', $Module_include$ques$39 = function(mod) { var self = this; if (!mod.$$is_module) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); } var i, ii, mod2, ancestors = Opal.ancestors(self); @@ -3072,129 +3577,128 @@ if (o == null) o = nil;if (c == null) c = nil; return false; - }, TMP_Module_include$q_37.$$arity = 1); + }, $Module_include$ques$39.$$arity = 1); - Opal.defn(self, '$instance_method', TMP_Module_instance_method_38 = function $$instance_method(name) { + Opal.def(self, '$instance_method', $Module_instance_method$40 = function $$instance_method(name) { var self = this; - var meth = self.$$proto['$' + name]; + var meth = self.$$prototype['$' + name]; if (!meth || meth.$$stub) { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "undefined method `" + (name) + "' for class `" + (self.$name()) + "'", name)); + self.$raise($$($nesting, 'NameError').$new("" + "undefined method `" + (name) + "' for class `" + (self.$name()) + "'", name)); } - return Opal.const_get_relative($nesting, 'UnboundMethod').$new(self, meth.$$owner || self, meth, name); + return $$($nesting, 'UnboundMethod').$new(self, meth.$$owner || self, meth, name); - }, TMP_Module_instance_method_38.$$arity = 1); + }, $Module_instance_method$40.$$arity = 1); - Opal.defn(self, '$instance_methods', TMP_Module_instance_methods_39 = function $$instance_methods(include_super) { + Opal.def(self, '$instance_methods', $Module_instance_methods$41 = function $$instance_methods(include_super) { var self = this; + + if (include_super == null) { include_super = true; - } + }; - var value, - methods = [], - proto = self.$$proto; - - for (var prop in proto) { - if (prop.charAt(0) !== '$' || prop.charAt(1) === '$') { - continue; - } - - value = proto[prop]; - - if (typeof(value) !== "function") { - continue; - } - - if (value.$$stub) { - continue; - } - - if (!self.$$is_module) { - if (self !== Opal.BasicObject && value === Opal.BasicObject.$$proto[prop]) { - continue; - } - - if (!include_super && !proto.hasOwnProperty(prop)) { - continue; - } - - if (!include_super && value.$$donated) { - continue; - } - } - - methods.push(prop.substr(1)); + if ($truthy(include_super)) { + return Opal.instance_methods(self); + } else { + return Opal.own_instance_methods(self); } - - return methods; - - }, TMP_Module_instance_methods_39.$$arity = -1); - - Opal.defn(self, '$included', TMP_Module_included_40 = function $$included(mod) { - var self = this; - - return nil - }, TMP_Module_included_40.$$arity = 1); + ; + }, $Module_instance_methods$41.$$arity = -1); - Opal.defn(self, '$extended', TMP_Module_extended_41 = function $$extended(mod) { + Opal.def(self, '$included', $Module_included$42 = function $$included(mod) { var self = this; return nil - }, TMP_Module_extended_41.$$arity = 1); + }, $Module_included$42.$$arity = 1); - Opal.defn(self, '$method_added', TMP_Module_method_added_42 = function $$method_added($a_rest) { + Opal.def(self, '$extended', $Module_extended$43 = function $$extended(mod) { var self = this; return nil - }, TMP_Module_method_added_42.$$arity = -1); + }, $Module_extended$43.$$arity = 1); - Opal.defn(self, '$method_removed', TMP_Module_method_removed_43 = function $$method_removed($a_rest) { + Opal.def(self, '$extend_object', $Module_extend_object$44 = function $$extend_object(object) { var self = this; return nil - }, TMP_Module_method_removed_43.$$arity = -1); + }, $Module_extend_object$44.$$arity = 1); - Opal.defn(self, '$method_undefined', TMP_Module_method_undefined_44 = function $$method_undefined($a_rest) { - var self = this; + Opal.def(self, '$method_added', $Module_method_added$45 = function $$method_added($a) { + var $post_args, $rest_arg, self = this; - return nil - }, TMP_Module_method_undefined_44.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return nil; + }, $Module_method_added$45.$$arity = -1); - Opal.defn(self, '$module_eval', TMP_Module_module_eval_45 = function $$module_eval($a_rest) { - var $b, TMP_46, self = this, args, $iter = TMP_Module_module_eval_45.$$p, block = $iter || nil, string = nil, file = nil, _lineno = nil, default_eval_options = nil, compiling_options = nil, compiled = nil; + Opal.def(self, '$method_removed', $Module_method_removed$46 = function $$method_removed($a) { + var $post_args, $rest_arg, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Module_module_eval_45.$$p = null; - if ($truthy(($truthy($b = block['$nil?']()) ? !!Opal.compile : $b))) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return nil; + }, $Module_method_removed$46.$$arity = -1); + + Opal.def(self, '$method_undefined', $Module_method_undefined$47 = function $$method_undefined($a) { + var $post_args, $rest_arg, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return nil; + }, $Module_method_undefined$47.$$arity = -1); + + Opal.def(self, '$module_eval', $Module_module_eval$48 = function $$module_eval($a) { + var $iter = $Module_module_eval$48.$$p, block = $iter || nil, $post_args, args, $b, $$49, self = this, $ret_or_5 = nil, string = nil, file = nil, _lineno = nil, default_eval_options = nil, $ret_or_6 = nil, compiling_options = nil, compiled = nil; + + if ($iter) $Module_module_eval$48.$$p = null; + + + if ($iter) $Module_module_eval$48.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_5 = block['$nil?']()))) { + return !!Opal.compile; + } else { + return $ret_or_5 + }; return nil; })())) { if ($truthy($range(1, 3, false)['$cover?'](args.$size()))) { - } else { - Opal.const_get_relative($nesting, 'Kernel').$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1..3)") + } else { + $$($nesting, 'Kernel').$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1..3)") }; $b = [].concat(Opal.to_a(args)), (string = ($b[0] == null ? nil : $b[0])), (file = ($b[1] == null ? nil : $b[1])), (_lineno = ($b[2] == null ? nil : $b[2])), $b; - default_eval_options = $hash2(["file", "eval"], {"file": ($truthy($b = file) ? $b : "(eval)"), "eval": true}); + default_eval_options = $hash2(["file", "eval"], {"file": (function() {if ($truthy(($ret_or_6 = file))) { + return $ret_or_6 + } else { + return "(eval)" + }; return nil; })(), "eval": true}); compiling_options = Opal.hash({ arity_check: false }).$merge(default_eval_options); - compiled = Opal.const_get_relative($nesting, 'Opal').$compile(string, compiling_options); - block = $send(Opal.const_get_relative($nesting, 'Kernel'), 'proc', [], (TMP_46 = function(){var self = TMP_46.$$s || this; + compiled = $$($nesting, 'Opal').$compile(string, compiling_options); + block = $send($$($nesting, 'Kernel'), 'proc', [], ($$49 = function(){var self = $$49.$$s == null ? this : $$49.$$s; - + return (function(self) { return eval(compiled); })(self) - }, TMP_46.$$s = self, TMP_46.$$arity = 0, TMP_46)); - } else if ($truthy($rb_gt(args.$size(), 0))) { - Opal.const_get_relative($nesting, 'Kernel').$raise(Opal.const_get_relative($nesting, 'ArgumentError'), $rb_plus("" + "wrong number of arguments (" + (args.$size()) + " for 0)", "\n\n NOTE:If you want to enable passing a String argument please add \"require 'opal-parser'\" to your script\n"))}; + }, $$49.$$s = self, $$49.$$arity = 0, $$49)); + } else if ($truthy(args['$any?']())) { + $$($nesting, 'Kernel').$raise($$($nesting, 'ArgumentError'), "" + ("" + "wrong number of arguments (" + (args.$size()) + " for 0)") + "\n\n NOTE:If you want to enable passing a String argument please add \"require 'opal-parser'\" to your script\n")}; var old = block.$$s, result; @@ -3205,22 +3709,23 @@ if (o == null) o = nil;if (c == null) c = nil; return result; ; - }, TMP_Module_module_eval_45.$$arity = -1); - Opal.alias(self, "class_eval", "module_eval"); + }, $Module_module_eval$48.$$arity = -1); + $alias(self, "class_eval", "module_eval"); - Opal.defn(self, '$module_exec', TMP_Module_module_exec_47 = function $$module_exec($a_rest) { - var self = this, args, $iter = TMP_Module_module_exec_47.$$p, block = $iter || nil; + Opal.def(self, '$module_exec', $Module_module_exec$50 = function $$module_exec($a) { + var $iter = $Module_module_exec$50.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Module_module_exec_47.$$p = null; + if ($iter) $Module_module_exec$50.$$p = null; + + + if ($iter) $Module_module_exec$50.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if (block === nil) { - self.$raise(Opal.const_get_relative($nesting, 'LocalJumpError'), "no block given") + self.$raise($$($nesting, 'LocalJumpError'), "no block given") } var block_self = block.$$s, result; @@ -3230,28 +3735,27 @@ if (o == null) o = nil;if (c == null) c = nil; block.$$s = block_self; return result; + ; + }, $Module_module_exec$50.$$arity = -1); + $alias(self, "class_exec", "module_exec"); - }, TMP_Module_module_exec_47.$$arity = -1); - Opal.alias(self, "class_exec", "module_exec"); - - Opal.defn(self, '$method_defined?', TMP_Module_method_defined$q_48 = function(method) { + Opal.def(self, '$method_defined?', $Module_method_defined$ques$51 = function(method) { var self = this; - var body = self.$$proto['$' + method]; + var body = self.$$prototype['$' + method]; return (!!body) && !body.$$stub; - }, TMP_Module_method_defined$q_48.$$arity = 1); + }, $Module_method_defined$ques$51.$$arity = 1); - Opal.defn(self, '$module_function', TMP_Module_module_function_49 = function $$module_function($a_rest) { - var self = this, methods; + Opal.def(self, '$module_function', $Module_module_function$52 = function $$module_function($a) { + var $post_args, methods, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - methods = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - methods[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + methods = $post_args;; if (methods.length === 0) { self.$$module_function = true; @@ -3260,17 +3764,17 @@ if (o == null) o = nil;if (c == null) c = nil; for (var i = 0, length = methods.length; i < length; i++) { var meth = methods[i], id = '$' + meth, - func = self.$$proto[id]; + func = self.$$prototype[id]; Opal.defs(self, id, func); } } return self; + ; + }, $Module_module_function$52.$$arity = -1); - }, TMP_Module_module_function_49.$$arity = -1); - - Opal.defn(self, '$name', TMP_Module_name_50 = function $$name() { + Opal.def(self, '$name', $Module_name$53 = function $$name() { var self = this; @@ -3299,39 +3803,89 @@ if (o == null) o = nil;if (c == null) c = nil; return self.$$full_name = result.join('::'); - }, TMP_Module_name_50.$$arity = 0); + }, $Module_name$53.$$arity = 0); + + Opal.def(self, '$prepend', $Module_prepend$54 = function $$prepend($a) { + var $post_args, mods, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + mods = $post_args;; + + if (mods.length === 0) { + self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (given 0, expected 1+)") + } + + for (var i = mods.length - 1; i >= 0; i--) { + var mod = mods[i]; + + if (!mod.$$is_module) { + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); + } + + (mod).$prepend_features(self); + (mod).$prepended(self); + } + ; + return self; + }, $Module_prepend$54.$$arity = -1); + + Opal.def(self, '$prepend_features', $Module_prepend_features$55 = function $$prepend_features(prepender) { + var self = this; + + + + if (!self.$$is_module) { + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (self.$class()) + " (expected Module)"); + } + + Opal.prepend_features(self, prepender) + ; + return self; + }, $Module_prepend_features$55.$$arity = 1); - Opal.defn(self, '$remove_const', TMP_Module_remove_const_51 = function $$remove_const(name) { + Opal.def(self, '$prepended', $Module_prepended$56 = function $$prepended(mod) { var self = this; - return Opal.const_remove(self, name) - }, TMP_Module_remove_const_51.$$arity = 1); + return nil + }, $Module_prepended$56.$$arity = 1); - Opal.defn(self, '$to_s', TMP_Module_to_s_52 = function $$to_s() { - var $a, self = this; + Opal.def(self, '$remove_const', $Module_remove_const$57 = function $$remove_const(name) { + var self = this; - return ($truthy($a = Opal.Module.$name.call(self)) ? $a : "" + "#<" + (self.$$is_module ? 'Module' : 'Class') + ":0x" + (self.$__id__().$to_s(16)) + ">") - }, TMP_Module_to_s_52.$$arity = 0); + return Opal.const_remove(self, name); + }, $Module_remove_const$57.$$arity = 1); - Opal.defn(self, '$undef_method', TMP_Module_undef_method_53 = function $$undef_method($a_rest) { - var self = this, names; + Opal.def(self, '$to_s', $Module_to_s$58 = function $$to_s() { + var self = this, $ret_or_7 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - names = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - names[$arg_idx - 0] = arguments[$arg_idx]; + if ($truthy(($ret_or_7 = Opal.Module.$name.call(self)))) { + return $ret_or_7 + } else { + return "" + "#<" + (self.$$is_module ? 'Module' : 'Class') + ":0x" + (self.$__id__().$to_s(16)) + ">" } + }, $Module_to_s$58.$$arity = 0); + $alias(self, "inspect", "to_s"); + + Opal.def(self, '$undef_method', $Module_undef_method$59 = function $$undef_method($a) { + var $post_args, names, self = this; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + names = $post_args;; for (var i = 0, length = names.length; i < length; i++) { Opal.udef(self, "$" + names[i]); } ; return self; - }, TMP_Module_undef_method_53.$$arity = -1); + }, $Module_undef_method$59.$$arity = -1); - Opal.defn(self, '$instance_variables', TMP_Module_instance_variables_54 = function $$instance_variables() { + Opal.def(self, '$instance_variables', $Module_instance_variables$60 = function $$instance_variables() { var self = this, consts = nil; @@ -3347,24 +3901,20 @@ if (o == null) o = nil;if (c == null) c = nil; return result; ; - }, TMP_Module_instance_variables_54.$$arity = 0); + }, $Module_instance_variables$60.$$arity = 0); - Opal.defn(self, '$dup', TMP_Module_dup_55 = function $$dup() { - var self = this, $iter = TMP_Module_dup_55.$$p, $yield = $iter || nil, copy = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$dup', $Module_dup$61 = function $$dup() { + var $iter = $Module_dup$61.$$p, $yield = $iter || nil, self = this, copy = nil; - if ($iter) TMP_Module_dup_55.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Module_dup$61.$$p = null; - copy = $send(self, Opal.find_super_dispatcher(self, 'dup', TMP_Module_dup_55, false), $zuper, $iter); + copy = $send2(self, $find_super(self, 'dup', $Module_dup$61, false, true), 'dup', [], $iter); copy.$copy_class_variables(self); copy.$copy_constants(self); return copy; - }, TMP_Module_dup_55.$$arity = 0); + }, $Module_dup$61.$$arity = 0); - Opal.defn(self, '$copy_class_variables', TMP_Module_copy_class_variables_56 = function $$copy_class_variables(other) { + Opal.def(self, '$copy_class_variables', $Module_copy_class_variables$62 = function $$copy_class_variables(other) { var self = this; @@ -3372,8 +3922,9 @@ if (o == null) o = nil;if (c == null) c = nil; self.$$cvars[name] = other.$$cvars[name]; } - }, TMP_Module_copy_class_variables_56.$$arity = 1); - return (Opal.defn(self, '$copy_constants', TMP_Module_copy_constants_57 = function $$copy_constants(other) { + }, $Module_copy_class_variables$62.$$arity = 1); + + Opal.def(self, '$copy_constants', $Module_copy_constants$63 = function $$copy_constants(other) { var self = this; @@ -3383,66 +3934,98 @@ if (o == null) o = nil;if (c == null) c = nil; Opal.const_set(self, name, other_constants[name]); } - }, TMP_Module_copy_constants_57.$$arity = 1), nil) && 'copy_constants'; + }, $Module_copy_constants$63.$$arity = 1); + + Opal.def(self, '$refine', $Module_refine$64 = function $$refine(mod) { + var $iter = $Module_refine$64.$$p, block = $iter || nil, $a, $$65, self = this, s = nil, m = nil, mod_id = nil; + + if ($iter) $Module_refine$64.$$p = null; + + + if ($iter) $Module_refine$64.$$p = null;; + $a = [self, nil, nil], (s = $a[0]), (m = $a[1]), (mod_id = $a[2]), $a; + + mod_id = Opal.id(mod); + if (typeof self.$$refine_modules === "undefined") { + self.$$refine_modules = {}; + } + if (typeof self.$$refine_modules[mod_id] === "undefined") { + m = self.$$refine_modules[mod_id] = $$$('::', 'Module').$new(); + } + else { + m = self.$$refine_modules[mod_id]; + } + ; + $send(m, 'define_singleton_method', ["inspect"], ($$65 = function(){var self = $$65.$$s == null ? this : $$65.$$s; + + return "" + "#"}, $$65.$$s = self, $$65.$$arity = 0, $$65)); + $send(m, 'class_exec', [], block.$to_proc()); + return m; + }, $Module_refine$64.$$arity = 1); + return (Opal.def(self, '$using', $Module_using$66 = function $$using(mod) { + var self = this; + + return self.$raise("Module#using is not permitted in methods") + }, $Module_using$66.$$arity = 1), nil) && 'using'; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/class"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send; +Opal.modules["corelib/class"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $send2 = Opal.send2, $find_super = Opal.find_super, $alias = Opal.alias; - Opal.add_stubs(['$require', '$initialize_copy', '$allocate', '$name', '$to_s']); + Opal.add_stubs(['$require', '$class_eval', '$to_proc', '$initialize_copy', '$allocate', '$name', '$to_s']); self.$require("corelib/module"); return (function($base, $super, $parent_nesting) { - function $Class(){}; - var self = $Class = $klass($base, $super, 'Class', $Class); + var self = $klass($base, $super, 'Class'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Class_new_1, TMP_Class_allocate_2, TMP_Class_inherited_3, TMP_Class_initialize_dup_4, TMP_Class_new_5, TMP_Class_superclass_6, TMP_Class_to_s_7; + var $nesting = [self].concat($parent_nesting), $Class_new$1, $Class_allocate$2, $Class_inherited$3, $Class_initialize_dup$4, $Class_new$5, $Class_superclass$6, $Class_to_s$7; - Opal.defs(self, '$new', TMP_Class_new_1 = function(superclass) { - var self = this, $iter = TMP_Class_new_1.$$p, block = $iter || nil; + Opal.defs(self, '$new', $Class_new$1 = function(superclass) { + var $iter = $Class_new$1.$$p, block = $iter || nil, self = this; + if ($iter) $Class_new$1.$$p = null; + + + if ($iter) $Class_new$1.$$p = null;; + if (superclass == null) { - superclass = Opal.const_get_relative($nesting, 'Object'); - } - if ($iter) TMP_Class_new_1.$$p = null; + superclass = $$($nesting, 'Object'); + }; if (!superclass.$$is_class) { throw Opal.TypeError.$new("superclass must be a Class"); } - var alloc = Opal.boot_class_alloc(null, function(){}, superclass); - var klass = Opal.setup_class_object(null, alloc, superclass.$$name, superclass.constructor); - - klass.$$super = superclass; - klass.$$parent = superclass; - + var klass = Opal.allocate_class(nil, superclass); superclass.$inherited(klass); - Opal.module_initialize(klass, block); - + (function() {if ((block !== nil)) { + return $send((klass), 'class_eval', [], block.$to_proc()) + } else { + return nil + }; return nil; })() return klass; + ; + }, $Class_new$1.$$arity = -1); - }, TMP_Class_new_1.$$arity = -1); - - Opal.defn(self, '$allocate', TMP_Class_allocate_2 = function $$allocate() { + Opal.def(self, '$allocate', $Class_allocate$2 = function $$allocate() { var self = this; - var obj = new self.$$alloc(); + var obj = new self.$$constructor(); obj.$$id = Opal.uid(); return obj; - }, TMP_Class_allocate_2.$$arity = 0); + }, $Class_allocate$2.$$arity = 0); - Opal.defn(self, '$inherited', TMP_Class_inherited_3 = function $$inherited(cls) { + Opal.def(self, '$inherited', $Class_inherited$3 = function $$inherited(cls) { var self = this; return nil - }, TMP_Class_inherited_3.$$arity = 1); + }, $Class_inherited$3.$$arity = 1); - Opal.defn(self, '$initialize_dup', TMP_Class_initialize_dup_4 = function $$initialize_dup(original) { + Opal.def(self, '$initialize_dup', $Class_initialize_dup$4 = function $$initialize_dup(original) { var self = this; @@ -3451,103 +4034,118 @@ Opal.modules["corelib/class"] = function(Opal) { self.$$name = null; self.$$full_name = null; ; - }, TMP_Class_initialize_dup_4.$$arity = 1); + }, $Class_initialize_dup$4.$$arity = 1); - Opal.defn(self, '$new', TMP_Class_new_5 = function($a_rest) { - var self = this, args, $iter = TMP_Class_new_5.$$p, block = $iter || nil; + Opal.def(self, '$new', $Class_new$5 = function($a) { + var $iter = $Class_new$5.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Class_new_5.$$p = null; + if ($iter) $Class_new$5.$$p = null; + + + if ($iter) $Class_new$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; var object = self.$allocate(); Opal.send(object, object.$initialize, args, block); return object; + ; + }, $Class_new$5.$$arity = -1); - }, TMP_Class_new_5.$$arity = -1); - - Opal.defn(self, '$superclass', TMP_Class_superclass_6 = function $$superclass() { + Opal.def(self, '$superclass', $Class_superclass$6 = function $$superclass() { var self = this; - return self.$$super || nil - }, TMP_Class_superclass_6.$$arity = 0); - return (Opal.defn(self, '$to_s', TMP_Class_to_s_7 = function $$to_s() { - var self = this, $iter = TMP_Class_to_s_7.$$p, $yield = $iter || nil; + return self.$$super || nil; + }, $Class_superclass$6.$$arity = 0); + + Opal.def(self, '$to_s', $Class_to_s$7 = function $$to_s() { + var $iter = $Class_to_s$7.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Class_to_s_7.$$p = null; + if ($iter) $Class_to_s$7.$$p = null; var singleton_of = self.$$singleton_of; - if (singleton_of && (singleton_of.$$is_class || singleton_of.$$is_module)) { + if (singleton_of && singleton_of.$$is_a_module) { return "" + "#"; } else if (singleton_of) { // a singleton class created from an object return "" + "#>"; } - return $send(self, Opal.find_super_dispatcher(self, 'to_s', TMP_Class_to_s_7, false), [], null); + + return $send2(self, $find_super(self, 'to_s', $Class_to_s$7, false, true), 'to_s', [], null); - }, TMP_Class_to_s_7.$$arity = 0), nil) && 'to_s'; + }, $Class_to_s$7.$$arity = 0); + return $alias(self, "inspect", "to_s"); })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/basic_object"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $hash2 = Opal.hash2, $send = Opal.send; +Opal.modules["corelib/basic_object"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $range = Opal.range, $hash2 = Opal.hash2, $send = Opal.send; - Opal.add_stubs(['$==', '$!', '$nil?', '$cover?', '$size', '$raise', '$merge', '$compile', '$proc', '$>', '$new', '$inspect']); + Opal.add_stubs(['$==', '$raise', '$inspect', '$!', '$nil?', '$cover?', '$size', '$merge', '$compile', '$proc', '$any?', '$new']); return (function($base, $super, $parent_nesting) { - function $BasicObject(){}; - var self = $BasicObject = $klass($base, $super, 'BasicObject', $BasicObject); + var self = $klass($base, $super, 'BasicObject'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_BasicObject_initialize_1, TMP_BasicObject_$eq$eq_2, TMP_BasicObject_eql$q_3, TMP_BasicObject___id___4, TMP_BasicObject___send___5, TMP_BasicObject_$B_6, TMP_BasicObject_$B$eq_7, TMP_BasicObject_instance_eval_8, TMP_BasicObject_instance_exec_10, TMP_BasicObject_singleton_method_added_11, TMP_BasicObject_singleton_method_removed_12, TMP_BasicObject_singleton_method_undefined_13, TMP_BasicObject_method_missing_14; + var $nesting = [self].concat($parent_nesting), $BasicObject_initialize$1, $BasicObject_$eq_eq$2, $BasicObject_eql$ques$3, $BasicObject___id__$4, $BasicObject___send__$5, $BasicObject_$excl$6, $BasicObject_$not_eq$7, $BasicObject_instance_eval$8, $BasicObject_instance_exec$10, $BasicObject_singleton_method_added$11, $BasicObject_singleton_method_removed$12, $BasicObject_singleton_method_undefined$13, $BasicObject_method_missing$14, $BasicObject_respond_to_missing$ques$15; - Opal.defn(self, '$initialize', TMP_BasicObject_initialize_1 = function $$initialize($a_rest) { - var self = this; + Opal.def(self, '$initialize', $BasicObject_initialize$1 = function $$initialize($a) { + var $post_args, $rest_arg, self = this; - return nil - }, TMP_BasicObject_initialize_1.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return nil; + }, $BasicObject_initialize$1.$$arity = -1); - Opal.defn(self, '$==', TMP_BasicObject_$eq$eq_2 = function(other) { + Opal.def(self, '$==', $BasicObject_$eq_eq$2 = function(other) { var self = this; - return self === other - }, TMP_BasicObject_$eq$eq_2.$$arity = 1); + return self === other; + }, $BasicObject_$eq_eq$2.$$arity = 1); - Opal.defn(self, '$eql?', TMP_BasicObject_eql$q_3 = function(other) { + Opal.def(self, '$eql?', $BasicObject_eql$ques$3 = function(other) { var self = this; return self['$=='](other) - }, TMP_BasicObject_eql$q_3.$$arity = 1); - Opal.alias(self, "equal?", "=="); + }, $BasicObject_eql$ques$3.$$arity = 1); + $alias(self, "equal?", "=="); - Opal.defn(self, '$__id__', TMP_BasicObject___id___4 = function $$__id__() { + Opal.def(self, '$__id__', $BasicObject___id__$4 = function $$__id__() { var self = this; - return self.$$id || (self.$$id = Opal.uid()) - }, TMP_BasicObject___id___4.$$arity = 0); + + if (self.$$id != null) { + return self.$$id; + } + Opal.defineProperty(self, '$$id', Opal.uid()); + return self.$$id; + + }, $BasicObject___id__$4.$$arity = 0); - Opal.defn(self, '$__send__', TMP_BasicObject___send___5 = function $$__send__(symbol, $a_rest) { - var self = this, args, $iter = TMP_BasicObject___send___5.$$p, block = $iter || nil; + Opal.def(self, '$__send__', $BasicObject___send__$5 = function $$__send__(symbol, $a) { + var $iter = $BasicObject___send__$5.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_BasicObject___send___5.$$p = null; + if ($iter) $BasicObject___send__$5.$$p = null; + + + if ($iter) $BasicObject___send__$5.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); - var func = self['$' + symbol] + args = $post_args;; + + if (!symbol.$$is_string) { + self.$raise($$$('::', 'TypeError'), "" + (self.$inspect()) + " is not a symbol nor a string") + } + + var func = self['$' + symbol]; if (func) { if (block !== nil) { @@ -3562,51 +4160,59 @@ Opal.modules["corelib/basic_object"] = function(Opal) { } return self.$method_missing.apply(self, [symbol].concat(args)); + ; + }, $BasicObject___send__$5.$$arity = -2); - }, TMP_BasicObject___send___5.$$arity = -2); - - Opal.defn(self, '$!', TMP_BasicObject_$B_6 = function() { + Opal.def(self, '$!', $BasicObject_$excl$6 = function() { var self = this; return false - }, TMP_BasicObject_$B_6.$$arity = 0); + }, $BasicObject_$excl$6.$$arity = 0); - Opal.defn(self, '$!=', TMP_BasicObject_$B$eq_7 = function(other) { + Opal.def(self, '$!=', $BasicObject_$not_eq$7 = function(other) { var self = this; return self['$=='](other)['$!']() - }, TMP_BasicObject_$B$eq_7.$$arity = 1); + }, $BasicObject_$not_eq$7.$$arity = 1); - Opal.defn(self, '$instance_eval', TMP_BasicObject_instance_eval_8 = function $$instance_eval($a_rest) { - var $b, TMP_9, self = this, args, $iter = TMP_BasicObject_instance_eval_8.$$p, block = $iter || nil, string = nil, file = nil, _lineno = nil, default_eval_options = nil, compiling_options = nil, compiled = nil; + Opal.def(self, '$instance_eval', $BasicObject_instance_eval$8 = function $$instance_eval($a) { + var $iter = $BasicObject_instance_eval$8.$$p, block = $iter || nil, $post_args, args, $b, $$9, self = this, $ret_or_1 = nil, string = nil, file = nil, _lineno = nil, default_eval_options = nil, $ret_or_2 = nil, compiling_options = nil, compiled = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_BasicObject_instance_eval_8.$$p = null; + if ($iter) $BasicObject_instance_eval$8.$$p = null; + + + if ($iter) $BasicObject_instance_eval$8.$$p = null;; - if ($truthy(($truthy($b = block['$nil?']()) ? !!Opal.compile : $b))) { + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_1 = block['$nil?']()))) { + return !!Opal.compile; + } else { + return $ret_or_1 + }; return nil; })())) { if ($truthy($range(1, 3, false)['$cover?'](args.$size()))) { - } else { - Opal.const_get_qualified('::', 'Kernel').$raise(Opal.const_get_qualified('::', 'ArgumentError'), "wrong number of arguments (0 for 1..3)") + } else { + $$$('::', 'Kernel').$raise($$$('::', 'ArgumentError'), "wrong number of arguments (0 for 1..3)") }; $b = [].concat(Opal.to_a(args)), (string = ($b[0] == null ? nil : $b[0])), (file = ($b[1] == null ? nil : $b[1])), (_lineno = ($b[2] == null ? nil : $b[2])), $b; - default_eval_options = $hash2(["file", "eval"], {"file": ($truthy($b = file) ? $b : "(eval)"), "eval": true}); + default_eval_options = $hash2(["file", "eval"], {"file": (function() {if ($truthy(($ret_or_2 = file))) { + return $ret_or_2 + } else { + return "(eval)" + }; return nil; })(), "eval": true}); compiling_options = Opal.hash({ arity_check: false }).$merge(default_eval_options); - compiled = Opal.const_get_qualified('::', 'Opal').$compile(string, compiling_options); - block = $send(Opal.const_get_qualified('::', 'Kernel'), 'proc', [], (TMP_9 = function(){var self = TMP_9.$$s || this; + compiled = $$$('::', 'Opal').$compile(string, compiling_options); + block = $send($$$('::', 'Kernel'), 'proc', [], ($$9 = function(){var self = $$9.$$s == null ? this : $$9.$$s; - + return (function(self) { return eval(compiled); })(self) - }, TMP_9.$$s = self, TMP_9.$$arity = 0, TMP_9)); - } else if ($truthy($rb_gt(args.$size(), 0))) { - Opal.const_get_qualified('::', 'Kernel').$raise(Opal.const_get_qualified('::', 'ArgumentError'), "" + "wrong number of arguments (" + (args.$size()) + " for 0)")}; + }, $$9.$$s = self, $$9.$$arity = 0, $$9)); + } else if ($truthy(args['$any?']())) { + $$$('::', 'Kernel').$raise($$$('::', 'ArgumentError'), "" + "wrong number of arguments (" + (args.$size()) + " for 0)")}; var old = block.$$s, result; @@ -3616,7 +4222,7 @@ Opal.modules["corelib/basic_object"] = function(Opal) { // Need to pass $$eval so that method definitions know if this is // being done on a class/module. Cannot be compiler driven since // send(:instance_eval) needs to work. - if (self.$$is_class || self.$$is_module) { + if (self.$$is_a_module) { self.$$eval = true; try { result = block.call(self, self); @@ -3633,22 +4239,22 @@ Opal.modules["corelib/basic_object"] = function(Opal) { return result; ; - }, TMP_BasicObject_instance_eval_8.$$arity = -1); + }, $BasicObject_instance_eval$8.$$arity = -1); - Opal.defn(self, '$instance_exec', TMP_BasicObject_instance_exec_10 = function $$instance_exec($a_rest) { - var self = this, args, $iter = TMP_BasicObject_instance_exec_10.$$p, block = $iter || nil; + Opal.def(self, '$instance_exec', $BasicObject_instance_exec$10 = function $$instance_exec($a) { + var $iter = $BasicObject_instance_exec$10.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_BasicObject_instance_exec_10.$$p = null; + if ($iter) $BasicObject_instance_exec$10.$$p = null; + + + if ($iter) $BasicObject_instance_exec$10.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + args = $post_args;; if ($truthy(block)) { - } else { - Opal.const_get_qualified('::', 'Kernel').$raise(Opal.const_get_qualified('::', 'ArgumentError'), "no block given") + } else { + $$$('::', 'Kernel').$raise($$$('::', 'ArgumentError'), "no block given") }; var block_self = block.$$s, @@ -3656,7 +4262,7 @@ Opal.modules["corelib/basic_object"] = function(Opal) { block.$$s = null; - if (self.$$is_class || self.$$is_module) { + if (self.$$is_a_module) { self.$$eval = true; try { result = block.apply(self, args); @@ -3673,95 +4279,130 @@ Opal.modules["corelib/basic_object"] = function(Opal) { return result; ; - }, TMP_BasicObject_instance_exec_10.$$arity = -1); + }, $BasicObject_instance_exec$10.$$arity = -1); - Opal.defn(self, '$singleton_method_added', TMP_BasicObject_singleton_method_added_11 = function $$singleton_method_added($a_rest) { - var self = this; + Opal.def(self, '$singleton_method_added', $BasicObject_singleton_method_added$11 = function $$singleton_method_added($a) { + var $post_args, $rest_arg, self = this; - return nil - }, TMP_BasicObject_singleton_method_added_11.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return nil; + }, $BasicObject_singleton_method_added$11.$$arity = -1); - Opal.defn(self, '$singleton_method_removed', TMP_BasicObject_singleton_method_removed_12 = function $$singleton_method_removed($a_rest) { - var self = this; + Opal.def(self, '$singleton_method_removed', $BasicObject_singleton_method_removed$12 = function $$singleton_method_removed($a) { + var $post_args, $rest_arg, self = this; - return nil - }, TMP_BasicObject_singleton_method_removed_12.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return nil; + }, $BasicObject_singleton_method_removed$12.$$arity = -1); - Opal.defn(self, '$singleton_method_undefined', TMP_BasicObject_singleton_method_undefined_13 = function $$singleton_method_undefined($a_rest) { - var self = this; + Opal.def(self, '$singleton_method_undefined', $BasicObject_singleton_method_undefined$13 = function $$singleton_method_undefined($a) { + var $post_args, $rest_arg, self = this; - return nil - }, TMP_BasicObject_singleton_method_undefined_13.$$arity = -1); - return (Opal.defn(self, '$method_missing', TMP_BasicObject_method_missing_14 = function $$method_missing(symbol, $a_rest) { - var self = this, args, $iter = TMP_BasicObject_method_missing_14.$$p, block = $iter || nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_BasicObject_method_missing_14.$$p = null; - return Opal.const_get_qualified('::', 'Kernel').$raise(Opal.const_get_qualified('::', 'NoMethodError').$new((function() {if ($truthy(self.$inspect && !self.$inspect.$$stub)) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return nil; + }, $BasicObject_singleton_method_undefined$13.$$arity = -1); + + Opal.def(self, '$method_missing', $BasicObject_method_missing$14 = function $$method_missing(symbol, $a) { + var $iter = $BasicObject_method_missing$14.$$p, block = $iter || nil, $post_args, args, self = this, message = nil; + + if ($iter) $BasicObject_method_missing$14.$$p = null; + + + if ($iter) $BasicObject_method_missing$14.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + message = (function() {if ($truthy(self.$inspect && !self.$inspect.$$stub)) { return "" + "undefined method `" + (symbol) + "' for " + (self.$inspect()) + ":" + (self.$$class) - } else { + } else { return "" + "undefined method `" + (symbol) + "' for " + (self.$$class) - }; return nil; })(), symbol)) - }, TMP_BasicObject_method_missing_14.$$arity = -2), nil) && 'method_missing'; + }; return nil; })(); + return $$$('::', 'Kernel').$raise($$$('::', 'NoMethodError').$new(message, symbol)); + }, $BasicObject_method_missing$14.$$arity = -2); + return (Opal.def(self, '$respond_to_missing?', $BasicObject_respond_to_missing$ques$15 = function(method_name, include_all) { + var self = this; + + + + if (include_all == null) { + include_all = false; + }; + return false; + }, $BasicObject_respond_to_missing$ques$15.$$arity = -2), nil) && 'respond_to_missing?'; })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/kernel"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); +Opal.modules["corelib/kernel"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_le(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy, $gvars = Opal.gvars, $hash2 = Opal.hash2, $send = Opal.send, $klass = Opal.klass; + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $respond_to = Opal.respond_to, $module = Opal.module, $gvars = Opal.gvars, $hash2 = Opal.hash2, $send = Opal.send, $alias = Opal.alias, $klass = Opal.klass; - Opal.add_stubs(['$raise', '$new', '$inspect', '$!', '$=~', '$==', '$object_id', '$class', '$coerce_to?', '$<<', '$allocate', '$copy_instance_variables', '$copy_singleton_methods', '$initialize_clone', '$initialize_copy', '$define_method', '$singleton_class', '$to_proc', '$initialize_dup', '$for', '$>', '$size', '$pop', '$call', '$coerce_to', '$append_features', '$extended', '$length', '$respond_to?', '$[]', '$nil?', '$to_a', '$to_int', '$fetch', '$Integer', '$Float', '$to_ary', '$to_str', '$to_s', '$__id__', '$instance_variable_name!', '$coerce_to!', '$===', '$enum_for', '$result', '$print', '$format', '$puts', '$each', '$<=', '$empty?', '$exception', '$kind_of?', '$rand', '$respond_to_missing?', '$try_convert!', '$expand_path', '$join', '$start_with?', '$srand', '$new_seed', '$sym', '$arg', '$open', '$include']); + Opal.add_stubs(['$raise', '$new', '$inspect', '$caller', '$!', '$=~', '$==', '$object_id', '$class', '$coerce_to?', '$<<', '$allocate', '$copy_instance_variables', '$copy_singleton_methods', '$initialize_clone', '$initialize_copy', '$define_method', '$singleton_class', '$to_proc', '$initialize_dup', '$for', '$empty?', '$pop', '$call', '$append_features', '$extend_object', '$extended', '$gets', '$__id__', '$each', '$instance_variables', '$+', '$instance_variable_get', '$to_s', '$instance_variable_name!', '$respond_to?', '$to_int', '$coerce_to!', '$Integer', '$nil?', '$===', '$enum_for', '$result', '$any?', '$print', '$format', '$puts', '$<=', '$length', '$[]', '$readline', '$<', '$first', '$split', '$map', '$to_str', '$exception', '$backtrace', '$rand', '$respond_to_missing?', '$pristine', '$try_convert!', '$expand_path', '$join', '$start_with?', '$new_seed', '$srand', '$tag', '$value', '$open', '$include']); (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + var self = $module($base, 'Kernel'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_method_missing_1, TMP_Kernel_$eq$_2, TMP_Kernel_$B$_3, TMP_Kernel_$eq$eq$eq_4, TMP_Kernel_$lt$eq$gt_5, TMP_Kernel_method_6, TMP_Kernel_methods_7, TMP_Kernel_Array_8, TMP_Kernel_at_exit_9, TMP_Kernel_caller_10, TMP_Kernel_class_11, TMP_Kernel_copy_instance_variables_12, TMP_Kernel_copy_singleton_methods_13, TMP_Kernel_clone_14, TMP_Kernel_initialize_clone_15, TMP_Kernel_define_singleton_method_16, TMP_Kernel_dup_17, TMP_Kernel_initialize_dup_18, TMP_Kernel_enum_for_19, TMP_Kernel_equal$q_20, TMP_Kernel_exit_21, TMP_Kernel_extend_22, TMP_Kernel_format_23, TMP_Kernel_hash_24, TMP_Kernel_initialize_copy_25, TMP_Kernel_inspect_26, TMP_Kernel_instance_of$q_27, TMP_Kernel_instance_variable_defined$q_28, TMP_Kernel_instance_variable_get_29, TMP_Kernel_instance_variable_set_30, TMP_Kernel_remove_instance_variable_31, TMP_Kernel_instance_variables_32, TMP_Kernel_Integer_33, TMP_Kernel_Float_34, TMP_Kernel_Hash_35, TMP_Kernel_is_a$q_36, TMP_Kernel_itself_37, TMP_Kernel_lambda_38, TMP_Kernel_load_39, TMP_Kernel_loop_40, TMP_Kernel_nil$q_42, TMP_Kernel_printf_43, TMP_Kernel_proc_44, TMP_Kernel_puts_45, TMP_Kernel_p_47, TMP_Kernel_print_48, TMP_Kernel_warn_49, TMP_Kernel_raise_50, TMP_Kernel_rand_51, TMP_Kernel_respond_to$q_52, TMP_Kernel_respond_to_missing$q_53, TMP_Kernel_require_54, TMP_Kernel_require_relative_55, TMP_Kernel_require_tree_56, TMP_Kernel_singleton_class_57, TMP_Kernel_sleep_58, TMP_Kernel_srand_59, TMP_Kernel_String_60, TMP_Kernel_tap_61, TMP_Kernel_to_proc_62, TMP_Kernel_to_s_63, TMP_Kernel_catch_64, TMP_Kernel_throw_65, TMP_Kernel_open_66; + var $nesting = [self].concat($parent_nesting), $Kernel_method_missing$1, $Kernel_$eq_tilde$2, $Kernel_$excl_tilde$3, $Kernel_$eq_eq_eq$4, $Kernel_$lt_eq_gt$5, $Kernel_method$6, $Kernel_methods$7, $Kernel_public_methods$8, $Kernel_Array$9, $Kernel_at_exit$10, $Kernel_caller$11, $Kernel_class$12, $Kernel_copy_instance_variables$13, $Kernel_copy_singleton_methods$14, $Kernel_clone$15, $Kernel_initialize_clone$16, $Kernel_define_singleton_method$17, $Kernel_dup$18, $Kernel_initialize_dup$19, $Kernel_enum_for$20, $Kernel_equal$ques$21, $Kernel_exit$22, $Kernel_extend$23, $Kernel_gets$24, $Kernel_hash$25, $Kernel_initialize_copy$26, $Kernel_inspect$27, $Kernel_instance_of$ques$29, $Kernel_instance_variable_defined$ques$30, $Kernel_instance_variable_get$31, $Kernel_instance_variable_set$32, $Kernel_remove_instance_variable$33, $Kernel_instance_variables$34, $Kernel_Integer$35, $Kernel_Float$36, $Kernel_Hash$37, $Kernel_is_a$ques$38, $Kernel_itself$39, $Kernel_lambda$40, $Kernel_load$41, $Kernel_loop$42, $Kernel_nil$ques$44, $Kernel_printf$45, $Kernel_proc$46, $Kernel_puts$47, $Kernel_p$48, $Kernel_print$50, $Kernel_readline$51, $Kernel_warn$52, $Kernel_raise$54, $Kernel_rand$55, $Kernel_respond_to$ques$56, $Kernel_respond_to_missing$ques$57, $Kernel_require$58, $Kernel_require_relative$59, $Kernel_require_tree$60, $Kernel_singleton_class$61, $Kernel_sleep$62, $Kernel_srand$63, $Kernel_String$64, $Kernel_tap$65, $Kernel_to_proc$66, $Kernel_to_s$67, $Kernel_catch$68, $Kernel_throw$69, $Kernel_open$70, $Kernel_yield_self$71; - Opal.defn(self, '$method_missing', TMP_Kernel_method_missing_1 = function $$method_missing(symbol, $a_rest) { - var self = this, args, $iter = TMP_Kernel_method_missing_1.$$p, block = $iter || nil; + Opal.def(self, '$method_missing', $Kernel_method_missing$1 = function $$method_missing(symbol, $a) { + var $iter = $Kernel_method_missing$1.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Kernel_method_missing_1.$$p = null; - return self.$raise(Opal.const_get_relative($nesting, 'NoMethodError').$new("" + "undefined method `" + (symbol) + "' for " + (self.$inspect()), symbol, args)) - }, TMP_Kernel_method_missing_1.$$arity = -2); + if ($iter) $Kernel_method_missing$1.$$p = null; + + + if ($iter) $Kernel_method_missing$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + return self.$raise($$($nesting, 'NoMethodError').$new("" + "undefined method `" + (symbol) + "' for " + (self.$inspect()), symbol, args), nil, self.$caller(1)); + }, $Kernel_method_missing$1.$$arity = -2); - Opal.defn(self, '$=~', TMP_Kernel_$eq$_2 = function(obj) { + Opal.def(self, '$=~', $Kernel_$eq_tilde$2 = function(obj) { var self = this; return false - }, TMP_Kernel_$eq$_2.$$arity = 1); + }, $Kernel_$eq_tilde$2.$$arity = 1); - Opal.defn(self, '$!~', TMP_Kernel_$B$_3 = function(obj) { + Opal.def(self, '$!~', $Kernel_$excl_tilde$3 = function(obj) { var self = this; return self['$=~'](obj)['$!']() - }, TMP_Kernel_$B$_3.$$arity = 1); + }, $Kernel_$excl_tilde$3.$$arity = 1); - Opal.defn(self, '$===', TMP_Kernel_$eq$eq$eq_4 = function(other) { - var $a, self = this; + Opal.def(self, '$===', $Kernel_$eq_eq_eq$4 = function(other) { + var self = this, $ret_or_1 = nil; - return ($truthy($a = self.$object_id()['$=='](other.$object_id())) ? $a : self['$=='](other)) - }, TMP_Kernel_$eq$eq$eq_4.$$arity = 1); + if ($truthy(($ret_or_1 = self.$object_id()['$=='](other.$object_id())))) { + return $ret_or_1 + } else { + return self['$=='](other) + } + }, $Kernel_$eq_eq_eq$4.$$arity = 1); - Opal.defn(self, '$<=>', TMP_Kernel_$lt$eq$gt_5 = function(other) { + Opal.def(self, '$<=>', $Kernel_$lt_eq_gt$5 = function(other) { var self = this; @@ -3776,50 +4417,57 @@ Opal.modules["corelib/kernel"] = function(Opal) { return nil; - }, TMP_Kernel_$lt$eq$gt_5.$$arity = 1); + }, $Kernel_$lt_eq_gt$5.$$arity = 1); - Opal.defn(self, '$method', TMP_Kernel_method_6 = function $$method(name) { + Opal.def(self, '$method', $Kernel_method$6 = function $$method(name) { var self = this; var meth = self['$' + name]; if (!meth || meth.$$stub) { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "undefined method `" + (name) + "' for class `" + (self.$class()) + "'", name)); + self.$raise($$($nesting, 'NameError').$new("" + "undefined method `" + (name) + "' for class `" + (self.$class()) + "'", name)); } - return Opal.const_get_relative($nesting, 'Method').$new(self, meth.$$owner || self.$class(), meth, name); + return $$($nesting, 'Method').$new(self, meth.$$owner || self.$class(), meth, name); - }, TMP_Kernel_method_6.$$arity = 1); + }, $Kernel_method$6.$$arity = 1); - Opal.defn(self, '$methods', TMP_Kernel_methods_7 = function $$methods(all) { + Opal.def(self, '$methods', $Kernel_methods$7 = function $$methods(all) { var self = this; + + if (all == null) { all = true; - } + }; - var methods = []; - - for (var key in self) { - if (key[0] == "$" && typeof(self[key]) === "function") { - if (all == false || all === nil) { - if (!Opal.hasOwnProperty.call(self, key)) { - continue; - } - } - if (self[key].$$stub === undefined) { - methods.push(key.substr(1)); - } - } + if ($truthy(all)) { + return Opal.methods(self); + } else { + return Opal.own_methods(self); } - - return methods; + ; + }, $Kernel_methods$7.$$arity = -1); - }, TMP_Kernel_methods_7.$$arity = -1); - Opal.alias(self, "public_methods", "methods"); + Opal.def(self, '$public_methods', $Kernel_public_methods$8 = function $$public_methods(all) { + var self = this; + + + + if (all == null) { + all = true; + }; + + if ($truthy(all)) { + return Opal.methods(self); + } else { + return Opal.receiver_methods(self); + } + ; + }, $Kernel_public_methods$8.$$arity = -1); - Opal.defn(self, '$Array', TMP_Kernel_Array_8 = function $$Array(object) { + Opal.def(self, '$Array', $Kernel_Array$9 = function $$Array(object) { var self = this; @@ -3833,45 +4481,68 @@ Opal.modules["corelib/kernel"] = function(Opal) { return object; } - coerced = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](object, Opal.const_get_relative($nesting, 'Array'), "to_ary"); + coerced = $$($nesting, 'Opal')['$coerce_to?'](object, $$($nesting, 'Array'), "to_ary"); if (coerced !== nil) { return coerced; } - coerced = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](object, Opal.const_get_relative($nesting, 'Array'), "to_a"); + coerced = $$($nesting, 'Opal')['$coerce_to?'](object, $$($nesting, 'Array'), "to_a"); if (coerced !== nil) { return coerced; } return [object]; - }, TMP_Kernel_Array_8.$$arity = 1); + }, $Kernel_Array$9.$$arity = 1); - Opal.defn(self, '$at_exit', TMP_Kernel_at_exit_9 = function $$at_exit() { - var $a, self = this, $iter = TMP_Kernel_at_exit_9.$$p, block = $iter || nil; + Opal.def(self, '$at_exit', $Kernel_at_exit$10 = function $$at_exit() { + var $iter = $Kernel_at_exit$10.$$p, block = $iter || nil, self = this, $ret_or_2 = nil; if ($gvars.__at_exit__ == null) $gvars.__at_exit__ = nil; - if ($iter) TMP_Kernel_at_exit_9.$$p = null; + if ($iter) $Kernel_at_exit$10.$$p = null; - $gvars.__at_exit__ = ($truthy($a = $gvars.__at_exit__) ? $a : []); - return $gvars.__at_exit__['$<<'](block); - }, TMP_Kernel_at_exit_9.$$arity = 0); + + if ($iter) $Kernel_at_exit$10.$$p = null;; + $gvars.__at_exit__ = (function() {if ($truthy(($ret_or_2 = $gvars.__at_exit__))) { + return $ret_or_2 + } else { + return [] + }; return nil; })(); + $gvars.__at_exit__['$<<'](block); + return block; + }, $Kernel_at_exit$10.$$arity = 0); - Opal.defn(self, '$caller', TMP_Kernel_caller_10 = function $$caller($a_rest) { - var self = this, args; + Opal.def(self, '$caller', $Kernel_caller$11 = function $$caller(start, length) { + var self = this; + + + + if (start == null) { + start = 1; + }; + + if (length == null) { + length = nil; + }; + + var stack, result; + + stack = new Error().$backtrace(); + result = []; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; + for (var i = start + 1, ii = stack.length; i < ii; i++) { + if (!stack[i].match(/runtime\.js/)) { + result.push(stack[i]); + } } - return [] - }, TMP_Kernel_caller_10.$$arity = -1); + if (length != nil) result = result.slice(0, length); + return result; + ; + }, $Kernel_caller$11.$$arity = -1); - Opal.defn(self, '$class', TMP_Kernel_class_11 = function() { + Opal.def(self, '$class', $Kernel_class$12 = function() { var self = this; - return self.$$class - }, TMP_Kernel_class_11.$$arity = 0); + return self.$$class; + }, $Kernel_class$12.$$arity = 0); - Opal.defn(self, '$copy_instance_variables', TMP_Kernel_copy_instance_variables_12 = function $$copy_instance_variables(other) { + Opal.def(self, '$copy_instance_variables', $Kernel_copy_instance_variables$13 = function $$copy_instance_variables(other) { var self = this; @@ -3883,69 +4554,82 @@ Opal.modules["corelib/kernel"] = function(Opal) { } } - }, TMP_Kernel_copy_instance_variables_12.$$arity = 1); + }, $Kernel_copy_instance_variables$13.$$arity = 1); - Opal.defn(self, '$copy_singleton_methods', TMP_Kernel_copy_singleton_methods_13 = function $$copy_singleton_methods(other) { + Opal.def(self, '$copy_singleton_methods', $Kernel_copy_singleton_methods$14 = function $$copy_singleton_methods(other) { var self = this; - var name; + var i, name, names, length; if (other.hasOwnProperty('$$meta')) { - var other_singleton_class_proto = Opal.get_singleton_class(other).$$proto; - var self_singleton_class_proto = Opal.get_singleton_class(self).$$proto; - - for (name in other_singleton_class_proto) { - if (name.charAt(0) === '$' && other_singleton_class_proto.hasOwnProperty(name)) { - self_singleton_class_proto[name] = other_singleton_class_proto[name]; + var other_singleton_class = Opal.get_singleton_class(other); + var self_singleton_class = Opal.get_singleton_class(self); + names = Object.getOwnPropertyNames(other_singleton_class.$$prototype); + + for (i = 0, length = names.length; i < length; i++) { + name = names[i]; + if (Opal.is_method(name)) { + self_singleton_class.$$prototype[name] = other_singleton_class.$$prototype[name]; } } + + self_singleton_class.$$const = Object.assign({}, other_singleton_class.$$const); + Object.setPrototypeOf( + self_singleton_class.$$prototype, + Object.getPrototypeOf(other_singleton_class.$$prototype) + ); } - for (name in other) { + for (i = 0, names = Object.getOwnPropertyNames(other), length = names.length; i < length; i++) { + name = names[i]; if (name.charAt(0) === '$' && name.charAt(1) !== '$' && other.hasOwnProperty(name)) { self[name] = other[name]; } } - }, TMP_Kernel_copy_singleton_methods_13.$$arity = 1); + }, $Kernel_copy_singleton_methods$14.$$arity = 1); - Opal.defn(self, '$clone', TMP_Kernel_clone_14 = function $$clone($kwargs) { - var self = this, freeze, copy = nil; + Opal.def(self, '$clone', $Kernel_clone$15 = function $$clone($kwargs) { + var freeze, self = this, copy = nil; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + freeze = $kwargs.$$smap["freeze"]; if (freeze == null) { freeze = true - } - + }; copy = self.$class().$allocate(); copy.$copy_instance_variables(self); copy.$copy_singleton_methods(self); copy.$initialize_clone(self); return copy; - }, TMP_Kernel_clone_14.$$arity = -1); + }, $Kernel_clone$15.$$arity = -1); - Opal.defn(self, '$initialize_clone', TMP_Kernel_initialize_clone_15 = function $$initialize_clone(other) { + Opal.def(self, '$initialize_clone', $Kernel_initialize_clone$16 = function $$initialize_clone(other) { var self = this; return self.$initialize_copy(other) - }, TMP_Kernel_initialize_clone_15.$$arity = 1); + }, $Kernel_initialize_clone$16.$$arity = 1); - Opal.defn(self, '$define_singleton_method', TMP_Kernel_define_singleton_method_16 = function $$define_singleton_method(name, method) { - var self = this, $iter = TMP_Kernel_define_singleton_method_16.$$p, block = $iter || nil; + Opal.def(self, '$define_singleton_method', $Kernel_define_singleton_method$17 = function $$define_singleton_method(name, method) { + var $iter = $Kernel_define_singleton_method$17.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Kernel_define_singleton_method_16.$$p = null; - return $send(self.$singleton_class(), 'define_method', [name, method], block.$to_proc()) - }, TMP_Kernel_define_singleton_method_16.$$arity = -2); + if ($iter) $Kernel_define_singleton_method$17.$$p = null; + + + if ($iter) $Kernel_define_singleton_method$17.$$p = null;; + ; + return $send(self.$singleton_class(), 'define_method', [name, method], block.$to_proc()); + }, $Kernel_define_singleton_method$17.$$arity = -2); - Opal.defn(self, '$dup', TMP_Kernel_dup_17 = function $$dup() { + Opal.def(self, '$dup', $Kernel_dup$18 = function $$dup() { var self = this, copy = nil; @@ -3953,47 +4637,58 @@ Opal.modules["corelib/kernel"] = function(Opal) { copy.$copy_instance_variables(self); copy.$initialize_dup(self); return copy; - }, TMP_Kernel_dup_17.$$arity = 0); + }, $Kernel_dup$18.$$arity = 0); - Opal.defn(self, '$initialize_dup', TMP_Kernel_initialize_dup_18 = function $$initialize_dup(other) { + Opal.def(self, '$initialize_dup', $Kernel_initialize_dup$19 = function $$initialize_dup(other) { var self = this; return self.$initialize_copy(other) - }, TMP_Kernel_initialize_dup_18.$$arity = 1); + }, $Kernel_initialize_dup$19.$$arity = 1); - Opal.defn(self, '$enum_for', TMP_Kernel_enum_for_19 = function $$enum_for(method, $a_rest) { - var self = this, args, $iter = TMP_Kernel_enum_for_19.$$p, block = $iter || nil; + Opal.def(self, '$enum_for', $Kernel_enum_for$20 = function $$enum_for($a, $b) { + var $iter = $Kernel_enum_for$20.$$p, block = $iter || nil, $post_args, method, args, self = this; + if ($iter) $Kernel_enum_for$20.$$p = null; + + + if ($iter) $Kernel_enum_for$20.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + if ($post_args.length > 0) { + method = $post_args[0]; + $post_args.splice(0, 1); + } if (method == null) { method = "each"; - } - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Kernel_enum_for_19.$$p = null; - return $send(Opal.const_get_relative($nesting, 'Enumerator'), 'for', [self, method].concat(Opal.to_a(args)), block.$to_proc()) - }, TMP_Kernel_enum_for_19.$$arity = -1); - Opal.alias(self, "to_enum", "enum_for"); + }; + + args = $post_args;; + return $send($$($nesting, 'Enumerator'), 'for', [self, method].concat(Opal.to_a(args)), block.$to_proc()); + }, $Kernel_enum_for$20.$$arity = -1); + $alias(self, "to_enum", "enum_for"); - Opal.defn(self, '$equal?', TMP_Kernel_equal$q_20 = function(other) { + Opal.def(self, '$equal?', $Kernel_equal$ques$21 = function(other) { var self = this; - return self === other - }, TMP_Kernel_equal$q_20.$$arity = 1); + return self === other; + }, $Kernel_equal$ques$21.$$arity = 1); - Opal.defn(self, '$exit', TMP_Kernel_exit_21 = function $$exit(status) { - var $a, self = this, block = nil; + Opal.def(self, '$exit', $Kernel_exit$22 = function $$exit(status) { + var $a, self = this, $ret_or_3 = nil, block = nil; if ($gvars.__at_exit__ == null) $gvars.__at_exit__ = nil; + + if (status == null) { status = true; - } - - $gvars.__at_exit__ = ($truthy($a = $gvars.__at_exit__) ? $a : []); - while ($truthy($rb_gt($gvars.__at_exit__.$size(), 0))) { + }; + $gvars.__at_exit__ = (function() {if ($truthy(($ret_or_3 = $gvars.__at_exit__))) { + return $ret_or_3 + } else { + return [] + }; return nil; })(); + while (!($truthy($gvars.__at_exit__['$empty?']()))) { block = $gvars.__at_exit__.$pop(); block.$call(); @@ -4002,1013 +4697,554 @@ Opal.modules["corelib/kernel"] = function(Opal) { if (status.$$is_boolean) { status = status ? 0 : 1; } else { - status = Opal.const_get_relative($nesting, 'Opal').$coerce_to(status, Opal.const_get_relative($nesting, 'Integer'), "to_int") + status = $coerce_to(status, $$($nesting, 'Integer'), 'to_int') } Opal.exit(status); ; return nil; - }, TMP_Kernel_exit_21.$$arity = -1); + }, $Kernel_exit$22.$$arity = -1); - Opal.defn(self, '$extend', TMP_Kernel_extend_22 = function $$extend($a_rest) { - var self = this, mods; + Opal.def(self, '$extend', $Kernel_extend$23 = function $$extend($a) { + var $post_args, mods, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - mods = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - mods[$arg_idx - 0] = arguments[$arg_idx]; - } + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + mods = $post_args;; + var singleton = self.$singleton_class(); for (var i = mods.length - 1; i >= 0; i--) { var mod = mods[i]; if (!mod.$$is_module) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((mod).$class()) + " (expected Module)"); } (mod).$append_features(singleton); + (mod).$extend_object(self); (mod).$extended(self); } ; return self; - }, TMP_Kernel_extend_22.$$arity = -1); + }, $Kernel_extend$23.$$arity = -1); - Opal.defn(self, '$format', TMP_Kernel_format_23 = function $$format(format_string, $a_rest) { - var $b, self = this, args, ary = nil; - if ($gvars.DEBUG == null) $gvars.DEBUG = nil; + Opal.def(self, '$gets', $Kernel_gets$24 = function $$gets($a) { + var $post_args, args, self = this; + if ($gvars.stdin == null) $gvars.stdin = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($truthy((($b = args.$length()['$=='](1)) ? args['$[]'](0)['$respond_to?']("to_ary") : args.$length()['$=='](1)))) { - - ary = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](args['$[]'](0), Opal.const_get_relative($nesting, 'Array'), "to_ary"); - if ($truthy(ary['$nil?']())) { - } else { - args = ary.$to_a() - };}; - var result = '', - //used for slicing: - begin_slice = 0, - end_slice, - //used for iterating over the format string: - i, - len = format_string.length, - //used for processing field values: - arg, - str, - //used for processing %g and %G fields: - exponent, - //used for keeping track of width and precision: - width, - precision, - //used for holding temporary values: - tmp_num, - //used for processing %{} and %<> fileds: - hash_parameter_key, - closing_brace_char, - //used for processing %b, %B, %o, %x, and %X fields: - base_number, - base_prefix, - base_neg_zero_regex, - base_neg_zero_digit, - //used for processing arguments: - next_arg, - seq_arg_num = 1, - pos_arg_num = 0, - //used for keeping track of flags: - flags, - FNONE = 0, - FSHARP = 1, - FMINUS = 2, - FPLUS = 4, - FZERO = 8, - FSPACE = 16, - FWIDTH = 32, - FPREC = 64, - FPREC0 = 128; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($gvars.stdin, 'gets', Opal.to_a(args)); + }, $Kernel_gets$24.$$arity = -1); + + Opal.def(self, '$hash', $Kernel_hash$25 = function $$hash() { + var self = this; - function CHECK_FOR_FLAGS() { - if (flags&FWIDTH) { self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "flag after width") } - if (flags&FPREC0) { self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "flag after precision") } + return self.$__id__() + }, $Kernel_hash$25.$$arity = 0); + + Opal.def(self, '$initialize_copy', $Kernel_initialize_copy$26 = function $$initialize_copy(other) { + var self = this; + + return nil + }, $Kernel_initialize_copy$26.$$arity = 1); + + Opal.def(self, '$inspect', $Kernel_inspect$27 = function $$inspect() { + var $$28, self = this, ivs = nil; + + try { + + ivs = ""; + $send(self.$instance_variables(), 'each', [], ($$28 = function(i){var self = $$28.$$s == null ? this : $$28.$$s; + + + + if (i == null) { + i = nil; + }; + return (ivs = $rb_plus(ivs, "" + " " + (i) + "=" + (self.$instance_variable_get(i).$inspect())));}, $$28.$$s = self, $$28.$$arity = 1, $$28)); + return "" + "#<" + (self.$class()) + ":0x" + (self.$__id__().$to_s(16)) + (ivs) + ">"; + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'StandardError')])) { + try { + return "" + "#<" + (self.$class()) + ":0x" + (self.$__id__().$to_s(16)) + ">" + } finally { Opal.pop_exception(); } + } else { throw $err; } } + }, $Kernel_inspect$27.$$arity = 0); + + Opal.def(self, '$instance_of?', $Kernel_instance_of$ques$29 = function(klass) { + var self = this; - function CHECK_FOR_WIDTH() { - if (flags&FWIDTH) { self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "width given twice") } - if (flags&FPREC0) { self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "width after precision") } + + if (!klass.$$is_class && !klass.$$is_module) { + self.$raise($$($nesting, 'TypeError'), "class or module required"); } - function GET_NTH_ARG(num) { - if (num >= args.length) { self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "too few arguments") } - return args[num]; + return self.$$class === klass; + + }, $Kernel_instance_of$ques$29.$$arity = 1); + + Opal.def(self, '$instance_variable_defined?', $Kernel_instance_variable_defined$ques$30 = function(name) { + var self = this; + + + name = $$($nesting, 'Opal')['$instance_variable_name!'](name); + return Opal.hasOwnProperty.call(self, name.substr(1));; + }, $Kernel_instance_variable_defined$ques$30.$$arity = 1); + + Opal.def(self, '$instance_variable_get', $Kernel_instance_variable_get$31 = function $$instance_variable_get(name) { + var self = this; + + + name = $$($nesting, 'Opal')['$instance_variable_name!'](name); + + var ivar = self[Opal.ivar(name.substr(1))]; + + return ivar == null ? nil : ivar; + ; + }, $Kernel_instance_variable_get$31.$$arity = 1); + + Opal.def(self, '$instance_variable_set', $Kernel_instance_variable_set$32 = function $$instance_variable_set(name, value) { + var self = this; + + + name = $$($nesting, 'Opal')['$instance_variable_name!'](name); + return self[Opal.ivar(name.substr(1))] = value;; + }, $Kernel_instance_variable_set$32.$$arity = 2); + + Opal.def(self, '$remove_instance_variable', $Kernel_remove_instance_variable$33 = function $$remove_instance_variable(name) { + var self = this; + + + name = $$($nesting, 'Opal')['$instance_variable_name!'](name); + + var key = Opal.ivar(name.substr(1)), + val; + if (self.hasOwnProperty(key)) { + val = self[key]; + delete self[key]; + return val; } + ; + return self.$raise($$($nesting, 'NameError'), "" + "instance variable " + (name) + " not defined"); + }, $Kernel_remove_instance_variable$33.$$arity = 1); + + Opal.def(self, '$instance_variables', $Kernel_instance_variables$34 = function $$instance_variables() { + var self = this; - function GET_NEXT_ARG() { - switch (pos_arg_num) { - case -1: self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "unnumbered(" + (seq_arg_num) + ") mixed with numbered") - case -2: self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "unnumbered(" + (seq_arg_num) + ") mixed with named") + + var result = [], ivar; + + for (var name in self) { + if (self.hasOwnProperty(name) && name.charAt(0) !== '$') { + if (name.substr(-1) === '$') { + ivar = name.slice(0, name.length - 1); + } else { + ivar = name; + } + result.push('@' + ivar); } - pos_arg_num = seq_arg_num++; - return GET_NTH_ARG(pos_arg_num - 1); } - function GET_POS_ARG(num) { - if (pos_arg_num > 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "numbered(" + (num) + ") after unnumbered(" + (pos_arg_num) + ")") + return result; + + }, $Kernel_instance_variables$34.$$arity = 0); + + Opal.def(self, '$Integer', $Kernel_Integer$35 = function $$Integer(value, base) { + var self = this; + + + ; + + var i, str, base_digits; + + if (!value.$$is_string) { + if (base !== undefined) { + self.$raise($$($nesting, 'ArgumentError'), "base specified for non string value") } - if (pos_arg_num === -2) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "numbered(" + (num) + ") after named") + if (value === nil) { + self.$raise($$($nesting, 'TypeError'), "can't convert nil into Integer") } - if (num < 1) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid index - " + (num) + "$") + if (value.$$is_number) { + if (value === Infinity || value === -Infinity || isNaN(value)) { + self.$raise($$($nesting, 'FloatDomainError'), value) + } + return Math.floor(value); } - pos_arg_num = -1; - return GET_NTH_ARG(num - 1); + if (value['$respond_to?']("to_int")) { + i = value.$to_int(); + if (i !== nil) { + return i; + } + } + return $$($nesting, 'Opal')['$coerce_to!'](value, $$($nesting, 'Integer'), "to_i"); } - function GET_ARG() { - return (next_arg === undefined ? GET_NEXT_ARG() : next_arg); + if (value === "0") { + return 0; } - function READ_NUM(label) { - var num, str = ''; - for (;; i++) { - if (i === len) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "malformed format string - %*[0-9]") - } - if (format_string.charCodeAt(i) < 48 || format_string.charCodeAt(i) > 57) { - i--; - num = parseInt(str, 10) || 0; - if (num > 2147483647) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + (label) + " too big") - } - return num; - } - str += format_string.charAt(i); + if (base === undefined) { + base = 0; + } else { + base = $coerce_to(base, $$($nesting, 'Integer'), 'to_int'); + if (base === 1 || base < 0 || base > 36) { + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid radix " + (base)) } } - function READ_NUM_AFTER_ASTER(label) { - var arg, num = READ_NUM(label); - if (format_string.charAt(i + 1) === '$') { - i++; - arg = GET_POS_ARG(num); - } else { - arg = GET_NEXT_ARG(); - } - return (arg).$to_int(); - } + str = value.toLowerCase(); - for (i = format_string.indexOf('%'); i !== -1; i = format_string.indexOf('%', i)) { - str = undefined; + str = str.replace(/(\d)_(?=\d)/g, '$1'); - flags = FNONE; - width = -1; - precision = -1; - next_arg = undefined; + str = str.replace(/^(\s*[+-]?)(0[bodx]?)/, function (_, head, flag) { + switch (flag) { + case '0b': + if (base === 0 || base === 2) { + base = 2; + return head; + } + // no-break + case '0': + case '0o': + if (base === 0 || base === 8) { + base = 8; + return head; + } + // no-break + case '0d': + if (base === 0 || base === 10) { + base = 10; + return head; + } + // no-break + case '0x': + if (base === 0 || base === 16) { + base = 16; + return head; + } + // no-break + } + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid value for Integer(): \"" + (value) + "\"") + }); - end_slice = i; + base = (base === 0 ? 10 : base); - i++; + base_digits = '0-' + (base <= 10 ? base - 1 : '9a-' + String.fromCharCode(97 + (base - 11))); - switch (format_string.charAt(i)) { - case '%': - begin_slice = i; - case '': - case '\n': - case '\0': - i++; - continue; - } + if (!(new RegExp('^\\s*[+-]?[' + base_digits + ']+\\s*$')).test(str)) { + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid value for Integer(): \"" + (value) + "\"") + } - format_sequence: for (; i < len; i++) { - switch (format_string.charAt(i)) { + i = parseInt(str, base); - case ' ': - CHECK_FOR_FLAGS(); - flags |= FSPACE; - continue format_sequence; + if (isNaN(i)) { + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid value for Integer(): \"" + (value) + "\"") + } - case '#': - CHECK_FOR_FLAGS(); - flags |= FSHARP; - continue format_sequence; + return i; + ; + }, $Kernel_Integer$35.$$arity = -2); + + Opal.def(self, '$Float', $Kernel_Float$36 = function $$Float(value) { + var self = this; - case '+': - CHECK_FOR_FLAGS(); - flags |= FPLUS; - continue format_sequence; + + var str; - case '-': - CHECK_FOR_FLAGS(); - flags |= FMINUS; - continue format_sequence; + if (value === nil) { + self.$raise($$($nesting, 'TypeError'), "can't convert nil into Float") + } - case '0': - CHECK_FOR_FLAGS(); - flags |= FZERO; - continue format_sequence; + if (value.$$is_string) { + str = value.toString(); - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - tmp_num = READ_NUM('width'); - if (format_string.charAt(i + 1) === '$') { - if (i + 2 === len) { - str = '%'; - i++; - break format_sequence; - } - if (next_arg !== undefined) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "value given twice - %" + (tmp_num) + "$") - } - next_arg = GET_POS_ARG(tmp_num); - i++; - } else { - CHECK_FOR_WIDTH(); - flags |= FWIDTH; - width = tmp_num; - } - continue format_sequence; + str = str.replace(/(\d)_(?=\d)/g, '$1'); - case '<': - case '\{': - closing_brace_char = (format_string.charAt(i) === '<' ? '>' : '\}'); - hash_parameter_key = ''; + //Special case for hex strings only: + if (/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(str)) { + return self.$Integer(str); + } - i++; + if (!/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(str)) { + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid value for Float(): \"" + (value) + "\"") + } - for (;; i++) { - if (i === len) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "malformed name - unmatched parenthesis") - } - if (format_string.charAt(i) === closing_brace_char) { + return parseFloat(str); + } - if (pos_arg_num > 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "named " + (hash_parameter_key) + " after unnumbered(" + (pos_arg_num) + ")") - } - if (pos_arg_num === -1) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "named " + (hash_parameter_key) + " after numbered") - } - pos_arg_num = -2; + return $$($nesting, 'Opal')['$coerce_to!'](value, $$($nesting, 'Float'), "to_f"); + + }, $Kernel_Float$36.$$arity = 1); + + Opal.def(self, '$Hash', $Kernel_Hash$37 = function $$Hash(arg) { + var self = this, $ret_or_4 = nil; - if (args[0] === undefined || !args[0].$$is_hash) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "one hash required") - } + + if ($truthy((function() {if ($truthy(($ret_or_4 = arg['$nil?']()))) { + return $ret_or_4 + } else { + return arg['$==']([]) + }; return nil; })())) { + return $hash2([], {})}; + if ($truthy($$($nesting, 'Hash')['$==='](arg))) { + return arg}; + return $$($nesting, 'Opal')['$coerce_to!'](arg, $$($nesting, 'Hash'), "to_hash"); + }, $Kernel_Hash$37.$$arity = 1); + + Opal.def(self, '$is_a?', $Kernel_is_a$ques$38 = function(klass) { + var self = this; - next_arg = (args[0]).$fetch(hash_parameter_key); + + if (!klass.$$is_class && !klass.$$is_module) { + self.$raise($$($nesting, 'TypeError'), "class or module required"); + } - if (closing_brace_char === '>') { - continue format_sequence; - } else { - str = next_arg.toString(); - if (precision !== -1) { str = str.slice(0, precision); } - if (flags&FMINUS) { - while (str.length < width) { str = str + ' '; } - } else { - while (str.length < width) { str = ' ' + str; } - } - break format_sequence; - } - } - hash_parameter_key += format_string.charAt(i); - } + return Opal.is_a(self, klass); + + }, $Kernel_is_a$ques$38.$$arity = 1); + + Opal.def(self, '$itself', $Kernel_itself$39 = function $$itself() { + var self = this; - case '*': - i++; - CHECK_FOR_WIDTH(); - flags |= FWIDTH; - width = READ_NUM_AFTER_ASTER('width'); - if (width < 0) { - flags |= FMINUS; - width = -width; - } - continue format_sequence; + return self + }, $Kernel_itself$39.$$arity = 0); + $alias(self, "kind_of?", "is_a?"); + + Opal.def(self, '$lambda', $Kernel_lambda$40 = function $$lambda() { + var $iter = $Kernel_lambda$40.$$p, block = $iter || nil, self = this; - case '.': - if (flags&FPREC0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "precision given twice") - } - flags |= FPREC|FPREC0; - precision = 0; - i++; - if (format_string.charAt(i) === '*') { - i++; - precision = READ_NUM_AFTER_ASTER('precision'); - if (precision < 0) { - flags &= ~FPREC; - } - continue format_sequence; - } - precision = READ_NUM('precision'); - continue format_sequence; + if ($iter) $Kernel_lambda$40.$$p = null; + + + if ($iter) $Kernel_lambda$40.$$p = null;; + return Opal.lambda(block);; + }, $Kernel_lambda$40.$$arity = 0); + + Opal.def(self, '$load', $Kernel_load$41 = function $$load(file) { + var self = this; - case 'd': - case 'i': - case 'u': - arg = self.$Integer(GET_ARG()); - if (arg >= 0) { - str = arg.toString(); - while (str.length < precision) { str = '0' + str; } - if (flags&FMINUS) { - if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } - while (str.length < width) { str = str + ' '; } - } else { - if (flags&FZERO && precision === -1) { - while (str.length < width - ((flags&FPLUS || flags&FSPACE) ? 1 : 0)) { str = '0' + str; } - if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } - } else { - if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } - while (str.length < width) { str = ' ' + str; } - } - } - } else { - str = (-arg).toString(); - while (str.length < precision) { str = '0' + str; } - if (flags&FMINUS) { - str = '-' + str; - while (str.length < width) { str = str + ' '; } - } else { - if (flags&FZERO && precision === -1) { - while (str.length < width - 1) { str = '0' + str; } - str = '-' + str; - } else { - str = '-' + str; - while (str.length < width) { str = ' ' + str; } - } - } - } - break format_sequence; + + file = $$($nesting, 'Opal')['$coerce_to!'](file, $$($nesting, 'String'), "to_str"); + return Opal.load(file); + }, $Kernel_load$41.$$arity = 1); + + Opal.def(self, '$loop', $Kernel_loop$42 = function $$loop() { + var $$43, $a, $iter = $Kernel_loop$42.$$p, $yield = $iter || nil, self = this, e = nil; - case 'b': - case 'B': - case 'o': - case 'x': - case 'X': - switch (format_string.charAt(i)) { - case 'b': - case 'B': - base_number = 2; - base_prefix = '0b'; - base_neg_zero_regex = /^1+/; - base_neg_zero_digit = '1'; - break; - case 'o': - base_number = 8; - base_prefix = '0'; - base_neg_zero_regex = /^3?7+/; - base_neg_zero_digit = '7'; - break; - case 'x': - case 'X': - base_number = 16; - base_prefix = '0x'; - base_neg_zero_regex = /^f+/; - base_neg_zero_digit = 'f'; - break; - } - arg = self.$Integer(GET_ARG()); - if (arg >= 0) { - str = arg.toString(base_number); - while (str.length < precision) { str = '0' + str; } - if (flags&FMINUS) { - if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } - if (flags&FSHARP && arg !== 0) { str = base_prefix + str; } - while (str.length < width) { str = str + ' '; } - } else { - if (flags&FZERO && precision === -1) { - while (str.length < width - ((flags&FPLUS || flags&FSPACE) ? 1 : 0) - ((flags&FSHARP && arg !== 0) ? base_prefix.length : 0)) { str = '0' + str; } - if (flags&FSHARP && arg !== 0) { str = base_prefix + str; } - if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } - } else { - if (flags&FSHARP && arg !== 0) { str = base_prefix + str; } - if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } - while (str.length < width) { str = ' ' + str; } - } - } - } else { - if (flags&FPLUS || flags&FSPACE) { - str = (-arg).toString(base_number); - while (str.length < precision) { str = '0' + str; } - if (flags&FMINUS) { - if (flags&FSHARP) { str = base_prefix + str; } - str = '-' + str; - while (str.length < width) { str = str + ' '; } - } else { - if (flags&FZERO && precision === -1) { - while (str.length < width - 1 - (flags&FSHARP ? 2 : 0)) { str = '0' + str; } - if (flags&FSHARP) { str = base_prefix + str; } - str = '-' + str; - } else { - if (flags&FSHARP) { str = base_prefix + str; } - str = '-' + str; - while (str.length < width) { str = ' ' + str; } - } - } - } else { - str = (arg >>> 0).toString(base_number).replace(base_neg_zero_regex, base_neg_zero_digit); - while (str.length < precision - 2) { str = base_neg_zero_digit + str; } - if (flags&FMINUS) { - str = '..' + str; - if (flags&FSHARP) { str = base_prefix + str; } - while (str.length < width) { str = str + ' '; } - } else { - if (flags&FZERO && precision === -1) { - while (str.length < width - 2 - (flags&FSHARP ? base_prefix.length : 0)) { str = base_neg_zero_digit + str; } - str = '..' + str; - if (flags&FSHARP) { str = base_prefix + str; } - } else { - str = '..' + str; - if (flags&FSHARP) { str = base_prefix + str; } - while (str.length < width) { str = ' ' + str; } - } - } - } - } - if (format_string.charAt(i) === format_string.charAt(i).toUpperCase()) { - str = str.toUpperCase(); - } - break format_sequence; - - case 'f': - case 'e': - case 'E': - case 'g': - case 'G': - arg = self.$Float(GET_ARG()); - if (arg >= 0 || isNaN(arg)) { - if (arg === Infinity) { - str = 'Inf'; - } else { - switch (format_string.charAt(i)) { - case 'f': - str = arg.toFixed(precision === -1 ? 6 : precision); - break; - case 'e': - case 'E': - str = arg.toExponential(precision === -1 ? 6 : precision); - break; - case 'g': - case 'G': - str = arg.toExponential(); - exponent = parseInt(str.split('e')[1], 10); - if (!(exponent < -4 || exponent >= (precision === -1 ? 6 : precision))) { - str = arg.toPrecision(precision === -1 ? (flags&FSHARP ? 6 : undefined) : precision); - } - break; - } - } - if (flags&FMINUS) { - if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } - while (str.length < width) { str = str + ' '; } - } else { - if (flags&FZERO && arg !== Infinity && !isNaN(arg)) { - while (str.length < width - ((flags&FPLUS || flags&FSPACE) ? 1 : 0)) { str = '0' + str; } - if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } - } else { - if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } - while (str.length < width) { str = ' ' + str; } - } - } - } else { - if (arg === -Infinity) { - str = 'Inf'; - } else { - switch (format_string.charAt(i)) { - case 'f': - str = (-arg).toFixed(precision === -1 ? 6 : precision); - break; - case 'e': - case 'E': - str = (-arg).toExponential(precision === -1 ? 6 : precision); - break; - case 'g': - case 'G': - str = (-arg).toExponential(); - exponent = parseInt(str.split('e')[1], 10); - if (!(exponent < -4 || exponent >= (precision === -1 ? 6 : precision))) { - str = (-arg).toPrecision(precision === -1 ? (flags&FSHARP ? 6 : undefined) : precision); - } - break; - } - } - if (flags&FMINUS) { - str = '-' + str; - while (str.length < width) { str = str + ' '; } - } else { - if (flags&FZERO && arg !== -Infinity) { - while (str.length < width - 1) { str = '0' + str; } - str = '-' + str; - } else { - str = '-' + str; - while (str.length < width) { str = ' ' + str; } - } - } - } - if (format_string.charAt(i) === format_string.charAt(i).toUpperCase() && arg !== Infinity && arg !== -Infinity && !isNaN(arg)) { - str = str.toUpperCase(); - } - str = str.replace(/([eE][-+]?)([0-9])$/, '$10$2'); - break format_sequence; - - case 'a': - case 'A': - // Not implemented because there are no specs for this field type. - self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "`A` and `a` format field types are not implemented in Opal yet") - - case 'c': - arg = GET_ARG(); - if ((arg)['$respond_to?']("to_ary")) { arg = (arg).$to_ary()[0]; } - if ((arg)['$respond_to?']("to_str")) { - str = (arg).$to_str(); - } else { - str = String.fromCharCode(Opal.const_get_relative($nesting, 'Opal').$coerce_to(arg, Opal.const_get_relative($nesting, 'Integer'), "to_int")); - } - if (str.length !== 1) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "%c requires a character") - } - if (flags&FMINUS) { - while (str.length < width) { str = str + ' '; } - } else { - while (str.length < width) { str = ' ' + str; } - } - break format_sequence; - - case 'p': - str = (GET_ARG()).$inspect(); - if (precision !== -1) { str = str.slice(0, precision); } - if (flags&FMINUS) { - while (str.length < width) { str = str + ' '; } - } else { - while (str.length < width) { str = ' ' + str; } - } - break format_sequence; - - case 's': - str = (GET_ARG()).$to_s(); - if (precision !== -1) { str = str.slice(0, precision); } - if (flags&FMINUS) { - while (str.length < width) { str = str + ' '; } - } else { - while (str.length < width) { str = ' ' + str; } - } - break format_sequence; - - default: - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "malformed format string - %" + (format_string.charAt(i))) - } - } - - if (str === undefined) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "malformed format string - %") - } - - result += format_string.slice(begin_slice, end_slice) + str; - begin_slice = i + 1; - } - - if ($gvars.DEBUG && pos_arg_num >= 0 && seq_arg_num < args.length) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "too many arguments for format string") - } - - return result + format_string.slice(begin_slice); - ; - }, TMP_Kernel_format_23.$$arity = -2); - - Opal.defn(self, '$hash', TMP_Kernel_hash_24 = function $$hash() { - var self = this; + if ($iter) $Kernel_loop$42.$$p = null; + + if (($yield !== nil)) { + } else { + return $send(self, 'enum_for', ["loop"], ($$43 = function(){var self = $$43.$$s == null ? this : $$43.$$s; - return self.$__id__() - }, TMP_Kernel_hash_24.$$arity = 0); + return $$$($$($nesting, 'Float'), 'INFINITY')}, $$43.$$s = self, $$43.$$arity = 0, $$43)) + }; + while ($truthy(true)) { + + try { + Opal.yieldX($yield, []) + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'StopIteration')])) {(e = $err) + try { + return e.$result() + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + }; + return self; + }, $Kernel_loop$42.$$arity = 0); - Opal.defn(self, '$initialize_copy', TMP_Kernel_initialize_copy_25 = function $$initialize_copy(other) { + Opal.def(self, '$nil?', $Kernel_nil$ques$44 = function() { var self = this; - return nil - }, TMP_Kernel_initialize_copy_25.$$arity = 1); + return false + }, $Kernel_nil$ques$44.$$arity = 0); + $alias(self, "object_id", "__id__"); - Opal.defn(self, '$inspect', TMP_Kernel_inspect_26 = function $$inspect() { - var self = this; + Opal.def(self, '$printf', $Kernel_printf$45 = function $$printf($a) { + var $post_args, args, self = this; - return self.$to_s() - }, TMP_Kernel_inspect_26.$$arity = 0); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(args['$any?']())) { + self.$print($send(self, 'format', Opal.to_a(args)))}; + return nil; + }, $Kernel_printf$45.$$arity = -1); - Opal.defn(self, '$instance_of?', TMP_Kernel_instance_of$q_27 = function(klass) { - var self = this; + Opal.def(self, '$proc', $Kernel_proc$46 = function $$proc() { + var $iter = $Kernel_proc$46.$$p, block = $iter || nil, self = this; + if ($iter) $Kernel_proc$46.$$p = null; - if (!klass.$$is_class && !klass.$$is_module) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "class or module required"); - } - - return self.$$class === klass; - - }, TMP_Kernel_instance_of$q_27.$$arity = 1); + + if ($iter) $Kernel_proc$46.$$p = null;; + if ($truthy(block)) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "tried to create Proc object without a block") + }; + block.$$is_lambda = false; + return block; + }, $Kernel_proc$46.$$arity = 0); - Opal.defn(self, '$instance_variable_defined?', TMP_Kernel_instance_variable_defined$q_28 = function(name) { - var self = this; + Opal.def(self, '$puts', $Kernel_puts$47 = function $$puts($a) { + var $post_args, strs, self = this; + if ($gvars.stdout == null) $gvars.stdout = nil; - name = Opal.const_get_relative($nesting, 'Opal')['$instance_variable_name!'](name); - return Opal.hasOwnProperty.call(self, name.substr(1)); - }, TMP_Kernel_instance_variable_defined$q_28.$$arity = 1); + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + strs = $post_args;; + return $send($gvars.stdout, 'puts', Opal.to_a(strs)); + }, $Kernel_puts$47.$$arity = -1); - Opal.defn(self, '$instance_variable_get', TMP_Kernel_instance_variable_get_29 = function $$instance_variable_get(name) { - var self = this; + Opal.def(self, '$p', $Kernel_p$48 = function $$p($a) { + var $post_args, args, $$49, self = this; - name = Opal.const_get_relative($nesting, 'Opal')['$instance_variable_name!'](name); - var ivar = self[Opal.ivar(name.substr(1))]; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + $send(args, 'each', [], ($$49 = function(obj){var self = $$49.$$s == null ? this : $$49.$$s; + if ($gvars.stdout == null) $gvars.stdout = nil; - return ivar == null ? nil : ivar; - ; - }, TMP_Kernel_instance_variable_get_29.$$arity = 1); + + + if (obj == null) { + obj = nil; + }; + return $gvars.stdout.$puts(obj.$inspect());}, $$49.$$s = self, $$49.$$arity = 1, $$49)); + if ($truthy($rb_le(args.$length(), 1))) { + return args['$[]'](0) + } else { + return args + }; + }, $Kernel_p$48.$$arity = -1); - Opal.defn(self, '$instance_variable_set', TMP_Kernel_instance_variable_set_30 = function $$instance_variable_set(name, value) { - var self = this; + Opal.def(self, '$print', $Kernel_print$50 = function $$print($a) { + var $post_args, strs, self = this; + if ($gvars.stdout == null) $gvars.stdout = nil; - name = Opal.const_get_relative($nesting, 'Opal')['$instance_variable_name!'](name); - return self[Opal.ivar(name.substr(1))] = value; - }, TMP_Kernel_instance_variable_set_30.$$arity = 2); + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + strs = $post_args;; + return $send($gvars.stdout, 'print', Opal.to_a(strs)); + }, $Kernel_print$50.$$arity = -1); - Opal.defn(self, '$remove_instance_variable', TMP_Kernel_remove_instance_variable_31 = function $$remove_instance_variable(name) { - var self = this; + Opal.def(self, '$readline', $Kernel_readline$51 = function $$readline($a) { + var $post_args, args, self = this; + if ($gvars.stdin == null) $gvars.stdin = nil; - name = Opal.const_get_relative($nesting, 'Opal')['$instance_variable_name!'](name); - var key = Opal.ivar(name.substr(1)), - val; - if (self.hasOwnProperty(key)) { - val = self[key]; - delete self[key]; - return val; - } - ; - return self.$raise(Opal.const_get_relative($nesting, 'NameError'), "" + "instance variable " + (name) + " not defined"); - }, TMP_Kernel_remove_instance_variable_31.$$arity = 1); + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($gvars.stdin, 'readline', Opal.to_a(args)); + }, $Kernel_readline$51.$$arity = -1); - Opal.defn(self, '$instance_variables', TMP_Kernel_instance_variables_32 = function $$instance_variables() { - var self = this; + Opal.def(self, '$warn', $Kernel_warn$52 = function $$warn($a, $b) { + var $post_args, $kwargs, strs, uplevel, $c, $d, $$53, self = this, location = nil, $ret_or_5 = nil; + if ($gvars.VERBOSE == null) $gvars.VERBOSE = nil; + if ($gvars.stderr == null) $gvars.stderr = nil; - var result = [], ivar; - - for (var name in self) { - if (self.hasOwnProperty(name) && name.charAt(0) !== '$') { - if (name.substr(-1) === '$') { - ivar = name.slice(0, name.length - 1); - } else { - ivar = name; - } - result.push('@' + ivar); - } - } - - return result; - - }, TMP_Kernel_instance_variables_32.$$arity = 0); - - Opal.defn(self, '$Integer', TMP_Kernel_Integer_33 = function $$Integer(value, base) { - var self = this; - - - var i, str, base_digits; - - if (!value.$$is_string) { - if (base !== undefined) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "base specified for non string value") - } - if (value === nil) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "can't convert nil into Integer") - } - if (value.$$is_number) { - if (value === Infinity || value === -Infinity || isNaN(value)) { - self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), value) - } - return Math.floor(value); - } - if (value['$respond_to?']("to_int")) { - i = value.$to_int(); - if (i !== nil) { - return i; - } - } - return Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](value, Opal.const_get_relative($nesting, 'Integer'), "to_i"); - } - - if (value === "0") { - return 0; - } - - if (base === undefined) { - base = 0; - } else { - base = Opal.const_get_relative($nesting, 'Opal').$coerce_to(base, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - if (base === 1 || base < 0 || base > 36) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid radix " + (base)) - } - } - - str = value.toLowerCase(); - - str = str.replace(/(\d)_(?=\d)/g, '$1'); - - str = str.replace(/^(\s*[+-]?)(0[bodx]?)/, function (_, head, flag) { - switch (flag) { - case '0b': - if (base === 0 || base === 2) { - base = 2; - return head; - } - case '0': - case '0o': - if (base === 0 || base === 8) { - base = 8; - return head; - } - case '0d': - if (base === 0 || base === 10) { - base = 10; - return head; - } - case '0x': - if (base === 0 || base === 16) { - base = 16; - return head; - } - } - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid value for Integer(): \"" + (value) + "\"") - }); - - base = (base === 0 ? 10 : base); - - base_digits = '0-' + (base <= 10 ? base - 1 : '9a-' + String.fromCharCode(97 + (base - 11))); - - if (!(new RegExp('^\\s*[+-]?[' + base_digits + ']+\\s*$')).test(str)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid value for Integer(): \"" + (value) + "\"") - } - - i = parseInt(str, base); - - if (isNaN(i)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid value for Integer(): \"" + (value) + "\"") - } - - return i; - - }, TMP_Kernel_Integer_33.$$arity = -2); - - Opal.defn(self, '$Float', TMP_Kernel_Float_34 = function $$Float(value) { - var self = this; - - - var str; - - if (value === nil) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "can't convert nil into Float") - } - - if (value.$$is_string) { - str = value.toString(); - - str = str.replace(/(\d)_(?=\d)/g, '$1'); - - //Special case for hex strings only: - if (/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(str)) { - return self.$Integer(str); - } - - if (!/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(str)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid value for Float(): \"" + (value) + "\"") - } - - return parseFloat(str); - } - - return Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](value, Opal.const_get_relative($nesting, 'Float'), "to_f"); - - }, TMP_Kernel_Float_34.$$arity = 1); - - Opal.defn(self, '$Hash', TMP_Kernel_Hash_35 = function $$Hash(arg) { - var $a, self = this; - - - if ($truthy(($truthy($a = arg['$nil?']()) ? $a : arg['$==']([])))) { - return $hash2([], {})}; - if ($truthy(Opal.const_get_relative($nesting, 'Hash')['$==='](arg))) { - return arg}; - return Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](arg, Opal.const_get_relative($nesting, 'Hash'), "to_hash"); - }, TMP_Kernel_Hash_35.$$arity = 1); - - Opal.defn(self, '$is_a?', TMP_Kernel_is_a$q_36 = function(klass) { - var self = this; - - - if (!klass.$$is_class && !klass.$$is_module) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "class or module required"); - } - - return Opal.is_a(self, klass); - - }, TMP_Kernel_is_a$q_36.$$arity = 1); - - Opal.defn(self, '$itself', TMP_Kernel_itself_37 = function $$itself() { - var self = this; - - return self - }, TMP_Kernel_itself_37.$$arity = 0); - Opal.alias(self, "kind_of?", "is_a?"); - - Opal.defn(self, '$lambda', TMP_Kernel_lambda_38 = function $$lambda() { - var self = this, $iter = TMP_Kernel_lambda_38.$$p, block = $iter || nil; - - if ($iter) TMP_Kernel_lambda_38.$$p = null; - block.$$is_lambda = true; - return block; - }, TMP_Kernel_lambda_38.$$arity = 0); - - Opal.defn(self, '$load', TMP_Kernel_load_39 = function $$load(file) { - var self = this; - + $post_args = Opal.slice.call(arguments, 0, arguments.length); - file = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](file, Opal.const_get_relative($nesting, 'String'), "to_str"); - return Opal.load(file); - }, TMP_Kernel_load_39.$$arity = 1); - - Opal.defn(self, '$loop', TMP_Kernel_loop_40 = function $$loop() { - var TMP_41, $a, self = this, $iter = TMP_Kernel_loop_40.$$p, $yield = $iter || nil, e = nil; - - if ($iter) TMP_Kernel_loop_40.$$p = null; + $kwargs = Opal.extract_kwargs($post_args); - if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["loop"], (TMP_41 = function(){var self = TMP_41.$$s || this; - - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY')}, TMP_41.$$s = self, TMP_41.$$arity = 0, TMP_41)) - }; - while ($truthy(true)) { - - try { - Opal.yieldX($yield, []) - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StopIteration')])) {e = $err; - try { - return e.$result() - } finally { Opal.pop_exception() } - } else { throw $err; } - }; + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); }; - return self; - }, TMP_Kernel_loop_40.$$arity = 0); - - Opal.defn(self, '$nil?', TMP_Kernel_nil$q_42 = function() { - var self = this; - - return false - }, TMP_Kernel_nil$q_42.$$arity = 0); - Opal.alias(self, "object_id", "__id__"); - - Opal.defn(self, '$printf', TMP_Kernel_printf_43 = function $$printf($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - if ($truthy($rb_gt(args.$length(), 0))) { - self.$print($send(self, 'format', Opal.to_a(args)))}; - return nil; - }, TMP_Kernel_printf_43.$$arity = -1); - - Opal.defn(self, '$proc', TMP_Kernel_proc_44 = function $$proc() { - var self = this, $iter = TMP_Kernel_proc_44.$$p, block = $iter || nil; - - if ($iter) TMP_Kernel_proc_44.$$p = null; - if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to create Proc object without a block") - }; - block.$$is_lambda = false; - return block; - }, TMP_Kernel_proc_44.$$arity = 0); - - Opal.defn(self, '$puts', TMP_Kernel_puts_45 = function $$puts($a_rest) { - var self = this, strs; - if ($gvars.stdout == null) $gvars.stdout = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - strs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - strs[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send($gvars.stdout, 'puts', Opal.to_a(strs)) - }, TMP_Kernel_puts_45.$$arity = -1); - - Opal.defn(self, '$p', TMP_Kernel_p_47 = function $$p($a_rest) { - var TMP_46, self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + strs = $post_args;; - $send(args, 'each', [], (TMP_46 = function(obj){var self = TMP_46.$$s || this; - if ($gvars.stdout == null) $gvars.stdout = nil; -if (obj == null) obj = nil; - return $gvars.stdout.$puts(obj.$inspect())}, TMP_46.$$s = self, TMP_46.$$arity = 1, TMP_46)); - if ($truthy($rb_le(args.$length(), 1))) { - return args['$[]'](0) - } else { - return args + uplevel = $kwargs.$$smap["uplevel"]; + if (uplevel == null) { + uplevel = nil }; - }, TMP_Kernel_p_47.$$arity = -1); - - Opal.defn(self, '$print', TMP_Kernel_print_48 = function $$print($a_rest) { - var self = this, strs; - if ($gvars.stdout == null) $gvars.stdout = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - strs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - strs[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send($gvars.stdout, 'print', Opal.to_a(strs)) - }, TMP_Kernel_print_48.$$arity = -1); - - Opal.defn(self, '$warn', TMP_Kernel_warn_49 = function $$warn($a_rest) { - var $b, self = this, strs; - if ($gvars.VERBOSE == null) $gvars.VERBOSE = nil; - if ($gvars.stderr == null) $gvars.stderr = nil; + if ($truthy(uplevel)) { + + uplevel = $$($nesting, 'Opal')['$coerce_to!'](uplevel, $$($nesting, 'Integer'), "to_str"); + if ($truthy($rb_lt(uplevel, 0))) { + self.$raise($$($nesting, 'ArgumentError'), "" + "negative level (" + (uplevel) + ")")}; + location = ($d = ($c = self.$caller($rb_plus(uplevel, 1), 1).$first(), ($c === nil || $c == null) ? nil : $send($c, 'split', [":in `"])), ($d === nil || $d == null) ? nil : $send($d, 'first', [])); + if ($truthy(location)) { + location = "" + (location) + ": "}; + strs = $send(strs, 'map', [], ($$53 = function(s){var self = $$53.$$s == null ? this : $$53.$$s; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - strs = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - strs[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(($truthy($b = $gvars.VERBOSE['$nil?']()) ? $b : strs['$empty?']()))) { + + + if (s == null) { + s = nil; + }; + return "" + (location) + "warning: " + (s);}, $$53.$$s = self, $$53.$$arity = 1, $$53));}; + if ($truthy((function() {if ($truthy(($ret_or_5 = $gvars.VERBOSE['$nil?']()))) { + return $ret_or_5 + } else { + return strs['$empty?']() + }; return nil; })())) { return nil - } else { + } else { return $send($gvars.stderr, 'puts', Opal.to_a(strs)) - } - }, TMP_Kernel_warn_49.$$arity = -1); + }; + }, $Kernel_warn$52.$$arity = -1); - Opal.defn(self, '$raise', TMP_Kernel_raise_50 = function $$raise(exception, string, _backtrace) { + Opal.def(self, '$raise', $Kernel_raise$54 = function $$raise(exception, string, backtrace) { var self = this; if ($gvars["!"] == null) $gvars["!"] = nil; + if ($gvars["@"] == null) $gvars["@"] = nil; + + ; + if (string == null) { string = nil; - } - if (_backtrace == null) { - _backtrace = nil; - } + }; + + if (backtrace == null) { + backtrace = nil; + }; if (exception == null && $gvars["!"] !== nil) { throw $gvars["!"]; } if (exception == null) { - exception = Opal.const_get_relative($nesting, 'RuntimeError').$new(); + exception = $$($nesting, 'RuntimeError').$new(""); } - else if (exception.$$is_string) { - exception = Opal.const_get_relative($nesting, 'RuntimeError').$new(exception); + else if ($respond_to(exception, '$to_str')) { + exception = $$($nesting, 'RuntimeError').$new(exception.$to_str()); } // using respond_to? and not an undefined check to avoid method_missing matching as true - else if (exception.$$is_class && exception['$respond_to?']("exception")) { + else if (exception.$$is_class && $respond_to(exception, '$exception')) { exception = exception.$exception(string); } - else if (exception['$kind_of?'](Opal.const_get_relative($nesting, 'Exception'))) { + else if (exception.$$is_exception) { // exception is fine } else { - exception = Opal.const_get_relative($nesting, 'TypeError').$new("exception class/object expected"); + exception = $$($nesting, 'TypeError').$new("exception class/object expected"); + } + + if (backtrace !== nil) { + exception.$set_backtrace(backtrace); } if ($gvars["!"] !== nil) { @@ -5016,19 +5252,21 @@ if (obj == null) obj = nil; } $gvars["!"] = exception; + $gvars["@"] = (exception).$backtrace(); throw exception; + ; + }, $Kernel_raise$54.$$arity = -1); + $alias(self, "fail", "raise"); - }, TMP_Kernel_raise_50.$$arity = -1); - Opal.alias(self, "fail", "raise"); - - Opal.defn(self, '$rand', TMP_Kernel_rand_51 = function $$rand(max) { + Opal.def(self, '$rand', $Kernel_rand$55 = function $$rand(max) { var self = this; + ; if (max === undefined) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Random'), 'DEFAULT').$rand(); + return $$$($$($nesting, 'Random'), 'DEFAULT').$rand(); } if (max.$$is_number) { @@ -5045,96 +5283,126 @@ if (obj == null) obj = nil; } } ; - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Random'), 'DEFAULT').$rand(max); - }, TMP_Kernel_rand_51.$$arity = -1); + return $$$($$($nesting, 'Random'), 'DEFAULT').$rand(max); + }, $Kernel_rand$55.$$arity = -1); - Opal.defn(self, '$respond_to?', TMP_Kernel_respond_to$q_52 = function(name, include_all) { + Opal.def(self, '$respond_to?', $Kernel_respond_to$ques$56 = function(name, include_all) { var self = this; + + if (include_all == null) { include_all = false; - } - - if ($truthy(self['$respond_to_missing?'](name, include_all))) { - return true}; + }; var body = self['$' + name]; if (typeof(body) === "function" && !body.$$stub) { return true; } + + if (self['$respond_to_missing?'].$$pristine === true) { + return false; + } else { + return self['$respond_to_missing?'](name, include_all); + } ; - return false; - }, TMP_Kernel_respond_to$q_52.$$arity = -2); + }, $Kernel_respond_to$ques$56.$$arity = -2); - Opal.defn(self, '$respond_to_missing?', TMP_Kernel_respond_to_missing$q_53 = function(method_name, include_all) { + Opal.def(self, '$respond_to_missing?', $Kernel_respond_to_missing$ques$57 = function(method_name, include_all) { var self = this; + + if (include_all == null) { include_all = false; - } - return false - }, TMP_Kernel_respond_to_missing$q_53.$$arity = -2); + }; + return false; + }, $Kernel_respond_to_missing$ques$57.$$arity = -2); + $$($nesting, 'Opal').$pristine(self, "respond_to?", "respond_to_missing?"); - Opal.defn(self, '$require', TMP_Kernel_require_54 = function $$require(file) { + Opal.def(self, '$require', $Kernel_require$58 = function $$require(file) { var self = this; - file = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](file, Opal.const_get_relative($nesting, 'String'), "to_str"); - return Opal.require(file); - }, TMP_Kernel_require_54.$$arity = 1); + // As Object.require refers to Kernel.require once Kernel has been loaded the String + // class may not be available yet, the coercion requires both String and Array to be loaded. + if (typeof file !== 'string' && Opal.String && Opal.Array) { + (file = $$($nesting, 'Opal')['$coerce_to!'](file, $$($nesting, 'String'), "to_str")) + } + return Opal.require(file) - Opal.defn(self, '$require_relative', TMP_Kernel_require_relative_55 = function $$require_relative(file) { + }, $Kernel_require$58.$$arity = 1); + + Opal.def(self, '$require_relative', $Kernel_require_relative$59 = function $$require_relative(file) { var self = this; - Opal.const_get_relative($nesting, 'Opal')['$try_convert!'](file, Opal.const_get_relative($nesting, 'String'), "to_str"); - file = Opal.const_get_relative($nesting, 'File').$expand_path(Opal.const_get_relative($nesting, 'File').$join(Opal.current_file, "..", file)); + $$($nesting, 'Opal')['$try_convert!'](file, $$($nesting, 'String'), "to_str"); + file = $$($nesting, 'File').$expand_path($$($nesting, 'File').$join(Opal.current_file, "..", file)); return Opal.require(file); - }, TMP_Kernel_require_relative_55.$$arity = 1); + }, $Kernel_require_relative$59.$$arity = 1); - Opal.defn(self, '$require_tree', TMP_Kernel_require_tree_56 = function $$require_tree(path) { - var self = this; + Opal.def(self, '$require_tree', $Kernel_require_tree$60 = function $$require_tree(path, $kwargs) { + var autoload, self = this; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + autoload = $kwargs.$$smap["autoload"]; + if (autoload == null) { + autoload = false + }; + var result = []; - path = Opal.const_get_relative($nesting, 'File').$expand_path(path) + path = $$($nesting, 'File').$expand_path(path) path = Opal.normalize(path); if (path === '.') path = ''; for (var name in Opal.modules) { if ((name)['$start_with?'](path)) { - result.push([name, Opal.require(name)]); + if(!autoload) { + result.push([name, Opal.require(name)]); + } else { + result.push([name, true]); // do nothing, delegated to a autoloading + } } } return result; + ; + }, $Kernel_require_tree$60.$$arity = -2); + $alias(self, "send", "__send__"); + $alias(self, "public_send", "__send__"); - }, TMP_Kernel_require_tree_56.$$arity = 1); - Opal.alias(self, "send", "__send__"); - Opal.alias(self, "public_send", "__send__"); - - Opal.defn(self, '$singleton_class', TMP_Kernel_singleton_class_57 = function $$singleton_class() { + Opal.def(self, '$singleton_class', $Kernel_singleton_class$61 = function $$singleton_class() { var self = this; - return Opal.get_singleton_class(self) - }, TMP_Kernel_singleton_class_57.$$arity = 0); + return Opal.get_singleton_class(self); + }, $Kernel_singleton_class$61.$$arity = 0); - Opal.defn(self, '$sleep', TMP_Kernel_sleep_58 = function $$sleep(seconds) { + Opal.def(self, '$sleep', $Kernel_sleep$62 = function $$sleep(seconds) { var self = this; + + if (seconds == null) { seconds = nil; - } + }; if (seconds === nil) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "can't convert NilClass into time interval") + self.$raise($$($nesting, 'TypeError'), "can't convert NilClass into time interval") } if (!seconds.$$is_number) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "can't convert " + (seconds.$class()) + " into time interval") + self.$raise($$($nesting, 'TypeError'), "" + "can't convert " + (seconds.$class()) + " into time interval") } if (seconds < 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "time interval must be positive") + self.$raise($$($nesting, 'ArgumentError'), "time interval must be positive") } var get_time = Opal.global.performance ? function() {return performance.now()} : @@ -5142,135 +5410,167 @@ if (obj == null) obj = nil; var t = get_time(); while (get_time() - t <= seconds * 1000); - return seconds; - - }, TMP_Kernel_sleep_58.$$arity = -1); - Opal.alias(self, "sprintf", "format"); + return Math.round(seconds); + ; + }, $Kernel_sleep$62.$$arity = -1); - Opal.defn(self, '$srand', TMP_Kernel_srand_59 = function $$srand(seed) { + Opal.def(self, '$srand', $Kernel_srand$63 = function $$srand(seed) { var self = this; + + if (seed == null) { - seed = Opal.const_get_relative($nesting, 'Random').$new_seed(); - } - return Opal.const_get_relative($nesting, 'Random').$srand(seed) - }, TMP_Kernel_srand_59.$$arity = -1); + seed = $$($nesting, 'Random').$new_seed(); + }; + return $$($nesting, 'Random').$srand(seed); + }, $Kernel_srand$63.$$arity = -1); - Opal.defn(self, '$String', TMP_Kernel_String_60 = function $$String(str) { - var $a, self = this; + Opal.def(self, '$String', $Kernel_String$64 = function $$String(str) { + var self = this, $ret_or_6 = nil; - return ($truthy($a = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](str, Opal.const_get_relative($nesting, 'String'), "to_str")) ? $a : Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](str, Opal.const_get_relative($nesting, 'String'), "to_s")) - }, TMP_Kernel_String_60.$$arity = 1); + if ($truthy(($ret_or_6 = $$($nesting, 'Opal')['$coerce_to?'](str, $$($nesting, 'String'), "to_str")))) { + return $ret_or_6 + } else { + return $$($nesting, 'Opal')['$coerce_to!'](str, $$($nesting, 'String'), "to_s") + } + }, $Kernel_String$64.$$arity = 1); - Opal.defn(self, '$tap', TMP_Kernel_tap_61 = function $$tap() { - var self = this, $iter = TMP_Kernel_tap_61.$$p, block = $iter || nil; + Opal.def(self, '$tap', $Kernel_tap$65 = function $$tap() { + var $iter = $Kernel_tap$65.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Kernel_tap_61.$$p = null; + if ($iter) $Kernel_tap$65.$$p = null; + + if ($iter) $Kernel_tap$65.$$p = null;; Opal.yield1(block, self); return self; - }, TMP_Kernel_tap_61.$$arity = 0); + }, $Kernel_tap$65.$$arity = 0); - Opal.defn(self, '$to_proc', TMP_Kernel_to_proc_62 = function $$to_proc() { + Opal.def(self, '$to_proc', $Kernel_to_proc$66 = function $$to_proc() { var self = this; return self - }, TMP_Kernel_to_proc_62.$$arity = 0); + }, $Kernel_to_proc$66.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Kernel_to_s_63 = function $$to_s() { + Opal.def(self, '$to_s', $Kernel_to_s$67 = function $$to_s() { var self = this; return "" + "#<" + (self.$class()) + ":0x" + (self.$__id__().$to_s(16)) + ">" - }, TMP_Kernel_to_s_63.$$arity = 0); + }, $Kernel_to_s$67.$$arity = 0); - Opal.defn(self, '$catch', TMP_Kernel_catch_64 = function(sym) { - var self = this, $iter = TMP_Kernel_catch_64.$$p, $yield = $iter || nil, e = nil; + Opal.def(self, '$catch', $Kernel_catch$68 = function(tag) { + var $iter = $Kernel_catch$68.$$p, $yield = $iter || nil, self = this, $ret_or_7 = nil, e = nil; - if ($iter) TMP_Kernel_catch_64.$$p = null; + if ($iter) $Kernel_catch$68.$$p = null; + + + if (tag == null) { + tag = nil; + }; try { - return Opal.yieldX($yield, []); + + tag = (function() {if ($truthy(($ret_or_7 = tag))) { + return $ret_or_7 + } else { + return $$($nesting, 'Object').$new() + }; return nil; })(); + return Opal.yield1($yield, tag);; } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'UncaughtThrowError')])) {e = $err; + if (Opal.rescue($err, [$$($nesting, 'UncaughtThrowError')])) {(e = $err) try { - if (e.$sym()['$=='](sym)) { - return e.$arg()}; + if (e.$tag()['$=='](tag)) { + return e.$value()}; return self.$raise(); - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - } - }, TMP_Kernel_catch_64.$$arity = 1); + }; + }, $Kernel_catch$68.$$arity = -1); - Opal.defn(self, '$throw', TMP_Kernel_throw_65 = function($a_rest) { - var self = this, args; + Opal.def(self, '$throw', $Kernel_throw$69 = function(tag, obj) { + var self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$raise(Opal.const_get_relative($nesting, 'UncaughtThrowError').$new(args)) - }, TMP_Kernel_throw_65.$$arity = -1); + + + if (obj == null) { + obj = nil; + }; + return self.$raise($$($nesting, 'UncaughtThrowError').$new(tag, obj)); + }, $Kernel_throw$69.$$arity = -2); - Opal.defn(self, '$open', TMP_Kernel_open_66 = function $$open($a_rest) { - var self = this, args, $iter = TMP_Kernel_open_66.$$p, block = $iter || nil; + Opal.def(self, '$open', $Kernel_open$70 = function $$open($a) { + var $iter = $Kernel_open$70.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Kernel_open_66.$$p = null; - return $send(Opal.const_get_relative($nesting, 'File'), 'open', Opal.to_a(args), block.$to_proc()) - }, TMP_Kernel_open_66.$$arity = -1); + if ($iter) $Kernel_open$70.$$p = null; + + + if ($iter) $Kernel_open$70.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'File'), 'open', Opal.to_a(args), block.$to_proc()); + }, $Kernel_open$70.$$arity = -1); + + Opal.def(self, '$yield_self', $Kernel_yield_self$71 = function $$yield_self() { + var $$72, $iter = $Kernel_yield_self$71.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Kernel_yield_self$71.$$p = null; + + if (($yield !== nil)) { + } else { + return $send(self, 'enum_for', ["yield_self"], ($$72 = function(){var self = $$72.$$s == null ? this : $$72.$$s; + + return 1}, $$72.$$s = self, $$72.$$arity = 0, $$72)) + }; + return Opal.yield1($yield, self);; + }, $Kernel_yield_self$71.$$arity = 0); + $alias(self, "then", "yield_self"); + return $$($nesting, 'Opal').$pristine(self, "method_missing"); })($nesting[0], $nesting); return (function($base, $super, $parent_nesting) { - function $Object(){}; - var self = $Object = $klass($base, $super, 'Object', $Object); + var self = $klass($base, $super, 'Object'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - return self.$include(Opal.const_get_relative($nesting, 'Kernel')) + + delete Opal.Object.$$prototype.$require; + return self.$include($$($nesting, 'Kernel')); })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/error"] = function(Opal) { +Opal.modules["corelib/error"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $module = Opal.module; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $gvars = Opal.gvars, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy, $module = Opal.module, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$new', '$clone', '$to_s', '$empty?', '$class', '$+', '$attr_reader', '$[]', '$>', '$length', '$inspect']); + Opal.add_stubs(['$new', '$map', '$backtrace', '$clone', '$to_s', '$tty?', '$include?', '$raise', '$dup', '$!', '$empty?', '$caller', '$shift', '$+', '$class', '$join', '$cause', '$full_message', '$==', '$reverse', '$split', '$attr_reader', '$inspect']); (function($base, $super, $parent_nesting) { - function $Exception(){}; - var self = $Exception = $klass($base, $super, 'Exception', $Exception); + var self = $klass($base, $super, 'Exception'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Exception_new_1, TMP_Exception_exception_2, TMP_Exception_initialize_3, TMP_Exception_backtrace_4, TMP_Exception_exception_5, TMP_Exception_message_6, TMP_Exception_inspect_7, TMP_Exception_to_s_8; + var $nesting = [self].concat($parent_nesting), $Exception_new$1, $Exception_exception$2, $Exception_initialize$3, $Exception_backtrace$4, $Exception_backtrace_locations$5, $Exception_cause$7, $Exception_exception$8, $Exception_message$9, $Exception_full_message$10, $Exception_inspect$12, $Exception_set_backtrace$13, $Exception_to_s$15; - def.message = nil; + self.$$prototype.message = nil; - var Kernel$raise = Opal.const_get_relative($nesting, 'Kernel').$raise; - Opal.defs(self, '$new', TMP_Exception_new_1 = function($a_rest) { - var self = this, args; + Opal.defineProperty(self.$$prototype, '$$is_exception', true); + var stack_trace_limit; + Opal.defs(self, '$new', $Exception_new$1 = function($a) { + var $post_args, args, self = this; + if ($gvars["!"] == null) $gvars["!"] = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; var message = (args.length > 0) ? args[0] : nil; - var error = new self.$$alloc(message); + var error = new self.$$constructor(message); error.name = self.$$name; error.message = message; + error.cause = $gvars["!"]; Opal.send(error, error.$initialize, args); // Error.captureStackTrace() will use .name and .toString to build the @@ -5279,59 +5579,118 @@ Opal.modules["corelib/error"] = function(Opal) { // https://nodejs.org/dist/latest-v6.x/docs/api/errors.html if (Opal.config.enable_stack_trace && Error.captureStackTrace) { // Passing Kernel.raise will cut the stack trace from that point above - Error.captureStackTrace(error, Kernel$raise); + Error.captureStackTrace(error, stack_trace_limit); } return error; + ; + }, $Exception_new$1.$$arity = -1); + stack_trace_limit = self.$new; + Opal.defs(self, '$exception', $Exception_exception$2 = function $$exception($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, 'new', Opal.to_a(args)); + }, $Exception_exception$2.$$arity = -1); - }, TMP_Exception_new_1.$$arity = -1); - Opal.defs(self, '$exception', TMP_Exception_exception_2 = function $$exception($a_rest) { - var self = this, args; + Opal.def(self, '$initialize', $Exception_initialize$3 = function $$initialize($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self, 'new', Opal.to_a(args)) - }, TMP_Exception_exception_2.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return self.message = (args.length > 0) ? args[0] : nil;; + }, $Exception_initialize$3.$$arity = -1); - Opal.defn(self, '$initialize', TMP_Exception_initialize_3 = function $$initialize($a_rest) { - var self = this, args; + // Convert backtrace from any format to Ruby format + function correct_backtrace(backtrace) { + var new_bt = [], m; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; + for (var i = 0; i < backtrace.length; i++) { + var loc = backtrace[i]; + if (!loc || !loc.$$is_string) { + /* Do nothing */ + } + /* Chromium format */ + else if ((m = loc.match(/^ at (.*?) \((.*?)\)$/))) { + new_bt.push(m[2] + ":in `" + m[1] + "'"); + } + else if ((m = loc.match(/^ at (.*?)$/))) { + new_bt.push(m[1] + ":in `undefined'"); + } + /* Node format */ + else if ((m = loc.match(/^ from (.*?)$/))) { + new_bt.push(m[1]); + } + /* Mozilla/Apple format */ + else if ((m = loc.match(/^(.*?)@(.*?)$/))) { + new_bt.push(m[2] + ':in `' + m[1] + "'"); + } } - return self.message = (args.length > 0) ? args[0] : nil - }, TMP_Exception_initialize_3.$$arity = -1); + + return new_bt; + } + ; - Opal.defn(self, '$backtrace', TMP_Exception_backtrace_4 = function $$backtrace() { + Opal.def(self, '$backtrace', $Exception_backtrace$4 = function $$backtrace() { var self = this; + if (self.backtrace) { + // nil is a valid backtrace + return self.backtrace; + } + var backtrace = self.stack; - if (typeof(backtrace) === 'string') { - return backtrace.split("\n").slice(0, 15); + if (typeof(backtrace) !== 'undefined' && backtrace.$$is_string) { + return self.backtrace = correct_backtrace(backtrace.split("\n").slice(0, 15)); } else if (backtrace) { - return backtrace.slice(0, 15); + return self.backtrace = correct_backtrace(backtrace.slice(0, 15)); } return []; - }, TMP_Exception_backtrace_4.$$arity = 0); + }, $Exception_backtrace$4.$$arity = 0); + + Opal.def(self, '$backtrace_locations', $Exception_backtrace_locations$5 = function $$backtrace_locations() { + var $a, $$6, self = this; + + + if (self.backtrace_locations) return self.backtrace_locations; + self.backtrace_locations = ($a = self.$backtrace(), ($a === nil || $a == null) ? nil : $send($a, 'map', [], ($$6 = function(loc){var self = $$6.$$s == null ? this : $$6.$$s; + + + + if (loc == null) { + loc = nil; + }; + return $$$($$$($$$('::', 'Thread'), 'Backtrace'), 'Location').$new(loc);}, $$6.$$s = self, $$6.$$arity = 1, $$6))) + return self.backtrace_locations; + + }, $Exception_backtrace_locations$5.$$arity = 0); + + Opal.def(self, '$cause', $Exception_cause$7 = function $$cause() { + var self = this; + + return self.cause || nil; + }, $Exception_cause$7.$$arity = 0); - Opal.defn(self, '$exception', TMP_Exception_exception_5 = function $$exception(str) { + Opal.def(self, '$exception', $Exception_exception$8 = function $$exception(str) { var self = this; + + if (str == null) { str = nil; - } + }; if (str === nil || self === str) { return self; @@ -5339,357 +5698,566 @@ Opal.modules["corelib/error"] = function(Opal) { var cloned = self.$clone(); cloned.message = str; + if (self.backtrace) cloned.backtrace = self.backtrace.$dup(); + cloned.stack = self.stack; + cloned.cause = self.cause; return cloned; + ; + }, $Exception_exception$8.$$arity = -1); - }, TMP_Exception_exception_5.$$arity = -1); - - Opal.defn(self, '$message', TMP_Exception_message_6 = function $$message() { + Opal.def(self, '$message', $Exception_message$9 = function $$message() { var self = this; return self.$to_s() - }, TMP_Exception_message_6.$$arity = 0); + }, $Exception_message$9.$$arity = 0); + + Opal.def(self, '$full_message', $Exception_full_message$10 = function $$full_message($kwargs) { + var highlight, order, $$11, self = this, bold_underline = nil, bold = nil, reset = nil, bt = nil, $ret_or_1 = nil, first = nil, msg = nil; + if ($gvars.stderr == null) $gvars.stderr = nil; + + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + highlight = $kwargs.$$smap["highlight"]; + if (highlight == null) { + highlight = $gvars.stderr['$tty?']() + }; + + order = $kwargs.$$smap["order"]; + if (order == null) { + order = "top" + }; + if ($truthy([true, false]['$include?'](highlight))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "" + "expected true or false as highlight: " + (highlight)) + }; + if ($truthy(["top", "bottom"]['$include?'](order))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "" + "expected :top or :bottom as order: " + (order)) + }; + if ($truthy(highlight)) { + + bold_underline = "\u001b[1;4m"; + bold = "\u001b[1m"; + reset = "\u001b[m"; + } else { + bold_underline = (bold = (reset = "")) + }; + bt = self.$backtrace().$dup(); + if ($truthy((function() {if ($truthy(($ret_or_1 = bt['$!']()))) { + return $ret_or_1 + } else { + return bt['$empty?']() + }; return nil; })())) { + bt = self.$caller()}; + first = bt.$shift(); + msg = "" + (first) + ": "; + msg = $rb_plus(msg, "" + (bold) + (self.$to_s()) + " (" + (bold_underline) + (self.$class()) + (reset) + (bold) + ")" + (reset) + "\n"); + msg = $rb_plus(msg, $send(bt, 'map', [], ($$11 = function(loc){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (loc == null) { + loc = nil; + }; + return "" + "\tfrom " + (loc) + "\n";}, $$11.$$s = self, $$11.$$arity = 1, $$11)).$join()); + if ($truthy(self.$cause())) { + msg = $rb_plus(msg, self.$cause().$full_message($hash2(["highlight"], {"highlight": highlight})))}; + if (order['$==']("bottom")) { + + msg = msg.$split("\n").$reverse().$join("\n"); + msg = $rb_plus("" + (bold) + "Traceback" + (reset) + " (most recent call last):\n", msg);}; + return msg; + }, $Exception_full_message$10.$$arity = -1); - Opal.defn(self, '$inspect', TMP_Exception_inspect_7 = function $$inspect() { + Opal.def(self, '$inspect', $Exception_inspect$12 = function $$inspect() { var self = this, as_str = nil; as_str = self.$to_s(); if ($truthy(as_str['$empty?']())) { return self.$class().$to_s() - } else { + } else { return "" + "#<" + (self.$class().$to_s()) + ": " + (self.$to_s()) + ">" }; - }, TMP_Exception_inspect_7.$$arity = 0); - return (Opal.defn(self, '$to_s', TMP_Exception_to_s_8 = function $$to_s() { - var $a, $b, self = this; + }, $Exception_inspect$12.$$arity = 0); + + Opal.def(self, '$set_backtrace', $Exception_set_backtrace$13 = function $$set_backtrace(backtrace) { + var $$14, self = this; + + + var valid = true, i, ii; + + if (backtrace === nil) { + self.backtrace = nil; + self.stack = ''; + } else if (backtrace.$$is_string) { + self.backtrace = [backtrace]; + self.stack = ' from ' + backtrace; + } else { + if (backtrace.$$is_array) { + for (i = 0, ii = backtrace.length; i < ii; i++) { + if (!backtrace[i].$$is_string) { + valid = false; + break; + } + } + } else { + valid = false; + } + + if (valid === false) { + self.$raise($$($nesting, 'TypeError'), "backtrace must be Array of String") + } + + self.backtrace = backtrace; + self.stack = $send((backtrace), 'map', [], ($$14 = function(i){var self = $$14.$$s == null ? this : $$14.$$s; + + + + if (i == null) { + i = nil; + }; + return $rb_plus(" from ", i);}, $$14.$$s = self, $$14.$$arity = 1, $$14)).join("\n"); + } + + return backtrace; + + }, $Exception_set_backtrace$13.$$arity = 1); + return (Opal.def(self, '$to_s', $Exception_to_s$15 = function $$to_s() { + var self = this, $ret_or_2 = nil, $ret_or_3 = nil; - return ($truthy($a = ($truthy($b = self.message) ? self.message.$to_s() : $b)) ? $a : self.$class().$to_s()) - }, TMP_Exception_to_s_8.$$arity = 0), nil) && 'to_s'; + if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = self.message))) { + return self.message.$to_s() + } else { + return $ret_or_3 + }; return nil; })()))) { + return $ret_or_2 + } else { + return self.$class().$to_s() + } + }, $Exception_to_s$15.$$arity = 0), nil) && 'to_s'; })($nesting[0], Error, $nesting); (function($base, $super, $parent_nesting) { - function $ScriptError(){}; - var self = $ScriptError = $klass($base, $super, 'ScriptError', $ScriptError); + var self = $klass($base, $super, 'ScriptError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); (function($base, $super, $parent_nesting) { - function $SyntaxError(){}; - var self = $SyntaxError = $klass($base, $super, 'SyntaxError', $SyntaxError); + var self = $klass($base, $super, 'SyntaxError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'ScriptError'), $nesting); + })($nesting[0], $$($nesting, 'ScriptError'), $nesting); (function($base, $super, $parent_nesting) { - function $LoadError(){}; - var self = $LoadError = $klass($base, $super, 'LoadError', $LoadError); + var self = $klass($base, $super, 'LoadError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'ScriptError'), $nesting); + })($nesting[0], $$($nesting, 'ScriptError'), $nesting); (function($base, $super, $parent_nesting) { - function $NotImplementedError(){}; - var self = $NotImplementedError = $klass($base, $super, 'NotImplementedError', $NotImplementedError); + var self = $klass($base, $super, 'NotImplementedError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'ScriptError'), $nesting); + })($nesting[0], $$($nesting, 'ScriptError'), $nesting); (function($base, $super, $parent_nesting) { - function $SystemExit(){}; - var self = $SystemExit = $klass($base, $super, 'SystemExit', $SystemExit); + var self = $klass($base, $super, 'SystemExit'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); (function($base, $super, $parent_nesting) { - function $NoMemoryError(){}; - var self = $NoMemoryError = $klass($base, $super, 'NoMemoryError', $NoMemoryError); + var self = $klass($base, $super, 'NoMemoryError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); (function($base, $super, $parent_nesting) { - function $SignalException(){}; - var self = $SignalException = $klass($base, $super, 'SignalException', $SignalException); + var self = $klass($base, $super, 'SignalException'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); (function($base, $super, $parent_nesting) { - function $Interrupt(){}; - var self = $Interrupt = $klass($base, $super, 'Interrupt', $Interrupt); + var self = $klass($base, $super, 'Interrupt'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'SignalException'), $nesting); (function($base, $super, $parent_nesting) { - function $SecurityError(){}; - var self = $SecurityError = $klass($base, $super, 'SecurityError', $SecurityError); + var self = $klass($base, $super, 'SecurityError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); (function($base, $super, $parent_nesting) { - function $StandardError(){}; - var self = $StandardError = $klass($base, $super, 'StandardError', $StandardError); + var self = $klass($base, $super, 'SystemStackError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); (function($base, $super, $parent_nesting) { - function $ZeroDivisionError(){}; - var self = $ZeroDivisionError = $klass($base, $super, 'ZeroDivisionError', $ZeroDivisionError); + var self = $klass($base, $super, 'StandardError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); (function($base, $super, $parent_nesting) { - function $NameError(){}; - var self = $NameError = $klass($base, $super, 'NameError', $NameError); + var self = $klass($base, $super, 'EncodingError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $NoMethodError(){}; - var self = $NoMethodError = $klass($base, $super, 'NoMethodError', $NoMethodError); + var self = $klass($base, $super, 'ZeroDivisionError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'NameError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $RuntimeError(){}; - var self = $RuntimeError = $klass($base, $super, 'RuntimeError', $RuntimeError); + var self = $klass($base, $super, 'NameError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $LocalJumpError(){}; - var self = $LocalJumpError = $klass($base, $super, 'LocalJumpError', $LocalJumpError); + var self = $klass($base, $super, 'NoMethodError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'NameError'), $nesting); (function($base, $super, $parent_nesting) { - function $TypeError(){}; - var self = $TypeError = $klass($base, $super, 'TypeError', $TypeError); + var self = $klass($base, $super, 'RuntimeError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $ArgumentError(){}; - var self = $ArgumentError = $klass($base, $super, 'ArgumentError', $ArgumentError); + var self = $klass($base, $super, 'FrozenError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'RuntimeError'), $nesting); (function($base, $super, $parent_nesting) { - function $IndexError(){}; - var self = $IndexError = $klass($base, $super, 'IndexError', $IndexError); + var self = $klass($base, $super, 'LocalJumpError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $StopIteration(){}; - var self = $StopIteration = $klass($base, $super, 'StopIteration', $StopIteration); + var self = $klass($base, $super, 'TypeError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'IndexError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $KeyError(){}; - var self = $KeyError = $klass($base, $super, 'KeyError', $KeyError); + var self = $klass($base, $super, 'ArgumentError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'IndexError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $RangeError(){}; - var self = $RangeError = $klass($base, $super, 'RangeError', $RangeError); + var self = $klass($base, $super, 'UncaughtThrowError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'ArgumentError'), $nesting); (function($base, $super, $parent_nesting) { - function $FloatDomainError(){}; - var self = $FloatDomainError = $klass($base, $super, 'FloatDomainError', $FloatDomainError); + var self = $klass($base, $super, 'IndexError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'RangeError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $IOError(){}; - var self = $IOError = $klass($base, $super, 'IOError', $IOError); + var self = $klass($base, $super, 'StopIteration'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'IndexError'), $nesting); (function($base, $super, $parent_nesting) { - function $SystemCallError(){}; - var self = $SystemCallError = $klass($base, $super, 'SystemCallError', $SystemCallError); + var self = $klass($base, $super, 'ClosedQueueError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'StopIteration'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'KeyError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'IndexError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RangeError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'FloatDomainError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'RangeError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'IOError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'EOFError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'IOError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'SystemCallError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'RegexpError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ThreadError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'FiberError'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $parent_nesting) { - var $Errno, self = $Errno = $module($base, 'Errno'); + var self = $module($base, 'Errno'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $EINVAL(){}; - var self = $EINVAL = $klass($base, $super, 'EINVAL', $EINVAL); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'EINVAL'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_EINVAL_new_9; + var $nesting = [self].concat($parent_nesting), $EINVAL_new$16; - return Opal.defs(self, '$new', TMP_EINVAL_new_9 = function(name) { - var self = this, $iter = TMP_EINVAL_new_9.$$p, $yield = $iter || nil, message = nil; + return (Opal.defs(self, '$new', $EINVAL_new$16 = function(name) { + var $iter = $EINVAL_new$16.$$p, $yield = $iter || nil, self = this, message = nil; + if ($iter) $EINVAL_new$16.$$p = null; + + if (name == null) { name = nil; - } - if ($iter) TMP_EINVAL_new_9.$$p = null; - + }; message = "Invalid argument"; if ($truthy(name)) { message = $rb_plus(message, "" + " - " + (name))}; - return $send(self, Opal.find_super_dispatcher(self, 'new', TMP_EINVAL_new_9, false, $EINVAL), [message], null); - }, TMP_EINVAL_new_9.$$arity = -1) - })($nesting[0], Opal.const_get_relative($nesting, 'SystemCallError'), $nesting) + return $send2(self, $find_super(self, 'new', $EINVAL_new$16, false, true), 'new', [message], null); + }, $EINVAL_new$16.$$arity = -1), nil) && 'new' + })($nesting[0], $$($nesting, 'SystemCallError'), $nesting) })($nesting[0], $nesting); (function($base, $super, $parent_nesting) { - function $UncaughtThrowError(){}; - var self = $UncaughtThrowError = $klass($base, $super, 'UncaughtThrowError', $UncaughtThrowError); + var self = $klass($base, $super, 'UncaughtThrowError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_UncaughtThrowError_initialize_10; + var $nesting = [self].concat($parent_nesting), $UncaughtThrowError_initialize$17; - def.sym = nil; + self.$$prototype.tag = nil; - self.$attr_reader("sym", "arg"); - return (Opal.defn(self, '$initialize', TMP_UncaughtThrowError_initialize_10 = function $$initialize(args) { - var self = this, $iter = TMP_UncaughtThrowError_initialize_10.$$p, $yield = $iter || nil; + self.$attr_reader("tag", "value"); + return (Opal.def(self, '$initialize', $UncaughtThrowError_initialize$17 = function $$initialize(tag, value) { + var $iter = $UncaughtThrowError_initialize$17.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_UncaughtThrowError_initialize_10.$$p = null; + if ($iter) $UncaughtThrowError_initialize$17.$$p = null; - self.sym = args['$[]'](0); - if ($truthy($rb_gt(args.$length(), 1))) { - self.arg = args['$[]'](1)}; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_UncaughtThrowError_initialize_10, false), ["" + "uncaught throw " + (self.sym.$inspect())], null); - }, TMP_UncaughtThrowError_initialize_10.$$arity = 1), nil) && 'initialize'; - })($nesting[0], Opal.const_get_relative($nesting, 'ArgumentError'), $nesting); + + if (value == null) { + value = nil; + }; + self.tag = tag; + self.value = value; + return $send2(self, $find_super(self, 'initialize', $UncaughtThrowError_initialize$17, false, true), 'initialize', ["" + "uncaught throw " + (self.tag.$inspect())], null); + }, $UncaughtThrowError_initialize$17.$$arity = -2), nil) && 'initialize'; + })($nesting[0], $$($nesting, 'ArgumentError'), $nesting); (function($base, $super, $parent_nesting) { - function $NameError(){}; - var self = $NameError = $klass($base, $super, 'NameError', $NameError); + var self = $klass($base, $super, 'NameError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NameError_initialize_11; + var $nesting = [self].concat($parent_nesting), $NameError_initialize$18; self.$attr_reader("name"); - return (Opal.defn(self, '$initialize', TMP_NameError_initialize_11 = function $$initialize(message, name) { - var self = this, $iter = TMP_NameError_initialize_11.$$p, $yield = $iter || nil; + return (Opal.def(self, '$initialize', $NameError_initialize$18 = function $$initialize(message, name) { + var $iter = $NameError_initialize$18.$$p, $yield = $iter || nil, self = this; + if ($iter) $NameError_initialize$18.$$p = null; + + if (name == null) { name = nil; - } - if ($iter) TMP_NameError_initialize_11.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_NameError_initialize_11, false), [message], null); + }; + $send2(self, $find_super(self, 'initialize', $NameError_initialize$18, false, true), 'initialize', [message], null); return (self.name = name); - }, TMP_NameError_initialize_11.$$arity = -2), nil) && 'initialize'; + }, $NameError_initialize$18.$$arity = -2), nil) && 'initialize'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $NoMethodError(){}; - var self = $NoMethodError = $klass($base, $super, 'NoMethodError', $NoMethodError); + var self = $klass($base, $super, 'NoMethodError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NoMethodError_initialize_12; + var $nesting = [self].concat($parent_nesting), $NoMethodError_initialize$19; self.$attr_reader("args"); - return (Opal.defn(self, '$initialize', TMP_NoMethodError_initialize_12 = function $$initialize(message, name, args) { - var self = this, $iter = TMP_NoMethodError_initialize_12.$$p, $yield = $iter || nil; + return (Opal.def(self, '$initialize', $NoMethodError_initialize$19 = function $$initialize(message, name, args) { + var $iter = $NoMethodError_initialize$19.$$p, $yield = $iter || nil, self = this; + if ($iter) $NoMethodError_initialize$19.$$p = null; + + if (name == null) { name = nil; - } + }; + if (args == null) { args = []; - } - if ($iter) TMP_NoMethodError_initialize_12.$$p = null; - - $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_NoMethodError_initialize_12, false), [message, name], null); + }; + $send2(self, $find_super(self, 'initialize', $NoMethodError_initialize$19, false, true), 'initialize', [message, name], null); return (self.args = args); - }, TMP_NoMethodError_initialize_12.$$arity = -2), nil) && 'initialize'; + }, $NoMethodError_initialize$19.$$arity = -2), nil) && 'initialize'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $StopIteration(){}; - var self = $StopIteration = $klass($base, $super, 'StopIteration', $StopIteration); + var self = $klass($base, $super, 'StopIteration'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return self.$attr_reader("result") })($nesting[0], null, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'KeyError'); + + var $nesting = [self].concat($parent_nesting), $KeyError_initialize$20, $KeyError_receiver$21, $KeyError_key$22; + + self.$$prototype.receiver = self.$$prototype.key = nil; + + + Opal.def(self, '$initialize', $KeyError_initialize$20 = function $$initialize(message, $kwargs) { + var receiver, key, $iter = $KeyError_initialize$20.$$p, $yield = $iter || nil, self = this; + + if ($iter) $KeyError_initialize$20.$$p = null; + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + receiver = $kwargs.$$smap["receiver"]; + if (receiver == null) { + receiver = nil + }; + + key = $kwargs.$$smap["key"]; + if (key == null) { + key = nil + }; + $send2(self, $find_super(self, 'initialize', $KeyError_initialize$20, false, true), 'initialize', [message], null); + self.receiver = receiver; + return (self.key = key); + }, $KeyError_initialize$20.$$arity = -2); + + Opal.def(self, '$receiver', $KeyError_receiver$21 = function $$receiver() { + var self = this, $ret_or_4 = nil; + + if ($truthy(($ret_or_4 = self.receiver))) { + return $ret_or_4 + } else { + return self.$raise($$($nesting, 'ArgumentError'), "no receiver is available") + } + }, $KeyError_receiver$21.$$arity = 0); + return (Opal.def(self, '$key', $KeyError_key$22 = function $$key() { + var self = this, $ret_or_5 = nil; + + if ($truthy(($ret_or_5 = self.key))) { + return $ret_or_5 + } else { + return self.$raise($$($nesting, 'ArgumentError'), "no key is available") + } + }, $KeyError_key$22.$$arity = 0), nil) && 'key'; + })($nesting[0], null, $nesting); return (function($base, $parent_nesting) { - var $JS, self = $JS = $module($base, 'JS'); + var self = $module($base, 'JS'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - (function($base, $super, $parent_nesting) { - function $Error(){}; - var self = $Error = $klass($base, $super, 'Error', $Error); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Error'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil })($nesting[0], null, $nesting) })($nesting[0], $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/constants"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["corelib/constants"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.const_set($nesting[0], 'RUBY_PLATFORM', "opal"); Opal.const_set($nesting[0], 'RUBY_ENGINE', "opal"); - Opal.const_set($nesting[0], 'RUBY_VERSION', "2.4.5"); - Opal.const_set($nesting[0], 'RUBY_ENGINE_VERSION', "0.11.4"); - Opal.const_set($nesting[0], 'RUBY_RELEASE_DATE', "2018-11-07"); + Opal.const_set($nesting[0], 'RUBY_VERSION', "3.0.2"); + Opal.const_set($nesting[0], 'RUBY_ENGINE_VERSION', "1.3.2"); + Opal.const_set($nesting[0], 'RUBY_RELEASE_DATE', "2021-11-10"); Opal.const_set($nesting[0], 'RUBY_PATCHLEVEL', 0); - Opal.const_set($nesting[0], 'RUBY_REVISION', 0); - Opal.const_set($nesting[0], 'RUBY_COPYRIGHT', "opal - Copyright (C) 2013-2015 Adam Beynon"); - return Opal.const_set($nesting[0], 'RUBY_DESCRIPTION', "" + "opal " + (Opal.const_get_relative($nesting, 'RUBY_ENGINE_VERSION')) + " (" + (Opal.const_get_relative($nesting, 'RUBY_RELEASE_DATE')) + " revision " + (Opal.const_get_relative($nesting, 'RUBY_REVISION')) + ")"); + Opal.const_set($nesting[0], 'RUBY_REVISION', "0"); + Opal.const_set($nesting[0], 'RUBY_COPYRIGHT', "opal - Copyright (C) 2013-2021 Adam Beynon and the Opal contributors"); + return Opal.const_set($nesting[0], 'RUBY_DESCRIPTION', "" + "opal " + ($$($nesting, 'RUBY_ENGINE_VERSION')) + " (" + ($$($nesting, 'RUBY_RELEASE_DATE')) + " revision " + ($$($nesting, 'RUBY_REVISION')) + ")"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/base"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; +Opal.modules["opal/base"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; Opal.add_stubs(['$require']); @@ -5703,318 +6271,391 @@ Opal.modules["opal/base"] = function(Opal) { return self.$require("corelib/constants"); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/nil"] = function(Opal) { +Opal.modules["corelib/nil"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $alias = Opal.alias, $truthy = Opal.truthy; Opal.add_stubs(['$raise', '$name', '$new', '$>', '$length', '$Rational']); (function($base, $super, $parent_nesting) { - function $NilClass(){}; - var self = $NilClass = $klass($base, $super, 'NilClass', $NilClass); + var self = $klass($base, $super, 'NilClass'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_NilClass_$B_2, TMP_NilClass_$_3, TMP_NilClass_$_4, TMP_NilClass_$_5, TMP_NilClass_$eq$eq_6, TMP_NilClass_dup_7, TMP_NilClass_clone_8, TMP_NilClass_inspect_9, TMP_NilClass_nil$q_10, TMP_NilClass_singleton_class_11, TMP_NilClass_to_a_12, TMP_NilClass_to_h_13, TMP_NilClass_to_i_14, TMP_NilClass_to_s_15, TMP_NilClass_to_c_16, TMP_NilClass_rationalize_17, TMP_NilClass_to_r_18, TMP_NilClass_instance_variables_19; + var $nesting = [self].concat($parent_nesting), $NilClass_$excl$2, $NilClass_$$3, $NilClass_$$4, $NilClass_$$5, $NilClass_$eq_eq$6, $NilClass_dup$7, $NilClass_clone$8, $NilClass_inspect$9, $NilClass_nil$ques$10, $NilClass_singleton_class$11, $NilClass_to_a$12, $NilClass_to_h$13, $NilClass_to_i$14, $NilClass_to_s$15, $NilClass_to_c$16, $NilClass_rationalize$17, $NilClass_to_r$18, $NilClass_instance_variables$19; - def.$$meta = self; + self.$$prototype.$$meta = self; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_allocate_1; + var $nesting = [self].concat($parent_nesting), $allocate$1; - Opal.defn(self, '$allocate', TMP_allocate_1 = function $$allocate() { + Opal.def(self, '$allocate', $allocate$1 = function $$allocate() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, TMP_allocate_1.$$arity = 0); + return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) + }, $allocate$1.$$arity = 0); Opal.udef(self, '$' + "new");; return nil;; })(Opal.get_singleton_class(self), $nesting); - Opal.defn(self, '$!', TMP_NilClass_$B_2 = function() { + Opal.def(self, '$!', $NilClass_$excl$2 = function() { var self = this; return true - }, TMP_NilClass_$B_2.$$arity = 0); + }, $NilClass_$excl$2.$$arity = 0); - Opal.defn(self, '$&', TMP_NilClass_$_3 = function(other) { + Opal.def(self, '$&', $NilClass_$$3 = function(other) { var self = this; return false - }, TMP_NilClass_$_3.$$arity = 1); + }, $NilClass_$$3.$$arity = 1); - Opal.defn(self, '$|', TMP_NilClass_$_4 = function(other) { + Opal.def(self, '$|', $NilClass_$$4 = function(other) { var self = this; - return other !== false && other !== nil - }, TMP_NilClass_$_4.$$arity = 1); + return other !== false && other !== nil; + }, $NilClass_$$4.$$arity = 1); - Opal.defn(self, '$^', TMP_NilClass_$_5 = function(other) { + Opal.def(self, '$^', $NilClass_$$5 = function(other) { var self = this; - return other !== false && other !== nil - }, TMP_NilClass_$_5.$$arity = 1); + return other !== false && other !== nil; + }, $NilClass_$$5.$$arity = 1); - Opal.defn(self, '$==', TMP_NilClass_$eq$eq_6 = function(other) { + Opal.def(self, '$==', $NilClass_$eq_eq$6 = function(other) { var self = this; - return other === nil - }, TMP_NilClass_$eq$eq_6.$$arity = 1); + return other === nil; + }, $NilClass_$eq_eq$6.$$arity = 1); - Opal.defn(self, '$dup', TMP_NilClass_dup_7 = function $$dup() { + Opal.def(self, '$dup', $NilClass_dup$7 = function $$dup() { var self = this; return nil - }, TMP_NilClass_dup_7.$$arity = 0); + }, $NilClass_dup$7.$$arity = 0); - Opal.defn(self, '$clone', TMP_NilClass_clone_8 = function $$clone($kwargs) { - var self = this, freeze; + Opal.def(self, '$clone', $NilClass_clone$8 = function $$clone($kwargs) { + var freeze, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + freeze = $kwargs.$$smap["freeze"]; if (freeze == null) { freeze = true - } - return nil - }, TMP_NilClass_clone_8.$$arity = -1); + }; + return nil; + }, $NilClass_clone$8.$$arity = -1); - Opal.defn(self, '$inspect', TMP_NilClass_inspect_9 = function $$inspect() { + Opal.def(self, '$inspect', $NilClass_inspect$9 = function $$inspect() { var self = this; return "nil" - }, TMP_NilClass_inspect_9.$$arity = 0); + }, $NilClass_inspect$9.$$arity = 0); - Opal.defn(self, '$nil?', TMP_NilClass_nil$q_10 = function() { + Opal.def(self, '$nil?', $NilClass_nil$ques$10 = function() { var self = this; return true - }, TMP_NilClass_nil$q_10.$$arity = 0); + }, $NilClass_nil$ques$10.$$arity = 0); - Opal.defn(self, '$singleton_class', TMP_NilClass_singleton_class_11 = function $$singleton_class() { + Opal.def(self, '$singleton_class', $NilClass_singleton_class$11 = function $$singleton_class() { var self = this; - return Opal.const_get_relative($nesting, 'NilClass') - }, TMP_NilClass_singleton_class_11.$$arity = 0); + return $$($nesting, 'NilClass') + }, $NilClass_singleton_class$11.$$arity = 0); - Opal.defn(self, '$to_a', TMP_NilClass_to_a_12 = function $$to_a() { + Opal.def(self, '$to_a', $NilClass_to_a$12 = function $$to_a() { var self = this; return [] - }, TMP_NilClass_to_a_12.$$arity = 0); + }, $NilClass_to_a$12.$$arity = 0); - Opal.defn(self, '$to_h', TMP_NilClass_to_h_13 = function $$to_h() { + Opal.def(self, '$to_h', $NilClass_to_h$13 = function $$to_h() { var self = this; - return Opal.hash() - }, TMP_NilClass_to_h_13.$$arity = 0); + return Opal.hash(); + }, $NilClass_to_h$13.$$arity = 0); - Opal.defn(self, '$to_i', TMP_NilClass_to_i_14 = function $$to_i() { + Opal.def(self, '$to_i', $NilClass_to_i$14 = function $$to_i() { var self = this; return 0 - }, TMP_NilClass_to_i_14.$$arity = 0); - Opal.alias(self, "to_f", "to_i"); + }, $NilClass_to_i$14.$$arity = 0); + $alias(self, "to_f", "to_i"); - Opal.defn(self, '$to_s', TMP_NilClass_to_s_15 = function $$to_s() { + Opal.def(self, '$to_s', $NilClass_to_s$15 = function $$to_s() { var self = this; return "" - }, TMP_NilClass_to_s_15.$$arity = 0); + }, $NilClass_to_s$15.$$arity = 0); - Opal.defn(self, '$to_c', TMP_NilClass_to_c_16 = function $$to_c() { + Opal.def(self, '$to_c', $NilClass_to_c$16 = function $$to_c() { var self = this; - return Opal.const_get_relative($nesting, 'Complex').$new(0, 0) - }, TMP_NilClass_to_c_16.$$arity = 0); + return $$($nesting, 'Complex').$new(0, 0) + }, $NilClass_to_c$16.$$arity = 0); - Opal.defn(self, '$rationalize', TMP_NilClass_rationalize_17 = function $$rationalize($a_rest) { - var self = this, args; + Opal.def(self, '$rationalize', $NilClass_rationalize$17 = function $$rationalize($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if ($truthy($rb_gt(args.$length(), 1))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'))}; + self.$raise($$($nesting, 'ArgumentError'))}; return self.$Rational(0, 1); - }, TMP_NilClass_rationalize_17.$$arity = -1); + }, $NilClass_rationalize$17.$$arity = -1); - Opal.defn(self, '$to_r', TMP_NilClass_to_r_18 = function $$to_r() { + Opal.def(self, '$to_r', $NilClass_to_r$18 = function $$to_r() { var self = this; return self.$Rational(0, 1) - }, TMP_NilClass_to_r_18.$$arity = 0); - return (Opal.defn(self, '$instance_variables', TMP_NilClass_instance_variables_19 = function $$instance_variables() { + }, $NilClass_to_r$18.$$arity = 0); + return (Opal.def(self, '$instance_variables', $NilClass_instance_variables$19 = function $$instance_variables() { var self = this; return [] - }, TMP_NilClass_instance_variables_19.$$arity = 0), nil) && 'instance_variables'; + }, $NilClass_instance_variables$19.$$arity = 0), nil) && 'instance_variables'; })($nesting[0], null, $nesting); return Opal.const_set($nesting[0], 'NIL', nil); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/boolean"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $hash2 = Opal.hash2; +Opal.modules["corelib/boolean"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super; Opal.add_stubs(['$raise', '$name']); (function($base, $super, $parent_nesting) { - function $Boolean(){}; - var self = $Boolean = $klass($base, $super, 'Boolean', $Boolean); + var self = $klass($base, $super, 'Boolean'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Boolean___id___2, TMP_Boolean_$B_3, TMP_Boolean_$_4, TMP_Boolean_$_5, TMP_Boolean_$_6, TMP_Boolean_$eq$eq_7, TMP_Boolean_singleton_class_8, TMP_Boolean_to_s_9, TMP_Boolean_dup_10, TMP_Boolean_clone_11; + var $nesting = [self].concat($parent_nesting), $Boolean___id__$2, $Boolean_$excl$3, $Boolean_$$4, $Boolean_$$5, $Boolean_$$6, $Boolean_$eq_eq$7, $Boolean_singleton_class$8, $Boolean_to_s$9, $Boolean_dup$10, $Boolean_clone$11, $Boolean_method_missing$12, $Boolean_respond_to_missing$ques$13; - def.$$is_boolean = true; - def.$$meta = self; + Opal.defineProperty(self.$$prototype, '$$is_boolean', true); + + var properties = ['$$class', '$$meta']; + + for (var i = 0; i < properties.length; i++) { + Object.defineProperty(self.$$prototype, properties[i], { + configurable: true, + enumerable: false, + get: function() { + return this == true ? Opal.TrueClass : + this == false ? Opal.FalseClass : + Opal.Boolean; + } + }); + } + + Object.defineProperty(self.$$prototype, "$$id", { + configurable: true, + enumerable: false, + get: function() { + return this == true ? 2 : + this == false ? 0 : + nil; + } + }); + ; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_allocate_1; + var $nesting = [self].concat($parent_nesting), $allocate$1; - Opal.defn(self, '$allocate', TMP_allocate_1 = function $$allocate() { + Opal.def(self, '$allocate', $allocate$1 = function $$allocate() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, TMP_allocate_1.$$arity = 0); + return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) + }, $allocate$1.$$arity = 0); Opal.udef(self, '$' + "new");; return nil;; })(Opal.get_singleton_class(self), $nesting); - Opal.defn(self, '$__id__', TMP_Boolean___id___2 = function $$__id__() { + Opal.def(self, '$__id__', $Boolean___id__$2 = function $$__id__() { var self = this; - return self.valueOf() ? 2 : 0 - }, TMP_Boolean___id___2.$$arity = 0); - Opal.alias(self, "object_id", "__id__"); + return self.valueOf() ? 2 : 0; + }, $Boolean___id__$2.$$arity = 0); + $alias(self, "object_id", "__id__"); - Opal.defn(self, '$!', TMP_Boolean_$B_3 = function() { + Opal.def(self, '$!', $Boolean_$excl$3 = function() { var self = this; - return self != true - }, TMP_Boolean_$B_3.$$arity = 0); + return self != true; + }, $Boolean_$excl$3.$$arity = 0); - Opal.defn(self, '$&', TMP_Boolean_$_4 = function(other) { + Opal.def(self, '$&', $Boolean_$$4 = function(other) { var self = this; - return (self == true) ? (other !== false && other !== nil) : false - }, TMP_Boolean_$_4.$$arity = 1); + return (self == true) ? (other !== false && other !== nil) : false; + }, $Boolean_$$4.$$arity = 1); - Opal.defn(self, '$|', TMP_Boolean_$_5 = function(other) { + Opal.def(self, '$|', $Boolean_$$5 = function(other) { var self = this; - return (self == true) ? true : (other !== false && other !== nil) - }, TMP_Boolean_$_5.$$arity = 1); + return (self == true) ? true : (other !== false && other !== nil); + }, $Boolean_$$5.$$arity = 1); - Opal.defn(self, '$^', TMP_Boolean_$_6 = function(other) { + Opal.def(self, '$^', $Boolean_$$6 = function(other) { var self = this; - return (self == true) ? (other === false || other === nil) : (other !== false && other !== nil) - }, TMP_Boolean_$_6.$$arity = 1); + return (self == true) ? (other === false || other === nil) : (other !== false && other !== nil); + }, $Boolean_$$6.$$arity = 1); - Opal.defn(self, '$==', TMP_Boolean_$eq$eq_7 = function(other) { + Opal.def(self, '$==', $Boolean_$eq_eq$7 = function(other) { var self = this; - return (self == true) === other.valueOf() - }, TMP_Boolean_$eq$eq_7.$$arity = 1); - Opal.alias(self, "equal?", "=="); - Opal.alias(self, "eql?", "=="); + return (self == true) === other.valueOf(); + }, $Boolean_$eq_eq$7.$$arity = 1); + $alias(self, "equal?", "=="); + $alias(self, "eql?", "=="); - Opal.defn(self, '$singleton_class', TMP_Boolean_singleton_class_8 = function $$singleton_class() { + Opal.def(self, '$singleton_class', $Boolean_singleton_class$8 = function $$singleton_class() { var self = this; - return Opal.const_get_relative($nesting, 'Boolean') - }, TMP_Boolean_singleton_class_8.$$arity = 0); + return self.$$meta; + }, $Boolean_singleton_class$8.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Boolean_to_s_9 = function $$to_s() { + Opal.def(self, '$to_s', $Boolean_to_s$9 = function $$to_s() { var self = this; - return (self == true) ? 'true' : 'false' - }, TMP_Boolean_to_s_9.$$arity = 0); + return (self == true) ? 'true' : 'false'; + }, $Boolean_to_s$9.$$arity = 0); + $alias(self, "inspect", "to_s"); - Opal.defn(self, '$dup', TMP_Boolean_dup_10 = function $$dup() { + Opal.def(self, '$dup', $Boolean_dup$10 = function $$dup() { var self = this; return self - }, TMP_Boolean_dup_10.$$arity = 0); - return (Opal.defn(self, '$clone', TMP_Boolean_clone_11 = function $$clone($kwargs) { - var self = this, freeze; + }, $Boolean_dup$10.$$arity = 0); + + Opal.def(self, '$clone', $Boolean_clone$11 = function $$clone($kwargs) { + var freeze, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + freeze = $kwargs.$$smap["freeze"]; if (freeze == null) { freeze = true - } - return self - }, TMP_Boolean_clone_11.$$arity = -1), nil) && 'clone'; - })($nesting[0], Boolean, $nesting); - Opal.const_set($nesting[0], 'TrueClass', Opal.const_get_relative($nesting, 'Boolean')); - Opal.const_set($nesting[0], 'FalseClass', Opal.const_get_relative($nesting, 'Boolean')); - Opal.const_set($nesting[0], 'TRUE', true); - return Opal.const_set($nesting[0], 'FALSE', false); -}; + }; + return self; + }, $Boolean_clone$11.$$arity = -1); + + Opal.def(self, '$method_missing', $Boolean_method_missing$12 = function $$method_missing(method, $a) { + var $iter = $Boolean_method_missing$12.$$p, block = $iter || nil, $post_args, args, self = this; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/comparable"] = function(Opal) { - function $rb_gt(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); - } - function $rb_lt(lhs, rhs) { + if ($iter) $Boolean_method_missing$12.$$p = null; + + + if ($iter) $Boolean_method_missing$12.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + var body = self.$$class.$$prototype['$' + method]; + if ($truthy(typeof body !== 'undefined' && !body.$$stub)) { + } else { + $send2(self, $find_super(self, 'method_missing', $Boolean_method_missing$12, false, true), 'method_missing', [method].concat(Opal.to_a(args)), $iter) + }; + return Opal.send(self, body, args, block); + }, $Boolean_method_missing$12.$$arity = -2); + return (Opal.def(self, '$respond_to_missing?', $Boolean_respond_to_missing$ques$13 = function(method, _include_all) { + var self = this; + + + + if (_include_all == null) { + _include_all = false; + }; + var body = self.$$class.$$prototype['$' + method]; + return typeof body !== 'undefined' && !body.$$stub;; + }, $Boolean_respond_to_missing$ques$13.$$arity = -2), nil) && 'respond_to_missing?'; + })($nesting[0], Boolean, $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'TrueClass'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'Boolean'), $nesting); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'FalseClass'); + + var $nesting = [self].concat($parent_nesting); + + return nil + })($nesting[0], $$($nesting, 'Boolean'), $nesting); + Opal.const_set($nesting[0], 'TRUE', true); + return Opal.const_set($nesting[0], 'FALSE', false); +}; + +Opal.modules["corelib/comparable"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $module = Opal.module, $truthy = Opal.truthy; - Opal.add_stubs(['$===', '$>', '$<', '$equal?', '$<=>', '$normalize', '$raise', '$class']); + Opal.add_stubs(['$>', '$<', '$===', '$raise', '$class', '$<=>', '$equal?']); return (function($base, $parent_nesting) { - var $Comparable, self = $Comparable = $module($base, 'Comparable'); + var self = $module($base, 'Comparable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Comparable_normalize_1, TMP_Comparable_$eq$eq_2, TMP_Comparable_$gt_3, TMP_Comparable_$gt$eq_4, TMP_Comparable_$lt_5, TMP_Comparable_$lt$eq_6, TMP_Comparable_between$q_7, TMP_Comparable_clamp_8; + var $nesting = [self].concat($parent_nesting), $Comparable_$eq_eq$1, $Comparable_$gt$2, $Comparable_$gt_eq$3, $Comparable_$lt$4, $Comparable_$lt_eq$5, $Comparable_between$ques$6, $Comparable_clamp$7, $case = nil; - Opal.defs(self, '$normalize', TMP_Comparable_normalize_1 = function $$normalize(what) { - var self = this; + + function normalize(what) { + if (Opal.is_a(what, Opal.Integer)) { return what; } - - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](what))) { - return what}; - if ($truthy($rb_gt(what, 0))) { - return 1}; - if ($truthy($rb_lt(what, 0))) { - return -1}; + if ($rb_gt(what, 0)) { return 1; } + if ($rb_lt(what, 0)) { return -1; } return 0; - }, TMP_Comparable_normalize_1.$$arity = 1); + } + + function fail_comparison(lhs, rhs) { + var class_name; + (function() {$case = rhs; + if (nil['$===']($case) || true['$===']($case) || false['$===']($case) || $$($nesting, 'Integer')['$===']($case) || $$($nesting, 'Float')['$===']($case)) {return class_name = rhs.$inspect();} + else {return class_name = rhs.$$class;}})() + self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + ((lhs).$class()) + " with " + (class_name) + " failed") + } + + function cmp_or_fail(lhs, rhs) { + var cmp = (lhs)['$<=>'](rhs); + if ($falsy(cmp)) fail_comparison(lhs, rhs); + return normalize(cmp); + } + ; - Opal.defn(self, '$==', TMP_Comparable_$eq$eq_2 = function(other) { + Opal.def(self, '$==', $Comparable_$eq_eq$1 = function(other) { var self = this, cmp = nil; - try { - - if ($truthy(self['$equal?'](other))) { - return true}; - + + if ($truthy(self['$equal?'](other))) { + return true}; + if (self["$<=>"] == Opal.Kernel["$<=>"]) { return false; } @@ -6025,65 +6666,38 @@ Opal.modules["corelib/comparable"] = function(Opal) { return false; } ; - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - return false - }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) == 0; - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { - try { - return false - } finally { Opal.pop_exception() } - } else { throw $err; } - } - }, TMP_Comparable_$eq$eq_2.$$arity = 1); - - Opal.defn(self, '$>', TMP_Comparable_$gt_3 = function(other) { - var self = this, cmp = nil; - - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed") + } else { + return false }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) > 0; - }, TMP_Comparable_$gt_3.$$arity = 1); + return normalize(cmp) == 0;; + }, $Comparable_$eq_eq$1.$$arity = 1); - Opal.defn(self, '$>=', TMP_Comparable_$gt$eq_4 = function(other) { - var self = this, cmp = nil; + Opal.def(self, '$>', $Comparable_$gt$2 = function(other) { + var self = this; - - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed") - }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) >= 0; - }, TMP_Comparable_$gt$eq_4.$$arity = 1); + return cmp_or_fail(self, other) > 0; + }, $Comparable_$gt$2.$$arity = 1); - Opal.defn(self, '$<', TMP_Comparable_$lt_5 = function(other) { - var self = this, cmp = nil; + Opal.def(self, '$>=', $Comparable_$gt_eq$3 = function(other) { + var self = this; - - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed") - }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) < 0; - }, TMP_Comparable_$lt_5.$$arity = 1); + return cmp_or_fail(self, other) >= 0; + }, $Comparable_$gt_eq$3.$$arity = 1); - Opal.defn(self, '$<=', TMP_Comparable_$lt$eq_6 = function(other) { - var self = this, cmp = nil; + Opal.def(self, '$<', $Comparable_$lt$4 = function(other) { + var self = this; - - if ($truthy((cmp = self['$<=>'](other)))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed") - }; - return Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp) <= 0; - }, TMP_Comparable_$lt$eq_6.$$arity = 1); + return cmp_or_fail(self, other) < 0; + }, $Comparable_$lt$4.$$arity = 1); + + Opal.def(self, '$<=', $Comparable_$lt_eq$5 = function(other) { + var self = this; + + return cmp_or_fail(self, other) <= 0; + }, $Comparable_$lt_eq$5.$$arity = 1); - Opal.defn(self, '$between?', TMP_Comparable_between$q_7 = function(min, max) { + Opal.def(self, '$between?', $Comparable_between$ques$6 = function(min, max) { var self = this; @@ -6092,111 +6706,147 @@ Opal.modules["corelib/comparable"] = function(Opal) { if ($rb_gt(self, max)) { return false}; return true; - }, TMP_Comparable_between$q_7.$$arity = 2); - - Opal.defn(self, '$clamp', TMP_Comparable_clamp_8 = function $$clamp(min, max) { - var self = this, cmp = nil; + }, $Comparable_between$ques$6.$$arity = 2); + return (Opal.def(self, '$clamp', $Comparable_clamp$7 = function $$clamp(min, max) { + var self = this; - cmp = min['$<=>'](max); - if ($truthy(cmp)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (min.$class()) + " with " + (max.$class()) + " failed") - }; - if ($truthy($rb_gt(Opal.const_get_relative($nesting, 'Comparable').$normalize(cmp), 0))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "min argument must be smaller than max argument")}; - if ($truthy($rb_lt(Opal.const_get_relative($nesting, 'Comparable').$normalize(self['$<=>'](min)), 0))) { - return min}; - if ($truthy($rb_gt(Opal.const_get_relative($nesting, 'Comparable').$normalize(self['$<=>'](max)), 0))) { - return max}; + + if (max == null) { + max = nil; + }; + + var c, excl; + + if (max === nil) { + // We are dealing with a new Ruby 2.7 behaviour that we are able to + // provide a single Range argument instead of 2 Comparables. + + if (!Opal.is_a(min, Opal.Range)) { + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (min.$class()) + " (expected Range)") + } + + excl = min.excl; + max = min.end; + min = min.begin; + + if (max !== nil && excl) { + self.$raise($$($nesting, 'ArgumentError'), "cannot clamp with an exclusive range") + } + } + + if (min !== nil && max !== nil && cmp_or_fail(min, max) > 0) { + self.$raise($$($nesting, 'ArgumentError'), "min argument must be smaller than max argument") + } + + if (min !== nil) { + c = cmp_or_fail(self, min); + + if (c == 0) return self; + if (c < 0) return min; + } + + if (max !== nil) { + c = cmp_or_fail(self, max); + + if (c > 0) return max; + } + return self; - }, TMP_Comparable_clamp_8.$$arity = 2); + ; + }, $Comparable_clamp$7.$$arity = -2), nil) && 'clamp'; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/regexp"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $gvars = Opal.gvars; +Opal.modules["corelib/regexp"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $coerce_to = Opal.coerce_to, $klass = Opal.klass, $send2 = Opal.send2, $find_super = Opal.find_super, $truthy = Opal.truthy, $gvars = Opal.gvars, $alias = Opal.alias, $send = Opal.send, $hash2 = Opal.hash2; - Opal.add_stubs(['$nil?', '$[]', '$raise', '$escape', '$options', '$to_str', '$new', '$join', '$coerce_to!', '$!', '$match', '$coerce_to?', '$begin', '$coerce_to', '$call', '$=~', '$attr_reader', '$===', '$inspect', '$to_a']); + Opal.add_stubs(['$nil?', '$[]', '$raise', '$escape', '$options', '$to_str', '$new', '$join', '$coerce_to!', '$!', '$match', '$coerce_to?', '$begin', '$uniq', '$map', '$scan', '$source', '$to_proc', '$transform_values', '$group_by', '$each_with_index', '$+', '$last', '$=~', '$attr_reader', '$include?', '$names', '$regexp', '$named_captures', '$===', '$captures', '$-', '$inspect', '$empty?', '$each', '$to_a']); (function($base, $super, $parent_nesting) { - function $RegexpError(){}; - var self = $RegexpError = $klass($base, $super, 'RegexpError', $RegexpError); + var self = $klass($base, $super, 'RegexpError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); (function($base, $super, $parent_nesting) { - function $Regexp(){}; - var self = $Regexp = $klass($base, $super, 'Regexp', $Regexp); + var self = $klass($base, $super, 'Regexp'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Regexp_$eq$eq_6, TMP_Regexp_$eq$eq$eq_7, TMP_Regexp_$eq$_8, TMP_Regexp_inspect_9, TMP_Regexp_match_10, TMP_Regexp_match$q_11, TMP_Regexp_$_12, TMP_Regexp_source_13, TMP_Regexp_options_14, TMP_Regexp_casefold$q_15; + var $nesting = [self].concat($parent_nesting), $Regexp_$eq_eq$6, $Regexp_$eq_eq_eq$7, $Regexp_$eq_tilde$8, $Regexp_inspect$9, $Regexp_match$10, $Regexp_match$ques$11, $Regexp_names$12, $Regexp_named_captures$13, $Regexp_$$16, $Regexp_source$17, $Regexp_options$18, $Regexp_casefold$ques$19; Opal.const_set($nesting[0], 'IGNORECASE', 1); + Opal.const_set($nesting[0], 'EXTENDED', 2); Opal.const_set($nesting[0], 'MULTILINE', 4); - def.$$is_regexp = true; + Opal.defineProperty(self.$$prototype, '$$is_regexp', true); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_allocate_1, TMP_escape_2, TMP_last_match_3, TMP_union_4, TMP_new_5; + var $nesting = [self].concat($parent_nesting), $allocate$1, $escape$2, $last_match$3, $union$4, $new$5; - Opal.defn(self, '$allocate', TMP_allocate_1 = function $$allocate() { - var self = this, $iter = TMP_allocate_1.$$p, $yield = $iter || nil, allocated = nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$allocate', $allocate$1 = function $$allocate() { + var $iter = $allocate$1.$$p, $yield = $iter || nil, self = this, allocated = nil; - if ($iter) TMP_allocate_1.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $allocate$1.$$p = null; - allocated = $send(self, Opal.find_super_dispatcher(self, 'allocate', TMP_allocate_1, false), $zuper, $iter); + allocated = $send2(self, $find_super(self, 'allocate', $allocate$1, false, true), 'allocate', [], $iter); allocated.uninitialized = true; return allocated; - }, TMP_allocate_1.$$arity = 0); + }, $allocate$1.$$arity = 0); - Opal.defn(self, '$escape', TMP_escape_2 = function $$escape(string) { + Opal.def(self, '$escape', $escape$2 = function $$escape(string) { var self = this; - return Opal.escape_regexp(string) - }, TMP_escape_2.$$arity = 1); + return Opal.escape_regexp(string); + }, $escape$2.$$arity = 1); - Opal.defn(self, '$last_match', TMP_last_match_3 = function $$last_match(n) { + Opal.def(self, '$last_match', $last_match$3 = function $$last_match(n) { var self = this; if ($gvars["~"] == null) $gvars["~"] = nil; + + if (n == null) { n = nil; - } + }; if ($truthy(n['$nil?']())) { return $gvars["~"] - } else { + } else if ($truthy($gvars["~"])) { return $gvars["~"]['$[]'](n) - } - }, TMP_last_match_3.$$arity = -1); - Opal.alias(self, "quote", "escape"); + } else { + return nil + }; + }, $last_match$3.$$arity = -1); + $alias(self, "quote", "escape"); - Opal.defn(self, '$union', TMP_union_4 = function $$union($a_rest) { - var self = this, parts; + Opal.def(self, '$union', $union$4 = function $$union($a) { + var $post_args, parts, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - parts = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - parts[$arg_idx - 0] = arguments[$arg_idx]; - } + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + parts = $post_args;; + var is_first_part_array, quoted_validated, part, options, each_part_options; if (parts.length == 0) { return /(?!)/; } + // return fast if there's only one element + if (parts.length == 1 && parts[0].$$is_regexp) { + return parts[0]; + } // cover the 2 arrays passed as arguments case is_first_part_array = parts[0].$$is_array; if (parts.length > 1 && is_first_part_array) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "no implicit conversion of Array into String") + self.$raise($$($nesting, 'TypeError'), "no implicit conversion of Array into String") } // deal with splat issues (related to https://github.com/opal/opal/issues/858) if (is_first_part_array) { @@ -6212,7 +6862,7 @@ Opal.modules["corelib/regexp"] = function(Opal) { else if (part.$$is_regexp) { each_part_options = (part).$options(); if (options != undefined && options != each_part_options) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "All expressions must use the same options") + self.$raise($$($nesting, 'TypeError'), "All expressions must use the same options") } options = each_part_options; quoted_validated.push('('+part.source+')'); @@ -6223,19 +6873,22 @@ Opal.modules["corelib/regexp"] = function(Opal) { } ; return self.$new((quoted_validated).$join("|"), options); - }, TMP_union_4.$$arity = -1); - return (Opal.defn(self, '$new', TMP_new_5 = function(regexp, options) { + }, $union$4.$$arity = -1); + + Opal.def(self, '$new', $new$5 = function(regexp, options) { var self = this; + ; + if (regexp.$$is_regexp) { return new RegExp(regexp); } - regexp = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](regexp, Opal.const_get_relative($nesting, 'String'), "to_str"); + regexp = $$($nesting, 'Opal')['$coerce_to!'](regexp, $$($nesting, 'String'), "to_str"); if (regexp.charAt(regexp.length - 1) === '\\' && regexp.charAt(regexp.length - 2) !== '\\') { - self.$raise(Opal.const_get_relative($nesting, 'RegexpError'), "" + "too short escape sequence: /" + (regexp) + "/") + self.$raise($$($nesting, 'RegexpError'), "" + "too short escape sequence: /" + (regexp) + "/") } if (options === undefined || options['$!']()) { @@ -6244,8 +6897,8 @@ Opal.modules["corelib/regexp"] = function(Opal) { if (options.$$is_number) { var temp = ''; - if (Opal.const_get_relative($nesting, 'IGNORECASE') & options) { temp += 'i'; } - if (Opal.const_get_relative($nesting, 'MULTILINE') & options) { temp += 'm'; } + if ($$($nesting, 'IGNORECASE') & options) { temp += 'i'; } + if ($$($nesting, 'MULTILINE') & options) { temp += 'm'; } options = temp; } else { @@ -6253,31 +6906,36 @@ Opal.modules["corelib/regexp"] = function(Opal) { } return new RegExp(regexp, options); - - }, TMP_new_5.$$arity = -2), nil) && 'new'; + ; + }, $new$5.$$arity = -2); + return $alias(self, "compile", "new"); })(Opal.get_singleton_class(self), $nesting); - Opal.defn(self, '$==', TMP_Regexp_$eq$eq_6 = function(other) { + Opal.def(self, '$==', $Regexp_$eq_eq$6 = function(other) { var self = this; - return other.constructor == RegExp && self.toString() === other.toString() - }, TMP_Regexp_$eq$eq_6.$$arity = 1); + return other instanceof RegExp && self.toString() === other.toString(); + }, $Regexp_$eq_eq$6.$$arity = 1); - Opal.defn(self, '$===', TMP_Regexp_$eq$eq$eq_7 = function(string) { + Opal.def(self, '$===', $Regexp_$eq_eq_eq$7 = function(string) { var self = this; - return self.$match(Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](string, Opal.const_get_relative($nesting, 'String'), "to_str")) !== nil - }, TMP_Regexp_$eq$eq$eq_7.$$arity = 1); + return self.$match($$($nesting, 'Opal')['$coerce_to?'](string, $$($nesting, 'String'), "to_str")) !== nil + }, $Regexp_$eq_eq_eq$7.$$arity = 1); - Opal.defn(self, '$=~', TMP_Regexp_$eq$_8 = function(string) { - var $a, self = this; + Opal.def(self, '$=~', $Regexp_$eq_tilde$8 = function(string) { + var self = this, $ret_or_1 = nil; if ($gvars["~"] == null) $gvars["~"] = nil; - return ($truthy($a = self.$match(string)) ? $gvars["~"].$begin(0) : $a) - }, TMP_Regexp_$eq$_8.$$arity = 1); - Opal.alias(self, "eql?", "=="); + if ($truthy(($ret_or_1 = self.$match(string)))) { + return $gvars["~"].$begin(0) + } else { + return $ret_or_1 + } + }, $Regexp_$eq_tilde$8.$$arity = 1); + $alias(self, "eql?", "=="); - Opal.defn(self, '$inspect', TMP_Regexp_inspect_9 = function $$inspect() { + Opal.def(self, '$inspect', $Regexp_inspect$9 = function $$inspect() { var self = this; @@ -6313,29 +6971,40 @@ Opal.modules["corelib/regexp"] = function(Opal) { return value; } - }, TMP_Regexp_inspect_9.$$arity = 0); + }, $Regexp_inspect$9.$$arity = 0); - Opal.defn(self, '$match', TMP_Regexp_match_10 = function $$match(string, pos) { - var self = this, $iter = TMP_Regexp_match_10.$$p, block = $iter || nil; + Opal.def(self, '$match', $Regexp_match$10 = function $$match(string, pos) { + var $iter = $Regexp_match$10.$$p, block = $iter || nil, self = this; if ($gvars["~"] == null) $gvars["~"] = nil; - if ($iter) TMP_Regexp_match_10.$$p = null; + if ($iter) $Regexp_match$10.$$p = null; + + + if ($iter) $Regexp_match$10.$$p = null;; + ; if (self.uninitialized) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "uninitialized Regexp") + self.$raise($$($nesting, 'TypeError'), "uninitialized Regexp") } if (pos === undefined) { - pos = 0; - } else { - pos = Opal.const_get_relative($nesting, 'Opal').$coerce_to(pos, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + if (string === nil) return ($gvars["~"] = nil); + var m = self.exec($coerce_to(string, $$($nesting, 'String'), 'to_str')); + if (m) { + ($gvars["~"] = $$($nesting, 'MatchData').$new(self, m)); + return block === nil ? $gvars["~"] : Opal.yield1(block, $gvars["~"]); + } else { + return ($gvars["~"] = nil); + } } + pos = $coerce_to(pos, $$($nesting, 'Integer'), 'to_int'); + if (string === nil) { return ($gvars["~"] = nil); } - string = Opal.const_get_relative($nesting, 'Opal').$coerce_to(string, Opal.const_get_relative($nesting, 'String'), "to_str"); + string = $coerce_to(string, $$($nesting, 'String'), 'to_str'); if (pos < 0) { pos += string.length; @@ -6344,16 +7013,8 @@ Opal.modules["corelib/regexp"] = function(Opal) { } } - var source = self.source; - var flags = 'g'; - // m flag + a . in Ruby will match white space, but in JS, it only matches beginning/ending of lines, so we get the equivalent here - if (self.multiline) { - source = source.replace('.', "[\\s\\S]"); - flags += 'm'; - } - // global RegExp maintains state, so not using self/this - var md, re = new RegExp(source, flags + (self.ignoreCase ? 'i' : '')); + var md, re = Opal.global_regexp(self); while (true) { md = re.exec(string); @@ -6361,33 +7022,35 @@ Opal.modules["corelib/regexp"] = function(Opal) { return ($gvars["~"] = nil); } if (md.index >= pos) { - ($gvars["~"] = Opal.const_get_relative($nesting, 'MatchData').$new(re, md)) - return block === nil ? $gvars["~"] : block.$call($gvars["~"]); + ($gvars["~"] = $$($nesting, 'MatchData').$new(re, md)); + return block === nil ? $gvars["~"] : Opal.yield1(block, $gvars["~"]); } re.lastIndex = md.index + 1; } + ; + }, $Regexp_match$10.$$arity = -2); - }, TMP_Regexp_match_10.$$arity = -2); - - Opal.defn(self, '$match?', TMP_Regexp_match$q_11 = function(string, pos) { + Opal.def(self, '$match?', $Regexp_match$ques$11 = function(string, pos) { var self = this; + ; + if (self.uninitialized) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "uninitialized Regexp") + self.$raise($$($nesting, 'TypeError'), "uninitialized Regexp") } if (pos === undefined) { - pos = 0; - } else { - pos = Opal.const_get_relative($nesting, 'Opal').$coerce_to(pos, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + return string === nil ? false : self.test($coerce_to(string, $$($nesting, 'String'), 'to_str')); } + pos = $coerce_to(pos, $$($nesting, 'Integer'), 'to_int'); + if (string === nil) { return false; } - string = Opal.const_get_relative($nesting, 'Opal').$coerce_to(string, Opal.const_get_relative($nesting, 'String'), "to_str"); + string = $coerce_to(string, $$($nesting, 'String'), 'to_str'); if (pos < 0) { pos += string.length; @@ -6396,16 +7059,8 @@ Opal.modules["corelib/regexp"] = function(Opal) { } } - var source = self.source; - var flags = 'g'; - // m flag + a . in Ruby will match white space, but in JS, it only matches beginning/ending of lines, so we get the equivalent here - if (self.multiline) { - source = source.replace('.', "[\\s\\S]"); - flags += 'm'; - } - // global RegExp maintains state, so not using self/this - var md, re = new RegExp(source, flags + (self.ignoreCase ? 'i' : '')); + var md, re = Opal.global_regexp(self); md = re.exec(string); if (md === null || md.index < pos) { @@ -6413,59 +7068,84 @@ Opal.modules["corelib/regexp"] = function(Opal) { } else { return true; } + ; + }, $Regexp_match$ques$11.$$arity = -2); + + Opal.def(self, '$names', $Regexp_names$12 = function $$names() { + var self = this; + + return $send(self.$source().$scan(/\(?<(\w+)>/, $hash2(["no_matchdata"], {"no_matchdata": true})), 'map', [], "first".$to_proc()).$uniq() + }, $Regexp_names$12.$$arity = 0); - }, TMP_Regexp_match$q_11.$$arity = -2); + Opal.def(self, '$named_captures', $Regexp_named_captures$13 = function $$named_captures() { + var $$14, self = this; + + return $send($send($send(self.$source().$scan(/\(?<(\w+)>/, $hash2(["no_matchdata"], {"no_matchdata": true})), 'map', [], "first".$to_proc()).$each_with_index(), 'group_by', [], "first".$to_proc()), 'transform_values', [], ($$14 = function(i){var self = $$14.$$s == null ? this : $$14.$$s, $$15; + + + + if (i == null) { + i = nil; + }; + return $send(i, 'map', [], ($$15 = function(j){var self = $$15.$$s == null ? this : $$15.$$s; + + + + if (j == null) { + j = nil; + }; + return $rb_plus(j.$last(), 1);}, $$15.$$s = self, $$15.$$arity = 1, $$15));}, $$14.$$s = self, $$14.$$arity = 1, $$14)) + }, $Regexp_named_captures$13.$$arity = 0); - Opal.defn(self, '$~', TMP_Regexp_$_12 = function() { + Opal.def(self, '$~', $Regexp_$$16 = function() { var self = this; if ($gvars._ == null) $gvars._ = nil; return self['$=~']($gvars._) - }, TMP_Regexp_$_12.$$arity = 0); + }, $Regexp_$$16.$$arity = 0); - Opal.defn(self, '$source', TMP_Regexp_source_13 = function $$source() { + Opal.def(self, '$source', $Regexp_source$17 = function $$source() { var self = this; - return self.source - }, TMP_Regexp_source_13.$$arity = 0); + return self.source; + }, $Regexp_source$17.$$arity = 0); - Opal.defn(self, '$options', TMP_Regexp_options_14 = function $$options() { + Opal.def(self, '$options', $Regexp_options$18 = function $$options() { var self = this; if (self.uninitialized) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "uninitialized Regexp") + self.$raise($$($nesting, 'TypeError'), "uninitialized Regexp") } var result = 0; // should be supported in IE6 according to https://msdn.microsoft.com/en-us/library/7f5z26w4(v=vs.94).aspx if (self.multiline) { - result |= Opal.const_get_relative($nesting, 'MULTILINE'); + result |= $$($nesting, 'MULTILINE'); } if (self.ignoreCase) { - result |= Opal.const_get_relative($nesting, 'IGNORECASE'); + result |= $$($nesting, 'IGNORECASE'); } return result; - }, TMP_Regexp_options_14.$$arity = 0); + }, $Regexp_options$18.$$arity = 0); - Opal.defn(self, '$casefold?', TMP_Regexp_casefold$q_15 = function() { + Opal.def(self, '$casefold?', $Regexp_casefold$ques$19 = function() { var self = this; - return self.ignoreCase - }, TMP_Regexp_casefold$q_15.$$arity = 0); - return Opal.alias(self, "to_s", "source"); + return self.ignoreCase; + }, $Regexp_casefold$ques$19.$$arity = 0); + return $alias(self, "to_s", "source"); })($nesting[0], RegExp, $nesting); return (function($base, $super, $parent_nesting) { - function $MatchData(){}; - var self = $MatchData = $klass($base, $super, 'MatchData', $MatchData); + var self = $klass($base, $super, 'MatchData'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_MatchData_initialize_16, TMP_MatchData_$$_17, TMP_MatchData_offset_18, TMP_MatchData_$eq$eq_19, TMP_MatchData_begin_20, TMP_MatchData_end_21, TMP_MatchData_captures_22, TMP_MatchData_inspect_23, TMP_MatchData_length_24, TMP_MatchData_to_a_25, TMP_MatchData_to_s_26, TMP_MatchData_values_at_27; + var $nesting = [self].concat($parent_nesting), $MatchData_initialize$20, $MatchData_$$$21, $MatchData_offset$22, $MatchData_$eq_eq$23, $MatchData_begin$24, $MatchData_end$25, $MatchData_captures$26, $MatchData_named_captures$27, $MatchData_names$29, $MatchData_inspect$30, $MatchData_length$32, $MatchData_to_a$33, $MatchData_to_s$34, $MatchData_values_at$35; - def.matches = nil; + self.$$prototype.matches = nil; self.$attr_reader("post_match", "pre_match", "regexp", "string"); - Opal.defn(self, '$initialize', TMP_MatchData_initialize_16 = function $$initialize(regexp, match_groups) { + Opal.def(self, '$initialize', $MatchData_initialize$20 = function $$initialize(regexp, match_groups) { var self = this; @@ -6488,112 +7168,173 @@ Opal.modules["corelib/regexp"] = function(Opal) { } } ; - }, TMP_MatchData_initialize_16.$$arity = 2); + }, $MatchData_initialize$20.$$arity = 2); - Opal.defn(self, '$[]', TMP_MatchData_$$_17 = function($a_rest) { - var self = this, args; + Opal.def(self, '$[]', $MatchData_$$$21 = function($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + + if (args[0].$$is_string) { + if (self.$regexp().$names()['$include?'](args['$[]'](0))['$!']()) { + self.$raise($$($nesting, 'IndexError'), "" + "undefined group name reference: " + (args['$[]'](0))) + } + return self.$named_captures()['$[]'](args['$[]'](0)) + } + else { + return $send(self.matches, '[]', Opal.to_a(args)) } - return $send(self.matches, '[]', Opal.to_a(args)) - }, TMP_MatchData_$$_17.$$arity = -1); + ; + }, $MatchData_$$$21.$$arity = -1); - Opal.defn(self, '$offset', TMP_MatchData_offset_18 = function $$offset(n) { + Opal.def(self, '$offset', $MatchData_offset$22 = function $$offset(n) { var self = this; if (n !== 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "MatchData#offset only supports 0th element") + self.$raise($$($nesting, 'ArgumentError'), "MatchData#offset only supports 0th element") } return [self.begin, self.begin + self.matches[n].length]; - }, TMP_MatchData_offset_18.$$arity = 1); + }, $MatchData_offset$22.$$arity = 1); - Opal.defn(self, '$==', TMP_MatchData_$eq$eq_19 = function(other) { - var $a, $b, $c, $d, self = this; + Opal.def(self, '$==', $MatchData_$eq_eq$23 = function(other) { + var self = this, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'MatchData')['$==='](other))) { - } else { + if ($truthy($$($nesting, 'MatchData')['$==='](other))) { + } else { return false }; - return ($truthy($a = ($truthy($b = ($truthy($c = ($truthy($d = self.string == other.string) ? self.regexp.toString() == other.regexp.toString() : $d)) ? self.pre_match == other.pre_match : $c)) ? self.post_match == other.post_match : $b)) ? self.begin == other.begin : $a); - }, TMP_MatchData_$eq$eq_19.$$arity = 1); - Opal.alias(self, "eql?", "=="); + if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = self.string == other.string))) { + return self.regexp.toString() == other.regexp.toString(); + } else { + return $ret_or_5 + }; return nil; })()))) { + return self.pre_match == other.pre_match; + } else { + return $ret_or_4 + }; return nil; })()))) { + return self.post_match == other.post_match; + } else { + return $ret_or_3 + }; return nil; })()))) { + return self.begin == other.begin; + } else { + return $ret_or_2 + }; + }, $MatchData_$eq_eq$23.$$arity = 1); + $alias(self, "eql?", "=="); - Opal.defn(self, '$begin', TMP_MatchData_begin_20 = function $$begin(n) { + Opal.def(self, '$begin', $MatchData_begin$24 = function $$begin(n) { var self = this; if (n !== 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "MatchData#begin only supports 0th element") + self.$raise($$($nesting, 'ArgumentError'), "MatchData#begin only supports 0th element") } return self.begin; - }, TMP_MatchData_begin_20.$$arity = 1); + }, $MatchData_begin$24.$$arity = 1); - Opal.defn(self, '$end', TMP_MatchData_end_21 = function $$end(n) { + Opal.def(self, '$end', $MatchData_end$25 = function $$end(n) { var self = this; if (n !== 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "MatchData#end only supports 0th element") + self.$raise($$($nesting, 'ArgumentError'), "MatchData#end only supports 0th element") } return self.begin + self.matches[n].length; - }, TMP_MatchData_end_21.$$arity = 1); + }, $MatchData_end$25.$$arity = 1); - Opal.defn(self, '$captures', TMP_MatchData_captures_22 = function $$captures() { + Opal.def(self, '$captures', $MatchData_captures$26 = function $$captures() { var self = this; return self.matches.slice(1) - }, TMP_MatchData_captures_22.$$arity = 0); + }, $MatchData_captures$26.$$arity = 0); + + Opal.def(self, '$named_captures', $MatchData_named_captures$27 = function $$named_captures() { + var $$28, self = this, matches = nil; + + + matches = self.$captures(); + return $send(self.$regexp().$named_captures(), 'transform_values', [], ($$28 = function(i){var self = $$28.$$s == null ? this : $$28.$$s; + + + + if (i == null) { + i = nil; + }; + return matches['$[]']($rb_minus(i.$last(), 1));}, $$28.$$s = self, $$28.$$arity = 1, $$28)); + }, $MatchData_named_captures$27.$$arity = 0); - Opal.defn(self, '$inspect', TMP_MatchData_inspect_23 = function $$inspect() { + Opal.def(self, '$names', $MatchData_names$29 = function $$names() { var self = this; + return self.$regexp().$names() + }, $MatchData_names$29.$$arity = 0); + + Opal.def(self, '$inspect', $MatchData_inspect$30 = function $$inspect() { + var $$31, self = this; + var str = "#"; - }, TMP_MatchData_inspect_23.$$arity = 0); + }, $MatchData_inspect$30.$$arity = 0); - Opal.defn(self, '$length', TMP_MatchData_length_24 = function $$length() { + Opal.def(self, '$length', $MatchData_length$32 = function $$length() { var self = this; return self.matches.length - }, TMP_MatchData_length_24.$$arity = 0); - Opal.alias(self, "size", "length"); + }, $MatchData_length$32.$$arity = 0); + $alias(self, "size", "length"); - Opal.defn(self, '$to_a', TMP_MatchData_to_a_25 = function $$to_a() { + Opal.def(self, '$to_a', $MatchData_to_a$33 = function $$to_a() { var self = this; return self.matches - }, TMP_MatchData_to_a_25.$$arity = 0); + }, $MatchData_to_a$33.$$arity = 0); - Opal.defn(self, '$to_s', TMP_MatchData_to_s_26 = function $$to_s() { + Opal.def(self, '$to_s', $MatchData_to_s$34 = function $$to_s() { var self = this; return self.matches[0] - }, TMP_MatchData_to_s_26.$$arity = 0); - return (Opal.defn(self, '$values_at', TMP_MatchData_values_at_27 = function $$values_at($a_rest) { - var self = this, args; + }, $MatchData_to_s$34.$$arity = 0); + return (Opal.def(self, '$values_at', $MatchData_values_at$35 = function $$values_at($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; var i, a, index, values = []; @@ -6605,7 +7346,7 @@ Opal.modules["corelib/regexp"] = function(Opal) { Array.prototype.splice.apply(args, a); } - index = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](args[i], Opal.const_get_relative($nesting, 'Integer'), "to_int"); + index = $$($nesting, 'Opal')['$coerce_to!'](args[i], $$($nesting, 'Integer'), "to_int"); if (index < 0) { index += self.matches.length; @@ -6619,92 +7360,130 @@ Opal.modules["corelib/regexp"] = function(Opal) { } return values; - - }, TMP_MatchData_values_at_27.$$arity = -1), nil) && 'values_at'; + ; + }, $MatchData_values_at$35.$$arity = -1), nil) && 'values_at'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/string"] = function(Opal) { +Opal.modules["corelib/string"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_divide(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); } function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $gvars = Opal.gvars; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $coerce_to = Opal.coerce_to, $respond_to = Opal.respond_to, $klass = Opal.klass, $alias = Opal.alias, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy, $gvars = Opal.gvars; - Opal.add_stubs(['$require', '$include', '$coerce_to?', '$coerce_to', '$raise', '$===', '$format', '$to_s', '$respond_to?', '$to_str', '$<=>', '$==', '$=~', '$new', '$empty?', '$ljust', '$ceil', '$/', '$+', '$rjust', '$floor', '$to_a', '$each_char', '$to_proc', '$coerce_to!', '$copy_singleton_methods', '$initialize_clone', '$initialize_dup', '$enum_for', '$size', '$chomp', '$[]', '$to_i', '$each_line', '$class', '$match', '$captures', '$proc', '$succ', '$escape']); + Opal.add_stubs(['$require', '$include', '$coerce_to?', '$initialize', '$===', '$format', '$raise', '$respond_to?', '$to_s', '$to_str', '$<=>', '$==', '$=~', '$new', '$force_encoding', '$casecmp', '$empty?', '$ljust', '$ceil', '$/', '$+', '$rjust', '$floor', '$coerce_to!', '$copy_singleton_methods', '$initialize_clone', '$initialize_dup', '$enum_for', '$chomp', '$[]', '$to_i', '$each_line', '$to_proc', '$to_a', '$class', '$match', '$match?', '$captures', '$proc', '$succ', '$escape', '$include?', '$upcase', '$unicode_normalize', '$pristine']); self.$require("corelib/comparable"); self.$require("corelib/regexp"); (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + var self = $klass($base, $super, 'String'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String___id___1, TMP_String_try_convert_2, TMP_String_new_3, TMP_String_initialize_4, TMP_String_$_5, TMP_String_$_6, TMP_String_$_7, TMP_String_$lt$eq$gt_8, TMP_String_$eq$eq_9, TMP_String_$eq$_10, TMP_String_$$_11, TMP_String_capitalize_12, TMP_String_casecmp_13, TMP_String_center_14, TMP_String_chars_15, TMP_String_chomp_16, TMP_String_chop_17, TMP_String_chr_18, TMP_String_clone_19, TMP_String_dup_20, TMP_String_count_21, TMP_String_delete_22, TMP_String_downcase_23, TMP_String_each_char_24, TMP_String_each_line_26, TMP_String_empty$q_27, TMP_String_end_with$q_28, TMP_String_gsub_29, TMP_String_hash_30, TMP_String_hex_31, TMP_String_include$q_32, TMP_String_index_33, TMP_String_inspect_34, TMP_String_intern_35, TMP_String_lines_36, TMP_String_length_37, TMP_String_ljust_38, TMP_String_lstrip_39, TMP_String_ascii_only$q_40, TMP_String_match_41, TMP_String_next_42, TMP_String_oct_43, TMP_String_ord_44, TMP_String_partition_45, TMP_String_reverse_46, TMP_String_rindex_47, TMP_String_rjust_48, TMP_String_rpartition_49, TMP_String_rstrip_50, TMP_String_scan_51, TMP_String_split_52, TMP_String_squeeze_53, TMP_String_start_with$q_54, TMP_String_strip_55, TMP_String_sub_56, TMP_String_sum_57, TMP_String_swapcase_58, TMP_String_to_f_59, TMP_String_to_i_60, TMP_String_to_proc_62, TMP_String_to_s_63, TMP_String_tr_64, TMP_String_tr_s_65, TMP_String_upcase_66, TMP_String_upto_67, TMP_String_instance_variables_68, TMP_String__load_69, TMP_String_unpack_70; + var $nesting = [self].concat($parent_nesting), $String___id__$1, $String_try_convert$2, $String_new$3, $String_initialize$4, $String_$percent$5, $String_$$6, $String_$plus$7, $String_$lt_eq_gt$8, $String_$eq_eq$9, $String_$eq_tilde$10, $String_$$$11, $String_b$12, $String_capitalize$13, $String_casecmp$14, $String_casecmp$ques$15, $String_center$16, $String_chomp$17, $String_chop$18, $String_chr$19, $String_clone$20, $String_dup$21, $String_count$22, $String_delete$23, $String_delete_prefix$24, $String_delete_suffix$25, $String_downcase$26, $String_each_line$27, $String_empty$ques$28, $String_end_with$ques$29, $String_gsub$30, $String_hash$31, $String_hex$32, $String_include$ques$33, $String_index$34, $String_inspect$35, $String_intern$36, $String_lines$37, $String_ljust$38, $String_lstrip$39, $String_ascii_only$ques$40, $String_match$41, $String_match$ques$42, $String_next$43, $String_oct$44, $String_ord$45, $String_partition$46, $String_reverse$47, $String_rindex$48, $String_rjust$49, $String_rpartition$50, $String_rstrip$51, $String_scan$52, $String_split$53, $String_squeeze$54, $String_start_with$ques$55, $String_strip$56, $String_sub$57, $String_sum$58, $String_swapcase$59, $String_to_f$60, $String_to_i$61, $String_to_proc$62, $String_to_s$64, $String_tr$65, $String_tr_s$66, $String_upcase$67, $String_upto$68, $String_instance_variables$69, $String__load$70, $String_unicode_normalize$71, $String_unicode_normalized$ques$72, $String_unpack$73, $String_unpack1$74, $String_freeze$75, $String_$minus$$76, $String_frozen$ques$77; - def.length = nil; - self.$include(Opal.const_get_relative($nesting, 'Comparable')); - def.$$is_string = true; + self.$include($$($nesting, 'Comparable')); - Opal.defn(self, '$__id__', TMP_String___id___1 = function $$__id__() { - var self = this; + Opal.defineProperty(self.$$prototype, '$$is_string', true); - return self.toString() - }, TMP_String___id___1.$$arity = 0); - Opal.alias(self, "object_id", "__id__"); - Opal.defs(self, '$try_convert', TMP_String_try_convert_2 = function $$try_convert(what) { + Opal.defineProperty(self.$$prototype, '$$cast', function(string) { + var klass = this.$$class; + if (klass.$$constructor === String) { + return string; + } else { + return new klass.$$constructor(string); + } + }); + ; + + Opal.def(self, '$__id__', $String___id__$1 = function $$__id__() { var self = this; - return Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](what, Opal.const_get_relative($nesting, 'String'), "to_str") - }, TMP_String_try_convert_2.$$arity = 1); - Opal.defs(self, '$new', TMP_String_new_3 = function(str) { + return self.toString(); + }, $String___id__$1.$$arity = 0); + $alias(self, "object_id", "__id__"); + Opal.defs(self, '$try_convert', $String_try_convert$2 = function $$try_convert(what) { var self = this; - if (str == null) { - str = ""; - } - - str = Opal.const_get_relative($nesting, 'Opal').$coerce_to(str, Opal.const_get_relative($nesting, 'String'), "to_str"); - return new String(str); - }, TMP_String_new_3.$$arity = -1); - - Opal.defn(self, '$initialize', TMP_String_initialize_4 = function $$initialize(str) { - var self = this; + return $$($nesting, 'Opal')['$coerce_to?'](what, $$($nesting, 'String'), "to_str") + }, $String_try_convert$2.$$arity = 1); + Opal.defs(self, '$new', $String_new$3 = function($a) { + var $post_args, args, self = this; - if (str === undefined) { - return self; + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + + var str = args[0] || ""; + var opts = args[args.length-1]; + str = $coerce_to(str, $$($nesting, 'String'), 'to_str'); + if (opts && opts.$$is_hash) { + if (opts.$$smap.encoding) str = str.$force_encoding(opts.$$smap.encoding); } + str = new self.$$constructor(str); + if (!str.$initialize.$$pristine) $send((str), 'initialize', Opal.to_a(args)); + return str; ; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'), "Mutable strings are not supported in Opal."); - }, TMP_String_initialize_4.$$arity = -1); + }, $String_new$3.$$arity = -1); + + Opal.def(self, '$initialize', $String_initialize$4 = function $$initialize($a, $b) { + var $post_args, $kwargs, str, encoding, capacity, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) { + str = $post_args[0]; + $post_args.splice(0, 1); + }; + + encoding = $kwargs.$$smap["encoding"]; + if (encoding == null) { + encoding = nil + }; + + capacity = $kwargs.$$smap["capacity"]; + if (capacity == null) { + capacity = nil + }; + return nil; + }, $String_initialize$4.$$arity = -1); - Opal.defn(self, '$%', TMP_String_$_5 = function(data) { + Opal.def(self, '$%', $String_$percent$5 = function(data) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](data))) { + if ($truthy($$($nesting, 'Array')['$==='](data))) { return $send(self, 'format', [self].concat(Opal.to_a(data))) - } else { + } else { return self.$format(self, data) } - }, TMP_String_$_5.$$arity = 1); + }, $String_$percent$5.$$arity = 1); - Opal.defn(self, '$*', TMP_String_$_6 = function(count) { + Opal.def(self, '$*', $String_$$6 = function(count) { var self = this; - count = Opal.const_get_relative($nesting, 'Opal').$coerce_to(count, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); if (count < 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "negative argument") + self.$raise($$($nesting, 'ArgumentError'), "negative argument") } if (count === 0) { - return ''; + return self.$$cast(''); } var result = '', @@ -6715,7 +7494,7 @@ Opal.modules["corelib/string"] = function(Opal) { // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/repeat if (string.length * count >= 1 << 28) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "multiply count must not overflow maximum string size") + self.$raise($$($nesting, 'RangeError'), "multiply count must not overflow maximum string size") } for (;;) { @@ -6729,26 +7508,33 @@ Opal.modules["corelib/string"] = function(Opal) { string += string; } - return result; + return self.$$cast(result); - }, TMP_String_$_6.$$arity = 1); + }, $String_$$6.$$arity = 1); - Opal.defn(self, '$+', TMP_String_$_7 = function(other) { + Opal.def(self, '$+', $String_$plus$7 = function(other) { var self = this; - other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'String'), "to_str"); - return self + other.$to_s(); - }, TMP_String_$_7.$$arity = 1); + other = $coerce_to(other, $$($nesting, 'String'), 'to_str'); + + if (other == "" && self.$$class === Opal.String) return self; + if (self == "" && other.$$class === Opal.String) return other; + var out = self + other; + if (self.encoding === out.encoding && other.encoding === out.encoding) return out; + if (self.encoding.name === "UTF-8" || other.encoding.name === "UTF-8") return out; + return Opal.enc(out, self.encoding); + ; + }, $String_$plus$7.$$arity = 1); - Opal.defn(self, '$<=>', TMP_String_$lt$eq$gt_8 = function(other) { + Opal.def(self, '$<=>', $String_$lt_eq_gt$8 = function(other) { var self = this; if ($truthy(other['$respond_to?']("to_str"))) { other = other.$to_str().$to_s(); - return self > other ? 1 : (self < other ? -1 : 0); - } else { + return self > other ? 1 : (self < other ? -1 : 0);; + } else { var cmp = other['$<=>'](self); @@ -6760,46 +7546,48 @@ Opal.modules["corelib/string"] = function(Opal) { } } - }, TMP_String_$lt$eq$gt_8.$$arity = 1); + }, $String_$lt_eq_gt$8.$$arity = 1); - Opal.defn(self, '$==', TMP_String_$eq$eq_9 = function(other) { + Opal.def(self, '$==', $String_$eq_eq$9 = function(other) { var self = this; if (other.$$is_string) { return self.toString() === other.toString(); } - if (Opal.const_get_relative($nesting, 'Opal')['$respond_to?'](other, "to_str")) { + if ($respond_to(other, '$to_str')) { return other['$=='](self); } return false; - }, TMP_String_$eq$eq_9.$$arity = 1); - Opal.alias(self, "eql?", "=="); - Opal.alias(self, "===", "=="); + }, $String_$eq_eq$9.$$arity = 1); + $alias(self, "eql?", "=="); + $alias(self, "===", "=="); - Opal.defn(self, '$=~', TMP_String_$eq$_10 = function(other) { + Opal.def(self, '$=~', $String_$eq_tilde$10 = function(other) { var self = this; if (other.$$is_string) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "type mismatch: String given"); + self.$raise($$($nesting, 'TypeError'), "type mismatch: String given"); } return other['$=~'](self); - }, TMP_String_$eq$_10.$$arity = 1); + }, $String_$eq_tilde$10.$$arity = 1); - Opal.defn(self, '$[]', TMP_String_$$_11 = function(index, length) { + Opal.def(self, '$[]', $String_$$$11 = function(index, length) { var self = this; + ; + var size = self.length, exclude; if (index.$$is_range) { exclude = index.excl; - length = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index.end, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - index = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index.begin, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + length = $coerce_to(index.end, $$($nesting, 'Integer'), 'to_int'); + index = $coerce_to(index.begin, $$($nesting, 'Integer'), 'to_int'); if (Math.abs(index) > size) { return nil; @@ -6823,15 +7611,15 @@ Opal.modules["corelib/string"] = function(Opal) { length = 0; } - return self.substr(index, length); + return self.$$cast(self.substr(index, length)); } if (index.$$is_string) { if (length != null) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError')) + self.$raise($$($nesting, 'TypeError')) } - return self.indexOf(index) !== -1 ? index : nil; + return self.indexOf(index) !== -1 ? self.$$cast(index) : nil; } @@ -6843,27 +7631,27 @@ Opal.modules["corelib/string"] = function(Opal) { return nil; } - ($gvars["~"] = Opal.const_get_relative($nesting, 'MatchData').$new(index, match)) + ($gvars["~"] = $$($nesting, 'MatchData').$new(index, match)) if (length == null) { - return match[0]; + return self.$$cast(match[0]); } - length = Opal.const_get_relative($nesting, 'Opal').$coerce_to(length, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + length = $coerce_to(length, $$($nesting, 'Integer'), 'to_int'); if (length < 0 && -length < match.length) { - return match[length += match.length]; + return self.$$cast(match[length += match.length]); } if (length >= 0 && length < match.length) { - return match[length]; + return self.$$cast(match[length]); } return nil; } - index = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); if (index < 0) { index += size; @@ -6873,10 +7661,10 @@ Opal.modules["corelib/string"] = function(Opal) { if (index >= size || index < 0) { return nil; } - return self.substr(index, 1); + return self.$$cast(self.substr(index, 1)); } - length = Opal.const_get_relative($nesting, 'Opal').$coerce_to(length, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + length = $coerce_to(length, $$($nesting, 'Integer'), 'to_int'); if (length < 0) { return nil; @@ -6886,22 +7674,32 @@ Opal.modules["corelib/string"] = function(Opal) { return nil; } - return self.substr(index, length); + return self.$$cast(self.substr(index, length)); + ; + }, $String_$$$11.$$arity = -2); + $alias(self, "byteslice", "[]"); - }, TMP_String_$$_11.$$arity = -2); - Opal.alias(self, "byteslice", "[]"); + Opal.def(self, '$b', $String_b$12 = function $$b() { + var self = this; + + return (new String(self)).$force_encoding("binary") + }, $String_b$12.$$arity = 0); - Opal.defn(self, '$capitalize', TMP_String_capitalize_12 = function $$capitalize() { + Opal.def(self, '$capitalize', $String_capitalize$13 = function $$capitalize() { var self = this; - return self.charAt(0).toUpperCase() + self.substr(1).toLowerCase() - }, TMP_String_capitalize_12.$$arity = 0); + return self.$$cast(self.charAt(0).toUpperCase() + self.substr(1).toLowerCase()); + }, $String_capitalize$13.$$arity = 0); - Opal.defn(self, '$casecmp', TMP_String_casecmp_13 = function $$casecmp(other) { + Opal.def(self, '$casecmp', $String_casecmp$14 = function $$casecmp(other) { var self = this; - other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); + if ($truthy(other['$respond_to?']("to_str"))) { + } else { + return nil + }; + other = ($coerce_to(other, $$($nesting, 'String'), 'to_str')).$to_s(); var ascii_only = /^[\x00-\x7F]*$/; if (ascii_only.test(self) && ascii_only.test(other)) { @@ -6910,192 +7708,214 @@ Opal.modules["corelib/string"] = function(Opal) { } ; return self['$<=>'](other); - }, TMP_String_casecmp_13.$$arity = 1); + }, $String_casecmp$14.$$arity = 1); - Opal.defn(self, '$center', TMP_String_center_14 = function $$center(width, padstr) { + Opal.def(self, '$casecmp?', $String_casecmp$ques$15 = function(other) { + var self = this; + + + var cmp = self.$casecmp(other); + if (cmp === nil) { + return nil; + } else { + return cmp === 0; + } + + }, $String_casecmp$ques$15.$$arity = 1); + + Opal.def(self, '$center', $String_center$16 = function $$center(width, padstr) { var self = this; - if (padstr == null) { - padstr = " "; - } - width = Opal.const_get_relative($nesting, 'Opal').$coerce_to(width, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - padstr = Opal.const_get_relative($nesting, 'Opal').$coerce_to(padstr, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); - if ($truthy(padstr['$empty?']())) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "zero width padding")}; - if ($truthy(width <= self.length)) { - return self}; + + if (padstr == null) { + padstr = " "; + }; + width = $coerce_to(width, $$($nesting, 'Integer'), 'to_int'); + padstr = ($coerce_to(padstr, $$($nesting, 'String'), 'to_str')).$to_s(); + if ($truthy(padstr['$empty?']())) { + self.$raise($$($nesting, 'ArgumentError'), "zero width padding")}; + if ($truthy(width <= self.length)) { + return self}; var ljustified = self.$ljust($rb_divide($rb_plus(width, self.length), 2).$ceil(), padstr), rjustified = self.$rjust($rb_divide($rb_plus(width, self.length), 2).$floor(), padstr); - return rjustified + ljustified.slice(self.length); + return self.$$cast(rjustified + ljustified.slice(self.length)); ; - }, TMP_String_center_14.$$arity = -2); - - Opal.defn(self, '$chars', TMP_String_chars_15 = function $$chars() { - var self = this, $iter = TMP_String_chars_15.$$p, block = $iter || nil; - - if ($iter) TMP_String_chars_15.$$p = null; - - if ($truthy(block)) { - } else { - return self.$each_char().$to_a() - }; - return $send(self, 'each_char', [], block.$to_proc()); - }, TMP_String_chars_15.$$arity = 0); + }, $String_center$16.$$arity = -2); - Opal.defn(self, '$chomp', TMP_String_chomp_16 = function $$chomp(separator) { + Opal.def(self, '$chomp', $String_chomp$17 = function $$chomp(separator) { var self = this; if ($gvars["/"] == null) $gvars["/"] = nil; + + if (separator == null) { separator = $gvars["/"]; - } - + }; if ($truthy(separator === nil || self.length === 0)) { return self}; - separator = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](separator, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); + separator = $$($nesting, 'Opal')['$coerce_to!'](separator, $$($nesting, 'String'), "to_str").$to_s(); + var result; + if (separator === "\n") { - return self.replace(/\r?\n?$/, ''); + result = self.replace(/\r?\n?$/, ''); } else if (separator === "") { - return self.replace(/(\r?\n)+$/, ''); + result = self.replace(/(\r?\n)+$/, ''); } - else if (self.length > separator.length) { + else if (self.length >= separator.length) { var tail = self.substr(self.length - separator.length, separator.length); if (tail === separator) { - return self.substr(0, self.length - separator.length); + result = self.substr(0, self.length - separator.length); } } + + if (result != null) { + return self.$$cast(result); + } ; return self; - }, TMP_String_chomp_16.$$arity = -1); + }, $String_chomp$17.$$arity = -1); - Opal.defn(self, '$chop', TMP_String_chop_17 = function $$chop() { + Opal.def(self, '$chop', $String_chop$18 = function $$chop() { var self = this; - var length = self.length; + var length = self.length, result; if (length <= 1) { - return ""; + result = ""; + } else if (self.charAt(length - 1) === "\n" && self.charAt(length - 2) === "\r") { + result = self.substr(0, length - 2); + } else { + result = self.substr(0, length - 1); } - if (self.charAt(length - 1) === "\n" && self.charAt(length - 2) === "\r") { - return self.substr(0, length - 2); - } - else { - return self.substr(0, length - 1); - } + return self.$$cast(result); - }, TMP_String_chop_17.$$arity = 0); + }, $String_chop$18.$$arity = 0); - Opal.defn(self, '$chr', TMP_String_chr_18 = function $$chr() { + Opal.def(self, '$chr', $String_chr$19 = function $$chr() { var self = this; - return self.charAt(0) - }, TMP_String_chr_18.$$arity = 0); + return self.charAt(0); + }, $String_chr$19.$$arity = 0); - Opal.defn(self, '$clone', TMP_String_clone_19 = function $$clone() { + Opal.def(self, '$clone', $String_clone$20 = function $$clone() { var self = this, copy = nil; - copy = self.slice(); + copy = new String(self); copy.$copy_singleton_methods(self); copy.$initialize_clone(self); return copy; - }, TMP_String_clone_19.$$arity = 0); + }, $String_clone$20.$$arity = 0); - Opal.defn(self, '$dup', TMP_String_dup_20 = function $$dup() { + Opal.def(self, '$dup', $String_dup$21 = function $$dup() { var self = this, copy = nil; - copy = self.slice(); + copy = new String(self); copy.$initialize_dup(self); return copy; - }, TMP_String_dup_20.$$arity = 0); + }, $String_dup$21.$$arity = 0); - Opal.defn(self, '$count', TMP_String_count_21 = function $$count($a_rest) { - var self = this, sets; + Opal.def(self, '$count', $String_count$22 = function $$count($a) { + var $post_args, sets, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - sets = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - sets[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + sets = $post_args;; if (sets.length === 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "ArgumentError: wrong number of arguments (0 for 1+)") + self.$raise($$($nesting, 'ArgumentError'), "ArgumentError: wrong number of arguments (0 for 1+)") } var char_class = char_class_from_char_sets(sets); if (char_class === null) { return 0; } return self.length - self.replace(new RegExp(char_class, 'g'), '').length; + ; + }, $String_count$22.$$arity = -1); - }, TMP_String_count_21.$$arity = -1); - - Opal.defn(self, '$delete', TMP_String_delete_22 = function($a_rest) { - var self = this, sets; + Opal.def(self, '$delete', $String_delete$23 = function($a) { + var $post_args, sets, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - sets = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - sets[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + sets = $post_args;; if (sets.length === 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "ArgumentError: wrong number of arguments (0 for 1+)") + self.$raise($$($nesting, 'ArgumentError'), "ArgumentError: wrong number of arguments (0 for 1+)") } var char_class = char_class_from_char_sets(sets); if (char_class === null) { return self; } - return self.replace(new RegExp(char_class, 'g'), ''); - - }, TMP_String_delete_22.$$arity = -1); + return self.$$cast(self.replace(new RegExp(char_class, 'g'), '')); + ; + }, $String_delete$23.$$arity = -1); - Opal.defn(self, '$downcase', TMP_String_downcase_23 = function $$downcase() { + Opal.def(self, '$delete_prefix', $String_delete_prefix$24 = function $$delete_prefix(prefix) { var self = this; - return self.toLowerCase() - }, TMP_String_downcase_23.$$arity = 0); + + if (!prefix.$$is_string) { + prefix = $coerce_to(prefix, $$($nesting, 'String'), 'to_str'); + } + + if (self.slice(0, prefix.length) === prefix) { + return self.$$cast(self.slice(prefix.length)); + } else { + return self; + } + + }, $String_delete_prefix$24.$$arity = 1); - Opal.defn(self, '$each_char', TMP_String_each_char_24 = function $$each_char() { - var TMP_25, self = this, $iter = TMP_String_each_char_24.$$p, block = $iter || nil; + Opal.def(self, '$delete_suffix', $String_delete_suffix$25 = function $$delete_suffix(suffix) { + var self = this; - if ($iter) TMP_String_each_char_24.$$p = null; - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_char"], (TMP_25 = function(){var self = TMP_25.$$s || this; + if (!suffix.$$is_string) { + suffix = $coerce_to(suffix, $$($nesting, 'String'), 'to_str'); + } - return self.$size()}, TMP_25.$$s = self, TMP_25.$$arity = 0, TMP_25)) - }; - - for (var i = 0, length = self.length; i < length; i++) { - Opal.yield1(block, self.charAt(i)); + if (self.slice(self.length - suffix.length) === suffix) { + return self.$$cast(self.slice(0, self.length - suffix.length)); + } else { + return self; } - ; - return self; - }, TMP_String_each_char_24.$$arity = 0); - Opal.defn(self, '$each_line', TMP_String_each_line_26 = function $$each_line(separator) { - var self = this, $iter = TMP_String_each_line_26.$$p, block = $iter || nil; + }, $String_delete_suffix$25.$$arity = 1); + + Opal.def(self, '$downcase', $String_downcase$26 = function $$downcase() { + var self = this; + + return self.$$cast(self.toLowerCase()); + }, $String_downcase$26.$$arity = 0); + + Opal.def(self, '$each_line', $String_each_line$27 = function $$each_line(separator) { + var $iter = $String_each_line$27.$$p, block = $iter || nil, self = this; if ($gvars["/"] == null) $gvars["/"] = nil; + if ($iter) $String_each_line$27.$$p = null; + + + if ($iter) $String_each_line$27.$$p = null;; + if (separator == null) { separator = $gvars["/"]; - } - if ($iter) TMP_String_each_line_26.$$p = null; - + }; if ((block !== nil)) { - } else { + } else { return self.$enum_for("each_line", separator) }; @@ -7105,14 +7925,15 @@ Opal.modules["corelib/string"] = function(Opal) { return self; } - separator = Opal.const_get_relative($nesting, 'Opal').$coerce_to(separator, Opal.const_get_relative($nesting, 'String'), "to_str") + separator = $coerce_to(separator, $$($nesting, 'String'), 'to_str') var a, i, n, length, chomped, trailing, splitted; if (separator.length === 0) { for (a = self.split(/(\n{2,})/), i = 0, n = a.length; i < n; i += 2) { if (a[i] || a[i + 1]) { - Opal.yield1(block, (a[i] || "") + (a[i + 1] || "")); + var value = (a[i] || "") + (a[i + 1] || ""); + Opal.yield1(block, self.$$cast(value)); } } @@ -7125,35 +7946,33 @@ Opal.modules["corelib/string"] = function(Opal) { for (i = 0, length = splitted.length; i < length; i++) { if (i < length - 1 || trailing) { - Opal.yield1(block, splitted[i] + separator); + Opal.yield1(block, self.$$cast(splitted[i] + separator)); } else { - Opal.yield1(block, splitted[i]); + Opal.yield1(block, self.$$cast(splitted[i])); } } ; return self; - }, TMP_String_each_line_26.$$arity = -1); + }, $String_each_line$27.$$arity = -1); - Opal.defn(self, '$empty?', TMP_String_empty$q_27 = function() { + Opal.def(self, '$empty?', $String_empty$ques$28 = function() { var self = this; - return self.length === 0 - }, TMP_String_empty$q_27.$$arity = 0); + return self.length === 0; + }, $String_empty$ques$28.$$arity = 0); - Opal.defn(self, '$end_with?', TMP_String_end_with$q_28 = function($a_rest) { - var self = this, suffixes; + Opal.def(self, '$end_with?', $String_end_with$ques$29 = function($a) { + var $post_args, suffixes, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - suffixes = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - suffixes[$arg_idx - 0] = arguments[$arg_idx]; - } + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + suffixes = $post_args;; + for (var i = 0, length = suffixes.length; i < length; i++) { - var suffix = Opal.const_get_relative($nesting, 'Opal').$coerce_to(suffixes[i], Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); + var suffix = $coerce_to(suffixes[i], $$($nesting, 'String'), 'to_str').$to_s(); if (self.length >= suffix.length && self.substr(self.length - suffix.length, suffix.length) == suffix) { @@ -7162,14 +7981,17 @@ Opal.modules["corelib/string"] = function(Opal) { } ; return false; - }, TMP_String_end_with$q_28.$$arity = -1); - Opal.alias(self, "eql?", "=="); - Opal.alias(self, "equal?", "==="); + }, $String_end_with$ques$29.$$arity = -1); + $alias(self, "equal?", "==="); - Opal.defn(self, '$gsub', TMP_String_gsub_29 = function $$gsub(pattern, replacement) { - var self = this, $iter = TMP_String_gsub_29.$$p, block = $iter || nil; + Opal.def(self, '$gsub', $String_gsub$30 = function $$gsub(pattern, replacement) { + var $iter = $String_gsub$30.$$p, block = $iter || nil, self = this; - if ($iter) TMP_String_gsub_29.$$p = null; + if ($iter) $String_gsub$30.$$p = null; + + + if ($iter) $String_gsub$30.$$p = null;; + ; if (replacement === undefined && block === nil) { return self.$enum_for("gsub", pattern); @@ -7178,12 +8000,13 @@ Opal.modules["corelib/string"] = function(Opal) { var result = '', match_data = nil, index = 0, match, _replacement; if (pattern.$$is_regexp) { - pattern = new RegExp(pattern.source, 'gm' + (pattern.ignoreCase ? 'i' : '')); + pattern = Opal.global_multiline_regexp(pattern); } else { - pattern = Opal.const_get_relative($nesting, 'Opal').$coerce_to(pattern, Opal.const_get_relative($nesting, 'String'), "to_str"); + pattern = $coerce_to(pattern, $$($nesting, 'String'), 'to_str'); pattern = new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gm'); } + var lastIndex; while (true) { match = pattern.exec(self); @@ -7193,17 +8016,19 @@ Opal.modules["corelib/string"] = function(Opal) { break; } - match_data = Opal.const_get_relative($nesting, 'MatchData').$new(pattern, match); + match_data = $$($nesting, 'MatchData').$new(pattern, match); if (replacement === undefined) { + lastIndex = pattern.lastIndex; _replacement = block(match[0]); + pattern.lastIndex = lastIndex; // save and restore lastIndex } else if (replacement.$$is_hash) { _replacement = (replacement)['$[]'](match[0]).$to_s(); } else { if (!replacement.$$is_string) { - replacement = Opal.const_get_relative($nesting, 'Opal').$coerce_to(replacement, Opal.const_get_relative($nesting, 'String'), "to_str"); + replacement = $coerce_to(replacement, $$($nesting, 'String'), 'to_str'); } _replacement = replacement.replace(/([\\]+)([0-9+&`'])/g, function (original, slashes, command) { if (slashes.length % 2 === 0) { @@ -7226,7 +8051,7 @@ Opal.modules["corelib/string"] = function(Opal) { } if (pattern.lastIndex === match.index) { - result += (_replacement + self.slice(index, match.index + 1)) + result += (self.slice(index, match.index) + _replacement + (self[match.index] || "")); pattern.lastIndex += 1; } else { @@ -7236,37 +8061,39 @@ Opal.modules["corelib/string"] = function(Opal) { } ($gvars["~"] = match_data) - return result; - - }, TMP_String_gsub_29.$$arity = -2); + return self.$$cast(result); + ; + }, $String_gsub$30.$$arity = -2); - Opal.defn(self, '$hash', TMP_String_hash_30 = function $$hash() { + Opal.def(self, '$hash', $String_hash$31 = function $$hash() { var self = this; - return self.toString() - }, TMP_String_hash_30.$$arity = 0); + return self.toString(); + }, $String_hash$31.$$arity = 0); - Opal.defn(self, '$hex', TMP_String_hex_31 = function $$hex() { + Opal.def(self, '$hex', $String_hex$32 = function $$hex() { var self = this; return self.$to_i(16) - }, TMP_String_hex_31.$$arity = 0); + }, $String_hex$32.$$arity = 0); - Opal.defn(self, '$include?', TMP_String_include$q_32 = function(other) { + Opal.def(self, '$include?', $String_include$ques$33 = function(other) { var self = this; if (!other.$$is_string) { - (other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'String'), "to_str")) + other = $coerce_to(other, $$($nesting, 'String'), 'to_str'); } return self.indexOf(other) !== -1; - }, TMP_String_include$q_32.$$arity = 1); + }, $String_include$ques$33.$$arity = 1); - Opal.defn(self, '$index', TMP_String_index_33 = function $$index(search, offset) { + Opal.def(self, '$index', $String_index$34 = function $$index(search, offset) { var self = this; + ; + var index, match, regex; @@ -7274,7 +8101,7 @@ Opal.modules["corelib/string"] = function(Opal) { if (offset === undefined) { offset = 0; } else { - offset = Opal.const_get_relative($nesting, 'Opal').$coerce_to(offset, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + offset = $coerce_to(offset, $$($nesting, 'Integer'), 'to_int'); if (offset < 0) { offset += self.length; if (offset < 0) { @@ -7284,7 +8111,7 @@ Opal.modules["corelib/string"] = function(Opal) { } if (search.$$is_regexp) { - regex = new RegExp(search.source, 'gm' + (search.ignoreCase ? 'i' : '')); + regex = Opal.global_multiline_regexp(search); while (true) { match = regex.exec(self); if (match === null) { @@ -7293,14 +8120,14 @@ Opal.modules["corelib/string"] = function(Opal) { break; } if (match.index >= offset) { - ($gvars["~"] = Opal.const_get_relative($nesting, 'MatchData').$new(regex, match)) + ($gvars["~"] = $$($nesting, 'MatchData').$new(regex, match)) index = match.index; break; } regex.lastIndex = match.index + 1; } } else { - search = Opal.const_get_relative($nesting, 'Opal').$coerce_to(search, Opal.const_get_relative($nesting, 'String'), "to_str"); + search = $coerce_to(search, $$($nesting, 'String'), 'to_str'); if (search.length === 0 && offset > self.length) { index = -1; } else { @@ -7309,13 +8136,14 @@ Opal.modules["corelib/string"] = function(Opal) { } return index === -1 ? nil : index; + ; + }, $String_index$34.$$arity = -2); - }, TMP_String_index_33.$$arity = -2); - - Opal.defn(self, '$inspect', TMP_String_inspect_34 = function $$inspect() { + Opal.def(self, '$inspect', $String_inspect$35 = function $$inspect() { var self = this; + /* eslint-disable no-misleading-character-class */ var escapable = /[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g, meta = { '\u0007': '\\a', @@ -7330,52 +8158,57 @@ Opal.modules["corelib/string"] = function(Opal) { '\\': '\\\\' }, escaped = self.replace(escapable, function (chr) { - return meta[chr] || '\\u' + ('0000' + chr.charCodeAt(0).toString(16).toUpperCase()).slice(-4); + if (meta[chr]) return meta[chr]; + chr = chr.charCodeAt(0); + if (chr <= 0xff && (self.encoding["$binary?"]() || self.internal_encoding["$binary?"]())) { + return '\\x' + ('00' + chr.toString(16).toUpperCase()).slice(-2); + } else { + return '\\u' + ('0000' + chr.toString(16).toUpperCase()).slice(-4); + } }); return '"' + escaped.replace(/\#[\$\@\{]/g, '\\$&') + '"'; + /* eslint-enable no-misleading-character-class */ - }, TMP_String_inspect_34.$$arity = 0); + }, $String_inspect$35.$$arity = 0); - Opal.defn(self, '$intern', TMP_String_intern_35 = function $$intern() { + Opal.def(self, '$intern', $String_intern$36 = function $$intern() { var self = this; - return self - }, TMP_String_intern_35.$$arity = 0); + return self.toString(); + }, $String_intern$36.$$arity = 0); - Opal.defn(self, '$lines', TMP_String_lines_36 = function $$lines(separator) { - var self = this, $iter = TMP_String_lines_36.$$p, block = $iter || nil, e = nil; + Opal.def(self, '$lines', $String_lines$37 = function $$lines(separator) { + var $iter = $String_lines$37.$$p, block = $iter || nil, self = this, e = nil; if ($gvars["/"] == null) $gvars["/"] = nil; + if ($iter) $String_lines$37.$$p = null; + + + if ($iter) $String_lines$37.$$p = null;; + if (separator == null) { separator = $gvars["/"]; - } - if ($iter) TMP_String_lines_36.$$p = null; - + }; e = $send(self, 'each_line', [separator], block.$to_proc()); if ($truthy(block)) { return self - } else { + } else { return e.$to_a() }; - }, TMP_String_lines_36.$$arity = -1); - - Opal.defn(self, '$length', TMP_String_length_37 = function $$length() { - var self = this; - - return self.length - }, TMP_String_length_37.$$arity = 0); + }, $String_lines$37.$$arity = -1); - Opal.defn(self, '$ljust', TMP_String_ljust_38 = function $$ljust(width, padstr) { + Opal.def(self, '$ljust', $String_ljust$38 = function $$ljust(width, padstr) { var self = this; + + if (padstr == null) { padstr = " "; - } - - width = Opal.const_get_relative($nesting, 'Opal').$coerce_to(width, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - padstr = Opal.const_get_relative($nesting, 'Opal').$coerce_to(padstr, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); + }; + width = $coerce_to(width, $$($nesting, 'Integer'), 'to_int'); + padstr = ($coerce_to(padstr, $$($nesting, 'String'), 'to_str')).$to_s(); if ($truthy(padstr['$empty?']())) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "zero width padding")}; + self.$raise($$($nesting, 'ArgumentError'), "zero width padding")}; if ($truthy(width <= self.length)) { return self}; @@ -7388,43 +8221,71 @@ Opal.modules["corelib/string"] = function(Opal) { result += padstr; } - return self + result.slice(0, width); + return self.$$cast(self + result.slice(0, width)); ; - }, TMP_String_ljust_38.$$arity = -2); + }, $String_ljust$38.$$arity = -2); - Opal.defn(self, '$lstrip', TMP_String_lstrip_39 = function $$lstrip() { + Opal.def(self, '$lstrip', $String_lstrip$39 = function $$lstrip() { var self = this; - return self.replace(/^\s*/, '') - }, TMP_String_lstrip_39.$$arity = 0); + return self.replace(/^\s*/, ''); + }, $String_lstrip$39.$$arity = 0); - Opal.defn(self, '$ascii_only?', TMP_String_ascii_only$q_40 = function() { + Opal.def(self, '$ascii_only?', $String_ascii_only$ques$40 = function() { var self = this; - return self.match(/[ -~\n]*/)[0] === self - }, TMP_String_ascii_only$q_40.$$arity = 0); + + if (!self.encoding.ascii) return false; + return /^[\x00-\x7F]*$/.test(self); + + }, $String_ascii_only$ques$40.$$arity = 0); - Opal.defn(self, '$match', TMP_String_match_41 = function $$match(pattern, pos) { - var $a, self = this, $iter = TMP_String_match_41.$$p, block = $iter || nil; + Opal.def(self, '$match', $String_match$41 = function $$match(pattern, pos) { + var $iter = $String_match$41.$$p, block = $iter || nil, self = this, $ret_or_1 = nil; - if ($iter) TMP_String_match_41.$$p = null; + if ($iter) $String_match$41.$$p = null; - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'String')['$==='](pattern)) ? $a : pattern['$respond_to?']("to_str")))) { - pattern = Opal.const_get_relative($nesting, 'Regexp').$new(pattern.$to_str())}; - if ($truthy(Opal.const_get_relative($nesting, 'Regexp')['$==='](pattern))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "wrong argument type " + (pattern.$class()) + " (expected Regexp)") + + if ($iter) $String_match$41.$$p = null;; + ; + if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'String')['$==='](pattern)))) { + return $ret_or_1 + } else { + return pattern['$respond_to?']("to_str") + }; return nil; })())) { + pattern = $$($nesting, 'Regexp').$new(pattern.$to_str())}; + if ($truthy($$($nesting, 'Regexp')['$==='](pattern))) { + } else { + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (pattern.$class()) + " (expected Regexp)") }; return $send(pattern, 'match', [self, pos], block.$to_proc()); - }, TMP_String_match_41.$$arity = -2); + }, $String_match$41.$$arity = -2); + + Opal.def(self, '$match?', $String_match$ques$42 = function(pattern, pos) { + var self = this, $ret_or_2 = nil; + + + ; + if ($truthy((function() {if ($truthy(($ret_or_2 = $$($nesting, 'String')['$==='](pattern)))) { + return $ret_or_2 + } else { + return pattern['$respond_to?']("to_str") + }; return nil; })())) { + pattern = $$($nesting, 'Regexp').$new(pattern.$to_str())}; + if ($truthy($$($nesting, 'Regexp')['$==='](pattern))) { + } else { + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + (pattern.$class()) + " (expected Regexp)") + }; + return pattern['$match?'](self, pos); + }, $String_match$ques$42.$$arity = -2); - Opal.defn(self, '$next', TMP_String_next_42 = function $$next() { + Opal.def(self, '$next', $String_next$43 = function $$next() { var self = this; var i = self.length; if (i === 0) { - return ''; + return self.$$cast(''); } var result = self; var first_alphanum_char_index = self.search(/[a-zA-Z0-9]/); @@ -7486,11 +8347,11 @@ Opal.modules["corelib/string"] = function(Opal) { break; } } - return result; + return self.$$cast(result); - }, TMP_String_next_42.$$arity = 0); + }, $String_next$43.$$arity = 0); - Opal.defn(self, '$oct', TMP_String_oct_43 = function $$oct() { + Opal.def(self, '$oct', $String_oct$44 = function $$oct() { var self = this; @@ -7533,15 +8394,22 @@ Opal.modules["corelib/string"] = function(Opal) { result = parseInt(string.replace(/_(?!_)/g, ''), radix); return isNaN(result) ? 0 : result; - }, TMP_String_oct_43.$$arity = 0); + }, $String_oct$44.$$arity = 0); - Opal.defn(self, '$ord', TMP_String_ord_44 = function $$ord() { + Opal.def(self, '$ord', $String_ord$45 = function $$ord() { var self = this; - return self.charCodeAt(0) - }, TMP_String_ord_44.$$arity = 0); + + if (typeof self.codePointAt === "function") { + return self.codePointAt(0); + } + else { + return self.charCodeAt(0); + } + + }, $String_ord$45.$$arity = 0); - Opal.defn(self, '$partition', TMP_String_partition_45 = function $$partition(sep) { + Opal.def(self, '$partition', $String_partition$46 = function $$partition(sep) { var self = this; @@ -7552,12 +8420,12 @@ Opal.modules["corelib/string"] = function(Opal) { if (m === null) { i = -1; } else { - Opal.const_get_relative($nesting, 'MatchData').$new(sep, m); + $$($nesting, 'MatchData').$new(sep, m); sep = m[0]; i = m.index; } } else { - sep = Opal.const_get_relative($nesting, 'Opal').$coerce_to(sep, Opal.const_get_relative($nesting, 'String'), "to_str"); + sep = $coerce_to(sep, $$($nesting, 'String'), 'to_str'); i = self.indexOf(sep); } @@ -7571,24 +8439,26 @@ Opal.modules["corelib/string"] = function(Opal) { self.slice(i + sep.length) ]; - }, TMP_String_partition_45.$$arity = 1); + }, $String_partition$46.$$arity = 1); - Opal.defn(self, '$reverse', TMP_String_reverse_46 = function $$reverse() { + Opal.def(self, '$reverse', $String_reverse$47 = function $$reverse() { var self = this; - return self.split('').reverse().join('') - }, TMP_String_reverse_46.$$arity = 0); + return self.split('').reverse().join(''); + }, $String_reverse$47.$$arity = 0); - Opal.defn(self, '$rindex', TMP_String_rindex_47 = function $$rindex(search, offset) { + Opal.def(self, '$rindex', $String_rindex$48 = function $$rindex(search, offset) { var self = this; + ; + var i, m, r, _m; if (offset === undefined) { offset = self.length; } else { - offset = Opal.const_get_relative($nesting, 'Opal').$coerce_to(offset, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + offset = $coerce_to(offset, $$($nesting, 'Integer'), 'to_int'); if (offset < 0) { offset += self.length; if (offset < 0) { @@ -7599,7 +8469,7 @@ Opal.modules["corelib/string"] = function(Opal) { if (search.$$is_regexp) { m = null; - r = new RegExp(search.source, 'gm' + (search.ignoreCase ? 'i' : '')); + r = Opal.global_multiline_regexp(search); while (true) { _m = r.exec(self); if (_m === null || _m.index > offset) { @@ -7612,29 +8482,30 @@ Opal.modules["corelib/string"] = function(Opal) { ($gvars["~"] = nil) i = -1; } else { - Opal.const_get_relative($nesting, 'MatchData').$new(r, m); + $$($nesting, 'MatchData').$new(r, m); i = m.index; } } else { - search = Opal.const_get_relative($nesting, 'Opal').$coerce_to(search, Opal.const_get_relative($nesting, 'String'), "to_str"); + search = $coerce_to(search, $$($nesting, 'String'), 'to_str'); i = self.lastIndexOf(search, offset); } return i === -1 ? nil : i; + ; + }, $String_rindex$48.$$arity = -2); - }, TMP_String_rindex_47.$$arity = -2); - - Opal.defn(self, '$rjust', TMP_String_rjust_48 = function $$rjust(width, padstr) { + Opal.def(self, '$rjust', $String_rjust$49 = function $$rjust(width, padstr) { var self = this; + + if (padstr == null) { padstr = " "; - } - - width = Opal.const_get_relative($nesting, 'Opal').$coerce_to(width, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - padstr = Opal.const_get_relative($nesting, 'Opal').$coerce_to(padstr, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); + }; + width = $coerce_to(width, $$($nesting, 'Integer'), 'to_int'); + padstr = ($coerce_to(padstr, $$($nesting, 'String'), 'to_str')).$to_s(); if ($truthy(padstr['$empty?']())) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "zero width padding")}; + self.$raise($$($nesting, 'ArgumentError'), "zero width padding")}; if ($truthy(width <= self.length)) { return self}; @@ -7643,11 +8514,11 @@ Opal.modules["corelib/string"] = function(Opal) { result = Array(patterns + 1).join(padstr), remaining = chars - result.length; - return result + padstr.slice(0, remaining) + self; + return self.$$cast(result + padstr.slice(0, remaining) + self); ; - }, TMP_String_rjust_48.$$arity = -2); + }, $String_rjust$49.$$arity = -2); - Opal.defn(self, '$rpartition', TMP_String_rpartition_49 = function $$rpartition(sep) { + Opal.def(self, '$rpartition', $String_rpartition$50 = function $$rpartition(sep) { var self = this; @@ -7655,7 +8526,7 @@ Opal.modules["corelib/string"] = function(Opal) { if (sep.$$is_regexp) { m = null; - r = new RegExp(sep.source, 'gm' + (sep.ignoreCase ? 'i' : '')); + r = Opal.global_multiline_regexp(sep); while (true) { _m = r.exec(self); @@ -7669,13 +8540,13 @@ Opal.modules["corelib/string"] = function(Opal) { if (m === null) { i = -1; } else { - Opal.const_get_relative($nesting, 'MatchData').$new(r, m); + $$($nesting, 'MatchData').$new(r, m); sep = m[0]; i = m.index; } } else { - sep = Opal.const_get_relative($nesting, 'Opal').$coerce_to(sep, Opal.const_get_relative($nesting, 'String'), "to_str"); + sep = $coerce_to(sep, $$($nesting, 'String'), 'to_str'); i = self.lastIndexOf(sep); } @@ -7689,55 +8560,71 @@ Opal.modules["corelib/string"] = function(Opal) { self.slice(i + sep.length) ]; - }, TMP_String_rpartition_49.$$arity = 1); + }, $String_rpartition$50.$$arity = 1); - Opal.defn(self, '$rstrip', TMP_String_rstrip_50 = function $$rstrip() { + Opal.def(self, '$rstrip', $String_rstrip$51 = function $$rstrip() { var self = this; - return self.replace(/[\s\u0000]*$/, '') - }, TMP_String_rstrip_50.$$arity = 0); + return self.replace(/[\s\u0000]*$/, ''); + }, $String_rstrip$51.$$arity = 0); - Opal.defn(self, '$scan', TMP_String_scan_51 = function $$scan(pattern) { - var self = this, $iter = TMP_String_scan_51.$$p, block = $iter || nil; + Opal.def(self, '$scan', $String_scan$52 = function $$scan(pattern, $kwargs) { + var $iter = $String_scan$52.$$p, block = $iter || nil, no_matchdata, self = this; - if ($iter) TMP_String_scan_51.$$p = null; + if ($iter) $String_scan$52.$$p = null; + + + if ($iter) $String_scan$52.$$p = null;; + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + no_matchdata = $kwargs.$$smap["no_matchdata"]; + if (no_matchdata == null) { + no_matchdata = false + }; var result = [], match_data = nil, match; if (pattern.$$is_regexp) { - pattern = new RegExp(pattern.source, 'gm' + (pattern.ignoreCase ? 'i' : '')); + pattern = Opal.global_multiline_regexp(pattern); } else { - pattern = Opal.const_get_relative($nesting, 'Opal').$coerce_to(pattern, Opal.const_get_relative($nesting, 'String'), "to_str"); + pattern = $coerce_to(pattern, $$($nesting, 'String'), 'to_str'); pattern = new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'), 'gm'); } while ((match = pattern.exec(self)) != null) { - match_data = Opal.const_get_relative($nesting, 'MatchData').$new(pattern, match); + match_data = $$($nesting, 'MatchData').$new(pattern, match); if (block === nil) { match.length == 1 ? result.push(match[0]) : result.push((match_data).$captures()); } else { - match.length == 1 ? block(match[0]) : block.call(self, (match_data).$captures()); + match.length == 1 ? Opal.yield1(block, match[0]) : Opal.yield1(block, (match_data).$captures()); } if (pattern.lastIndex === match.index) { pattern.lastIndex += 1; } } - ($gvars["~"] = match_data) + if (!no_matchdata) ($gvars["~"] = match_data); return (block !== nil ? self : result); + ; + }, $String_scan$52.$$arity = -2); + $alias(self, "slice", "[]"); - }, TMP_String_scan_51.$$arity = 1); - Opal.alias(self, "size", "length"); - Opal.alias(self, "slice", "[]"); - - Opal.defn(self, '$split', TMP_String_split_52 = function $$split(pattern, limit) { - var $a, self = this; + Opal.def(self, '$split', $String_split$53 = function $$split(pattern, limit) { + var self = this, $ret_or_3 = nil; if ($gvars[";"] == null) $gvars[";"] = nil; + ; + ; + if (self.length === 0) { return []; } @@ -7745,14 +8632,18 @@ Opal.modules["corelib/string"] = function(Opal) { if (limit === undefined) { limit = 0; } else { - limit = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](limit, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + limit = $$($nesting, 'Opal')['$coerce_to!'](limit, $$($nesting, 'Integer'), "to_int"); if (limit === 1) { return [self]; } } if (pattern === undefined || pattern === nil) { - pattern = ($truthy($a = $gvars[";"]) ? $a : " "); + pattern = (function() {if ($truthy(($ret_or_3 = $gvars[";"]))) { + return $ret_or_3 + } else { + return " " + }; return nil; })(); } var result = [], @@ -7762,9 +8653,9 @@ Opal.modules["corelib/string"] = function(Opal) { i, ii; if (pattern.$$is_regexp) { - pattern = new RegExp(pattern.source, 'gm' + (pattern.ignoreCase ? 'i' : '')); + pattern = Opal.global_multiline_regexp(pattern); } else { - pattern = Opal.const_get_relative($nesting, 'Opal').$coerce_to(pattern, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); + pattern = $coerce_to(pattern, $$($nesting, 'String'), 'to_str').$to_s(); if (pattern === ' ') { pattern = /\s+/gm; string = string.replace(/^\s+/, ''); @@ -7776,17 +8667,24 @@ Opal.modules["corelib/string"] = function(Opal) { result = string.split(pattern); if (result.length === 1 && result[0] === string) { - return result; + return [self.$$cast(result[0])]; } while ((i = result.indexOf(undefined)) !== -1) { result.splice(i, 1); } + function castResult() { + for (i = 0; i < result.length; i++) { + result[i] = self.$$cast(result[i]); + } + } + if (limit === 0) { while (result[result.length - 1] === '') { result.length -= 1; } + castResult(); return result; } @@ -7798,15 +8696,18 @@ Opal.modules["corelib/string"] = function(Opal) { result.push(''); } } + castResult(); return result; } if (match !== null && match[0] === '') { result.splice(limit - 1, result.length - 1, result.slice(limit - 1).join('')); + castResult(); return result; } if (limit >= result.length) { + castResult(); return result; } @@ -7820,123 +8721,145 @@ Opal.modules["corelib/string"] = function(Opal) { match = pattern.exec(string); } result.splice(limit - 1, result.length - 1, string.slice(index)); + castResult(); return result; + ; + }, $String_split$53.$$arity = -1); - }, TMP_String_split_52.$$arity = -1); - - Opal.defn(self, '$squeeze', TMP_String_squeeze_53 = function $$squeeze($a_rest) { - var self = this, sets; + Opal.def(self, '$squeeze', $String_squeeze$54 = function $$squeeze($a) { + var $post_args, sets, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - sets = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - sets[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + sets = $post_args;; if (sets.length === 0) { - return self.replace(/(.)\1+/g, '$1'); + return self.$$cast(self.replace(/(.)\1+/g, '$1')); } var char_class = char_class_from_char_sets(sets); if (char_class === null) { return self; } - return self.replace(new RegExp('(' + char_class + ')\\1+', 'g'), '$1'); - - }, TMP_String_squeeze_53.$$arity = -1); + return self.$$cast(self.replace(new RegExp('(' + char_class + ')\\1+', 'g'), '$1')); + ; + }, $String_squeeze$54.$$arity = -1); - Opal.defn(self, '$start_with?', TMP_String_start_with$q_54 = function($a_rest) { - var self = this, prefixes; + Opal.def(self, '$start_with?', $String_start_with$ques$55 = function($a) { + var $post_args, prefixes, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - prefixes = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - prefixes[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + prefixes = $post_args;; for (var i = 0, length = prefixes.length; i < length; i++) { - var prefix = Opal.const_get_relative($nesting, 'Opal').$coerce_to(prefixes[i], Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); + if (prefixes[i].$$is_regexp) { + var regexp = prefixes[i]; + var match = regexp.exec(self); - if (self.indexOf(prefix) === 0) { - return true; + if (match != null && match.index === 0) { + ($gvars["~"] = $$($nesting, 'MatchData').$new(regexp, match)); + return true; + } else { + ($gvars["~"] = nil) + } + } else { + var prefix = $coerce_to(prefixes[i], $$($nesting, 'String'), 'to_str').$to_s(); + + if (self.indexOf(prefix) === 0) { + return true; + } } } return false; + ; + }, $String_start_with$ques$55.$$arity = -1); - }, TMP_String_start_with$q_54.$$arity = -1); - - Opal.defn(self, '$strip', TMP_String_strip_55 = function $$strip() { + Opal.def(self, '$strip', $String_strip$56 = function $$strip() { var self = this; - return self.replace(/^\s*/, '').replace(/[\s\u0000]*$/, '') - }, TMP_String_strip_55.$$arity = 0); + return self.replace(/^\s*/, '').replace(/[\s\u0000]*$/, ''); + }, $String_strip$56.$$arity = 0); - Opal.defn(self, '$sub', TMP_String_sub_56 = function $$sub(pattern, replacement) { - var self = this, $iter = TMP_String_sub_56.$$p, block = $iter || nil; + Opal.def(self, '$sub', $String_sub$57 = function $$sub(pattern, replacement) { + var $iter = $String_sub$57.$$p, block = $iter || nil, self = this; - if ($iter) TMP_String_sub_56.$$p = null; + if ($iter) $String_sub$57.$$p = null; + + + if ($iter) $String_sub$57.$$p = null;; + ; if (!pattern.$$is_regexp) { - pattern = Opal.const_get_relative($nesting, 'Opal').$coerce_to(pattern, Opal.const_get_relative($nesting, 'String'), "to_str"); + pattern = $coerce_to(pattern, $$($nesting, 'String'), 'to_str'); pattern = new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')); } - var result = pattern.exec(self); + var result, match = pattern.exec(self); - if (result === null) { + if (match === null) { ($gvars["~"] = nil) - return self.toString(); - } + result = self.toString(); + } else { + $$($nesting, 'MatchData').$new(pattern, match) - Opal.const_get_relative($nesting, 'MatchData').$new(pattern, result) + if (replacement === undefined) { - if (replacement === undefined) { - if (block === nil) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "wrong number of arguments (1 for 2)") - } - return self.slice(0, result.index) + block(result[0]) + self.slice(result.index + result[0].length); - } + if (block === nil) { + self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (1 for 2)") + } + result = self.slice(0, match.index) + block(match[0]) + self.slice(match.index + match[0].length); - if (replacement.$$is_hash) { - return self.slice(0, result.index) + (replacement)['$[]'](result[0]).$to_s() + self.slice(result.index + result[0].length); - } + } else if (replacement.$$is_hash) { - replacement = Opal.const_get_relative($nesting, 'Opal').$coerce_to(replacement, Opal.const_get_relative($nesting, 'String'), "to_str"); + result = self.slice(0, match.index) + (replacement)['$[]'](match[0]).$to_s() + self.slice(match.index + match[0].length); - replacement = replacement.replace(/([\\]+)([0-9+&`'])/g, function (original, slashes, command) { - if (slashes.length % 2 === 0) { - return original; - } - switch (command) { - case "+": - for (var i = result.length - 1; i > 0; i--) { - if (result[i] !== undefined) { - return slashes.slice(1) + result[i]; + } else { + + replacement = $coerce_to(replacement, $$($nesting, 'String'), 'to_str'); + + replacement = replacement.replace(/([\\]+)([0-9+&`'])/g, function (original, slashes, command) { + if (slashes.length % 2 === 0) { + return original; } - } - return ''; - case "&": return slashes.slice(1) + result[0]; - case "`": return slashes.slice(1) + self.slice(0, result.index); - case "'": return slashes.slice(1) + self.slice(result.index + result[0].length); - default: return slashes.slice(1) + (result[command] || ''); + switch (command) { + case "+": + for (var i = match.length - 1; i > 0; i--) { + if (match[i] !== undefined) { + return slashes.slice(1) + match[i]; + } + } + return ''; + case "&": return slashes.slice(1) + match[0]; + case "`": return slashes.slice(1) + self.slice(0, match.index); + case "'": return slashes.slice(1) + self.slice(match.index + match[0].length); + default: return slashes.slice(1) + (match[command] || ''); + } + }).replace(/\\\\/g, '\\'); + + result = self.slice(0, match.index) + replacement + self.slice(match.index + match[0].length); } - }).replace(/\\\\/g, '\\'); + } - return self.slice(0, result.index) + replacement + self.slice(result.index + result[0].length); - - }, TMP_String_sub_56.$$arity = -2); - Opal.alias(self, "succ", "next"); + return self.$$cast(result); + ; + }, $String_sub$57.$$arity = -2); + $alias(self, "succ", "next"); - Opal.defn(self, '$sum', TMP_String_sum_57 = function $$sum(n) { + Opal.def(self, '$sum', $String_sum$58 = function $$sum(n) { var self = this; + + if (n == null) { n = 16; - } + }; - n = Opal.const_get_relative($nesting, 'Opal').$coerce_to(n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); var result = 0, length = self.length, @@ -7951,10 +8874,10 @@ Opal.modules["corelib/string"] = function(Opal) { } return result & (Math.pow(2, n) - 1); + ; + }, $String_sum$58.$$arity = -1); - }, TMP_String_sum_57.$$arity = -1); - - Opal.defn(self, '$swapcase', TMP_String_swapcase_58 = function $$swapcase() { + Opal.def(self, '$swapcase', $String_swapcase$59 = function $$swapcase() { var self = this; @@ -7968,9 +8891,9 @@ Opal.modules["corelib/string"] = function(Opal) { return self.$class().$new(str); - }, TMP_String_swapcase_58.$$arity = 0); + }, $String_swapcase$59.$$arity = 0); - Opal.defn(self, '$to_f', TMP_String_to_f_59 = function $$to_f() { + Opal.def(self, '$to_f', $String_to_f$60 = function $$to_f() { var self = this; @@ -7987,21 +8910,23 @@ Opal.modules["corelib/string"] = function(Opal) { return result; } - }, TMP_String_to_f_59.$$arity = 0); + }, $String_to_f$60.$$arity = 0); - Opal.defn(self, '$to_i', TMP_String_to_i_60 = function $$to_i(base) { + Opal.def(self, '$to_i', $String_to_i$61 = function $$to_i(base) { var self = this; + + if (base == null) { base = 10; - } + }; var result, string = self.toLowerCase(), - radix = Opal.const_get_relative($nesting, 'Opal').$coerce_to(base, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + radix = $coerce_to(base, $$($nesting, 'Integer'), 'to_int'); if (radix === 1 || radix < 0 || radix > 36) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid radix " + (radix)) + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid radix " + (radix)) } if (/^\s*_/.test(string)) { @@ -8050,49 +8975,66 @@ Opal.modules["corelib/string"] = function(Opal) { result = parseInt(string.replace(/_(?!_)/g, ''), radix); return isNaN(result) ? 0 : result; + ; + }, $String_to_i$61.$$arity = -1); - }, TMP_String_to_i_60.$$arity = -1); - - Opal.defn(self, '$to_proc', TMP_String_to_proc_62 = function $$to_proc() { - var TMP_61, self = this, sym = nil; + Opal.def(self, '$to_proc', $String_to_proc$62 = function $$to_proc() { + var $$63, $iter = $String_to_proc$62.$$p, $yield = $iter || nil, self = this, method_name = nil; + if ($iter) $String_to_proc$62.$$p = null; - sym = self.valueOf(); - return $send(self, 'proc', [], (TMP_61 = function($a_rest){var self = TMP_61.$$s || this, block, args; + method_name = $rb_plus("$", self.valueOf()); + return $send(self, 'proc', [], ($$63 = function($a){var self = $$63.$$s == null ? this : $$63.$$s, $iter = $$63.$$p, block = $iter || nil, $post_args, args; - block = TMP_61.$$p || nil; - if (block) TMP_61.$$p = null; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - + + + if ($iter) $$63.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if (args.length === 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no receiver given") + self.$raise($$($nesting, 'ArgumentError'), "no receiver given") } - var obj = args.shift(); - if (obj == null) obj = nil; - return Opal.send(obj, sym, args, block); - }, TMP_61.$$s = self, TMP_61.$$arity = -1, TMP_61)); - }, TMP_String_to_proc_62.$$arity = 0); + + var recv = args[0]; + + if (recv == null) recv = nil; + + var body = recv[method_name]; + + if (!body) { + return recv.$method_missing.apply(recv, args); + } + + if (typeof block === 'function') { + body.$$p = block; + } + + if (args.length === 1) { + return body.call(recv); + } else { + return body.apply(recv, args.slice(1)); + } + ;}, $$63.$$s = self, $$63.$$arity = -1, $$63)); + }, $String_to_proc$62.$$arity = 0); - Opal.defn(self, '$to_s', TMP_String_to_s_63 = function $$to_s() { + Opal.def(self, '$to_s', $String_to_s$64 = function $$to_s() { var self = this; - return self.toString() - }, TMP_String_to_s_63.$$arity = 0); - Opal.alias(self, "to_str", "to_s"); - Opal.alias(self, "to_sym", "intern"); + return self.toString(); + }, $String_to_s$64.$$arity = 0); + $alias(self, "to_str", "to_s"); + $alias(self, "to_sym", "intern"); - Opal.defn(self, '$tr', TMP_String_tr_64 = function $$tr(from, to) { + Opal.def(self, '$tr', $String_tr$65 = function $$tr(from, to) { var self = this; - from = Opal.const_get_relative($nesting, 'Opal').$coerce_to(from, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); - to = Opal.const_get_relative($nesting, 'Opal').$coerce_to(to, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); - + from = $coerce_to(from, $$($nesting, 'String'), 'to_str').$to_s(); + to = $coerce_to(to, $$($nesting, 'String'), 'to_str').$to_s(); + if (from.length == 0 || from === to) { return self; } @@ -8138,7 +9080,7 @@ Opal.modules["corelib/string"] = function(Opal) { start = last_from.charCodeAt(0); end = ch.charCodeAt(0); if (start > end) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") } for (c = start + 1; c < end; c++) { from_chars_expanded.push(String.fromCharCode(c)); @@ -8187,7 +9129,7 @@ Opal.modules["corelib/string"] = function(Opal) { start = last_to.charCodeAt(0); end = ch.charCodeAt(0); if (start > end) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") } for (c = start + 1; c < end; c++) { to_chars_expanded.push(String.fromCharCode(c)); @@ -8229,17 +9171,17 @@ Opal.modules["corelib/string"] = function(Opal) { new_str += (sub != null ? sub : ch); } } - return new_str; - ; - }, TMP_String_tr_64.$$arity = 2); + return self.$$cast(new_str); + + }, $String_tr$65.$$arity = 2); - Opal.defn(self, '$tr_s', TMP_String_tr_s_65 = function $$tr_s(from, to) { + Opal.def(self, '$tr_s', $String_tr_s$66 = function $$tr_s(from, to) { var self = this; - from = Opal.const_get_relative($nesting, 'Opal').$coerce_to(from, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); - to = Opal.const_get_relative($nesting, 'Opal').$coerce_to(to, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s(); - + from = $coerce_to(from, $$($nesting, 'String'), 'to_str').$to_s(); + to = $coerce_to(to, $$($nesting, 'String'), 'to_str').$to_s(); + if (from.length == 0) { return self; } @@ -8285,7 +9227,7 @@ Opal.modules["corelib/string"] = function(Opal) { start = last_from.charCodeAt(0); end = ch.charCodeAt(0); if (start > end) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") } for (c = start + 1; c < end; c++) { from_chars_expanded.push(String.fromCharCode(c)); @@ -8334,7 +9276,7 @@ Opal.modules["corelib/string"] = function(Opal) { start = last_from.charCodeAt(0); end = ch.charCodeAt(0); if (start > end) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (String.fromCharCode(start)) + "-" + (String.fromCharCode(end)) + "\" in string transliteration") } for (c = start + 1; c < end; c++) { to_chars_expanded.push(String.fromCharCode(c)); @@ -8394,32 +9336,36 @@ Opal.modules["corelib/string"] = function(Opal) { } } } - return new_str; - ; - }, TMP_String_tr_s_65.$$arity = 2); + return self.$$cast(new_str); + + }, $String_tr_s$66.$$arity = 2); - Opal.defn(self, '$upcase', TMP_String_upcase_66 = function $$upcase() { + Opal.def(self, '$upcase', $String_upcase$67 = function $$upcase() { var self = this; - return self.toUpperCase() - }, TMP_String_upcase_66.$$arity = 0); + return self.$$cast(self.toUpperCase()); + }, $String_upcase$67.$$arity = 0); - Opal.defn(self, '$upto', TMP_String_upto_67 = function $$upto(stop, excl) { - var self = this, $iter = TMP_String_upto_67.$$p, block = $iter || nil; + Opal.def(self, '$upto', $String_upto$68 = function $$upto(stop, excl) { + var $iter = $String_upto$68.$$p, block = $iter || nil, self = this; + if ($iter) $String_upto$68.$$p = null; + + + if ($iter) $String_upto$68.$$p = null;; + if (excl == null) { excl = false; - } - if ($iter) TMP_String_upto_67.$$p = null; - + }; if ((block !== nil)) { - } else { + } else { return self.$enum_for("upto", stop, excl) }; - stop = Opal.const_get_relative($nesting, 'Opal').$coerce_to(stop, Opal.const_get_relative($nesting, 'String'), "to_str"); var a, b, s = self.toString(); + stop = $coerce_to(stop, $$($nesting, 'String'), 'to_str'); + if (s.length === 1 && stop.length === 1) { a = s.charCodeAt(0); @@ -8465,7 +9411,7 @@ Opal.modules["corelib/string"] = function(Opal) { } return self; ; - }, TMP_String_upto_67.$$arity = -2); + }, $String_upto$68.$$arity = -2); function char_class_from_char_sets(sets) { function explode_sequences_in_character_set(set) { @@ -8482,7 +9428,7 @@ Opal.modules["corelib/string"] = function(Opal) { char_code_from = set.charCodeAt(i - 1); char_code_upto = set.charCodeAt(i + 1); if (char_code_from > char_code_upto) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid range \"" + (char_code_from) + "-" + (char_code_upto) + "\" in string transliteration") + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid range \"" + (char_code_from) + "-" + (char_code_upto) + "\" in string transliteration") } for (char_code = char_code_from + 1; char_code < char_code_upto + 1; char_code++) { result += String.fromCharCode(char_code); @@ -8518,7 +9464,7 @@ Opal.modules["corelib/string"] = function(Opal) { neg_intersection = ''; for (i = 0, len = sets.length; i < len; i++) { - set = Opal.const_get_relative($nesting, 'Opal').$coerce_to(sets[i], Opal.const_get_relative($nesting, 'String'), "to_str"); + set = $coerce_to(sets[i], $$($nesting, 'String'), 'to_str'); neg = (set.charAt(0) === '^' && set.length > 1); set = explode_sequences_in_character_set(neg ? set.slice(1) : set); if (neg) { @@ -8541,61 +9487,104 @@ Opal.modules["corelib/string"] = function(Opal) { } if (pos_intersection.length > 0) { - return '[' + Opal.const_get_relative($nesting, 'Regexp').$escape(pos_intersection) + ']'; + return '[' + $$($nesting, 'Regexp').$escape(pos_intersection) + ']'; } if (neg_intersection.length > 0) { - return '[^' + Opal.const_get_relative($nesting, 'Regexp').$escape(neg_intersection) + ']'; + return '[^' + $$($nesting, 'Regexp').$escape(neg_intersection) + ']'; } return null; } ; - Opal.defn(self, '$instance_variables', TMP_String_instance_variables_68 = function $$instance_variables() { + Opal.def(self, '$instance_variables', $String_instance_variables$69 = function $$instance_variables() { var self = this; return [] - }, TMP_String_instance_variables_68.$$arity = 0); - Opal.defs(self, '$_load', TMP_String__load_69 = function $$_load($a_rest) { - var self = this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return $send(self, 'new', Opal.to_a(args)) - }, TMP_String__load_69.$$arity = -1); - return (Opal.defn(self, '$unpack', TMP_String_unpack_70 = function $$unpack(pattern) { - var self = this, $case = nil; + }, $String_instance_variables$69.$$arity = 0); + Opal.defs(self, '$_load', $String__load$70 = function $$_load($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send(self, 'new', Opal.to_a(args)); + }, $String__load$70.$$arity = -1); + + Opal.def(self, '$unicode_normalize', $String_unicode_normalize$71 = function $$unicode_normalize(form) { + var self = this; - function stringToBytes(string) { - var i, - singleByte, - l = string.length, - result = []; + if (form == null) { + form = "nfc"; + }; + if ($truthy(["nfc", "nfd", "nfkc", "nfkd"]['$include?'](form))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "" + "Invalid normalization form " + (form)) + }; + return self.normalize(form.$upcase()); + }, $String_unicode_normalize$71.$$arity = -1); + + Opal.def(self, '$unicode_normalized?', $String_unicode_normalized$ques$72 = function(form) { + var self = this; - for (i = 0; i < l; i++) { - singleByte = string.charCodeAt(i); - result.push(singleByte); - } - return result; - } - ; - return (function() {$case = pattern; - if ("U*"['$===']($case) || "C*"['$===']($case)) {return stringToBytes(self);} - else {return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError'))}})(); - }, TMP_String_unpack_70.$$arity = 1), nil) && 'unpack'; + + + if (form == null) { + form = "nfc"; + }; + return self.$unicode_normalize(form)['$=='](self); + }, $String_unicode_normalized$ques$72.$$arity = -1); + + Opal.def(self, '$unpack', $String_unpack$73 = function $$unpack(format) { + var self = this; + + return self.$raise("To use String#unpack, you must first require 'corelib/string/unpack'.") + }, $String_unpack$73.$$arity = 1); + + Opal.def(self, '$unpack1', $String_unpack1$74 = function $$unpack1(format) { + var self = this; + + return self.$raise("To use String#unpack1, you must first require 'corelib/string/unpack'.") + }, $String_unpack1$74.$$arity = 1); + + Opal.def(self, '$freeze', $String_freeze$75 = function $$freeze() { + var self = this; + + + if (typeof self === 'string') return self; + self.$$frozen = true; + return self; + + }, $String_freeze$75.$$arity = 0); + $alias(self, "+@", "dup"); + + Opal.def(self, '$-@', $String_$minus$$76 = function() { + var self = this; + + + if (typeof self === 'string') return self; + if (self.$$frozen === true) return self; + if (self.encoding.name == 'UTF-8' && self.internal_encoding.name == 'UTF-8') return self.toString(); + return self.$dup().$freeze(); + + }, $String_$minus$$76.$$arity = 0); + + Opal.def(self, '$frozen?', $String_frozen$ques$77 = function() { + var self = this; + + return typeof self === 'string' || self.$$frozen === true; + }, $String_frozen$ques$77.$$arity = 0); + return $$($nesting, 'Opal').$pristine(self, "initialize"); })($nesting[0], String, $nesting); - return Opal.const_set($nesting[0], 'Symbol', Opal.const_get_relative($nesting, 'String')); + return Opal.const_set($nesting[0], 'Symbol', $$($nesting, 'String')); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/enumerable"] = function(Opal) { +Opal.modules["corelib/enumerable"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } @@ -8614,108 +9603,161 @@ Opal.modules["corelib/enumerable"] = function(Opal) { function $rb_divide(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $send = Opal.send, $truthy = Opal.truthy, $falsy = Opal.falsy, $hash2 = Opal.hash2; + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $falsy = Opal.falsy, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $module = Opal.module, $send = Opal.send, $alias = Opal.alias, $hash2 = Opal.hash2, $lambda = Opal.lambda; - Opal.add_stubs(['$each', '$destructure', '$to_enum', '$enumerator_size', '$new', '$yield', '$raise', '$slice_when', '$!', '$enum_for', '$flatten', '$map', '$warn', '$proc', '$==', '$nil?', '$respond_to?', '$coerce_to!', '$>', '$*', '$coerce_to', '$try_convert', '$<', '$+', '$-', '$ceil', '$/', '$size', '$===', '$<<', '$[]', '$[]=', '$inspect', '$__send__', '$<=>', '$first', '$reverse', '$sort', '$to_proc', '$compare', '$call', '$dup', '$to_a', '$lambda', '$sort!', '$map!', '$has_key?', '$values', '$zip']); + Opal.add_stubs(['$each', '$public_send', '$destructure', '$to_enum', '$enumerator_size', '$new', '$yield', '$raise', '$slice_when', '$!', '$enum_for', '$flatten', '$map', '$warn', '$proc', '$==', '$nil?', '$respond_to?', '$coerce_to!', '$>', '$*', '$try_convert', '$<', '$+', '$-', '$ceil', '$/', '$size', '$select', '$to_proc', '$__send__', '$length', '$<=', '$[]', '$push', '$<<', '$[]=', '$===', '$inspect', '$<=>', '$first', '$reverse', '$sort', '$take', '$sort_by', '$compare', '$call', '$dup', '$to_a', '$sort!', '$map!', '$key?', '$values', '$transform_values', '$group_by', '$to_h', '$coerce_to?', '$class', '$zip']); return (function($base, $parent_nesting) { - var $Enumerable, self = $Enumerable = $module($base, 'Enumerable'); + var self = $module($base, 'Enumerable'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerable_all$q_1, TMP_Enumerable_any$q_4, TMP_Enumerable_chunk_7, TMP_Enumerable_chunk_while_10, TMP_Enumerable_collect_12, TMP_Enumerable_collect_concat_14, TMP_Enumerable_count_17, TMP_Enumerable_cycle_21, TMP_Enumerable_detect_23, TMP_Enumerable_drop_25, TMP_Enumerable_drop_while_26, TMP_Enumerable_each_cons_27, TMP_Enumerable_each_entry_29, TMP_Enumerable_each_slice_31, TMP_Enumerable_each_with_index_33, TMP_Enumerable_each_with_object_35, TMP_Enumerable_entries_37, TMP_Enumerable_find_all_38, TMP_Enumerable_find_index_40, TMP_Enumerable_first_45, TMP_Enumerable_grep_46, TMP_Enumerable_grep_v_47, TMP_Enumerable_group_by_48, TMP_Enumerable_include$q_51, TMP_Enumerable_inject_52, TMP_Enumerable_lazy_54, TMP_Enumerable_enumerator_size_55, TMP_Enumerable_max_56, TMP_Enumerable_max_by_57, TMP_Enumerable_min_59, TMP_Enumerable_min_by_60, TMP_Enumerable_minmax_62, TMP_Enumerable_minmax_by_64, TMP_Enumerable_none$q_65, TMP_Enumerable_one$q_68, TMP_Enumerable_partition_71, TMP_Enumerable_reject_73, TMP_Enumerable_reverse_each_75, TMP_Enumerable_slice_before_77, TMP_Enumerable_slice_after_79, TMP_Enumerable_slice_when_82, TMP_Enumerable_sort_84, TMP_Enumerable_sort_by_86, TMP_Enumerable_sum_91, TMP_Enumerable_take_93, TMP_Enumerable_take_while_94, TMP_Enumerable_uniq_96, TMP_Enumerable_zip_98; + var $nesting = [self].concat($parent_nesting), $Enumerable_all$ques$1, $Enumerable_any$ques$5, $Enumerable_chunk$9, $Enumerable_chunk_while$12, $Enumerable_collect$14, $Enumerable_collect_concat$16, $Enumerable_count$19, $Enumerable_cycle$23, $Enumerable_detect$25, $Enumerable_drop$27, $Enumerable_drop_while$28, $Enumerable_each_cons$29, $Enumerable_each_entry$31, $Enumerable_each_slice$33, $Enumerable_each_with_index$35, $Enumerable_each_with_object$37, $Enumerable_entries$39, $Enumerable_filter_map$40, $Enumerable_find_all$42, $Enumerable_find_index$44, $Enumerable_first$47, $Enumerable_grep$50, $Enumerable_grep_v$52, $Enumerable_group_by$54, $Enumerable_include$ques$56, $Enumerable_inject$58, $Enumerable_lazy$59, $Enumerable_enumerator_size$61, $Enumerable_max$62, $Enumerable_max_by$63, $Enumerable_min$65, $Enumerable_min_by$67, $Enumerable_minmax$69, $Enumerable_minmax_by$71, $Enumerable_none$ques$73, $Enumerable_one$ques$77, $Enumerable_partition$81, $Enumerable_reject$83, $Enumerable_reverse_each$85, $Enumerable_slice_before$87, $Enumerable_slice_after$89, $Enumerable_slice_when$92, $Enumerable_sort$94, $Enumerable_sort_by$96, $Enumerable_sum$101, $Enumerable_take$103, $Enumerable_take_while$104, $Enumerable_uniq$106, $Enumerable_tally$108, $Enumerable_to_h$109, $Enumerable_zip$110; - Opal.defn(self, '$all?', TMP_Enumerable_all$q_1 = function() {try { + function comparableForPattern(value) { + if (value.length === 0) { + value = [nil]; + } + + if (value.length > 1) { + value = [value]; + } + + return value; + } + ; + + Opal.def(self, '$all?', $Enumerable_all$ques$1 = function(pattern) {try { - var TMP_2, TMP_3, self = this, $iter = TMP_Enumerable_all$q_1.$$p, block = $iter || nil; + var $iter = $Enumerable_all$ques$1.$$p, block = $iter || nil, $$2, $$3, $$4, self = this; - if ($iter) TMP_Enumerable_all$q_1.$$p = null; + if ($iter) $Enumerable_all$ques$1.$$p = null; - if ((block !== nil)) { - $send(self, 'each', [], (TMP_2 = function($a_rest){var self = TMP_2.$$s || this, value; + + if ($iter) $Enumerable_all$ques$1.$$p = null;; + ; + if ($truthy(pattern !== undefined)) { + $send(self, 'each', [], ($$2 = function($a){var self = $$2.$$s == null ? this : $$2.$$s, $post_args, value, comparable = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + comparable = comparableForPattern(value); + if ($truthy($send(pattern, 'public_send', ["==="].concat(Opal.to_a(comparable))))) { return nil - } else { + } else { Opal.ret(false) - }}, TMP_2.$$s = self, TMP_2.$$arity = -1, TMP_2)) - } else { - $send(self, 'each', [], (TMP_3 = function($a_rest){var self = TMP_3.$$s || this, value; + };}, $$2.$$s = self, $$2.$$arity = -1, $$2)) + } else if ((block !== nil)) { + $send(self, 'each', [], ($$3 = function($a){var self = $$3.$$s == null ? this : $$3.$$s, $post_args, value; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Opal').$destructure(value))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { return nil - } else { + } else { Opal.ret(false) - }}, TMP_3.$$s = self, TMP_3.$$arity = -1, TMP_3)) + };}, $$3.$$s = self, $$3.$$arity = -1, $$3)) + } else { + $send(self, 'each', [], ($$4 = function($a){var self = $$4.$$s == null ? this : $$4.$$s, $post_args, value; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + if ($truthy($$($nesting, 'Opal').$destructure(value))) { + return nil + } else { + Opal.ret(false) + };}, $$4.$$s = self, $$4.$$arity = -1, $$4)) }; return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Enumerable_all$q_1.$$arity = 0); + }, $Enumerable_all$ques$1.$$arity = -1); - Opal.defn(self, '$any?', TMP_Enumerable_any$q_4 = function() {try { + Opal.def(self, '$any?', $Enumerable_any$ques$5 = function(pattern) {try { - var TMP_5, TMP_6, self = this, $iter = TMP_Enumerable_any$q_4.$$p, block = $iter || nil; + var $iter = $Enumerable_any$ques$5.$$p, block = $iter || nil, $$6, $$7, $$8, self = this; - if ($iter) TMP_Enumerable_any$q_4.$$p = null; + if ($iter) $Enumerable_any$ques$5.$$p = null; - if ((block !== nil)) { - $send(self, 'each', [], (TMP_5 = function($a_rest){var self = TMP_5.$$s || this, value; + + if ($iter) $Enumerable_any$ques$5.$$p = null;; + ; + if ($truthy(pattern !== undefined)) { + $send(self, 'each', [], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $post_args, value, comparable = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + comparable = comparableForPattern(value); + if ($truthy($send(pattern, 'public_send', ["==="].concat(Opal.to_a(comparable))))) { Opal.ret(true) - } else { + } else { return nil - }}, TMP_5.$$s = self, TMP_5.$$arity = -1, TMP_5)) - } else { - $send(self, 'each', [], (TMP_6 = function($a_rest){var self = TMP_6.$$s || this, value; + };}, $$6.$$s = self, $$6.$$arity = -1, $$6)) + } else if ((block !== nil)) { + $send(self, 'each', [], ($$7 = function($a){var self = $$7.$$s == null ? this : $$7.$$s, $post_args, value; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Opal').$destructure(value))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { Opal.ret(true) - } else { + } else { + return nil + };}, $$7.$$s = self, $$7.$$arity = -1, $$7)) + } else { + $send(self, 'each', [], ($$8 = function($a){var self = $$8.$$s == null ? this : $$8.$$s, $post_args, value; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + if ($truthy($$($nesting, 'Opal').$destructure(value))) { + Opal.ret(true) + } else { return nil - }}, TMP_6.$$s = self, TMP_6.$$arity = -1, TMP_6)) + };}, $$8.$$s = self, $$8.$$arity = -1, $$8)) }; return false; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Enumerable_any$q_4.$$arity = 0); + }, $Enumerable_any$ques$5.$$arity = -1); - Opal.defn(self, '$chunk', TMP_Enumerable_chunk_7 = function $$chunk() { - var TMP_8, TMP_9, self = this, $iter = TMP_Enumerable_chunk_7.$$p, block = $iter || nil; + Opal.def(self, '$chunk', $Enumerable_chunk$9 = function $$chunk() { + var $iter = $Enumerable_chunk$9.$$p, block = $iter || nil, $$10, $$11, self = this; - if ($iter) TMP_Enumerable_chunk_7.$$p = null; + if ($iter) $Enumerable_chunk$9.$$p = null; + + if ($iter) $Enumerable_chunk$9.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'to_enum', ["chunk"], (TMP_8 = function(){var self = TMP_8.$$s || this; + } else { + return $send(self, 'to_enum', ["chunk"], ($$10 = function(){var self = $$10.$$s == null ? this : $$10.$$s; - return self.$enumerator_size()}, TMP_8.$$s = self, TMP_8.$$arity = 0, TMP_8)) + return self.$enumerator_size()}, $$10.$$s = self, $$10.$$arity = 0, $$10)) }; - return $send(Opal.const_get_qualified('::', 'Enumerator'), 'new', [], (TMP_9 = function(yielder){var self = TMP_9.$$s || this; -if (yielder == null) yielder = nil; - + return $send($$$('::', 'Enumerator'), 'new', [], ($$11 = function(yielder){var self = $$11.$$s == null ? this : $$11.$$s; + + + + if (yielder == null) { + yielder = nil; + }; + var previous = nil, accumulate = []; function releaseAccumulate() { @@ -8746,33 +9788,46 @@ if (yielder == null) yielder = nil; self.$each(); releaseAccumulate(); - }, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)); - }, TMP_Enumerable_chunk_7.$$arity = 0); + ;}, $$11.$$s = self, $$11.$$arity = 1, $$11)); + }, $Enumerable_chunk$9.$$arity = 0); - Opal.defn(self, '$chunk_while', TMP_Enumerable_chunk_while_10 = function $$chunk_while() { - var TMP_11, self = this, $iter = TMP_Enumerable_chunk_while_10.$$p, block = $iter || nil; + Opal.def(self, '$chunk_while', $Enumerable_chunk_while$12 = function $$chunk_while() { + var $iter = $Enumerable_chunk_while$12.$$p, block = $iter || nil, $$13, self = this; - if ($iter) TMP_Enumerable_chunk_while_10.$$p = null; + if ($iter) $Enumerable_chunk_while$12.$$p = null; + + if ($iter) $Enumerable_chunk_while$12.$$p = null;; if ((block !== nil)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no block given") + } else { + self.$raise($$($nesting, 'ArgumentError'), "no block given") }; - return $send(self, 'slice_when', [], (TMP_11 = function(before, after){var self = TMP_11.$$s || this; -if (before == null) before = nil;if (after == null) after = nil; - return Opal.yieldX(block, [before, after])['$!']()}, TMP_11.$$s = self, TMP_11.$$arity = 2, TMP_11)); - }, TMP_Enumerable_chunk_while_10.$$arity = 0); + return $send(self, 'slice_when', [], ($$13 = function(before, after){var self = $$13.$$s == null ? this : $$13.$$s; + + + + if (before == null) { + before = nil; + }; + + if (after == null) { + after = nil; + }; + return Opal.yieldX(block, [before, after])['$!']();}, $$13.$$s = self, $$13.$$arity = 2, $$13)); + }, $Enumerable_chunk_while$12.$$arity = 0); - Opal.defn(self, '$collect', TMP_Enumerable_collect_12 = function $$collect() { - var TMP_13, self = this, $iter = TMP_Enumerable_collect_12.$$p, block = $iter || nil; + Opal.def(self, '$collect', $Enumerable_collect$14 = function $$collect() { + var $iter = $Enumerable_collect$14.$$p, block = $iter || nil, $$15, self = this; - if ($iter) TMP_Enumerable_collect_12.$$p = null; + if ($iter) $Enumerable_collect$14.$$p = null; + + if ($iter) $Enumerable_collect$14.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["collect"], (TMP_13 = function(){var self = TMP_13.$$s || this; + } else { + return $send(self, 'enum_for', ["collect"], ($$15 = function(){var self = $$15.$$s == null ? this : $$15.$$s; - return self.$enumerator_size()}, TMP_13.$$s = self, TMP_13.$$arity = 0, TMP_13)) + return self.$enumerator_size()}, $$15.$$s = self, $$15.$$arity = 0, $$15)) }; var result = []; @@ -8787,29 +9842,39 @@ if (before == null) before = nil;if (after == null) after = nil; return result; ; - }, TMP_Enumerable_collect_12.$$arity = 0); + }, $Enumerable_collect$14.$$arity = 0); - Opal.defn(self, '$collect_concat', TMP_Enumerable_collect_concat_14 = function $$collect_concat() { - var TMP_15, TMP_16, self = this, $iter = TMP_Enumerable_collect_concat_14.$$p, block = $iter || nil; + Opal.def(self, '$collect_concat', $Enumerable_collect_concat$16 = function $$collect_concat() { + var $iter = $Enumerable_collect_concat$16.$$p, block = $iter || nil, $$17, $$18, self = this; - if ($iter) TMP_Enumerable_collect_concat_14.$$p = null; + if ($iter) $Enumerable_collect_concat$16.$$p = null; + + if ($iter) $Enumerable_collect_concat$16.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["collect_concat"], (TMP_15 = function(){var self = TMP_15.$$s || this; + } else { + return $send(self, 'enum_for', ["collect_concat"], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s; - return self.$enumerator_size()}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)) + return self.$enumerator_size()}, $$17.$$s = self, $$17.$$arity = 0, $$17)) }; - return $send(self, 'map', [], (TMP_16 = function(item){var self = TMP_16.$$s || this; -if (item == null) item = nil; - return Opal.yield1(block, item);}, TMP_16.$$s = self, TMP_16.$$arity = 1, TMP_16)).$flatten(1); - }, TMP_Enumerable_collect_concat_14.$$arity = 0); + return $send(self, 'map', [], ($$18 = function(item){var self = $$18.$$s == null ? this : $$18.$$s; + + + + if (item == null) { + item = nil; + }; + return Opal.yield1(block, item);;}, $$18.$$s = self, $$18.$$arity = 1, $$18)).$flatten(1); + }, $Enumerable_collect_concat$16.$$arity = 0); - Opal.defn(self, '$count', TMP_Enumerable_count_17 = function $$count(object) { - var TMP_18, TMP_19, TMP_20, self = this, $iter = TMP_Enumerable_count_17.$$p, block = $iter || nil, result = nil; + Opal.def(self, '$count', $Enumerable_count$19 = function $$count(object) { + var $iter = $Enumerable_count$19.$$p, block = $iter || nil, $$20, $$21, $$22, self = this, result = nil; - if ($iter) TMP_Enumerable_count_17.$$p = null; + if ($iter) $Enumerable_count$19.$$p = null; + + if ($iter) $Enumerable_count$19.$$p = null;; + ; result = 0; if (object != null && block !== nil) { @@ -8817,76 +9882,76 @@ if (item == null) item = nil; } ; if ($truthy(object != null)) { - block = $send(self, 'proc', [], (TMP_18 = function($a_rest){var self = TMP_18.$$s || this, args; + block = $send(self, 'proc', [], ($$20 = function($a){var self = $$20.$$s == null ? this : $$20.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - return Opal.const_get_relative($nesting, 'Opal').$destructure(args)['$=='](object)}, TMP_18.$$s = self, TMP_18.$$arity = -1, TMP_18)) + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $$($nesting, 'Opal').$destructure(args)['$=='](object);}, $$20.$$s = self, $$20.$$arity = -1, $$20)) } else if ($truthy(block['$nil?']())) { - block = $send(self, 'proc', [], (TMP_19 = function(){var self = TMP_19.$$s || this; + block = $send(self, 'proc', [], ($$21 = function(){var self = $$21.$$s == null ? this : $$21.$$s; - return true}, TMP_19.$$s = self, TMP_19.$$arity = 0, TMP_19))}; - $send(self, 'each', [], (TMP_20 = function($a_rest){var self = TMP_20.$$s || this, args; + return true}, $$21.$$s = self, $$21.$$arity = 0, $$21))}; + $send(self, 'each', [], ($$22 = function($a){var self = $$22.$$s == null ? this : $$22.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.yieldX(block, args))) { - return result++ - } else { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(Opal.yieldX(block, args))) { + return result++; + } else { return nil - }}, TMP_20.$$s = self, TMP_20.$$arity = -1, TMP_20)); + };}, $$22.$$s = self, $$22.$$arity = -1, $$22)); return result; - }, TMP_Enumerable_count_17.$$arity = -1); + }, $Enumerable_count$19.$$arity = -1); - Opal.defn(self, '$cycle', TMP_Enumerable_cycle_21 = function $$cycle(n) { - var TMP_22, self = this, $iter = TMP_Enumerable_cycle_21.$$p, block = $iter || nil; + Opal.def(self, '$cycle', $Enumerable_cycle$23 = function $$cycle(n) { + var $iter = $Enumerable_cycle$23.$$p, block = $iter || nil, $$24, self = this; + if ($iter) $Enumerable_cycle$23.$$p = null; + + + if ($iter) $Enumerable_cycle$23.$$p = null;; + if (n == null) { n = nil; - } - if ($iter) TMP_Enumerable_cycle_21.$$p = null; - + }; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["cycle", n], (TMP_22 = function(){var self = TMP_22.$$s || this; + } else { + return $send(self, 'enum_for', ["cycle", n], ($$24 = function(){var self = $$24.$$s == null ? this : $$24.$$s; - if (n['$=='](nil)) { + if ($truthy(n['$nil?']())) { if ($truthy(self['$respond_to?']("size"))) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY') - } else { + return $$$($$($nesting, 'Float'), 'INFINITY') + } else { return nil } - } else { + } else { - n = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); if ($truthy($rb_gt(n, 0))) { return $rb_times(self.$enumerator_size(), n) - } else { + } else { return 0 }; - }}, TMP_22.$$s = self, TMP_22.$$arity = 0, TMP_22)) + }}, $$24.$$s = self, $$24.$$arity = 0, $$24)) }; if ($truthy(n['$nil?']())) { - } else { + } else { - n = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); if ($truthy(n <= 0)) { return nil}; }; - var result, - all = [], i, length, value; + var all = [], i, length, value; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = Opal.yield1(block, param); all.push(param); @@ -8894,10 +9959,6 @@ if (item == null) item = nil; self.$each(); - if (result !== undefined) { - return result; - } - if (all.length === 0) { return nil; } @@ -8919,33 +9980,34 @@ if (item == null) item = nil; } } ; - }, TMP_Enumerable_cycle_21.$$arity = -1); + }, $Enumerable_cycle$23.$$arity = -1); - Opal.defn(self, '$detect', TMP_Enumerable_detect_23 = function $$detect(ifnone) {try { + Opal.def(self, '$detect', $Enumerable_detect$25 = function $$detect(ifnone) {try { - var TMP_24, self = this, $iter = TMP_Enumerable_detect_23.$$p, block = $iter || nil; + var $iter = $Enumerable_detect$25.$$p, block = $iter || nil, $$26, self = this; - if ($iter) TMP_Enumerable_detect_23.$$p = null; + if ($iter) $Enumerable_detect$25.$$p = null; + + if ($iter) $Enumerable_detect$25.$$p = null;; + ; if ((block !== nil)) { - } else { + } else { return self.$enum_for("detect", ifnone) }; - $send(self, 'each', [], (TMP_24 = function($a_rest){var self = TMP_24.$$s || this, args, value = nil; + $send(self, 'each', [], ($$26 = function($a){var self = $$26.$$s == null ? this : $$26.$$s, $post_args, args, value = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - value = Opal.const_get_relative($nesting, 'Opal').$destructure(args); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + value = $$($nesting, 'Opal').$destructure(args); if ($truthy(Opal.yield1(block, value))) { Opal.ret(value) - } else { + } else { return nil - };}, TMP_24.$$s = self, TMP_24.$$arity = -1, TMP_24)); + };}, $$26.$$s = self, $$26.$$arity = -1, $$26)); if (ifnone !== undefined) { if (typeof(ifnone) === 'function') { @@ -8957,22 +10019,22 @@ if (item == null) item = nil; ; return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Enumerable_detect_23.$$arity = -1); + }, $Enumerable_detect$25.$$arity = -1); - Opal.defn(self, '$drop', TMP_Enumerable_drop_25 = function $$drop(number) { + Opal.def(self, '$drop', $Enumerable_drop$27 = function $$drop(number) { var self = this; - number = Opal.const_get_relative($nesting, 'Opal').$coerce_to(number, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + number = $coerce_to(number, $$($nesting, 'Integer'), 'to_int'); if ($truthy(number < 0)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "attempt to drop negative size")}; + self.$raise($$($nesting, 'ArgumentError'), "attempt to drop negative size")}; var result = [], current = 0; self.$each.$$p = function() { if (number <= current) { - result.push(Opal.const_get_relative($nesting, 'Opal').$destructure(arguments)); + result.push($$($nesting, 'Opal').$destructure(arguments)); } current++; @@ -8982,15 +10044,17 @@ if (item == null) item = nil; return result; ; - }, TMP_Enumerable_drop_25.$$arity = 1); + }, $Enumerable_drop$27.$$arity = 1); - Opal.defn(self, '$drop_while', TMP_Enumerable_drop_while_26 = function $$drop_while() { - var self = this, $iter = TMP_Enumerable_drop_while_26.$$p, block = $iter || nil; + Opal.def(self, '$drop_while', $Enumerable_drop_while$28 = function $$drop_while() { + var $iter = $Enumerable_drop_while$28.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Enumerable_drop_while_26.$$p = null; + if ($iter) $Enumerable_drop_while$28.$$p = null; + + if ($iter) $Enumerable_drop_while$28.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("drop_while") }; @@ -8998,7 +10062,7 @@ if (item == null) item = nil; dropping = true; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var param = $$($nesting, 'Opal').$destructure(arguments); if (dropping) { var value = Opal.yield1(block, param); @@ -9017,37 +10081,43 @@ if (item == null) item = nil; return result; ; - }, TMP_Enumerable_drop_while_26.$$arity = 0); + }, $Enumerable_drop_while$28.$$arity = 0); - Opal.defn(self, '$each_cons', TMP_Enumerable_each_cons_27 = function $$each_cons(n) { - var TMP_28, self = this, $iter = TMP_Enumerable_each_cons_27.$$p, block = $iter || nil; + Opal.def(self, '$each_cons', $Enumerable_each_cons$29 = function $$each_cons(n) { + var $iter = $Enumerable_each_cons$29.$$p, block = $iter || nil, $$30, self = this; - if ($iter) TMP_Enumerable_each_cons_27.$$p = null; + if ($iter) $Enumerable_each_cons$29.$$p = null; + + if ($iter) $Enumerable_each_cons$29.$$p = null;; if ($truthy(arguments.length != 1)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 1)")}; - n = Opal.const_get_relative($nesting, 'Opal').$try_convert(n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 1)")}; + n = $$($nesting, 'Opal').$try_convert(n, $$($nesting, 'Integer'), "to_int"); if ($truthy(n <= 0)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "invalid size")}; + self.$raise($$($nesting, 'ArgumentError'), "invalid size")}; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_cons", n], (TMP_28 = function(){var self = TMP_28.$$s || this, $a, enum_size = nil; + } else { + return $send(self, 'enum_for', ["each_cons", n], ($$30 = function(){var self = $$30.$$s == null ? this : $$30.$$s, enum_size = nil, $ret_or_1 = nil; - + enum_size = self.$enumerator_size(); if ($truthy(enum_size['$nil?']())) { return nil - } else if ($truthy(($truthy($a = enum_size['$=='](0)) ? $a : $rb_lt(enum_size, n)))) { + } else if ($truthy((function() {if ($truthy(($ret_or_1 = enum_size['$=='](0)))) { + return $ret_or_1 + } else { + return $rb_lt(enum_size, n) + }; return nil; })())) { return 0 - } else { + } else { return $rb_plus($rb_minus(enum_size, n), 1) - };}, TMP_28.$$s = self, TMP_28.$$arity = 0, TMP_28)) + };}, $$30.$$s = self, $$30.$$arity = 0, $$30)) }; - var buffer = [], result = nil; + var buffer = []; self.$each.$$p = function() { - var element = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var element = $$($nesting, 'Opal').$destructure(arguments); buffer.push(element); if (buffer.length > n) { buffer.shift(); @@ -9059,30 +10129,30 @@ if (item == null) item = nil; self.$each(); - return result; + return nil; ; - }, TMP_Enumerable_each_cons_27.$$arity = 1); + }, $Enumerable_each_cons$29.$$arity = 1); - Opal.defn(self, '$each_entry', TMP_Enumerable_each_entry_29 = function $$each_entry($a_rest) { - var TMP_30, self = this, data, $iter = TMP_Enumerable_each_entry_29.$$p, block = $iter || nil; + Opal.def(self, '$each_entry', $Enumerable_each_entry$31 = function $$each_entry($a) { + var $iter = $Enumerable_each_entry$31.$$p, block = $iter || nil, $post_args, data, $$32, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - data = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - data[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Enumerable_each_entry_29.$$p = null; + if ($iter) $Enumerable_each_entry$31.$$p = null; + + if ($iter) $Enumerable_each_entry$31.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + data = $post_args;; if ((block !== nil)) { - } else { - return $send(self, 'to_enum', ["each_entry"].concat(Opal.to_a(data)), (TMP_30 = function(){var self = TMP_30.$$s || this; + } else { + return $send(self, 'to_enum', ["each_entry"].concat(Opal.to_a(data)), ($$32 = function(){var self = $$32.$$s == null ? this : $$32.$$s; - return self.$enumerator_size()}, TMP_30.$$s = self, TMP_30.$$arity = 0, TMP_30)) + return self.$enumerator_size()}, $$32.$$s = self, $$32.$$arity = 0, $$32)) }; self.$each.$$p = function() { - var item = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var item = $$($nesting, 'Opal').$destructure(arguments); Opal.yield1(block, item); } @@ -9091,32 +10161,33 @@ if (item == null) item = nil; return self; ; - }, TMP_Enumerable_each_entry_29.$$arity = -1); + }, $Enumerable_each_entry$31.$$arity = -1); - Opal.defn(self, '$each_slice', TMP_Enumerable_each_slice_31 = function $$each_slice(n) { - var TMP_32, self = this, $iter = TMP_Enumerable_each_slice_31.$$p, block = $iter || nil; + Opal.def(self, '$each_slice', $Enumerable_each_slice$33 = function $$each_slice(n) { + var $iter = $Enumerable_each_slice$33.$$p, block = $iter || nil, $$34, self = this; - if ($iter) TMP_Enumerable_each_slice_31.$$p = null; + if ($iter) $Enumerable_each_slice$33.$$p = null; - n = Opal.const_get_relative($nesting, 'Opal').$coerce_to(n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + + if ($iter) $Enumerable_each_slice$33.$$p = null;; + n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); if ($truthy(n <= 0)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "invalid slice size")}; + self.$raise($$($nesting, 'ArgumentError'), "invalid slice size")}; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_slice", n], (TMP_32 = function(){var self = TMP_32.$$s || this; + } else { + return $send(self, 'enum_for', ["each_slice", n], ($$34 = function(){var self = $$34.$$s == null ? this : $$34.$$s; - if ($truthy(self['$respond_to?']("size"))) { + if ($truthy(self['$respond_to?']("size"))) { return $rb_divide(self.$size(), n).$ceil() - } else { + } else { return nil - }}, TMP_32.$$s = self, TMP_32.$$arity = 0, TMP_32)) + }}, $$34.$$s = self, $$34.$$arity = 0, $$34)) }; - var result, - slice = [] + var slice = [] self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var param = $$($nesting, 'Opal').$destructure(arguments); slice.push(param); @@ -9128,41 +10199,36 @@ if (item == null) item = nil; self.$each(); - if (result !== undefined) { - return result; - } - // our "last" group, if smaller than n then won't have been yielded if (slice.length > 0) { Opal.yield1(block, slice); } ; return nil; - }, TMP_Enumerable_each_slice_31.$$arity = 1); + }, $Enumerable_each_slice$33.$$arity = 1); - Opal.defn(self, '$each_with_index', TMP_Enumerable_each_with_index_33 = function $$each_with_index($a_rest) { - var TMP_34, self = this, args, $iter = TMP_Enumerable_each_with_index_33.$$p, block = $iter || nil; + Opal.def(self, '$each_with_index', $Enumerable_each_with_index$35 = function $$each_with_index($a) { + var $iter = $Enumerable_each_with_index$35.$$p, block = $iter || nil, $post_args, args, $$36, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Enumerable_each_with_index_33.$$p = null; + if ($iter) $Enumerable_each_with_index$35.$$p = null; + + + if ($iter) $Enumerable_each_with_index$35.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + args = $post_args;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_with_index"].concat(Opal.to_a(args)), (TMP_34 = function(){var self = TMP_34.$$s || this; + } else { + return $send(self, 'enum_for', ["each_with_index"].concat(Opal.to_a(args)), ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s; - return self.$enumerator_size()}, TMP_34.$$s = self, TMP_34.$$arity = 0, TMP_34)) + return self.$enumerator_size()}, $$36.$$s = self, $$36.$$arity = 0, $$36)) }; - var result, - index = 0; + var index = 0; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var param = $$($nesting, 'Opal').$destructure(arguments); block(param, index); @@ -9170,82 +10236,91 @@ if (item == null) item = nil; }; self.$each.apply(self, args); - - if (result !== undefined) { - return result; - } ; return self; - }, TMP_Enumerable_each_with_index_33.$$arity = -1); + }, $Enumerable_each_with_index$35.$$arity = -1); - Opal.defn(self, '$each_with_object', TMP_Enumerable_each_with_object_35 = function $$each_with_object(object) { - var TMP_36, self = this, $iter = TMP_Enumerable_each_with_object_35.$$p, block = $iter || nil; + Opal.def(self, '$each_with_object', $Enumerable_each_with_object$37 = function $$each_with_object(object) { + var $iter = $Enumerable_each_with_object$37.$$p, block = $iter || nil, $$38, self = this; - if ($iter) TMP_Enumerable_each_with_object_35.$$p = null; + if ($iter) $Enumerable_each_with_object$37.$$p = null; + + if ($iter) $Enumerable_each_with_object$37.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_with_object", object], (TMP_36 = function(){var self = TMP_36.$$s || this; + } else { + return $send(self, 'enum_for', ["each_with_object", object], ($$38 = function(){var self = $$38.$$s == null ? this : $$38.$$s; - return self.$enumerator_size()}, TMP_36.$$s = self, TMP_36.$$arity = 0, TMP_36)) + return self.$enumerator_size()}, $$38.$$s = self, $$38.$$arity = 0, $$38)) }; - var result; - self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var param = $$($nesting, 'Opal').$destructure(arguments); block(param, object); }; self.$each(); - - if (result !== undefined) { - return result; - } ; return object; - }, TMP_Enumerable_each_with_object_35.$$arity = 1); + }, $Enumerable_each_with_object$37.$$arity = 1); - Opal.defn(self, '$entries', TMP_Enumerable_entries_37 = function $$entries($a_rest) { - var self = this, args; + Opal.def(self, '$entries', $Enumerable_entries$39 = function $$entries($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; var result = []; self.$each.$$p = function() { - result.push(Opal.const_get_relative($nesting, 'Opal').$destructure(arguments)); + result.push($$($nesting, 'Opal').$destructure(arguments)); }; self.$each.apply(self, args); return result; + ; + }, $Enumerable_entries$39.$$arity = -1); - }, TMP_Enumerable_entries_37.$$arity = -1); - Opal.alias(self, "find", "detect"); + Opal.def(self, '$filter_map', $Enumerable_filter_map$40 = function $$filter_map() { + var $iter = $Enumerable_filter_map$40.$$p, block = $iter || nil, $$41, self = this; + + if ($iter) $Enumerable_filter_map$40.$$p = null; + + + if ($iter) $Enumerable_filter_map$40.$$p = null;; + if ((block !== nil)) { + } else { + return $send(self, 'enum_for', ["filter_map"], ($$41 = function(){var self = $$41.$$s == null ? this : $$41.$$s; + + return self.$enumerator_size()}, $$41.$$s = self, $$41.$$arity = 0, $$41)) + }; + return $send($send(self, 'map', [], block.$to_proc()), 'select', [], "itself".$to_proc()); + }, $Enumerable_filter_map$40.$$arity = 0); + $alias(self, "find", "detect"); - Opal.defn(self, '$find_all', TMP_Enumerable_find_all_38 = function $$find_all() { - var TMP_39, self = this, $iter = TMP_Enumerable_find_all_38.$$p, block = $iter || nil; + Opal.def(self, '$find_all', $Enumerable_find_all$42 = function $$find_all() { + var $iter = $Enumerable_find_all$42.$$p, block = $iter || nil, $$43, self = this; - if ($iter) TMP_Enumerable_find_all_38.$$p = null; + if ($iter) $Enumerable_find_all$42.$$p = null; + + if ($iter) $Enumerable_find_all$42.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["find_all"], (TMP_39 = function(){var self = TMP_39.$$s || this; + } else { + return $send(self, 'enum_for', ["find_all"], ($$43 = function(){var self = $$43.$$s == null ? this : $$43.$$s; - return self.$enumerator_size()}, TMP_39.$$s = self, TMP_39.$$arity = 0, TMP_39)) + return self.$enumerator_size()}, $$43.$$s = self, $$43.$$arity = 0, $$43)) }; var result = []; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = Opal.yield1(block, param); if ($truthy(value)) { @@ -9257,14 +10332,18 @@ if (item == null) item = nil; return result; ; - }, TMP_Enumerable_find_all_38.$$arity = 0); + }, $Enumerable_find_all$42.$$arity = 0); + $alias(self, "filter", "find_all"); - Opal.defn(self, '$find_index', TMP_Enumerable_find_index_40 = function $$find_index(object) {try { + Opal.def(self, '$find_index', $Enumerable_find_index$44 = function $$find_index(object) {try { - var TMP_41, TMP_42, self = this, $iter = TMP_Enumerable_find_index_40.$$p, block = $iter || nil, index = nil; + var $iter = $Enumerable_find_index$44.$$p, block = $iter || nil, $$45, $$46, self = this, index = nil; - if ($iter) TMP_Enumerable_find_index_40.$$p = null; + if ($iter) $Enumerable_find_index$44.$$p = null; + + if ($iter) $Enumerable_find_index$44.$$p = null;; + ; if ($truthy(object === undefined && block === nil)) { return self.$enum_for("find_index")}; @@ -9274,166 +10353,164 @@ if (item == null) item = nil; ; index = 0; if ($truthy(object != null)) { - $send(self, 'each', [], (TMP_41 = function($a_rest){var self = TMP_41.$$s || this, value; + $send(self, 'each', [], ($$45 = function($a){var self = $$45.$$s == null ? this : $$45.$$s, $post_args, value; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - - if (Opal.const_get_relative($nesting, 'Opal').$destructure(value)['$=='](object)) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + if ($$($nesting, 'Opal').$destructure(value)['$=='](object)) { Opal.ret(index)}; - return index += 1;}, TMP_41.$$s = self, TMP_41.$$arity = -1, TMP_41)) - } else { - $send(self, 'each', [], (TMP_42 = function($a_rest){var self = TMP_42.$$s || this, value; + return index += 1;;}, $$45.$$s = self, $$45.$$arity = -1, $$45)) + } else { + $send(self, 'each', [], ($$46 = function($a){var self = $$46.$$s == null ? this : $$46.$$s, $post_args, value; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { Opal.ret(index)}; - return index += 1;}, TMP_42.$$s = self, TMP_42.$$arity = -1, TMP_42)) + return index += 1;;}, $$46.$$s = self, $$46.$$arity = -1, $$46)) }; return nil; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Enumerable_find_index_40.$$arity = -1); + }, $Enumerable_find_index$44.$$arity = -1); - Opal.defn(self, '$first', TMP_Enumerable_first_45 = function $$first(number) {try { + Opal.def(self, '$first', $Enumerable_first$47 = function $$first(number) {try { - var TMP_43, TMP_44, self = this, result = nil, current = nil; + var $$48, $$49, self = this, result = nil, current = nil; + + ; if ($truthy(number === undefined)) { - return $send(self, 'each', [], (TMP_43 = function(value){var self = TMP_43.$$s || this; -if (value == null) value = nil; - Opal.ret(value)}, TMP_43.$$s = self, TMP_43.$$arity = 1, TMP_43)) - } else { + return $send(self, 'each', [], ($$48 = function(value){var self = $$48.$$s == null ? this : $$48.$$s; + + + + if (value == null) { + value = nil; + }; + Opal.ret(value);}, $$48.$$s = self, $$48.$$arity = 1, $$48)) + } else { result = []; - number = Opal.const_get_relative($nesting, 'Opal').$coerce_to(number, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + number = $coerce_to(number, $$($nesting, 'Integer'), 'to_int'); if ($truthy(number < 0)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "attempt to take negative size")}; + self.$raise($$($nesting, 'ArgumentError'), "attempt to take negative size")}; if ($truthy(number == 0)) { return []}; current = 0; - $send(self, 'each', [], (TMP_44 = function($a_rest){var self = TMP_44.$$s || this, args; + $send(self, 'each', [], ($$49 = function($a){var self = $$49.$$s == null ? this : $$49.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - result.push(Opal.const_get_relative($nesting, 'Opal').$destructure(args)); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + result.push($$($nesting, 'Opal').$destructure(args)); if ($truthy(number <= ++current)) { Opal.ret(result) - } else { + } else { return nil - };}, TMP_44.$$s = self, TMP_44.$$arity = -1, TMP_44)); + };}, $$49.$$s = self, $$49.$$arity = -1, $$49)); return result; - } + }; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Enumerable_first_45.$$arity = -1); - Opal.alias(self, "flat_map", "collect_concat"); + }, $Enumerable_first$47.$$arity = -1); + $alias(self, "flat_map", "collect_concat"); - Opal.defn(self, '$grep', TMP_Enumerable_grep_46 = function $$grep(pattern) { - var self = this, $iter = TMP_Enumerable_grep_46.$$p, block = $iter || nil; + Opal.def(self, '$grep', $Enumerable_grep$50 = function $$grep(pattern) { + var $iter = $Enumerable_grep$50.$$p, block = $iter || nil, $$51, self = this, result = nil; - if ($iter) TMP_Enumerable_grep_46.$$p = null; + if ($iter) $Enumerable_grep$50.$$p = null; - var result = []; - - if (block !== nil) { - self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), - value = pattern['$==='](param); - - if ($truthy(value)) { - value = Opal.yield1(block, param); - - result.push(value); - } - }; - } - else { - self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), - value = pattern['$==='](param); + + if ($iter) $Enumerable_grep$50.$$p = null;; + result = []; + $send(self, 'each', [], ($$51 = function($a){var self = $$51.$$s == null ? this : $$51.$$s, $post_args, value, cmp = nil; - if ($truthy(value)) { - result.push(param); - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + cmp = comparableForPattern(value); + if ($truthy($send(pattern, '__send__', ["==="].concat(Opal.to_a(cmp))))) { + } else { + return nil; }; - } - - self.$each(); - + if ((block !== nil)) { + + if ($truthy($rb_gt(value.$length(), 1))) { + value = [value]}; + value = Opal.yieldX(block, Opal.to_a(value)); + } else if ($truthy($rb_le(value.$length(), 1))) { + value = value['$[]'](0)}; + return result.$push(value);}, $$51.$$s = self, $$51.$$arity = -1, $$51)); return result; + }, $Enumerable_grep$50.$$arity = 1); - }, TMP_Enumerable_grep_46.$$arity = 1); - - Opal.defn(self, '$grep_v', TMP_Enumerable_grep_v_47 = function $$grep_v(pattern) { - var self = this, $iter = TMP_Enumerable_grep_v_47.$$p, block = $iter || nil; + Opal.def(self, '$grep_v', $Enumerable_grep_v$52 = function $$grep_v(pattern) { + var $iter = $Enumerable_grep_v$52.$$p, block = $iter || nil, $$53, self = this, result = nil; - if ($iter) TMP_Enumerable_grep_v_47.$$p = null; + if ($iter) $Enumerable_grep_v$52.$$p = null; - var result = []; - - if (block !== nil) { - self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), - value = pattern['$==='](param); - - if ($falsy(value)) { - value = Opal.yield1(block, param); - - result.push(value); - } - }; - } - else { - self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), - value = pattern['$==='](param); - - if ($falsy(value)) { - result.push(param); - } - }; - } - - self.$each(); + + if ($iter) $Enumerable_grep_v$52.$$p = null;; + result = []; + $send(self, 'each', [], ($$53 = function($a){var self = $$53.$$s == null ? this : $$53.$$s, $post_args, value, cmp = nil; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + cmp = comparableForPattern(value); + if ($truthy($send(pattern, '__send__', ["==="].concat(Opal.to_a(cmp))))) { + return nil;}; + if ((block !== nil)) { + + if ($truthy($rb_gt(value.$length(), 1))) { + value = [value]}; + value = Opal.yieldX(block, Opal.to_a(value)); + } else if ($truthy($rb_le(value.$length(), 1))) { + value = value['$[]'](0)}; + return result.$push(value);}, $$53.$$s = self, $$53.$$arity = -1, $$53)); return result; + }, $Enumerable_grep_v$52.$$arity = 1); - }, TMP_Enumerable_grep_v_47.$$arity = 1); - - Opal.defn(self, '$group_by', TMP_Enumerable_group_by_48 = function $$group_by() { - var TMP_49, $a, self = this, $iter = TMP_Enumerable_group_by_48.$$p, block = $iter || nil, hash = nil, $writer = nil; + Opal.def(self, '$group_by', $Enumerable_group_by$54 = function $$group_by() { + var $iter = $Enumerable_group_by$54.$$p, block = $iter || nil, $$55, self = this, hash = nil, $ret_or_2 = nil, $writer = nil; - if ($iter) TMP_Enumerable_group_by_48.$$p = null; + if ($iter) $Enumerable_group_by$54.$$p = null; + + if ($iter) $Enumerable_group_by$54.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["group_by"], (TMP_49 = function(){var self = TMP_49.$$s || this; + } else { + return $send(self, 'enum_for', ["group_by"], ($$55 = function(){var self = $$55.$$s == null ? this : $$55.$$s; - return self.$enumerator_size()}, TMP_49.$$s = self, TMP_49.$$arity = 0, TMP_49)) + return self.$enumerator_size()}, $$55.$$s = self, $$55.$$arity = 0, $$55)) }; - hash = Opal.const_get_relative($nesting, 'Hash').$new(); + hash = $hash2([], {}); var result; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = Opal.yield1(block, param); - ($truthy($a = hash['$[]'](value)) ? $a : (($writer = [value, []]), $send(hash, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)]))['$<<'](param); + (function() {if ($truthy(($ret_or_2 = hash['$[]'](value)))) { + return $ret_or_2 + } else { + + $writer = [value, []]; + $send(hash, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }; return nil; })()['$<<'](param); } self.$each(); @@ -9443,40 +10520,44 @@ if (value == null) value = nil; } ; return hash; - }, TMP_Enumerable_group_by_48.$$arity = 0); + }, $Enumerable_group_by$54.$$arity = 0); - Opal.defn(self, '$include?', TMP_Enumerable_include$q_51 = function(obj) {try { + Opal.def(self, '$include?', $Enumerable_include$ques$56 = function(obj) {try { - var TMP_50, self = this; + var $$57, self = this; - $send(self, 'each', [], (TMP_50 = function($a_rest){var self = TMP_50.$$s || this, args; + $send(self, 'each', [], ($$57 = function($a){var self = $$57.$$s == null ? this : $$57.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if (Opal.const_get_relative($nesting, 'Opal').$destructure(args)['$=='](obj)) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($$($nesting, 'Opal').$destructure(args)['$=='](obj)) { Opal.ret(true) - } else { + } else { return nil - }}, TMP_50.$$s = self, TMP_50.$$arity = -1, TMP_50)); + };}, $$57.$$s = self, $$57.$$arity = -1, $$57)); return false; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Enumerable_include$q_51.$$arity = 1); + }, $Enumerable_include$ques$56.$$arity = 1); - Opal.defn(self, '$inject', TMP_Enumerable_inject_52 = function $$inject(object, sym) { - var self = this, $iter = TMP_Enumerable_inject_52.$$p, block = $iter || nil; + Opal.def(self, '$inject', $Enumerable_inject$58 = function $$inject(object, sym) { + var $iter = $Enumerable_inject$58.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Enumerable_inject_52.$$p = null; + if ($iter) $Enumerable_inject$58.$$p = null; + + + if ($iter) $Enumerable_inject$58.$$p = null;; + ; + ; var result = object; if (block !== nil && sym === undefined) { self.$each.$$p = function() { - var value = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var value = $$($nesting, 'Opal').$destructure(arguments); if (result === undefined) { result = value; @@ -9490,8 +10571,8 @@ if (value == null) value = nil; } else { if (sym === undefined) { - if (!Opal.const_get_relative($nesting, 'Symbol')['$==='](object)) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + (object.$inspect()) + " is not a Symbol"); + if (!$$($nesting, 'Symbol')['$==='](object)) { + self.$raise($$($nesting, 'TypeError'), "" + (object.$inspect()) + " is not a Symbol"); } sym = object; @@ -9499,7 +10580,7 @@ if (value == null) value = nil; } self.$each.$$p = function() { - var value = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var value = $$($nesting, 'Opal').$destructure(arguments); if (result === undefined) { result = value; @@ -9513,45 +10594,51 @@ if (value == null) value = nil; self.$each(); return result == undefined ? nil : result; + ; + }, $Enumerable_inject$58.$$arity = -1); - }, TMP_Enumerable_inject_52.$$arity = -1); - - Opal.defn(self, '$lazy', TMP_Enumerable_lazy_54 = function $$lazy() { - var TMP_53, self = this; + Opal.def(self, '$lazy', $Enumerable_lazy$59 = function $$lazy() { + var $$60, self = this; - return $send(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Enumerator'), 'Lazy'), 'new', [self, self.$enumerator_size()], (TMP_53 = function(enum$, $a_rest){var self = TMP_53.$$s || this, args; + return $send($$$($$($nesting, 'Enumerator'), 'Lazy'), 'new', [self, self.$enumerator_size()], ($$60 = function(enum$, $a){var self = $$60.$$s == null ? this : $$60.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - return $send(enum$, 'yield', Opal.to_a(args))}, TMP_53.$$s = self, TMP_53.$$arity = -2, TMP_53)) - }, TMP_Enumerable_lazy_54.$$arity = 0); + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + return $send(enum$, 'yield', Opal.to_a(args));}, $$60.$$s = self, $$60.$$arity = -2, $$60)) + }, $Enumerable_lazy$59.$$arity = 0); - Opal.defn(self, '$enumerator_size', TMP_Enumerable_enumerator_size_55 = function $$enumerator_size() { + Opal.def(self, '$enumerator_size', $Enumerable_enumerator_size$61 = function $$enumerator_size() { var self = this; if ($truthy(self['$respond_to?']("size"))) { return self.$size() - } else { + } else { return nil } - }, TMP_Enumerable_enumerator_size_55.$$arity = 0); - Opal.alias(self, "map", "collect"); + }, $Enumerable_enumerator_size$61.$$arity = 0); + $alias(self, "map", "collect"); - Opal.defn(self, '$max', TMP_Enumerable_max_56 = function $$max(n) { - var self = this, $iter = TMP_Enumerable_max_56.$$p, block = $iter || nil; + Opal.def(self, '$max', $Enumerable_max$62 = function $$max(n) { + var $iter = $Enumerable_max$62.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Enumerable_max_56.$$p = null; + if ($iter) $Enumerable_max$62.$$p = null; + if ($iter) $Enumerable_max$62.$$p = null;; + ; + if (n === undefined || n === nil) { var result, value; self.$each.$$p = function() { - var item = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var item = $$($nesting, 'Opal').$destructure(arguments); if (result === undefined) { result = item; @@ -9565,7 +10652,7 @@ if (value == null) value = nil; } if (value === nil) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "comparison failed"); + self.$raise($$($nesting, 'ArgumentError'), "comparison failed"); } if (value > 0) { @@ -9581,28 +10668,39 @@ if (value == null) value = nil; return result; } } + + n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); ; - n = Opal.const_get_relative($nesting, 'Opal').$coerce_to(n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); return $send(self, 'sort', [], block.$to_proc()).$reverse().$first(n); - }, TMP_Enumerable_max_56.$$arity = -1); + }, $Enumerable_max$62.$$arity = -1); - Opal.defn(self, '$max_by', TMP_Enumerable_max_by_57 = function $$max_by() { - var TMP_58, self = this, $iter = TMP_Enumerable_max_by_57.$$p, block = $iter || nil; + Opal.def(self, '$max_by', $Enumerable_max_by$63 = function $$max_by(n) { + var $iter = $Enumerable_max_by$63.$$p, block = $iter || nil, $$64, self = this; - if ($iter) TMP_Enumerable_max_by_57.$$p = null; + if ($iter) $Enumerable_max_by$63.$$p = null; + + if ($iter) $Enumerable_max_by$63.$$p = null;; + + if (n == null) { + n = nil; + }; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["max_by"], (TMP_58 = function(){var self = TMP_58.$$s || this; + } else { + return $send(self, 'enum_for', ["max_by", n], ($$64 = function(){var self = $$64.$$s == null ? this : $$64.$$s; - return self.$enumerator_size()}, TMP_58.$$s = self, TMP_58.$$arity = 0, TMP_58)) + return self.$enumerator_size()}, $$64.$$s = self, $$64.$$arity = 0, $$64)) + }; + if ($truthy(n['$nil?']())) { + } else { + return $send(self, 'sort_by', [], block.$to_proc()).$reverse().$take(n) }; var result, by; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = Opal.yield1(block, param); if (result === undefined) { @@ -9621,19 +10719,43 @@ if (value == null) value = nil; return result === undefined ? nil : result; ; - }, TMP_Enumerable_max_by_57.$$arity = 0); - Opal.alias(self, "member?", "include?"); + }, $Enumerable_max_by$63.$$arity = -1); + $alias(self, "member?", "include?"); - Opal.defn(self, '$min', TMP_Enumerable_min_59 = function $$min() { - var self = this, $iter = TMP_Enumerable_min_59.$$p, block = $iter || nil; + Opal.def(self, '$min', $Enumerable_min$65 = function $$min(n) { + var $iter = $Enumerable_min$65.$$p, block = $iter || nil, $$66, self = this; + + if ($iter) $Enumerable_min$65.$$p = null; + + + if ($iter) $Enumerable_min$65.$$p = null;; + + if (n == null) { + n = nil; + }; + if ($truthy(n['$nil?']())) { + } else if ((block !== nil)) { + return $send(self, 'sort', [], ($$66 = function(a, b){var self = $$66.$$s == null ? this : $$66.$$s; - if ($iter) TMP_Enumerable_min_59.$$p = null; + + + if (a == null) { + a = nil; + }; + + if (b == null) { + b = nil; + }; + return Opal.yieldX(block, [a, b]);;}, $$66.$$s = self, $$66.$$arity = 2, $$66)).$take(n) + } else { + return self.$sort().$take(n) + }; var result; if (block !== nil) { self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var param = $$($nesting, 'Opal').$destructure(arguments); if (result === undefined) { result = param; @@ -9643,7 +10765,7 @@ if (value == null) value = nil; var value = block(param, result); if (value === nil) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "comparison failed"); + self.$raise($$($nesting, 'ArgumentError'), "comparison failed"); } if (value < 0) { @@ -9653,14 +10775,14 @@ if (value == null) value = nil; } else { self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var param = $$($nesting, 'Opal').$destructure(arguments); if (result === undefined) { result = param; return; } - if (Opal.const_get_relative($nesting, 'Opal').$compare(param, result) < 0) { + if ($$($nesting, 'Opal').$compare(param, result) < 0) { result = param; } }; @@ -9669,26 +10791,36 @@ if (value == null) value = nil; self.$each(); return result === undefined ? nil : result; + ; + }, $Enumerable_min$65.$$arity = -1); - }, TMP_Enumerable_min_59.$$arity = 0); - - Opal.defn(self, '$min_by', TMP_Enumerable_min_by_60 = function $$min_by() { - var TMP_61, self = this, $iter = TMP_Enumerable_min_by_60.$$p, block = $iter || nil; + Opal.def(self, '$min_by', $Enumerable_min_by$67 = function $$min_by(n) { + var $iter = $Enumerable_min_by$67.$$p, block = $iter || nil, $$68, self = this; - if ($iter) TMP_Enumerable_min_by_60.$$p = null; + if ($iter) $Enumerable_min_by$67.$$p = null; + + if ($iter) $Enumerable_min_by$67.$$p = null;; + + if (n == null) { + n = nil; + }; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["min_by"], (TMP_61 = function(){var self = TMP_61.$$s || this; + } else { + return $send(self, 'enum_for', ["min_by", n], ($$68 = function(){var self = $$68.$$s == null ? this : $$68.$$s; - return self.$enumerator_size()}, TMP_61.$$s = self, TMP_61.$$arity = 0, TMP_61)) + return self.$enumerator_size()}, $$68.$$s = self, $$68.$$arity = 0, $$68)) + }; + if ($truthy(n['$nil?']())) { + } else { + return $send(self, 'sort_by', [], block.$to_proc()).$take(n) }; var result, by; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = Opal.yield1(block, param); if (result === undefined) { @@ -9707,21 +10839,36 @@ if (value == null) value = nil; return result === undefined ? nil : result; ; - }, TMP_Enumerable_min_by_60.$$arity = 0); + }, $Enumerable_min_by$67.$$arity = -1); - Opal.defn(self, '$minmax', TMP_Enumerable_minmax_62 = function $$minmax() { - var $a, TMP_63, self = this, $iter = TMP_Enumerable_minmax_62.$$p, block = $iter || nil; + Opal.def(self, '$minmax', $Enumerable_minmax$69 = function $$minmax() { + var $iter = $Enumerable_minmax$69.$$p, block = $iter || nil, $$70, self = this, $ret_or_3 = nil; - if ($iter) TMP_Enumerable_minmax_62.$$p = null; + if ($iter) $Enumerable_minmax$69.$$p = null; - block = ($truthy($a = block) ? $a : $send(self, 'proc', [], (TMP_63 = function(a, b){var self = TMP_63.$$s || this; -if (a == null) a = nil;if (b == null) b = nil; - return a['$<=>'](b)}, TMP_63.$$s = self, TMP_63.$$arity = 2, TMP_63))); + + if ($iter) $Enumerable_minmax$69.$$p = null;; + block = (function() {if ($truthy(($ret_or_3 = block))) { + return $ret_or_3 + } else { + return $send(self, 'proc', [], ($$70 = function(a, b){var self = $$70.$$s == null ? this : $$70.$$s; + + + + if (a == null) { + a = nil; + }; + + if (b == null) { + b = nil; + }; + return a['$<=>'](b);}, $$70.$$s = self, $$70.$$arity = 2, $$70)) + }; return nil; })(); var min = nil, max = nil, first_time = true; self.$each.$$p = function() { - var element = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); + var element = $$($nesting, 'Opal').$destructure(arguments); if (first_time) { min = max = element; first_time = false; @@ -9729,7 +10876,7 @@ if (a == null) a = nil;if (b == null) b = nil; var min_cmp = block.$call(min, element); if (min_cmp === nil) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "comparison failed") + self.$raise($$($nesting, 'ArgumentError'), "comparison failed") } else if (min_cmp > 0) { min = element; } @@ -9737,7 +10884,7 @@ if (a == null) a = nil;if (b == null) b = nil; var max_cmp = block.$call(max, element); if (max_cmp === nil) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "comparison failed") + self.$raise($$($nesting, 'ArgumentError'), "comparison failed") } else if (max_cmp < 0) { max = element; } @@ -9748,122 +10895,192 @@ if (a == null) a = nil;if (b == null) b = nil; return [min, max]; ; - }, TMP_Enumerable_minmax_62.$$arity = 0); + }, $Enumerable_minmax$69.$$arity = 0); - Opal.defn(self, '$minmax_by', TMP_Enumerable_minmax_by_64 = function $$minmax_by() { - var self = this, $iter = TMP_Enumerable_minmax_by_64.$$p, block = $iter || nil; + Opal.def(self, '$minmax_by', $Enumerable_minmax_by$71 = function $$minmax_by() { + var $iter = $Enumerable_minmax_by$71.$$p, block = $iter || nil, $$72, self = this; + + if ($iter) $Enumerable_minmax_by$71.$$p = null; + + + if ($iter) $Enumerable_minmax_by$71.$$p = null;; + if ($truthy(block)) { + } else { + return $send(self, 'enum_for', ["minmax_by"], ($$72 = function(){var self = $$72.$$s == null ? this : $$72.$$s; + + return self.$enumerator_size()}, $$72.$$s = self, $$72.$$arity = 0, $$72)) + }; + + var min_result = nil, + max_result = nil, + min_by, + max_by; + + self.$each.$$p = function() { + var param = $$($nesting, 'Opal').$destructure(arguments), + value = Opal.yield1(block, param); + + if ((min_by === undefined) || (value)['$<=>'](min_by) < 0) { + min_result = param; + min_by = value; + } - if ($iter) TMP_Enumerable_minmax_by_64.$$p = null; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Enumerable_minmax_by_64.$$arity = 0); + if ((max_by === undefined) || (value)['$<=>'](max_by) > 0) { + max_result = param; + max_by = value; + } + }; + + self.$each(); + + return [min_result, max_result]; + ; + }, $Enumerable_minmax_by$71.$$arity = 0); - Opal.defn(self, '$none?', TMP_Enumerable_none$q_65 = function() {try { + Opal.def(self, '$none?', $Enumerable_none$ques$73 = function(pattern) {try { - var TMP_66, TMP_67, self = this, $iter = TMP_Enumerable_none$q_65.$$p, block = $iter || nil; + var $iter = $Enumerable_none$ques$73.$$p, block = $iter || nil, $$74, $$75, $$76, self = this; - if ($iter) TMP_Enumerable_none$q_65.$$p = null; + if ($iter) $Enumerable_none$ques$73.$$p = null; - if ((block !== nil)) { - $send(self, 'each', [], (TMP_66 = function($a_rest){var self = TMP_66.$$s || this, value; + + if ($iter) $Enumerable_none$ques$73.$$p = null;; + ; + if ($truthy(pattern !== undefined)) { + $send(self, 'each', [], ($$74 = function($a){var self = $$74.$$s == null ? this : $$74.$$s, $post_args, value, comparable = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + comparable = comparableForPattern(value); + if ($truthy($send(pattern, 'public_send', ["==="].concat(Opal.to_a(comparable))))) { Opal.ret(false) - } else { + } else { return nil - }}, TMP_66.$$s = self, TMP_66.$$arity = -1, TMP_66)) - } else { - $send(self, 'each', [], (TMP_67 = function($a_rest){var self = TMP_67.$$s || this, value; + };}, $$74.$$s = self, $$74.$$arity = -1, $$74)) + } else if ((block !== nil)) { + $send(self, 'each', [], ($$75 = function($a){var self = $$75.$$s == null ? this : $$75.$$s, $post_args, value; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Opal').$destructure(value))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { Opal.ret(false) - } else { + } else { + return nil + };}, $$75.$$s = self, $$75.$$arity = -1, $$75)) + } else { + $send(self, 'each', [], ($$76 = function($a){var self = $$76.$$s == null ? this : $$76.$$s, $post_args, value, item = nil; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + item = $$($nesting, 'Opal').$destructure(value); + if ($truthy(item)) { + Opal.ret(false) + } else { return nil - }}, TMP_67.$$s = self, TMP_67.$$arity = -1, TMP_67)) + };}, $$76.$$s = self, $$76.$$arity = -1, $$76)) }; return true; } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Enumerable_none$q_65.$$arity = 0); + }, $Enumerable_none$ques$73.$$arity = -1); - Opal.defn(self, '$one?', TMP_Enumerable_one$q_68 = function() {try { + Opal.def(self, '$one?', $Enumerable_one$ques$77 = function(pattern) {try { - var TMP_69, TMP_70, self = this, $iter = TMP_Enumerable_one$q_68.$$p, block = $iter || nil, count = nil; + var $iter = $Enumerable_one$ques$77.$$p, block = $iter || nil, $$78, $$79, $$80, self = this, count = nil; - if ($iter) TMP_Enumerable_one$q_68.$$p = null; + if ($iter) $Enumerable_one$ques$77.$$p = null; + + if ($iter) $Enumerable_one$ques$77.$$p = null;; + ; count = 0; - if ((block !== nil)) { - $send(self, 'each', [], (TMP_69 = function($a_rest){var self = TMP_69.$$s || this, value; + if ($truthy(pattern !== undefined)) { + $send(self, 'each', [], ($$78 = function($a){var self = $$78.$$s == null ? this : $$78.$$s, $post_args, value, comparable = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + comparable = comparableForPattern(value); + if ($truthy($send(pattern, 'public_send', ["==="].concat(Opal.to_a(comparable))))) { count = $rb_plus(count, 1); if ($truthy($rb_gt(count, 1))) { Opal.ret(false) - } else { + } else { return nil }; - } else { + } else { return nil - }}, TMP_69.$$s = self, TMP_69.$$arity = -1, TMP_69)) - } else { - $send(self, 'each', [], (TMP_70 = function($a_rest){var self = TMP_70.$$s || this, value; + };}, $$78.$$s = self, $$78.$$arity = -1, $$78)) + } else if ((block !== nil)) { + $send(self, 'each', [], ($$79 = function($a){var self = $$79.$$s == null ? this : $$79.$$s, $post_args, value; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - value = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - value[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy(Opal.const_get_relative($nesting, 'Opal').$destructure(value))) { - - count = $rb_plus(count, 1); - if ($truthy($rb_gt(count, 1))) { - Opal.ret(false) - } else { - return nil - }; - } else { + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + if ($truthy(Opal.yieldX(block, Opal.to_a(value)))) { + } else { + return nil; + }; + count = $rb_plus(count, 1); + if ($truthy($rb_gt(count, 1))) { + Opal.ret(false) + } else { + return nil + };}, $$79.$$s = self, $$79.$$arity = -1, $$79)) + } else { + $send(self, 'each', [], ($$80 = function($a){var self = $$80.$$s == null ? this : $$80.$$s, $post_args, value; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + value = $post_args;; + if ($truthy($$($nesting, 'Opal').$destructure(value))) { + } else { + return nil; + }; + count = $rb_plus(count, 1); + if ($truthy($rb_gt(count, 1))) { + Opal.ret(false) + } else { return nil - }}, TMP_70.$$s = self, TMP_70.$$arity = -1, TMP_70)) + };}, $$80.$$s = self, $$80.$$arity = -1, $$80)) }; return count['$=='](1); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Enumerable_one$q_68.$$arity = 0); + }, $Enumerable_one$ques$77.$$arity = -1); - Opal.defn(self, '$partition', TMP_Enumerable_partition_71 = function $$partition() { - var TMP_72, self = this, $iter = TMP_Enumerable_partition_71.$$p, block = $iter || nil; + Opal.def(self, '$partition', $Enumerable_partition$81 = function $$partition() { + var $iter = $Enumerable_partition$81.$$p, block = $iter || nil, $$82, self = this; - if ($iter) TMP_Enumerable_partition_71.$$p = null; + if ($iter) $Enumerable_partition$81.$$p = null; + + if ($iter) $Enumerable_partition$81.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["partition"], (TMP_72 = function(){var self = TMP_72.$$s || this; + } else { + return $send(self, 'enum_for', ["partition"], ($$82 = function(){var self = $$82.$$s == null ? this : $$82.$$s; - return self.$enumerator_size()}, TMP_72.$$s = self, TMP_72.$$arity = 0, TMP_72)) + return self.$enumerator_size()}, $$82.$$s = self, $$82.$$arity = 0, $$82)) }; var truthy = [], falsy = [], result; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = Opal.yield1(block, param); if ($truthy(value)) { @@ -9878,25 +11095,27 @@ if (a == null) a = nil;if (b == null) b = nil; return [truthy, falsy]; ; - }, TMP_Enumerable_partition_71.$$arity = 0); - Opal.alias(self, "reduce", "inject"); + }, $Enumerable_partition$81.$$arity = 0); + $alias(self, "reduce", "inject"); - Opal.defn(self, '$reject', TMP_Enumerable_reject_73 = function $$reject() { - var TMP_74, self = this, $iter = TMP_Enumerable_reject_73.$$p, block = $iter || nil; + Opal.def(self, '$reject', $Enumerable_reject$83 = function $$reject() { + var $iter = $Enumerable_reject$83.$$p, block = $iter || nil, $$84, self = this; - if ($iter) TMP_Enumerable_reject_73.$$p = null; + if ($iter) $Enumerable_reject$83.$$p = null; + + if ($iter) $Enumerable_reject$83.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reject"], (TMP_74 = function(){var self = TMP_74.$$s || this; + } else { + return $send(self, 'enum_for', ["reject"], ($$84 = function(){var self = $$84.$$s == null ? this : $$84.$$s; - return self.$enumerator_size()}, TMP_74.$$s = self, TMP_74.$$arity = 0, TMP_74)) + return self.$enumerator_size()}, $$84.$$s = self, $$84.$$arity = 0, $$84)) }; var result = []; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = Opal.yield1(block, param); if ($falsy(value)) { @@ -9908,18 +11127,20 @@ if (a == null) a = nil;if (b == null) b = nil; return result; ; - }, TMP_Enumerable_reject_73.$$arity = 0); + }, $Enumerable_reject$83.$$arity = 0); - Opal.defn(self, '$reverse_each', TMP_Enumerable_reverse_each_75 = function $$reverse_each() { - var TMP_76, self = this, $iter = TMP_Enumerable_reverse_each_75.$$p, block = $iter || nil; + Opal.def(self, '$reverse_each', $Enumerable_reverse_each$85 = function $$reverse_each() { + var $iter = $Enumerable_reverse_each$85.$$p, block = $iter || nil, $$86, self = this; - if ($iter) TMP_Enumerable_reverse_each_75.$$p = null; + if ($iter) $Enumerable_reverse_each$85.$$p = null; + + if ($iter) $Enumerable_reverse_each$85.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reverse_each"], (TMP_76 = function(){var self = TMP_76.$$s || this; + } else { + return $send(self, 'enum_for', ["reverse_each"], ($$86 = function(){var self = $$86.$$s == null ? this : $$86.$$s; - return self.$enumerator_size()}, TMP_76.$$s = self, TMP_76.$$arity = 0, TMP_76)) + return self.$enumerator_size()}, $$86.$$s = self, $$86.$$arity = 0, $$86)) }; var result = []; @@ -9936,27 +11157,35 @@ if (a == null) a = nil;if (b == null) b = nil; return result; ; - }, TMP_Enumerable_reverse_each_75.$$arity = 0); - Opal.alias(self, "select", "find_all"); + }, $Enumerable_reverse_each$85.$$arity = 0); + $alias(self, "select", "find_all"); - Opal.defn(self, '$slice_before', TMP_Enumerable_slice_before_77 = function $$slice_before(pattern) { - var TMP_78, self = this, $iter = TMP_Enumerable_slice_before_77.$$p, block = $iter || nil; + Opal.def(self, '$slice_before', $Enumerable_slice_before$87 = function $$slice_before(pattern) { + var $iter = $Enumerable_slice_before$87.$$p, block = $iter || nil, $$88, self = this; - if ($iter) TMP_Enumerable_slice_before_77.$$p = null; + if ($iter) $Enumerable_slice_before$87.$$p = null; + + if ($iter) $Enumerable_slice_before$87.$$p = null;; + ; if ($truthy(pattern === undefined && block === nil)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "both pattern and block are given")}; + self.$raise($$($nesting, 'ArgumentError'), "both pattern and block are given")}; if ($truthy(pattern !== undefined && block !== nil || arguments.length > 1)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " expected 1)")}; - return $send(Opal.const_get_relative($nesting, 'Enumerator'), 'new', [], (TMP_78 = function(e){var self = TMP_78.$$s || this; -if (e == null) e = nil; - + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " expected 1)")}; + return $send($$($nesting, 'Enumerator'), 'new', [], ($$88 = function(e){var self = $$88.$$s == null ? this : $$88.$$s; + + + + if (e == null) { + e = nil; + }; + var slice = []; if (block !== nil) { if (pattern === undefined) { self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = Opal.yield1(block, param); if ($truthy(value) && slice.length > 0) { @@ -9969,7 +11198,7 @@ if (e == null) e = nil; } else { self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = block(param, pattern.$dup()); if ($truthy(value) && slice.length > 0) { @@ -9983,7 +11212,7 @@ if (e == null) e = nil; } else { self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = pattern['$==='](param); if ($truthy(value) && slice.length > 0) { @@ -10000,29 +11229,42 @@ if (e == null) e = nil; if (slice.length > 0) { e['$<<'](slice); } - }, TMP_78.$$s = self, TMP_78.$$arity = 1, TMP_78)); - }, TMP_Enumerable_slice_before_77.$$arity = -1); + ;}, $$88.$$s = self, $$88.$$arity = 1, $$88)); + }, $Enumerable_slice_before$87.$$arity = -1); - Opal.defn(self, '$slice_after', TMP_Enumerable_slice_after_79 = function $$slice_after(pattern) { - var TMP_80, TMP_81, self = this, $iter = TMP_Enumerable_slice_after_79.$$p, block = $iter || nil; + Opal.def(self, '$slice_after', $Enumerable_slice_after$89 = function $$slice_after(pattern) { + var $iter = $Enumerable_slice_after$89.$$p, block = $iter || nil, $$90, $$91, self = this; - if ($iter) TMP_Enumerable_slice_after_79.$$p = null; + if ($iter) $Enumerable_slice_after$89.$$p = null; + + if ($iter) $Enumerable_slice_after$89.$$p = null;; + ; if ($truthy(pattern === undefined && block === nil)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "both pattern and block are given")}; + self.$raise($$($nesting, 'ArgumentError'), "both pattern and block are given")}; if ($truthy(pattern !== undefined && block !== nil || arguments.length > 1)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " expected 1)")}; + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " expected 1)")}; if ($truthy(pattern !== undefined)) { - block = $send(self, 'proc', [], (TMP_80 = function(e){var self = TMP_80.$$s || this; -if (e == null) e = nil; - return pattern['$==='](e)}, TMP_80.$$s = self, TMP_80.$$arity = 1, TMP_80))}; - return $send(Opal.const_get_relative($nesting, 'Enumerator'), 'new', [], (TMP_81 = function(yielder){var self = TMP_81.$$s || this; -if (yielder == null) yielder = nil; - + block = $send(self, 'proc', [], ($$90 = function(e){var self = $$90.$$s == null ? this : $$90.$$s; + + + + if (e == null) { + e = nil; + }; + return pattern['$==='](e);}, $$90.$$s = self, $$90.$$arity = 1, $$90))}; + return $send($$($nesting, 'Enumerator'), 'new', [], ($$91 = function(yielder){var self = $$91.$$s == null ? this : $$91.$$s; + + + + if (yielder == null) { + yielder = nil; + }; + var accumulate; self.$each.$$p = function() { - var element = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var element = $$($nesting, 'Opal').$destructure(arguments), end_chunk = Opal.yield1(block, element); if (accumulate == null) { @@ -10043,25 +11285,32 @@ if (yielder == null) yielder = nil; if (accumulate != null) { yielder.$yield(accumulate); } - }, TMP_81.$$s = self, TMP_81.$$arity = 1, TMP_81)); - }, TMP_Enumerable_slice_after_79.$$arity = -1); + ;}, $$91.$$s = self, $$91.$$arity = 1, $$91)); + }, $Enumerable_slice_after$89.$$arity = -1); - Opal.defn(self, '$slice_when', TMP_Enumerable_slice_when_82 = function $$slice_when() { - var TMP_83, self = this, $iter = TMP_Enumerable_slice_when_82.$$p, block = $iter || nil; + Opal.def(self, '$slice_when', $Enumerable_slice_when$92 = function $$slice_when() { + var $iter = $Enumerable_slice_when$92.$$p, block = $iter || nil, $$93, self = this; - if ($iter) TMP_Enumerable_slice_when_82.$$p = null; + if ($iter) $Enumerable_slice_when$92.$$p = null; + + if ($iter) $Enumerable_slice_when$92.$$p = null;; if ((block !== nil)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1)") + } else { + self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1)") }; - return $send(Opal.const_get_relative($nesting, 'Enumerator'), 'new', [], (TMP_83 = function(yielder){var self = TMP_83.$$s || this; -if (yielder == null) yielder = nil; - + return $send($$($nesting, 'Enumerator'), 'new', [], ($$93 = function(yielder){var self = $$93.$$s == null ? this : $$93.$$s; + + + + if (yielder == null) { + yielder = nil; + }; + var slice = nil, last_after = nil; self.$each_cons.$$p = function() { - var params = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var params = $$($nesting, 'Opal').$destructure(arguments), before = params[0], after = params[1], match = Opal.yieldX(block, [before, after]); @@ -10087,194 +11336,267 @@ if (yielder == null) yielder = nil; slice.push(last_after); yielder.$yield(slice); } - }, TMP_83.$$s = self, TMP_83.$$arity = 1, TMP_83)); - }, TMP_Enumerable_slice_when_82.$$arity = 0); + ;}, $$93.$$s = self, $$93.$$arity = 1, $$93)); + }, $Enumerable_slice_when$92.$$arity = 0); - Opal.defn(self, '$sort', TMP_Enumerable_sort_84 = function $$sort() { - var TMP_85, self = this, $iter = TMP_Enumerable_sort_84.$$p, block = $iter || nil, ary = nil; + Opal.def(self, '$sort', $Enumerable_sort$94 = function $$sort() { + var $iter = $Enumerable_sort$94.$$p, block = $iter || nil, $$95, self = this, ary = nil; - if ($iter) TMP_Enumerable_sort_84.$$p = null; + if ($iter) $Enumerable_sort$94.$$p = null; + + if ($iter) $Enumerable_sort$94.$$p = null;; ary = self.$to_a(); if ((block !== nil)) { - } else { - block = $send(self, 'lambda', [], (TMP_85 = function(a, b){var self = TMP_85.$$s || this; -if (a == null) a = nil;if (b == null) b = nil; - return a['$<=>'](b)}, TMP_85.$$s = self, TMP_85.$$arity = 2, TMP_85)) + } else { + block = $lambda(($$95 = function(a, b){var self = $$95.$$s == null ? this : $$95.$$s; + + + + if (a == null) { + a = nil; + }; + + if (b == null) { + b = nil; + }; + return a['$<=>'](b);}, $$95.$$s = self, $$95.$$arity = 2, $$95)) }; return $send(ary, 'sort', [], block.$to_proc()); - }, TMP_Enumerable_sort_84.$$arity = 0); + }, $Enumerable_sort$94.$$arity = 0); - Opal.defn(self, '$sort_by', TMP_Enumerable_sort_by_86 = function $$sort_by() { - var TMP_87, TMP_88, TMP_89, TMP_90, self = this, $iter = TMP_Enumerable_sort_by_86.$$p, block = $iter || nil, dup = nil; + Opal.def(self, '$sort_by', $Enumerable_sort_by$96 = function $$sort_by() { + var $iter = $Enumerable_sort_by$96.$$p, block = $iter || nil, $$97, $$98, $$99, $$100, self = this, dup = nil; - if ($iter) TMP_Enumerable_sort_by_86.$$p = null; + if ($iter) $Enumerable_sort_by$96.$$p = null; + + if ($iter) $Enumerable_sort_by$96.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["sort_by"], (TMP_87 = function(){var self = TMP_87.$$s || this; + } else { + return $send(self, 'enum_for', ["sort_by"], ($$97 = function(){var self = $$97.$$s == null ? this : $$97.$$s; - return self.$enumerator_size()}, TMP_87.$$s = self, TMP_87.$$arity = 0, TMP_87)) + return self.$enumerator_size()}, $$97.$$s = self, $$97.$$arity = 0, $$97)) }; - dup = $send(self, 'map', [], (TMP_88 = function(){var self = TMP_88.$$s || this, arg = nil; + dup = $send(self, 'map', [], ($$98 = function(){var self = $$98.$$s == null ? this : $$98.$$s, arg = nil; - - arg = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments); - return [Opal.yield1(block, arg), arg];}, TMP_88.$$s = self, TMP_88.$$arity = 0, TMP_88)); - $send(dup, 'sort!', [], (TMP_89 = function(a, b){var self = TMP_89.$$s || this; -if (a == null) a = nil;if (b == null) b = nil; - return (a[0])['$<=>'](b[0])}, TMP_89.$$s = self, TMP_89.$$arity = 2, TMP_89)); - return $send(dup, 'map!', [], (TMP_90 = function(i){var self = TMP_90.$$s || this; -if (i == null) i = nil; - return i[1]}, TMP_90.$$s = self, TMP_90.$$arity = 1, TMP_90)); - }, TMP_Enumerable_sort_by_86.$$arity = 0); + + arg = $$($nesting, 'Opal').$destructure(arguments); + return [Opal.yield1(block, arg), arg];}, $$98.$$s = self, $$98.$$arity = 0, $$98)); + $send(dup, 'sort!', [], ($$99 = function(a, b){var self = $$99.$$s == null ? this : $$99.$$s; + + + + if (a == null) { + a = nil; + }; + + if (b == null) { + b = nil; + }; + return (a[0])['$<=>'](b[0]);}, $$99.$$s = self, $$99.$$arity = 2, $$99)); + return $send(dup, 'map!', [], ($$100 = function(i){var self = $$100.$$s == null ? this : $$100.$$s; + + + + if (i == null) { + i = nil; + }; + return i[1];;}, $$100.$$s = self, $$100.$$arity = 1, $$100)); + }, $Enumerable_sort_by$96.$$arity = 0); - Opal.defn(self, '$sum', TMP_Enumerable_sum_91 = function $$sum(initial) { - var TMP_92, self = this, $iter = TMP_Enumerable_sum_91.$$p, block = $iter || nil, result = nil; + Opal.def(self, '$sum', $Enumerable_sum$101 = function $$sum(initial) { + var $$102, $iter = $Enumerable_sum$101.$$p, $yield = $iter || nil, self = this, result = nil; + if ($iter) $Enumerable_sum$101.$$p = null; + + if (initial == null) { initial = 0; - } - if ($iter) TMP_Enumerable_sum_91.$$p = null; - + }; result = initial; - $send(self, 'each', [], (TMP_92 = function($a_rest){var self = TMP_92.$$s || this, args, item = nil; + $send(self, 'each', [], ($$102 = function($a){var self = $$102.$$s == null ? this : $$102.$$s, $post_args, args, item = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - if ((block !== nil)) { - item = $send(block, 'call', Opal.to_a(args)) - } else { - item = Opal.const_get_relative($nesting, 'Opal').$destructure(args) - }; - return (result = $rb_plus(result, item));}, TMP_92.$$s = self, TMP_92.$$arity = -1, TMP_92)); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + item = (function() {if (($yield !== nil)) { + return Opal.yieldX($yield, Opal.to_a(args)); + } else { + return $$($nesting, 'Opal').$destructure(args) + }; return nil; })(); + return (result = $rb_plus(result, item));}, $$102.$$s = self, $$102.$$arity = -1, $$102)); return result; - }, TMP_Enumerable_sum_91.$$arity = -1); + }, $Enumerable_sum$101.$$arity = -1); - Opal.defn(self, '$take', TMP_Enumerable_take_93 = function $$take(num) { + Opal.def(self, '$take', $Enumerable_take$103 = function $$take(num) { var self = this; return self.$first(num) - }, TMP_Enumerable_take_93.$$arity = 1); + }, $Enumerable_take$103.$$arity = 1); - Opal.defn(self, '$take_while', TMP_Enumerable_take_while_94 = function $$take_while() {try { + Opal.def(self, '$take_while', $Enumerable_take_while$104 = function $$take_while() {try { - var TMP_95, self = this, $iter = TMP_Enumerable_take_while_94.$$p, block = $iter || nil, result = nil; + var $iter = $Enumerable_take_while$104.$$p, block = $iter || nil, $$105, self = this, result = nil; - if ($iter) TMP_Enumerable_take_while_94.$$p = null; + if ($iter) $Enumerable_take_while$104.$$p = null; + + if ($iter) $Enumerable_take_while$104.$$p = null;; if ($truthy(block)) { - } else { + } else { return self.$enum_for("take_while") }; result = []; - return $send(self, 'each', [], (TMP_95 = function($a_rest){var self = TMP_95.$$s || this, args, value = nil; + return $send(self, 'each', [], ($$105 = function($a){var self = $$105.$$s == null ? this : $$105.$$s, $post_args, args, value = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - value = Opal.const_get_relative($nesting, 'Opal').$destructure(args); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + value = $$($nesting, 'Opal').$destructure(args); if ($truthy(Opal.yield1(block, value))) { - } else { + } else { Opal.ret(result) }; - return result.push(value);}, TMP_95.$$s = self, TMP_95.$$arity = -1, TMP_95)); + return result.push(value);;}, $$105.$$s = self, $$105.$$arity = -1, $$105)); } catch ($returner) { if ($returner === Opal.returner) { return $returner.$v } throw $returner; } - }, TMP_Enumerable_take_while_94.$$arity = 0); + }, $Enumerable_take_while$104.$$arity = 0); - Opal.defn(self, '$uniq', TMP_Enumerable_uniq_96 = function $$uniq() { - var TMP_97, self = this, $iter = TMP_Enumerable_uniq_96.$$p, block = $iter || nil, hash = nil; + Opal.def(self, '$uniq', $Enumerable_uniq$106 = function $$uniq() { + var $iter = $Enumerable_uniq$106.$$p, block = $iter || nil, $$107, self = this, hash = nil; - if ($iter) TMP_Enumerable_uniq_96.$$p = null; + if ($iter) $Enumerable_uniq$106.$$p = null; + + if ($iter) $Enumerable_uniq$106.$$p = null;; hash = $hash2([], {}); - $send(self, 'each', [], (TMP_97 = function($a_rest){var self = TMP_97.$$s || this, args, value = nil, produced = nil, $writer = nil; + $send(self, 'each', [], ($$107 = function($a){var self = $$107.$$s == null ? this : $$107.$$s, $post_args, args, value = nil, produced = nil, $writer = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - value = Opal.const_get_relative($nesting, 'Opal').$destructure(args); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + value = $$($nesting, 'Opal').$destructure(args); produced = (function() {if ((block !== nil)) { - return block.$call(value) - } else { + return Opal.yield1(block, value); + } else { return value }; return nil; })(); - if ($truthy(hash['$has_key?'](produced))) { + if ($truthy(hash['$key?'](produced))) { return nil - } else { + } else { $writer = [produced, value]; $send(hash, '[]=', Opal.to_a($writer)); return $writer[$rb_minus($writer["length"], 1)]; - };}, TMP_97.$$s = self, TMP_97.$$arity = -1, TMP_97)); + };}, $$107.$$s = self, $$107.$$arity = -1, $$107)); return hash.$values(); - }, TMP_Enumerable_uniq_96.$$arity = 0); - Opal.alias(self, "to_a", "entries"); + }, $Enumerable_uniq$106.$$arity = 0); + + Opal.def(self, '$tally', $Enumerable_tally$108 = function $$tally() { + var self = this; + + return $send($send(self, 'group_by', [], "itself".$to_proc()), 'transform_values', [], "count".$to_proc()) + }, $Enumerable_tally$108.$$arity = 0); + $alias(self, "to_a", "entries"); - Opal.defn(self, '$zip', TMP_Enumerable_zip_98 = function $$zip($a_rest) { - var self = this, others, $iter = TMP_Enumerable_zip_98.$$p, block = $iter || nil; + Opal.def(self, '$to_h', $Enumerable_to_h$109 = function $$to_h($a) { + var $iter = $Enumerable_to_h$109.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - others = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - others[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Enumerable_zip_98.$$p = null; - return $send(self.$to_a(), 'zip', Opal.to_a(others)) - }, TMP_Enumerable_zip_98.$$arity = -1); + if ($iter) $Enumerable_to_h$109.$$p = null; + + + if ($iter) $Enumerable_to_h$109.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ((block !== nil)) { + return $send($send(self, 'map', [], block.$to_proc()), 'to_h', Opal.to_a(args))}; + + var hash = $hash2([], {}); + + self.$each.$$p = function() { + var param = $$($nesting, 'Opal').$destructure(arguments); + var ary = $$($nesting, 'Opal')['$coerce_to?'](param, $$($nesting, 'Array'), "to_ary"), key, val; + if (!ary.$$is_array) { + self.$raise($$($nesting, 'TypeError'), "" + "wrong element type " + ((ary).$class()) + " (expected array)") + } + if (ary.length !== 2) { + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong array length (expected 2, was " + ((ary).$length()) + ")") + } + key = ary[0]; + val = ary[1]; + + Opal.hash_put(hash, key, val); + }; + + self.$each.apply(self, args); + + return hash; + ; + }, $Enumerable_to_h$109.$$arity = -1); + return (Opal.def(self, '$zip', $Enumerable_zip$110 = function $$zip($a) { + var $iter = $Enumerable_zip$110.$$p, block = $iter || nil, $post_args, others, self = this; + + if ($iter) $Enumerable_zip$110.$$p = null; + + + if ($iter) $Enumerable_zip$110.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + others = $post_args;; + return $send(self.$to_a(), 'zip', Opal.to_a(others)); + }, $Enumerable_zip$110.$$arity = -1), nil) && 'zip'; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/enumerator"] = function(Opal) { +Opal.modules["corelib/enumerator"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $falsy = Opal.falsy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $breaker = Opal.breaker, $slice = Opal.slice, $falsy = Opal.falsy, $truthy = Opal.truthy, $coerce_to = Opal.coerce_to, $klass = Opal.klass, $send = Opal.send, $alias = Opal.alias, $send2 = Opal.send2, $find_super = Opal.find_super; - Opal.add_stubs(['$require', '$include', '$allocate', '$new', '$to_proc', '$coerce_to', '$nil?', '$empty?', '$+', '$class', '$__send__', '$===', '$call', '$enum_for', '$size', '$destructure', '$inspect', '$[]', '$raise', '$yield', '$each', '$enumerator_size', '$respond_to?', '$try_convert', '$<', '$for']); + Opal.add_stubs(['$require', '$include', '$allocate', '$new', '$to_proc', '$!', '$respond_to?', '$nil?', '$empty?', '$+', '$class', '$__send__', '$call', '$enum_for', '$size', '$destructure', '$inspect', '$any?', '$[]', '$raise', '$yield', '$each', '$enumerator_size', '$try_convert', '$<', '$===', '$for']); self.$require("corelib/enumerable"); return (function($base, $super, $parent_nesting) { - function $Enumerator(){}; - var self = $Enumerator = $klass($base, $super, 'Enumerator', $Enumerator); + var self = $klass($base, $super, 'Enumerator'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Enumerator_for_1, TMP_Enumerator_initialize_2, TMP_Enumerator_each_3, TMP_Enumerator_size_4, TMP_Enumerator_with_index_5, TMP_Enumerator_inspect_7; + var $nesting = [self].concat($parent_nesting), $Enumerator_for$1, $Enumerator_initialize$2, $Enumerator_each$3, $Enumerator_size$4, $Enumerator_with_index$5, $Enumerator_each_with_index$7, $Enumerator_inspect$9; - def.size = def.args = def.object = def.method = nil; + self.$$prototype.size = self.$$prototype.args = self.$$prototype.object = self.$$prototype.method = nil; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); - def.$$is_enumerator = true; - Opal.defs(self, '$for', TMP_Enumerator_for_1 = function(object, method, $a_rest) { - var self = this, args, $iter = TMP_Enumerator_for_1.$$p, block = $iter || nil; + self.$include($$($nesting, 'Enumerable')); + self.$$prototype.$$is_enumerator = true; + Opal.defs(self, '$for', $Enumerator_for$1 = function(object, $a, $b) { + var $iter = $Enumerator_for$1.$$p, block = $iter || nil, $post_args, method, args, self = this; + if ($iter) $Enumerator_for$1.$$p = null; + + + if ($iter) $Enumerator_for$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + if ($post_args.length > 0) { + method = $post_args[0]; + $post_args.splice(0, 1); + } if (method == null) { method = "each"; - } - var $args_len = arguments.length, $rest_len = $args_len - 2; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 2; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 2] = arguments[$arg_idx]; - } - if ($iter) TMP_Enumerator_for_1.$$p = null; + }; + + args = $post_args;; var obj = self.$allocate(); @@ -10284,86 +11606,104 @@ Opal.modules["corelib/enumerator"] = function(Opal) { obj.args = args; return obj; + ; + }, $Enumerator_for$1.$$arity = -2); - }, TMP_Enumerator_for_1.$$arity = -2); - - Opal.defn(self, '$initialize', TMP_Enumerator_initialize_2 = function $$initialize($a_rest) { - var self = this, $iter = TMP_Enumerator_initialize_2.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Enumerator_initialize$2 = function $$initialize($a) { + var $iter = $Enumerator_initialize$2.$$p, block = $iter || nil, $post_args, $rest_arg, self = this, $ret_or_1 = nil; - if ($iter) TMP_Enumerator_initialize_2.$$p = null; + if ($iter) $Enumerator_initialize$2.$$p = null; + + + if ($iter) $Enumerator_initialize$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; if ($truthy(block)) { - self.object = $send(Opal.const_get_relative($nesting, 'Generator'), 'new', [], block.$to_proc()); + self.object = $send($$($nesting, 'Generator'), 'new', [], block.$to_proc()); self.method = "each"; self.args = []; self.size = arguments[0] || nil; - if ($truthy(self.size)) { - return (self.size = Opal.const_get_relative($nesting, 'Opal').$coerce_to(self.size, Opal.const_get_relative($nesting, 'Integer'), "to_int")) - } else { + if ($truthy((function() {if ($truthy(($ret_or_1 = self.size))) { + return self.size['$respond_to?']("call")['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { + return (self.size = $coerce_to(self.size, $$($nesting, 'Integer'), 'to_int')) + } else { return nil }; - } else { + } else { self.object = arguments[0]; self.method = arguments[1] || "each"; self.args = $slice.call(arguments, 2); return (self.size = nil); - } - }, TMP_Enumerator_initialize_2.$$arity = -1); + }; + }, $Enumerator_initialize$2.$$arity = -1); - Opal.defn(self, '$each', TMP_Enumerator_each_3 = function $$each($a_rest) { - var $b, self = this, args, $iter = TMP_Enumerator_each_3.$$p, block = $iter || nil; + Opal.def(self, '$each', $Enumerator_each$3 = function $$each($a) { + var $iter = $Enumerator_each$3.$$p, block = $iter || nil, $post_args, args, self = this, $ret_or_2 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Enumerator_each_3.$$p = null; + if ($iter) $Enumerator_each$3.$$p = null; + + + if ($iter) $Enumerator_each$3.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); - if ($truthy(($truthy($b = block['$nil?']()) ? args['$empty?']() : $b))) { + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_2 = block['$nil?']()))) { + return args['$empty?']() + } else { + return $ret_or_2 + }; return nil; })())) { return self}; args = $rb_plus(self.args, args); if ($truthy(block['$nil?']())) { return $send(self.$class(), 'new', [self.object, self.method].concat(Opal.to_a(args)))}; return $send(self.object, '__send__', [self.method].concat(Opal.to_a(args)), block.$to_proc()); - }, TMP_Enumerator_each_3.$$arity = -1); + }, $Enumerator_each$3.$$arity = -1); - Opal.defn(self, '$size', TMP_Enumerator_size_4 = function $$size() { + Opal.def(self, '$size', $Enumerator_size$4 = function $$size() { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Proc')['$==='](self.size))) { + if ($truthy(self.size['$respond_to?']("call"))) { return $send(self.size, 'call', Opal.to_a(self.args)) - } else { + } else { return self.size } - }, TMP_Enumerator_size_4.$$arity = 0); + }, $Enumerator_size$4.$$arity = 0); - Opal.defn(self, '$with_index', TMP_Enumerator_with_index_5 = function $$with_index(offset) { - var TMP_6, self = this, $iter = TMP_Enumerator_with_index_5.$$p, block = $iter || nil; + Opal.def(self, '$with_index', $Enumerator_with_index$5 = function $$with_index(offset) { + var $iter = $Enumerator_with_index$5.$$p, block = $iter || nil, $$6, self = this; + if ($iter) $Enumerator_with_index$5.$$p = null; + + + if ($iter) $Enumerator_with_index$5.$$p = null;; + if (offset == null) { offset = 0; - } - if ($iter) TMP_Enumerator_with_index_5.$$p = null; - - if ($truthy(offset)) { - offset = Opal.const_get_relative($nesting, 'Opal').$coerce_to(offset, Opal.const_get_relative($nesting, 'Integer'), "to_int") - } else { - offset = 0 }; + offset = (function() {if ($truthy(offset)) { + return $coerce_to(offset, $$($nesting, 'Integer'), 'to_int') + } else { + return 0 + }; return nil; })(); if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["with_index", offset], (TMP_6 = function(){var self = TMP_6.$$s || this; + } else { + return $send(self, 'enum_for', ["with_index", offset], ($$6 = function(){var self = $$6.$$s == null ? this : $$6.$$s; - return self.$size()}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6)) + return self.$size()}, $$6.$$s = self, $$6.$$arity = 0, $$6)) }; var result, index = offset; self.$each.$$p = function() { - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(arguments), + var param = $$($nesting, 'Opal').$destructure(arguments), value = block(param, index); index++; @@ -10373,53 +11713,69 @@ Opal.modules["corelib/enumerator"] = function(Opal) { return self.$each(); ; - }, TMP_Enumerator_with_index_5.$$arity = -1); - Opal.alias(self, "with_object", "each_with_object"); + }, $Enumerator_with_index$5.$$arity = -1); + $alias(self, "with_object", "each_with_object"); + + Opal.def(self, '$each_with_index', $Enumerator_each_with_index$7 = function $$each_with_index() { + var $iter = $Enumerator_each_with_index$7.$$p, block = $iter || nil, $$8, self = this; + + if ($iter) $Enumerator_each_with_index$7.$$p = null; + + + if ($iter) $Enumerator_each_with_index$7.$$p = null;; + if ((block !== nil)) { + } else { + return $send(self, 'enum_for', ["each_with_index"], ($$8 = function(){var self = $$8.$$s == null ? this : $$8.$$s; + + return self.$size()}, $$8.$$s = self, $$8.$$arity = 0, $$8)) + }; + $send2(self, $find_super(self, 'each_with_index', $Enumerator_each_with_index$7, false, true), 'each_with_index', [], $iter); + return self.object; + }, $Enumerator_each_with_index$7.$$arity = 0); - Opal.defn(self, '$inspect', TMP_Enumerator_inspect_7 = function $$inspect() { + Opal.def(self, '$inspect', $Enumerator_inspect$9 = function $$inspect() { var self = this, result = nil; result = "" + "#<" + (self.$class()) + ": " + (self.object.$inspect()) + ":" + (self.method); - if ($truthy(self.args['$empty?']())) { - } else { - result = $rb_plus(result, "" + "(" + (self.args.$inspect()['$[]'](Opal.const_get_relative($nesting, 'Range').$new(1, -2))) + ")") - }; + if ($truthy(self.args['$any?']())) { + result = $rb_plus(result, "" + "(" + (self.args.$inspect()['$[]']($$($nesting, 'Range').$new(1, -2))) + ")")}; return $rb_plus(result, ">"); - }, TMP_Enumerator_inspect_7.$$arity = 0); + }, $Enumerator_inspect$9.$$arity = 0); (function($base, $super, $parent_nesting) { - function $Generator(){}; - var self = $Generator = $klass($base, $super, 'Generator', $Generator); + var self = $klass($base, $super, 'Generator'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Generator_initialize_8, TMP_Generator_each_9; + var $nesting = [self].concat($parent_nesting), $Generator_initialize$10, $Generator_each$11; - def.block = nil; + self.$$prototype.block = nil; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); + self.$include($$($nesting, 'Enumerable')); - Opal.defn(self, '$initialize', TMP_Generator_initialize_8 = function $$initialize() { - var self = this, $iter = TMP_Generator_initialize_8.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Generator_initialize$10 = function $$initialize() { + var $iter = $Generator_initialize$10.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Generator_initialize_8.$$p = null; + if ($iter) $Generator_initialize$10.$$p = null; + + if ($iter) $Generator_initialize$10.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'LocalJumpError'), "no block given") + } else { + self.$raise($$($nesting, 'LocalJumpError'), "no block given") }; return (self.block = block); - }, TMP_Generator_initialize_8.$$arity = 0); - return (Opal.defn(self, '$each', TMP_Generator_each_9 = function $$each($a_rest) { - var self = this, args, $iter = TMP_Generator_each_9.$$p, block = $iter || nil, yielder = nil; + }, $Generator_initialize$10.$$arity = 0); + return (Opal.def(self, '$each', $Generator_each$11 = function $$each($a) { + var $iter = $Generator_each$11.$$p, block = $iter || nil, $post_args, args, self = this, yielder = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Generator_each_9.$$p = null; + if ($iter) $Generator_each$11.$$p = null; - yielder = $send(Opal.const_get_relative($nesting, 'Yielder'), 'new', [], block.$to_proc()); + + if ($iter) $Generator_each$11.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + yielder = $send($$($nesting, 'Yielder'), 'new', [], block.$to_proc()); try { args.unshift(yielder); @@ -10436,33 +11792,34 @@ Opal.modules["corelib/enumerator"] = function(Opal) { } ; return self; - }, TMP_Generator_each_9.$$arity = -1), nil) && 'each'; + }, $Generator_each$11.$$arity = -1), nil) && 'each'; })($nesting[0], null, $nesting); (function($base, $super, $parent_nesting) { - function $Yielder(){}; - var self = $Yielder = $klass($base, $super, 'Yielder', $Yielder); + var self = $klass($base, $super, 'Yielder'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Yielder_initialize_10, TMP_Yielder_yield_11, TMP_Yielder_$lt$lt_12; + var $nesting = [self].concat($parent_nesting), $Yielder_initialize$12, $Yielder_yield$13, $Yielder_$lt$lt$14; - def.block = nil; + self.$$prototype.block = nil; - Opal.defn(self, '$initialize', TMP_Yielder_initialize_10 = function $$initialize() { - var self = this, $iter = TMP_Yielder_initialize_10.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Yielder_initialize$12 = function $$initialize() { + var $iter = $Yielder_initialize$12.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Yielder_initialize_10.$$p = null; - return (self.block = block) - }, TMP_Yielder_initialize_10.$$arity = 0); + if ($iter) $Yielder_initialize$12.$$p = null; + + + if ($iter) $Yielder_initialize$12.$$p = null;; + return (self.block = block); + }, $Yielder_initialize$12.$$arity = 0); - Opal.defn(self, '$yield', TMP_Yielder_yield_11 = function($a_rest) { - var self = this, values; + Opal.def(self, '$yield', $Yielder_yield$13 = function($a) { + var $post_args, values, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - values = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - values[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + values = $post_args;; var value = Opal.yieldX(self.block, values); @@ -10471,207 +11828,235 @@ Opal.modules["corelib/enumerator"] = function(Opal) { } return value; - - }, TMP_Yielder_yield_11.$$arity = -1); - return (Opal.defn(self, '$<<', TMP_Yielder_$lt$lt_12 = function($a_rest) { - var self = this, values; + ; + }, $Yielder_yield$13.$$arity = -1); + return (Opal.def(self, '$<<', $Yielder_$lt$lt$14 = function($a) { + var $post_args, values, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - values = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - values[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + values = $post_args;; $send(self, 'yield', Opal.to_a(values)); return self; - }, TMP_Yielder_$lt$lt_12.$$arity = -1), nil) && '<<'; + }, $Yielder_$lt$lt$14.$$arity = -1), nil) && '<<'; })($nesting[0], null, $nesting); - return (function($base, $super, $parent_nesting) { - function $Lazy(){}; - var self = $Lazy = $klass($base, $super, 'Lazy', $Lazy); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Lazy'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Lazy_initialize_13, TMP_Lazy_lazy_16, TMP_Lazy_collect_17, TMP_Lazy_collect_concat_19, TMP_Lazy_drop_24, TMP_Lazy_drop_while_25, TMP_Lazy_enum_for_27, TMP_Lazy_find_all_28, TMP_Lazy_grep_30, TMP_Lazy_reject_33, TMP_Lazy_take_36, TMP_Lazy_take_while_37, TMP_Lazy_inspect_39; + var $nesting = [self].concat($parent_nesting), $Lazy_initialize$15, $Lazy_lazy$18, $Lazy_collect$19, $Lazy_collect_concat$21, $Lazy_drop$25, $Lazy_drop_while$27, $Lazy_enum_for$29, $Lazy_find_all$30, $Lazy_grep$32, $Lazy_reject$35, $Lazy_take$37, $Lazy_take_while$39, $Lazy_inspect$41; - def.enumerator = nil; + self.$$prototype.enumerator = nil; (function($base, $super, $parent_nesting) { - function $StopLazyError(){}; - var self = $StopLazyError = $klass($base, $super, 'StopLazyError', $StopLazyError); + var self = $klass($base, $super, 'StopLazyError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'Exception'), $nesting); + })($nesting[0], $$($nesting, 'Exception'), $nesting); - Opal.defn(self, '$initialize', TMP_Lazy_initialize_13 = function $$initialize(object, size) { - var TMP_14, self = this, $iter = TMP_Lazy_initialize_13.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Lazy_initialize$15 = function $$initialize(object, size) { + var $iter = $Lazy_initialize$15.$$p, block = $iter || nil, $$16, self = this; + if ($iter) $Lazy_initialize$15.$$p = null; + + + if ($iter) $Lazy_initialize$15.$$p = null;; + if (size == null) { size = nil; - } - if ($iter) TMP_Lazy_initialize_13.$$p = null; - + }; if ((block !== nil)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to call lazy new without a block") + } else { + self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy new without a block") }; self.enumerator = object; - return $send(self, Opal.find_super_dispatcher(self, 'initialize', TMP_Lazy_initialize_13, false), [size], (TMP_14 = function(yielder, $a_rest){var self = TMP_14.$$s || this, each_args, TMP_15; + return $send2(self, $find_super(self, 'initialize', $Lazy_initialize$15, false, true), 'initialize', [size], ($$16 = function(yielder, $a){var self = $$16.$$s == null ? this : $$16.$$s, $post_args, each_args, $$17; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - each_args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - each_args[$arg_idx - 1] = arguments[$arg_idx]; - }if (yielder == null) yielder = nil; - + + + if (yielder == null) { + yielder = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + each_args = $post_args;; try { - return $send(object, 'each', Opal.to_a(each_args), (TMP_15 = function($a_rest){var self = TMP_15.$$s || this, args; + return $send(object, 'each', Opal.to_a(each_args), ($$17 = function($b){var self = $$17.$$s == null ? this : $$17.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - args.unshift(yielder); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + + args.unshift(yielder); - Opal.yieldX(block, args); - }, TMP_15.$$s = self, TMP_15.$$arity = -1, TMP_15)) + Opal.yieldX(block, args); + ;}, $$17.$$s = self, $$17.$$arity = -1, $$17)) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'Exception')])) { + if (Opal.rescue($err, [$$($nesting, 'Exception')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } - };}, TMP_14.$$s = self, TMP_14.$$arity = -2, TMP_14)); - }, TMP_Lazy_initialize_13.$$arity = -2); - Opal.alias(self, "force", "to_a"); + };}, $$16.$$s = self, $$16.$$arity = -2, $$16)); + }, $Lazy_initialize$15.$$arity = -2); + $alias(self, "force", "to_a"); - Opal.defn(self, '$lazy', TMP_Lazy_lazy_16 = function $$lazy() { + Opal.def(self, '$lazy', $Lazy_lazy$18 = function $$lazy() { var self = this; return self - }, TMP_Lazy_lazy_16.$$arity = 0); + }, $Lazy_lazy$18.$$arity = 0); - Opal.defn(self, '$collect', TMP_Lazy_collect_17 = function $$collect() { - var TMP_18, self = this, $iter = TMP_Lazy_collect_17.$$p, block = $iter || nil; + Opal.def(self, '$collect', $Lazy_collect$19 = function $$collect() { + var $iter = $Lazy_collect$19.$$p, block = $iter || nil, $$20, self = this; - if ($iter) TMP_Lazy_collect_17.$$p = null; + if ($iter) $Lazy_collect$19.$$p = null; + + if ($iter) $Lazy_collect$19.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to call lazy map without a block") + } else { + self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy map without a block") }; - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, self.$enumerator_size()], (TMP_18 = function(enum$, $a_rest){var self = TMP_18.$$s || this, args; + return $send($$($nesting, 'Lazy'), 'new', [self, self.$enumerator_size()], ($$20 = function(enum$, $a){var self = $$20.$$s == null ? this : $$20.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + var value = Opal.yieldX(block, args); enum$.$yield(value); - }, TMP_18.$$s = self, TMP_18.$$arity = -2, TMP_18)); - }, TMP_Lazy_collect_17.$$arity = 0); + ;}, $$20.$$s = self, $$20.$$arity = -2, $$20)); + }, $Lazy_collect$19.$$arity = 0); - Opal.defn(self, '$collect_concat', TMP_Lazy_collect_concat_19 = function $$collect_concat() { - var TMP_20, self = this, $iter = TMP_Lazy_collect_concat_19.$$p, block = $iter || nil; + Opal.def(self, '$collect_concat', $Lazy_collect_concat$21 = function $$collect_concat() { + var $iter = $Lazy_collect_concat$21.$$p, block = $iter || nil, $$22, self = this; - if ($iter) TMP_Lazy_collect_concat_19.$$p = null; + if ($iter) $Lazy_collect_concat$21.$$p = null; + + if ($iter) $Lazy_collect_concat$21.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to call lazy map without a block") + } else { + self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy map without a block") }; - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, nil], (TMP_20 = function(enum$, $a_rest){var self = TMP_20.$$s || this, args, TMP_21, TMP_22; + return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$22 = function(enum$, $a){var self = $$22.$$s == null ? this : $$22.$$s, $post_args, args, $$23, $$24; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + var value = Opal.yieldX(block, args); if ((value)['$respond_to?']("force") && (value)['$respond_to?']("each")) { - $send((value), 'each', [], (TMP_21 = function(v){var self = TMP_21.$$s || this; -if (v == null) v = nil; - return enum$.$yield(v)}, TMP_21.$$s = self, TMP_21.$$arity = 1, TMP_21)) + $send((value), 'each', [], ($$23 = function(v){var self = $$23.$$s == null ? this : $$23.$$s; + + + + if (v == null) { + v = nil; + }; + return enum$.$yield(v);}, $$23.$$s = self, $$23.$$arity = 1, $$23)) } else { - var array = Opal.const_get_relative($nesting, 'Opal').$try_convert(value, Opal.const_get_relative($nesting, 'Array'), "to_ary"); + var array = $$($nesting, 'Opal').$try_convert(value, $$($nesting, 'Array'), "to_ary"); if (array === nil) { enum$.$yield(value); } else { - $send((value), 'each', [], (TMP_22 = function(v){var self = TMP_22.$$s || this; -if (v == null) v = nil; - return enum$.$yield(v)}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22)); + $send((value), 'each', [], ($$24 = function(v){var self = $$24.$$s == null ? this : $$24.$$s; + + + + if (v == null) { + v = nil; + }; + return enum$.$yield(v);}, $$24.$$s = self, $$24.$$arity = 1, $$24)); } } - }, TMP_20.$$s = self, TMP_20.$$arity = -2, TMP_20)); - }, TMP_Lazy_collect_concat_19.$$arity = 0); + ;}, $$22.$$s = self, $$22.$$arity = -2, $$22)); + }, $Lazy_collect_concat$21.$$arity = 0); - Opal.defn(self, '$drop', TMP_Lazy_drop_24 = function $$drop(n) { - var TMP_23, self = this, current_size = nil, set_size = nil, dropped = nil; + Opal.def(self, '$drop', $Lazy_drop$25 = function $$drop(n) { + var $$26, self = this, current_size = nil, set_size = nil, dropped = nil; - n = Opal.const_get_relative($nesting, 'Opal').$coerce_to(n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); if ($truthy($rb_lt(n, 0))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "attempt to drop negative size")}; + self.$raise($$($nesting, 'ArgumentError'), "attempt to drop negative size")}; current_size = self.$enumerator_size(); - set_size = (function() {if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](current_size))) { + set_size = (function() {if ($truthy($$($nesting, 'Integer')['$==='](current_size))) { if ($truthy($rb_lt(n, current_size))) { return n - } else { + } else { return current_size } - } else { + } else { return current_size }; return nil; })(); dropped = 0; - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, set_size], (TMP_23 = function(enum$, $a_rest){var self = TMP_23.$$s || this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - if ($truthy($rb_lt(dropped, n))) { - return (dropped = $rb_plus(dropped, 1)) - } else { - return $send(enum$, 'yield', Opal.to_a(args)) - }}, TMP_23.$$s = self, TMP_23.$$arity = -2, TMP_23)); - }, TMP_Lazy_drop_24.$$arity = 1); - - Opal.defn(self, '$drop_while', TMP_Lazy_drop_while_25 = function $$drop_while() { - var TMP_26, self = this, $iter = TMP_Lazy_drop_while_25.$$p, block = $iter || nil, succeeding = nil; + return $send($$($nesting, 'Lazy'), 'new', [self, set_size], ($$26 = function(enum$, $a){var self = $$26.$$s == null ? this : $$26.$$s, $post_args, args; - if ($iter) TMP_Lazy_drop_while_25.$$p = null; - - if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to call lazy drop_while without a block") + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy($rb_lt(dropped, n))) { + return (dropped = $rb_plus(dropped, 1)) + } else { + return $send(enum$, 'yield', Opal.to_a(args)) + };}, $$26.$$s = self, $$26.$$arity = -2, $$26)); + }, $Lazy_drop$25.$$arity = 1); + + Opal.def(self, '$drop_while', $Lazy_drop_while$27 = function $$drop_while() { + var $iter = $Lazy_drop_while$27.$$p, block = $iter || nil, $$28, self = this, succeeding = nil; + + if ($iter) $Lazy_drop_while$27.$$p = null; + + + if ($iter) $Lazy_drop_while$27.$$p = null;; + if ($truthy(block)) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy drop_while without a block") }; succeeding = true; - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, nil], (TMP_26 = function(enum$, $a_rest){var self = TMP_26.$$s || this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - if ($truthy(succeeding)) { + return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$28 = function(enum$, $a){var self = $$28.$$s == null ? this : $$28.$$s, $post_args, args; + + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy(succeeding)) { var value = Opal.yieldX(block, args); @@ -10681,69 +12066,87 @@ if (v == null) v = nil; $send(enum$, 'yield', Opal.to_a(args)); } - } else { + } else { return $send(enum$, 'yield', Opal.to_a(args)) - }}, TMP_26.$$s = self, TMP_26.$$arity = -2, TMP_26)); - }, TMP_Lazy_drop_while_25.$$arity = 0); + };}, $$28.$$s = self, $$28.$$arity = -2, $$28)); + }, $Lazy_drop_while$27.$$arity = 0); - Opal.defn(self, '$enum_for', TMP_Lazy_enum_for_27 = function $$enum_for(method, $a_rest) { - var self = this, args, $iter = TMP_Lazy_enum_for_27.$$p, block = $iter || nil; + Opal.def(self, '$enum_for', $Lazy_enum_for$29 = function $$enum_for($a, $b) { + var $iter = $Lazy_enum_for$29.$$p, block = $iter || nil, $post_args, method, args, self = this; + if ($iter) $Lazy_enum_for$29.$$p = null; + + + if ($iter) $Lazy_enum_for$29.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + if ($post_args.length > 0) { + method = $post_args[0]; + $post_args.splice(0, 1); + } if (method == null) { method = "each"; - } - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Lazy_enum_for_27.$$p = null; - return $send(self.$class(), 'for', [self, method].concat(Opal.to_a(args)), block.$to_proc()) - }, TMP_Lazy_enum_for_27.$$arity = -1); + }; + + args = $post_args;; + return $send(self.$class(), 'for', [self, method].concat(Opal.to_a(args)), block.$to_proc()); + }, $Lazy_enum_for$29.$$arity = -1); + $alias(self, "filter", "find_all"); - Opal.defn(self, '$find_all', TMP_Lazy_find_all_28 = function $$find_all() { - var TMP_29, self = this, $iter = TMP_Lazy_find_all_28.$$p, block = $iter || nil; + Opal.def(self, '$find_all', $Lazy_find_all$30 = function $$find_all() { + var $iter = $Lazy_find_all$30.$$p, block = $iter || nil, $$31, self = this; - if ($iter) TMP_Lazy_find_all_28.$$p = null; + if ($iter) $Lazy_find_all$30.$$p = null; + + if ($iter) $Lazy_find_all$30.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to call lazy select without a block") + } else { + self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy select without a block") }; - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, nil], (TMP_29 = function(enum$, $a_rest){var self = TMP_29.$$s || this, args; + return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$31 = function(enum$, $a){var self = $$31.$$s == null ? this : $$31.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + var value = Opal.yieldX(block, args); if ($truthy(value)) { $send(enum$, 'yield', Opal.to_a(args)); } - }, TMP_29.$$s = self, TMP_29.$$arity = -2, TMP_29)); - }, TMP_Lazy_find_all_28.$$arity = 0); - Opal.alias(self, "flat_map", "collect_concat"); + ;}, $$31.$$s = self, $$31.$$arity = -2, $$31)); + }, $Lazy_find_all$30.$$arity = 0); + $alias(self, "flat_map", "collect_concat"); - Opal.defn(self, '$grep', TMP_Lazy_grep_30 = function $$grep(pattern) { - var TMP_31, TMP_32, self = this, $iter = TMP_Lazy_grep_30.$$p, block = $iter || nil; + Opal.def(self, '$grep', $Lazy_grep$32 = function $$grep(pattern) { + var $iter = $Lazy_grep$32.$$p, block = $iter || nil, $$33, $$34, self = this; - if ($iter) TMP_Lazy_grep_30.$$p = null; + if ($iter) $Lazy_grep$32.$$p = null; + + + if ($iter) $Lazy_grep$32.$$p = null;; if ($truthy(block)) { - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, nil], (TMP_31 = function(enum$, $a_rest){var self = TMP_31.$$s || this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(args), + return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$33 = function(enum$, $a){var self = $$33.$$s == null ? this : $$33.$$s, $post_args, args; + + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + + var param = $$($nesting, 'Opal').$destructure(args), value = pattern['$==='](param); if ($truthy(value)) { @@ -10751,130 +12154,152 @@ if (v == null) v = nil; enum$.$yield(Opal.yield1(block, param)); } - }, TMP_31.$$s = self, TMP_31.$$arity = -2, TMP_31)) - } else { - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, nil], (TMP_32 = function(enum$, $a_rest){var self = TMP_32.$$s || this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - - var param = Opal.const_get_relative($nesting, 'Opal').$destructure(args), + ;}, $$33.$$s = self, $$33.$$arity = -2, $$33)) + } else { + return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$34 = function(enum$, $a){var self = $$34.$$s == null ? this : $$34.$$s, $post_args, args; + + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + + var param = $$($nesting, 'Opal').$destructure(args), value = pattern['$==='](param); if ($truthy(value)) { enum$.$yield(param); } - }, TMP_32.$$s = self, TMP_32.$$arity = -2, TMP_32)) - } - }, TMP_Lazy_grep_30.$$arity = 1); - Opal.alias(self, "map", "collect"); - Opal.alias(self, "select", "find_all"); + ;}, $$34.$$s = self, $$34.$$arity = -2, $$34)) + }; + }, $Lazy_grep$32.$$arity = 1); + $alias(self, "map", "collect"); + $alias(self, "select", "find_all"); - Opal.defn(self, '$reject', TMP_Lazy_reject_33 = function $$reject() { - var TMP_34, self = this, $iter = TMP_Lazy_reject_33.$$p, block = $iter || nil; + Opal.def(self, '$reject', $Lazy_reject$35 = function $$reject() { + var $iter = $Lazy_reject$35.$$p, block = $iter || nil, $$36, self = this; - if ($iter) TMP_Lazy_reject_33.$$p = null; + if ($iter) $Lazy_reject$35.$$p = null; + + if ($iter) $Lazy_reject$35.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to call lazy reject without a block") + } else { + self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy reject without a block") }; - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, nil], (TMP_34 = function(enum$, $a_rest){var self = TMP_34.$$s || this, args; + return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$36 = function(enum$, $a){var self = $$36.$$s == null ? this : $$36.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + var value = Opal.yieldX(block, args); if ($falsy(value)) { $send(enum$, 'yield', Opal.to_a(args)); } - }, TMP_34.$$s = self, TMP_34.$$arity = -2, TMP_34)); - }, TMP_Lazy_reject_33.$$arity = 0); + ;}, $$36.$$s = self, $$36.$$arity = -2, $$36)); + }, $Lazy_reject$35.$$arity = 0); - Opal.defn(self, '$take', TMP_Lazy_take_36 = function $$take(n) { - var TMP_35, self = this, current_size = nil, set_size = nil, taken = nil; + Opal.def(self, '$take', $Lazy_take$37 = function $$take(n) { + var $$38, self = this, current_size = nil, set_size = nil, taken = nil; - n = Opal.const_get_relative($nesting, 'Opal').$coerce_to(n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int'); if ($truthy($rb_lt(n, 0))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "attempt to take negative size")}; + self.$raise($$($nesting, 'ArgumentError'), "attempt to take negative size")}; current_size = self.$enumerator_size(); - set_size = (function() {if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](current_size))) { + set_size = (function() {if ($truthy($$($nesting, 'Integer')['$==='](current_size))) { if ($truthy($rb_lt(n, current_size))) { return n - } else { + } else { return current_size } - } else { + } else { return current_size }; return nil; })(); taken = 0; - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, set_size], (TMP_35 = function(enum$, $a_rest){var self = TMP_35.$$s || this, args; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - if ($truthy($rb_lt(taken, n))) { + return $send($$($nesting, 'Lazy'), 'new', [self, set_size], ($$38 = function(enum$, $a){var self = $$38.$$s == null ? this : $$38.$$s, $post_args, args; + + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy($rb_lt(taken, n))) { $send(enum$, 'yield', Opal.to_a(args)); return (taken = $rb_plus(taken, 1)); - } else { - return self.$raise(Opal.const_get_relative($nesting, 'StopLazyError')) - }}, TMP_35.$$s = self, TMP_35.$$arity = -2, TMP_35)); - }, TMP_Lazy_take_36.$$arity = 1); + } else { + return self.$raise($$($nesting, 'StopLazyError')) + };}, $$38.$$s = self, $$38.$$arity = -2, $$38)); + }, $Lazy_take$37.$$arity = 1); - Opal.defn(self, '$take_while', TMP_Lazy_take_while_37 = function $$take_while() { - var TMP_38, self = this, $iter = TMP_Lazy_take_while_37.$$p, block = $iter || nil; + Opal.def(self, '$take_while', $Lazy_take_while$39 = function $$take_while() { + var $iter = $Lazy_take_while$39.$$p, block = $iter || nil, $$40, self = this; - if ($iter) TMP_Lazy_take_while_37.$$p = null; + if ($iter) $Lazy_take_while$39.$$p = null; + + if ($iter) $Lazy_take_while$39.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to call lazy take_while without a block") + } else { + self.$raise($$($nesting, 'ArgumentError'), "tried to call lazy take_while without a block") }; - return $send(Opal.const_get_relative($nesting, 'Lazy'), 'new', [self, nil], (TMP_38 = function(enum$, $a_rest){var self = TMP_38.$$s || this, args; + return $send($$($nesting, 'Lazy'), 'new', [self, nil], ($$40 = function(enum$, $a){var self = $$40.$$s == null ? this : $$40.$$s, $post_args, args; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - }if (enum$ == null) enum$ = nil; - + + + if (enum$ == null) { + enum$ = nil; + }; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + var value = Opal.yieldX(block, args); if ($truthy(value)) { $send(enum$, 'yield', Opal.to_a(args)); } else { - self.$raise(Opal.const_get_relative($nesting, 'StopLazyError')); + self.$raise($$($nesting, 'StopLazyError')); } - }, TMP_38.$$s = self, TMP_38.$$arity = -2, TMP_38)); - }, TMP_Lazy_take_while_37.$$arity = 0); - Opal.alias(self, "to_enum", "enum_for"); - return (Opal.defn(self, '$inspect', TMP_Lazy_inspect_39 = function $$inspect() { + ;}, $$40.$$s = self, $$40.$$arity = -2, $$40)); + }, $Lazy_take_while$39.$$arity = 0); + $alias(self, "to_enum", "enum_for"); + return (Opal.def(self, '$inspect', $Lazy_inspect$41 = function $$inspect() { var self = this; return "" + "#<" + (self.$class()) + ": " + (self.enumerator.$inspect()) + ">" - }, TMP_Lazy_inspect_39.$$arity = 0), nil) && 'inspect'; + }, $Lazy_inspect$41.$$arity = 0), nil) && 'inspect'; + })($nesting[0], self, $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'ArithmeticSequence'); + + var $nesting = [self].concat($parent_nesting); + + return nil })($nesting[0], self, $nesting); })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/numeric"] = function(Opal) { +Opal.modules["corelib/numeric"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } @@ -10887,319 +12312,560 @@ Opal.modules["corelib/numeric"] = function(Opal) { function $rb_divide(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); } + function $rb_ge(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); + } + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $hash2 = Opal.hash2, $send = Opal.send; - Opal.add_stubs(['$require', '$include', '$instance_of?', '$class', '$Float', '$coerce', '$===', '$raise', '$__send__', '$equal?', '$-', '$*', '$div', '$<', '$-@', '$ceil', '$to_f', '$denominator', '$to_r', '$==', '$floor', '$/', '$%', '$Complex', '$zero?', '$numerator', '$abs', '$arg', '$coerce_to!', '$round', '$to_i', '$truncate', '$>']); + Opal.add_stubs(['$require', '$include', '$instance_of?', '$class', '$Float', '$respond_to?', '$coerce', '$__send__', '$===', '$raise', '$equal?', '$-', '$*', '$div', '$<', '$-@', '$ceil', '$to_f', '$denominator', '$to_r', '$==', '$floor', '$/', '$%', '$Complex', '$zero?', '$numerator', '$abs', '$arg', '$coerce_to!', '$round', '$<=>', '$compare', '$enum_for', '$to_proc', '$negative?', '$>=', '$<=', '$+', '$to_i', '$truncate', '$>']); self.$require("corelib/comparable"); return (function($base, $super, $parent_nesting) { - function $Numeric(){}; - var self = $Numeric = $klass($base, $super, 'Numeric', $Numeric); + var self = $klass($base, $super, 'Numeric'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Numeric_coerce_1, TMP_Numeric___coerced___2, TMP_Numeric_$lt$eq$gt_3, TMP_Numeric_$$_4, TMP_Numeric_$$_5, TMP_Numeric_$_6, TMP_Numeric_abs_7, TMP_Numeric_abs2_8, TMP_Numeric_angle_9, TMP_Numeric_ceil_10, TMP_Numeric_conj_11, TMP_Numeric_denominator_12, TMP_Numeric_div_13, TMP_Numeric_divmod_14, TMP_Numeric_fdiv_15, TMP_Numeric_floor_16, TMP_Numeric_i_17, TMP_Numeric_imag_18, TMP_Numeric_integer$q_19, TMP_Numeric_nonzero$q_20, TMP_Numeric_numerator_21, TMP_Numeric_polar_22, TMP_Numeric_quo_23, TMP_Numeric_real_24, TMP_Numeric_real$q_25, TMP_Numeric_rect_26, TMP_Numeric_round_27, TMP_Numeric_to_c_28, TMP_Numeric_to_int_29, TMP_Numeric_truncate_30, TMP_Numeric_zero$q_31, TMP_Numeric_positive$q_32, TMP_Numeric_negative$q_33, TMP_Numeric_dup_34, TMP_Numeric_clone_35; + var $nesting = [self].concat($parent_nesting), $Numeric_coerce$1, $Numeric___coerced__$2, $Numeric_$lt_eq_gt$3, $Numeric_$plus$$4, $Numeric_$minus$$5, $Numeric_$percent$6, $Numeric_abs$7, $Numeric_abs2$8, $Numeric_angle$9, $Numeric_ceil$10, $Numeric_conj$11, $Numeric_denominator$12, $Numeric_div$13, $Numeric_divmod$14, $Numeric_fdiv$15, $Numeric_floor$16, $Numeric_i$17, $Numeric_imag$18, $Numeric_integer$ques$19, $Numeric_nonzero$ques$20, $Numeric_numerator$21, $Numeric_polar$22, $Numeric_quo$23, $Numeric_real$24, $Numeric_real$ques$25, $Numeric_rect$26, $Numeric_round$27, $Numeric_step$28, $Numeric_to_c$29, $Numeric_to_int$30, $Numeric_truncate$31, $Numeric_zero$ques$32, $Numeric_positive$ques$33, $Numeric_negative$ques$34, $Numeric_dup$35, $Numeric_clone$36, $Numeric_finite$ques$37, $Numeric_infinite$ques$38; - self.$include(Opal.const_get_relative($nesting, 'Comparable')); + self.$include($$($nesting, 'Comparable')); - Opal.defn(self, '$coerce', TMP_Numeric_coerce_1 = function $$coerce(other) { + Opal.def(self, '$coerce', $Numeric_coerce$1 = function $$coerce(other) { var self = this; if ($truthy(other['$instance_of?'](self.$class()))) { return [other, self]}; return [self.$Float(other), self.$Float(self)]; - }, TMP_Numeric_coerce_1.$$arity = 1); + }, $Numeric_coerce$1.$$arity = 1); - Opal.defn(self, '$__coerced__', TMP_Numeric___coerced___2 = function $$__coerced__(method, other) { + Opal.def(self, '$__coerced__', $Numeric___coerced__$2 = function $$__coerced__(method, other) { var $a, $b, self = this, a = nil, b = nil, $case = nil; - - - try { - $b = other.$coerce(self), $a = Opal.to_ary($b), (a = ($a[0] == null ? nil : $a[0])), (b = ($a[1] == null ? nil : $a[1])), $b - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'StandardError')])) { - try { - $case = method; - if ("+"['$===']($case) || "-"['$===']($case) || "*"['$===']($case) || "/"['$===']($case) || "%"['$===']($case) || "&"['$===']($case) || "|"['$===']($case) || "^"['$===']($case) || "**"['$===']($case)) {self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerce into Numeric")} - else if (">"['$===']($case) || ">="['$===']($case) || "<"['$===']($case) || "<="['$===']($case) || "<=>"['$===']($case)) {self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed")} - } finally { Opal.pop_exception() } - } else { throw $err; } - };; - return a.$__send__(method, b); - }, TMP_Numeric___coerced___2.$$arity = 2); + if ($truthy(other['$respond_to?']("coerce"))) { + + $b = other.$coerce(self), $a = Opal.to_ary($b), (a = ($a[0] == null ? nil : $a[0])), (b = ($a[1] == null ? nil : $a[1])), $b; + return a.$__send__(method, b); + } else { + return (function() {$case = method; + if ("+"['$===']($case) || "-"['$===']($case) || "*"['$===']($case) || "/"['$===']($case) || "%"['$===']($case) || "&"['$===']($case) || "|"['$===']($case) || "^"['$===']($case) || "**"['$===']($case)) {return self.$raise($$($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into Numeric")} + else if (">"['$===']($case) || ">="['$===']($case) || "<"['$===']($case) || "<="['$===']($case) || "<=>"['$===']($case)) {return self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (other.$class()) + " failed")} + else { return nil }})() + } + }, $Numeric___coerced__$2.$$arity = 2); - Opal.defn(self, '$<=>', TMP_Numeric_$lt$eq$gt_3 = function(other) { + Opal.def(self, '$<=>', $Numeric_$lt_eq_gt$3 = function(other) { var self = this; if ($truthy(self['$equal?'](other))) { return 0}; return nil; - }, TMP_Numeric_$lt$eq$gt_3.$$arity = 1); + }, $Numeric_$lt_eq_gt$3.$$arity = 1); - Opal.defn(self, '$+@', TMP_Numeric_$$_4 = function() { + Opal.def(self, '$+@', $Numeric_$plus$$4 = function() { var self = this; return self - }, TMP_Numeric_$$_4.$$arity = 0); + }, $Numeric_$plus$$4.$$arity = 0); - Opal.defn(self, '$-@', TMP_Numeric_$$_5 = function() { + Opal.def(self, '$-@', $Numeric_$minus$$5 = function() { var self = this; return $rb_minus(0, self) - }, TMP_Numeric_$$_5.$$arity = 0); + }, $Numeric_$minus$$5.$$arity = 0); - Opal.defn(self, '$%', TMP_Numeric_$_6 = function(other) { + Opal.def(self, '$%', $Numeric_$percent$6 = function(other) { var self = this; return $rb_minus(self, $rb_times(other, self.$div(other))) - }, TMP_Numeric_$_6.$$arity = 1); + }, $Numeric_$percent$6.$$arity = 1); - Opal.defn(self, '$abs', TMP_Numeric_abs_7 = function $$abs() { + Opal.def(self, '$abs', $Numeric_abs$7 = function $$abs() { var self = this; if ($rb_lt(self, 0)) { return self['$-@']() - } else { + } else { return self } - }, TMP_Numeric_abs_7.$$arity = 0); + }, $Numeric_abs$7.$$arity = 0); - Opal.defn(self, '$abs2', TMP_Numeric_abs2_8 = function $$abs2() { + Opal.def(self, '$abs2', $Numeric_abs2$8 = function $$abs2() { var self = this; return $rb_times(self, self) - }, TMP_Numeric_abs2_8.$$arity = 0); + }, $Numeric_abs2$8.$$arity = 0); - Opal.defn(self, '$angle', TMP_Numeric_angle_9 = function $$angle() { + Opal.def(self, '$angle', $Numeric_angle$9 = function $$angle() { var self = this; if ($rb_lt(self, 0)) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Math'), 'PI') - } else { + return $$$($$($nesting, 'Math'), 'PI') + } else { return 0 } - }, TMP_Numeric_angle_9.$$arity = 0); - Opal.alias(self, "arg", "angle"); + }, $Numeric_angle$9.$$arity = 0); + $alias(self, "arg", "angle"); - Opal.defn(self, '$ceil', TMP_Numeric_ceil_10 = function $$ceil() { + Opal.def(self, '$ceil', $Numeric_ceil$10 = function $$ceil(ndigits) { var self = this; - return self.$to_f().$ceil() - }, TMP_Numeric_ceil_10.$$arity = 0); + + + if (ndigits == null) { + ndigits = 0; + }; + return self.$to_f().$ceil(ndigits); + }, $Numeric_ceil$10.$$arity = -1); - Opal.defn(self, '$conj', TMP_Numeric_conj_11 = function $$conj() { + Opal.def(self, '$conj', $Numeric_conj$11 = function $$conj() { var self = this; return self - }, TMP_Numeric_conj_11.$$arity = 0); - Opal.alias(self, "conjugate", "conj"); + }, $Numeric_conj$11.$$arity = 0); + $alias(self, "conjugate", "conj"); - Opal.defn(self, '$denominator', TMP_Numeric_denominator_12 = function $$denominator() { + Opal.def(self, '$denominator', $Numeric_denominator$12 = function $$denominator() { var self = this; return self.$to_r().$denominator() - }, TMP_Numeric_denominator_12.$$arity = 0); + }, $Numeric_denominator$12.$$arity = 0); - Opal.defn(self, '$div', TMP_Numeric_div_13 = function $$div(other) { + Opal.def(self, '$div', $Numeric_div$13 = function $$div(other) { var self = this; if (other['$=='](0)) { - self.$raise(Opal.const_get_relative($nesting, 'ZeroDivisionError'), "divided by o")}; + self.$raise($$($nesting, 'ZeroDivisionError'), "divided by o")}; return $rb_divide(self, other).$floor(); - }, TMP_Numeric_div_13.$$arity = 1); + }, $Numeric_div$13.$$arity = 1); - Opal.defn(self, '$divmod', TMP_Numeric_divmod_14 = function $$divmod(other) { + Opal.def(self, '$divmod', $Numeric_divmod$14 = function $$divmod(other) { var self = this; return [self.$div(other), self['$%'](other)] - }, TMP_Numeric_divmod_14.$$arity = 1); + }, $Numeric_divmod$14.$$arity = 1); - Opal.defn(self, '$fdiv', TMP_Numeric_fdiv_15 = function $$fdiv(other) { + Opal.def(self, '$fdiv', $Numeric_fdiv$15 = function $$fdiv(other) { var self = this; return $rb_divide(self.$to_f(), other) - }, TMP_Numeric_fdiv_15.$$arity = 1); + }, $Numeric_fdiv$15.$$arity = 1); - Opal.defn(self, '$floor', TMP_Numeric_floor_16 = function $$floor() { + Opal.def(self, '$floor', $Numeric_floor$16 = function $$floor(ndigits) { var self = this; - return self.$to_f().$floor() - }, TMP_Numeric_floor_16.$$arity = 0); + + + if (ndigits == null) { + ndigits = 0; + }; + return self.$to_f().$floor(ndigits); + }, $Numeric_floor$16.$$arity = -1); - Opal.defn(self, '$i', TMP_Numeric_i_17 = function $$i() { + Opal.def(self, '$i', $Numeric_i$17 = function $$i() { var self = this; return self.$Complex(0, self) - }, TMP_Numeric_i_17.$$arity = 0); + }, $Numeric_i$17.$$arity = 0); - Opal.defn(self, '$imag', TMP_Numeric_imag_18 = function $$imag() { + Opal.def(self, '$imag', $Numeric_imag$18 = function $$imag() { var self = this; return 0 - }, TMP_Numeric_imag_18.$$arity = 0); - Opal.alias(self, "imaginary", "imag"); + }, $Numeric_imag$18.$$arity = 0); + $alias(self, "imaginary", "imag"); - Opal.defn(self, '$integer?', TMP_Numeric_integer$q_19 = function() { + Opal.def(self, '$integer?', $Numeric_integer$ques$19 = function() { var self = this; return false - }, TMP_Numeric_integer$q_19.$$arity = 0); - Opal.alias(self, "magnitude", "abs"); - Opal.alias(self, "modulo", "%"); + }, $Numeric_integer$ques$19.$$arity = 0); + $alias(self, "magnitude", "abs"); + $alias(self, "modulo", "%"); - Opal.defn(self, '$nonzero?', TMP_Numeric_nonzero$q_20 = function() { + Opal.def(self, '$nonzero?', $Numeric_nonzero$ques$20 = function() { var self = this; if ($truthy(self['$zero?']())) { return nil - } else { + } else { return self } - }, TMP_Numeric_nonzero$q_20.$$arity = 0); + }, $Numeric_nonzero$ques$20.$$arity = 0); - Opal.defn(self, '$numerator', TMP_Numeric_numerator_21 = function $$numerator() { + Opal.def(self, '$numerator', $Numeric_numerator$21 = function $$numerator() { var self = this; return self.$to_r().$numerator() - }, TMP_Numeric_numerator_21.$$arity = 0); - Opal.alias(self, "phase", "arg"); + }, $Numeric_numerator$21.$$arity = 0); + $alias(self, "phase", "arg"); - Opal.defn(self, '$polar', TMP_Numeric_polar_22 = function $$polar() { + Opal.def(self, '$polar', $Numeric_polar$22 = function $$polar() { var self = this; return [self.$abs(), self.$arg()] - }, TMP_Numeric_polar_22.$$arity = 0); + }, $Numeric_polar$22.$$arity = 0); - Opal.defn(self, '$quo', TMP_Numeric_quo_23 = function $$quo(other) { + Opal.def(self, '$quo', $Numeric_quo$23 = function $$quo(other) { var self = this; - return $rb_divide(Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](self, Opal.const_get_relative($nesting, 'Rational'), "to_r"), other) - }, TMP_Numeric_quo_23.$$arity = 1); + return $rb_divide($$($nesting, 'Opal')['$coerce_to!'](self, $$($nesting, 'Rational'), "to_r"), other) + }, $Numeric_quo$23.$$arity = 1); - Opal.defn(self, '$real', TMP_Numeric_real_24 = function $$real() { + Opal.def(self, '$real', $Numeric_real$24 = function $$real() { var self = this; return self - }, TMP_Numeric_real_24.$$arity = 0); + }, $Numeric_real$24.$$arity = 0); - Opal.defn(self, '$real?', TMP_Numeric_real$q_25 = function() { + Opal.def(self, '$real?', $Numeric_real$ques$25 = function() { var self = this; return true - }, TMP_Numeric_real$q_25.$$arity = 0); + }, $Numeric_real$ques$25.$$arity = 0); - Opal.defn(self, '$rect', TMP_Numeric_rect_26 = function $$rect() { + Opal.def(self, '$rect', $Numeric_rect$26 = function $$rect() { var self = this; return [self, 0] - }, TMP_Numeric_rect_26.$$arity = 0); - Opal.alias(self, "rectangular", "rect"); + }, $Numeric_rect$26.$$arity = 0); + $alias(self, "rectangular", "rect"); - Opal.defn(self, '$round', TMP_Numeric_round_27 = function $$round(digits) { + Opal.def(self, '$round', $Numeric_round$27 = function $$round(digits) { var self = this; - return self.$to_f().$round(digits) - }, TMP_Numeric_round_27.$$arity = -1); + + ; + return self.$to_f().$round(digits); + }, $Numeric_round$27.$$arity = -1); + + Opal.def(self, '$step', $Numeric_step$28 = function $$step($a, $b, $c) { + var $iter = $Numeric_step$28.$$p, block = $iter || nil, $post_args, $kwargs, limit, step, to, by, $d, self = this, counter = nil; + + if ($iter) $Numeric_step$28.$$p = null; + + + if ($iter) $Numeric_step$28.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + + if ($post_args.length > 0) { + limit = $post_args[0]; + $post_args.splice(0, 1); + }; + + if ($post_args.length > 0) { + step = $post_args[0]; + $post_args.splice(0, 1); + }; + + to = $kwargs.$$smap["to"];; + + by = $kwargs.$$smap["by"];; + + if (limit !== undefined && to !== undefined) { + self.$raise($$($nesting, 'ArgumentError'), "to is given twice") + } + + if (step !== undefined && by !== undefined) { + self.$raise($$($nesting, 'ArgumentError'), "step is given twice") + } + + if (to !== undefined) { + limit = to; + } + + if (by !== undefined) { + step = by; + } + + if (limit === undefined) { + limit = nil; + } + + function validateParameters() { + if (step === nil) { + self.$raise($$($nesting, 'TypeError'), "step must be numeric") + } + + if (step != null && step['$=='](0)) { + self.$raise($$($nesting, 'ArgumentError'), "step can't be 0") + } + + if (step === nil || step == null) { + step = 1; + } + + var sign = step['$<=>'](0); + + if (sign === nil) { + self.$raise($$($nesting, 'ArgumentError'), "" + "0 can't be coerced into " + (step.$class())) + } + + if (limit === nil || limit == null) { + limit = sign > 0 ? $$$($$($nesting, 'Float'), 'INFINITY') : $$$($$($nesting, 'Float'), 'INFINITY')['$-@'](); + } + + $$($nesting, 'Opal').$compare(self, limit) + } + + function stepFloatSize() { + if ((step > 0 && self > limit) || (step < 0 && self < limit)) { + return 0; + } else if (step === Infinity || step === -Infinity) { + return 1; + } else { + var abs = Math.abs, floor = Math.floor, + err = (abs(self) + abs(limit) + abs(limit - self)) / abs(step) * $$$($$($nesting, 'Float'), 'EPSILON'); + + if (err === Infinity || err === -Infinity) { + return 0; + } else { + if (err > 0.5) { + err = 0.5; + } + + return floor((limit - self) / step + err) + 1 + } + } + } + + function stepSize() { + validateParameters(); + + if (step === 0) { + return Infinity; + } + + if (step % 1 !== 0) { + return stepFloatSize(); + } else if ((step > 0 && self > limit) || (step < 0 && self < limit)) { + return 0; + } else { + var ceil = Math.ceil, abs = Math.abs, + lhs = abs(self - limit) + 1, + rhs = abs(step); + + return ceil(lhs / rhs); + } + } + + ; + if ((block !== nil)) { + } else { + return $send(self, 'enum_for', ["step", limit, step], (stepSize).$to_proc()) + }; + + validateParameters(); + + var isDesc = step['$negative?'](), + isInf = step['$=='](0) || + (limit === Infinity && !isDesc) || + (limit === -Infinity && isDesc); + + if (self.$$is_number && step.$$is_number && limit.$$is_number) { + if (self % 1 === 0 && (isInf || limit % 1 === 0) && step % 1 === 0) { + var value = self; + + if (isInf) { + for (;; value += step) { + block(value); + } + } else if (isDesc) { + for (; value >= limit; value += step) { + block(value); + } + } else { + for (; value <= limit; value += step) { + block(value); + } + } + + return self; + } else { + var begin = self.$to_f().valueOf(); + step = step.$to_f().valueOf(); + limit = limit.$to_f().valueOf(); + + var n = stepFloatSize(); + + if (!isFinite(step)) { + if (n !== 0) block(begin); + } else if (step === 0) { + while (true) { + block(begin); + } + } else { + for (var i = 0; i < n; i++) { + var d = i * step + self; + if (step >= 0 ? limit < d : limit > d) { + d = limit; + } + block(d); + } + } + + return self; + } + } + ; + counter = self; + while ($truthy(isDesc ? $rb_ge(counter, limit) : $rb_le(counter, limit))) { + + Opal.yield1(block, counter); + counter = $rb_plus(counter, step); + }; + }, $Numeric_step$28.$$arity = -1); - Opal.defn(self, '$to_c', TMP_Numeric_to_c_28 = function $$to_c() { + Opal.def(self, '$to_c', $Numeric_to_c$29 = function $$to_c() { var self = this; return self.$Complex(self, 0) - }, TMP_Numeric_to_c_28.$$arity = 0); + }, $Numeric_to_c$29.$$arity = 0); - Opal.defn(self, '$to_int', TMP_Numeric_to_int_29 = function $$to_int() { + Opal.def(self, '$to_int', $Numeric_to_int$30 = function $$to_int() { var self = this; return self.$to_i() - }, TMP_Numeric_to_int_29.$$arity = 0); + }, $Numeric_to_int$30.$$arity = 0); - Opal.defn(self, '$truncate', TMP_Numeric_truncate_30 = function $$truncate() { + Opal.def(self, '$truncate', $Numeric_truncate$31 = function $$truncate(ndigits) { var self = this; - return self.$to_f().$truncate() - }, TMP_Numeric_truncate_30.$$arity = 0); + + + if (ndigits == null) { + ndigits = 0; + }; + return self.$to_f().$truncate(ndigits); + }, $Numeric_truncate$31.$$arity = -1); - Opal.defn(self, '$zero?', TMP_Numeric_zero$q_31 = function() { + Opal.def(self, '$zero?', $Numeric_zero$ques$32 = function() { var self = this; return self['$=='](0) - }, TMP_Numeric_zero$q_31.$$arity = 0); + }, $Numeric_zero$ques$32.$$arity = 0); - Opal.defn(self, '$positive?', TMP_Numeric_positive$q_32 = function() { + Opal.def(self, '$positive?', $Numeric_positive$ques$33 = function() { var self = this; return $rb_gt(self, 0) - }, TMP_Numeric_positive$q_32.$$arity = 0); + }, $Numeric_positive$ques$33.$$arity = 0); - Opal.defn(self, '$negative?', TMP_Numeric_negative$q_33 = function() { + Opal.def(self, '$negative?', $Numeric_negative$ques$34 = function() { var self = this; return $rb_lt(self, 0) - }, TMP_Numeric_negative$q_33.$$arity = 0); + }, $Numeric_negative$ques$34.$$arity = 0); - Opal.defn(self, '$dup', TMP_Numeric_dup_34 = function $$dup() { + Opal.def(self, '$dup', $Numeric_dup$35 = function $$dup() { var self = this; return self - }, TMP_Numeric_dup_34.$$arity = 0); - return (Opal.defn(self, '$clone', TMP_Numeric_clone_35 = function $$clone($kwargs) { - var self = this, freeze; + }, $Numeric_dup$35.$$arity = 0); + + Opal.def(self, '$clone', $Numeric_clone$36 = function $$clone($kwargs) { + var freeze, self = this; - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } + + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + freeze = $kwargs.$$smap["freeze"]; if (freeze == null) { freeze = true - } - return self - }, TMP_Numeric_clone_35.$$arity = -1), nil) && 'clone'; + }; + return self; + }, $Numeric_clone$36.$$arity = -1); + + Opal.def(self, '$finite?', $Numeric_finite$ques$37 = function() { + var self = this; + + return true + }, $Numeric_finite$ques$37.$$arity = 0); + return (Opal.def(self, '$infinite?', $Numeric_infinite$ques$38 = function() { + var self = this; + + return nil + }, $Numeric_infinite$ques$38.$$arity = 0), nil) && 'infinite?'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/array"] = function(Opal) { +Opal.modules["corelib/array"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } function $rb_times(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $hash2 = Opal.hash2, $send = Opal.send, $gvars = Opal.gvars; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $falsy = Opal.falsy, $hash_ids = Opal.hash_ids, $yield1 = Opal.yield1, $hash_get = Opal.hash_get, $hash_put = Opal.hash_put, $hash_delete = Opal.hash_delete, $coerce_to = Opal.coerce_to, $respond_to = Opal.respond_to, $klass = Opal.klass, $hash2 = Opal.hash2, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $gvars = Opal.gvars, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$to_a', '$warn', '$raise', '$replace', '$respond_to?', '$to_ary', '$coerce_to', '$coerce_to?', '$===', '$join', '$to_str', '$class', '$hash', '$<=>', '$==', '$object_id', '$inspect', '$enum_for', '$bsearch_index', '$to_proc', '$coerce_to!', '$>', '$*', '$enumerator_size', '$empty?', '$size', '$map', '$equal?', '$dup', '$each', '$[]', '$dig', '$eql?', '$length', '$begin', '$end', '$exclude_end?', '$flatten', '$__id__', '$to_s', '$new', '$!', '$>=', '$**', '$delete_if', '$reverse', '$rotate', '$rand', '$at', '$keep_if', '$shuffle!', '$<', '$sort', '$sort_by', '$!=', '$times', '$[]=', '$-', '$<<', '$values', '$kind_of?', '$last', '$first', '$upto', '$reject', '$pristine']); + Opal.add_stubs(['$require', '$include', '$to_a', '$warn', '$raise', '$replace', '$respond_to?', '$to_ary', '$coerce_to?', '$===', '$join', '$to_str', '$hash', '$<=>', '$==', '$object_id', '$inspect', '$enum_for', '$class', '$bsearch_index', '$to_proc', '$nil?', '$coerce_to!', '$>', '$*', '$enumerator_size', '$empty?', '$size', '$map', '$equal?', '$dup', '$each', '$reduce', '$-', '$[]', '$dig', '$eql?', '$length', '$exclude_end?', '$flatten', '$__id__', '$&', '$to_s', '$new', '$max', '$min', '$!', '$>=', '$**', '$delete_if', '$reverse', '$rotate', '$rand', '$at', '$keep_if', '$shuffle!', '$<', '$sort', '$sort_by', '$!=', '$times', '$[]=', '$<<', '$uniq', '$|', '$values', '$is_a?', '$last', '$first', '$upto', '$reject', '$pristine', '$singleton_class']); self.$require("corelib/enumerable"); self.$require("corelib/numeric"); return (function($base, $super, $parent_nesting) { - function $Array(){}; - var self = $Array = $klass($base, $super, 'Array', $Array); + var self = $klass($base, $super, 'Array'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Array_$$_1, TMP_Array_initialize_2, TMP_Array_try_convert_3, TMP_Array_$_4, TMP_Array_$_5, TMP_Array_$_6, TMP_Array_$_7, TMP_Array_$_8, TMP_Array_$lt$lt_9, TMP_Array_$lt$eq$gt_10, TMP_Array_$eq$eq_11, TMP_Array_$$_12, TMP_Array_$$$eq_13, TMP_Array_any$q_14, TMP_Array_assoc_15, TMP_Array_at_16, TMP_Array_bsearch_index_17, TMP_Array_bsearch_18, TMP_Array_cycle_19, TMP_Array_clear_21, TMP_Array_count_22, TMP_Array_initialize_copy_23, TMP_Array_collect_24, TMP_Array_collect$B_26, TMP_Array_combination_28, TMP_Array_repeated_combination_30, TMP_Array_compact_32, TMP_Array_compact$B_33, TMP_Array_concat_36, TMP_Array_delete_37, TMP_Array_delete_at_38, TMP_Array_delete_if_39, TMP_Array_dig_41, TMP_Array_drop_42, TMP_Array_dup_43, TMP_Array_each_44, TMP_Array_each_index_46, TMP_Array_empty$q_48, TMP_Array_eql$q_49, TMP_Array_fetch_50, TMP_Array_fill_51, TMP_Array_first_52, TMP_Array_flatten_53, TMP_Array_flatten$B_54, TMP_Array_hash_55, TMP_Array_include$q_56, TMP_Array_index_57, TMP_Array_insert_58, TMP_Array_inspect_59, TMP_Array_join_60, TMP_Array_keep_if_61, TMP_Array_last_63, TMP_Array_length_64, TMP_Array_permutation_65, TMP_Array_repeated_permutation_67, TMP_Array_pop_69, TMP_Array_product_70, TMP_Array_push_71, TMP_Array_rassoc_72, TMP_Array_reject_73, TMP_Array_reject$B_75, TMP_Array_replace_77, TMP_Array_reverse_78, TMP_Array_reverse$B_79, TMP_Array_reverse_each_80, TMP_Array_rindex_82, TMP_Array_rotate_83, TMP_Array_rotate$B_84, TMP_Array_sample_87, TMP_Array_select_88, TMP_Array_select$B_90, TMP_Array_shift_92, TMP_Array_shuffle_93, TMP_Array_shuffle$B_94, TMP_Array_slice$B_95, TMP_Array_sort_96, TMP_Array_sort$B_97, TMP_Array_sort_by$B_98, TMP_Array_take_100, TMP_Array_take_while_101, TMP_Array_to_a_102, TMP_Array_to_h_103, TMP_Array_transpose_106, TMP_Array_uniq_107, TMP_Array_uniq$B_108, TMP_Array_unshift_109, TMP_Array_values_at_112, TMP_Array_zip_113, TMP_Array_inherited_114, TMP_Array_instance_variables_115; + var $nesting = [self].concat($parent_nesting), $Array_$$$1, $Array_initialize$2, $Array_try_convert$3, $Array_$$4, $Array_$$5, $Array_$$6, $Array_$plus$7, $Array_$minus$8, $Array_$lt$lt$9, $Array_$lt_eq_gt$10, $Array_$eq_eq$11, $Array_$$$12, $Array_$$$eq$13, $Array_any$ques$14, $Array_assoc$15, $Array_at$16, $Array_bsearch_index$17, $Array_bsearch$18, $Array_cycle$19, $Array_clear$21, $Array_count$22, $Array_initialize_copy$23, $Array_collect$24, $Array_collect$excl$26, $Array_combination$28, $Array_repeated_combination$30, $Array_compact$32, $Array_compact$excl$33, $Array_concat$34, $Array_delete$37, $Array_delete_at$38, $Array_delete_if$39, $Array_difference$41, $Array_dig$43, $Array_drop$44, $Array_dup$45, $Array_each$46, $Array_each_index$48, $Array_empty$ques$50, $Array_eql$ques$51, $Array_fetch$52, $Array_fill$53, $Array_first$54, $Array_flatten$55, $Array_flatten$excl$56, $Array_hash$57, $Array_include$ques$58, $Array_index$59, $Array_insert$60, $Array_inspect$61, $Array_intersection$62, $Array_join$64, $Array_keep_if$65, $Array_last$67, $Array_length$68, $Array_max$69, $Array_min$70, $Array_permutation$71, $Array_repeated_permutation$73, $Array_pop$75, $Array_product$76, $Array_push$77, $Array_rassoc$78, $Array_reject$79, $Array_reject$excl$81, $Array_replace$83, $Array_reverse$84, $Array_reverse$excl$85, $Array_reverse_each$86, $Array_rindex$88, $Array_rotate$89, $Array_rotate$excl$90, $Array_sample$93, $Array_select$94, $Array_select$excl$96, $Array_shift$98, $Array_shuffle$99, $Array_shuffle$excl$100, $Array_slice$excl$101, $Array_sort$102, $Array_sort$excl$103, $Array_sort_by$excl$104, $Array_take$106, $Array_take_while$107, $Array_to_a$108, $Array_to_ary$109, $Array_to_h$110, $Array_transpose$111, $Array_union$114, $Array_uniq$116, $Array_uniq$excl$117, $Array_unshift$118, $Array_values_at$119, $Array_zip$122, $Array_inherited$123, $Array_instance_variables$124, $Array_pack$126; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); - def.$$is_array = true; + self.$include($$($nesting, 'Enumerable')); + Opal.defineProperty(self.$$prototype, '$$is_array', true); + // Recent versions of V8 (> 7.1) only use an optimized implementation when Array.prototype is unmodified. + // For instance, "array-splice.tq" has a "fast path" (ExtractFastJSArray, defined in "src/codegen/code-stub-assembler.cc") + // but it's only enabled when "IsPrototypeInitialArrayPrototype()" is true. + // + // Older versions of V8 were using relatively fast JS-with-extensions code even when Array.prototype is modified: + // https://github.com/v8/v8/blob/7.0.1/src/js/array.js#L599-L642 + // + // In short, Array operations are slow in recent versions of V8 when the Array.prototype has been tampered. + // So, when possible, we are using faster open-coded version to boost the performance. + + // As of V8 8.4, depending on the size of the array, this is up to ~25x times faster than Array#shift() + // Implementation is heavily inspired by: https://github.com/nodejs/node/blob/ba684805b6c0eded76e5cd89ee00328ac7a59365/lib/internal/util.js#L341-L347 + function shiftNoArg(list) { + var r = list[0]; + var index = 1; + var length = list.length; + for (; index < length; index++) { + list[index - 1] = list[index]; + } + list.pop(); + return r; + } + function toArraySubclass(obj, klass) { if (klass.$$name === Opal.Array) { return obj; @@ -11207,40 +12873,72 @@ Opal.modules["corelib/array"] = function(Opal) { return klass.$allocate().$replace((obj).$to_a()); } } - ; - Opal.defs(self, '$[]', TMP_Array_$$_1 = function($a_rest) { - var self = this, objects; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - objects = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - objects[$arg_idx - 0] = arguments[$arg_idx]; + // A helper for keep_if and delete_if, filter is either Opal.truthy + // or Opal.falsy. + function filterIf(self, filter, block) { + var value, raised = null, updated = new Array(self.length); + + for (var i = 0, i2 = 0, length = self.length; i < length; i++) { + if (!raised) { + try { + value = $yield1(block, self[i]) + } catch(error) { + raised = error; + } + } + + if (raised || filter(value)) { + updated[i2] = self[i] + i2 += 1; + } + } + + if (i2 !== i) { + self.splice.apply(self, [0, updated.length].concat(updated)); + self.splice(i2, updated.length); } - return toArraySubclass(objects, self) - }, TMP_Array_$$_1.$$arity = -1); + + if (raised) throw raised; + } + ; + Opal.defs(self, '$[]', $Array_$$$1 = function($a) { + var $post_args, objects, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + objects = $post_args;; + return toArraySubclass(objects, self);; + }, $Array_$$$1.$$arity = -1); - Opal.defn(self, '$initialize', TMP_Array_initialize_2 = function $$initialize(size, obj) { - var self = this, $iter = TMP_Array_initialize_2.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Array_initialize$2 = function $$initialize(size, obj) { + var $iter = $Array_initialize$2.$$p, block = $iter || nil, self = this; + if ($iter) $Array_initialize$2.$$p = null; + + + if ($iter) $Array_initialize$2.$$p = null;; + if (size == null) { size = nil; - } + }; + if (obj == null) { obj = nil; - } - if ($iter) TMP_Array_initialize_2.$$p = null; + }; if (obj !== nil && block !== nil) { self.$warn("warning: block supersedes default value argument") } - if (size > Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Integer'), 'MAX')) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "array size too big") + if (size > $$$($$($nesting, 'Integer'), 'MAX')) { + self.$raise($$($nesting, 'ArgumentError'), "array size too big") } if (arguments.length > 2) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..2)") + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..2)") } if (arguments.length === 0) { @@ -11258,10 +12956,10 @@ Opal.modules["corelib/array"] = function(Opal) { } } - size = Opal.const_get_relative($nesting, 'Opal').$coerce_to(size, Opal.const_get_relative($nesting, 'Integer'), "to_int") + size = $coerce_to(size, $$($nesting, 'Integer'), 'to_int'); if (size < 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "negative array size") + self.$raise($$($nesting, 'ArgumentError'), "negative array size") } self.splice(0, self.length); @@ -11280,74 +12978,74 @@ Opal.modules["corelib/array"] = function(Opal) { } return self; - - }, TMP_Array_initialize_2.$$arity = -1); - Opal.defs(self, '$try_convert', TMP_Array_try_convert_3 = function $$try_convert(obj) { + ; + }, $Array_initialize$2.$$arity = -1); + Opal.defs(self, '$try_convert', $Array_try_convert$3 = function $$try_convert(obj) { var self = this; - return Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](obj, Opal.const_get_relative($nesting, 'Array'), "to_ary") - }, TMP_Array_try_convert_3.$$arity = 1); + return $$($nesting, 'Opal')['$coerce_to?'](obj, $$($nesting, 'Array'), "to_ary") + }, $Array_try_convert$3.$$arity = 1); - Opal.defn(self, '$&', TMP_Array_$_4 = function(other) { + Opal.def(self, '$&', $Array_$$4 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](other))) { - other = other.$to_a() - } else { - other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'Array'), "to_ary").$to_a() - }; + other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { + return other.$to_a() + } else { + return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() + }; return nil; })(); var result = [], hash = $hash2([], {}), i, length, item; for (i = 0, length = other.length; i < length; i++) { - Opal.hash_put(hash, other[i], true); + $hash_put(hash, other[i], true); } for (i = 0, length = self.length; i < length; i++) { item = self[i]; - if (Opal.hash_delete(hash, item) !== undefined) { + if ($hash_delete(hash, item) !== undefined) { result.push(item); } } return result; ; - }, TMP_Array_$_4.$$arity = 1); + }, $Array_$$4.$$arity = 1); - Opal.defn(self, '$|', TMP_Array_$_5 = function(other) { + Opal.def(self, '$|', $Array_$$5 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](other))) { - other = other.$to_a() - } else { - other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'Array'), "to_ary").$to_a() - }; + other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { + return other.$to_a() + } else { + return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() + }; return nil; })(); var hash = $hash2([], {}), i, length, item; for (i = 0, length = self.length; i < length; i++) { - Opal.hash_put(hash, self[i], true); + $hash_put(hash, self[i], true); } for (i = 0, length = other.length; i < length; i++) { - Opal.hash_put(hash, other[i], true); + $hash_put(hash, other[i], true); } return hash.$keys(); ; - }, TMP_Array_$_5.$$arity = 1); + }, $Array_$$5.$$arity = 1); - Opal.defn(self, '$*', TMP_Array_$_6 = function(other) { + Opal.def(self, '$*', $Array_$$6 = function(other) { var self = this; if ($truthy(other['$respond_to?']("to_str"))) { return self.$join(other.$to_str())}; - other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + other = $coerce_to(other, $$($nesting, 'Integer'), 'to_int'); if ($truthy(other < 0)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "negative argument")}; + self.$raise($$($nesting, 'ArgumentError'), "negative argument")}; var result = [], converted = self.$to_a(); @@ -11356,31 +13054,31 @@ Opal.modules["corelib/array"] = function(Opal) { result = result.concat(converted); } - return toArraySubclass(result, self.$class()); + return result; ; - }, TMP_Array_$_6.$$arity = 1); + }, $Array_$$6.$$arity = 1); - Opal.defn(self, '$+', TMP_Array_$_7 = function(other) { + Opal.def(self, '$+', $Array_$plus$7 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](other))) { - other = other.$to_a() - } else { - other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'Array'), "to_ary").$to_a() - }; - return self.concat(other); - }, TMP_Array_$_7.$$arity = 1); + other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { + return other.$to_a() + } else { + return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() + }; return nil; })(); + return self.concat(other);; + }, $Array_$plus$7.$$arity = 1); - Opal.defn(self, '$-', TMP_Array_$_8 = function(other) { + Opal.def(self, '$-', $Array_$minus$8 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](other))) { - other = other.$to_a() - } else { - other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'Array'), "to_ary").$to_a() - }; + other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { + return other.$to_a() + } else { + return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() + }; return nil; })(); if ($truthy(self.length === 0)) { return []}; if ($truthy(other.length === 0)) { @@ -11389,37 +13087,37 @@ Opal.modules["corelib/array"] = function(Opal) { var result = [], hash = $hash2([], {}), i, length, item; for (i = 0, length = other.length; i < length; i++) { - Opal.hash_put(hash, other[i], true); + $hash_put(hash, other[i], true); } for (i = 0, length = self.length; i < length; i++) { item = self[i]; - if (Opal.hash_get(hash, item) === undefined) { + if ($hash_get(hash, item) === undefined) { result.push(item); } } return result; ; - }, TMP_Array_$_8.$$arity = 1); + }, $Array_$minus$8.$$arity = 1); - Opal.defn(self, '$<<', TMP_Array_$lt$lt_9 = function(object) { + Opal.def(self, '$<<', $Array_$lt$lt$9 = function(object) { var self = this; - self.push(object);; + self.push(object); return self; - }, TMP_Array_$lt$lt_9.$$arity = 1); + }, $Array_$lt$lt$9.$$arity = 1); - Opal.defn(self, '$<=>', TMP_Array_$lt$eq$gt_10 = function(other) { + Opal.def(self, '$<=>', $Array_$lt_eq_gt$10 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](other))) { + if ($truthy($$($nesting, 'Array')['$==='](other))) { other = other.$to_a() } else if ($truthy(other['$respond_to?']("to_ary"))) { other = other.$to_ary().$to_a() - } else { + } else { return nil }; @@ -11439,9 +13137,9 @@ Opal.modules["corelib/array"] = function(Opal) { return (self.length)['$<=>'](other.length); ; - }, TMP_Array_$lt$eq$gt_10.$$arity = 1); + }, $Array_$lt_eq_gt$10.$$arity = 1); - Opal.defn(self, '$==', TMP_Array_$eq$eq_11 = function(other) { + Opal.def(self, '$==', $Array_$eq_eq$11 = function(other) { var self = this; @@ -11454,16 +13152,16 @@ Opal.modules["corelib/array"] = function(Opal) { return true; if (!other.$$is_array) { - if (Opal.const_get_relative($nesting, 'Opal')['$respond_to?'](other, "to_ary")) { + if ($respond_to(other, '$to_ary')) { return (other)['$=='](array); } else { return false; } } - if (array.constructor !== Array) + if (array.$$constructor !== Array) array = (array).$to_a(); - if (other.constructor !== Array) + if (other.$$constructor !== Array) other = (other).$to_a(); if (array.length !== other.length) { @@ -11496,15 +13194,15 @@ Opal.modules["corelib/array"] = function(Opal) { return _eqeq(self, other); - }, TMP_Array_$eq$eq_11.$$arity = 1); + }, $Array_$eq_eq$11.$$arity = 1); function $array_slice_range(self, index) { var size = self.length, exclude, from, to, result; exclude = index.excl; - from = Opal.Opal.$coerce_to(index.begin, Opal.Integer, 'to_int'); - to = Opal.Opal.$coerce_to(index.end, Opal.Integer, 'to_int'); + from = $coerce_to(index.begin, Opal.Integer, 'to_int'); + to = $coerce_to(index.end, Opal.Integer, 'to_int'); if (from < 0) { from += size; @@ -11531,14 +13229,14 @@ Opal.modules["corelib/array"] = function(Opal) { } result = self.slice(from, to); - return toArraySubclass(result, self.$class()); + return result; } function $array_slice_index_length(self, index, length) { var size = self.length, exclude, from, to, result; - index = Opal.Opal.$coerce_to(index, Opal.Integer, 'to_int'); + index = $coerce_to(index, Opal.Integer, 'to_int'); if (index < 0) { index += size; @@ -11556,7 +13254,7 @@ Opal.modules["corelib/array"] = function(Opal) { return self[index]; } else { - length = Opal.Opal.$coerce_to(length, Opal.Integer, 'to_int'); + length = $coerce_to(length, Opal.Integer, 'to_int'); if (length < 0 || index > size || index < 0) { return nil; @@ -11564,49 +13262,50 @@ Opal.modules["corelib/array"] = function(Opal) { result = self.slice(index, index + length); } - return toArraySubclass(result, self.$class()); + return result; } ; - Opal.defn(self, '$[]', TMP_Array_$$_12 = function(index, length) { + Opal.def(self, '$[]', $Array_$$$12 = function(index, length) { var self = this; + ; + if (index.$$is_range) { return $array_slice_range(self, index); } else { return $array_slice_index_length(self, index, length); } + ; + }, $Array_$$$12.$$arity = -2); - }, TMP_Array_$$_12.$$arity = -2); - - Opal.defn(self, '$[]=', TMP_Array_$$$eq_13 = function(index, value, extra) { + Opal.def(self, '$[]=', $Array_$$$eq$13 = function(index, value, extra) { var self = this, data = nil, length = nil; - - var i, size = self.length; - ; - if ($truthy(Opal.const_get_relative($nesting, 'Range')['$==='](index))) { + ; + var i, size = self.length;; + if ($truthy($$($nesting, 'Range')['$==='](index))) { - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](value))) { - data = value.$to_a() + data = (function() {if ($truthy($$($nesting, 'Array')['$==='](value))) { + return value.$to_a() } else if ($truthy(value['$respond_to?']("to_ary"))) { - data = value.$to_ary().$to_a() - } else { - data = [value] - }; + return value.$to_ary().$to_a() + } else { + return [value] + }; return nil; })(); var exclude = index.excl, - from = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index.begin, Opal.const_get_relative($nesting, 'Integer'), "to_int"), - to = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index.end, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + from = $coerce_to(index.begin, $$($nesting, 'Integer'), 'to_int'), + to = $coerce_to(index.end, $$($nesting, 'Integer'), 'to_int'); if (from < 0) { from += size; if (from < 0) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "" + (index.$inspect()) + " out of range"); + self.$raise($$($nesting, 'RangeError'), "" + (index.$inspect()) + " out of range"); } } @@ -11633,39 +13332,39 @@ Opal.modules["corelib/array"] = function(Opal) { return value; ; - } else { + } else { if ($truthy(extra === undefined)) { length = 1 - } else { + } else { length = value; value = extra; - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](value))) { - data = value.$to_a() + data = (function() {if ($truthy($$($nesting, 'Array')['$==='](value))) { + return value.$to_a() } else if ($truthy(value['$respond_to?']("to_ary"))) { - data = value.$to_ary().$to_a() - } else { - data = [value] - }; + return value.$to_ary().$to_a() + } else { + return [value] + }; return nil; })(); }; var old; - index = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - length = Opal.const_get_relative($nesting, 'Opal').$coerce_to(length, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); + length = $coerce_to(length, $$($nesting, 'Integer'), 'to_int'); if (index < 0) { old = index; index += size; if (index < 0) { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "index " + (old) + " too small for array; minimum " + (-self.length)); + self.$raise($$($nesting, 'IndexError'), "" + "index " + (old) + " too small for array; minimum " + (-self.length)); } } if (length < 0) { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "negative length (" + (length) + ")") + self.$raise($$($nesting, 'IndexError'), "" + "negative length (" + (length) + ")") } if (index > size) { @@ -11684,22 +13383,21 @@ Opal.modules["corelib/array"] = function(Opal) { return value; ; }; - }, TMP_Array_$$$eq_13.$$arity = -3); + }, $Array_$$$eq$13.$$arity = -3); - Opal.defn(self, '$any?', TMP_Array_any$q_14 = function() { - var self = this, $iter = TMP_Array_any$q_14.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$any?', $Array_any$ques$14 = function(pattern) { + var $iter = $Array_any$ques$14.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_any$q_14.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Array_any$ques$14.$$p = null; - if (self.length === 0) return false;; - return $send(self, Opal.find_super_dispatcher(self, 'any?', TMP_Array_any$q_14, false), $zuper, $iter); - }, TMP_Array_any$q_14.$$arity = 0); + + if ($iter) $Array_any$ques$14.$$p = null;; + ; + if (self.length === 0) return false; + return $send2(self, $find_super(self, 'any?', $Array_any$ques$14, false, true), 'any?', [pattern], $iter); + }, $Array_any$ques$14.$$arity = -1); - Opal.defn(self, '$assoc', TMP_Array_assoc_15 = function $$assoc(object) { + Opal.def(self, '$assoc', $Array_assoc$15 = function $$assoc(object) { var self = this; @@ -11711,14 +13409,14 @@ Opal.modules["corelib/array"] = function(Opal) { return nil; - }, TMP_Array_assoc_15.$$arity = 1); + }, $Array_assoc$15.$$arity = 1); - Opal.defn(self, '$at', TMP_Array_at_16 = function $$at(index) { + Opal.def(self, '$at', $Array_at$16 = function $$at(index) { var self = this; - index = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - + index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int') + if (index < 0) { index += self.length; } @@ -11728,16 +13426,18 @@ Opal.modules["corelib/array"] = function(Opal) { } return self[index]; - ; - }, TMP_Array_at_16.$$arity = 1); - Opal.defn(self, '$bsearch_index', TMP_Array_bsearch_index_17 = function $$bsearch_index() { - var self = this, $iter = TMP_Array_bsearch_index_17.$$p, block = $iter || nil; + }, $Array_at$16.$$arity = 1); + + Opal.def(self, '$bsearch_index', $Array_bsearch_index$17 = function $$bsearch_index() { + var $iter = $Array_bsearch_index$17.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_bsearch_index_17.$$p = null; + if ($iter) $Array_bsearch_index$17.$$p = null; + + if ($iter) $Array_bsearch_index$17.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("bsearch_index") }; @@ -11752,7 +13452,7 @@ Opal.modules["corelib/array"] = function(Opal) { while (min < max) { mid = min + Math.floor((max - min) / 2); val = self[mid]; - ret = Opal.yield1(block, val); + ret = $yield1(block, val); if (ret === true) { satisfied = mid; @@ -11766,7 +13466,7 @@ Opal.modules["corelib/array"] = function(Opal) { smaller = (ret < 0); } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "wrong argument type " + ((ret).$class()) + " (must be numeric, true, false or nil)") + self.$raise($$($nesting, 'TypeError'), "" + "wrong argument type " + ((ret).$class()) + " (must be numeric, true, false or nil)") } if (smaller) { max = mid; } else { min = mid + 1; } @@ -11774,15 +13474,17 @@ Opal.modules["corelib/array"] = function(Opal) { return satisfied; ; - }, TMP_Array_bsearch_index_17.$$arity = 0); + }, $Array_bsearch_index$17.$$arity = 0); - Opal.defn(self, '$bsearch', TMP_Array_bsearch_18 = function $$bsearch() { - var self = this, $iter = TMP_Array_bsearch_18.$$p, block = $iter || nil, index = nil; + Opal.def(self, '$bsearch', $Array_bsearch$18 = function $$bsearch() { + var $iter = $Array_bsearch$18.$$p, block = $iter || nil, self = this, index = nil; - if ($iter) TMP_Array_bsearch_18.$$p = null; + if ($iter) $Array_bsearch$18.$$p = null; + + if ($iter) $Array_bsearch$18.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("bsearch") }; index = $send(self, 'bsearch_index', [], block.$to_proc()); @@ -11793,33 +13495,40 @@ Opal.modules["corelib/array"] = function(Opal) { return index; } ; - }, TMP_Array_bsearch_18.$$arity = 0); + }, $Array_bsearch$18.$$arity = 0); - Opal.defn(self, '$cycle', TMP_Array_cycle_19 = function $$cycle(n) { - var TMP_20, $a, self = this, $iter = TMP_Array_cycle_19.$$p, block = $iter || nil; + Opal.def(self, '$cycle', $Array_cycle$19 = function $$cycle(n) { + var $iter = $Array_cycle$19.$$p, block = $iter || nil, $$20, self = this, $ret_or_1 = nil; + if ($iter) $Array_cycle$19.$$p = null; + + + if ($iter) $Array_cycle$19.$$p = null;; + if (n == null) { n = nil; - } - if ($iter) TMP_Array_cycle_19.$$p = null; - + }; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["cycle", n], (TMP_20 = function(){var self = TMP_20.$$s || this; + } else { + return $send(self, 'enum_for', ["cycle", n], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s; - if (n['$=='](nil)) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY') - } else { + if ($truthy(n['$nil?']())) { + return $$$($$($nesting, 'Float'), 'INFINITY') + } else { - n = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); if ($truthy($rb_gt(n, 0))) { return $rb_times(self.$enumerator_size(), n) - } else { + } else { return 0 }; - }}, TMP_20.$$s = self, TMP_20.$$arity = 0, TMP_20)) + }}, $$20.$$s = self, $$20.$$arity = 0, $$20)) }; - if ($truthy(($truthy($a = self['$empty?']()) ? $a : n['$=='](0)))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = self['$empty?']()))) { + return $ret_or_1 + } else { + return n['$=='](0) + }; return nil; })())) { return nil}; var i, length, value; @@ -11827,19 +13536,19 @@ Opal.modules["corelib/array"] = function(Opal) { if (n === nil) { while (true) { for (i = 0, length = self.length; i < length; i++) { - value = Opal.yield1(block, self[i]); + value = $yield1(block, self[i]); } } } else { - n = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); if (n <= 0) { return self; } while (n > 0) { for (i = 0, length = self.length; i < length; i++) { - value = Opal.yield1(block, self[i]); + value = $yield1(block, self[i]); } n--; @@ -11847,82 +13556,87 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, TMP_Array_cycle_19.$$arity = -1); + }, $Array_cycle$19.$$arity = -1); - Opal.defn(self, '$clear', TMP_Array_clear_21 = function $$clear() { + Opal.def(self, '$clear', $Array_clear$21 = function $$clear() { var self = this; self.splice(0, self.length); return self; - }, TMP_Array_clear_21.$$arity = 0); + }, $Array_clear$21.$$arity = 0); - Opal.defn(self, '$count', TMP_Array_count_22 = function $$count(object) { - var $a, self = this, $iter = TMP_Array_count_22.$$p, block = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$count', $Array_count$22 = function $$count(object) { + var $iter = $Array_count$22.$$p, block = $iter || nil, self = this, $ret_or_2 = nil; - if (object == null) { - object = nil; - } - if ($iter) TMP_Array_count_22.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy(($truthy($a = object) ? $a : block))) { - return $send(self, Opal.find_super_dispatcher(self, 'count', TMP_Array_count_22, false), $zuper, $iter) - } else { + if ($iter) $Array_count$22.$$p = null; + + + if ($iter) $Array_count$22.$$p = null;; + ; + if ($truthy((function() {if ($truthy(($ret_or_2 = object !== undefined))) { + return $ret_or_2 + } else { + return block + }; return nil; })())) { + return $send2(self, $find_super(self, 'count', $Array_count$22, false, true), 'count', [object], $iter) + } else { return self.$size() - } - }, TMP_Array_count_22.$$arity = -1); + }; + }, $Array_count$22.$$arity = -1); - Opal.defn(self, '$initialize_copy', TMP_Array_initialize_copy_23 = function $$initialize_copy(other) { + Opal.def(self, '$initialize_copy', $Array_initialize_copy$23 = function $$initialize_copy(other) { var self = this; return self.$replace(other) - }, TMP_Array_initialize_copy_23.$$arity = 1); + }, $Array_initialize_copy$23.$$arity = 1); - Opal.defn(self, '$collect', TMP_Array_collect_24 = function $$collect() { - var TMP_25, self = this, $iter = TMP_Array_collect_24.$$p, block = $iter || nil; + Opal.def(self, '$collect', $Array_collect$24 = function $$collect() { + var $iter = $Array_collect$24.$$p, block = $iter || nil, $$25, self = this; - if ($iter) TMP_Array_collect_24.$$p = null; + if ($iter) $Array_collect$24.$$p = null; + + if ($iter) $Array_collect$24.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["collect"], (TMP_25 = function(){var self = TMP_25.$$s || this; + } else { + return $send(self, 'enum_for', ["collect"], ($$25 = function(){var self = $$25.$$s == null ? this : $$25.$$s; - return self.$size()}, TMP_25.$$s = self, TMP_25.$$arity = 0, TMP_25)) + return self.$size()}, $$25.$$s = self, $$25.$$arity = 0, $$25)) }; var result = []; for (var i = 0, length = self.length; i < length; i++) { - var value = Opal.yield1(block, self[i]); + var value = $yield1(block, self[i]); result.push(value); } return result; ; - }, TMP_Array_collect_24.$$arity = 0); + }, $Array_collect$24.$$arity = 0); - Opal.defn(self, '$collect!', TMP_Array_collect$B_26 = function() { - var TMP_27, self = this, $iter = TMP_Array_collect$B_26.$$p, block = $iter || nil; + Opal.def(self, '$collect!', $Array_collect$excl$26 = function() { + var $iter = $Array_collect$excl$26.$$p, block = $iter || nil, $$27, self = this; - if ($iter) TMP_Array_collect$B_26.$$p = null; + if ($iter) $Array_collect$excl$26.$$p = null; + + if ($iter) $Array_collect$excl$26.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["collect!"], (TMP_27 = function(){var self = TMP_27.$$s || this; + } else { + return $send(self, 'enum_for', ["collect!"], ($$27 = function(){var self = $$27.$$s == null ? this : $$27.$$s; - return self.$size()}, TMP_27.$$s = self, TMP_27.$$arity = 0, TMP_27)) + return self.$size()}, $$27.$$s = self, $$27.$$arity = 0, $$27)) }; for (var i = 0, length = self.length; i < length; i++) { - var value = Opal.yield1(block, self[i]); + var value = $yield1(block, self[i]); self[i] = value; } ; return self; - }, TMP_Array_collect$B_26.$$arity = 0); + }, $Array_collect$excl$26.$$arity = 0); function binomial_coefficient(n, k) { if (n === k || k === 0) { @@ -11937,17 +13651,17 @@ Opal.modules["corelib/array"] = function(Opal) { } ; - Opal.defn(self, '$combination', TMP_Array_combination_28 = function $$combination(n) { - var TMP_29, self = this, $iter = TMP_Array_combination_28.$$p, $yield = $iter || nil, num = nil; + Opal.def(self, '$combination', $Array_combination$28 = function $$combination(n) { + var $$29, $iter = $Array_combination$28.$$p, $yield = $iter || nil, self = this, num = nil; - if ($iter) TMP_Array_combination_28.$$p = null; + if ($iter) $Array_combination$28.$$p = null; - num = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + num = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["combination", num], (TMP_29 = function(){var self = TMP_29.$$s || this; + } else { + return $send(self, 'enum_for', ["combination", num], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; - return binomial_coefficient(self.length, num)}, TMP_29.$$s = self, TMP_29.$$arity = 0, TMP_29)) + return binomial_coefficient(self.length, num)}, $$29.$$s = self, $$29.$$arity = 0, $$29)) }; var i, length, stack, chosen, lev, done, next; @@ -11991,19 +13705,19 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, TMP_Array_combination_28.$$arity = 1); + }, $Array_combination$28.$$arity = 1); - Opal.defn(self, '$repeated_combination', TMP_Array_repeated_combination_30 = function $$repeated_combination(n) { - var TMP_31, self = this, $iter = TMP_Array_repeated_combination_30.$$p, $yield = $iter || nil, num = nil; + Opal.def(self, '$repeated_combination', $Array_repeated_combination$30 = function $$repeated_combination(n) { + var $$31, $iter = $Array_repeated_combination$30.$$p, $yield = $iter || nil, self = this, num = nil; - if ($iter) TMP_Array_repeated_combination_30.$$p = null; + if ($iter) $Array_repeated_combination$30.$$p = null; - num = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + num = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["repeated_combination", num], (TMP_31 = function(){var self = TMP_31.$$s || this; + } else { + return $send(self, 'enum_for', ["repeated_combination", num], ($$31 = function(){var self = $$31.$$s == null ? this : $$31.$$s; - return binomial_coefficient(self.length + num - 1, num)}, TMP_31.$$s = self, TMP_31.$$arity = 0, TMP_31)) + return binomial_coefficient(self.length + num - 1, num);}, $$31.$$s = self, $$31.$$arity = 0, $$31)) }; function iterate(max, from, buffer, self) { @@ -12024,9 +13738,9 @@ Opal.modules["corelib/array"] = function(Opal) { } ; return self; - }, TMP_Array_repeated_combination_30.$$arity = 1); + }, $Array_repeated_combination$30.$$arity = 1); - Opal.defn(self, '$compact', TMP_Array_compact_32 = function $$compact() { + Opal.def(self, '$compact', $Array_compact$32 = function $$compact() { var self = this; @@ -12040,9 +13754,9 @@ Opal.modules["corelib/array"] = function(Opal) { return result; - }, TMP_Array_compact_32.$$arity = 0); + }, $Array_compact$32.$$arity = 0); - Opal.defn(self, '$compact!', TMP_Array_compact$B_33 = function() { + Opal.def(self, '$compact!', $Array_compact$excl$33 = function() { var self = this; @@ -12059,43 +13773,50 @@ Opal.modules["corelib/array"] = function(Opal) { return self.length === original ? nil : self; - }, TMP_Array_compact$B_33.$$arity = 0); + }, $Array_compact$excl$33.$$arity = 0); - Opal.defn(self, '$concat', TMP_Array_concat_36 = function $$concat($a_rest) { - var TMP_34, TMP_35, self = this, others; + Opal.def(self, '$concat', $Array_concat$34 = function $$concat($a) { + var $post_args, others, $$35, $$36, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - others = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - others[$arg_idx - 0] = arguments[$arg_idx]; - } - others = $send(others, 'map', [], (TMP_34 = function(other){var self = TMP_34.$$s || this; -if (other == null) other = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](other))) { - other = other.$to_a() - } else { - other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'Array'), "to_ary").$to_a() + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + others = $post_args;; + others = $send(others, 'map', [], ($$35 = function(other){var self = $$35.$$s == null ? this : $$35.$$s; + + + + if (other == null) { + other = nil; }; + other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { + return other.$to_a() + } else { + return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() + }; return nil; })(); if ($truthy(other['$equal?'](self))) { other = other.$dup()}; - return other;}, TMP_34.$$s = self, TMP_34.$$arity = 1, TMP_34)); - $send(others, 'each', [], (TMP_35 = function(other){var self = TMP_35.$$s || this; -if (other == null) other = nil; - + return other;}, $$35.$$s = self, $$35.$$arity = 1, $$35)); + $send(others, 'each', [], ($$36 = function(other){var self = $$36.$$s == null ? this : $$36.$$s; + + + + if (other == null) { + other = nil; + }; + for (var i = 0, length = other.length; i < length; i++) { self.push(other[i]); } - }, TMP_35.$$s = self, TMP_35.$$arity = 1, TMP_35)); + ;}, $$36.$$s = self, $$36.$$arity = 1, $$36)); return self; - }, TMP_Array_concat_36.$$arity = -1); + }, $Array_concat$34.$$arity = -1); - Opal.defn(self, '$delete', TMP_Array_delete_37 = function(object) { - var self = this, $iter = TMP_Array_delete_37.$$p, $yield = $iter || nil; + Opal.def(self, '$delete', $Array_delete$37 = function(object) { + var $iter = $Array_delete$37.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Array_delete_37.$$p = null; + if ($iter) $Array_delete$37.$$p = null; var original = self.length; @@ -12116,13 +13837,13 @@ if (other == null) other = nil; } return object; - }, TMP_Array_delete_37.$$arity = 1); + }, $Array_delete$37.$$arity = 1); - Opal.defn(self, '$delete_at', TMP_Array_delete_at_38 = function $$delete_at(index) { + Opal.def(self, '$delete_at', $Array_delete_at$38 = function $$delete_at(index) { var self = this; - index = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); if (index < 0) { index += self.length; @@ -12138,44 +13859,55 @@ if (other == null) other = nil; return result; - }, TMP_Array_delete_at_38.$$arity = 1); + }, $Array_delete_at$38.$$arity = 1); - Opal.defn(self, '$delete_if', TMP_Array_delete_if_39 = function $$delete_if() { - var TMP_40, self = this, $iter = TMP_Array_delete_if_39.$$p, block = $iter || nil; + Opal.def(self, '$delete_if', $Array_delete_if$39 = function $$delete_if() { + var $iter = $Array_delete_if$39.$$p, block = $iter || nil, $$40, self = this; - if ($iter) TMP_Array_delete_if_39.$$p = null; + if ($iter) $Array_delete_if$39.$$p = null; + + if ($iter) $Array_delete_if$39.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["delete_if"], (TMP_40 = function(){var self = TMP_40.$$s || this; + } else { + return $send(self, 'enum_for', ["delete_if"], ($$40 = function(){var self = $$40.$$s == null ? this : $$40.$$s; - return self.$size()}, TMP_40.$$s = self, TMP_40.$$arity = 0, TMP_40)) + return self.$size()}, $$40.$$s = self, $$40.$$arity = 0, $$40)) }; - - for (var i = 0, length = self.length, value; i < length; i++) { - value = block(self[i]); + filterIf(self, $falsy, block); + return self; + }, $Array_delete_if$39.$$arity = 0); + + Opal.def(self, '$difference', $Array_difference$41 = function $$difference($a) { + var $post_args, arrays, $$42, self = this; - if (value !== false && value !== nil) { - self.splice(i, 1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + arrays = $post_args;; + return $send(arrays, 'reduce', [self.$to_a().$dup()], ($$42 = function(a, b){var self = $$42.$$s == null ? this : $$42.$$s; - length--; - i--; - } - } - ; - return self; - }, TMP_Array_delete_if_39.$$arity = 0); + + + if (a == null) { + a = nil; + }; + + if (b == null) { + b = nil; + }; + return $rb_minus(a, b);}, $$42.$$s = self, $$42.$$arity = 2, $$42)); + }, $Array_difference$41.$$arity = -1); - Opal.defn(self, '$dig', TMP_Array_dig_41 = function $$dig(idx, $a_rest) { - var self = this, idxs, item = nil; + Opal.def(self, '$dig', $Array_dig$43 = function $$dig(idx, $a) { + var $post_args, idxs, self = this, item = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - idxs = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - idxs[$arg_idx - 1] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + idxs = $post_args;; item = self['$[]'](idx); if (item === nil || idxs.length === 0) { @@ -12183,89 +13915,89 @@ if (other == null) other = nil; } ; if ($truthy(item['$respond_to?']("dig"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + (item.$class()) + " does not have #dig method") + } else { + self.$raise($$($nesting, 'TypeError'), "" + (item.$class()) + " does not have #dig method") }; return $send(item, 'dig', Opal.to_a(idxs)); - }, TMP_Array_dig_41.$$arity = -2); + }, $Array_dig$43.$$arity = -2); - Opal.defn(self, '$drop', TMP_Array_drop_42 = function $$drop(number) { + Opal.def(self, '$drop', $Array_drop$44 = function $$drop(number) { var self = this; if (number < 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError')) + self.$raise($$($nesting, 'ArgumentError')) } return self.slice(number); - }, TMP_Array_drop_42.$$arity = 1); + }, $Array_drop$44.$$arity = 1); - Opal.defn(self, '$dup', TMP_Array_dup_43 = function $$dup() { - var self = this, $iter = TMP_Array_dup_43.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$dup', $Array_dup$45 = function $$dup() { + var $iter = $Array_dup$45.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Array_dup_43.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Array_dup$45.$$p = null; - if ( - self.$$class === Opal.Array && - self.$$class.$allocate.$$pristine && - self.$copy_instance_variables.$$pristine && - self.$initialize_dup.$$pristine - ) return self.slice(0); + if (self.$$class === Opal.Array && + self.$$class.$allocate.$$pristine && + self.$copy_instance_variables.$$pristine && + self.$initialize_dup.$$pristine) { + return self.slice(0); + } ; - return $send(self, Opal.find_super_dispatcher(self, 'dup', TMP_Array_dup_43, false), $zuper, $iter); - }, TMP_Array_dup_43.$$arity = 0); + return $send2(self, $find_super(self, 'dup', $Array_dup$45, false, true), 'dup', [], $iter); + }, $Array_dup$45.$$arity = 0); - Opal.defn(self, '$each', TMP_Array_each_44 = function $$each() { - var TMP_45, self = this, $iter = TMP_Array_each_44.$$p, block = $iter || nil; + Opal.def(self, '$each', $Array_each$46 = function $$each() { + var $iter = $Array_each$46.$$p, block = $iter || nil, $$47, self = this; - if ($iter) TMP_Array_each_44.$$p = null; + if ($iter) $Array_each$46.$$p = null; + + if ($iter) $Array_each$46.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each"], (TMP_45 = function(){var self = TMP_45.$$s || this; + } else { + return $send(self, 'enum_for', ["each"], ($$47 = function(){var self = $$47.$$s == null ? this : $$47.$$s; - return self.$size()}, TMP_45.$$s = self, TMP_45.$$arity = 0, TMP_45)) + return self.$size()}, $$47.$$s = self, $$47.$$arity = 0, $$47)) }; for (var i = 0, length = self.length; i < length; i++) { - var value = Opal.yield1(block, self[i]); + var value = $yield1(block, self[i]); } ; return self; - }, TMP_Array_each_44.$$arity = 0); + }, $Array_each$46.$$arity = 0); - Opal.defn(self, '$each_index', TMP_Array_each_index_46 = function $$each_index() { - var TMP_47, self = this, $iter = TMP_Array_each_index_46.$$p, block = $iter || nil; + Opal.def(self, '$each_index', $Array_each_index$48 = function $$each_index() { + var $iter = $Array_each_index$48.$$p, block = $iter || nil, $$49, self = this; - if ($iter) TMP_Array_each_index_46.$$p = null; + if ($iter) $Array_each_index$48.$$p = null; + + if ($iter) $Array_each_index$48.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["each_index"], (TMP_47 = function(){var self = TMP_47.$$s || this; + } else { + return $send(self, 'enum_for', ["each_index"], ($$49 = function(){var self = $$49.$$s == null ? this : $$49.$$s; - return self.$size()}, TMP_47.$$s = self, TMP_47.$$arity = 0, TMP_47)) + return self.$size()}, $$49.$$s = self, $$49.$$arity = 0, $$49)) }; for (var i = 0, length = self.length; i < length; i++) { - var value = Opal.yield1(block, i); + var value = $yield1(block, i); } ; return self; - }, TMP_Array_each_index_46.$$arity = 0); + }, $Array_each_index$48.$$arity = 0); - Opal.defn(self, '$empty?', TMP_Array_empty$q_48 = function() { + Opal.def(self, '$empty?', $Array_empty$ques$50 = function() { var self = this; - return self.length === 0 - }, TMP_Array_empty$q_48.$$arity = 0); + return self.length === 0; + }, $Array_empty$ques$50.$$arity = 0); - Opal.defn(self, '$eql?', TMP_Array_eql$q_49 = function(other) { + Opal.def(self, '$eql?', $Array_eql$ques$51 = function(other) { var self = this; @@ -12310,16 +14042,20 @@ if (other == null) other = nil; return _eql(self, other); - }, TMP_Array_eql$q_49.$$arity = 1); + }, $Array_eql$ques$51.$$arity = 1); - Opal.defn(self, '$fetch', TMP_Array_fetch_50 = function $$fetch(index, defaults) { - var self = this, $iter = TMP_Array_fetch_50.$$p, block = $iter || nil; + Opal.def(self, '$fetch', $Array_fetch$52 = function $$fetch(index, defaults) { + var $iter = $Array_fetch$52.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_fetch_50.$$p = null; + if ($iter) $Array_fetch$52.$$p = null; + + + if ($iter) $Array_fetch$52.$$p = null;; + ; var original = index; - index = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); if (index < 0) { index += self.length; @@ -12342,76 +14078,74 @@ if (other == null) other = nil; } if (self.length === 0) { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "index " + (original) + " outside of array bounds: 0...0") + self.$raise($$($nesting, 'IndexError'), "" + "index " + (original) + " outside of array bounds: 0...0") } else { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "index " + (original) + " outside of array bounds: -" + (self.length) + "..." + (self.length)); + self.$raise($$($nesting, 'IndexError'), "" + "index " + (original) + " outside of array bounds: -" + (self.length) + "..." + (self.length)); } + ; + }, $Array_fetch$52.$$arity = -2); - }, TMP_Array_fetch_50.$$arity = -2); - - Opal.defn(self, '$fill', TMP_Array_fill_51 = function $$fill($a_rest) { - var $b, $c, self = this, args, $iter = TMP_Array_fill_51.$$p, block = $iter || nil, one = nil, two = nil, obj = nil, left = nil, right = nil; + Opal.def(self, '$fill', $Array_fill$53 = function $$fill($a) { + var $iter = $Array_fill$53.$$p, block = $iter || nil, $post_args, args, $b, $c, self = this, one = nil, two = nil, obj = nil, left = nil, right = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Array_fill_51.$$p = null; + if ($iter) $Array_fill$53.$$p = null; - var i, length, value; - ; + if ($iter) $Array_fill$53.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + var i, length, value;; if ($truthy(block)) { if ($truthy(args.length > 2)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (args.$length()) + " for 0..2)")}; + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (args.$length()) + " for 0..2)")}; $c = args, $b = Opal.to_ary($c), (one = ($b[0] == null ? nil : $b[0])), (two = ($b[1] == null ? nil : $b[1])), $c; - } else { + } else { if ($truthy(args.length == 0)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1..3)") + self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (0 for 1..3)") } else if ($truthy(args.length > 3)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (args.$length()) + " for 1..3)")}; + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (args.$length()) + " for 1..3)")}; $c = args, $b = Opal.to_ary($c), (obj = ($b[0] == null ? nil : $b[0])), (one = ($b[1] == null ? nil : $b[1])), (two = ($b[2] == null ? nil : $b[2])), $c; }; - if ($truthy(Opal.const_get_relative($nesting, 'Range')['$==='](one))) { + if ($truthy($$($nesting, 'Range')['$==='](one))) { if ($truthy(two)) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "length invalid with range")}; - left = Opal.const_get_relative($nesting, 'Opal').$coerce_to(one.$begin(), Opal.const_get_relative($nesting, 'Integer'), "to_int"); + self.$raise($$($nesting, 'TypeError'), "length invalid with range")}; + left = $coerce_to(one.begin, $$($nesting, 'Integer'), 'to_int'); if ($truthy(left < 0)) { left += this.length}; if ($truthy(left < 0)) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "" + (one.$inspect()) + " out of range")}; - right = Opal.const_get_relative($nesting, 'Opal').$coerce_to(one.$end(), Opal.const_get_relative($nesting, 'Integer'), "to_int"); + self.$raise($$($nesting, 'RangeError'), "" + (one.$inspect()) + " out of range")}; + right = $coerce_to(one.end, $$($nesting, 'Integer'), 'to_int'); if ($truthy(right < 0)) { right += this.length}; if ($truthy(one['$exclude_end?']())) { - } else { + } else { right += 1 }; if ($truthy(right <= left)) { return self}; } else if ($truthy(one)) { - left = Opal.const_get_relative($nesting, 'Opal').$coerce_to(one, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + left = $coerce_to(one, $$($nesting, 'Integer'), 'to_int'); if ($truthy(left < 0)) { left += this.length}; if ($truthy(left < 0)) { left = 0}; if ($truthy(two)) { - right = Opal.const_get_relative($nesting, 'Opal').$coerce_to(two, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + right = $coerce_to(two, $$($nesting, 'Integer'), 'to_int'); if ($truthy(right == 0)) { return self}; right += left; - } else { + } else { right = this.length }; - } else { + } else { left = 0; right = this.length; @@ -12431,7 +14165,7 @@ if (other == null) other = nil; self[left] = value; } - } else { + } else { for (length = this.length; left < right; left++) { self[left] = obj; @@ -12439,30 +14173,34 @@ if (other == null) other = nil; }; return self; - }, TMP_Array_fill_51.$$arity = -1); + }, $Array_fill$53.$$arity = -1); - Opal.defn(self, '$first', TMP_Array_first_52 = function $$first(count) { + Opal.def(self, '$first', $Array_first$54 = function $$first(count) { var self = this; + ; + if (count == null) { return self.length === 0 ? nil : self[0]; } - count = Opal.const_get_relative($nesting, 'Opal').$coerce_to(count, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); if (count < 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "negative array size"); + self.$raise($$($nesting, 'ArgumentError'), "negative array size"); } return self.slice(0, count); + ; + }, $Array_first$54.$$arity = -1); - }, TMP_Array_first_52.$$arity = -1); - - Opal.defn(self, '$flatten', TMP_Array_flatten_53 = function $$flatten(level) { + Opal.def(self, '$flatten', $Array_flatten$55 = function $$flatten(level) { var self = this; + ; + function _flatten(array, level) { var result = [], i, length, @@ -12473,7 +14211,7 @@ if (other == null) other = nil; for (i = 0, length = array.length; i < length; i++) { item = array[i]; - if (!Opal.const_get_relative($nesting, 'Opal')['$respond_to?'](item, "to_ary")) { + if (!$respond_to(item, '$to_ary', true)) { result.push(item); continue; } @@ -12486,11 +14224,11 @@ if (other == null) other = nil; } if (!ary.$$is_array) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError')); + self.$raise($$($nesting, 'TypeError')); } if (ary === self) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError')); + self.$raise($$($nesting, 'ArgumentError')); } switch (level) { @@ -12508,17 +14246,18 @@ if (other == null) other = nil; } if (level !== undefined) { - level = Opal.const_get_relative($nesting, 'Opal').$coerce_to(level, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + level = $coerce_to(level, $$($nesting, 'Integer'), 'to_int'); } - return toArraySubclass(_flatten(self, level), self.$class()); - - }, TMP_Array_flatten_53.$$arity = -1); + return _flatten(self, level); + ; + }, $Array_flatten$55.$$arity = -1); - Opal.defn(self, '$flatten!', TMP_Array_flatten$B_54 = function(level) { + Opal.def(self, '$flatten!', $Array_flatten$excl$56 = function(level) { var self = this; + ; var flattened = self.$flatten(level); @@ -12537,35 +14276,35 @@ if (other == null) other = nil; self.$replace(flattened); ; return self; - }, TMP_Array_flatten$B_54.$$arity = -1); + }, $Array_flatten$excl$56.$$arity = -1); - Opal.defn(self, '$hash', TMP_Array_hash_55 = function $$hash() { + Opal.def(self, '$hash', $Array_hash$57 = function $$hash() { var self = this; - var top = (Opal.hash_ids === undefined), + var top = ($hash_ids === undefined), result = ['A'], hash_id = self.$object_id(), item, i, key; try { if (top) { - Opal.hash_ids = Object.create(null); + $hash_ids = Object.create(null); } // return early for recursive structures - if (Opal.hash_ids[hash_id]) { + if ($hash_ids[hash_id]) { return 'self'; } - for (key in Opal.hash_ids) { - item = Opal.hash_ids[key]; + for (key in $hash_ids) { + item = $hash_ids[key]; if (self['$eql?'](item)) { return 'self'; } } - Opal.hash_ids[hash_id] = self; + $hash_ids[hash_id] = self; for (i = 0; i < self.length; i++) { item = self[i]; @@ -12575,13 +14314,13 @@ if (other == null) other = nil; return result.join(','); } finally { if (top) { - Opal.hash_ids = undefined; + $hash_ids = undefined; } } - }, TMP_Array_hash_55.$$arity = 0); + }, $Array_hash$57.$$arity = 0); - Opal.defn(self, '$include?', TMP_Array_include$q_56 = function(member) { + Opal.def(self, '$include?', $Array_include$ques$58 = function(member) { var self = this; @@ -12593,12 +14332,16 @@ if (other == null) other = nil; return false; - }, TMP_Array_include$q_56.$$arity = 1); + }, $Array_include$ques$58.$$arity = 1); - Opal.defn(self, '$index', TMP_Array_index_57 = function $$index(object) { - var self = this, $iter = TMP_Array_index_57.$$p, block = $iter || nil; + Opal.def(self, '$index', $Array_index$59 = function $$index(object) { + var $iter = $Array_index$59.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_index_57.$$p = null; + if ($iter) $Array_index$59.$$p = null; + + + if ($iter) $Array_index$59.$$p = null;; + ; var i, length, value; @@ -12627,28 +14370,26 @@ if (other == null) other = nil; } return nil; + ; + }, $Array_index$59.$$arity = -1); - }, TMP_Array_index_57.$$arity = -1); - - Opal.defn(self, '$insert', TMP_Array_insert_58 = function $$insert(index, $a_rest) { - var self = this, objects; + Opal.def(self, '$insert', $Array_insert$60 = function $$insert(index, $a) { + var $post_args, objects, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - objects = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - objects[$arg_idx - 1] = arguments[$arg_idx]; - } - index = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + objects = $post_args;; + + index = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); if (objects.length > 0) { if (index < 0) { index += self.length + 1; if (index < 0) { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + (index) + " is out of bounds"); + self.$raise($$($nesting, 'IndexError'), "" + (index) + " is out of bounds"); } } if (index > self.length) { @@ -12661,9 +14402,9 @@ if (other == null) other = nil; } ; return self; - }, TMP_Array_insert_58.$$arity = -2); + }, $Array_insert$60.$$arity = -2); - Opal.defn(self, '$inspect', TMP_Array_inspect_59 = function $$inspect() { + Opal.def(self, '$inspect', $Array_inspect$61 = function $$inspect() { var self = this; @@ -12683,16 +14424,39 @@ if (other == null) other = nil; return '[' + result.join(', ') + ']'; - }, TMP_Array_inspect_59.$$arity = 0); + }, $Array_inspect$61.$$arity = 0); + + Opal.def(self, '$intersection', $Array_intersection$62 = function $$intersection($a) { + var $post_args, arrays, $$63, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + arrays = $post_args;; + return $send(arrays, 'reduce', [self.$to_a().$dup()], ($$63 = function(a, b){var self = $$63.$$s == null ? this : $$63.$$s; + + + + if (a == null) { + a = nil; + }; + + if (b == null) { + b = nil; + }; + return a['$&'](b);}, $$63.$$s = self, $$63.$$arity = 2, $$63)); + }, $Array_intersection$62.$$arity = -1); - Opal.defn(self, '$join', TMP_Array_join_60 = function $$join(sep) { + Opal.def(self, '$join', $Array_join$64 = function $$join(sep) { var self = this; if ($gvars[","] == null) $gvars[","] = nil; + + if (sep == null) { sep = nil; - } - + }; if ($truthy(self.length === 0)) { return ""}; if ($truthy(sep === nil)) { @@ -12704,7 +14468,7 @@ if (other == null) other = nil; for (i = 0, length = self.length; i < length; i++) { item = self[i]; - if (Opal.const_get_relative($nesting, 'Opal')['$respond_to?'](item, "to_str")) { + if ($respond_to(item, '$to_str')) { tmp = (item).$to_str(); if (tmp !== nil) { @@ -12714,11 +14478,11 @@ if (other == null) other = nil; } } - if (Opal.const_get_relative($nesting, 'Opal')['$respond_to?'](item, "to_ary")) { + if ($respond_to(item, '$to_ary')) { tmp = (item).$to_ary(); if (tmp === self) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError')); + self.$raise($$($nesting, 'ArgumentError')); } if (tmp !== nil) { @@ -12728,7 +14492,7 @@ if (other == null) other = nil; } } - if (Opal.const_get_relative($nesting, 'Opal')['$respond_to?'](item, "to_s")) { + if ($respond_to(item, '$to_s')) { tmp = (item).$to_s(); if (tmp !== nil) { @@ -12738,56 +14502,49 @@ if (other == null) other = nil; } } - self.$raise(Opal.const_get_relative($nesting, 'NoMethodError').$new("" + (Opal.inspect(item)) + " doesn't respond to #to_str, #to_ary or #to_s", "to_str")); + self.$raise($$($nesting, 'NoMethodError').$new("" + (Opal.inspect(item)) + " doesn't respond to #to_str, #to_ary or #to_s", "to_str")); } if (sep === nil) { return result.join(''); } else { - return result.join(Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](sep, Opal.const_get_relative($nesting, 'String'), "to_str").$to_s()); + return result.join($$($nesting, 'Opal')['$coerce_to!'](sep, $$($nesting, 'String'), "to_str").$to_s()); } ; - }, TMP_Array_join_60.$$arity = -1); + }, $Array_join$64.$$arity = -1); - Opal.defn(self, '$keep_if', TMP_Array_keep_if_61 = function $$keep_if() { - var TMP_62, self = this, $iter = TMP_Array_keep_if_61.$$p, block = $iter || nil; + Opal.def(self, '$keep_if', $Array_keep_if$65 = function $$keep_if() { + var $iter = $Array_keep_if$65.$$p, block = $iter || nil, $$66, self = this; - if ($iter) TMP_Array_keep_if_61.$$p = null; + if ($iter) $Array_keep_if$65.$$p = null; + + if ($iter) $Array_keep_if$65.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["keep_if"], (TMP_62 = function(){var self = TMP_62.$$s || this; + } else { + return $send(self, 'enum_for', ["keep_if"], ($$66 = function(){var self = $$66.$$s == null ? this : $$66.$$s; - return self.$size()}, TMP_62.$$s = self, TMP_62.$$arity = 0, TMP_62)) + return self.$size()}, $$66.$$s = self, $$66.$$arity = 0, $$66)) }; - - for (var i = 0, length = self.length, value; i < length; i++) { - value = block(self[i]); - - if (value === false || value === nil) { - self.splice(i, 1); - - length--; - i--; - } - } - ; + filterIf(self, $truthy, block); return self; - }, TMP_Array_keep_if_61.$$arity = 0); + }, $Array_keep_if$65.$$arity = 0); - Opal.defn(self, '$last', TMP_Array_last_63 = function $$last(count) { + Opal.def(self, '$last', $Array_last$67 = function $$last(count) { var self = this; + ; + if (count == null) { return self.length === 0 ? nil : self[self.length - 1]; } - count = Opal.const_get_relative($nesting, 'Opal').$coerce_to(count, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); if (count < 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "negative array size"); + self.$raise($$($nesting, 'ArgumentError'), "negative array size"); } if (count > self.length) { @@ -12795,16 +14552,37 @@ if (other == null) other = nil; } return self.slice(self.length - count, self.length); + ; + }, $Array_last$67.$$arity = -1); - }, TMP_Array_last_63.$$arity = -1); - - Opal.defn(self, '$length', TMP_Array_length_64 = function $$length() { + Opal.def(self, '$length', $Array_length$68 = function $$length() { var self = this; - return self.length - }, TMP_Array_length_64.$$arity = 0); - Opal.alias(self, "map", "collect"); - Opal.alias(self, "map!", "collect!"); + return self.length; + }, $Array_length$68.$$arity = 0); + $alias(self, "map", "collect"); + $alias(self, "map!", "collect!"); + + Opal.def(self, '$max', $Array_max$69 = function $$max(n) { + var $iter = $Array_max$69.$$p, block = $iter || nil, self = this; + + if ($iter) $Array_max$69.$$p = null; + + + if ($iter) $Array_max$69.$$p = null;; + ; + return $send(self.$each(), 'max', [n], block.$to_proc()); + }, $Array_max$69.$$arity = -1); + + Opal.def(self, '$min', $Array_min$70 = function $$min() { + var $iter = $Array_min$70.$$p, block = $iter || nil, self = this; + + if ($iter) $Array_min$70.$$p = null; + + + if ($iter) $Array_min$70.$$p = null;; + return $send(self.$each(), 'min', [], block.$to_proc()); + }, $Array_min$70.$$arity = 0); // Returns the product of from, from-1, ..., from - how_many + 1. function descending_factorial(from, how_many) { @@ -12818,16 +14596,19 @@ if (other == null) other = nil; } ; - Opal.defn(self, '$permutation', TMP_Array_permutation_65 = function $$permutation(num) { - var TMP_66, self = this, $iter = TMP_Array_permutation_65.$$p, block = $iter || nil, perm = nil, used = nil; + Opal.def(self, '$permutation', $Array_permutation$71 = function $$permutation(num) { + var $iter = $Array_permutation$71.$$p, block = $iter || nil, $$72, self = this, perm = nil, used = nil; - if ($iter) TMP_Array_permutation_65.$$p = null; + if ($iter) $Array_permutation$71.$$p = null; + + if ($iter) $Array_permutation$71.$$p = null;; + ; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["permutation", num], (TMP_66 = function(){var self = TMP_66.$$s || this; + } else { + return $send(self, 'enum_for', ["permutation", num], ($$72 = function(){var self = $$72.$$s == null ? this : $$72.$$s; - return descending_factorial(self.length, num === undefined ? self.length : num)}, TMP_66.$$s = self, TMP_66.$$arity = 0, TMP_66)) + return descending_factorial(self.length, num === undefined ? self.length : num);}, $$72.$$s = self, $$72.$$arity = 0, $$72)) }; var permute, offensive, output; @@ -12836,7 +14617,7 @@ if (other == null) other = nil; num = self.length; } else { - num = Opal.const_get_relative($nesting, 'Opal').$coerce_to(num, Opal.const_get_relative($nesting, 'Integer'), "to_int") + num = $coerce_to(num, $$($nesting, 'Integer'), 'to_int'); } if (num < 0 || self.length < num) { @@ -12854,8 +14635,8 @@ if (other == null) other = nil; } else { // this is the general case - (perm = Opal.const_get_relative($nesting, 'Array').$new(num)); - (used = Opal.const_get_relative($nesting, 'Array').$new(self.length, false)); + (perm = $$($nesting, 'Array').$new(num)); + (used = $$($nesting, 'Array').$new(self.length, false)); permute = function(num, perm, index, used, blk) { self = this; @@ -12872,7 +14653,7 @@ if (other == null) other = nil; for (var j = 0; j < perm.length; j++) { output.push(self[perm[j]]); } - Opal.yield1(blk, output); + $yield1(blk, output); } } } @@ -12889,23 +14670,23 @@ if (other == null) other = nil; } ; return self; - }, TMP_Array_permutation_65.$$arity = -1); + }, $Array_permutation$71.$$arity = -1); - Opal.defn(self, '$repeated_permutation', TMP_Array_repeated_permutation_67 = function $$repeated_permutation(n) { - var TMP_68, self = this, $iter = TMP_Array_repeated_permutation_67.$$p, $yield = $iter || nil, num = nil; + Opal.def(self, '$repeated_permutation', $Array_repeated_permutation$73 = function $$repeated_permutation(n) { + var $$74, $iter = $Array_repeated_permutation$73.$$p, $yield = $iter || nil, self = this, num = nil; - if ($iter) TMP_Array_repeated_permutation_67.$$p = null; + if ($iter) $Array_repeated_permutation$73.$$p = null; - num = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + num = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["repeated_permutation", num], (TMP_68 = function(){var self = TMP_68.$$s || this; + } else { + return $send(self, 'enum_for', ["repeated_permutation", num], ($$74 = function(){var self = $$74.$$s == null ? this : $$74.$$s; - if ($truthy($rb_ge(num, 0))) { + if ($truthy($rb_ge(num, 0))) { return self.$size()['$**'](num) - } else { + } else { return 0 - }}, TMP_68.$$s = self, TMP_68.$$arity = 0, TMP_68)) + }}, $$74.$$s = self, $$74.$$arity = 0, $$74)) }; function iterate(max, buffer, self) { @@ -12924,39 +14705,43 @@ if (other == null) other = nil; iterate(num, [], self.slice()); ; return self; - }, TMP_Array_repeated_permutation_67.$$arity = 1); + }, $Array_repeated_permutation$73.$$arity = 1); - Opal.defn(self, '$pop', TMP_Array_pop_69 = function $$pop(count) { + Opal.def(self, '$pop', $Array_pop$75 = function $$pop(count) { var self = this; + ; if ($truthy(count === undefined)) { if ($truthy(self.length === 0)) { return nil}; return self.pop();}; - count = Opal.const_get_relative($nesting, 'Opal').$coerce_to(count, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); if ($truthy(count < 0)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "negative array size")}; + self.$raise($$($nesting, 'ArgumentError'), "negative array size")}; if ($truthy(self.length === 0)) { return []}; - if ($truthy(count > self.length)) { - return self.splice(0, self.length) - } else { - return self.splice(self.length - count, self.length) + if ($truthy(count === 1)) { + return [self.pop()]; + } else if ($truthy(count > self.length)) { + return self.splice(0, self.length); + } else { + return self.splice(self.length - count, self.length); }; - }, TMP_Array_pop_69.$$arity = -1); + }, $Array_pop$75.$$arity = -1); - Opal.defn(self, '$product', TMP_Array_product_70 = function $$product($a_rest) { - var self = this, args, $iter = TMP_Array_product_70.$$p, block = $iter || nil; + Opal.def(self, '$product', $Array_product$76 = function $$product($a) { + var $iter = $Array_product$76.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Array_product_70.$$p = null; + if ($iter) $Array_product$76.$$p = null; + + + if ($iter) $Array_product$76.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; var result = (block !== nil) ? null : [], n = args.length + 1, @@ -12967,7 +14752,7 @@ if (other == null) other = nil; arrays[0] = self; for (i = 1; i < n; i++) { - arrays[i] = Opal.const_get_relative($nesting, 'Opal').$coerce_to(args[i - 1], Opal.const_get_relative($nesting, 'Array'), "to_ary"); + arrays[i] = $coerce_to(args[i - 1], $$($nesting, 'Array'), 'to_ary'); } for (i = 0; i < n; i++) { @@ -12977,7 +14762,7 @@ if (other == null) other = nil; } resultlen *= len; if (resultlen > 2147483647) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "too big to product") + self.$raise($$($nesting, 'RangeError'), "too big to product") } lengths[i] = len; counters[i] = 0; @@ -13003,28 +14788,27 @@ if (other == null) other = nil; } return result || self; + ; + }, $Array_product$76.$$arity = -1); - }, TMP_Array_product_70.$$arity = -1); - - Opal.defn(self, '$push', TMP_Array_push_71 = function $$push($a_rest) { - var self = this, objects; + Opal.def(self, '$push', $Array_push$77 = function $$push($a) { + var $post_args, objects, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - objects = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - objects[$arg_idx - 0] = arguments[$arg_idx]; - } + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + objects = $post_args;; + for (var i = 0, length = objects.length; i < length; i++) { self.push(objects[i]); } ; return self; - }, TMP_Array_push_71.$$arity = -1); + }, $Array_push$77.$$arity = -1); + $alias(self, "append", "push"); - Opal.defn(self, '$rassoc', TMP_Array_rassoc_72 = function $$rassoc(object) { + Opal.def(self, '$rassoc', $Array_rassoc$78 = function $$rassoc(object) { var self = this; @@ -13040,18 +14824,20 @@ if (other == null) other = nil; return nil; - }, TMP_Array_rassoc_72.$$arity = 1); + }, $Array_rassoc$78.$$arity = 1); - Opal.defn(self, '$reject', TMP_Array_reject_73 = function $$reject() { - var TMP_74, self = this, $iter = TMP_Array_reject_73.$$p, block = $iter || nil; + Opal.def(self, '$reject', $Array_reject$79 = function $$reject() { + var $iter = $Array_reject$79.$$p, block = $iter || nil, $$80, self = this; - if ($iter) TMP_Array_reject_73.$$p = null; + if ($iter) $Array_reject$79.$$p = null; + + if ($iter) $Array_reject$79.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reject"], (TMP_74 = function(){var self = TMP_74.$$s || this; + } else { + return $send(self, 'enum_for', ["reject"], ($$80 = function(){var self = $$80.$$s == null ? this : $$80.$$s; - return self.$size()}, TMP_74.$$s = self, TMP_74.$$arity = 0, TMP_74)) + return self.$size()}, $$80.$$s = self, $$80.$$arity = 0, $$80)) }; var result = []; @@ -13065,75 +14851,83 @@ if (other == null) other = nil; } return result; ; - }, TMP_Array_reject_73.$$arity = 0); + }, $Array_reject$79.$$arity = 0); - Opal.defn(self, '$reject!', TMP_Array_reject$B_75 = function() { - var TMP_76, self = this, $iter = TMP_Array_reject$B_75.$$p, block = $iter || nil, original = nil; + Opal.def(self, '$reject!', $Array_reject$excl$81 = function() { + var $iter = $Array_reject$excl$81.$$p, block = $iter || nil, $$82, self = this, original = nil; - if ($iter) TMP_Array_reject$B_75.$$p = null; + if ($iter) $Array_reject$excl$81.$$p = null; + + if ($iter) $Array_reject$excl$81.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reject!"], (TMP_76 = function(){var self = TMP_76.$$s || this; + } else { + return $send(self, 'enum_for', ["reject!"], ($$82 = function(){var self = $$82.$$s == null ? this : $$82.$$s; - return self.$size()}, TMP_76.$$s = self, TMP_76.$$arity = 0, TMP_76)) + return self.$size()}, $$82.$$s = self, $$82.$$arity = 0, $$82)) }; original = self.$length(); $send(self, 'delete_if', [], block.$to_proc()); if (self.$length()['$=='](original)) { return nil - } else { + } else { return self }; - }, TMP_Array_reject$B_75.$$arity = 0); + }, $Array_reject$excl$81.$$arity = 0); - Opal.defn(self, '$replace', TMP_Array_replace_77 = function $$replace(other) { + Opal.def(self, '$replace', $Array_replace$83 = function $$replace(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](other))) { - other = other.$to_a() - } else { - other = Opal.const_get_relative($nesting, 'Opal').$coerce_to(other, Opal.const_get_relative($nesting, 'Array'), "to_ary").$to_a() - }; + other = (function() {if ($truthy($$($nesting, 'Array')['$==='](other))) { + return other.$to_a() + } else { + return ($coerce_to(other, $$($nesting, 'Array'), 'to_ary')).$to_a() + }; return nil; })(); self.splice(0, self.length); self.push.apply(self, other); ; return self; - }, TMP_Array_replace_77.$$arity = 1); + }, $Array_replace$83.$$arity = 1); - Opal.defn(self, '$reverse', TMP_Array_reverse_78 = function $$reverse() { + Opal.def(self, '$reverse', $Array_reverse$84 = function $$reverse() { var self = this; - return self.slice(0).reverse() - }, TMP_Array_reverse_78.$$arity = 0); + return self.slice(0).reverse(); + }, $Array_reverse$84.$$arity = 0); - Opal.defn(self, '$reverse!', TMP_Array_reverse$B_79 = function() { + Opal.def(self, '$reverse!', $Array_reverse$excl$85 = function() { var self = this; - return self.reverse() - }, TMP_Array_reverse$B_79.$$arity = 0); + return self.reverse(); + }, $Array_reverse$excl$85.$$arity = 0); - Opal.defn(self, '$reverse_each', TMP_Array_reverse_each_80 = function $$reverse_each() { - var TMP_81, self = this, $iter = TMP_Array_reverse_each_80.$$p, block = $iter || nil; + Opal.def(self, '$reverse_each', $Array_reverse_each$86 = function $$reverse_each() { + var $iter = $Array_reverse_each$86.$$p, block = $iter || nil, $$87, self = this; - if ($iter) TMP_Array_reverse_each_80.$$p = null; + if ($iter) $Array_reverse_each$86.$$p = null; + + if ($iter) $Array_reverse_each$86.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["reverse_each"], (TMP_81 = function(){var self = TMP_81.$$s || this; + } else { + return $send(self, 'enum_for', ["reverse_each"], ($$87 = function(){var self = $$87.$$s == null ? this : $$87.$$s; - return self.$size()}, TMP_81.$$s = self, TMP_81.$$arity = 0, TMP_81)) + return self.$size()}, $$87.$$s = self, $$87.$$arity = 0, $$87)) }; $send(self.$reverse(), 'each', [], block.$to_proc()); return self; - }, TMP_Array_reverse_each_80.$$arity = 0); + }, $Array_reverse_each$86.$$arity = 0); - Opal.defn(self, '$rindex', TMP_Array_rindex_82 = function $$rindex(object) { - var self = this, $iter = TMP_Array_rindex_82.$$p, block = $iter || nil; + Opal.def(self, '$rindex', $Array_rindex$88 = function $$rindex(object) { + var $iter = $Array_rindex$88.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_rindex_82.$$p = null; + if ($iter) $Array_rindex$88.$$p = null; + + + if ($iter) $Array_rindex$88.$$p = null;; + ; var i, value; @@ -13169,20 +14963,22 @@ if (other == null) other = nil; } return nil; + ; + }, $Array_rindex$88.$$arity = -1); - }, TMP_Array_rindex_82.$$arity = -1); - - Opal.defn(self, '$rotate', TMP_Array_rotate_83 = function $$rotate(n) { + Opal.def(self, '$rotate', $Array_rotate$89 = function $$rotate(n) { var self = this; + + if (n == null) { n = 1; - } - - n = Opal.const_get_relative($nesting, 'Opal').$coerce_to(n, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + }; var ary, idx, firstPart, lastPart; + n = $coerce_to(n, $$($nesting, 'Integer'), 'to_int') + if (self.length === 1) { return self.slice(); } @@ -13197,85 +14993,95 @@ if (other == null) other = nil; lastPart = ary.slice(0, idx); return firstPart.concat(lastPart); ; - }, TMP_Array_rotate_83.$$arity = -1); + }, $Array_rotate$89.$$arity = -1); - Opal.defn(self, '$rotate!', TMP_Array_rotate$B_84 = function(cnt) { + Opal.def(self, '$rotate!', $Array_rotate$excl$90 = function(cnt) { var self = this, ary = nil; + + if (cnt == null) { cnt = 1; - } - + }; if (self.length === 0 || self.length === 1) { return self; } + cnt = $coerce_to(cnt, $$($nesting, 'Integer'), 'to_int'); ; - cnt = Opal.const_get_relative($nesting, 'Opal').$coerce_to(cnt, Opal.const_get_relative($nesting, 'Integer'), "to_int"); ary = self.$rotate(cnt); return self.$replace(ary); - }, TMP_Array_rotate$B_84.$$arity = -1); + }, $Array_rotate$excl$90.$$arity = -1); (function($base, $super, $parent_nesting) { - function $SampleRandom(){}; - var self = $SampleRandom = $klass($base, $super, 'SampleRandom', $SampleRandom); + var self = $klass($base, $super, 'SampleRandom'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_SampleRandom_initialize_85, TMP_SampleRandom_rand_86; + var $nesting = [self].concat($parent_nesting), $SampleRandom_initialize$91, $SampleRandom_rand$92; - def.rng = nil; + self.$$prototype.rng = nil; - Opal.defn(self, '$initialize', TMP_SampleRandom_initialize_85 = function $$initialize(rng) { + Opal.def(self, '$initialize', $SampleRandom_initialize$91 = function $$initialize(rng) { var self = this; return (self.rng = rng) - }, TMP_SampleRandom_initialize_85.$$arity = 1); - return (Opal.defn(self, '$rand', TMP_SampleRandom_rand_86 = function $$rand(size) { + }, $SampleRandom_initialize$91.$$arity = 1); + return (Opal.def(self, '$rand', $SampleRandom_rand$92 = function $$rand(size) { var self = this, random = nil; - random = Opal.const_get_relative($nesting, 'Opal').$coerce_to(self.rng.$rand(size), Opal.const_get_relative($nesting, 'Integer'), "to_int"); + random = $coerce_to(self.rng.$rand(size), $$($nesting, 'Integer'), 'to_int'); if ($truthy(random < 0)) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "random value must be >= 0")}; + self.$raise($$($nesting, 'RangeError'), "random value must be >= 0")}; if ($truthy(random < size)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "random value must be less than Array size") + } else { + self.$raise($$($nesting, 'RangeError'), "random value must be less than Array size") }; return random; - }, TMP_SampleRandom_rand_86.$$arity = 1), nil) && 'rand'; + }, $SampleRandom_rand$92.$$arity = 1), nil) && 'rand'; })($nesting[0], null, $nesting); - Opal.defn(self, '$sample', TMP_Array_sample_87 = function $$sample(count, options) { - var $a, self = this, o = nil, rng = nil; + Opal.def(self, '$sample', $Array_sample$93 = function $$sample(count, options) { + var self = this, o = nil, $ret_or_3 = nil, rng = nil, $ret_or_4 = nil; + ; + ; if ($truthy(count === undefined)) { - return self.$at(Opal.const_get_relative($nesting, 'Kernel').$rand(self.length))}; + return self.$at($$($nesting, 'Kernel').$rand(self.length))}; if ($truthy(options === undefined)) { - if ($truthy((o = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](count, Opal.const_get_relative($nesting, 'Hash'), "to_hash")))) { + if ($truthy((o = $$($nesting, 'Opal')['$coerce_to?'](count, $$($nesting, 'Hash'), "to_hash")))) { options = o; count = nil; - } else { + } else { options = nil; - count = Opal.const_get_relative($nesting, 'Opal').$coerce_to(count, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); } - } else { + } else { - count = Opal.const_get_relative($nesting, 'Opal').$coerce_to(count, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - options = Opal.const_get_relative($nesting, 'Opal').$coerce_to(options, Opal.const_get_relative($nesting, 'Hash'), "to_hash"); + count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); + options = $coerce_to(options, $$($nesting, 'Hash'), 'to_hash'); }; - if ($truthy(($truthy($a = count) ? count < 0 : $a))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "count must be greater than 0")}; + if ($truthy((function() {if ($truthy(($ret_or_3 = count))) { + return count < 0; + } else { + return $ret_or_3 + }; return nil; })())) { + self.$raise($$($nesting, 'ArgumentError'), "count must be greater than 0")}; if ($truthy(options)) { rng = options['$[]']("random")}; - if ($truthy(($truthy($a = rng) ? rng['$respond_to?']("rand") : $a))) { - rng = Opal.const_get_relative($nesting, 'SampleRandom').$new(rng) - } else { - rng = Opal.const_get_relative($nesting, 'Kernel') - }; + rng = (function() {if ($truthy((function() {if ($truthy(($ret_or_4 = rng))) { + return rng['$respond_to?']("rand") + } else { + return $ret_or_4 + }; return nil; })())) { + return $$($nesting, 'SampleRandom').$new(rng) + } else { + return $$($nesting, 'Kernel') + }; return nil; })(); if ($truthy(count)) { - } else { + } else { return self[rng.$rand(self.length)] }; @@ -13306,7 +15112,7 @@ if (other == null) other = nil; abandon = false; spin = 0; - result = Opal.const_get_relative($nesting, 'Array').$new(count); + result = $$($nesting, 'Array').$new(count); i = 1; result[0] = rng.$rand(self.length); @@ -13358,18 +15164,20 @@ if (other == null) other = nil; return count === self.length ? result : (result)['$[]'](0, count); } ; - }, TMP_Array_sample_87.$$arity = -1); + }, $Array_sample$93.$$arity = -1); - Opal.defn(self, '$select', TMP_Array_select_88 = function $$select() { - var TMP_89, self = this, $iter = TMP_Array_select_88.$$p, block = $iter || nil; + Opal.def(self, '$select', $Array_select$94 = function $$select() { + var $iter = $Array_select$94.$$p, block = $iter || nil, $$95, self = this; - if ($iter) TMP_Array_select_88.$$p = null; + if ($iter) $Array_select$94.$$p = null; + + if ($iter) $Array_select$94.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["select"], (TMP_89 = function(){var self = TMP_89.$$s || this; + } else { + return $send(self, 'enum_for', ["select"], ($$95 = function(){var self = $$95.$$s == null ? this : $$95.$$s; - return self.$size()}, TMP_89.$$s = self, TMP_89.$$arity = 0, TMP_89)) + return self.$size()}, $$95.$$s = self, $$95.$$arity = 0, $$95)) }; var result = []; @@ -13377,67 +15185,76 @@ if (other == null) other = nil; for (var i = 0, length = self.length, item, value; i < length; i++) { item = self[i]; - value = Opal.yield1(block, item); + value = $yield1(block, item); - if (value !== false && value !== nil) { + if ($truthy(value)) { result.push(item); } } return result; ; - }, TMP_Array_select_88.$$arity = 0); + }, $Array_select$94.$$arity = 0); - Opal.defn(self, '$select!', TMP_Array_select$B_90 = function() { - var TMP_91, self = this, $iter = TMP_Array_select$B_90.$$p, block = $iter || nil; + Opal.def(self, '$select!', $Array_select$excl$96 = function() { + var $iter = $Array_select$excl$96.$$p, block = $iter || nil, $$97, self = this; - if ($iter) TMP_Array_select$B_90.$$p = null; + if ($iter) $Array_select$excl$96.$$p = null; + + if ($iter) $Array_select$excl$96.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["select!"], (TMP_91 = function(){var self = TMP_91.$$s || this; + } else { + return $send(self, 'enum_for', ["select!"], ($$97 = function(){var self = $$97.$$s == null ? this : $$97.$$s; - return self.$size()}, TMP_91.$$s = self, TMP_91.$$arity = 0, TMP_91)) + return self.$size()}, $$97.$$s = self, $$97.$$arity = 0, $$97)) }; var original = self.length; $send(self, 'keep_if', [], block.$to_proc()); return self.length === original ? nil : self; ; - }, TMP_Array_select$B_90.$$arity = 0); + }, $Array_select$excl$96.$$arity = 0); + $alias(self, "filter", "select"); + $alias(self, "filter!", "select!"); - Opal.defn(self, '$shift', TMP_Array_shift_92 = function $$shift(count) { + Opal.def(self, '$shift', $Array_shift$98 = function $$shift(count) { var self = this; + ; if ($truthy(count === undefined)) { if ($truthy(self.length === 0)) { return nil}; - return self.shift();}; - count = Opal.const_get_relative($nesting, 'Opal').$coerce_to(count, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + return shiftNoArg(self);}; + count = $coerce_to(count, $$($nesting, 'Integer'), 'to_int'); if ($truthy(count < 0)) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "negative array size")}; + self.$raise($$($nesting, 'ArgumentError'), "negative array size")}; if ($truthy(self.length === 0)) { return []}; - return self.splice(0, count); - }, TMP_Array_shift_92.$$arity = -1); - Opal.alias(self, "size", "length"); + return self.splice(0, count);; + }, $Array_shift$98.$$arity = -1); + $alias(self, "size", "length"); - Opal.defn(self, '$shuffle', TMP_Array_shuffle_93 = function $$shuffle(rng) { + Opal.def(self, '$shuffle', $Array_shuffle$99 = function $$shuffle(rng) { var self = this; - return self.$dup().$to_a()['$shuffle!'](rng) - }, TMP_Array_shuffle_93.$$arity = -1); + + ; + return self.$dup().$to_a()['$shuffle!'](rng); + }, $Array_shuffle$99.$$arity = -1); - Opal.defn(self, '$shuffle!', TMP_Array_shuffle$B_94 = function(rng) { + Opal.def(self, '$shuffle!', $Array_shuffle$excl$100 = function(rng) { var self = this; + ; + var randgen, i = self.length, j, tmp; if (rng !== undefined) { - rng = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](rng, Opal.const_get_relative($nesting, 'Hash'), "to_hash"); + rng = $$($nesting, 'Opal')['$coerce_to?'](rng, $$($nesting, 'Hash'), "to_hash"); if (rng !== nil) { rng = rng['$[]']("random"); @@ -13453,11 +15270,11 @@ if (other == null) other = nil; j = randgen.$rand(i).$to_int(); if (j < 0) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "" + "random number too small " + (j)) + self.$raise($$($nesting, 'RangeError'), "" + "random number too small " + (j)) } if (j >= i) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "" + "random number too big " + (j)) + self.$raise($$($nesting, 'RangeError'), "" + "random number too big " + (j)) } } else { @@ -13470,22 +15287,23 @@ if (other == null) other = nil; } return self; + ; + }, $Array_shuffle$excl$100.$$arity = -1); + $alias(self, "slice", "[]"); - }, TMP_Array_shuffle$B_94.$$arity = -1); - Opal.alias(self, "slice", "[]"); - - Opal.defn(self, '$slice!', TMP_Array_slice$B_95 = function(index, length) { + Opal.def(self, '$slice!', $Array_slice$excl$101 = function(index, length) { var self = this, result = nil, range = nil, range_start = nil, range_end = nil, start = nil; + ; result = nil; if ($truthy(length === undefined)) { - if ($truthy(Opal.const_get_relative($nesting, 'Range')['$==='](index))) { + if ($truthy($$($nesting, 'Range')['$==='](index))) { range = index; result = self['$[]'](range); - range_start = Opal.const_get_relative($nesting, 'Opal').$coerce_to(range.$begin(), Opal.const_get_relative($nesting, 'Integer'), "to_int"); - range_end = Opal.const_get_relative($nesting, 'Opal').$coerce_to(range.$end(), Opal.const_get_relative($nesting, 'Integer'), "to_int"); + range_start = $coerce_to(range.begin, $$($nesting, 'Integer'), 'to_int'); + range_end = $coerce_to(range.end, $$($nesting, 'Integer'), 'to_int'); if (range_start < 0) { range_start += self.length; @@ -13511,9 +15329,9 @@ if (other == null) other = nil; self.splice(range_start, range_length); } ; - } else { + } else { - start = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + start = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); if (start < 0) { start += self.length; @@ -13532,10 +15350,10 @@ if (other == null) other = nil; } ; } - } else { + } else { - start = Opal.const_get_relative($nesting, 'Opal').$coerce_to(index, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - length = Opal.const_get_relative($nesting, 'Opal').$coerce_to(length, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + start = $coerce_to(index, $$($nesting, 'Integer'), 'to_int'); + length = $coerce_to(length, $$($nesting, 'Integer'), 'to_int'); if (length < 0) { return nil; @@ -13559,15 +15377,17 @@ if (other == null) other = nil; ; }; return result; - }, TMP_Array_slice$B_95.$$arity = -2); + }, $Array_slice$excl$101.$$arity = -2); - Opal.defn(self, '$sort', TMP_Array_sort_96 = function $$sort() { - var self = this, $iter = TMP_Array_sort_96.$$p, block = $iter || nil; + Opal.def(self, '$sort', $Array_sort$102 = function $$sort() { + var $iter = $Array_sort$102.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_sort_96.$$p = null; + if ($iter) $Array_sort$102.$$p = null; + + if ($iter) $Array_sort$102.$$p = null;; if ($truthy(self.length > 1)) { - } else { + } else { return self }; @@ -13581,18 +15401,21 @@ if (other == null) other = nil; var ret = block(x, y); if (ret === nil) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + ((x).$inspect()) + " with " + ((y).$inspect()) + " failed"); + self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + ((x).$inspect()) + " with " + ((y).$inspect()) + " failed"); } return $rb_gt(ret, 0) ? 1 : ($rb_lt(ret, 0) ? -1 : 0); }); ; - }, TMP_Array_sort_96.$$arity = 0); + }, $Array_sort$102.$$arity = 0); - Opal.defn(self, '$sort!', TMP_Array_sort$B_97 = function() { - var self = this, $iter = TMP_Array_sort$B_97.$$p, block = $iter || nil; + Opal.def(self, '$sort!', $Array_sort$excl$103 = function() { + var $iter = $Array_sort$excl$103.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_sort$B_97.$$p = null; + if ($iter) $Array_sort$excl$103.$$p = null; + + + if ($iter) $Array_sort$excl$103.$$p = null;; var result; @@ -13609,39 +15432,44 @@ if (other == null) other = nil; } return self; + ; + }, $Array_sort$excl$103.$$arity = 0); - }, TMP_Array_sort$B_97.$$arity = 0); - - Opal.defn(self, '$sort_by!', TMP_Array_sort_by$B_98 = function() { - var TMP_99, self = this, $iter = TMP_Array_sort_by$B_98.$$p, block = $iter || nil; + Opal.def(self, '$sort_by!', $Array_sort_by$excl$104 = function() { + var $iter = $Array_sort_by$excl$104.$$p, block = $iter || nil, $$105, self = this; - if ($iter) TMP_Array_sort_by$B_98.$$p = null; + if ($iter) $Array_sort_by$excl$104.$$p = null; + + if ($iter) $Array_sort_by$excl$104.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["sort_by!"], (TMP_99 = function(){var self = TMP_99.$$s || this; + } else { + return $send(self, 'enum_for', ["sort_by!"], ($$105 = function(){var self = $$105.$$s == null ? this : $$105.$$s; - return self.$size()}, TMP_99.$$s = self, TMP_99.$$arity = 0, TMP_99)) + return self.$size()}, $$105.$$s = self, $$105.$$arity = 0, $$105)) }; return self.$replace($send(self, 'sort_by', [], block.$to_proc())); - }, TMP_Array_sort_by$B_98.$$arity = 0); + }, $Array_sort_by$excl$104.$$arity = 0); - Opal.defn(self, '$take', TMP_Array_take_100 = function $$take(count) { + Opal.def(self, '$take', $Array_take$106 = function $$take(count) { var self = this; if (count < 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError')); + self.$raise($$($nesting, 'ArgumentError')); } return self.slice(0, count); - }, TMP_Array_take_100.$$arity = 1); + }, $Array_take$106.$$arity = 1); - Opal.defn(self, '$take_while', TMP_Array_take_while_101 = function $$take_while() { - var self = this, $iter = TMP_Array_take_while_101.$$p, block = $iter || nil; + Opal.def(self, '$take_while', $Array_take_while$107 = function $$take_while() { + var $iter = $Array_take_while$107.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_take_while_101.$$p = null; + if ($iter) $Array_take_while$107.$$p = null; + + + if ($iter) $Array_take_while$107.$$p = null;; var result = []; @@ -13658,109 +15486,175 @@ if (other == null) other = nil; } return result; + ; + }, $Array_take_while$107.$$arity = 0); + + Opal.def(self, '$to_a', $Array_to_a$108 = function $$to_a() { + var self = this; + + + if (self.$$class === Opal.Array) { + return self; + } + else { + return Opal.Array.$new(self); + } - }, TMP_Array_take_while_101.$$arity = 0); + }, $Array_to_a$108.$$arity = 0); - Opal.defn(self, '$to_a', TMP_Array_to_a_102 = function $$to_a() { + Opal.def(self, '$to_ary', $Array_to_ary$109 = function $$to_ary() { var self = this; return self - }, TMP_Array_to_a_102.$$arity = 0); - Opal.alias(self, "to_ary", "to_a"); + }, $Array_to_ary$109.$$arity = 0); - Opal.defn(self, '$to_h', TMP_Array_to_h_103 = function $$to_h() { - var self = this; + Opal.def(self, '$to_h', $Array_to_h$110 = function $$to_h() { + var $iter = $Array_to_h$110.$$p, block = $iter || nil, self = this, array = nil; + if ($iter) $Array_to_h$110.$$p = null; + + + if ($iter) $Array_to_h$110.$$p = null;; + array = self; + if ((block !== nil)) { + array = $send(array, 'map', [], block.$to_proc())}; - var i, len = self.length, ary, key, val, hash = $hash2([], {}); + var i, len = array.length, ary, key, val, hash = $hash2([], {}); for (i = 0; i < len; i++) { - ary = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](self[i], Opal.const_get_relative($nesting, 'Array'), "to_ary"); + ary = $$($nesting, 'Opal')['$coerce_to?'](array[i], $$($nesting, 'Array'), "to_ary"); if (!ary.$$is_array) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "wrong element type " + ((ary).$class()) + " at " + (i) + " (expected array)") + self.$raise($$($nesting, 'TypeError'), "" + "wrong element type " + ((ary).$class()) + " at " + (i) + " (expected array)") } if (ary.length !== 2) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong array length at " + (i) + " (expected 2, was " + ((ary).$length()) + ")") + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong array length at " + (i) + " (expected 2, was " + ((ary).$length()) + ")") } key = ary[0]; val = ary[1]; - Opal.hash_put(hash, key, val); + $hash_put(hash, key, val); } return hash; + ; + }, $Array_to_h$110.$$arity = 0); + $alias(self, "to_s", "inspect"); - }, TMP_Array_to_h_103.$$arity = 0); - Opal.alias(self, "to_s", "inspect"); - - Opal.defn(self, '$transpose', TMP_Array_transpose_106 = function $$transpose() { - var TMP_104, self = this, result = nil, max = nil; + Opal.def(self, '$transpose', $Array_transpose$111 = function $$transpose() { + var $$112, self = this, result = nil, max = nil; if ($truthy(self['$empty?']())) { return []}; result = []; max = nil; - $send(self, 'each', [], (TMP_104 = function(row){var self = TMP_104.$$s || this, $a, TMP_105; -if (row == null) row = nil; - - if ($truthy(Opal.const_get_relative($nesting, 'Array')['$==='](row))) { - row = row.$to_a() - } else { - row = Opal.const_get_relative($nesting, 'Opal').$coerce_to(row, Opal.const_get_relative($nesting, 'Array'), "to_ary").$to_a() + $send(self, 'each', [], ($$112 = function(row){var self = $$112.$$s == null ? this : $$112.$$s, $$113, $ret_or_5 = nil; + + + + if (row == null) { + row = nil; }; - max = ($truthy($a = max) ? $a : row.length); + row = (function() {if ($truthy($$($nesting, 'Array')['$==='](row))) { + return row.$to_a() + } else { + return ($coerce_to(row, $$($nesting, 'Array'), 'to_ary')).$to_a() + }; return nil; })(); + max = (function() {if ($truthy(($ret_or_5 = max))) { + return $ret_or_5 + } else { + return row.length; + }; return nil; })(); if ($truthy((row.length)['$!='](max))) { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "element size differs (" + (row.length) + " should be " + (max) + ")")}; - return $send((row.length), 'times', [], (TMP_105 = function(i){var self = TMP_105.$$s || this, $b, entry = nil, $writer = nil; -if (i == null) i = nil; - - entry = ($truthy($b = result['$[]'](i)) ? $b : (($writer = [i, []]), $send(result, '[]=', Opal.to_a($writer)), $writer[$rb_minus($writer["length"], 1)])); - return entry['$<<'](row.$at(i));}, TMP_105.$$s = self, TMP_105.$$arity = 1, TMP_105));}, TMP_104.$$s = self, TMP_104.$$arity = 1, TMP_104)); + self.$raise($$($nesting, 'IndexError'), "" + "element size differs (" + (row.length) + " should be " + (max) + ")")}; + return $send((row.length), 'times', [], ($$113 = function(i){var self = $$113.$$s == null ? this : $$113.$$s, entry = nil, $ret_or_6 = nil, $writer = nil; + + + + if (i == null) { + i = nil; + }; + entry = (function() {if ($truthy(($ret_or_6 = result['$[]'](i)))) { + return $ret_or_6 + } else { + + $writer = [i, []]; + $send(result, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)]; + }; return nil; })(); + return entry['$<<'](row.$at(i));}, $$113.$$s = self, $$113.$$arity = 1, $$113));}, $$112.$$s = self, $$112.$$arity = 1, $$112)); return result; - }, TMP_Array_transpose_106.$$arity = 0); + }, $Array_transpose$111.$$arity = 0); + + Opal.def(self, '$union', $Array_union$114 = function $$union($a) { + var $post_args, arrays, $$115, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + arrays = $post_args;; + return $send(arrays, 'reduce', [self.$uniq()], ($$115 = function(a, b){var self = $$115.$$s == null ? this : $$115.$$s; + + + + if (a == null) { + a = nil; + }; + + if (b == null) { + b = nil; + }; + return a['$|'](b);}, $$115.$$s = self, $$115.$$arity = 2, $$115)); + }, $Array_union$114.$$arity = -1); - Opal.defn(self, '$uniq', TMP_Array_uniq_107 = function $$uniq() { - var self = this, $iter = TMP_Array_uniq_107.$$p, block = $iter || nil; + Opal.def(self, '$uniq', $Array_uniq$116 = function $$uniq() { + var $iter = $Array_uniq$116.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_uniq_107.$$p = null; + if ($iter) $Array_uniq$116.$$p = null; + + + if ($iter) $Array_uniq$116.$$p = null;; var hash = $hash2([], {}), i, length, item, key; if (block === nil) { for (i = 0, length = self.length; i < length; i++) { item = self[i]; - if (Opal.hash_get(hash, item) === undefined) { - Opal.hash_put(hash, item, item); + if ($hash_get(hash, item) === undefined) { + $hash_put(hash, item, item); } } } else { for (i = 0, length = self.length; i < length; i++) { item = self[i]; - key = Opal.yield1(block, item); - if (Opal.hash_get(hash, key) === undefined) { - Opal.hash_put(hash, key, item); + key = $yield1(block, item); + if ($hash_get(hash, key) === undefined) { + $hash_put(hash, key, item); } } } - return toArraySubclass((hash).$values(), self.$class()); - - }, TMP_Array_uniq_107.$$arity = 0); + return (hash).$values(); + ; + }, $Array_uniq$116.$$arity = 0); - Opal.defn(self, '$uniq!', TMP_Array_uniq$B_108 = function() { - var self = this, $iter = TMP_Array_uniq$B_108.$$p, block = $iter || nil; + Opal.def(self, '$uniq!', $Array_uniq$excl$117 = function() { + var $iter = $Array_uniq$excl$117.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Array_uniq$B_108.$$p = null; + if ($iter) $Array_uniq$excl$117.$$p = null; + + + if ($iter) $Array_uniq$excl$117.$$p = null;; var original_length = self.length, hash = $hash2([], {}), i, length, item, key; for (i = 0, length = original_length; i < length; i++) { item = self[i]; - key = (block === nil ? item : Opal.yield1(block, item)); + key = (block === nil ? item : $yield1(block, item)); - if (Opal.hash_get(hash, key) === undefined) { - Opal.hash_put(hash, key, item); + if ($hash_get(hash, key) === undefined) { + $hash_put(hash, key, item); continue; } @@ -13770,44 +15664,58 @@ if (i == null) i = nil; } return self.length === original_length ? nil : self; + ; + }, $Array_uniq$excl$117.$$arity = 0); - }, TMP_Array_uniq$B_108.$$arity = 0); - - Opal.defn(self, '$unshift', TMP_Array_unshift_109 = function $$unshift($a_rest) { - var self = this, objects; + Opal.def(self, '$unshift', $Array_unshift$118 = function $$unshift($a) { + var $post_args, objects, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - objects = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - objects[$arg_idx - 0] = arguments[$arg_idx]; - } - for (var i = objects.length - 1; i >= 0; i--) { - self.unshift(objects[i]); + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + objects = $post_args;; + + var selfLength = self.length + var objectsLength = objects.length + if (objectsLength == 0) return self; + var index = selfLength - objectsLength + for (var i = 0; i < objectsLength; i++) { + self.push(self[index + i]) + } + var len = selfLength - 1 + while (len - objectsLength >= 0) { + self[len] = self[len - objectsLength] + len-- + } + for (var j = 0; j < objectsLength; j++) { + self[j] = objects[j] } - ; return self; - }, TMP_Array_unshift_109.$$arity = -1); + ; + }, $Array_unshift$118.$$arity = -1); + $alias(self, "prepend", "unshift"); - Opal.defn(self, '$values_at', TMP_Array_values_at_112 = function $$values_at($a_rest) { - var TMP_110, self = this, args, out = nil; + Opal.def(self, '$values_at', $Array_values_at$119 = function $$values_at($a) { + var $post_args, args, $$120, self = this, out = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; out = []; - $send(args, 'each', [], (TMP_110 = function(elem){var self = TMP_110.$$s || this, TMP_111, finish = nil, start = nil, i = nil; -if (elem == null) elem = nil; - if ($truthy(elem['$kind_of?'](Opal.const_get_relative($nesting, 'Range')))) { + $send(args, 'each', [], ($$120 = function(elem){var self = $$120.$$s == null ? this : $$120.$$s, $$121, finish = nil, start = nil, i = nil; + + + + if (elem == null) { + elem = nil; + }; + if ($truthy(elem['$is_a?']($$($nesting, 'Range')))) { - finish = Opal.const_get_relative($nesting, 'Opal').$coerce_to(elem.$last(), Opal.const_get_relative($nesting, 'Integer'), "to_int"); - start = Opal.const_get_relative($nesting, 'Opal').$coerce_to(elem.$first(), Opal.const_get_relative($nesting, 'Integer'), "to_int"); + finish = $coerce_to(elem.$last(), $$($nesting, 'Integer'), 'to_int'); + start = $coerce_to(elem.$first(), $$($nesting, 'Integer'), 'to_int'); if (start < 0) { start = start + self.length; @@ -13825,27 +15733,33 @@ if (elem == null) elem = nil; return nil;; } ; - return $send(start, 'upto', [finish], (TMP_111 = function(i){var self = TMP_111.$$s || this; -if (i == null) i = nil; - return out['$<<'](self.$at(i))}, TMP_111.$$s = self, TMP_111.$$arity = 1, TMP_111)); - } else { + return $send(start, 'upto', [finish], ($$121 = function(i){var self = $$121.$$s == null ? this : $$121.$$s; + + + + if (i == null) { + i = nil; + }; + return out['$<<'](self.$at(i));}, $$121.$$s = self, $$121.$$arity = 1, $$121)); + } else { - i = Opal.const_get_relative($nesting, 'Opal').$coerce_to(elem, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + i = $coerce_to(elem, $$($nesting, 'Integer'), 'to_int'); return out['$<<'](self.$at(i)); - }}, TMP_110.$$s = self, TMP_110.$$arity = 1, TMP_110)); + };}, $$120.$$s = self, $$120.$$arity = 1, $$120)); return out; - }, TMP_Array_values_at_112.$$arity = -1); + }, $Array_values_at$119.$$arity = -1); - Opal.defn(self, '$zip', TMP_Array_zip_113 = function $$zip($a_rest) { - var $b, self = this, others, $iter = TMP_Array_zip_113.$$p, block = $iter || nil; + Opal.def(self, '$zip', $Array_zip$122 = function $$zip($a) { + var $iter = $Array_zip$122.$$p, block = $iter || nil, $post_args, others, self = this, $ret_or_7 = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - others = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - others[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Array_zip_113.$$p = null; + if ($iter) $Array_zip$122.$$p = null; + + + if ($iter) $Array_zip$122.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + others = $post_args;; var result = [], size = self.length, part, o, i, j, jj; @@ -13854,15 +15768,15 @@ if (i == null) i = nil; if (o.$$is_array) { continue; } - if (o.$$is_enumerator) { - if (o.$size() === Infinity) { - others[j] = o.$take(size); - } else { - others[j] = o.$to_a(); - } + if (o.$$is_range || o.$$is_enumerator) { + others[j] = o.$take(size); continue; } - others[j] = ($truthy($b = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](o, Opal.const_get_relative($nesting, 'Array'), "to_ary")) ? $b : Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](o, Opal.const_get_relative($nesting, 'Enumerator'), "each")).$to_a(); + others[j] = (function() {if ($truthy(($ret_or_7 = $$($nesting, 'Opal')['$coerce_to?'](o, $$($nesting, 'Array'), "to_ary")))) { + return $ret_or_7 + } else { + return $$($nesting, 'Opal')['$coerce_to!'](o, $$($nesting, 'Enumerator'), "to_enum", "each") + }; return nil; })().$to_a(); } for (i = 0; i < size; i++) { @@ -13883,43 +15797,58 @@ if (i == null) i = nil; if (block !== nil) { for (i = 0; i < size; i++) { - block(result[i]); + Opal.yield1(block, result[i]); } return nil; } return result; - - }, TMP_Array_zip_113.$$arity = -1); - Opal.defs(self, '$inherited', TMP_Array_inherited_114 = function $$inherited(klass) { + ; + }, $Array_zip$122.$$arity = -1); + Opal.defs(self, '$inherited', $Array_inherited$123 = function $$inherited(klass) { var self = this; - klass.$$proto.$to_a = function() { + klass.$$prototype.$to_a = function() { return this.slice(0, this.length); } - }, TMP_Array_inherited_114.$$arity = 1); + }, $Array_inherited$123.$$arity = 1); - Opal.defn(self, '$instance_variables', TMP_Array_instance_variables_115 = function $$instance_variables() { - var TMP_116, self = this, $iter = TMP_Array_instance_variables_115.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$instance_variables', $Array_instance_variables$124 = function $$instance_variables() { + var $$125, $iter = $Array_instance_variables$124.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Array_instance_variables_115.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return $send($send(self, Opal.find_super_dispatcher(self, 'instance_variables', TMP_Array_instance_variables_115, false), $zuper, $iter), 'reject', [], (TMP_116 = function(ivar){var self = TMP_116.$$s || this, $a; -if (ivar == null) ivar = nil; - return ($truthy($a = /^@\d+$/.test(ivar)) ? $a : ivar['$==']("@length"))}, TMP_116.$$s = self, TMP_116.$$arity = 1, TMP_116)) - }, TMP_Array_instance_variables_115.$$arity = 0); - return Opal.const_get_relative($nesting, 'Opal').$pristine(self, "allocate", "copy_instance_variables", "initialize_dup"); + if ($iter) $Array_instance_variables$124.$$p = null; + return $send($send2(self, $find_super(self, 'instance_variables', $Array_instance_variables$124, false, true), 'instance_variables', [], $iter), 'reject', [], ($$125 = function(ivar){var self = $$125.$$s == null ? this : $$125.$$s, $ret_or_8 = nil; + + + + if (ivar == null) { + ivar = nil; + }; + if ($truthy(($ret_or_8 = /^@\d+$/.test(ivar)))) { + return $ret_or_8 + } else { + return ivar['$==']("@length") + };}, $$125.$$s = self, $$125.$$arity = 1, $$125)) + }, $Array_instance_variables$124.$$arity = 0); + $$($nesting, 'Opal').$pristine(self.$singleton_class(), "allocate"); + $$($nesting, 'Opal').$pristine(self, "copy_instance_variables", "initialize_dup"); + return (Opal.def(self, '$pack', $Array_pack$126 = function $$pack($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return self.$raise("To use Array#pack, you must first require 'corelib/array/pack'."); + }, $Array_pack$126.$$arity = -1), nil) && 'pack'; })($nesting[0], Array, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/hash"] = function(Opal) { +Opal.modules["corelib/hash"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } @@ -13929,41 +15858,39 @@ Opal.modules["corelib/hash"] = function(Opal) { function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, $hash2 = Opal.hash2, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$coerce_to?', '$[]', '$merge!', '$allocate', '$raise', '$coerce_to!', '$each', '$fetch', '$>=', '$>', '$==', '$compare_by_identity', '$lambda?', '$abs', '$arity', '$call', '$enum_for', '$size', '$respond_to?', '$class', '$dig', '$inspect', '$map', '$to_proc', '$flatten', '$eql?', '$default', '$dup', '$default_proc', '$default_proc=', '$-', '$default=', '$alias_method', '$proc']); + Opal.add_stubs(['$require', '$include', '$coerce_to?', '$[]', '$merge!', '$allocate', '$raise', '$coerce_to!', '$each', '$fetch', '$>=', '$>', '$==', '$compare_by_identity', '$lambda?', '$abs', '$arity', '$enum_for', '$size', '$respond_to?', '$class', '$dig', '$except!', '$dup', '$delete', '$new', '$inspect', '$map', '$to_proc', '$flatten', '$eql?', '$default', '$default_proc', '$default_proc=', '$-', '$default=', '$to_h', '$proc']); self.$require("corelib/enumerable"); return (function($base, $super, $parent_nesting) { - function $Hash(){}; - var self = $Hash = $klass($base, $super, 'Hash', $Hash); + var self = $klass($base, $super, 'Hash'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Hash_$$_1, TMP_Hash_allocate_2, TMP_Hash_try_convert_3, TMP_Hash_initialize_4, TMP_Hash_$eq$eq_5, TMP_Hash_$gt$eq_7, TMP_Hash_$gt_8, TMP_Hash_$lt_9, TMP_Hash_$lt$eq_10, TMP_Hash_$$_11, TMP_Hash_$$$eq_12, TMP_Hash_assoc_13, TMP_Hash_clear_14, TMP_Hash_clone_15, TMP_Hash_compact_16, TMP_Hash_compact$B_17, TMP_Hash_compare_by_identity_18, TMP_Hash_compare_by_identity$q_19, TMP_Hash_default_20, TMP_Hash_default$eq_21, TMP_Hash_default_proc_22, TMP_Hash_default_proc$eq_23, TMP_Hash_delete_24, TMP_Hash_delete_if_25, TMP_Hash_dig_27, TMP_Hash_each_28, TMP_Hash_each_key_30, TMP_Hash_each_value_32, TMP_Hash_empty$q_34, TMP_Hash_fetch_35, TMP_Hash_fetch_values_36, TMP_Hash_flatten_38, TMP_Hash_has_key$q_39, TMP_Hash_has_value$q_40, TMP_Hash_hash_41, TMP_Hash_index_42, TMP_Hash_indexes_43, TMP_Hash_inspect_44, TMP_Hash_invert_45, TMP_Hash_keep_if_46, TMP_Hash_keys_48, TMP_Hash_length_49, TMP_Hash_merge_50, TMP_Hash_merge$B_51, TMP_Hash_rassoc_52, TMP_Hash_rehash_53, TMP_Hash_reject_54, TMP_Hash_reject$B_56, TMP_Hash_replace_58, TMP_Hash_select_59, TMP_Hash_select$B_61, TMP_Hash_shift_63, TMP_Hash_to_a_64, TMP_Hash_to_h_65, TMP_Hash_to_hash_66, TMP_Hash_to_proc_68, TMP_Hash_transform_values_69, TMP_Hash_transform_values$B_71, TMP_Hash_values_73; + var $nesting = [self].concat($parent_nesting), $Hash_$$$1, $Hash_allocate$2, $Hash_try_convert$3, $Hash_initialize$4, $Hash_$eq_eq$5, $Hash_$gt_eq$6, $Hash_$gt$8, $Hash_$lt$9, $Hash_$lt_eq$10, $Hash_$$$11, $Hash_$$$eq$12, $Hash_assoc$13, $Hash_clear$14, $Hash_clone$15, $Hash_compact$16, $Hash_compact$excl$17, $Hash_compare_by_identity$18, $Hash_compare_by_identity$ques$19, $Hash_default$20, $Hash_default$eq$21, $Hash_default_proc$22, $Hash_default_proc$eq$23, $Hash_delete$24, $Hash_delete_if$25, $Hash_dig$27, $Hash_each$28, $Hash_each_key$30, $Hash_each_value$32, $Hash_empty$ques$34, $Hash_except$35, $Hash_except$excl$36, $Hash_fetch$38, $Hash_fetch_values$39, $Hash_flatten$41, $Hash_has_key$ques$42, $Hash_has_value$ques$43, $Hash_hash$44, $Hash_index$45, $Hash_indexes$46, $Hash_inspect$47, $Hash_invert$48, $Hash_keep_if$49, $Hash_keys$51, $Hash_length$52, $Hash_merge$53, $Hash_merge$excl$54, $Hash_rassoc$55, $Hash_rehash$56, $Hash_reject$57, $Hash_reject$excl$59, $Hash_replace$61, $Hash_select$62, $Hash_select$excl$64, $Hash_shift$66, $Hash_slice$67, $Hash_to_a$68, $Hash_to_h$69, $Hash_to_hash$70, $Hash_to_proc$71, $Hash_transform_keys$73, $Hash_transform_keys$excl$75, $Hash_transform_values$77, $Hash_transform_values$excl$79, $Hash_values$81; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); - def.$$is_hash = true; - Opal.defs(self, '$[]', TMP_Hash_$$_1 = function($a_rest) { - var self = this, argv; + self.$include($$($nesting, 'Enumerable')); + self.$$prototype.$$is_hash = true; + Opal.defs(self, '$[]', $Hash_$$$1 = function($a) { + var $post_args, argv, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - argv = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - argv[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + argv = $post_args;; var hash, argc = argv.length, i; if (argc === 1) { - hash = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](argv['$[]'](0), Opal.const_get_relative($nesting, 'Hash'), "to_hash"); + hash = $$($nesting, 'Opal')['$coerce_to?'](argv['$[]'](0), $$($nesting, 'Hash'), "to_hash"); if (hash !== nil) { return self.$allocate()['$merge!'](hash); } - argv = Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](argv['$[]'](0), Opal.const_get_relative($nesting, 'Array'), "to_ary"); + argv = $$($nesting, 'Opal')['$coerce_to?'](argv['$[]'](0), $$($nesting, 'Array'), "to_ary"); if (argv === nil) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "odd number of arguments for Hash") + self.$raise($$($nesting, 'ArgumentError'), "odd number of arguments for Hash") } argc = argv.length; @@ -13979,7 +15906,7 @@ Opal.modules["corelib/hash"] = function(Opal) { hash.$store(argv[i][0], argv[i][1]); break; default: - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "invalid number of elements (" + (argv[i].length) + " for 1..2)") + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid number of elements (" + (argv[i].length) + " for 1..2)") } } @@ -13987,7 +15914,7 @@ Opal.modules["corelib/hash"] = function(Opal) { } if (argc % 2 !== 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "odd number of arguments for Hash") + self.$raise($$($nesting, 'ArgumentError'), "odd number of arguments for Hash") } hash = self.$allocate(); @@ -13997,13 +15924,13 @@ Opal.modules["corelib/hash"] = function(Opal) { } return hash; - - }, TMP_Hash_$$_1.$$arity = -1); - Opal.defs(self, '$allocate', TMP_Hash_allocate_2 = function $$allocate() { + ; + }, $Hash_$$$1.$$arity = -1); + Opal.defs(self, '$allocate', $Hash_allocate$2 = function $$allocate() { var self = this; - var hash = new self.$$alloc(); + var hash = new self.$$constructor(); Opal.hash_init(hash); @@ -14012,29 +15939,33 @@ Opal.modules["corelib/hash"] = function(Opal) { return hash; - }, TMP_Hash_allocate_2.$$arity = 0); - Opal.defs(self, '$try_convert', TMP_Hash_try_convert_3 = function $$try_convert(obj) { + }, $Hash_allocate$2.$$arity = 0); + Opal.defs(self, '$try_convert', $Hash_try_convert$3 = function $$try_convert(obj) { var self = this; - return Opal.const_get_relative($nesting, 'Opal')['$coerce_to?'](obj, Opal.const_get_relative($nesting, 'Hash'), "to_hash") - }, TMP_Hash_try_convert_3.$$arity = 1); + return $$($nesting, 'Opal')['$coerce_to?'](obj, $$($nesting, 'Hash'), "to_hash") + }, $Hash_try_convert$3.$$arity = 1); - Opal.defn(self, '$initialize', TMP_Hash_initialize_4 = function $$initialize(defaults) { - var self = this, $iter = TMP_Hash_initialize_4.$$p, block = $iter || nil; + Opal.def(self, '$initialize', $Hash_initialize$4 = function $$initialize(defaults) { + var $iter = $Hash_initialize$4.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Hash_initialize_4.$$p = null; + if ($iter) $Hash_initialize$4.$$p = null; + + if ($iter) $Hash_initialize$4.$$p = null;; + ; if (defaults !== undefined && block !== nil) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "wrong number of arguments (1 for 0)") + self.$raise($$($nesting, 'ArgumentError'), "wrong number of arguments (1 for 0)") } self.$$none = (defaults === undefined ? nil : defaults); self.$$proc = block; - ; + return self; - }, TMP_Hash_initialize_4.$$arity = -1); + ; + }, $Hash_initialize$4.$$arity = -1); - Opal.defn(self, '$==', TMP_Hash_$eq$eq_5 = function(other) { + Opal.def(self, '$==', $Hash_$eq_eq$5 = function(other) { var self = this; @@ -14068,62 +15999,70 @@ Opal.modules["corelib/hash"] = function(Opal) { return true; - }, TMP_Hash_$eq$eq_5.$$arity = 1); + }, $Hash_$eq_eq$5.$$arity = 1); - Opal.defn(self, '$>=', TMP_Hash_$gt$eq_7 = function(other) { - var TMP_6, self = this, result = nil; + Opal.def(self, '$>=', $Hash_$gt_eq$6 = function(other) { + var $$7, self = this, result = nil; - other = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](other, Opal.const_get_relative($nesting, 'Hash'), "to_hash"); + other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); if (self.$$keys.length < other.$$keys.length) { return false } ; result = true; - $send(other, 'each', [], (TMP_6 = function(other_key, other_val){var self = TMP_6.$$s || this, val = nil; -if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; - + $send(other, 'each', [], ($$7 = function(other_key, other_val){var self = $$7.$$s == null ? this : $$7.$$s, val = nil; + + + + if (other_key == null) { + other_key = nil; + }; + + if (other_val == null) { + other_val = nil; + }; val = self.$fetch(other_key, null); if (val == null || val !== other_val) { result = false; return; } - ;}, TMP_6.$$s = self, TMP_6.$$arity = 2, TMP_6)); + ;}, $$7.$$s = self, $$7.$$arity = 2, $$7)); return result; - }, TMP_Hash_$gt$eq_7.$$arity = 1); + }, $Hash_$gt_eq$6.$$arity = 1); - Opal.defn(self, '$>', TMP_Hash_$gt_8 = function(other) { + Opal.def(self, '$>', $Hash_$gt$8 = function(other) { var self = this; - other = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](other, Opal.const_get_relative($nesting, 'Hash'), "to_hash"); + other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); if (self.$$keys.length <= other.$$keys.length) { return false } ; return $rb_ge(self, other); - }, TMP_Hash_$gt_8.$$arity = 1); + }, $Hash_$gt$8.$$arity = 1); - Opal.defn(self, '$<', TMP_Hash_$lt_9 = function(other) { + Opal.def(self, '$<', $Hash_$lt$9 = function(other) { var self = this; - other = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](other, Opal.const_get_relative($nesting, 'Hash'), "to_hash"); + other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); return $rb_gt(other, self); - }, TMP_Hash_$lt_9.$$arity = 1); + }, $Hash_$lt$9.$$arity = 1); - Opal.defn(self, '$<=', TMP_Hash_$lt$eq_10 = function(other) { + Opal.def(self, '$<=', $Hash_$lt_eq$10 = function(other) { var self = this; - other = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](other, Opal.const_get_relative($nesting, 'Hash'), "to_hash"); + other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); return $rb_ge(other, self); - }, TMP_Hash_$lt$eq_10.$$arity = 1); + }, $Hash_$lt_eq$10.$$arity = 1); - Opal.defn(self, '$[]', TMP_Hash_$$_11 = function(key) { + Opal.def(self, '$[]', $Hash_$$$11 = function(key) { var self = this; @@ -14135,18 +16074,18 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return self.$default(key); - }, TMP_Hash_$$_11.$$arity = 1); + }, $Hash_$$$11.$$arity = 1); - Opal.defn(self, '$[]=', TMP_Hash_$$$eq_12 = function(key, value) { + Opal.def(self, '$[]=', $Hash_$$$eq$12 = function(key, value) { var self = this; Opal.hash_put(self, key, value); return value; - }, TMP_Hash_$$$eq_12.$$arity = 2); + }, $Hash_$$$eq$12.$$arity = 2); - Opal.defn(self, '$assoc', TMP_Hash_assoc_13 = function $$assoc(object) { + Opal.def(self, '$assoc', $Hash_assoc$13 = function $$assoc(object) { var self = this; @@ -14166,31 +16105,31 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return nil; - }, TMP_Hash_assoc_13.$$arity = 1); + }, $Hash_assoc$13.$$arity = 1); - Opal.defn(self, '$clear', TMP_Hash_clear_14 = function $$clear() { + Opal.def(self, '$clear', $Hash_clear$14 = function $$clear() { var self = this; Opal.hash_init(self); return self; - }, TMP_Hash_clear_14.$$arity = 0); + }, $Hash_clear$14.$$arity = 0); - Opal.defn(self, '$clone', TMP_Hash_clone_15 = function $$clone() { + Opal.def(self, '$clone', $Hash_clone$15 = function $$clone() { var self = this; - var hash = new self.$$class.$$alloc(); + var hash = new self.$$class(); Opal.hash_init(hash); Opal.hash_clone(self, hash); return hash; - }, TMP_Hash_clone_15.$$arity = 0); + }, $Hash_clone$15.$$arity = 0); - Opal.defn(self, '$compact', TMP_Hash_compact_16 = function $$compact() { + Opal.def(self, '$compact', $Hash_compact$16 = function $$compact() { var self = this; @@ -14213,9 +16152,9 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return hash; - }, TMP_Hash_compact_16.$$arity = 0); + }, $Hash_compact$16.$$arity = 0); - Opal.defn(self, '$compact!', TMP_Hash_compact$B_17 = function() { + Opal.def(self, '$compact!', $Hash_compact$excl$17 = function() { var self = this; @@ -14242,9 +16181,9 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return changes_were_made ? self : nil; - }, TMP_Hash_compact$B_17.$$arity = 0); + }, $Hash_compact$excl$17.$$arity = 0); - Opal.defn(self, '$compare_by_identity', TMP_Hash_compare_by_identity_18 = function $$compare_by_identity() { + Opal.def(self, '$compare_by_identity', $Hash_compare_by_identity$18 = function $$compare_by_identity() { var self = this; @@ -14268,18 +16207,20 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; self.$$smap = identity_hash.$$smap; return self; - }, TMP_Hash_compare_by_identity_18.$$arity = 0); + }, $Hash_compare_by_identity$18.$$arity = 0); - Opal.defn(self, '$compare_by_identity?', TMP_Hash_compare_by_identity$q_19 = function() { + Opal.def(self, '$compare_by_identity?', $Hash_compare_by_identity$ques$19 = function() { var self = this; - return self.$$by_identity === true - }, TMP_Hash_compare_by_identity$q_19.$$arity = 0); + return self.$$by_identity === true; + }, $Hash_compare_by_identity$ques$19.$$arity = 0); - Opal.defn(self, '$default', TMP_Hash_default_20 = function(key) { + Opal.def(self, '$default', $Hash_default$20 = function(key) { var self = this; + ; + if (key !== undefined && self.$$proc !== nil && self.$$proc !== undefined) { return self.$$proc.$call(self, key); } @@ -14287,10 +16228,10 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return nil; } return self.$$none; + ; + }, $Hash_default$20.$$arity = -1); - }, TMP_Hash_default_20.$$arity = -1); - - Opal.defn(self, '$default=', TMP_Hash_default$eq_21 = function(object) { + Opal.def(self, '$default=', $Hash_default$eq$21 = function(object) { var self = this; @@ -14299,9 +16240,9 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return object; - }, TMP_Hash_default$eq_21.$$arity = 1); + }, $Hash_default$eq$21.$$arity = 1); - Opal.defn(self, '$default_proc', TMP_Hash_default_proc_22 = function $$default_proc() { + Opal.def(self, '$default_proc', $Hash_default_proc$22 = function $$default_proc() { var self = this; @@ -14310,19 +16251,19 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; } return nil; - }, TMP_Hash_default_proc_22.$$arity = 0); + }, $Hash_default_proc$22.$$arity = 0); - Opal.defn(self, '$default_proc=', TMP_Hash_default_proc$eq_23 = function(default_proc) { + Opal.def(self, '$default_proc=', $Hash_default_proc$eq$23 = function(default_proc) { var self = this; var proc = default_proc; if (proc !== nil) { - proc = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](proc, Opal.const_get_relative($nesting, 'Proc'), "to_proc"); + proc = $$($nesting, 'Opal')['$coerce_to!'](proc, $$($nesting, 'Proc'), "to_proc"); if ((proc)['$lambda?']() && (proc).$arity().$abs() !== 2) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "default_proc takes two arguments"); + self.$raise($$($nesting, 'TypeError'), "default_proc takes two arguments"); } } @@ -14331,12 +16272,15 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return default_proc; - }, TMP_Hash_default_proc$eq_23.$$arity = 1); + }, $Hash_default_proc$eq$23.$$arity = 1); - Opal.defn(self, '$delete', TMP_Hash_delete_24 = function(key) { - var self = this, $iter = TMP_Hash_delete_24.$$p, block = $iter || nil; + Opal.def(self, '$delete', $Hash_delete$24 = function(key) { + var $iter = $Hash_delete$24.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Hash_delete_24.$$p = null; + if ($iter) $Hash_delete$24.$$p = null; + + + if ($iter) $Hash_delete$24.$$p = null;; var value = Opal.hash_delete(self, key); @@ -14345,23 +16289,25 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; } if (block !== nil) { - return block.$call(key); + return Opal.yield1(block, key); } return nil; + ; + }, $Hash_delete$24.$$arity = 1); - }, TMP_Hash_delete_24.$$arity = 1); - - Opal.defn(self, '$delete_if', TMP_Hash_delete_if_25 = function $$delete_if() { - var TMP_26, self = this, $iter = TMP_Hash_delete_if_25.$$p, block = $iter || nil; + Opal.def(self, '$delete_if', $Hash_delete_if$25 = function $$delete_if() { + var $iter = $Hash_delete_if$25.$$p, block = $iter || nil, $$26, self = this; - if ($iter) TMP_Hash_delete_if_25.$$p = null; + if ($iter) $Hash_delete_if$25.$$p = null; + + if ($iter) $Hash_delete_if$25.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["delete_if"], (TMP_26 = function(){var self = TMP_26.$$s || this; + } else { + return $send(self, 'enum_for', ["delete_if"], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s; - return self.$size()}, TMP_26.$$s = self, TMP_26.$$arity = 0, TMP_26)) + return self.$size()}, $$26.$$s = self, $$26.$$arity = 0, $$26)) }; for (var i = 0, keys = self.$$keys, length = keys.length, key, value, obj; i < length; i++) { @@ -14386,19 +16332,17 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return self; ; - }, TMP_Hash_delete_if_25.$$arity = 0); - Opal.alias(self, "dup", "clone"); + }, $Hash_delete_if$25.$$arity = 0); + $alias(self, "dup", "clone"); - Opal.defn(self, '$dig', TMP_Hash_dig_27 = function $$dig(key, $a_rest) { - var self = this, keys, item = nil; + Opal.def(self, '$dig', $Hash_dig$27 = function $$dig(key, $a) { + var $post_args, keys, self = this, item = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - keys = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - keys[$arg_idx - 1] = arguments[$arg_idx]; - } + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + keys = $post_args;; item = self['$[]'](key); if (item === nil || keys.length === 0) { @@ -14406,22 +16350,24 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; } ; if ($truthy(item['$respond_to?']("dig"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + (item.$class()) + " does not have #dig method") + } else { + self.$raise($$($nesting, 'TypeError'), "" + (item.$class()) + " does not have #dig method") }; return $send(item, 'dig', Opal.to_a(keys)); - }, TMP_Hash_dig_27.$$arity = -2); + }, $Hash_dig$27.$$arity = -2); - Opal.defn(self, '$each', TMP_Hash_each_28 = function $$each() { - var TMP_29, self = this, $iter = TMP_Hash_each_28.$$p, block = $iter || nil; + Opal.def(self, '$each', $Hash_each$28 = function $$each() { + var $iter = $Hash_each$28.$$p, block = $iter || nil, $$29, self = this; - if ($iter) TMP_Hash_each_28.$$p = null; + if ($iter) $Hash_each$28.$$p = null; + + if ($iter) $Hash_each$28.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["each"], (TMP_29 = function(){var self = TMP_29.$$s || this; + } else { + return $send(self, 'enum_for', ["each"], ($$29 = function(){var self = $$29.$$s == null ? this : $$29.$$s; - return self.$size()}, TMP_29.$$s = self, TMP_29.$$arity = 0, TMP_29)) + return self.$size()}, $$29.$$s = self, $$29.$$arity = 0, $$29)) }; for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { @@ -14439,18 +16385,20 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return self; ; - }, TMP_Hash_each_28.$$arity = 0); + }, $Hash_each$28.$$arity = 0); - Opal.defn(self, '$each_key', TMP_Hash_each_key_30 = function $$each_key() { - var TMP_31, self = this, $iter = TMP_Hash_each_key_30.$$p, block = $iter || nil; + Opal.def(self, '$each_key', $Hash_each_key$30 = function $$each_key() { + var $iter = $Hash_each_key$30.$$p, block = $iter || nil, $$31, self = this; - if ($iter) TMP_Hash_each_key_30.$$p = null; + if ($iter) $Hash_each_key$30.$$p = null; + + if ($iter) $Hash_each_key$30.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["each_key"], (TMP_31 = function(){var self = TMP_31.$$s || this; + } else { + return $send(self, 'enum_for', ["each_key"], ($$31 = function(){var self = $$31.$$s == null ? this : $$31.$$s; - return self.$size()}, TMP_31.$$s = self, TMP_31.$$arity = 0, TMP_31)) + return self.$size()}, $$31.$$s = self, $$31.$$arity = 0, $$31)) }; for (var i = 0, keys = self.$$keys, length = keys.length, key; i < length; i++) { @@ -14461,19 +16409,21 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return self; ; - }, TMP_Hash_each_key_30.$$arity = 0); - Opal.alias(self, "each_pair", "each"); + }, $Hash_each_key$30.$$arity = 0); + $alias(self, "each_pair", "each"); - Opal.defn(self, '$each_value', TMP_Hash_each_value_32 = function $$each_value() { - var TMP_33, self = this, $iter = TMP_Hash_each_value_32.$$p, block = $iter || nil; + Opal.def(self, '$each_value', $Hash_each_value$32 = function $$each_value() { + var $iter = $Hash_each_value$32.$$p, block = $iter || nil, $$33, self = this; - if ($iter) TMP_Hash_each_value_32.$$p = null; + if ($iter) $Hash_each_value$32.$$p = null; + + if ($iter) $Hash_each_value$32.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["each_value"], (TMP_33 = function(){var self = TMP_33.$$s || this; + } else { + return $send(self, 'enum_for', ["each_value"], ($$33 = function(){var self = $$33.$$s == null ? this : $$33.$$s; - return self.$size()}, TMP_33.$$s = self, TMP_33.$$arity = 0, TMP_33)) + return self.$size()}, $$33.$$s = self, $$33.$$arity = 0, $$33)) }; for (var i = 0, keys = self.$$keys, length = keys.length, key; i < length; i++) { @@ -14484,21 +16434,54 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return self; ; - }, TMP_Hash_each_value_32.$$arity = 0); + }, $Hash_each_value$32.$$arity = 0); - Opal.defn(self, '$empty?', TMP_Hash_empty$q_34 = function() { + Opal.def(self, '$empty?', $Hash_empty$ques$34 = function() { var self = this; - return self.$$keys.length === 0 - }, TMP_Hash_empty$q_34.$$arity = 0); - Opal.alias(self, "eql?", "=="); + return self.$$keys.length === 0; + }, $Hash_empty$ques$34.$$arity = 0); + $alias(self, "eql?", "=="); + + Opal.def(self, '$except', $Hash_except$35 = function $$except($a) { + var $post_args, keys, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + keys = $post_args;; + return $send(self.$dup(), 'except!', Opal.to_a(keys)); + }, $Hash_except$35.$$arity = -1); + + Opal.def(self, '$except!', $Hash_except$excl$36 = function($a) { + var $post_args, keys, $$37, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + keys = $post_args;; + $send(keys, 'each', [], ($$37 = function(key){var self = $$37.$$s == null ? this : $$37.$$s; + + + + if (key == null) { + key = nil; + }; + return self.$delete(key);}, $$37.$$s = self, $$37.$$arity = 1, $$37)); + return self; + }, $Hash_except$excl$36.$$arity = -1); - Opal.defn(self, '$fetch', TMP_Hash_fetch_35 = function $$fetch(key, defaults) { - var self = this, $iter = TMP_Hash_fetch_35.$$p, block = $iter || nil; + Opal.def(self, '$fetch', $Hash_fetch$38 = function $$fetch(key, defaults) { + var $iter = $Hash_fetch$38.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Hash_fetch_35.$$p = null; + if ($iter) $Hash_fetch$38.$$p = null; + if ($iter) $Hash_fetch$38.$$p = null;; + ; + var value = Opal.hash_get(self, key); if (value !== undefined) { @@ -14513,32 +16496,39 @@ if (other_key == null) other_key = nil;if (other_val == null) other_val = nil; return defaults; } ; - return self.$raise(Opal.const_get_relative($nesting, 'KeyError'), "" + "key not found: " + (key.$inspect())); - }, TMP_Hash_fetch_35.$$arity = -2); + return self.$raise($$($nesting, 'KeyError').$new("" + "key not found: " + (key.$inspect()), $hash2(["key", "receiver"], {"key": key, "receiver": self}))); + }, $Hash_fetch$38.$$arity = -2); - Opal.defn(self, '$fetch_values', TMP_Hash_fetch_values_36 = function $$fetch_values($a_rest) { - var TMP_37, self = this, keys, $iter = TMP_Hash_fetch_values_36.$$p, block = $iter || nil; + Opal.def(self, '$fetch_values', $Hash_fetch_values$39 = function $$fetch_values($a) { + var $iter = $Hash_fetch_values$39.$$p, block = $iter || nil, $post_args, keys, $$40, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - keys = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - keys[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Hash_fetch_values_36.$$p = null; - return $send(keys, 'map', [], (TMP_37 = function(key){var self = TMP_37.$$s || this; -if (key == null) key = nil; - return $send(self, 'fetch', [key], block.$to_proc())}, TMP_37.$$s = self, TMP_37.$$arity = 1, TMP_37)) - }, TMP_Hash_fetch_values_36.$$arity = -1); + if ($iter) $Hash_fetch_values$39.$$p = null; + + + if ($iter) $Hash_fetch_values$39.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + keys = $post_args;; + return $send(keys, 'map', [], ($$40 = function(key){var self = $$40.$$s == null ? this : $$40.$$s; + + + + if (key == null) { + key = nil; + }; + return $send(self, 'fetch', [key], block.$to_proc());}, $$40.$$s = self, $$40.$$arity = 1, $$40)); + }, $Hash_fetch_values$39.$$arity = -1); - Opal.defn(self, '$flatten', TMP_Hash_flatten_38 = function $$flatten(level) { + Opal.def(self, '$flatten', $Hash_flatten$41 = function $$flatten(level) { var self = this; + + if (level == null) { level = 1; - } - - level = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](level, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + }; + level = $$($nesting, 'Opal')['$coerce_to!'](level, $$($nesting, 'Integer'), "to_int"); var result = []; @@ -14569,15 +16559,15 @@ if (key == null) key = nil; return result; ; - }, TMP_Hash_flatten_38.$$arity = -1); + }, $Hash_flatten$41.$$arity = -1); - Opal.defn(self, '$has_key?', TMP_Hash_has_key$q_39 = function(key) { + Opal.def(self, '$has_key?', $Hash_has_key$ques$42 = function(key) { var self = this; - return Opal.hash_get(self, key) !== undefined - }, TMP_Hash_has_key$q_39.$$arity = 1); + return Opal.hash_get(self, key) !== undefined; + }, $Hash_has_key$ques$42.$$arity = 1); - Opal.defn(self, '$has_value?', TMP_Hash_has_value$q_40 = function(value) { + Opal.def(self, '$has_value?', $Hash_has_value$ques$43 = function(value) { var self = this; @@ -14591,9 +16581,9 @@ if (key == null) key = nil; return false; - }, TMP_Hash_has_value$q_40.$$arity = 1); + }, $Hash_has_value$ques$43.$$arity = 1); - Opal.defn(self, '$hash', TMP_Hash_hash_41 = function $$hash() { + Opal.def(self, '$hash', $Hash_hash$44 = function $$hash() { var self = this; @@ -14638,10 +16628,10 @@ if (key == null) key = nil; } } - }, TMP_Hash_hash_41.$$arity = 0); - Opal.alias(self, "include?", "has_key?"); + }, $Hash_hash$44.$$arity = 0); + $alias(self, "include?", "has_key?"); - Opal.defn(self, '$index', TMP_Hash_index_42 = function $$index(object) { + Opal.def(self, '$index', $Hash_index$45 = function $$index(object) { var self = this; @@ -14662,17 +16652,16 @@ if (key == null) key = nil; return nil; - }, TMP_Hash_index_42.$$arity = 1); + }, $Hash_index$45.$$arity = 1); - Opal.defn(self, '$indexes', TMP_Hash_indexes_43 = function $$indexes($a_rest) { - var self = this, args; + Opal.def(self, '$indexes', $Hash_indexes$46 = function $$indexes($a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; var result = []; @@ -14689,12 +16678,12 @@ if (key == null) key = nil; } return result; + ; + }, $Hash_indexes$46.$$arity = -1); + $alias(self, "indices", "indexes"); + var inspect_ids; - }, TMP_Hash_indexes_43.$$arity = -1); - Opal.alias(self, "indices", "indexes"); - var inspect_ids;; - - Opal.defn(self, '$inspect', TMP_Hash_inspect_44 = function $$inspect() { + Opal.def(self, '$inspect', $Hash_inspect$47 = function $$inspect() { var self = this; @@ -14734,9 +16723,9 @@ if (key == null) key = nil; } } - }, TMP_Hash_inspect_44.$$arity = 0); + }, $Hash_inspect$47.$$arity = 0); - Opal.defn(self, '$invert', TMP_Hash_invert_45 = function $$invert() { + Opal.def(self, '$invert', $Hash_invert$48 = function $$invert() { var self = this; @@ -14757,18 +16746,20 @@ if (key == null) key = nil; return hash; - }, TMP_Hash_invert_45.$$arity = 0); + }, $Hash_invert$48.$$arity = 0); - Opal.defn(self, '$keep_if', TMP_Hash_keep_if_46 = function $$keep_if() { - var TMP_47, self = this, $iter = TMP_Hash_keep_if_46.$$p, block = $iter || nil; + Opal.def(self, '$keep_if', $Hash_keep_if$49 = function $$keep_if() { + var $iter = $Hash_keep_if$49.$$p, block = $iter || nil, $$50, self = this; - if ($iter) TMP_Hash_keep_if_46.$$p = null; + if ($iter) $Hash_keep_if$49.$$p = null; + + if ($iter) $Hash_keep_if$49.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["keep_if"], (TMP_47 = function(){var self = TMP_47.$$s || this; + } else { + return $send(self, 'enum_for', ["keep_if"], ($$50 = function(){var self = $$50.$$s == null ? this : $$50.$$s; - return self.$size()}, TMP_47.$$s = self, TMP_47.$$arity = 0, TMP_47)) + return self.$size()}, $$50.$$s = self, $$50.$$arity = 0, $$50)) }; for (var i = 0, keys = self.$$keys, length = keys.length, key, value, obj; i < length; i++) { @@ -14793,11 +16784,11 @@ if (key == null) key = nil; return self; ; - }, TMP_Hash_keep_if_46.$$arity = 0); - Opal.alias(self, "key", "index"); - Opal.alias(self, "key?", "has_key?"); + }, $Hash_keep_if$49.$$arity = 0); + $alias(self, "key", "index"); + $alias(self, "key?", "has_key?"); - Opal.defn(self, '$keys', TMP_Hash_keys_48 = function $$keys() { + Opal.def(self, '$keys', $Hash_keys$51 = function $$keys() { var self = this; @@ -14815,75 +16806,87 @@ if (key == null) key = nil; return result; - }, TMP_Hash_keys_48.$$arity = 0); + }, $Hash_keys$51.$$arity = 0); - Opal.defn(self, '$length', TMP_Hash_length_49 = function $$length() { + Opal.def(self, '$length', $Hash_length$52 = function $$length() { var self = this; - return self.$$keys.length - }, TMP_Hash_length_49.$$arity = 0); - Opal.alias(self, "member?", "has_key?"); + return self.$$keys.length; + }, $Hash_length$52.$$arity = 0); + $alias(self, "member?", "has_key?"); - Opal.defn(self, '$merge', TMP_Hash_merge_50 = function $$merge(other) { - var self = this, $iter = TMP_Hash_merge_50.$$p, block = $iter || nil; + Opal.def(self, '$merge', $Hash_merge$53 = function $$merge($a) { + var $iter = $Hash_merge$53.$$p, block = $iter || nil, $post_args, others, self = this; - if ($iter) TMP_Hash_merge_50.$$p = null; - return $send(self.$dup(), 'merge!', [other], block.$to_proc()) - }, TMP_Hash_merge_50.$$arity = 1); + if ($iter) $Hash_merge$53.$$p = null; + + + if ($iter) $Hash_merge$53.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + others = $post_args;; + return $send(self.$dup(), 'merge!', Opal.to_a(others), block.$to_proc()); + }, $Hash_merge$53.$$arity = -1); - Opal.defn(self, '$merge!', TMP_Hash_merge$B_51 = function(other) { - var self = this, $iter = TMP_Hash_merge$B_51.$$p, block = $iter || nil; + Opal.def(self, '$merge!', $Hash_merge$excl$54 = function($a) { + var $iter = $Hash_merge$excl$54.$$p, block = $iter || nil, $post_args, others, self = this; - if ($iter) TMP_Hash_merge$B_51.$$p = null; + if ($iter) $Hash_merge$excl$54.$$p = null; - if (!other.$$is_hash) { - other = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](other, Opal.const_get_relative($nesting, 'Hash'), "to_hash"); - } + + if ($iter) $Hash_merge$excl$54.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + others = $post_args;; + + var i, j, other, other_keys, length, key, value, other_value; + for (i = 0; i < others.length; ++i) { + other = $$($nesting, 'Opal')['$coerce_to!'](others[i], $$($nesting, 'Hash'), "to_hash"); + other_keys = other.$$keys, length = other_keys.length; - var i, other_keys = other.$$keys, length = other_keys.length, key, value, other_value; + if (block === nil) { + for (j = 0; j < length; j++) { + key = other_keys[j]; - if (block === nil) { - for (i = 0; i < length; i++) { - key = other_keys[i]; + if (key.$$is_string) { + other_value = other.$$smap[key]; + } else { + other_value = key.value; + key = key.key; + } - if (key.$$is_string) { - other_value = other.$$smap[key]; - } else { - other_value = key.value; - key = key.key; + Opal.hash_put(self, key, other_value); } + } else { + for (j = 0; j < length; j++) { + key = other_keys[j]; - Opal.hash_put(self, key, other_value); - } - - return self; - } - - for (i = 0; i < length; i++) { - key = other_keys[i]; + if (key.$$is_string) { + other_value = other.$$smap[key]; + } else { + other_value = key.value; + key = key.key; + } - if (key.$$is_string) { - other_value = other.$$smap[key]; - } else { - other_value = key.value; - key = key.key; - } + value = Opal.hash_get(self, key); - value = Opal.hash_get(self, key); + if (value === undefined) { + Opal.hash_put(self, key, other_value); + continue; + } - if (value === undefined) { - Opal.hash_put(self, key, other_value); - continue; + Opal.hash_put(self, key, block(key, value, other_value)); + } } - - Opal.hash_put(self, key, block(key, value, other_value)); } return self; + ; + }, $Hash_merge$excl$54.$$arity = -1); - }, TMP_Hash_merge$B_51.$$arity = 1); - - Opal.defn(self, '$rassoc', TMP_Hash_rassoc_52 = function $$rassoc(object) { + Opal.def(self, '$rassoc', $Hash_rassoc$55 = function $$rassoc(object) { var self = this; @@ -14904,27 +16907,29 @@ if (key == null) key = nil; return nil; - }, TMP_Hash_rassoc_52.$$arity = 1); + }, $Hash_rassoc$55.$$arity = 1); - Opal.defn(self, '$rehash', TMP_Hash_rehash_53 = function $$rehash() { + Opal.def(self, '$rehash', $Hash_rehash$56 = function $$rehash() { var self = this; Opal.hash_rehash(self); return self; - }, TMP_Hash_rehash_53.$$arity = 0); + }, $Hash_rehash$56.$$arity = 0); - Opal.defn(self, '$reject', TMP_Hash_reject_54 = function $$reject() { - var TMP_55, self = this, $iter = TMP_Hash_reject_54.$$p, block = $iter || nil; + Opal.def(self, '$reject', $Hash_reject$57 = function $$reject() { + var $iter = $Hash_reject$57.$$p, block = $iter || nil, $$58, self = this; - if ($iter) TMP_Hash_reject_54.$$p = null; + if ($iter) $Hash_reject$57.$$p = null; + + if ($iter) $Hash_reject$57.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["reject"], (TMP_55 = function(){var self = TMP_55.$$s || this; + } else { + return $send(self, 'enum_for', ["reject"], ($$58 = function(){var self = $$58.$$s == null ? this : $$58.$$s; - return self.$size()}, TMP_55.$$s = self, TMP_55.$$arity = 0, TMP_55)) + return self.$size()}, $$58.$$s = self, $$58.$$arity = 0, $$58)) }; var hash = Opal.hash(); @@ -14948,18 +16953,20 @@ if (key == null) key = nil; return hash; ; - }, TMP_Hash_reject_54.$$arity = 0); + }, $Hash_reject$57.$$arity = 0); - Opal.defn(self, '$reject!', TMP_Hash_reject$B_56 = function() { - var TMP_57, self = this, $iter = TMP_Hash_reject$B_56.$$p, block = $iter || nil; + Opal.def(self, '$reject!', $Hash_reject$excl$59 = function() { + var $iter = $Hash_reject$excl$59.$$p, block = $iter || nil, $$60, self = this; - if ($iter) TMP_Hash_reject$B_56.$$p = null; + if ($iter) $Hash_reject$excl$59.$$p = null; + + if ($iter) $Hash_reject$excl$59.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["reject!"], (TMP_57 = function(){var self = TMP_57.$$s || this; + } else { + return $send(self, 'enum_for', ["reject!"], ($$60 = function(){var self = $$60.$$s == null ? this : $$60.$$s; - return self.$size()}, TMP_57.$$s = self, TMP_57.$$arity = 0, TMP_57)) + return self.$size()}, $$60.$$s = self, $$60.$$arity = 0, $$60)) }; var changes_were_made = false; @@ -14987,13 +16994,13 @@ if (key == null) key = nil; return changes_were_made ? self : nil; ; - }, TMP_Hash_reject$B_56.$$arity = 0); + }, $Hash_reject$excl$59.$$arity = 0); - Opal.defn(self, '$replace', TMP_Hash_replace_58 = function $$replace(other) { + Opal.def(self, '$replace', $Hash_replace$61 = function $$replace(other) { var self = this, $writer = nil; - other = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](other, Opal.const_get_relative($nesting, 'Hash'), "to_hash"); + other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Hash'), "to_hash"); Opal.hash_init(self); @@ -15015,25 +17022,27 @@ if (key == null) key = nil; $writer = [other.$default_proc()]; $send(self, 'default_proc=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; - } else { + } else { $writer = [other.$default()]; $send(self, 'default=', Opal.to_a($writer)); $writer[$rb_minus($writer["length"], 1)]; }; return self; - }, TMP_Hash_replace_58.$$arity = 1); + }, $Hash_replace$61.$$arity = 1); - Opal.defn(self, '$select', TMP_Hash_select_59 = function $$select() { - var TMP_60, self = this, $iter = TMP_Hash_select_59.$$p, block = $iter || nil; + Opal.def(self, '$select', $Hash_select$62 = function $$select() { + var $iter = $Hash_select$62.$$p, block = $iter || nil, $$63, self = this; - if ($iter) TMP_Hash_select_59.$$p = null; + if ($iter) $Hash_select$62.$$p = null; + + if ($iter) $Hash_select$62.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["select"], (TMP_60 = function(){var self = TMP_60.$$s || this; + } else { + return $send(self, 'enum_for', ["select"], ($$63 = function(){var self = $$63.$$s == null ? this : $$63.$$s; - return self.$size()}, TMP_60.$$s = self, TMP_60.$$arity = 0, TMP_60)) + return self.$size()}, $$63.$$s = self, $$63.$$arity = 0, $$63)) }; var hash = Opal.hash(); @@ -15057,18 +17066,20 @@ if (key == null) key = nil; return hash; ; - }, TMP_Hash_select_59.$$arity = 0); + }, $Hash_select$62.$$arity = 0); - Opal.defn(self, '$select!', TMP_Hash_select$B_61 = function() { - var TMP_62, self = this, $iter = TMP_Hash_select$B_61.$$p, block = $iter || nil; + Opal.def(self, '$select!', $Hash_select$excl$64 = function() { + var $iter = $Hash_select$excl$64.$$p, block = $iter || nil, $$65, self = this; - if ($iter) TMP_Hash_select$B_61.$$p = null; + if ($iter) $Hash_select$excl$64.$$p = null; + + if ($iter) $Hash_select$excl$64.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["select!"], (TMP_62 = function(){var self = TMP_62.$$s || this; + } else { + return $send(self, 'enum_for', ["select!"], ($$65 = function(){var self = $$65.$$s == null ? this : $$65.$$s; - return self.$size()}, TMP_62.$$s = self, TMP_62.$$arity = 0, TMP_62)) + return self.$size()}, $$65.$$s = self, $$65.$$arity = 0, $$65)) }; var result = nil; @@ -15096,9 +17107,11 @@ if (key == null) key = nil; return result; ; - }, TMP_Hash_select$B_61.$$arity = 0); + }, $Hash_select$excl$64.$$arity = 0); + $alias(self, "filter", "select"); + $alias(self, "filter!", "select!"); - Opal.defn(self, '$shift', TMP_Hash_shift_63 = function $$shift() { + Opal.def(self, '$shift', $Hash_shift$66 = function $$shift() { var self = this; @@ -15115,11 +17128,34 @@ if (key == null) key = nil; return self.$default(nil); - }, TMP_Hash_shift_63.$$arity = 0); - Opal.alias(self, "size", "length"); - self.$alias_method("store", "[]="); + }, $Hash_shift$66.$$arity = 0); + $alias(self, "size", "length"); + + Opal.def(self, '$slice', $Hash_slice$67 = function $$slice($a) { + var $post_args, keys, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + keys = $post_args;; + + var result = Opal.hash(); + + for (var i = 0, length = keys.length; i < length; i++) { + var key = keys[i], value = Opal.hash_get(self, key); + + if (value !== undefined) { + Opal.hash_put(result, key, value); + } + } + + return result; + ; + }, $Hash_slice$67.$$arity = -1); + $alias(self, "store", "[]="); - Opal.defn(self, '$to_a', TMP_Hash_to_a_64 = function $$to_a() { + Opal.def(self, '$to_a', $Hash_to_a$68 = function $$to_a() { var self = this; @@ -15140,56 +17176,137 @@ if (key == null) key = nil; return result; - }, TMP_Hash_to_a_64.$$arity = 0); + }, $Hash_to_a$68.$$arity = 0); - Opal.defn(self, '$to_h', TMP_Hash_to_h_65 = function $$to_h() { - var self = this; + Opal.def(self, '$to_h', $Hash_to_h$69 = function $$to_h() { + var $iter = $Hash_to_h$69.$$p, block = $iter || nil, self = this; + if ($iter) $Hash_to_h$69.$$p = null; + + + if ($iter) $Hash_to_h$69.$$p = null;; + if ((block !== nil)) { + return $send(self, 'map', [], block.$to_proc()).$to_h()}; if (self.$$class === Opal.Hash) { return self; } - var hash = new Opal.Hash.$$alloc(); + var hash = new Opal.Hash(); Opal.hash_init(hash); Opal.hash_clone(self, hash); return hash; + ; + }, $Hash_to_h$69.$$arity = 0); - }, TMP_Hash_to_h_65.$$arity = 0); - - Opal.defn(self, '$to_hash', TMP_Hash_to_hash_66 = function $$to_hash() { + Opal.def(self, '$to_hash', $Hash_to_hash$70 = function $$to_hash() { var self = this; return self - }, TMP_Hash_to_hash_66.$$arity = 0); + }, $Hash_to_hash$70.$$arity = 0); - Opal.defn(self, '$to_proc', TMP_Hash_to_proc_68 = function $$to_proc() { - var TMP_67, self = this; + Opal.def(self, '$to_proc', $Hash_to_proc$71 = function $$to_proc() { + var $$72, self = this; - return $send(self, 'proc', [], (TMP_67 = function(key){var self = TMP_67.$$s || this; + return $send(self, 'proc', [], ($$72 = function(key){var self = $$72.$$s == null ? this : $$72.$$s; - + + ; if (key == null) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "no key given") + self.$raise($$($nesting, 'ArgumentError'), "no key given") } ; - return self['$[]'](key);}, TMP_67.$$s = self, TMP_67.$$arity = -1, TMP_67)) - }, TMP_Hash_to_proc_68.$$arity = 0); - Opal.alias(self, "to_s", "inspect"); + return self['$[]'](key);}, $$72.$$s = self, $$72.$$arity = -1, $$72)) + }, $Hash_to_proc$71.$$arity = 0); + $alias(self, "to_s", "inspect"); + + Opal.def(self, '$transform_keys', $Hash_transform_keys$73 = function $$transform_keys() { + var $iter = $Hash_transform_keys$73.$$p, block = $iter || nil, $$74, self = this; + + if ($iter) $Hash_transform_keys$73.$$p = null; + + + if ($iter) $Hash_transform_keys$73.$$p = null;; + if ($truthy(block)) { + } else { + return $send(self, 'enum_for', ["transform_keys"], ($$74 = function(){var self = $$74.$$s == null ? this : $$74.$$s; + + return self.$size()}, $$74.$$s = self, $$74.$$arity = 0, $$74)) + }; + + var result = Opal.hash(); + + for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { + key = keys[i]; + + if (key.$$is_string) { + value = self.$$smap[key]; + } else { + value = key.value; + key = key.key; + } + + key = Opal.yield1(block, key); + + Opal.hash_put(result, key, value); + } + + return result; + ; + }, $Hash_transform_keys$73.$$arity = 0); - Opal.defn(self, '$transform_values', TMP_Hash_transform_values_69 = function $$transform_values() { - var TMP_70, self = this, $iter = TMP_Hash_transform_values_69.$$p, block = $iter || nil; + Opal.def(self, '$transform_keys!', $Hash_transform_keys$excl$75 = function() { + var $iter = $Hash_transform_keys$excl$75.$$p, block = $iter || nil, $$76, self = this; - if ($iter) TMP_Hash_transform_values_69.$$p = null; + if ($iter) $Hash_transform_keys$excl$75.$$p = null; + + if ($iter) $Hash_transform_keys$excl$75.$$p = null;; if ($truthy(block)) { + } else { + return $send(self, 'enum_for', ["transform_keys!"], ($$76 = function(){var self = $$76.$$s == null ? this : $$76.$$s; + + return self.$size()}, $$76.$$s = self, $$76.$$arity = 0, $$76)) + }; + + var keys = Opal.slice.call(self.$$keys), + i, length = keys.length, key, value, new_key; + + for (i = 0; i < length; i++) { + key = keys[i]; + + if (key.$$is_string) { + value = self.$$smap[key]; } else { - return $send(self, 'enum_for', ["transform_values"], (TMP_70 = function(){var self = TMP_70.$$s || this; + value = key.value; + key = key.key; + } + + new_key = Opal.yield1(block, key); + + Opal.hash_delete(self, key); + Opal.hash_put(self, new_key, value); + } + + return self; + ; + }, $Hash_transform_keys$excl$75.$$arity = 0); + + Opal.def(self, '$transform_values', $Hash_transform_values$77 = function $$transform_values() { + var $iter = $Hash_transform_values$77.$$p, block = $iter || nil, $$78, self = this; + + if ($iter) $Hash_transform_values$77.$$p = null; + + + if ($iter) $Hash_transform_values$77.$$p = null;; + if ($truthy(block)) { + } else { + return $send(self, 'enum_for', ["transform_values"], ($$78 = function(){var self = $$78.$$s == null ? this : $$78.$$s; - return self.$size()}, TMP_70.$$s = self, TMP_70.$$arity = 0, TMP_70)) + return self.$size()}, $$78.$$s = self, $$78.$$arity = 0, $$78)) }; var result = Opal.hash(); @@ -15211,18 +17328,20 @@ if (key == null) key = nil; return result; ; - }, TMP_Hash_transform_values_69.$$arity = 0); + }, $Hash_transform_values$77.$$arity = 0); - Opal.defn(self, '$transform_values!', TMP_Hash_transform_values$B_71 = function() { - var TMP_72, self = this, $iter = TMP_Hash_transform_values$B_71.$$p, block = $iter || nil; + Opal.def(self, '$transform_values!', $Hash_transform_values$excl$79 = function() { + var $iter = $Hash_transform_values$excl$79.$$p, block = $iter || nil, $$80, self = this; - if ($iter) TMP_Hash_transform_values$B_71.$$p = null; + if ($iter) $Hash_transform_values$excl$79.$$p = null; + + if ($iter) $Hash_transform_values$excl$79.$$p = null;; if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["transform_values!"], (TMP_72 = function(){var self = TMP_72.$$s || this; + } else { + return $send(self, 'enum_for', ["transform_values!"], ($$80 = function(){var self = $$80.$$s == null ? this : $$80.$$s; - return self.$size()}, TMP_72.$$s = self, TMP_72.$$arity = 0, TMP_72)) + return self.$size()}, $$80.$$s = self, $$80.$$arity = 0, $$80)) }; for (var i = 0, keys = self.$$keys, length = keys.length, key, value; i < length; i++) { @@ -15242,11 +17361,11 @@ if (key == null) key = nil; return self; ; - }, TMP_Hash_transform_values$B_71.$$arity = 0); - Opal.alias(self, "update", "merge!"); - Opal.alias(self, "value?", "has_value?"); - Opal.alias(self, "values_at", "indexes"); - return (Opal.defn(self, '$values', TMP_Hash_values_73 = function $$values() { + }, $Hash_transform_values$excl$79.$$arity = 0); + $alias(self, "update", "merge!"); + $alias(self, "value?", "has_value?"); + $alias(self, "values_at", "indexes"); + return (Opal.def(self, '$values', $Hash_values$81 = function $$values() { var self = this; @@ -15264,12 +17383,11 @@ if (key == null) key = nil; return result; - }, TMP_Hash_values_73.$$arity = 0), nil) && 'values'; + }, $Hash_values$81.$$arity = 0), nil) && 'values'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/number"] = function(Opal) { +Opal.modules["corelib/number"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } @@ -15294,67 +17412,66 @@ Opal.modules["corelib/number"] = function(Opal) { function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send; - Opal.add_stubs(['$require', '$bridge', '$raise', '$name', '$class', '$Float', '$respond_to?', '$coerce_to!', '$__coerced__', '$===', '$!', '$>', '$**', '$new', '$<', '$to_f', '$==', '$nan?', '$infinite?', '$enum_for', '$+', '$-', '$gcd', '$lcm', '$/', '$frexp', '$to_i', '$ldexp', '$rationalize', '$*', '$<<', '$to_r', '$-@', '$size', '$<=', '$>=', '$<=>', '$compare', '$empty?']); + Opal.add_stubs(['$require', '$bridge', '$raise', '$name', '$class', '$Float', '$respond_to?', '$coerce_to!', '$__coerced__', '$===', '$!', '$>', '$**', '$new', '$<', '$to_f', '$==', '$nan?', '$infinite?', '$enum_for', '$+', '$-', '$gcd', '$lcm', '$%', '$/', '$frexp', '$to_i', '$ldexp', '$rationalize', '$*', '$<<', '$to_r', '$truncate', '$-@', '$size', '$<=', '$>=', '$inspect']); self.$require("corelib/numeric"); (function($base, $super, $parent_nesting) { - function $Number(){}; - var self = $Number = $klass($base, $super, 'Number', $Number); + var self = $klass($base, $super, 'Number'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Number_coerce_2, TMP_Number___id___3, TMP_Number_$_4, TMP_Number_$_5, TMP_Number_$_6, TMP_Number_$_7, TMP_Number_$_8, TMP_Number_$_9, TMP_Number_$_10, TMP_Number_$_11, TMP_Number_$lt_12, TMP_Number_$lt$eq_13, TMP_Number_$gt_14, TMP_Number_$gt$eq_15, TMP_Number_$lt$eq$gt_16, TMP_Number_$lt$lt_17, TMP_Number_$gt$gt_18, TMP_Number_$$_19, TMP_Number_$$_20, TMP_Number_$$_21, TMP_Number_$_22, TMP_Number_$$_23, TMP_Number_$eq$eq$eq_24, TMP_Number_$eq$eq_25, TMP_Number_abs_26, TMP_Number_abs2_27, TMP_Number_angle_28, TMP_Number_bit_length_29, TMP_Number_ceil_30, TMP_Number_chr_31, TMP_Number_denominator_32, TMP_Number_downto_33, TMP_Number_equal$q_35, TMP_Number_even$q_36, TMP_Number_floor_37, TMP_Number_gcd_38, TMP_Number_gcdlcm_39, TMP_Number_integer$q_40, TMP_Number_is_a$q_41, TMP_Number_instance_of$q_42, TMP_Number_lcm_43, TMP_Number_next_44, TMP_Number_nonzero$q_45, TMP_Number_numerator_46, TMP_Number_odd$q_47, TMP_Number_ord_48, TMP_Number_pred_49, TMP_Number_quo_50, TMP_Number_rationalize_51, TMP_Number_round_52, TMP_Number_step_53, TMP_Number_times_55, TMP_Number_to_f_57, TMP_Number_to_i_58, TMP_Number_to_r_59, TMP_Number_to_s_60, TMP_Number_divmod_61, TMP_Number_upto_62, TMP_Number_zero$q_64, TMP_Number_size_65, TMP_Number_nan$q_66, TMP_Number_finite$q_67, TMP_Number_infinite$q_68, TMP_Number_positive$q_69, TMP_Number_negative$q_70; + var $nesting = [self].concat($parent_nesting), $Number_coerce$2, $Number___id__$3, $Number_$plus$4, $Number_$minus$5, $Number_$$6, $Number_$slash$7, $Number_$percent$8, $Number_$$9, $Number_$$10, $Number_$$11, $Number_$lt$12, $Number_$lt_eq$13, $Number_$gt$14, $Number_$gt_eq$15, $Number_$lt_eq_gt$16, $Number_$lt$lt$17, $Number_$gt$gt$18, $Number_$$$19, $Number_$plus$$20, $Number_$minus$$21, $Number_$$22, $Number_$$$23, $Number_$eq_eq_eq$24, $Number_$eq_eq$25, $Number_abs$26, $Number_abs2$27, $Number_allbits$ques$28, $Number_anybits$ques$29, $Number_angle$30, $Number_bit_length$31, $Number_ceil$32, $Number_chr$33, $Number_denominator$34, $Number_downto$35, $Number_equal$ques$37, $Number_even$ques$38, $Number_floor$39, $Number_gcd$40, $Number_gcdlcm$41, $Number_integer$ques$42, $Number_is_a$ques$43, $Number_instance_of$ques$44, $Number_lcm$45, $Number_next$46, $Number_nobits$ques$47, $Number_nonzero$ques$48, $Number_numerator$49, $Number_odd$ques$50, $Number_ord$51, $Number_pow$52, $Number_pred$53, $Number_quo$54, $Number_rationalize$55, $Number_remainder$56, $Number_round$57, $Number_times$58, $Number_to_f$60, $Number_to_i$61, $Number_to_r$62, $Number_to_s$63, $Number_truncate$64, $Number_digits$65, $Number_divmod$66, $Number_upto$67, $Number_zero$ques$69, $Number_size$70, $Number_nan$ques$71, $Number_finite$ques$72, $Number_infinite$ques$73, $Number_positive$ques$74, $Number_negative$ques$75; - Opal.const_get_relative($nesting, 'Opal').$bridge(self, Number); - Number.prototype.$$is_number = true; + $$($nesting, 'Opal').$bridge(Number, self); + Opal.defineProperty(self.$$prototype, '$$is_number', true); self.$$is_number_class = true; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_allocate_1; + var $nesting = [self].concat($parent_nesting), $allocate$1; - Opal.defn(self, '$allocate', TMP_allocate_1 = function $$allocate() { + Opal.def(self, '$allocate', $allocate$1 = function $$allocate() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, TMP_allocate_1.$$arity = 0); + return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) + }, $allocate$1.$$arity = 0); Opal.udef(self, '$' + "new");; return nil;; })(Opal.get_singleton_class(self), $nesting); - Opal.defn(self, '$coerce', TMP_Number_coerce_2 = function $$coerce(other) { + Opal.def(self, '$coerce', $Number_coerce$2 = function $$coerce(other) { var self = this; if (other === nil) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "can't convert " + (other.$class()) + " into Float"); + self.$raise($$($nesting, 'TypeError'), "" + "can't convert " + (other.$class()) + " into Float"); } else if (other.$$is_string) { return [self.$Float(other), self]; } else if (other['$respond_to?']("to_f")) { - return [Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](other, Opal.const_get_relative($nesting, 'Float'), "to_f"), self]; + return [$$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Float'), "to_f"), self]; } else if (other.$$is_number) { return [other, self]; } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "can't convert " + (other.$class()) + " into Float"); + self.$raise($$($nesting, 'TypeError'), "" + "can't convert " + (other.$class()) + " into Float"); } - }, TMP_Number_coerce_2.$$arity = 1); + }, $Number_coerce$2.$$arity = 1); - Opal.defn(self, '$__id__', TMP_Number___id___3 = function $$__id__() { + Opal.def(self, '$__id__', $Number___id__$3 = function $$__id__() { var self = this; - return (self * 2) + 1 - }, TMP_Number___id___3.$$arity = 0); - Opal.alias(self, "object_id", "__id__"); + return (self * 2) + 1; + }, $Number___id__$3.$$arity = 0); + $alias(self, "object_id", "__id__"); - Opal.defn(self, '$+', TMP_Number_$_4 = function(other) { + Opal.def(self, '$+', $Number_$plus$4 = function(other) { var self = this; @@ -15365,9 +17482,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("+", other); } - }, TMP_Number_$_4.$$arity = 1); + }, $Number_$plus$4.$$arity = 1); - Opal.defn(self, '$-', TMP_Number_$_5 = function(other) { + Opal.def(self, '$-', $Number_$minus$5 = function(other) { var self = this; @@ -15378,9 +17495,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("-", other); } - }, TMP_Number_$_5.$$arity = 1); + }, $Number_$minus$5.$$arity = 1); - Opal.defn(self, '$*', TMP_Number_$_6 = function(other) { + Opal.def(self, '$*', $Number_$$6 = function(other) { var self = this; @@ -15391,9 +17508,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("*", other); } - }, TMP_Number_$_6.$$arity = 1); + }, $Number_$$6.$$arity = 1); - Opal.defn(self, '$/', TMP_Number_$_7 = function(other) { + Opal.def(self, '$/', $Number_$slash$7 = function(other) { var self = this; @@ -15404,10 +17521,10 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("/", other); } - }, TMP_Number_$_7.$$arity = 1); - Opal.alias(self, "fdiv", "/"); + }, $Number_$slash$7.$$arity = 1); + $alias(self, "fdiv", "/"); - Opal.defn(self, '$%', TMP_Number_$_8 = function(other) { + Opal.def(self, '$%', $Number_$percent$8 = function(other) { var self = this; @@ -15416,7 +17533,7 @@ Opal.modules["corelib/number"] = function(Opal) { return other; } else if (other == 0) { - self.$raise(Opal.const_get_relative($nesting, 'ZeroDivisionError'), "divided by 0"); + self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0"); } else if (other < 0 || self < 0) { return (self % other + other) % other; @@ -15429,9 +17546,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("%", other); } - }, TMP_Number_$_8.$$arity = 1); + }, $Number_$percent$8.$$arity = 1); - Opal.defn(self, '$&', TMP_Number_$_9 = function(other) { + Opal.def(self, '$&', $Number_$$9 = function(other) { var self = this; @@ -15442,9 +17559,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("&", other); } - }, TMP_Number_$_9.$$arity = 1); + }, $Number_$$9.$$arity = 1); - Opal.defn(self, '$|', TMP_Number_$_10 = function(other) { + Opal.def(self, '$|', $Number_$$10 = function(other) { var self = this; @@ -15455,9 +17572,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("|", other); } - }, TMP_Number_$_10.$$arity = 1); + }, $Number_$$10.$$arity = 1); - Opal.defn(self, '$^', TMP_Number_$_11 = function(other) { + Opal.def(self, '$^', $Number_$$11 = function(other) { var self = this; @@ -15468,9 +17585,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("^", other); } - }, TMP_Number_$_11.$$arity = 1); + }, $Number_$$11.$$arity = 1); - Opal.defn(self, '$<', TMP_Number_$lt_12 = function(other) { + Opal.def(self, '$<', $Number_$lt$12 = function(other) { var self = this; @@ -15481,9 +17598,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("<", other); } - }, TMP_Number_$lt_12.$$arity = 1); + }, $Number_$lt$12.$$arity = 1); - Opal.defn(self, '$<=', TMP_Number_$lt$eq_13 = function(other) { + Opal.def(self, '$<=', $Number_$lt_eq$13 = function(other) { var self = this; @@ -15494,9 +17611,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__("<=", other); } - }, TMP_Number_$lt$eq_13.$$arity = 1); + }, $Number_$lt_eq$13.$$arity = 1); - Opal.defn(self, '$>', TMP_Number_$gt_14 = function(other) { + Opal.def(self, '$>', $Number_$gt$14 = function(other) { var self = this; @@ -15507,9 +17624,9 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__(">", other); } - }, TMP_Number_$gt_14.$$arity = 1); + }, $Number_$gt$14.$$arity = 1); - Opal.defn(self, '$>=', TMP_Number_$gt$eq_15 = function(other) { + Opal.def(self, '$>=', $Number_$gt_eq$15 = function(other) { var self = this; @@ -15520,7 +17637,7 @@ Opal.modules["corelib/number"] = function(Opal) { return self.$__coerced__(">=", other); } - }, TMP_Number_$gt$eq_15.$$arity = 1); + }, $Number_$gt_eq$15.$$arity = 1); var spaceship_operator = function(self, other) { if (other.$$is_number) { @@ -15542,43 +17659,41 @@ Opal.modules["corelib/number"] = function(Opal) { } ; - Opal.defn(self, '$<=>', TMP_Number_$lt$eq$gt_16 = function(other) { + Opal.def(self, '$<=>', $Number_$lt_eq_gt$16 = function(other) { var self = this; try { - - return spaceship_operator(self, other); - + return spaceship_operator(self, other); } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'ArgumentError')])) { + if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) { try { return nil - } finally { Opal.pop_exception() } + } finally { Opal.pop_exception(); } } else { throw $err; } } - }, TMP_Number_$lt$eq$gt_16.$$arity = 1); + }, $Number_$lt_eq_gt$16.$$arity = 1); - Opal.defn(self, '$<<', TMP_Number_$lt$lt_17 = function(count) { + Opal.def(self, '$<<', $Number_$lt$lt$17 = function(count) { var self = this; - count = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](count, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + count = $$($nesting, 'Opal')['$coerce_to!'](count, $$($nesting, 'Integer'), "to_int"); return count > 0 ? self << count : self >> -count; - }, TMP_Number_$lt$lt_17.$$arity = 1); + }, $Number_$lt$lt$17.$$arity = 1); - Opal.defn(self, '$>>', TMP_Number_$gt$gt_18 = function(count) { + Opal.def(self, '$>>', $Number_$gt$gt$18 = function(count) { var self = this; - count = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](count, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + count = $$($nesting, 'Opal')['$coerce_to!'](count, $$($nesting, 'Integer'), "to_int"); return count > 0 ? self >> count : self << -count; - }, TMP_Number_$gt$gt_18.$$arity = 1); + }, $Number_$gt$gt$18.$$arity = 1); - Opal.defn(self, '$[]', TMP_Number_$$_19 = function(bit) { + Opal.def(self, '$[]', $Number_$$$19 = function(bit) { var self = this; - bit = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](bit, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + bit = $$($nesting, 'Opal')['$coerce_to!'](bit, $$($nesting, 'Integer'), "to_int"); if (bit < 0) { return 0; @@ -15588,45 +17703,58 @@ Opal.modules["corelib/number"] = function(Opal) { } return (self >> bit) & 1; ; - }, TMP_Number_$$_19.$$arity = 1); + }, $Number_$$$19.$$arity = 1); - Opal.defn(self, '$+@', TMP_Number_$$_20 = function() { + Opal.def(self, '$+@', $Number_$plus$$20 = function() { var self = this; - return +self - }, TMP_Number_$$_20.$$arity = 0); + return +self; + }, $Number_$plus$$20.$$arity = 0); - Opal.defn(self, '$-@', TMP_Number_$$_21 = function() { + Opal.def(self, '$-@', $Number_$minus$$21 = function() { var self = this; - return -self - }, TMP_Number_$$_21.$$arity = 0); + return -self; + }, $Number_$minus$$21.$$arity = 0); - Opal.defn(self, '$~', TMP_Number_$_22 = function() { + Opal.def(self, '$~', $Number_$$22 = function() { var self = this; - return ~self - }, TMP_Number_$_22.$$arity = 0); + return ~self; + }, $Number_$$22.$$arity = 0); - Opal.defn(self, '$**', TMP_Number_$$_23 = function(other) { - var $a, $b, self = this; + Opal.def(self, '$**', $Number_$$$23 = function(other) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](other))) { - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Integer')['$==='](self)['$!']()) ? $a : $rb_gt(other, 0)))) { - return Math.pow(self, other) - } else { - return Opal.const_get_relative($nesting, 'Rational').$new(self, 1)['$**'](other) + if ($truthy($$($nesting, 'Integer')['$==='](other))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = $$($nesting, 'Integer')['$==='](self)['$!']()))) { + return $ret_or_1 + } else { + return $rb_gt(other, 0) + }; return nil; })())) { + return Math.pow(self, other); + } else { + return $$($nesting, 'Rational').$new(self, 1)['$**'](other) } - } else if ($truthy((($a = $rb_lt(self, 0)) ? ($truthy($b = Opal.const_get_relative($nesting, 'Float')['$==='](other)) ? $b : Opal.const_get_relative($nesting, 'Rational')['$==='](other)) : $rb_lt(self, 0)))) { - return Opal.const_get_relative($nesting, 'Complex').$new(self, 0)['$**'](other.$to_f()) - } else if ($truthy(other.$$is_number != null)) { - return Math.pow(self, other) + } else if ($truthy((function() {if ($truthy(($ret_or_2 = $rb_lt(self, 0)))) { + + if ($truthy(($ret_or_3 = $$($nesting, 'Float')['$==='](other)))) { + return $ret_or_3 } else { + return $$($nesting, 'Rational')['$==='](other) + }; + } else { + return $ret_or_2 + }; return nil; })())) { + return $$($nesting, 'Complex').$new(self, 0)['$**'](other.$to_f()) + } else if ($truthy(other.$$is_number != null)) { + return Math.pow(self, other); + } else { return self.$__coerced__("**", other) } - }, TMP_Number_$$_23.$$arity = 1); + }, $Number_$$$23.$$arity = 1); - Opal.defn(self, '$===', TMP_Number_$eq$eq$eq_24 = function(other) { + Opal.def(self, '$===', $Number_$eq_eq_eq$24 = function(other) { var self = this; @@ -15640,9 +17768,9 @@ Opal.modules["corelib/number"] = function(Opal) { return false; } - }, TMP_Number_$eq$eq$eq_24.$$arity = 1); + }, $Number_$eq_eq_eq$24.$$arity = 1); - Opal.defn(self, '$==', TMP_Number_$eq$eq_25 = function(other) { + Opal.def(self, '$==', $Number_$eq_eq$25 = function(other) { var self = this; @@ -15656,21 +17784,37 @@ Opal.modules["corelib/number"] = function(Opal) { return false; } - }, TMP_Number_$eq$eq_25.$$arity = 1); + }, $Number_$eq_eq$25.$$arity = 1); + + Opal.def(self, '$abs', $Number_abs$26 = function $$abs() { + var self = this; + + return Math.abs(self); + }, $Number_abs$26.$$arity = 0); + + Opal.def(self, '$abs2', $Number_abs2$27 = function $$abs2() { + var self = this; + + return Math.abs(self * self); + }, $Number_abs2$27.$$arity = 0); - Opal.defn(self, '$abs', TMP_Number_abs_26 = function $$abs() { + Opal.def(self, '$allbits?', $Number_allbits$ques$28 = function(mask) { var self = this; - return Math.abs(self) - }, TMP_Number_abs_26.$$arity = 0); + + mask = $$($nesting, 'Opal')['$coerce_to!'](mask, $$($nesting, 'Integer'), "to_int"); + return (self & mask) == mask;; + }, $Number_allbits$ques$28.$$arity = 1); - Opal.defn(self, '$abs2', TMP_Number_abs2_27 = function $$abs2() { + Opal.def(self, '$anybits?', $Number_anybits$ques$29 = function(mask) { var self = this; - return Math.abs(self * self) - }, TMP_Number_abs2_27.$$arity = 0); + + mask = $$($nesting, 'Opal')['$coerce_to!'](mask, $$($nesting, 'Integer'), "to_int"); + return (self & mask) !== 0;; + }, $Number_anybits$ques$29.$$arity = 1); - Opal.defn(self, '$angle', TMP_Number_angle_28 = function $$angle() { + Opal.def(self, '$angle', $Number_angle$30 = function $$angle() { var self = this; @@ -15692,17 +17836,17 @@ Opal.modules["corelib/number"] = function(Opal) { return 0; } ; - }, TMP_Number_angle_28.$$arity = 0); - Opal.alias(self, "arg", "angle"); - Opal.alias(self, "phase", "angle"); + }, $Number_angle$30.$$arity = 0); + $alias(self, "arg", "angle"); + $alias(self, "phase", "angle"); - Opal.defn(self, '$bit_length', TMP_Number_bit_length_29 = function $$bit_length() { + Opal.def(self, '$bit_length', $Number_bit_length$31 = function $$bit_length() { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](self))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'NoMethodError').$new("" + "undefined method `bit_length` for " + (self) + ":Float", "bit_length")) + if ($truthy($$($nesting, 'Integer')['$==='](self))) { + } else { + self.$raise($$($nesting, 'NoMethodError').$new("" + "undefined method `bit_length` for " + (self) + ":Float", "bit_length")) }; if (self === 0 || self === -1) { @@ -15719,92 +17863,140 @@ Opal.modules["corelib/number"] = function(Opal) { return result; ; - }, TMP_Number_bit_length_29.$$arity = 0); + }, $Number_bit_length$31.$$arity = 0); - Opal.defn(self, '$ceil', TMP_Number_ceil_30 = function $$ceil() { + Opal.def(self, '$ceil', $Number_ceil$32 = function $$ceil(ndigits) { var self = this; - return Math.ceil(self) - }, TMP_Number_ceil_30.$$arity = 0); + + + if (ndigits == null) { + ndigits = 0; + }; + + var f = self.$to_f(); + + if (f % 1 === 0 && ndigits >= 0) { + return f; + } + + var factor = Math.pow(10, ndigits), + result = Math.ceil(f * factor) / factor; + + if (f % 1 === 0) { + result = Math.round(result); + } + + return result; + ; + }, $Number_ceil$32.$$arity = -1); - Opal.defn(self, '$chr', TMP_Number_chr_31 = function $$chr(encoding) { + Opal.def(self, '$chr', $Number_chr$33 = function $$chr(encoding) { var self = this; - return String.fromCharCode(self) - }, TMP_Number_chr_31.$$arity = -1); + + ; + return Opal.enc(String.fromCharCode(self), encoding || "BINARY");; + }, $Number_chr$33.$$arity = -1); - Opal.defn(self, '$denominator', TMP_Number_denominator_32 = function $$denominator() { - var $a, self = this, $iter = TMP_Number_denominator_32.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$denominator', $Number_denominator$34 = function $$denominator() { + var $iter = $Number_denominator$34.$$p, $yield = $iter || nil, self = this, $ret_or_4 = nil; - if ($iter) TMP_Number_denominator_32.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy(($truthy($a = self['$nan?']()) ? $a : self['$infinite?']()))) { + if ($iter) $Number_denominator$34.$$p = null; + if ($truthy((function() {if ($truthy(($ret_or_4 = self['$nan?']()))) { + return $ret_or_4 + } else { + return self['$infinite?']() + }; return nil; })())) { return 1 - } else { - return $send(self, Opal.find_super_dispatcher(self, 'denominator', TMP_Number_denominator_32, false), $zuper, $iter) + } else { + return $send2(self, $find_super(self, 'denominator', $Number_denominator$34, false, true), 'denominator', [], $iter) } - }, TMP_Number_denominator_32.$$arity = 0); + }, $Number_denominator$34.$$arity = 0); - Opal.defn(self, '$downto', TMP_Number_downto_33 = function $$downto(stop) { - var TMP_34, self = this, $iter = TMP_Number_downto_33.$$p, block = $iter || nil; + Opal.def(self, '$downto', $Number_downto$35 = function $$downto(stop) { + var $iter = $Number_downto$35.$$p, block = $iter || nil, $$36, self = this; - if ($iter) TMP_Number_downto_33.$$p = null; + if ($iter) $Number_downto$35.$$p = null; + + if ($iter) $Number_downto$35.$$p = null;; if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["downto", stop], (TMP_34 = function(){var self = TMP_34.$$s || this; + } else { + return $send(self, 'enum_for', ["downto", stop], ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s; - - if ($truthy(Opal.const_get_relative($nesting, 'Numeric')['$==='](stop))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") + + if ($truthy($$($nesting, 'Numeric')['$==='](stop))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") }; if ($truthy($rb_gt(stop, self))) { return 0 - } else { + } else { return $rb_plus($rb_minus(self, stop), 1) - };}, TMP_34.$$s = self, TMP_34.$$arity = 0, TMP_34)) + };}, $$36.$$s = self, $$36.$$arity = 0, $$36)) }; if (!stop.$$is_number) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") + self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") } for (var i = self; i >= stop; i--) { block(i); } ; return self; - }, TMP_Number_downto_33.$$arity = 1); - Opal.alias(self, "eql?", "=="); - - Opal.defn(self, '$equal?', TMP_Number_equal$q_35 = function(other) { - var $a, self = this; - - return ($truthy($a = self['$=='](other)) ? $a : isNaN(self) && isNaN(other)) - }, TMP_Number_equal$q_35.$$arity = 1); + }, $Number_downto$35.$$arity = 1); + $alias(self, "eql?", "=="); - Opal.defn(self, '$even?', TMP_Number_even$q_36 = function() { - var self = this; + Opal.def(self, '$equal?', $Number_equal$ques$37 = function(other) { + var self = this, $ret_or_5 = nil; - return self % 2 === 0 - }, TMP_Number_even$q_36.$$arity = 0); + if ($truthy(($ret_or_5 = self['$=='](other)))) { + return $ret_or_5 + } else { + return isNaN(self) && isNaN(other); + } + }, $Number_equal$ques$37.$$arity = 1); - Opal.defn(self, '$floor', TMP_Number_floor_37 = function $$floor() { + Opal.def(self, '$even?', $Number_even$ques$38 = function() { var self = this; - return Math.floor(self) - }, TMP_Number_floor_37.$$arity = 0); + return self % 2 === 0; + }, $Number_even$ques$38.$$arity = 0); - Opal.defn(self, '$gcd', TMP_Number_gcd_38 = function $$gcd(other) { + Opal.def(self, '$floor', $Number_floor$39 = function $$floor(ndigits) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](other))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "not an integer") + + if (ndigits == null) { + ndigits = 0; + }; + + var f = self.$to_f(); + + if (f % 1 === 0 && ndigits >= 0) { + return f; + } + + var factor = Math.pow(10, ndigits), + result = Math.floor(f * factor) / factor; + + if (f % 1 === 0) { + result = Math.round(result); + } + + return result; + ; + }, $Number_floor$39.$$arity = -1); + + Opal.def(self, '$gcd', $Number_gcd$40 = function $$gcd(other) { + var self = this; + + + if ($truthy($$($nesting, 'Integer')['$==='](other))) { + } else { + self.$raise($$($nesting, 'TypeError'), "not an integer") }; var min = Math.abs(self), @@ -15819,64 +18011,80 @@ Opal.modules["corelib/number"] = function(Opal) { return max; ; - }, TMP_Number_gcd_38.$$arity = 1); + }, $Number_gcd$40.$$arity = 1); - Opal.defn(self, '$gcdlcm', TMP_Number_gcdlcm_39 = function $$gcdlcm(other) { + Opal.def(self, '$gcdlcm', $Number_gcdlcm$41 = function $$gcdlcm(other) { var self = this; - return [self.$gcd(), self.$lcm()] - }, TMP_Number_gcdlcm_39.$$arity = 1); + return [self.$gcd(other), self.$lcm(other)] + }, $Number_gcdlcm$41.$$arity = 1); - Opal.defn(self, '$integer?', TMP_Number_integer$q_40 = function() { + Opal.def(self, '$integer?', $Number_integer$ques$42 = function() { var self = this; - return self % 1 === 0 - }, TMP_Number_integer$q_40.$$arity = 0); + return self % 1 === 0; + }, $Number_integer$ques$42.$$arity = 0); - Opal.defn(self, '$is_a?', TMP_Number_is_a$q_41 = function(klass) { - var $a, self = this, $iter = TMP_Number_is_a$q_41.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$is_a?', $Number_is_a$ques$43 = function(klass) { + var $iter = $Number_is_a$ques$43.$$p, $yield = $iter || nil, self = this, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil; - if ($iter) TMP_Number_is_a$q_41.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Number_is_a$ques$43.$$p = null; - if ($truthy((($a = klass['$=='](Opal.const_get_relative($nesting, 'Fixnum'))) ? Opal.const_get_relative($nesting, 'Integer')['$==='](self) : klass['$=='](Opal.const_get_relative($nesting, 'Fixnum'))))) { + if ($truthy((function() {if ($truthy(($ret_or_6 = klass['$==']($$($nesting, 'Integer'))))) { + return $$($nesting, 'Integer')['$==='](self) + } else { + return $ret_or_6 + }; return nil; })())) { return true}; - if ($truthy((($a = klass['$=='](Opal.const_get_relative($nesting, 'Integer'))) ? Opal.const_get_relative($nesting, 'Integer')['$==='](self) : klass['$=='](Opal.const_get_relative($nesting, 'Integer'))))) { + if ($truthy((function() {if ($truthy(($ret_or_7 = klass['$==']($$($nesting, 'Integer'))))) { + return $$($nesting, 'Integer')['$==='](self) + } else { + return $ret_or_7 + }; return nil; })())) { return true}; - if ($truthy((($a = klass['$=='](Opal.const_get_relative($nesting, 'Float'))) ? Opal.const_get_relative($nesting, 'Float')['$==='](self) : klass['$=='](Opal.const_get_relative($nesting, 'Float'))))) { + if ($truthy((function() {if ($truthy(($ret_or_8 = klass['$==']($$($nesting, 'Float'))))) { + return $$($nesting, 'Float')['$==='](self) + } else { + return $ret_or_8 + }; return nil; })())) { return true}; - return $send(self, Opal.find_super_dispatcher(self, 'is_a?', TMP_Number_is_a$q_41, false), $zuper, $iter); - }, TMP_Number_is_a$q_41.$$arity = 1); - Opal.alias(self, "kind_of?", "is_a?"); + return $send2(self, $find_super(self, 'is_a?', $Number_is_a$ques$43, false, true), 'is_a?', [klass], $iter); + }, $Number_is_a$ques$43.$$arity = 1); + $alias(self, "kind_of?", "is_a?"); - Opal.defn(self, '$instance_of?', TMP_Number_instance_of$q_42 = function(klass) { - var $a, self = this, $iter = TMP_Number_instance_of$q_42.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$instance_of?', $Number_instance_of$ques$44 = function(klass) { + var $iter = $Number_instance_of$ques$44.$$p, $yield = $iter || nil, self = this, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil; - if ($iter) TMP_Number_instance_of$q_42.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Number_instance_of$ques$44.$$p = null; - if ($truthy((($a = klass['$=='](Opal.const_get_relative($nesting, 'Fixnum'))) ? Opal.const_get_relative($nesting, 'Integer')['$==='](self) : klass['$=='](Opal.const_get_relative($nesting, 'Fixnum'))))) { + if ($truthy((function() {if ($truthy(($ret_or_9 = klass['$==']($$($nesting, 'Integer'))))) { + return $$($nesting, 'Integer')['$==='](self) + } else { + return $ret_or_9 + }; return nil; })())) { return true}; - if ($truthy((($a = klass['$=='](Opal.const_get_relative($nesting, 'Integer'))) ? Opal.const_get_relative($nesting, 'Integer')['$==='](self) : klass['$=='](Opal.const_get_relative($nesting, 'Integer'))))) { + if ($truthy((function() {if ($truthy(($ret_or_10 = klass['$==']($$($nesting, 'Integer'))))) { + return $$($nesting, 'Integer')['$==='](self) + } else { + return $ret_or_10 + }; return nil; })())) { return true}; - if ($truthy((($a = klass['$=='](Opal.const_get_relative($nesting, 'Float'))) ? Opal.const_get_relative($nesting, 'Float')['$==='](self) : klass['$=='](Opal.const_get_relative($nesting, 'Float'))))) { + if ($truthy((function() {if ($truthy(($ret_or_11 = klass['$==']($$($nesting, 'Float'))))) { + return $$($nesting, 'Float')['$==='](self) + } else { + return $ret_or_11 + }; return nil; })())) { return true}; - return $send(self, Opal.find_super_dispatcher(self, 'instance_of?', TMP_Number_instance_of$q_42, false), $zuper, $iter); - }, TMP_Number_instance_of$q_42.$$arity = 1); + return $send2(self, $find_super(self, 'instance_of?', $Number_instance_of$ques$44, false, true), 'instance_of?', [klass], $iter); + }, $Number_instance_of$ques$44.$$arity = 1); - Opal.defn(self, '$lcm', TMP_Number_lcm_43 = function $$lcm(other) { + Opal.def(self, '$lcm', $Number_lcm$45 = function $$lcm(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](other))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "not an integer") + if ($truthy($$($nesting, 'Integer')['$==='](other))) { + } else { + self.$raise($$($nesting, 'TypeError'), "not an integer") }; if (self == 0 || other == 0) { @@ -15886,108 +18094,159 @@ Opal.modules["corelib/number"] = function(Opal) { return Math.abs(self * other / self.$gcd(other)); } ; - }, TMP_Number_lcm_43.$$arity = 1); - Opal.alias(self, "magnitude", "abs"); - Opal.alias(self, "modulo", "%"); + }, $Number_lcm$45.$$arity = 1); + $alias(self, "magnitude", "abs"); + $alias(self, "modulo", "%"); + + Opal.def(self, '$next', $Number_next$46 = function $$next() { + var self = this; + + return self + 1; + }, $Number_next$46.$$arity = 0); - Opal.defn(self, '$next', TMP_Number_next_44 = function $$next() { + Opal.def(self, '$nobits?', $Number_nobits$ques$47 = function(mask) { var self = this; - return self + 1 - }, TMP_Number_next_44.$$arity = 0); + + mask = $$($nesting, 'Opal')['$coerce_to!'](mask, $$($nesting, 'Integer'), "to_int"); + return (self & mask) == 0;; + }, $Number_nobits$ques$47.$$arity = 1); - Opal.defn(self, '$nonzero?', TMP_Number_nonzero$q_45 = function() { + Opal.def(self, '$nonzero?', $Number_nonzero$ques$48 = function() { var self = this; - return self == 0 ? nil : self - }, TMP_Number_nonzero$q_45.$$arity = 0); + return self == 0 ? nil : self; + }, $Number_nonzero$ques$48.$$arity = 0); - Opal.defn(self, '$numerator', TMP_Number_numerator_46 = function $$numerator() { - var $a, self = this, $iter = TMP_Number_numerator_46.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$numerator', $Number_numerator$49 = function $$numerator() { + var $iter = $Number_numerator$49.$$p, $yield = $iter || nil, self = this, $ret_or_12 = nil; - if ($iter) TMP_Number_numerator_46.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy(($truthy($a = self['$nan?']()) ? $a : self['$infinite?']()))) { + if ($iter) $Number_numerator$49.$$p = null; + if ($truthy((function() {if ($truthy(($ret_or_12 = self['$nan?']()))) { + return $ret_or_12 + } else { + return self['$infinite?']() + }; return nil; })())) { return self - } else { - return $send(self, Opal.find_super_dispatcher(self, 'numerator', TMP_Number_numerator_46, false), $zuper, $iter) + } else { + return $send2(self, $find_super(self, 'numerator', $Number_numerator$49, false, true), 'numerator', [], $iter) } - }, TMP_Number_numerator_46.$$arity = 0); + }, $Number_numerator$49.$$arity = 0); - Opal.defn(self, '$odd?', TMP_Number_odd$q_47 = function() { + Opal.def(self, '$odd?', $Number_odd$ques$50 = function() { var self = this; - return self % 2 !== 0 - }, TMP_Number_odd$q_47.$$arity = 0); + return self % 2 !== 0; + }, $Number_odd$ques$50.$$arity = 0); - Opal.defn(self, '$ord', TMP_Number_ord_48 = function $$ord() { + Opal.def(self, '$ord', $Number_ord$51 = function $$ord() { var self = this; return self - }, TMP_Number_ord_48.$$arity = 0); + }, $Number_ord$51.$$arity = 0); - Opal.defn(self, '$pred', TMP_Number_pred_49 = function $$pred() { + Opal.def(self, '$pow', $Number_pow$52 = function $$pow(b, m) { var self = this; - return self - 1 - }, TMP_Number_pred_49.$$arity = 0); - - Opal.defn(self, '$quo', TMP_Number_quo_50 = function $$quo(other) { - var self = this, $iter = TMP_Number_quo_50.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + + ; + + if (self == 0) { + self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0") + } + + if (m === undefined) { + return self['$**'](b); + } else { + if (!($$($nesting, 'Integer')['$==='](b))) { + self.$raise($$($nesting, 'TypeError'), "Integer#pow() 2nd argument not allowed unless a 1st argument is integer") + } + + if (b < 0) { + self.$raise($$($nesting, 'TypeError'), "Integer#pow() 1st argument cannot be negative when 2nd argument specified") + } + + if (!($$($nesting, 'Integer')['$==='](m))) { + self.$raise($$($nesting, 'TypeError'), "Integer#pow() 2nd argument not allowed unless all arguments are integers") + } + + if (m === 0) { + self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0") + } - if ($iter) TMP_Number_quo_50.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; + return self['$**'](b)['$%'](m) } - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](self))) { - return $send(self, Opal.find_super_dispatcher(self, 'quo', TMP_Number_quo_50, false), $zuper, $iter) - } else { + ; + }, $Number_pow$52.$$arity = -2); + + Opal.def(self, '$pred', $Number_pred$53 = function $$pred() { + var self = this; + + return self - 1; + }, $Number_pred$53.$$arity = 0); + + Opal.def(self, '$quo', $Number_quo$54 = function $$quo(other) { + var $iter = $Number_quo$54.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Number_quo$54.$$p = null; + if ($truthy($$($nesting, 'Integer')['$==='](self))) { + return $send2(self, $find_super(self, 'quo', $Number_quo$54, false, true), 'quo', [other], $iter) + } else { return $rb_divide(self, other) } - }, TMP_Number_quo_50.$$arity = 1); + }, $Number_quo$54.$$arity = 1); - Opal.defn(self, '$rationalize', TMP_Number_rationalize_51 = function $$rationalize(eps) { + Opal.def(self, '$rationalize', $Number_rationalize$55 = function $$rationalize(eps) { var $a, $b, self = this, f = nil, n = nil; + ; if (arguments.length > 1) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..1)"); + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..1)"); } ; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](self))) { - return Opal.const_get_relative($nesting, 'Rational').$new(self, 1) + if ($truthy($$($nesting, 'Integer')['$==='](self))) { + return $$($nesting, 'Rational').$new(self, 1) } else if ($truthy(self['$infinite?']())) { - return self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), "Infinity") + return self.$raise($$($nesting, 'FloatDomainError'), "Infinity") } else if ($truthy(self['$nan?']())) { - return self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), "NaN") + return self.$raise($$($nesting, 'FloatDomainError'), "NaN") } else if ($truthy(eps == null)) { - $b = Opal.const_get_relative($nesting, 'Math').$frexp(self), $a = Opal.to_ary($b), (f = ($a[0] == null ? nil : $a[0])), (n = ($a[1] == null ? nil : $a[1])), $b; - f = Opal.const_get_relative($nesting, 'Math').$ldexp(f, Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'MANT_DIG')).$to_i(); - n = $rb_minus(n, Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'MANT_DIG')); - return Opal.const_get_relative($nesting, 'Rational').$new($rb_times(2, f), (1)['$<<']($rb_minus(1, n))).$rationalize(Opal.const_get_relative($nesting, 'Rational').$new(1, (1)['$<<']($rb_minus(1, n)))); - } else { + $b = $$($nesting, 'Math').$frexp(self), $a = Opal.to_ary($b), (f = ($a[0] == null ? nil : $a[0])), (n = ($a[1] == null ? nil : $a[1])), $b; + f = $$($nesting, 'Math').$ldexp(f, $$$($$($nesting, 'Float'), 'MANT_DIG')).$to_i(); + n = $rb_minus(n, $$$($$($nesting, 'Float'), 'MANT_DIG')); + return $$($nesting, 'Rational').$new($rb_times(2, f), (1)['$<<']($rb_minus(1, n))).$rationalize($$($nesting, 'Rational').$new(1, (1)['$<<']($rb_minus(1, n)))); + } else { return self.$to_r().$rationalize(eps) }; - }, TMP_Number_rationalize_51.$$arity = -1); + }, $Number_rationalize$55.$$arity = -1); - Opal.defn(self, '$round', TMP_Number_round_52 = function $$round(ndigits) { - var $a, $b, self = this, _ = nil, exp = nil; + Opal.def(self, '$remainder', $Number_remainder$56 = function $$remainder(y) { + var self = this; + + return $rb_minus(self, $rb_times(y, $rb_divide(self, y).$truncate())) + }, $Number_remainder$56.$$arity = 1); + + Opal.def(self, '$round', $Number_round$57 = function $$round(ndigits) { + var $a, $b, self = this, $ret_or_13 = nil, $ret_or_14 = nil, $ret_or_15 = nil, _ = nil, exp = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](self))) { + + ; + if ($truthy($$($nesting, 'Integer')['$==='](self))) { if ($truthy(ndigits == null)) { return self}; - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Float')['$==='](ndigits)) ? ndigits['$infinite?']() : $a))) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "Infinity")}; - ndigits = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](ndigits, Opal.const_get_relative($nesting, 'Integer'), "to_int"); - if ($truthy($rb_lt(ndigits, Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Integer'), 'MIN')))) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "out of bounds")}; + if ($truthy((function() {if ($truthy(($ret_or_13 = $$($nesting, 'Float')['$==='](ndigits)))) { + return ndigits['$infinite?']() + } else { + return $ret_or_13 + }; return nil; })())) { + self.$raise($$($nesting, 'RangeError'), "Infinity")}; + ndigits = $$($nesting, 'Opal')['$coerce_to!'](ndigits, $$($nesting, 'Integer'), "to_int"); + if ($truthy($rb_lt(ndigits, $$$($$($nesting, 'Integer'), 'MIN')))) { + self.$raise($$($nesting, 'RangeError'), "out of bounds")}; if ($truthy(ndigits >= 0)) { return self}; ndigits = ndigits['$-@'](); @@ -15997,375 +18256,256 @@ Opal.modules["corelib/number"] = function(Opal) { } var f = Math.pow(10, ndigits), - x = Math.floor((Math.abs(x) + f / 2) / f) * f; + x = Math.floor((Math.abs(self) + f / 2) / f) * f; return self < 0 ? -x : x; ; - } else { + } else { - if ($truthy(($truthy($a = self['$nan?']()) ? ndigits == null : $a))) { - self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), "NaN")}; - ndigits = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](ndigits || 0, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + if ($truthy((function() {if ($truthy(($ret_or_14 = self['$nan?']()))) { + return ndigits == null; + } else { + return $ret_or_14 + }; return nil; })())) { + self.$raise($$($nesting, 'FloatDomainError'), "NaN")}; + ndigits = $$($nesting, 'Opal')['$coerce_to!'](ndigits || 0, $$($nesting, 'Integer'), "to_int"); if ($truthy($rb_le(ndigits, 0))) { if ($truthy(self['$nan?']())) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "NaN") + self.$raise($$($nesting, 'RangeError'), "NaN") } else if ($truthy(self['$infinite?']())) { - self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), "Infinity")} + self.$raise($$($nesting, 'FloatDomainError'), "Infinity")} } else if (ndigits['$=='](0)) { return Math.round(self) - } else if ($truthy(($truthy($a = self['$nan?']()) ? $a : self['$infinite?']()))) { + } else if ($truthy((function() {if ($truthy(($ret_or_15 = self['$nan?']()))) { + return $ret_or_15 + } else { + return self['$infinite?']() + }; return nil; })())) { return self}; - $b = Opal.const_get_relative($nesting, 'Math').$frexp(self), $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (exp = ($a[1] == null ? nil : $a[1])), $b; - if ($truthy($rb_ge(ndigits, $rb_minus($rb_plus(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'DIG'), 2), (function() {if ($truthy($rb_gt(exp, 0))) { + $b = $$($nesting, 'Math').$frexp(self), $a = Opal.to_ary($b), (_ = ($a[0] == null ? nil : $a[0])), (exp = ($a[1] == null ? nil : $a[1])), $b; + if ($truthy($rb_ge(ndigits, $rb_minus($rb_plus($$$($$($nesting, 'Float'), 'DIG'), 2), (function() {if ($truthy($rb_gt(exp, 0))) { return $rb_divide(exp, 4) - } else { + } else { return $rb_minus($rb_divide(exp, 3), 1) }; return nil; })())))) { return self}; if ($truthy($rb_lt(ndigits, (function() {if ($truthy($rb_gt(exp, 0))) { return $rb_plus($rb_divide(exp, 3), 1) - } else { + } else { return $rb_divide(exp, 4) }; return nil; })()['$-@']()))) { return 0}; - return Math.round(self * Math.pow(10, ndigits)) / Math.pow(10, ndigits); - } - }, TMP_Number_round_52.$$arity = -1); + return Math.round(self * Math.pow(10, ndigits)) / Math.pow(10, ndigits);; + }; + }, $Number_round$57.$$arity = -1); + $alias(self, "succ", "next"); - Opal.defn(self, '$step', TMP_Number_step_53 = function $$step($limit, $step, $kwargs) { - var TMP_54, self = this, $post_args, to, by, limit, step, $iter = TMP_Number_step_53.$$p, block = $iter || nil, positional_args = nil, keyword_args = nil; + Opal.def(self, '$times', $Number_times$58 = function $$times() { + var $iter = $Number_times$58.$$p, block = $iter || nil, $$59, self = this; - $post_args = Opal.slice.call(arguments, 0, arguments.length); - $kwargs = Opal.extract_kwargs($post_args); - if ($kwargs == null || !$kwargs.$$is_hash) { - if ($kwargs == null) { - $kwargs = $hash2([], {}); - } else { - throw Opal.ArgumentError.$new('expected kwargs'); - } - } - to = $kwargs.$$smap["to"]; - by = $kwargs.$$smap["by"]; - if (0 < $post_args.length) { - limit = $post_args.splice(0,1)[0]; - } - if (0 < $post_args.length) { - step = $post_args.splice(0,1)[0]; - } - if ($iter) TMP_Number_step_53.$$p = null; + if ($iter) $Number_times$58.$$p = null; - if (limit !== undefined && to !== undefined) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "to is given twice") - } + if ($iter) $Number_times$58.$$p = null;; + if ($truthy(block)) { + } else { + return $send(self, 'enum_for', ["times"], ($$59 = function(){var self = $$59.$$s == null ? this : $$59.$$s; - if (step !== undefined && by !== undefined) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "step is given twice") + return self}, $$59.$$s = self, $$59.$$arity = 0, $$59)) + }; + + for (var i = 0; i < self; i++) { + block(i); } + ; + return self; + }, $Number_times$58.$$arity = 0); + + Opal.def(self, '$to_f', $Number_to_f$60 = function $$to_f() { + var self = this; - function validateParameters() { - if (to !== undefined) { - limit = to; - } - - if (limit === undefined) { - limit = nil; - } - - if (step === nil) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "step must be numeric") - } - - if (step === 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "step can't be 0") - } - - if (by !== undefined) { - step = by; - } - - if (step === nil || step == null) { - step = 1; - } - - var sign = step['$<=>'](0); - - if (sign === nil) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "0 can't be coerced into " + (step.$class())) - } + return self + }, $Number_to_f$60.$$arity = 0); + + Opal.def(self, '$to_i', $Number_to_i$61 = function $$to_i() { + var self = this; - if (limit === nil || limit == null) { - limit = sign > 0 ? Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY') : Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY')['$-@'](); - } + return self < 0 ? Math.ceil(self) : Math.floor(self); + }, $Number_to_i$61.$$arity = 0); + $alias(self, "to_int", "to_i"); + + Opal.def(self, '$to_r', $Number_to_r$62 = function $$to_r() { + var $a, $b, self = this, f = nil, e = nil; - Opal.const_get_relative($nesting, 'Opal').$compare(self, limit) + if ($truthy($$($nesting, 'Integer')['$==='](self))) { + return $$($nesting, 'Rational').$new(self, 1) + } else { + + $b = $$($nesting, 'Math').$frexp(self), $a = Opal.to_ary($b), (f = ($a[0] == null ? nil : $a[0])), (e = ($a[1] == null ? nil : $a[1])), $b; + f = $$($nesting, 'Math').$ldexp(f, $$$($$($nesting, 'Float'), 'MANT_DIG')).$to_i(); + e = $rb_minus(e, $$$($$($nesting, 'Float'), 'MANT_DIG')); + return $rb_times(f, $$$($$($nesting, 'Float'), 'RADIX')['$**'](e)).$to_r(); } + }, $Number_to_r$62.$$arity = 0); + + Opal.def(self, '$to_s', $Number_to_s$63 = function $$to_s(base) { + var self = this, $ret_or_16 = nil, $ret_or_17 = nil; - function stepFloatSize() { - if ((step > 0 && self > limit) || (step < 0 && self < limit)) { - return 0; - } else if (step === Infinity || step === -Infinity) { - return 1; - } else { - var abs = Math.abs, floor = Math.floor, - err = (abs(self) + abs(limit) + abs(limit - self)) / abs(step) * Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'EPSILON'); + + + if (base == null) { + base = 10; + }; + base = $$($nesting, 'Opal')['$coerce_to!'](base, $$($nesting, 'Integer'), "to_int"); + if ($truthy((function() {if ($truthy(($ret_or_16 = $rb_lt(base, 2)))) { + return $ret_or_16 + } else { + return $rb_gt(base, 36) + }; return nil; })())) { + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid radix " + (base))}; + if ($truthy((function() {if ($truthy(($ret_or_17 = self['$=='](0)))) { + return 1/self === -Infinity; + } else { + return $ret_or_17 + }; return nil; })())) { + return "-0.0"}; + return self.toString(base);; + }, $Number_to_s$63.$$arity = -1); + + Opal.def(self, '$truncate', $Number_truncate$64 = function $$truncate(ndigits) { + var self = this; - if (err === Infinity || err === -Infinity) { - return 0; - } else { - if (err > 0.5) { - err = 0.5; - } + + + if (ndigits == null) { + ndigits = 0; + }; + + var f = self.$to_f(); - return floor((limit - self) / step + err) + 1 - } - } + if (f % 1 === 0 && ndigits >= 0) { + return f; } - function stepSize() { - validateParameters(); - - if (step === 0) { - return Infinity; - } - - if (step % 1 !== 0) { - return stepFloatSize(); - } else if ((step > 0 && self > limit) || (step < 0 && self < limit)) { - return 0; - } else { - var ceil = Math.ceil, abs = Math.abs, - lhs = abs(self - limit) + 1, - rhs = abs(step); + var factor = Math.pow(10, ndigits), + result = parseInt(f * factor, 10) / factor; - return ceil(lhs / rhs); - } + if (f % 1 === 0) { + result = Math.round(result); } - ; - if ((block !== nil)) { - } else { - - positional_args = []; - keyword_args = $hash2([], {}); - - if (limit !== undefined) { - positional_args.push(limit); - } - - if (step !== undefined) { - positional_args.push(step); - } - - if (to !== undefined) { - Opal.hash_put(keyword_args, "to", to); - } - - if (by !== undefined) { - Opal.hash_put(keyword_args, "by", by); - } - if (!keyword_args['$empty?']()) { - positional_args.push(keyword_args); - } - ; - return $send(self, 'enum_for', ["step"].concat(Opal.to_a(positional_args)), (TMP_54 = function(){var self = TMP_54.$$s || this; + return result; + ; + }, $Number_truncate$64.$$arity = -1); + $alias(self, "inspect", "to_s"); + + Opal.def(self, '$digits', $Number_digits$65 = function $$digits(base) { + var self = this; - return stepSize()}, TMP_54.$$s = self, TMP_54.$$arity = 0, TMP_54)); + + + if (base == null) { + base = 10; }; + if ($rb_lt(self, 0)) { + self.$raise($$$($$($nesting, 'Math'), 'DomainError'), "out of domain")}; + base = $$($nesting, 'Opal')['$coerce_to!'](base, $$($nesting, 'Integer'), "to_int"); + if ($truthy($rb_lt(base, 2))) { + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid radix " + (base))}; - validateParameters(); + if (self != parseInt(self)) self.$raise($$($nesting, 'NoMethodError'), "" + "undefined method `digits' for " + (self.$inspect())) - if (step === 0) { - while (true) { - block(self); - } + var value = self, result = []; + + if (self == 0) { + return [0]; } - if (self % 1 !== 0 || limit % 1 !== 0 || step % 1 !== 0) { - var n = stepFloatSize(); + while (value != 0) { + result.push(value % base); + value = parseInt(value / base, 10); + } - if (n > 0) { - if (step === Infinity || step === -Infinity) { - block(self); - } else { - var i = 0, d; + return result; + ; + }, $Number_digits$65.$$arity = -1); + + Opal.def(self, '$divmod', $Number_divmod$66 = function $$divmod(other) { + var $iter = $Number_divmod$66.$$p, $yield = $iter || nil, self = this, $ret_or_18 = nil; - if (step > 0) { - while (i < n) { - d = i * step + self; - if (limit < d) { - d = limit; - } - block(d); - i += 1; - } - } else { - while (i < n) { - d = i * step + self; - if (limit > d) { - d = limit; - } - block(d); - i += 1 - } - } - } - } + if ($iter) $Number_divmod$66.$$p = null; + if ($truthy((function() {if ($truthy(($ret_or_18 = self['$nan?']()))) { + return $ret_or_18 } else { - var value = self; - - if (step > 0) { - while (value <= limit) { - block(value); - value += step; - } - } else { - while (value >= limit) { - block(value); - value += step - } - } + return other['$nan?']() + }; return nil; })())) { + return self.$raise($$($nesting, 'FloatDomainError'), "NaN") + } else if ($truthy(self['$infinite?']())) { + return self.$raise($$($nesting, 'FloatDomainError'), "Infinity") + } else { + return $send2(self, $find_super(self, 'divmod', $Number_divmod$66, false, true), 'divmod', [other], $iter) } - - return self; - ; - }, TMP_Number_step_53.$$arity = -1); - Opal.alias(self, "succ", "next"); + }, $Number_divmod$66.$$arity = 1); - Opal.defn(self, '$times', TMP_Number_times_55 = function $$times() { - var TMP_56, self = this, $iter = TMP_Number_times_55.$$p, block = $iter || nil; + Opal.def(self, '$upto', $Number_upto$67 = function $$upto(stop) { + var $iter = $Number_upto$67.$$p, block = $iter || nil, $$68, self = this; - if ($iter) TMP_Number_times_55.$$p = null; + if ($iter) $Number_upto$67.$$p = null; - if ($truthy(block)) { - } else { - return $send(self, 'enum_for', ["times"], (TMP_56 = function(){var self = TMP_56.$$s || this; + + if ($iter) $Number_upto$67.$$p = null;; + if ((block !== nil)) { + } else { + return $send(self, 'enum_for', ["upto", stop], ($$68 = function(){var self = $$68.$$s == null ? this : $$68.$$s; - return self}, TMP_56.$$s = self, TMP_56.$$arity = 0, TMP_56)) + + if ($truthy($$($nesting, 'Numeric')['$==='](stop))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") + }; + if ($truthy($rb_lt(stop, self))) { + return 0 + } else { + return $rb_plus($rb_minus(stop, self), 1) + };}, $$68.$$s = self, $$68.$$arity = 0, $$68)) }; - for (var i = 0; i < self; i++) { + if (!stop.$$is_number) { + self.$raise($$($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") + } + for (var i = self; i <= stop; i++) { block(i); } ; return self; - }, TMP_Number_times_55.$$arity = 0); + }, $Number_upto$67.$$arity = 1); - Opal.defn(self, '$to_f', TMP_Number_to_f_57 = function $$to_f() { + Opal.def(self, '$zero?', $Number_zero$ques$69 = function() { var self = this; - return self - }, TMP_Number_to_f_57.$$arity = 0); + return self == 0; + }, $Number_zero$ques$69.$$arity = 0); - Opal.defn(self, '$to_i', TMP_Number_to_i_58 = function $$to_i() { + Opal.def(self, '$size', $Number_size$70 = function $$size() { var self = this; - return parseInt(self, 10) - }, TMP_Number_to_i_58.$$arity = 0); - Opal.alias(self, "to_int", "to_i"); + return 4 + }, $Number_size$70.$$arity = 0); - Opal.defn(self, '$to_r', TMP_Number_to_r_59 = function $$to_r() { - var $a, $b, self = this, f = nil, e = nil; + Opal.def(self, '$nan?', $Number_nan$ques$71 = function() { + var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](self))) { - return Opal.const_get_relative($nesting, 'Rational').$new(self, 1) - } else { - - $b = Opal.const_get_relative($nesting, 'Math').$frexp(self), $a = Opal.to_ary($b), (f = ($a[0] == null ? nil : $a[0])), (e = ($a[1] == null ? nil : $a[1])), $b; - f = Opal.const_get_relative($nesting, 'Math').$ldexp(f, Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'MANT_DIG')).$to_i(); - e = $rb_minus(e, Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'MANT_DIG')); - return $rb_times(f, Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'RADIX')['$**'](e)).$to_r(); - } - }, TMP_Number_to_r_59.$$arity = 0); + return isNaN(self); + }, $Number_nan$ques$71.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Number_to_s_60 = function $$to_s(base) { - var $a, self = this; + Opal.def(self, '$finite?', $Number_finite$ques$72 = function() { + var self = this; - if (base == null) { - base = 10; - } - - if ($truthy(($truthy($a = $rb_lt(base, 2)) ? $a : $rb_gt(base, 36)))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "base must be between 2 and 36")}; - return self.toString(base); - }, TMP_Number_to_s_60.$$arity = -1); - Opal.alias(self, "truncate", "to_i"); - Opal.alias(self, "inspect", "to_s"); + return self != Infinity && self != -Infinity && !isNaN(self); + }, $Number_finite$ques$72.$$arity = 0); - Opal.defn(self, '$divmod', TMP_Number_divmod_61 = function $$divmod(other) { - var $a, self = this, $iter = TMP_Number_divmod_61.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) TMP_Number_divmod_61.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if ($truthy(($truthy($a = self['$nan?']()) ? $a : other['$nan?']()))) { - return self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), "NaN") - } else if ($truthy(self['$infinite?']())) { - return self.$raise(Opal.const_get_relative($nesting, 'FloatDomainError'), "Infinity") - } else { - return $send(self, Opal.find_super_dispatcher(self, 'divmod', TMP_Number_divmod_61, false), $zuper, $iter) - } - }, TMP_Number_divmod_61.$$arity = 1); - - Opal.defn(self, '$upto', TMP_Number_upto_62 = function $$upto(stop) { - var TMP_63, self = this, $iter = TMP_Number_upto_62.$$p, block = $iter || nil; - - if ($iter) TMP_Number_upto_62.$$p = null; - - if ((block !== nil)) { - } else { - return $send(self, 'enum_for', ["upto", stop], (TMP_63 = function(){var self = TMP_63.$$s || this; - - - if ($truthy(Opal.const_get_relative($nesting, 'Numeric')['$==='](stop))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") - }; - if ($truthy($rb_lt(stop, self))) { - return 0 - } else { - return $rb_plus($rb_minus(stop, self), 1) - };}, TMP_63.$$s = self, TMP_63.$$arity = 0, TMP_63)) - }; - - if (!stop.$$is_number) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "comparison of " + (self.$class()) + " with " + (stop.$class()) + " failed") - } - for (var i = self; i <= stop; i++) { - block(i); - } - ; - return self; - }, TMP_Number_upto_62.$$arity = 1); - - Opal.defn(self, '$zero?', TMP_Number_zero$q_64 = function() { - var self = this; - - return self == 0 - }, TMP_Number_zero$q_64.$$arity = 0); - - Opal.defn(self, '$size', TMP_Number_size_65 = function $$size() { - var self = this; - - return 4 - }, TMP_Number_size_65.$$arity = 0); - - Opal.defn(self, '$nan?', TMP_Number_nan$q_66 = function() { - var self = this; - - return isNaN(self) - }, TMP_Number_nan$q_66.$$arity = 0); - - Opal.defn(self, '$finite?', TMP_Number_finite$q_67 = function() { - var self = this; - - return self != Infinity && self != -Infinity && !isNaN(self) - }, TMP_Number_finite$q_67.$$arity = 0); - - Opal.defn(self, '$infinite?', TMP_Number_infinite$q_68 = function() { - var self = this; + Opal.def(self, '$infinite?', $Number_infinite$ques$73 = function() { + var self = this; if (self == Infinity) { @@ -16378,80 +18518,81 @@ Opal.modules["corelib/number"] = function(Opal) { return nil; } - }, TMP_Number_infinite$q_68.$$arity = 0); + }, $Number_infinite$ques$73.$$arity = 0); - Opal.defn(self, '$positive?', TMP_Number_positive$q_69 = function() { + Opal.def(self, '$positive?', $Number_positive$ques$74 = function() { var self = this; - return self != 0 && (self == Infinity || 1 / self > 0) - }, TMP_Number_positive$q_69.$$arity = 0); - return (Opal.defn(self, '$negative?', TMP_Number_negative$q_70 = function() { + return self != 0 && (self == Infinity || 1 / self > 0); + }, $Number_positive$ques$74.$$arity = 0); + return (Opal.def(self, '$negative?', $Number_negative$ques$75 = function() { var self = this; - return self == -Infinity || 1 / self < 0 - }, TMP_Number_negative$q_70.$$arity = 0), nil) && 'negative?'; - })($nesting[0], Opal.const_get_relative($nesting, 'Numeric'), $nesting); - Opal.const_set($nesting[0], 'Fixnum', Opal.const_get_relative($nesting, 'Number')); + return self == -Infinity || 1 / self < 0; + }, $Number_negative$ques$75.$$arity = 0), nil) && 'negative?'; + })($nesting[0], $$($nesting, 'Numeric'), $nesting); + Opal.const_set($nesting[0], 'Fixnum', $$($nesting, 'Number')); (function($base, $super, $parent_nesting) { - function $Integer(){}; - var self = $Integer = $klass($base, $super, 'Integer', $Integer); + var self = $klass($base, $super, 'Integer'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); self.$$is_number_class = true; + self.$$is_integer_class = true; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_allocate_71, TMP_$eq$eq$eq_72; + var $nesting = [self].concat($parent_nesting), $allocate$76, $sqrt$77; - Opal.defn(self, '$allocate', TMP_allocate_71 = function $$allocate() { + Opal.def(self, '$allocate', $allocate$76 = function $$allocate() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, TMP_allocate_71.$$arity = 0); + return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) + }, $allocate$76.$$arity = 0); Opal.udef(self, '$' + "new");; - return (Opal.defn(self, '$===', TMP_$eq$eq$eq_72 = function(other) { + return (Opal.def(self, '$sqrt', $sqrt$77 = function $$sqrt(n) { var self = this; - if (!other.$$is_number) { - return false; + n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int"); + + if (n < 0) { + self.$raise($$$($$($nesting, 'Math'), 'DomainError'), "Numerical argument is out of domain - \"isqrt\"") } - return (other % 1) === 0; - - }, TMP_$eq$eq$eq_72.$$arity = 1), nil) && '==='; + return parseInt(Math.sqrt(n), 10); + ; + }, $sqrt$77.$$arity = 1), nil) && 'sqrt'; })(Opal.get_singleton_class(self), $nesting); Opal.const_set($nesting[0], 'MAX', Math.pow(2, 30) - 1); return Opal.const_set($nesting[0], 'MIN', -Math.pow(2, 30)); - })($nesting[0], Opal.const_get_relative($nesting, 'Numeric'), $nesting); + })($nesting[0], $$($nesting, 'Numeric'), $nesting); return (function($base, $super, $parent_nesting) { - function $Float(){}; - var self = $Float = $klass($base, $super, 'Float', $Float); + var self = $klass($base, $super, 'Float'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); self.$$is_number_class = true; (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_allocate_73, TMP_$eq$eq$eq_74; + var $nesting = [self].concat($parent_nesting), $allocate$78, $eq_eq_eq$79; - Opal.defn(self, '$allocate', TMP_allocate_73 = function $$allocate() { + Opal.def(self, '$allocate', $allocate$78 = function $$allocate() { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) - }, TMP_allocate_73.$$arity = 0); + return self.$raise($$($nesting, 'TypeError'), "" + "allocator undefined for " + (self.$name())) + }, $allocate$78.$$arity = 0); Opal.udef(self, '$' + "new");; - return (Opal.defn(self, '$===', TMP_$eq$eq$eq_74 = function(other) { + return (Opal.def(self, '$===', $eq_eq_eq$79 = function(other) { var self = this; - return !!other.$$is_number - }, TMP_$eq$eq$eq_74.$$arity = 1), nil) && '==='; + return !!other.$$is_number; + }, $eq_eq_eq$79.$$arity = 1), nil) && '==='; })(Opal.get_singleton_class(self), $nesting); Opal.const_set($nesting[0], 'INFINITY', Infinity); Opal.const_set($nesting[0], 'MAX', Number.MAX_VALUE); @@ -16461,17 +18602,16 @@ Opal.modules["corelib/number"] = function(Opal) { Opal.const_set($nesting[0], 'MANT_DIG', 53); Opal.const_set($nesting[0], 'RADIX', 2); return Opal.const_set($nesting[0], 'EPSILON', Number.EPSILON || 2.2204460492503130808472633361816E-16); - })($nesting[0], Opal.const_get_relative($nesting, 'Numeric'), $nesting); + })($nesting[0], $$($nesting, 'Numeric'), $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/range"] = function(Opal) { - function $rb_le(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); - } +Opal.modules["corelib/range"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } + function $rb_le(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); + } function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } @@ -16490,98 +18630,166 @@ Opal.modules["corelib/range"] = function(Opal) { function $rb_ge(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs >= rhs : lhs['$>='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $send2 = Opal.send2, $find_super = Opal.find_super, $send = Opal.send, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$attr_reader', '$raise', '$<=>', '$include?', '$<=', '$<', '$enum_for', '$upto', '$to_proc', '$respond_to?', '$class', '$succ', '$!', '$==', '$===', '$exclude_end?', '$eql?', '$begin', '$end', '$last', '$to_a', '$>', '$-', '$abs', '$to_i', '$coerce_to!', '$ceil', '$/', '$size', '$loop', '$+', '$*', '$>=', '$each_with_index', '$%', '$bsearch', '$inspect', '$[]', '$hash']); + Opal.add_stubs(['$require', '$include', '$attr_reader', '$raise', '$<=>', '$nil?', '$include?', '$!', '$<', '$<=', '$enum_for', '$size', '$upto', '$to_proc', '$respond_to?', '$class', '$succ', '$==', '$===', '$exclude_end?', '$eql?', '$begin', '$end', '$last', '$to_a', '$>', '$-@', '$-', '$to_i', '$coerce_to!', '$ceil', '$/', '$loop', '$+', '$*', '$>=', '$each_with_index', '$%', '$bsearch', '$inspect', '$[]', '$hash']); self.$require("corelib/enumerable"); return (function($base, $super, $parent_nesting) { - function $Range(){}; - var self = $Range = $klass($base, $super, 'Range', $Range); + var self = $klass($base, $super, 'Range'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Range_initialize_1, TMP_Range_$eq$eq_2, TMP_Range_$eq$eq$eq_3, TMP_Range_cover$q_4, TMP_Range_each_5, TMP_Range_eql$q_6, TMP_Range_exclude_end$q_7, TMP_Range_first_8, TMP_Range_last_9, TMP_Range_max_10, TMP_Range_min_11, TMP_Range_size_12, TMP_Range_step_13, TMP_Range_bsearch_17, TMP_Range_to_s_18, TMP_Range_inspect_19, TMP_Range_marshal_load_20, TMP_Range_hash_21; + var $nesting = [self].concat($parent_nesting), $Range_initialize$1, $Range_$eq_eq_eq$2, $Range_count$3, $Range_to_a$4, $Range_cover$ques$5, $Range_each$6, $Range_eql$ques$8, $Range_exclude_end$ques$9, $Range_first$10, $Range_last$11, $Range_max$12, $Range_min$13, $Range_size$14, $Range_step$15, $Range_bsearch$19, $Range_to_s$20, $Range_inspect$21, $Range_marshal_load$22, $Range_hash$23; - def.begin = def.end = def.excl = nil; + self.$$prototype.begin = self.$$prototype.end = self.$$prototype.excl = nil; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); - def.$$is_range = true;; + self.$include($$($nesting, 'Enumerable')); + self.$$prototype.$$is_range = true; self.$attr_reader("begin", "end"); - Opal.defn(self, '$initialize', TMP_Range_initialize_1 = function $$initialize(first, last, exclude) { - var self = this; + Opal.def(self, '$initialize', $Range_initialize$1 = function $$initialize(first, last, exclude) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + + if (exclude == null) { exclude = false; - } - + }; if ($truthy(self.begin)) { - self.$raise(Opal.const_get_relative($nesting, 'NameError'), "'initialize' called twice")}; - if ($truthy(first['$<=>'](last))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "bad value for range") + self.$raise($$($nesting, 'NameError'), "'initialize' called twice")}; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = first['$<=>'](last)))) { + return $ret_or_2 + } else { + return first['$nil?']() + }; return nil; })()))) { + return $ret_or_1 + } else { + return last['$nil?']() + }; return nil; })())) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "bad value for range") }; self.begin = first; self.end = last; return (self.excl = exclude); - }, TMP_Range_initialize_1.$$arity = -3); + }, $Range_initialize$1.$$arity = -3); - Opal.defn(self, '$==', TMP_Range_$eq$eq_2 = function(other) { + Opal.def(self, '$===', $Range_$eq_eq_eq$2 = function(value) { var self = this; - - if (!other.$$is_range) { - return false; - } - - return self.excl === other.excl && - self.begin == other.begin && - self.end == other.end; + return self['$include?'](value) + }, $Range_$eq_eq_eq$2.$$arity = 1); - }, TMP_Range_$eq$eq_2.$$arity = 1); + function is_infinite(self) { + if (self.begin === nil || self.end === nil || + self.begin === -Infinity || self.end === Infinity || + self.begin === Infinity || self.end === -Infinity) return true; + return false; + } + ; - Opal.defn(self, '$===', TMP_Range_$eq$eq$eq_3 = function(value) { - var self = this; + Opal.def(self, '$count', $Range_count$3 = function $$count() { + var $iter = $Range_count$3.$$p, block = $iter || nil, self = this, $ret_or_3 = nil; - return self['$include?'](value) - }, TMP_Range_$eq$eq$eq_3.$$arity = 1); + if ($iter) $Range_count$3.$$p = null; + + + if ($iter) $Range_count$3.$$p = null;; + if ($truthy((function() {if ($truthy(($ret_or_3 = (block !== nil)['$!']()))) { + return is_infinite(self); + } else { + return $ret_or_3 + }; return nil; })())) { + return $$$($$($nesting, 'Float'), 'INFINITY')}; + return $send2(self, $find_super(self, 'count', $Range_count$3, false, true), 'count', [], $iter); + }, $Range_count$3.$$arity = 0); - Opal.defn(self, '$cover?', TMP_Range_cover$q_4 = function(value) { - var $a, self = this, beg_cmp = nil, end_cmp = nil; + Opal.def(self, '$to_a', $Range_to_a$4 = function $$to_a() { + var $iter = $Range_to_a$4.$$p, $yield = $iter || nil, self = this; + if ($iter) $Range_to_a$4.$$p = null; - beg_cmp = self.begin['$<=>'](value); - if ($truthy(($truthy($a = beg_cmp) ? $rb_le(beg_cmp, 0) : $a))) { - } else { + if ($truthy(is_infinite(self))) { + self.$raise($$($nesting, 'TypeError'), "cannot convert endless range to an array")}; + return $send2(self, $find_super(self, 'to_a', $Range_to_a$4, false, true), 'to_a', [], $iter); + }, $Range_to_a$4.$$arity = 0); + + Opal.def(self, '$cover?', $Range_cover$ques$5 = function(value) { + var self = this, beg_cmp = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil, end_cmp = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil, $ret_or_11 = nil, $ret_or_12 = nil, $ret_or_13 = nil; + + + beg_cmp = (function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = self.begin['$nil?']()))) { + return -1 + } else { + return $ret_or_6 + }; return nil; })()))) { + return $ret_or_5 + } else { + + return self.begin['$<=>'](value); + }; return nil; })()))) { + return $ret_or_4 + } else { return false - }; - end_cmp = value['$<=>'](self.end); - if ($truthy(self.excl)) { - return ($truthy($a = end_cmp) ? $rb_lt(end_cmp, 0) : $a) + }; return nil; })(); + end_cmp = (function() {if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = (function() {if ($truthy(($ret_or_9 = self.end['$nil?']()))) { + return -1 + } else { + return $ret_or_9 + }; return nil; })()))) { + return $ret_or_8 + } else { + + return value['$<=>'](self.end); + }; return nil; })()))) { + return $ret_or_7 + } else { + return false + }; return nil; })(); + if ($truthy(($ret_or_10 = (function() {if ($truthy(($ret_or_11 = (function() {if ($truthy(self.excl)) { + if ($truthy(($ret_or_12 = end_cmp))) { + return $rb_lt(end_cmp, 0) } else { - return ($truthy($a = end_cmp) ? $rb_le(end_cmp, 0) : $a) + return $ret_or_12 + } + } else if ($truthy(($ret_or_13 = end_cmp))) { + return $rb_le(end_cmp, 0) + } else { + return $ret_or_13 + }; return nil; })()))) { + return beg_cmp + } else { + return $ret_or_11 + }; return nil; })()))) { + return $rb_le(beg_cmp, 0) + } else { + return $ret_or_10 }; - }, TMP_Range_cover$q_4.$$arity = 1); + }, $Range_cover$ques$5.$$arity = 1); - Opal.defn(self, '$each', TMP_Range_each_5 = function $$each() { - var $a, self = this, $iter = TMP_Range_each_5.$$p, block = $iter || nil, current = nil, last = nil; + Opal.def(self, '$each', $Range_each$6 = function $$each() { + var $iter = $Range_each$6.$$p, block = $iter || nil, $$7, $a, self = this, current = nil, last = nil, $ret_or_14 = nil, $ret_or_15 = nil; - if ($iter) TMP_Range_each_5.$$p = null; + if ($iter) $Range_each$6.$$p = null; + + if ($iter) $Range_each$6.$$p = null;; if ((block !== nil)) { - } else { - return self.$enum_for("each") + } else { + return $send(self, 'enum_for', ["each"], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; + + return self.$size()}, $$7.$$s = self, $$7.$$arity = 0, $$7)) }; var i, limit; if (self.begin.$$is_number && self.end.$$is_number) { if (self.begin % 1 !== 0 || self.end % 1 !== 0) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "can't iterate from Float") + self.$raise($$($nesting, 'TypeError'), "can't iterate from Float") } for (i = self.begin, limit = self.end + (function() {if ($truthy(self.excl)) { return 0 - } else { + } else { return 1 }; return nil; })(); i < limit; i++) { block(i); @@ -16598,137 +18806,190 @@ Opal.modules["corelib/range"] = function(Opal) { current = self.begin; last = self.end; if ($truthy(current['$respond_to?']("succ"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "can't iterate from " + (current.$class())) + } else { + self.$raise($$($nesting, 'TypeError'), "" + "can't iterate from " + (current.$class())) }; - while ($truthy($rb_lt(current['$<=>'](last), 0))) { + while ($truthy((function() {if ($truthy(($ret_or_14 = self.end['$nil?']()))) { + return $ret_or_14 + } else { + return $rb_lt(current['$<=>'](last), 0) + }; return nil; })())) { Opal.yield1(block, current); current = current.$succ(); }; - if ($truthy(($truthy($a = self.excl['$!']()) ? current['$=='](last) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_15 = self.excl['$!']()))) { + return current['$=='](last) + } else { + return $ret_or_15 + }; return nil; })())) { Opal.yield1(block, current)}; return self; - }, TMP_Range_each_5.$$arity = 0); + }, $Range_each$6.$$arity = 0); - Opal.defn(self, '$eql?', TMP_Range_eql$q_6 = function(other) { - var $a, $b, self = this; + Opal.def(self, '$eql?', $Range_eql$ques$8 = function(other) { + var self = this, $ret_or_16 = nil, $ret_or_17 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Range')['$==='](other))) { - } else { + if ($truthy($$($nesting, 'Range')['$==='](other))) { + } else { return false }; - return ($truthy($a = ($truthy($b = self.excl['$==='](other['$exclude_end?']())) ? self.begin['$eql?'](other.$begin()) : $b)) ? self.end['$eql?'](other.$end()) : $a); - }, TMP_Range_eql$q_6.$$arity = 1); + if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = self.excl['$==='](other['$exclude_end?']())))) { + return self.begin['$eql?'](other.$begin()) + } else { + return $ret_or_17 + }; return nil; })()))) { + return self.end['$eql?'](other.$end()) + } else { + return $ret_or_16 + }; + }, $Range_eql$ques$8.$$arity = 1); + $alias(self, "==", "eql?"); - Opal.defn(self, '$exclude_end?', TMP_Range_exclude_end$q_7 = function() { + Opal.def(self, '$exclude_end?', $Range_exclude_end$ques$9 = function() { var self = this; return self.excl - }, TMP_Range_exclude_end$q_7.$$arity = 0); + }, $Range_exclude_end$ques$9.$$arity = 0); - Opal.defn(self, '$first', TMP_Range_first_8 = function $$first(n) { - var self = this, $iter = TMP_Range_first_8.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$first', $Range_first$10 = function $$first(n) { + var $iter = $Range_first$10.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Range_first_8.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } + if ($iter) $Range_first$10.$$p = null; + ; + if ($truthy(self.begin['$nil?']())) { + self.$raise($$($nesting, 'RangeError'), "cannot get the minimum of beginless range")}; if ($truthy(n == null)) { return self.begin}; - return $send(self, Opal.find_super_dispatcher(self, 'first', TMP_Range_first_8, false), $zuper, $iter); - }, TMP_Range_first_8.$$arity = -1); - Opal.alias(self, "include?", "cover?"); + return $send2(self, $find_super(self, 'first', $Range_first$10, false, true), 'first', [n], $iter); + }, $Range_first$10.$$arity = -1); + $alias(self, "include?", "cover?"); - Opal.defn(self, '$last', TMP_Range_last_9 = function $$last(n) { + Opal.def(self, '$last', $Range_last$11 = function $$last(n) { var self = this; + ; + if ($truthy(self.end['$nil?']())) { + self.$raise($$($nesting, 'RangeError'), "cannot get the maximum of endless range")}; if ($truthy(n == null)) { return self.end}; return self.$to_a().$last(n); - }, TMP_Range_last_9.$$arity = -1); + }, $Range_last$11.$$arity = -1); - Opal.defn(self, '$max', TMP_Range_max_10 = function $$max() { - var $a, self = this, $iter = TMP_Range_max_10.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$max', $Range_max$12 = function $$max() { + var $iter = $Range_max$12.$$p, $yield = $iter || nil, self = this, $ret_or_18 = nil, $ret_or_19 = nil, $ret_or_20 = nil; - if ($iter) TMP_Range_max_10.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if (($yield !== nil)) { - return $send(self, Opal.find_super_dispatcher(self, 'max', TMP_Range_max_10, false), $zuper, $iter) - } else if ($truthy($rb_gt(self.begin, self.end))) { - return nil - } else if ($truthy(($truthy($a = self.excl) ? self.begin['$=='](self.end) : $a))) { - return nil + if ($iter) $Range_max$12.$$p = null; + if ($truthy(self.end['$nil?']())) { + return self.$raise($$($nesting, 'RangeError'), "cannot get the maximum of endless range") + } else if (($yield !== nil)) { + return $send2(self, $find_super(self, 'max', $Range_max$12, false, true), 'max', [], $iter) + } else if ($truthy((function() {if ($truthy(($ret_or_18 = self.begin['$nil?']()['$!']()))) { + + if ($truthy(($ret_or_19 = $rb_gt(self.begin, self.end)))) { + return $ret_or_19 + } else if ($truthy(($ret_or_20 = self.excl))) { + return self.begin['$=='](self.end) } else { + return $ret_or_20 + }; + } else { + return $ret_or_18 + }; return nil; })())) { + return nil + } else { return self.excl ? self.end - 1 : self.end } - }, TMP_Range_max_10.$$arity = 0); - Opal.alias(self, "member?", "cover?"); + }, $Range_max$12.$$arity = 0); + $alias(self, "member?", "cover?"); - Opal.defn(self, '$min', TMP_Range_min_11 = function $$min() { - var $a, self = this, $iter = TMP_Range_min_11.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; + Opal.def(self, '$min', $Range_min$13 = function $$min() { + var $iter = $Range_min$13.$$p, $yield = $iter || nil, self = this, $ret_or_21 = nil, $ret_or_22 = nil, $ret_or_23 = nil; - if ($iter) TMP_Range_min_11.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - if (($yield !== nil)) { - return $send(self, Opal.find_super_dispatcher(self, 'min', TMP_Range_min_11, false), $zuper, $iter) - } else if ($truthy($rb_gt(self.begin, self.end))) { - return nil - } else if ($truthy(($truthy($a = self.excl) ? self.begin['$=='](self.end) : $a))) { - return nil + if ($iter) $Range_min$13.$$p = null; + if ($truthy(self.begin['$nil?']())) { + return self.$raise($$($nesting, 'RangeError'), "cannot get the minimum of beginless range") + } else if (($yield !== nil)) { + return $send2(self, $find_super(self, 'min', $Range_min$13, false, true), 'min', [], $iter) + } else if ($truthy((function() {if ($truthy(($ret_or_21 = self.end['$nil?']()['$!']()))) { + + if ($truthy(($ret_or_22 = $rb_gt(self.begin, self.end)))) { + return $ret_or_22 + } else if ($truthy(($ret_or_23 = self.excl))) { + return self.begin['$=='](self.end) } else { + return $ret_or_23 + }; + } else { + return $ret_or_21 + }; return nil; })())) { + return nil + } else { return self.begin } - }, TMP_Range_min_11.$$arity = 0); + }, $Range_min$13.$$arity = 0); - Opal.defn(self, '$size', TMP_Range_size_12 = function $$size() { - var $a, self = this, _begin = nil, _end = nil, infinity = nil; + Opal.def(self, '$size', $Range_size$14 = function $$size() { + var self = this, infinity = nil, $ret_or_24 = nil, $ret_or_25 = nil, $ret_or_26 = nil, $ret_or_27 = nil, range_begin = nil, range_end = nil; - _begin = self.begin; - _end = self.end; - if ($truthy(self.excl)) { - _end = $rb_minus(_end, 1)}; - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Numeric')['$==='](_begin)) ? Opal.const_get_relative($nesting, 'Numeric')['$==='](_end) : $a))) { + infinity = $$$($$($nesting, 'Float'), 'INFINITY'); + if ($truthy((function() {if ($truthy(($ret_or_24 = (function() {if ($truthy(($ret_or_25 = self.begin['$=='](infinity)))) { + return self.end['$nil?']()['$!']() + } else { + return $ret_or_25 + }; return nil; })()))) { + return $ret_or_24 + } else { + + if ($truthy(($ret_or_26 = self.end['$=='](infinity['$-@']())))) { + return self.begin['$nil?']()['$!']() } else { + return $ret_or_26 + }; + }; return nil; })())) { + return 0}; + if ($truthy(is_infinite(self))) { + return infinity}; + if ($truthy((function() {if ($truthy(($ret_or_27 = $$($nesting, 'Numeric')['$==='](self.begin)))) { + return $$($nesting, 'Numeric')['$==='](self.end) + } else { + return $ret_or_27 + }; return nil; })())) { + } else { return nil }; - if ($truthy($rb_lt(_end, _begin))) { + range_begin = self.begin; + range_end = self.end; + if ($truthy(self.excl)) { + range_end = $rb_minus(range_end, 1)}; + if ($truthy($rb_lt(range_end, range_begin))) { return 0}; - infinity = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY'); - if ($truthy(($truthy($a = infinity['$=='](_begin.$abs())) ? $a : _end.$abs()['$=='](infinity)))) { - return infinity}; - return (Math.abs(_end - _begin) + 1).$to_i(); - }, TMP_Range_size_12.$$arity = 0); + return (Math.abs(range_end - range_begin) + 1).$to_i(); + }, $Range_size$14.$$arity = 0); - Opal.defn(self, '$step', TMP_Range_step_13 = function $$step(n) { - var TMP_14, TMP_15, TMP_16, self = this, $iter = TMP_Range_step_13.$$p, $yield = $iter || nil, i = nil; + Opal.def(self, '$step', $Range_step$15 = function $$step(n) { + var $$16, $$17, $$18, $iter = $Range_step$15.$$p, $yield = $iter || nil, self = this, i = nil; + if ($iter) $Range_step$15.$$p = null; + + if (n == null) { n = 1; - } - if ($iter) TMP_Range_step_13.$$p = null; - + }; function coerceStepSize() { if (!n.$$is_number) { - n = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](n, Opal.const_get_relative($nesting, 'Integer'), "to_int") + n = $$($nesting, 'Opal')['$coerce_to!'](n, $$($nesting, 'Integer'), "to_int") } if (n < 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "step can't be negative") + self.$raise($$($nesting, 'ArgumentError'), "step can't be negative") } else if (n === 0) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "step can't be 0") + self.$raise($$($nesting, 'ArgumentError'), "step can't be 0") } } @@ -16747,7 +19008,7 @@ Opal.modules["corelib/range"] = function(Opal) { // n is a float var begin = self.begin, end = self.end, abs = Math.abs, floor = Math.floor, - err = (abs(begin) + abs(end) + abs(end - begin)) / abs(n) * Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'EPSILON'), + err = (abs(begin) + abs(end) + abs(end - begin)) / abs(n) * $$$($$($nesting, 'Float'), 'EPSILON'), size; if (err > 0.5) { @@ -16768,24 +19029,24 @@ Opal.modules["corelib/range"] = function(Opal) { } ; if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["step", n], (TMP_14 = function(){var self = TMP_14.$$s || this; + } else { + return $send(self, 'enum_for', ["step", n], ($$16 = function(){var self = $$16.$$s == null ? this : $$16.$$s; - + coerceStepSize(); return enumeratorSize(); - }, TMP_14.$$s = self, TMP_14.$$arity = 0, TMP_14)) + }, $$16.$$s = self, $$16.$$arity = 0, $$16)) }; coerceStepSize(); if ($truthy(self.begin.$$is_number && self.end.$$is_number)) { i = 0; - (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], (TMP_15 = function(){var self = TMP_15.$$s || this, current = nil; + (function(){var $brk = Opal.new_brk(); try {return $send(self, 'loop', [], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s, current = nil; if (self.begin == null) self.begin = nil; if (self.excl == null) self.excl = nil; if (self.end == null) self.end = nil; - + current = $rb_plus(self.begin, $rb_times(i, n)); if ($truthy(self.excl)) { if ($truthy($rb_ge(current, self.end))) { @@ -16795,114 +19056,144 @@ Opal.modules["corelib/range"] = function(Opal) { Opal.brk(nil, $brk)}; Opal.yield1($yield, current); - return (i = $rb_plus(i, 1));}, TMP_15.$$s = self, TMP_15.$$brk = $brk, TMP_15.$$arity = 0, TMP_15)) + return (i = $rb_plus(i, 1));}, $$17.$$s = self, $$17.$$brk = $brk, $$17.$$arity = 0, $$17)) } catch (err) { if (err === $brk) { return err.$v } else { throw err } }})(); - } else { + } else { if (self.begin.$$is_string && self.end.$$is_string && n % 1 !== 0) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "no implicit conversion to float from string") + self.$raise($$($nesting, 'TypeError'), "no implicit conversion to float from string") } ; - $send(self, 'each_with_index', [], (TMP_16 = function(value, idx){var self = TMP_16.$$s || this; -if (value == null) value = nil;if (idx == null) idx = nil; - if (idx['$%'](n)['$=='](0)) { + $send(self, 'each_with_index', [], ($$18 = function(value, idx){var self = $$18.$$s == null ? this : $$18.$$s; + + + + if (value == null) { + value = nil; + }; + + if (idx == null) { + idx = nil; + }; + if (idx['$%'](n)['$=='](0)) { return Opal.yield1($yield, value); - } else { + } else { return nil - }}, TMP_16.$$s = self, TMP_16.$$arity = 2, TMP_16)); + };}, $$18.$$s = self, $$18.$$arity = 2, $$18)); }; return self; - }, TMP_Range_step_13.$$arity = -1); + }, $Range_step$15.$$arity = -1); - Opal.defn(self, '$bsearch', TMP_Range_bsearch_17 = function $$bsearch() { - var self = this, $iter = TMP_Range_bsearch_17.$$p, block = $iter || nil; + Opal.def(self, '$bsearch', $Range_bsearch$19 = function $$bsearch() { + var $iter = $Range_bsearch$19.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Range_bsearch_17.$$p = null; + if ($iter) $Range_bsearch$19.$$p = null; + + if ($iter) $Range_bsearch$19.$$p = null;; if ((block !== nil)) { - } else { + } else { return self.$enum_for("bsearch") }; + if ($truthy(is_infinite(self) && (self.begin.$$is_number || self.end.$$is_number))) { + self.$raise($$($nesting, 'NotImplementedError'), "Can't #bsearch an infinite range")}; if ($truthy(self.begin.$$is_number && self.end.$$is_number)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "can't do binary search for " + (self.begin.$class())) + } else { + self.$raise($$($nesting, 'TypeError'), "" + "can't do binary search for " + (self.begin.$class())) }; return $send(self.$to_a(), 'bsearch', [], block.$to_proc()); - }, TMP_Range_bsearch_17.$$arity = 0); + }, $Range_bsearch$19.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Range_to_s_18 = function $$to_s() { - var self = this; + Opal.def(self, '$to_s', $Range_to_s$20 = function $$to_s() { + var self = this, $ret_or_28 = nil, $ret_or_29 = nil; - return "" + (self.begin) + ((function() {if ($truthy(self.excl)) { + return "" + ((function() {if ($truthy(($ret_or_28 = self.begin))) { + return $ret_or_28 + } else { + return "" + }; return nil; })()) + ((function() {if ($truthy(self.excl)) { return "..." - } else { + } else { return ".." - }; return nil; })()) + (self.end) - }, TMP_Range_to_s_18.$$arity = 0); + }; return nil; })()) + ((function() {if ($truthy(($ret_or_29 = self.end))) { + return $ret_or_29 + } else { + return "" + }; return nil; })()) + }, $Range_to_s$20.$$arity = 0); - Opal.defn(self, '$inspect', TMP_Range_inspect_19 = function $$inspect() { - var self = this; + Opal.def(self, '$inspect', $Range_inspect$21 = function $$inspect() { + var self = this, $ret_or_30 = nil, $ret_or_31 = nil; - return "" + (self.begin.$inspect()) + ((function() {if ($truthy(self.excl)) { + return "" + ((function() {if ($truthy(($ret_or_30 = self.begin))) { + return self.begin.$inspect() + } else { + return $ret_or_30 + }; return nil; })()) + ((function() {if ($truthy(self.excl)) { return "..." - } else { + } else { return ".." - }; return nil; })()) + (self.end.$inspect()) - }, TMP_Range_inspect_19.$$arity = 0); + }; return nil; })()) + ((function() {if ($truthy(($ret_or_31 = self.end))) { + return self.end.$inspect() + } else { + return $ret_or_31 + }; return nil; })()) + }, $Range_inspect$21.$$arity = 0); - Opal.defn(self, '$marshal_load', TMP_Range_marshal_load_20 = function $$marshal_load(args) { + Opal.def(self, '$marshal_load', $Range_marshal_load$22 = function $$marshal_load(args) { var self = this; self.begin = args['$[]']("begin"); self.end = args['$[]']("end"); return (self.excl = args['$[]']("excl")); - }, TMP_Range_marshal_load_20.$$arity = 1); - return (Opal.defn(self, '$hash', TMP_Range_hash_21 = function $$hash() { + }, $Range_marshal_load$22.$$arity = 1); + return (Opal.def(self, '$hash', $Range_hash$23 = function $$hash() { var self = this; return [self.begin, self.end, self.excl].$hash() - }, TMP_Range_hash_21.$$arity = 0), nil) && 'hash'; + }, $Range_hash$23.$$arity = 0), nil) && 'hash'; })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/proc"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["corelib/proc"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $send = Opal.send; - Opal.add_stubs(['$raise', '$coerce_to!']); + Opal.add_stubs(['$raise', '$proc', '$call', '$to_proc', '$new', '$source_location', '$coerce_to!']); return (function($base, $super, $parent_nesting) { - function $Proc(){}; - var self = $Proc = $klass($base, $super, 'Proc', $Proc); + var self = $klass($base, $super, 'Proc'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Proc_new_1, TMP_Proc_call_2, TMP_Proc_to_proc_3, TMP_Proc_lambda$q_4, TMP_Proc_arity_5, TMP_Proc_source_location_6, TMP_Proc_binding_7, TMP_Proc_parameters_8, TMP_Proc_curry_9, TMP_Proc_dup_10; + var $nesting = [self].concat($parent_nesting), $Proc_new$1, $Proc_call$2, $Proc_$gt$gt$3, $Proc_$lt$lt$5, $Proc_to_proc$7, $Proc_lambda$ques$8, $Proc_arity$9, $Proc_source_location$10, $Proc_binding$11, $Proc_parameters$12, $Proc_curry$13, $Proc_dup$14; - def.$$is_proc = true; - def.$$is_lambda = false; - Opal.defs(self, '$new', TMP_Proc_new_1 = function() { - var self = this, $iter = TMP_Proc_new_1.$$p, block = $iter || nil; + Opal.defineProperty(self.$$prototype, '$$is_proc', true); + Opal.defineProperty(self.$$prototype, '$$is_lambda', false); + Opal.defs(self, '$new', $Proc_new$1 = function() { + var $iter = $Proc_new$1.$$p, block = $iter || nil, self = this; - if ($iter) TMP_Proc_new_1.$$p = null; + if ($iter) $Proc_new$1.$$p = null; + + if ($iter) $Proc_new$1.$$p = null;; if ($truthy(block)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "tried to create a Proc object without a block") + } else { + self.$raise($$($nesting, 'ArgumentError'), "tried to create a Proc object without a block") }; return block; - }, TMP_Proc_new_1.$$arity = 0); + }, $Proc_new$1.$$arity = 0); - Opal.defn(self, '$call', TMP_Proc_call_2 = function $$call($a_rest) { - var self = this, args, $iter = TMP_Proc_call_2.$$p, block = $iter || nil; + Opal.def(self, '$call', $Proc_call$2 = function $$call($a) { + var $iter = $Proc_call$2.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Proc_call_2.$$p = null; + if ($iter) $Proc_call$2.$$p = null; + + + if ($iter) $Proc_call$2.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; if (block !== nil) { self.$$p = block; @@ -16937,25 +19228,59 @@ Opal.modules["corelib/proc"] = function(Opal) { } return result; + ; + }, $Proc_call$2.$$arity = -1); + $alias(self, "[]", "call"); + $alias(self, "===", "call"); + $alias(self, "yield", "call"); + + Opal.def(self, '$>>', $Proc_$gt$gt$3 = function(other) { + var $$4, $iter = $Proc_$gt$gt$3.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Proc_$gt$gt$3.$$p = null; + return $send(self, 'proc', [], ($$4 = function($a){var self = $$4.$$s == null ? this : $$4.$$s, $iter = $$4.$$p, block = $iter || nil, $post_args, args, out = nil; + + + + if ($iter) $$4.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + out = $send(self, 'call', Opal.to_a(args), block.$to_proc()); + return other.$call(out);}, $$4.$$s = self, $$4.$$arity = -1, $$4)) + }, $Proc_$gt$gt$3.$$arity = 1); - }, TMP_Proc_call_2.$$arity = -1); - Opal.alias(self, "[]", "call"); - Opal.alias(self, "===", "call"); - Opal.alias(self, "yield", "call"); + Opal.def(self, '$<<', $Proc_$lt$lt$5 = function(other) { + var $$6, $iter = $Proc_$lt$lt$5.$$p, $yield = $iter || nil, self = this; + + if ($iter) $Proc_$lt$lt$5.$$p = null; + return $send(self, 'proc', [], ($$6 = function($a){var self = $$6.$$s == null ? this : $$6.$$s, $iter = $$6.$$p, block = $iter || nil, $post_args, args, out = nil; + + + + if ($iter) $$6.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + out = $send(other, 'call', Opal.to_a(args), block.$to_proc()); + return self.$call(out);}, $$6.$$s = self, $$6.$$arity = -1, $$6)) + }, $Proc_$lt$lt$5.$$arity = 1); - Opal.defn(self, '$to_proc', TMP_Proc_to_proc_3 = function $$to_proc() { + Opal.def(self, '$to_proc', $Proc_to_proc$7 = function $$to_proc() { var self = this; return self - }, TMP_Proc_to_proc_3.$$arity = 0); + }, $Proc_to_proc$7.$$arity = 0); - Opal.defn(self, '$lambda?', TMP_Proc_lambda$q_4 = function() { + Opal.def(self, '$lambda?', $Proc_lambda$ques$8 = function() { var self = this; - return !!self.$$is_lambda - }, TMP_Proc_lambda$q_4.$$arity = 0); + return !!self.$$is_lambda; + }, $Proc_lambda$ques$8.$$arity = 0); - Opal.defn(self, '$arity', TMP_Proc_arity_5 = function $$arity() { + Opal.def(self, '$arity', $Proc_arity$9 = function $$arity() { var self = this; @@ -16965,25 +19290,29 @@ Opal.modules["corelib/proc"] = function(Opal) { return self.$$arity; } - }, TMP_Proc_arity_5.$$arity = 0); + }, $Proc_arity$9.$$arity = 0); - Opal.defn(self, '$source_location', TMP_Proc_source_location_6 = function $$source_location() { + Opal.def(self, '$source_location', $Proc_source_location$10 = function $$source_location() { var self = this; if (self.$$is_curried) { return nil; }; return nil; - }, TMP_Proc_source_location_6.$$arity = 0); + }, $Proc_source_location$10.$$arity = 0); - Opal.defn(self, '$binding', TMP_Proc_binding_7 = function $$binding() { - var self = this; + Opal.def(self, '$binding', $Proc_binding$11 = function $$binding() { + var $a, self = this; - if (self.$$is_curried) { self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Can't create Binding") }; - return nil; - }, TMP_Proc_binding_7.$$arity = 0); + if (self.$$is_curried) { self.$raise($$($nesting, 'ArgumentError'), "Can't create Binding") }; + if ($truthy((($a = $$($nesting, 'Binding', 'skip_raise')) ? 'constant' : nil))) { + return $$($nesting, 'Binding').$new(nil, [], self.$$s, self.$source_location()) + } else { + return nil + }; + }, $Proc_binding$11.$$arity = 0); - Opal.defn(self, '$parameters', TMP_Proc_parameters_8 = function $$parameters() { + Opal.def(self, '$parameters', $Proc_parameters$12 = function $$parameters() { var self = this; @@ -17012,19 +19341,21 @@ Opal.modules["corelib/proc"] = function(Opal) { return []; } - }, TMP_Proc_parameters_8.$$arity = 0); + }, $Proc_parameters$12.$$arity = 0); - Opal.defn(self, '$curry', TMP_Proc_curry_9 = function $$curry(arity) { + Opal.def(self, '$curry', $Proc_curry$13 = function $$curry(arity) { var self = this; + ; + if (arity === undefined) { arity = self.length; } else { - arity = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](arity, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + arity = $$($nesting, 'Opal')['$coerce_to!'](arity, $$($nesting, 'Integer'), "to_int"); if (self.$$is_lambda && arity !== self.length) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arity) + " for " + (self.length) + ")") + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arity) + " for " + (self.length) + ")") } } @@ -17034,7 +19365,7 @@ Opal.modules["corelib/proc"] = function(Opal) { result; if (length > arity && self.$$is_lambda && !self.$$is_curried) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (length) + " for " + (arity) + ")") + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (length) + " for " + (arity) + ")") } if (length >= arity) { @@ -17054,10 +19385,10 @@ Opal.modules["corelib/proc"] = function(Opal) { curried.$$is_lambda = self.$$is_lambda; curried.$$is_curried = true; return curried; + ; + }, $Proc_curry$13.$$arity = -1); - }, TMP_Proc_curry_9.$$arity = -1); - - Opal.defn(self, '$dup', TMP_Proc_dup_10 = function $$dup() { + Opal.def(self, '$dup', $Proc_dup$14 = function $$dup() { var self = this; @@ -17074,28 +19405,26 @@ Opal.modules["corelib/proc"] = function(Opal) { return proc; - }, TMP_Proc_dup_10.$$arity = 0); - return Opal.alias(self, "clone", "dup"); + }, $Proc_dup$14.$$arity = 0); + return $alias(self, "clone", "dup"); })($nesting[0], Function, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/method"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["corelib/method"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$attr_reader', '$arity', '$new', '$class', '$join', '$source_location', '$raise']); + Opal.add_stubs(['$attr_reader', '$arity', '$curry', '$>>', '$<<', '$new', '$class', '$join', '$source_location', '$raise']); (function($base, $super, $parent_nesting) { - function $Method(){}; - var self = $Method = $klass($base, $super, 'Method', $Method); + var self = $klass($base, $super, 'Method'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Method_initialize_1, TMP_Method_arity_2, TMP_Method_parameters_3, TMP_Method_source_location_4, TMP_Method_comments_5, TMP_Method_call_6, TMP_Method_unbind_7, TMP_Method_to_proc_8, TMP_Method_inspect_9; + var $nesting = [self].concat($parent_nesting), $Method_initialize$1, $Method_arity$2, $Method_parameters$3, $Method_source_location$4, $Method_comments$5, $Method_call$6, $Method_curry$7, $Method_$gt$gt$8, $Method_$lt$lt$9, $Method_unbind$10, $Method_to_proc$11, $Method_inspect$12; - def.method = def.receiver = def.owner = def.name = nil; + self.$$prototype.method = self.$$prototype.receiver = self.$$prototype.owner = self.$$prototype.name = nil; self.$attr_reader("owner", "receiver", "name"); - Opal.defn(self, '$initialize', TMP_Method_initialize_1 = function $$initialize(receiver, owner, method, name) { + Opal.def(self, '$initialize', $Method_initialize$1 = function $$initialize(receiver, owner, method, name) { var self = this; @@ -17103,83 +19432,114 @@ Opal.modules["corelib/method"] = function(Opal) { self.owner = owner; self.name = name; return (self.method = method); - }, TMP_Method_initialize_1.$$arity = 4); + }, $Method_initialize$1.$$arity = 4); - Opal.defn(self, '$arity', TMP_Method_arity_2 = function $$arity() { + Opal.def(self, '$arity', $Method_arity$2 = function $$arity() { var self = this; return self.method.$arity() - }, TMP_Method_arity_2.$$arity = 0); + }, $Method_arity$2.$$arity = 0); - Opal.defn(self, '$parameters', TMP_Method_parameters_3 = function $$parameters() { + Opal.def(self, '$parameters', $Method_parameters$3 = function $$parameters() { var self = this; return self.method.$$parameters - }, TMP_Method_parameters_3.$$arity = 0); + }, $Method_parameters$3.$$arity = 0); - Opal.defn(self, '$source_location', TMP_Method_source_location_4 = function $$source_location() { - var $a, self = this; + Opal.def(self, '$source_location', $Method_source_location$4 = function $$source_location() { + var self = this, $ret_or_1 = nil; - return ($truthy($a = self.method.$$source_location) ? $a : ["(eval)", 0]) - }, TMP_Method_source_location_4.$$arity = 0); + if ($truthy(($ret_or_1 = self.method.$$source_location))) { + return $ret_or_1 + } else { + return ["(eval)", 0] + } + }, $Method_source_location$4.$$arity = 0); - Opal.defn(self, '$comments', TMP_Method_comments_5 = function $$comments() { - var $a, self = this; + Opal.def(self, '$comments', $Method_comments$5 = function $$comments() { + var self = this, $ret_or_2 = nil; - return ($truthy($a = self.method.$$comments) ? $a : []) - }, TMP_Method_comments_5.$$arity = 0); + if ($truthy(($ret_or_2 = self.method.$$comments))) { + return $ret_or_2 + } else { + return [] + } + }, $Method_comments$5.$$arity = 0); - Opal.defn(self, '$call', TMP_Method_call_6 = function $$call($a_rest) { - var self = this, args, $iter = TMP_Method_call_6.$$p, block = $iter || nil; + Opal.def(self, '$call', $Method_call$6 = function $$call($a) { + var $iter = $Method_call$6.$$p, block = $iter || nil, $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Method_call_6.$$p = null; + if ($iter) $Method_call$6.$$p = null; + + + if ($iter) $Method_call$6.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; self.method.$$p = block; return self.method.apply(self.receiver, args); + ; + }, $Method_call$6.$$arity = -1); + + Opal.def(self, '$curry', $Method_curry$7 = function $$curry(arity) { + var self = this; + + + ; + return self.method.$curry(arity); + }, $Method_curry$7.$$arity = -1); + $alias(self, "[]", "call"); + $alias(self, "===", "call"); - }, TMP_Method_call_6.$$arity = -1); - Opal.alias(self, "[]", "call"); + Opal.def(self, '$>>', $Method_$gt$gt$8 = function(other) { + var self = this; + + return self.method['$>>'](other) + }, $Method_$gt$gt$8.$$arity = 1); + + Opal.def(self, '$<<', $Method_$lt$lt$9 = function(other) { + var self = this; + + return self.method['$<<'](other) + }, $Method_$lt$lt$9.$$arity = 1); - Opal.defn(self, '$unbind', TMP_Method_unbind_7 = function $$unbind() { + Opal.def(self, '$unbind', $Method_unbind$10 = function $$unbind() { var self = this; - return Opal.const_get_relative($nesting, 'UnboundMethod').$new(self.receiver.$class(), self.owner, self.method, self.name) - }, TMP_Method_unbind_7.$$arity = 0); + return $$($nesting, 'UnboundMethod').$new(self.receiver.$class(), self.owner, self.method, self.name) + }, $Method_unbind$10.$$arity = 0); - Opal.defn(self, '$to_proc', TMP_Method_to_proc_8 = function $$to_proc() { + Opal.def(self, '$to_proc', $Method_to_proc$11 = function $$to_proc() { var self = this; var proc = self.$call.bind(self); proc.$$unbound = self.method; proc.$$is_lambda = true; + proc.$$arity = self.method.$$arity; + proc.$$parameters = self.method.$$parameters; return proc; - }, TMP_Method_to_proc_8.$$arity = 0); - return (Opal.defn(self, '$inspect', TMP_Method_inspect_9 = function $$inspect() { + }, $Method_to_proc$11.$$arity = 0); + return (Opal.def(self, '$inspect', $Method_inspect$12 = function $$inspect() { var self = this; return "" + "#<" + (self.$class()) + ": " + (self.receiver.$class()) + "#" + (self.name) + " (defined in " + (self.owner) + " in " + (self.$source_location().$join(":")) + ")>" - }, TMP_Method_inspect_9.$$arity = 0), nil) && 'inspect'; + }, $Method_inspect$12.$$arity = 0), nil) && 'inspect'; })($nesting[0], null, $nesting); return (function($base, $super, $parent_nesting) { - function $UnboundMethod(){}; - var self = $UnboundMethod = $klass($base, $super, 'UnboundMethod', $UnboundMethod); + var self = $klass($base, $super, 'UnboundMethod'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_UnboundMethod_initialize_10, TMP_UnboundMethod_arity_11, TMP_UnboundMethod_parameters_12, TMP_UnboundMethod_source_location_13, TMP_UnboundMethod_comments_14, TMP_UnboundMethod_bind_15, TMP_UnboundMethod_inspect_16; + var $nesting = [self].concat($parent_nesting), $UnboundMethod_initialize$13, $UnboundMethod_arity$14, $UnboundMethod_parameters$15, $UnboundMethod_source_location$16, $UnboundMethod_comments$17, $UnboundMethod_bind$18, $UnboundMethod_inspect$19; - def.method = def.owner = def.name = def.source = nil; + self.$$prototype.method = self.$$prototype.owner = self.$$prototype.name = self.$$prototype.source = nil; self.$attr_reader("source", "owner", "name"); - Opal.defn(self, '$initialize', TMP_UnboundMethod_initialize_10 = function $$initialize(source, owner, method, name) { + Opal.def(self, '$initialize', $UnboundMethod_initialize$13 = function $$initialize(source, owner, method, name) { var self = this; @@ -17187,426 +19547,1361 @@ Opal.modules["corelib/method"] = function(Opal) { self.owner = owner; self.method = method; return (self.name = name); - }, TMP_UnboundMethod_initialize_10.$$arity = 4); + }, $UnboundMethod_initialize$13.$$arity = 4); - Opal.defn(self, '$arity', TMP_UnboundMethod_arity_11 = function $$arity() { + Opal.def(self, '$arity', $UnboundMethod_arity$14 = function $$arity() { var self = this; return self.method.$arity() - }, TMP_UnboundMethod_arity_11.$$arity = 0); + }, $UnboundMethod_arity$14.$$arity = 0); - Opal.defn(self, '$parameters', TMP_UnboundMethod_parameters_12 = function $$parameters() { + Opal.def(self, '$parameters', $UnboundMethod_parameters$15 = function $$parameters() { var self = this; return self.method.$$parameters - }, TMP_UnboundMethod_parameters_12.$$arity = 0); + }, $UnboundMethod_parameters$15.$$arity = 0); - Opal.defn(self, '$source_location', TMP_UnboundMethod_source_location_13 = function $$source_location() { - var $a, self = this; + Opal.def(self, '$source_location', $UnboundMethod_source_location$16 = function $$source_location() { + var self = this, $ret_or_3 = nil; - return ($truthy($a = self.method.$$source_location) ? $a : ["(eval)", 0]) - }, TMP_UnboundMethod_source_location_13.$$arity = 0); + if ($truthy(($ret_or_3 = self.method.$$source_location))) { + return $ret_or_3 + } else { + return ["(eval)", 0] + } + }, $UnboundMethod_source_location$16.$$arity = 0); - Opal.defn(self, '$comments', TMP_UnboundMethod_comments_14 = function $$comments() { - var $a, self = this; + Opal.def(self, '$comments', $UnboundMethod_comments$17 = function $$comments() { + var self = this, $ret_or_4 = nil; - return ($truthy($a = self.method.$$comments) ? $a : []) - }, TMP_UnboundMethod_comments_14.$$arity = 0); + if ($truthy(($ret_or_4 = self.method.$$comments))) { + return $ret_or_4 + } else { + return [] + } + }, $UnboundMethod_comments$17.$$arity = 0); - Opal.defn(self, '$bind', TMP_UnboundMethod_bind_15 = function $$bind(object) { + Opal.def(self, '$bind', $UnboundMethod_bind$18 = function $$bind(object) { var self = this; if (self.owner.$$is_module || Opal.is_a(object, self.owner)) { - return Opal.const_get_relative($nesting, 'Method').$new(object, self.owner, self.method, self.name); + return $$($nesting, 'Method').$new(object, self.owner, self.method, self.name); } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "can't bind singleton method to a different class (expected " + (object) + ".kind_of?(" + (self.owner) + " to be true)"); + self.$raise($$($nesting, 'TypeError'), "" + "can't bind singleton method to a different class (expected " + (object) + ".kind_of?(" + (self.owner) + " to be true)"); } - }, TMP_UnboundMethod_bind_15.$$arity = 1); - return (Opal.defn(self, '$inspect', TMP_UnboundMethod_inspect_16 = function $$inspect() { + }, $UnboundMethod_bind$18.$$arity = 1); + return (Opal.def(self, '$inspect', $UnboundMethod_inspect$19 = function $$inspect() { var self = this; - return "" + "#<" + (self.$class()) + ": " + (self.source) + "#" + (self.name) + " (defined in " + (self.owner) + " in " + (self.$source_location().$join(":")) + ")>" - }, TMP_UnboundMethod_inspect_16.$$arity = 0), nil) && 'inspect'; - })($nesting[0], null, $nesting); -}; + return "" + "#<" + (self.$class()) + ": " + (self.source) + "#" + (self.name) + " (defined in " + (self.owner) + " in " + (self.$source_location().$join(":")) + ")>" + }, $UnboundMethod_inspect$19.$$arity = 0), nil) && 'inspect'; + })($nesting[0], null, $nesting); +}; + +Opal.modules["corelib/variables"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $gvars = Opal.gvars, $hash2 = Opal.hash2; + + Opal.add_stubs(['$new']); + + $gvars['&'] = $gvars['~'] = $gvars['`'] = $gvars["'"] = nil; + $gvars.LOADED_FEATURES = ($gvars["\""] = Opal.loaded_features); + $gvars.LOAD_PATH = ($gvars[":"] = []); + $gvars["/"] = "\n"; + $gvars[","] = nil; + Opal.const_set($nesting[0], 'ARGV', []); + Opal.const_set($nesting[0], 'ARGF', $$($nesting, 'Object').$new()); + Opal.const_set($nesting[0], 'ENV', $hash2([], {})); + $gvars.VERBOSE = false; + $gvars.DEBUG = false; + return ($gvars.SAFE = 0); +}; + +Opal.modules["corelib/io"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_plus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); + } + function $rb_gt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); + } + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias, $gvars = Opal.gvars, $range = Opal.range, $send = Opal.send, $hash2 = Opal.hash2, $writer = nil; + + Opal.add_stubs(['$include?', '$!', '$match?', '$attr_accessor', '$size', '$attr_reader', '$write', '$String', '$chomp', '$sysread_noraise', '$+', '$!=', '$[]', '$ord', '$getc', '$readchar', '$raise', '$gets', '$==', '$to_str', '$length', '$split', '$sub', '$sysread', '$>', '$to_a', '$each_line', '$enum_for', '$getbyte', '$closed_write?', '$closed_read?', '$new', '$write_proc=', '$-', '$read_proc=']); + + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'IO'); + + var $nesting = [self].concat($parent_nesting), $IO_initialize$1, $IO_fileno$2, $IO_tty$ques$3, $IO_write$4, $IO_flush$5, $IO_$lt$lt$6, $IO_print$7, $IO_puts$8, $IO_getc$9, $IO_getbyte$10, $IO_readbyte$11, $IO_readchar$12, $IO_readline$13, $IO_gets$14, $IO_sysread$15, $IO_sysread_noraise$16, $IO_readpartial$17, $IO_read$18, $IO_readlines$19, $IO_each$20, $IO_each_byte$21, $IO_each_char$22, $IO_close$23, $IO_close_read$24, $IO_close_write$25, $IO_closed$ques$26, $IO_closed_read$ques$27, $IO_closed_write$ques$28, $IO_check_writable$29, $IO_check_readable$30; + + self.$$prototype.fd = self.$$prototype.read_buffer = self.$$prototype.closed = nil; + + Opal.const_set($nesting[0], 'SEEK_SET', 0); + Opal.const_set($nesting[0], 'SEEK_CUR', 1); + Opal.const_set($nesting[0], 'SEEK_END', 2); + Opal.const_set($nesting[0], 'SEEK_DATA', 3); + Opal.const_set($nesting[0], 'SEEK_HOLE', 4); + Opal.const_set($nesting[0], 'READABLE', 1); + Opal.const_set($nesting[0], 'WRITABLE', 4); + + Opal.def(self, '$initialize', $IO_initialize$1 = function $$initialize(fd, flags) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil; + + + + if (flags == null) { + flags = "r"; + }; + self.fd = fd; + self.flags = flags; + self.eof = false; + if ($truthy((function() {if ($truthy(($ret_or_1 = flags['$include?']("r")))) { + return flags['$match?'](/[wa+]/)['$!']() + } else { + return $ret_or_1 + }; return nil; })())) { + return (self.closed = "write") + } else if ($truthy((function() {if ($truthy(($ret_or_2 = flags['$match?'](/[wa]/)))) { + return flags['$match?'](/[r+]/)['$!']() + } else { + return $ret_or_2 + }; return nil; })())) { + return (self.closed = "read") + } else { + return nil + }; + }, $IO_initialize$1.$$arity = -2); + + Opal.def(self, '$fileno', $IO_fileno$2 = function $$fileno() { + var self = this; + + return self.fd + }, $IO_fileno$2.$$arity = 0); + + Opal.def(self, '$tty?', $IO_tty$ques$3 = function() { + var self = this; + + return self.tty == true; + }, $IO_tty$ques$3.$$arity = 0); + self.$attr_accessor("write_proc"); + self.$attr_accessor("read_proc"); + + Opal.def(self, '$write', $IO_write$4 = function $$write(string) { + var self = this; + + + self.write_proc(string); + return string.$size(); + }, $IO_write$4.$$arity = 1); + self.$attr_accessor("sync", "tty"); + self.$attr_reader("eof"); + $alias(self, "eof?", "eof"); + + Opal.def(self, '$flush', $IO_flush$5 = function $$flush() { + var self = this; + + return nil + }, $IO_flush$5.$$arity = 0); + + Opal.def(self, '$<<', $IO_$lt$lt$6 = function(string) { + var self = this; + + + self.$write(string); + return self; + }, $IO_$lt$lt$6.$$arity = 1); + + Opal.def(self, '$print', $IO_print$7 = function $$print($a) { + var $post_args, args, self = this; + if ($gvars[","] == null) $gvars[","] = nil; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + + for (var i = 0, ii = args.length; i < ii; i++) { + args[i] = self.$String(args[i]) + } + self.$write(args.join($gvars[","])); + ; + return nil; + }, $IO_print$7.$$arity = -1); + + Opal.def(self, '$puts', $IO_puts$8 = function $$puts($a) { + var $post_args, args, self = this; + if ($gvars["/"] == null) $gvars["/"] = nil; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + + for (var i = 0, ii = args.length; i < ii; i++) { + args[i] = self.$String(args[i]).$chomp() + } + self.$write(args.concat([nil]).join($gvars["/"])); + ; + return nil; + }, $IO_puts$8.$$arity = -1); + + Opal.def(self, '$getc', $IO_getc$9 = function $$getc() { + var $a, self = this, $ret_or_3 = nil, parts = nil, ret = nil; + + + self.read_buffer = (function() {if ($truthy(($ret_or_3 = self.read_buffer))) { + return $ret_or_3 + } else { + return "" + }; return nil; })(); + parts = ""; + do { + + self.read_buffer = $rb_plus(self.read_buffer, parts); + if ($truthy(self.read_buffer['$!='](""))) { + + ret = self.read_buffer['$[]'](0); + self.read_buffer = self.read_buffer['$[]']($range(1, -1, false)); + return ret;}; + } while ($truthy((parts = self.$sysread_noraise(1))));; + return nil; + }, $IO_getc$9.$$arity = 0); + + Opal.def(self, '$getbyte', $IO_getbyte$10 = function $$getbyte() { + var $a, self = this; + + return ($a = self.$getc(), ($a === nil || $a == null) ? nil : $send($a, 'ord', [])) + }, $IO_getbyte$10.$$arity = 0); + + Opal.def(self, '$readbyte', $IO_readbyte$11 = function $$readbyte() { + var self = this; + + return self.$readchar().$ord() + }, $IO_readbyte$11.$$arity = 0); + + Opal.def(self, '$readchar', $IO_readchar$12 = function $$readchar() { + var self = this, $ret_or_4 = nil; + + if ($truthy(($ret_or_4 = self.$getc()))) { + return $ret_or_4 + } else { + return self.$raise($$($nesting, 'EOFError'), "end of file reached") + } + }, $IO_readchar$12.$$arity = 0); + + Opal.def(self, '$readline', $IO_readline$13 = function $$readline($a) { + var $post_args, args, self = this, $ret_or_5 = nil; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(($ret_or_5 = $send(self, 'gets', Opal.to_a(args))))) { + return $ret_or_5 + } else { + return self.$raise($$($nesting, 'EOFError'), "end of file reached") + }; + }, $IO_readline$13.$$arity = -1); + + Opal.def(self, '$gets', $IO_gets$14 = function $$gets(sep, limit, opts) { + var $a, $b, $c, self = this, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil, $ret_or_9 = nil, orig_sep = nil, $ret_or_10 = nil, seplen = nil, $ret_or_11 = nil, data = nil, ret = nil, $ret_or_12 = nil, orig_buffer = nil, $ret_or_13 = nil; + if ($gvars["/"] == null) $gvars["/"] = nil; + + + + if (sep == null) { + sep = false; + }; + + if (limit == null) { + limit = nil; + }; + + if (opts == null) { + opts = $hash2([], {}); + }; + if ($truthy((function() {if ($truthy(($ret_or_6 = sep.$$is_number))) { + return limit['$!']() + } else { + return $ret_or_6 + }; return nil; })())) { + $a = [false, sep, limit], (sep = $a[0]), (limit = $a[1]), (opts = $a[2]), $a}; + if ($truthy((function() {if ($truthy(($ret_or_7 = (function() {if ($truthy(($ret_or_8 = sep.$$is_hash))) { + return limit['$!']() + } else { + return $ret_or_8 + }; return nil; })()))) { + return opts['$==']($hash2([], {})) + } else { + return $ret_or_7 + }; return nil; })())) { + $a = [false, nil, sep], (sep = $a[0]), (limit = $a[1]), (opts = $a[2]), $a + } else if ($truthy((function() {if ($truthy(($ret_or_9 = limit.$$is_hash))) { + return opts['$==']($hash2([], {})) + } else { + return $ret_or_9 + }; return nil; })())) { + $a = [sep, nil, limit], (sep = $a[0]), (limit = $a[1]), (opts = $a[2]), $a}; + orig_sep = sep; + if (sep['$=='](false)) { + sep = $gvars["/"]}; + if (sep['$==']("")) { + sep = /\r?\n\r?\n/}; + sep = (function() {if ($truthy(($ret_or_10 = sep))) { + return $ret_or_10 + } else { + return "" + }; return nil; })(); + if (orig_sep['$==']("")) { + } else { + sep = sep.$to_str() + }; + seplen = (function() {if (orig_sep['$==']("")) { + return 2 + } else { + return sep.$length() + }; return nil; })(); + if (sep['$=='](" ")) { + sep = / /}; + self.read_buffer = (function() {if ($truthy(($ret_or_11 = self.read_buffer))) { + return $ret_or_11 + } else { + return "" + }; return nil; })(); + data = ""; + ret = nil; + do { + + self.read_buffer = $rb_plus(self.read_buffer, data); + if ($truthy((function() {if ($truthy(($ret_or_12 = sep['$!=']("")))) { + + if ($truthy(sep.$$is_regexp)) { + return self.read_buffer['$match?'](sep) + } else { + return self.read_buffer['$include?'](sep) + }; + } else { + return $ret_or_12 + }; return nil; })())) { + + orig_buffer = self.read_buffer; + $c = self.read_buffer.$split(sep, 2), $b = Opal.to_ary($c), (ret = ($b[0] == null ? nil : $b[0])), (self.read_buffer = ($b[1] == null ? nil : $b[1])), $c; + if ($truthy(ret['$!='](orig_buffer))) { + ret = $rb_plus(ret, orig_buffer['$[]'](ret.$length(), seplen))}; + break;;}; + } while ($truthy((data = self.$sysread_noraise((function() {if (sep['$==']("")) { + return 65536 + } else { + return 1 + }; return nil; })()))));; + if ($truthy(ret)) { + } else { + + $a = [(function() {if ($truthy(($ret_or_13 = self.read_buffer))) { + return $ret_or_13 + } else { + return "" + }; return nil; })(), ""], (ret = $a[0]), (self.read_buffer = $a[1]), $a; + if (ret['$==']("")) { + ret = nil}; + }; + if ($truthy(ret)) { + + if ($truthy(limit)) { + + ret = ret['$[]'](Opal.Range.$new(0,limit, true)); + self.read_buffer = $rb_plus(ret['$[]'](Opal.Range.$new(limit, -1, false)), self.read_buffer);}; + if ($truthy(opts['$[]']("chomp"))) { + ret = ret.$sub(/\r?\n$/, "")}; + if (orig_sep['$==']("")) { + ret = ret.$sub(/^[\r\n]+/, "")};}; + if (orig_sep['$=='](false)) { + $gvars._ = ret}; + return ret; + }, $IO_gets$14.$$arity = -1); + + Opal.def(self, '$sysread', $IO_sysread$15 = function $$sysread(integer) { + var self = this, $ret_or_14 = nil; + + if ($truthy(($ret_or_14 = self.read_proc(integer)))) { + return $ret_or_14 + } else { + + self.eof = true; + return self.$raise($$($nesting, 'EOFError'), "end of file reached"); + } + }, $IO_sysread$15.$$arity = 1); + + Opal.def(self, '$sysread_noraise', $IO_sysread_noraise$16 = function $$sysread_noraise(integer) { + var self = this; + + try { + return self.$sysread(integer) + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'EOFError')])) { + try { + return nil + } finally { Opal.pop_exception(); } + } else { throw $err; } + } + }, $IO_sysread_noraise$16.$$arity = 1); + + Opal.def(self, '$readpartial', $IO_readpartial$17 = function $$readpartial(integer) { + var $a, self = this, $ret_or_15 = nil, part = nil, $ret_or_16 = nil, ret = nil; + + + self.read_buffer = (function() {if ($truthy(($ret_or_15 = self.read_buffer))) { + return $ret_or_15 + } else { + return "" + }; return nil; })(); + part = self.$sysread(integer); + $a = [$rb_plus(self.read_buffer, (function() {if ($truthy(($ret_or_16 = part))) { + return $ret_or_16 + } else { + return "" + }; return nil; })()), ""], (ret = $a[0]), (self.read_buffer = $a[1]), $a; + if (ret['$==']("")) { + ret = nil}; + return ret; + }, $IO_readpartial$17.$$arity = 1); + + Opal.def(self, '$read', $IO_read$18 = function $$read(integer) { + var $a, $b, self = this, $ret_or_17 = nil, parts = nil, ret = nil, $ret_or_18 = nil, $ret_or_19 = nil; + + + + if (integer == null) { + integer = nil; + }; + self.read_buffer = (function() {if ($truthy(($ret_or_17 = self.read_buffer))) { + return $ret_or_17 + } else { + return "" + }; return nil; })(); + parts = ""; + ret = nil; + do { + + self.read_buffer = $rb_plus(self.read_buffer, parts); + if ($truthy((function() {if ($truthy(($ret_or_19 = integer))) { + return $rb_gt(self.read_buffer.$length(), integer) + } else { + return $ret_or_19 + }; return nil; })())) { + + $b = [self.read_buffer['$[]'](Opal.Range.$new(0,integer, true)), self.read_buffer['$[]'](Opal.Range.$new(integer, -1, false))], (ret = $b[0]), (self.read_buffer = $b[1]), $b; + return ret;}; + } while ($truthy((parts = self.$sysread_noraise((function() {if ($truthy(($ret_or_18 = integer))) { + return $ret_or_18 + } else { + return 65536 + }; return nil; })()))));; + $a = [self.read_buffer, ""], (ret = $a[0]), (self.read_buffer = $a[1]), $a; + return ret; + }, $IO_read$18.$$arity = -1); + + Opal.def(self, '$readlines', $IO_readlines$19 = function $$readlines(separator) { + var self = this; + if ($gvars["/"] == null) $gvars["/"] = nil; + + + + if (separator == null) { + separator = $gvars["/"]; + }; + return self.$each_line(separator).$to_a(); + }, $IO_readlines$19.$$arity = -1); + + Opal.def(self, '$each', $IO_each$20 = function $$each($a, $b) { + var $iter = $IO_each$20.$$p, block = $iter || nil, $post_args, sep, args, $c, self = this, s = nil; + if ($gvars["/"] == null) $gvars["/"] = nil; + + if ($iter) $IO_each$20.$$p = null; + + + if ($iter) $IO_each$20.$$p = null;; + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + if ($post_args.length > 0) { + sep = $post_args[0]; + $post_args.splice(0, 1); + } + if (sep == null) { + sep = $gvars["/"]; + }; + + args = $post_args;; + if ((block !== nil)) { + } else { + return $send(self, 'enum_for', ["each", sep].concat(Opal.to_a(args))) + }; + while ($truthy((s = $send(self, 'gets', [sep].concat(Opal.to_a(args)))))) { + Opal.yield1(block, s) + }; + return self; + }, $IO_each$20.$$arity = -1); + $alias(self, "each_line", "each"); + + Opal.def(self, '$each_byte', $IO_each_byte$21 = function $$each_byte() { + var $iter = $IO_each_byte$21.$$p, block = $iter || nil, $a, self = this, s = nil; + + if ($iter) $IO_each_byte$21.$$p = null; + + + if ($iter) $IO_each_byte$21.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("each_byte") + }; + while ($truthy((s = self.$getbyte()))) { + Opal.yield1(block, s) + }; + return self; + }, $IO_each_byte$21.$$arity = 0); + + Opal.def(self, '$each_char', $IO_each_char$22 = function $$each_char() { + var $iter = $IO_each_char$22.$$p, block = $iter || nil, $a, self = this, s = nil; + + if ($iter) $IO_each_char$22.$$p = null; + + + if ($iter) $IO_each_char$22.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("each_char") + }; + while ($truthy((s = self.$getc()))) { + Opal.yield1(block, s) + }; + return self; + }, $IO_each_char$22.$$arity = 0); + + Opal.def(self, '$close', $IO_close$23 = function $$close() { + var self = this; + + return (self.closed = "both") + }, $IO_close$23.$$arity = 0); + + Opal.def(self, '$close_read', $IO_close_read$24 = function $$close_read() { + var self = this; + + if (self.closed['$==']("write")) { + return (self.closed = "both") + } else { + return (self.closed = "read") + } + }, $IO_close_read$24.$$arity = 0); + + Opal.def(self, '$close_write', $IO_close_write$25 = function $$close_write() { + var self = this; + + if (self.closed['$==']("read")) { + return (self.closed = "both") + } else { + return (self.closed = "write") + } + }, $IO_close_write$25.$$arity = 0); + + Opal.def(self, '$closed?', $IO_closed$ques$26 = function() { + var self = this; + + return self.closed['$==']("both") + }, $IO_closed$ques$26.$$arity = 0); + + Opal.def(self, '$closed_read?', $IO_closed_read$ques$27 = function() { + var self = this, $ret_or_20 = nil; + + if ($truthy(($ret_or_20 = self.closed['$==']("read")))) { + return $ret_or_20 + } else { + return self.closed['$==']("both") + } + }, $IO_closed_read$ques$27.$$arity = 0); + + Opal.def(self, '$closed_write?', $IO_closed_write$ques$28 = function() { + var self = this, $ret_or_21 = nil; + + if ($truthy(($ret_or_21 = self.closed['$==']("write")))) { + return $ret_or_21 + } else { + return self.closed['$==']("both") + } + }, $IO_closed_write$ques$28.$$arity = 0); + + Opal.def(self, '$check_writable', $IO_check_writable$29 = function $$check_writable() { + var self = this; + + if ($truthy(self['$closed_write?']())) { + return self.$raise($$($nesting, 'IOError'), "not opened for writing") + } else { + return nil + } + }, $IO_check_writable$29.$$arity = 0); + return (Opal.def(self, '$check_readable', $IO_check_readable$30 = function $$check_readable() { + var self = this; + + if ($truthy(self['$closed_read?']())) { + return self.$raise($$($nesting, 'IOError'), "not opened for reading") + } else { + return nil + } + }, $IO_check_readable$30.$$arity = 0), nil) && 'check_readable'; + })($nesting[0], null, $nesting); + Opal.const_set($nesting[0], 'STDIN', ($gvars.stdin = $$($nesting, 'IO').$new(0, "r"))); + Opal.const_set($nesting[0], 'STDOUT', ($gvars.stdout = $$($nesting, 'IO').$new(1, "w"))); + Opal.const_set($nesting[0], 'STDERR', ($gvars.stderr = $$($nesting, 'IO').$new(2, "w"))); + var console = Opal.global.console; + + $writer = [typeof(process) === 'object' && typeof(process.stdout) === 'object' ? function(s){process.stdout.write(s)} : function(s){console.log(s)}]; + $send($$($nesting, 'STDOUT'), 'write_proc=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [typeof(process) === 'object' && typeof(process.stderr) === 'object' ? function(s){process.stderr.write(s)} : function(s){console.warn(s)}]; + $send($$($nesting, 'STDERR'), 'write_proc=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [function(s) { var p = prompt(); if (p !== null) return p + "\n"; return nil; }]; + $send($$($nesting, 'STDIN'), 'read_proc=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; +}; + +Opal.modules["opal/regexp_anchors"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module; + + Opal.add_stubs(['$new']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Opal'); + + var $nesting = [self].concat($parent_nesting); + + + Opal.const_set($nesting[0], 'REGEXP_START', "^"); + Opal.const_set($nesting[0], 'REGEXP_END', "$"); + Opal.const_set($nesting[0], 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + Opal.const_set($nesting[0], 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + Opal.const_set($nesting[0], 'INLINE_IDENTIFIER_REGEXP', $$($nesting, 'Regexp').$new("" + "[^" + ($$($nesting, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + ($$($nesting, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); + Opal.const_set($nesting[0], 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); + return Opal.const_set($nesting[0], 'CONST_NAME_REGEXP', $$($nesting, 'Regexp').$new("" + ($$($nesting, 'REGEXP_START')) + "(::)?[A-Z][^" + ($$($nesting, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + ($$($nesting, 'REGEXP_END')))); + })($nesting[0], $nesting) +}; + +Opal.modules["opal/mini"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$; + + Opal.add_stubs(['$require']); + + self.$require("opal/base"); + self.$require("corelib/nil"); + self.$require("corelib/boolean"); + self.$require("corelib/string"); + self.$require("corelib/comparable"); + self.$require("corelib/enumerable"); + self.$require("corelib/enumerator"); + self.$require("corelib/array"); + self.$require("corelib/hash"); + self.$require("corelib/number"); + self.$require("corelib/range"); + self.$require("corelib/proc"); + self.$require("corelib/method"); + self.$require("corelib/regexp"); + self.$require("corelib/variables"); + self.$require("corelib/io"); + return self.$require("opal/regexp_anchors"); +}; + +Opal.modules["corelib/main"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var $to_s$1, $include$2, $autoload$3, $using$4, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $send = Opal.send; + + Opal.add_stubs(['$include', '$autoload', '$raise']); + + Opal.defs(self, '$to_s', $to_s$1 = function $$to_s() { + var self = this; + + return "main" + }, $to_s$1.$$arity = 0); + Opal.defs(self, '$include', $include$2 = function $$include(mod) { + var self = this; + + return $$($nesting, 'Object').$include(mod) + }, $include$2.$$arity = 1); + Opal.defs(self, '$autoload', $autoload$3 = function $$autoload($a) { + var $post_args, args, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + return $send($$($nesting, 'Object'), 'autoload', Opal.to_a(args)); + }, $autoload$3.$$arity = -1); + return (Opal.defs(self, '$using', $using$4 = function $$using(mod) { + var self = this; + + return self.$raise("main.using is permitted only at toplevel") + }, $using$4.$$arity = 1), nil) && 'using'; +}; + +Opal.modules["corelib/kernel/format"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $coerce_to = Opal.coerce_to, $module = Opal.module, $truthy = Opal.truthy, $gvars = Opal.gvars, $alias = Opal.alias; + + Opal.add_stubs(['$==', '$length', '$respond_to?', '$[]', '$coerce_to?', '$nil?', '$to_a', '$raise', '$to_int', '$fetch', '$Integer', '$Float', '$to_ary', '$to_str', '$inspect', '$to_s']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Kernel'); + + var $nesting = [self].concat($parent_nesting), $Kernel_format$1; + + + + Opal.def(self, '$format', $Kernel_format$1 = function $$format(format_string, $a) { + var $post_args, args, self = this, $ret_or_1 = nil, ary = nil; + if ($gvars.DEBUG == null) $gvars.DEBUG = nil; + + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; + if ($truthy((function() {if ($truthy(($ret_or_1 = args.$length()['$=='](1)))) { + return args['$[]'](0)['$respond_to?']("to_ary") + } else { + return $ret_or_1 + }; return nil; })())) { + + ary = $$($nesting, 'Opal')['$coerce_to?'](args['$[]'](0), $$($nesting, 'Array'), "to_ary"); + if ($truthy(ary['$nil?']())) { + } else { + args = ary.$to_a() + };}; + + var result = '', + //used for slicing: + begin_slice = 0, + end_slice, + //used for iterating over the format string: + i, + len = format_string.length, + //used for processing field values: + arg, + str, + //used for processing %g and %G fields: + exponent, + //used for keeping track of width and precision: + width, + precision, + //used for holding temporary values: + tmp_num, + //used for processing %{} and %<> fileds: + hash_parameter_key, + closing_brace_char, + //used for processing %b, %B, %o, %x, and %X fields: + base_number, + base_prefix, + base_neg_zero_regex, + base_neg_zero_digit, + //used for processing arguments: + next_arg, + seq_arg_num = 1, + pos_arg_num = 0, + //used for keeping track of flags: + flags, + FNONE = 0, + FSHARP = 1, + FMINUS = 2, + FPLUS = 4, + FZERO = 8, + FSPACE = 16, + FWIDTH = 32, + FPREC = 64, + FPREC0 = 128; + + function CHECK_FOR_FLAGS() { + if (flags&FWIDTH) { self.$raise($$($nesting, 'ArgumentError'), "flag after width") } + if (flags&FPREC0) { self.$raise($$($nesting, 'ArgumentError'), "flag after precision") } + } + + function CHECK_FOR_WIDTH() { + if (flags&FWIDTH) { self.$raise($$($nesting, 'ArgumentError'), "width given twice") } + if (flags&FPREC0) { self.$raise($$($nesting, 'ArgumentError'), "width after precision") } + } + + function GET_NTH_ARG(num) { + if (num >= args.length) { self.$raise($$($nesting, 'ArgumentError'), "too few arguments") } + return args[num]; + } + + function GET_NEXT_ARG() { + switch (pos_arg_num) { + case -1: self.$raise($$($nesting, 'ArgumentError'), "" + "unnumbered(" + (seq_arg_num) + ") mixed with numbered") // raise + case -2: self.$raise($$($nesting, 'ArgumentError'), "" + "unnumbered(" + (seq_arg_num) + ") mixed with named") // raise + } + pos_arg_num = seq_arg_num++; + return GET_NTH_ARG(pos_arg_num - 1); + } + + function GET_POS_ARG(num) { + if (pos_arg_num > 0) { + self.$raise($$($nesting, 'ArgumentError'), "" + "numbered(" + (num) + ") after unnumbered(" + (pos_arg_num) + ")") + } + if (pos_arg_num === -2) { + self.$raise($$($nesting, 'ArgumentError'), "" + "numbered(" + (num) + ") after named") + } + if (num < 1) { + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid index - " + (num) + "$") + } + pos_arg_num = -1; + return GET_NTH_ARG(num - 1); + } + + function GET_ARG() { + return (next_arg === undefined ? GET_NEXT_ARG() : next_arg); + } + + function READ_NUM(label) { + var num, str = ''; + for (;; i++) { + if (i === len) { + self.$raise($$($nesting, 'ArgumentError'), "malformed format string - %*[0-9]") + } + if (format_string.charCodeAt(i) < 48 || format_string.charCodeAt(i) > 57) { + i--; + num = parseInt(str, 10) || 0; + if (num > 2147483647) { + self.$raise($$($nesting, 'ArgumentError'), "" + (label) + " too big") + } + return num; + } + str += format_string.charAt(i); + } + } + + function READ_NUM_AFTER_ASTER(label) { + var arg, num = READ_NUM(label); + if (format_string.charAt(i + 1) === '$') { + i++; + arg = GET_POS_ARG(num); + } else { + arg = GET_NEXT_ARG(); + } + return (arg).$to_int(); + } + + for (i = format_string.indexOf('%'); i !== -1; i = format_string.indexOf('%', i)) { + str = undefined; + + flags = FNONE; + width = -1; + precision = -1; + next_arg = undefined; + + end_slice = i; + + i++; + + switch (format_string.charAt(i)) { + case '%': + begin_slice = i; + // no-break + case '': + case '\n': + case '\0': + i++; + continue; + } + + format_sequence: for (; i < len; i++) { + switch (format_string.charAt(i)) { + + case ' ': + CHECK_FOR_FLAGS(); + flags |= FSPACE; + continue format_sequence; + + case '#': + CHECK_FOR_FLAGS(); + flags |= FSHARP; + continue format_sequence; + + case '+': + CHECK_FOR_FLAGS(); + flags |= FPLUS; + continue format_sequence; + + case '-': + CHECK_FOR_FLAGS(); + flags |= FMINUS; + continue format_sequence; + + case '0': + CHECK_FOR_FLAGS(); + flags |= FZERO; + continue format_sequence; + + case '1': + case '2': + case '3': + case '4': + case '5': + case '6': + case '7': + case '8': + case '9': + tmp_num = READ_NUM('width'); + if (format_string.charAt(i + 1) === '$') { + if (i + 2 === len) { + str = '%'; + i++; + break format_sequence; + } + if (next_arg !== undefined) { + self.$raise($$($nesting, 'ArgumentError'), "" + "value given twice - %" + (tmp_num) + "$") + } + next_arg = GET_POS_ARG(tmp_num); + i++; + } else { + CHECK_FOR_WIDTH(); + flags |= FWIDTH; + width = tmp_num; + } + continue format_sequence; + + case '<': + case '\{': + closing_brace_char = (format_string.charAt(i) === '<' ? '>' : '\}'); + hash_parameter_key = ''; + + i++; + + for (;; i++) { + if (i === len) { + self.$raise($$($nesting, 'ArgumentError'), "malformed name - unmatched parenthesis") + } + if (format_string.charAt(i) === closing_brace_char) { + + if (pos_arg_num > 0) { + self.$raise($$($nesting, 'ArgumentError'), "" + "named " + (hash_parameter_key) + " after unnumbered(" + (pos_arg_num) + ")") + } + if (pos_arg_num === -1) { + self.$raise($$($nesting, 'ArgumentError'), "" + "named " + (hash_parameter_key) + " after numbered") + } + pos_arg_num = -2; + + if (args[0] === undefined || !args[0].$$is_hash) { + self.$raise($$($nesting, 'ArgumentError'), "one hash required") + } + + next_arg = (args[0]).$fetch(hash_parameter_key); + + if (closing_brace_char === '>') { + continue format_sequence; + } else { + str = next_arg.toString(); + if (precision !== -1) { str = str.slice(0, precision); } + if (flags&FMINUS) { + while (str.length < width) { str = str + ' '; } + } else { + while (str.length < width) { str = ' ' + str; } + } + break format_sequence; + } + } + hash_parameter_key += format_string.charAt(i); + } + // raise + + case '*': + i++; + CHECK_FOR_WIDTH(); + flags |= FWIDTH; + width = READ_NUM_AFTER_ASTER('width'); + if (width < 0) { + flags |= FMINUS; + width = -width; + } + continue format_sequence; + + case '.': + if (flags&FPREC0) { + self.$raise($$($nesting, 'ArgumentError'), "precision given twice") + } + flags |= FPREC|FPREC0; + precision = 0; + i++; + if (format_string.charAt(i) === '*') { + i++; + precision = READ_NUM_AFTER_ASTER('precision'); + if (precision < 0) { + flags &= ~FPREC; + } + continue format_sequence; + } + precision = READ_NUM('precision'); + continue format_sequence; + + case 'd': + case 'i': + case 'u': + arg = self.$Integer(GET_ARG()); + if (arg >= 0) { + str = arg.toString(); + while (str.length < precision) { str = '0' + str; } + if (flags&FMINUS) { + if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } + while (str.length < width) { str = str + ' '; } + } else { + if (flags&FZERO && precision === -1) { + while (str.length < width - ((flags&FPLUS || flags&FSPACE) ? 1 : 0)) { str = '0' + str; } + if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } + } else { + if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } + while (str.length < width) { str = ' ' + str; } + } + } + } else { + str = (-arg).toString(); + while (str.length < precision) { str = '0' + str; } + if (flags&FMINUS) { + str = '-' + str; + while (str.length < width) { str = str + ' '; } + } else { + if (flags&FZERO && precision === -1) { + while (str.length < width - 1) { str = '0' + str; } + str = '-' + str; + } else { + str = '-' + str; + while (str.length < width) { str = ' ' + str; } + } + } + } + break format_sequence; + + case 'b': + case 'B': + case 'o': + case 'x': + case 'X': + switch (format_string.charAt(i)) { + case 'b': + case 'B': + base_number = 2; + base_prefix = '0b'; + base_neg_zero_regex = /^1+/; + base_neg_zero_digit = '1'; + break; + case 'o': + base_number = 8; + base_prefix = '0'; + base_neg_zero_regex = /^3?7+/; + base_neg_zero_digit = '7'; + break; + case 'x': + case 'X': + base_number = 16; + base_prefix = '0x'; + base_neg_zero_regex = /^f+/; + base_neg_zero_digit = 'f'; + break; + } + arg = self.$Integer(GET_ARG()); + if (arg >= 0) { + str = arg.toString(base_number); + while (str.length < precision) { str = '0' + str; } + if (flags&FMINUS) { + if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } + if (flags&FSHARP && arg !== 0) { str = base_prefix + str; } + while (str.length < width) { str = str + ' '; } + } else { + if (flags&FZERO && precision === -1) { + while (str.length < width - ((flags&FPLUS || flags&FSPACE) ? 1 : 0) - ((flags&FSHARP && arg !== 0) ? base_prefix.length : 0)) { str = '0' + str; } + if (flags&FSHARP && arg !== 0) { str = base_prefix + str; } + if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } + } else { + if (flags&FSHARP && arg !== 0) { str = base_prefix + str; } + if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } + while (str.length < width) { str = ' ' + str; } + } + } + } else { + if (flags&FPLUS || flags&FSPACE) { + str = (-arg).toString(base_number); + while (str.length < precision) { str = '0' + str; } + if (flags&FMINUS) { + if (flags&FSHARP) { str = base_prefix + str; } + str = '-' + str; + while (str.length < width) { str = str + ' '; } + } else { + if (flags&FZERO && precision === -1) { + while (str.length < width - 1 - (flags&FSHARP ? 2 : 0)) { str = '0' + str; } + if (flags&FSHARP) { str = base_prefix + str; } + str = '-' + str; + } else { + if (flags&FSHARP) { str = base_prefix + str; } + str = '-' + str; + while (str.length < width) { str = ' ' + str; } + } + } + } else { + str = (arg >>> 0).toString(base_number).replace(base_neg_zero_regex, base_neg_zero_digit); + while (str.length < precision - 2) { str = base_neg_zero_digit + str; } + if (flags&FMINUS) { + str = '..' + str; + if (flags&FSHARP) { str = base_prefix + str; } + while (str.length < width) { str = str + ' '; } + } else { + if (flags&FZERO && precision === -1) { + while (str.length < width - 2 - (flags&FSHARP ? base_prefix.length : 0)) { str = base_neg_zero_digit + str; } + str = '..' + str; + if (flags&FSHARP) { str = base_prefix + str; } + } else { + str = '..' + str; + if (flags&FSHARP) { str = base_prefix + str; } + while (str.length < width) { str = ' ' + str; } + } + } + } + } + if (format_string.charAt(i) === format_string.charAt(i).toUpperCase()) { + str = str.toUpperCase(); + } + break format_sequence; + + case 'f': + case 'e': + case 'E': + case 'g': + case 'G': + arg = self.$Float(GET_ARG()); + if (arg >= 0 || isNaN(arg)) { + if (arg === Infinity) { + str = 'Inf'; + } else { + switch (format_string.charAt(i)) { + case 'f': + str = arg.toFixed(precision === -1 ? 6 : precision); + break; + case 'e': + case 'E': + str = arg.toExponential(precision === -1 ? 6 : precision); + break; + case 'g': + case 'G': + str = arg.toExponential(); + exponent = parseInt(str.split('e')[1], 10); + if (!(exponent < -4 || exponent >= (precision === -1 ? 6 : precision))) { + str = arg.toPrecision(precision === -1 ? (flags&FSHARP ? 6 : undefined) : precision); + } + break; + } + } + if (flags&FMINUS) { + if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } + while (str.length < width) { str = str + ' '; } + } else { + if (flags&FZERO && arg !== Infinity && !isNaN(arg)) { + while (str.length < width - ((flags&FPLUS || flags&FSPACE) ? 1 : 0)) { str = '0' + str; } + if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } + } else { + if (flags&FPLUS || flags&FSPACE) { str = (flags&FPLUS ? '+' : ' ') + str; } + while (str.length < width) { str = ' ' + str; } + } + } + } else { + if (arg === -Infinity) { + str = 'Inf'; + } else { + switch (format_string.charAt(i)) { + case 'f': + str = (-arg).toFixed(precision === -1 ? 6 : precision); + break; + case 'e': + case 'E': + str = (-arg).toExponential(precision === -1 ? 6 : precision); + break; + case 'g': + case 'G': + str = (-arg).toExponential(); + exponent = parseInt(str.split('e')[1], 10); + if (!(exponent < -4 || exponent >= (precision === -1 ? 6 : precision))) { + str = (-arg).toPrecision(precision === -1 ? (flags&FSHARP ? 6 : undefined) : precision); + } + break; + } + } + if (flags&FMINUS) { + str = '-' + str; + while (str.length < width) { str = str + ' '; } + } else { + if (flags&FZERO && arg !== -Infinity) { + while (str.length < width - 1) { str = '0' + str; } + str = '-' + str; + } else { + str = '-' + str; + while (str.length < width) { str = ' ' + str; } + } + } + } + if (format_string.charAt(i) === format_string.charAt(i).toUpperCase() && arg !== Infinity && arg !== -Infinity && !isNaN(arg)) { + str = str.toUpperCase(); + } + str = str.replace(/([eE][-+]?)([0-9])$/, '$10$2'); + break format_sequence; + + case 'a': + case 'A': + // Not implemented because there are no specs for this field type. + self.$raise($$($nesting, 'NotImplementedError'), "`A` and `a` format field types are not implemented in Opal yet") + // raise + + case 'c': + arg = GET_ARG(); + if ((arg)['$respond_to?']("to_ary")) { arg = (arg).$to_ary()[0]; } + if ((arg)['$respond_to?']("to_str")) { + str = (arg).$to_str(); + } else { + str = String.fromCharCode($coerce_to(arg, $$($nesting, 'Integer'), 'to_int')); + } + if (str.length !== 1) { + self.$raise($$($nesting, 'ArgumentError'), "%c requires a character") + } + if (flags&FMINUS) { + while (str.length < width) { str = str + ' '; } + } else { + while (str.length < width) { str = ' ' + str; } + } + break format_sequence; + + case 'p': + str = (GET_ARG()).$inspect(); + if (precision !== -1) { str = str.slice(0, precision); } + if (flags&FMINUS) { + while (str.length < width) { str = str + ' '; } + } else { + while (str.length < width) { str = ' ' + str; } + } + break format_sequence; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/variables"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $gvars = Opal.gvars, $hash2 = Opal.hash2; + case 's': + str = (GET_ARG()).$to_s(); + if (precision !== -1) { str = str.slice(0, precision); } + if (flags&FMINUS) { + while (str.length < width) { str = str + ' '; } + } else { + while (str.length < width) { str = ' ' + str; } + } + break format_sequence; - Opal.add_stubs(['$new']); - - $gvars['&'] = $gvars['~'] = $gvars['`'] = $gvars["'"] = nil; - $gvars.LOADED_FEATURES = ($gvars["\""] = Opal.loaded_features); - $gvars.LOAD_PATH = ($gvars[":"] = []); - $gvars["/"] = "\n"; - $gvars[","] = nil; - Opal.const_set($nesting[0], 'ARGV', []); - Opal.const_set($nesting[0], 'ARGF', Opal.const_get_relative($nesting, 'Object').$new()); - Opal.const_set($nesting[0], 'ENV', $hash2([], {})); - $gvars.VERBOSE = false; - $gvars.DEBUG = false; - return ($gvars.SAFE = 0); -}; + default: + self.$raise($$($nesting, 'ArgumentError'), "" + "malformed format string - %" + (format_string.charAt(i))) + } + } -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/regexp_anchors"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module; + if (str === undefined) { + self.$raise($$($nesting, 'ArgumentError'), "malformed format string - %") + } - Opal.add_stubs(['$==', '$new']); - return (function($base, $parent_nesting) { - var $Opal, self = $Opal = $module($base, 'Opal'); + result += format_string.slice(begin_slice, end_slice) + str; + begin_slice = i + 1; + } - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + if ($gvars.DEBUG && pos_arg_num >= 0 && seq_arg_num < args.length) { + self.$raise($$($nesting, 'ArgumentError'), "too many arguments for format string") + } - - Opal.const_set($nesting[0], 'REGEXP_START', (function() {if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - return "^" - } else { - return nil - }; return nil; })()); - Opal.const_set($nesting[0], 'REGEXP_END', (function() {if (Opal.const_get_relative($nesting, 'RUBY_ENGINE')['$==']("opal")) { - return "$" - } else { - return nil - }; return nil; })()); - Opal.const_set($nesting[0], 'FORBIDDEN_STARTING_IDENTIFIER_CHARS', "\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'FORBIDDEN_ENDING_IDENTIFIER_CHARS', "\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'INLINE_IDENTIFIER_REGEXP', Opal.const_get_relative($nesting, 'Regexp').$new("" + "[^" + (Opal.const_get_relative($nesting, 'FORBIDDEN_STARTING_IDENTIFIER_CHARS')) + "]*[^" + (Opal.const_get_relative($nesting, 'FORBIDDEN_ENDING_IDENTIFIER_CHARS')) + "]")); - Opal.const_set($nesting[0], 'FORBIDDEN_CONST_NAME_CHARS', "\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"); - Opal.const_set($nesting[0], 'CONST_NAME_REGEXP', Opal.const_get_relative($nesting, 'Regexp').$new("" + (Opal.const_get_relative($nesting, 'REGEXP_START')) + "(::)?[A-Z][^" + (Opal.const_get_relative($nesting, 'FORBIDDEN_CONST_NAME_CHARS')) + "]*" + (Opal.const_get_relative($nesting, 'REGEXP_END')))); + return result + format_string.slice(begin_slice); + ; + }, $Kernel_format$1.$$arity = -2); + return $alias(self, "sprintf", "format"); })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["opal/mini"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; - - Opal.add_stubs(['$require']); - - self.$require("opal/base"); - self.$require("corelib/nil"); - self.$require("corelib/boolean"); - self.$require("corelib/string"); - self.$require("corelib/comparable"); - self.$require("corelib/enumerable"); - self.$require("corelib/enumerator"); - self.$require("corelib/array"); - self.$require("corelib/hash"); - self.$require("corelib/number"); - self.$require("corelib/range"); - self.$require("corelib/proc"); - self.$require("corelib/method"); - self.$require("corelib/regexp"); - self.$require("corelib/variables"); - return self.$require("opal/regexp_anchors"); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/string/inheritance"] = function(Opal) { +Opal.modules["corelib/string/encoding"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - function $rb_times(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); + function $rb_lt(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $send = Opal.send, $truthy = Opal.truthy, $gvars = Opal.gvars; + var $$14, $$17, $$20, $$22, $$25, $$27, self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias, $writer = nil; - Opal.add_stubs(['$require', '$new', '$allocate', '$initialize', '$to_proc', '$__send__', '$class', '$clone', '$respond_to?', '$==', '$to_s', '$inspect', '$+', '$*', '$map', '$split', '$enum_for', '$each_line', '$to_a', '$%', '$-']); + Opal.add_stubs(['$require', '$+', '$[]', '$clone', '$initialize', '$new', '$instance_eval', '$to_proc', '$each', '$const_set', '$tr', '$==', '$default_external', '$attr_accessor', '$singleton_class', '$attr_reader', '$raise', '$register', '$length', '$bytes', '$force_encoding', '$dup', '$bytesize', '$enum_for', '$each_byte', '$to_a', '$each_char', '$each_codepoint', '$coerce_to!', '$find', '$<', '$default_external=', '$-']); self.$require("corelib/string"); (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_inherited_1; - - return Opal.defs(self, '$inherited', TMP_String_inherited_1 = function $$inherited(klass) { - var self = this, replace = nil; - - - replace = Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'String'), 'Wrapper')); - - klass.$$proto = replace.$$proto; - klass.$$proto.$$class = klass; - klass.$$alloc = replace.$$alloc; - klass.$$parent = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'String'), 'Wrapper'); - - klass.$allocate = replace.$allocate; - klass.$new = replace.$new; - ; - }, TMP_String_inherited_1.$$arity = 1) - })($nesting[0], null, $nesting); - return (function($base, $super, $parent_nesting) { - function $Wrapper(){}; - var self = $Wrapper = $klass($base, $super, 'Wrapper', $Wrapper); + var self = $klass($base, $super, 'Encoding'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Wrapper_allocate_2, TMP_Wrapper_new_3, TMP_Wrapper_$$_4, TMP_Wrapper_initialize_5, TMP_Wrapper_method_missing_6, TMP_Wrapper_initialize_copy_7, TMP_Wrapper_respond_to$q_8, TMP_Wrapper_$eq$eq_9, TMP_Wrapper_to_s_10, TMP_Wrapper_inspect_11, TMP_Wrapper_$_12, TMP_Wrapper_$_13, TMP_Wrapper_split_15, TMP_Wrapper_replace_16, TMP_Wrapper_each_line_17, TMP_Wrapper_lines_19, TMP_Wrapper_$_20, TMP_Wrapper_instance_variables_21; + var $nesting = [self].concat($parent_nesting), $Encoding_register$1, $Encoding_find$3, $Encoding_initialize$4, $Encoding_ascii_compatible$ques$5, $Encoding_dummy$ques$6, $Encoding_binary$ques$7, $Encoding_to_s$8, $Encoding_inspect$9, $Encoding_charsize$10, $Encoding_each_char$11, $Encoding_each_byte$12, $Encoding_bytesize$13; - def.literal = nil; + self.$$prototype.ascii = self.$$prototype.dummy = self.$$prototype.name = nil; - def.$$is_string = true; - Opal.defs(self, '$allocate', TMP_Wrapper_allocate_2 = function $$allocate(string) { - var self = this, $iter = TMP_Wrapper_allocate_2.$$p, $yield = $iter || nil, obj = nil; + Opal.defs(self, '$register', $Encoding_register$1 = function $$register(name, options) { + var $iter = $Encoding_register$1.$$p, block = $iter || nil, $$2, self = this, names = nil, $ret_or_1 = nil, ascii = nil, $ret_or_2 = nil, dummy = nil, $ret_or_3 = nil, encoding = nil, register = nil; - if (string == null) { - string = ""; - } - if ($iter) TMP_Wrapper_allocate_2.$$p = null; + if ($iter) $Encoding_register$1.$$p = null; - obj = $send(self, Opal.find_super_dispatcher(self, 'allocate', TMP_Wrapper_allocate_2, false, $Wrapper), [], null); - obj.literal = string; - return obj; - }, TMP_Wrapper_allocate_2.$$arity = -1); - Opal.defs(self, '$new', TMP_Wrapper_new_3 = function($a_rest) { - var self = this, args, $iter = TMP_Wrapper_new_3.$$p, block = $iter || nil, obj = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Wrapper_new_3.$$p = null; - obj = self.$allocate(); - $send(obj, 'initialize', Opal.to_a(args), block.$to_proc()); - return obj; - }, TMP_Wrapper_new_3.$$arity = -1); - Opal.defs(self, '$[]', TMP_Wrapper_$$_4 = function($a_rest) { - var self = this, objects; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - objects = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - objects[$arg_idx - 0] = arguments[$arg_idx]; - } - return self.$allocate(objects) - }, TMP_Wrapper_$$_4.$$arity = -1); - - Opal.defn(self, '$initialize', TMP_Wrapper_initialize_5 = function $$initialize(string) { - var self = this; - - if (string == null) { - string = ""; - } - return (self.literal = string) - }, TMP_Wrapper_initialize_5.$$arity = -1); - - Opal.defn(self, '$method_missing', TMP_Wrapper_method_missing_6 = function $$method_missing($a_rest) { - var self = this, args, $iter = TMP_Wrapper_method_missing_6.$$p, block = $iter || nil, result = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($iter) TMP_Wrapper_method_missing_6.$$p = null; + if ($iter) $Encoding_register$1.$$p = null;; - result = $send(self.literal, '__send__', Opal.to_a(args), block.$to_proc()); - if ($truthy(result.$$is_string != null)) { - if ($truthy(result == self.literal)) { - return self - } else { - return self.$class().$allocate(result) - } - } else { - return result + if (options == null) { + options = $hash2([], {}); }; - }, TMP_Wrapper_method_missing_6.$$arity = -1); - - Opal.defn(self, '$initialize_copy', TMP_Wrapper_initialize_copy_7 = function $$initialize_copy(other) { - var self = this; - - return (self.literal = (other.literal).$clone()) - }, TMP_Wrapper_initialize_copy_7.$$arity = 1); - - Opal.defn(self, '$respond_to?', TMP_Wrapper_respond_to$q_8 = function(name, $a_rest) { - var $b, self = this, $iter = TMP_Wrapper_respond_to$q_8.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) TMP_Wrapper_respond_to$q_8.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return ($truthy($b = $send(self, Opal.find_super_dispatcher(self, 'respond_to?', TMP_Wrapper_respond_to$q_8, false), $zuper, $iter)) ? $b : self.literal['$respond_to?'](name)) - }, TMP_Wrapper_respond_to$q_8.$$arity = -2); - - Opal.defn(self, '$==', TMP_Wrapper_$eq$eq_9 = function(other) { - var self = this; - - return self.literal['$=='](other) - }, TMP_Wrapper_$eq$eq_9.$$arity = 1); - Opal.alias(self, "eql?", "=="); - Opal.alias(self, "===", "=="); - - Opal.defn(self, '$to_s', TMP_Wrapper_to_s_10 = function $$to_s() { - var self = this; - - return self.literal.$to_s() - }, TMP_Wrapper_to_s_10.$$arity = 0); - Opal.alias(self, "to_str", "to_s"); - - Opal.defn(self, '$inspect', TMP_Wrapper_inspect_11 = function $$inspect() { - var self = this; - - return self.literal.$inspect() - }, TMP_Wrapper_inspect_11.$$arity = 0); - - Opal.defn(self, '$+', TMP_Wrapper_$_12 = function(other) { - var self = this; - - return $rb_plus(self.literal, other) - }, TMP_Wrapper_$_12.$$arity = 1); - - Opal.defn(self, '$*', TMP_Wrapper_$_13 = function(other) { - var self = this; - - - var result = $rb_times(self.literal, other); - - if (result.$$is_string) { - return self.$class().$allocate(result) - } - else { - return result; - } - - }, TMP_Wrapper_$_13.$$arity = 1); - - Opal.defn(self, '$split', TMP_Wrapper_split_15 = function $$split(pattern, limit) { - var TMP_14, self = this; - - return $send(self.literal.$split(pattern, limit), 'map', [], (TMP_14 = function(str){var self = TMP_14.$$s || this; -if (str == null) str = nil; - return self.$class().$allocate(str)}, TMP_14.$$s = self, TMP_14.$$arity = 1, TMP_14)) - }, TMP_Wrapper_split_15.$$arity = -1); - - Opal.defn(self, '$replace', TMP_Wrapper_replace_16 = function $$replace(string) { - var self = this; - - return (self.literal = string) - }, TMP_Wrapper_replace_16.$$arity = 1); - - Opal.defn(self, '$each_line', TMP_Wrapper_each_line_17 = function $$each_line(separator) { - var TMP_18, self = this, $iter = TMP_Wrapper_each_line_17.$$p, $yield = $iter || nil; - if ($gvars["/"] == null) $gvars["/"] = nil; - - if (separator == null) { - separator = $gvars["/"]; - } - if ($iter) TMP_Wrapper_each_line_17.$$p = null; - - if (($yield !== nil)) { - } else { - return self.$enum_for("each_line", separator) + names = $rb_plus([name], (function() {if ($truthy(($ret_or_1 = options['$[]']("aliases")))) { + return $ret_or_1 + } else { + return [] + }; return nil; })()); + ascii = (function() {if ($truthy(($ret_or_2 = options['$[]']("ascii")))) { + return $ret_or_2 + } else { + return false + }; return nil; })(); + dummy = (function() {if ($truthy(($ret_or_3 = options['$[]']("dummy")))) { + return $ret_or_3 + } else { + return false + }; return nil; })(); + if ($truthy(options['$[]']("inherits"))) { + + encoding = options['$[]']("inherits").$clone(); + encoding.$initialize(name, names, ascii, dummy); + } else { + encoding = self.$new(name, names, ascii, dummy) }; - return $send(self.literal, 'each_line', [separator], (TMP_18 = function(str){var self = TMP_18.$$s || this; -if (str == null) str = nil; - return Opal.yield1($yield, self.$class().$allocate(str));}, TMP_18.$$s = self, TMP_18.$$arity = 1, TMP_18)); - }, TMP_Wrapper_each_line_17.$$arity = -1); - - Opal.defn(self, '$lines', TMP_Wrapper_lines_19 = function $$lines(separator) { - var self = this, $iter = TMP_Wrapper_lines_19.$$p, block = $iter || nil, e = nil; - if ($gvars["/"] == null) $gvars["/"] = nil; + if ((block !== nil)) { + $send(encoding, 'instance_eval', [], block.$to_proc())}; + register = Opal.encodings; + return $send(names, 'each', [], ($$2 = function(encoding_name){var self = $$2.$$s == null ? this : $$2.$$s; - if (separator == null) { - separator = $gvars["/"]; - } - if ($iter) TMP_Wrapper_lines_19.$$p = null; - - e = $send(self, 'each_line', [separator], block.$to_proc()); - if ($truthy(block)) { - return self - } else { - return e.$to_a() - }; - }, TMP_Wrapper_lines_19.$$arity = -1); - - Opal.defn(self, '$%', TMP_Wrapper_$_20 = function(data) { + + + if (encoding_name == null) { + encoding_name = nil; + }; + self.$const_set(encoding_name.$tr("-", "_"), encoding); + return register[encoding_name] = encoding;}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + }, $Encoding_register$1.$$arity = -2); + Opal.defs(self, '$find', $Encoding_find$3 = function $$find(name) { var self = this; - return self.literal['$%'](data) - }, TMP_Wrapper_$_20.$$arity = 1); - return (Opal.defn(self, '$instance_variables', TMP_Wrapper_instance_variables_21 = function $$instance_variables() { - var self = this, $iter = TMP_Wrapper_instance_variables_21.$$p, $yield = $iter || nil, $zuper = nil, $zuper_i = nil, $zuper_ii = nil; - - if ($iter) TMP_Wrapper_instance_variables_21.$$p = null; - // Prepare super implicit arguments - for($zuper_i = 0, $zuper_ii = arguments.length, $zuper = new Array($zuper_ii); $zuper_i < $zuper_ii; $zuper_i++) { - $zuper[$zuper_i] = arguments[$zuper_i]; - } - return $rb_minus($send(self, Opal.find_super_dispatcher(self, 'instance_variables', TMP_Wrapper_instance_variables_21, false), $zuper, $iter), ["@literal"]) - }, TMP_Wrapper_instance_variables_21.$$arity = 0), nil) && 'instance_variables'; - })(Opal.const_get_relative($nesting, 'String'), null, $nesting); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/string/encoding"] = function(Opal) { - function $rb_plus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); - } - var TMP_12, TMP_15, TMP_18, TMP_21, TMP_24, self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; - - Opal.add_stubs(['$require', '$+', '$[]', '$new', '$to_proc', '$each', '$const_set', '$sub', '$==', '$default_external', '$upcase', '$raise', '$attr_accessor', '$attr_reader', '$register', '$length', '$bytes', '$to_a', '$each_byte', '$bytesize', '$enum_for', '$force_encoding', '$dup', '$coerce_to!', '$find', '$getbyte']); - - self.$require("corelib/string"); - (function($base, $super, $parent_nesting) { - function $Encoding(){}; - var self = $Encoding = $klass($base, $super, 'Encoding', $Encoding); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Encoding_register_1, TMP_Encoding_find_3, TMP_Encoding_initialize_4, TMP_Encoding_ascii_compatible$q_5, TMP_Encoding_dummy$q_6, TMP_Encoding_to_s_7, TMP_Encoding_inspect_8, TMP_Encoding_each_byte_9, TMP_Encoding_getbyte_10, TMP_Encoding_bytesize_11; - - def.ascii = def.dummy = def.name = nil; - - self["$$register"] = {}; - Opal.defs(self, '$register', TMP_Encoding_register_1 = function $$register(name, options) { - var $a, TMP_2, self = this, $iter = TMP_Encoding_register_1.$$p, block = $iter || nil, names = nil, encoding = nil, register = nil; - - if (options == null) { - options = $hash2([], {}); - } - if ($iter) TMP_Encoding_register_1.$$p = null; - - names = $rb_plus([name], ($truthy($a = options['$[]']("aliases")) ? $a : [])); - encoding = $send(Opal.const_get_relative($nesting, 'Class'), 'new', [self], block.$to_proc()).$new(name, names, ($truthy($a = options['$[]']("ascii")) ? $a : false), ($truthy($a = options['$[]']("dummy")) ? $a : false)); - register = self["$$register"]; - return $send(names, 'each', [], (TMP_2 = function(name){var self = TMP_2.$$s || this; -if (name == null) name = nil; - - self.$const_set(name.$sub("-", "_"), encoding); - return register["" + "$$" + (name)] = encoding;}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - }, TMP_Encoding_register_1.$$arity = -2); - Opal.defs(self, '$find', TMP_Encoding_find_3 = function $$find(name) { - var $a, self = this, register = nil, encoding = nil; - if (name['$==']("default_external")) { return self.$default_external()}; - register = self["$$register"]; - encoding = ($truthy($a = register["" + "$$" + (name)]) ? $a : register["" + "$$" + (name.$upcase())]); - if ($truthy(encoding)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "unknown encoding name - " + (name)) - }; - return encoding; - }, TMP_Encoding_find_3.$$arity = 1); - (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - return self.$attr_accessor("default_external") - })(Opal.get_singleton_class(self), $nesting); + return Opal.find_encoding(name);; + }, $Encoding_find$3.$$arity = 1); + self.$singleton_class().$attr_accessor("default_external"); self.$attr_reader("name", "names"); - Opal.defn(self, '$initialize', TMP_Encoding_initialize_4 = function $$initialize(name, names, ascii, dummy) { + Opal.def(self, '$initialize', $Encoding_initialize$4 = function $$initialize(name, names, ascii, dummy) { var self = this; @@ -17614,108 +20909,236 @@ if (name == null) name = nil; self.names = names; self.ascii = ascii; return (self.dummy = dummy); - }, TMP_Encoding_initialize_4.$$arity = 4); + }, $Encoding_initialize$4.$$arity = 4); - Opal.defn(self, '$ascii_compatible?', TMP_Encoding_ascii_compatible$q_5 = function() { + Opal.def(self, '$ascii_compatible?', $Encoding_ascii_compatible$ques$5 = function() { var self = this; return self.ascii - }, TMP_Encoding_ascii_compatible$q_5.$$arity = 0); + }, $Encoding_ascii_compatible$ques$5.$$arity = 0); - Opal.defn(self, '$dummy?', TMP_Encoding_dummy$q_6 = function() { + Opal.def(self, '$dummy?', $Encoding_dummy$ques$6 = function() { var self = this; return self.dummy - }, TMP_Encoding_dummy$q_6.$$arity = 0); + }, $Encoding_dummy$ques$6.$$arity = 0); + + Opal.def(self, '$binary?', $Encoding_binary$ques$7 = function() { + var self = this; + + return false + }, $Encoding_binary$ques$7.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Encoding_to_s_7 = function $$to_s() { + Opal.def(self, '$to_s', $Encoding_to_s$8 = function $$to_s() { var self = this; return self.name - }, TMP_Encoding_to_s_7.$$arity = 0); + }, $Encoding_to_s$8.$$arity = 0); - Opal.defn(self, '$inspect', TMP_Encoding_inspect_8 = function $$inspect() { + Opal.def(self, '$inspect', $Encoding_inspect$9 = function $$inspect() { var self = this; return "" + "#" - }, TMP_Encoding_inspect_8.$$arity = 0); + }, $Encoding_inspect$9.$$arity = 0); - Opal.defn(self, '$each_byte', TMP_Encoding_each_byte_9 = function $$each_byte($a_rest) { + Opal.def(self, '$charsize', $Encoding_charsize$10 = function $$charsize(string) { var self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Encoding_each_byte_9.$$arity = -1); + + var len = 0; + for (var i = 0, length = string.length; i < length; i++) { + var charcode = string.charCodeAt(i); + if (!(charcode >= 0xD800 && charcode <= 0xDBFF)) { + len++; + } + } + return len; - Opal.defn(self, '$getbyte', TMP_Encoding_getbyte_10 = function $$getbyte($a_rest) { - var self = this; + }, $Encoding_charsize$10.$$arity = 1); + + Opal.def(self, '$each_char', $Encoding_each_char$11 = function $$each_char(string) { + var $iter = $Encoding_each_char$11.$$p, block = $iter || nil, self = this; + + if ($iter) $Encoding_each_char$11.$$p = null; + + + if ($iter) $Encoding_each_char$11.$$p = null;; + + var low_surrogate = ""; + for (var i = 0, length = string.length; i < length; i++) { + var charcode = string.charCodeAt(i); + var chr = string.charAt(i); + if (charcode >= 0xDC00 && charcode <= 0xDFFF) { + low_surrogate = chr; + continue; + } + else if (charcode >= 0xD800 && charcode <= 0xDBFF) { + chr = low_surrogate + chr; + } + if (string.encoding.name != "UTF-8") { + chr = new String(chr); + chr.encoding = string.encoding; + } + Opal.yield1(block, chr); + } + ; + }, $Encoding_each_char$11.$$arity = 1); + + Opal.def(self, '$each_byte', $Encoding_each_byte$12 = function $$each_byte($a) { + var $post_args, $rest_arg, self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Encoding_getbyte_10.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return self.$raise($$($nesting, 'NotImplementedError')); + }, $Encoding_each_byte$12.$$arity = -1); - Opal.defn(self, '$bytesize', TMP_Encoding_bytesize_11 = function $$bytesize($a_rest) { - var self = this; + Opal.def(self, '$bytesize', $Encoding_bytesize$13 = function $$bytesize($a) { + var $post_args, $rest_arg, self = this; - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Encoding_bytesize_11.$$arity = -1); + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return self.$raise($$($nesting, 'NotImplementedError')); + }, $Encoding_bytesize$13.$$arity = -1); (function($base, $super, $parent_nesting) { - function $EncodingError(){}; - var self = $EncodingError = $klass($base, $super, 'EncodingError', $EncodingError); + var self = $klass($base, $super, 'EncodingError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'StandardError'), $nesting); + })($nesting[0], $$($nesting, 'StandardError'), $nesting); return (function($base, $super, $parent_nesting) { - function $CompatibilityError(){}; - var self = $CompatibilityError = $klass($base, $super, 'CompatibilityError', $CompatibilityError); + var self = $klass($base, $super, 'CompatibilityError'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return nil - })($nesting[0], Opal.const_get_relative($nesting, 'EncodingError'), $nesting); + })($nesting[0], $$($nesting, 'EncodingError'), $nesting); })($nesting[0], null, $nesting); - $send(Opal.const_get_relative($nesting, 'Encoding'), 'register', ["UTF-8", $hash2(["aliases", "ascii"], {"aliases": ["CP65001"], "ascii": true})], (TMP_12 = function(){var self = TMP_12.$$s || this, TMP_each_byte_13, TMP_bytesize_14; + $send($$($nesting, 'Encoding'), 'register', ["UTF-8", $hash2(["aliases", "ascii"], {"aliases": ["CP65001"], "ascii": true})], ($$14 = function(){var self = $$14.$$s == null ? this : $$14.$$s, $each_byte$15, $bytesize$16; - - Opal.def(self, '$each_byte', TMP_each_byte_13 = function $$each_byte(string) { - var self = this, $iter = TMP_each_byte_13.$$p, block = $iter || nil; + + Opal.def(self, '$each_byte', $each_byte$15 = function $$each_byte(string) { + var $iter = $each_byte$15.$$p, block = $iter || nil, self = this; - if ($iter) TMP_each_byte_13.$$p = null; + if ($iter) $each_byte$15.$$p = null; - for (var i = 0, length = string.length; i < length; i++) { - var code = string.charCodeAt(i); + + if ($iter) $each_byte$15.$$p = null;; + + // Taken from: https://github.com/feross/buffer/blob/f52dffd9df0445b93c0c9065c2f8f0f46b2c729a/index.js#L1954-L2032 + var units = Infinity; + var codePoint; + var length = string.length; + var leadSurrogate = null; + + for (var i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + + // is surrogate component + if (codePoint > 0xD7FF && codePoint < 0xE000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xDBFF) { + // unexpected trail + if ((units -= 3) > -1) { + Opal.yield1(block, 0xEF); + Opal.yield1(block, 0xBF); + Opal.yield1(block, 0xBD); + } + continue; + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) { + Opal.yield1(block, 0xEF); + Opal.yield1(block, 0xBF); + Opal.yield1(block, 0xBD); + } + continue; + } + + // valid lead + leadSurrogate = codePoint; + + continue; + } - if (code <= 0x7f) { - Opal.yield1(block, code); - } - else { - var encoded = encodeURIComponent(string.charAt(i)).substr(1).split('%'); + // 2 leads in a row + if (codePoint < 0xDC00) { + if ((units -= 3) > -1) { + Opal.yield1(block, 0xEF); + Opal.yield1(block, 0xBF); + Opal.yield1(block, 0xBD); + } + leadSurrogate = codePoint; + continue; + } - for (var j = 0, encoded_length = encoded.length; j < encoded_length; j++) { - Opal.yield1(block, parseInt(encoded[j], 16)); + // valid surrogate pair + codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000; + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) { + Opal.yield1(block, 0xEF); + Opal.yield1(block, 0xBF); + Opal.yield1(block, 0xBD); } } + + leadSurrogate = null; + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break; + Opal.yield1(block, codePoint); + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break; + Opal.yield1(block, codePoint >> 0x6 | 0xC0); + Opal.yield1(block, codePoint & 0x3F | 0x80); + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break; + Opal.yield1(block, codePoint >> 0xC | 0xE0); + Opal.yield1(block, codePoint >> 0x6 & 0x3F | 0x80); + Opal.yield1(block, codePoint & 0x3F | 0x80); + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break; + Opal.yield1(block, codePoint >> 0x12 | 0xF0); + Opal.yield1(block, codePoint >> 0xC & 0x3F | 0x80); + Opal.yield1(block, codePoint >> 0x6 & 0x3F | 0x80); + Opal.yield1(block, codePoint & 0x3F | 0x80); + } else { + // Invalid code point + } } - - }, TMP_each_byte_13.$$arity = 1); - return (Opal.def(self, '$bytesize', TMP_bytesize_14 = function $$bytesize(string) { + ; + }, $each_byte$15.$$arity = 1); + return (Opal.def(self, '$bytesize', $bytesize$16 = function $$bytesize(string) { var self = this; return string.$bytes().$length() - }, TMP_bytesize_14.$$arity = 1), nil) && 'bytesize';}, TMP_12.$$s = self, TMP_12.$$arity = 0, TMP_12)); - $send(Opal.const_get_relative($nesting, 'Encoding'), 'register', ["UTF-16LE"], (TMP_15 = function(){var self = TMP_15.$$s || this, TMP_each_byte_16, TMP_bytesize_17; + }, $bytesize$16.$$arity = 1), nil) && 'bytesize';}, $$14.$$s = self, $$14.$$arity = 0, $$14)); + $send($$($nesting, 'Encoding'), 'register', ["UTF-16LE"], ($$17 = function(){var self = $$17.$$s == null ? this : $$17.$$s, $each_byte$18, $bytesize$19; - - Opal.def(self, '$each_byte', TMP_each_byte_16 = function $$each_byte(string) { - var self = this, $iter = TMP_each_byte_16.$$p, block = $iter || nil; + + Opal.def(self, '$each_byte', $each_byte$18 = function $$each_byte(string) { + var $iter = $each_byte$18.$$p, block = $iter || nil, self = this; - if ($iter) TMP_each_byte_16.$$p = null; + if ($iter) $each_byte$18.$$p = null; + + + if ($iter) $each_byte$18.$$p = null;; for (var i = 0, length = string.length; i < length; i++) { var code = string.charCodeAt(i); @@ -17723,21 +21146,22 @@ if (name == null) name = nil; Opal.yield1(block, code & 0xff); Opal.yield1(block, code >> 8); } - - }, TMP_each_byte_16.$$arity = 1); - return (Opal.def(self, '$bytesize', TMP_bytesize_17 = function $$bytesize(string) { + ; + }, $each_byte$18.$$arity = 1); + return (Opal.def(self, '$bytesize', $bytesize$19 = function $$bytesize(string) { var self = this; - return string.$bytes().$length() - }, TMP_bytesize_17.$$arity = 1), nil) && 'bytesize';}, TMP_15.$$s = self, TMP_15.$$arity = 0, TMP_15)); - $send(Opal.const_get_relative($nesting, 'Encoding'), 'register', ["UTF-16BE"], (TMP_18 = function(){var self = TMP_18.$$s || this, TMP_each_byte_19, TMP_bytesize_20; + return string.length * 2; + }, $bytesize$19.$$arity = 1), nil) && 'bytesize';}, $$17.$$s = self, $$17.$$arity = 0, $$17)); + $send($$($nesting, 'Encoding'), 'register', ["UTF-16BE", $hash2(["inherits"], {"inherits": $$$($$($nesting, 'Encoding'), 'UTF_16LE')})], ($$20 = function(){var self = $$20.$$s == null ? this : $$20.$$s, $each_byte$21; - - - Opal.def(self, '$each_byte', TMP_each_byte_19 = function $$each_byte(string) { - var self = this, $iter = TMP_each_byte_19.$$p, block = $iter || nil; + return (Opal.def(self, '$each_byte', $each_byte$21 = function $$each_byte(string) { + var $iter = $each_byte$21.$$p, block = $iter || nil, self = this; - if ($iter) TMP_each_byte_19.$$p = null; + if ($iter) $each_byte$21.$$p = null; + + + if ($iter) $each_byte$21.$$p = null;; for (var i = 0, length = string.length; i < length; i++) { var code = string.charCodeAt(i); @@ -17745,161 +21169,316 @@ if (name == null) name = nil; Opal.yield1(block, code >> 8); Opal.yield1(block, code & 0xff); } + ; + }, $each_byte$21.$$arity = 1), nil) && 'each_byte'}, $$20.$$s = self, $$20.$$arity = 0, $$20)); + $send($$($nesting, 'Encoding'), 'register', ["UTF-32LE"], ($$22 = function(){var self = $$22.$$s == null ? this : $$22.$$s, $each_byte$23, $bytesize$24; + - }, TMP_each_byte_19.$$arity = 1); - return (Opal.def(self, '$bytesize', TMP_bytesize_20 = function $$bytesize(string) { + + Opal.def(self, '$each_byte', $each_byte$23 = function $$each_byte(string) { + var $iter = $each_byte$23.$$p, block = $iter || nil, self = this; + + if ($iter) $each_byte$23.$$p = null; + + + if ($iter) $each_byte$23.$$p = null;; + + for (var i = 0, length = string.length; i < length; i++) { + var code = string.charCodeAt(i); + + Opal.yield1(block, code & 0xff); + Opal.yield1(block, code >> 8); + Opal.yield1(block, 0); + Opal.yield1(block, 0); + } + ; + }, $each_byte$23.$$arity = 1); + return (Opal.def(self, '$bytesize', $bytesize$24 = function $$bytesize(string) { var self = this; - return string.$bytes().$length() - }, TMP_bytesize_20.$$arity = 1), nil) && 'bytesize';}, TMP_18.$$s = self, TMP_18.$$arity = 0, TMP_18)); - $send(Opal.const_get_relative($nesting, 'Encoding'), 'register', ["UTF-32LE"], (TMP_21 = function(){var self = TMP_21.$$s || this, TMP_each_byte_22, TMP_bytesize_23; + return string.length * 4; + }, $bytesize$24.$$arity = 1), nil) && 'bytesize';}, $$22.$$s = self, $$22.$$arity = 0, $$22)); + $send($$($nesting, 'Encoding'), 'register', ["UTF-32BE", $hash2(["inherits"], {"inherits": $$$($$($nesting, 'Encoding'), 'UTF_32LE')})], ($$25 = function(){var self = $$25.$$s == null ? this : $$25.$$s, $each_byte$26; - - - Opal.def(self, '$each_byte', TMP_each_byte_22 = function $$each_byte(string) { - var self = this, $iter = TMP_each_byte_22.$$p, block = $iter || nil; + return (Opal.def(self, '$each_byte', $each_byte$26 = function $$each_byte(string) { + var $iter = $each_byte$26.$$p, block = $iter || nil, self = this; - if ($iter) TMP_each_byte_22.$$p = null; + if ($iter) $each_byte$26.$$p = null; + + + if ($iter) $each_byte$26.$$p = null;; for (var i = 0, length = string.length; i < length; i++) { var code = string.charCodeAt(i); - Opal.yield1(block, code & 0xff); + Opal.yield1(block, 0); + Opal.yield1(block, 0); Opal.yield1(block, code >> 8); + Opal.yield1(block, code & 0xff); } + ; + }, $each_byte$26.$$arity = 1), nil) && 'each_byte'}, $$25.$$s = self, $$25.$$arity = 0, $$25)); + $send($$($nesting, 'Encoding'), 'register', ["ASCII-8BIT", $hash2(["aliases", "ascii"], {"aliases": ["BINARY"], "ascii": true})], ($$27 = function(){var self = $$27.$$s == null ? this : $$27.$$s, $each_char$28, $charsize$29, $each_byte$30, $bytesize$31, $binary$ques$32; + - }, TMP_each_byte_22.$$arity = 1); - return (Opal.def(self, '$bytesize', TMP_bytesize_23 = function $$bytesize(string) { - var self = this; + + Opal.def(self, '$each_char', $each_char$28 = function $$each_char(string) { + var $iter = $each_char$28.$$p, block = $iter || nil, self = this; - return string.$bytes().$length() - }, TMP_bytesize_23.$$arity = 1), nil) && 'bytesize';}, TMP_21.$$s = self, TMP_21.$$arity = 0, TMP_21)); - $send(Opal.const_get_relative($nesting, 'Encoding'), 'register', ["ASCII-8BIT", $hash2(["aliases", "ascii", "dummy"], {"aliases": ["BINARY", "US-ASCII", "ASCII"], "ascii": true, "dummy": true})], (TMP_24 = function(){var self = TMP_24.$$s || this, TMP_each_byte_25, TMP_bytesize_26; + if ($iter) $each_char$28.$$p = null; + + + if ($iter) $each_char$28.$$p = null;; + + for (var i = 0, length = string.length; i < length; i++) { + var chr = new String(string.charAt(i)); + chr.encoding = string.encoding; + Opal.yield1(block, chr); + } + ; + }, $each_char$28.$$arity = 1); + + Opal.def(self, '$charsize', $charsize$29 = function $$charsize(string) { + var self = this; - + return string.length; + }, $charsize$29.$$arity = 1); - Opal.def(self, '$each_byte', TMP_each_byte_25 = function $$each_byte(string) { - var self = this, $iter = TMP_each_byte_25.$$p, block = $iter || nil; + Opal.def(self, '$each_byte', $each_byte$30 = function $$each_byte(string) { + var $iter = $each_byte$30.$$p, block = $iter || nil, self = this; - if ($iter) TMP_each_byte_25.$$p = null; + if ($iter) $each_byte$30.$$p = null; + + + if ($iter) $each_byte$30.$$p = null;; for (var i = 0, length = string.length; i < length; i++) { var code = string.charCodeAt(i); Opal.yield1(block, code & 0xff); - Opal.yield1(block, code >> 8); } + ; + }, $each_byte$30.$$arity = 1); - }, TMP_each_byte_25.$$arity = 1); - return (Opal.def(self, '$bytesize', TMP_bytesize_26 = function $$bytesize(string) { + Opal.def(self, '$bytesize', $bytesize$31 = function $$bytesize(string) { var self = this; - return string.$bytes().$length() - }, TMP_bytesize_26.$$arity = 1), nil) && 'bytesize';}, TMP_24.$$s = self, TMP_24.$$arity = 0, TMP_24)); - return (function($base, $super, $parent_nesting) { - function $String(){}; - var self = $String = $klass($base, $super, 'String', $String); + return string.length; + }, $bytesize$31.$$arity = 1); + return (Opal.def(self, '$binary?', $binary$ques$32 = function() { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_String_bytes_27, TMP_String_bytesize_28, TMP_String_each_byte_29, TMP_String_encode_30, TMP_String_encoding_31, TMP_String_force_encoding_32, TMP_String_getbyte_33, TMP_String_valid_encoding$q_34; + return true + }, $binary$ques$32.$$arity = 0), nil) && 'binary?';}, $$27.$$s = self, $$27.$$arity = 0, $$27)); + $$($nesting, 'Encoding').$register("ISO-8859-1", $hash2(["aliases", "ascii", "inherits"], {"aliases": ["ISO8859-1"], "ascii": true, "inherits": $$$($$($nesting, 'Encoding'), 'ASCII_8BIT')})); + $$($nesting, 'Encoding').$register("US-ASCII", $hash2(["aliases", "ascii", "inherits"], {"aliases": ["ASCII"], "ascii": true, "inherits": $$$($$($nesting, 'Encoding'), 'ASCII_8BIT')})); + (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'String'); - def.encoding = nil; + var $nesting = [self].concat($parent_nesting), $String_b$33, $String_bytesize$34, $String_each_byte$35, $String_bytes$37, $String_each_char$38, $String_chars$40, $String_each_codepoint$41, $String_codepoints$42, $String_encode$43, $String_force_encoding$44, $String_getbyte$45, $String_initialize_copy$46, $String_length$47, $String_valid_encoding$ques$48; + + self.$$prototype.internal_encoding = self.$$prototype.bytes = self.$$prototype.encoding = nil; - String.prototype.encoding = Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Encoding'), 'UTF_16LE'); + self.$attr_reader("encoding"); + self.$attr_reader("internal_encoding"); + Opal.defineProperty(String.prototype, 'bytes', nil); + Opal.defineProperty(String.prototype, 'encoding', $$$($$($nesting, 'Encoding'), 'UTF_8')); + Opal.defineProperty(String.prototype, 'internal_encoding', $$$($$($nesting, 'Encoding'), 'UTF_8')); - Opal.defn(self, '$bytes', TMP_String_bytes_27 = function $$bytes() { + Opal.def(self, '$b', $String_b$33 = function $$b() { var self = this; - return self.$each_byte().$to_a() - }, TMP_String_bytes_27.$$arity = 0); + return self.$dup().$force_encoding("binary") + }, $String_b$33.$$arity = 0); - Opal.defn(self, '$bytesize', TMP_String_bytesize_28 = function $$bytesize() { + Opal.def(self, '$bytesize', $String_bytesize$34 = function $$bytesize() { var self = this; - return self.encoding.$bytesize(self) - }, TMP_String_bytesize_28.$$arity = 0); + return self.internal_encoding.$bytesize(self) + }, $String_bytesize$34.$$arity = 0); - Opal.defn(self, '$each_byte', TMP_String_each_byte_29 = function $$each_byte() { - var self = this, $iter = TMP_String_each_byte_29.$$p, block = $iter || nil; + Opal.def(self, '$each_byte', $String_each_byte$35 = function $$each_byte() { + var $iter = $String_each_byte$35.$$p, block = $iter || nil, $$36, self = this; - if ($iter) TMP_String_each_byte_29.$$p = null; + if ($iter) $String_each_byte$35.$$p = null; + + if ($iter) $String_each_byte$35.$$p = null;; if ((block !== nil)) { - } else { - return self.$enum_for("each_byte") + } else { + return $send(self, 'enum_for', ["each_byte"], ($$36 = function(){var self = $$36.$$s == null ? this : $$36.$$s; + + return self.$bytesize()}, $$36.$$s = self, $$36.$$arity = 0, $$36)) }; - $send(self.encoding, 'each_byte', [self], block.$to_proc()); + $send(self.internal_encoding, 'each_byte', [self], block.$to_proc()); return self; - }, TMP_String_each_byte_29.$$arity = 0); + }, $String_each_byte$35.$$arity = 0); - Opal.defn(self, '$encode', TMP_String_encode_30 = function $$encode(encoding) { - var self = this; + Opal.def(self, '$bytes', $String_bytes$37 = function $$bytes() { + var self = this, $ret_or_4 = nil; + + + + if (typeof self === 'string') { + return (new String(self)).$each_byte().$to_a(); + } + ; + self.bytes = (function() {if ($truthy(($ret_or_4 = self.bytes))) { + return $ret_or_4 + } else { + return self.$each_byte().$to_a() + }; return nil; })(); + return self.bytes.$dup(); + }, $String_bytes$37.$$arity = 0); + + Opal.def(self, '$each_char', $String_each_char$38 = function $$each_char() { + var $iter = $String_each_char$38.$$p, block = $iter || nil, $$39, self = this; + + if ($iter) $String_each_char$38.$$p = null; + + + if ($iter) $String_each_char$38.$$p = null;; + if ((block !== nil)) { + } else { + return $send(self, 'enum_for', ["each_char"], ($$39 = function(){var self = $$39.$$s == null ? this : $$39.$$s; + + return self.$length()}, $$39.$$s = self, $$39.$$arity = 0, $$39)) + }; + $send(self.encoding, 'each_char', [self], block.$to_proc()); + return self; + }, $String_each_char$38.$$arity = 0); + + Opal.def(self, '$chars', $String_chars$40 = function $$chars() { + var $iter = $String_chars$40.$$p, block = $iter || nil, self = this; + + if ($iter) $String_chars$40.$$p = null; + + + if ($iter) $String_chars$40.$$p = null;; + if ($truthy(block)) { + } else { + return self.$each_char().$to_a() + }; + return $send(self, 'each_char', [], block.$to_proc()); + }, $String_chars$40.$$arity = 0); + + Opal.def(self, '$each_codepoint', $String_each_codepoint$41 = function $$each_codepoint() { + var $iter = $String_each_codepoint$41.$$p, block = $iter || nil, self = this; + + if ($iter) $String_each_codepoint$41.$$p = null; + + + if ($iter) $String_each_codepoint$41.$$p = null;; + if ((block !== nil)) { + } else { + return self.$enum_for("each_codepoint") + }; + + for (var i = 0, length = self.length; i < length; i++) { + Opal.yield1(block, self.codePointAt(i)); + } + ; + return self; + }, $String_each_codepoint$41.$$arity = 0); + + Opal.def(self, '$codepoints', $String_codepoints$42 = function $$codepoints() { + var $iter = $String_codepoints$42.$$p, block = $iter || nil, self = this; - return self.$dup().$force_encoding(encoding) - }, TMP_String_encode_30.$$arity = 1); + if ($iter) $String_codepoints$42.$$p = null; + + + if ($iter) $String_codepoints$42.$$p = null;; + if ((block !== nil)) { + return $send(self, 'each_codepoint', [], block.$to_proc())}; + return self.$each_codepoint().$to_a(); + }, $String_codepoints$42.$$arity = 0); - Opal.defn(self, '$encoding', TMP_String_encoding_31 = function $$encoding() { + Opal.def(self, '$encode', $String_encode$43 = function $$encode(encoding) { var self = this; - return self.encoding - }, TMP_String_encoding_31.$$arity = 0); + return Opal.enc(self, encoding); + }, $String_encode$43.$$arity = 1); - Opal.defn(self, '$force_encoding', TMP_String_force_encoding_32 = function $$force_encoding(encoding) { + Opal.def(self, '$force_encoding', $String_force_encoding$44 = function $$force_encoding(encoding) { var self = this; - if (encoding === self.encoding) { return self; } + var str = self; - encoding = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](encoding, Opal.const_get_relative($nesting, 'String'), "to_s"); - encoding = Opal.const_get_relative($nesting, 'Encoding').$find(encoding); + if (encoding === str.encoding) { return str; } - if (encoding === self.encoding) { return self; } + encoding = $$($nesting, 'Opal')['$coerce_to!'](encoding, $$($nesting, 'String'), "to_s"); + encoding = $$($nesting, 'Encoding').$find(encoding); - self.encoding = encoding; - return self; + if (encoding === str.encoding) { return str; } + + str = Opal.set_encoding(str, encoding); + + return str; + + }, $String_force_encoding$44.$$arity = 1); + + Opal.def(self, '$getbyte', $String_getbyte$45 = function $$getbyte(idx) { + var self = this, string_bytes = nil; + + + string_bytes = self.$bytes(); + idx = $$($nesting, 'Opal')['$coerce_to!'](idx, $$($nesting, 'Integer'), "to_int"); + if ($truthy($rb_lt(string_bytes.$length(), idx))) { + return nil}; + return string_bytes['$[]'](idx); + }, $String_getbyte$45.$$arity = 1); - }, TMP_String_force_encoding_32.$$arity = 1); + Opal.def(self, '$initialize_copy', $String_initialize_copy$46 = function $$initialize_copy(other) { + var self = this; + + return "" + "\n" + " self.encoding = other.encoding;\n" + " self.internal_encoding = other.internal_encoding;\n" + " " + }, $String_initialize_copy$46.$$arity = 1); - Opal.defn(self, '$getbyte', TMP_String_getbyte_33 = function $$getbyte(idx) { + Opal.def(self, '$length', $String_length$47 = function $$length() { var self = this; - return self.encoding.$getbyte(self, idx) - }, TMP_String_getbyte_33.$$arity = 1); - return (Opal.defn(self, '$valid_encoding?', TMP_String_valid_encoding$q_34 = function() { + return self.length; + }, $String_length$47.$$arity = 0); + $alias(self, "size", "length"); + return (Opal.def(self, '$valid_encoding?', $String_valid_encoding$ques$48 = function() { var self = this; return true - }, TMP_String_valid_encoding$q_34.$$arity = 0), nil) && 'valid_encoding?'; + }, $String_valid_encoding$ques$48.$$arity = 0), nil) && 'valid_encoding?'; })($nesting[0], null, $nesting); + + $writer = [$$$($$($nesting, 'Encoding'), 'UTF_8')]; + $send($$($nesting, 'Encoding'), 'default_external=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];; }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/math"] = function(Opal) { +Opal.modules["corelib/math"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } function $rb_divide(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $module = Opal.module, $truthy = Opal.truthy; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $type_error = Opal.type_error, $module = Opal.module, $truthy = Opal.truthy; - Opal.add_stubs(['$new', '$raise', '$Float', '$type_error', '$Integer', '$module_function', '$checked', '$float!', '$===', '$gamma', '$-', '$integer!', '$/', '$infinite?']); + Opal.add_stubs(['$new', '$raise', '$Float', '$Integer', '$module_function', '$checked', '$float!', '$===', '$gamma', '$-', '$integer!', '$/', '$infinite?']); return (function($base, $parent_nesting) { - var $Math, self = $Math = $module($base, 'Math'); + var self = $module($base, 'Math'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Math_checked_1, TMP_Math_float$B_2, TMP_Math_integer$B_3, TMP_Math_acos_4, TMP_Math_acosh_5, TMP_Math_asin_6, TMP_Math_asinh_7, TMP_Math_atan_8, TMP_Math_atan2_9, TMP_Math_atanh_10, TMP_Math_cbrt_11, TMP_Math_cos_12, TMP_Math_cosh_13, TMP_Math_erf_14, TMP_Math_erfc_15, TMP_Math_exp_16, TMP_Math_frexp_17, TMP_Math_gamma_18, TMP_Math_hypot_19, TMP_Math_ldexp_20, TMP_Math_lgamma_21, TMP_Math_log_22, TMP_Math_log10_23, TMP_Math_log2_24, TMP_Math_sin_25, TMP_Math_sinh_26, TMP_Math_sqrt_27, TMP_Math_tan_28, TMP_Math_tanh_29; + var $nesting = [self].concat($parent_nesting), $Math_checked$1, $Math_float$excl$2, $Math_integer$excl$3, $Math_acos$4, $Math_acosh$5, $Math_asin$6, $Math_asinh$7, $Math_atan$8, $Math_atan2$9, $Math_atanh$10, $Math_cbrt$11, $Math_cos$12, $Math_cosh$13, $Math_erf$14, $Math_erfc$15, $Math_exp$16, $Math_frexp$17, $Math_gamma$18, $Math_hypot$19, $Math_ldexp$20, $Math_lgamma$21, $Math_log$22, $Math_log10$23, $Math_log2$24, $Math_sin$25, $Math_sinh$26, $Math_sqrt$27, $Math_tan$28, $Math_tanh$29; Opal.const_set($nesting[0], 'E', Math.E); Opal.const_set($nesting[0], 'PI', Math.PI); - Opal.const_set($nesting[0], 'DomainError', Opal.const_get_relative($nesting, 'Class').$new(Opal.const_get_relative($nesting, 'StandardError'))); - Opal.defs(self, '$checked', TMP_Math_checked_1 = function $$checked(method, $a_rest) { - var self = this, args; + Opal.const_set($nesting[0], 'DomainError', $$($nesting, 'Class').$new($$($nesting, 'StandardError'))); + Opal.defs(self, '$checked', $Math_checked$1 = function $$checked(method, $a) { + var $post_args, args, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } + + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + args = $post_args;; if (isNaN(args[0]) || (args.length == 2 && isNaN(args[1]))) { return NaN; @@ -17908,49 +21487,47 @@ Opal.modules["corelib/math"] = function(Opal) { var result = Math[method].apply(null, args); if (isNaN(result)) { - self.$raise(Opal.const_get_relative($nesting, 'DomainError'), "" + "Numerical argument is out of domain - \"" + (method) + "\""); + self.$raise($$($nesting, 'DomainError'), "" + "Numerical argument is out of domain - \"" + (method) + "\""); } return result; - - }, TMP_Math_checked_1.$$arity = -2); - Opal.defs(self, '$float!', TMP_Math_float$B_2 = function(value) { + ; + }, $Math_checked$1.$$arity = -2); + Opal.defs(self, '$float!', $Math_float$excl$2 = function(value) { var self = this; - try { return self.$Float(value) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'ArgumentError')])) { + if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) { try { - return self.$raise(Opal.const_get_relative($nesting, 'Opal').$type_error(value, Opal.const_get_relative($nesting, 'Float'))) - } finally { Opal.pop_exception() } + return self.$raise($type_error(value, $$($nesting, 'Float'))) + } finally { Opal.pop_exception(); } } else { throw $err; } - }; - }, TMP_Math_float$B_2.$$arity = 1); - Opal.defs(self, '$integer!', TMP_Math_integer$B_3 = function(value) { + } + }, $Math_float$excl$2.$$arity = 1); + Opal.defs(self, '$integer!', $Math_integer$excl$3 = function(value) { var self = this; - try { return self.$Integer(value) } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'ArgumentError')])) { + if (Opal.rescue($err, [$$($nesting, 'ArgumentError')])) { try { - return self.$raise(Opal.const_get_relative($nesting, 'Opal').$type_error(value, Opal.const_get_relative($nesting, 'Integer'))) - } finally { Opal.pop_exception() } + return self.$raise($type_error(value, $$($nesting, 'Integer'))) + } finally { Opal.pop_exception(); } } else { throw $err; } - }; - }, TMP_Math_integer$B_3.$$arity = 1); + } + }, $Math_integer$excl$3.$$arity = 1); self.$module_function(); - Opal.defn(self, '$acos', TMP_Math_acos_4 = function $$acos(x) { + Opal.def(self, '$acos', $Math_acos$4 = function $$acos(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("acos", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_acos_4.$$arity = 1); + return $$($nesting, 'Math').$checked("acos", $$($nesting, 'Math')['$float!'](x)) + }, $Math_acos$4.$$arity = 1); if ($truthy((typeof(Math.acosh) !== "undefined"))) { - } else { + } else { Math.acosh = function(x) { return Math.log(x + Math.sqrt(x * x - 1)); @@ -17958,19 +21535,19 @@ Opal.modules["corelib/math"] = function(Opal) { }; - Opal.defn(self, '$acosh', TMP_Math_acosh_5 = function $$acosh(x) { + Opal.def(self, '$acosh', $Math_acosh$5 = function $$acosh(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("acosh", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_acosh_5.$$arity = 1); + return $$($nesting, 'Math').$checked("acosh", $$($nesting, 'Math')['$float!'](x)) + }, $Math_acosh$5.$$arity = 1); - Opal.defn(self, '$asin', TMP_Math_asin_6 = function $$asin(x) { + Opal.def(self, '$asin', $Math_asin$6 = function $$asin(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("asin", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_asin_6.$$arity = 1); + return $$($nesting, 'Math').$checked("asin", $$($nesting, 'Math')['$float!'](x)) + }, $Math_asin$6.$$arity = 1); if ($truthy((typeof(Math.asinh) !== "undefined"))) { - } else { + } else { Math.asinh = function(x) { return Math.log(x + Math.sqrt(x * x + 1)) @@ -17978,25 +21555,25 @@ Opal.modules["corelib/math"] = function(Opal) { }; - Opal.defn(self, '$asinh', TMP_Math_asinh_7 = function $$asinh(x) { + Opal.def(self, '$asinh', $Math_asinh$7 = function $$asinh(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("asinh", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_asinh_7.$$arity = 1); + return $$($nesting, 'Math').$checked("asinh", $$($nesting, 'Math')['$float!'](x)) + }, $Math_asinh$7.$$arity = 1); - Opal.defn(self, '$atan', TMP_Math_atan_8 = function $$atan(x) { + Opal.def(self, '$atan', $Math_atan$8 = function $$atan(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("atan", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_atan_8.$$arity = 1); + return $$($nesting, 'Math').$checked("atan", $$($nesting, 'Math')['$float!'](x)) + }, $Math_atan$8.$$arity = 1); - Opal.defn(self, '$atan2', TMP_Math_atan2_9 = function $$atan2(y, x) { + Opal.def(self, '$atan2', $Math_atan2$9 = function $$atan2(y, x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("atan2", Opal.const_get_relative($nesting, 'Math')['$float!'](y), Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_atan2_9.$$arity = 2); + return $$($nesting, 'Math').$checked("atan2", $$($nesting, 'Math')['$float!'](y), $$($nesting, 'Math')['$float!'](x)) + }, $Math_atan2$9.$$arity = 2); if ($truthy((typeof(Math.atanh) !== "undefined"))) { - } else { + } else { Math.atanh = function(x) { return 0.5 * Math.log((1 + x) / (1 - x)); @@ -18004,13 +21581,13 @@ Opal.modules["corelib/math"] = function(Opal) { }; - Opal.defn(self, '$atanh', TMP_Math_atanh_10 = function $$atanh(x) { + Opal.def(self, '$atanh', $Math_atanh$10 = function $$atanh(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("atanh", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_atanh_10.$$arity = 1); + return $$($nesting, 'Math').$checked("atanh", $$($nesting, 'Math')['$float!'](x)) + }, $Math_atanh$10.$$arity = 1); if ($truthy((typeof(Math.cbrt) !== "undefined"))) { - } else { + } else { Math.cbrt = function(x) { if (x == 0) { @@ -18056,19 +21633,19 @@ Opal.modules["corelib/math"] = function(Opal) { }; - Opal.defn(self, '$cbrt', TMP_Math_cbrt_11 = function $$cbrt(x) { + Opal.def(self, '$cbrt', $Math_cbrt$11 = function $$cbrt(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("cbrt", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_cbrt_11.$$arity = 1); + return $$($nesting, 'Math').$checked("cbrt", $$($nesting, 'Math')['$float!'](x)) + }, $Math_cbrt$11.$$arity = 1); - Opal.defn(self, '$cos', TMP_Math_cos_12 = function $$cos(x) { + Opal.def(self, '$cos', $Math_cos$12 = function $$cos(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("cos", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_cos_12.$$arity = 1); + return $$($nesting, 'Math').$checked("cos", $$($nesting, 'Math')['$float!'](x)) + }, $Math_cos$12.$$arity = 1); if ($truthy((typeof(Math.cosh) !== "undefined"))) { - } else { + } else { Math.cosh = function(x) { return (Math.exp(x) + Math.exp(-x)) / 2; @@ -18076,15 +21653,15 @@ Opal.modules["corelib/math"] = function(Opal) { }; - Opal.defn(self, '$cosh', TMP_Math_cosh_13 = function $$cosh(x) { + Opal.def(self, '$cosh', $Math_cosh$13 = function $$cosh(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("cosh", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_cosh_13.$$arity = 1); + return $$($nesting, 'Math').$checked("cosh", $$($nesting, 'Math')['$float!'](x)) + }, $Math_cosh$13.$$arity = 1); if ($truthy((typeof(Math.erf) !== "undefined"))) { - } else { + } else { - Math.erf = function(x) { + Opal.defineProperty(Math, 'erf', function(x) { var A1 = 0.254829592, A2 = -0.284496736, A3 = 1.421413741, @@ -18104,19 +21681,19 @@ Opal.modules["corelib/math"] = function(Opal) { var y = 1.0 - (((((A5 * t + A4) * t) + A3) * t + A2) * t + A1) * t * Math.exp(-x * x); return sign * y; - } + }); }; - Opal.defn(self, '$erf', TMP_Math_erf_14 = function $$erf(x) { + Opal.def(self, '$erf', $Math_erf$14 = function $$erf(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("erf", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_erf_14.$$arity = 1); + return $$($nesting, 'Math').$checked("erf", $$($nesting, 'Math')['$float!'](x)) + }, $Math_erf$14.$$arity = 1); if ($truthy((typeof(Math.erfc) !== "undefined"))) { - } else { + } else { - Math.erfc = function(x) { + Opal.defineProperty(Math, 'erfc', function(x) { var z = Math.abs(x), t = 1.0 / (0.5 * z + 1.0); @@ -18139,27 +21716,27 @@ Opal.modules["corelib/math"] = function(Opal) { else { return a; } - } + }); }; - Opal.defn(self, '$erfc', TMP_Math_erfc_15 = function $$erfc(x) { + Opal.def(self, '$erfc', $Math_erfc$15 = function $$erfc(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("erfc", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_erfc_15.$$arity = 1); + return $$($nesting, 'Math').$checked("erfc", $$($nesting, 'Math')['$float!'](x)) + }, $Math_erfc$15.$$arity = 1); - Opal.defn(self, '$exp', TMP_Math_exp_16 = function $$exp(x) { + Opal.def(self, '$exp', $Math_exp$16 = function $$exp(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("exp", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_exp_16.$$arity = 1); + return $$($nesting, 'Math').$checked("exp", $$($nesting, 'Math')['$float!'](x)) + }, $Math_exp$16.$$arity = 1); - Opal.defn(self, '$frexp', TMP_Math_frexp_17 = function $$frexp(x) { + Opal.def(self, '$frexp', $Math_frexp$17 = function $$frexp(x) { var self = this; - x = Opal.const_get_relative($nesting, 'Math')['$float!'](x); + x = $$($nesting, 'Math')['$float!'](x); if (isNaN(x)) { return [NaN, 0]; @@ -18170,13 +21747,13 @@ Opal.modules["corelib/math"] = function(Opal) { return [frac, ex]; ; - }, TMP_Math_frexp_17.$$arity = 1); + }, $Math_frexp$17.$$arity = 1); - Opal.defn(self, '$gamma', TMP_Math_gamma_18 = function $$gamma(n) { + Opal.def(self, '$gamma', $Math_gamma$18 = function $$gamma(n) { var self = this; - n = Opal.const_get_relative($nesting, 'Math')['$float!'](n); + n = $$($nesting, 'Math')['$float!'](n); var i, t, x, value, result, twoN, threeN, fourN, fiveN; @@ -18210,10 +21787,10 @@ Opal.modules["corelib/math"] = function(Opal) { } if (n === -1 || n === -Infinity) { - self.$raise(Opal.const_get_relative($nesting, 'DomainError'), "Numerical argument is out of domain - \"gamma\""); + self.$raise($$($nesting, 'DomainError'), "Numerical argument is out of domain - \"gamma\""); } - if (Opal.const_get_relative($nesting, 'Integer')['$==='](n)) { + if ($$($nesting, 'Integer')['$==='](n)) { if (n <= 0) { return isFinite(n) ? Infinity : NaN; } @@ -18238,7 +21815,7 @@ Opal.modules["corelib/math"] = function(Opal) { } if (n < 0.5) { - return Math.PI / (Math.sin(Math.PI * n) * Opal.const_get_relative($nesting, 'Math').$gamma($rb_minus(1, n))); + return Math.PI / (Math.sin(Math.PI * n) * $$($nesting, 'Math').$gamma($rb_minus(1, n))); } if (n >= 171.35) { @@ -18268,9 +21845,9 @@ Opal.modules["corelib/math"] = function(Opal) { return Math.sqrt(2 * Math.PI) * Math.pow(t, n + 0.5) * Math.exp(-t) * x; ; - }, TMP_Math_gamma_18.$$arity = 1); + }, $Math_gamma$18.$$arity = 1); if ($truthy((typeof(Math.hypot) !== "undefined"))) { - } else { + } else { Math.hypot = function(x, y) { return Math.sqrt(x * x + y * y) @@ -18278,28 +21855,28 @@ Opal.modules["corelib/math"] = function(Opal) { }; - Opal.defn(self, '$hypot', TMP_Math_hypot_19 = function $$hypot(x, y) { + Opal.def(self, '$hypot', $Math_hypot$19 = function $$hypot(x, y) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("hypot", Opal.const_get_relative($nesting, 'Math')['$float!'](x), Opal.const_get_relative($nesting, 'Math')['$float!'](y)) - }, TMP_Math_hypot_19.$$arity = 2); + return $$($nesting, 'Math').$checked("hypot", $$($nesting, 'Math')['$float!'](x), $$($nesting, 'Math')['$float!'](y)) + }, $Math_hypot$19.$$arity = 2); - Opal.defn(self, '$ldexp', TMP_Math_ldexp_20 = function $$ldexp(mantissa, exponent) { + Opal.def(self, '$ldexp', $Math_ldexp$20 = function $$ldexp(mantissa, exponent) { var self = this; - mantissa = Opal.const_get_relative($nesting, 'Math')['$float!'](mantissa); - exponent = Opal.const_get_relative($nesting, 'Math')['$integer!'](exponent); + mantissa = $$($nesting, 'Math')['$float!'](mantissa); + exponent = $$($nesting, 'Math')['$integer!'](exponent); if (isNaN(exponent)) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "float NaN out of range of integer"); + self.$raise($$($nesting, 'RangeError'), "float NaN out of range of integer"); } return mantissa * Math.pow(2, exponent); ; - }, TMP_Math_ldexp_20.$$arity = 2); + }, $Math_ldexp$20.$$arity = 2); - Opal.defn(self, '$lgamma', TMP_Math_lgamma_21 = function $$lgamma(n) { + Opal.def(self, '$lgamma', $Math_lgamma$21 = function $$lgamma(n) { var self = this; @@ -18307,28 +21884,29 @@ Opal.modules["corelib/math"] = function(Opal) { return [Infinity, 1]; } else { - return [Math.log(Math.abs(Opal.const_get_relative($nesting, 'Math').$gamma(n))), Opal.const_get_relative($nesting, 'Math').$gamma(n) < 0 ? -1 : 1]; + return [Math.log(Math.abs($$($nesting, 'Math').$gamma(n))), $$($nesting, 'Math').$gamma(n) < 0 ? -1 : 1]; } - }, TMP_Math_lgamma_21.$$arity = 1); + }, $Math_lgamma$21.$$arity = 1); - Opal.defn(self, '$log', TMP_Math_log_22 = function $$log(x, base) { + Opal.def(self, '$log', $Math_log$22 = function $$log(x, base) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](x))) { - self.$raise(Opal.const_get_relative($nesting, 'Opal').$type_error(x, Opal.const_get_relative($nesting, 'Float')))}; + ; + if ($truthy($$($nesting, 'String')['$==='](x))) { + self.$raise($type_error(x, $$($nesting, 'Float')))}; if ($truthy(base == null)) { - return Opal.const_get_relative($nesting, 'Math').$checked("log", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - } else { + return $$($nesting, 'Math').$checked("log", $$($nesting, 'Math')['$float!'](x)) + } else { - if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](base))) { - self.$raise(Opal.const_get_relative($nesting, 'Opal').$type_error(base, Opal.const_get_relative($nesting, 'Float')))}; - return $rb_divide(Opal.const_get_relative($nesting, 'Math').$checked("log", Opal.const_get_relative($nesting, 'Math')['$float!'](x)), Opal.const_get_relative($nesting, 'Math').$checked("log", Opal.const_get_relative($nesting, 'Math')['$float!'](base))); + if ($truthy($$($nesting, 'String')['$==='](base))) { + self.$raise($type_error(base, $$($nesting, 'Float')))}; + return $rb_divide($$($nesting, 'Math').$checked("log", $$($nesting, 'Math')['$float!'](x)), $$($nesting, 'Math').$checked("log", $$($nesting, 'Math')['$float!'](base))); }; - }, TMP_Math_log_22.$$arity = -2); + }, $Math_log$22.$$arity = -2); if ($truthy((typeof(Math.log10) !== "undefined"))) { - } else { + } else { Math.log10 = function(x) { return Math.log(x) / Math.LN10; @@ -18336,16 +21914,16 @@ Opal.modules["corelib/math"] = function(Opal) { }; - Opal.defn(self, '$log10', TMP_Math_log10_23 = function $$log10(x) { + Opal.def(self, '$log10', $Math_log10$23 = function $$log10(x) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](x))) { - self.$raise(Opal.const_get_relative($nesting, 'Opal').$type_error(x, Opal.const_get_relative($nesting, 'Float')))}; - return Opal.const_get_relative($nesting, 'Math').$checked("log10", Opal.const_get_relative($nesting, 'Math')['$float!'](x)); - }, TMP_Math_log10_23.$$arity = 1); + if ($truthy($$($nesting, 'String')['$==='](x))) { + self.$raise($type_error(x, $$($nesting, 'Float')))}; + return $$($nesting, 'Math').$checked("log10", $$($nesting, 'Math')['$float!'](x)); + }, $Math_log10$23.$$arity = 1); if ($truthy((typeof(Math.log2) !== "undefined"))) { - } else { + } else { Math.log2 = function(x) { return Math.log(x) / Math.LN2; @@ -18353,22 +21931,22 @@ Opal.modules["corelib/math"] = function(Opal) { }; - Opal.defn(self, '$log2', TMP_Math_log2_24 = function $$log2(x) { + Opal.def(self, '$log2', $Math_log2$24 = function $$log2(x) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](x))) { - self.$raise(Opal.const_get_relative($nesting, 'Opal').$type_error(x, Opal.const_get_relative($nesting, 'Float')))}; - return Opal.const_get_relative($nesting, 'Math').$checked("log2", Opal.const_get_relative($nesting, 'Math')['$float!'](x)); - }, TMP_Math_log2_24.$$arity = 1); + if ($truthy($$($nesting, 'String')['$==='](x))) { + self.$raise($type_error(x, $$($nesting, 'Float')))}; + return $$($nesting, 'Math').$checked("log2", $$($nesting, 'Math')['$float!'](x)); + }, $Math_log2$24.$$arity = 1); - Opal.defn(self, '$sin', TMP_Math_sin_25 = function $$sin(x) { + Opal.def(self, '$sin', $Math_sin$25 = function $$sin(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("sin", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_sin_25.$$arity = 1); + return $$($nesting, 'Math').$checked("sin", $$($nesting, 'Math')['$float!'](x)) + }, $Math_sin$25.$$arity = 1); if ($truthy((typeof(Math.sinh) !== "undefined"))) { - } else { + } else { Math.sinh = function(x) { return (Math.exp(x) - Math.exp(-x)) / 2; @@ -18376,29 +21954,29 @@ Opal.modules["corelib/math"] = function(Opal) { }; - Opal.defn(self, '$sinh', TMP_Math_sinh_26 = function $$sinh(x) { + Opal.def(self, '$sinh', $Math_sinh$26 = function $$sinh(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("sinh", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_sinh_26.$$arity = 1); + return $$($nesting, 'Math').$checked("sinh", $$($nesting, 'Math')['$float!'](x)) + }, $Math_sinh$26.$$arity = 1); - Opal.defn(self, '$sqrt', TMP_Math_sqrt_27 = function $$sqrt(x) { + Opal.def(self, '$sqrt', $Math_sqrt$27 = function $$sqrt(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("sqrt", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_sqrt_27.$$arity = 1); + return $$($nesting, 'Math').$checked("sqrt", $$($nesting, 'Math')['$float!'](x)) + }, $Math_sqrt$27.$$arity = 1); - Opal.defn(self, '$tan', TMP_Math_tan_28 = function $$tan(x) { + Opal.def(self, '$tan', $Math_tan$28 = function $$tan(x) { var self = this; - x = Opal.const_get_relative($nesting, 'Math')['$float!'](x); + x = $$($nesting, 'Math')['$float!'](x); if ($truthy(x['$infinite?']())) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'NAN')}; - return Opal.const_get_relative($nesting, 'Math').$checked("tan", Opal.const_get_relative($nesting, 'Math')['$float!'](x)); - }, TMP_Math_tan_28.$$arity = 1); + return $$$($$($nesting, 'Float'), 'NAN')}; + return $$($nesting, 'Math').$checked("tan", $$($nesting, 'Math')['$float!'](x)); + }, $Math_tan$28.$$arity = 1); if ($truthy((typeof(Math.tanh) !== "undefined"))) { - } else { + } else { Math.tanh = function(x) { if (x == Infinity) { @@ -18413,17 +21991,53 @@ Opal.modules["corelib/math"] = function(Opal) { } }; - - Opal.defn(self, '$tanh', TMP_Math_tanh_29 = function $$tanh(x) { + return (Opal.def(self, '$tanh', $Math_tanh$29 = function $$tanh(x) { var self = this; - return Opal.const_get_relative($nesting, 'Math').$checked("tanh", Opal.const_get_relative($nesting, 'Math')['$float!'](x)) - }, TMP_Math_tanh_29.$$arity = 1); + return $$($nesting, 'Math').$checked("tanh", $$($nesting, 'Math')['$float!'](x)) + }, $Math_tanh$29.$$arity = 1), nil) && 'tanh'; })($nesting[0], $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/complex"] = function(Opal) { +Opal.modules["corelib/complex/base"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy, $klass = Opal.klass; + + Opal.add_stubs(['$new', '$from_string']); + + (function($base, $parent_nesting) { + var self = $module($base, 'Kernel'); + + var $nesting = [self].concat($parent_nesting), $Kernel_Complex$1; + + return (Opal.def(self, '$Complex', $Kernel_Complex$1 = function $$Complex(real, imag) { + var self = this; + + + + if (imag == null) { + imag = nil; + }; + if ($truthy(imag)) { + return $$($nesting, 'Complex').$new(real, imag) + } else { + return $$($nesting, 'Complex').$new(real, 0) + }; + }, $Kernel_Complex$1.$$arity = -2), nil) && 'Complex' + })($nesting[0], $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'String'); + + var $nesting = [self].concat($parent_nesting), $String_to_c$2; + + return (Opal.def(self, '$to_c', $String_to_c$2 = function $$to_c() { + var self = this; + + return $$($nesting, 'Complex').$from_string(self) + }, $String_to_c$2.$$arity = 0), nil) && 'to_c' + })($nesting[0], null, $nesting); +}; + +Opal.modules["corelib/complex"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_times(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs * rhs : lhs['$*'](rhs); } @@ -18439,160 +22053,250 @@ Opal.modules["corelib/complex"] = function(Opal) { function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $module = Opal.module; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$require', '$===', '$real?', '$raise', '$new', '$*', '$cos', '$sin', '$attr_reader', '$class', '$==', '$real', '$imag', '$Complex', '$-@', '$+', '$__coerced__', '$-', '$nan?', '$/', '$conj', '$abs2', '$quo', '$polar', '$exp', '$log', '$>', '$!=', '$divmod', '$**', '$hypot', '$atan2', '$lcm', '$denominator', '$to_s', '$numerator', '$abs', '$arg', '$rationalize', '$to_f', '$to_i', '$to_r', '$inspect', '$positive?', '$zero?', '$infinite?']); + Opal.add_stubs(['$require', '$===', '$real?', '$raise', '$new', '$*', '$cos', '$sin', '$attr_reader', '$class', '$==', '$real', '$imag', '$Complex', '$-@', '$+', '$__coerced__', '$-', '$nan?', '$/', '$conj', '$abs2', '$quo', '$polar', '$exp', '$log', '$>', '$!=', '$divmod', '$**', '$hypot', '$atan2', '$lcm', '$denominator', '$finite?', '$infinite?', '$numerator', '$abs', '$arg', '$rationalize', '$to_f', '$to_i', '$to_r', '$inspect', '$positive?', '$zero?', '$Rational']); self.$require("corelib/numeric"); - (function($base, $super, $parent_nesting) { - function $Complex(){}; - var self = $Complex = $klass($base, $super, 'Complex', $Complex); + self.$require("corelib/complex/base"); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Complex'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Complex_rect_1, TMP_Complex_polar_2, TMP_Complex_initialize_3, TMP_Complex_coerce_4, TMP_Complex_$eq$eq_5, TMP_Complex_$$_6, TMP_Complex_$_7, TMP_Complex_$_8, TMP_Complex_$_9, TMP_Complex_$_10, TMP_Complex_$$_11, TMP_Complex_abs_12, TMP_Complex_abs2_13, TMP_Complex_angle_14, TMP_Complex_conj_15, TMP_Complex_denominator_16, TMP_Complex_eql$q_17, TMP_Complex_fdiv_18, TMP_Complex_hash_19, TMP_Complex_inspect_20, TMP_Complex_numerator_21, TMP_Complex_polar_22, TMP_Complex_rationalize_23, TMP_Complex_real$q_24, TMP_Complex_rect_25, TMP_Complex_to_f_26, TMP_Complex_to_i_27, TMP_Complex_to_r_28, TMP_Complex_to_s_29; + var $nesting = [self].concat($parent_nesting), $Complex_rect$1, $Complex_polar$2, $Complex_initialize$3, $Complex_coerce$4, $Complex_$eq_eq$5, $Complex_$minus$$6, $Complex_$plus$7, $Complex_$minus$8, $Complex_$$9, $Complex_$slash$10, $Complex_$$$11, $Complex_abs$12, $Complex_abs2$13, $Complex_angle$14, $Complex_conj$15, $Complex_denominator$16, $Complex_eql$ques$17, $Complex_fdiv$18, $Complex_finite$ques$19, $Complex_hash$20, $Complex_infinite$ques$21, $Complex_inspect$22, $Complex_numerator$23, $Complex_polar$24, $Complex_rationalize$25, $Complex_real$ques$26, $Complex_rect$27, $Complex_to_f$28, $Complex_to_i$29, $Complex_to_r$30, $Complex_to_s$31, $Complex_from_string$32; - def.real = def.imag = nil; + self.$$prototype.real = self.$$prototype.imag = nil; - Opal.defs(self, '$rect', TMP_Complex_rect_1 = function $$rect(real, imag) { - var $a, $b, $c, self = this; + Opal.defs(self, '$rect', $Complex_rect$1 = function $$rect(real, imag) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil; + + if (imag == null) { imag = 0; - } - - if ($truthy(($truthy($a = ($truthy($b = ($truthy($c = Opal.const_get_relative($nesting, 'Numeric')['$==='](real)) ? real['$real?']() : $c)) ? Opal.const_get_relative($nesting, 'Numeric')['$==='](imag) : $b)) ? imag['$real?']() : $a))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "not a real") + }; + if ($truthy((function() {if ($truthy(($ret_or_1 = (function() {if ($truthy(($ret_or_2 = (function() {if ($truthy(($ret_or_3 = $$($nesting, 'Numeric')['$==='](real)))) { + return real['$real?']() + } else { + return $ret_or_3 + }; return nil; })()))) { + return $$($nesting, 'Numeric')['$==='](imag) + } else { + return $ret_or_2 + }; return nil; })()))) { + return imag['$real?']() + } else { + return $ret_or_1 + }; return nil; })())) { + } else { + self.$raise($$($nesting, 'TypeError'), "not a real") }; return self.$new(real, imag); - }, TMP_Complex_rect_1.$$arity = -2); + }, $Complex_rect$1.$$arity = -2); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - return Opal.alias(self, "rectangular", "rect") + return $alias(self, "rectangular", "rect") })(Opal.get_singleton_class(self), $nesting); - Opal.defs(self, '$polar', TMP_Complex_polar_2 = function $$polar(r, theta) { - var $a, $b, $c, self = this; + Opal.defs(self, '$polar', $Complex_polar$2 = function $$polar(r, theta) { + var self = this, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil; + + if (theta == null) { theta = 0; - } - - if ($truthy(($truthy($a = ($truthy($b = ($truthy($c = Opal.const_get_relative($nesting, 'Numeric')['$==='](r)) ? r['$real?']() : $c)) ? Opal.const_get_relative($nesting, 'Numeric')['$==='](theta) : $b)) ? theta['$real?']() : $a))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "not a real") }; - return self.$new($rb_times(r, Opal.const_get_relative($nesting, 'Math').$cos(theta)), $rb_times(r, Opal.const_get_relative($nesting, 'Math').$sin(theta))); - }, TMP_Complex_polar_2.$$arity = -2); + if ($truthy((function() {if ($truthy(($ret_or_4 = (function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = $$($nesting, 'Numeric')['$==='](r)))) { + return r['$real?']() + } else { + return $ret_or_6 + }; return nil; })()))) { + return $$($nesting, 'Numeric')['$==='](theta) + } else { + return $ret_or_5 + }; return nil; })()))) { + return theta['$real?']() + } else { + return $ret_or_4 + }; return nil; })())) { + } else { + self.$raise($$($nesting, 'TypeError'), "not a real") + }; + return self.$new($rb_times(r, $$($nesting, 'Math').$cos(theta)), $rb_times(r, $$($nesting, 'Math').$sin(theta))); + }, $Complex_polar$2.$$arity = -2); self.$attr_reader("real", "imag"); - Opal.defn(self, '$initialize', TMP_Complex_initialize_3 = function $$initialize(real, imag) { + Opal.def(self, '$initialize', $Complex_initialize$3 = function $$initialize(real, imag) { var self = this; + + if (imag == null) { imag = 0; - } - + }; self.real = real; return (self.imag = imag); - }, TMP_Complex_initialize_3.$$arity = -2); + }, $Complex_initialize$3.$$arity = -2); - Opal.defn(self, '$coerce', TMP_Complex_coerce_4 = function $$coerce(other) { - var $a, self = this; + Opal.def(self, '$coerce', $Complex_coerce$4 = function $$coerce(other) { + var self = this, $ret_or_7 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Complex')['$==='](other))) { + if ($truthy($$($nesting, 'Complex')['$==='](other))) { return [other, self] - } else if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Numeric')['$==='](other)) ? other['$real?']() : $a))) { - return [Opal.const_get_relative($nesting, 'Complex').$new(other, 0), self] - } else { - return self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into Complex") + } else if ($truthy((function() {if ($truthy(($ret_or_7 = $$($nesting, 'Numeric')['$==='](other)))) { + return other['$real?']() + } else { + return $ret_or_7 + }; return nil; })())) { + return [$$($nesting, 'Complex').$new(other, 0), self] + } else { + return self.$raise($$($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into Complex") } - }, TMP_Complex_coerce_4.$$arity = 1); + }, $Complex_coerce$4.$$arity = 1); - Opal.defn(self, '$==', TMP_Complex_$eq$eq_5 = function(other) { - var $a, self = this; + Opal.def(self, '$==', $Complex_$eq_eq$5 = function(other) { + var self = this, $ret_or_8 = nil, $ret_or_9 = nil, $ret_or_10 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Complex')['$==='](other))) { - return (($a = self.real['$=='](other.$real())) ? self.imag['$=='](other.$imag()) : self.real['$=='](other.$real())) - } else if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Numeric')['$==='](other)) ? other['$real?']() : $a))) { - return (($a = self.real['$=='](other)) ? self.imag['$=='](0) : self.real['$=='](other)) + if ($truthy($$($nesting, 'Complex')['$==='](other))) { + if ($truthy(($ret_or_8 = self.real['$=='](other.$real())))) { + return self.imag['$=='](other.$imag()) + } else { + return $ret_or_8 + } + } else if ($truthy((function() {if ($truthy(($ret_or_9 = $$($nesting, 'Numeric')['$==='](other)))) { + return other['$real?']() + } else { + return $ret_or_9 + }; return nil; })())) { + if ($truthy(($ret_or_10 = self.real['$=='](other)))) { + return self.imag['$=='](0) } else { + return $ret_or_10 + } + } else { return other['$=='](self) } - }, TMP_Complex_$eq$eq_5.$$arity = 1); + }, $Complex_$eq_eq$5.$$arity = 1); - Opal.defn(self, '$-@', TMP_Complex_$$_6 = function() { + Opal.def(self, '$-@', $Complex_$minus$$6 = function() { var self = this; return self.$Complex(self.real['$-@'](), self.imag['$-@']()) - }, TMP_Complex_$$_6.$$arity = 0); + }, $Complex_$minus$$6.$$arity = 0); - Opal.defn(self, '$+', TMP_Complex_$_7 = function(other) { - var $a, self = this; + Opal.def(self, '$+', $Complex_$plus$7 = function(other) { + var self = this, $ret_or_11 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Complex')['$==='](other))) { + if ($truthy($$($nesting, 'Complex')['$==='](other))) { return self.$Complex($rb_plus(self.real, other.$real()), $rb_plus(self.imag, other.$imag())) - } else if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Numeric')['$==='](other)) ? other['$real?']() : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_11 = $$($nesting, 'Numeric')['$==='](other)))) { + return other['$real?']() + } else { + return $ret_or_11 + }; return nil; })())) { return self.$Complex($rb_plus(self.real, other), self.imag) - } else { + } else { return self.$__coerced__("+", other) } - }, TMP_Complex_$_7.$$arity = 1); + }, $Complex_$plus$7.$$arity = 1); - Opal.defn(self, '$-', TMP_Complex_$_8 = function(other) { - var $a, self = this; + Opal.def(self, '$-', $Complex_$minus$8 = function(other) { + var self = this, $ret_or_12 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Complex')['$==='](other))) { + if ($truthy($$($nesting, 'Complex')['$==='](other))) { return self.$Complex($rb_minus(self.real, other.$real()), $rb_minus(self.imag, other.$imag())) - } else if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Numeric')['$==='](other)) ? other['$real?']() : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_12 = $$($nesting, 'Numeric')['$==='](other)))) { + return other['$real?']() + } else { + return $ret_or_12 + }; return nil; })())) { return self.$Complex($rb_minus(self.real, other), self.imag) - } else { + } else { return self.$__coerced__("-", other) } - }, TMP_Complex_$_8.$$arity = 1); + }, $Complex_$minus$8.$$arity = 1); - Opal.defn(self, '$*', TMP_Complex_$_9 = function(other) { - var $a, self = this; + Opal.def(self, '$*', $Complex_$$9 = function(other) { + var self = this, $ret_or_13 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Complex')['$==='](other))) { + if ($truthy($$($nesting, 'Complex')['$==='](other))) { return self.$Complex($rb_minus($rb_times(self.real, other.$real()), $rb_times(self.imag, other.$imag())), $rb_plus($rb_times(self.real, other.$imag()), $rb_times(self.imag, other.$real()))) - } else if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Numeric')['$==='](other)) ? other['$real?']() : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_13 = $$($nesting, 'Numeric')['$==='](other)))) { + return other['$real?']() + } else { + return $ret_or_13 + }; return nil; })())) { return self.$Complex($rb_times(self.real, other), $rb_times(self.imag, other)) - } else { + } else { return self.$__coerced__("*", other) } - }, TMP_Complex_$_9.$$arity = 1); + }, $Complex_$$9.$$arity = 1); - Opal.defn(self, '$/', TMP_Complex_$_10 = function(other) { - var $a, $b, $c, $d, self = this; + Opal.def(self, '$/', $Complex_$slash$10 = function(other) { + var self = this, $ret_or_14 = nil, $ret_or_15 = nil, $ret_or_16 = nil, $ret_or_17 = nil, $ret_or_18 = nil, $ret_or_19 = nil, $ret_or_20 = nil, $ret_or_21 = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Complex')['$==='](other))) { - if ($truthy(($truthy($a = ($truthy($b = ($truthy($c = ($truthy($d = Opal.const_get_relative($nesting, 'Number')['$==='](self.real)) ? self.real['$nan?']() : $d)) ? $c : ($truthy($d = Opal.const_get_relative($nesting, 'Number')['$==='](self.imag)) ? self.imag['$nan?']() : $d))) ? $b : ($truthy($c = Opal.const_get_relative($nesting, 'Number')['$==='](other.$real())) ? other.$real()['$nan?']() : $c))) ? $a : ($truthy($b = Opal.const_get_relative($nesting, 'Number')['$==='](other.$imag())) ? other.$imag()['$nan?']() : $b)))) { - return Opal.const_get_relative($nesting, 'Complex').$new(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'NAN'), Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'NAN')) + if ($truthy($$($nesting, 'Complex')['$==='](other))) { + if ($truthy((function() {if ($truthy(($ret_or_14 = (function() {if ($truthy(($ret_or_15 = (function() {if ($truthy(($ret_or_16 = (function() {if ($truthy(($ret_or_17 = $$($nesting, 'Number')['$==='](self.real)))) { + return self.real['$nan?']() + } else { + return $ret_or_17 + }; return nil; })()))) { + return $ret_or_16 + } else { + + if ($truthy(($ret_or_18 = $$($nesting, 'Number')['$==='](self.imag)))) { + return self.imag['$nan?']() + } else { + return $ret_or_18 + }; + }; return nil; })()))) { + return $ret_or_15 + } else { + + if ($truthy(($ret_or_19 = $$($nesting, 'Number')['$==='](other.$real())))) { + return other.$real()['$nan?']() + } else { + return $ret_or_19 + }; + }; return nil; })()))) { + return $ret_or_14 + } else { + + if ($truthy(($ret_or_20 = $$($nesting, 'Number')['$==='](other.$imag())))) { + return other.$imag()['$nan?']() } else { + return $ret_or_20 + }; + }; return nil; })())) { + return $$($nesting, 'Complex').$new($$$($$($nesting, 'Float'), 'NAN'), $$$($$($nesting, 'Float'), 'NAN')) + } else { return $rb_divide($rb_times(self, other.$conj()), other.$abs2()) } - } else if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Numeric')['$==='](other)) ? other['$real?']() : $a))) { + } else if ($truthy((function() {if ($truthy(($ret_or_21 = $$($nesting, 'Numeric')['$==='](other)))) { + return other['$real?']() + } else { + return $ret_or_21 + }; return nil; })())) { return self.$Complex(self.real.$quo(other), self.imag.$quo(other)) - } else { + } else { return self.$__coerced__("/", other) } - }, TMP_Complex_$_10.$$arity = 1); + }, $Complex_$slash$10.$$arity = 1); - Opal.defn(self, '$**', TMP_Complex_$$_11 = function(other) { - var $a, $b, $c, $d, self = this, r = nil, theta = nil, ore = nil, oim = nil, nr = nil, ntheta = nil, x = nil, z = nil, n = nil, div = nil, mod = nil; + Opal.def(self, '$**', $Complex_$$$11 = function(other) { + var $a, $b, $c, $d, self = this, r = nil, theta = nil, ore = nil, oim = nil, nr = nil, ntheta = nil, x = nil, z = nil, n = nil, div = nil, mod = nil, $ret_or_22 = nil; if (other['$=='](0)) { - return Opal.const_get_relative($nesting, 'Complex').$new(1, 0)}; - if ($truthy(Opal.const_get_relative($nesting, 'Complex')['$==='](other))) { + return $$($nesting, 'Complex').$new(1, 0)}; + if ($truthy($$($nesting, 'Complex')['$==='](other))) { $b = self.$polar(), $a = Opal.to_ary($b), (r = ($a[0] == null ? nil : $a[0])), (theta = ($a[1] == null ? nil : $a[1])), $b; ore = other.$real(); oim = other.$imag(); - nr = Opal.const_get_relative($nesting, 'Math').$exp($rb_minus($rb_times(ore, Opal.const_get_relative($nesting, 'Math').$log(r)), $rb_times(oim, theta))); - ntheta = $rb_plus($rb_times(theta, ore), $rb_times(oim, Opal.const_get_relative($nesting, 'Math').$log(r))); - return Opal.const_get_relative($nesting, 'Complex').$polar(nr, ntheta); - } else if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](other))) { + nr = $$($nesting, 'Math').$exp($rb_minus($rb_times(ore, $$($nesting, 'Math').$log(r)), $rb_times(oim, theta))); + ntheta = $rb_plus($rb_times(theta, ore), $rb_times(oim, $$($nesting, 'Math').$log(r))); + return $$($nesting, 'Complex').$polar(nr, ntheta); + } else if ($truthy($$($nesting, 'Integer')['$==='](other))) { if ($truthy($rb_gt(other, 0))) { x = self; @@ -18600,211 +22304,362 @@ Opal.modules["corelib/complex"] = function(Opal) { n = $rb_minus(other, 1); while ($truthy(n['$!='](0))) { - while ($truthy(($d = n.$divmod(2), $c = Opal.to_ary($d), (div = ($c[0] == null ? nil : $c[0])), (mod = ($c[1] == null ? nil : $c[1])), $d, mod['$=='](0)))) { + $c = n.$divmod(2), $b = Opal.to_ary($c), (div = ($b[0] == null ? nil : $b[0])), (mod = ($b[1] == null ? nil : $b[1])), $c; + while (mod['$=='](0)) { x = self.$Complex($rb_minus($rb_times(x.$real(), x.$real()), $rb_times(x.$imag(), x.$imag())), $rb_times($rb_times(2, x.$real()), x.$imag())); n = div; + $d = n.$divmod(2), $c = Opal.to_ary($d), (div = ($c[0] == null ? nil : $c[0])), (mod = ($c[1] == null ? nil : $c[1])), $d; }; z = $rb_times(z, x); n = $rb_minus(n, 1); }; return z; - } else { - return $rb_divide(Opal.const_get_relative($nesting, 'Rational').$new(1, 1), self)['$**'](other['$-@']()) + } else { + return $rb_divide($$($nesting, 'Rational').$new(1, 1), self)['$**'](other['$-@']()) } - } else if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Float')['$==='](other)) ? $a : Opal.const_get_relative($nesting, 'Rational')['$==='](other)))) { + } else if ($truthy((function() {if ($truthy(($ret_or_22 = $$($nesting, 'Float')['$==='](other)))) { + return $ret_or_22 + } else { + return $$($nesting, 'Rational')['$==='](other) + }; return nil; })())) { $b = self.$polar(), $a = Opal.to_ary($b), (r = ($a[0] == null ? nil : $a[0])), (theta = ($a[1] == null ? nil : $a[1])), $b; - return Opal.const_get_relative($nesting, 'Complex').$polar(r['$**'](other), $rb_times(theta, other)); - } else { + return $$($nesting, 'Complex').$polar(r['$**'](other), $rb_times(theta, other)); + } else { return self.$__coerced__("**", other) }; - }, TMP_Complex_$$_11.$$arity = 1); + }, $Complex_$$$11.$$arity = 1); - Opal.defn(self, '$abs', TMP_Complex_abs_12 = function $$abs() { + Opal.def(self, '$abs', $Complex_abs$12 = function $$abs() { var self = this; - return Opal.const_get_relative($nesting, 'Math').$hypot(self.real, self.imag) - }, TMP_Complex_abs_12.$$arity = 0); + return $$($nesting, 'Math').$hypot(self.real, self.imag) + }, $Complex_abs$12.$$arity = 0); - Opal.defn(self, '$abs2', TMP_Complex_abs2_13 = function $$abs2() { + Opal.def(self, '$abs2', $Complex_abs2$13 = function $$abs2() { var self = this; return $rb_plus($rb_times(self.real, self.real), $rb_times(self.imag, self.imag)) - }, TMP_Complex_abs2_13.$$arity = 0); + }, $Complex_abs2$13.$$arity = 0); - Opal.defn(self, '$angle', TMP_Complex_angle_14 = function $$angle() { + Opal.def(self, '$angle', $Complex_angle$14 = function $$angle() { var self = this; - return Opal.const_get_relative($nesting, 'Math').$atan2(self.imag, self.real) - }, TMP_Complex_angle_14.$$arity = 0); - Opal.alias(self, "arg", "angle"); + return $$($nesting, 'Math').$atan2(self.imag, self.real) + }, $Complex_angle$14.$$arity = 0); + $alias(self, "arg", "angle"); - Opal.defn(self, '$conj', TMP_Complex_conj_15 = function $$conj() { + Opal.def(self, '$conj', $Complex_conj$15 = function $$conj() { var self = this; return self.$Complex(self.real, self.imag['$-@']()) - }, TMP_Complex_conj_15.$$arity = 0); - Opal.alias(self, "conjugate", "conj"); + }, $Complex_conj$15.$$arity = 0); + $alias(self, "conjugate", "conj"); - Opal.defn(self, '$denominator', TMP_Complex_denominator_16 = function $$denominator() { + Opal.def(self, '$denominator', $Complex_denominator$16 = function $$denominator() { var self = this; return self.real.$denominator().$lcm(self.imag.$denominator()) - }, TMP_Complex_denominator_16.$$arity = 0); - Opal.alias(self, "divide", "/"); + }, $Complex_denominator$16.$$arity = 0); + $alias(self, "divide", "/"); - Opal.defn(self, '$eql?', TMP_Complex_eql$q_17 = function(other) { - var $a, $b, self = this; + Opal.def(self, '$eql?', $Complex_eql$ques$17 = function(other) { + var self = this, $ret_or_23 = nil, $ret_or_24 = nil; - return ($truthy($a = ($truthy($b = Opal.const_get_relative($nesting, 'Complex')['$==='](other)) ? self.real.$class()['$=='](self.imag.$class()) : $b)) ? self['$=='](other) : $a) - }, TMP_Complex_eql$q_17.$$arity = 1); + if ($truthy(($ret_or_23 = (function() {if ($truthy(($ret_or_24 = $$($nesting, 'Complex')['$==='](other)))) { + return self.real.$class()['$=='](self.imag.$class()) + } else { + return $ret_or_24 + }; return nil; })()))) { + return self['$=='](other) + } else { + return $ret_or_23 + } + }, $Complex_eql$ques$17.$$arity = 1); - Opal.defn(self, '$fdiv', TMP_Complex_fdiv_18 = function $$fdiv(other) { + Opal.def(self, '$fdiv', $Complex_fdiv$18 = function $$fdiv(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Numeric')['$==='](other))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into Complex") + if ($truthy($$($nesting, 'Numeric')['$==='](other))) { + } else { + self.$raise($$($nesting, 'TypeError'), "" + (other.$class()) + " can't be coerced into Complex") }; return $rb_divide(self, other); - }, TMP_Complex_fdiv_18.$$arity = 1); + }, $Complex_fdiv$18.$$arity = 1); + + Opal.def(self, '$finite?', $Complex_finite$ques$19 = function() { + var self = this, $ret_or_25 = nil; + + if ($truthy(($ret_or_25 = self.real['$finite?']()))) { + return self.imag['$finite?']() + } else { + return $ret_or_25 + } + }, $Complex_finite$ques$19.$$arity = 0); - Opal.defn(self, '$hash', TMP_Complex_hash_19 = function $$hash() { + Opal.def(self, '$hash', $Complex_hash$20 = function $$hash() { var self = this; return "" + "Complex:" + (self.real) + ":" + (self.imag) - }, TMP_Complex_hash_19.$$arity = 0); - Opal.alias(self, "imaginary", "imag"); + }, $Complex_hash$20.$$arity = 0); + $alias(self, "imaginary", "imag"); - Opal.defn(self, '$inspect', TMP_Complex_inspect_20 = function $$inspect() { + Opal.def(self, '$infinite?', $Complex_infinite$ques$21 = function() { + var self = this, $ret_or_26 = nil; + + if ($truthy(($ret_or_26 = self.real['$infinite?']()))) { + return $ret_or_26 + } else { + return self.imag['$infinite?']() + } + }, $Complex_infinite$ques$21.$$arity = 0); + + Opal.def(self, '$inspect', $Complex_inspect$22 = function $$inspect() { var self = this; - return "" + "(" + (self.$to_s()) + ")" - }, TMP_Complex_inspect_20.$$arity = 0); - Opal.alias(self, "magnitude", "abs"); + return "" + "(" + (self) + ")" + }, $Complex_inspect$22.$$arity = 0); + $alias(self, "magnitude", "abs"); Opal.udef(self, '$' + "negative?");; - Opal.defn(self, '$numerator', TMP_Complex_numerator_21 = function $$numerator() { + Opal.def(self, '$numerator', $Complex_numerator$23 = function $$numerator() { var self = this, d = nil; d = self.$denominator(); return self.$Complex($rb_times(self.real.$numerator(), $rb_divide(d, self.real.$denominator())), $rb_times(self.imag.$numerator(), $rb_divide(d, self.imag.$denominator()))); - }, TMP_Complex_numerator_21.$$arity = 0); - Opal.alias(self, "phase", "arg"); + }, $Complex_numerator$23.$$arity = 0); + $alias(self, "phase", "arg"); - Opal.defn(self, '$polar', TMP_Complex_polar_22 = function $$polar() { + Opal.def(self, '$polar', $Complex_polar$24 = function $$polar() { var self = this; return [self.$abs(), self.$arg()] - }, TMP_Complex_polar_22.$$arity = 0); + }, $Complex_polar$24.$$arity = 0); Opal.udef(self, '$' + "positive?");; - Opal.alias(self, "quo", "/"); + $alias(self, "quo", "/"); - Opal.defn(self, '$rationalize', TMP_Complex_rationalize_23 = function $$rationalize(eps) { + Opal.def(self, '$rationalize', $Complex_rationalize$25 = function $$rationalize(eps) { var self = this; + ; if (arguments.length > 1) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..1)"); + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..1)"); } ; if ($truthy(self.imag['$!='](0))) { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "" + "can't' convert " + (self) + " into Rational")}; + self.$raise($$($nesting, 'RangeError'), "" + "can't' convert " + (self) + " into Rational")}; return self.$real().$rationalize(eps); - }, TMP_Complex_rationalize_23.$$arity = -1); + }, $Complex_rationalize$25.$$arity = -1); - Opal.defn(self, '$real?', TMP_Complex_real$q_24 = function() { + Opal.def(self, '$real?', $Complex_real$ques$26 = function() { var self = this; return false - }, TMP_Complex_real$q_24.$$arity = 0); + }, $Complex_real$ques$26.$$arity = 0); - Opal.defn(self, '$rect', TMP_Complex_rect_25 = function $$rect() { + Opal.def(self, '$rect', $Complex_rect$27 = function $$rect() { var self = this; return [self.real, self.imag] - }, TMP_Complex_rect_25.$$arity = 0); - Opal.alias(self, "rectangular", "rect"); + }, $Complex_rect$27.$$arity = 0); + $alias(self, "rectangular", "rect"); + + Opal.udef(self, '$' + "step");; - Opal.defn(self, '$to_f', TMP_Complex_to_f_26 = function $$to_f() { + Opal.def(self, '$to_f', $Complex_to_f$28 = function $$to_f() { var self = this; if (self.imag['$=='](0)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "" + "can't convert " + (self) + " into Float") + } else { + self.$raise($$($nesting, 'RangeError'), "" + "can't convert " + (self) + " into Float") }; return self.real.$to_f(); - }, TMP_Complex_to_f_26.$$arity = 0); + }, $Complex_to_f$28.$$arity = 0); - Opal.defn(self, '$to_i', TMP_Complex_to_i_27 = function $$to_i() { + Opal.def(self, '$to_i', $Complex_to_i$29 = function $$to_i() { var self = this; if (self.imag['$=='](0)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "" + "can't convert " + (self) + " into Integer") + } else { + self.$raise($$($nesting, 'RangeError'), "" + "can't convert " + (self) + " into Integer") }; return self.real.$to_i(); - }, TMP_Complex_to_i_27.$$arity = 0); + }, $Complex_to_i$29.$$arity = 0); - Opal.defn(self, '$to_r', TMP_Complex_to_r_28 = function $$to_r() { + Opal.def(self, '$to_r', $Complex_to_r$30 = function $$to_r() { var self = this; if (self.imag['$=='](0)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'RangeError'), "" + "can't convert " + (self) + " into Rational") + } else { + self.$raise($$($nesting, 'RangeError'), "" + "can't convert " + (self) + " into Rational") }; return self.real.$to_r(); - }, TMP_Complex_to_r_28.$$arity = 0); + }, $Complex_to_r$30.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Complex_to_s_29 = function $$to_s() { - var $a, $b, $c, self = this, result = nil; + Opal.def(self, '$to_s', $Complex_to_s$31 = function $$to_s() { + var self = this, result = nil, $ret_or_27 = nil, $ret_or_28 = nil, $ret_or_29 = nil, $ret_or_30 = nil, $ret_or_31 = nil; result = self.real.$inspect(); - if ($truthy(($truthy($a = ($truthy($b = ($truthy($c = Opal.const_get_relative($nesting, 'Number')['$==='](self.imag)) ? self.imag['$nan?']() : $c)) ? $b : self.imag['$positive?']())) ? $a : self.imag['$zero?']()))) { - result = $rb_plus(result, "+") - } else { - result = $rb_plus(result, "-") - }; + result = $rb_plus(result, (function() {if ($truthy((function() {if ($truthy(($ret_or_27 = (function() {if ($truthy(($ret_or_28 = (function() {if ($truthy(($ret_or_29 = $$($nesting, 'Number')['$==='](self.imag)))) { + return self.imag['$nan?']() + } else { + return $ret_or_29 + }; return nil; })()))) { + return $ret_or_28 + } else { + return self.imag['$positive?']() + }; return nil; })()))) { + return $ret_or_27 + } else { + return self.imag['$zero?']() + }; return nil; })())) { + return "+" + } else { + return "-" + }; return nil; })()); result = $rb_plus(result, self.imag.$abs().$inspect()); - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Number')['$==='](self.imag)) ? ($truthy($b = self.imag['$nan?']()) ? $b : self.imag['$infinite?']()) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_30 = $$($nesting, 'Number')['$==='](self.imag)))) { + + if ($truthy(($ret_or_31 = self.imag['$nan?']()))) { + return $ret_or_31 + } else { + return self.imag['$infinite?']() + }; + } else { + return $ret_or_30 + }; return nil; })())) { result = $rb_plus(result, "*")}; return $rb_plus(result, "i"); - }, TMP_Complex_to_s_29.$$arity = 0); - return Opal.const_set($nesting[0], 'I', self.$new(0, 1)); - })($nesting[0], Opal.const_get_relative($nesting, 'Numeric'), $nesting); - return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + }, $Complex_to_s$31.$$arity = 0); + Opal.const_set($nesting[0], 'I', self.$new(0, 1)); + return (Opal.defs(self, '$from_string', $Complex_from_string$32 = function $$from_string(str) { + var self = this; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_Complex_30; + + var re = /[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/, + match = str.match(re), + real, imag, denominator; - - Opal.defn(self, '$Complex', TMP_Kernel_Complex_30 = function $$Complex(real, imag) { - var self = this; + function isFloat() { + return re.test(str); + } - if (imag == null) { - imag = nil; + function cutFloat() { + var match = str.match(re); + var number = match[0]; + str = str.slice(number.length); + return number.replace(/_/g, ''); } - if ($truthy(imag)) { - return Opal.const_get_relative($nesting, 'Complex').$new(real, imag) + + // handles both floats and rationals + function cutNumber() { + if (isFloat()) { + var numerator = parseFloat(cutFloat()); + + if (str[0] === '/') { + // rational real part + str = str.slice(1); + + if (isFloat()) { + var denominator = parseFloat(cutFloat()); + return self.$Rational(numerator, denominator); + } else { + // reverting '/' + str = '/' + str; + return numerator; + } + } else { + // float real part, no denominator + return numerator; + } + } else { + return null; + } + } + + real = cutNumber(); + + if (!real) { + if (str[0] === 'i') { + // i => Complex(0, 1) + return self.$Complex(0, 1); + } + if (str[0] === '-' && str[1] === 'i') { + // -i => Complex(0, -1) + return self.$Complex(0, -1); + } + if (str[0] === '+' && str[1] === 'i') { + // +i => Complex(0, 1) + return self.$Complex(0, 1); + } + // anything => Complex(0, 0) + return self.$Complex(0, 0); + } + + imag = cutNumber(); + if (!imag) { + if (str[0] === 'i') { + // 3i => Complex(0, 3) + return self.$Complex(0, real); } else { - return Opal.const_get_relative($nesting, 'Complex').$new(real, 0) + // 3 => Complex(3, 0) + return self.$Complex(real, 0); + } + } else { + // 3+2i => Complex(3, 2) + return self.$Complex(real, imag); } - }, TMP_Kernel_Complex_30.$$arity = -2) + + }, $Complex_from_string$32.$$arity = 1), nil) && 'from_string'; + })($nesting[0], $$($nesting, 'Numeric'), $nesting); +}; + +Opal.modules["corelib/rational/base"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $klass = Opal.klass; + + Opal.add_stubs(['$convert', '$from_string']); + + (function($base, $parent_nesting) { + var self = $module($base, 'Kernel'); + + var $nesting = [self].concat($parent_nesting), $Kernel_Rational$1; + + return (Opal.def(self, '$Rational', $Kernel_Rational$1 = function $$Rational(numerator, denominator) { + var self = this; + + + + if (denominator == null) { + denominator = 1; + }; + return $$($nesting, 'Rational').$convert(numerator, denominator); + }, $Kernel_Rational$1.$$arity = -2), nil) && 'Rational' })($nesting[0], $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'String'); + + var $nesting = [self].concat($parent_nesting), $String_to_r$2; + + return (Opal.def(self, '$to_r', $String_to_r$2 = function $$to_r() { + var self = this; + + return $$($nesting, 'Rational').$from_string(self) + }, $String_to_r$2.$$arity = 0), nil) && 'to_r' + })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/rational"] = function(Opal) { +Opal.modules["corelib/rational"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_lt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs < rhs : lhs['$<'](rhs); } @@ -18826,27 +22681,27 @@ Opal.modules["corelib/rational"] = function(Opal) { function $rb_le(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $module = Opal.module; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $truthy = Opal.truthy, $alias = Opal.alias; - Opal.add_stubs(['$require', '$to_i', '$==', '$raise', '$<', '$-@', '$new', '$gcd', '$/', '$nil?', '$===', '$reduce', '$to_r', '$equal?', '$!', '$coerce_to!', '$attr_reader', '$to_f', '$numerator', '$denominator', '$<=>', '$-', '$*', '$__coerced__', '$+', '$Rational', '$>', '$**', '$abs', '$ceil', '$with_precision', '$floor', '$to_s', '$<=', '$truncate', '$send', '$convert']); + Opal.add_stubs(['$require', '$to_i', '$==', '$raise', '$<', '$-@', '$new', '$gcd', '$/', '$nil?', '$===', '$reduce', '$to_r', '$equal?', '$!', '$coerce_to!', '$to_f', '$numerator', '$denominator', '$<=>', '$-', '$*', '$__coerced__', '$+', '$Rational', '$>', '$**', '$abs', '$ceil', '$with_precision', '$floor', '$<=', '$truncate', '$send']); self.$require("corelib/numeric"); - (function($base, $super, $parent_nesting) { - function $Rational(){}; - var self = $Rational = $klass($base, $super, 'Rational', $Rational); + self.$require("corelib/rational/base"); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Rational'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Rational_reduce_1, TMP_Rational_convert_2, TMP_Rational_initialize_3, TMP_Rational_numerator_4, TMP_Rational_denominator_5, TMP_Rational_coerce_6, TMP_Rational_$eq$eq_7, TMP_Rational_$lt$eq$gt_8, TMP_Rational_$_9, TMP_Rational_$_10, TMP_Rational_$_11, TMP_Rational_$_12, TMP_Rational_$$_13, TMP_Rational_abs_14, TMP_Rational_ceil_15, TMP_Rational_floor_16, TMP_Rational_hash_17, TMP_Rational_inspect_18, TMP_Rational_rationalize_19, TMP_Rational_round_20, TMP_Rational_to_f_21, TMP_Rational_to_i_22, TMP_Rational_to_r_23, TMP_Rational_to_s_24, TMP_Rational_truncate_25, TMP_Rational_with_precision_26; + var $nesting = [self].concat($parent_nesting), $Rational_reduce$1, $Rational_convert$2, $Rational_initialize$3, $Rational_numerator$4, $Rational_denominator$5, $Rational_coerce$6, $Rational_$eq_eq$7, $Rational_$lt_eq_gt$8, $Rational_$plus$9, $Rational_$minus$10, $Rational_$$11, $Rational_$slash$12, $Rational_$$$13, $Rational_abs$14, $Rational_ceil$15, $Rational_floor$16, $Rational_hash$17, $Rational_inspect$18, $Rational_rationalize$19, $Rational_round$20, $Rational_to_f$21, $Rational_to_i$22, $Rational_to_r$23, $Rational_to_s$24, $Rational_truncate$25, $Rational_with_precision$26, $Rational_from_string$27; - def.num = def.den = nil; + self.$$prototype.num = self.$$prototype.den = nil; - Opal.defs(self, '$reduce', TMP_Rational_reduce_1 = function $$reduce(num, den) { + Opal.defs(self, '$reduce', $Rational_reduce$1 = function $$reduce(num, den) { var self = this, gcd = nil; num = num.$to_i(); den = den.$to_i(); if (den['$=='](0)) { - self.$raise(Opal.const_get_relative($nesting, 'ZeroDivisionError'), "divided by 0") + self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0") } else if ($truthy($rb_lt(den, 0))) { num = num['$-@'](); @@ -18855,217 +22710,270 @@ Opal.modules["corelib/rational"] = function(Opal) { return self.$new(num, den)}; gcd = num.$gcd(den); return self.$new($rb_divide(num, gcd), $rb_divide(den, gcd)); - }, TMP_Rational_reduce_1.$$arity = 2); - Opal.defs(self, '$convert', TMP_Rational_convert_2 = function $$convert(num, den) { - var $a, $b, self = this; + }, $Rational_reduce$1.$$arity = 2); + Opal.defs(self, '$convert', $Rational_convert$2 = function $$convert(num, den) { + var self = this, $ret_or_1 = nil, $ret_or_2 = nil, $ret_or_3 = nil, $ret_or_4 = nil, $ret_or_5 = nil, $ret_or_6 = nil, $ret_or_7 = nil, $ret_or_8 = nil; - if ($truthy(($truthy($a = num['$nil?']()) ? $a : den['$nil?']()))) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "cannot convert nil into Rational")}; - if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Integer')['$==='](num)) ? Opal.const_get_relative($nesting, 'Integer')['$==='](den) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_1 = num['$nil?']()))) { + return $ret_or_1 + } else { + return den['$nil?']() + }; return nil; })())) { + self.$raise($$($nesting, 'TypeError'), "cannot convert nil into Rational")}; + if ($truthy((function() {if ($truthy(($ret_or_2 = $$($nesting, 'Integer')['$==='](num)))) { + return $$($nesting, 'Integer')['$==='](den) + } else { + return $ret_or_2 + }; return nil; })())) { return self.$reduce(num, den)}; - if ($truthy(($truthy($a = ($truthy($b = Opal.const_get_relative($nesting, 'Float')['$==='](num)) ? $b : Opal.const_get_relative($nesting, 'String')['$==='](num))) ? $a : Opal.const_get_relative($nesting, 'Complex')['$==='](num)))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = (function() {if ($truthy(($ret_or_4 = $$($nesting, 'Float')['$==='](num)))) { + return $ret_or_4 + } else { + return $$($nesting, 'String')['$==='](num) + }; return nil; })()))) { + return $ret_or_3 + } else { + return $$($nesting, 'Complex')['$==='](num) + }; return nil; })())) { num = num.$to_r()}; - if ($truthy(($truthy($a = ($truthy($b = Opal.const_get_relative($nesting, 'Float')['$==='](den)) ? $b : Opal.const_get_relative($nesting, 'String')['$==='](den))) ? $a : Opal.const_get_relative($nesting, 'Complex')['$==='](den)))) { + if ($truthy((function() {if ($truthy(($ret_or_5 = (function() {if ($truthy(($ret_or_6 = $$($nesting, 'Float')['$==='](den)))) { + return $ret_or_6 + } else { + return $$($nesting, 'String')['$==='](den) + }; return nil; })()))) { + return $ret_or_5 + } else { + return $$($nesting, 'Complex')['$==='](den) + }; return nil; })())) { den = den.$to_r()}; - if ($truthy(($truthy($a = den['$equal?'](1)) ? Opal.const_get_relative($nesting, 'Integer')['$==='](num)['$!']() : $a))) { - return Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](num, Opal.const_get_relative($nesting, 'Rational'), "to_r") - } else if ($truthy(($truthy($a = Opal.const_get_relative($nesting, 'Numeric')['$==='](num)) ? Opal.const_get_relative($nesting, 'Numeric')['$==='](den) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_7 = den['$equal?'](1)))) { + return $$($nesting, 'Integer')['$==='](num)['$!']() + } else { + return $ret_or_7 + }; return nil; })())) { + return $$($nesting, 'Opal')['$coerce_to!'](num, $$($nesting, 'Rational'), "to_r") + } else if ($truthy((function() {if ($truthy(($ret_or_8 = $$($nesting, 'Numeric')['$==='](num)))) { + return $$($nesting, 'Numeric')['$==='](den) + } else { + return $ret_or_8 + }; return nil; })())) { return $rb_divide(num, den) - } else { + } else { return self.$reduce(num, den) }; - }, TMP_Rational_convert_2.$$arity = 2); - self.$attr_reader("numerator", "denominator"); + }, $Rational_convert$2.$$arity = 2); - Opal.defn(self, '$initialize', TMP_Rational_initialize_3 = function $$initialize(num, den) { + Opal.def(self, '$initialize', $Rational_initialize$3 = function $$initialize(num, den) { var self = this; self.num = num; return (self.den = den); - }, TMP_Rational_initialize_3.$$arity = 2); + }, $Rational_initialize$3.$$arity = 2); - Opal.defn(self, '$numerator', TMP_Rational_numerator_4 = function $$numerator() { + Opal.def(self, '$numerator', $Rational_numerator$4 = function $$numerator() { var self = this; return self.num - }, TMP_Rational_numerator_4.$$arity = 0); + }, $Rational_numerator$4.$$arity = 0); - Opal.defn(self, '$denominator', TMP_Rational_denominator_5 = function $$denominator() { + Opal.def(self, '$denominator', $Rational_denominator$5 = function $$denominator() { var self = this; return self.den - }, TMP_Rational_denominator_5.$$arity = 0); + }, $Rational_denominator$5.$$arity = 0); - Opal.defn(self, '$coerce', TMP_Rational_coerce_6 = function $$coerce(other) { + Opal.def(self, '$coerce', $Rational_coerce$6 = function $$coerce(other) { var self = this, $case = nil; return (function() {$case = other; - if (Opal.const_get_relative($nesting, 'Rational')['$===']($case)) {return [other, self]} - else if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {return [other.$to_r(), self]} - else if (Opal.const_get_relative($nesting, 'Float')['$===']($case)) {return [other, self.$to_f()]} + if ($$($nesting, 'Rational')['$===']($case)) {return [other, self]} + else if ($$($nesting, 'Integer')['$===']($case)) {return [other.$to_r(), self]} + else if ($$($nesting, 'Float')['$===']($case)) {return [other, self.$to_f()]} else { return nil }})() - }, TMP_Rational_coerce_6.$$arity = 1); + }, $Rational_coerce$6.$$arity = 1); - Opal.defn(self, '$==', TMP_Rational_$eq$eq_7 = function(other) { - var $a, self = this, $case = nil; + Opal.def(self, '$==', $Rational_$eq_eq$7 = function(other) { + var self = this, $case = nil, $ret_or_9 = nil, $ret_or_10 = nil; return (function() {$case = other; - if (Opal.const_get_relative($nesting, 'Rational')['$===']($case)) {return (($a = self.num['$=='](other.$numerator())) ? self.den['$=='](other.$denominator()) : self.num['$=='](other.$numerator()))} - else if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {return (($a = self.num['$=='](other)) ? self.den['$=='](1) : self.num['$=='](other))} - else if (Opal.const_get_relative($nesting, 'Float')['$===']($case)) {return self.$to_f()['$=='](other)} + if ($$($nesting, 'Rational')['$===']($case)) {if ($truthy(($ret_or_9 = self.num['$=='](other.$numerator())))) { + return self.den['$=='](other.$denominator()) + } else { + return $ret_or_9 + }} + else if ($$($nesting, 'Integer')['$===']($case)) {if ($truthy(($ret_or_10 = self.num['$=='](other)))) { + return self.den['$=='](1) + } else { + return $ret_or_10 + }} + else if ($$($nesting, 'Float')['$===']($case)) {return self.$to_f()['$=='](other)} else {return other['$=='](self)}})() - }, TMP_Rational_$eq$eq_7.$$arity = 1); + }, $Rational_$eq_eq$7.$$arity = 1); - Opal.defn(self, '$<=>', TMP_Rational_$lt$eq$gt_8 = function(other) { + Opal.def(self, '$<=>', $Rational_$lt_eq_gt$8 = function(other) { var self = this, $case = nil; return (function() {$case = other; - if (Opal.const_get_relative($nesting, 'Rational')['$===']($case)) {return $rb_minus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator()))['$<=>'](0)} - else if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {return $rb_minus(self.num, $rb_times(self.den, other))['$<=>'](0)} - else if (Opal.const_get_relative($nesting, 'Float')['$===']($case)) {return self.$to_f()['$<=>'](other)} + if ($$($nesting, 'Rational')['$===']($case)) {return $rb_minus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator()))['$<=>'](0)} + else if ($$($nesting, 'Integer')['$===']($case)) {return $rb_minus(self.num, $rb_times(self.den, other))['$<=>'](0)} + else if ($$($nesting, 'Float')['$===']($case)) {return self.$to_f()['$<=>'](other)} else {return self.$__coerced__("<=>", other)}})() - }, TMP_Rational_$lt$eq$gt_8.$$arity = 1); + }, $Rational_$lt_eq_gt$8.$$arity = 1); - Opal.defn(self, '$+', TMP_Rational_$_9 = function(other) { + Opal.def(self, '$+', $Rational_$plus$9 = function(other) { var self = this, $case = nil, num = nil, den = nil; return (function() {$case = other; - if (Opal.const_get_relative($nesting, 'Rational')['$===']($case)) { + if ($$($nesting, 'Rational')['$===']($case)) { num = $rb_plus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator())); den = $rb_times(self.den, other.$denominator()); return self.$Rational(num, den);} - else if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {return self.$Rational($rb_plus(self.num, $rb_times(other, self.den)), self.den)} - else if (Opal.const_get_relative($nesting, 'Float')['$===']($case)) {return $rb_plus(self.$to_f(), other)} + else if ($$($nesting, 'Integer')['$===']($case)) {return self.$Rational($rb_plus(self.num, $rb_times(other, self.den)), self.den)} + else if ($$($nesting, 'Float')['$===']($case)) {return $rb_plus(self.$to_f(), other)} else {return self.$__coerced__("+", other)}})() - }, TMP_Rational_$_9.$$arity = 1); + }, $Rational_$plus$9.$$arity = 1); - Opal.defn(self, '$-', TMP_Rational_$_10 = function(other) { + Opal.def(self, '$-', $Rational_$minus$10 = function(other) { var self = this, $case = nil, num = nil, den = nil; return (function() {$case = other; - if (Opal.const_get_relative($nesting, 'Rational')['$===']($case)) { + if ($$($nesting, 'Rational')['$===']($case)) { num = $rb_minus($rb_times(self.num, other.$denominator()), $rb_times(self.den, other.$numerator())); den = $rb_times(self.den, other.$denominator()); return self.$Rational(num, den);} - else if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {return self.$Rational($rb_minus(self.num, $rb_times(other, self.den)), self.den)} - else if (Opal.const_get_relative($nesting, 'Float')['$===']($case)) {return $rb_minus(self.$to_f(), other)} + else if ($$($nesting, 'Integer')['$===']($case)) {return self.$Rational($rb_minus(self.num, $rb_times(other, self.den)), self.den)} + else if ($$($nesting, 'Float')['$===']($case)) {return $rb_minus(self.$to_f(), other)} else {return self.$__coerced__("-", other)}})() - }, TMP_Rational_$_10.$$arity = 1); + }, $Rational_$minus$10.$$arity = 1); - Opal.defn(self, '$*', TMP_Rational_$_11 = function(other) { + Opal.def(self, '$*', $Rational_$$11 = function(other) { var self = this, $case = nil, num = nil, den = nil; return (function() {$case = other; - if (Opal.const_get_relative($nesting, 'Rational')['$===']($case)) { + if ($$($nesting, 'Rational')['$===']($case)) { num = $rb_times(self.num, other.$numerator()); den = $rb_times(self.den, other.$denominator()); return self.$Rational(num, den);} - else if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {return self.$Rational($rb_times(self.num, other), self.den)} - else if (Opal.const_get_relative($nesting, 'Float')['$===']($case)) {return $rb_times(self.$to_f(), other)} + else if ($$($nesting, 'Integer')['$===']($case)) {return self.$Rational($rb_times(self.num, other), self.den)} + else if ($$($nesting, 'Float')['$===']($case)) {return $rb_times(self.$to_f(), other)} else {return self.$__coerced__("*", other)}})() - }, TMP_Rational_$_11.$$arity = 1); + }, $Rational_$$11.$$arity = 1); - Opal.defn(self, '$/', TMP_Rational_$_12 = function(other) { + Opal.def(self, '$/', $Rational_$slash$12 = function(other) { var self = this, $case = nil, num = nil, den = nil; return (function() {$case = other; - if (Opal.const_get_relative($nesting, 'Rational')['$===']($case)) { + if ($$($nesting, 'Rational')['$===']($case)) { num = $rb_times(self.num, other.$denominator()); den = $rb_times(self.den, other.$numerator()); return self.$Rational(num, den);} - else if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {if (other['$=='](0)) { + else if ($$($nesting, 'Integer')['$===']($case)) {if (other['$=='](0)) { return $rb_divide(self.$to_f(), 0.0) - } else { + } else { return self.$Rational(self.num, $rb_times(self.den, other)) }} - else if (Opal.const_get_relative($nesting, 'Float')['$===']($case)) {return $rb_divide(self.$to_f(), other)} + else if ($$($nesting, 'Float')['$===']($case)) {return $rb_divide(self.$to_f(), other)} else {return self.$__coerced__("/", other)}})() - }, TMP_Rational_$_12.$$arity = 1); + }, $Rational_$slash$12.$$arity = 1); - Opal.defn(self, '$**', TMP_Rational_$$_13 = function(other) { - var $a, self = this, $case = nil; + Opal.def(self, '$**', $Rational_$$$13 = function(other) { + var self = this, $case = nil, $ret_or_11 = nil, $ret_or_12 = nil; return (function() {$case = other; - if (Opal.const_get_relative($nesting, 'Integer')['$===']($case)) {if ($truthy((($a = self['$=='](0)) ? $rb_lt(other, 0) : self['$=='](0)))) { - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Float'), 'INFINITY') + if ($$($nesting, 'Integer')['$===']($case)) {if ($truthy((function() {if ($truthy(($ret_or_11 = self['$=='](0)))) { + return $rb_lt(other, 0) + } else { + return $ret_or_11 + }; return nil; })())) { + return $$$($$($nesting, 'Float'), 'INFINITY') } else if ($truthy($rb_gt(other, 0))) { return self.$Rational(self.num['$**'](other), self.den['$**'](other)) } else if ($truthy($rb_lt(other, 0))) { return self.$Rational(self.den['$**'](other['$-@']()), self.num['$**'](other['$-@']())) - } else { + } else { return self.$Rational(1, 1) }} - else if (Opal.const_get_relative($nesting, 'Float')['$===']($case)) {return self.$to_f()['$**'](other)} - else if (Opal.const_get_relative($nesting, 'Rational')['$===']($case)) {if (other['$=='](0)) { + else if ($$($nesting, 'Float')['$===']($case)) {return self.$to_f()['$**'](other)} + else if ($$($nesting, 'Rational')['$===']($case)) {if (other['$=='](0)) { return self.$Rational(1, 1) } else if (other.$denominator()['$=='](1)) { if ($truthy($rb_lt(other, 0))) { return self.$Rational(self.den['$**'](other.$numerator().$abs()), self.num['$**'](other.$numerator().$abs())) - } else { + } else { return self.$Rational(self.num['$**'](other.$numerator()), self.den['$**'](other.$numerator())) } - } else if ($truthy((($a = self['$=='](0)) ? $rb_lt(other, 0) : self['$=='](0)))) { - return self.$raise(Opal.const_get_relative($nesting, 'ZeroDivisionError'), "divided by 0") - } else { + } else if ($truthy((function() {if ($truthy(($ret_or_12 = self['$=='](0)))) { + return $rb_lt(other, 0) + } else { + return $ret_or_12 + }; return nil; })())) { + return self.$raise($$($nesting, 'ZeroDivisionError'), "divided by 0") + } else { return self.$to_f()['$**'](other) }} else {return self.$__coerced__("**", other)}})() - }, TMP_Rational_$$_13.$$arity = 1); + }, $Rational_$$$13.$$arity = 1); - Opal.defn(self, '$abs', TMP_Rational_abs_14 = function $$abs() { + Opal.def(self, '$abs', $Rational_abs$14 = function $$abs() { var self = this; return self.$Rational(self.num.$abs(), self.den.$abs()) - }, TMP_Rational_abs_14.$$arity = 0); + }, $Rational_abs$14.$$arity = 0); - Opal.defn(self, '$ceil', TMP_Rational_ceil_15 = function $$ceil(precision) { + Opal.def(self, '$ceil', $Rational_ceil$15 = function $$ceil(precision) { var self = this; + + if (precision == null) { precision = 0; - } + }; if (precision['$=='](0)) { return $rb_divide(self.num['$-@'](), self.den)['$-@']().$ceil() - } else { + } else { return self.$with_precision("ceil", precision) - } - }, TMP_Rational_ceil_15.$$arity = -1); - Opal.alias(self, "divide", "/"); + }; + }, $Rational_ceil$15.$$arity = -1); + $alias(self, "divide", "/"); - Opal.defn(self, '$floor', TMP_Rational_floor_16 = function $$floor(precision) { + Opal.def(self, '$floor', $Rational_floor$16 = function $$floor(precision) { var self = this; + + if (precision == null) { precision = 0; - } + }; if (precision['$=='](0)) { return $rb_divide(self.num['$-@'](), self.den)['$-@']().$floor() - } else { + } else { return self.$with_precision("floor", precision) - } - }, TMP_Rational_floor_16.$$arity = -1); + }; + }, $Rational_floor$16.$$arity = -1); - Opal.defn(self, '$hash', TMP_Rational_hash_17 = function $$hash() { + Opal.def(self, '$hash', $Rational_hash$17 = function $$hash() { var self = this; return "" + "Rational:" + (self.num) + ":" + (self.den) - }, TMP_Rational_hash_17.$$arity = 0); + }, $Rational_hash$17.$$arity = 0); - Opal.defn(self, '$inspect', TMP_Rational_inspect_18 = function $$inspect() { + Opal.def(self, '$inspect', $Rational_inspect$18 = function $$inspect() { var self = this; - return "" + "(" + (self.$to_s()) + ")" - }, TMP_Rational_inspect_18.$$arity = 0); - Opal.alias(self, "quo", "/"); + return "" + "(" + (self) + ")" + }, $Rational_inspect$18.$$arity = 0); + $alias(self, "quo", "/"); - Opal.defn(self, '$rationalize', TMP_Rational_rationalize_19 = function $$rationalize(eps) { + Opal.def(self, '$rationalize', $Rational_rationalize$19 = function $$rationalize(eps) { var self = this; + ; + if (arguments.length > 1) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..1)"); + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (" + (arguments.length) + " for 0..1)"); } if (eps == null) { @@ -19105,18 +23013,19 @@ Opal.modules["corelib/rational"] = function(Opal) { } return self.$Rational(c * p1 + p0, c * q1 + q0); + ; + }, $Rational_rationalize$19.$$arity = -1); - }, TMP_Rational_rationalize_19.$$arity = -1); - - Opal.defn(self, '$round', TMP_Rational_round_20 = function $$round(precision) { + Opal.def(self, '$round', $Rational_round$20 = function $$round(precision) { var self = this, num = nil, den = nil, approx = nil; + + if (precision == null) { precision = 0; - } - + }; if (precision['$=='](0)) { - } else { + } else { return self.$with_precision("round", precision) }; if (self.num['$=='](0)) { @@ -19128,87 +23037,115 @@ Opal.modules["corelib/rational"] = function(Opal) { approx = $rb_divide(num, den).$truncate(); if ($truthy($rb_lt(self.num, 0))) { return approx['$-@']() - } else { + } else { return approx }; - }, TMP_Rational_round_20.$$arity = -1); + }, $Rational_round$20.$$arity = -1); - Opal.defn(self, '$to_f', TMP_Rational_to_f_21 = function $$to_f() { + Opal.def(self, '$to_f', $Rational_to_f$21 = function $$to_f() { var self = this; return $rb_divide(self.num, self.den) - }, TMP_Rational_to_f_21.$$arity = 0); + }, $Rational_to_f$21.$$arity = 0); - Opal.defn(self, '$to_i', TMP_Rational_to_i_22 = function $$to_i() { + Opal.def(self, '$to_i', $Rational_to_i$22 = function $$to_i() { var self = this; return self.$truncate() - }, TMP_Rational_to_i_22.$$arity = 0); + }, $Rational_to_i$22.$$arity = 0); - Opal.defn(self, '$to_r', TMP_Rational_to_r_23 = function $$to_r() { + Opal.def(self, '$to_r', $Rational_to_r$23 = function $$to_r() { var self = this; return self - }, TMP_Rational_to_r_23.$$arity = 0); + }, $Rational_to_r$23.$$arity = 0); - Opal.defn(self, '$to_s', TMP_Rational_to_s_24 = function $$to_s() { + Opal.def(self, '$to_s', $Rational_to_s$24 = function $$to_s() { var self = this; return "" + (self.num) + "/" + (self.den) - }, TMP_Rational_to_s_24.$$arity = 0); + }, $Rational_to_s$24.$$arity = 0); - Opal.defn(self, '$truncate', TMP_Rational_truncate_25 = function $$truncate(precision) { + Opal.def(self, '$truncate', $Rational_truncate$25 = function $$truncate(precision) { var self = this; + + if (precision == null) { precision = 0; - } + }; if (precision['$=='](0)) { if ($truthy($rb_lt(self.num, 0))) { return self.$ceil() - } else { + } else { return self.$floor() } - } else { + } else { return self.$with_precision("truncate", precision) - } - }, TMP_Rational_truncate_25.$$arity = -1); - return (Opal.defn(self, '$with_precision', TMP_Rational_with_precision_26 = function $$with_precision(method, precision) { + }; + }, $Rational_truncate$25.$$arity = -1); + + Opal.def(self, '$with_precision', $Rational_with_precision$26 = function $$with_precision(method, precision) { var self = this, p = nil, s = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](precision))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "not an Integer") + if ($truthy($$($nesting, 'Integer')['$==='](precision))) { + } else { + self.$raise($$($nesting, 'TypeError'), "not an Integer") }; p = (10)['$**'](precision); s = $rb_times(self, p); if ($truthy($rb_lt(precision, 1))) { return $rb_divide(s.$send(method), p).$to_i() - } else { + } else { return self.$Rational(s.$send(method), p) }; - }, TMP_Rational_with_precision_26.$$arity = 2), nil) && 'with_precision'; - })($nesting[0], Opal.const_get_relative($nesting, 'Numeric'), $nesting); - return (function($base, $parent_nesting) { - var $Kernel, self = $Kernel = $module($base, 'Kernel'); + }, $Rational_with_precision$26.$$arity = 2); + return (Opal.defs(self, '$from_string', $Rational_from_string$27 = function $$from_string(string) { + var self = this; + + + var str = string.trimLeft(), + re = /^[+-]?[\d_]+(\.[\d_]+)?/, + match = str.match(re), + numerator, denominator; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Kernel_Rational_27; + function isFloat() { + return re.test(str); + } - - Opal.defn(self, '$Rational', TMP_Kernel_Rational_27 = function $$Rational(numerator, denominator) { - var self = this; + function cutFloat() { + var match = str.match(re); + var number = match[0]; + str = str.slice(number.length); + return number.replace(/_/g, ''); + } - if (denominator == null) { - denominator = 1; + if (isFloat()) { + numerator = parseFloat(cutFloat()); + + if (str[0] === '/') { + // rational real part + str = str.slice(1); + + if (isFloat()) { + denominator = parseFloat(cutFloat()); + return self.$Rational(numerator, denominator); + } else { + return self.$Rational(numerator, 1); + } + } else { + return self.$Rational(numerator, 1); + } + } else { + return self.$Rational(0, 1); } - return Opal.const_get_relative($nesting, 'Rational').$convert(numerator, denominator) - }, TMP_Kernel_Rational_27.$$arity = -2) - })($nesting[0], $nesting); + + }, $Rational_from_string$27.$$arity = 1), nil) && 'from_string'; + })($nesting[0], $$($nesting, 'Numeric'), $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/time"] = function(Opal) { +Opal.modules["corelib/time"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } @@ -19227,34 +23164,35 @@ Opal.modules["corelib/time"] = function(Opal) { function $rb_le(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs <= rhs : lhs['$<='](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $slice = Opal.slice, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy, $range = Opal.range; Opal.add_stubs(['$require', '$include', '$===', '$raise', '$coerce_to!', '$respond_to?', '$to_str', '$to_i', '$new', '$<=>', '$to_f', '$nil?', '$>', '$<', '$strftime', '$year', '$month', '$day', '$+', '$round', '$/', '$-', '$copy_instance_variables', '$initialize_dup', '$is_a?', '$zero?', '$wday', '$utc?', '$mon', '$yday', '$hour', '$min', '$sec', '$rjust', '$ljust', '$zone', '$to_s', '$[]', '$cweek_cyear', '$isdst', '$<=', '$!=', '$==', '$ceil']); self.$require("corelib/comparable"); return (function($base, $super, $parent_nesting) { - function $Time(){}; - var self = $Time = $klass($base, $super, 'Time', $Time); + var self = $klass($base, $super, 'Time'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Time_at_1, TMP_Time_new_2, TMP_Time_local_3, TMP_Time_gm_4, TMP_Time_now_5, TMP_Time_$_6, TMP_Time_$_7, TMP_Time_$lt$eq$gt_8, TMP_Time_$eq$eq_9, TMP_Time_asctime_10, TMP_Time_day_11, TMP_Time_yday_12, TMP_Time_isdst_13, TMP_Time_dup_14, TMP_Time_eql$q_15, TMP_Time_friday$q_16, TMP_Time_hash_17, TMP_Time_hour_18, TMP_Time_inspect_19, TMP_Time_min_20, TMP_Time_mon_21, TMP_Time_monday$q_22, TMP_Time_saturday$q_23, TMP_Time_sec_24, TMP_Time_succ_25, TMP_Time_usec_26, TMP_Time_zone_27, TMP_Time_getgm_28, TMP_Time_gmtime_29, TMP_Time_gmt$q_30, TMP_Time_gmt_offset_31, TMP_Time_strftime_32, TMP_Time_sunday$q_33, TMP_Time_thursday$q_34, TMP_Time_to_a_35, TMP_Time_to_f_36, TMP_Time_to_i_37, TMP_Time_tuesday$q_38, TMP_Time_wday_39, TMP_Time_wednesday$q_40, TMP_Time_year_41, TMP_Time_cweek_cyear_42; + var $nesting = [self].concat($parent_nesting), $Time_at$1, $Time_new$2, $Time_local$3, $Time_gm$4, $Time_now$5, $Time_$plus$6, $Time_$minus$7, $Time_$lt_eq_gt$8, $Time_$eq_eq$9, $Time_asctime$10, $Time_day$11, $Time_yday$12, $Time_isdst$13, $Time_dup$14, $Time_eql$ques$15, $Time_friday$ques$16, $Time_hash$17, $Time_hour$18, $Time_inspect$19, $Time_min$20, $Time_mon$21, $Time_monday$ques$22, $Time_saturday$ques$23, $Time_sec$24, $Time_succ$25, $Time_usec$26, $Time_zone$27, $Time_getgm$28, $Time_gmtime$29, $Time_gmt$ques$30, $Time_gmt_offset$31, $Time_strftime$32, $Time_sunday$ques$33, $Time_thursday$ques$34, $Time_to_a$35, $Time_to_f$36, $Time_to_i$37, $Time_tuesday$ques$38, $Time_wday$39, $Time_wednesday$ques$40, $Time_year$41, $Time_cweek_cyear$42; - self.$include(Opal.const_get_relative($nesting, 'Comparable')); + self.$include($$($nesting, 'Comparable')); var days_of_week = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"], short_days = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], short_months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], long_months = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]; ; - Opal.defs(self, '$at', TMP_Time_at_1 = function $$at(seconds, frac) { + Opal.defs(self, '$at', $Time_at$1 = function $$at(seconds, frac) { var self = this; + ; + var result; - if (Opal.const_get_relative($nesting, 'Time')['$==='](seconds)) { + if ($$($nesting, 'Time')['$==='](seconds)) { if (frac !== undefined) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "can't convert Time into an exact number") + self.$raise($$($nesting, 'TypeError'), "can't convert Time into an exact number") } result = new Date(seconds.getTime()); result.is_utc = seconds.is_utc; @@ -19262,7 +23200,7 @@ Opal.modules["corelib/time"] = function(Opal) { } if (!seconds.$$is_number) { - seconds = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](seconds, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + seconds = $$($nesting, 'Opal')['$coerce_to!'](seconds, $$($nesting, 'Integer'), "to_int"); } if (frac === undefined) { @@ -19270,18 +23208,18 @@ Opal.modules["corelib/time"] = function(Opal) { } if (!frac.$$is_number) { - frac = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](frac, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + frac = $$($nesting, 'Opal')['$coerce_to!'](frac, $$($nesting, 'Integer'), "to_int"); } return new Date(seconds * 1000 + (frac / 1000)); - - }, TMP_Time_at_1.$$arity = -2); + ; + }, $Time_at$1.$$arity = -2); function time_params(year, month, day, hour, min, sec) { if (year.$$is_string) { year = parseInt(year, 10); } else { - year = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](year, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + year = $$($nesting, 'Opal')['$coerce_to!'](year, $$($nesting, 'Integer'), "to_int"); } if (month === nil) { @@ -19305,12 +23243,12 @@ Opal.modules["corelib/time"] = function(Opal) { default: month = (month).$to_i(); } } else { - month = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](month, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + month = $$($nesting, 'Opal')['$coerce_to!'](month, $$($nesting, 'Integer'), "to_int"); } } if (month < 1 || month > 12) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "month out of range: " + (month)) + self.$raise($$($nesting, 'ArgumentError'), "" + "month out of range: " + (month)) } month = month - 1; @@ -19319,11 +23257,11 @@ Opal.modules["corelib/time"] = function(Opal) { } else if (day.$$is_string) { day = parseInt(day, 10); } else { - day = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](day, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + day = $$($nesting, 'Opal')['$coerce_to!'](day, $$($nesting, 'Integer'), "to_int"); } if (day < 1 || day > 31) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "day out of range: " + (day)) + self.$raise($$($nesting, 'ArgumentError'), "" + "day out of range: " + (day)) } if (hour === nil) { @@ -19331,11 +23269,11 @@ Opal.modules["corelib/time"] = function(Opal) { } else if (hour.$$is_string) { hour = parseInt(hour, 10); } else { - hour = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](hour, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + hour = $$($nesting, 'Opal')['$coerce_to!'](hour, $$($nesting, 'Integer'), "to_int"); } if (hour < 0 || hour > 24) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "hour out of range: " + (hour)) + self.$raise($$($nesting, 'ArgumentError'), "" + "hour out of range: " + (hour)) } if (min === nil) { @@ -19343,11 +23281,11 @@ Opal.modules["corelib/time"] = function(Opal) { } else if (min.$$is_string) { min = parseInt(min, 10); } else { - min = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](min, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + min = $$($nesting, 'Opal')['$coerce_to!'](min, $$($nesting, 'Integer'), "to_int"); } if (min < 0 || min > 59) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "min out of range: " + (min)) + self.$raise($$($nesting, 'ArgumentError'), "" + "min out of range: " + (min)) } if (sec === nil) { @@ -19356,38 +23294,46 @@ Opal.modules["corelib/time"] = function(Opal) { if (sec.$$is_string) { sec = parseInt(sec, 10); } else { - sec = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](sec, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + sec = $$($nesting, 'Opal')['$coerce_to!'](sec, $$($nesting, 'Integer'), "to_int"); } } if (sec < 0 || sec > 60) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "sec out of range: " + (sec)) + self.$raise($$($nesting, 'ArgumentError'), "" + "sec out of range: " + (sec)) } return [year, month, day, hour, min, sec]; } ; - Opal.defs(self, '$new', TMP_Time_new_2 = function(year, month, day, hour, min, sec, utc_offset) { + Opal.defs(self, '$new', $Time_new$2 = function(year, month, day, hour, min, sec, utc_offset) { var self = this; + + ; + if (month == null) { month = nil; - } + }; + if (day == null) { day = nil; - } + }; + if (hour == null) { hour = nil; - } + }; + if (min == null) { min = nil; - } + }; + if (sec == null) { sec = nil; - } + }; + if (utc_offset == null) { utc_offset = nil; - } + }; var args, result; @@ -19396,7 +23342,7 @@ Opal.modules["corelib/time"] = function(Opal) { } if (utc_offset !== nil) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "Opal does not support explicitly specifying UTC offset for Time") + self.$raise($$($nesting, 'ArgumentError'), "Opal does not support explicitly specifying UTC offset for Time") } args = time_params(year, month, day, hour, min, sec); @@ -19412,38 +23358,48 @@ Opal.modules["corelib/time"] = function(Opal) { result.setFullYear(year); } return result; - - }, TMP_Time_new_2.$$arity = -1); - Opal.defs(self, '$local', TMP_Time_local_3 = function $$local(year, month, day, hour, min, sec, millisecond, _dummy1, _dummy2, _dummy3) { + ; + }, $Time_new$2.$$arity = -1); + Opal.defs(self, '$local', $Time_local$3 = function $$local(year, month, day, hour, min, sec, millisecond, _dummy1, _dummy2, _dummy3) { var self = this; + + if (month == null) { month = nil; - } + }; + if (day == null) { day = nil; - } + }; + if (hour == null) { hour = nil; - } + }; + if (min == null) { min = nil; - } + }; + if (sec == null) { sec = nil; - } + }; + if (millisecond == null) { millisecond = nil; - } + }; + if (_dummy1 == null) { _dummy1 = nil; - } + }; + if (_dummy2 == null) { _dummy2 = nil; - } + }; + if (_dummy3 == null) { _dummy3 = nil; - } + }; var args, result; @@ -19470,38 +23426,48 @@ Opal.modules["corelib/time"] = function(Opal) { result.setFullYear(year); } return result; - - }, TMP_Time_local_3.$$arity = -2); - Opal.defs(self, '$gm', TMP_Time_gm_4 = function $$gm(year, month, day, hour, min, sec, millisecond, _dummy1, _dummy2, _dummy3) { + ; + }, $Time_local$3.$$arity = -2); + Opal.defs(self, '$gm', $Time_gm$4 = function $$gm(year, month, day, hour, min, sec, millisecond, _dummy1, _dummy2, _dummy3) { var self = this; + + if (month == null) { month = nil; - } + }; + if (day == null) { day = nil; - } + }; + if (hour == null) { hour = nil; - } + }; + if (min == null) { min = nil; - } + }; + if (sec == null) { sec = nil; - } + }; + if (millisecond == null) { millisecond = nil; - } + }; + if (_dummy1 == null) { _dummy1 = nil; - } + }; + if (_dummy2 == null) { _dummy2 = nil; - } + }; + if (_dummy3 == null) { _dummy3 = nil; - } + }; var args, result; @@ -19529,59 +23495,59 @@ Opal.modules["corelib/time"] = function(Opal) { } result.is_utc = true; return result; - - }, TMP_Time_gm_4.$$arity = -2); + ; + }, $Time_gm$4.$$arity = -2); (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); - Opal.alias(self, "mktime", "local"); - return Opal.alias(self, "utc", "gm"); + $alias(self, "mktime", "local"); + return $alias(self, "utc", "gm"); })(Opal.get_singleton_class(self), $nesting); - Opal.defs(self, '$now', TMP_Time_now_5 = function $$now() { + Opal.defs(self, '$now', $Time_now$5 = function $$now() { var self = this; return self.$new() - }, TMP_Time_now_5.$$arity = 0); + }, $Time_now$5.$$arity = 0); - Opal.defn(self, '$+', TMP_Time_$_6 = function(other) { + Opal.def(self, '$+', $Time_$plus$6 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Time')['$==='](other))) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "time + time?")}; + if ($truthy($$($nesting, 'Time')['$==='](other))) { + self.$raise($$($nesting, 'TypeError'), "time + time?")}; if (!other.$$is_number) { - other = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](other, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Integer'), "to_int"); } var result = new Date(self.getTime() + (other * 1000)); result.is_utc = self.is_utc; return result; ; - }, TMP_Time_$_6.$$arity = 1); + }, $Time_$plus$6.$$arity = 1); - Opal.defn(self, '$-', TMP_Time_$_7 = function(other) { + Opal.def(self, '$-', $Time_$minus$7 = function(other) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Time')['$==='](other))) { + if ($truthy($$($nesting, 'Time')['$==='](other))) { return (self.getTime() - other.getTime()) / 1000}; if (!other.$$is_number) { - other = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](other, Opal.const_get_relative($nesting, 'Integer'), "to_int"); + other = $$($nesting, 'Opal')['$coerce_to!'](other, $$($nesting, 'Integer'), "to_int"); } var result = new Date(self.getTime() - (other * 1000)); result.is_utc = self.is_utc; return result; ; - }, TMP_Time_$_7.$$arity = 1); + }, $Time_$minus$7.$$arity = 1); - Opal.defn(self, '$<=>', TMP_Time_$lt$eq$gt_8 = function(other) { + Opal.def(self, '$<=>', $Time_$lt_eq_gt$8 = function(other) { var self = this, r = nil; - if ($truthy(Opal.const_get_relative($nesting, 'Time')['$==='](other))) { + if ($truthy($$($nesting, 'Time')['$==='](other))) { return self.$to_f()['$<=>'](other.$to_f()) - } else { + } else { r = other['$<=>'](self); if ($truthy(r['$nil?']())) { @@ -19590,42 +23556,46 @@ Opal.modules["corelib/time"] = function(Opal) { return -1 } else if ($truthy($rb_lt(r, 0))) { return 1 - } else { + } else { return 0 }; } - }, TMP_Time_$lt$eq$gt_8.$$arity = 1); + }, $Time_$lt_eq_gt$8.$$arity = 1); - Opal.defn(self, '$==', TMP_Time_$eq$eq_9 = function(other) { - var $a, self = this; + Opal.def(self, '$==', $Time_$eq_eq$9 = function(other) { + var self = this, $ret_or_1 = nil; - return ($truthy($a = Opal.const_get_relative($nesting, 'Time')['$==='](other)) ? self.$to_f() === other.$to_f() : $a) - }, TMP_Time_$eq$eq_9.$$arity = 1); + if ($truthy(($ret_or_1 = $$($nesting, 'Time')['$==='](other)))) { + return self.$to_f() === other.$to_f() + } else { + return $ret_or_1 + } + }, $Time_$eq_eq$9.$$arity = 1); - Opal.defn(self, '$asctime', TMP_Time_asctime_10 = function $$asctime() { + Opal.def(self, '$asctime', $Time_asctime$10 = function $$asctime() { var self = this; return self.$strftime("%a %b %e %H:%M:%S %Y") - }, TMP_Time_asctime_10.$$arity = 0); - Opal.alias(self, "ctime", "asctime"); + }, $Time_asctime$10.$$arity = 0); + $alias(self, "ctime", "asctime"); - Opal.defn(self, '$day', TMP_Time_day_11 = function $$day() { + Opal.def(self, '$day', $Time_day$11 = function $$day() { var self = this; - return self.is_utc ? self.getUTCDate() : self.getDate() - }, TMP_Time_day_11.$$arity = 0); + return self.is_utc ? self.getUTCDate() : self.getDate(); + }, $Time_day$11.$$arity = 0); - Opal.defn(self, '$yday', TMP_Time_yday_12 = function $$yday() { + Opal.def(self, '$yday', $Time_yday$12 = function $$yday() { var self = this, start_of_year = nil, start_of_day = nil, one_day = nil; - start_of_year = Opal.const_get_relative($nesting, 'Time').$new(self.$year()).$to_i(); - start_of_day = Opal.const_get_relative($nesting, 'Time').$new(self.$year(), self.$month(), self.$day()).$to_i(); + start_of_year = $$($nesting, 'Time').$new(self.$year()).$to_i(); + start_of_day = $$($nesting, 'Time').$new(self.$year(), self.$month(), self.$day()).$to_i(); one_day = 86400; return $rb_plus($rb_divide($rb_minus(start_of_day, start_of_year), one_day).$round(), 1); - }, TMP_Time_yday_12.$$arity = 0); + }, $Time_yday$12.$$arity = 0); - Opal.defn(self, '$isdst', TMP_Time_isdst_13 = function $$isdst() { + Opal.def(self, '$isdst', $Time_isdst$13 = function $$isdst() { var self = this; @@ -19633,10 +23603,10 @@ Opal.modules["corelib/time"] = function(Opal) { jul = new Date(self.getFullYear(), 6, 1); return self.getTimezoneOffset() < Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset()); - }, TMP_Time_isdst_13.$$arity = 0); - Opal.alias(self, "dst?", "isdst"); + }, $Time_isdst$13.$$arity = 0); + $alias(self, "dst?", "isdst"); - Opal.defn(self, '$dup', TMP_Time_dup_14 = function $$dup() { + Opal.def(self, '$dup', $Time_dup$14 = function $$dup() { var self = this, copy = nil; @@ -19644,75 +23614,79 @@ Opal.modules["corelib/time"] = function(Opal) { copy.$copy_instance_variables(self); copy.$initialize_dup(self); return copy; - }, TMP_Time_dup_14.$$arity = 0); + }, $Time_dup$14.$$arity = 0); - Opal.defn(self, '$eql?', TMP_Time_eql$q_15 = function(other) { - var $a, self = this; + Opal.def(self, '$eql?', $Time_eql$ques$15 = function(other) { + var self = this, $ret_or_2 = nil; - return ($truthy($a = other['$is_a?'](Opal.const_get_relative($nesting, 'Time'))) ? self['$<=>'](other)['$zero?']() : $a) - }, TMP_Time_eql$q_15.$$arity = 1); + if ($truthy(($ret_or_2 = other['$is_a?']($$($nesting, 'Time'))))) { + return self['$<=>'](other)['$zero?']() + } else { + return $ret_or_2 + } + }, $Time_eql$ques$15.$$arity = 1); - Opal.defn(self, '$friday?', TMP_Time_friday$q_16 = function() { + Opal.def(self, '$friday?', $Time_friday$ques$16 = function() { var self = this; return self.$wday() == 5 - }, TMP_Time_friday$q_16.$$arity = 0); + }, $Time_friday$ques$16.$$arity = 0); - Opal.defn(self, '$hash', TMP_Time_hash_17 = function $$hash() { + Opal.def(self, '$hash', $Time_hash$17 = function $$hash() { var self = this; - return 'Time:' + self.getTime() - }, TMP_Time_hash_17.$$arity = 0); + return 'Time:' + self.getTime(); + }, $Time_hash$17.$$arity = 0); - Opal.defn(self, '$hour', TMP_Time_hour_18 = function $$hour() { + Opal.def(self, '$hour', $Time_hour$18 = function $$hour() { var self = this; - return self.is_utc ? self.getUTCHours() : self.getHours() - }, TMP_Time_hour_18.$$arity = 0); + return self.is_utc ? self.getUTCHours() : self.getHours(); + }, $Time_hour$18.$$arity = 0); - Opal.defn(self, '$inspect', TMP_Time_inspect_19 = function $$inspect() { + Opal.def(self, '$inspect', $Time_inspect$19 = function $$inspect() { var self = this; if ($truthy(self['$utc?']())) { return self.$strftime("%Y-%m-%d %H:%M:%S UTC") - } else { + } else { return self.$strftime("%Y-%m-%d %H:%M:%S %z") } - }, TMP_Time_inspect_19.$$arity = 0); - Opal.alias(self, "mday", "day"); + }, $Time_inspect$19.$$arity = 0); + $alias(self, "mday", "day"); - Opal.defn(self, '$min', TMP_Time_min_20 = function $$min() { + Opal.def(self, '$min', $Time_min$20 = function $$min() { var self = this; - return self.is_utc ? self.getUTCMinutes() : self.getMinutes() - }, TMP_Time_min_20.$$arity = 0); + return self.is_utc ? self.getUTCMinutes() : self.getMinutes(); + }, $Time_min$20.$$arity = 0); - Opal.defn(self, '$mon', TMP_Time_mon_21 = function $$mon() { + Opal.def(self, '$mon', $Time_mon$21 = function $$mon() { var self = this; - return (self.is_utc ? self.getUTCMonth() : self.getMonth()) + 1 - }, TMP_Time_mon_21.$$arity = 0); + return (self.is_utc ? self.getUTCMonth() : self.getMonth()) + 1; + }, $Time_mon$21.$$arity = 0); - Opal.defn(self, '$monday?', TMP_Time_monday$q_22 = function() { + Opal.def(self, '$monday?', $Time_monday$ques$22 = function() { var self = this; return self.$wday() == 1 - }, TMP_Time_monday$q_22.$$arity = 0); - Opal.alias(self, "month", "mon"); + }, $Time_monday$ques$22.$$arity = 0); + $alias(self, "month", "mon"); - Opal.defn(self, '$saturday?', TMP_Time_saturday$q_23 = function() { + Opal.def(self, '$saturday?', $Time_saturday$ques$23 = function() { var self = this; return self.$wday() == 6 - }, TMP_Time_saturday$q_23.$$arity = 0); + }, $Time_saturday$ques$23.$$arity = 0); - Opal.defn(self, '$sec', TMP_Time_sec_24 = function $$sec() { + Opal.def(self, '$sec', $Time_sec$24 = function $$sec() { var self = this; - return self.is_utc ? self.getUTCSeconds() : self.getSeconds() - }, TMP_Time_sec_24.$$arity = 0); + return self.is_utc ? self.getUTCSeconds() : self.getSeconds(); + }, $Time_sec$24.$$arity = 0); - Opal.defn(self, '$succ', TMP_Time_succ_25 = function $$succ() { + Opal.def(self, '$succ', $Time_succ$25 = function $$succ() { var self = this; @@ -19720,15 +23694,15 @@ Opal.modules["corelib/time"] = function(Opal) { result.is_utc = self.is_utc; return result; - }, TMP_Time_succ_25.$$arity = 0); + }, $Time_succ$25.$$arity = 0); - Opal.defn(self, '$usec', TMP_Time_usec_26 = function $$usec() { + Opal.def(self, '$usec', $Time_usec$26 = function $$usec() { var self = this; - return self.getMilliseconds() * 1000 - }, TMP_Time_usec_26.$$arity = 0); + return self.getMilliseconds() * 1000; + }, $Time_usec$26.$$arity = 0); - Opal.defn(self, '$zone', TMP_Time_zone_27 = function $$zone() { + Opal.def(self, '$zone', $Time_zone$27 = function $$zone() { var self = this; @@ -19749,9 +23723,9 @@ Opal.modules["corelib/time"] = function(Opal) { return result; } - }, TMP_Time_zone_27.$$arity = 0); + }, $Time_zone$27.$$arity = 0); - Opal.defn(self, '$getgm', TMP_Time_getgm_28 = function $$getgm() { + Opal.def(self, '$getgm', $Time_getgm$28 = function $$getgm() { var self = this; @@ -19759,32 +23733,32 @@ Opal.modules["corelib/time"] = function(Opal) { result.is_utc = true; return result; - }, TMP_Time_getgm_28.$$arity = 0); - Opal.alias(self, "getutc", "getgm"); + }, $Time_getgm$28.$$arity = 0); + $alias(self, "getutc", "getgm"); - Opal.defn(self, '$gmtime', TMP_Time_gmtime_29 = function $$gmtime() { + Opal.def(self, '$gmtime', $Time_gmtime$29 = function $$gmtime() { var self = this; self.is_utc = true; return self; - }, TMP_Time_gmtime_29.$$arity = 0); - Opal.alias(self, "utc", "gmtime"); + }, $Time_gmtime$29.$$arity = 0); + $alias(self, "utc", "gmtime"); - Opal.defn(self, '$gmt?', TMP_Time_gmt$q_30 = function() { + Opal.def(self, '$gmt?', $Time_gmt$ques$30 = function() { var self = this; - return self.is_utc === true - }, TMP_Time_gmt$q_30.$$arity = 0); + return self.is_utc === true; + }, $Time_gmt$ques$30.$$arity = 0); - Opal.defn(self, '$gmt_offset', TMP_Time_gmt_offset_31 = function $$gmt_offset() { + Opal.def(self, '$gmt_offset', $Time_gmt_offset$31 = function $$gmt_offset() { var self = this; - return -self.getTimezoneOffset() * 60 - }, TMP_Time_gmt_offset_31.$$arity = 0); + return self.is_utc ? 0 : -self.getTimezoneOffset() * 60; + }, $Time_gmt_offset$31.$$arity = 0); - Opal.defn(self, '$strftime', TMP_Time_strftime_32 = function $$strftime(format) { + Opal.def(self, '$strftime', $Time_strftime$32 = function $$strftime(format) { var self = this; @@ -19849,6 +23823,8 @@ Opal.modules["corelib/time"] = function(Opal) { break; case 'j': + zero = !blank; + width = isNaN(width) ? 3 : width; result += self.$yday(); break; @@ -20022,78 +23998,82 @@ Opal.modules["corelib/time"] = function(Opal) { return result; }); - }, TMP_Time_strftime_32.$$arity = 1); + }, $Time_strftime$32.$$arity = 1); - Opal.defn(self, '$sunday?', TMP_Time_sunday$q_33 = function() { + Opal.def(self, '$sunday?', $Time_sunday$ques$33 = function() { var self = this; return self.$wday() == 0 - }, TMP_Time_sunday$q_33.$$arity = 0); + }, $Time_sunday$ques$33.$$arity = 0); - Opal.defn(self, '$thursday?', TMP_Time_thursday$q_34 = function() { + Opal.def(self, '$thursday?', $Time_thursday$ques$34 = function() { var self = this; return self.$wday() == 4 - }, TMP_Time_thursday$q_34.$$arity = 0); + }, $Time_thursday$ques$34.$$arity = 0); - Opal.defn(self, '$to_a', TMP_Time_to_a_35 = function $$to_a() { + Opal.def(self, '$to_a', $Time_to_a$35 = function $$to_a() { var self = this; return [self.$sec(), self.$min(), self.$hour(), self.$day(), self.$month(), self.$year(), self.$wday(), self.$yday(), self.$isdst(), self.$zone()] - }, TMP_Time_to_a_35.$$arity = 0); + }, $Time_to_a$35.$$arity = 0); - Opal.defn(self, '$to_f', TMP_Time_to_f_36 = function $$to_f() { + Opal.def(self, '$to_f', $Time_to_f$36 = function $$to_f() { var self = this; - return self.getTime() / 1000 - }, TMP_Time_to_f_36.$$arity = 0); + return self.getTime() / 1000; + }, $Time_to_f$36.$$arity = 0); - Opal.defn(self, '$to_i', TMP_Time_to_i_37 = function $$to_i() { + Opal.def(self, '$to_i', $Time_to_i$37 = function $$to_i() { var self = this; - return parseInt(self.getTime() / 1000, 10) - }, TMP_Time_to_i_37.$$arity = 0); - Opal.alias(self, "to_s", "inspect"); + return parseInt(self.getTime() / 1000, 10); + }, $Time_to_i$37.$$arity = 0); + $alias(self, "to_s", "inspect"); - Opal.defn(self, '$tuesday?', TMP_Time_tuesday$q_38 = function() { + Opal.def(self, '$tuesday?', $Time_tuesday$ques$38 = function() { var self = this; return self.$wday() == 2 - }, TMP_Time_tuesday$q_38.$$arity = 0); - Opal.alias(self, "tv_sec", "to_i"); - Opal.alias(self, "tv_usec", "usec"); - Opal.alias(self, "utc?", "gmt?"); - Opal.alias(self, "gmtoff", "gmt_offset"); - Opal.alias(self, "utc_offset", "gmt_offset"); + }, $Time_tuesday$ques$38.$$arity = 0); + $alias(self, "tv_sec", "to_i"); + $alias(self, "tv_usec", "usec"); + $alias(self, "utc?", "gmt?"); + $alias(self, "gmtoff", "gmt_offset"); + $alias(self, "utc_offset", "gmt_offset"); - Opal.defn(self, '$wday', TMP_Time_wday_39 = function $$wday() { + Opal.def(self, '$wday', $Time_wday$39 = function $$wday() { var self = this; - return self.is_utc ? self.getUTCDay() : self.getDay() - }, TMP_Time_wday_39.$$arity = 0); + return self.is_utc ? self.getUTCDay() : self.getDay(); + }, $Time_wday$39.$$arity = 0); - Opal.defn(self, '$wednesday?', TMP_Time_wednesday$q_40 = function() { + Opal.def(self, '$wednesday?', $Time_wednesday$ques$40 = function() { var self = this; return self.$wday() == 3 - }, TMP_Time_wednesday$q_40.$$arity = 0); + }, $Time_wednesday$ques$40.$$arity = 0); - Opal.defn(self, '$year', TMP_Time_year_41 = function $$year() { + Opal.def(self, '$year', $Time_year$41 = function $$year() { var self = this; - return self.is_utc ? self.getUTCFullYear() : self.getFullYear() - }, TMP_Time_year_41.$$arity = 0); - return (Opal.defn(self, '$cweek_cyear', TMP_Time_cweek_cyear_42 = function $$cweek_cyear() { - var $a, self = this, jan01 = nil, jan01_wday = nil, first_monday = nil, year = nil, offset = nil, week = nil, dec31 = nil, dec31_wday = nil; + return self.is_utc ? self.getUTCFullYear() : self.getFullYear(); + }, $Time_year$41.$$arity = 0); + return (Opal.def(self, '$cweek_cyear', $Time_cweek_cyear$42 = function $$cweek_cyear() { + var self = this, jan01 = nil, jan01_wday = nil, first_monday = nil, year = nil, $ret_or_3 = nil, offset = nil, week = nil, dec31 = nil, dec31_wday = nil, $ret_or_4 = nil; - jan01 = Opal.const_get_relative($nesting, 'Time').$new(self.$year(), 1, 1); + jan01 = $$($nesting, 'Time').$new(self.$year(), 1, 1); jan01_wday = jan01.$wday(); first_monday = 0; year = self.$year(); - if ($truthy(($truthy($a = $rb_le(jan01_wday, 4)) ? jan01_wday['$!='](0) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_3 = $rb_le(jan01_wday, 4)))) { + return jan01_wday['$!='](0) + } else { + return $ret_or_3 + }; return nil; })())) { offset = $rb_minus(jan01_wday, 1) - } else { + } else { offset = $rb_minus($rb_minus(jan01_wday, 7), 1); if (offset['$=='](-8)) { @@ -20101,22 +24081,25 @@ Opal.modules["corelib/time"] = function(Opal) { }; week = $rb_divide($rb_plus(self.$yday(), offset), 7.0).$ceil(); if ($truthy($rb_le(week, 0))) { - return Opal.const_get_relative($nesting, 'Time').$new($rb_minus(self.$year(), 1), 12, 31).$cweek_cyear() + return $$($nesting, 'Time').$new($rb_minus(self.$year(), 1), 12, 31).$cweek_cyear() } else if (week['$=='](53)) { - dec31 = Opal.const_get_relative($nesting, 'Time').$new(self.$year(), 12, 31); + dec31 = $$($nesting, 'Time').$new(self.$year(), 12, 31); dec31_wday = dec31.$wday(); - if ($truthy(($truthy($a = $rb_le(dec31_wday, 3)) ? dec31_wday['$!='](0) : $a))) { + if ($truthy((function() {if ($truthy(($ret_or_4 = $rb_le(dec31_wday, 3)))) { + return dec31_wday['$!='](0) + } else { + return $ret_or_4 + }; return nil; })())) { week = 1; year = $rb_plus(year, 1);};}; return [week, year]; - }, TMP_Time_cweek_cyear_42.$$arity = 0), nil) && 'cweek_cyear'; + }, $Time_cweek_cyear$42.$$arity = 0), nil) && 'cweek_cyear'; })($nesting[0], Date, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/struct"] = function(Opal) { +Opal.modules["corelib/struct"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_gt(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs > rhs : lhs['$>'](rhs); } @@ -20132,199 +24115,287 @@ Opal.modules["corelib/struct"] = function(Opal) { function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $send = Opal.send, $hash2 = Opal.hash2; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $hash2 = Opal.hash2, $truthy = Opal.truthy, $send = Opal.send, $alias = Opal.alias; - Opal.add_stubs(['$require', '$include', '$const_name!', '$unshift', '$map', '$coerce_to!', '$new', '$each', '$define_struct_attribute', '$allocate', '$initialize', '$module_eval', '$to_proc', '$const_set', '$==', '$raise', '$<<', '$members', '$define_method', '$instance_eval', '$>', '$length', '$class', '$each_with_index', '$[]', '$[]=', '$-', '$hash', '$===', '$<', '$-@', '$size', '$>=', '$include?', '$to_sym', '$instance_of?', '$__id__', '$eql?', '$enum_for', '$name', '$+', '$join', '$each_pair', '$inspect', '$inject', '$flatten', '$to_a', '$respond_to?', '$dig']); + Opal.add_stubs(['$require', '$include', '$==', '$class', '$!=', '$upcase', '$[]', '$unshift', '$const_name!', '$map', '$coerce_to!', '$new', '$each', '$define_struct_attribute', '$allocate', '$initialize', '$alias_method', '$module_eval', '$to_proc', '$const_set', '$raise', '$<<', '$members', '$define_method', '$instance_eval', '$last', '$>', '$length', '$-', '$keys', '$any?', '$join', '$[]=', '$each_with_index', '$hash', '$===', '$<', '$-@', '$size', '$>=', '$include?', '$to_sym', '$instance_of?', '$__id__', '$eql?', '$enum_for', '$name', '$+', '$each_pair', '$inspect', '$to_h', '$args', '$each_with_object', '$flatten', '$to_a', '$respond_to?', '$dig']); self.$require("corelib/enumerable"); return (function($base, $super, $parent_nesting) { - function $Struct(){}; - var self = $Struct = $klass($base, $super, 'Struct', $Struct); + var self = $klass($base, $super, 'Struct'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Struct_new_1, TMP_Struct_define_struct_attribute_8, TMP_Struct_members_9, TMP_Struct_inherited_11, TMP_Struct_initialize_13, TMP_Struct_members_14, TMP_Struct_hash_15, TMP_Struct_$$_16, TMP_Struct_$$$eq_17, TMP_Struct_$eq$eq_18, TMP_Struct_eql$q_19, TMP_Struct_each_20, TMP_Struct_each_pair_23, TMP_Struct_length_26, TMP_Struct_to_a_28, TMP_Struct_inspect_30, TMP_Struct_to_h_32, TMP_Struct_values_at_34, TMP_Struct_dig_35; + var $nesting = [self].concat($parent_nesting), $Struct_new$1, $Struct_define_struct_attribute$6, $Struct_members$9, $Struct_inherited$10, $Struct_initialize$12, $Struct_initialize_copy$15, $Struct_members$16, $Struct_hash$17, $Struct_$$$18, $Struct_$$$eq$19, $Struct_$eq_eq$20, $Struct_eql$ques$21, $Struct_each$22, $Struct_each_pair$25, $Struct_length$28, $Struct_to_a$29, $Struct_inspect$31, $Struct_to_h$33, $Struct_values_at$35, $Struct_dig$37; - self.$include(Opal.const_get_relative($nesting, 'Enumerable')); - Opal.defs(self, '$new', TMP_Struct_new_1 = function(const_name, $a_rest) { - var TMP_2, TMP_3, self = this, args, $iter = TMP_Struct_new_1.$$p, block = $iter || nil, klass = nil; + self.$include($$($nesting, 'Enumerable')); + Opal.defs(self, '$new', $Struct_new$1 = function(const_name, $a, $b) { + var $iter = $Struct_new$1.$$p, block = $iter || nil, $post_args, $kwargs, args, keyword_init, $$2, $$3, self = this, $ret_or_1 = nil, klass = nil; - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 1] = arguments[$arg_idx]; - } - if ($iter) TMP_Struct_new_1.$$p = null; + if ($iter) $Struct_new$1.$$p = null; + + + if ($iter) $Struct_new$1.$$p = null;; + + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + $kwargs = Opal.extract_kwargs($post_args); + + if ($kwargs == null) { + $kwargs = $hash2([], {}); + } else if (!$kwargs.$$is_hash) { + throw Opal.ArgumentError.$new('expected kwargs'); + }; + args = $post_args;; + + keyword_init = $kwargs.$$smap["keyword_init"]; + if (keyword_init == null) { + keyword_init = false + }; if ($truthy(const_name)) { + if ($truthy((function() {if ($truthy(($ret_or_1 = const_name.$class()['$==']($$($nesting, 'String'))))) { + return const_name['$[]'](0).$upcase()['$!='](const_name['$[]'](0)) + } else { + return $ret_or_1 + }; return nil; })())) { + + args.$unshift(const_name); + const_name = nil; + } else { + + try { + const_name = $$($nesting, 'Opal')['$const_name!'](const_name) + } catch ($err) { + if (Opal.rescue($err, [$$($nesting, 'TypeError'), $$($nesting, 'NameError')])) { + try { + + args.$unshift(const_name); + const_name = nil; + } finally { Opal.pop_exception(); } + } else { throw $err; } + }; + }}; + $send(args, 'map', [], ($$2 = function(arg){var self = $$2.$$s == null ? this : $$2.$$s; + - try { - const_name = Opal.const_get_relative($nesting, 'Opal')['$const_name!'](const_name) - } catch ($err) { - if (Opal.rescue($err, [Opal.const_get_relative($nesting, 'TypeError'), Opal.const_get_relative($nesting, 'NameError')])) { - try { - - args.$unshift(const_name); - const_name = nil; - } finally { Opal.pop_exception() } - } else { throw $err; } - };}; - $send(args, 'map', [], (TMP_2 = function(arg){var self = TMP_2.$$s || this; -if (arg == null) arg = nil; - return Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](arg, Opal.const_get_relative($nesting, 'String'), "to_str")}, TMP_2.$$s = self, TMP_2.$$arity = 1, TMP_2)); - klass = $send(Opal.const_get_relative($nesting, 'Class'), 'new', [self], (TMP_3 = function(){var self = TMP_3.$$s || this, TMP_4; + + if (arg == null) { + arg = nil; + }; + return $$($nesting, 'Opal')['$coerce_to!'](arg, $$($nesting, 'String'), "to_str");}, $$2.$$s = self, $$2.$$arity = 1, $$2)); + klass = $send($$($nesting, 'Class'), 'new', [self], ($$3 = function(){var self = $$3.$$s == null ? this : $$3.$$s, $$4; - - $send(args, 'each', [], (TMP_4 = function(arg){var self = TMP_4.$$s || this; -if (arg == null) arg = nil; - return self.$define_struct_attribute(arg)}, TMP_4.$$s = self, TMP_4.$$arity = 1, TMP_4)); + + $send(args, 'each', [], ($$4 = function(arg){var self = $$4.$$s == null ? this : $$4.$$s; + + + + if (arg == null) { + arg = nil; + }; + return self.$define_struct_attribute(arg);}, $$4.$$s = self, $$4.$$arity = 1, $$4)); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_new_5; + var $nesting = [self].concat($parent_nesting), $new$5; - Opal.defn(self, '$new', TMP_new_5 = function($a_rest) { - var self = this, args, instance = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } + Opal.def(self, '$new', $new$5 = function($a) { + var $post_args, args, self = this, instance = nil; + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; instance = self.$allocate(); - instance.$$data = {};; + instance.$$data = {}; $send(instance, 'initialize', Opal.to_a(args)); return instance; - }, TMP_new_5.$$arity = -1); - return Opal.alias(self, "[]", "new"); - })(Opal.get_singleton_class(self), $nesting);}, TMP_3.$$s = self, TMP_3.$$arity = 0, TMP_3)); + }, $new$5.$$arity = -1); + return self.$alias_method("[]", "new"); + })(Opal.get_singleton_class(self), $nesting);}, $$3.$$s = self, $$3.$$arity = 0, $$3)); if ($truthy(block)) { $send(klass, 'module_eval', [], block.$to_proc())}; + klass.$$keyword_init = keyword_init; if ($truthy(const_name)) { - Opal.const_get_relative($nesting, 'Struct').$const_set(const_name, klass)}; + $$($nesting, 'Struct').$const_set(const_name, klass)}; return klass; - }, TMP_Struct_new_1.$$arity = -2); - Opal.defs(self, '$define_struct_attribute', TMP_Struct_define_struct_attribute_8 = function $$define_struct_attribute(name) { - var TMP_6, TMP_7, self = this; + }, $Struct_new$1.$$arity = -2); + Opal.defs(self, '$define_struct_attribute', $Struct_define_struct_attribute$6 = function $$define_struct_attribute(name) { + var $$7, $$8, self = this; - if (self['$=='](Opal.const_get_relative($nesting, 'Struct'))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "you cannot define attributes to the Struct class")}; + if (self['$==']($$($nesting, 'Struct'))) { + self.$raise($$($nesting, 'ArgumentError'), "you cannot define attributes to the Struct class")}; self.$members()['$<<'](name); - $send(self, 'define_method', [name], (TMP_6 = function(){var self = TMP_6.$$s || this; - - return self.$$data[name]}, TMP_6.$$s = self, TMP_6.$$arity = 0, TMP_6)); - return $send(self, 'define_method', ["" + (name) + "="], (TMP_7 = function(value){var self = TMP_7.$$s || this; -if (value == null) value = nil; - return self.$$data[name] = value}, TMP_7.$$s = self, TMP_7.$$arity = 1, TMP_7)); - }, TMP_Struct_define_struct_attribute_8.$$arity = 1); - Opal.defs(self, '$members', TMP_Struct_members_9 = function $$members() { - var $a, self = this; + $send(self, 'define_method', [name], ($$7 = function(){var self = $$7.$$s == null ? this : $$7.$$s; + + return self.$$data[name];}, $$7.$$s = self, $$7.$$arity = 0, $$7)); + return $send(self, 'define_method', ["" + (name) + "="], ($$8 = function(value){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (value == null) { + value = nil; + }; + return self.$$data[name] = value;;}, $$8.$$s = self, $$8.$$arity = 1, $$8)); + }, $Struct_define_struct_attribute$6.$$arity = 1); + Opal.defs(self, '$members', $Struct_members$9 = function $$members() { + var self = this, $ret_or_2 = nil; if (self.members == null) self.members = nil; - if (self['$=='](Opal.const_get_relative($nesting, 'Struct'))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "the Struct class has no members")}; - return (self.members = ($truthy($a = self.members) ? $a : [])); - }, TMP_Struct_members_9.$$arity = 0); - Opal.defs(self, '$inherited', TMP_Struct_inherited_11 = function $$inherited(klass) { - var TMP_10, self = this, members = nil; + if (self['$==']($$($nesting, 'Struct'))) { + self.$raise($$($nesting, 'ArgumentError'), "the Struct class has no members")}; + return (self.members = (function() {if ($truthy(($ret_or_2 = self.members))) { + return $ret_or_2 + } else { + return [] + }; return nil; })()); + }, $Struct_members$9.$$arity = 0); + Opal.defs(self, '$inherited', $Struct_inherited$10 = function $$inherited(klass) { + var $$11, self = this, members = nil; if (self.members == null) self.members = nil; members = self.members; - return $send(klass, 'instance_eval', [], (TMP_10 = function(){var self = TMP_10.$$s || this; + return $send(klass, 'instance_eval', [], ($$11 = function(){var self = $$11.$$s == null ? this : $$11.$$s; - return (self.members = members)}, TMP_10.$$s = self, TMP_10.$$arity = 0, TMP_10)); - }, TMP_Struct_inherited_11.$$arity = 1); + return (self.members = members)}, $$11.$$s = self, $$11.$$arity = 0, $$11)); + }, $Struct_inherited$10.$$arity = 1); - Opal.defn(self, '$initialize', TMP_Struct_initialize_13 = function $$initialize($a_rest) { - var TMP_12, self = this, args; + Opal.def(self, '$initialize', $Struct_initialize$12 = function $$initialize($a) { + var $post_args, args, $$13, $$14, self = this, kwargs = nil, $ret_or_3 = nil, $ret_or_4 = nil, extra = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - if ($truthy($rb_gt(args.$length(), self.$class().$members().$length()))) { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "struct size differs")}; - return $send(self.$class().$members(), 'each_with_index', [], (TMP_12 = function(name, index){var self = TMP_12.$$s || this, $writer = nil; -if (name == null) name = nil;if (index == null) index = nil; - $writer = [name, args['$[]'](index)]; - $send(self, '[]=', Opal.to_a($writer)); - return $writer[$rb_minus($writer["length"], 1)];}, TMP_12.$$s = self, TMP_12.$$arity = 2, TMP_12)); - }, TMP_Struct_initialize_13.$$arity = -1); + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + if ($truthy(self.$class().$$keyword_init)) { + + kwargs = (function() {if ($truthy(($ret_or_3 = args.$last()))) { + return $ret_or_3 + } else { + return $hash2([], {}) + }; return nil; })(); + if ($truthy((function() {if ($truthy(($ret_or_4 = $rb_gt(args.$length(), 1)))) { + return $ret_or_4 + } else { + return (args.length === 1 && !kwargs.$$is_hash); + }; return nil; })())) { + self.$raise($$($nesting, 'ArgumentError'), "" + "wrong number of arguments (given " + (args.$length()) + ", expected 0)")}; + extra = $rb_minus(kwargs.$keys(), self.$class().$members()); + if ($truthy(extra['$any?']())) { + self.$raise($$($nesting, 'ArgumentError'), "" + "unknown keywords: " + (extra.$join(", ")))}; + return $send(self.$class().$members(), 'each', [], ($$13 = function(name){var self = $$13.$$s == null ? this : $$13.$$s, $writer = nil; + + + + if (name == null) { + name = nil; + }; + $writer = [name, kwargs['$[]'](name)]; + $send(self, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$13.$$s = self, $$13.$$arity = 1, $$13)); + } else { + + if ($truthy($rb_gt(args.$length(), self.$class().$members().$length()))) { + self.$raise($$($nesting, 'ArgumentError'), "struct size differs")}; + return $send(self.$class().$members(), 'each_with_index', [], ($$14 = function(name, index){var self = $$14.$$s == null ? this : $$14.$$s, $writer = nil; + + + + if (name == null) { + name = nil; + }; + + if (index == null) { + index = nil; + }; + $writer = [name, args['$[]'](index)]; + $send(self, '[]=', Opal.to_a($writer)); + return $writer[$rb_minus($writer["length"], 1)];}, $$14.$$s = self, $$14.$$arity = 2, $$14)); + }; + }, $Struct_initialize$12.$$arity = -1); + + Opal.def(self, '$initialize_copy', $Struct_initialize_copy$15 = function $$initialize_copy(from) { + var self = this; + + + self.$$data = {} + var keys = Object.keys(from.$$data), i, max, name; + for (i = 0, max = keys.length; i < max; i++) { + name = keys[i]; + self.$$data[name] = from.$$data[name]; + } + + }, $Struct_initialize_copy$15.$$arity = 1); - Opal.defn(self, '$members', TMP_Struct_members_14 = function $$members() { + Opal.def(self, '$members', $Struct_members$16 = function $$members() { var self = this; return self.$class().$members() - }, TMP_Struct_members_14.$$arity = 0); + }, $Struct_members$16.$$arity = 0); - Opal.defn(self, '$hash', TMP_Struct_hash_15 = function $$hash() { + Opal.def(self, '$hash', $Struct_hash$17 = function $$hash() { var self = this; - return Opal.const_get_relative($nesting, 'Hash').$new(self.$$data).$hash() - }, TMP_Struct_hash_15.$$arity = 0); + return $$($nesting, 'Hash').$new(self.$$data).$hash() + }, $Struct_hash$17.$$arity = 0); - Opal.defn(self, '$[]', TMP_Struct_$$_16 = function(name) { + Opal.def(self, '$[]', $Struct_$$$18 = function(name) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](name))) { + if ($truthy($$($nesting, 'Integer')['$==='](name))) { if ($truthy($rb_lt(name, self.$class().$members().$size()['$-@']()))) { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "offset " + (name) + " too small for struct(size:" + (self.$class().$members().$size()) + ")")}; + self.$raise($$($nesting, 'IndexError'), "" + "offset " + (name) + " too small for struct(size:" + (self.$class().$members().$size()) + ")")}; if ($truthy($rb_ge(name, self.$class().$members().$size()))) { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "offset " + (name) + " too large for struct(size:" + (self.$class().$members().$size()) + ")")}; + self.$raise($$($nesting, 'IndexError'), "" + "offset " + (name) + " too large for struct(size:" + (self.$class().$members().$size()) + ")")}; name = self.$class().$members()['$[]'](name); - } else if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](name))) { + } else if ($truthy($$($nesting, 'String')['$==='](name))) { if(!self.$$data.hasOwnProperty(name)) { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "no member '" + (name) + "' in struct", name)) + self.$raise($$($nesting, 'NameError').$new("" + "no member '" + (name) + "' in struct", name)) } - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "no implicit conversion of " + (name.$class()) + " into Integer") + } else { + self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (name.$class()) + " into Integer") }; - name = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](name, Opal.const_get_relative($nesting, 'String'), "to_str"); - return self.$$data[name]; - }, TMP_Struct_$$_16.$$arity = 1); + name = $$($nesting, 'Opal')['$coerce_to!'](name, $$($nesting, 'String'), "to_str"); + return self.$$data[name];; + }, $Struct_$$$18.$$arity = 1); - Opal.defn(self, '$[]=', TMP_Struct_$$$eq_17 = function(name, value) { + Opal.def(self, '$[]=', $Struct_$$$eq$19 = function(name, value) { var self = this; - if ($truthy(Opal.const_get_relative($nesting, 'Integer')['$==='](name))) { + if ($truthy($$($nesting, 'Integer')['$==='](name))) { if ($truthy($rb_lt(name, self.$class().$members().$size()['$-@']()))) { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "offset " + (name) + " too small for struct(size:" + (self.$class().$members().$size()) + ")")}; + self.$raise($$($nesting, 'IndexError'), "" + "offset " + (name) + " too small for struct(size:" + (self.$class().$members().$size()) + ")")}; if ($truthy($rb_ge(name, self.$class().$members().$size()))) { - self.$raise(Opal.const_get_relative($nesting, 'IndexError'), "" + "offset " + (name) + " too large for struct(size:" + (self.$class().$members().$size()) + ")")}; + self.$raise($$($nesting, 'IndexError'), "" + "offset " + (name) + " too large for struct(size:" + (self.$class().$members().$size()) + ")")}; name = self.$class().$members()['$[]'](name); - } else if ($truthy(Opal.const_get_relative($nesting, 'String')['$==='](name))) { + } else if ($truthy($$($nesting, 'String')['$==='](name))) { if ($truthy(self.$class().$members()['$include?'](name.$to_sym()))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'NameError').$new("" + "no member '" + (name) + "' in struct", name)) - } } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "no implicit conversion of " + (name.$class()) + " into Integer") + self.$raise($$($nesting, 'NameError').$new("" + "no member '" + (name) + "' in struct", name)) + } + } else { + self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + (name.$class()) + " into Integer") }; - name = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](name, Opal.const_get_relative($nesting, 'String'), "to_str"); - return self.$$data[name] = value; - }, TMP_Struct_$$$eq_17.$$arity = 2); + name = $$($nesting, 'Opal')['$coerce_to!'](name, $$($nesting, 'String'), "to_str"); + return self.$$data[name] = value;; + }, $Struct_$$$eq$19.$$arity = 2); - Opal.defn(self, '$==', TMP_Struct_$eq$eq_18 = function(other) { + Opal.def(self, '$==', $Struct_$eq_eq$20 = function(other) { var self = this; if ($truthy(other['$instance_of?'](self.$class()))) { - } else { + } else { return false }; @@ -20340,7 +24411,7 @@ if (name == null) name = nil;if (index == null) index = nil; a = struct.$$data[key]; b = other.$$data[key]; - if (Opal.const_get_relative($nesting, 'Struct')['$==='](a)) { + if ($$($nesting, 'Struct')['$==='](a)) { if (!recursed1.hasOwnProperty((a).$__id__()) || !recursed2.hasOwnProperty((b).$__id__())) { if (!_eqeq(a, b)) { return false; @@ -20358,14 +24429,14 @@ if (name == null) name = nil;if (index == null) index = nil; return _eqeq(self, other); ; - }, TMP_Struct_$eq$eq_18.$$arity = 1); + }, $Struct_$eq_eq$20.$$arity = 1); - Opal.defn(self, '$eql?', TMP_Struct_eql$q_19 = function(other) { + Opal.def(self, '$eql?', $Struct_eql$ques$21 = function(other) { var self = this; if ($truthy(other['$instance_of?'](self.$class()))) { - } else { + } else { return false }; @@ -20381,7 +24452,7 @@ if (name == null) name = nil;if (index == null) index = nil; a = struct.$$data[key]; b = other.$$data[key]; - if (Opal.const_get_relative($nesting, 'Struct')['$==='](a)) { + if ($$($nesting, 'Struct')['$==='](a)) { if (!recursed1.hasOwnProperty((a).$__id__()) || !recursed2.hasOwnProperty((b).$__id__())) { if (!_eqeq(a, b)) { return false; @@ -20399,334 +24470,198 @@ if (name == null) name = nil;if (index == null) index = nil; return _eqeq(self, other); ; - }, TMP_Struct_eql$q_19.$$arity = 1); + }, $Struct_eql$ques$21.$$arity = 1); - Opal.defn(self, '$each', TMP_Struct_each_20 = function $$each() { - var TMP_21, TMP_22, self = this, $iter = TMP_Struct_each_20.$$p, $yield = $iter || nil; + Opal.def(self, '$each', $Struct_each$22 = function $$each() { + var $$23, $$24, $iter = $Struct_each$22.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Struct_each_20.$$p = null; + if ($iter) $Struct_each$22.$$p = null; if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["each"], (TMP_21 = function(){var self = TMP_21.$$s || this; + } else { + return $send(self, 'enum_for', ["each"], ($$23 = function(){var self = $$23.$$s == null ? this : $$23.$$s; - return self.$size()}, TMP_21.$$s = self, TMP_21.$$arity = 0, TMP_21)) + return self.$size()}, $$23.$$s = self, $$23.$$arity = 0, $$23)) }; - $send(self.$class().$members(), 'each', [], (TMP_22 = function(name){var self = TMP_22.$$s || this; -if (name == null) name = nil; - return Opal.yield1($yield, self['$[]'](name));}, TMP_22.$$s = self, TMP_22.$$arity = 1, TMP_22)); + $send(self.$class().$members(), 'each', [], ($$24 = function(name){var self = $$24.$$s == null ? this : $$24.$$s; + + + + if (name == null) { + name = nil; + }; + return Opal.yield1($yield, self['$[]'](name));;}, $$24.$$s = self, $$24.$$arity = 1, $$24)); return self; - }, TMP_Struct_each_20.$$arity = 0); + }, $Struct_each$22.$$arity = 0); - Opal.defn(self, '$each_pair', TMP_Struct_each_pair_23 = function $$each_pair() { - var TMP_24, TMP_25, self = this, $iter = TMP_Struct_each_pair_23.$$p, $yield = $iter || nil; + Opal.def(self, '$each_pair', $Struct_each_pair$25 = function $$each_pair() { + var $$26, $$27, $iter = $Struct_each_pair$25.$$p, $yield = $iter || nil, self = this; - if ($iter) TMP_Struct_each_pair_23.$$p = null; + if ($iter) $Struct_each_pair$25.$$p = null; if (($yield !== nil)) { - } else { - return $send(self, 'enum_for', ["each_pair"], (TMP_24 = function(){var self = TMP_24.$$s || this; + } else { + return $send(self, 'enum_for', ["each_pair"], ($$26 = function(){var self = $$26.$$s == null ? this : $$26.$$s; - return self.$size()}, TMP_24.$$s = self, TMP_24.$$arity = 0, TMP_24)) + return self.$size()}, $$26.$$s = self, $$26.$$arity = 0, $$26)) }; - $send(self.$class().$members(), 'each', [], (TMP_25 = function(name){var self = TMP_25.$$s || this; -if (name == null) name = nil; - return Opal.yield1($yield, [name, self['$[]'](name)]);}, TMP_25.$$s = self, TMP_25.$$arity = 1, TMP_25)); + $send(self.$class().$members(), 'each', [], ($$27 = function(name){var self = $$27.$$s == null ? this : $$27.$$s; + + + + if (name == null) { + name = nil; + }; + return Opal.yield1($yield, [name, self['$[]'](name)]);;}, $$27.$$s = self, $$27.$$arity = 1, $$27)); return self; - }, TMP_Struct_each_pair_23.$$arity = 0); + }, $Struct_each_pair$25.$$arity = 0); - Opal.defn(self, '$length', TMP_Struct_length_26 = function $$length() { + Opal.def(self, '$length', $Struct_length$28 = function $$length() { var self = this; return self.$class().$members().$length() - }, TMP_Struct_length_26.$$arity = 0); - Opal.alias(self, "size", "length"); + }, $Struct_length$28.$$arity = 0); + $alias(self, "size", "length"); - Opal.defn(self, '$to_a', TMP_Struct_to_a_28 = function $$to_a() { - var TMP_27, self = this; + Opal.def(self, '$to_a', $Struct_to_a$29 = function $$to_a() { + var $$30, self = this; - return $send(self.$class().$members(), 'map', [], (TMP_27 = function(name){var self = TMP_27.$$s || this; -if (name == null) name = nil; - return self['$[]'](name)}, TMP_27.$$s = self, TMP_27.$$arity = 1, TMP_27)) - }, TMP_Struct_to_a_28.$$arity = 0); - Opal.alias(self, "values", "to_a"); + return $send(self.$class().$members(), 'map', [], ($$30 = function(name){var self = $$30.$$s == null ? this : $$30.$$s; + + + + if (name == null) { + name = nil; + }; + return self['$[]'](name);}, $$30.$$s = self, $$30.$$arity = 1, $$30)) + }, $Struct_to_a$29.$$arity = 0); + $alias(self, "values", "to_a"); - Opal.defn(self, '$inspect', TMP_Struct_inspect_30 = function $$inspect() { - var $a, TMP_29, self = this, result = nil; + Opal.def(self, '$inspect', $Struct_inspect$31 = function $$inspect() { + var $$32, self = this, result = nil, $ret_or_5 = nil; result = "#"); return result; - }, TMP_Struct_inspect_30.$$arity = 0); - Opal.alias(self, "to_s", "inspect"); + }, $Struct_inspect$31.$$arity = 0); + $alias(self, "to_s", "inspect"); - Opal.defn(self, '$to_h', TMP_Struct_to_h_32 = function $$to_h() { - var TMP_31, self = this; + Opal.def(self, '$to_h', $Struct_to_h$33 = function $$to_h() { + var $iter = $Struct_to_h$33.$$p, block = $iter || nil, $$34, self = this; - return $send(self.$class().$members(), 'inject', [$hash2([], {})], (TMP_31 = function(h, name){var self = TMP_31.$$s || this, $writer = nil; -if (h == null) h = nil;if (name == null) name = nil; + if ($iter) $Struct_to_h$33.$$p = null; + + if ($iter) $Struct_to_h$33.$$p = null;; + if ((block !== nil)) { + return $send($send(self, 'map', [], block.$to_proc()), 'to_h', Opal.to_a(self.$args()))}; + return $send(self.$class().$members(), 'each_with_object', [$hash2([], {})], ($$34 = function(name, h){var self = $$34.$$s == null ? this : $$34.$$s, $writer = nil; + + + + if (name == null) { + name = nil; + }; + if (h == null) { + h = nil; + }; $writer = [name, self['$[]'](name)]; $send(h, '[]=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - return h;}, TMP_31.$$s = self, TMP_31.$$arity = 2, TMP_31)) - }, TMP_Struct_to_h_32.$$arity = 0); + return $writer[$rb_minus($writer["length"], 1)];}, $$34.$$s = self, $$34.$$arity = 2, $$34)); + }, $Struct_to_h$33.$$arity = 0); - Opal.defn(self, '$values_at', TMP_Struct_values_at_34 = function $$values_at($a_rest) { - var TMP_33, self = this, args; + Opal.def(self, '$values_at', $Struct_values_at$35 = function $$values_at($a) { + var $post_args, args, $$36, self = this; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - args = $send(args, 'map', [], (TMP_33 = function(arg){var self = TMP_33.$$s || this; -if (arg == null) arg = nil; - return arg.$$is_range ? arg.$to_a() : arg}, TMP_33.$$s = self, TMP_33.$$arity = 1, TMP_33)).$flatten(); + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + args = $post_args;; + args = $send(args, 'map', [], ($$36 = function(arg){var self = $$36.$$s == null ? this : $$36.$$s; + + + + if (arg == null) { + arg = nil; + }; + return arg.$$is_range ? arg.$to_a() : arg;}, $$36.$$s = self, $$36.$$arity = 1, $$36)).$flatten(); var result = []; for (var i = 0, len = args.length; i < len; i++) { if (!args[i].$$is_number) { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + "no implicit conversion of " + ((args[i]).$class()) + " into Integer") + self.$raise($$($nesting, 'TypeError'), "" + "no implicit conversion of " + ((args[i]).$class()) + " into Integer") } result.push(self['$[]'](args[i])); } return result; ; - }, TMP_Struct_values_at_34.$$arity = -1); - return (Opal.defn(self, '$dig', TMP_Struct_dig_35 = function $$dig(key, $a_rest) { - var self = this, keys, item = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 1; - if ($rest_len < 0) { $rest_len = 0; } - keys = new Array($rest_len); - for (var $arg_idx = 1; $arg_idx < $args_len; $arg_idx++) { - keys[$arg_idx - 1] = arguments[$arg_idx]; - } - - if ($truthy(key.$$is_string && self.$$data.hasOwnProperty(key))) { - item = self.$$data[key] || nil - } else { - item = nil - }; - - if (item === nil || keys.length === 0) { - return item; - } - ; - if ($truthy(item['$respond_to?']("dig"))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'TypeError'), "" + (item.$class()) + " does not have #dig method") - }; - return $send(item, 'dig', Opal.to_a(keys)); - }, TMP_Struct_dig_35.$$arity = -2), nil) && 'dig'; - })($nesting[0], null, $nesting); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/io"] = function(Opal) { - function $rb_minus(lhs, rhs) { - return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); - } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $module = Opal.module, $send = Opal.send, $gvars = Opal.gvars, $truthy = Opal.truthy, $writer = nil; - - Opal.add_stubs(['$attr_accessor', '$size', '$write', '$join', '$map', '$String', '$empty?', '$concat', '$chomp', '$getbyte', '$getc', '$raise', '$new', '$write_proc=', '$-', '$extend']); - - (function($base, $super, $parent_nesting) { - function $IO(){}; - var self = $IO = $klass($base, $super, 'IO', $IO); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_IO_tty$q_1, TMP_IO_closed$q_2, TMP_IO_write_3, TMP_IO_flush_4; - - def.tty = def.closed = nil; - - Opal.const_set($nesting[0], 'SEEK_SET', 0); - Opal.const_set($nesting[0], 'SEEK_CUR', 1); - Opal.const_set($nesting[0], 'SEEK_END', 2); - - Opal.defn(self, '$tty?', TMP_IO_tty$q_1 = function() { - var self = this; - - return self.tty - }, TMP_IO_tty$q_1.$$arity = 0); - - Opal.defn(self, '$closed?', TMP_IO_closed$q_2 = function() { - var self = this; - - return self.closed - }, TMP_IO_closed$q_2.$$arity = 0); - self.$attr_accessor("write_proc"); - - Opal.defn(self, '$write', TMP_IO_write_3 = function $$write(string) { - var self = this; - - - self.write_proc(string); - return string.$size(); - }, TMP_IO_write_3.$$arity = 1); - self.$attr_accessor("sync", "tty"); - - Opal.defn(self, '$flush', TMP_IO_flush_4 = function $$flush() { - var self = this; - - return nil - }, TMP_IO_flush_4.$$arity = 0); - (function($base, $parent_nesting) { - var $Writable, self = $Writable = $module($base, 'Writable'); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Writable_$lt$lt_5, TMP_Writable_print_7, TMP_Writable_puts_9; - - - - Opal.defn(self, '$<<', TMP_Writable_$lt$lt_5 = function(string) { - var self = this; - - - self.$write(string); - return self; - }, TMP_Writable_$lt$lt_5.$$arity = 1); - - Opal.defn(self, '$print', TMP_Writable_print_7 = function $$print($a_rest) { - var TMP_6, self = this, args; - if ($gvars[","] == null) $gvars[","] = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - self.$write($send(args, 'map', [], (TMP_6 = function(arg){var self = TMP_6.$$s || this; -if (arg == null) arg = nil; - return self.$String(arg)}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)).$join($gvars[","])); - return nil; - }, TMP_Writable_print_7.$$arity = -1); - - Opal.defn(self, '$puts', TMP_Writable_puts_9 = function $$puts($a_rest) { - var TMP_8, self = this, args, newline = nil; - if ($gvars["/"] == null) $gvars["/"] = nil; - - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - args = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - args[$arg_idx - 0] = arguments[$arg_idx]; - } - - newline = $gvars["/"]; - if ($truthy(args['$empty?']())) { - self.$write($gvars["/"]) - } else { - self.$write($send(args, 'map', [], (TMP_8 = function(arg){var self = TMP_8.$$s || this; -if (arg == null) arg = nil; - return self.$String(arg).$chomp()}, TMP_8.$$s = self, TMP_8.$$arity = 1, TMP_8)).$concat([nil]).$join(newline)) - }; - return nil; - }, TMP_Writable_puts_9.$$arity = -1); - })($nesting[0], $nesting); - return (function($base, $parent_nesting) { - var $Readable, self = $Readable = $module($base, 'Readable'); + }, $Struct_values_at$35.$$arity = -1); + return (Opal.def(self, '$dig', $Struct_dig$37 = function $$dig(key, $a) { + var $post_args, keys, self = this, item = nil; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Readable_readbyte_10, TMP_Readable_readchar_11, TMP_Readable_readline_12, TMP_Readable_readpartial_13; - - - - Opal.defn(self, '$readbyte', TMP_Readable_readbyte_10 = function $$readbyte() { - var self = this; - - return self.$getbyte() - }, TMP_Readable_readbyte_10.$$arity = 0); - - Opal.defn(self, '$readchar', TMP_Readable_readchar_11 = function $$readchar() { - var self = this; - - return self.$getc() - }, TMP_Readable_readchar_11.$$arity = 0); - Opal.defn(self, '$readline', TMP_Readable_readline_12 = function $$readline(sep) { - var self = this; - if ($gvars["/"] == null) $gvars["/"] = nil; - - if (sep == null) { - sep = $gvars["/"]; - } - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Readable_readline_12.$$arity = -1); - Opal.defn(self, '$readpartial', TMP_Readable_readpartial_13 = function $$readpartial(integer, outbuf) { - var self = this; - - if (outbuf == null) { - outbuf = nil; - } - return self.$raise(Opal.const_get_relative($nesting, 'NotImplementedError')) - }, TMP_Readable_readpartial_13.$$arity = -2); - })($nesting[0], $nesting); - })($nesting[0], null, $nesting); - Opal.const_set($nesting[0], 'STDERR', ($gvars.stderr = Opal.const_get_relative($nesting, 'IO').$new())); - Opal.const_set($nesting[0], 'STDIN', ($gvars.stdin = Opal.const_get_relative($nesting, 'IO').$new())); - Opal.const_set($nesting[0], 'STDOUT', ($gvars.stdout = Opal.const_get_relative($nesting, 'IO').$new())); - var console = Opal.global.console; - - $writer = [typeof(process) === 'object' && typeof(process.stdout) === 'object' ? function(s){process.stdout.write(s)} : function(s){console.log(s)}]; - $send(Opal.const_get_relative($nesting, 'STDOUT'), 'write_proc=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - - $writer = [typeof(process) === 'object' && typeof(process.stderr) === 'object' ? function(s){process.stderr.write(s)} : function(s){console.warn(s)}]; - $send(Opal.const_get_relative($nesting, 'STDERR'), 'write_proc=', Opal.to_a($writer)); - $writer[$rb_minus($writer["length"], 1)];; - Opal.const_get_relative($nesting, 'STDOUT').$extend(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IO'), 'Writable')); - return Opal.const_get_relative($nesting, 'STDERR').$extend(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'IO'), 'Writable')); -}; - -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/main"] = function(Opal) { - var TMP_to_s_1, TMP_include_2, self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice; - - Opal.add_stubs(['$include']); - - Opal.defs(self, '$to_s', TMP_to_s_1 = function $$to_s() { - var self = this; - - return "main" - }, TMP_to_s_1.$$arity = 0); - return Opal.defs(self, '$include', TMP_include_2 = function $$include(mod) { - var self = this; - - return Opal.const_get_relative($nesting, 'Object').$include(mod) - }, TMP_include_2.$$arity = 1); + $post_args = Opal.slice.call(arguments, 1, arguments.length); + + keys = $post_args;; + item = (function() {if ($truthy(key.$$is_string && self.$$data.hasOwnProperty(key))) { + return self.$$data[key] || nil; + } else { + return nil + }; return nil; })(); + + if (item === nil || keys.length === 0) { + return item; + } + ; + if ($truthy(item['$respond_to?']("dig"))) { + } else { + self.$raise($$($nesting, 'TypeError'), "" + (item.$class()) + " does not have #dig method") + }; + return $send(item, 'dig', Opal.to_a(keys)); + }, $Struct_dig$37.$$arity = -2), nil) && 'dig'; + })($nesting[0], null, $nesting); }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/dir"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["corelib/dir"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $alias = Opal.alias, $truthy = Opal.truthy; Opal.add_stubs(['$[]']); return (function($base, $super, $parent_nesting) { - function $Dir(){}; - var self = $Dir = $klass($base, $super, 'Dir', $Dir); + var self = $klass($base, $super, 'Dir'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting); + var $nesting = [self].concat($parent_nesting); return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_chdir_1, TMP_pwd_2, TMP_home_3; + var $nesting = [self].concat($parent_nesting), $chdir$1, $pwd$2, $home$3; - Opal.defn(self, '$chdir', TMP_chdir_1 = function $$chdir(dir) { - var self = this, $iter = TMP_chdir_1.$$p, $yield = $iter || nil, prev_cwd = nil; + Opal.def(self, '$chdir', $chdir$1 = function $$chdir(dir) { + var $iter = $chdir$1.$$p, $yield = $iter || nil, self = this, prev_cwd = nil; - if ($iter) TMP_chdir_1.$$p = null; + if ($iter) $chdir$1.$$p = null; return (function() { try { prev_cwd = Opal.current_dir; @@ -20735,39 +24670,41 @@ Opal.modules["corelib/dir"] = function(Opal) { } finally { Opal.current_dir = prev_cwd }; })() - }, TMP_chdir_1.$$arity = 1); + }, $chdir$1.$$arity = 1); - Opal.defn(self, '$pwd', TMP_pwd_2 = function $$pwd() { + Opal.def(self, '$pwd', $pwd$2 = function $$pwd() { var self = this; - return Opal.current_dir || '.' - }, TMP_pwd_2.$$arity = 0); - Opal.alias(self, "getwd", "pwd"); - return (Opal.defn(self, '$home', TMP_home_3 = function $$home() { - var $a, self = this; + return Opal.current_dir || '.'; + }, $pwd$2.$$arity = 0); + $alias(self, "getwd", "pwd"); + return (Opal.def(self, '$home', $home$3 = function $$home() { + var self = this, $ret_or_1 = nil; - return ($truthy($a = Opal.const_get_relative($nesting, 'ENV')['$[]']("HOME")) ? $a : ".") - }, TMP_home_3.$$arity = 0), nil) && 'home'; + if ($truthy(($ret_or_1 = $$($nesting, 'ENV')['$[]']("HOME")))) { + return $ret_or_1 + } else { + return "." + } + }, $home$3.$$arity = 0), nil) && 'home'; })(Opal.get_singleton_class(self), $nesting) })($nesting[0], null, $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/file"] = function(Opal) { +Opal.modules["corelib/file"] = function(Opal) {/* Generated by Opal 1.3.2 */ function $rb_plus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs + rhs : lhs['$+'](rhs); } function $rb_minus(lhs, rhs) { return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); } - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy, $range = Opal.range, $send = Opal.send; + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $truthy = Opal.truthy, $klass = Opal.klass, $alias = Opal.alias, $range = Opal.range, $send = Opal.send; - Opal.add_stubs(['$home', '$raise', '$start_with?', '$+', '$sub', '$pwd', '$split', '$unshift', '$join', '$respond_to?', '$coerce_to!', '$basename', '$empty?', '$rindex', '$[]', '$nil?', '$==', '$-', '$length', '$gsub', '$find', '$=~', '$map', '$each_with_index', '$flatten', '$reject', '$end_with?']); + Opal.add_stubs(['$respond_to?', '$to_path', '$pwd', '$split', '$sub', '$+', '$unshift', '$join', '$home', '$raise', '$start_with?', '$absolute_path', '$coerce_to!', '$basename', '$empty?', '$rindex', '$[]', '$nil?', '$==', '$-', '$length', '$gsub', '$find', '$=~', '$map', '$each_with_index', '$flatten', '$reject', '$to_proc', '$end_with?']); return (function($base, $super, $parent_nesting) { - function $File(){}; - var self = $File = $klass($base, $super, 'File', $File); + var self = $klass($base, $super, 'File'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), windows_root_rx = nil; + var $nesting = [self].concat($parent_nesting), windows_root_rx = nil; Opal.const_set($nesting[0], 'Separator', Opal.const_set($nesting[0], 'SEPARATOR', "/")); @@ -20776,51 +24713,42 @@ Opal.modules["corelib/file"] = function(Opal) { Opal.const_set($nesting[0], 'FNM_SYSCASE', 0); windows_root_rx = /^[a-zA-Z]:(?:\\|\/)/; return (function(self, $parent_nesting) { - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_expand_path_1, TMP_dirname_2, TMP_basename_3, TMP_extname_4, TMP_exist$q_5, TMP_directory$q_7, TMP_join_11, TMP_split_12; + var $nesting = [self].concat($parent_nesting), $absolute_path$1, $expand_path$2, $dirname$3, $basename$4, $extname$5, $exist$ques$6, $directory$ques$7, $join$9, $split$12; - Opal.defn(self, '$expand_path', TMP_expand_path_1 = function $$expand_path(path, basedir) { - var self = this, sep = nil, sep_chars = nil, new_parts = nil, home = nil, home_path_regexp = nil, path_abs = nil, basedir_abs = nil, parts = nil, leading_sep = nil, abs = nil, new_path = nil; + Opal.def(self, '$absolute_path', $absolute_path$1 = function $$absolute_path(path, basedir) { + var self = this, sep = nil, sep_chars = nil, new_parts = nil, $ret_or_1 = nil, path_abs = nil, basedir_abs = nil, parts = nil, leading_sep = nil, abs = nil, new_path = nil; + + if (basedir == null) { basedir = nil; - } - - sep = Opal.const_get_relative($nesting, 'SEPARATOR'); + }; + sep = $$($nesting, 'SEPARATOR'); sep_chars = $sep_chars(); new_parts = []; - if ($truthy(path[0] === '~' || (basedir && basedir[0] === '~'))) { - - home = Opal.const_get_relative($nesting, 'Dir').$home(); - if ($truthy(home)) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "couldn't find HOME environment -- expanding `~'") - }; - if ($truthy(home['$start_with?'](sep))) { - } else { - self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "non-absolute home") - }; - home = $rb_plus(home, sep); - home_path_regexp = new RegExp("" + "^\\~(?:" + (sep) + "|$)"); - path = path.$sub(home_path_regexp, home); - if ($truthy(basedir)) { - basedir = basedir.$sub(home_path_regexp, home)};}; - if ($truthy(basedir)) { - } else { - basedir = Opal.const_get_relative($nesting, 'Dir').$pwd() - }; + path = (function() {if ($truthy(path['$respond_to?']("to_path"))) { + return path.$to_path() + } else { + return path + }; return nil; })(); + basedir = (function() {if ($truthy(($ret_or_1 = basedir))) { + return $ret_or_1 + } else { + return $$($nesting, 'Dir').$pwd() + }; return nil; })(); path_abs = path.substr(0, sep.length) === sep || windows_root_rx.test(path); basedir_abs = basedir.substr(0, sep.length) === sep || windows_root_rx.test(basedir); if ($truthy(path_abs)) { - parts = path.$split(new RegExp("" + "[" + (sep_chars) + "]")); - leading_sep = windows_root_rx.test(path) ? '' : path.$sub(new RegExp("" + "^([" + (sep_chars) + "]+).*$"), "\\1"); + parts = path.$split(Opal.regexp(["[", sep_chars, "]"])); + leading_sep = windows_root_rx.test(path) ? '' : path.$sub(Opal.regexp(["^([", sep_chars, "]+).*$"]), "\\1"); abs = true; - } else { + } else { - parts = $rb_plus(basedir.$split(new RegExp("" + "[" + (sep_chars) + "]")), path.$split(new RegExp("" + "[" + (sep_chars) + "]"))); - leading_sep = windows_root_rx.test(basedir) ? '' : basedir.$sub(new RegExp("" + "^([" + (sep_chars) + "]+).*$"), "\\1"); + parts = $rb_plus(basedir.$split(Opal.regexp(["[", sep_chars, "]"])), path.$split(Opal.regexp(["[", sep_chars, "]"]))); + leading_sep = windows_root_rx.test(basedir) ? '' : basedir.$sub(Opal.regexp(["^([", sep_chars, "]+).*$"]), "\\1"); abs = basedir_abs; }; @@ -20850,8 +24778,38 @@ Opal.modules["corelib/file"] = function(Opal) { if ($truthy(abs)) { new_path = $rb_plus(leading_sep, new_path)}; return new_path; - }, TMP_expand_path_1.$$arity = -2); - Opal.alias(self, "realpath", "expand_path"); + }, $absolute_path$1.$$arity = -2); + + Opal.def(self, '$expand_path', $expand_path$2 = function $$expand_path(path, basedir) { + var self = this, sep = nil, sep_chars = nil, home = nil, leading_sep = nil, home_path_regexp = nil; + + + + if (basedir == null) { + basedir = nil; + }; + sep = $$($nesting, 'SEPARATOR'); + sep_chars = $sep_chars(); + if ($truthy(path[0] === '~' || (basedir && basedir[0] === '~'))) { + + home = $$($nesting, 'Dir').$home(); + if ($truthy(home)) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "couldn't find HOME environment -- expanding `~'") + }; + leading_sep = windows_root_rx.test(home) ? '' : home.$sub(Opal.regexp(["^([", sep_chars, "]+).*$"]), "\\1"); + if ($truthy(home['$start_with?'](leading_sep))) { + } else { + self.$raise($$($nesting, 'ArgumentError'), "non-absolute home") + }; + home = $rb_plus(home, sep); + home_path_regexp = Opal.regexp(["^\\~(?:", sep, "|$)"]); + path = path.$sub(home_path_regexp, home); + if ($truthy(basedir)) { + basedir = basedir.$sub(home_path_regexp, home)};}; + return self.$absolute_path(path, basedir); + }, $expand_path$2.$$arity = -2); + $alias(self, "realpath", "expand_path"); // Coerce a given path to a path string using #to_path and #to_str function $coerce_to_path(path) { @@ -20859,22 +24817,22 @@ Opal.modules["corelib/file"] = function(Opal) { path = path.$to_path(); } - path = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](path, Opal.const_get_relative($nesting, 'String'), "to_str"); + path = $$($nesting, 'Opal')['$coerce_to!'](path, $$($nesting, 'String'), "to_str"); return path; } // Return a RegExp compatible char class function $sep_chars() { - if (Opal.const_get_relative($nesting, 'ALT_SEPARATOR') === nil) { - return Opal.escape_regexp(Opal.const_get_relative($nesting, 'SEPARATOR')); + if ($$($nesting, 'ALT_SEPARATOR') === nil) { + return Opal.escape_regexp($$($nesting, 'SEPARATOR')); } else { - return Opal.escape_regexp($rb_plus(Opal.const_get_relative($nesting, 'SEPARATOR'), Opal.const_get_relative($nesting, 'ALT_SEPARATOR'))); + return Opal.escape_regexp($rb_plus($$($nesting, 'SEPARATOR'), $$($nesting, 'ALT_SEPARATOR'))); } } ; - Opal.defn(self, '$dirname', TMP_dirname_2 = function $$dirname(path) { + Opal.def(self, '$dirname', $dirname$3 = function $$dirname(path) { var self = this, sep_chars = nil; @@ -20893,15 +24851,16 @@ Opal.modules["corelib/file"] = function(Opal) { return path; ; - }, TMP_dirname_2.$$arity = 1); + }, $dirname$3.$$arity = 1); - Opal.defn(self, '$basename', TMP_basename_3 = function $$basename(name, suffix) { + Opal.def(self, '$basename', $basename$4 = function $$basename(name, suffix) { var self = this, sep_chars = nil; + + if (suffix == null) { suffix = nil; - } - + }; sep_chars = $sep_chars(); name = $coerce_to_path(name); @@ -20910,7 +24869,7 @@ Opal.modules["corelib/file"] = function(Opal) { } if (suffix !== nil) { - suffix = Opal.const_get_relative($nesting, 'Opal')['$coerce_to!'](suffix, Opal.const_get_relative($nesting, 'String'), "to_str") + suffix = $$($nesting, 'Opal')['$coerce_to!'](suffix, $$($nesting, 'String'), "to_str") } else { suffix = null; } @@ -20927,33 +24886,37 @@ Opal.modules["corelib/file"] = function(Opal) { return name; ; - }, TMP_basename_3.$$arity = -2); + }, $basename$4.$$arity = -2); - Opal.defn(self, '$extname', TMP_extname_4 = function $$extname(path) { - var $a, self = this, filename = nil, last_dot_idx = nil; + Opal.def(self, '$extname', $extname$5 = function $$extname(path) { + var self = this, filename = nil, last_dot_idx = nil, $ret_or_2 = nil; - path = $coerce_to_path(path);; + path = $coerce_to_path(path); filename = self.$basename(path); if ($truthy(filename['$empty?']())) { return ""}; last_dot_idx = filename['$[]']($range(1, -1, false)).$rindex("."); - if ($truthy(($truthy($a = last_dot_idx['$nil?']()) ? $a : $rb_plus(last_dot_idx, 1)['$==']($rb_minus(filename.$length(), 1))))) { + if ($truthy((function() {if ($truthy(($ret_or_2 = last_dot_idx['$nil?']()))) { + return $ret_or_2 + } else { + return $rb_plus(last_dot_idx, 1)['$==']($rb_minus(filename.$length(), 1)) + }; return nil; })())) { return "" - } else { + } else { return filename['$[]'](Opal.Range.$new($rb_plus(last_dot_idx, 1), -1, false)) }; - }, TMP_extname_4.$$arity = 1); + }, $extname$5.$$arity = 1); - Opal.defn(self, '$exist?', TMP_exist$q_5 = function(path) { + Opal.def(self, '$exist?', $exist$ques$6 = function(path) { var self = this; return Opal.modules[path] != null - }, TMP_exist$q_5.$$arity = 1); - Opal.alias(self, "exists?", "exist?"); + }, $exist$ques$6.$$arity = 1); + $alias(self, "exists?", "exist?"); - Opal.defn(self, '$directory?', TMP_directory$q_7 = function(path) { - var TMP_6, self = this, files = nil, file = nil; + Opal.def(self, '$directory?', $directory$ques$7 = function(path) { + var $$8, self = this, files = nil, file = nil; files = []; @@ -20962,87 +24925,151 @@ Opal.modules["corelib/file"] = function(Opal) { files.push(key) } ; - path = path.$gsub(new RegExp("" + "(^." + (Opal.const_get_relative($nesting, 'SEPARATOR')) + "+|" + (Opal.const_get_relative($nesting, 'SEPARATOR')) + "+$)")); - file = $send(files, 'find', [], (TMP_6 = function(file){var self = TMP_6.$$s || this; -if (file == null) file = nil; - return file['$=~'](new RegExp("" + "^" + (path)))}, TMP_6.$$s = self, TMP_6.$$arity = 1, TMP_6)); + path = path.$gsub(Opal.regexp(["(^.", $$($nesting, 'SEPARATOR'), "+|", $$($nesting, 'SEPARATOR'), "+$)"])); + file = $send(files, 'find', [], ($$8 = function(f){var self = $$8.$$s == null ? this : $$8.$$s; + + + + if (f == null) { + f = nil; + }; + return f['$=~'](Opal.regexp(["^", path]));}, $$8.$$s = self, $$8.$$arity = 1, $$8)); return file; - }, TMP_directory$q_7.$$arity = 1); + }, $directory$ques$7.$$arity = 1); - Opal.defn(self, '$join', TMP_join_11 = function $$join($a_rest) { - var TMP_8, TMP_9, TMP_10, self = this, paths, result = nil; + Opal.def(self, '$join', $join$9 = function $$join($a) { + var $post_args, paths, $$10, $$11, self = this, result = nil; - var $args_len = arguments.length, $rest_len = $args_len - 0; - if ($rest_len < 0) { $rest_len = 0; } - paths = new Array($rest_len); - for (var $arg_idx = 0; $arg_idx < $args_len; $arg_idx++) { - paths[$arg_idx - 0] = arguments[$arg_idx]; - } - if (paths.$length()['$=='](0)) { + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + paths = $post_args;; + if ($truthy(paths['$empty?']())) { return ""}; result = ""; - paths = $send(paths.$flatten().$each_with_index(), 'map', [], (TMP_8 = function(item, index){var self = TMP_8.$$s || this, $a; -if (item == null) item = nil;if (index == null) index = nil; - if ($truthy((($a = index['$=='](0)) ? item['$empty?']() : index['$=='](0)))) { - return Opal.const_get_relative($nesting, 'SEPARATOR') - } else if ($truthy((($a = paths.$length()['$==']($rb_plus(index, 1))) ? item['$empty?']() : paths.$length()['$==']($rb_plus(index, 1))))) { - return Opal.const_get_relative($nesting, 'SEPARATOR') - } else { + paths = $send(paths.$flatten().$each_with_index(), 'map', [], ($$10 = function(item, index){var self = $$10.$$s == null ? this : $$10.$$s, $ret_or_3 = nil, $ret_or_4 = nil; + + + + if (item == null) { + item = nil; + }; + + if (index == null) { + index = nil; + }; + if ($truthy((function() {if ($truthy(($ret_or_3 = index['$=='](0)))) { + return item['$empty?']() + } else { + return $ret_or_3 + }; return nil; })())) { + return $$($nesting, 'SEPARATOR') + } else if ($truthy((function() {if ($truthy(($ret_or_4 = paths.$length()['$==']($rb_plus(index, 1))))) { + return item['$empty?']() + } else { + return $ret_or_4 + }; return nil; })())) { + return $$($nesting, 'SEPARATOR') + } else { return item - }}, TMP_8.$$s = self, TMP_8.$$arity = 2, TMP_8)); - paths = $send(paths, 'reject', [], (TMP_9 = function(path){var self = TMP_9.$$s || this; -if (path == null) path = nil; - return path['$empty?']()}, TMP_9.$$s = self, TMP_9.$$arity = 1, TMP_9)); - $send(paths, 'each_with_index', [], (TMP_10 = function(item, index){var self = TMP_10.$$s || this, $a, next_item = nil; -if (item == null) item = nil;if (index == null) index = nil; - + };}, $$10.$$s = self, $$10.$$arity = 2, $$10)); + paths = $send(paths, 'reject', [], "empty?".$to_proc()); + $send(paths, 'each_with_index', [], ($$11 = function(item, index){var self = $$11.$$s == null ? this : $$11.$$s, next_item = nil, $ret_or_5 = nil, $ret_or_6 = nil; + + + + if (item == null) { + item = nil; + }; + + if (index == null) { + index = nil; + }; next_item = paths['$[]']($rb_plus(index, 1)); if ($truthy(next_item['$nil?']())) { return (result = "" + (result) + (item)) - } else { + } else { - if ($truthy(($truthy($a = item['$end_with?'](Opal.const_get_relative($nesting, 'SEPARATOR'))) ? next_item['$start_with?'](Opal.const_get_relative($nesting, 'SEPARATOR')) : $a))) { - item = item.$sub(new RegExp("" + (Opal.const_get_relative($nesting, 'SEPARATOR')) + "+$"), "")}; - if ($truthy(($truthy($a = item['$end_with?'](Opal.const_get_relative($nesting, 'SEPARATOR'))) ? $a : next_item['$start_with?'](Opal.const_get_relative($nesting, 'SEPARATOR'))))) { - return (result = "" + (result) + (item)) - } else { - return (result = "" + (result) + (item) + (Opal.const_get_relative($nesting, 'SEPARATOR'))) - }; - };}, TMP_10.$$s = self, TMP_10.$$arity = 2, TMP_10)); + if ($truthy((function() {if ($truthy(($ret_or_5 = item['$end_with?']($$($nesting, 'SEPARATOR'))))) { + return next_item['$start_with?']($$($nesting, 'SEPARATOR')) + } else { + return $ret_or_5 + }; return nil; })())) { + item = item.$sub(Opal.regexp([$$($nesting, 'SEPARATOR'), "+$"]), "")}; + return (result = (function() {if ($truthy((function() {if ($truthy(($ret_or_6 = item['$end_with?']($$($nesting, 'SEPARATOR'))))) { + return $ret_or_6 + } else { + return next_item['$start_with?']($$($nesting, 'SEPARATOR')) + }; return nil; })())) { + return "" + (result) + (item) + } else { + return "" + (result) + (item) + ($$($nesting, 'SEPARATOR')) + }; return nil; })()); + };}, $$11.$$s = self, $$11.$$arity = 2, $$11)); return result; - }, TMP_join_11.$$arity = -1); - return (Opal.defn(self, '$split', TMP_split_12 = function $$split(path) { + }, $join$9.$$arity = -1); + return (Opal.def(self, '$split', $split$12 = function $$split(path) { var self = this; - return path.$split(Opal.const_get_relative($nesting, 'SEPARATOR')) - }, TMP_split_12.$$arity = 1), nil) && 'split'; + return path.$split($$($nesting, 'SEPARATOR')) + }, $split$12.$$arity = 1), nil) && 'split'; })(Opal.get_singleton_class(self), $nesting); - })($nesting[0], Opal.const_get_relative($nesting, 'IO'), $nesting) + })($nesting[0], $$($nesting, 'IO'), $nesting) }; -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/process"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass, $truthy = Opal.truthy; +Opal.modules["corelib/process/base"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass; - Opal.add_stubs(['$const_set', '$size', '$<<', '$__register_clock__', '$to_f', '$now', '$new', '$[]', '$raise']); (function($base, $super, $parent_nesting) { - function $Process(){}; - var self = $Process = $klass($base, $super, 'Process', $Process); + var self = $klass($base, $super, 'Signal'); + + var $nesting = [self].concat($parent_nesting), $Signal_trap$1; + + return (Opal.defs(self, '$trap', $Signal_trap$1 = function $$trap($a) { + var $post_args, $rest_arg, self = this; + + + + $post_args = Opal.slice.call(arguments, 0, arguments.length); + + $rest_arg = $post_args;; + return nil; + }, $Signal_trap$1.$$arity = -1), nil) && 'trap' + })($nesting[0], null, $nesting); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'GC'); + + var $nesting = [self].concat($parent_nesting), $GC_start$2; + + return (Opal.defs(self, '$start', $GC_start$2 = function $$start() { + var self = this; + + return nil + }, $GC_start$2.$$arity = 0), nil) && 'start' + })($nesting[0], null, $nesting); +}; + +Opal.modules["corelib/process"] = function(Opal) {/* Generated by Opal 1.3.2 */ + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $module = Opal.module, $truthy = Opal.truthy; + + Opal.add_stubs(['$const_set', '$size', '$<<', '$__register_clock__', '$to_f', '$now', '$new', '$[]', '$raise']); + return (function($base, $parent_nesting) { + var self = $module($base, 'Process'); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Process___register_clock___1, TMP_Process_pid_2, TMP_Process_times_3, TMP_Process_clock_gettime_4, monotonic = nil; + var $nesting = [self].concat($parent_nesting), $Process___register_clock__$1, $Process_pid$2, $Process_times$3, $Process_clock_gettime$4, monotonic = nil; self.__clocks__ = []; - Opal.defs(self, '$__register_clock__', TMP_Process___register_clock___1 = function $$__register_clock__(name, func) { + Opal.defs(self, '$__register_clock__', $Process___register_clock__$1 = function $$__register_clock__(name, func) { var self = this; if (self.__clocks__ == null) self.__clocks__ = nil; self.$const_set(name, self.__clocks__.$size()); return self.__clocks__['$<<'](func); - }, TMP_Process___register_clock___1.$$arity = 2); + }, $Process___register_clock__$1.$$arity = 2); self.$__register_clock__("CLOCK_REALTIME", function() { return Date.now() }); monotonic = false; @@ -21064,27 +25091,32 @@ Opal.modules["corelib/process"] = function(Opal) { ; if ($truthy(monotonic)) { self.$__register_clock__("CLOCK_MONOTONIC", monotonic)}; - Opal.defs(self, '$pid', TMP_Process_pid_2 = function $$pid() { + Opal.defs(self, '$pid', $Process_pid$2 = function $$pid() { var self = this; return 0 - }, TMP_Process_pid_2.$$arity = 0); - Opal.defs(self, '$times', TMP_Process_times_3 = function $$times() { + }, $Process_pid$2.$$arity = 0); + Opal.defs(self, '$times', $Process_times$3 = function $$times() { var self = this, t = nil; - t = Opal.const_get_relative($nesting, 'Time').$now().$to_f(); - return Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Benchmark'), 'Tms').$new(t, t, t, t, t); - }, TMP_Process_times_3.$$arity = 0); - return Opal.defs(self, '$clock_gettime', TMP_Process_clock_gettime_4 = function $$clock_gettime(clock_id, unit) { - var $a, self = this, clock = nil; + t = $$($nesting, 'Time').$now().$to_f(); + return $$$($$($nesting, 'Benchmark'), 'Tms').$new(t, t, t, t, t); + }, $Process_times$3.$$arity = 0); + return (Opal.defs(self, '$clock_gettime', $Process_clock_gettime$4 = function $$clock_gettime(clock_id, unit) { + var self = this, $ret_or_1 = nil, clock = nil; if (self.__clocks__ == null) self.__clocks__ = nil; + + if (unit == null) { unit = "float_second"; - } - - ($truthy($a = (clock = self.__clocks__['$[]'](clock_id))) ? $a : self.$raise(Opal.const_get_qualified(Opal.const_get_relative($nesting, 'Errno'), 'EINVAL'), "" + "clock_gettime(" + (clock_id) + ") " + (self.__clocks__['$[]'](clock_id)))); + }; + if ($truthy(($ret_or_1 = (clock = self.__clocks__['$[]'](clock_id))))) { + $ret_or_1 + } else { + self.$raise($$$($$($nesting, 'Errno'), 'EINVAL'), "" + "clock_gettime(" + (clock_id) + ") " + (self.__clocks__['$[]'](clock_id))) + }; var ms = clock(); switch (unit) { @@ -21095,215 +25127,470 @@ Opal.modules["corelib/process"] = function(Opal) { case 'millisecond': return ((ms / 1) | 0); // number of milliseconds as an integer case 'microsecond': return ((ms * 1000) | 0); // number of microseconds as an integer case 'nanosecond': return ((ms * 1000000) | 0); // number of nanoseconds as an integer - default: self.$raise(Opal.const_get_relative($nesting, 'ArgumentError'), "" + "unexpected unit: " + (unit)) + default: self.$raise($$($nesting, 'ArgumentError'), "" + "unexpected unit: " + (unit)) } ; - }, TMP_Process_clock_gettime_4.$$arity = -2); - })($nesting[0], null, $nesting); - (function($base, $super, $parent_nesting) { - function $Signal(){}; - var self = $Signal = $klass($base, $super, 'Signal', $Signal); + }, $Process_clock_gettime$4.$$arity = -2), nil) && 'clock_gettime'; + })($nesting[0], $nesting) +}; + +Opal.modules["corelib/random/formatter"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + function $rb_divide(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs / rhs : lhs['$/'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $module = Opal.module, $send = Opal.send, $range = Opal.range; + + Opal.add_stubs(['$_verify_count', '$bytes', '$encode', '$strict_encode64', '$random_bytes', '$urlsafe_encode64', '$split', '$hex', '$[]=', '$-', '$[]', '$map', '$to_proc', '$join', '$times', '$<<', '$|', '$ord', '$/', '$abs', '$random_float', '$raise', '$coerce_to!', '$flatten', '$new', '$random_number', '$length', '$include', '$extend']); + return (function($base, $super, $parent_nesting) { + var self = $klass($base, $super, 'Random'); + + var $nesting = [self].concat($parent_nesting); + + + (function($base, $parent_nesting) { + var self = $module($base, 'Formatter'); + + var $nesting = [self].concat($parent_nesting), $Formatter_hex$1, $Formatter_random_bytes$2, $Formatter_base64$3, $Formatter_urlsafe_base64$4, $Formatter_uuid$5, $Formatter_random_float$6, $Formatter_random_number$8, $Formatter_alphanumeric$9; + + + + Opal.def(self, '$hex', $Formatter_hex$1 = function $$hex(count) { + var self = this; + + + + if (count == null) { + count = nil; + }; + count = $$($nesting, 'Random').$_verify_count(count); + + var bytes = self.$bytes(count); + var out = ""; + for (var i = 0; i < count; i++) { + out += bytes.charCodeAt(i).toString(16).padStart(2, '0'); + } + return (out).$encode("US-ASCII"); + ; + }, $Formatter_hex$1.$$arity = -1); + + Opal.def(self, '$random_bytes', $Formatter_random_bytes$2 = function $$random_bytes(count) { + var self = this; + + + + if (count == null) { + count = nil; + }; + return self.$bytes(count); + }, $Formatter_random_bytes$2.$$arity = -1); + + Opal.def(self, '$base64', $Formatter_base64$3 = function $$base64(count) { + var self = this; + + + + if (count == null) { + count = nil; + }; + return $$($nesting, 'Base64').$strict_encode64(self.$random_bytes(count)).$encode("US-ASCII"); + }, $Formatter_base64$3.$$arity = -1); + + Opal.def(self, '$urlsafe_base64', $Formatter_urlsafe_base64$4 = function $$urlsafe_base64(count, padding) { + var self = this; + + + + if (count == null) { + count = nil; + }; + + if (padding == null) { + padding = false; + }; + return $$($nesting, 'Base64').$urlsafe_encode64(self.$random_bytes(count), padding).$encode("US-ASCII"); + }, $Formatter_urlsafe_base64$4.$$arity = -1); + + Opal.def(self, '$uuid', $Formatter_uuid$5 = function $$uuid() { + var self = this, str = nil, $writer = nil; + + + str = self.$hex(16).$split(""); + + $writer = [12, "4"]; + $send(str, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + + $writer = [16, (parseInt(str['$[]'](16), 16) & 3 | 8).toString(16)]; + $send(str, '[]=', Opal.to_a($writer)); + $writer[$rb_minus($writer["length"], 1)];; + str = [str['$[]']($range(0, 8, true)), str['$[]']($range(8, 12, true)), str['$[]']($range(12, 16, true)), str['$[]']($range(16, 20, true)), str['$[]']($range(20, 32, true))]; + str = $send(str, 'map', [], "join".$to_proc()); + return str.$join("-"); + }, $Formatter_uuid$5.$$arity = 0); + + Opal.def(self, '$random_float', $Formatter_random_float$6 = function $$random_float() { + var $$7, self = this, bs = nil, num = nil; + + + bs = self.$bytes(4); + num = 0; + $send((4), 'times', [], ($$7 = function(i){var self = $$7.$$s == null ? this : $$7.$$s; + + + + if (i == null) { + i = nil; + }; + num = num['$<<'](8); + return (num = num['$|'](bs['$[]'](i).$ord()));}, $$7.$$s = self, $$7.$$arity = 1, $$7)); + return $rb_divide(num.$abs(), 2147483647); + }, $Formatter_random_float$6.$$arity = 0); + + Opal.def(self, '$random_number', $Formatter_random_number$8 = function $$random_number(limit) { + var self = this; + + + ; + + function randomFloat() { + return self.$random_float(); + } + + function randomInt(max) { + return Math.floor(randomFloat() * max); + } + + function randomRange() { + var min = limit.begin, + max = limit.end; + + if (min === nil || max === nil) { + return nil; + } + + var length = max - min; + + if (length < 0) { + return nil; + } + + if (length === 0) { + return min; + } + + if (max % 1 === 0 && min % 1 === 0 && !limit.excl) { + length++; + } + + return randomInt(length) + min; + } + + if (limit == null) { + return randomFloat(); + } else if (limit.$$is_range) { + return randomRange(); + } else if (limit.$$is_number) { + if (limit <= 0) { + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid argument - " + (limit)) + } + + if (limit % 1 === 0) { + // integer + return randomInt(limit); + } else { + return randomFloat() * limit; + } + } else { + limit = $$($nesting, 'Opal')['$coerce_to!'](limit, $$($nesting, 'Integer'), "to_int"); - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_Signal_trap_5; + if (limit <= 0) { + self.$raise($$($nesting, 'ArgumentError'), "" + "invalid argument - " + (limit)) + } + + return randomInt(limit); + } + ; + }, $Formatter_random_number$8.$$arity = -1); + return (Opal.def(self, '$alphanumeric', $Formatter_alphanumeric$9 = function $$alphanumeric(count) { + var $$10, self = this, map = nil; + + + + if (count == null) { + count = nil; + }; + count = $$($nesting, 'Random').$_verify_count(count); + map = $send([$range("0", "9", false), $range("a", "z", false), $range("A", "Z", false)], 'map', [], "to_a".$to_proc()).$flatten(); + return $send($$($nesting, 'Array'), 'new', [count], ($$10 = function(i){var self = $$10.$$s == null ? this : $$10.$$s; + + + + if (i == null) { + i = nil; + }; + return map['$[]'](self.$random_number(map.$length()));}, $$10.$$s = self, $$10.$$arity = 1, $$10)).$join(); + }, $Formatter_alphanumeric$9.$$arity = -1), nil) && 'alphanumeric'; + })($nesting[0], $nesting); + self.$include($$$($$($nesting, 'Random'), 'Formatter')); + return self.$extend($$$($$($nesting, 'Random'), 'Formatter')); + })($nesting[0], null, $nesting) +}; + +Opal.modules["corelib/random/mersenne_twister"] = function(Opal) {/* Generated by Opal 1.3.2 */ + function $rb_minus(lhs, rhs) { + return (typeof(lhs) === 'number' && typeof(rhs) === 'number') ? lhs - rhs : lhs['$-'](rhs); + } + var self = Opal.top, $nesting = [], nil = Opal.nil, $$$ = Opal.$$$, $$ = Opal.$$, $klass = Opal.klass, $send = Opal.send, mersenne_twister = nil; + + Opal.add_stubs(['$generator=', '$-']); + + mersenne_twister = (function() { + /* Period parameters */ + var N = 624; + var M = 397; + var MATRIX_A = 0x9908b0df; /* constant vector a */ + var UMASK = 0x80000000; /* most significant w-r bits */ + var LMASK = 0x7fffffff; /* least significant r bits */ + var MIXBITS = function(u,v) { return ( ((u) & UMASK) | ((v) & LMASK) ); }; + var TWIST = function(u,v) { return (MIXBITS((u),(v)) >>> 1) ^ ((v & 0x1) ? MATRIX_A : 0x0); }; + + function init(s) { + var mt = {left: 0, next: N, state: new Array(N)}; + init_genrand(mt, s); + return mt; + } + + /* initializes mt[N] with a seed */ + function init_genrand(mt, s) { + var j, i; + mt.state[0] = s >>> 0; + for (j=1; j> 30) >>> 0)) + j); + /* See Knuth TAOCP Vol2. 3rd Ed. P.106 for multiplier. */ + /* In the previous versions, MSBs of the seed affect */ + /* only MSBs of the array state[]. */ + /* 2002/01/09 modified by Makoto Matsumoto */ + mt.state[j] &= 0xffffffff; /* for >32 bit machines */ + } + mt.left = 1; + mt.next = N; + } + + /* generate N words at one time */ + function next_state(mt) { + var p = 0, _p = mt.state; + var j; + + mt.left = N; + mt.next = 0; + + for (j=N-M+1; --j; p++) + _p[p] = _p[p+(M)] ^ TWIST(_p[p+(0)], _p[p+(1)]); + + for (j=M; --j; p++) + _p[p] = _p[p+(M-N)] ^ TWIST(_p[p+(0)], _p[p+(1)]); + + _p[p] = _p[p+(M-N)] ^ TWIST(_p[p+(0)], _p[0]); + } - return Opal.defs(self, '$trap', TMP_Signal_trap_5 = function $$trap($a_rest) { - var self = this; + /* generates a random number on [0,0xffffffff]-interval */ + function genrand_int32(mt) { + /* mt must be initialized */ + var y; - return nil - }, TMP_Signal_trap_5.$$arity = -1) - })($nesting[0], null, $nesting); - return (function($base, $super, $parent_nesting) { - function $GC(){}; - var self = $GC = $klass($base, $super, 'GC', $GC); + if (--mt.left <= 0) next_state(mt); + y = mt.state[mt.next++]; - var def = self.$$proto, $nesting = [self].concat($parent_nesting), TMP_GC_start_6; + /* Tempering */ + y ^= (y >>> 11); + y ^= (y << 7) & 0x9d2c5680; + y ^= (y << 15) & 0xefc60000; + y ^= (y >>> 18); - return Opal.defs(self, '$start', TMP_GC_start_6 = function $$start() { - var self = this; + return y >>> 0; + } - return nil - }, TMP_GC_start_6.$$arity = 0) - })($nesting[0], null, $nesting); -}; + function int_pair_to_real_exclusive(a, b) { + a >>>= 5; + b >>>= 6; + return(a*67108864.0+b)*(1.0/9007199254740992.0); + } -/* Generated by Opal 0.11.4 */ -Opal.modules["corelib/random/seedrandom"] = function(Opal) { - var self = Opal.top, $nesting = [], nil = Opal.nil, $breaker = Opal.breaker, $slice = Opal.slice, $klass = Opal.klass; + // generates a random number on [0,1) with 53-bit resolution + function genrand_real(mt) { + /* mt must be initialized */ + var a = genrand_int32(mt), b = genrand_int32(mt); + return int_pair_to_real_exclusive(a, b); + } + return { genrand_real: genrand_real, init: init }; +})(); return (function($base, $super, $parent_nesting) { - function $Random(){}; - var self = $Random = $klass($base, $super, 'Random', $Random); - - var def = self.$$proto, $nesting = [self].concat($parent_nesting); - - - /* jshint ignore:start */ - /* - seedrandom.min.js 2.4.1 (original source: https://github.com/davidbau/seedrandom/blob/2.4.1/seedrandom.min.js) - How to update: - . Chekout the latest release from GitHub: https://github.com/davidbau/seedrandom - . Apply the following commits: - .. Check for hasOwnProperty in flatten(): https://github.com/iliabylich/seedrandom/commit/06a94f59ae3d3956c8b1a2488334cafab6744b04 - .. Add a module id for the RequireJS `define` method: https://github.com/Mogztter/seedrandom/commit/e047540c3d81f955cab9a01d17b8141d439fbd7d - */ - !function(a,b){function c(c,j,k){var n=[];j=1==j?{entropy:!0}:j||{};var s=g(f(j.entropy?[c,i(a)]:null==c?h():c,3),n),t=new d(n),u=function(){for(var a=t.g(m),b=p,c=0;a=r;)a/=2,b/=2,c>>>=1;return(a+c)/b};return u.int32=function(){return 0|t.g(4)},u.quick=function(){return t.g(4)/4294967296},u.double=u,g(i(t.S),a),(j.pass||k||function(a,c,d,f){return f&&(f.S&&e(f,t),a.state=function(){return e(t,{})}),d?(b[o]=a,c):a})(u,s,"global"in j?j.global:this==b,j.state)}function d(a){var b,c=a.length,d=this,e=0,f=d.i=d.j=0,g=d.S=[];for(c||(a=[c++]);e=0;r--)n="$"+i[r],m.bridge_method(e,t,n,t.$$proto[n])}function _(e,t){var r=t.$__id__();b[r]||(b[r]=[]),b[r].push(e)}var f,d,g,h,p,v,y=this;if("undefined"!=typeof global&&(y=global),"undefined"!=typeof window&&(y=window),"log"in(f="object"==typeof y.console?y.console:null==y.console?y.console={}:{})||(f.log=function(){}),"warn"in f||(f.warn=f.log),"undefined"!=typeof this.Opal)return f.warn("Opal already loaded. Loading twice can cause troubles, please fix your setup."),this.Opal;var m=this.Opal={},b={};m.global=y,y.Opal=m,m.config={missing_require_severity:"error",unsupported_features_severity:"warning",enable_stack_trace:!0};var w=Object.hasOwnProperty,O=(m.slice=Array.prototype.slice,4),M=O;m.uid=function(){return M+=2},m.id=function(e){return e.$$is_number?2*e+1:e.$$id||(e.$$id=m.uid())},m.gvars={},m.exit=function(e){m.gvars.DEBUG&&f.log("Exited with status "+e)},m.exceptions=[],m.pop_exception=function(){m.gvars["!"]=m.exceptions.pop()||d},m.inspect=function(t){return t===e?"undefined":null===t?"null":t.$$class?t.$inspect():t.toString()},m.truthy=function(e){return e!==d&&null!=e&&(!e.$$is_boolean||1==e)},m.falsy=function(e){return e===d||null==e||e.$$is_boolean&&0==e},m.const_get_local=function(e,t,r){var n;if(null!=e){if("::"===e&&(e=h),!e.$$is_a_module)throw new m.TypeError(e.toString()+" is not a class/module");return null!=(n=$(e,t))?n:null!=(n=c(e,t,r))?n:void 0}},m.const_get_qualified=function(e,t,r){var n,i,a,o=m.const_cache_version;if(null!=e){if("::"===e&&(e=h),!e.$$is_a_module)throw new m.TypeError(e.toString()+" is not a class/module");return null==(i=e.$$const_cache)&&(i=e.$$const_cache=Object.create(null)),null==(a=i[t])||a[0]!==o?(null!=(n=$(e,t))||(n=s(e,t)),i[t]=[o,n]):n=a[1],null!=n?n:c(e,t,r)}},m.const_cache_version=1,m.const_get_relative=function(e,t,r){var n,i,a,u=e[0],_=m.const_cache_version;return null==(i=e.$$const_cache)&&(i=e.$$const_cache=Object.create(null)),null==(a=i[t])||a[0]!==_?(null!=(n=$(u,t))||null!=(n=o(e,t))||null!=(n=s(u,t))||(n=l(u,t)),i[t]=[_,n]):n=a[1],null!=n?n:c(u,t,r)},m.const_set=function(e,t,r){return null!=e&&"::"!==e||(e=h),r.$$is_a_module&&(null!=r.$$name&&r.$$name!==d||(r.$$name=t),null==r.$$base_module&&(r.$$base_module=e)),e.$$const=e.$$const||Object.create(null),e.$$const[t]=r,m.const_cache_version++,e===h&&(m[t]=r),r},m.constants=function(e,t){null==t&&(t=!0);var r,n,i,a,$=[e],o={};for(t&&($=$.concat(m.ancestors(e))),t&&e.$$is_module&&($=$.concat([m.Object]).concat(m.ancestors(m.Object))),n=0,i=$.length;n")+">",$.$$proto=t.prototype,$.$$proto.$$class=$,$.constructor=a,$.$$is_class=!0,$.$$class=v,$},m.module=function(e,t){var r;if(null==e&&(e=h),e.$$is_class||e.$$is_module||(e=e.$$class),null==(r=$(e,t))&&e===h&&(r=s(h,t)),r){if(!r.$$is_module&&r!==h)throw m.TypeError.$new(t+" is not a module")}else r=m.module_allocate(p),m.const_set(e,t,r);return r},m.module_initialize=function(e,t){if(t!==d){var r=t.$$s;t.$$s=null,t.call(e),t.$$s=r}return d},m.module_allocate=function(e){var t=function(){};t.prototype=e.$$alloc.prototype;var r=function(){};r.prototype=new t;var n=new r,i={};return m.setup_module_or_class(n),n.$$included_in=[],r.displayName="#>",n.$$proto=i,n.constructor=r,n.$$is_module=!0,n.$$class=p,n.$$super=e,n.$$parent=e,n},m.get_singleton_class=function(e){return e.$$meta?e.$$meta:e.$$is_class||e.$$is_module?m.build_class_singleton_class(e):m.build_object_singleton_class(e)},m.build_class_singleton_class=function(e){var t,r,n;return e.$$meta?e.$$meta:(t=e.constructor,r=e===g?v:m.build_class_singleton_class(e.$$super),(n=m.setup_class_object(null,t,r.$$name,r.constructor)).$$super=r,n.$$parent=r,n.$$is_singleton=!0,n.$$singleton_of=e,e.$$meta=n)},m.build_object_singleton_class=function(e){var t=e.$$class,r="#>",n=m.boot_class_alloc(r,function(){},t),i=m.setup_class_object(r,n,t.$$name,t.constructor);return i.$$super=t,i.$$parent=t,i.$$class=t.$$class,i.$$proto=e,i.$$is_singleton=!0,i.$$singleton_of=e,e.$$meta=i},m.class_variables=function(e){var t,r=m.ancestors(e),n={};for(t=r.length-1;t>=0;t--){var i=r[t];for(var a in i.$$cvars)n[a]=i.$$cvars[a]}return n},m.class_variable_set=function(e,t,r){var n,i=m.ancestors(e);for(n=i.length-2;n>=0;n--){var a=i[n];if(w.call(a.$$cvars,t))return a.$$cvars[t]=r,r}return e.$$cvars[t]=r,r},m.bridge_method=function(e,t,r,n){var i,a,$,o;for(a=0,o=(i=e.$$bridge.$ancestors()).length;a=0;r--)u(n[r],t)},m.has_cyclic_dep=function E(e,t,r,n){var i,a,$;for(i=t.length-1;i>=0;i--)if(!n[a=($=t[i]).$$id]){if(n[a]=!0,a===e)return!0;if(E(e,$[r],r,n))return!0}return!1},m.append_features=function(e,t){var r,n,i;for(i=t.$$inc.length-1;i>=0;i--)if(t.$$inc[i]===e)return;if(!t.$$is_class&&m.has_cyclic_dep(t.$$id,[e],"$$inc",{}))throw m.ArgumentError.$new("cyclic include detected");for(m.const_cache_version++,t.$$inc.push(e),e.$$included_in.push(t),m.bridge_methods(t,e),r={$$name:e.$$name,$$proto:e.$$proto,$$parent:t.$$parent,$$module:e,$$iclass:!0},t.$$parent=r,i=(n=e.$instance_methods()).length-1;i>=0;i--)m.update_includer(e,t,"$"+n[i])},m.stubs={},m.bridge=function(e,r){if(r.$$bridge)throw m.ArgumentError.$new("already bridged");for(var n in m.stub_subscribers.push(r.prototype),m.stubs)n in r.prototype||(r.prototype[n]=m.stub_for(n));r.prototype.$$class=e,r.$$bridge=e;for(var i=e.$ancestors(),a=i.length-1;a>=0;a--)_(r,i[a]),u(r,i[a]);for(var $ in t.prototype){var o=t.prototype[o];!o||!o.$$stub||$ in r.prototype||(r.prototype[$]=o)}return e},m.update_includer=function(e,t,r){var n,i,a,$,o,s,l,c;if(a=e.$$proto[r],i=(n=t.$$proto)[r],!n.hasOwnProperty(r)||i.$$donated||i.$$stub)if(n.hasOwnProperty(r)&&!i.$$stub){for(o=0,s=($=t.$$inc).length;o=0;r--)for(n=0,i=(t=m.ancestors(a.$$inc[r])).length;n1||(r||n)&&1===e.length)&&(t=m.to_ary(t)),(e.length>1||n&&1===e.length)&&t.$$is_array?e.apply(null,t):e(t)},m.yieldX=function(e,t){if("function"!=typeof e)throw m.LocalJumpError.$new("no block given");if(e.length>1&&1===t.length&&t[0].$$is_array)return e.apply(null,t[0]);if(!t.$$is_array){for(var r=new Array(t.length),n=0,i=r.length;n=0;i--)m.bridge_method(n[i],e,t,r);var a=e.$$singleton_of;return!e.$method_added||e.$method_added.$$stub||a?a&&a.$singleton_method_added&&!a.$singleton_method_added.$$stub&&a.$singleton_method_added(t.substr(1)):e.$method_added(t.substr(1)),d},m.defs=function(e,t,r){m.defn(m.get_singleton_class(e),t,r)},m.rdef=function(e,t){if(!w.call(e.$$proto,t))throw m.NameError.$new("method '"+t.substr(1)+"' not defined in "+e.$name());delete e.$$proto[t],e.$$is_singleton?e.$$proto.$singleton_method_removed&&!e.$$proto.$singleton_method_removed.$$stub&&e.$$proto.$singleton_method_removed(t.substr(1)):e.$method_removed&&!e.$method_removed.$$stub&&e.$method_removed(t.substr(1))},m.udef=function(e,t){if(!e.$$proto[t]||e.$$proto[t].$$stub)throw m.NameError.$new("method '"+t.substr(1)+"' not defined in "+e.$name());m.add_stub_for(e.$$proto,t),e.$$is_singleton?e.$$proto.$singleton_method_undefined&&!e.$$proto.$singleton_method_undefined.$$stub&&e.$$proto.$singleton_method_undefined(t.substr(1)):e.$method_undefined&&!e.$method_undefined.$$stub&&e.$method_undefined(t.substr(1))},m.alias=function(e,t,r){var n,i="$"+t,a="$"+r,$=e.$$proto["$"+r];if(e.$$eval)return m.alias(m.get_singleton_class(e),t,r);if("function"!=typeof $||$.$$stub){for(var o=e.$$super;"function"!=typeof $&&o;)$=o[a],o=o.$$super;if("function"!=typeof $||$.$$stub)throw m.NameError.$new("undefined method `"+r+"' for class `"+e.$name()+"'")}return $.$$alias_of&&($=$.$$alias_of),(n=function(){var e,t,r,i=n.$$p;for(e=new Array(arguments.length),t=0,r=arguments.length;t","$coerce_to!","$!=","$[]","$upcase"]),function(t,a){var $,o,s,l,c,u,_,f,d,g,h,p,v,y,m=n(t,"Opal"),b=(m.$$proto,[m].concat(a));e.defs(m,"$bridge",$=function(t,r){return e.bridge(t,r)},$.$$arity=2),e.defs(m,"$type_error",o=function(t,n,a,$){var o;return null==a&&(a=r),null==$&&($=r),i(i(o=a)?$:o)?e.const_get_relative(b,"TypeError").$new("can't convert "+t.$class()+" into "+n+" ("+t.$class()+"#"+a+" gives "+$.$class()):e.const_get_relative(b,"TypeError").$new("no implicit conversion of "+t.$class()+" into "+n)},o.$$arity=-3),e.defs(m,"$coerce_to",s=function(e,t,r){var n=this;return i(t["$==="](e))?e:(i(e["$respond_to?"](r))||n.$raise(n.$type_error(e,t)),e.$__send__(r))},s.$$arity=3),e.defs(m,"$coerce_to!",l=function(e,t,n){var a=this,$=r;return $=a.$coerce_to(e,t,n),i(t["$==="]($))||a.$raise(a.$type_error(e,t,n,$)),$},l.$$arity=3),e.defs(m,"$coerce_to?",c=function(e,t,n){var a=this,$=r;return i(e["$respond_to?"](n))?($=a.$coerce_to(e,t,n),i($["$nil?"]())?r:(i(t["$==="]($))||a.$raise(a.$type_error(e,t,n,$)),$)):r},c.$$arity=3),e.defs(m,"$try_convert",u=function(e,t,n){return i(t["$==="](e))?e:i(e["$respond_to?"](n))?e.$__send__(n):r},u.$$arity=3),e.defs(m,"$compare",_=function(t,n){var a=this,$=r;return $=t["$<=>"](n),i($===r)&&a.$raise(e.const_get_relative(b,"ArgumentError"),"comparison of "+t.$class()+" with "+n.$class()+" failed"),$},_.$$arity=2),e.defs(m,"$destructure",f=function(e){if(1==e.length)return e[0];if(e.$$is_array)return e;for(var t=new Array(e.length),r=0,n=t.length;r=0;s--)n=t[s],(i=e.$$proto["$"+n])&&!i.$$stub&&(i.$$pristine=!0);return r},y.$$arity=-2)}(t[0],t)},Opal.modules["corelib/module"]=function(Opal){function $rb_lt(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}function $rb_plus(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$breaker=Opal.breaker,$slice=Opal.slice,$klass=Opal.klass,$truthy=Opal.truthy,$send=Opal.send,$range=Opal.range,$hash2=Opal.hash2;return Opal.add_stubs(["$===","$raise","$equal?","$<","$>","$nil?","$attr_reader","$attr_writer","$class_variable_name!","$new","$const_name!","$=~","$inject","$split","$const_get","$==","$!","$start_with?","$to_proc","$lambda","$bind","$call","$class","$append_features","$included","$name","$cover?","$size","$merge","$compile","$proc","$+","$to_s","$__id__","$constants","$include?","$copy_class_variables","$copy_constants"]),function($base,$super,$parent_nesting){function $Module(){}var self=$Module=$klass($base,$super,"Module",$Module),def=self.$$proto,$nesting=[self].concat($parent_nesting),TMP_Module_allocate_1,TMP_Module_initialize_2,TMP_Module_$eq$eq$eq_3,TMP_Module_$lt_4,TMP_Module_$lt$eq_5,TMP_Module_$gt_6,TMP_Module_$gt$eq_7,TMP_Module_$lt$eq$gt_8,TMP_Module_alias_method_9,TMP_Module_alias_native_10,TMP_Module_ancestors_11,TMP_Module_append_features_12,TMP_Module_attr_accessor_13,TMP_Module_attr_reader_14,TMP_Module_attr_writer_15,TMP_Module_autoload_16,TMP_Module_class_variables_17,TMP_Module_class_variable_get_18,TMP_Module_class_variable_set_19,TMP_Module_class_variable_defined$q_20,TMP_Module_remove_class_variable_21,TMP_Module_constants_22,TMP_Module_constants_23,TMP_Module_nesting_24,TMP_Module_const_defined$q_25,TMP_Module_const_get_27,TMP_Module_const_missing_28,TMP_Module_const_set_29,TMP_Module_public_constant_30,TMP_Module_define_method_31,TMP_Module_remove_method_33,TMP_Module_singleton_class$q_34,TMP_Module_include_35,TMP_Module_included_modules_36,TMP_Module_include$q_37,TMP_Module_instance_method_38,TMP_Module_instance_methods_39,TMP_Module_included_40,TMP_Module_extended_41,TMP_Module_method_added_42,TMP_Module_method_removed_43,TMP_Module_method_undefined_44,TMP_Module_module_eval_45,TMP_Module_module_exec_47,TMP_Module_method_defined$q_48,TMP_Module_module_function_49,TMP_Module_name_50,TMP_Module_remove_const_51,TMP_Module_to_s_52,TMP_Module_undef_method_53,TMP_Module_instance_variables_54,TMP_Module_dup_55,TMP_Module_copy_class_variables_56,TMP_Module_copy_constants_57;return Opal.defs(self,"$allocate",TMP_Module_allocate_1=function(){var e=this;return Opal.module_allocate(e)},TMP_Module_allocate_1.$$arity=0),Opal.defn(self,"$initialize",TMP_Module_initialize_2=function(){var e=this,t=TMP_Module_initialize_2.$$p,r=t||nil;return t&&(TMP_Module_initialize_2.$$p=null),Opal.module_initialize(e,r)},TMP_Module_initialize_2.$$arity=0),Opal.defn(self,"$===",TMP_Module_$eq$eq$eq_3=function(e){var t=this;return!$truthy(null==e)&&Opal.is_a(e,t)},TMP_Module_$eq$eq$eq_3.$$arity=1),Opal.defn(self,"$<",TMP_Module_$lt_4=function(e){var t,r,n,i=this;if($truthy(Opal.const_get_relative($nesting,"Module")["$==="](e))||i.$raise(Opal.const_get_relative($nesting,"TypeError"),"compared with non class/module"),i===e)return!1;for(r=0,n=(t=Opal.ancestors(i)).length;r",TMP_Module_$gt_6=function(e){var t=this;return $truthy(Opal.const_get_relative($nesting,"Module")["$==="](e))||t.$raise(Opal.const_get_relative($nesting,"TypeError"),"compared with non class/module"),$rb_lt(e,t)},TMP_Module_$gt_6.$$arity=1),Opal.defn(self,"$>=",TMP_Module_$gt$eq_7=function(e){var t,r=this;return $truthy(t=r["$equal?"](e))?t:$rb_gt(r,e)},TMP_Module_$gt$eq_7.$$arity=1),Opal.defn(self,"$<=>",TMP_Module_$lt$eq$gt_8=function(e){var t=this,r=nil;return t===e?0:$truthy(Opal.const_get_relative($nesting,"Module")["$==="](e))?(r=$rb_lt(t,e),$truthy(r["$nil?"]())?nil:$truthy(r)?-1:1):nil},TMP_Module_$lt$eq$gt_8.$$arity=1),Opal.defn(self,"$alias_method",TMP_Module_alias_method_9=function(e,t){var r=this;return Opal.alias(r,e,t),r},TMP_Module_alias_method_9.$$arity=2),Opal.defn(self,"$alias_native",TMP_Module_alias_native_10=function(e,t){var r=this;return null==t&&(t=e),Opal.alias_native(r,e,t),r},TMP_Module_alias_native_10.$$arity=-2),Opal.defn(self,"$ancestors",TMP_Module_ancestors_11=function(){var e=this;return Opal.ancestors(e)},TMP_Module_ancestors_11.$$arity=0),Opal.defn(self,"$append_features",TMP_Module_append_features_12=function(e){var t=this;return Opal.append_features(t,e),t},TMP_Module_append_features_12.$$arity=1),Opal.defn(self,"$attr_accessor",TMP_Module_attr_accessor_13=function(){var e,t=this,r=arguments.length,n=r-0;n<0&&(n=0),e=new Array(n);for(var i=0;i=0;$--){var o=e[$],s="$"+o,l=Opal.ivar(o),c=function(e){return function(){return null==this[e]?nil:this[e]}}(l);a[l]=nil,c.$$parameters=[],c.$$arity=0,t.$$is_singleton?a.constructor.prototype[s]=c:Opal.defn(t,s,c)}return nil},TMP_Module_attr_reader_14.$$arity=-1),Opal.defn(self,"$attr_writer",TMP_Module_attr_writer_15=function(){var e,t=this,r=arguments.length,n=r-0;n<0&&(n=0),e=new Array(n);for(var i=0;i=0;$--){var o=e[$],s="$"+o+"=",l=Opal.ivar(o),c=function(e){return function(t){return this[e]=t}}(l);c.$$parameters=[["req"]],c.$$arity=1,a[l]=nil,t.$$is_singleton?a.constructor.prototype[s]=c:Opal.defn(t,s,c)}return nil},TMP_Module_attr_writer_15.$$arity=-1),Opal.defn(self,"$autoload",TMP_Module_autoload_16=function(e,t){var r=this;return null==r.$$autoload&&(r.$$autoload={}),Opal.const_cache_version++,r.$$autoload[e]=t,nil},TMP_Module_autoload_16.$$arity=2),Opal.defn(self,"$class_variables",TMP_Module_class_variables_17=function(){var e=this;return Object.keys(Opal.class_variables(e))},TMP_Module_class_variables_17.$$arity=0),Opal.defn(self,"$class_variable_get",TMP_Module_class_variable_get_18=function(e){var t=this;e=Opal.const_get_relative($nesting,"Opal")["$class_variable_name!"](e);var r=Opal.class_variables(t)[e];return null==r&&t.$raise(Opal.const_get_relative($nesting,"NameError").$new("uninitialized class variable "+e+" in "+t,e)),r},TMP_Module_class_variable_get_18.$$arity=1),Opal.defn(self,"$class_variable_set",TMP_Module_class_variable_set_19=function(e,t){var r=this;return e=Opal.const_get_relative($nesting,"Opal")["$class_variable_name!"](e),Opal.class_variable_set(r,e,t)},TMP_Module_class_variable_set_19.$$arity=2),Opal.defn(self,"$class_variable_defined?",TMP_Module_class_variable_defined$q_20=function(e){var t=this;return e=Opal.const_get_relative($nesting,"Opal")["$class_variable_name!"](e),Opal.class_variables(t).hasOwnProperty(e)},TMP_Module_class_variable_defined$q_20.$$arity=1),Opal.defn(self,"$remove_class_variable",TMP_Module_remove_class_variable_21=function(e){var t=this;if(e=Opal.const_get_relative($nesting,"Opal")["$class_variable_name!"](e),Opal.hasOwnProperty.call(t.$$cvars,e)){var r=t.$$cvars[e];return delete t.$$cvars[e],r}t.$raise(Opal.const_get_relative($nesting,"NameError").$new("cannot remove "+e+" for "+t))},TMP_Module_remove_class_variable_21.$$arity=1),Opal.defn(self,"$constants",TMP_Module_constants_22=function(e){var t=this;return null==e&&(e=!0),Opal.constants(t,e)},TMP_Module_constants_22.$$arity=-1),Opal.defs(self,"$constants",TMP_Module_constants_23=function(e){var t=this;if(null==e){var r,n,i,a=(t.$$nesting||[]).concat(Opal.Object),$={};for(n=0,i=a.length;n=0;a--){var $=e[a];$.$$is_module||t.$raise(Opal.const_get_relative($nesting,"TypeError"),"wrong argument type "+$.$class()+" (expected Module)"),$.$append_features(t),$.$included(t)}return t},TMP_Module_include_35.$$arity=-1),Opal.defn(self,"$included_modules",TMP_Module_included_modules_36=function(){var e,t=this,r=function(e){for(var t=[],n=0,i=e.$$inc.length;n"},TMP_Module_to_s_52.$$arity=0),Opal.defn(self,"$undef_method",TMP_Module_undef_method_53=function(){var e,t=this,r=arguments.length,n=r-0;n<0&&(n=0),e=new Array(n);for(var i=0;i":n?"#>":a(t,e.find_super_dispatcher(t,"to_s",f,!1),[],null)},f.$$arity=0),n&&"to_s"}(r[0],0,r)},Opal.modules["corelib/basic_object"]=function(Opal){function $rb_gt(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$breaker=Opal.breaker,$slice=Opal.slice,$klass=Opal.klass,$truthy=Opal.truthy,$range=Opal.range,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$==","$!","$nil?","$cover?","$size","$raise","$merge","$compile","$proc","$>","$new","$inspect"]),function($base,$super,$parent_nesting){function $BasicObject(){}var self=$BasicObject=$klass($base,$super,"BasicObject",$BasicObject),def=self.$$proto,$nesting=[self].concat($parent_nesting),TMP_BasicObject_initialize_1,TMP_BasicObject_$eq$eq_2,TMP_BasicObject_eql$q_3,TMP_BasicObject___id___4,TMP_BasicObject___send___5,TMP_BasicObject_$B_6,TMP_BasicObject_$B$eq_7,TMP_BasicObject_instance_eval_8,TMP_BasicObject_instance_exec_10,TMP_BasicObject_singleton_method_added_11,TMP_BasicObject_singleton_method_removed_12,TMP_BasicObject_singleton_method_undefined_13,TMP_BasicObject_method_missing_14;return Opal.defn(self,"$initialize",TMP_BasicObject_initialize_1=function(){return nil},TMP_BasicObject_initialize_1.$$arity=-1),Opal.defn(self,"$==",TMP_BasicObject_$eq$eq_2=function(e){return this===e},TMP_BasicObject_$eq$eq_2.$$arity=1),Opal.defn(self,"$eql?",TMP_BasicObject_eql$q_3=function(e){return this["$=="](e)},TMP_BasicObject_eql$q_3.$$arity=1),Opal.alias(self,"equal?","=="),Opal.defn(self,"$__id__",TMP_BasicObject___id___4=function(){var e=this;return e.$$id||(e.$$id=Opal.uid())},TMP_BasicObject___id___4.$$arity=0),Opal.defn(self,"$__send__",TMP_BasicObject___send___5=function(e){var t,r=this,n=TMP_BasicObject___send___5.$$p,i=n||nil,a=arguments.length,$=a-1;$<0&&($=0),t=new Array($);for(var o=1;ot:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}e.top;var n=[],i=e.nil,a=(e.breaker,e.slice,e.module),$=e.truthy,o=e.gvars,s=e.hash2,l=e.send,c=e.klass;return e.add_stubs(["$raise","$new","$inspect","$!","$=~","$==","$object_id","$class","$coerce_to?","$<<","$allocate","$copy_instance_variables","$copy_singleton_methods","$initialize_clone","$initialize_copy","$define_method","$singleton_class","$to_proc","$initialize_dup","$for","$>","$size","$pop","$call","$coerce_to","$append_features","$extended","$length","$respond_to?","$[]","$nil?","$to_a","$to_int","$fetch","$Integer","$Float","$to_ary","$to_str","$to_s","$__id__","$instance_variable_name!","$coerce_to!","$===","$enum_for","$result","$print","$format","$puts","$each","$<=","$empty?","$exception","$kind_of?","$rand","$respond_to_missing?","$try_convert!","$expand_path","$join","$start_with?","$srand","$new_seed","$sym","$arg","$open","$include"]),function(n,c){var u,_,f,d,g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B,D,L,U,G,H,X,Y,K,V,J,Z,W,Q,ee,te,re,ne,ie,ae,$e,oe,se,le,ce,ue,_e,fe,de,ge,he,pe,ve,ye,me,be=a(n,"Kernel"),we=(be.$$proto,[be].concat(c));e.defn(be,"$method_missing",u=function(t){var r,n=this,i=u.$$p,a=arguments.length,$=a-1;$<0&&($=0),r=new Array($);for(var o=1;o",g=function(e){var t=this;t.$$comparable=!0;var r=t["$=="](e);return r&&r!==i?0:i},g.$$arity=1),e.defn(be,"$method",h=function(t){var r=this,n=r["$"+t];return n&&!n.$$stub||r.$raise(e.const_get_relative(we,"NameError").$new("undefined method `"+t+"' for class `"+r.$class()+"'",t)),e.const_get_relative(we,"Method").$new(r,n.$$owner||r.$class(),n,t)},h.$$arity=1),e.defn(be,"$methods",p=function(t){var r=this;null==t&&(t=!0);var n=[];for(var a in r)if("$"==a[0]&&"function"==typeof r[a]){if((0==t||t===i)&&!e.hasOwnProperty.call(r,a))continue;r[a].$$stub===undefined&&n.push(a.substr(1))}return n},p.$$arity=-1),e.alias(be,"public_methods","methods"),e.defn(be,"$Array",v=function(t){var r;return t===i?[]:t.$$is_array?t:(r=e.const_get_relative(we,"Opal")["$coerce_to?"](t,e.const_get_relative(we,"Array"),"to_ary"))!==i?r:(r=e.const_get_relative(we,"Opal")["$coerce_to?"](t,e.const_get_relative(we,"Array"),"to_a"))!==i?r:[t]},v.$$arity=1),e.defn(be,"$at_exit",y=function(){var e,t=y.$$p,r=t||i;return null==o.__at_exit__&&(o.__at_exit__=i),t&&(y.$$p=null),o.__at_exit__=$(e=o.__at_exit__)?e:[],o.__at_exit__["$<<"](r)},y.$$arity=0),e.defn(be,"$caller",m=function(){var e,t=arguments.length,r=t-0;r<0&&(r=0),e=new Array(r);for(var n=0;n=0;o--){var s=t[o];s.$$is_module||r.$raise(e.const_get_relative(we,"TypeError"),"wrong argument type "+s.$class()+" (expected Module)"),s.$append_features($),s.$extended(r)}return r},z.$$arity=-1),e.defn(be,"$format",N=function(t){function r(){S&X&&d.$raise(e.const_get_relative(we,"ArgumentError"),"flag after width"),S&K&&d.$raise(e.const_get_relative(we,"ArgumentError"),"flag after precision")}function n(){S&X&&d.$raise(e.const_get_relative(we,"ArgumentError"),"width given twice"),S&K&&d.$raise(e.const_get_relative(we,"ArgumentError"),"width after precision")}function a(t){return t>=f.length&&d.$raise(e.const_get_relative(we,"ArgumentError"),"too few arguments"),f[t]}function s(){switch(F){case-1:d.$raise(e.const_get_relative(we,"ArgumentError"),"unnumbered("+C+") mixed with numbered");case-2:d.$raise(e.const_get_relative(we,"ArgumentError"),"unnumbered("+C+") mixed with named")}return a((F=C++)-1)}function l(t){return F>0&&d.$raise(e.const_get_relative(we,"ArgumentError"),"numbered("+t+") after unnumbered("+F+")"),-2===F&&d.$raise(e.const_get_relative(we,"ArgumentError"),"numbered("+t+") after named"),t<1&&d.$raise(e.const_get_relative(we,"ArgumentError"),"invalid index - "+t+"$"),F=-1,a(t-1)}function c(){return N===undefined?s():N}function u(r){for(var n,i="";;m++){if(m===j&&d.$raise(e.const_get_relative(we,"ArgumentError"),"malformed format string - %*[0-9]"),t.charCodeAt(m)<48||t.charCodeAt(m)>57)return m--,(n=parseInt(i,10)||0)>2147483647&&d.$raise(e.const_get_relative(we,"ArgumentError"),r+" too big"),n;i+=t.charAt(m)}}function _(e){var r,n=u(e);return"$"===t.charAt(m+1)?(m++,r=l(n)):r=s(),r.$to_int()}var f,d=this,g=i;null==o.DEBUG&&(o.DEBUG=i);var h=arguments.length,p=h-1;p<0&&(p=0),f=new Array(p);for(var v=1;v":"}",x="",m++;;m++){if(m===j&&d.$raise(e.const_get_relative(we,"ArgumentError"),"malformed name - unmatched parenthesis"),t.charAt(m)===T){if(F>0&&d.$raise(e.const_get_relative(we,"ArgumentError"),"named "+x+" after unnumbered("+F+")"),-1===F&&d.$raise(e.const_get_relative(we,"ArgumentError"),"named "+x+" after numbered"),F=-2,f[0]!==undefined&&f[0].$$is_hash||d.$raise(e.const_get_relative(we,"ArgumentError"),"one hash required"),N=f[0].$fetch(x),">"===T)continue e;if(w=N.toString(),-1!==E&&(w=w.slice(0,E)),S&L)for(;w.length=0){for(w=b.toString();w.length=0){for(w=b.toString(k);w.length>>0).toString(k).replace(P,z);w.length=0||isNaN(b)){if(b===Infinity)w="Inf";else switch(t.charAt(m)){case"f":w=b.toFixed(-1===E?6:E);break;case"e":case"E":w=b.toExponential(-1===E?6:E);break;case"g":case"G":w=b.toExponential(),(O=parseInt(w.split("e")[1],10))<-4||O>=(-1===E?6:E)||(w=b.toPrecision(-1===E?S&D?6:undefined:E))}if(S&L)for((S&U||S&H)&&(w=(S&U?"+":" ")+w);w.length=(-1===E?6:E)||(w=(-b).toPrecision(-1===E?S&D?6:undefined:E))}if(S&L)for(w="-"+w;w.length=0&&C36)&&o.$raise(e.const_get_relative(we,"ArgumentError"),"invalid radix "+r),a=(a=(a=t.toLowerCase()).replace(/(\d)_(?=\d)/g,"$1")).replace(/^(\s*[+-]?)(0[bodx]?)/,function(n,i,a){switch(a){case"0b":if(0===r||2===r)return r=2,i;case"0":case"0o":if(0===r||8===r)return r=8,i;case"0d":if(0===r||10===r)return r=10,i;case"0x":if(0===r||16===r)return r=16,i}o.$raise(e.const_get_relative(we,"ArgumentError"),'invalid value for Integer(): "'+t+'"')}),$="0-"+((r=0===r?10:r)<=10?r-1:"9a-"+String.fromCharCode(r-11+97)),new RegExp("^\\s*[+-]?["+$+"]+\\s*$").test(a)||o.$raise(e.const_get_relative(we,"ArgumentError"),'invalid value for Integer(): "'+t+'"'),n=parseInt(a,r),isNaN(n)&&o.$raise(e.const_get_relative(we,"ArgumentError"),'invalid value for Integer(): "'+t+'"'),n):(r!==undefined&&o.$raise(e.const_get_relative(we,"ArgumentError"),"base specified for non string value"), -t===i&&o.$raise(e.const_get_relative(we,"TypeError"),"can't convert nil into Integer"),t.$$is_number?((t===Infinity||t===-Infinity||isNaN(t))&&o.$raise(e.const_get_relative(we,"FloatDomainError"),t),Math.floor(t)):t["$respond_to?"]("to_int")&&(n=t.$to_int())!==i?n:e.const_get_relative(we,"Opal")["$coerce_to!"](t,e.const_get_relative(we,"Integer"),"to_i"))},U.$$arity=-2),e.defn(be,"$Float",G=function(t){var r,n=this;return t===i&&n.$raise(e.const_get_relative(we,"TypeError"),"can't convert nil into Float"),t.$$is_string?(r=(r=t.toString()).replace(/(\d)_(?=\d)/g,"$1"),/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(r)?n.$Integer(r):(/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(r)||n.$raise(e.const_get_relative(we,"ArgumentError"),'invalid value for Float(): "'+t+'"'),parseFloat(r))):e.const_get_relative(we,"Opal")["$coerce_to!"](t,e.const_get_relative(we,"Float"),"to_f")},G.$$arity=1),e.defn(be,"$Hash",H=function(t){var r;return $($(r=t["$nil?"]())?r:t["$=="]([]))?s([],{}):$(e.const_get_relative(we,"Hash")["$==="](t))?t:e.const_get_relative(we,"Opal")["$coerce_to!"](t,e.const_get_relative(we,"Hash"),"to_hash")},H.$$arity=1),e.defn(be,"$is_a?",X=function(t){var r=this;return t.$$is_class||t.$$is_module||r.$raise(e.const_get_relative(we,"TypeError"),"class or module required"),e.is_a(r,t)},X.$$arity=1),e.defn(be,"$itself",Y=function(){return this},Y.$$arity=0),e.alias(be,"kind_of?","is_a?"),e.defn(be,"$lambda",K=function(){var e=K.$$p,t=e||i;return e&&(K.$$p=null),t.$$is_lambda=!0,t},K.$$arity=0),e.defn(be,"$load",V=function(t){return t=e.const_get_relative(we,"Opal")["$coerce_to!"](t,e.const_get_relative(we,"String"),"to_str"),e.load(t)},V.$$arity=1),e.defn(be,"$loop",J=function(){var t,r=this,n=J.$$p,a=n||i,o=i;if(n&&(J.$$p=null),a===i)return l(r,"enum_for",["loop"],((t=function(){t.$$s;return e.const_get_qualified(e.const_get_relative(we,"Float"),"INFINITY")}).$$s=r,t.$$arity=0,t));for(;$(!0);)try{e.yieldX(a,[])}catch(s){if(!e.rescue(s,[e.const_get_relative(we,"StopIteration")]))throw s;o=s;try{return o.$result()}finally{e.pop_exception()}}return r},J.$$arity=0),e.defn(be,"$nil?",Z=function(){return!1},Z.$$arity=0),e.alias(be,"object_id","__id__"),e.defn(be,"$printf",W=function(){var r,n=this,a=arguments.length,o=a-0;o<0&&(o=0),r=new Array(o);for(var s=0;s"},pe.$$arity=0),e.defn(be,"$catch",ve=function(t){var r=this,n=ve.$$p,a=n||i,$=i;n&&(ve.$$p=null);try{return e.yieldX(a,[])}catch(o){if(!e.rescue(o,[e.const_get_relative(we,"UncaughtThrowError")]))throw o;$=o;try{return $.$sym()["$=="](t)?$.$arg():r.$raise()}finally{e.pop_exception()}}},ve.$$arity=1),e.defn(be,"$throw",ye=function(){var t,r=this,n=arguments.length,i=n-0;i<0&&(i=0),t=new Array(i);for(var a=0;at:e["$>"](t)}e.top;var n=[],i=e.nil,a=(e.breaker,e.slice,e.klass),$=e.send,o=e.truthy,s=e.module;return e.add_stubs(["$new","$clone","$to_s","$empty?","$class","$+","$attr_reader","$[]","$>","$length","$inspect"]),function(t,$super,r){function n(){}var s,l,c,u,_,f,d,g,h=n=a(t,$super,"Exception",n),p=h.$$proto,v=[h].concat(r);p.message=i;var y=e.const_get_relative(v,"Kernel").$raise;e.defs(h,"$new",s=function(){var t,r=this,n=arguments.length,a=n-0;a<0&&(a=0),t=new Array(a);for(var $=0;$0?t[0]:i,s=new r.$$alloc(o);return s.name=r.$$name,s.message=o,e.send(s,s.$initialize,t),e.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(s,y),s},s.$$arity=-1),e.defs(h,"$exception",l=function(){var t,r=this,n=arguments.length,i=n-0;i<0&&(i=0),t=new Array(i);for(var a=0;a0?e[0]:i},c.$$arity=-1),e.defn(h,"$backtrace",u=function(){var e=this.stack;return"string"==typeof e?e.split("\n").slice(0,15):e?e.slice(0,15):[]},u.$$arity=0),e.defn(h,"$exception",_=function(e){var t=this;if(null==e&&(e=i),e===i||t===e)return t;var r=t.$clone();return r.message=e,r},_.$$arity=-1),e.defn(h,"$message",f=function(){return this.$to_s()},f.$$arity=0),e.defn(h,"$inspect",d=function(){var e=this,t=i;return t=e.$to_s(),o(t["$empty?"]())?e.$class().$to_s():"#<"+e.$class().$to_s()+": "+e.$to_s()+">"},d.$$arity=0),e.defn(h,"$to_s",g=function(){var e,t,r=this;return o(e=o(t=r.message)?r.message.$to_s():t)?e:r.$class().$to_s()},g.$$arity=0)}(n[0],Error,n),function(e,$super,t){function r(){}var n=r=a(e,$super,"ScriptError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"Exception"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"SyntaxError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"ScriptError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"LoadError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"ScriptError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"NotImplementedError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"ScriptError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"SystemExit",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"Exception"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"NoMemoryError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"Exception"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"SignalException",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"Exception"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"Interrupt",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"Exception"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"SecurityError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"Exception"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"StandardError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"Exception"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"ZeroDivisionError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"NameError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"NoMethodError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"NameError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"RuntimeError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"LocalJumpError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"TypeError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"ArgumentError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"IndexError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"StopIteration",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"IndexError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"KeyError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"IndexError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"RangeError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"FloatDomainError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"RangeError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"IOError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(e,$super,t){function r(){}var n=r=a(e,$super,"SystemCallError",r);n.$$proto,[n].concat(t)}(n[0],e.const_get_relative(n,"StandardError"),n),function(r,n){var l=s(r,"Errno"),c=(l.$$proto,[l].concat(n));!function(r,$super,n){function s(){}var l,c=s=a(r,$super,"EINVAL",s);c.$$proto,[c].concat(n);e.defs(c,"$new",l=function(r){var n=this,a=l.$$p,c=i;return null==r&&(r=i),a&&(l.$$p=null),c="Invalid argument",o(r)&&(c=t(c," - "+r)),$(n,e.find_super_dispatcher(n,"new",l,!1,s),[c],null)},l.$$arity=-1)}(c[0],e.const_get_relative(c,"SystemCallError"),c)}(n[0],n),function(t,$super,n){function s(){}var l,c=s=a(t,$super,"UncaughtThrowError",s),u=c.$$proto;[c].concat(n);u.sym=i,c.$attr_reader("sym","arg"),e.defn(c,"$initialize",l=function(t){var n=this,i=l.$$p;return i&&(l.$$p=null),n.sym=t["$[]"](0),o(r(t.$length(),1))&&(n.arg=t["$[]"](1)),$(n,e.find_super_dispatcher(n,"initialize",l,!1),["uncaught throw "+n.sym.$inspect()],null)},l.$$arity=1)}(n[0],e.const_get_relative(n,"ArgumentError"),n),function(t,$super,r){function n(){}var o,s=n=a(t,null,"NameError",n);s.$$proto,[s].concat(r);s.$attr_reader("name"),e.defn(s,"$initialize",o=function(t,r){var n=this,a=o.$$p;return null==r&&(r=i),a&&(o.$$p=null),$(n,e.find_super_dispatcher(n,"initialize",o,!1),[t],null),n.name=r},o.$$arity=-2)}(n[0],0,n),function(t,$super,r){function n(){}var o,s=n=a(t,null,"NoMethodError",n);s.$$proto,[s].concat(r);s.$attr_reader("args"),e.defn(s,"$initialize",o=function(t,r,n){var a=this,s=o.$$p;return null==r&&(r=i),null==n&&(n=[]),s&&(o.$$p=null),$(a,e.find_super_dispatcher(a,"initialize",o,!1),[t,r],null),a.args=n},o.$$arity=-2)}(n[0],0,n),function(e,$super,t){function r(){}var n=r=a(e,null,"StopIteration",r);n.$$proto,[n].concat(t);n.$attr_reader("result")}(n[0],0,n),function(e,t){var r=s(e,"JS"),n=(r.$$proto,[r].concat(t));!function(e,$super,t){function r(){}var n=r=a(e,null,"Error",r);n.$$proto,[n].concat(t)}(n[0],0,n)}(n[0],n)},Opal.modules["corelib/constants"]=function(e){e.top;var t=[];e.nil,e.breaker,e.slice;return e.const_set(t[0],"RUBY_PLATFORM","opal"),e.const_set(t[0],"RUBY_ENGINE","opal"),e.const_set(t[0],"RUBY_VERSION","2.4.5"),e.const_set(t[0],"RUBY_ENGINE_VERSION","0.11.4"),e.const_set(t[0],"RUBY_RELEASE_DATE","2018-11-07"),e.const_set(t[0],"RUBY_PATCHLEVEL",0),e.const_set(t[0],"RUBY_REVISION",0),e.const_set(t[0],"RUBY_COPYRIGHT","opal - Copyright (C) 2013-2015 Adam Beynon"),e.const_set(t[0],"RUBY_DESCRIPTION","opal "+e.const_get_relative(t,"RUBY_ENGINE_VERSION")+" ("+e.const_get_relative(t,"RUBY_RELEASE_DATE")+" revision "+e.const_get_relative(t,"RUBY_REVISION")+")")},Opal.modules["opal/base"]=function(e){var t=e.top;e.nil,e.breaker,e.slice;return e.add_stubs(["$require"]),t.$require("corelib/runtime"),t.$require("corelib/helpers"),t.$require("corelib/module"),t.$require("corelib/class"),t.$require("corelib/basic_object"),t.$require("corelib/kernel"),t.$require("corelib/error"),t.$require("corelib/constants")},Opal.modules["corelib/nil"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}e.top;var r=[],n=e.nil,i=(e.breaker,e.slice,e.klass),a=e.hash2,$=e.truthy;return e.add_stubs(["$raise","$name","$new","$>","$length","$Rational"]),function(r,$super,o){function s(){}var l,c,u,_,f,d,g,h,p,v,y,m,b,w,O,M,E,A,x=s=i(r,null,"NilClass",s),T=x.$$proto,k=[x].concat(o);T.$$meta=x,function(t,r){t.$$proto;var n,i=[t].concat(r);e.defn(t,"$allocate",n=function(){var t=this;return t.$raise(e.const_get_relative(i,"TypeError"),"allocator undefined for "+t.$name())},n.$$arity=0),e.udef(t,"$new")}(e.get_singleton_class(x),k),e.defn(x,"$!",l=function(){return!0},l.$$arity=0),e.defn(x,"$&",c=function(){return!1},c.$$arity=1),e.defn(x,"$|",u=function(e){return!1!==e&&e!==n},u.$$arity=1),e.defn(x,"$^",_=function(e){return!1!==e&&e!==n},_.$$arity=1),e.defn(x,"$==",f=function(e){return e===n},f.$$arity=1),e.defn(x,"$dup",d=function(){return n},d.$$arity=0),e.defn(x,"$clone",g=function(t){if(null==t||!t.$$is_hash){if(null!=t)throw e.ArgumentError.$new("expected kwargs");t=a([],{})}return null==t.$$smap.freeze&&!0,n},g.$$arity=-1),e.defn(x,"$inspect",h=function(){return"nil"},h.$$arity=0),e.defn(x,"$nil?",p=function(){return!0},p.$$arity=0),e.defn(x,"$singleton_class",v=function(){return e.const_get_relative(k,"NilClass")},v.$$arity=0),e.defn(x,"$to_a",y=function(){return[]},y.$$arity=0),e.defn(x,"$to_h",m=function(){return e.hash()},m.$$arity=0),e.defn(x,"$to_i",b=function(){return 0},b.$$arity=0),e.alias(x,"to_f","to_i"),e.defn(x,"$to_s",w=function(){return""},w.$$arity=0),e.defn(x,"$to_c",O=function(){return e.const_get_relative(k,"Complex").$new(0,0)},O.$$arity=0),e.defn(x,"$rationalize",M=function(){var r,n=this,i=arguments.length,a=i-0;a<0&&(a=0),r=new Array(a);for(var o=0;ot:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e","$<","$equal?","$<=>","$normalize","$raise","$class"]),function(n,o){var s,l,c,u,_,f,d,g,h=a(n,"Comparable"),p=(h.$$proto,[h].concat(o));e.defs(h,"$normalize",s=function(n){return $(e.const_get_relative(p,"Integer")["$==="](n))?n:$(t(n,0))?1:$(r(n,0))?-1:0},s.$$arity=1),e.defn(h,"$==",l=function(t){var r=this,n=i;try{return!!$(r["$equal?"](t))||r["$<=>"]!=e.Kernel["$<=>"]&&(r.$$comparable?(delete r.$$comparable,!1):!!$(n=r["$<=>"](t))&&0==e.const_get_relative(p,"Comparable").$normalize(n))}catch(a){if(!e.rescue(a,[e.const_get_relative(p,"StandardError")]))throw a;try{return!1}finally{e.pop_exception()}}},l.$$arity=1),e.defn(h,"$>",c=function(t){var r=this,n=i;return $(n=r["$<=>"](t))||r.$raise(e.const_get_relative(p,"ArgumentError"),"comparison of "+r.$class()+" with "+t.$class()+" failed"),e.const_get_relative(p,"Comparable").$normalize(n)>0},c.$$arity=1),e.defn(h,"$>=",u=function(t){var r=this,n=i;return $(n=r["$<=>"](t))||r.$raise(e.const_get_relative(p,"ArgumentError"),"comparison of "+r.$class()+" with "+t.$class()+" failed"),e.const_get_relative(p,"Comparable").$normalize(n)>=0},u.$$arity=1),e.defn(h,"$<",_=function(t){var r=this,n=i;return $(n=r["$<=>"](t))||r.$raise(e.const_get_relative(p,"ArgumentError"),"comparison of "+r.$class()+" with "+t.$class()+" failed"),e.const_get_relative(p,"Comparable").$normalize(n)<0},_.$$arity=1),e.defn(h,"$<=",f=function(t){var r=this,n=i;return $(n=r["$<=>"](t))||r.$raise(e.const_get_relative(p,"ArgumentError"),"comparison of "+r.$class()+" with "+t.$class()+" failed"),e.const_get_relative(p,"Comparable").$normalize(n)<=0},f.$$arity=1),e.defn(h,"$between?",d=function(e,n){var i=this;return!r(i,e)&&!t(i,n)},d.$$arity=2),e.defn(h,"$clamp",g=function(n,a){var o=this,s=i;return s=n["$<=>"](a),$(s)||o.$raise(e.const_get_relative(p,"ArgumentError"),"comparison of "+n.$class()+" with "+a.$class()+" failed"),$(t(e.const_get_relative(p,"Comparable").$normalize(s),0))&&o.$raise(e.const_get_relative(p,"ArgumentError"),"min argument must be smaller than max argument"),$(r(e.const_get_relative(p,"Comparable").$normalize(o["$<=>"](n)),0))?n:$(t(e.const_get_relative(p,"Comparable").$normalize(o["$<=>"](a)),0))?a:o},g.$$arity=2)}(n[0],n)},Opal.modules["corelib/regexp"]=function(e){e.top;var t=[],r=e.nil,n=(e.breaker,e.slice,e.klass),i=e.send,a=e.truthy,$=e.gvars;return e.add_stubs(["$nil?","$[]","$raise","$escape","$options","$to_str","$new","$join","$coerce_to!","$!","$match","$coerce_to?","$begin","$coerce_to","$call","$=~","$attr_reader","$===","$inspect","$to_a"]),function(e,$super,t){function r(){}var i=r=n(e,$super,"RegexpError",r);i.$$proto,[i].concat(t)}(t[0],e.const_get_relative(t,"StandardError"),t),function(t,$super,o){function s(){}var l,c,u,_,f,d,g,h,p,v,y=s=n(t,$super,"Regexp",s),m=y.$$proto,b=[y].concat(o);e.const_set(b[0],"IGNORECASE",1),e.const_set(b[0],"MULTILINE",4),m.$$is_regexp=!0,function(t,n){t.$$proto;var o,s,l,c,u,_=[t].concat(n);e.defn(t,"$allocate",o=function(){var t=this,n=o.$$p,a=r,$=r,s=r,l=r;for(n&&(o.$$p=null),s=0,l=arguments.length,$=new Array(l);s1&&r&&o.$raise(e.const_get_relative(_,"TypeError"),"no implicit conversion of Array into String"),r&&(t=t[0]),a=undefined,n=[];for(var u=0;u=n)return $["~"]=e.const_get_relative(b,"MatchData").$new(u,c),o===r?$["~"]:o.$call($["~"]);u.lastIndex=c.index+1}},f.$$arity=-2),e.defn(y,"$match?",d=function(t,n){var i=this;if(i.uninitialized&&i.$raise(e.const_get_relative(b,"TypeError"),"uninitialized Regexp"),n=n===undefined?0:e.const_get_relative(b,"Opal").$coerce_to(n,e.const_get_relative(b,"Integer"),"to_int"),t===r)return!1;if(t=e.const_get_relative(b,"Opal").$coerce_to(t,e.const_get_relative(b,"String"),"to_str"),n<0&&(n+=t.length)<0)return!1;var a,$=i.source,o="g";return i.multiline&&($=$.replace(".","[\\s\\S]"),o+="m"),!(null===(a=new RegExp($,o+(i.ignoreCase?"i":"")).exec(t))||a.index"},h.$$arity=0),e.defn(b,"$length",p=function(){return this.matches.length},p.$$arity=0),e.alias(b,"size","length"),e.defn(b,"$to_a",v=function(){return this.matches},v.$$arity=0),e.defn(b,"$to_s",y=function(){return this.matches[0]},y.$$arity=0),e.defn(b,"$values_at",m=function(){var t,n=this,i=arguments.length,a=i-0;a<0&&(a=0),t=new Array(a);for(var $=0;$","$==","$=~","$new","$empty?","$ljust","$ceil","$/","$+","$rjust","$floor","$to_a","$each_char","$to_proc","$coerce_to!","$copy_singleton_methods","$initialize_clone","$initialize_dup","$enum_for","$size","$chomp","$[]","$to_i","$each_line","$class","$match","$captures","$proc","$succ","$escape"]),n.$require("corelib/comparable"),n.$require("corelib/regexp"),function(n,$super,i){function c(){}function u(t){function r(t){var r,n,i,a,$,o,s="",l=t.length;for(r=0;r0&&r($=t.charCodeAt(r+1))&&Ae.$raise(e.const_get_relative(Te,"ArgumentError"),'invalid range "'+a+"-"+$+'" in string transliteration'),o=a+1;o<$+1;o++)s+=String.fromCharCode(o);i=!0,r++}else i="\\"===n,s+=n;return s}function n(e,t){if(0===e.length)return t;var r,n,i="",a=e.length;for(r=0;r1)?$.slice(1):$),o?u=n(u,$):c=n(c,$);if(c.length>0&&u.length>0){for(l="",i=0,a=c.length;i0?"["+e.const_get_relative(Te,"Regexp").$escape(c)+"]":u.length>0?"[^"+e.const_get_relative(Te,"Regexp").$escape(u)+"]":null}var _,f,d,g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B,D,L,U,G,H,X,Y,K,V,J,Z,W,Q,ee,te,re,ne,ie,ae,$e,oe,se,le,ce,ue,_e,fe,de,ge,he,pe,ve,ye,me,be,we,Oe,Me,Ee,Ae=c=$(n,$super,"String",c),xe=Ae.$$proto,Te=[Ae].concat(i);xe.length=a,Ae.$include(e.const_get_relative(Te,"Comparable")),xe.$$is_string=!0,e.defn(Ae,"$__id__",_=function(){return this.toString()},_.$$arity=0),e.alias(Ae,"object_id","__id__"),e.defs(Ae,"$try_convert",f=function(t){return e.const_get_relative(Te,"Opal")["$coerce_to?"](t,e.const_get_relative(Te,"String"),"to_str")},f.$$arity=1),e.defs(Ae,"$new",d=function(t){return null==t&&(t=""),t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str"),new String(t)},d.$$arity=-1),e.defn(Ae,"$initialize",g=function(t){var r=this;return t===undefined?r:r.$raise(e.const_get_relative(Te,"NotImplementedError"),"Mutable strings are not supported in Opal.")},g.$$arity=-1),e.defn(Ae,"$%",h=function(t){var r=this;return o(e.const_get_relative(Te,"Array")["$==="](t))?s(r,"format",[r].concat(e.to_a(t))):r.$format(r,t)},h.$$arity=1),e.defn(Ae,"$*",p=function(t){var r=this -;if((t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"Integer"),"to_int"))<0&&r.$raise(e.const_get_relative(Te,"ArgumentError"),"negative argument"),0===t)return"";var n="",i=r.toString();for(i.length*t>=1<<28&&r.$raise(e.const_get_relative(Te,"RangeError"),"multiply count must not overflow maximum string size");1==(1&t)&&(n+=i),0!==(t>>>=1);)i+=i;return n},p.$$arity=1),e.defn(Ae,"$+",v=function(t){return this+(t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str")).$to_s()},v.$$arity=1),e.defn(Ae,"$<=>",y=function(e){var t=this;if(o(e["$respond_to?"]("to_str")))return t>(e=e.$to_str().$to_s())?1:t"](t);return r===a?a:r>0?-1:r<0?1:0},y.$$arity=1),e.defn(Ae,"$==",m=function(t){var r=this;return t.$$is_string?r.toString()===t.toString():!!e.const_get_relative(Te,"Opal")["$respond_to?"](t,"to_str")&&t["$=="](r)},m.$$arity=1),e.alias(Ae,"eql?","=="),e.alias(Ae,"===","=="),e.defn(Ae,"$=~",b=function(t){var r=this;return t.$$is_string&&r.$raise(e.const_get_relative(Te,"TypeError"),"type mismatch: String given"),t["$=~"](r)},b.$$arity=1),e.defn(Ae,"$[]",w=function(t,r){var n,i=this,$=i.length;if(t.$$is_range)return n=t.excl,r=e.const_get_relative(Te,"Opal").$coerce_to(t.end,e.const_get_relative(Te,"Integer"),"to_int"),t=e.const_get_relative(Te,"Opal").$coerce_to(t.begin,e.const_get_relative(Te,"Integer"),"to_int"),Math.abs(t)>$?a:(t<0&&(t+=$),r<0&&(r+=$),n||(r+=1),(r-=t)<0&&(r=0),i.substr(t,r));if(t.$$is_string)return null!=r&&i.$raise(e.const_get_relative(Te,"TypeError")),-1!==i.indexOf(t)?t:a;if(t.$$is_regexp){var o=i.match(t);return null===o?(l["~"]=a,a):(l["~"]=e.const_get_relative(Te,"MatchData").$new(t,o),null==r?o[0]:(r=e.const_get_relative(Te,"Opal").$coerce_to(r,e.const_get_relative(Te,"Integer"),"to_int"))<0&&-r=0&&r=$||t<0?a:i.substr(t,1):(r=e.const_get_relative(Te,"Opal").$coerce_to(r,e.const_get_relative(Te,"Integer"),"to_int"))<0?a:t>$||t<0?a:i.substr(t,r)},w.$$arity=-2),e.alias(Ae,"byteslice","[]"),e.defn(Ae,"$capitalize",O=function(){var e=this;return e.charAt(0).toUpperCase()+e.substr(1).toLowerCase()},O.$$arity=0),e.defn(Ae,"$casecmp",M=function(t){var r=this;t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str").$to_s();var n=/^[\x00-\x7F]*$/;return n.test(r)&&n.test(t)&&(r=r.toLowerCase(),t=t.toLowerCase()),r["$<=>"](t)},M.$$arity=1),e.defn(Ae,"$center",E=function(n,i){var a=this;if(null==i&&(i=" "),n=e.const_get_relative(Te,"Opal").$coerce_to(n,e.const_get_relative(Te,"Integer"),"to_int"),i=e.const_get_relative(Te,"Opal").$coerce_to(i,e.const_get_relative(Te,"String"),"to_str").$to_s(),o(i["$empty?"]())&&a.$raise(e.const_get_relative(Te,"ArgumentError"),"zero width padding"),o(n<=a.length))return a;var $=a.$ljust(t(r(n,a.length),2).$ceil(),i);return a.$rjust(t(r(n,a.length),2).$floor(),i)+$.slice(a.length)},E.$$arity=-2),e.defn(Ae,"$chars",A=function(){var e=this,t=A.$$p,r=t||a;return t&&(A.$$p=null),o(r)?s(e,"each_char",[],r.$to_proc()):e.$each_char().$to_a()},A.$$arity=0),e.defn(Ae,"$chomp",x=function(t){var r=this;return null==l["/"]&&(l["/"]=a),null==t&&(t=l["/"]),o(t===a||0===r.length)?r:"\n"===(t=e.const_get_relative(Te,"Opal")["$coerce_to!"](t,e.const_get_relative(Te,"String"),"to_str").$to_s())?r.replace(/\r?\n?$/,""):""===t?r.replace(/(\r?\n)+$/,""):r.length>t.length&&r.substr(r.length-t.length,t.length)===t?r.substr(0,r.length-t.length):r},x.$$arity=-1),e.defn(Ae,"$chop",T=function(){var e=this,t=e.length;return t<=1?"":"\n"===e.charAt(t-1)&&"\r"===e.charAt(t-2)?e.substr(0,t-2):e.substr(0,t-1)},T.$$arity=0),e.defn(Ae,"$chr",k=function(){return this.charAt(0)},k.$$arity=0),e.defn(Ae,"$clone",I=function(){var e=this,t=a;return(t=e.slice()).$copy_singleton_methods(e),t.$initialize_clone(e),t},I.$$arity=0),e.defn(Ae,"$dup",P=function(){var e=this,t=a;return(t=e.slice()).$initialize_dup(e),t},P.$$arity=0),e.defn(Ae,"$count",z=function(){var t,r=this,n=arguments.length,i=n-0;i<0&&(i=0),t=new Array(i);for(var a=0;a=s.length&&r.substr(r.length-s.length,s.length)==s)return!0}return!1},C.$$arity=-1),e.alias(Ae,"eql?","=="),e.alias(Ae,"equal?","==="),e.defn(Ae,"$gsub",F=function(t,r){var n=this,i=F.$$p,$=i||a;if(i&&(F.$$p=null),r===undefined&&$===a)return n.$enum_for("gsub",t);var o,s,c="",u=a,_=0;for(t.$$is_regexp?t=new RegExp(t.source,"gm"+(t.ignoreCase?"i":"")):(t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str"),t=new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));;){if(null===(o=t.exec(n))){l["~"]=a,c+=n.slice(_);break}u=e.const_get_relative(Te,"MatchData").$new(t,o),r===undefined?s=$(o[0]):r.$$is_hash?s=r["$[]"](o[0]).$to_s():(r.$$is_string||(r=e.const_get_relative(Te,"Opal").$coerce_to(r,e.const_get_relative(Te,"String"),"to_str")),s=r.replace(/([\\]+)([0-9+&`'])/g,function(e,t,r){if(t.length%2==0)return e;switch(r){case"+":for(var i=o.length-1;i>0;i--)if(o[i]!==undefined)return t.slice(1)+o[i];return"";case"&":return t.slice(1)+o[0];case"`":return t.slice(1)+n.slice(0,o.index);case"'":return t.slice(1)+n.slice(o.index+o[0].length);default:return t.slice(1)+(o[r]||"")}}).replace(/\\\\/g,"\\")),t.lastIndex===o.index?(c+=s+n.slice(_,o.index+1),t.lastIndex+=1):c+=n.slice(_,o.index)+s,_=t.lastIndex}return l["~"]=u,c},F.$$arity=-2),e.defn(Ae,"$hash",B=function(){return this.toString()},B.$$arity=0),e.defn(Ae,"$hex",D=function(){return this.$to_i(16)},D.$$arity=0),e.defn(Ae,"$include?",L=function(t){var r=this;return t.$$is_string||(t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str")),-1!==r.indexOf(t)},L.$$arity=1),e.defn(Ae,"$index",U=function(t,r){var n,i,$,o=this;if(r===undefined)r=0;else if((r=e.const_get_relative(Te,"Opal").$coerce_to(r,e.const_get_relative(Te,"Integer"),"to_int"))<0&&(r+=o.length)<0)return a;if(t.$$is_regexp)for($=new RegExp(t.source,"gm"+(t.ignoreCase?"i":""));;){if(null===(i=$.exec(o))){l["~"]=a,n=-1;break}if(i.index>=r){l["~"]=e.const_get_relative(Te,"MatchData").$new($,i),n=i.index;break}$.lastIndex=i.index+1}else n=0===(t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str")).length&&r>o.length?-1:o.indexOf(t,r);return-1===n?a:n},U.$$arity=-2),e.defn(Ae,"$inspect",G=function(){var e=/[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,t={"\x07":"\\a","\x1b":"\\e","\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\x0B":"\\v",'"':'\\"',"\\":"\\\\"};return'"'+this.replace(e,function(e){return t[e]||"\\u"+("0000"+e.charCodeAt(0).toString(16).toUpperCase()).slice(-4)}).replace(/\#[\$\@\{]/g,"\\$&")+'"'},G.$$arity=0),e.defn(Ae,"$intern",H=function(){return this},H.$$arity=0),e.defn(Ae,"$lines",X=function(e){var t=this,r=X.$$p,n=r||a,i=a;return null==l["/"]&&(l["/"]=a),null==e&&(e=l["/"]),r&&(X.$$p=null),i=s(t,"each_line",[e],n.$to_proc()),o(n)?t:i.$to_a()},X.$$arity=-1),e.defn(Ae,"$length",Y=function(){return this.length},Y.$$arity=0),e.defn(Ae,"$ljust",K=function(t,r){var n=this;if(null==r&&(r=" "),t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"Integer"),"to_int"),r=e.const_get_relative(Te,"Opal").$coerce_to(r,e.const_get_relative(Te,"String"),"to_str").$to_s(),o(r["$empty?"]())&&n.$raise(e.const_get_relative(Te,"ArgumentError"),"zero width padding"),o(t<=n.length))return n;var i=-1,a="";for(t-=n.length;++i=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122)switch(r){case 57:a=!0,r=48;break;case 90:a=!0,r=65;break;case 122:a=!0,r=97;break;default:a=!1,r+=1}else-1===i?255===r?(a=!0,r=0):(a=!1,r+=1):a=!0;if(n=n.slice(0,t)+String.fromCharCode(r)+n.slice(t+1),a&&(0===t||t===i)){switch(r){case 65:case 97:break;default:r+=1}n=0===t?String.fromCharCode(r)+n:n.slice(0,t)+String.fromCharCode(r)+n.slice(t),a=!1}if(!a)break}return n},W.$$arity=0),e.defn(Ae,"$oct",Q=function(){var e,t=this,r=8;return/^\s*_/.test(t)?0:(t=t.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,function(e,t,n,i){switch(i.charAt(0)){case"+":case"-":return e;case"0":if("x"===i.charAt(1)&&"0x"===n)return e}switch(n){case"0b":r=2;break;case"0":case"0o":r=8;break;case"0d":r=10;break;case"0x":r=16}return t+i}),e=parseInt(t.replace(/_(?!_)/g,""),r),isNaN(e)?0:e)},Q.$$arity=0),e.defn(Ae,"$ord",ee=function(){return this.charCodeAt(0)},ee.$$arity=0),e.defn(Ae,"$partition",te=function(t){var r,n,i=this;return t.$$is_regexp?null===(n=t.exec(i))?r=-1:(e.const_get_relative(Te,"MatchData").$new(t,n),t=n[0],r=n.index):(t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str"),r=i.indexOf(t)),-1===r?[i,"",""]:[i.slice(0,r),i.slice(r,r+t.length),i.slice(r+t.length)]},te.$$arity=1),e.defn(Ae,"$reverse",re=function(){return this.split("").reverse().join("")},re.$$arity=0),e.defn(Ae,"$rindex",ne=function(t,r){var n,i,$,o,s=this;if(r===undefined)r=s.length;else if((r=e.const_get_relative(Te,"Opal").$coerce_to(r,e.const_get_relative(Te,"Integer"),"to_int"))<0&&(r+=s.length)<0)return a;if(t.$$is_regexp){for(i=null,$=new RegExp(t.source,"gm"+(t.ignoreCase?"i":""));!(null===(o=$.exec(s))||o.index>r);)i=o,$.lastIndex=i.index+1;null===i?(l["~"]=a,n=-1):(e.const_get_relative(Te,"MatchData").$new($,i),n=i.index)}else t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str"),n=s.lastIndexOf(t,r);return-1===n?a:n},ne.$$arity=-2),e.defn(Ae,"$rjust",ie=function(t,r){var n=this;if(null==r&&(r=" "),t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"Integer"),"to_int"),r=e.const_get_relative(Te,"Opal").$coerce_to(r,e.const_get_relative(Te,"String"),"to_str").$to_s(),o(r["$empty?"]())&&n.$raise(e.const_get_relative(Te,"ArgumentError"),"zero width padding"),o(t<=n.length))return n;var i=Math.floor(t-n.length),a=Math.floor(i/r.length),$=Array(a+1).join(r),s=i-$.length;return $+r.slice(0,s)+n},ie.$$arity=-2),e.defn(Ae,"$rpartition",ae=function(t){var r,n,i,a,$=this;if(t.$$is_regexp){for(n=null,i=new RegExp(t.source,"gm"+(t.ignoreCase?"i":""));null!==(a=i.exec($));)n=a,i.lastIndex=n.index+1;null===n?r=-1:(e.const_get_relative(Te,"MatchData").$new(i,n),t=n[0],r=n.index)}else t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str"),r=$.lastIndexOf(t);return-1===r?["","",$]:[$.slice(0,r),$.slice(r,r+t.length),$.slice(r+t.length)]},ae.$$arity=1),e.defn(Ae,"$rstrip",$e=function(){return this.replace(/[\s\u0000]*$/,"")},$e.$$arity=0),e.defn(Ae,"$scan",oe=function(t){var r=this,n=oe.$$p,i=n||a;n&&(oe.$$p=null);var $,o=[],s=a;for(t.$$is_regexp?t=new RegExp(t.source,"gm"+(t.ignoreCase?"i":"")):(t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str"),t=new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));null!=($=t.exec(r));)s=e.const_get_relative(Te,"MatchData").$new(t,$),i===a?1==$.length?o.push($[0]):o.push(s.$captures()):1==$.length?i($[0]):i.call(r,s.$captures()),t.lastIndex===$.index&&(t.lastIndex+=1);return l["~"]=s,i!==a?r:o},oe.$$arity=1),e.alias(Ae,"size","length"),e.alias(Ae,"slice","[]"),e.defn(Ae,"$split",se=function(t,r){var n,i=this;if(null==l[";"]&&(l[";"]=a),0===i.length)return[];if(r===undefined)r=0;else if(1===(r=e.const_get_relative(Te,"Opal")["$coerce_to!"](r,e.const_get_relative(Te,"Integer"),"to_int")))return[i];t!==undefined&&t!==a||(t=o(n=l[";"])?n:" ");var $,s,c,u=[],_=i.toString(),f=0;if(t.$$is_regexp?t=new RegExp(t.source,"gm"+(t.ignoreCase?"i":"")):" "===(t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"String"),"to_str").$to_s())?(t=/\s+/gm,_=_.replace(/^\s+/,"")):t=new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"),1===(u=_.split(t)).length&&u[0]===_)return u;for(;-1!==(s=u.indexOf(undefined));)u.splice(s,1);if(0===r){for(;""===u[u.length-1];)u.length-=1;return u}if($=t.exec(_),r<0){if(null!==$&&""===$[0]&&-1===t.source.indexOf("(?="))for(s=0,c=$.length;s=u.length)return u;for(s=0;null!==$&&(s++,f=t.lastIndex,s+1!==r);)$=t.exec(_);return u.splice(r-1,u.length-1,_.slice(f)),u},se.$$arity=-1),e.defn(Ae,"$squeeze",le=function(){var e,t=this,r=arguments.length,n=r-0;n<0&&(n=0),e=new Array(n);for(var i=0;i0;i--)if(o[i]!==undefined)return t.slice(1)+o[i];return"";case"&":return t.slice(1)+o[0];case"`":return t.slice(1)+n.slice(0,o.index);case"'":return t.slice(1)+n.slice(o.index+o[0].length);default:return t.slice(1)+(o[r]||"")}}).replace(/\\\\/g,"\\"),n.slice(0,o.index)+r+n.slice(o.index+o[0].length)))},_e.$$arity=-2),e.alias(Ae,"succ","next"),e.defn(Ae,"$sum",fe=function(t){var r=this;null==t&&(t=16),t=e.const_get_relative(Te,"Opal").$coerce_to(t,e.const_get_relative(Te,"Integer"),"to_int");for(var n=0,i=r.length,a=0;a36)&&r.$raise(e.const_get_relative(Te,"ArgumentError"),"invalid radix "+a),/^\s*_/.test(i)?0:(i=i.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/,function(e,t,r,n){switch(n.charAt(0)){case"+":case"-":return e;case"0":if("x"===n.charAt(1)&&"0x"===r&&(0===a||16===a))return e}switch(r){case"0b":if(0===a||2===a)return a=2,t+n;break;case"0":case"0o":if(0===a||8===a)return a=8,t+n;break;case"0d":if(0===a||10===a)return a=10,t+n;break;case"0x":if(0===a||16===a)return a=16,t+n}return e}),n=parseInt(i.replace(/_(?!_)/g,""),a),isNaN(n)?0:n)},he.$$arity=-1),e.defn(Ae,"$to_proc",pe=function(){var t,r=this,n=a;return n=r.valueOf(),s(r,"proc",[],((t=function(){var r,i,$=t.$$s||this;(r=t.$$p||a)&&(t.$$p=null);var o=arguments.length,s=o-0;s<0&&(s=0),i=new Array(s);for(var l=0;l1&&(h=!0,_.shift(),p=d[g-1],f-=1);var v=[],y=null;for(i=!1,n=0;n(s=$.charCodeAt(0))&&c.$raise(e.const_get_relative(Te,"ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode(s)+'" in string transliteration'),a=o+1;a0){var m=[],b=null;for(i=!1,n=0;n(s=$.charCodeAt(0))&&c.$raise(e.const_get_relative(Te,"ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode(s)+'" in string transliteration'),a=o+1;a0){var O=g>0?d[g-1]:"";for(n=0;n1&&(h=!0,_.shift(),p=d[g-1],f-=1);var v=[],y=null;for(i=!1,n=0;n(s=$.charCodeAt(0))&&c.$raise(e.const_get_relative(Te,"ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode(s)+'" in string transliteration'),a=o+1;a0){var m=[],b=null;for(i=!1,n=0;n(s=$.charCodeAt(0))&&c.$raise(e.const_get_relative(Te,"ArgumentError"),'invalid range "'+String.fromCharCode(o)+"-"+String.fromCharCode(s)+'" in string transliteration'),a=o+1;a0){var O=g>0?d[g-1]:"";for(n=0;nt:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e","$*","$coerce_to","$try_convert","$<","$+","$-","$ceil","$/","$size","$===","$<<","$[]","$[]=","$inspect","$__send__","$<=>","$first","$reverse","$sort","$to_proc","$compare","$call","$dup","$to_a","$lambda","$sort!","$map!","$has_key?","$values","$zip"]),function(o,d){var g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B,D,L,U,G,H,X,Y,K,V,J,Z,W,Q,ee,te,re,ne,ie,ae,$e,oe,se,le=l(o,"Enumerable"),ce=(le.$$proto,[le].concat(d));e.defn(le,"$all?",g=function(){try{var t,r,n=this,i=g.$$p,a=i||s;return i&&(g.$$p=null),c(n,"each",[],a!==s?((t=function(){t.$$s;var r,n=arguments.length,i=n-0;i<0&&(i=0),r=new Array(i);for(var $=0;$0&&t.$yield($,o)}var i=r.$$s||this;null==t&&(t=s);var $=s,o=[];i.$each.$$p=function(t){var r=e.yield1(a,t);r===s?(n(),o=[],$=s):($===s||$===r?o.push(t):(n(),o=[t]),$=r)},i.$each(),n()}).$$s=n,r.$$arity=1,r))},p.$$arity=0),e.defn(le,"$chunk_while",v=function(){var t,r=this,n=v.$$p,i=n||s;return n&&(v.$$p=null),i!==s||r.$raise(e.const_get_relative(ce,"ArgumentError"),"no block given"),c(r,"slice_when",[],((t=function(r,n){t.$$s;return null==r&&(r=s),null==n&&(n=s),e.yieldX(i,[r,n])["$!"]()}).$$s=r,t.$$arity=2,t))},v.$$arity=0),e.defn(le,"$collect",y=function(){var t,r=this,n=y.$$p,i=n||s;if(n&&(y.$$p=null),i===s)return c(r,"enum_for",["collect"],((t=function(){return(t.$$s||this).$enumerator_size()}).$$s=r,t.$$arity=0,t));var a=[];return r.$each.$$p=function(){var t=e.yieldX(i,arguments);a.push(t)},r.$each(),a},y.$$arity=0),e.defn(le,"$collect_concat",m=function(){var t,r,n=this,i=m.$$p,a=i||s;return i&&(m.$$p=null),a===s?c(n,"enum_for",["collect_concat"],((t=function(){return(t.$$s||this).$enumerator_size()}).$$s=n,t.$$arity=0,t)):c(n,"map",[],(r=function(t){r.$$s;return null==t&&(t=s),e.yield1(a,t)},r.$$s=n,r.$$arity=1,r)).$flatten(1)},m.$$arity=0),e.defn(le,"$count",b=function(t){var r,n,i,a=this,$=b.$$p,o=$||s,l=s;return $&&(b.$$p=null),l=0,null!=t&&o!==s&&a.$warn("warning: given block not used"),u(null!=t)?o=c(a,"proc",[],((r=function(){r.$$s;var n,i=arguments.length,a=i-0;a<0&&(a=0),n=new Array(a);for(var $=0;$1;){for(_=0,f=d.length;_t&&_.shift(),_.length==t&&e.yield1(l,_.slice(0,t))},$.$each(),f},A.$$arity=1),e.defn(le,"$each_entry",x=function(){var t,r,n=this,i=x.$$p,a=i||s,$=arguments.length,o=$-0;o<0&&(o=0),r=new Array(o);for(var l=0;l<$;l++)r[l-0]=arguments[l];return i&&(x.$$p=null),a===s?c(n,"to_enum",["each_entry"].concat(e.to_a(r)),((t=function(){return(t.$$s||this).$enumerator_size()}).$$s=n,t.$$arity=0,t)):(n.$each.$$p=function(){var t=e.const_get_relative(ce,"Opal").$destructure(arguments);e.yield1(a,t)},n.$each.apply(n,r),n)},x.$$arity=-1),e.defn(le,"$each_slice",T=function(t){var r,n=this,i=T.$$p,a=i||s;if(i&&(T.$$p=null),t=e.const_get_relative(ce,"Opal").$coerce_to(t,e.const_get_relative(ce,"Integer"),"to_int"),u(t<=0)&&n.$raise(e.const_get_relative(ce,"ArgumentError"),"invalid slice size"),a===s)return c(n,"enum_for",["each_slice",t],((r=function(){var e=r.$$s||this;return u(e["$respond_to?"]("size"))?$(e.$size(),t).$ceil():s}).$$s=n,r.$$arity=0,r));var o,l=[];return n.$each.$$p=function(){var r=e.const_get_relative(ce,"Opal").$destructure(arguments);l.push(r),l.length===t&&(e.yield1(a,l),l=[])},n.$each(),o!==undefined?o:(l.length>0&&e.yield1(a,l),s)},T.$$arity=1),e.defn(le,"$each_with_index",k=function(){var t,r,n=this,i=k.$$p,a=i||s,$=arguments.length,o=$-0;o<0&&(o=0),r=new Array(o);for(var l=0;l<$;l++)r[l-0]=arguments[l];if(i&&(k.$$p=null),a===s)return c(n,"enum_for",["each_with_index"].concat(e.to_a(r)),((t=function(){return(t.$$s||this).$enumerator_size()}).$$s=n,t.$$arity=0,t));var u,_=0;return n.$each.$$p=function(){var t=e.const_get_relative(ce,"Opal").$destructure(arguments);a(t,_),_++},n.$each.apply(n,r),u!==undefined?u:n},k.$$arity=-1),e.defn(le,"$each_with_object",I=function(t){var r,n,i=this,a=I.$$p,$=a||s;return a&&(I.$$p=null),$===s?c(i,"enum_for",["each_with_object",t],((r=function(){return(r.$$s||this).$enumerator_size()}).$$s=i,r.$$arity=0,r)):(i.$each.$$p=function(){var r=e.const_get_relative(ce,"Opal").$destructure(arguments);$(r,t)},i.$each(),n!==undefined?n:t)},I.$$arity=1),e.defn(le,"$entries",P=function(){var t,r=this,n=arguments.length,i=n-0;i<0&&(i=0),t=new Array(i);for(var a=0;a"](r))===s&&i.$raise(e.const_get_relative(ce,"ArgumentError"),"comparison failed"),n>0&&(r=t)):r=t},i.$each(),r===undefined?s:r):(t=e.const_get_relative(ce,"Opal").$coerce_to(t,e.const_get_relative(ce,"Integer"),"to_int"),c(i,"sort",[],$.$to_proc()).$reverse().$first(t))},L.$$arity=-1),e.defn(le,"$max_by",U=function(){var t,r,n,i=this,a=U.$$p,$=a||s;return a&&(U.$$p=null),u($)?(i.$each.$$p=function(){var t=e.const_get_relative(ce,"Opal").$destructure(arguments),i=e.yield1($,t);if(r===undefined)return r=t,void(n=i);i["$<=>"](n)>0&&(r=t,n=i)},i.$each(),r===undefined?s:r):c(i,"enum_for",["max_by"],((t=function(){return(t.$$s||this).$enumerator_size()}).$$s=i,t.$$arity=0,t))},U.$$arity=0),e.alias(le,"member?","include?"),e.defn(le,"$min",G=function(){var t,r=this,n=G.$$p,i=n||s;return n&&(G.$$p=null),r.$each.$$p=i!==s?function(){var n=e.const_get_relative(ce,"Opal").$destructure(arguments);if(t!==undefined){var a=i(n,t);a===s&&r.$raise(e.const_get_relative(ce,"ArgumentError"),"comparison failed"),a<0&&(t=n)}else t=n}:function(){var r=e.const_get_relative(ce,"Opal").$destructure(arguments);t!==undefined?e.const_get_relative(ce,"Opal").$compare(r,t)<0&&(t=r):t=r},r.$each(),t===undefined?s:t},G.$$arity=0),e.defn(le,"$min_by",H=function(){var t,r,n,i=this,a=H.$$p,$=a||s;return a&&(H.$$p=null),u($)?(i.$each.$$p=function(){var t=e.const_get_relative(ce,"Opal").$destructure(arguments),i=e.yield1($,t);if(r===undefined)return r=t,void(n=i);i["$<=>"](n)<0&&(r=t,n=i)},i.$each(),r===undefined?s:r):c(i,"enum_for",["min_by"],((t=function(){return(t.$$s||this).$enumerator_size()}).$$s=i,t.$$arity=0,t))},H.$$arity=0),e.defn(le,"$minmax",X=function(){var t,r,n=this,i=X.$$p,a=i||s;i&&(X.$$p=null),a=u(t=a)?t:c(n,"proc",[],((r=function(e,t){r.$$s;return null==e&&(e=s),null==t&&(t=s),e["$<=>"](t)}).$$s=n,r.$$arity=2,r));var $=s,o=s,l=!0;return n.$each.$$p=function(){var t=e.const_get_relative(ce,"Opal").$destructure(arguments);if(l)$=o=t,l=!1;else{var r=a.$call($,t);r===s?n.$raise(e.const_get_relative(ce,"ArgumentError"),"comparison failed"):r>0&&($=t);var i=a.$call(o,t);i===s?n.$raise(e.const_get_relative(ce,"ArgumentError"),"comparison failed"):i<0&&(o=t)}},n.$each(),[$,o]},X.$$arity=0),e.defn(le,"$minmax_by",Y=function(){var t=this,r=Y.$$p;return r&&(Y.$$p=null),t.$raise(e.const_get_relative(ce,"NotImplementedError"))},Y.$$arity=0),e.defn(le,"$none?",K=function(){try{var t,r,n=this,i=K.$$p,a=i||s;return i&&(K.$$p=null),c(n,"each",[],a!==s?((t=function(){t.$$s;var r,n=arguments.length,i=n-0;i<0&&(i=0),r=new Array(i);for(var $=0;$=0;$--)e.yieldX(i,a[$]);return a},W.$$arity=0),e.alias(le,"select","find_all"),e.defn(le,"$slice_before",Q=function(t){var r,n=this,i=Q.$$p,a=i||s;return i&&(Q.$$p=null),u(t===undefined&&a===s)&&n.$raise(e.const_get_relative(ce,"ArgumentError"),"both pattern and block are given"),u(t!==undefined&&a!==s||arguments.length>1)&&n.$raise(e.const_get_relative(ce,"ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),c(e.const_get_relative(ce,"Enumerator"),"new",[],((r=function(n){var i=r.$$s||this;null==n&&(n=s);var $=[];a!==s?t===undefined?i.$each.$$p=function(){var t=e.const_get_relative(ce,"Opal").$destructure(arguments),r=e.yield1(a,t);u(r)&&$.length>0&&(n["$<<"]($),$=[]),$.push(t)}:i.$each.$$p=function(){var r=e.const_get_relative(ce,"Opal").$destructure(arguments),i=a(r,t.$dup());u(i)&&$.length>0&&(n["$<<"]($),$=[]),$.push(r)}:i.$each.$$p=function(){var r=e.const_get_relative(ce,"Opal").$destructure(arguments),i=t["$==="](r);u(i)&&$.length>0&&(n["$<<"]($),$=[]),$.push(r)},i.$each(),$.length>0&&n["$<<"]($)}).$$s=n,r.$$arity=1,r))},Q.$$arity=-1),e.defn(le,"$slice_after",ee=function(t){var r,n,i=this,a=ee.$$p,$=a||s;return a&&(ee.$$p=null),u(t===undefined&&$===s)&&i.$raise(e.const_get_relative(ce,"ArgumentError"),"both pattern and block are given"),u(t!==undefined&&$!==s||arguments.length>1)&&i.$raise(e.const_get_relative(ce,"ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),u(t!==undefined)&&($=c(i,"proc",[],((r=function(e){r.$$s;return null==e&&(e=s),t["$==="](e)}).$$s=i,r.$$arity=1,r))),c(e.const_get_relative(ce,"Enumerator"),"new",[],((n=function(t){var r,i=n.$$s||this;null==t&&(t=s),i.$each.$$p=function(){var n=e.const_get_relative(ce,"Opal").$destructure(arguments),i=e.yield1($,n);null==r&&(r=[]),u(i)?(r.push(n),t.$yield(r),r=null):r.push(n)},i.$each(),null!=r&&t.$yield(r)}).$$s=i,n.$$arity=1,n))},ee.$$arity=-1),e.defn(le,"$slice_when",te=function(){var t,r=this,n=te.$$p,i=n||s;return n&&(te.$$p=null),i!==s||r.$raise(e.const_get_relative(ce,"ArgumentError"),"wrong number of arguments (0 for 1)"),c(e.const_get_relative(ce,"Enumerator"),"new",[],((t=function(r){var n=t.$$s||this;null==r&&(r=s);var a=s,$=s;n.$each_cons.$$p=function(){var t=e.const_get_relative(ce,"Opal").$destructure(arguments),n=t[0],o=t[1],l=e.yieldX(i,[n,o]);$=o,a===s&&(a=[]),u(l)?(a.push(n),r.$yield(a),a=[]):a.push(n)},n.$each_cons(2),a!==s&&(a.push($),r.$yield(a))}).$$s=r,t.$$arity=1,t))},te.$$arity=0),e.defn(le,"$sort",re=function(){var e,t=this,r=re.$$p,n=r||s,i=s;return r&&(re.$$p=null),i=t.$to_a(),n!==s||(n=c(t,"lambda",[],((e=function(t,r){e.$$s;return null==t&&(t=s),null==r&&(r=s),t["$<=>"](r)}).$$s=t,e.$$arity=2,e))),c(i,"sort",[],n.$to_proc())},re.$$arity=0),e.defn(le,"$sort_by",ne=function(){var t,r,n,i,a=this,$=ne.$$p,o=$||s,l=s;return $&&(ne.$$p=null),o===s?c(a,"enum_for",["sort_by"],((t=function(){return(t.$$s||this).$enumerator_size()}).$$s=a,t.$$arity=0,t)):(l=c(a,"map",[],((r=function(){r.$$s;var t=s;return t=e.const_get_relative(ce,"Opal").$destructure(arguments),[e.yield1(o,t),t]}).$$s=a,r.$$arity=0,r)),c(l,"sort!",[],((n=function(e,t){n.$$s;return null==e&&(e=s),null==t&&(t=s),e[0]["$<=>"](t[0])}).$$s=a,n.$$arity=2,n)),c(l,"map!",[],((i=function(e){i.$$s;return null==e&&(e=s),e[1]}).$$s=a,i.$$arity=1,i)))},ne.$$arity=0),e.defn(le,"$sum",ie=function(t){var r,n=this,a=ie.$$p,$=a||s,o=s;return null==t&&(t=0),a&&(ie.$$p=null),o=t,c(n,"each",[],((r=function(){r.$$s;var t,n=s,a=arguments.length,l=a-0;l<0&&(l=0),t=new Array(l);for(var u=0;u")},v.$$arity=0),function(t,$super,r){function n(){}var i,o,u=n=s(t,null,"Generator",n),_=u.$$proto,f=[u].concat(r);_.block=a,u.$include(e.const_get_relative(f,"Enumerable")),e.defn(u,"$initialize",i=function(){var t=this,r=i.$$p,n=r||a;return r&&(i.$$p=null),l(n)||t.$raise(e.const_get_relative(f,"LocalJumpError"),"no block given"),t.block=n},i.$$arity=0),e.defn(u,"$each",o=function(){var t,r=this,n=o.$$p,i=n||a,s=a,l=arguments.length,u=l-0;u<0&&(u=0),t=new Array(u);for(var _=0;_"},O.$$arity=0),a&&"inspect"}(b[0],y,b)}(i[0],0,i)},Opal.modules["corelib/numeric"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}var $=e.top,o=[],s=e.nil,l=(e.breaker,e.slice,e.klass),c=e.truthy,u=e.hash2;return e.add_stubs(["$require","$include","$instance_of?","$class","$Float","$coerce","$===","$raise","$__send__","$equal?","$-","$*","$div","$<","$-@","$ceil","$to_f","$denominator","$to_r","$==","$floor","$/","$%","$Complex","$zero?","$numerator","$abs","$arg","$coerce_to!","$round","$to_i","$truncate","$>"]),$.$require("corelib/comparable"),function($,$super,o){function _(){}var f,d,g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B,D,L,U,G,H,X,Y,K=_=l($,null,"Numeric",_),V=(K.$$proto,[K].concat(o));return K.$include(e.const_get_relative(V,"Comparable")),e.defn(K,"$coerce",f=function(e){var t=this;return c(e["$instance_of?"](t.$class()))?[e,t]:[t.$Float(e),t.$Float(t)]},f.$$arity=1),e.defn(K,"$__coerced__",d=function(t,r){var n,i,a=this,$=s,o=s,l=s;try{i=r.$coerce(a),$=null==(n=e.to_ary(i))[0]?s:n[0],o=null==n[1]?s:n[1]}catch(c){if(!e.rescue(c,[e.const_get_relative(V,"StandardError")]))throw c;try{l=t,"+"["$==="](l)||"-"["$==="](l)||"*"["$==="](l)||"/"["$==="](l)||"%"["$==="](l)||"&"["$==="](l)||"|"["$==="](l)||"^"["$==="](l)||"**"["$==="](l)?a.$raise(e.const_get_relative(V,"TypeError"),r.$class()+" can't be coerce into Numeric"):(">"["$==="](l)||">="["$==="](l)||"<"["$==="](l)||"<="["$==="](l)||"<=>"["$==="](l))&&a.$raise(e.const_get_relative(V,"ArgumentError"),"comparison of "+a.$class()+" with "+r.$class()+" failed")}finally{e.pop_exception()}}return $.$__send__(t,o)},d.$$arity=2),e.defn(K,"$<=>",g=function(e){return c(this["$equal?"](e))?0:s},g.$$arity=1),e.defn(K,"$+@",h=function(){return this},h.$$arity=0),e.defn(K,"$-@",p=function(){return t(0,this)},p.$$arity=0),e.defn(K,"$%",v=function(e){var n=this;return t(n,r(e,n.$div(e)))},v.$$arity=1),e.defn(K,"$abs",y=function(){var e=this;return n(e,0)?e["$-@"]():e},y.$$arity=0),e.defn(K,"$abs2",m=function(){var e=this;return r(e,e)},m.$$arity=0),e.defn(K,"$angle",b=function(){return n(this,0)?e.const_get_qualified(e.const_get_relative(V,"Math"),"PI"):0},b.$$arity=0),e.alias(K,"arg","angle"),e.defn(K,"$ceil",w=function(){return this.$to_f().$ceil()},w.$$arity=0),e.defn(K,"$conj",O=function(){return this},O.$$arity=0),e.alias(K,"conjugate","conj"),e.defn(K,"$denominator",M=function(){return this.$to_r().$denominator()},M.$$arity=0),e.defn(K,"$div",E=function(t){var r=this;return t["$=="](0)&&r.$raise(e.const_get_relative(V,"ZeroDivisionError"),"divided by o"),i(r,t).$floor()},E.$$arity=1),e.defn(K,"$divmod",A=function(e){var t=this;return[t.$div(e),t["$%"](e)]},A.$$arity=1),e.defn(K,"$fdiv",x=function(e){return i(this.$to_f(),e)},x.$$arity=1),e.defn(K,"$floor",T=function(){return this.$to_f().$floor()},T.$$arity=0),e.defn(K,"$i",k=function(){var e=this;return e.$Complex(0,e)},k.$$arity=0),e.defn(K,"$imag",I=function(){return 0},I.$$arity=0),e.alias(K,"imaginary","imag"),e.defn(K,"$integer?",P=function(){return!1},P.$$arity=0),e.alias(K,"magnitude","abs"),e.alias(K,"modulo","%"),e.defn(K,"$nonzero?",z=function(){var e=this;return c(e["$zero?"]())?s:e},z.$$arity=0),e.defn(K,"$numerator",N=function(){return this.$to_r().$numerator()},N.$$arity=0),e.alias(K,"phase","arg"),e.defn(K,"$polar",S=function(){var e=this;return[e.$abs(),e.$arg()]},S.$$arity=0),e.defn(K,"$quo",q=function(t){var r=this;return i(e.const_get_relative(V,"Opal")["$coerce_to!"](r,e.const_get_relative(V,"Rational"),"to_r"),t)},q.$$arity=1),e.defn(K,"$real",R=function(){return this},R.$$arity=0),e.defn(K,"$real?",j=function(){return!0},j.$$arity=0),e.defn(K,"$rect",C=function(){return[this,0]},C.$$arity=0),e.alias(K,"rectangular","rect"),e.defn(K,"$round",F=function(e){return this.$to_f().$round(e)},F.$$arity=-1),e.defn(K,"$to_c",B=function(){var e=this;return e.$Complex(e,0)},B.$$arity=0),e.defn(K,"$to_int",D=function(){return this.$to_i()},D.$$arity=0),e.defn(K,"$truncate",L=function(){return this.$to_f().$truncate()},L.$$arity=0),e.defn(K,"$zero?",U=function(){return this["$=="](0)},U.$$arity=0),e.defn(K,"$positive?",G=function(){return a(this,0)},G.$$arity=0),e.defn(K,"$negative?",H=function(){return n(this,0)},H.$$arity=0),e.defn(K,"$dup",X=function(){return this},X.$$arity=0),e.defn(K,"$clone",Y=function(t){var r=this;if(null==t||!t.$$is_hash){if(null!=t)throw e.ArgumentError.$new("expected kwargs");t=u([],{})}return null==t.$$smap.freeze&&!0,r},Y.$$arity=-1),s&&"clone"}(o[0],0,o)},Opal.modules["corelib/array"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e","$==","$object_id","$inspect","$enum_for","$bsearch_index","$to_proc","$coerce_to!","$>","$*","$enumerator_size","$empty?","$size","$map","$equal?","$dup","$each","$[]","$dig","$eql?","$length","$begin","$end","$exclude_end?","$flatten","$__id__","$to_s","$new","$!","$>=","$**","$delete_if","$reverse","$rotate","$rand","$at","$keep_if","$shuffle!","$<","$sort","$sort_by","$!=","$times","$[]=","$-","$<<","$values","$kind_of?","$last","$first","$upto","$reject","$pristine"]),$.$require("corelib/enumerable"),$.$require("corelib/numeric"),function($,$super,o){function d(){}function g(t,r){return r.$$name===e.Array?t:r.$allocate().$replace(t.$to_a())}function h(t,r){var n,i,a,$=t.length;return n=r.excl,i=e.Opal.$coerce_to(r.begin,e.Integer,"to_int"),a=e.Opal.$coerce_to(r.end,e.Integer,"to_int"),i<0&&(i+=$)<0?s:i>$?s:a<0&&(a+=$)<0?[]:(n||(a+=1),g(t.slice(i,a),t.$class()))}function p(t,r,n){var i=t.length;return(r=e.Opal.$coerce_to(r,e.Integer,"to_int"))<0&&(r+=i)<0?s:n===undefined?r>=i||r<0?s:t[r]:(n=e.Opal.$coerce_to(n,e.Integer,"to_int"))<0||r>i||r<0?s:g(t.slice(r,r+n),t.$class())}function v(e,t){return e===t||0===t?1:t>0&&e>t?v(e-1,t-1)+v(e-1,t):0}function y(e,t){for(var r=t>=0?1:0;t;)r*=e,e--,t--;return r}var m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B,D,L,U,G,H,X,Y,K,V,J,Z,W,Q,ee,te,re,ne,ie,ae,$e,oe,se,le,ce,ue,_e,fe,de,ge,he,pe,ve,ye,me,be,we,Oe,Me,Ee,Ae,xe,Te,ke,Ie,Pe,ze,Ne,Se,qe,Re,je,Ce,Fe,Be,De,Le,Ue,Ge,He,Xe,Ye,Ke,Ve,Je,Ze,We,Qe,et,tt,rt=d=l($,$super,"Array",d),nt=rt.$$proto,it=[rt].concat(o);return rt.$include(e.const_get_relative(it,"Enumerable")),nt.$$is_array=!0,e.defs(rt,"$[]",m=function(){var e,t=this,r=arguments.length,n=r-0;n<0&&(n=0),e=new Array(n);for(var i=0;ie.const_get_qualified(e.const_get_relative(it,"Integer"),"MAX")&&a.$raise(e.const_get_relative(it,"ArgumentError"),"array size too big"),arguments.length>2&&a.$raise(e.const_get_relative(it,"ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..2)"),0===arguments.length)return a.splice(0,a.length),a;if(1===arguments.length){if(t.$$is_array)return a.$replace(t.$to_a()),a;if(t["$respond_to?"]("to_ary"))return a.$replace(t.$to_ary()),a}if((t=e.const_get_relative(it,"Opal").$coerce_to(t,e.const_get_relative(it,"Integer"),"to_int"))<0&&a.$raise(e.const_get_relative(it,"ArgumentError"),"negative array size"),a.splice(0,a.length),o===s)for(n=0;n",k=function(t){var r=this;if(c(e.const_get_relative(it,"Array")["$==="](t)))t=t.$to_a();else{if(!c(t["$respond_to?"]("to_ary")))return s;t=t.$to_ary().$to_a()}if(r.$hash()===t.$hash())return 0;for(var n=Math.min(r.length,t.length),i=0;i"](t[i]);if(0!==a)return a}return r.length["$<=>"](t.length)},k.$$arity=1),e.defn(rt,"$==",I=function(t){function r(t,i){var a,$,o,s;if(t===i)return!0;if(!i.$$is_array)return!!e.const_get_relative(it,"Opal")["$respond_to?"](i,"to_ary")&&i["$=="](t);if(t.constructor!==Array&&(t=t.$to_a()),i.constructor!==Array&&(i=i.$to_a()),t.length!==i.length)return!1;for(n[t.$object_id()]=!0,a=0,$=t.length;a<$;a++)if(o=t[a],s=i[a],o.$$is_array){if(s.$$is_array&&s.length!==o.length)return!1;if(!n.hasOwnProperty(o.$object_id())&&!r(o,s))return!1}else if(!o["$=="](s))return!1;return!0}var n={};return r(this,t)},I.$$arity=1),e.defn(rt,"$[]",P=function(e,t){var r=this;return e.$$is_range?h(r,e):p(r,e,t)},P.$$arity=-2),e.defn(rt,"$[]=",z=function(t,r,n){var i,a,$=this,o=s,l=s,u=$.length;if(c(e.const_get_relative(it,"Range")["$==="](t))){o=c(e.const_get_relative(it,"Array")["$==="](r))?r.$to_a():c(r["$respond_to?"]("to_ary"))?r.$to_ary().$to_a():[r];var _=t.excl,f=e.const_get_relative(it,"Opal").$coerce_to(t.begin,e.const_get_relative(it,"Integer"),"to_int"),d=e.const_get_relative(it,"Opal").$coerce_to(t.end,e.const_get_relative(it,"Integer"),"to_int");if(f<0&&(f+=u)<0&&$.$raise(e.const_get_relative(it,"RangeError"),t.$inspect()+" out of range"),d<0&&(d+=u),_||(d+=1),f>u)for(i=u;iu)for(i=u;i=r.length?s:r[t]},q.$$arity=1),e.defn(rt,"$bsearch_index",R=function(){var t=this,r=R.$$p,n=r||s;if(r&&(R.$$p=null),n===s)return t.$enum_for("bsearch_index");for(var i,a,$,o=0,l=t.length,c=!1,u=s;o0;){for($=0,o=l.length;$=0&&g=0&&r(o,0,[],i),i)},H.$$arity=1),e.defn(rt,"$compact",X=function(){for(var e,t=this,r=[],n=0,i=t.length;n=r.length)return s;var n=r[t];return r.splice(t,1),n},J.$$arity=1),e.defn(rt,"$delete_if",Z=function(){var e,t=this,r=Z.$$p,n=r||s;if(r&&(Z.$$p=null),n===s)return _(t,"enum_for",["delete_if"],((e=function(){return(e.$$s||this).$size()}).$$s=t,e.$$arity=0,e));for(var i,a=0,$=t.length;a<$;a++)!1!==(i=n(t[a]))&&i!==s&&(t.splice(a,1),$--,a--);return t},Z.$$arity=0),e.defn(rt,"$dig",W=function(t){var r,n=this,i=s,a=arguments.length,$=a-1;$<0&&($=0),r=new Array($);for(var o=1;o=0&&t2)&&$.$raise(e.const_get_relative(it,"ArgumentError"),"wrong number of arguments ("+n.$length()+" for 0..2)"),r=n,u=null==(t=e.to_ary(r))[0]?s:t[0],_=null==t[1]?s:t[1]):(c(0==n.length)?$.$raise(e.const_get_relative(it,"ArgumentError"),"wrong number of arguments (0 for 1..3)"):c(n.length>3)&&$.$raise(e.const_get_relative(it,"ArgumentError"),"wrong number of arguments ("+n.$length()+" for 1..3)"),r=n,f=null==(t=e.to_ary(r))[0]?s:t[0],u=null==t[1]?s:t[1],_=null==t[2]?s:t[2]),c(e.const_get_relative(it,"Range")["$==="](u))){if(c(_)&&$.$raise(e.const_get_relative(it,"TypeError"),"length invalid with range"),d=e.const_get_relative(it,"Opal").$coerce_to(u.$begin(),e.const_get_relative(it,"Integer"),"to_int"),c(d<0)&&(d+=this.length),c(d<0)&&$.$raise(e.const_get_relative(it,"RangeError"),u.$inspect()+" out of range"),g=e.const_get_relative(it,"Opal").$coerce_to(u.$end(),e.const_get_relative(it,"Integer"),"to_int"),c(g<0)&&(g+=this.length),c(u["$exclude_end?"]())||(g+=1),c(g<=d))return $}else if(c(u))if(d=e.const_get_relative(it,"Opal").$coerce_to(u,e.const_get_relative(it,"Integer"),"to_int"),c(d<0)&&(d+=this.length),c(d<0)&&(d=0),c(_)){if(g=e.const_get_relative(it,"Opal").$coerce_to(_,e.const_get_relative(it,"Integer"),"to_int"),c(0==g))return $;g+=d}else g=this.length;else d=0,g=this.length;if(c(d>this.length))for(i=this.length;ithis.length)&&(this.length=g),c(l))for(this.length;d0){if(t<0&&(t+=n.length+1)<0&&n.$raise(e.const_get_relative(it,"IndexError"),t+" is out of bounds"),t>n.length)for(var o=n.length;or.length&&(t=r.length),r.slice(r.length-t,r.length))},pe.$$arity=-1),e.defn(rt,"$length",ve=function(){return this.length},ve.$$arity=0),e.alias(rt,"map","collect"),e.alias(rt,"map!","collect!"),e.defn(rt,"$permutation",ye=function(t){var r,n,i,a,$=this,o=ye.$$p,l=o||s,c=s,u=s;if(o&&(ye.$$p=null),l===s)return _($,"enum_for",["permutation",t],((r=function(){var e=r.$$s||this;return y(e.length,t===undefined?e.length:t)}).$$s=$,r.$$arity=0,r));if((t=t===undefined?$.length:e.const_get_relative(it,"Opal").$coerce_to(t,e.const_get_relative(it,"Integer"),"to_int"))<0||$.lengthr.length)?r.splice(0,r.length):r.splice(r.length-t,r.length))},be.$$arity=-1),e.defn(rt,"$product",we=function(){var t,r=this,n=we.$$p,i=n||s,a=arguments.length,$=a-0;$<0&&($=0),t=new Array($);for(var o=0;o2147483647&&r.$raise(e.const_get_relative(it,"RangeError"),"too big to product"),h[l]=_,g[l]=0}e:for(;;){for(u=[],l=0;l=0&&!(t>=n.length);t--)if(n[t]["$=="](e))return t}else if(a!==s){for(t=n.length-1;t>=0&&!(t>=n.length);t--)if(!1!==(r=a(n[t]))&&r!==s)return t}else if(null==e)return n.$enum_for("rindex");return s},Pe.$$arity=-1),e.defn(rt,"$rotate",ze=function(t){var r,n,i,a,$=this;return null==t&&(t=1),t=e.const_get_relative(it,"Opal").$coerce_to(t,e.const_get_relative(it,"Integer"),"to_int"),1===$.length?$.slice():0===$.length?[]:(n=t%(r=$.slice()).length,i=r.slice(n),a=r.slice(0,n),i.concat(a))},ze.$$arity=-1),e.defn(rt,"$rotate!",Ne=function(t){var r=this,n=s;return null==t&&(t=1),0===r.length||1===r.length?r:(t=e.const_get_relative(it,"Opal").$coerce_to(t,e.const_get_relative(it,"Integer"),"to_int"),n=r.$rotate(t),r.$replace(n))},Ne.$$arity=-1),function(t,$super,r){function n(){}var i,a,$=n=l(t,null,"SampleRandom",n),o=$.$$proto,u=[$].concat(r);o.rng=s,e.defn($,"$initialize",i=function(e){return this.rng=e},i.$$arity=1),e.defn($,"$rand",a=function(t){var r=this,n=s;return n=e.const_get_relative(u,"Opal").$coerce_to(r.rng.$rand(t),e.const_get_relative(u,"Integer"),"to_int"),c(n<0)&&r.$raise(e.const_get_relative(u,"RangeError"),"random value must be >= 0"),c(nd.length&&(t=d.length),t){case 0:return[];case 1:return[d[h.$rand(d.length)]];case 2:return(o=h.$rand(d.length))===(l=h.$rand(d.length))&&(l=0===o?o+1:o-1),[d[o],d[l]];default:if(d.length/t>3){for(i=!1,a=0,o=1,($=e.const_get_relative(it,"Array").$new(t))[0]=h.$rand(d.length);o100){i=!0;break}u=h.$rand(d.length)}if(i)break;l++}if(i)break;$[o]=u,o++}if(!i){for(o=0;o=$&&a.$raise(e.const_get_relative(it,"RangeError"),"random number too big "+n)):n=a.$rand($),i=a[--$],a[$]=a[n],a[n]=i;return a},Fe.$$arity=-1),e.alias(rt,"slice","[]"),e.defn(rt,"$slice!",Be=function(t,r){var n=this,i=s,a=s,$=s,o=s,l=s;if(i=s,c(r===undefined))if(c(e.const_get_relative(it,"Range")["$==="](t))){a=t,i=n["$[]"](a),$=e.const_get_relative(it,"Opal").$coerce_to(a.$begin(),e.const_get_relative(it,"Integer"),"to_int"),o=e.const_get_relative(it,"Opal").$coerce_to(a.$end(),e.const_get_relative(it,"Integer"),"to_int"),$<0&&($+=n.length),o<0?o+=n.length:o>=n.length&&(o=n.length-1,a.excl&&(o+=1));var u=o-$;a.excl?o-=1:u+=1,$=0&&o=0&&u>0&&n.splice($,u)}else{if((l=e.const_get_relative(it,"Opal").$coerce_to(t,e.const_get_relative(it,"Integer"),"to_int"))<0&&(l+=n.length),l<0||l>=n.length)return s;i=n[l],0===l?n.shift():n.splice(l,1)}else{if(l=e.const_get_relative(it,"Opal").$coerce_to(t,e.const_get_relative(it,"Integer"),"to_int"),(r=e.const_get_relative(it,"Opal").$coerce_to(r,e.const_get_relative(it,"Integer"),"to_int"))<0)return s;i=n["$[]"](l,r),l<0&&(l+=n.length),l+r>n.length&&(r=n.length-l),l=0&&n.splice(l,r)}return i},Be.$$arity=-2),e.defn(rt,"$sort",De=function(){var r=this,n=De.$$p,a=n||s;return n&&(De.$$p=null),c(r.length>1)?(a===s&&(a=function(e,t){return e["$<=>"](t)}),r.slice().sort(function(n,$){var o=a(n,$);return o===s&&r.$raise(e.const_get_relative(it,"ArgumentError"),"comparison of "+n.$inspect()+" with "+$.$inspect()+" failed"),t(o,0)?1:i(o,0)?-1:0})):r},De.$$arity=0),e.defn(rt,"$sort!",Le=function(){var e,t=this,r=Le.$$p,n=r||s;r&&(Le.$$p=null),e=n!==s?_(t.slice(),"sort",[],n.$to_proc()):t.slice().$sort(),t.length=0;for(var i=0,a=e.length;i=0;a--)t.unshift(e[a]);return t},Ze.$$arity=-1),e.defn(rt,"$values_at",We=function(){var t,r,n=this,i=s,a=arguments.length,$=a-0;$<0&&($=0),r=new Array($);for(var o=0;o=t:e["$>="](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var i=e.top,a=[],$=e.nil,o=(e.breaker,e.slice,e.klass),s=e.send,l=e.hash2,c=e.truthy;return e.add_stubs(["$require","$include","$coerce_to?","$[]","$merge!","$allocate","$raise","$coerce_to!","$each","$fetch","$>=","$>","$==","$compare_by_identity","$lambda?","$abs","$arity","$call","$enum_for","$size","$respond_to?","$class","$dig","$inspect","$map","$to_proc","$flatten","$eql?","$default","$dup","$default_proc","$default_proc=","$-","$default=","$alias_method","$proc"]),i.$require("corelib/enumerable"),function(i,$super,a){function u(){}var _,f,d,g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B,D,L,U,G,H,X,Y,K,V,J,Z,W,Q,ee,te,re,ne,ie,ae,$e,oe,se,le,ce,ue,_e,fe,de,ge,he,pe,ve=u=o(i,null,"Hash",u),ye=ve.$$proto,me=[ve].concat(a);return ve.$include(e.const_get_relative(me,"Enumerable")),ye.$$is_hash=!0,e.defs(ve,"$[]",_=function(){var t,r=this,n=arguments.length,i=n-0;i<0&&(i=0),t=new Array(i);for(var a=0;a=",p=function(t){var r,n=this,i=$;return t=e.const_get_relative(me,"Opal")["$coerce_to!"](t,e.const_get_relative(me,"Hash"),"to_hash"),!(n.$$keys.length",v=function(r){var n=this;return r=e.const_get_relative(me,"Opal")["$coerce_to!"](r,e.const_get_relative(me,"Hash"),"to_hash"),!(n.$$keys.length<=r.$$keys.length)&&t(n,r)},v.$$arity=1),e.defn(ve,"$<",y=function(t){var n=this;return r(t=e.const_get_relative(me,"Opal")["$coerce_to!"](t,e.const_get_relative(me,"Hash"),"to_hash"),n)},y.$$arity=1),e.defn(ve,"$<=",m=function(r){var n=this;return t(r=e.const_get_relative(me,"Opal")["$coerce_to!"](r,e.const_get_relative(me,"Hash"),"to_hash"),n)},m.$$arity=1),e.defn(ve,"$[]",b=function(t){var r=this,n=e.hash_get(r,t);return n!==undefined?n:r.$default(t)},b.$$arity=1),e.defn(ve,"$[]=",w=function(t,r){var n=this;return e.hash_put(n,t,r),r},w.$$arity=2),e.defn(ve,"$assoc",O=function(e){for(var t,r=this,n=0,i=r.$$keys,a=i.length;n"+a.$inspect());return"{"+n.join(", ")+"}"}finally{t&&(pe=undefined)}},V.$$arity=0),e.defn(ve,"$invert",J=function(){for(var t,r,n=this,i=e.hash(),a=0,$=n.$$keys,o=$.length;a0?[t=(t=n[0]).$$is_string?t:t.key,e.hash_delete(r,t)]:r.$default($)},le.$$arity=0),e.alias(ve,"size","length"),ve.$alias_method("store","[]="),e.defn(ve,"$to_a",ce=function(){for(var e,t,r=this,n=[],i=0,a=r.$$keys,$=a.length;i<$;i++)(e=a[i]).$$is_string?t=r.$$smap[e]:(t=e.value,e=e.key),n.push([e,t]);return n},ce.$$arity=0),e.defn(ve,"$to_h",ue=function(){var t=this;if(t.$$class===e.Hash)return t;var r=new e.Hash.$$alloc;return e.hash_init(r),e.hash_clone(t,r),r},ue.$$arity=0),e.defn(ve,"$to_hash",_e=function(){return this},_e.$$arity=0),e.defn(ve,"$to_proc",fe=function(){var t,r=this;return s(r,"proc",[],((t=function(r){var n=t.$$s||this;return null==r&&n.$raise(e.const_get_relative(me,"ArgumentError"),"no key given"),n["$[]"](r)}).$$s=r,t.$$arity=-1,t))},fe.$$arity=0),e.alias(ve,"to_s","inspect"),e.defn(ve,"$transform_values",de=function(){var t,r=this,n=de.$$p,i=n||$;if(n&&(de.$$p=null),!c(i))return s(r,"enum_for",["transform_values"],((t=function(){return(t.$$s||this).$size()}).$$s=r,t.$$arity=0,t));for(var a,o,l=e.hash(),u=0,_=r.$$keys,f=_.length;ut:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}var l=e.top,c=[],u=e.nil,_=(e.breaker,e.slice,e.klass),f=e.truthy,d=e.send,g=e.hash2;return e.add_stubs(["$require","$bridge","$raise","$name","$class","$Float","$respond_to?","$coerce_to!","$__coerced__","$===","$!","$>","$**","$new","$<","$to_f","$==","$nan?","$infinite?","$enum_for","$+","$-","$gcd","$lcm","$/","$frexp","$to_i","$ldexp","$rationalize","$*","$<<","$to_r","$-@","$size","$<=","$>=","$<=>","$compare","$empty?"]),l.$require("corelib/numeric"),function(l,$super,c){function h(){}var p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B,D,L,U,G,H,X,Y,K,V,J,Z,W,Q,ee,te,re,ne,ie,ae,$e,oe,se,le,ce,ue,_e,fe,de,ge,he,pe,ve,ye,me,be,we,Oe,Me,Ee,Ae,xe,Te=h=_(l,$super,"Number",h),ke=(Te.$$proto,[Te].concat(c));e.const_get_relative(ke,"Opal").$bridge(Te,Number),Number.prototype.$$is_number=!0,Te.$$is_number_class=!0,function(t,r){t.$$proto;var n,i=[t].concat(r);e.defn(t,"$allocate",n=function(){var t=this;return t.$raise(e.const_get_relative(i,"TypeError"),"allocator undefined for "+t.$name())},n.$$arity=0),e.udef(t,"$new")}(e.get_singleton_class(Te),ke),e.defn(Te,"$coerce",p=function(t){var r=this;if(t===u)r.$raise(e.const_get_relative(ke,"TypeError"),"can't convert "+t.$class()+" into Float");else{if(t.$$is_string)return[r.$Float(t),r];if(t["$respond_to?"]("to_f"))return[e.const_get_relative(ke,"Opal")["$coerce_to!"](t,e.const_get_relative(ke,"Float"),"to_f"),r];if(t.$$is_number)return[t,r];r.$raise(e.const_get_relative(ke,"TypeError"),"can't convert "+t.$class()+" into Float")}},p.$$arity=1),e.defn(Te,"$__id__",v=function(){return 2*this+1},v.$$arity=0),e.alias(Te,"object_id","__id__"),e.defn(Te,"$+",y=function(e){var t=this;return e.$$is_number?t+e:t.$__coerced__("+",e)},y.$$arity=1),e.defn(Te,"$-",m=function(e){var t=this;return e.$$is_number?t-e:t.$__coerced__("-",e)},m.$$arity=1),e.defn(Te,"$*",b=function(e){var t=this;return e.$$is_number?t*e:t.$__coerced__("*",e)},b.$$arity=1),e.defn(Te,"$/",w=function(e){var t=this;return e.$$is_number?t/e:t.$__coerced__("/",e)},w.$$arity=1),e.alias(Te,"fdiv","/"),e.defn(Te,"$%",O=function(t){var r=this;return t.$$is_number?t==-Infinity?t:0!=t?t<0||r<0?(r%t+t)%t:r%t:void r.$raise(e.const_get_relative(ke,"ZeroDivisionError"),"divided by 0"):r.$__coerced__("%",t)},O.$$arity=1),e.defn(Te,"$&",M=function(e){var t=this;return e.$$is_number?t&e:t.$__coerced__("&",e)},M.$$arity=1),e.defn(Te,"$|",E=function(e){var t=this;return e.$$is_number?t|e:t.$__coerced__("|",e)},E.$$arity=1),e.defn(Te,"$^",A=function(e){var t=this;return e.$$is_number?t^e:t.$__coerced__("^",e)},A.$$arity=1),e.defn(Te,"$<",x=function(e){var t=this;return e.$$is_number?t",k=function(e){var t=this;return e.$$is_number?t>e:t.$__coerced__(">",e)},k.$$arity=1),e.defn(Te,"$>=",I=function(e){var t=this;return e.$$is_number?t>=e:t.$__coerced__(">=",e)},I.$$arity=1);var Ie=function(e,t){return t.$$is_number?isNaN(e)||isNaN(t)?u:e>t?1:e",t)};e.defn(Te,"$<=>",P=function(t){var r=this;try{return Ie(r,t)}catch(n){if(!e.rescue(n,[e.const_get_relative(ke,"ArgumentError")]))throw n;try{return u}finally{e.pop_exception()}}},P.$$arity=1),e.defn(Te,"$<<",z=function(t){var r=this;return(t=e.const_get_relative(ke,"Opal")["$coerce_to!"](t,e.const_get_relative(ke,"Integer"),"to_int"))>0?r<>-t},z.$$arity=1),e.defn(Te,"$>>",N=function(t){var r=this;return(t=e.const_get_relative(ke,"Opal")["$coerce_to!"](t,e.const_get_relative(ke,"Integer"),"to_int"))>0?r>>t:r<<-t},N.$$arity=1),e.defn(Te,"$[]",S=function(t){var r=this;return(t=e.const_get_relative(ke,"Opal")["$coerce_to!"](t,e.const_get_relative(ke,"Integer"),"to_int"))<0?0:t>=32?r<0?1:0:r>>t&1},S.$$arity=1),e.defn(Te,"$+@",q=function(){return+this},q.$$arity=0),e.defn(Te,"$-@",R=function(){return-this},R.$$arity=0),e.defn(Te,"$~",j=function(){return~this},j.$$arity=0),e.defn(Te,"$**",C=function(n){var i,a,$=this;return f(e.const_get_relative(ke,"Integer")["$==="](n))?f(f(i=e.const_get_relative(ke,"Integer")["$==="]($)["$!"]())?i:t(n,0))?Math.pow($,n):e.const_get_relative(ke,"Rational").$new($,1)["$**"](n):f((i=r($,0))?f(a=e.const_get_relative(ke,"Float")["$==="](n))?a:e.const_get_relative(ke,"Rational")["$==="](n):r($,0))?e.const_get_relative(ke,"Complex").$new($,0)["$**"](n.$to_f()):f(null!=n.$$is_number)?Math.pow($,n):$.$__coerced__("**",n)},C.$$arity=1),e.defn(Te,"$===",F=function(e){var t=this;return e.$$is_number?t.valueOf()===e.valueOf():!!e["$respond_to?"]("==")&&e["$=="](t)},F.$$arity=1),e.defn(Te,"$==",B=function(e){var t=this;return e.$$is_number?t.valueOf()===e.valueOf():!!e["$respond_to?"]("==")&&e["$=="](t)},B.$$arity=1),e.defn(Te,"$abs",D=function(){var e=this;return Math.abs(e)},D.$$arity=0),e.defn(Te,"$abs2",L=function(){var e=this;return Math.abs(e*e)},L.$$arity=0),e.defn(Te,"$angle",U=function(){var e=this;return f(e["$nan?"]())?e:0==e?1/e>0?0:Math.PI:e<0?Math.PI:0},U.$$arity=0),e.alias(Te,"arg","angle"),e.alias(Te,"phase","angle"),e.defn(Te,"$bit_length",G=function(){var t=this;if(f(e.const_get_relative(ke,"Integer")["$==="](t))||t.$raise(e.const_get_relative(ke,"NoMethodError").$new("undefined method `bit_length` for "+t+":Float","bit_length")),0===t||-1===t)return 0;for(var r=0,n=t<0?~t:t;0!=n;)r+=1,n>>>=1;return r},G.$$arity=0),e.defn(Te,"$ceil",H=function(){var e=this;return Math.ceil(e)},H.$$arity=0),e.defn(Te,"$chr",X=function(){var e=this;return String.fromCharCode(e)},X.$$arity=-1),e.defn(Te,"$denominator",Y=function(){var t,r=this,n=Y.$$p,i=u,a=u,$=u;for(n&&(Y.$$p=null),a=0,$=arguments.length,i=new Array($);a<$;a++)i[a]=arguments[a];return f(f(t=r["$nan?"]())?t:r["$infinite?"]())?1:d(r,e.find_super_dispatcher(r,"denominator",Y,!1),i,n)},Y.$$arity=0),e.defn(Te,"$downto",K=function(r){var a,$=this,o=K.$$p,s=o||u;if(o&&(K.$$p=null),s===u)return d($,"enum_for",["downto",r],((a=function(){var $=a.$$s||this;return f(e.const_get_relative(ke,"Numeric")["$==="](r))||$.$raise(e.const_get_relative(ke,"ArgumentError"),"comparison of "+$.$class()+" with "+r.$class()+" failed"),f(t(r,$))?0:n(i($,r),1)}).$$s=$,a.$$arity=0,a));r.$$is_number||$.$raise(e.const_get_relative(ke,"ArgumentError"),"comparison of "+$.$class()+" with "+r.$class()+" failed");for(var l=$;l>=r;l--)s(l);return $},K.$$arity=1),e.alias(Te,"eql?","=="),e.defn(Te,"$equal?",V=function(e){var t,r=this;return f(t=r["$=="](e))?t:isNaN(r)&&isNaN(e)},V.$$arity=1),e.defn(Te,"$even?",J=function(){return this%2==0},J.$$arity=0),e.defn(Te,"$floor",Z=function(){var e=this;return Math.floor(e)},Z.$$arity=0),e.defn(Te,"$gcd",W=function(t){var r=this;f(e.const_get_relative(ke,"Integer")["$==="](t))||r.$raise(e.const_get_relative(ke,"TypeError"),"not an integer");for(var n=Math.abs(r),i=Math.abs(t);n>0;){var a=n;n=i%n,i=a}return i},W.$$arity=1),e.defn(Te,"$gcdlcm",Q=function(){var e=this;return[e.$gcd(),e.$lcm()]},Q.$$arity=1),e.defn(Te,"$integer?",ee=function(){return this%1==0},ee.$$arity=0),e.defn(Te,"$is_a?",te=function(t){var r=this,n=te.$$p,i=u,a=u,$=u;for(n&&(te.$$p=null),a=0,$=arguments.length,i=new Array($);a<$;a++)i[a]=arguments[a];return!!f(t["$=="](e.const_get_relative(ke,"Fixnum"))?e.const_get_relative(ke,"Integer")["$==="](r):t["$=="](e.const_get_relative(ke,"Fixnum")))||(!!f(t["$=="](e.const_get_relative(ke,"Integer"))?e.const_get_relative(ke,"Integer")["$==="](r):t["$=="](e.const_get_relative(ke,"Integer")))||(!!f(t["$=="](e.const_get_relative(ke,"Float"))?e.const_get_relative(ke,"Float")["$==="](r):t["$=="](e.const_get_relative(ke,"Float")))||d(r,e.find_super_dispatcher(r,"is_a?",te,!1),i,n)))},te.$$arity=1),e.alias(Te,"kind_of?","is_a?"),e.defn(Te,"$instance_of?",re=function(t){var r=this,n=re.$$p,i=u,a=u,$=u;for(n&&(re.$$p=null),a=0,$=arguments.length,i=new Array($);a<$;a++)i[a]=arguments[a];return!!f(t["$=="](e.const_get_relative(ke,"Fixnum"))?e.const_get_relative(ke,"Integer")["$==="](r):t["$=="](e.const_get_relative(ke,"Fixnum")))||(!!f(t["$=="](e.const_get_relative(ke,"Integer"))?e.const_get_relative(ke,"Integer")["$==="](r):t["$=="](e.const_get_relative(ke,"Integer")))||(!!f(t["$=="](e.const_get_relative(ke,"Float"))?e.const_get_relative(ke,"Float")["$==="](r):t["$=="](e.const_get_relative(ke,"Float")))||d(r,e.find_super_dispatcher(r,"instance_of?",re,!1),i,n)))},re.$$arity=1),e.defn(Te,"$lcm",ne=function(t){var r=this;return f(e.const_get_relative(ke,"Integer")["$==="](t))||r.$raise(e.const_get_relative(ke,"TypeError"),"not an integer"),0==r||0==t?0:Math.abs(r*t/r.$gcd(t))},ne.$$arity=1),e.alias(Te,"magnitude","abs"),e.alias(Te,"modulo","%"),e.defn(Te,"$next",ie=function(){return this+1},ie.$$arity=0),e.defn(Te,"$nonzero?",ae=function(){var e=this;return 0==e?u:e},ae.$$arity=0),e.defn(Te,"$numerator",$e=function(){var t,r=this,n=$e.$$p,i=u,a=u,$=u;for(n&&($e.$$p=null),a=0,$=arguments.length,i=new Array($);a<$;a++)i[a]=arguments[a];return f(f(t=r["$nan?"]())?t:r["$infinite?"]())?r:d(r,e.find_super_dispatcher(r,"numerator",$e,!1),i,n)},$e.$$arity=0),e.defn(Te,"$odd?",oe=function(){return this%2!=0},oe.$$arity=0),e.defn(Te,"$ord",se=function(){return this},se.$$arity=0),e.defn(Te,"$pred",le=function(){return this-1},le.$$arity=0),e.defn(Te,"$quo",ce=function(t){var r=this,n=ce.$$p,i=u,$=u,o=u;for(n&&(ce.$$p=null),$=0,o=arguments.length,i=new Array(o);$1&&a.$raise(e.const_get_relative(ke,"ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),f(e.const_get_relative(ke,"Integer")["$==="](a))?e.const_get_relative(ke,"Rational").$new(a,1):f(a["$infinite?"]())?a.$raise(e.const_get_relative(ke,"FloatDomainError"),"Infinity"):f(a["$nan?"]())?a.$raise(e.const_get_relative(ke,"FloatDomainError"),"NaN"):f(null==t)?(n=e.const_get_relative(ke,"Math").$frexp(a),o=null==(r=e.to_ary(n))[0]?u:r[0],s=null==r[1]?u:r[1],o=e.const_get_relative(ke,"Math").$ldexp(o,e.const_get_qualified(e.const_get_relative(ke,"Float"),"MANT_DIG")).$to_i(),s=i(s,e.const_get_qualified(e.const_get_relative(ke,"Float"),"MANT_DIG")),e.const_get_relative(ke,"Rational").$new($(2,o),1["$<<"](i(1,s))).$rationalize(e.const_get_relative(ke,"Rational").$new(1,1["$<<"](i(1,s))))):a.$to_r().$rationalize(t)},ue.$$arity=-1),e.defn(Te,"$round",_e=function($){var l,c,_=this,d=u;if(f(e.const_get_relative(ke,"Integer")["$==="](_))){if(f(null==$))return _;if(f(f(l=e.const_get_relative(ke,"Float")["$==="]($))?$["$infinite?"]():l)&&_.$raise(e.const_get_relative(ke,"RangeError"),"Infinity"),$=e.const_get_relative(ke,"Opal")["$coerce_to!"]($,e.const_get_relative(ke,"Integer"),"to_int"),f(r($,e.const_get_qualified(e.const_get_relative(ke,"Integer"),"MIN")))&&_.$raise(e.const_get_relative(ke,"RangeError"),"out of bounds"),f($>=0))return _;if(.415241*($=$["$-@"]())-.125>_.$size())return 0;var g=Math.pow(10,$),h=Math.floor((Math.abs(h)+g/2)/g)*g;return _<0?-h:h}if(f(f(l=_["$nan?"]())?null==$:l)&&_.$raise(e.const_get_relative(ke,"FloatDomainError"),"NaN"),$=e.const_get_relative(ke,"Opal")["$coerce_to!"]($||0,e.const_get_relative(ke,"Integer"),"to_int"),f(o($,0)))f(_["$nan?"]())?_.$raise(e.const_get_relative(ke,"RangeError"),"NaN"):f(_["$infinite?"]())&&_.$raise(e.const_get_relative(ke,"FloatDomainError"),"Infinity");else{if($["$=="](0))return Math.round(_);if(f(f(l=_["$nan?"]())?l:_["$infinite?"]()))return _}return c=e.const_get_relative(ke,"Math").$frexp(_),null==(l=e.to_ary(c))[0]?u:l[0],d=null==l[1]?u:l[1],f(s($,i(n(e.const_get_qualified(e.const_get_relative(ke,"Float"),"DIG"),2),f(t(d,0))?a(d,4):i(a(d,3),1))))?_:f(r($,(f(t(d,0))?n(a(d,3),1):a(d,4))["$-@"]()))?0:Math.round(_*Math.pow(10,$))/Math.pow(10,$)},_e.$$arity=-1),e.defn(Te,"$step",fe=function(t,r,n){function i(){l!==undefined&&(_=l),_===undefined&&(_=u),f===u&&h.$raise(e.const_get_relative(ke,"TypeError"),"step must be numeric"),0===f&&h.$raise(e.const_get_relative(ke,"ArgumentError"),"step can't be 0"),c!==undefined&&(f=c),f!==u&&null!=f||(f=1);var t=f["$<=>"](0);t===u&&h.$raise(e.const_get_relative(ke,"TypeError"),"0 can't be coerced into "+f.$class()),_!==u&&null!=_||(_=t>0?e.const_get_qualified(e.const_get_relative(ke,"Float"),"INFINITY"):e.const_get_qualified(e.const_get_relative(ke,"Float"),"INFINITY")["$-@"]()),e.const_get_relative(ke,"Opal").$compare(h,_)}function a(){if(f>0&&h>_||f<0&&h<_)return 0;if(f===Infinity||f===-Infinity)return 1;var t=Math.abs,r=Math.floor,n=(t(h)+t(_)+t(_-h))/t(f)*e.const_get_qualified(e.const_get_relative(ke,"Float"),"EPSILON");return n===Infinity||n===-Infinity?0:(n>.5&&(n=.5),r((_-h)/f+n)+1)}function $(){if(i(),0===f)return Infinity;if(f%1!=0)return a();if(f>0&&h>_||f<0&&h<_)return 0;var e=Math.ceil,t=Math.abs;return e((t(h-_)+1)/t(f))}var o,s,l,c,_,f,h=this,p=fe.$$p,v=p||u,y=u,m=u;if(s=e.slice.call(arguments,0,arguments.length),null==(n=e.extract_kwargs(s))||!n.$$is_hash){if(null!=n)throw e.ArgumentError.$new("expected kwargs");n=g([],{})}if(l=n.$$smap.to,c=n.$$smap.by,00)if(f===Infinity||f===-Infinity)v(h);else{var w,O=0;if(f>0)for(;O(w=O*f+h)&&(w=_),v(w),O+=1}}else{var M=h;if(f>0)for(;M<=_;)v(M),M+=f;else for(;M>=_;)v(M),M+=f}return h},fe.$$arity=-1),e.alias(Te,"succ","next"),e.defn(Te,"$times",de=function(){var e,t=this,r=de.$$p,n=r||u;if(r&&(de.$$p=null),!f(n))return d(t,"enum_for",["times"],((e=function(){return e.$$s||this}).$$s=t,e.$$arity=0,e));for(var i=0;i0)},Ae.$$arity=0),e.defn(Te,"$negative?",xe=function(){var e=this;return e==-Infinity||1/e<0},xe.$$arity=0)}(c[0],e.const_get_relative(c,"Numeric"),c),e.const_set(c[0],"Fixnum",e.const_get_relative(c,"Number")),function(t,$super,r){function n(){}var i=n=_(t,$super,"Integer",n),a=(i.$$proto,[i].concat(r));i.$$is_number_class=!0,function(t,r){t.$$proto;var n,i,a=[t].concat(r);e.defn(t,"$allocate",n=function(){var t=this;return t.$raise(e.const_get_relative(a,"TypeError"),"allocator undefined for "+t.$name())},n.$$arity=0),e.udef(t,"$new"),e.defn(t,"$===",i=function(e){return!!e.$$is_number&&e%1==0},i.$$arity=1)}(e.get_singleton_class(i),a),e.const_set(a[0],"MAX",Math.pow(2,30)-1),e.const_set(a[0],"MIN",-Math.pow(2,30))}(c[0],e.const_get_relative(c,"Numeric"),c),function(t,$super,r){function n(){}var i=n=_(t,$super,"Float",n),a=(i.$$proto,[i].concat(r));return i.$$is_number_class=!0,function(t,r){t.$$proto;var n,i,a=[t].concat(r);e.defn(t,"$allocate",n=function(){var t=this;return t.$raise(e.const_get_relative(a,"TypeError"),"allocator undefined for "+t.$name())},n.$$arity=0),e.udef(t,"$new"),e.defn(t,"$===",i=function(e){return!!e.$$is_number},i.$$arity=1)}(e.get_singleton_class(i),a),e.const_set(a[0],"INFINITY",Infinity),e.const_set(a[0],"MAX",Number.MAX_VALUE),e.const_set(a[0],"MIN",Number.MIN_VALUE),e.const_set(a[0],"NAN",NaN),e.const_set(a[0],"DIG",15),e.const_set(a[0],"MANT_DIG",53),e.const_set(a[0],"RADIX",2),e.const_set(a[0],"EPSILON",Number.EPSILON||2.220446049250313e-16)}(c[0],e.const_get_relative(c,"Numeric"),c)},Opal.modules["corelib/range"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e/t:e["$/"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function o(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function s(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}var l=e.top,c=[],u=e.nil,_=(e.breaker,e.slice,e.klass),f=e.truthy,d=e.send;return e.add_stubs(["$require","$include","$attr_reader","$raise","$<=>","$include?","$<=","$<","$enum_for","$upto","$to_proc","$respond_to?","$class","$succ","$!","$==","$===","$exclude_end?","$eql?","$begin","$end","$last","$to_a","$>","$-","$abs","$to_i","$coerce_to!","$ceil","$/","$size","$loop","$+","$*","$>=","$each_with_index","$%","$bsearch","$inspect","$[]","$hash"]),l.$require("corelib/enumerable"),function(l,$super,c){function g(){}var h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S=g=_(l,null,"Range",g),q=S.$$proto,R=[S].concat(c);return q.begin=q.end=q.excl=u,S.$include(e.const_get_relative(R,"Enumerable")),q.$$is_range=!0,S.$attr_reader("begin","end"),e.defn(S,"$initialize",h=function(t,r,n){var i=this;return null==n&&(n=!1),f(i.begin)&&i.$raise(e.const_get_relative(R,"NameError"),"'initialize' called twice"),f(t["$<=>"](r))||i.$raise(e.const_get_relative(R,"ArgumentError"),"bad value for range"),i.begin=t,i.end=r,i.excl=n},h.$$arity=-3),e.defn(S,"$==",p=function(e){var t=this;return!!e.$$is_range&&(t.excl===e.excl&&t.begin==e.begin&&t.end==e.end)},p.$$arity=1),e.defn(S,"$===",v=function(e){return this["$include?"](e)},v.$$arity=1),e.defn(S,"$cover?",y=function(e){var n,i=this,a=u,$=u;return a=i.begin["$<=>"](e),!!f(f(n=a)?t(a,0):n)&&($=e["$<=>"](i.end),f(i.excl)?f(n=$)?r($,0):n:f(n=$)?t($,0):n)},y.$$arity=1),e.defn(S,"$each",m=function(){var t,n,i,a=this,$=m.$$p,o=$||u,s=u,l=u;if($&&(m.$$p=null),o===u)return a.$enum_for("each");if(a.begin.$$is_number&&a.end.$$is_number){for(a.begin%1==0&&a.end%1==0||a.$raise(e.const_get_relative(R,"TypeError"),"can't iterate from Float"),n=a.begin,i=a.end+(f(a.excl)?0:1);n"](l),0));)e.yield1(o,s),s=s.$succ();return f(f(t=a.excl["$!"]())?s["$=="](l):t)&&e.yield1(o,s),a},m.$$arity=0),e.defn(S,"$eql?",b=function(t){var r,n,i=this;return!!f(e.const_get_relative(R,"Range")["$==="](t))&&(f(r=f(n=i.excl["$==="](t["$exclude_end?"]()))?i.begin["$eql?"](t.$begin()):n)?i.end["$eql?"](t.$end()):r)},b.$$arity=1),e.defn(S,"$exclude_end?",w=function(){return this.excl},w.$$arity=0),e.defn(S,"$first",O=function(t){var r=this,n=O.$$p,i=u,a=u,$=u;for(n&&(O.$$p=null),a=0,$=arguments.length,i=new Array($);a<$;a++)i[a]=arguments[a];return f(null==t)?r.begin:d(r,e.find_super_dispatcher(r,"first",O,!1),i,n)},O.$$arity=-1),e.alias(S,"include?","cover?"),e.defn(S,"$last",M=function(e){var t=this;return f(null==e)?t.end:t.$to_a().$last(e)},M.$$arity=-1),e.defn(S,"$max",E=function(){var t,r=this,i=E.$$p,a=i||u,$=u,o=u,s=u;for(i&&(E.$$p=null),o=0,s=arguments.length,$=new Array(s);o.5&&(s=.5),g.excl?(r=o((i-n)/t-s))*t+nt&&i.$$is_lambda&&!i.$$is_curried&&i.$raise(e.const_get_relative(m,"ArgumentError"),"wrong number of arguments ("+o+" for "+t+")"),o>=t?i.$call.apply(i,$):((a=function(){return r.apply(null,$.concat(n.call(arguments)))}).$$is_lambda=i.$$is_lambda,a.$$is_curried=!0,a)}var i=this;return t===undefined?t=i.length:(t=e.const_get_relative(m,"Opal")["$coerce_to!"](t,e.const_get_relative(m,"Integer"),"to_int"),i.$$is_lambda&&t!==i.length&&i.$raise(e.const_get_relative(m,"ArgumentError"),"wrong number of arguments ("+t+" for "+i.length+")")),r.$$is_lambda=i.$$is_lambda,r.$$is_curried=!0,r},h.$$arity=-1),e.defn(v,"$dup",p=function(){var e=this,t=e.$$original_proc||e,r=function(){return t.apply(this,arguments)};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return r},p.$$arity=0),e.alias(v,"clone","dup")}(t[0],Function,t)},Opal.modules["corelib/method"]=function(e){e.top;var t=[],r=e.nil,n=(e.breaker,e.slice,e.klass),i=e.truthy;return e.add_stubs(["$attr_reader","$arity","$new","$class","$join","$source_location","$raise"]),function(t,$super,a){function $(){}var o,s,l,c,u,_,f,d,g,h=$=n(t,null,"Method",$),p=h.$$proto,v=[h].concat(a);p.method=p.receiver=p.owner=p.name=r,h.$attr_reader("owner","receiver","name"),e.defn(h,"$initialize",o=function(e,t,r,n){var i=this;return i.receiver=e,i.owner=t,i.name=n,i.method=r},o.$$arity=4),e.defn(h,"$arity",s=function(){return this.method.$arity()},s.$$arity=0),e.defn(h,"$parameters",l=function(){return this.method.$$parameters},l.$$arity=0),e.defn(h,"$source_location",c=function(){var e;return i(e=this.method.$$source_location)?e:["(eval)",0]},c.$$arity=0),e.defn(h,"$comments",u=function(){var e;return i(e=this.method.$$comments)?e:[]},u.$$arity=0),e.defn(h,"$call",_=function(){var e,t=this,n=_.$$p,i=n||r,a=arguments.length,$=a-0;$<0&&($=0),e=new Array($);for(var o=0;o"},g.$$arity=0)}(t[0],0,t),function(t,$super,a){function $(){}var o,s,l,c,u,_,f,d=$=n(t,null,"UnboundMethod",$),g=d.$$proto,h=[d].concat(a);return g.method=g.owner=g.name=g.source=r,d.$attr_reader("source","owner","name"),e.defn(d,"$initialize",o=function(e,t,r,n){var i=this;return i.source=e,i.owner=t,i.method=r,i.name=n},o.$$arity=4),e.defn(d,"$arity",s=function(){return this.method.$arity()},s.$$arity=0),e.defn(d,"$parameters",l=function(){return this.method.$$parameters},l.$$arity=0),e.defn(d,"$source_location",c=function(){var e;return i(e=this.method.$$source_location)?e:["(eval)",0]},c.$$arity=0),e.defn(d,"$comments",u=function(){var e;return i(e=this.method.$$comments)?e:[]},u.$$arity=0),e.defn(d,"$bind",_=function(t){var r=this;if(r.owner.$$is_module||e.is_a(t,r.owner))return e.const_get_relative(h,"Method").$new(t,r.owner,r.method,r.name);r.$raise(e.const_get_relative(h,"TypeError"),"can't bind singleton method to a different class (expected "+t+".kind_of?("+r.owner+" to be true)")},_.$$arity=1),e.defn(d,"$inspect",f=function(){var e=this;return"#<"+e.$class()+": "+e.source+"#"+e.name+" (defined in "+e.owner+" in "+e.$source_location().$join(":")+")>"},f.$$arity=0),r&&"inspect"}(t[0],0,t)},Opal.modules["corelib/variables"]=function(e){e.top;var t=[],r=e.nil,n=(e.breaker,e.slice,e.gvars),i=e.hash2;return e.add_stubs(["$new"]),n["&"]=n["~"]=n["`"]=n["'"]=r,n.LOADED_FEATURES=n['"']=e.loaded_features,n.LOAD_PATH=n[":"]=[],n["/"]="\n",n[","]=r,e.const_set(t[0],"ARGV",[]),e.const_set(t[0],"ARGF",e.const_get_relative(t,"Object").$new()),e.const_set(t[0],"ENV",i([],{})),n.VERBOSE=!1,n.DEBUG=!1,n.SAFE=0},Opal.modules["opal/regexp_anchors"]=function(e){e.top;var t=[],r=e.nil,n=(e.breaker,e.slice,e.module);return e.add_stubs(["$==","$new"]),function(t,i){var a=n(t,"Opal"),$=(a.$$proto,[a].concat(i));e.const_set($[0],"REGEXP_START",e.const_get_relative($,"RUBY_ENGINE")["$=="]("opal")?"^":r),e.const_set($[0],"REGEXP_END",e.const_get_relative($,"RUBY_ENGINE")["$=="]("opal")?"$":r),e.const_set($[0],"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),e.const_set($[0],"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),e.const_set($[0],"INLINE_IDENTIFIER_REGEXP",e.const_get_relative($,"Regexp").$new("[^"+e.const_get_relative($,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+e.const_get_relative($,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),e.const_set($[0],"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),e.const_set($[0],"CONST_NAME_REGEXP",e.const_get_relative($,"Regexp").$new(e.const_get_relative($,"REGEXP_START")+"(::)?[A-Z][^"+e.const_get_relative($,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+e.const_get_relative($,"REGEXP_END")))}(t[0],t)},Opal.modules["opal/mini"]=function(e){var t=e.top;e.nil,e.breaker,e.slice;return e.add_stubs(["$require"]),t.$require("opal/base"),t.$require("corelib/nil"),t.$require("corelib/boolean"),t.$require("corelib/string"),t.$require("corelib/comparable"),t.$require("corelib/enumerable"),t.$require("corelib/enumerator"),t.$require("corelib/array"),t.$require("corelib/hash"),t.$require("corelib/number"),t.$require("corelib/range"),t.$require("corelib/proc"),t.$require("corelib/method"),t.$require("corelib/regexp"),t.$require("corelib/variables"),t.$require("opal/regexp_anchors")},Opal.modules["corelib/string/inheritance"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var i=e.top,a=[],$=e.nil,o=(e.breaker,e.slice,e.klass),s=e.send,l=e.truthy,c=e.gvars;return e.add_stubs(["$require","$new","$allocate","$initialize","$to_proc","$__send__","$class","$clone","$respond_to?","$==","$to_s","$inspect","$+","$*","$map","$split","$enum_for","$each_line","$to_a","$%","$-"]),i.$require("corelib/string"),function(t,$super,r){function n(){}var i,a=n=o(t,null,"String",n),s=(a.$$proto,[a].concat(r));e.defs(a,"$inherited",i=function(t){var r=$;r=e.const_get_relative(s,"Class").$new(e.const_get_qualified(e.const_get_relative(s,"String"),"Wrapper")),t.$$proto=r.$$proto,t.$$proto.$$class=t,t.$$alloc=r.$$alloc,t.$$parent=e.const_get_qualified(e.const_get_relative(s,"String"),"Wrapper"),t.$allocate=r.$allocate,t.$new=r.$new},i.$$arity=1)}(a[0],0,a),function(i,$super,a){function u(){}var _,f,d,g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I=u=o(i,null,"Wrapper",u),P=I.$$proto;[I].concat(a);return P.literal=$,P.$$is_string=!0,e.defs(I,"$allocate",_=function(t){var r=this,n=_.$$p,i=$;return null==t&&(t=""),n&&(_.$$p=null),(i=s(r,e.find_super_dispatcher(r,"allocate",_,!1,u),[],null)).literal=t,i},_.$$arity=-1),e.defs(I,"$new",f=function(){var t,r=this,n=f.$$p,i=n||$,a=$,o=arguments.length,l=o-0;l<0&&(l=0),t=new Array(l);for(var c=0;c"},h.$$arity=0),e.defn(m,"$each_byte",p=function(){return this.$raise(e.const_get_relative(w,"NotImplementedError"))},p.$$arity=-1),e.defn(m,"$getbyte",v=function(){return this.$raise(e.const_get_relative(w,"NotImplementedError"))},v.$$arity=-1),e.defn(m,"$bytesize",y=function(){return this.$raise(e.const_get_relative(w,"NotImplementedError"))},y.$$arity=-1),function(e,$super,t){function r(){}var n=r=c(e,$super,"EncodingError",r);n.$$proto,[n].concat(t)}(w[0],e.const_get_relative(w,"StandardError"),w),function(e,$super,t){function r(){}var n=r=c(e,$super,"CompatibilityError",r);n.$$proto,[n].concat(t)}(w[0],e.const_get_relative(w,"EncodingError"),w)}(s[0],0,s),_(e.const_get_relative(s,"Encoding"),"register",["UTF-8",f(["aliases","ascii"],{aliases:["CP65001"],ascii:!0})],((r=function(){var t,n,i=r.$$s||this;return e.def(i,"$each_byte",t=function(r){var n=t.$$p,i=n||l;n&&(t.$$p=null);for(var a=0,$=r.length;a<$;a++){var o=r.charCodeAt(a);if(o<=127)e.yield1(i,o);else for(var s=encodeURIComponent(r.charAt(a)).substr(1).split("%"),c=0,u=s.length;c>8)}},t.$$arity=1),e.def(i,"$bytesize",r=function(e){return e.$bytes().$length()},r.$$arity=1),l&&"bytesize"}).$$s=o,n.$$arity=0,n)),_(e.const_get_relative(s,"Encoding"),"register",["UTF-16BE"],((i=function(){var t,r,n=i.$$s||this;return e.def(n,"$each_byte",t=function(r){var n=t.$$p,i=n||l;n&&(t.$$p=null);for(var a=0,$=r.length;a<$;a++){var o=r.charCodeAt(a);e.yield1(i,o>>8),e.yield1(i,255&o)}},t.$$arity=1),e.def(n,"$bytesize",r=function(e){return e.$bytes().$length()},r.$$arity=1),l&&"bytesize"}).$$s=o,i.$$arity=0,i)),_(e.const_get_relative(s,"Encoding"),"register",["UTF-32LE"],((a=function(){var t,r,n=a.$$s||this;return e.def(n,"$each_byte",t=function(r){var n=t.$$p,i=n||l;n&&(t.$$p=null);for(var a=0,$=r.length;a<$;a++){var o=r.charCodeAt(a);e.yield1(i,255&o),e.yield1(i,o>>8)}},t.$$arity=1),e.def(n,"$bytesize",r=function(e){return e.$bytes().$length()},r.$$arity=1),l&&"bytesize"}).$$s=o,a.$$arity=0,a)),_(e.const_get_relative(s,"Encoding"),"register",["ASCII-8BIT",f(["aliases","ascii","dummy"],{aliases:["BINARY","US-ASCII","ASCII"],ascii:!0,dummy:!0})],(($=function(){var t,r,n=$.$$s||this;return e.def(n,"$each_byte",t=function(r){var n=t.$$p,i=n||l;n&&(t.$$p=null);for(var a=0,$=r.length;a<$;a++){var o=r.charCodeAt(a);e.yield1(i,255&o),e.yield1(i,o>>8)}},t.$$arity=1),e.def(n,"$bytesize",r=function(e){return e.$bytes().$length()},r.$$arity=1),l&&"bytesize"}).$$s=o,$.$$arity=0,$)),function(t,$super,r){function n(){}var i,a,$,o,s,u,f,d,g=n=c(t,null,"String",n),h=g.$$proto,p=[g].concat(r);return h.encoding=l,String.prototype.encoding=e.const_get_qualified(e.const_get_relative(p,"Encoding"),"UTF_16LE"),e.defn(g,"$bytes",i=function(){return this.$each_byte().$to_a()},i.$$arity=0),e.defn(g,"$bytesize",a=function(){var e=this;return e.encoding.$bytesize(e)},a.$$arity=0),e.defn(g,"$each_byte",$=function(){var e=this,t=$.$$p,r=t||l;return t&&($.$$p=null),r===l?e.$enum_for("each_byte"):(_(e.encoding,"each_byte",[e],r.$to_proc()),e)},$.$$arity=0),e.defn(g,"$encode",o=function(e){return this.$dup().$force_encoding(e)},o.$$arity=1),e.defn(g,"$encoding",s=function(){return this.encoding},s.$$arity=0),e.defn(g,"$force_encoding",u=function(t){var r=this;return t===r.encoding?r:(t=e.const_get_relative(p,"Opal")["$coerce_to!"](t,e.const_get_relative(p,"String"),"to_s"),(t=e.const_get_relative(p,"Encoding").$find(t))===r.encoding?r:(r.encoding=t,r))},u.$$arity=1),e.defn(g,"$getbyte",f=function(e){var t=this;return t.encoding.$getbyte(t,e)},f.$$arity=1),e.defn(g,"$valid_encoding?",d=function(){return!0},d.$$arity=0),l&&"valid_encoding?"}(s[0],0,s)},Opal.modules["corelib/math"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e/t:e["$/"](t)}e.top;var n=[],i=(e.nil,e.breaker,e.slice,e.module),a=e.truthy;return e.add_stubs(["$new","$raise","$Float","$type_error","$Integer","$module_function","$checked","$float!","$===","$gamma","$-","$integer!","$/","$infinite?"]),function(n,$){var o,s,l,c,u,_,f,d,g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R=i(n,"Math"),j=(R.$$proto,[R].concat($));e.const_set(j[0],"E",Math.E),e.const_set(j[0],"PI",Math.PI),e.const_set(j[0],"DomainError",e.const_get_relative(j,"Class").$new(e.const_get_relative(j,"StandardError"))),e.defs(R,"$checked",o=function(t){var r,n=this,i=arguments.length,a=i-1;a<0&&(a=0),r=new Array(a);for(var $=1;$1;)t*=.125,r++;for(t=(-.46946116*t+1.072302)*t+.3812513;r<0;)t*=.5,r++;for(;r>0;)t*=2,r--;return t=2/3*(t=2/3*(t=2/3*(t=2/3*t+1/3*e/(t*t))+1/3*e/(t*t))+1/3*e/(t*t))+1/3*e/(t*t)}),e.defn(R,"$cbrt",p=function(t){return e.const_get_relative(j,"Math").$checked("cbrt",e.const_get_relative(j,"Math")["$float!"](t))},p.$$arity=1),e.defn(R,"$cos",v=function(t){return e.const_get_relative(j,"Math").$checked("cos",e.const_get_relative(j,"Math")["$float!"](t))},v.$$arity=1),a("undefined"!=typeof Math.cosh)||(Math.cosh=function(e){return(Math.exp(e)+Math.exp(-e))/2}),e.defn(R,"$cosh",y=function(t){return e.const_get_relative(j,"Math").$checked("cosh",e.const_get_relative(j,"Math")["$float!"](t))},y.$$arity=1),a("undefined"!=typeof Math.erf)||(Math.erf=function(e){var t=.254829592,r=-.284496736,n=1.421413741,i=-1.453152027,a=1.061405429,$=1;e<0&&($=-1);var o=1/(1+.3275911*(e=Math.abs(e)));return $*(1-((((a*o+i)*o+n)*o+r)*o+t)*o*Math.exp(-e*e))}),e.defn(R,"$erf",m=function(t){return e.const_get_relative(j,"Math").$checked("erf",e.const_get_relative(j,"Math")["$float!"](t))},m.$$arity=1),a("undefined"!=typeof Math.erfc)||(Math.erfc=function(e){var t=Math.abs(e),r=1/(.5*t+1),n=-t*t-1.26551223+r*(r*(r*(r*(r*(r*(r*(r*(.17087277*r-.82215223)+1.48851587)-1.13520398)+.27886807)-.18628806)+.09678418)+.37409196)+1.00002368),i=r*Math.exp(n);return e<0?2-i:i}),e.defn(R,"$erfc",b=function(t){ -return e.const_get_relative(j,"Math").$checked("erfc",e.const_get_relative(j,"Math")["$float!"](t))},b.$$arity=1),e.defn(R,"$exp",w=function(t){return e.const_get_relative(j,"Math").$checked("exp",e.const_get_relative(j,"Math")["$float!"](t))},w.$$arity=1),e.defn(R,"$frexp",O=function(t){if(t=e.const_get_relative(j,"Math")["$float!"](t),isNaN(t))return[NaN,0];var r=Math.floor(Math.log(Math.abs(t))/Math.log(2))+1;return[t/Math.pow(2,r),r]},O.$$arity=1),e.defn(R,"$gamma",M=function(r){var n,i,a,$,o,s,l,c,u,_=this;r=e.const_get_relative(j,"Math")["$float!"](r);var f=4.7421875,d=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];if(isNaN(r))return NaN;if(0===r&&1/r<0)return-Infinity;if(-1!==r&&r!==-Infinity||_.$raise(e.const_get_relative(j,"DomainError"),'Numerical argument is out of domain - "gamma"'),e.const_get_relative(j,"Integer")["$==="](r)){if(r<=0)return isFinite(r)?Infinity:NaN;if(r>171)return Infinity;for($=r-2,o=r-1;$>1;)o*=$,$--;return 0==o&&(o=1),o}if(r<.5)return Math.PI/(Math.sin(Math.PI*r)*e.const_get_relative(j,"Math").$gamma(t(1,r)));if(r>=171.35)return Infinity;if(r>85)return u=(c=(l=(s=r*r)*r)*r)*r,Math.sqrt(2*Math.PI/r)*Math.pow(r/Math.E,r)*(1+1/(12*r)+1/(288*s)-139/(51840*l)-571/(2488320*c)+163879/(209018880*u)+5246819/(75246796800*u*r));for(r-=1,a=d[0],n=1;nt:e["$>"](t)}var $=e.top,o=[],s=e.nil,l=(e.breaker,e.slice,e.klass),c=e.truthy,u=e.module;return e.add_stubs(["$require","$===","$real?","$raise","$new","$*","$cos","$sin","$attr_reader","$class","$==","$real","$imag","$Complex","$-@","$+","$__coerced__","$-","$nan?","$/","$conj","$abs2","$quo","$polar","$exp","$log","$>","$!=","$divmod","$**","$hypot","$atan2","$lcm","$denominator","$to_s","$numerator","$abs","$arg","$rationalize","$to_f","$to_i","$to_r","$inspect","$positive?","$zero?","$infinite?"]),$.$require("corelib/numeric"),function($,$super,o){function u(){}var _,f,d,g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B,D=u=l($,$super,"Complex",u),L=D.$$proto,U=[D].concat(o);L.real=L.imag=s,e.defs(D,"$rect",_=function(t,r){var n,i,a,$=this;return null==r&&(r=0),c(c(n=c(i=c(a=e.const_get_relative(U,"Numeric")["$==="](t))?t["$real?"]():a)?e.const_get_relative(U,"Numeric")["$==="](r):i)?r["$real?"]():n)||$.$raise(e.const_get_relative(U,"TypeError"),"not a real"),$.$new(t,r)},_.$$arity=-2),function(t,r){t.$$proto,[t].concat(r);e.alias(t,"rectangular","rect")}(e.get_singleton_class(D),U),e.defs(D,"$polar",f=function(r,n){var i,a,$,o=this;return null==n&&(n=0),c(c(i=c(a=c($=e.const_get_relative(U,"Numeric")["$==="](r))?r["$real?"]():$)?e.const_get_relative(U,"Numeric")["$==="](n):a)?n["$real?"]():i)||o.$raise(e.const_get_relative(U,"TypeError"),"not a real"),o.$new(t(r,e.const_get_relative(U,"Math").$cos(n)),t(r,e.const_get_relative(U,"Math").$sin(n)))},f.$$arity=-2),D.$attr_reader("real","imag"),e.defn(D,"$initialize",d=function(e,t){var r=this;return null==t&&(t=0),r.real=e,r.imag=t},d.$$arity=-2),e.defn(D,"$coerce",g=function(t){var r,n=this;return c(e.const_get_relative(U,"Complex")["$==="](t))?[t,n]:c(c(r=e.const_get_relative(U,"Numeric")["$==="](t))?t["$real?"]():r)?[e.const_get_relative(U,"Complex").$new(t,0),n]:n.$raise(e.const_get_relative(U,"TypeError"),t.$class()+" can't be coerced into Complex")},g.$$arity=1),e.defn(D,"$==",h=function(t){var r,n=this;return c(e.const_get_relative(U,"Complex")["$==="](t))?(r=n.real["$=="](t.$real()))?n.imag["$=="](t.$imag()):n.real["$=="](t.$real()):c(c(r=e.const_get_relative(U,"Numeric")["$==="](t))?t["$real?"]():r)?(r=n.real["$=="](t))?n.imag["$=="](0):n.real["$=="](t):t["$=="](n)},h.$$arity=1),e.defn(D,"$-@",p=function(){var e=this;return e.$Complex(e.real["$-@"](),e.imag["$-@"]())},p.$$arity=0),e.defn(D,"$+",v=function(t){var n,i=this;return c(e.const_get_relative(U,"Complex")["$==="](t))?i.$Complex(r(i.real,t.$real()),r(i.imag,t.$imag())):c(c(n=e.const_get_relative(U,"Numeric")["$==="](t))?t["$real?"]():n)?i.$Complex(r(i.real,t),i.imag):i.$__coerced__("+",t)},v.$$arity=1),e.defn(D,"$-",y=function(t){var r,i=this;return c(e.const_get_relative(U,"Complex")["$==="](t))?i.$Complex(n(i.real,t.$real()),n(i.imag,t.$imag())):c(c(r=e.const_get_relative(U,"Numeric")["$==="](t))?t["$real?"]():r)?i.$Complex(n(i.real,t),i.imag):i.$__coerced__("-",t)},y.$$arity=1),e.defn(D,"$*",m=function(i){var a,$=this;return c(e.const_get_relative(U,"Complex")["$==="](i))?$.$Complex(n(t($.real,i.$real()),t($.imag,i.$imag())),r(t($.real,i.$imag()),t($.imag,i.$real()))):c(c(a=e.const_get_relative(U,"Numeric")["$==="](i))?i["$real?"]():a)?$.$Complex(t($.real,i),t($.imag,i)):$.$__coerced__("*",i)},m.$$arity=1),e.defn(D,"$/",b=function(r){var n,a,$,o,s=this;return c(e.const_get_relative(U,"Complex")["$==="](r))?c(c(n=c(a=c($=c(o=e.const_get_relative(U,"Number")["$==="](s.real))?s.real["$nan?"]():o)?$:c(o=e.const_get_relative(U,"Number")["$==="](s.imag))?s.imag["$nan?"]():o)?a:c($=e.const_get_relative(U,"Number")["$==="](r.$real()))?r.$real()["$nan?"]():$)?n:c(a=e.const_get_relative(U,"Number")["$==="](r.$imag()))?r.$imag()["$nan?"]():a)?e.const_get_relative(U,"Complex").$new(e.const_get_qualified(e.const_get_relative(U,"Float"),"NAN"),e.const_get_qualified(e.const_get_relative(U,"Float"),"NAN")):i(t(s,r.$conj()),r.$abs2()):c(c(n=e.const_get_relative(U,"Numeric")["$==="](r))?r["$real?"]():n)?s.$Complex(s.real.$quo(r),s.imag.$quo(r)):s.$__coerced__("/",r)},b.$$arity=1),e.defn(D,"$**",w=function($){var o,l,u,_,f=this,d=s,g=s,h=s,p=s,v=s,y=s,m=s,b=s,w=s,O=s;if($["$=="](0))return e.const_get_relative(U,"Complex").$new(1,0);if(c(e.const_get_relative(U,"Complex")["$==="]($)))return l=f.$polar(),d=null==(o=e.to_ary(l))[0]?s:o[0],g=null==o[1]?s:o[1],h=$.$real(),p=$.$imag(),v=e.const_get_relative(U,"Math").$exp(n(t(h,e.const_get_relative(U,"Math").$log(d)),t(p,g))),y=r(t(g,h),t(p,e.const_get_relative(U,"Math").$log(d))),e.const_get_relative(U,"Complex").$polar(v,y);if(c(e.const_get_relative(U,"Integer")["$==="]($))){if(c(a($,0))){for(b=m=f,w=n($,1);c(w["$!="](0));){for(;c((_=w.$divmod(2),O=null==(u=e.to_ary(_))[0]?s:u[0],(null==u[1]?s:u[1])["$=="](0)));)m=f.$Complex(n(t(m.$real(),m.$real()),t(m.$imag(),m.$imag())),t(t(2,m.$real()),m.$imag())),w=O;b=t(b,m),w=n(w,1)}return b}return i(e.const_get_relative(U,"Rational").$new(1,1),f)["$**"]($["$-@"]())}return c(c(o=e.const_get_relative(U,"Float")["$==="]($))?o:e.const_get_relative(U,"Rational")["$==="]($))?(l=f.$polar(),d=null==(o=e.to_ary(l))[0]?s:o[0],g=null==o[1]?s:o[1],e.const_get_relative(U,"Complex").$polar(d["$**"]($),t(g,$))):f.$__coerced__("**",$)},w.$$arity=1),e.defn(D,"$abs",O=function(){var t=this;return e.const_get_relative(U,"Math").$hypot(t.real,t.imag)},O.$$arity=0),e.defn(D,"$abs2",M=function(){var e=this;return r(t(e.real,e.real),t(e.imag,e.imag))},M.$$arity=0),e.defn(D,"$angle",E=function(){var t=this;return e.const_get_relative(U,"Math").$atan2(t.imag,t.real)},E.$$arity=0),e.alias(D,"arg","angle"),e.defn(D,"$conj",A=function(){var e=this;return e.$Complex(e.real,e.imag["$-@"]())},A.$$arity=0),e.alias(D,"conjugate","conj"),e.defn(D,"$denominator",x=function(){var e=this;return e.real.$denominator().$lcm(e.imag.$denominator())},x.$$arity=0),e.alias(D,"divide","/"),e.defn(D,"$eql?",T=function(t){var r,n,i=this;return c(r=c(n=e.const_get_relative(U,"Complex")["$==="](t))?i.real.$class()["$=="](i.imag.$class()):n)?i["$=="](t):r},T.$$arity=1),e.defn(D,"$fdiv",k=function(t){var r=this;return c(e.const_get_relative(U,"Numeric")["$==="](t))||r.$raise(e.const_get_relative(U,"TypeError"),t.$class()+" can't be coerced into Complex"),i(r,t)},k.$$arity=1),e.defn(D,"$hash",I=function(){var e=this;return"Complex:"+e.real+":"+e.imag},I.$$arity=0),e.alias(D,"imaginary","imag"),e.defn(D,"$inspect",P=function(){return"("+this.$to_s()+")"},P.$$arity=0),e.alias(D,"magnitude","abs"),e.udef(D,"$negative?"),e.defn(D,"$numerator",z=function(){var e=this,r=s;return r=e.$denominator(),e.$Complex(t(e.real.$numerator(),i(r,e.real.$denominator())),t(e.imag.$numerator(),i(r,e.imag.$denominator())))},z.$$arity=0),e.alias(D,"phase","arg"),e.defn(D,"$polar",N=function(){var e=this;return[e.$abs(),e.$arg()]},N.$$arity=0),e.udef(D,"$positive?"),e.alias(D,"quo","/"),e.defn(D,"$rationalize",S=function(t){var r=this;return arguments.length>1&&r.$raise(e.const_get_relative(U,"ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),c(r.imag["$!="](0))&&r.$raise(e.const_get_relative(U,"RangeError"),"can't' convert "+r+" into Rational"),r.$real().$rationalize(t)},S.$$arity=-1),e.defn(D,"$real?",q=function(){return!1},q.$$arity=0),e.defn(D,"$rect",R=function(){var e=this;return[e.real,e.imag]},R.$$arity=0),e.alias(D,"rectangular","rect"),e.defn(D,"$to_f",j=function(){var t=this;return t.imag["$=="](0)||t.$raise(e.const_get_relative(U,"RangeError"),"can't convert "+t+" into Float"),t.real.$to_f()},j.$$arity=0),e.defn(D,"$to_i",C=function(){var t=this;return t.imag["$=="](0)||t.$raise(e.const_get_relative(U,"RangeError"),"can't convert "+t+" into Integer"),t.real.$to_i()},C.$$arity=0),e.defn(D,"$to_r",F=function(){var t=this;return t.imag["$=="](0)||t.$raise(e.const_get_relative(U,"RangeError"),"can't convert "+t+" into Rational"),t.real.$to_r()},F.$$arity=0),e.defn(D,"$to_s",B=function(){var t,n,i,a=this,$=s;return $=a.real.$inspect(),$=r($=c(c(t=c(n=c(i=e.const_get_relative(U,"Number")["$==="](a.imag))?a.imag["$nan?"]():i)?n:a.imag["$positive?"]())?t:a.imag["$zero?"]())?r($,"+"):r($,"-"),a.imag.$abs().$inspect()),c(c(t=e.const_get_relative(U,"Number")["$==="](a.imag))?c(n=a.imag["$nan?"]())?n:a.imag["$infinite?"]():t)&&($=r($,"*")),r($,"i")},B.$$arity=0),e.const_set(U[0],"I",D.$new(0,1))}(o[0],e.const_get_relative(o,"Numeric"),o),function(t,r){var n,i=u(t,"Kernel"),a=(i.$$proto,[i].concat(r));e.defn(i,"$Complex",n=function(t,r){return null==r&&(r=s),c(r)?e.const_get_relative(a,"Complex").$new(t,r):e.const_get_relative(a,"Complex").$new(t,0)},n.$$arity=-2)}(o[0],o)},Opal.modules["corelib/rational"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}function o(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}var s=e.top,l=[],c=e.nil,u=(e.breaker,e.slice,e.klass),_=e.truthy,f=e.module;return e.add_stubs(["$require","$to_i","$==","$raise","$<","$-@","$new","$gcd","$/","$nil?","$===","$reduce","$to_r","$equal?","$!","$coerce_to!","$attr_reader","$to_f","$numerator","$denominator","$<=>","$-","$*","$__coerced__","$+","$Rational","$>","$**","$abs","$ceil","$with_precision","$floor","$to_s","$<=","$truncate","$send","$convert"]),s.$require("corelib/numeric"),function(s,$super,l){function f(){}var d,g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B=f=u(s,$super,"Rational",f),D=B.$$proto,L=[B].concat(l);D.num=D.den=c,e.defs(B,"$reduce",d=function(n,i){var a=this,$=c;if(n=n.$to_i(),(i=i.$to_i())["$=="](0))a.$raise(e.const_get_relative(L,"ZeroDivisionError"),"divided by 0");else if(_(t(i,0)))n=n["$-@"](),i=i["$-@"]();else if(i["$=="](1))return a.$new(n,i);return $=n.$gcd(i),a.$new(r(n,$),r(i,$))},d.$$arity=2),e.defs(B,"$convert",g=function(t,n){var i,a,$=this;return _(_(i=t["$nil?"]())?i:n["$nil?"]())&&$.$raise(e.const_get_relative(L,"TypeError"),"cannot convert nil into Rational"),_(_(i=e.const_get_relative(L,"Integer")["$==="](t))?e.const_get_relative(L,"Integer")["$==="](n):i)?$.$reduce(t,n):(_(_(i=_(a=e.const_get_relative(L,"Float")["$==="](t))?a:e.const_get_relative(L,"String")["$==="](t))?i:e.const_get_relative(L,"Complex")["$==="](t))&&(t=t.$to_r()),_(_(i=_(a=e.const_get_relative(L,"Float")["$==="](n))?a:e.const_get_relative(L,"String")["$==="](n))?i:e.const_get_relative(L,"Complex")["$==="](n))&&(n=n.$to_r()),_(_(i=n["$equal?"](1))?e.const_get_relative(L,"Integer")["$==="](t)["$!"]():i)?e.const_get_relative(L,"Opal")["$coerce_to!"](t,e.const_get_relative(L,"Rational"),"to_r"):_(_(i=e.const_get_relative(L,"Numeric")["$==="](t))?e.const_get_relative(L,"Numeric")["$==="](n):i)?r(t,n):$.$reduce(t,n))},g.$$arity=2),B.$attr_reader("numerator","denominator"),e.defn(B,"$initialize",h=function(e,t){var r=this;return r.num=e,r.den=t},h.$$arity=2),e.defn(B,"$numerator",p=function(){return this.num},p.$$arity=0),e.defn(B,"$denominator",v=function(){return this.den},v.$$arity=0),e.defn(B,"$coerce",y=function(t){var r=this,n=c;return n=t,e.const_get_relative(L,"Rational")["$==="](n)?[t,r]:e.const_get_relative(L,"Integer")["$==="](n)?[t.$to_r(),r]:e.const_get_relative(L,"Float")["$==="](n)?[t,r.$to_f()]:c},y.$$arity=1),e.defn(B,"$==",m=function(t){var r=this,n=c;return n=t,e.const_get_relative(L,"Rational")["$==="](n)?r.num["$=="](t.$numerator())?r.den["$=="](t.$denominator()):r.num["$=="](t.$numerator()):e.const_get_relative(L,"Integer")["$==="](n)?r.num["$=="](t)?r.den["$=="](1):r.num["$=="](t):e.const_get_relative(L,"Float")["$==="](n)?r.$to_f()["$=="](t):t["$=="](r)},m.$$arity=1),e.defn(B,"$<=>",b=function(t){var r=this,a=c;return a=t,e.const_get_relative(L,"Rational")["$==="](a)?n(i(r.num,t.$denominator()),i(r.den,t.$numerator()))["$<=>"](0):e.const_get_relative(L,"Integer")["$==="](a)?n(r.num,i(r.den,t))["$<=>"](0):e.const_get_relative(L,"Float")["$==="](a)?r.$to_f()["$<=>"](t):r.$__coerced__("<=>",t)},b.$$arity=1),e.defn(B,"$+",w=function(t){var r=this,n=c,$=c,o=c;return n=t,e.const_get_relative(L,"Rational")["$==="](n)?($=a(i(r.num,t.$denominator()),i(r.den,t.$numerator())),o=i(r.den,t.$denominator()),r.$Rational($,o)):e.const_get_relative(L,"Integer")["$==="](n)?r.$Rational(a(r.num,i(t,r.den)),r.den):e.const_get_relative(L,"Float")["$==="](n)?a(r.$to_f(),t):r.$__coerced__("+",t)},w.$$arity=1),e.defn(B,"$-",O=function(t){var r=this,a=c,$=c,o=c;return a=t,e.const_get_relative(L,"Rational")["$==="](a)?($=n(i(r.num,t.$denominator()),i(r.den,t.$numerator())),o=i(r.den,t.$denominator()),r.$Rational($,o)):e.const_get_relative(L,"Integer")["$==="](a)?r.$Rational(n(r.num,i(t,r.den)),r.den):e.const_get_relative(L,"Float")["$==="](a)?n(r.$to_f(),t):r.$__coerced__("-",t)},O.$$arity=1),e.defn(B,"$*",M=function(t){var r=this,n=c,a=c,$=c;return n=t,e.const_get_relative(L,"Rational")["$==="](n)?(a=i(r.num,t.$numerator()),$=i(r.den,t.$denominator()),r.$Rational(a,$)):e.const_get_relative(L,"Integer")["$==="](n)?r.$Rational(i(r.num,t),r.den):e.const_get_relative(L,"Float")["$==="](n)?i(r.$to_f(),t):r.$__coerced__("*",t)},M.$$arity=1),e.defn(B,"$/",E=function(t){var n=this,a=c,$=c,o=c;return a=t,e.const_get_relative(L,"Rational")["$==="](a)?($=i(n.num,t.$denominator()),o=i(n.den,t.$numerator()),n.$Rational($,o)):e.const_get_relative(L,"Integer")["$==="](a)?t["$=="](0)?r(n.$to_f(),0):n.$Rational(n.num,i(n.den,t)):e.const_get_relative(L,"Float")["$==="](a)?r(n.$to_f(),t):n.$__coerced__("/",t)},E.$$arity=1),e.defn(B,"$**",A=function(r){var n=this,i=c;return i=r,e.const_get_relative(L,"Integer")["$==="](i)?_(n["$=="](0)?t(r,0):n["$=="](0))?e.const_get_qualified(e.const_get_relative(L,"Float"),"INFINITY"):_($(r,0))?n.$Rational(n.num["$**"](r),n.den["$**"](r)):_(t(r,0))?n.$Rational(n.den["$**"](r["$-@"]()),n.num["$**"](r["$-@"]())):n.$Rational(1,1):e.const_get_relative(L,"Float")["$==="](i)?n.$to_f()["$**"](r):e.const_get_relative(L,"Rational")["$==="](i)?r["$=="](0)?n.$Rational(1,1):r.$denominator()["$=="](1)?_(t(r,0))?n.$Rational(n.den["$**"](r.$numerator().$abs()),n.num["$**"](r.$numerator().$abs())):n.$Rational(n.num["$**"](r.$numerator()),n.den["$**"](r.$numerator())):_(n["$=="](0)?t(r,0):n["$=="](0))?n.$raise(e.const_get_relative(L,"ZeroDivisionError"),"divided by 0"):n.$to_f()["$**"](r):n.$__coerced__("**",r)},A.$$arity=1),e.defn(B,"$abs",x=function(){var e=this;return e.$Rational(e.num.$abs(),e.den.$abs())},x.$$arity=0),e.defn(B,"$ceil",T=function(e){var t=this;return null==e&&(e=0),e["$=="](0)?r(t.num["$-@"](),t.den)["$-@"]().$ceil():t.$with_precision("ceil",e)},T.$$arity=-1),e.alias(B,"divide","/"),e.defn(B,"$floor",k=function(e){var t=this;return null==e&&(e=0),e["$=="](0)?r(t.num["$-@"](),t.den)["$-@"]().$floor():t.$with_precision("floor",e)},k.$$arity=-1),e.defn(B,"$hash",I=function(){var e=this;return"Rational:"+e.num+":"+e.den},I.$$arity=0),e.defn(B,"$inspect",P=function(){return"("+this.$to_s()+")"},P.$$arity=0),e.alias(B,"quo","/"),e.defn(B,"$rationalize",z=function(t){var i=this;if(arguments.length>1&&i.$raise(e.const_get_relative(L,"ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),null==t)return i;for(var $,s,l,c,u,_=t.$abs(),f=n(i,_),d=a(i,_),g=0,h=1,p=1,v=0;!o(l=f.$ceil(),d);)$=(c=l-1)*h+g,s=c*v+p,u=r(1,n(d,c)),d=r(1,n(f,c)),f=u,g=h,p=v,h=$,v=s;return i.$Rational(l*h+g,l*v+p)},z.$$arity=-1),e.defn(B,"$round",N=function(e){var n=this,$=c;return null==e&&(e=0),e["$=="](0)?n.num["$=="](0)?0:n.den["$=="](1)?n.num:($=r(a(i(n.num.$abs(),2),n.den),i(n.den,2)).$truncate(),_(t(n.num,0))?$["$-@"]():$):n.$with_precision("round",e)},N.$$arity=-1),e.defn(B,"$to_f",S=function(){var e=this;return r(e.num,e.den)},S.$$arity=0),e.defn(B,"$to_i",q=function(){return this.$truncate()},q.$$arity=0),e.defn(B,"$to_r",R=function(){return this},R.$$arity=0),e.defn(B,"$to_s",j=function(){var e=this;return e.num+"/"+e.den},j.$$arity=0),e.defn(B,"$truncate",C=function(e){var r=this;return null==e&&(e=0),e["$=="](0)?_(t(r.num,0))?r.$ceil():r.$floor():r.$with_precision("truncate",e)},C.$$arity=-1),e.defn(B,"$with_precision",F=function(n,a){var $=this,o=c,s=c;return _(e.const_get_relative(L,"Integer")["$==="](a))||$.$raise(e.const_get_relative(L,"TypeError"),"not an Integer"),s=i($,o=10["$**"](a)),_(t(a,1))?r(s.$send(n),o).$to_i():$.$Rational(s.$send(n),o)},F.$$arity=2)}(l[0],e.const_get_relative(l,"Numeric"),l),function(t,r){var n,i=f(t,"Kernel"),a=(i.$$proto,[i].concat(r));e.defn(i,"$Rational",n=function(t,r){return null==r&&(r=1),e.const_get_relative(a,"Rational").$convert(t,r)},n.$$arity=-2)}(l[0],l)},Opal.modules["corelib/time"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e","$to_f","$nil?","$>","$<","$strftime","$year","$month","$day","$+","$round","$/","$-","$copy_instance_variables","$initialize_dup","$is_a?","$zero?","$wday","$utc?","$mon","$yday","$hour","$min","$sec","$rjust","$ljust","$zone","$to_s","$[]","$cweek_cyear","$isdst","$<=","$!=","$==","$ceil"]),o.$require("corelib/comparable"),function(o,$super,s){function d(){}function g(t,r,n,i,a,$){if(t=t.$$is_string?parseInt(t,10):e.const_get_relative(ae,"Opal")["$coerce_to!"](t,e.const_get_relative(ae,"Integer"),"to_int"),r===l)r=1;else if(!r.$$is_number)if(r["$respond_to?"]("to_str"))switch((r=r.$to_str()).toLowerCase()){case"jan":r=1;break;case"feb":r=2;break;case"mar":r=3;break;case"apr":r=4;break;case"may":r=5;break;case"jun":r=6;break;case"jul":r=7;break;case"aug":r=8;break;case"sep":r=9;break;case"oct":r=10;break;case"nov":r=11;break;case"dec":r=12;break;default:r=r.$to_i()}else r=e.const_get_relative(ae,"Opal")["$coerce_to!"](r,e.const_get_relative(ae,"Integer"),"to_int");return(r<1||r>12)&&ie.$raise(e.const_get_relative(ae,"ArgumentError"),"month out of range: "+r),r-=1,((n=n===l?1:n.$$is_string?parseInt(n,10):e.const_get_relative(ae,"Opal")["$coerce_to!"](n,e.const_get_relative(ae,"Integer"),"to_int"))<1||n>31)&&ie.$raise(e.const_get_relative(ae,"ArgumentError"),"day out of range: "+n),((i=i===l?0:i.$$is_string?parseInt(i,10):e.const_get_relative(ae,"Opal")["$coerce_to!"](i,e.const_get_relative(ae,"Integer"),"to_int"))<0||i>24)&&ie.$raise(e.const_get_relative(ae,"ArgumentError"),"hour out of range: "+i),((a=a===l?0:a.$$is_string?parseInt(a,10):e.const_get_relative(ae,"Opal")["$coerce_to!"](a,e.const_get_relative(ae,"Integer"),"to_int"))<0||a>59)&&ie.$raise(e.const_get_relative(ae,"ArgumentError"),"min out of range: "+a),$===l?$=0:$.$$is_number||($=$.$$is_string?parseInt($,10):e.const_get_relative(ae,"Opal")["$coerce_to!"]($,e.const_get_relative(ae,"Integer"),"to_int")),($<0||$>60)&&ie.$raise(e.const_get_relative(ae,"ArgumentError"),"sec out of range: "+$),[t,r,n,i,a,$]}var h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N,S,q,R,j,C,F,B,D,L,U,G,H,X,Y,K,V,J,Z,W,Q,ee,te,re,ne,ie=d=u(o,$super,"Time",d),ae=(ie.$$proto,[ie].concat(s));ie.$include(e.const_get_relative(ae,"Comparable"));var $e=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],oe=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],se=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],le=["January","February","March","April","May","June","July","August","September","October","November","December"];return e.defs(ie,"$at",h=function(t,r){var n,i=this;return e.const_get_relative(ae,"Time")["$==="](t)?(r!==undefined&&i.$raise(e.const_get_relative(ae,"TypeError"),"can't convert Time into an exact number"),(n=new Date(t.getTime())).is_utc=t.is_utc,n):(t.$$is_number||(t=e.const_get_relative(ae,"Opal")["$coerce_to!"](t,e.const_get_relative(ae,"Integer"),"to_int")),r===undefined?new Date(1e3*t):(r.$$is_number||(r=e.const_get_relative(ae,"Opal")["$coerce_to!"](r,e.const_get_relative(ae,"Integer"),"to_int")),new Date(1e3*t+r/1e3)))},h.$$arity=-2),e.defs(ie,"$new",p=function(t,r,n,i,a,$,o){var s,c,u=this;return null==r&&(r=l),null==n&&(n=l),null==i&&(i=l),null==a&&(a=l),null==$&&($=l),null==o&&(o=l),t===undefined?new Date:(o!==l&&u.$raise(e.const_get_relative(ae,"ArgumentError"),"Opal does not support explicitly specifying UTC offset for Time"),t=(s=g(t,r,n,i,a,$))[0],r=s[1],n=s[2],i=s[3],a=s[4],$=s[5],c=new Date(t,r,n,i,a,0,1e3*$),t<100&&c.setFullYear(t),c)},p.$$arity=-1),e.defs(ie,"$local",v=function(e,t,r,n,i,a,$,o,s,u){var _,f;return null==t&&(t=l),null==r&&(r=l),null==n&&(n=l),null==i&&(i=l),null==a&&(a=l),null==$&&($=l),null==o&&(o=l),null==s&&(s=l),null==u&&(u=l),10===arguments.length&&(e=(_=c.call(arguments))[5],t=_[4],r=_[3],n=_[2],i=_[1],a=_[0]),e=(_=g(e,t,r,n,i,a))[0],t=_[1],r=_[2],n=_[3],i=_[4],a=_[5],f=new Date(e,t,r,n,i,0,1e3*a),e<100&&f.setFullYear(e),f},v.$$arity=-2),e.defs(ie,"$gm",y=function(e,t,r,n,i,a,$,o,s,u){var _,f;return null==t&&(t=l),null==r&&(r=l),null==n&&(n=l),null==i&&(i=l),null==a&&(a=l),null==$&&($=l),null==o&&(o=l),null==s&&(s=l),null==u&&(u=l),10===arguments.length&&(e=(_=c.call(arguments))[5],t=_[4],r=_[3],n=_[2],i=_[1],a=_[0]),e=(_=g(e,t,r,n,i,a))[0],t=_[1],r=_[2],n=_[3],i=_[4],a=_[5],f=new Date(Date.UTC(e,t,r,n,i,0,1e3*a)),e<100&&f.setUTCFullYear(e),f.is_utc=!0,f},y.$$arity=-2),function(t,r){t.$$proto,[t].concat(r);e.alias(t,"mktime","local"),e.alias(t,"utc","gm")}(e.get_singleton_class(ie),ae),e.defs(ie,"$now",m=function(){return this.$new()},m.$$arity=0),e.defn(ie,"$+",b=function(t){var r=this;_(e.const_get_relative(ae,"Time")["$==="](t))&&r.$raise(e.const_get_relative(ae,"TypeError"),"time + time?"),t.$$is_number||(t=e.const_get_relative(ae,"Opal")["$coerce_to!"](t,e.const_get_relative(ae,"Integer"),"to_int"));var n=new Date(r.getTime()+1e3*t);return n.is_utc=r.is_utc,n},b.$$arity=1),e.defn(ie,"$-",w=function(t){var r=this;if(_(e.const_get_relative(ae,"Time")["$==="](t)))return(r.getTime()-t.getTime())/1e3;t.$$is_number||(t=e.const_get_relative(ae,"Opal")["$coerce_to!"](t,e.const_get_relative(ae,"Integer"),"to_int"));var n=new Date(r.getTime()-1e3*t);return n.is_utc=r.is_utc,n},w.$$arity=1),e.defn(ie,"$<=>",O=function(n){var i=this,a=l;return _(e.const_get_relative(ae,"Time")["$==="](n))?i.$to_f()["$<=>"](n.$to_f()):(a=n["$<=>"](i),_(a["$nil?"]())?l:_(t(a,0))?-1:_(r(a,0))?1:0)},O.$$arity=1),e.defn(ie,"$==",M=function(t){var r,n=this;return _(r=e.const_get_relative(ae,"Time")["$==="](t))?n.$to_f()===t.$to_f():r},M.$$arity=1),e.defn(ie,"$asctime",E=function(){return this.$strftime("%a %b %e %H:%M:%S %Y")},E.$$arity=0),e.alias(ie,"ctime","asctime"),e.defn(ie,"$day",A=function(){var e=this;return e.is_utc?e.getUTCDate():e.getDate()},A.$$arity=0),e.defn(ie,"$yday",x=function(){var t=this,r=l,$=l;return r=e.const_get_relative(ae,"Time").$new(t.$year()).$to_i(),$=86400,n(i(a(e.const_get_relative(ae,"Time").$new(t.$year(),t.$month(),t.$day()).$to_i(),r),$).$round(),1)},x.$$arity=0),e.defn(ie,"$isdst",T=function(){var e=this,t=new Date(e.getFullYear(),0,1),r=new Date(e.getFullYear(),6,1);return e.getTimezoneOffset()"](t)["$zero?"]():r},I.$$arity=1),e.defn(ie,"$friday?",P=function(){return 5==this.$wday()},P.$$arity=0),e.defn(ie,"$hash",z=function(){return"Time:"+this.getTime()},z.$$arity=0),e.defn(ie,"$hour",N=function(){var e=this;return e.is_utc?e.getUTCHours():e.getHours()},N.$$arity=0),e.defn(ie,"$inspect",S=function(){var e=this;return _(e["$utc?"]())?e.$strftime("%Y-%m-%d %H:%M:%S UTC"):e.$strftime("%Y-%m-%d %H:%M:%S %z")},S.$$arity=0),e.alias(ie,"mday","day"),e.defn(ie,"$min",q=function(){var e=this;return e.is_utc?e.getUTCMinutes():e.getMinutes()},q.$$arity=0),e.defn(ie,"$mon",R=function(){var e=this;return(e.is_utc?e.getUTCMonth():e.getMonth())+1},R.$$arity=0),e.defn(ie,"$monday?",j=function(){return 1==this.$wday()},j.$$arity=0),e.alias(ie,"month","mon"),e.defn(ie,"$saturday?",C=function(){return 6==this.$wday()},C.$$arity=0),e.defn(ie,"$sec",F=function(){var e=this;return e.is_utc?e.getUTCSeconds():e.getSeconds()},F.$$arity=0),e.defn(ie,"$succ",B=function(){var e=this,t=new Date(e.getTime()+1e3);return t.is_utc=e.is_utc,t},B.$$arity=0),e.defn(ie,"$usec",D=function(){return 1e3*this.getMilliseconds()},D.$$arity=0),e.defn(ie,"$zone",L=function(){var e,t=this.toString();return"GMT"==(e=-1==t.indexOf("(")?t.match(/[A-Z]{3,4}/)[0]:t.match(/\((.+)\)(?:\s|$)/)[1])&&/(GMT\W*\d{4})/.test(t)?RegExp.$1:e},L.$$arity=0),e.defn(ie,"$getgm",U=function(){var e=new Date(this.getTime());return e.is_utc=!0,e},U.$$arity=0),e.alias(ie,"getutc","getgm"),e.defn(ie,"$gmtime",G=function(){var e=this;return e.is_utc=!0,e},G.$$arity=0),e.alias(ie,"utc","gmtime"),e.defn(ie,"$gmt?",H=function(){return!0===this.is_utc},H.$$arity=0),e.defn(ie,"$gmt_offset",X=function(){return 60*-this.getTimezoneOffset()},X.$$arity=0),e.defn(ie,"$strftime",Y=function(e){var t=this;return e.replace(/%([\-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,function(e,r,n,i,a){var $="",o=-1!==r.indexOf("0"),s=-1===r.indexOf("-"),l=-1!==r.indexOf("_"),c=-1!==r.indexOf("^"),u=-1!==r.indexOf("#"),_=(r.match(":")||[]).length;switch(n=parseInt(n,10),o&&l&&(r.indexOf("0")=12?"pm":"am";break;case"p":$+=t.$hour()>=12?"PM":"AM";break;case"M":o=!l,$+=t.$min();break;case"S":o=!l,$+=t.$sec();break;case"L":o=!l,n=isNaN(n)?3:n,$+=t.getMilliseconds();break;case"N":n=isNaN(n)?9:n,$=($+=t.getMilliseconds().toString().$rjust(3,"0")).$ljust(n,"0");break;case"z":var d=t.getTimezoneOffset(),g=Math.floor(Math.abs(d)/60),h=Math.abs(d)%60;$+=d<0?"+":"-",$+=g<10?"0":"",$+=g,_>0&&($+=":"),$+=h<10?"0":"",$+=h,_>1&&($+=":00");break;case"Z":$+=t.$zone();break;case"A":$+=$e[t.$wday()];break;case"a":$+=oe[t.$wday()];break;case"u":$+=t.$wday()+1;break;case"w":$+=t.$wday();break;case"V":$+=t.$cweek_cyear()["$[]"](0).$to_s().$rjust(2,"0");break;case"G":$+=t.$cweek_cyear()["$[]"](1);break;case"g":$+=t.$cweek_cyear()["$[]"](1)["$[]"](f(-2,-1,!1));break;case"s":$+=t.$to_i();break;case"n":$+="\n";break;case"t":$+="\t";break;case"%":$+="%";break;case"c":$+=t.$strftime("%a %b %e %T %Y");break;case"D":case"x":$+=t.$strftime("%m/%d/%y");break -;case"F":$+=t.$strftime("%Y-%m-%d");break;case"v":$+=t.$strftime("%e-%^b-%4Y");break;case"r":$+=t.$strftime("%I:%M:%S %p");break;case"R":$+=t.$strftime("%H:%M");break;case"T":case"X":$+=t.$strftime("%H:%M:%S");break;default:return e}return c&&($=$.toUpperCase()),u&&($=$.replace(/[A-Z]/,function(e){e.toLowerCase()}).replace(/[a-z]/,function(e){e.toUpperCase()})),s&&(o||l)&&($=$.$rjust(isNaN(n)?2:n,l?" ":"0")),$})},Y.$$arity=1),e.defn(ie,"$sunday?",K=function(){return 0==this.$wday()},K.$$arity=0),e.defn(ie,"$thursday?",V=function(){return 4==this.$wday()},V.$$arity=0),e.defn(ie,"$to_a",J=function(){var e=this;return[e.$sec(),e.$min(),e.$hour(),e.$day(),e.$month(),e.$year(),e.$wday(),e.$yday(),e.$isdst(),e.$zone()]},J.$$arity=0),e.defn(ie,"$to_f",Z=function(){return this.getTime()/1e3},Z.$$arity=0),e.defn(ie,"$to_i",W=function(){return parseInt(this.getTime()/1e3,10)},W.$$arity=0),e.alias(ie,"to_s","inspect"),e.defn(ie,"$tuesday?",Q=function(){return 2==this.$wday()},Q.$$arity=0),e.alias(ie,"tv_sec","to_i"),e.alias(ie,"tv_usec","usec"),e.alias(ie,"utc?","gmt?"),e.alias(ie,"gmtoff","gmt_offset"),e.alias(ie,"utc_offset","gmt_offset"),e.defn(ie,"$wday",ee=function(){var e=this;return e.is_utc?e.getUTCDay():e.getDay()},ee.$$arity=0),e.defn(ie,"$wednesday?",te=function(){return 3==this.$wday()},te.$$arity=0),e.defn(ie,"$year",re=function(){var e=this;return e.is_utc?e.getUTCFullYear():e.getFullYear()},re.$$arity=0),e.defn(ie,"$cweek_cyear",ne=function(){var t,r=this,o=l,s=l,c=l,u=l,f=l;return o=e.const_get_relative(ae,"Time").$new(r.$year(),1,1).$wday(),0,s=r.$year(),_(_(t=$(o,4))?o["$!="](0):t)?c=a(o,1):(c=a(a(o,7),1))["$=="](-8)&&(c=-1),u=i(n(r.$yday(),c),7).$ceil(),_($(u,0))?e.const_get_relative(ae,"Time").$new(a(r.$year(),1),12,31).$cweek_cyear():(u["$=="](53)&&(f=e.const_get_relative(ae,"Time").$new(r.$year(),12,31).$wday(),_(_(t=$(f,3))?f["$!="](0):t)&&(u=1,s=n(s,1))),[u,s])},ne.$$arity=0),l&&"cweek_cyear"}(s[0],Date,s)},Opal.modules["corelib/struct"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var $=e.top,o=[],s=e.nil,l=(e.breaker,e.slice,e.klass),c=e.truthy,u=e.send,_=e.hash2;return e.add_stubs(["$require","$include","$const_name!","$unshift","$map","$coerce_to!","$new","$each","$define_struct_attribute","$allocate","$initialize","$module_eval","$to_proc","$const_set","$==","$raise","$<<","$members","$define_method","$instance_eval","$>","$length","$class","$each_with_index","$[]","$[]=","$-","$hash","$===","$<","$-@","$size","$>=","$include?","$to_sym","$instance_of?","$__id__","$eql?","$enum_for","$name","$+","$join","$each_pair","$inspect","$inject","$flatten","$to_a","$respond_to?","$dig"]),$.$require("corelib/enumerable"),function($,$super,o){function f(){}var d,g,h,p,v,y,m,b,w,O,M,E,A,x,T,k,I,P,z,N=f=l($,null,"Struct",f),S=(N.$$proto,[N].concat(o));return N.$include(e.const_get_relative(S,"Enumerable")),e.defs(N,"$new",d=function(t){var r,n,i,a=this,$=d.$$p,o=$||s,l=s,_=arguments.length,f=_-1;f<0&&(f=0),i=new Array(f);for(var g=1;g<_;g++)i[g-1]=arguments[g];if($&&(d.$$p=null),c(t))try{t=e.const_get_relative(S,"Opal")["$const_name!"](t)}catch(h){if(!e.rescue(h,[e.const_get_relative(S,"TypeError"),e.const_get_relative(S,"NameError")]))throw h;try{i.$unshift(t),t=s}finally{e.pop_exception()}}return u(i,"map",[],((r=function(t){r.$$s;return null==t&&(t=s),e.const_get_relative(S,"Opal")["$coerce_to!"](t,e.const_get_relative(S,"String"),"to_str")}).$$s=a,r.$$arity=1,r)),l=u(e.const_get_relative(S,"Class"),"new",[a],((n=function(){var t,r=n.$$s||this;return u(i,"each",[],((t=function(e){var r=t.$$s||this;return null==e&&(e=s),r.$define_struct_attribute(e)}).$$s=r,t.$$arity=1,t)),function(t,r){var n;t.$$proto,[t].concat(r);return e.defn(t,"$new",n=function(){var t,r=this,n=s,i=arguments.length,a=i-0;a<0&&(a=0),t=new Array(a);for(var $=0;$")},k.$$arity=0),e.alias(N,"to_s","inspect"),e.defn(N,"$to_h",I=function(){var t,n=this;return u(n.$class().$members(),"inject",[_([],{})],((t=function(n,i){var a=t.$$s||this,$=s;return null==n&&(n=s),null==i&&(i=s),$=[i,a["$[]"](i)],u(n,"[]=",e.to_a($)),$[r($.length,1)],n}).$$s=n,t.$$arity=2,t))},I.$$arity=0),e.defn(N,"$values_at",P=function(){var t,r,n=this,i=arguments.length,a=i-0;a<0&&(a=0),r=new Array(a);for(var $=0;$=p;)e/=2,t/=2,r>>>=1;return(e+r)/t};return m.int32=function(){return 0|y.g(4)},m.quick=function(){return y.g(4)/4294967296},m.double=m,$(s(y.S),e),(l.pass||c||function(e,r,n,a){return a&&(a.S&&i(a,y),e.state=function(){return i(y,{})}),n?(t[d]=e,r):e})(m,v,"global"in l?l.global:this==t,l.state)}function n(e){var t,r=e.length,n=this,i=0,a=n.i=n.j=0,$=n.S=[];for(r||(e=[r++]);i=0;t--){var $=r[t];for(var i in $.$$cvars)n[i]=$.$$cvars[i]}return n},j.class_variable_set=function(e,t,r){var n,$=j.ancestors(e);for(n=$.length-2;n>=0;n--){var i=$[n];if(T.call(i.$$cvars,t))return i.$$cvars[t]=r,r}return e.$$cvars[t]=r,r},j.class_variable_get=function(e,t,r){if(T.call(e.$$cvars,t))return e.$$cvars[t];var n,$=j.ancestors(e),i=$.length;for(n=0;n1||(r||n)&&1===e.length)&&(t=j.to_ary(t)),(e.length>1||n&&1===e.length)&&t.$$is_array?e.apply(null,t):e(t)},j.yieldX=function(e,t){if("function"!=typeof e)throw j.LocalJumpError.$new("no block given");if(e.length>1&&1===t.length&&t[0].$$is_array)return e.apply(null,t[0]);if(!t.$$is_array){for(var r=new Array(t.length),n=0,$=r.length;n<$;n++)r[n]=t[n];return e.apply(null,r)}return e.apply(null,t)},j.rescue=function(e,t){for(var r=0;r=0;o--)if("undefined"!=typeof(c=u[o]).$$refine_modules&&"undefined"!=typeof(f=c.$$refine_modules)[s]&&"undefined"!=typeof(d=f[s]).$$prototype["$"+r])return _=d.$$prototype["$"+r],j.send2(t,_,r,n,$);return j.send(t,r,n,$)},j.lambda=function(e){return e.$$is_lambda=!0,e},j.def=function(e,t,r){e===j.top?j.defn(j.Object,t,r):!e.$$eval&&e.$$is_a_module?j.defn(e,t,r):j.defs(e,t,r)},j.defn=function(e,r,n){n.displayName=r,n.$$owner=e;var $=e.$$prototype;if($.hasOwnProperty("$$dummy")&&($=$.$$define_methods_on),t($,r,n),e.$$is_module){e.$$module_function&&j.defs(e,r,n);for(var i=0,a=e.$$iclasses,o=a.length;i=0,$=0,i=e.length;$","$class","$coerce_to!","$new","$!=","$[]","$upcase"]),function(t,l){var s,u,c,f,d,_,h,p,y,g,m,v,b=a(t,"Opal"),w=[b].concat(l);return e.defs(b,"$bridge",s=function(t,r){return e.bridge(t,r)},s.$$arity=2),e.defs(b,"$coerce_to!",u=function(t,n,a){var l,s=this,u=r;return l=e.slice.call(arguments,3,arguments.length),u=i(t,n,a,l),o(n["$==="](u))||s.$raise($(t,n,a,u)),u},u.$$arity=-4),e.defs(b,"$coerce_to?",c=function(t,n,a){var l,s=this,u=r;return l=e.slice.call(arguments,3,arguments.length),o(t["$respond_to?"](a))?(u=i(t,n,a,l),o(u["$nil?"]())?r:(o(n["$==="](u))||s.$raise($(t,n,a,u)),u)):r},c.$$arity=-4),e.defs(b,"$try_convert",f=function(e,t,n){return o(t["$==="](e))?e:o(e["$respond_to?"](n))?e.$__send__(n):r},f.$$arity=3),e.defs(b,"$compare",d=function(e,t){var $=this,i=r;return i=e["$<=>"](t),o(i===r)&&$.$raise(n(w,"ArgumentError"),"comparison of "+e.$class()+" with "+t.$class()+" failed"),i},d.$$arity=2),e.defs(b,"$destructure",_=function(e){if(1==e.length)return e[0];if(e.$$is_array)return e;for(var t=new Array(e.length),r=0,n=t.length;r=0;a--)$=n[a],(i=t.$$prototype["$"+$])&&!i.$$stub&&(i.$$pristine=!0);return r},v.$$arity=-2),r&&"pristine"}(t[0],t)},Opal.modules["corelib/module"]=function(Opal){function $rb_lt(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$truthy=Opal.truthy,$coerce_to=Opal.coerce_to,$klass=Opal.klass,$send=Opal.send,$hash2=Opal.hash2,$lambda=Opal.lambda,$range=Opal.range,$alias=Opal.alias,$send2=Opal.send2,$find_super=Opal.find_super;return Opal.add_stubs(["$module_eval","$to_proc","$===","$raise","$equal?","$<","$>","$nil?","$attr_reader","$attr_writer","$warn","$attr_accessor","$const_name?","$class_variable_name!","$const_name!","$=~","$new","$inject","$split","$const_get","$==","$!~","$start_with?","$bind","$call","$class","$append_features","$included","$name","$cover?","$size","$merge","$compile","$proc","$any?","$prepend_features","$prepended","$to_s","$__id__","$constants","$include?","$copy_class_variables","$copy_constants","$define_singleton_method","$inspect","$class_exec"]),function($base,$super,$parent_nesting){ +var self=$klass($base,$super,"Module"),$nesting=[self].concat($parent_nesting),$Module_allocate$1,$Module_initialize$2,$Module_$eq_eq_eq$3,$Module_$lt$4,$Module_$lt_eq$5,$Module_$gt$6,$Module_$gt_eq$7,$Module_$lt_eq_gt$8,$Module_alias_method$9,$Module_alias_native$10,$Module_ancestors$11,$Module_append_features$12,$Module_attr_accessor$13,$Module_attr$14,$Module_attr_reader$15,$Module_attr_writer$16,$Module_autoload$17,$Module_autoload$ques$18,$Module_class_variables$19,$Module_class_variable_get$20,$Module_class_variable_set$21,$Module_class_variable_defined$ques$22,$Module_remove_class_variable$23,$Module_constants$24,$Module_constants$25,$Module_nesting$26,$Module_const_defined$ques$27,$Module_const_get$28,$Module_const_missing$30,$Module_const_set$31,$Module_public_constant$32,$Module_define_method$33,$Module_remove_method$35,$Module_singleton_class$ques$36,$Module_include$37,$Module_included_modules$38,$Module_include$ques$39,$Module_instance_method$40,$Module_instance_methods$41,$Module_included$42,$Module_extended$43,$Module_extend_object$44,$Module_method_added$45,$Module_method_removed$46,$Module_method_undefined$47,$Module_module_eval$48,$Module_module_exec$50,$Module_method_defined$ques$51,$Module_module_function$52,$Module_name$53,$Module_prepend$54,$Module_prepend_features$55,$Module_prepended$56,$Module_remove_const$57,$Module_to_s$58,$Module_undef_method$59,$Module_instance_variables$60,$Module_dup$61,$Module_copy_class_variables$62,$Module_copy_constants$63,$Module_refine$64,$Module_using$66;return Opal.defs(self,"$allocate",$Module_allocate$1=function(){var e=this,t=Opal.allocate_module(nil,function(){});return e!==Opal.Module&&Object.setPrototypeOf(t,e.$$prototype),t},$Module_allocate$1.$$arity=0),Opal.def(self,"$initialize",$Module_initialize$2=function(){var e=$Module_initialize$2.$$p,t=e||nil,r=this;return e&&($Module_initialize$2.$$p=null),e&&($Module_initialize$2.$$p=null),t!==nil?$send(r,"module_eval",[],t.$to_proc()):nil},$Module_initialize$2.$$arity=0),Opal.def(self,"$===",$Module_$eq_eq_eq$3=function(e){var t=this;return!$truthy(null==e)&&Opal.is_a(e,t)},$Module_$eq_eq_eq$3.$$arity=1),Opal.def(self,"$<",$Module_$lt$4=function(e){var t,r,n,$=this;if($truthy($$($nesting,"Module")["$==="](e))||$.$raise($$($nesting,"TypeError"),"compared with non class/module"),$===e)return!1;for(r=0,n=(t=Opal.ancestors($)).length;r",$Module_$gt$6=function(e){var t=this;return $truthy($$($nesting,"Module")["$==="](e))||t.$raise($$($nesting,"TypeError"),"compared with non class/module"),$rb_lt(e,t)},$Module_$gt$6.$$arity=1),Opal.def(self,"$>=",$Module_$gt_eq$7=function(e){var t=this,r=nil;return $truthy(r=t["$equal?"](e))?r:$rb_gt(t,e)},$Module_$gt_eq$7.$$arity=1),Opal.def(self,"$<=>",$Module_$lt_eq_gt$8=function(e){var t=this,r=nil;return t===e?0:$truthy($$($nesting,"Module")["$==="](e))?(r=$rb_lt(t,e),$truthy(r["$nil?"]())?nil:$truthy(r)?-1:1):nil},$Module_$lt_eq_gt$8.$$arity=1),Opal.def(self,"$alias_method",$Module_alias_method$9=function(e,t){var r=this;return e=$coerce_to(e,$$($nesting,"String"),"to_str"),t=$coerce_to(t,$$($nesting,"String"),"to_str"),Opal.alias(r,e,t),r},$Module_alias_method$9.$$arity=2),Opal.def(self,"$alias_native",$Module_alias_native$10=function(e,t){var r=this;return null==t&&(t=e),Opal.alias_native(r,e,t),r},$Module_alias_native$10.$$arity=-2),Opal.def(self,"$ancestors",$Module_ancestors$11=function(){var e=this;return Opal.ancestors(e)},$Module_ancestors$11.$$arity=0),Opal.def(self,"$append_features",$Module_append_features$12=function(e){var t=this;return Opal.append_features(t,e),t},$Module_append_features$12.$$arity=1),Opal.def(self,"$attr_accessor",$Module_attr_accessor$13=function(){var e,t=this;return e=Opal.slice.call(arguments,0,arguments.length),$send(t,"attr_reader",Opal.to_a(e)),$send(t,"attr_writer",Opal.to_a(e))},$Module_attr_accessor$13.$$arity=-1),Opal.def(self,"$attr",$Module_attr$14=function(){var e,t=this;return 2!=(e=Opal.slice.call(arguments,0,arguments.length)).length||!0!==e[1]&&!1!==e[1]?$send(t,"attr_reader",Opal.to_a(e)):(t.$warn("optional boolean argument is obsoleted",$hash2(["uplevel"],{uplevel:1})),e[1]?t.$attr_accessor(e[0]):t.$attr_reader(e[0]),nil)},$Module_attr$14.$$arity=-1),Opal.def(self,"$attr_reader",$Module_attr_reader$15=function(){var e,t=this;e=Opal.slice.call(arguments,0,arguments.length);for(var r=t.$$prototype,n=e.length-1;n>=0;n--){var $=e[n],i="$"+$,a=Opal.ivar($),o=function(e){return function(){return null==this[e]?nil:this[e]}}(a);Opal.defineProperty(r,a,nil),o.$$parameters=[],o.$$arity=0,Opal.defn(t,i,o)}return nil},$Module_attr_reader$15.$$arity=-1),Opal.def(self,"$attr_writer",$Module_attr_writer$16=function(){var e,t=this;e=Opal.slice.call(arguments,0,arguments.length);for(var r=t.$$prototype,n=e.length-1;n>=0;n--){var $=e[n],i="$"+$+"=",a=Opal.ivar($),o=function(e){return function(t){return this[e]=t}}(a);o.$$parameters=[["req"]],o.$$arity=1,Opal.defineProperty(r,a,nil),Opal.defn(t,i,o)}return nil},$Module_attr_writer$16.$$arity=-1),Opal.def(self,"$autoload",$Module_autoload$17=function(e,t){var r=this;return $$($nesting,"Opal")["$const_name?"](e)||r.$raise($$($nesting,"NameError"),"autoload must be constant name: "+e),""==t&&r.$raise($$($nesting,"ArgumentError"),"empty file name"),r.$$const.hasOwnProperty(e)||(r.$$autoload||(r.$$autoload={}),Opal.const_cache_version++,r.$$autoload[e]={path:t,loaded:!1,required:!1,success:!1,exception:!1}),nil},$Module_autoload$17.$$arity=2),Opal.def(self,"$autoload?",$Module_autoload$ques$18=function(e){var t=this;if(t.$$autoload&&t.$$autoload[e]&&!t.$$autoload[e].required&&!t.$$autoload[e].success)return t.$$autoload[e].path;for(var r=t.$ancestors(),n=0,$=r.length;n<$;n++)if(r[n].$$autoload&&r[n].$$autoload[e]&&!r[n].$$autoload[e].required&&!r[n].$$autoload[e].success)return r[n].$$autoload[e].path;return nil},$Module_autoload$ques$18.$$arity=1),Opal.def(self,"$class_variables",$Module_class_variables$19=function(){var e=this;return Object.keys(Opal.class_variables(e))},$Module_class_variables$19.$$arity=0),Opal.def(self,"$class_variable_get",$Module_class_variable_get$20=function(e){var t=this;return e=$$($nesting,"Opal")["$class_variable_name!"](e),Opal.class_variable_get(t,e,!1)},$Module_class_variable_get$20.$$arity=1),Opal.def(self,"$class_variable_set",$Module_class_variable_set$21=function(e,t){var r=this;return e=$$($nesting,"Opal")["$class_variable_name!"](e),Opal.class_variable_set(r,e,t)},$Module_class_variable_set$21.$$arity=2),Opal.def(self,"$class_variable_defined?",$Module_class_variable_defined$ques$22=function(e){var t=this;return e=$$($nesting,"Opal")["$class_variable_name!"](e),Opal.class_variables(t).hasOwnProperty(e)},$Module_class_variable_defined$ques$22.$$arity=1),Opal.def(self,"$remove_class_variable",$Module_remove_class_variable$23=function(e){var t=this;if(e=$$($nesting,"Opal")["$class_variable_name!"](e),Opal.hasOwnProperty.call(t.$$cvars,e)){var r=t.$$cvars[e];return delete t.$$cvars[e],r}t.$raise($$($nesting,"NameError"),"cannot remove "+e+" for "+t)},$Module_remove_class_variable$23.$$arity=1),Opal.def(self,"$constants",$Module_constants$24=function(e){var t=this;return null==e&&(e=!0),Opal.constants(t,e)},$Module_constants$24.$$arity=-1),Opal.defs(self,"$constants",$Module_constants$25=function(e){var t=this;if(null==e){var r,n,$,i=(t.$$nesting||[]).concat(Opal.Object),a={};for(n=0,$=i.length;n<$;n++)for(r in i[n].$$const)a[r]=!0;return Object.keys(a)}return Opal.constants(t,e)},$Module_constants$25.$$arity=-1),Opal.defs(self,"$nesting",$Module_nesting$26=function(){return this.$$nesting||[]},$Module_nesting$26.$$arity=0),Opal.def(self,"$const_defined?",$Module_const_defined$ques$27=function(e,t){var r=this;null==t&&(t=!0),e=$$($nesting,"Opal")["$const_name!"](e),$truthy(e["$=~"]($$$($$($nesting,"Opal"),"CONST_NAME_REGEXP")))||r.$raise($$($nesting,"NameError").$new("wrong constant name "+e,e));var n,$,i,a=[r];for(t&&(a=a.concat(Opal.ancestors(r)),r.$$is_module&&(a=a.concat([Opal.Object]).concat(Opal.ancestors(Opal.Object)))),$=0,i=a.length;$=0;r--){var n=e[r];n.$$is_module||t.$raise($$($nesting,"TypeError"),"wrong argument type "+n.$class()+" (expected Module)"),n.$append_features(t),n.$included(t)}return t},$Module_include$37.$$arity=-1),Opal.def(self,"$included_modules",$Module_included_modules$38=function(){var e=this;return Opal.included_modules(e)},$Module_included_modules$38.$$arity=0),Opal.def(self,"$include?",$Module_include$ques$39=function(e){var t=this;e.$$is_module||t.$raise($$($nesting,"TypeError"),"wrong argument type "+e.$class()+" (expected Module)");var r,n,$,i=Opal.ancestors(t);for(r=0,n=i.length;r=0;r--){var n=e[r];n.$$is_module||t.$raise($$($nesting,"TypeError"),"wrong argument type "+n.$class()+" (expected Module)"),n.$prepend_features(t),n.$prepended(t)}return t},$Module_prepend$54.$$arity=-1),Opal.def(self,"$prepend_features",$Module_prepend_features$55=function(e){var t=this;return t.$$is_module||t.$raise($$($nesting,"TypeError"),"wrong argument type "+t.$class()+" (expected Module)"),Opal.prepend_features(t,e),t},$Module_prepend_features$55.$$arity=1),Opal.def(self,"$prepended",$Module_prepended$56=function(){return nil},$Module_prepended$56.$$arity=1),Opal.def(self,"$remove_const",$Module_remove_const$57=function(e){var t=this;return Opal.const_remove(t,e)},$Module_remove_const$57.$$arity=1),Opal.def(self,"$to_s",$Module_to_s$58=function(){var e=this,t=nil;return $truthy(t=Opal.Module.$name.call(e))?t:"#<"+(e.$$is_module?"Module":"Class")+":0x"+e.$__id__().$to_s(16)+">"},$Module_to_s$58.$$arity=0),$alias(self,"inspect","to_s"),Opal.def(self,"$undef_method",$Module_undef_method$59=function(){for(var e,t=this,r=0,n=(e=Opal.slice.call(arguments,0,arguments.length)).length;r"}).$$s=i,r.$$arity=0,r)),$send(o,"class_exec",[],$.$to_proc()),o},$Module_refine$64.$$arity=1),Opal.def(self,"$using",$Module_using$66=function(){return this.$raise("Module#using is not permitted in methods")},$Module_using$66.$$arity=1),nil&&"using"}($nesting[0],null,$nesting)},Opal.modules["corelib/class"]=function(e){var t=e.top,r=[],n=e.nil,$=(e.$$$,e.$$),i=e.klass,a=e.send,o=e.send2,l=e.find_super,s=e.alias;return e.add_stubs(["$require","$class_eval","$to_proc","$initialize_copy","$allocate","$name","$to_s"]),t.$require("corelib/module"),function(t,$super,r){var u,c,f,d,_,h,p,y=i(t,null,"Class"),g=[y].concat(r);return e.defs(y,"$new",u=function(t){var r=u.$$p,i=r||n;if(r&&(u.$$p=null),r&&(u.$$p=null),null==t&&(t=$(g,"Object")),!t.$$is_class)throw e.TypeError.$new("superclass must be a Class");var o=e.allocate_class(n,t);return t.$inherited(o),i!==n&&a(o,"class_eval",[],i.$to_proc()),o},u.$$arity=-1),e.def(y,"$allocate",c=function(){var t=new this.$$constructor;return t.$$id=e.uid(),t},c.$$arity=0),e.def(y,"$inherited",f=function(){return n},f.$$arity=1),e.def(y,"$initialize_dup",d=function(e){var t=this;t.$initialize_copy(e),t.$$name=null,t.$$full_name=null},d.$$arity=1),e.def(y,"$new",_=function(){var t,r=_.$$p,$=r||n,i=this;r&&(_.$$p=null),r&&(_.$$p=null),t=e.slice.call(arguments,0,arguments.length);var a=i.$allocate();return e.send(a,a.$initialize,t,$),a},_.$$arity=-1),e.def(y,"$superclass",h=function(){return this.$$super||n},h.$$arity=0),e.def(y,"$to_s",p=function(){var t=p.$$p,r=this;t&&(p.$$p=null);var n=r.$$singleton_of;return n&&n.$$is_a_module?"#":n?"#>":o(r,l(r,"to_s",p,!1,!0),"to_s",[],null)},p.$$arity=0),s(y,"inspect","to_s")}(r[0],0,r)},Opal.modules["corelib/basic_object"]=function(Opal){var self=Opal.top,$nesting=[],nil=Opal.nil,$$$=Opal.$$$,$$=Opal.$$,$klass=Opal.klass,$alias=Opal.alias,$truthy=Opal.truthy,$range=Opal.range,$hash2=Opal.hash2,$send=Opal.send;return Opal.add_stubs(["$==","$raise","$inspect","$!","$nil?","$cover?","$size","$merge","$compile","$proc","$any?","$new"]),function($base,$super,$parent_nesting){var self=$klass($base,$super,"BasicObject"),$nesting=[self].concat($parent_nesting),$BasicObject_initialize$1,$BasicObject_$eq_eq$2,$BasicObject_eql$ques$3,$BasicObject___id__$4,$BasicObject___send__$5,$BasicObject_$excl$6,$BasicObject_$not_eq$7,$BasicObject_instance_eval$8,$BasicObject_instance_exec$10,$BasicObject_singleton_method_added$11,$BasicObject_singleton_method_removed$12,$BasicObject_singleton_method_undefined$13,$BasicObject_method_missing$14,$BasicObject_respond_to_missing$ques$15;return Opal.def(self,"$initialize",$BasicObject_initialize$1=function(){return Opal.slice.call(arguments,0,arguments.length),nil},$BasicObject_initialize$1.$$arity=-1),Opal.def(self,"$==",$BasicObject_$eq_eq$2=function(e){return this===e},$BasicObject_$eq_eq$2.$$arity=1),Opal.def(self,"$eql?",$BasicObject_eql$ques$3=function(e){return this["$=="](e)},$BasicObject_eql$ques$3.$$arity=1),$alias(self,"equal?","=="),Opal.def(self,"$__id__",$BasicObject___id__$4=function(){var e=this;return null!=e.$$id?e.$$id:(Opal.defineProperty(e,"$$id",Opal.uid()),e.$$id)},$BasicObject___id__$4.$$arity=0),Opal.def(self,"$__send__",$BasicObject___send__$5=function(e){var t,r=$BasicObject___send__$5.$$p,n=r||nil,$=this;r&&($BasicObject___send__$5.$$p=null),r&&($BasicObject___send__$5.$$p=null),t=Opal.slice.call(arguments,1,arguments.length),e.$$is_string||$.$raise($$$("::","TypeError"),$.$inspect()+" is not a symbol nor a string");var i=$["$"+e];return i?(n!==nil&&(i.$$p=n),i.apply($,t)):(n!==nil&&($.$method_missing.$$p=n),$.$method_missing.apply($,[e].concat(t)))},$BasicObject___send__$5.$$arity=-2),Opal.def(self,"$!",$BasicObject_$excl$6=function(){return!1},$BasicObject_$excl$6.$$arity=0),Opal.def(self,"$!=",$BasicObject_$not_eq$7=function(e){return this["$=="](e)["$!"]()},$BasicObject_$not_eq$7.$$arity=1),Opal.def(self,"$instance_eval",$BasicObject_instance_eval$8=function $$instance_eval($a){var $iter=$BasicObject_instance_eval$8.$$p,block=$iter||nil,$post_args,args,$b,$$9,self=this,$ret_or_1=nil,string=nil,file=nil,_lineno=nil,default_eval_options=nil,$ret_or_2=nil,compiling_options=nil,compiled=nil;$iter&&($BasicObject_instance_eval$8.$$p=null),$iter&&($BasicObject_instance_eval$8.$$p=null),$post_args=Opal.slice.call(arguments,0,arguments.length),args=$post_args,$truthy($truthy($ret_or_1=block["$nil?"]())?!!Opal.compile:$ret_or_1)?($truthy($range(1,3,!1)["$cover?"](args.$size()))||$$$("::","Kernel").$raise($$$("::","ArgumentError"),"wrong number of arguments (0 for 1..3)"),$b=[].concat(Opal.to_a(args)),string=null==$b[0]?nil:$b[0],file=null==$b[1]?nil:$b[1],_lineno=null==$b[2]?nil:$b[2],default_eval_options=$hash2(["file","eval"],{file:$truthy($ret_or_2=file)?$ret_or_2:"(eval)",eval:!0}),compiling_options=Opal.hash({arity_check:!1}).$merge(default_eval_options),compiled=$$$("::","Opal").$compile(string,compiling_options),block=$send($$$("::","Kernel"),"proc",[],($$9=function(){var self=null==$$9.$$s?this:$$9.$$s;return function(self){return eval(compiled)}(self)},$$9.$$s=self,$$9.$$arity=0,$$9))):$truthy(args["$any?"]())&&$$$("::","Kernel").$raise($$$("::","ArgumentError"),"wrong number of arguments ("+args.$size()+" for 0)");var old=block.$$s,result;if(block.$$s=null,self.$$is_a_module){self.$$eval=!0;try{result=block.call(self,self)}finally{self.$$eval=!1}}else result=block.call(self,self);return block.$$s=old,result},$BasicObject_instance_eval$8.$$arity=-1),Opal.def(self,"$instance_exec",$BasicObject_instance_exec$10=function(){var e,t=$BasicObject_instance_exec$10.$$p,r=t||nil,n=this;t&&($BasicObject_instance_exec$10.$$p=null),t&&($BasicObject_instance_exec$10.$$p=null),e=Opal.slice.call(arguments,0,arguments.length),$truthy(r)||$$$("::","Kernel").$raise($$$("::","ArgumentError"),"no block given");var $,i=r.$$s;if(r.$$s=null,n.$$is_a_module){n.$$eval=!0;try{$=r.apply(n,e)}finally{n.$$eval=!1}}else $=r.apply(n,e);return r.$$s=i,$},$BasicObject_instance_exec$10.$$arity=-1),Opal.def(self,"$singleton_method_added",$BasicObject_singleton_method_added$11=function(){return Opal.slice.call(arguments,0,arguments.length),nil},$BasicObject_singleton_method_added$11.$$arity=-1),Opal.def(self,"$singleton_method_removed",$BasicObject_singleton_method_removed$12=function(){return Opal.slice.call(arguments,0,arguments.length),nil},$BasicObject_singleton_method_removed$12.$$arity=-1),Opal.def(self,"$singleton_method_undefined",$BasicObject_singleton_method_undefined$13=function(){return Opal.slice.call(arguments,0,arguments.length),nil},$BasicObject_singleton_method_undefined$13.$$arity=-1),Opal.def(self,"$method_missing",$BasicObject_method_missing$14=function(e){var t=$BasicObject_method_missing$14.$$p,r=this,n=nil;return t&&($BasicObject_method_missing$14.$$p=null),t&&($BasicObject_method_missing$14.$$p=null),Opal.slice.call(arguments,1,arguments.length),n=$truthy(r.$inspect&&!r.$inspect.$$stub)?"undefined method `"+e+"' for "+r.$inspect()+":"+r.$$class:"undefined method `"+e+"' for "+r.$$class,$$$("::","Kernel").$raise($$$("::","NoMethodError").$new(n,e))},$BasicObject_method_missing$14.$$arity=-2),Opal.def(self,"$respond_to_missing?",$BasicObject_respond_to_missing$ques$15=function(e,t){return null==t&&(t=!1),!1},$BasicObject_respond_to_missing$ques$15.$$arity=-2),nil&&"respond_to_missing?"}($nesting[0],null,$nesting)},Opal.modules["corelib/kernel"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e",b=function(e){var t=this;t.$$comparable=!0;var r=t["$=="](e);return r&&r!==i?0:i},b.$$arity=1),e.def(ze,"$method",w=function(e){var t=this,r=t["$"+e];return r&&!r.$$stub||t.$raise(o(Se,"NameError").$new("undefined method `"+e+"' for class `"+t.$class()+"'",e)),o(Se,"Method").$new(t,r.$$owner||t.$class(),r,e)},w.$$arity=1),e.def(ze,"$methods",E=function(t){var r=this;return null==t&&(t=!0),l(t)?e.methods(r):e.own_methods(r)},E.$$arity=-1),e.def(ze,"$public_methods",O=function(t){var r=this;return null==t&&(t=!0),l(t)?e.methods(r):e.receiver_methods(r)},O.$$arity=-1),e.def(ze,"$Array",x=function(e){var t;return e===i?[]:e.$$is_array?e:(t=o(Se,"Opal")["$coerce_to?"](e,o(Se,"Array"),"to_ary"))!==i?t:(t=o(Se,"Opal")["$coerce_to?"](e,o(Se,"Array"),"to_a"))!==i?t:[e]},x.$$arity=1),e.def(ze,"$at_exit",M=function(){var e=M.$$p,t=e||i,r=i;return null==f.__at_exit__&&(f.__at_exit__=i),e&&(M.$$p=null),e&&(M.$$p=null),f.__at_exit__=l(r=f.__at_exit__)?r:[],f.__at_exit__["$<<"](t),t},M.$$arity=0),e.def(ze,"$caller",k=function(e,t){var r,n;null==e&&(e=1),null==t&&(t=i),n=[];for(var $=e+1,a=(r=(new Error).$backtrace()).length;$0&&(r=t[0],t.splice(0,1)),null==r&&(r="each"),n=t,_(o(Se,"Enumerator"),"for",[l,r].concat(e.to_a(n)),a.$to_proc())},q.$$arity=-1),h(ze,"to_enum","enum_for"),e.def(ze,"$equal?",C=function(e){return this===e},C.$$arity=1),e.def(ze,"$exit",F=function(t){var r=i;for(null==f.__at_exit__&&(f.__at_exit__=i),null==t&&(t=!0),f.__at_exit__=l(r=f.__at_exit__)?r:[];!l(f.__at_exit__["$empty?"]());)f.__at_exit__.$pop().$call();return t=t.$$is_boolean?t?0:1:s(t,o(Se,"Integer"),"to_int"),e.exit(t),i},F.$$arity=-1),e.def(ze,"$extend",P=function(){var t,r=this;t=e.slice.call(arguments,0,arguments.length);for(var n=r.$singleton_class(),$=t.length-1;$>=0;$--){var i=t[$];i.$$is_module||r.$raise(o(Se,"TypeError"),"wrong argument type "+i.$class()+" (expected Module)"),i.$append_features(n),i.$extend_object(r),i.$extended(r)}return r},P.$$arity=-1),e.def(ze,"$gets",D=function(){var t;return null==f.stdin&&(f.stdin=i),t=e.slice.call(arguments,0,arguments.length),_(f.stdin,"gets",e.to_a(t))},D.$$arity=-1),e.def(ze,"$hash",B=function(){return this.$__id__()},B.$$arity=0),e.def(ze,"$initialize_copy",U=function(){return i},U.$$arity=1),e.def(ze,"$inspect",L=function(){var r,n=this,$=i;try{return $="",_(n.$instance_variables(),"each",[],((r=function(e){var n=null==r.$$s?this:r.$$s;return null==e&&(e=i), +$=t($," "+e+"="+n.$instance_variable_get(e).$inspect())}).$$s=n,r.$$arity=1,r)),"#<"+n.$class()+":0x"+n.$__id__().$to_s(16)+$+">"}catch(a){if(!e.rescue(a,[o(Se,"StandardError")]))throw a;try{return"#<"+n.$class()+":0x"+n.$__id__().$to_s(16)+">"}finally{e.pop_exception()}}},L.$$arity=0),e.def(ze,"$instance_of?",X=function(e){var t=this;return e.$$is_class||e.$$is_module||t.$raise(o(Se,"TypeError"),"class or module required"),t.$$class===e},X.$$arity=1),e.def(ze,"$instance_variable_defined?",G=function(t){var r=this;return t=o(Se,"Opal")["$instance_variable_name!"](t),e.hasOwnProperty.call(r,t.substr(1))},G.$$arity=1),e.def(ze,"$instance_variable_get",H=function(t){var r=this;t=o(Se,"Opal")["$instance_variable_name!"](t);var n=r[e.ivar(t.substr(1))];return null==n?i:n},H.$$arity=1),e.def(ze,"$instance_variable_set",Y=function(t,r){var n=this;return t=o(Se,"Opal")["$instance_variable_name!"](t),n[e.ivar(t.substr(1))]=r},Y.$$arity=2),e.def(ze,"$remove_instance_variable",K=function(t){var r=this;t=o(Se,"Opal")["$instance_variable_name!"](t);var n,$=e.ivar(t.substr(1));return r.hasOwnProperty($)?(n=r[$],delete r[$],n):r.$raise(o(Se,"NameError"),"instance variable "+t+" not defined")},K.$$arity=1),e.def(ze,"$instance_variables",V=function(){var e,t=this,r=[];for(var n in t)t.hasOwnProperty(n)&&"$"!==n.charAt(0)&&(e="$"===n.substr(-1)?n.slice(0,n.length-1):n,r.push("@"+e));return r},V.$$arity=0),e.def(ze,"$Integer",Z=function(e,t){var r,n,$,a=this;return e.$$is_string?"0"===e?0:(t===undefined?t=0:(1===(t=s(t,o(Se,"Integer"),"to_int"))||t<0||t>36)&&a.$raise(o(Se,"ArgumentError"),"invalid radix "+t),n=(n=(n=e.toLowerCase()).replace(/(\d)_(?=\d)/g,"$1")).replace(/^(\s*[+-]?)(0[bodx]?)/,function(r,n,$){switch($){case"0b":if(0===t||2===t)return t=2,n;case"0":case"0o":if(0===t||8===t)return t=8,n;case"0d":if(0===t||10===t)return t=10,n;case"0x":if(0===t||16===t)return t=16,n}a.$raise(o(Se,"ArgumentError"),'invalid value for Integer(): "'+e+'"')}),$="0-"+((t=0===t?10:t)<=10?t-1:"9a-"+String.fromCharCode(t-11+97)),new RegExp("^\\s*[+-]?["+$+"]+\\s*$").test(n)||a.$raise(o(Se,"ArgumentError"),'invalid value for Integer(): "'+e+'"'),r=parseInt(n,t),isNaN(r)&&a.$raise(o(Se,"ArgumentError"),'invalid value for Integer(): "'+e+'"'),r):(t!==undefined&&a.$raise(o(Se,"ArgumentError"),"base specified for non string value"),e===i&&a.$raise(o(Se,"TypeError"),"can't convert nil into Integer"),e.$$is_number?((e===Infinity||e===-Infinity||isNaN(e))&&a.$raise(o(Se,"FloatDomainError"),e),Math.floor(e)):e["$respond_to?"]("to_int")&&(r=e.$to_int())!==i?r:o(Se,"Opal")["$coerce_to!"](e,o(Se,"Integer"),"to_i"))},Z.$$arity=-2),e.def(ze,"$Float",J=function(e){var t,r=this;return e===i&&r.$raise(o(Se,"TypeError"),"can't convert nil into Float"),e.$$is_string?(t=(t=e.toString()).replace(/(\d)_(?=\d)/g,"$1"),/^\s*[-+]?0[xX][0-9a-fA-F]+\s*$/.test(t)?r.$Integer(t):(/^\s*[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?\s*$/.test(t)||r.$raise(o(Se,"ArgumentError"),'invalid value for Float(): "'+e+'"'),parseFloat(t))):o(Se,"Opal")["$coerce_to!"](e,o(Se,"Float"),"to_f")},J.$$arity=1),e.def(ze,"$Hash",W=function(e){var t=i;return l(l(t=e["$nil?"]())?t:e["$=="]([]))?d([],{}):l(o(Se,"Hash")["$==="](e))?e:o(Se,"Opal")["$coerce_to!"](e,o(Se,"Hash"),"to_hash")},W.$$arity=1),e.def(ze,"$is_a?",Q=function(t){var r=this;return t.$$is_class||t.$$is_module||r.$raise(o(Se,"TypeError"),"class or module required"),e.is_a(r,t)},Q.$$arity=1),e.def(ze,"$itself",ee=function(){return this},ee.$$arity=0),h(ze,"kind_of?","is_a?"),e.def(ze,"$lambda",te=function(){var t=te.$$p,r=t||i;return t&&(te.$$p=null),t&&(te.$$p=null),e.lambda(r)},te.$$arity=0),e.def(ze,"$load",re=function(t){return t=o(Se,"Opal")["$coerce_to!"](t,o(Se,"String"),"to_str"),e.load(t)},re.$$arity=1),e.def(ze,"$loop",ne=function(){var t,r=ne.$$p,n=r||i,$=this,s=i;if(r&&(ne.$$p=null),n===i)return _($,"enum_for",["loop"],((t=function(){null==t.$$s||t.$$s;return a(o(Se,"Float"),"INFINITY")}).$$s=$,t.$$arity=0,t));for(;l(!0);)try{e.yieldX(n,[])}catch(u){if(!e.rescue(u,[o(Se,"StopIteration")]))throw u;s=u;try{return s.$result()}finally{e.pop_exception()}}return $},ne.$$arity=0),e.def(ze,"$nil?",$e=function(){return!1},$e.$$arity=0),h(ze,"object_id","__id__"),e.def(ze,"$printf",ie=function(){var t,r,n=this;return t=e.slice.call(arguments,0,arguments.length),l((r=t)["$any?"]())&&n.$print(_(n,"format",e.to_a(r))),i},ie.$$arity=-1),e.def(ze,"$proc",ae=function(){var e=ae.$$p,t=e||i,r=this;return e&&(ae.$$p=null),e&&(ae.$$p=null),l(t)||r.$raise(o(Se,"ArgumentError"),"tried to create Proc object without a block"),t.$$is_lambda=!1,t},ae.$$arity=0),e.def(ze,"$puts",oe=function(){var t;return null==f.stdout&&(f.stdout=i),t=e.slice.call(arguments,0,arguments.length),_(f.stdout,"puts",e.to_a(t))},oe.$$arity=-1),e.def(ze,"$p",le=function(){var t,n,$,a=this;return t=e.slice.call(arguments,0,arguments.length),_(n=t,"each",[],(($=function(e){null==$.$$s||$.$$s;return null==f.stdout&&(f.stdout=i),null==e&&(e=i),f.stdout.$puts(e.$inspect())}).$$s=a,$.$$arity=1,$)),l(r(n.$length(),1))?n["$[]"](0):n},le.$$arity=-1),e.def(ze,"$print",se=function(){var t;return null==f.stdout&&(f.stdout=i),t=e.slice.call(arguments,0,arguments.length),_(f.stdout,"print",e.to_a(t))},se.$$arity=-1),e.def(ze,"$readline",ue=function(){var t;return null==f.stdin&&(f.stdin=i),t=e.slice.call(arguments,0,arguments.length),_(f.stdin,"readline",e.to_a(t))},ue.$$arity=-1),e.def(ze,"$warn",ce=function(){var r,$,a,s,u,c,h,p=this,y=i,g=i;if(null==f.VERBOSE&&(f.VERBOSE=i),null==f.stderr&&(f.stderr=i),r=e.slice.call(arguments,0,arguments.length),null==($=e.extract_kwargs(r)))$=d([],{});else if(!$.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return a=r,null==(s=$.$$smap.uplevel)&&(s=i),l(s)&&(s=o(Se,"Opal")["$coerce_to!"](s,o(Se,"Integer"),"to_str"),l(n(s,0))&&p.$raise(o(Se,"ArgumentError"),"negative level ("+s+")"),c=(u=p.$caller(t(s,1),1).$first())===i||null==u?i:_(u,"split",[":in `"]),y=c===i||null==c?i:_(c,"first",[]),l(y)&&(y+=": "),a=_(a,"map",[],((h=function(e){null==h.$$s||h.$$s;return null==e&&(e=i),y+"warning: "+e}).$$s=p,h.$$arity=1,h))),l(l(g=f.VERBOSE["$nil?"]())?g:a["$empty?"]())?i:_(f.stderr,"puts",e.to_a(a))},ce.$$arity=-1),e.def(ze,"$raise",fe=function(t,r,n){if(null==f["!"]&&(f["!"]=i),null==f["@"]&&(f["@"]=i),null==r&&(r=i),null==n&&(n=i),null==t&&f["!"]!==i)throw f["!"];throw null==t?t=o(Se,"RuntimeError").$new(""):u(t,"$to_str")?t=o(Se,"RuntimeError").$new(t.$to_str()):t.$$is_class&&u(t,"$exception")?t=t.$exception(r):t.$$is_exception||(t=o(Se,"TypeError").$new("exception class/object expected")),n!==i&&t.$set_backtrace(n),f["!"]!==i&&e.exceptions.push(f["!"]),f["!"]=t,f["@"]=t.$backtrace(),t},fe.$$arity=-1),h(ze,"fail","raise"),e.def(ze,"$rand",de=function(e){return e===undefined?a(o(Se,"Random"),"DEFAULT").$rand():(e.$$is_number&&(e<0&&(e=Math.abs(e)),e%1!=0&&(e=e.$to_i()),0===e&&(e=undefined)),a(o(Se,"Random"),"DEFAULT").$rand(e))},de.$$arity=-1),e.def(ze,"$respond_to?",_e=function(e,t){var r=this;null==t&&(t=!1);var n=r["$"+e];return"function"==typeof n&&!n.$$stub||!0!==r["$respond_to_missing?"].$$pristine&&r["$respond_to_missing?"](e,t)},_e.$$arity=-2),e.def(ze,"$respond_to_missing?",he=function(e,t){return null==t&&(t=!1),!1},he.$$arity=-2),o(Se,"Opal").$pristine(ze,"respond_to?","respond_to_missing?"),e.def(ze,"$require",pe=function(t){return"string"!=typeof t&&e.String&&e.Array&&(t=o(Se,"Opal")["$coerce_to!"](t,o(Se,"String"),"to_str")),e.require(t)},pe.$$arity=1),e.def(ze,"$require_relative",ye=function(t){return o(Se,"Opal")["$try_convert!"](t,o(Se,"String"),"to_str"),t=o(Se,"File").$expand_path(o(Se,"File").$join(e.current_file,"..",t)),e.require(t)},ye.$$arity=1),e.def(ze,"$require_tree",ge=function(t,r){var n;if(null==r)r=d([],{});else if(!r.$$is_hash)throw e.ArgumentError.$new("expected kwargs");null==(n=r.$$smap.autoload)&&(n=!1);var $=[];for(var i in t=o(Se,"File").$expand_path(t),"."===(t=e.normalize(t))&&(t=""),e.modules)i["$start_with?"](t)&&(n?$.push([i,!0]):$.push([i,e.require(i)]));return $},ge.$$arity=-2),h(ze,"send","__send__"),h(ze,"public_send","__send__"),e.def(ze,"$singleton_class",me=function(){var t=this;return e.get_singleton_class(t)},me.$$arity=0),e.def(ze,"$sleep",ve=function(t){var r=this;null==t&&(t=i),t===i&&r.$raise(o(Se,"TypeError"),"can't convert NilClass into time interval"),t.$$is_number||r.$raise(o(Se,"TypeError"),"can't convert "+t.$class()+" into time interval"),t<0&&r.$raise(o(Se,"ArgumentError"),"time interval must be positive");for(var n=e.global.performance?function(){return performance.now()}:function(){return new Date},$=n();n()-$<=1e3*t;);return Math.round(t)},ve.$$arity=-1),e.def(ze,"$srand",be=function(e){return null==e&&(e=o(Se,"Random").$new_seed()),o(Se,"Random").$srand(e)},be.$$arity=-1),e.def(ze,"$String",we=function(e){var t=i;return l(t=o(Se,"Opal")["$coerce_to?"](e,o(Se,"String"),"to_str"))?t:o(Se,"Opal")["$coerce_to!"](e,o(Se,"String"),"to_s")},we.$$arity=1),e.def(ze,"$tap",Ee=function(){var t=Ee.$$p,r=t||i,n=this;return t&&(Ee.$$p=null),t&&(Ee.$$p=null),e.yield1(r,n),n},Ee.$$arity=0),e.def(ze,"$to_proc",Oe=function(){return this},Oe.$$arity=0),e.def(ze,"$to_s",xe=function(){var e=this;return"#<"+e.$class()+":0x"+e.$__id__().$to_s(16)+">"},xe.$$arity=0),e.def(ze,"$catch",Me=function(t){var r=Me.$$p,n=r||i,$=this,a=i,s=i;r&&(Me.$$p=null),null==t&&(t=i);try{return t=l(a=t)?a:o(Se,"Object").$new(),e.yield1(n,t)}catch(u){if(!e.rescue(u,[o(Se,"UncaughtThrowError")]))throw u;s=u;try{return s.$tag()["$=="](t)?s.$value():$.$raise()}finally{e.pop_exception()}}},Me.$$arity=-1),e.def(ze,"$throw",ke=function(e,t){return null==t&&(t=i),this.$raise(o(Se,"UncaughtThrowError").$new(e,t))},ke.$$arity=-2),e.def(ze,"$open",Ae=function(){var t,r=Ae.$$p,n=r||i;return r&&(Ae.$$p=null),r&&(Ae.$$p=null),t=e.slice.call(arguments,0,arguments.length),_(o(Se,"File"),"open",e.to_a(t),n.$to_proc())},Ae.$$arity=-1),e.def(ze,"$yield_self",Ie=function(){var t,r=Ie.$$p,n=r||i,$=this;return r&&(Ie.$$p=null),n===i?_($,"enum_for",["yield_self"],((t=function(){null==t.$$s||t.$$s;return 1}).$$s=$,t.$$arity=0,t)):e.yield1(n,$)},Ie.$$arity=0),h(ze,"then","yield_self"),o(Se,"Opal").$pristine(ze,"method_missing")}($[0],$),function(t,$super,r){var n=p(t,null,"Object"),$=[n].concat(r);return delete e.Object.$$prototype.$require,n.$include(o($,"Kernel"))}($[0],0,$)},Opal.modules["corelib/error"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}e.top;var r=[],n=e.nil,$=e.$$$,i=e.$$,a=e.klass,o=e.gvars,l=e.send,s=e.hash2,u=e.truthy,c=e.module,f=e.send2,d=e.find_super;return e.add_stubs(["$new","$map","$backtrace","$clone","$to_s","$tty?","$include?","$raise","$dup","$!","$empty?","$caller","$shift","$+","$class","$join","$cause","$full_message","$==","$reverse","$split","$attr_reader","$inspect"]),function(r,$super,c){function f(e){for(var t,r=[],n=0;n0?t[0]:n,i=new r.$$constructor($);return i.name=r.$$name,i.message=$,i.cause=o["!"],e.send(i,i.$initialize,t),e.config.enable_stack_trace&&Error.captureStackTrace&&Error.captureStackTrace(i,x),i},d.$$arity=-1),x=M.$new,e.defs(M,"$exception",_=function(){var t,r=this;return t=e.slice.call(arguments,0,arguments.length),l(r,"new",e.to_a(t))},_.$$arity=-1),e.def(M,"$initialize",h=function(){var t,r=this;return t=e.slice.call(arguments,0,arguments.length),r.message=t.length>0?t[0]:n},h.$$arity=-1),e.def(M,"$backtrace",p=function(){var e=this;if(e.backtrace)return e.backtrace;var t=e.stack;return void 0!==t&&t.$$is_string?e.backtrace=f(t.split("\n").slice(0,15)):t?e.backtrace=f(t.slice(0,15)):[]},p.$$arity=0),e.def(M,"$backtrace_locations",y=function(){var e,t,r=this;return r.backtrace_locations?r.backtrace_locations:(r.backtrace_locations=(e=r.$backtrace())===n||null==e?n:l(e,"map",[],((t=function(e){null==t.$$s||t.$$s;return null==e&&(e=n),$($($("::","Thread"),"Backtrace"),"Location").$new(e)}).$$s=r,t.$$arity=1,t)),r.backtrace_locations)},y.$$arity=0),e.def(M,"$cause",g=function(){return this.cause||n},g.$$arity=0),e.def(M,"$exception",m=function(e){var t=this;if(null==e&&(e=n),e===n||t===e)return t;var r=t.$clone();return r.message=e,t.backtrace&&(r.backtrace=t.backtrace.$dup()),r.stack=t.stack,r.cause=t.cause,r},m.$$arity=-1),e.def(M,"$message",v=function(){return this.$to_s()},v.$$arity=0),e.def(M,"$full_message",b=function(r){var $,a,c,f=this,d=n,_=n,h=n,p=n,y=n,g=n;if(null==o.stderr&&(o.stderr=n),null==r)r=s([],{});else if(!r.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==($=r.$$smap.highlight)&&($=o.stderr["$tty?"]()),null==(a=r.$$smap.order)&&(a="top"),u([!0,!1]["$include?"]($))||f.$raise(i(k,"ArgumentError"),"expected true or false as highlight: "+$),u(["top","bottom"]["$include?"](a))||f.$raise(i(k,"ArgumentError"),"expected :top or :bottom as order: "+a),u($)?(d="\x1b[1;4m",_="\x1b[1m",h="\x1b[m"):d=_=h="",p=f.$backtrace().$dup(),u(u(y=p["$!"]())?y:p["$empty?"]())&&(p=f.$caller()),g=t(g=t(g=p.$shift()+": ",""+_+f.$to_s()+" ("+d+f.$class()+h+_+")"+h+"\n"),l(p,"map",[],(c=function(e){null==c.$$s||c.$$s;return null==e&&(e=n),"\tfrom "+e+"\n"},c.$$s=f,c.$$arity=1,c)).$join()),u(f.$cause())&&(g=t(g,f.$cause().$full_message(s(["highlight"],{highlight:$})))),a["$=="]("bottom")&&(g=t(_+"Traceback"+h+" (most recent call last):\n",g=g.$split("\n").$reverse().$join("\n"))),g},b.$$arity=-1),e.def(M,"$inspect",w=function(){var e=this,t=n;return t=e.$to_s(),u(t["$empty?"]())?e.$class().$to_s():"#<"+e.$class().$to_s()+": "+e.$to_s()+">"},w.$$arity=0),e.def(M,"$set_backtrace",E=function(e){var r,$,a,o=this,s=!0;if(e===n)o.backtrace=n,o.stack="";else if(e.$$is_string)o.backtrace=[e],o.stack=" from "+e;else{if(e.$$is_array){for($=0,a=e.length;$t:e["$>"](t)}e.top;var r=[],n=e.nil,$=(e.$$$,e.$$),i=e.klass,a=e.hash2,o=e.alias,l=e.truthy;return e.add_stubs(["$raise","$name","$new","$>","$length","$Rational"]),function(r,$super,s){var u,c,f,d,_,h,p,y,g,m,v,b,w,E,O,x,M,k,A=i(r,null,"NilClass"),I=[A].concat(s);A.$$prototype.$$meta=A,function(t,r){var n,i=[t].concat(r);e.def(t,"$allocate",n=function(){var e=this;return e.$raise($(i,"TypeError"),"allocator undefined for "+e.$name())},n.$$arity=0),e.udef(t,"$new")}(e.get_singleton_class(A),I),e.def(A,"$!",u=function(){return!0},u.$$arity=0),e.def(A,"$&",c=function(){return!1},c.$$arity=1),e.def(A,"$|",f=function(e){return!1!==e&&e!==n},f.$$arity=1),e.def(A,"$^",d=function(e){return!1!==e&&e!==n},d.$$arity=1),e.def(A,"$==",_=function(e){return e===n},_.$$arity=1),e.def(A,"$dup",h=function(){return n},h.$$arity=0),e.def(A,"$clone",p=function(t){if(null==t)t=a([],{});else if(!t.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==t.$$smap.freeze&&!0,n},p.$$arity=-1),e.def(A,"$inspect",y=function(){return"nil"},y.$$arity=0),e.def(A,"$nil?",g=function(){return!0},g.$$arity=0),e.def(A,"$singleton_class",m=function(){return $(I,"NilClass")},m.$$arity=0),e.def(A,"$to_a",v=function(){return[]},v.$$arity=0),e.def(A,"$to_h",b=function(){return e.hash()},b.$$arity=0),e.def(A,"$to_i",w=function(){return 0},w.$$arity=0),o(A,"to_f","to_i"),e.def(A,"$to_s",E=function(){return""},E.$$arity=0),e.def(A,"$to_c",O=function(){return $(I,"Complex").$new(0,0)},O.$$arity=0),e.def(A,"$rationalize",x=function(){var r,n=this;return r=e.slice.call(arguments,0,arguments.length),l(t(r.$length(),1))&&n.$raise($(I,"ArgumentError")),n.$Rational(0,1)},x.$$arity=-1),e.def(A,"$to_r",M=function(){return this.$Rational(0,1)},M.$$arity=0),e.def(A,"$instance_variables",k=function(){return[]},k.$$arity=0)}(r[0],0,r),e.const_set(r[0],"NIL",n)},Opal.modules["corelib/boolean"]=function(e){e.top;var t=[],r=e.nil,n=(e.$$$,e.$$),$=e.klass,i=e.alias,a=e.hash2,o=e.truthy,l=e.send2,s=e.find_super;return e.add_stubs(["$raise","$name"]),function(t,$super,u){var c,f,d,_,h,p,y,g,m,v,b,w,E=$(t,$super,"Boolean"),O=[E].concat(u);e.defineProperty(E.$$prototype,"$$is_boolean",!0);for(var x=["$$class","$$meta"],M=0;Mt:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e","$<","$===","$raise","$class","$<=>","$equal?"]),function(n,s){function u(n){return e.is_a(n,e.Integer)?n:t(n,0)?1:r(n,0)?-1:0}function c(e,t){var r;w=t,r=$["$==="](w)||(!0)["$==="](w)||(!1)["$==="](w)||i(b,"Integer")["$==="](w)||i(b,"Float")["$==="](w)?t.$inspect():t.$$class,v.$raise(i(b,"ArgumentError"),"comparison of "+e.$class()+" with "+r+" failed")}function f(e,t){var r=e["$<=>"](t);return a(r)&&c(e,t),u(r)}var d,_,h,p,y,g,m,v=o(n,"Comparable"),b=[v].concat(s),w=$;return e.def(v,"$==",d=function(t){var r=this,n=$;return!!l(r["$equal?"](t))||r["$<=>"]!=e.Kernel["$<=>"]&&(r.$$comparable?(delete r.$$comparable,!1):!!l(n=r["$<=>"](t))&&0==u(n))},d.$$arity=1),e.def(v,"$>",_=function(e){return f(this,e)>0},_.$$arity=1),e.def(v,"$>=",h=function(e){return f(this,e)>=0},h.$$arity=1),e.def(v,"$<",p=function(e){return f(this,e)<0},p.$$arity=1),e.def(v,"$<=",y=function(e){return f(this,e)<=0},y.$$arity=1),e.def(v,"$between?",g=function(e,n){var $=this;return!r($,e)&&!t($,n)},g.$$arity=2),e.def(v,"$clamp",m=function(t,r){var n,a,o=this;if(null==r&&(r=$),r===$&&(e.is_a(t,e.Range)||o.$raise(i(b,"TypeError"),"wrong argument type "+t.$class()+" (expected Range)"),a=t.excl,r=t.end,t=t.begin,r!==$&&a&&o.$raise(i(b,"ArgumentError"),"cannot clamp with an exclusive range")),t!==$&&r!==$&&f(t,r)>0&&o.$raise(i(b,"ArgumentError"),"min argument must be smaller than max argument"),t!==$){if(0==(n=f(o,t)))return o;if(n<0)return t}return r!==$&&(n=f(o,r))>0?r:o},m.$$arity=-2),$&&"clamp"}(n[0],n)},Opal.modules["corelib/regexp"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var n=[],$=e.nil,i=(e.$$$,e.$$),a=e.coerce_to,o=e.klass,l=e.send2,s=e.find_super,u=e.truthy,c=e.gvars,f=e.alias,d=e.send,_=e.hash2;return e.add_stubs(["$nil?","$[]","$raise","$escape","$options","$to_str","$new","$join","$coerce_to!","$!","$match","$coerce_to?","$begin","$uniq","$map","$scan","$source","$to_proc","$transform_values","$group_by","$each_with_index","$+","$last","$=~","$attr_reader","$include?","$names","$regexp","$named_captures","$===","$captures","$-","$inspect","$empty?","$each","$to_a"]),function(e,$super,t){[o(e,$super,"RegexpError")].concat(t)}(n[0],i(n,"StandardError"),n),function(r,$super,n){var h,p,y,g,m,v,b,w,E,O,x,M,k=o(r,$super,"Regexp"),A=[k].concat(n);e.const_set(A[0],"IGNORECASE",1),e.const_set(A[0],"EXTENDED",2),e.const_set(A[0],"MULTILINE",4),e.defineProperty(k.$$prototype,"$$is_regexp",!0),function(t,r){var n,a,o,d,_,h=[t].concat(r);e.def(t,"$allocate",n=function(){var e=n.$$p,t=this,r=$;return e&&(n.$$p=null),(r=l(t,s(t,"allocate",n,!1,!0),"allocate",[],e)).uninitialized=!0,r},n.$$arity=0),e.def(t,"$escape",a=function(t){return e.escape_regexp(t)},a.$$arity=1),e.def(t,"$last_match",o=function(e){return null==c["~"]&&(c["~"]=$),null==e&&(e=$),u(e["$nil?"]())?c["~"]:u(c["~"])?c["~"]["$[]"](e):$},o.$$arity=-1),f(t,"quote","escape"),e.def(t,"$union",d=function(){var t,r,n,$,a,o,l=this;if(0==(t=e.slice.call(arguments,0,arguments.length)).length)return/(?!)/;if(1==t.length&&t[0].$$is_regexp)return t[0];r=t[0].$$is_array,t.length>1&&r&&l.$raise(i(h,"TypeError"),"no implicit conversion of Array into String"),r&&(t=t[0]),a=undefined,n=[];for(var s=0;s=r)return c["~"]=i(A,"MatchData").$new(f,u),o===$?c["~"]:e.yield1(o,c["~"]);f.lastIndex=u.index+1}},m.$$arity=-2),e.def(k,"$match?",v=function(t,r){var n,o=this;return o.uninitialized&&o.$raise(i(A,"TypeError"),"uninitialized Regexp"),r===undefined?t!==$&&o.test(a(t,i(A,"String"),"to_str")):(r=a(r,i(A,"Integer"),"to_int"),t!==$&&(t=a(t,i(A,"String"),"to_str"),!(r<0&&(r+=t.length)<0)&&!(null===(n=e.global_regexp(o).exec(t))||n.index/,_(["no_matchdata"],{no_matchdata:!0})),"map",[],"first".$to_proc()).$uniq()},b.$$arity=0),e.def(k,"$named_captures",w=function(){var e,r=this;return d(d(d(r.$source().$scan(/\(?<(\w+)>/,_(["no_matchdata"],{no_matchdata:!0})),"map",[],"first".$to_proc()).$each_with_index(),"group_by",[],"first".$to_proc()),"transform_values",[],((e=function(r){var n,i=null==e.$$s?this:e.$$s;return null==r&&(r=$),d(r,"map",[],((n=function(e){null==n.$$s||n.$$s;return null==e&&(e=$),t(e.$last(),1)}).$$s=i,n.$$arity=1,n))}).$$s=r,e.$$arity=1,e))},w.$$arity=0),e.def(k,"$~",E=function(){var e=this;return null==c._&&(c._=$),e["$=~"](c._)},E.$$arity=0),e.def(k,"$source",O=function(){return this.source},O.$$arity=0),e.def(k,"$options",x=function(){var e=this;e.uninitialized&&e.$raise(i(A,"TypeError"),"uninitialized Regexp");var t=0;return e.multiline&&(t|=i(A,"MULTILINE")),e.ignoreCase&&(t|=i(A,"IGNORECASE")),t},x.$$arity=0),e.def(k,"$casefold?",M=function(){return this.ignoreCase},M.$$arity=0),f(k,"to_s","source")}(n[0],RegExp,n),function(t,$super,n){var a,l,s,_,h,p,y,g,m,v,b,w,E,O,x=o(t,null,"MatchData"),M=[x].concat(n);return x.$$prototype.matches=$,x.$attr_reader("post_match","pre_match","regexp","string"),e.def(x,"$initialize",a=function(e,t){var r=this;c["~"]=r,r.regexp=e,r.begin=t.index,r.string=t.input,r.pre_match=t.input.slice(0,t.index),r.post_match=t.input.slice(t.index+t[0].length),r.matches=[];for(var n=0,i=t.length;n"},v.$$arity=0),e.def(x,"$length",b=function(){return this.matches.length},b.$$arity=0),f(x,"size","length"),e.def(x,"$to_a",w=function(){return this.matches},w.$$arity=0),e.def(x,"$to_s",E=function(){return this.matches[0]},E.$$arity=0),e.def(x,"$values_at",O=function(){var t,r=this;t=e.slice.call(arguments,0,arguments.length);var n,a,o,l=[];for(n=0;n","$==","$=~","$new","$force_encoding","$casecmp","$empty?","$ljust","$ceil","$/","$+","$rjust","$floor","$coerce_to!","$copy_singleton_methods","$initialize_clone","$initialize_dup","$enum_for","$chomp","$[]","$to_i","$each_line","$to_proc","$to_a","$class","$match","$match?","$captures","$proc","$succ","$escape","$include?","$upcase","$unicode_normalize","$pristine"]),n.$require("corelib/comparable"),n.$require("corelib/regexp"),function(n,$super,$){function h(e){function t(e){var t,r,n,$,i,o,l="",s=e.length;for(t=0;t0&&t(i=e.charCodeAt(t+1))&&Fe.$raise(a(Pe,"ArgumentError"),'invalid range "'+$+"-"+i+'" in string transliteration'),o=$+1;o1)?i.slice(1):i),l?f=r(f,i):c=r(c,i);if(c.length>0&&f.length>0){for(u="",n=0,$=c.length;n<$;n++)s=c.charAt(n),-1===f.indexOf(s)&&(u+=s);c=u,f=""}return c.length>0?"["+a(Pe,"Regexp").$escape(c)+"]":f.length>0?"[^"+a(Pe,"Regexp").$escape(f)+"]":null}var p,y,g,m,v,b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D,B,U,L,X,G,H,Y,K,V,Z,J,W,Q,ee,te,re,ne,$e,ie,ae,oe,le,se,ue,ce,fe,de,_e,he,pe,ye,ge,me,ve,be,we,Ee,Oe,xe,Me,ke,Ae,Ie,ze,Se,Ne,Re,je,Te,qe,Ce,Fe=s(n,$super,"String"),Pe=[Fe].concat($);Fe.$include(a(Pe,"Comparable")),e.defineProperty(Fe.$$prototype,"$$is_string",!0),e.defineProperty(Fe.$$prototype,"$$cast",function(e){var t=this.$$class;return t.$$constructor===String?e:new t.$$constructor(e)}),e.def(Fe,"$__id__",p=function(){return this.toString()},p.$$arity=0),u(Fe,"object_id","__id__"),e.defs(Fe,"$try_convert",y=function(e){return a(Pe,"Opal")["$coerce_to?"](e,a(Pe,"String"),"to_str")},y.$$arity=1),e.defs(Fe,"$new",g=function(){var t,r=this,n=(t=e.slice.call(arguments,0,arguments.length))[0]||"",$=t[t.length-1];return n=o(n,a(Pe,"String"),"to_str"),$&&$.$$is_hash&&$.$$smap.encoding&&(n=n.$force_encoding($.$$smap.encoding)),(n=new r.$$constructor(n)).$initialize.$$pristine||c(n,"initialize",e.to_a(t)),n},g.$$arity=-1),e.def(Fe,"$initialize",m=function(){var t,r;if(t=e.slice.call(arguments,0,arguments.length),null==(r=e.extract_kwargs(t)))r=f([],{});else if(!r.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return t.length>0&&(t[0],t.splice(0,1)),null==r.$$smap.encoding&&i,null==r.$$smap.capacity&&i,i},m.$$arity=-1),e.def(Fe,"$%",v=function(t){var r=this;return d(a(Pe,"Array")["$==="](t))?c(r,"format",[r].concat(e.to_a(t))):r.$format(r,t)},v.$$arity=1),e.def(Fe,"$*",b=function(e){var t=this;if((e=o(e,a(Pe,"Integer"),"to_int"))<0&&t.$raise(a(Pe,"ArgumentError"),"negative argument"),0===e)return t.$$cast("");var r="",n=t.toString();for(n.length*e>=1<<28&&t.$raise(a(Pe,"RangeError"),"multiply count must not overflow maximum string size");1==(1&e)&&(r+=n),0!==(e>>>=1);)n+=n;return t.$$cast(r)},b.$$arity=1),e.def(Fe,"$+",w=function(t){var r=this;if(""==(t=o(t,a(Pe,"String"),"to_str"))&&r.$$class===e.String)return r;if(""==r&&t.$$class===e.String)return t;var n=r+t;return r.encoding===n.encoding&&t.encoding===n.encoding?n:"UTF-8"===r.encoding.name||"UTF-8"===t.encoding.name?n:e.enc(n,r.encoding)},w.$$arity=1),e.def(Fe,"$<=>",E=function(e){var t=this;if(d(e["$respond_to?"]("to_str")))return t>(e=e.$to_str().$to_s())?1:t"](t);return r===i?i:r>0?-1:r<0?1:0},E.$$arity=1),e.def(Fe,"$==",O=function(e){var t=this;return e.$$is_string?t.toString()===e.toString():!!l(e,"$to_str")&&e["$=="](t)},O.$$arity=1),u(Fe,"eql?","=="),u(Fe,"===","=="),e.def(Fe,"$=~",x=function(e){var t=this;return e.$$is_string&&t.$raise(a(Pe,"TypeError"),"type mismatch: String given"),e["$=~"](t)},x.$$arity=1),e.def(Fe,"$[]",M=function(e,t){var r,n=this,$=n.length;if(e.$$is_range)return r=e.excl,t=o(e.end,a(Pe,"Integer"),"to_int"),e=o(e.begin,a(Pe,"Integer"),"to_int"),Math.abs(e)>$?i:(e<0&&(e+=$),t<0&&(t+=$),r||(t+=1),(t-=e)<0&&(t=0),n.$$cast(n.substr(e,t)));if(e.$$is_string)return null!=t&&n.$raise(a(Pe,"TypeError")),-1!==n.indexOf(e)?n.$$cast(e):i;if(e.$$is_regexp){var l=n.match(e);return null===l?(_["~"]=i,i):(_["~"]=a(Pe,"MatchData").$new(e,l),null==t?n.$$cast(l[0]):(t=o(t,a(Pe,"Integer"),"to_int"))<0&&-t=0&&t=$||e<0?i:n.$$cast(n.substr(e,1)):(t=o(t,a(Pe,"Integer"),"to_int"))<0?i:e>$||e<0?i:n.$$cast(n.substr(e,t))},M.$$arity=-2),u(Fe,"byteslice","[]"),e.def(Fe,"$b",k=function(){return new String(this).$force_encoding("binary")},k.$$arity=0),e.def(Fe,"$capitalize",A=function(){var e=this;return e.$$cast(e.charAt(0).toUpperCase()+e.substr(1).toLowerCase())},A.$$arity=0),e.def(Fe,"$casecmp",I=function(e){var t=this;if(!d(e["$respond_to?"]("to_str")))return i;e=o(e,a(Pe,"String"),"to_str").$to_s();var r=/^[\x00-\x7F]*$/;return r.test(t)&&r.test(e)&&(t=t.toLowerCase(),e=e.toLowerCase()),t["$<=>"](e)},I.$$arity=1),e.def(Fe,"$casecmp?",z=function(e){var t=this.$casecmp(e);return t===i?i:0===t},z.$$arity=1),e.def(Fe,"$center",S=function(e,n){var $=this;if(null==n&&(n=" "),e=o(e,a(Pe,"Integer"),"to_int"),n=o(n,a(Pe,"String"),"to_str").$to_s(),d(n["$empty?"]())&&$.$raise(a(Pe,"ArgumentError"),"zero width padding"),d(e<=$.length))return $;var i=$.$ljust(t(r(e,$.length),2).$ceil(),n),l=$.$rjust(t(r(e,$.length),2).$floor(),n);return $.$$cast(l+i.slice($.length))},S.$$arity=-2),e.def(Fe,"$chomp",N=function(e){var t,r=this;if(null==_["/"]&&(_["/"]=i),null==e&&(e=_["/"]),d(e===i||0===r.length))return r;if("\n"===(e=a(Pe,"Opal")["$coerce_to!"](e,a(Pe,"String"),"to_str").$to_s()))t=r.replace(/\r?\n?$/,"");else if(""===e)t=r.replace(/(\r?\n)+$/,"");else if(r.length>=e.length){r.substr(r.length-e.length,e.length)===e&&(t=r.substr(0,r.length-e.length))}return null!=t?r.$$cast(t):r},N.$$arity=-1),e.def(Fe,"$chop",R=function(){var e,t=this,r=t.length;return e=r<=1?"":"\n"===t.charAt(r-1)&&"\r"===t.charAt(r-2)?t.substr(0,r-2):t.substr(0,r-1),t.$$cast(e)},R.$$arity=0),e.def(Fe,"$chr",j=function(){return this.charAt(0)},j.$$arity=0),e.def(Fe,"$clone",T=function(){var e=this,t=i;return(t=new String(e)).$copy_singleton_methods(e),t.$initialize_clone(e),t},T.$$arity=0),e.def(Fe,"$dup",q=function(){var e=this,t=i;return(t=new String(e)).$initialize_dup(e),t},q.$$arity=0),e.def(Fe,"$count",C=function(){var t,r=this;0===(t=e.slice.call(arguments,0,arguments.length)).length&&r.$raise(a(Pe,"ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");var n=h(t);return null===n?0:r.length-r.replace(new RegExp(n,"g"),"").length},C.$$arity=-1),e.def(Fe,"$delete",F=function(){var t,r=this;0===(t=e.slice.call(arguments,0,arguments.length)).length&&r.$raise(a(Pe,"ArgumentError"),"ArgumentError: wrong number of arguments (0 for 1+)");var n=h(t);return null===n?r:r.$$cast(r.replace(new RegExp(n,"g"),""))},F.$$arity=-1),e.def(Fe,"$delete_prefix",P=function(e){var t=this;return e.$$is_string||(e=o(e,a(Pe,"String"),"to_str")),t.slice(0,e.length)===e?t.$$cast(t.slice(e.length)):t},P.$$arity=1),e.def(Fe,"$delete_suffix",D=function(e){var t=this;return e.$$is_string||(e=o(e,a(Pe,"String"),"to_str")),t.slice(t.length-e.length)===e?t.$$cast(t.slice(0,t.length-e.length)):t},D.$$arity=1),e.def(Fe,"$downcase",B=function(){var e=this;return e.$$cast(e.toLowerCase())},B.$$arity=0),e.def(Fe,"$each_line",U=function(t){var r,n,$,l,s,u,c,f=U.$$p,d=f||i,h=this;if(null==_["/"]&&(_["/"]=i),f&&(U.$$p=null),f&&(U.$$p=null),null==t&&(t=_["/"]),d===i)return h.$enum_for("each_line",t);if(t===i)return e.yield1(d,h),h;if(0===(t=o(t,a(Pe,"String"),"to_str")).length){for(n=0,$=(r=h.split(/(\n{2,})/)).length;n<$;n+=2)if(r[n]||r[n+1]){var p=(r[n]||"")+(r[n+1]||"");e.yield1(d,h.$$cast(p))}return h}for(s=h.$chomp(t),u=h.length!=s.length,n=0,l=(c=s.split(t)).length;n=i.length&&r.substr(r.length-i.length,i.length)==i)return!0}return!1},X.$$arity=-1),u(Fe,"equal?","==="),e.def(Fe,"$gsub",G=function(t,r){var n=G.$$p,$=n||i,l=this;if(n&&(G.$$p=null),n&&(G.$$p=null),r===undefined&&$===i)return l.$enum_for("gsub",t);var s,u,c,f="",d=i,h=0;for(t.$$is_regexp?t=e.global_multiline_regexp(t):(t=o(t,a(Pe,"String"),"to_str"),t=new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));;){if(null===(s=t.exec(l))){_["~"]=i,f+=l.slice(h);break}d=a(Pe,"MatchData").$new(t,s),r===undefined?(c=t.lastIndex,u=$(s[0]),t.lastIndex=c):r.$$is_hash?u=r["$[]"](s[0]).$to_s():(r.$$is_string||(r=o(r,a(Pe,"String"),"to_str")),u=r.replace(/([\\]+)([0-9+&`'])/g,function(e,t,r){if(t.length%2==0)return e;switch(r){case"+":for(var n=s.length-1;n>0;n--)if(s[n]!==undefined)return t.slice(1)+s[n];return"";case"&":return t.slice(1)+s[0];case"`":return t.slice(1)+l.slice(0,s.index);case"'":return t.slice(1)+l.slice(s.index+s[0].length);default:return t.slice(1)+(s[r]||"")}}).replace(/\\\\/g,"\\")),t.lastIndex===s.index?(f+=l.slice(h,s.index)+u+(l[s.index]||""),t.lastIndex+=1):f+=l.slice(h,s.index)+u,h=t.lastIndex}return _["~"]=d,l.$$cast(f)},G.$$arity=-2),e.def(Fe,"$hash",H=function(){return this.toString()},H.$$arity=0),e.def(Fe,"$hex",Y=function(){return this.$to_i(16)},Y.$$arity=0),e.def(Fe,"$include?",K=function(e){var t=this;return e.$$is_string||(e=o(e,a(Pe,"String"),"to_str")),-1!==t.indexOf(e)},K.$$arity=1),e.def(Fe,"$index",V=function(t,r){var n,$,l,s=this;if(r===undefined)r=0;else if((r=o(r,a(Pe,"Integer"),"to_int"))<0&&(r+=s.length)<0)return i;if(t.$$is_regexp)for(l=e.global_multiline_regexp(t);;){if(null===($=l.exec(s))){_["~"]=i,n=-1;break}if($.index>=r){_["~"]=a(Pe,"MatchData").$new(l,$),n=$.index;break}l.lastIndex=$.index+1}else n=0===(t=o(t,a(Pe,"String"),"to_str")).length&&r>s.length?-1:s.indexOf(t,r);return-1===n?i:n},V.$$arity=-2),e.def(Fe,"$inspect",Z=function(){var e=this,t=/[\\\"\x00-\x1f\u007F-\u009F\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,r={"\x07":"\\a","\x1b":"\\e","\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r","\x0B":"\\v",'"':'\\"',"\\":"\\\\"};return'"'+e.replace(t,function(t){return r[t]?r[t]:(t=t.charCodeAt(0))<=255&&(e.encoding["$binary?"]()||e.internal_encoding["$binary?"]())?"\\x"+("00"+t.toString(16).toUpperCase()).slice(-2):"\\u"+("0000"+t.toString(16).toUpperCase()).slice(-4)}).replace(/\#[\$\@\{]/g,"\\$&")+'"'},Z.$$arity=0),e.def(Fe,"$intern",J=function(){return this.toString()},J.$$arity=0),e.def(Fe,"$lines",W=function(e){var t=W.$$p,r=t||i,n=this,$=i;return null==_["/"]&&(_["/"]=i),t&&(W.$$p=null),t&&(W.$$p=null),null==e&&(e=_["/"]),$=c(n,"each_line",[e],r.$to_proc()),d(r)?n:$.$to_a()},W.$$arity=-1),e.def(Fe,"$ljust",Q=function(e,t){var r=this;if(null==t&&(t=" "),e=o(e,a(Pe,"Integer"),"to_int"),t=o(t,a(Pe,"String"),"to_str").$to_s(),d(t["$empty?"]())&&r.$raise(a(Pe,"ArgumentError"),"zero width padding"),d(e<=r.length))return r;var n=-1,$="";for(e-=r.length;++n=48&&r<=57||r>=65&&r<=90||r>=97&&r<=122)switch(r){case 57:i=!0,r=48;break;case 90:i=!0,r=65;break;case 122:i=!0,r=97;break;default:i=!1,r+=1}else-1===$?255===r?(i=!0,r=0):(i=!1,r+=1):i=!0;if(n=n.slice(0,t)+String.fromCharCode(r)+n.slice(t+1),i&&(0===t||t===$)){switch(r){case 65:case 97:break;default:r+=1}n=0===t?String.fromCharCode(r)+n:n.slice(0,t)+String.fromCharCode(r)+n.slice(t),i=!1}if(!i)break}return e.$$cast(n)},$e.$$arity=0),e.def(Fe,"$oct",ie=function(){var e,t=this,r=8;return/^\s*_/.test(t)?0:(t=t.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/i,function(e,t,n,$){switch($.charAt(0)){case"+":case"-":return e;case"0":if("x"===$.charAt(1)&&"0x"===n)return e}switch(n){case"0b":r=2;break;case"0":case"0o":r=8;break;case"0d":r=10;break;case"0x":r=16}return t+$}),e=parseInt(t.replace(/_(?!_)/g,""),r),isNaN(e)?0:e)},ie.$$arity=0),e.def(Fe,"$ord",ae=function(){var e=this;return"function"==typeof e.codePointAt?e.codePointAt(0):e.charCodeAt(0)},ae.$$arity=0),e.def(Fe,"$partition",oe=function(e){var t,r,n=this;return e.$$is_regexp?null===(r=e.exec(n))?t=-1:(a(Pe,"MatchData").$new(e,r),e=r[0],t=r.index):(e=o(e,a(Pe,"String"),"to_str"),t=n.indexOf(e)),-1===t?[n,"",""]:[n.slice(0,t),n.slice(t,t+e.length),n.slice(t+e.length)]},oe.$$arity=1),e.def(Fe,"$reverse",le=function(){return this.split("").reverse().join("")},le.$$arity=0),e.def(Fe,"$rindex",se=function(t,r){var n,$,l,s,u=this;if(r===undefined)r=u.length;else if((r=o(r,a(Pe,"Integer"),"to_int"))<0&&(r+=u.length)<0)return i;if(t.$$is_regexp){for($=null,l=e.global_multiline_regexp(t);!(null===(s=l.exec(u))||s.index>r);)$=s,l.lastIndex=$.index+1;null===$?(_["~"]=i,n=-1):(a(Pe,"MatchData").$new(l,$),n=$.index)}else t=o(t,a(Pe,"String"),"to_str"),n=u.lastIndexOf(t,r);return-1===n?i:n},se.$$arity=-2),e.def(Fe,"$rjust",ue=function(e,t){var r=this;if(null==t&&(t=" "),e=o(e,a(Pe,"Integer"),"to_int"),t=o(t,a(Pe,"String"),"to_str").$to_s(),d(t["$empty?"]())&&r.$raise(a(Pe,"ArgumentError"),"zero width padding"),d(e<=r.length))return r;var n=Math.floor(e-r.length),$=Math.floor(n/t.length),i=Array($+1).join(t),l=n-i.length;return r.$$cast(i+t.slice(0,l)+r)},ue.$$arity=-2),e.def(Fe,"$rpartition",ce=function(t){var r,n,$,i,l=this;if(t.$$is_regexp){for(n=null,$=e.global_multiline_regexp(t);null!==(i=$.exec(l));)n=i,$.lastIndex=n.index+1;null===n?r=-1:(a(Pe,"MatchData").$new($,n),t=n[0],r=n.index)}else t=o(t,a(Pe,"String"),"to_str"),r=l.lastIndexOf(t);return-1===r?["","",l]:[l.slice(0,r),l.slice(r,r+t.length),l.slice(r+t.length)]},ce.$$arity=1),e.def(Fe,"$rstrip",fe=function(){return this.replace(/[\s\u0000]*$/,"")},fe.$$arity=0),e.def(Fe,"$scan",de=function(t,r){var n,$=de.$$p,l=$||i,s=this;if($&&(de.$$p=null),$&&(de.$$p=null),null==r)r=f([],{});else if(!r.$$is_hash)throw e.ArgumentError.$new("expected kwargs");null==(n=r.$$smap.no_matchdata)&&(n=!1);var u,c=[],d=i;for(t.$$is_regexp?t=e.global_multiline_regexp(t):(t=o(t,a(Pe,"String"),"to_str"),t=new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"gm"));null!=(u=t.exec(s));)d=a(Pe,"MatchData").$new(t,u),l===i?1==u.length?c.push(u[0]):c.push(d.$captures()):1==u.length?e.yield1(l,u[0]):e.yield1(l,d.$captures()),t.lastIndex===u.index&&(t.lastIndex+=1);return n||(_["~"]=d),l!==i?s:c},de.$$arity=-2),u(Fe,"slice","[]"),e.def(Fe,"$split",_e=function(t,r){function n(){for(u=0;u=f.length)return n(),f;for(u=0;null!==s&&(u++,p=t.lastIndex,u+1!==r);)s=t.exec(h);return f.splice(r-1,f.length-1,h.slice(p)),n(),f},_e.$$arity=-1),e.def(Fe,"$squeeze",he=function(){var t,r=this;if(0===(t=e.slice.call(arguments,0,arguments.length)).length)return r.$$cast(r.replace(/(.)\1+/g,"$1"));var n=h(t);return null===n?r:r.$$cast(r.replace(new RegExp("("+n+")\\1+","g"),"$1"))},he.$$arity=-1),e.def(Fe,"$start_with?",pe=function(){for(var t,r=this,n=0,$=(t=e.slice.call(arguments,0,arguments.length)).length;n<$;n++)if(t[n].$$is_regexp){var l=t[n],s=l.exec(r);if(null!=s&&0===s.index)return _["~"]=a(Pe,"MatchData").$new(l,s),!0;_["~"]=i}else{var u=o(t[n],a(Pe,"String"),"to_str").$to_s();if(0===r.indexOf(u))return!0}return!1},pe.$$arity=-1),e.def(Fe,"$strip",ye=function(){return this.replace(/^\s*/,"").replace(/[\s\u0000]*$/,"")},ye.$$arity=0),e.def(Fe,"$sub",ge=function(e,t){var r=ge.$$p,n=r||i,$=this;r&&(ge.$$p=null),r&&(ge.$$p=null),e.$$is_regexp||(e=o(e,a(Pe,"String"),"to_str"),e=new RegExp(e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")));var l,s=e.exec($);return null===s?(_["~"]=i,l=$.toString()):(a(Pe,"MatchData").$new(e,s),t===undefined?(n===i&&$.$raise(a(Pe,"ArgumentError"),"wrong number of arguments (1 for 2)"),l=$.slice(0,s.index)+n(s[0])+$.slice(s.index+s[0].length)):t.$$is_hash?l=$.slice(0,s.index)+t["$[]"](s[0]).$to_s()+$.slice(s.index+s[0].length):(t=(t=o(t,a(Pe,"String"),"to_str")).replace(/([\\]+)([0-9+&`'])/g,function(e,t,r){if(t.length%2==0)return e;switch(r){case"+":for(var n=s.length-1;n>0;n--)if(s[n]!==undefined)return t.slice(1)+s[n];return"";case"&":return t.slice(1)+s[0];case"`":return t.slice(1)+$.slice(0,s.index);case"'":return t.slice(1)+$.slice(s.index+s[0].length);default:return t.slice(1)+(s[r]||"")}}).replace(/\\\\/g,"\\"),l=$.slice(0,s.index)+t+$.slice(s.index+s[0].length))),$.$$cast(l)},ge.$$arity=-2),u(Fe,"succ","next"),e.def(Fe,"$sum",me=function(e){var t=this;null==e&&(e=16),e=o(e,a(Pe,"Integer"),"to_int");for(var r=0,n=t.length,$=0;$36)&&t.$raise(a(Pe,"ArgumentError"),"invalid radix "+$),/^\s*_/.test(n)?0:(n=n.replace(/^(\s*[+-]?)(0[bodx]?)(.+)$/,function(e,t,r,n){switch(n.charAt(0)){case"+":case"-":return e;case"0":if("x"===n.charAt(1)&&"0x"===r&&(0===$||16===$))return e}switch(r){case"0b":if(0===$||2===$)return $=2,t+n;break;case"0":case"0o":if(0===$||8===$)return $=8,t+n;break;case"0d":if(0===$||10===$)return $=10,t+n;break;case"0x":if(0===$||16===$)return $=16,t+n}return e}),r=parseInt(n.replace(/_(?!_)/g,""),$),isNaN(r)?0:r)},we.$$arity=-1),e.def(Fe,"$to_proc",Ee=function(){var t,n=Ee.$$p,$=this,o=i;return n&&(Ee.$$p=null),o=r("$",$.valueOf()),c($,"proc",[],((t=function(){var r,n=null==t.$$s?this:t.$$s,$=t.$$p,l=$||i;$&&(t.$$p=null),0===(r=e.slice.call(arguments,0,arguments.length)).length&&n.$raise(a(Pe,"ArgumentError"),"no receiver given");var s=r[0];null==s&&(s=i);var u=s[o];return u?("function"==typeof l&&(u.$$p=l),1===r.length?u.call(s):u.apply(s,r.slice(1))):s.$method_missing.apply(s,r)}).$$s=$,t.$$arity=-1,t))},Ee.$$arity=0),e.def(Fe,"$to_s",Oe=function(){return this.toString()},Oe.$$arity=0),u(Fe,"to_str","to_s"),u(Fe,"to_sym","intern"),e.def(Fe,"$tr",xe=function(e,t){var r,n,$,i,l,s,u,c=this;if(e=o(e,a(Pe,"String"),"to_str").$to_s(),t=o(t,a(Pe,"String"),"to_str").$to_s(),0==e.length||e===t)return c;var f={},d=e.split(""),_=d.length,h=t.split(""),p=h.length,y=!1,g=null;"^"===d[0]&&d.length>1&&(y=!0,d.shift(),g=h[p-1],_-=1);var m=[],v=null;for(n=!1,r=0;r<_;r++)if(i=d[r],null==v)v=i,m.push(i);else if("-"===i)"-"===v?(m.push("-"),m.push("-")):r==_-1?m.push("-"):n=!0;else if(n){for((l=v.charCodeAt(0))>(s=i.charCodeAt(0))&&c.$raise(a(Pe,"ArgumentError"),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(s)+'" in string transliteration'),$=l+1;$0){var b=[],w=null;for(n=!1,r=0;r(s=i.charCodeAt(0))&&c.$raise(a(Pe,"ArgumentError"),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(s)+'" in string transliteration'),$=l+1;$0){var O=p>0?h[p-1]:"";for(r=0;r1&&(y=!0,d.shift(),g=h[p-1],_-=1);var m=[],v=null;for(n=!1,r=0;r<_;r++)if(i=d[r],null==v)v=i,m.push(i);else if("-"===i)"-"===v?(m.push("-"),m.push("-")):r==_-1?m.push("-"):n=!0;else if(n){for((l=v.charCodeAt(0))>(s=i.charCodeAt(0))&&c.$raise(a(Pe,"ArgumentError"),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(s)+'" in string transliteration'),$=l+1;$0){var b=[],w=null;for(n=!1,r=0;r(s=i.charCodeAt(0))&&c.$raise(a(Pe,"ArgumentError"),'invalid range "'+String.fromCharCode(l)+"-"+String.fromCharCode(s)+'" in string transliteration'),$=l+1;$0){var O=p>0?h[p-1]:"";for(r=0;rt:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e","$*","$try_convert","$<","$+","$-","$ceil","$/","$size","$select","$to_proc","$__send__","$length","$<=","$[]","$push","$<<","$[]=","$===","$inspect","$<=>","$first","$reverse","$sort","$take","$sort_by","$compare","$call","$dup","$to_a","$sort!","$map!","$key?","$values","$transform_values","$group_by","$to_h","$coerce_to?","$class","$zip"]),function(l,v){function b(e){return 0===e.length&&(e=[s]),e.length>1&&(e=[e]),e}var w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D,B,U,L,X,G,H,Y,K,V,Z,J,W,Q,ee,te,re,ne,$e,ie,ae,oe,le,se,ue,ce,fe,de,_e,he,pe,ye,ge,me=h(l,"Enumerable"),ve=[me].concat(v);return e.def(me,"$all?",w=function(t){try{var r,n,$,i=w.$$p,a=i||s,o=this;return i&&(w.$$p=null),i&&(w.$$p=null),d(t!==undefined)?p(o,"each",[],((r=function(){null==r.$$s||r.$$s;var n=s;if(n=b(e.slice.call(arguments,0,arguments.length)),d(p(t,"public_send",["==="].concat(e.to_a(n)))))return s;e.ret(!1)}).$$s=o,r.$$arity=-1,r)):p(o,"each",[],a!==s?((n=function(){var t;null==n.$$s||n.$$s;if(t=e.slice.call(arguments,0,arguments.length),d(e.yieldX(a,e.to_a(t))))return s;e.ret(!1)}).$$s=o,n.$$arity=-1,n):(($=function(){var t;null==$.$$s||$.$$s;if(t=e.slice.call(arguments,0,arguments.length),d(c(ve,"Opal").$destructure(t)))return s;e.ret(!1)}).$$s=o,$.$$arity=-1,$)),!0}catch(l){if(l===e.returner)return l.$v;throw l}},w.$$arity=-1),e.def(me,"$any?",E=function(t){try{var r,n,$,i=E.$$p,a=i||s,o=this;return i&&(E.$$p=null),i&&(E.$$p=null),d(t!==undefined)?p(o,"each",[],((r=function(){null==r.$$s||r.$$s;var n=s;if(n=b(e.slice.call(arguments,0,arguments.length)),!d(p(t,"public_send",["==="].concat(e.to_a(n)))))return s;e.ret(!0)}).$$s=o,r.$$arity=-1,r)):p(o,"each",[],a!==s?((n=function(){var t;null==n.$$s||n.$$s;if(t=e.slice.call(arguments,0,arguments.length),!d(e.yieldX(a,e.to_a(t))))return s;e.ret(!0)}).$$s=o,n.$$arity=-1,n):(($=function(){var t;null==$.$$s||$.$$s;if(t=e.slice.call(arguments,0,arguments.length),!d(c(ve,"Opal").$destructure(t)))return s;e.ret(!0)}).$$s=o,$.$$arity=-1,$)),!1}catch(l){if(l===e.returner)return l.$v;throw l}},E.$$arity=-1),e.def(me,"$chunk",O=function(){var t,r,n=O.$$p,$=n||s,i=this;return n&&(O.$$p=null),n&&(O.$$p=null),$===s?p(i,"to_enum",["chunk"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=i,t.$$arity=0,t)):p(u("::","Enumerator"),"new",[],((r=function(t){function n(){o.length>0&&t.$yield(a,o)}var i=null==r.$$s?this:r.$$s;null==t&&(t=s);var a=s,o=[];i.$each.$$p=function(t){var r=e.yield1($,t);r===s?(n(),o=[],a=s):(a===s||a===r?o.push(t):(n(),o=[t]),a=r)},i.$each(),n()}).$$s=i,r.$$arity=1,r))},O.$$arity=0),e.def(me,"$chunk_while",x=function(){var t,r=x.$$p,n=r||s,$=this;return r&&(x.$$p=null),r&&(x.$$p=null),n!==s||$.$raise(c(ve,"ArgumentError"),"no block given"),p($,"slice_when",[],((t=function(r,$){null==t.$$s||t.$$s;return null==r&&(r=s),null==$&&($=s),e.yieldX(n,[r,$])["$!"]()}).$$s=$,t.$$arity=2,t))},x.$$arity=0),e.def(me,"$collect",M=function(){var t,r=M.$$p,n=r||s,$=this;if(r&&(M.$$p=null),r&&(M.$$p=null),n===s)return p($,"enum_for",["collect"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=$,t.$$arity=0,t));var i=[];return $.$each.$$p=function(){var t=e.yieldX(n,arguments);i.push(t)},$.$each(),i},M.$$arity=0),e.def(me,"$collect_concat",k=function(){var t,r,n=k.$$p,$=n||s,i=this;return n&&(k.$$p=null),n&&(k.$$p=null),$===s?p(i,"enum_for",["collect_concat"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=i,t.$$arity=0,t)):p(i,"map",[],(r=function(t){null==r.$$s||r.$$s;return null==t&&(t=s),e.yield1($,t)},r.$$s=i,r.$$arity=1,r)).$flatten(1)},k.$$arity=0), +e.def(me,"$count",A=function(t){var r,n,$,i=A.$$p,a=i||s,o=this,l=s;return i&&(A.$$p=null),i&&(A.$$p=null),l=0,null!=t&&a!==s&&o.$warn("warning: given block not used"),d(null!=t)?a=p(o,"proc",[],((r=function(){var n;null==r.$$s||r.$$s;return n=e.slice.call(arguments,0,arguments.length),c(ve,"Opal").$destructure(n)["$=="](t)}).$$s=o,r.$$arity=-1,r)):d(a["$nil?"]())&&(a=p(o,"proc",[],((n=function(){null==n.$$s||n.$$s;return!0}).$$s=o,n.$$arity=0,n))),p(o,"each",[],(($=function(){var t;null==$.$$s||$.$$s;return t=e.slice.call(arguments,0,arguments.length),d(e.yieldX(a,t))?l++:s}).$$s=o,$.$$arity=-1,$)),l},A.$$arity=-1),e.def(me,"$cycle",I=function(n){var $,i=I.$$p,a=i||s,o=this;if(i&&(I.$$p=null),i&&(I.$$p=null),null==n&&(n=s),a===s)return p(o,"enum_for",["cycle",n],(($=function(){var e=null==$.$$s?this:$.$$s;return d(n["$nil?"]())?d(e["$respond_to?"]("size"))?u(c(ve,"Float"),"INFINITY"):s:(n=c(ve,"Opal")["$coerce_to!"](n,c(ve,"Integer"),"to_int"),d(t(n,0))?r(e.$enumerator_size(),n):0)}).$$s=o,$.$$arity=0,$));if(d(n["$nil?"]()));else if(n=c(ve,"Opal")["$coerce_to!"](n,c(ve,"Integer"),"to_int"),d(n<=0))return s;var l,f,_=[];if(o.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments);e.yield1(a,t);_.push(t)},o.$each(),0===_.length)return s;if(n===s)for(;;)for(l=0,f=_.length;l1;){for(l=0,f=_.length;lt&&u.shift(),u.length==t&&e.yield1(o,u.slice(0,t))},l.$each(),s},R.$$arity=1),e.def(me,"$each_entry",j=function(){var t,r,n=j.$$p,$=n||s,i=this;return n&&(j.$$p=null),n&&(j.$$p=null),t=e.slice.call(arguments,0,arguments.length),$===s?p(i,"to_enum",["each_entry"].concat(e.to_a(t)),((r=function(){return(null==r.$$s?this:r.$$s).$enumerator_size()}).$$s=i,r.$$arity=0,r)):(i.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments);e.yield1($,t)},i.$each.apply(i,t),i)},j.$$arity=-1),e.def(me,"$each_slice",T=function(t){var r,n=T.$$p,$=n||s,i=this;if(n&&(T.$$p=null),n&&(T.$$p=null),t=_(t,c(ve,"Integer"),"to_int"),d(t<=0)&&i.$raise(c(ve,"ArgumentError"),"invalid slice size"),$===s)return p(i,"enum_for",["each_slice",t],((r=function(){var e=null==r.$$s?this:r.$$s;return d(e["$respond_to?"]("size"))?a(e.$size(),t).$ceil():s}).$$s=i,r.$$arity=0,r));var o=[];return i.$each.$$p=function(){var r=c(ve,"Opal").$destructure(arguments);o.push(r),o.length===t&&(e.yield1($,o),o=[])},i.$each(),o.length>0&&e.yield1($,o),s},T.$$arity=1),e.def(me,"$each_with_index",q=function(){var t,r,n=q.$$p,$=n||s,i=this;if(n&&(q.$$p=null),n&&(q.$$p=null),t=e.slice.call(arguments,0,arguments.length),$===s)return p(i,"enum_for",["each_with_index"].concat(e.to_a(t)),((r=function(){return(null==r.$$s?this:r.$$s).$enumerator_size()}).$$s=i,r.$$arity=0,r));var a=0;return i.$each.$$p=function(){var e=c(ve,"Opal").$destructure(arguments);$(e,a),a++},i.$each.apply(i,t),i},q.$$arity=-1),e.def(me,"$each_with_object",C=function(e){var t,r=C.$$p,n=r||s,$=this;return r&&(C.$$p=null),r&&(C.$$p=null),n===s?p($,"enum_for",["each_with_object",e],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=$,t.$$arity=0,t)):($.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments);n(t,e)},$.$each(),e)},C.$$arity=1),e.def(me,"$entries",F=function(){var t,r=this;t=e.slice.call(arguments,0,arguments.length);var n=[];return r.$each.$$p=function(){n.push(c(ve,"Opal").$destructure(arguments))},r.$each.apply(r,t),n},F.$$arity=-1),e.def(me,"$filter_map",P=function(){var e,t=P.$$p,r=t||s,n=this;return t&&(P.$$p=null),t&&(P.$$p=null),r===s?p(n,"enum_for",["filter_map"],((e=function(){return(null==e.$$s?this:e.$$s).$enumerator_size()}).$$s=n,e.$$arity=0,e)):p(p(n,"map",[],r.$to_proc()),"select",[],"itself".$to_proc())},P.$$arity=0),y(me,"find","detect"),e.def(me,"$find_all",D=function(){var t,r=D.$$p,n=r||s,$=this;if(r&&(D.$$p=null),r&&(D.$$p=null),n===s)return p($,"enum_for",["find_all"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=$,t.$$arity=0,t));var i=[];return $.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments),r=e.yield1(n,t);d(r)&&i.push(t)},$.$each(),i},D.$$arity=0),y(me,"filter","find_all"),e.def(me,"$find_index",B=function(t){try{var r,n,$=B.$$p,i=$||s,a=this,o=s;return $&&(B.$$p=null),$&&(B.$$p=null),d(t===undefined&&i===s)?a.$enum_for("find_index"):(null!=t&&i!==s&&a.$warn("warning: given block not used"),o=0,d(null!=t)?p(a,"each",[],((r=function(){var n;null==r.$$s||r.$$s;return n=e.slice.call(arguments,0,arguments.length),c(ve,"Opal").$destructure(n)["$=="](t)&&e.ret(o),o+=1}).$$s=a,r.$$arity=-1,r)):p(a,"each",[],((n=function(){var t;null==n.$$s||n.$$s;return t=e.slice.call(arguments,0,arguments.length),d(e.yieldX(i,e.to_a(t)))&&e.ret(o),o+=1}).$$s=a,n.$$arity=-1,n)),s)}catch(l){if(l===e.returner)return l.$v;throw l}},B.$$arity=-1),e.def(me,"$first",U=function(t){try{var r,n,$=this,i=s,a=s;return d(t===undefined)?p($,"each",[],((r=function(t){null==r.$$s||r.$$s;null==t&&(t=s),e.ret(t)}).$$s=$,r.$$arity=1,r)):(i=[],t=_(t,c(ve,"Integer"),"to_int"),d(t<0)&&$.$raise(c(ve,"ArgumentError"),"attempt to take negative size"),d(0==t)?[]:(a=0,p($,"each",[],((n=function(){var r;null==n.$$s||n.$$s;if(r=e.slice.call(arguments,0,arguments.length),i.push(c(ve,"Opal").$destructure(r)),!d(t<=++a))return s;e.ret(i)}).$$s=$,n.$$arity=-1,n)),i))}catch(o){if(o===e.returner)return o.$v;throw o}},U.$$arity=-1),y(me,"flat_map","collect_concat"),e.def(me,"$grep",L=function(r){var n,$=L.$$p,i=$||s,a=this,l=s;return $&&(L.$$p=null),$&&(L.$$p=null),l=[],p(a,"each",[],((n=function(){null==n.$$s||n.$$s;var $,a=s;return a=b($=e.slice.call(arguments,0,arguments.length)),d(p(r,"__send__",["==="].concat(e.to_a(a))))?(i!==s?(d(t($.$length(),1))&&($=[$]),$=e.yieldX(i,e.to_a($))):d(o($.$length(),1))&&($=$["$[]"](0)),l.$push($)):s}).$$s=a,n.$$arity=-1,n)),l},L.$$arity=1),e.def(me,"$grep_v",X=function(r){var n,$=X.$$p,i=$||s,a=this,l=s;return $&&(X.$$p=null),$&&(X.$$p=null),l=[],p(a,"each",[],((n=function(){null==n.$$s||n.$$s;var $,a=s;return a=b($=e.slice.call(arguments,0,arguments.length)),d(p(r,"__send__",["==="].concat(e.to_a(a))))?s:(i!==s?(d(t($.$length(),1))&&($=[$]),$=e.yieldX(i,e.to_a($))):d(o($.$length(),1))&&($=$["$[]"](0)),l.$push($))}).$$s=a,n.$$arity=-1,n)),l},X.$$arity=1),e.def(me,"$group_by",G=function(){var t,r,n=G.$$p,$=n||s,a=this,o=s,l=s,u=s;return n&&(G.$$p=null),n&&(G.$$p=null),$===s?p(a,"enum_for",["group_by"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=a,t.$$arity=0,t)):(o=g([],{}),a.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments),r=e.yield1($,t);(d(l=o["$[]"](r))?l:(u=[r,[]],p(o,"[]=",e.to_a(u)),u[i(u.length,1)]))["$<<"](t)},a.$each(),r!==undefined?r:o)},G.$$arity=0),e.def(me,"$include?",H=function(t){try{var r,n=this;return p(n,"each",[],((r=function(){var n;null==r.$$s||r.$$s;if(n=e.slice.call(arguments,0,arguments.length),!c(ve,"Opal").$destructure(n)["$=="](t))return s;e.ret(!0)}).$$s=n,r.$$arity=-1,r)),!1}catch($){if($===e.returner)return $.$v;throw $}},H.$$arity=1),e.def(me,"$inject",Y=function(t,r){var n=Y.$$p,$=n||s,i=this;n&&(Y.$$p=null),n&&(Y.$$p=null);var a=t;return $!==s&&r===undefined?i.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments);a!==undefined?(t=e.yieldX($,[a,t]),a=t):a=t}:(r===undefined&&(c(ve,"Symbol")["$==="](t)||i.$raise(c(ve,"TypeError"),t.$inspect()+" is not a Symbol"),r=t,a=undefined),i.$each.$$p=function(){var e=c(ve,"Opal").$destructure(arguments);a=a!==undefined?a.$__send__(r,e):e}),i.$each(),a==undefined?s:a},Y.$$arity=-1),e.def(me,"$lazy",K=function(){var t,r=this;return p(u(c(ve,"Enumerator"),"Lazy"),"new",[r,r.$enumerator_size()],((t=function(r){var n;null==t.$$s||t.$$s;return null==r&&(r=s),n=e.slice.call(arguments,1,arguments.length),p(r,"yield",e.to_a(n))}).$$s=r,t.$$arity=-2,t))},K.$$arity=0),e.def(me,"$enumerator_size",V=function(){var e=this;return d(e["$respond_to?"]("size"))?e.$size():s},V.$$arity=0),y(me,"map","collect"),e.def(me,"$max",Z=function(t){var r,n,$=Z.$$p,i=$||s,a=this;return $&&(Z.$$p=null),$&&(Z.$$p=null),t===undefined||t===s?(a.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments);r!==undefined?((n=i!==s?e.yieldX(i,[t,r]):t["$<=>"](r))===s&&a.$raise(c(ve,"ArgumentError"),"comparison failed"),n>0&&(r=t)):r=t},a.$each(),r===undefined?s:r):(t=_(t,c(ve,"Integer"),"to_int"),p(a,"sort",[],i.$to_proc()).$reverse().$first(t))},Z.$$arity=-1),e.def(me,"$max_by",J=function(t){var r,n,$,i=J.$$p,a=i||s,o=this;return i&&(J.$$p=null),i&&(J.$$p=null),null==t&&(t=s),d(a)?d(t["$nil?"]())?(o.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments),r=e.yield1(a,t);if(n===undefined)return n=t,void($=r);r["$<=>"]($)>0&&(n=t,$=r)},o.$each(),n===undefined?s:n):p(o,"sort_by",[],a.$to_proc()).$reverse().$take(t):p(o,"enum_for",["max_by",t],((r=function(){return(null==r.$$s?this:r.$$s).$enumerator_size()}).$$s=o,r.$$arity=0,r))},J.$$arity=-1),y(me,"member?","include?"),e.def(me,"$min",W=function(t){var r,n,$=W.$$p,i=$||s,a=this;return $&&(W.$$p=null),$&&(W.$$p=null),null==t&&(t=s),d(t["$nil?"]())?(a.$each.$$p=i!==s?function(){var e=c(ve,"Opal").$destructure(arguments);if(n!==undefined){var t=i(e,n);t===s&&a.$raise(c(ve,"ArgumentError"),"comparison failed"),t<0&&(n=e)}else n=e}:function(){var e=c(ve,"Opal").$destructure(arguments);n!==undefined?c(ve,"Opal").$compare(e,n)<0&&(n=e):n=e},a.$each(),n===undefined?s:n):i!==s?p(a,"sort",[],(r=function(t,n){null==r.$$s||r.$$s;return null==t&&(t=s),null==n&&(n=s),e.yieldX(i,[t,n])},r.$$s=a,r.$$arity=2,r)).$take(t):a.$sort().$take(t)},W.$$arity=-1),e.def(me,"$min_by",Q=function(t){var r,n,$,i=Q.$$p,a=i||s,o=this;return i&&(Q.$$p=null),i&&(Q.$$p=null),null==t&&(t=s),d(a)?d(t["$nil?"]())?(o.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments),r=e.yield1(a,t);if(n===undefined)return n=t,void($=r);r["$<=>"]($)<0&&(n=t,$=r)},o.$each(),n===undefined?s:n):p(o,"sort_by",[],a.$to_proc()).$take(t):p(o,"enum_for",["min_by",t],((r=function(){return(null==r.$$s?this:r.$$s).$enumerator_size()}).$$s=o,r.$$arity=0,r))},Q.$$arity=-1),e.def(me,"$minmax",ee=function(){var e,t=ee.$$p,r=t||s,n=this,$=s;t&&(ee.$$p=null),t&&(ee.$$p=null),r=d($=r)?$:p(n,"proc",[],((e=function(t,r){return null==e.$$s||e.$$s,null==t&&(t=s),null==r&&(r=s),t["$<=>"](r)}).$$s=n,e.$$arity=2,e));var i=s,a=s,o=!0;return n.$each.$$p=function(){var e=c(ve,"Opal").$destructure(arguments);if(o)i=a=e,o=!1;else{var t=r.$call(i,e);t===s?n.$raise(c(ve,"ArgumentError"),"comparison failed"):t>0&&(i=e);var $=r.$call(a,e);$===s?n.$raise(c(ve,"ArgumentError"),"comparison failed"):$<0&&(a=e)}},n.$each(),[i,a]},ee.$$arity=0),e.def(me,"$minmax_by",te=function(){var t,r=te.$$p,n=r||s,$=this;if(r&&(te.$$p=null),r&&(te.$$p=null),!d(n))return p($,"enum_for",["minmax_by"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=$,t.$$arity=0,t));var i,a,o=s,l=s;return $.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments),r=e.yield1(n,t);(i===undefined||r["$<=>"](i)<0)&&(o=t,i=r),(a===undefined||r["$<=>"](a)>0)&&(l=t,a=r)},$.$each(),[o,l]},te.$$arity=0),e.def(me,"$none?",re=function(t){try{var r,n,$,i=re.$$p,a=i||s,o=this;return i&&(re.$$p=null),i&&(re.$$p=null),d(t!==undefined)?p(o,"each",[],((r=function(){null==r.$$s||r.$$s;var n=s;if(n=b(e.slice.call(arguments,0,arguments.length)),!d(p(t,"public_send",["==="].concat(e.to_a(n)))))return s;e.ret(!1)}).$$s=o,r.$$arity=-1,r)):p(o,"each",[],a!==s?((n=function(){var t;null==n.$$s||n.$$s;if(t=e.slice.call(arguments,0,arguments.length),!d(e.yieldX(a,e.to_a(t))))return s;e.ret(!1)}).$$s=o,n.$$arity=-1,n):(($=function(){null==$.$$s||$.$$s;var t,r=s;if(t=e.slice.call(arguments,0,arguments.length),r=c(ve,"Opal").$destructure(t),!d(r))return s;e.ret(!1)}).$$s=o,$.$$arity=-1,$)),!0}catch(l){if(l===e.returner)return l.$v;throw l}},re.$$arity=-1),e.def(me,"$one?",ne=function(r){try{var n,i,a,o=ne.$$p,l=o||s,u=this,f=s;return o&&(ne.$$p=null),o&&(ne.$$p=null),f=0,d(r!==undefined)?p(u,"each",[],((n=function(){null==n.$$s||n.$$s;var i=s;return i=b(e.slice.call(arguments,0,arguments.length)),d(p(r,"public_send",["==="].concat(e.to_a(i))))?(f=$(f,1),d(t(f,1))?void e.ret(!1):s):s}).$$s=u,n.$$arity=-1,n)):p(u,"each",[],l!==s?((i=function(){var r;null==i.$$s||i.$$s;return r=e.slice.call(arguments,0,arguments.length),d(e.yieldX(l,e.to_a(r)))?(f=$(f,1),d(t(f,1))?void e.ret(!1):s):s}).$$s=u,i.$$arity=-1,i):((a=function(){var r;null==a.$$s||a.$$s;return r=e.slice.call(arguments,0,arguments.length),d(c(ve,"Opal").$destructure(r))?(f=$(f,1),d(t(f,1))?void e.ret(!1):s):s}).$$s=u,a.$$arity=-1,a)),f["$=="](1)}catch(_){if(_===e.returner)return _.$v;throw _}},ne.$$arity=-1),e.def(me,"$partition",$e=function(){var t,r=$e.$$p,n=r||s,$=this;if(r&&($e.$$p=null),r&&($e.$$p=null),n===s)return p($,"enum_for",["partition"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=$,t.$$arity=0,t));var i=[],a=[];return $.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments),r=e.yield1(n,t);d(r)?i.push(t):a.push(t)},$.$each(),[i,a]},$e.$$arity=0),y(me,"reduce","inject"),e.def(me,"$reject",ie=function(){var t,r=ie.$$p,n=r||s,$=this;if(r&&(ie.$$p=null),r&&(ie.$$p=null),n===s)return p($,"enum_for",["reject"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=$,t.$$arity=0,t));var i=[];return $.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments),r=e.yield1(n,t);f(r)&&i.push(t)},$.$each(),i},ie.$$arity=0),e.def(me,"$reverse_each",ae=function(){var t,r=ae.$$p,n=r||s,$=this;if(r&&(ae.$$p=null),r&&(ae.$$p=null),n===s)return p($,"enum_for",["reverse_each"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=$,t.$$arity=0,t));var i=[];$.$each.$$p=function(){i.push(arguments)},$.$each();for(var a=i.length-1;a>=0;a--)e.yieldX(n,i[a]);return i},ae.$$arity=0),y(me,"select","find_all"),e.def(me,"$slice_before",oe=function(t){var r,n=oe.$$p,$=n||s,i=this;return n&&(oe.$$p=null),n&&(oe.$$p=null),d(t===undefined&&$===s)&&i.$raise(c(ve,"ArgumentError"),"both pattern and block are given"),d(t!==undefined&&$!==s||arguments.length>1)&&i.$raise(c(ve,"ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),p(c(ve,"Enumerator"),"new",[],((r=function(n){var i=null==r.$$s?this:r.$$s;null==n&&(n=s);var a=[];$!==s?t===undefined?i.$each.$$p=function(){var t=c(ve,"Opal").$destructure(arguments),r=e.yield1($,t);d(r)&&a.length>0&&(n["$<<"](a),a=[]),a.push(t)}:i.$each.$$p=function(){var e=c(ve,"Opal").$destructure(arguments),r=$(e,t.$dup());d(r)&&a.length>0&&(n["$<<"](a),a=[]),a.push(e)}:i.$each.$$p=function(){var e=c(ve,"Opal").$destructure(arguments),r=t["$==="](e);d(r)&&a.length>0&&(n["$<<"](a),a=[]),a.push(e)},i.$each(),a.length>0&&n["$<<"](a)}).$$s=i,r.$$arity=1,r))},oe.$$arity=-1),e.def(me,"$slice_after",le=function(t){var r,n,$=le.$$p,i=$||s,a=this;return $&&(le.$$p=null),$&&(le.$$p=null),d(t===undefined&&i===s)&&a.$raise(c(ve,"ArgumentError"),"both pattern and block are given"),d(t!==undefined&&i!==s||arguments.length>1)&&a.$raise(c(ve,"ArgumentError"),"wrong number of arguments ("+arguments.length+" expected 1)"),d(t!==undefined)&&(i=p(a,"proc",[],((r=function(e){null==r.$$s||r.$$s;return null==e&&(e=s),t["$==="](e)}).$$s=a,r.$$arity=1,r))),p(c(ve,"Enumerator"),"new",[],((n=function(t){var r,$=null==n.$$s?this:n.$$s;null==t&&(t=s),$.$each.$$p=function(){var n=c(ve,"Opal").$destructure(arguments),$=e.yield1(i,n);null==r&&(r=[]),d($)?(r.push(n),t.$yield(r),r=null):r.push(n)},$.$each(),null!=r&&t.$yield(r)}).$$s=a,n.$$arity=1,n))},le.$$arity=-1),e.def(me,"$slice_when",se=function(){var t,r=se.$$p,n=r||s,$=this;return r&&(se.$$p=null),r&&(se.$$p=null),n!==s||$.$raise(c(ve,"ArgumentError"),"wrong number of arguments (0 for 1)"),p(c(ve,"Enumerator"),"new",[],((t=function(r){var $=null==t.$$s?this:t.$$s;null==r&&(r=s);var i=s,a=s;$.$each_cons.$$p=function(){var t=c(ve,"Opal").$destructure(arguments),$=t[0],o=t[1],l=e.yieldX(n,[$,o]);a=o,i===s&&(i=[]),d(l)?(i.push($),r.$yield(i),i=[]):i.push($)},$.$each_cons(2),i!==s&&(i.push(a),r.$yield(i))}).$$s=$,t.$$arity=1,t))},se.$$arity=0),e.def(me,"$sort",ue=function(){var e,t=ue.$$p,r=t||s,n=this,$=s;return t&&(ue.$$p=null),t&&(ue.$$p=null),$=n.$to_a(),r!==s||(r=m(((e=function(t,r){null==e.$$s||e.$$s;return null==t&&(t=s),null==r&&(r=s),t["$<=>"](r)}).$$s=n,e.$$arity=2,e))),p($,"sort",[],r.$to_proc())},ue.$$arity=0),e.def(me,"$sort_by",ce=function(){var t,r,n,$,i=ce.$$p,a=i||s,o=this,l=s;return i&&(ce.$$p=null),i&&(ce.$$p=null),a===s?p(o,"enum_for",["sort_by"],((t=function(){return(null==t.$$s?this:t.$$s).$enumerator_size()}).$$s=o,t.$$arity=0,t)):(l=p(o,"map",[],((r=function(){null==r.$$s||r.$$s;var t=s;return t=c(ve,"Opal").$destructure(arguments),[e.yield1(a,t),t]}).$$s=o,r.$$arity=0,r)),p(l,"sort!",[],((n=function(e,t){null==n.$$s||n.$$s;return null==e&&(e=s),null==t&&(t=s),e[0]["$<=>"](t[0])}).$$s=o,n.$$arity=2,n)),p(l,"map!",[],(($=function(e){null==$.$$s||$.$$s;return null==e&&(e=s),e[1]}).$$s=o,$.$$arity=1,$)))},ce.$$arity=0),e.def(me,"$sum",fe=function(t){var r,n=fe.$$p,i=n||s,a=this,o=s;return n&&(fe.$$p=null),null==t&&(t=0),o=t,p(a,"each",[],((r=function(){null==r.$$s||r.$$s;var t,n,a=s;return t=e.slice.call(arguments,0,arguments.length),n=t,a=i!==s?e.yieldX(i,e.to_a(n)):c(ve,"Opal").$destructure(n),o=$(o,a)}).$$s=a,r.$$arity=-1,r)),o},fe.$$arity=-1),e.def(me,"$take",de=function(e){return this.$first(e)},de.$$arity=1),e.def(me,"$take_while",_e=function(){try{var t,r=_e.$$p,n=r||s,$=this,i=s;return r&&(_e.$$p=null),r&&(_e.$$p=null),d(n)?(i=[],p($,"each",[],((t=function(){null==t.$$s||t.$$s;var r,$=s;return r=e.slice.call(arguments,0,arguments.length),$=c(ve,"Opal").$destructure(r),d(e.yield1(n,$))||e.ret(i),i.push($)}).$$s=$,t.$$arity=-1,t))):$.$enum_for("take_while")}catch(a){if(a===e.returner)return a.$v;throw a}},_e.$$arity=0),e.def(me,"$uniq",he=function(){var t,r=he.$$p,n=r||s,$=this,a=s;return r&&(he.$$p=null),r&&(he.$$p=null),a=g([],{}),p($,"each",[],((t=function(){null==t.$$s||t.$$s;var r,$=s,o=s,l=s;return r=e.slice.call(arguments,0,arguments.length),$=c(ve,"Opal").$destructure(r),o=n!==s?e.yield1(n,$):$,d(a["$key?"](o))?s:(l=[o,$],p(a,"[]=",e.to_a(l)),l[i(l.length,1)])}).$$s=$,t.$$arity=-1,t)),a.$values()},he.$$arity=0),e.def(me,"$tally",pe=function(){return p(p(this,"group_by",[],"itself".$to_proc()),"transform_values",[],"count".$to_proc())},pe.$$arity=0),y(me,"to_a","entries"),e.def(me,"$to_h",ye=function(){var t,r=ye.$$p,n=r||s,$=this;if(r&&(ye.$$p=null),r&&(ye.$$p=null),t=e.slice.call(arguments,0,arguments.length),n!==s)return p(p($,"map",[],n.$to_proc()),"to_h",e.to_a(t));var i=g([],{});return $.$each.$$p=function(){var t,r,n=c(ve,"Opal").$destructure(arguments),a=c(ve,"Opal")["$coerce_to?"](n,c(ve,"Array"),"to_ary");a.$$is_array||$.$raise(c(ve,"TypeError"),"wrong element type "+a.$class()+" (expected array)"),2!==a.length&&$.$raise(c(ve,"ArgumentError"),"wrong array length (expected 2, was "+a.$length()+")"),t=a[0],r=a[1],e.hash_put(i,t,r)},$.$each.apply($,t),i},ye.$$arity=-1),e.def(me,"$zip",ge=function(){var t,r=ge.$$p,n=this;return r&&(ge.$$p=null),r&&(ge.$$p=null),t=e.slice.call(arguments,0,arguments.length),p(n.$to_a(),"zip",e.to_a(t))},ge.$$arity=-1),s&&"zip"}(l[0],l)},Opal.modules["corelib/enumerator"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e0&&(n=r[0],r.splice(0,1)),null==n&&(n="each"),$=r;var s=l.$allocate();return s.object=t,s.size=o,s.method=n,s.args=$,s},y.$$arity=-2),e.def(O,"$initialize",g=function(){var t=g.$$p,r=t||i,n=this,$=i;return t&&(g.$$p=null),t&&(g.$$p=null),e.slice.call(arguments,0,arguments.length),u(r)?(n.object=d(a(x,"Generator"),"new",[],r.$to_proc()),n.method="each",n.args=[],n.size=arguments[0]||i,u(u($=n.size)?n.size["$respond_to?"]("call")["$!"]():$)?n.size=c(n.size,a(x,"Integer"),"to_int"):i):(n.object=arguments[0],n.method=arguments[1]||"each",n.args=l.call(arguments,2),n.size=i)},g.$$arity=-1),e.def(O,"$each",m=function(){var r,n,$=m.$$p,a=$||i,o=this,l=i;return $&&(m.$$p=null),$&&(m.$$p=null),r=e.slice.call(arguments,0,arguments.length),n=r,u(u(l=a["$nil?"]())?n["$empty?"]():l)?o:(n=t(o.args,n),u(a["$nil?"]())?d(o.$class(),"new",[o.object,o.method].concat(e.to_a(n))):d(o.object,"__send__",[o.method].concat(e.to_a(n)),a.$to_proc()))},m.$$arity=-1),e.def(O,"$size",v=function(){var t=this;return u(t.size["$respond_to?"]("call"))?d(t.size,"call",e.to_a(t.args)):t.size},v.$$arity=0),e.def(O,"$with_index",b=function(e){var t,r=b.$$p,n=r||i,$=this;if(r&&(b.$$p=null),r&&(b.$$p=null),null==e&&(e=0),e=u(e)?c(e,a(x,"Integer"),"to_int"):0,!u(n))return d($,"enum_for",["with_index",e],((t=function(){return(null==t.$$s?this:t.$$s).$size()}).$$s=$,t.$$arity=0,t));var o=e;return $.$each.$$p=function(){var e=a(x,"Opal").$destructure(arguments),t=n(e,o);return o++,t},$.$each()},b.$$arity=-1),_(O,"with_object","each_with_object"),e.def(O,"$each_with_index",w=function(){var e,t=w.$$p,r=t||i,n=this;return t&&(w.$$p=null),t&&(w.$$p=null),r===i?d(n,"enum_for",["each_with_index"],((e=function(){return(null==e.$$s?this:e.$$s).$size()}).$$s=n,e.$$arity=0,e)):(h(n,p(n,"each_with_index",w,!1,!0),"each_with_index",[],t),n.object)},w.$$arity=0),e.def(O,"$inspect",E=function(){var e=this,r=i;return r="#<"+e.$class()+": "+e.object.$inspect()+":"+e.method,u(e.args["$any?"]())&&(r=t(r,"("+e.args.$inspect()["$[]"](a(x,"Range").$new(1,-2))+")")),t(r,">")},E.$$arity=0),function(t,$super,r){var n,$,l=f(t,null,"Generator"),s=[l].concat(r);l.$$prototype.block=i,l.$include(a(s,"Enumerable")),e.def(l,"$initialize",n=function(){var e=n.$$p,t=e||i,r=this;return e&&(n.$$p=null),e&&(n.$$p=null),u(t)||r.$raise(a(s,"LocalJumpError"),"no block given"),r.block=t},n.$$arity=0),e.def(l,"$each",$=function(){var t,r=$.$$p,n=r||i,l=this,u=i;r&&($.$$p=null),r&&($.$$p=null),t=e.slice.call(arguments,0,arguments.length),u=d(a(s,"Yielder"),"new",[],n.$to_proc());try{t.unshift(u),e.yieldX(l.block,t)}catch(c){if(c===o)return o.$v;throw c}return l},$.$$arity=-1)}(x[0],0,x),function(t,$super,r){var n,$,a,l=f(t,null,"Yielder");[l].concat(r);l.$$prototype.block=i,e.def(l,"$initialize",n=function(){var e=n.$$p,t=e||i,r=this;return e&&(n.$$p=null),e&&(n.$$p=null),r.block=t},n.$$arity=0),e.def(l,"$yield",$=function(){var t,r=this;t=e.slice.call(arguments,0,arguments.length);var n=e.yieldX(r.block,t);if(n===o)throw o;return n},$.$$arity=-1),e.def(l,"$<<",a=function(){var t,r=this;return t=e.slice.call(arguments,0,arguments.length),d(r,"yield",e.to_a(t)),r},a.$$arity=-1)}(x[0],0,x),function(n,$super,$){var o,l,y,g,m,v,b,w,E,O,x,M,k,A=f(n,$super,"Lazy"),I=[A].concat($);A.$$prototype.enumerator=i,function(e,$super,t){[f(e,$super,"StopLazyError")].concat(t)}(I[0],a(I,"Exception"),I),e.def(A,"$initialize",o=function(t,r){var n,$=o.$$p,l=$||i,s=this;return $&&(o.$$p=null),$&&(o.$$p=null),null==r&&(r=i),l!==i||s.$raise(a(I,"ArgumentError"),"tried to call lazy new without a block"),s.enumerator=t,h(s,p(s,"initialize",o,!1,!0),"initialize",[r],((n=function(r){var $,o,s=null==n.$$s?this:n.$$s;null==r&&(r=i),$=e.slice.call(arguments,1,arguments.length);try{return d(t,"each",e.to_a($),((o=function(){var t;null==o.$$s||o.$$s;(t=e.slice.call(arguments,0,arguments.length)).unshift(r),e.yieldX(l,t)}).$$s=s,o.$$arity=-1,o))}catch(u){if(!e.rescue(u,[a(I,"Exception")]))throw u;try{return i}finally{e.pop_exception()}}}).$$s=s,n.$$arity=-2,n))},o.$$arity=-2),_(A,"force","to_a"),e.def(A,"$lazy",l=function(){return this},l.$$arity=0),e.def(A,"$collect",y=function(){var t,r=y.$$p,n=r||i,$=this;return r&&(y.$$p=null),r&&(y.$$p=null),u(n)||$.$raise(a(I,"ArgumentError"),"tried to call lazy map without a block"),d(a(I,"Lazy"),"new",[$,$.$enumerator_size()],((t=function(r){var $;null==t.$$s||t.$$s;null==r&&(r=i),$=e.slice.call(arguments,1,arguments.length);var a=e.yieldX(n,$);r.$yield(a)}).$$s=$,t.$$arity=-2,t))},y.$$arity=0),e.def(A,"$collect_concat",g=function(){var t,r=g.$$p,n=r||i,$=this;return r&&(g.$$p=null),r&&(g.$$p=null),u(n)||$.$raise(a(I,"ArgumentError"),"tried to call lazy map without a block"),d(a(I,"Lazy"),"new",[$,i],((t=function(r){var $,o,l,s=null==t.$$s?this:t.$$s;null==r&&(r=i),$=e.slice.call(arguments,1,arguments.length);var u=e.yieldX(n,$);u["$respond_to?"]("force")&&u["$respond_to?"]("each")?d(u,"each",[],((o=function(e){null==o.$$s||o.$$s;return null==e&&(e=i),r.$yield(e)}).$$s=s,o.$$arity=1,o)):a(I,"Opal").$try_convert(u,a(I,"Array"),"to_ary")===i?r.$yield(u):d(u,"each",[],((l=function(e){null==l.$$s||l.$$s;return null==e&&(e=i),r.$yield(e)}).$$s=s,l.$$arity=1,l))}).$$s=$,t.$$arity=-2,t))},g.$$arity=0),e.def(A,"$drop",m=function(n){var $,o=this,l=i,s=i,f=i;return n=c(n,a(I,"Integer"),"to_int"),u(r(n,0))&&o.$raise(a(I,"ArgumentError"),"attempt to drop negative size"),l=o.$enumerator_size(),s=u(a(I,"Integer")["$==="](l))&&u(r(n,l))?n:l,f=0,d(a(I,"Lazy"),"new",[o,s],(($=function(a){var o;null==$.$$s||$.$$s;return null==a&&(a=i),o=e.slice.call(arguments,1,arguments.length),u(r(f,n))?f=t(f,1):d(a,"yield",e.to_a(o))}).$$s=o,$.$$arity=-2,$))},m.$$arity=1),e.def(A,"$drop_while",v=function(){var t,r=v.$$p,n=r||i,$=this,o=i;return r&&(v.$$p=null),r&&(v.$$p=null),u(n)||$.$raise(a(I,"ArgumentError"),"tried to call lazy drop_while without a block"),o=!0,d(a(I,"Lazy"),"new",[$,i],((t=function(r){var $;null==t.$$s||t.$$s;if(null==r&&(r=i),$=e.slice.call(arguments,1,arguments.length),!u(o))return d(r,"yield",e.to_a($));var a=e.yieldX(n,$);s(a)&&(o=!1,d(r,"yield",e.to_a($)))}).$$s=$,t.$$arity=-2,t))},v.$$arity=0),e.def(A,"$enum_for",b=function(){var t,r,n,$=b.$$p,a=$||i,o=this;return $&&(b.$$p=null),$&&(b.$$p=null),(t=e.slice.call(arguments,0,arguments.length)).length>0&&(r=t[0],t.splice(0,1)),null==r&&(r="each"),n=t,d(o.$class(),"for",[o,r].concat(e.to_a(n)),a.$to_proc())},b.$$arity=-1),_(A,"filter","find_all"),e.def(A,"$find_all",w=function(){var t,r=w.$$p,n=r||i,$=this;return r&&(w.$$p=null),r&&(w.$$p=null),u(n)||$.$raise(a(I,"ArgumentError"),"tried to call lazy select without a block"),d(a(I,"Lazy"),"new",[$,i],((t=function(r){var $;null==t.$$s||t.$$s;null==r&&(r=i),$=e.slice.call(arguments,1,arguments.length);var a=e.yieldX(n,$);u(a)&&d(r,"yield",e.to_a($))}).$$s=$,t.$$arity=-2,t))},w.$$arity=0),_(A,"flat_map","collect_concat"),e.def(A,"$grep",E=function(t){var r,n,$=E.$$p,o=$||i,l=this;return $&&(E.$$p=null),$&&(E.$$p=null),u(o)?d(a(I,"Lazy"),"new",[l,i],((r=function(n){var $;null==r.$$s||r.$$s;null==n&&(n=i),$=e.slice.call(arguments,1,arguments.length);var l=a(I,"Opal").$destructure($),s=t["$==="](l);u(s)&&(s=e.yield1(o,l),n.$yield(e.yield1(o,l)))}).$$s=l,r.$$arity=-2,r)):d(a(I,"Lazy"),"new",[l,i],((n=function(r){var $;null==n.$$s||n.$$s;null==r&&(r=i),$=e.slice.call(arguments,1,arguments.length);var o=a(I,"Opal").$destructure($),l=t["$==="](o);u(l)&&r.$yield(o)}).$$s=l,n.$$arity=-2,n))},E.$$arity=1),_(A,"map","collect"),_(A,"select","find_all"),e.def(A,"$reject",O=function(){var t,r=O.$$p,n=r||i,$=this;return r&&(O.$$p=null),r&&(O.$$p=null),u(n)||$.$raise(a(I,"ArgumentError"),"tried to call lazy reject without a block"),d(a(I,"Lazy"),"new",[$,i],((t=function(r){var $;null==t.$$s||t.$$s;null==r&&(r=i),$=e.slice.call(arguments,1,arguments.length);var a=e.yieldX(n,$);s(a)&&d(r,"yield",e.to_a($))}).$$s=$,t.$$arity=-2,t))},O.$$arity=0),e.def(A,"$take",x=function(n){var $,o=this,l=i,s=i,f=i;return n=c(n,a(I,"Integer"),"to_int"),u(r(n,0))&&o.$raise(a(I,"ArgumentError"),"attempt to take negative size"),l=o.$enumerator_size(),s=u(a(I,"Integer")["$==="](l))&&u(r(n,l))?n:l,f=0,d(a(I,"Lazy"),"new",[o,s],(($=function(o){var l,s=null==$.$$s?this:$.$$s;return null==o&&(o=i),l=e.slice.call(arguments,1,arguments.length),u(r(f,n))?(d(o,"yield",e.to_a(l)),f=t(f,1)):s.$raise(a(I,"StopLazyError"))}).$$s=o,$.$$arity=-2,$))},x.$$arity=1),e.def(A,"$take_while",M=function(){var t,r=M.$$p,n=r||i,$=this;return r&&(M.$$p=null),r&&(M.$$p=null),u(n)||$.$raise(a(I,"ArgumentError"),"tried to call lazy take_while without a block"),d(a(I,"Lazy"),"new",[$,i],((t=function(r){var $,o=null==t.$$s?this:t.$$s;null==r&&(r=i),$=e.slice.call(arguments,1,arguments.length);var l=e.yieldX(n,$);u(l)?d(r,"yield",e.to_a($)):o.$raise(a(I,"StopLazyError"))}).$$s=$,t.$$arity=-2,t))},M.$$arity=0),_(A,"to_enum","enum_for"),e.def(A,"$inspect",k=function(){var e=this;return"#<"+e.$class()+": "+e.enumerator.$inspect()+">"},k.$$arity=0)}(x[0],O,x),function(e,$super,t){[f(e,$super,"ArithmeticSequence")].concat(t);return i}(x[0],O,x)}($[0],0,$)},Opal.modules["corelib/numeric"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}function o(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function l(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var s=e.top,u=[],c=e.nil,f=e.$$$,d=e.$$,_=e.klass,h=e.truthy,p=e.alias,y=e.hash2,g=e.send;return e.add_stubs(["$require","$include","$instance_of?","$class","$Float","$respond_to?","$coerce","$__send__","$===","$raise","$equal?","$-","$*","$div","$<","$-@","$ceil","$to_f","$denominator","$to_r","$==","$floor","$/","$%","$Complex","$zero?","$numerator","$abs","$arg","$coerce_to!","$round","$<=>","$compare","$enum_for","$to_proc","$negative?","$>=","$<=","$+","$to_i","$truncate","$>"]),s.$require("corelib/comparable"),function(s,$super,u){var m,v,b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D,B,U,L,X,G,H,Y,K,V,Z,J,W,Q,ee,te,re,ne=_(s,null,"Numeric"),$e=[ne].concat(u);return ne.$include(d($e,"Comparable")),e.def(ne,"$coerce",m=function(e){var t=this;return h(e["$instance_of?"](t.$class()))?[e,t]:[t.$Float(e),t.$Float(t)]},m.$$arity=1),e.def(ne,"$__coerced__",v=function(t,r){var n,$,i=this,a=c,o=c,l=c;return h(r["$respond_to?"]("coerce"))?($=r.$coerce(i),a=null==(n=e.to_ary($))[0]?c:n[0],o=null==n[1]?c:n[1],a.$__send__(t,o)):(l=t, +"+"["$==="](l)||"-"["$==="](l)||"*"["$==="](l)||"/"["$==="](l)||"%"["$==="](l)||"&"["$==="](l)||"|"["$==="](l)||"^"["$==="](l)||"**"["$==="](l)?i.$raise(d($e,"TypeError"),r.$class()+" can't be coerced into Numeric"):">"["$==="](l)||">="["$==="](l)||"<"["$==="](l)||"<="["$==="](l)||"<=>"["$==="](l)?i.$raise(d($e,"ArgumentError"),"comparison of "+i.$class()+" with "+r.$class()+" failed"):c)},v.$$arity=2),e.def(ne,"$<=>",b=function(e){return h(this["$equal?"](e))?0:c},b.$$arity=1),e.def(ne,"$+@",w=function(){return this},w.$$arity=0),e.def(ne,"$-@",E=function(){return t(0,this)},E.$$arity=0),e.def(ne,"$%",O=function(e){var n=this;return t(n,r(e,n.$div(e)))},O.$$arity=1),e.def(ne,"$abs",x=function(){var e=this;return n(e,0)?e["$-@"]():e},x.$$arity=0),e.def(ne,"$abs2",M=function(){var e=this;return r(e,e)},M.$$arity=0),e.def(ne,"$angle",k=function(){return n(this,0)?f(d($e,"Math"),"PI"):0},k.$$arity=0),p(ne,"arg","angle"),e.def(ne,"$ceil",A=function(e){return null==e&&(e=0),this.$to_f().$ceil(e)},A.$$arity=-1),e.def(ne,"$conj",I=function(){return this},I.$$arity=0),p(ne,"conjugate","conj"),e.def(ne,"$denominator",z=function(){return this.$to_r().$denominator()},z.$$arity=0),e.def(ne,"$div",S=function(e){var t=this;return e["$=="](0)&&t.$raise(d($e,"ZeroDivisionError"),"divided by o"),$(t,e).$floor()},S.$$arity=1),e.def(ne,"$divmod",N=function(e){var t=this;return[t.$div(e),t["$%"](e)]},N.$$arity=1),e.def(ne,"$fdiv",R=function(e){return $(this.$to_f(),e)},R.$$arity=1),e.def(ne,"$floor",j=function(e){return null==e&&(e=0),this.$to_f().$floor(e)},j.$$arity=-1),e.def(ne,"$i",T=function(){var e=this;return e.$Complex(0,e)},T.$$arity=0),e.def(ne,"$imag",q=function(){return 0},q.$$arity=0),p(ne,"imaginary","imag"),e.def(ne,"$integer?",C=function(){return!1},C.$$arity=0),p(ne,"magnitude","abs"),p(ne,"modulo","%"),e.def(ne,"$nonzero?",F=function(){var e=this;return h(e["$zero?"]())?c:e},F.$$arity=0),e.def(ne,"$numerator",P=function(){return this.$to_r().$numerator()},P.$$arity=0),p(ne,"phase","arg"),e.def(ne,"$polar",D=function(){var e=this;return[e.$abs(),e.$arg()]},D.$$arity=0),e.def(ne,"$quo",B=function(e){var t=this;return $(d($e,"Opal")["$coerce_to!"](t,d($e,"Rational"),"to_r"),e)},B.$$arity=1),e.def(ne,"$real",U=function(){return this},U.$$arity=0),e.def(ne,"$real?",L=function(){return!0},L.$$arity=0),e.def(ne,"$rect",X=function(){return[this,0]},X.$$arity=0),p(ne,"rectangular","rect"),e.def(ne,"$round",G=function(e){return this.$to_f().$round(e)},G.$$arity=-1),e.def(ne,"$step",H=function(){function t(){u===c&&b.$raise(d($e,"TypeError"),"step must be numeric"),null!=u&&u["$=="](0)&&b.$raise(d($e,"ArgumentError"),"step can't be 0"),u!==c&&null!=u||(u=1);var e=u["$<=>"](0);e===c&&b.$raise(d($e,"ArgumentError"),"0 can't be coerced into "+u.$class()),s!==c&&null!=s||(s=e>0?f(d($e,"Float"),"INFINITY"):f(d($e,"Float"),"INFINITY")["$-@"]()),d($e,"Opal").$compare(b,s)}function r(){if(u>0&&b>s||u<0&&b.5&&(r=.5),t((s-b)/u+r)+1)}function n(){if(t(),0===u)return Infinity;if(u%1!=0)return r();if(u>0&&b>s||u<0&&b0&&(s=$[0],$.splice(0,1)),$.length>0&&(u=$[0],$.splice(0,1)),_=l.$$smap.to,p=l.$$smap.by,s!==undefined&&_!==undefined&&b.$raise(d($e,"ArgumentError"),"to is given twice"),u!==undefined&&p!==undefined&&b.$raise(d($e,"ArgumentError"),"step is given twice"),_!==undefined&&(s=_),p!==undefined&&(u=p),s===undefined&&(s=c),v===c)return g(b,"enum_for",["step",s,u],n.$to_proc());t();var E=u["$negative?"](),O=u["$=="](0)||s===Infinity&&!E||s===-Infinity&&E;if(b.$$is_number&&u.$$is_number&&s.$$is_number){if(b%1!=0||!O&&s%1!=0||u%1!=0){var x=b.$to_f().valueOf();u=u.$to_f().valueOf(),s=s.$to_f().valueOf();var M=r();if(isFinite(u))if(0===u)for(;;)v(x);else for(var k=0;k=0?sA)&&(A=s),v(A)}else 0!==M&&v(x);return b}var I=b;if(O)for(;;I+=u)v(I);else if(E)for(;I>=s;I+=u)v(I);else for(;I<=s;I+=u)v(I);return b}for(w=b;h(E?i(w,s):a(w,s));)e.yield1(v,w),w=o(w,u)},H.$$arity=-1),e.def(ne,"$to_c",Y=function(){var e=this;return e.$Complex(e,0)},Y.$$arity=0),e.def(ne,"$to_int",K=function(){return this.$to_i()},K.$$arity=0),e.def(ne,"$truncate",V=function(e){return null==e&&(e=0),this.$to_f().$truncate(e)},V.$$arity=-1),e.def(ne,"$zero?",Z=function(){return this["$=="](0)},Z.$$arity=0),e.def(ne,"$positive?",J=function(){return l(this,0)},J.$$arity=0),e.def(ne,"$negative?",W=function(){return n(this,0)},W.$$arity=0),e.def(ne,"$dup",Q=function(){return this},Q.$$arity=0),e.def(ne,"$clone",ee=function(t){var r=this;if(null==t)t=y([],{});else if(!t.$$is_hash)throw e.ArgumentError.$new("expected kwargs");return null==t.$$smap.freeze&&!0,r},ee.$$arity=-1),e.def(ne,"$finite?",te=function(){return!0},te.$$arity=0),e.def(ne,"$infinite?",re=function(){return c},re.$$arity=0),c&&"infinite?"}(u[0],0,u)},Opal.modules["corelib/array"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e","$==","$object_id","$inspect","$enum_for","$class","$bsearch_index","$to_proc","$nil?","$coerce_to!","$>","$*","$enumerator_size","$empty?","$size","$map","$equal?","$dup","$each","$reduce","$-","$[]","$dig","$eql?","$length","$exclude_end?","$flatten","$__id__","$&","$to_s","$new","$max","$min","$!","$>=","$**","$delete_if","$reverse","$rotate","$rand","$at","$keep_if","$shuffle!","$<","$sort","$sort_by","$!=","$times","$[]=","$<<","$uniq","$|","$values","$is_a?","$last","$first","$upto","$reject","$pristine","$singleton_class"]),a.$require("corelib/enumerable"),a.$require("corelib/numeric"),function(a,$super,o){function k(e){for(var t=e[0],r=1,n=e.length;ra?l:i<0&&(i+=a)<0?[]:(n||(i+=1),t.slice($,i))}function S(t,r,n){var $=t.length;return(r=g(r,e.Integer,"to_int"))<0&&(r+=$)<0?l:n===undefined?r>=$||r<0?l:t[r]:(n=g(n,e.Integer,"to_int"))<0||r>$||r<0?l:t.slice(r,r+n)}function N(e,t){return e===t||0===t?1:t>0&&e>t?N(e-1,t-1)+N(e-1,t):0}function R(e,t){for(var r=t>=0?1:0;t;)r*=e,e--,t--;return r}var j,T,q,C,F,P,D,B,U,L,X,G,H,Y,K,V,Z,J,W,Q,ee,te,re,ne,$e,ie,ae,oe,le,se,ue,ce,fe,de,_e,he,pe,ye,ge,me,ve,be,we,Ee,Oe,xe,Me,ke,Ae,Ie,ze,Se,Ne,Re,je,Te,qe,Ce,Fe,Pe,De,Be,Ue,Le,Xe,Ge,He,Ye,Ke,Ve,Ze,Je,We,Qe,et,tt,rt,nt,$t,it,at,ot,lt,st,ut,ct,ft,dt,_t,ht,pt,yt,gt,mt,vt,bt,wt,Et=v(a,$super,"Array"),Ot=[Et].concat(o);return Et.$include(u(Ot,"Enumerable")),e.defineProperty(Et.$$prototype,"$$is_array",!0),e.defs(Et,"$[]",j=function(){var t=this;return A(e.slice.call(arguments,0,arguments.length),t)},j.$$arity=-1),e.def(Et,"$initialize",T=function(e,t){var r,n,$=T.$$p,i=$||l,a=this;if($&&(T.$$p=null),$&&(T.$$p=null),null==e&&(e=l),null==t&&(t=l),t!==l&&i!==l&&a.$warn("warning: block supersedes default value argument"),e>s(u(Ot,"Integer"),"MAX")&&a.$raise(u(Ot,"ArgumentError"),"array size too big"),arguments.length>2&&a.$raise(u(Ot,"ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..2)"),0===arguments.length)return a.splice(0,a.length),a;if(1===arguments.length){if(e.$$is_array)return a.$replace(e.$to_a()),a;if(e["$respond_to?"]("to_ary"))return a.$replace(e.$to_ary()),a}if((e=g(e,u(Ot,"Integer"),"to_int"))<0&&a.$raise(u(Ot,"ArgumentError"),"negative array size"),a.splice(0,a.length),i===l)for(r=0;r",L=function(e){var t=this;if(c(u(Ot,"Array")["$==="](e)))e=e.$to_a();else{if(!c(e["$respond_to?"]("to_ary")))return l;e=e.$to_ary().$to_a()}if(t.$hash()===e.$hash())return 0;for(var r=Math.min(t.length,e.length),n=0;n"](e[n]);if(0!==$)return $}return t.length["$<=>"](e.length)},L.$$arity=1),e.def(Et,"$==",X=function(e){function t(e,n){var $,i,a,o;if(e===n)return!0;if(!n.$$is_array)return!!m(n,"$to_ary")&&n["$=="](e);if(e.$$constructor!==Array&&(e=e.$to_a()),n.$$constructor!==Array&&(n=n.$to_a()),e.length!==n.length)return!1;for(r[e.$object_id()]=!0,$=0,i=e.length;$s)for(n=s;ns)for(n=s;n=t.length?l:t[e]},V.$$arity=1),e.def(Et,"$bsearch_index",Z=function(){var e=Z.$$p,t=e||l,r=this;if(e&&(Z.$$p=null),e&&(Z.$$p=null),t===l)return r.$enum_for("bsearch_index");for(var n,$,i,a=0,o=r.length,s=!1,c=l;a0;){for($=0,i=f.length;$=0&&h<_.length){for(i=[],n=0;n<=h+1;n++)i.push(0);for(a=[],o=0,s=!1,i[0]=-1;!s;){for(a[o]=_[i[o+1]];o=0&&r(o,0,[],a),a)},ie.$$arity=1),e.def(Et,"$compact",ae=function(){for(var e,t=this,r=[],n=0,$=t.length;n<$;n++)(e=t[n])!==l&&r.push(e);return r},ae.$$arity=0),e.def(Et,"$compact!",oe=function(){for(var e=this,t=e.length,r=0,n=e.length;r=t.length)return l;var r=t[e];return t.splice(e,1),r},ue.$$arity=1),e.def(Et,"$delete_if",ce=function(){var e,t=ce.$$p,r=t||l,n=this;return t&&(ce.$$p=null),t&&(ce.$$p=null),r===l?O(n,"enum_for",["delete_if"],((e=function(){return(null==e.$$s?this:e.$$s).$size()}).$$s=n,e.$$arity=0,e)):(I(n,f,r),n)},ce.$$arity=0),e.def(Et,"$difference",fe=function(){var t,r,$=this;return t=e.slice.call(arguments,0,arguments.length),O(t,"reduce",[$.$to_a().$dup()],((r=function(e,t){null==r.$$s||r.$$s;return null==e&&(e=l),null==t&&(t=l),n(e,t)}).$$s=$,r.$$arity=2,r))},fe.$$arity=-1),e.def(Et,"$dig",de=function(t){var r,n=this,$=l;return r=e.slice.call(arguments,1,arguments.length),($=n["$[]"](t))===l||0===r.length?$:(c($["$respond_to?"]("dig"))||n.$raise(u(Ot,"TypeError"),$.$class()+" does not have #dig method"),O($,"dig",e.to_a(r)))},de.$$arity=-2),e.def(Et,"$drop",_e=function(e){var t=this;return e<0&&t.$raise(u(Ot,"ArgumentError")),t.slice(e)},_e.$$arity=1),e.def(Et,"$dup",he=function(){var t=he.$$p,r=this;return t&&(he.$$p=null),r.$$class===e.Array&&r.$$class.$allocate.$$pristine&&r.$copy_instance_variables.$$pristine&&r.$initialize_dup.$$pristine?r.slice(0):w(r,E(r,"dup",he,!1,!0),"dup",[],t)},he.$$arity=0),e.def(Et,"$each",pe=function(){var e,t=pe.$$p,r=t||l,n=this;if(t&&(pe.$$p=null),t&&(pe.$$p=null),r===l)return O(n,"enum_for",["each"],((e=function(){return(null==e.$$s?this:e.$$s).$size()}).$$s=n,e.$$arity=0,e));for(var $=0,i=n.length;$=0&&e<$.length?$[e]:(n!==l&&null!=t&&$.$warn("warning: block supersedes default value argument"),n!==l?n(i):null!=t?t:void(0===$.length?$.$raise(u(Ot,"IndexError"),"index "+i+" outside of array bounds: 0...0"):$.$raise(u(Ot,"IndexError"),"index "+i+" outside of array bounds: -"+$.length+"..."+$.length)))},ve.$$arity=-2),e.def(Et,"$fill",be=function(){var t,r,n,$,i,a=be.$$p,o=a||l,s=this,f=l,d=l,_=l,h=l,p=l;if(a&&(be.$$p=null),a&&(be.$$p=null),t=e.slice.call(arguments,0,arguments.length),c(o)?(c(t.length>2)&&s.$raise(u(Ot,"ArgumentError"),"wrong number of arguments ("+t.$length()+" for 0..2)"),n=t,f=null==(r=e.to_ary(n))[0]?l:r[0],d=null==r[1]?l:r[1]):(c(0==t.length)?s.$raise(u(Ot,"ArgumentError"),"wrong number of arguments (0 for 1..3)"):c(t.length>3)&&s.$raise(u(Ot,"ArgumentError"),"wrong number of arguments ("+t.$length()+" for 1..3)"),n=t,_=null==(r=e.to_ary(n))[0]?l:r[0],f=null==r[1]?l:r[1],d=null==r[2]?l:r[2]),c(u(Ot,"Range")["$==="](f))){if(c(d)&&s.$raise(u(Ot,"TypeError"),"length invalid with range"),h=g(f.begin,u(Ot,"Integer"),"to_int"),c(h<0)&&(h+=this.length),c(h<0)&&s.$raise(u(Ot,"RangeError"),f.$inspect()+" out of range"),p=g(f.end,u(Ot,"Integer"),"to_int"),c(p<0)&&(p+=this.length),c(f["$exclude_end?"]())||(p+=1),c(p<=h))return s}else if(c(f))if(h=g(f,u(Ot,"Integer"),"to_int"),c(h<0)&&(h+=this.length),c(h<0)&&(h=0),c(d)){if(p=g(d,u(Ot,"Integer"),"to_int"),c(0==p))return s;p+=h}else p=this.length;else h=0,p=this.length;if(c(h>this.length))for($=this.length;$this.length)&&(this.length=p),c(o))for(this.length;h0){if(t<0&&(t+=n.length+1)<0&&n.$raise(u(Ot,"IndexError"),t+" is out of bounds"),t>n.length)for(var $=n.length;$t.length&&(e=t.length),t.slice(t.length-e,t.length))},Re.$$arity=-1),e.def(Et,"$length",je=function(){return this.length},je.$$arity=0),M(Et,"map","collect"),M(Et,"map!","collect!"),e.def(Et,"$max",Te=function(e){var t=Te.$$p,r=t||l,n=this;return t&&(Te.$$p=null),t&&(Te.$$p=null),O(n.$each(),"max",[e],r.$to_proc())},Te.$$arity=-1),e.def(Et,"$min",qe=function(){var e=qe.$$p,t=e||l,r=this;return e&&(qe.$$p=null),e&&(qe.$$p=null),O(r.$each(),"min",[],t.$to_proc())},qe.$$arity=0),e.def(Et,"$permutation",Ce=function(t){var r,n,$,i,a=Ce.$$p,o=a||l,s=this,c=l,f=l;if(a&&(Ce.$$p=null),a&&(Ce.$$p=null),o===l)return O(s,"enum_for",["permutation",t],((r=function(){var e=null==r.$$s?this:r.$$s;return R(e.length,t===undefined?e.length:t)}).$$s=s,r.$$arity=0,r));if((t=t===undefined?s.length:g(t,u(Ot,"Integer"),"to_int"))<0||s.lengtht.length)?t.splice(0,t.length):t.splice(t.length-e,t.length))},Pe.$$arity=-1),e.def(Et,"$product",De=function(){var t,r,n=De.$$p,$=n||l,i=this;n&&(De.$$p=null),n&&(De.$$p=null),t=e.slice.call(arguments,0,arguments.length);var a,o,s,c,f=$!==l?null:[],d=(r=t).length+1,_=new Array(d),h=new Array(d),p=new Array(d),y=1;for(p[0]=i,a=1;a2147483647&&i.$raise(u(Ot,"RangeError"),"too big to product"),h[a]=c,_[a]=0}e:for(;;){for(s=[],a=0;a=0&&!(t>=i.length);t--)if(i[t]["$=="](e))return t}else if($!==l){for(t=i.length-1;t>=0&&!(t>=i.length);t--)if(!1!==(r=$(i[t]))&&r!==l)return t}else if(null==e)return i.$enum_for("rindex");return l},Ve.$$arity=-1),e.def(Et,"$rotate",Ze=function(e){var t,r,n,$,i=this;return null==e&&(e=1),e=g(e,u(Ot,"Integer"),"to_int"),1===i.length?i.slice():0===i.length?[]:(r=e%(t=i.slice()).length,n=t.slice(r),$=t.slice(0,r),n.concat($))},Ze.$$arity=-1),e.def(Et,"$rotate!",Je=function(e){var t=this,r=l;return null==e&&(e=1),0===t.length||1===t.length?t:(e=g(e,u(Ot,"Integer"),"to_int"),r=t.$rotate(e),t.$replace(r))},Je.$$arity=-1),function(t,$super,r){var n,$,i=v(t,null,"SampleRandom"),a=[i].concat(r);i.$$prototype.rng=l,e.def(i,"$initialize",n=function(e){return this.rng=e},n.$$arity=1),e.def(i,"$rand",$=function(e){var t=this,r=l;return r=g(t.rng.$rand(e),u(a,"Integer"),"to_int"),c(r<0)&&t.$raise(u(a,"RangeError"),"random value must be >= 0"),c(rd.length&&(e=d.length),e){case 0:return[];case 1:return[d[p.$rand(d.length)]];case 2:return(i=p.$rand(d.length))===(a=p.$rand(d.length))&&(a=0===i?i+1:i-1),[d[i],d[a]];default:if(d.length/e>3){for(r=!1,n=0,i=1,($=u(Ot,"Array").$new(e))[0]=p.$rand(d.length);i100){r=!0;break}o=p.$rand(d.length)}if(r)break;a++}if(r)break;$[i]=o,i++}if(!r){for(i=0;i=i&&$.$raise(u(Ot,"RangeError"),"random number too big "+r)):r=$.$rand(i),n=$[--i],$[i]=$[r],$[r]=n;return $},nt.$$arity=-1),M(Et,"slice","[]"),e.def(Et,"$slice!",$t=function(e,t){var r=this,n=l,$=l,i=l,a=l,o=l;if(n=l, +c(t===undefined))if(c(u(Ot,"Range")["$==="](e))){$=e,n=r["$[]"]($),i=g($.begin,u(Ot,"Integer"),"to_int"),a=g($.end,u(Ot,"Integer"),"to_int"),i<0&&(i+=r.length),a<0?a+=r.length:a>=r.length&&(a=r.length-1,$.excl&&(a+=1));var s=a-i;$.excl?a-=1:s+=1,i=0&&a=0&&s>0&&r.splice(i,s)}else{if((o=g(e,u(Ot,"Integer"),"to_int"))<0&&(o+=r.length),o<0||o>=r.length)return l;n=r[o],0===o?r.shift():r.splice(o,1)}else{if(o=g(e,u(Ot,"Integer"),"to_int"),(t=g(t,u(Ot,"Integer"),"to_int"))<0)return l;n=r["$[]"](o,t),o<0&&(o+=r.length),o+t>r.length&&(t=r.length-o),o=0&&r.splice(o,t)}return n},$t.$$arity=-2),e.def(Et,"$sort",it=function(){var e=it.$$p,r=e||l,n=this;return e&&(it.$$p=null),e&&(it.$$p=null),c(n.length>1)?(r===l&&(r=function(e,t){return e["$<=>"](t)}),n.slice().sort(function(e,$){var a=r(e,$);return a===l&&n.$raise(u(Ot,"ArgumentError"),"comparison of "+e.$inspect()+" with "+$.$inspect()+" failed"),t(a,0)?1:i(a,0)?-1:0})):n},it.$$arity=0),e.def(Et,"$sort!",at=function(){var e,t=at.$$p,r=t||l,n=this;t&&(at.$$p=null),t&&(at.$$p=null),e=r!==l?O(n.slice(),"sort",[],r.$to_proc()):n.slice().$sort(),n.length=0;for(var $=0,i=e.length;$=0;)r[o]=r[o-$],o--;for(var l=0;l<$;l++)r[l]=t[l];return r},yt.$$arity=-1),M(Et,"prepend","unshift"),e.def(Et,"$values_at",gt=function(){var t,r,n=this,$=l;return t=e.slice.call(arguments,0,arguments.length),$=[],O(t,"each",[],((r=function(e){var t,n=null==r.$$s?this:r.$$s,i=l,a=l,o=l;return null==e&&(e=l),c(e["$is_a?"](u(Ot,"Range")))?(i=g(e.$last(),u(Ot,"Integer"),"to_int"),(a=g(e.$first(),u(Ot,"Integer"),"to_int"))<0?(a+=n.length,l):(i<0&&(i+=n.length),e["$exclude_end?"]()&&i--,i=t:e["$>="](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}var $=e.top,i=[],a=e.nil,o=(e.$$$,e.$$),l=e.klass,s=e.send,u=e.hash2,c=e.truthy,f=e.alias;return e.add_stubs(["$require","$include","$coerce_to?","$[]","$merge!","$allocate","$raise","$coerce_to!","$each","$fetch","$>=","$>","$==","$compare_by_identity","$lambda?","$abs","$arity","$enum_for","$size","$respond_to?","$class","$dig","$except!","$dup","$delete","$new","$inspect","$map","$to_proc","$flatten","$eql?","$default","$default_proc","$default_proc=","$-","$default=","$to_h","$proc"]),$.$require("corelib/enumerable"),function($,$super,i){var d,_,h,p,y,g,m,v,b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D,B,U,L,X,G,H,Y,K,V,Z,J,W,Q,ee,te,re,ne,$e,ie,ae,oe,le,se,ue,ce,fe,de,_e,he,pe,ye,ge,me,ve,be,we,Ee,Oe=l($,null,"Hash"),xe=[Oe].concat(i);return Oe.$include(o(xe,"Enumerable")),Oe.$$prototype.$$is_hash=!0,e.defs(Oe,"$[]",d=function(){var t,r,n,$=this,i=(t=e.slice.call(arguments,0,arguments.length)).length;if(1===i){if((r=o(xe,"Opal")["$coerce_to?"](t["$[]"](0),o(xe,"Hash"),"to_hash"))!==a)return $.$allocate()["$merge!"](r);for((t=o(xe,"Opal")["$coerce_to?"](t["$[]"](0),o(xe,"Array"),"to_ary"))===a&&$.$raise(o(xe,"ArgumentError"),"odd number of arguments for Hash"),i=t.length,r=$.$allocate(),n=0;n=",g=function(e){var t,r=this,n=a;return e=o(xe,"Opal")["$coerce_to!"](e,o(xe,"Hash"),"to_hash"),!(r.$$keys.length",m=function(e){var r=this;return e=o(xe,"Opal")["$coerce_to!"](e,o(xe,"Hash"),"to_hash"),!(r.$$keys.length<=e.$$keys.length)&&t(r,e)},m.$$arity=1),e.def(Oe,"$<",v=function(e){var t=this;return r(e=o(xe,"Opal")["$coerce_to!"](e,o(xe,"Hash"),"to_hash"),t)},v.$$arity=1),e.def(Oe,"$<=",b=function(e){var r=this;return t(e=o(xe,"Opal")["$coerce_to!"](e,o(xe,"Hash"),"to_hash"),r)},b.$$arity=1),e.def(Oe,"$[]",w=function(t){var r=this,n=e.hash_get(r,t);return n!==undefined?n:r.$default(t)},w.$$arity=1),e.def(Oe,"$[]=",E=function(t,r){var n=this;return e.hash_put(n,t,r),r},E.$$arity=2),e.def(Oe,"$assoc",O=function(e){for(var t,r=this,n=0,$=r.$$keys,i=$.length;n"+i.$inspect());return"{"+n.join(", ")+"}"}finally{t&&(Ee=undefined)}},W.$$arity=0),e.def(Oe,"$invert",Q=function(){for(var t,r,n=this,$=e.hash(),i=0,a=n.$$keys,o=a.length;i0?[t=(t=n[0]).$$is_string?t:t.key,e.hash_delete(r,t)]:r.$default(a)},fe.$$arity=0),f(Oe,"size","length"),e.def(Oe,"$slice",de=function(){var t,r=this;t=e.slice.call(arguments,0,arguments.length);for(var n=e.hash(),$=0,i=t.length;$t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}var s=e.top,u=[],c=e.nil,f=e.$$$,d=e.$$,_=e.klass,h=e.alias,p=e.truthy,y=e.send2,g=e.find_super,m=e.send;return e.add_stubs(["$require","$bridge","$raise","$name","$class","$Float","$respond_to?","$coerce_to!","$__coerced__","$===","$!","$>","$**","$new","$<","$to_f","$==","$nan?","$infinite?","$enum_for","$+","$-","$gcd","$lcm","$%","$/","$frexp","$to_i","$ldexp","$rationalize","$*","$<<","$to_r","$truncate","$-@","$size","$<=","$>=","$inspect"]),s.$require("corelib/numeric"),function(s,$super,u){var v,b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D,B,U,L,X,G,H,Y,K,V,Z,J,W,Q,ee,te,re,ne,$e,ie,ae,oe,le,se,ue,ce,fe,de,_e,he,pe,ye,ge,me,ve,be,we,Ee,Oe,xe,Me,ke,Ae,Ie,ze,Se,Ne,Re,je,Te,qe,Ce=_(s,$super,"Number"),Fe=[Ce].concat(u);d(Fe,"Opal").$bridge(Number,Ce),e.defineProperty(Ce.$$prototype,"$$is_number",!0),Ce.$$is_number_class=!0,function(t,r){var n,$=[t].concat(r);e.def(t,"$allocate",n=function(){var e=this;return e.$raise(d($,"TypeError"),"allocator undefined for "+e.$name())},n.$$arity=0),e.udef(t,"$new")}(e.get_singleton_class(Ce),Fe),e.def(Ce,"$coerce",v=function(e){var t=this;if(e===c)t.$raise(d(Fe,"TypeError"),"can't convert "+e.$class()+" into Float");else{if(e.$$is_string)return[t.$Float(e),t];if(e["$respond_to?"]("to_f"))return[d(Fe,"Opal")["$coerce_to!"](e,d(Fe,"Float"),"to_f"),t];if(e.$$is_number)return[e,t];t.$raise(d(Fe,"TypeError"),"can't convert "+e.$class()+" into Float")}},v.$$arity=1),e.def(Ce,"$__id__",b=function(){return 2*this+1},b.$$arity=0),h(Ce,"object_id","__id__"),e.def(Ce,"$+",w=function(e){var t=this;return e.$$is_number?t+e:t.$__coerced__("+",e)},w.$$arity=1),e.def(Ce,"$-",E=function(e){var t=this;return e.$$is_number?t-e:t.$__coerced__("-",e)},E.$$arity=1),e.def(Ce,"$*",O=function(e){var t=this;return e.$$is_number?t*e:t.$__coerced__("*",e)},O.$$arity=1),e.def(Ce,"$/",x=function(e){var t=this;return e.$$is_number?t/e:t.$__coerced__("/",e)},x.$$arity=1),h(Ce,"fdiv","/"),e.def(Ce,"$%",M=function(e){var t=this;return e.$$is_number?e==-Infinity?e:0!=e?e<0||t<0?(t%e+e)%e:t%e:void t.$raise(d(Fe,"ZeroDivisionError"),"divided by 0"):t.$__coerced__("%",e)},M.$$arity=1),e.def(Ce,"$&",k=function(e){var t=this;return e.$$is_number?t&e:t.$__coerced__("&",e)},k.$$arity=1),e.def(Ce,"$|",A=function(e){var t=this;return e.$$is_number?t|e:t.$__coerced__("|",e)},A.$$arity=1),e.def(Ce,"$^",I=function(e){var t=this;return e.$$is_number?t^e:t.$__coerced__("^",e)},I.$$arity=1),e.def(Ce,"$<",z=function(e){var t=this;return e.$$is_number?t",N=function(e){var t=this;return e.$$is_number?t>e:t.$__coerced__(">",e)},N.$$arity=1),e.def(Ce,"$>=",R=function(e){var t=this;return e.$$is_number?t>=e:t.$__coerced__(">=",e)},R.$$arity=1);var Pe=function(e,t){return t.$$is_number?isNaN(e)||isNaN(t)?c:e>t?1:e",t)};e.def(Ce,"$<=>",j=function(t){var r=this;try{return Pe(r,t)}catch(n){if(!e.rescue(n,[d(Fe,"ArgumentError")]))throw n;try{return c}finally{e.pop_exception()}}},j.$$arity=1),e.def(Ce,"$<<",T=function(e){var t=this;return(e=d(Fe,"Opal")["$coerce_to!"](e,d(Fe,"Integer"),"to_int"))>0?t<>-e},T.$$arity=1),e.def(Ce,"$>>",q=function(e){var t=this;return(e=d(Fe,"Opal")["$coerce_to!"](e,d(Fe,"Integer"),"to_int"))>0?t>>e:t<<-e},q.$$arity=1),e.def(Ce,"$[]",C=function(e){var t=this;return(e=d(Fe,"Opal")["$coerce_to!"](e,d(Fe,"Integer"),"to_int"))<0?0:e>=32?t<0?1:0:t>>e&1},C.$$arity=1),e.def(Ce,"$+@",F=function(){return+this},F.$$arity=0),e.def(Ce,"$-@",P=function(){return-this},P.$$arity=0),e.def(Ce,"$~",D=function(){return~this},D.$$arity=0),e.def(Ce,"$**",B=function(e){var n=this,$=c,i=c,a=c;return p(d(Fe,"Integer")["$==="](e))?p(p($=d(Fe,"Integer")["$==="](n)["$!"]())?$:t(e,0))?Math.pow(n,e):d(Fe,"Rational").$new(n,1)["$**"](e):p(p(i=r(n,0))?p(a=d(Fe,"Float")["$==="](e))?a:d(Fe,"Rational")["$==="](e):i)?d(Fe,"Complex").$new(n,0)["$**"](e.$to_f()):p(null!=e.$$is_number)?Math.pow(n,e):n.$__coerced__("**",e)},B.$$arity=1),e.def(Ce,"$===",U=function(e){var t=this;return e.$$is_number?t.valueOf()===e.valueOf():!!e["$respond_to?"]("==")&&e["$=="](t)},U.$$arity=1),e.def(Ce,"$==",L=function(e){var t=this;return e.$$is_number?t.valueOf()===e.valueOf():!!e["$respond_to?"]("==")&&e["$=="](t)},L.$$arity=1),e.def(Ce,"$abs",X=function(){var e=this;return Math.abs(e)},X.$$arity=0),e.def(Ce,"$abs2",G=function(){var e=this;return Math.abs(e*e)},G.$$arity=0),e.def(Ce,"$allbits?",H=function(e){return(this&(e=d(Fe,"Opal")["$coerce_to!"](e,d(Fe,"Integer"),"to_int")))==e},H.$$arity=1),e.def(Ce,"$anybits?",Y=function(e){return 0!=(this&(e=d(Fe,"Opal")["$coerce_to!"](e,d(Fe,"Integer"),"to_int")))},Y.$$arity=1),e.def(Ce,"$angle",K=function(){var e=this;return p(e["$nan?"]())?e:0==e?1/e>0?0:Math.PI:e<0?Math.PI:0},K.$$arity=0),h(Ce,"arg","angle"),h(Ce,"phase","angle"),e.def(Ce,"$bit_length",V=function(){var e=this;if(p(d(Fe,"Integer")["$==="](e))||e.$raise(d(Fe,"NoMethodError").$new("undefined method `bit_length` for "+e+":Float","bit_length")),0===e||-1===e)return 0;for(var t=0,r=e<0?~e:e;0!=r;)t+=1,r>>>=1;return t},V.$$arity=0),e.def(Ce,"$ceil",Z=function(e){null==e&&(e=0);var t=this.$to_f();if(t%1==0&&e>=0)return t;var r=Math.pow(10,e),n=Math.ceil(t*r)/r;return t%1==0&&(n=Math.round(n)),n},Z.$$arity=-1),e.def(Ce,"$chr",J=function(t){var r=this;return e.enc(String.fromCharCode(r),t||"BINARY")},J.$$arity=-1),e.def(Ce,"$denominator",W=function(){var e=W.$$p,t=this,r=c;return e&&(W.$$p=null),p(p(r=t["$nan?"]())?r:t["$infinite?"]())?1:y(t,g(t,"denominator",W,!1,!0),"denominator",[],e)},W.$$arity=0),e.def(Ce,"$downto",Q=function(e){var r,i=Q.$$p,a=i||c,o=this;if(i&&(Q.$$p=null),i&&(Q.$$p=null),a===c)return m(o,"enum_for",["downto",e],((r=function(){var i=null==r.$$s?this:r.$$s;return p(d(Fe,"Numeric")["$==="](e))||i.$raise(d(Fe,"ArgumentError"),"comparison of "+i.$class()+" with "+e.$class()+" failed"),p(t(e,i))?0:n($(i,e),1)}).$$s=o,r.$$arity=0,r));e.$$is_number||o.$raise(d(Fe,"ArgumentError"),"comparison of "+o.$class()+" with "+e.$class()+" failed");for(var l=o;l>=e;l--)a(l);return o},Q.$$arity=1),h(Ce,"eql?","=="),e.def(Ce,"$equal?",ee=function(e){var t=this,r=c;return p(r=t["$=="](e))?r:isNaN(t)&&isNaN(e)},ee.$$arity=1),e.def(Ce,"$even?",te=function(){return this%2==0},te.$$arity=0),e.def(Ce,"$floor",re=function(e){null==e&&(e=0);var t=this.$to_f();if(t%1==0&&e>=0)return t;var r=Math.pow(10,e),n=Math.floor(t*r)/r;return t%1==0&&(n=Math.round(n)),n},re.$$arity=-1),e.def(Ce,"$gcd",ne=function(e){var t=this;p(d(Fe,"Integer")["$==="](e))||t.$raise(d(Fe,"TypeError"),"not an integer");for(var r=Math.abs(t),n=Math.abs(e);r>0;){var $=r;r=n%r,n=$}return n},ne.$$arity=1),e.def(Ce,"$gcdlcm",$e=function(e){var t=this;return[t.$gcd(e),t.$lcm(e)]},$e.$$arity=1),e.def(Ce,"$integer?",ie=function(){return this%1==0},ie.$$arity=0),e.def(Ce,"$is_a?",ae=function(e){var t=ae.$$p,r=this,n=c,$=c,i=c;return t&&(ae.$$p=null),!!p(p(n=e["$=="](d(Fe,"Integer")))?d(Fe,"Integer")["$==="](r):n)||(!!p(p($=e["$=="](d(Fe,"Integer")))?d(Fe,"Integer")["$==="](r):$)||(!!p(p(i=e["$=="](d(Fe,"Float")))?d(Fe,"Float")["$==="](r):i)||y(r,g(r,"is_a?",ae,!1,!0),"is_a?",[e],t)))},ae.$$arity=1),h(Ce,"kind_of?","is_a?"),e.def(Ce,"$instance_of?",oe=function(e){var t=oe.$$p,r=this,n=c,$=c,i=c;return t&&(oe.$$p=null),!!p(p(n=e["$=="](d(Fe,"Integer")))?d(Fe,"Integer")["$==="](r):n)||(!!p(p($=e["$=="](d(Fe,"Integer")))?d(Fe,"Integer")["$==="](r):$)||(!!p(p(i=e["$=="](d(Fe,"Float")))?d(Fe,"Float")["$==="](r):i)||y(r,g(r,"instance_of?",oe,!1,!0),"instance_of?",[e],t)))},oe.$$arity=1),e.def(Ce,"$lcm",le=function(e){var t=this;return p(d(Fe,"Integer")["$==="](e))||t.$raise(d(Fe,"TypeError"),"not an integer"),0==t||0==e?0:Math.abs(t*e/t.$gcd(e))},le.$$arity=1),h(Ce,"magnitude","abs"),h(Ce,"modulo","%"),e.def(Ce,"$next",se=function(){return this+1},se.$$arity=0),e.def(Ce,"$nobits?",ue=function(e){return 0==(this&(e=d(Fe,"Opal")["$coerce_to!"](e,d(Fe,"Integer"),"to_int")))},ue.$$arity=1),e.def(Ce,"$nonzero?",ce=function(){var e=this;return 0==e?c:e},ce.$$arity=0),e.def(Ce,"$numerator",fe=function(){var e=fe.$$p,t=this,r=c;return e&&(fe.$$p=null),p(p(r=t["$nan?"]())?r:t["$infinite?"]())?t:y(t,g(t,"numerator",fe,!1,!0),"numerator",[],e)},fe.$$arity=0),e.def(Ce,"$odd?",de=function(){return this%2!=0},de.$$arity=0),e.def(Ce,"$ord",_e=function(){return this},_e.$$arity=0),e.def(Ce,"$pow",he=function(e,t){var r=this +;return 0==r&&r.$raise(d(Fe,"ZeroDivisionError"),"divided by 0"),t===undefined?r["$**"](e):(d(Fe,"Integer")["$==="](e)||r.$raise(d(Fe,"TypeError"),"Integer#pow() 2nd argument not allowed unless a 1st argument is integer"),e<0&&r.$raise(d(Fe,"TypeError"),"Integer#pow() 1st argument cannot be negative when 2nd argument specified"),d(Fe,"Integer")["$==="](t)||r.$raise(d(Fe,"TypeError"),"Integer#pow() 2nd argument not allowed unless all arguments are integers"),0===t&&r.$raise(d(Fe,"ZeroDivisionError"),"divided by 0"),r["$**"](e)["$%"](t))},he.$$arity=-2),e.def(Ce,"$pred",pe=function(){return this-1},pe.$$arity=0),e.def(Ce,"$quo",ye=function(e){var t=ye.$$p,r=this;return t&&(ye.$$p=null),p(d(Fe,"Integer")["$==="](r))?y(r,g(r,"quo",ye,!1,!0),"quo",[e],t):i(r,e)},ye.$$arity=1),e.def(Ce,"$rationalize",ge=function(t){var r,n,i=this,o=c,l=c;return arguments.length>1&&i.$raise(d(Fe,"ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),p(d(Fe,"Integer")["$==="](i))?d(Fe,"Rational").$new(i,1):p(i["$infinite?"]())?i.$raise(d(Fe,"FloatDomainError"),"Infinity"):p(i["$nan?"]())?i.$raise(d(Fe,"FloatDomainError"),"NaN"):p(null==t)?(n=d(Fe,"Math").$frexp(i),o=null==(r=e.to_ary(n))[0]?c:r[0],l=null==r[1]?c:r[1],o=d(Fe,"Math").$ldexp(o,f(d(Fe,"Float"),"MANT_DIG")).$to_i(),l=$(l,f(d(Fe,"Float"),"MANT_DIG")),d(Fe,"Rational").$new(a(2,o),1["$<<"]($(1,l))).$rationalize(d(Fe,"Rational").$new(1,1["$<<"]($(1,l))))):i.$to_r().$rationalize(t)},ge.$$arity=-1),e.def(Ce,"$remainder",me=function(e){var t=this;return $(t,a(e,i(t,e).$truncate()))},me.$$arity=1),e.def(Ce,"$round",ve=function(a){var s,u,_=this,h=c,y=c,g=c,m=c;if(p(d(Fe,"Integer")["$==="](_))){if(p(null==a))return _;if(p(p(h=d(Fe,"Float")["$==="](a))?a["$infinite?"]():h)&&_.$raise(d(Fe,"RangeError"),"Infinity"),a=d(Fe,"Opal")["$coerce_to!"](a,d(Fe,"Integer"),"to_int"),p(r(a,f(d(Fe,"Integer"),"MIN")))&&_.$raise(d(Fe,"RangeError"),"out of bounds"),p(a>=0))return _;if(.415241*(a=a["$-@"]())-.125>_.$size())return 0;var v=Math.pow(10,a),b=Math.floor((Math.abs(_)+v/2)/v)*v;return _<0?-b:b}if(p(p(y=_["$nan?"]())?null==a:y)&&_.$raise(d(Fe,"FloatDomainError"),"NaN"),a=d(Fe,"Opal")["$coerce_to!"](a||0,d(Fe,"Integer"),"to_int"),p(o(a,0)))p(_["$nan?"]())?_.$raise(d(Fe,"RangeError"),"NaN"):p(_["$infinite?"]())&&_.$raise(d(Fe,"FloatDomainError"),"Infinity");else{if(a["$=="](0))return Math.round(_);if(p(p(g=_["$nan?"]())?g:_["$infinite?"]()))return _}return u=d(Fe,"Math").$frexp(_),null==(s=e.to_ary(u))[0]?c:s[0],m=null==s[1]?c:s[1],p(l(a,$(n(f(d(Fe,"Float"),"DIG"),2),p(t(m,0))?i(m,4):$(i(m,3),1))))?_:p(r(a,(p(t(m,0))?n(i(m,3),1):i(m,4))["$-@"]()))?0:Math.round(_*Math.pow(10,a))/Math.pow(10,a)},ve.$$arity=-1),h(Ce,"succ","next"),e.def(Ce,"$times",be=function(){var e,t=be.$$p,r=t||c,n=this;if(t&&(be.$$p=null),t&&(be.$$p=null),!p(r))return m(n,"enum_for",["times"],((e=function(){return null==e.$$s?this:e.$$s}).$$s=n,e.$$arity=0,e));for(var $=0;$=0)return t;var r=Math.pow(10,e),n=parseInt(t*r,10)/r;return t%1==0&&(n=Math.round(n)),n},Me.$$arity=-1),h(Ce,"inspect","to_s"),e.def(Ce,"$digits",ke=function(e){var t=this;null==e&&(e=10),r(t,0)&&t.$raise(f(d(Fe,"Math"),"DomainError"),"out of domain"),e=d(Fe,"Opal")["$coerce_to!"](e,d(Fe,"Integer"),"to_int"),p(r(e,2))&&t.$raise(d(Fe,"ArgumentError"),"invalid radix "+e),t!=parseInt(t)&&t.$raise(d(Fe,"NoMethodError"),"undefined method `digits' for "+t.$inspect());var n=t,$=[];if(0==t)return[0];for(;0!=n;)$.push(n%e),n=parseInt(n/e,10);return $},ke.$$arity=-1),e.def(Ce,"$divmod",Ae=function(e){var t=Ae.$$p,r=this,n=c;return t&&(Ae.$$p=null),p(p(n=r["$nan?"]())?n:e["$nan?"]())?r.$raise(d(Fe,"FloatDomainError"),"NaN"):p(r["$infinite?"]())?r.$raise(d(Fe,"FloatDomainError"),"Infinity"):y(r,g(r,"divmod",Ae,!1,!0),"divmod",[e],t)},Ae.$$arity=1),e.def(Ce,"$upto",Ie=function(e){var t,i=Ie.$$p,a=i||c,o=this;if(i&&(Ie.$$p=null),i&&(Ie.$$p=null),a===c)return m(o,"enum_for",["upto",e],((t=function(){var i=null==t.$$s?this:t.$$s;return p(d(Fe,"Numeric")["$==="](e))||i.$raise(d(Fe,"ArgumentError"),"comparison of "+i.$class()+" with "+e.$class()+" failed"),p(r(e,i))?0:n($(e,i),1)}).$$s=o,t.$$arity=0,t));e.$$is_number||o.$raise(d(Fe,"ArgumentError"),"comparison of "+o.$class()+" with "+e.$class()+" failed");for(var l=o;l<=e;l++)a(l);return o},Ie.$$arity=1),e.def(Ce,"$zero?",ze=function(){return 0==this},ze.$$arity=0),e.def(Ce,"$size",Se=function(){return 4},Se.$$arity=0),e.def(Ce,"$nan?",Ne=function(){return isNaN(this)},Ne.$$arity=0),e.def(Ce,"$finite?",Re=function(){var e=this;return e!=Infinity&&e!=-Infinity&&!isNaN(e)},Re.$$arity=0),e.def(Ce,"$infinite?",je=function(){var e=this;return e==Infinity?1:e==-Infinity?-1:c},je.$$arity=0),e.def(Ce,"$positive?",Te=function(){var e=this;return 0!=e&&(e==Infinity||1/e>0)},Te.$$arity=0),e.def(Ce,"$negative?",qe=function(){var e=this;return e==-Infinity||1/e<0},qe.$$arity=0)}(u[0],d(u,"Numeric"),u),e.const_set(u[0],"Fixnum",d(u,"Number")),function(t,$super,r){var n=_(t,$super,"Integer"),$=[n].concat(r);n.$$is_number_class=!0,n.$$is_integer_class=!0,function(t,r){var n,$,i=[t].concat(r);e.def(t,"$allocate",n=function(){var e=this;return e.$raise(d(i,"TypeError"),"allocator undefined for "+e.$name())},n.$$arity=0),e.udef(t,"$new"),e.def(t,"$sqrt",$=function(e){var t=this;return(e=d(i,"Opal")["$coerce_to!"](e,d(i,"Integer"),"to_int"))<0&&t.$raise(f(d(i,"Math"),"DomainError"),'Numerical argument is out of domain - "isqrt"'),parseInt(Math.sqrt(e),10)},$.$$arity=1)}(e.get_singleton_class(n),$),e.const_set($[0],"MAX",Math.pow(2,30)-1),e.const_set($[0],"MIN",-Math.pow(2,30))}(u[0],d(u,"Numeric"),u),function(t,$super,r){var n=_(t,$super,"Float"),$=[n].concat(r);return n.$$is_number_class=!0,function(t,r){var n,$,i=[t].concat(r);e.def(t,"$allocate",n=function(){var e=this;return e.$raise(d(i,"TypeError"),"allocator undefined for "+e.$name())},n.$$arity=0),e.udef(t,"$new"),e.def(t,"$===",$=function(e){return!!e.$$is_number},$.$$arity=1)}(e.get_singleton_class(n),$),e.const_set($[0],"INFINITY",Infinity),e.const_set($[0],"MAX",Number.MAX_VALUE),e.const_set($[0],"MIN",Number.MIN_VALUE),e.const_set($[0],"NAN",NaN),e.const_set($[0],"DIG",15),e.const_set($[0],"MANT_DIG",53),e.const_set($[0],"RADIX",2),e.const_set($[0],"EPSILON",Number.EPSILON||2.220446049250313e-16)}(u[0],d(u,"Numeric"),u)},Opal.modules["corelib/range"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e/t:e["$/"](t)}function a(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function o(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function l(e,t){return"number"==typeof e&&"number"==typeof t?e>=t:e["$>="](t)}var s=e.top,u=[],c=e.nil,f=e.$$$,d=e.$$,_=e.klass,h=e.truthy,p=e.send2,y=e.find_super,g=e.send,m=e.alias;return e.add_stubs(["$require","$include","$attr_reader","$raise","$<=>","$nil?","$include?","$!","$<","$<=","$enum_for","$size","$upto","$to_proc","$respond_to?","$class","$succ","$==","$===","$exclude_end?","$eql?","$begin","$end","$last","$to_a","$>","$-@","$-","$to_i","$coerce_to!","$ceil","$/","$loop","$+","$*","$>=","$each_with_index","$%","$bsearch","$inspect","$[]","$hash"]),s.$require("corelib/enumerable"),function(s,$super,u){function v(e){return e.begin===c||e.end===c||e.begin===-Infinity||e.end===Infinity||e.begin===Infinity||e.end===-Infinity}var b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D=_(s,null,"Range"),B=[D].concat(u);return D.$$prototype.begin=D.$$prototype.end=D.$$prototype.excl=c,D.$include(d(B,"Enumerable")),D.$$prototype.$$is_range=!0,D.$attr_reader("begin","end"),e.def(D,"$initialize",b=function(e,t,r){var n=this,$=c,i=c;return null==r&&(r=!1),h(n.begin)&&n.$raise(d(B,"NameError"),"'initialize' called twice"),h(h($=h(i=e["$<=>"](t))?i:e["$nil?"]())?$:t["$nil?"]())||n.$raise(d(B,"ArgumentError"),"bad value for range"),n.begin=e,n.end=t,n.excl=r},b.$$arity=-3),e.def(D,"$===",w=function(e){return this["$include?"](e)},w.$$arity=1),e.def(D,"$count",E=function(){var e=E.$$p,t=e||c,r=this,n=c;return e&&(E.$$p=null),e&&(E.$$p=null),h(h(n=(t!==c)["$!"]())?v(r):n)?f(d(B,"Float"),"INFINITY"):p(r,y(r,"count",E,!1,!0),"count",[],e)},E.$$arity=0),e.def(D,"$to_a",O=function(){var e=O.$$p,t=this;return e&&(O.$$p=null),h(v(t))&&t.$raise(d(B,"TypeError"),"cannot convert endless range to an array"),p(t,y(t,"to_a",O,!1,!0),"to_a",[],e)},O.$$arity=0),e.def(D,"$cover?",x=function(e){var n=this,$=c,i=c,a=c,o=c,l=c,s=c,u=c,f=c,d=c,_=c,p=c,y=c;return $=!!h(i=h(a=h(o=n.begin["$nil?"]())?-1:o)?a:n.begin["$<=>"](e))&&i,l=!!h(s=h(u=h(f=n.end["$nil?"]())?-1:f)?u:e["$<=>"](n.end))&&s,h(d=h(_=h(n.excl)?h(p=l)?t(l,0):p:h(y=l)?r(l,0):y)?$:_)?r($,0):d},x.$$arity=1),e.def(D,"$each",M=function(){var r,n,$,i=M.$$p,a=i||c,o=this,l=c,s=c,u=c,f=c;if(i&&(M.$$p=null),i&&(M.$$p=null),a===c)return g(o,"enum_for",["each"],((r=function(){return(null==r.$$s?this:r.$$s).$size()}).$$s=o,r.$$arity=0,r));if(o.begin.$$is_number&&o.end.$$is_number){for(o.begin%1==0&&o.end%1==0||o.$raise(d(B,"TypeError"),"can't iterate from Float"),n=o.begin,$=o.end+(h(o.excl)?0:1);n<$;n++)a(n);return o}if(o.begin.$$is_string&&o.end.$$is_string)return g(o.begin,"upto",[o.end,o.excl],a.$to_proc()),o;for(l=o.begin,s=o.end,h(l["$respond_to?"]("succ"))||o.$raise(d(B,"TypeError"),"can't iterate from "+l.$class());h(h(u=o.end["$nil?"]())?u:t(l["$<=>"](s),0));)e.yield1(a,l),l=l.$succ();return h(h(f=o.excl["$!"]())?l["$=="](s):f)&&e.yield1(a,l),o},M.$$arity=0),e.def(D,"$eql?",k=function(e){var t=this,r=c,n=c;return!!h(d(B,"Range")["$==="](e))&&(h(r=h(n=t.excl["$==="](e["$exclude_end?"]()))?t.begin["$eql?"](e.$begin()):n)?t.end["$eql?"](e.$end()):r)},k.$$arity=1),m(D,"==","eql?"),e.def(D,"$exclude_end?",A=function(){return this.excl},A.$$arity=0),e.def(D,"$first",I=function(e){var t=I.$$p,r=this;return t&&(I.$$p=null),h(r.begin["$nil?"]())&&r.$raise(d(B,"RangeError"),"cannot get the minimum of beginless range"),h(null==e)?r.begin:p(r,y(r,"first",I,!1,!0),"first",[e],t)},I.$$arity=-1),m(D,"include?","cover?"),e.def(D,"$last",z=function(e){var t=this;return h(t.end["$nil?"]())&&t.$raise(d(B,"RangeError"),"cannot get the maximum of endless range"),h(null==e)?t.end:t.$to_a().$last(e)},z.$$arity=-1),e.def(D,"$max",S=function(){var e=S.$$p,t=e||c,r=this,$=c,i=c,a=c;return e&&(S.$$p=null),h(r.end["$nil?"]())?r.$raise(d(B,"RangeError"),"cannot get the maximum of endless range"):t!==c?p(r,y(r,"max",S,!1,!0),"max",[],e):h(h($=r.begin["$nil?"]()["$!"]())?h(i=n(r.begin,r.end))?i:h(a=r.excl)?r.begin["$=="](r.end):a:$)?c:r.excl?r.end-1:r.end},S.$$arity=0),m(D,"member?","cover?"),e.def(D,"$min",N=function(){var e=N.$$p,t=e||c,r=this,$=c,i=c,a=c;return e&&(N.$$p=null),h(r.begin["$nil?"]())?r.$raise(d(B,"RangeError"),"cannot get the minimum of beginless range"):t!==c?p(r,y(r,"min",N,!1,!0),"min",[],e):h(h($=r.end["$nil?"]()["$!"]())?h(i=n(r.begin,r.end))?i:h(a=r.excl)?r.begin["$=="](r.end):a:$)?c:r.begin},N.$$arity=0),e.def(D,"$size",R=function(){var e=this,r=c,n=c,i=c,a=c,o=c,l=c,s=c;return r=f(d(B,"Float"),"INFINITY"),h(h(n=h(i=e.begin["$=="](r))?e.end["$nil?"]()["$!"]():i)?n:h(a=e.end["$=="](r["$-@"]()))?e.begin["$nil?"]()["$!"]():a)?0:h(v(e))?r:h(h(o=d(B,"Numeric")["$==="](e.begin))?d(B,"Numeric")["$==="](e.end):o)?(l=e.begin,s=e.end,h(e.excl)&&(s=$(s,1)),h(t(s,l))?0:(Math.abs(s-l)+1).$to_i()):c},R.$$arity=0),e.def(D,"$step",j=function(t){function r(){t.$$is_number||(t=d(B,"Opal")["$coerce_to!"](t,d(B,"Integer"),"to_int")),t<0?m.$raise(d(B,"ArgumentError"),"step can't be negative"):0===t&&m.$raise(d(B,"ArgumentError"),"step can't be 0")}function $(){if(!m.begin["$respond_to?"]("succ"))return c;if(m.begin.$$is_string&&m.end.$$is_string)return c;if(t%1==0)return i(m.$size(),t).$ceil();var e,r=m.begin,n=m.end,$=Math.abs,a=Math.floor,o=($(r)+$(n)+$(n-r))/$(t)*f(d(B,"Float"),"EPSILON");return o>.5&&(o=.5),m.excl?(e=a((n-r)/t-o))*t+r>",f=function(t){var n,$=f.$$p,i=this;return $&&(f.$$p=null),l(i,"proc",[],((n=function(){var $,i=null==n.$$s?this:n.$$s,a=n.$$p,o=a||r,s=r;return a&&(n.$$p=null),$=e.slice.call(arguments,0,arguments.length),s=l(i,"call",e.to_a($),o.$to_proc()),t.$call(s)}).$$s=i,n.$$arity=-1,n))},f.$$arity=1),e.def(w,"$<<",d=function(t){var n,$=d.$$p,i=this;return $&&(d.$$p=null),l(i,"proc",[],((n=function(){var $,i=null==n.$$s?this:n.$$s,a=n.$$p,o=a||r,s=r;return a&&(n.$$p=null),$=e.slice.call(arguments,0,arguments.length),s=l(t,"call",e.to_a($),o.$to_proc()),i.$call(s)}).$$s=i,n.$$arity=-1,n))},d.$$arity=1),e.def(w,"$to_proc",_=function(){return this},_.$$arity=0),e.def(w,"$lambda?",h=function(){return!!this.$$is_lambda},h.$$arity=0),e.def(w,"$arity",p=function(){var e=this;return e.$$is_curried?-1:e.$$arity},p.$$arity=0),e.def(w,"$source_location",y=function(){return this.$$is_curried,r},y.$$arity=0),e.def(w,"$binding",g=function(){var e=this;return e.$$is_curried&&e.$raise(n(E,"ArgumentError"),"Can't create Binding"),a(n(E,"Binding","skip_raise")?"constant":r)?n(E,"Binding").$new(r,[],e.$$s,e.$source_location()):r},g.$$arity=0),e.def(w,"$parameters",m=function(){var e=this;if(e.$$is_curried)return[["rest"]];if(e.$$parameters){if(e.$$is_lambda)return e.$$parameters;var t,r,n=[];for(t=0,r=e.$$parameters.length;te&&r.$$is_lambda&&!r.$$is_curried&&r.$raise(n(E,"ArgumentError"),"wrong number of arguments ("+o+" for "+e+")"),o>=e?r.$call.apply(r,a):((i=function(){return t.apply(null,a.concat($.call(arguments)))}).$$is_lambda=r.$$is_lambda,i.$$is_curried=!0,i)}var r=this;return e===undefined?e=r.length:(e=n(E,"Opal")["$coerce_to!"](e,n(E,"Integer"),"to_int"),r.$$is_lambda&&e!==r.length&&r.$raise(n(E,"ArgumentError"),"wrong number of arguments ("+e+" for "+r.length+")")),t.$$is_lambda=r.$$is_lambda,t.$$is_curried=!0,t},v.$$arity=-1),e.def(w,"$dup",b=function(){var e=this,t=e.$$original_proc||e,r=function(){return t.apply(this,arguments)};for(var n in e)e.hasOwnProperty(n)&&(r[n]=e[n]);return r},b.$$arity=0),o(w,"clone","dup")}(t[0],Function,t)},Opal.modules["corelib/method"]=function(e){e.top;var t=[],r=e.nil,n=(e.$$$,e.$$),$=e.klass,i=e.truthy,a=e.alias;return e.add_stubs(["$attr_reader","$arity","$curry","$>>","$<<","$new","$class","$join","$source_location","$raise"]),function(t,$super,o){var l,s,u,c,f,d,_,h,p,y,g,m,v=$(t,null,"Method"),b=[v].concat(o);v.$$prototype.method=v.$$prototype.receiver=v.$$prototype.owner=v.$$prototype.name=r,v.$attr_reader("owner","receiver","name"),e.def(v,"$initialize",l=function(e,t,r,n){var $=this;return $.receiver=e,$.owner=t,$.name=n,$.method=r},l.$$arity=4),e.def(v,"$arity",s=function(){return this.method.$arity()},s.$$arity=0),e.def(v,"$parameters",u=function(){return this.method.$$parameters},u.$$arity=0),e.def(v,"$source_location",c=function(){var e=r;return i(e=this.method.$$source_location)?e:["(eval)",0]},c.$$arity=0),e.def(v,"$comments",f=function(){var e=r;return i(e=this.method.$$comments)?e:[]},f.$$arity=0),e.def(v,"$call",d=function(){var t,n=d.$$p,$=n||r,i=this;return n&&(d.$$p=null),n&&(d.$$p=null),t=e.slice.call(arguments,0,arguments.length),i.method.$$p=$,i.method.apply(i.receiver,t)},d.$$arity=-1),e.def(v,"$curry",_=function(e){return this.method.$curry(e)},_.$$arity=-1),a(v,"[]","call"),a(v,"===","call"),e.def(v,"$>>",h=function(e){return this.method["$>>"](e)},h.$$arity=1),e.def(v,"$<<",p=function(e){return this.method["$<<"](e)},p.$$arity=1),e.def(v,"$unbind",y=function(){var e=this;return n(b,"UnboundMethod").$new(e.receiver.$class(),e.owner,e.method,e.name)},y.$$arity=0),e.def(v,"$to_proc",g=function(){var e=this,t=e.$call.bind(e);return t.$$unbound=e.method,t.$$is_lambda=!0,t.$$arity=e.method.$$arity,t.$$parameters=e.method.$$parameters,t},g.$$arity=0),e.def(v,"$inspect",m=function(){var e=this;return"#<"+e.$class()+": "+e.receiver.$class()+"#"+e.name+" (defined in "+e.owner+" in "+e.$source_location().$join(":")+")>"},m.$$arity=0)}(t[0],0,t),function(t,$super,a){var o,l,s,u,c,f,d,_=$(t,null,"UnboundMethod"),h=[_].concat(a);return _.$$prototype.method=_.$$prototype.owner=_.$$prototype.name=_.$$prototype.source=r,_.$attr_reader("source","owner","name"),e.def(_,"$initialize",o=function(e,t,r,n){var $=this;return $.source=e,$.owner=t,$.method=r,$.name=n},o.$$arity=4),e.def(_,"$arity",l=function(){return this.method.$arity()},l.$$arity=0),e.def(_,"$parameters",s=function(){return this.method.$$parameters},s.$$arity=0),e.def(_,"$source_location",u=function(){var e=r;return i(e=this.method.$$source_location)?e:["(eval)",0]},u.$$arity=0),e.def(_,"$comments",c=function(){var e=r;return i(e=this.method.$$comments)?e:[]},c.$$arity=0),e.def(_,"$bind",f=function(t){var r=this;if(r.owner.$$is_module||e.is_a(t,r.owner))return n(h,"Method").$new(t,r.owner,r.method,r.name);r.$raise(n(h,"TypeError"),"can't bind singleton method to a different class (expected "+t+".kind_of?("+r.owner+" to be true)")},f.$$arity=1),e.def(_,"$inspect",d=function(){var e=this;return"#<"+e.$class()+": "+e.source+"#"+e.name+" (defined in "+e.owner+" in "+e.$source_location().$join(":")+")>"},d.$$arity=0),r&&"inspect"}(t[0],0,t)},Opal.modules["corelib/variables"]=function(e){e.top;var t=[],r=e.nil,n=(e.$$$,e.$$),$=e.gvars,i=e.hash2;return e.add_stubs(["$new"]),$["&"]=$["~"]=$["`"]=$["'"]=r,$.LOADED_FEATURES=$['"']=e.loaded_features,$.LOAD_PATH=$[":"]=[],$["/"]="\n",$[","]=r,e.const_set(t[0],"ARGV",[]),e.const_set(t[0],"ARGF",n(t,"Object").$new()),e.const_set(t[0],"ENV",i([],{})),$.VERBOSE=!1,$.DEBUG=!1,$.SAFE=0},Opal.modules["corelib/io"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}e.top;var $=[],i=e.nil,a=(e.$$$,e.$$),o=e.klass,l=e.truthy,s=e.alias,u=e.gvars,c=e.range,f=e.send,d=e.hash2,_=i;e.add_stubs(["$include?","$!","$match?","$attr_accessor","$size","$attr_reader","$write","$String","$chomp","$sysread_noraise","$+","$!=","$[]","$ord","$getc","$readchar","$raise","$gets","$==","$to_str","$length","$split","$sub","$sysread","$>","$to_a","$each_line","$enum_for","$getbyte","$closed_write?","$closed_read?","$new","$write_proc=","$-","$read_proc="]),function(n,$super,$){var _,h,p,y,g,m,v,b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D,B,U,L,X=o(n,null,"IO"),G=[X].concat($);X.$$prototype.fd=X.$$prototype.read_buffer=X.$$prototype.closed=i,e.const_set(G[0],"SEEK_SET",0),e.const_set(G[0],"SEEK_CUR",1),e.const_set(G[0],"SEEK_END",2),e.const_set(G[0],"SEEK_DATA",3),e.const_set(G[0],"SEEK_HOLE",4),e.const_set(G[0],"READABLE",1),e.const_set(G[0],"WRITABLE",4),e.def(X,"$initialize",_=function(e,t){var r=this,n=i,$=i;return null==t&&(t="r"),r.fd=e,r.flags=t,r.eof=!1,l(l(n=t["$include?"]("r"))?t["$match?"](/[wa+]/)["$!"]():n)?r.closed="write":l(l($=t["$match?"](/[wa]/))?t["$match?"](/[r+]/)["$!"]():$)?r.closed="read":i},_.$$arity=-2),e.def(X,"$fileno",h=function(){return this.fd},h.$$arity=0),e.def(X,"$tty?",p=function(){return 1==this.tty},p.$$arity=0),X.$attr_accessor("write_proc"),X.$attr_accessor("read_proc"),e.def(X,"$write",y=function(e){return this.write_proc(e),e.$size()},y.$$arity=1),X.$attr_accessor("sync","tty"),X.$attr_reader("eof"),s(X,"eof?","eof"),e.def(X,"$flush",g=function(){return i},g.$$arity=0),e.def(X,"$<<",m=function(e){var t=this;return t.$write(e),t},m.$$arity=1),e.def(X,"$print",v=function(){var t,r=this;null==u[","]&&(u[","]=i);for(var n=0,$=(t=e.slice.call(arguments,0,arguments.length)).length;n<$;n++)t[n]=r.$String(t[n]);return r.$write(t.join(u[","])),i},v.$$arity=-1),e.def(X,"$puts",b=function(){var t,r=this;null==u["/"]&&(u["/"]=i);for(var n=0,$=(t=e.slice.call(arguments,0,arguments.length)).length;n<$;n++)t[n]=r.$String(t[n]).$chomp();return r.$write(t.concat([i]).join(u["/"])),i},b.$$arity=-1),e.def(X,"$getc",w=function(){var e=this,r=i,n=i,$=i;e.read_buffer=l(r=e.read_buffer)?r:"",n="";do{if(e.read_buffer=t(e.read_buffer,n),l(e.read_buffer["$!="]("")))return $=e.read_buffer["$[]"](0),e.read_buffer=e.read_buffer["$[]"](c(1,-1,!1)),$}while(l(n=e.$sysread_noraise(1)));return i},w.$$arity=0),e.def(X,"$getbyte",E=function(){var e;return(e=this.$getc())===i||null==e?i:f(e,"ord",[])},E.$$arity=0),e.def(X,"$readbyte",O=function(){return this.$readchar().$ord()},O.$$arity=0),e.def(X,"$readchar",x=function(){var e=this,t=i;return l(t=e.$getc())?t:e.$raise(a(G,"EOFError"),"end of file reached")},x.$$arity=0),e.def(X,"$readline",M=function(){var t,r=this,n=i;return t=e.slice.call(arguments,0,arguments.length),l(n=f(r,"gets",e.to_a(t)))?n:r.$raise(a(G,"EOFError"),"end of file reached")},M.$$arity=-1),e.def(X,"$gets",k=function(r,n,$){var a,o,s,c=this,f=i,_=i,h=i,p=i,y=i,g=i,m=i,v=i,b=i,w=i,E=i,O=i,x=i;null==u["/"]&&(u["/"]=i),null==r&&(r=!1),null==n&&(n=i),null==$&&($=d([],{})),l(l(f=r.$$is_number)?n["$!"]():f)&&(r=(a=[!1,r,n])[0],n=a[1],$=a[2]),l(l(_=l(h=r.$$is_hash)?n["$!"]():h)?$["$=="](d([],{})):_)?(r=(a=[!1,i,r])[0],n=a[1],$=a[2]):l(l(p=n.$$is_hash)?$["$=="](d([],{})):p)&&(r=(a=[r,i,n])[0],n=a[1],$=a[2]),y=r,r["$=="](!1)&&(r=u["/"]),r["$=="]("")&&(r=/\r?\n\r?\n/),r=l(g=r)?g:"",y["$=="]("")||(r=r.$to_str()),m=y["$=="]("")?2:r.$length(),r["$=="](" ")&&(r=/ /),c.read_buffer=l(v=c.read_buffer)?v:"",b="",w=i;do{if(c.read_buffer=t(c.read_buffer,b),l(l(E=r["$!="](""))?l(r.$$is_regexp)?c.read_buffer["$match?"](r):c.read_buffer["$include?"](r):E)){O=c.read_buffer,s=c.read_buffer.$split(r,2),w=null==(o=e.to_ary(s))[0]?i:o[0],c.read_buffer=null==o[1]?i:o[1],l(w["$!="](O))&&(w=t(w,O["$[]"](w.$length(),m)));break}}while(l(b=c.$sysread_noraise(r["$=="]("")?65536:1)));return l(w)||(w=(a=[l(x=c.read_buffer)?x:"",""])[0],c.read_buffer=a[1],w["$=="]("")&&(w=i)),l(w)&&(l(n)&&(w=w["$[]"](e.Range.$new(0,n,!0)),c.read_buffer=t(w["$[]"](e.Range.$new(n,-1,!1)),c.read_buffer)),l($["$[]"]("chomp"))&&(w=w.$sub(/\r?\n$/,"")),y["$=="]("")&&(w=w.$sub(/^[\r\n]+/,""))),y["$=="](!1)&&(u._=w),w},k.$$arity=-1),e.def(X,"$sysread",A=function(e){var t=this,r=i;return l(r=t.read_proc(e))?r:(t.eof=!0,t.$raise(a(G,"EOFError"),"end of file reached"))},A.$$arity=1),e.def(X,"$sysread_noraise",I=function(t){var r=this;try{return r.$sysread(t)}catch(n){if(!e.rescue(n,[a(G,"EOFError")]))throw n;try{return i}finally{e.pop_exception()}}},I.$$arity=1),e.def(X,"$readpartial",z=function(e){var r,n=this,$=i,a=i,o=i,s=i;return n.read_buffer=l($=n.read_buffer)?$:"",a=n.$sysread(e),s=(r=[t(n.read_buffer,l(o=a)?o:""),""])[0],n.read_buffer=r[1],s["$=="]("")&&(s=i),s},z.$$arity=1),e.def(X,"$read",S=function(n){var $,a,o=this,s=i,u=i,c=i,f=i,d=i;null==n&&(n=i),o.read_buffer=l(s=o.read_buffer)?s:"",u="",c=i;do{if(o.read_buffer=t(o.read_buffer,u),l(l(d=n)?r(o.read_buffer.$length(),n):d))return c=(a=[o.read_buffer["$[]"](e.Range.$new(0,n,!0)),o.read_buffer["$[]"](e.Range.$new(n,-1,!1))])[0],o.read_buffer=a[1],c}while(l(u=o.$sysread_noraise(l(f=n)?f:65536)));return c=($=[o.read_buffer,""])[0],o.read_buffer=$[1],c},S.$$arity=-1),e.def(X,"$readlines",N=function(e){var t=this;return null==u["/"]&&(u["/"]=i),null==e&&(e=u["/"]),t.$each_line(e).$to_a()},N.$$arity=-1),e.def(X,"$each",R=function(){var t,r,n,$=R.$$p,a=$||i,o=this,s=i;if(null==u["/"]&&(u["/"]=i),$&&(R.$$p=null),$&&(R.$$p=null),(t=e.slice.call(arguments,0,arguments.length)).length>0&&(r=t[0],t.splice(0,1)),null==r&&(r=u["/"]),n=t,a===i)return f(o,"enum_for",["each",r].concat(e.to_a(n)));for(;l(s=f(o,"gets",[r].concat(e.to_a(n))));)e.yield1(a,s);return o},R.$$arity=-1),s(X,"each_line","each"),e.def(X,"$each_byte",j=function(){var t=j.$$p,r=t||i,n=this,$=i;if(t&&(j.$$p=null),t&&(j.$$p=null),r===i)return n.$enum_for("each_byte");for(;l($=n.$getbyte());)e.yield1(r,$);return n},j.$$arity=0),e.def(X,"$each_char",T=function(){var t=T.$$p,r=t||i,n=this,$=i;if(t&&(T.$$p=null),t&&(T.$$p=null),r===i)return n.$enum_for("each_char");for(;l($=n.$getc());)e.yield1(r,$);return n},T.$$arity=0),e.def(X,"$close",q=function(){return this.closed="both"},q.$$arity=0),e.def(X,"$close_read",C=function(){var e=this;return e.closed["$=="]("write")?e.closed="both":e.closed="read"},C.$$arity=0),e.def(X,"$close_write",F=function(){var e=this;return e.closed["$=="]("read")?e.closed="both":e.closed="write"},F.$$arity=0),e.def(X,"$closed?",P=function(){return this.closed["$=="]("both")},P.$$arity=0),e.def(X,"$closed_read?",D=function(){var e=this,t=i;return l(t=e.closed["$=="]("read"))?t:e.closed["$=="]("both")},D.$$arity=0),e.def(X,"$closed_write?",B=function(){var e=this,t=i;return l(t=e.closed["$=="]("write"))?t:e.closed["$=="]("both")},B.$$arity=0),e.def(X,"$check_writable",U=function(){var e=this;return l(e["$closed_write?"]())?e.$raise(a(G,"IOError"),"not opened for writing"):i},U.$$arity=0),e.def(X,"$check_readable",L=function(){var e=this;return l(e["$closed_read?"]())?e.$raise(a(G,"IOError"),"not opened for reading"):i},L.$$arity=0)}($[0],0,$),e.const_set($[0],"STDIN",u.stdin=a($,"IO").$new(0,"r")),e.const_set($[0],"STDOUT",u.stdout=a($,"IO").$new(1,"w")),e.const_set($[0],"STDERR",u.stderr=a($,"IO").$new(2,"w"));var h=e.global.console;return _=["object"==typeof process&&"object"==typeof process.stdout?function(e){process.stdout.write(e)}:function(e){h.log(e)}],f(a($,"STDOUT"),"write_proc=",e.to_a(_)),_[n(_.length,1)],_=["object"==typeof process&&"object"==typeof process.stderr?function(e){process.stderr.write(e)}:function(e){h.warn(e)}],f(a($,"STDERR"),"write_proc=",e.to_a(_)),_[n(_.length,1)],_=[function(){var e=prompt();return null!==e?e+"\n":i}],f(a($,"STDIN"),"read_proc=",e.to_a(_)),_[n(_.length,1)]},Opal.modules["opal/regexp_anchors"]=function(e){e.top;var t=[],r=(e.nil,e.$$$,e.$$),n=e.module;return e.add_stubs(["$new"]),function(t,$){var i=[n(t,"Opal")].concat($);return e.const_set(i[0],"REGEXP_START","^"),e.const_set(i[0],"REGEXP_END","$"),e.const_set(i[0],"FORBIDDEN_STARTING_IDENTIFIER_CHARS","\\u0001-\\u002F\\u003A-\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),e.const_set(i[0],"FORBIDDEN_ENDING_IDENTIFIER_CHARS","\\u0001-\\u0020\\u0022-\\u002F\\u003A-\\u003E\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),e.const_set(i[0],"INLINE_IDENTIFIER_REGEXP",r(i,"Regexp").$new("[^"+r(i,"FORBIDDEN_STARTING_IDENTIFIER_CHARS")+"]*[^"+r(i,"FORBIDDEN_ENDING_IDENTIFIER_CHARS")+"]")),e.const_set(i[0],"FORBIDDEN_CONST_NAME_CHARS","\\u0001-\\u0020\\u0021-\\u002F\\u003B-\\u003F\\u0040\\u005B-\\u005E\\u0060\\u007B-\\u007F"),e.const_set(i[0],"CONST_NAME_REGEXP",r(i,"Regexp").$new(r(i,"REGEXP_START")+"(::)?[A-Z][^"+r(i,"FORBIDDEN_CONST_NAME_CHARS")+"]*"+r(i,"REGEXP_END")))}(t[0],t)},Opal.modules["opal/mini"]=function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require"]),t.$require("opal/base"),t.$require("corelib/nil"),t.$require("corelib/boolean"),t.$require("corelib/string"),t.$require("corelib/comparable"),t.$require("corelib/enumerable"),t.$require("corelib/enumerator"),t.$require("corelib/array"),t.$require("corelib/hash"),t.$require("corelib/number"),t.$require("corelib/range"),t.$require("corelib/proc"),t.$require("corelib/method"),t.$require("corelib/regexp"),t.$require("corelib/variables"),t.$require("corelib/io"),t.$require("opal/regexp_anchors")},Opal.modules["corelib/main"]=function(e){var t,r,n,$,i=e.top,a=[],o=e.nil,l=(e.$$$,e.$$),s=e.send;return e.add_stubs(["$include","$autoload","$raise"]),e.defs(i,"$to_s",t=function(){return"main"},t.$$arity=0),e.defs(i,"$include",r=function(e){return l(a,"Object").$include(e)},r.$$arity=1),e.defs(i,"$autoload",n=function(){var t;return t=e.slice.call(arguments,0,arguments.length),s(l(a,"Object"),"autoload",e.to_a(t))},n.$$arity=-1),e.defs(i,"$using",$=function(){return this.$raise("main.using is permitted only at toplevel")},$.$$arity=1),o&&"using"},Opal.modules["corelib/kernel/format"]=function(e){e.top;var t=[],r=e.nil,n=(e.$$$,e.$$),$=e.coerce_to,i=e.module,a=e.truthy,o=e.gvars,l=e.alias;return e.add_stubs(["$==","$length","$respond_to?","$[]","$coerce_to?","$nil?","$to_a","$raise","$to_int","$fetch","$Integer","$Float","$to_ary","$to_str","$inspect","$to_s"]),function(t,s){var u,c=i(t,"Kernel"),f=[c].concat(s);return e.def(c,"$format",u=function(t){function i(){q&K&&g.$raise(n(f,"ArgumentError"),"flag after width"),q&Z&&g.$raise(n(f,"ArgumentError"),"flag after precision")}function l(){q&K&&g.$raise(n(f,"ArgumentError"),"width given twice"),q&Z&&g.$raise(n(f,"ArgumentError"),"width after precision")}function s(e){return e>=y.length&&g.$raise(n(f,"ArgumentError"),"too few arguments"),y[e]}function u(){switch(B){case-1:g.$raise(n(f,"ArgumentError"),"unnumbered("+D+") mixed with numbered");case-2:g.$raise(n(f,"ArgumentError"),"unnumbered("+D+") mixed with named")}return s((B=D++)-1)}function c(e){ +return B>0&&g.$raise(n(f,"ArgumentError"),"numbered("+e+") after unnumbered("+B+")"),-2===B&&g.$raise(n(f,"ArgumentError"),"numbered("+e+") after named"),e<1&&g.$raise(n(f,"ArgumentError"),"invalid index - "+e+"$"),B=-1,s(e-1)}function d(){return T===undefined?u():T}function _(e){for(var r,$="";;w++){if(w===P&&g.$raise(n(f,"ArgumentError"),"malformed format string - %*[0-9]"),t.charCodeAt(w)<48||t.charCodeAt(w)>57)return w--,(r=parseInt($,10)||0)>2147483647&&g.$raise(n(f,"ArgumentError"),e+" too big"),r;$+=t.charAt(w)}}function h(e){var r,n=_(e);return"$"===t.charAt(w+1)?(w++,r=c(n)):r=u(),r.$to_int()}var p,y,g=this,m=r,v=r;null==o.DEBUG&&(o.DEBUG=r),p=e.slice.call(arguments,1,arguments.length),a(a(m=(y=p).$length()["$=="](1))?y["$[]"](0)["$respond_to?"]("to_ary"):m)&&(v=n(f,"Opal")["$coerce_to?"](y["$[]"](0),n(f,"Array"),"to_ary"),a(v["$nil?"]())||(y=v.$to_a()));var b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C="",F=0,P=t.length,D=1,B=0,U=0,L=1,X=2,G=4,H=8,Y=16,K=32,V=64,Z=128;for(w=t.indexOf("%");-1!==w;w=t.indexOf("%",w)){switch(O=undefined,q=U,M=-1,k=-1,T=undefined,b=w,w++,t.charAt(w)){case"%":F=w;case"":case"\n":case"\0":w++;continue}e:for(;w":"}",I="",w++;;w++){if(w===P&&g.$raise(n(f,"ArgumentError"),"malformed name - unmatched parenthesis"),t.charAt(w)===z){if(B>0&&g.$raise(n(f,"ArgumentError"),"named "+I+" after unnumbered("+B+")"),-1===B&&g.$raise(n(f,"ArgumentError"),"named "+I+" after numbered"),B=-2,y[0]!==undefined&&y[0].$$is_hash||g.$raise(n(f,"ArgumentError"),"one hash required"),T=y[0].$fetch(I),">"===z)continue e;if(O=T.toString(),-1!==k&&(O=O.slice(0,k)),q&X)for(;O.length=0){for(O=E.toString();O.length=0){for(O=E.toString(S);O.length>>0).toString(S).replace(R,j);O.length=0||isNaN(E)){if(E===Infinity)O="Inf";else switch(t.charAt(w)){case"f":O=E.toFixed(-1===k?6:k);break;case"e":case"E":O=E.toExponential(-1===k?6:k);break;case"g":case"G":O=E.toExponential(),(x=parseInt(O.split("e")[1],10))<-4||x>=(-1===k?6:k)||(O=E.toPrecision(-1===k?q&L?6:undefined:k))}if(q&X)for((q&G||q&Y)&&(O=(q&G?"+":" ")+O);O.length=(-1===k?6:k)||(O=(-E).toPrecision(-1===k?q&L?6:undefined:k))}if(q&X)for(O="-"+O;O.length=0&&D"},c.$$arity=0),e.def(w,"$charsize",d=function(e){for(var t=0,r=0,n=e.length;r=55296&&$<=56319||t++}return t},d.$$arity=1),e.def(w,"$each_char",m=function(t){var r=m.$$p,n=r||f;r&&(m.$$p=null),r&&(m.$$p=null);for(var $="",i=0,a=t.length;i=56320&&o<=57343?$=l:(o>=55296&&o<=56319&&(l=$+l),"UTF-8"!=t.encoding.name&&((l=new String(l)).encoding=t.encoding),e.yield1(n,l))}},m.$$arity=1),e.def(w,"$each_byte",v=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(_(E,"NotImplementedError"))},v.$$arity=-1),e.def(w,"$bytesize",b=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(_(E,"NotImplementedError"))},b.$$arity=-1),function(e,$super,t){[h(e,$super,"EncodingError")].concat(t)}(E[0],_(E,"StandardError"),E),function(e,$super,t){[h(e,$super,"CompatibilityError")].concat(t)}(E[0],_(E,"EncodingError"),E)}(c[0],0,c),g(_(c,"Encoding"),"register",["UTF-8",p(["aliases","ascii"],{aliases:["CP65001"],ascii:!0})],(($=function(){var t,r,n=null==$.$$s?this:$.$$s;return e.def(n,"$each_byte",t=function(r){var n=t.$$p,$=n||f;n&&(t.$$p=null),n&&(t.$$p=null);for(var i,a=Infinity,o=r.length,l=null,s=0;s55295&&i<57344){if(!l){if(i>56319){(a-=3)>-1&&(e.yield1($,239),e.yield1($,191),e.yield1($,189));continue}if(s+1===o){(a-=3)>-1&&(e.yield1($,239),e.yield1($,191),e.yield1($,189));continue}l=i;continue}if(i<56320){(a-=3)>-1&&(e.yield1($,239),e.yield1($,191),e.yield1($,189)),l=i;continue}i=65536+(l-55296<<10|i-56320)}else l&&(a-=3)>-1&&(e.yield1($,239),e.yield1($,191),e.yield1($,189));if(l=null,i<128){if((a-=1)<0)break;e.yield1($,i)}else if(i<2048){if((a-=2)<0)break;e.yield1($,i>>6|192),e.yield1($,63&i|128)}else if(i<65536){if((a-=3)<0)break;e.yield1($,i>>12|224),e.yield1($,i>>6&63|128),e.yield1($,63&i|128)}else if(i<1114112){if((a-=4)<0)break;e.yield1($,i>>18|240),e.yield1($,i>>12&63|128),e.yield1($,i>>6&63|128),e.yield1($,63&i|128)}}},t.$$arity=1),e.def(n,"$bytesize",r=function(e){return e.$bytes().$length()},r.$$arity=1),f&&"bytesize"}).$$s=u,$.$$arity=0,$)),g(_(c,"Encoding"),"register",["UTF-16LE"],((i=function(){var t,r,n=null==i.$$s?this:i.$$s;return e.def(n,"$each_byte",t=function(r){var n=t.$$p,$=n||f;n&&(t.$$p=null),n&&(t.$$p=null);for(var i=0,a=r.length;i>8)}},t.$$arity=1),e.def(n,"$bytesize",r=function(e){return 2*e.length},r.$$arity=1),f&&"bytesize"}).$$s=u,i.$$arity=0,i)),g(_(c,"Encoding"),"register",["UTF-16BE",p(["inherits"],{inherits:d(_(c,"Encoding"),"UTF_16LE")})],((a=function(){var t,r=null==a.$$s?this:a.$$s;return e.def(r,"$each_byte",t=function(r){var n=t.$$p,$=n||f;n&&(t.$$p=null),n&&(t.$$p=null);for(var i=0,a=r.length;i>8),e.yield1($,255&o)}},t.$$arity=1),f&&"each_byte"}).$$s=u,a.$$arity=0,a)),g(_(c,"Encoding"),"register",["UTF-32LE"],((o=function(){var t,r,n=null==o.$$s?this:o.$$s;return e.def(n,"$each_byte",t=function(r){var n=t.$$p,$=n||f;n&&(t.$$p=null),n&&(t.$$p=null);for(var i=0,a=r.length;i>8),e.yield1($,0),e.yield1($,0)}},t.$$arity=1),e.def(n,"$bytesize",r=function(e){return 4*e.length},r.$$arity=1),f&&"bytesize"}).$$s=u,o.$$arity=0,o)),g(_(c,"Encoding"),"register",["UTF-32BE",p(["inherits"],{inherits:d(_(c,"Encoding"),"UTF_32LE")})],((l=function(){var t,r=null==l.$$s?this:l.$$s;return e.def(r,"$each_byte",t=function(r){var n=t.$$p,$=n||f;n&&(t.$$p=null),n&&(t.$$p=null);for(var i=0,a=r.length;i>8),e.yield1($,255&o)}},t.$$arity=1),f&&"each_byte"}).$$s=u,l.$$arity=0,l)),g(_(c,"Encoding"),"register",["ASCII-8BIT",p(["aliases","ascii"],{aliases:["BINARY"],ascii:!0})],((s=function(){var t,r,n,$,i,a=null==s.$$s?this:s.$$s;return e.def(a,"$each_char",t=function(r){var n=t.$$p,$=n||f;n&&(t.$$p=null),n&&(t.$$p=null);for(var i=0,a=r.length;i1;)t*=.125,r++;for(t=(-.46946116*t+1.072302)*t+.3812513;r<0;)t*=.5,r++;for(;r>0;)t*=2,r--;return t=2/3*(t=2/3*(t=2/3*(t=2/3*t+1/3*e/(t*t))+1/3*e/(t*t))+1/3*e/(t*t))+1/3*e/(t*t)}),e.def(D,"$cbrt",b=function(e){return a(B,"Math").$checked("cbrt",a(B,"Math")["$float!"](e))},b.$$arity=1),e.def(D,"$cos",w=function(e){return a(B,"Math").$checked("cos",a(B,"Math")["$float!"](e))},w.$$arity=1),s("undefined"!=typeof Math.cosh)||(Math.cosh=function(e){return(Math.exp(e)+Math.exp(-e))/2}),e.def(D,"$cosh",E=function(e){return a(B,"Math").$checked("cosh",a(B,"Math")["$float!"](e))},E.$$arity=1),s("undefined"!=typeof Math.erf)||e.defineProperty(Math,"erf",function(e){var t=.254829592,r=-.284496736,n=1.421413741,$=-1.453152027,i=1.061405429,a=1;e<0&&(a=-1);var o=1/(1+.3275911*(e=Math.abs(e)));return a*(1-((((i*o+$)*o+n)*o+r)*o+t)*o*Math.exp(-e*e))}),e.def(D,"$erf",O=function(e){return a(B,"Math").$checked("erf",a(B,"Math")["$float!"](e))},O.$$arity=1),s("undefined"!=typeof Math.erfc)||e.defineProperty(Math,"erfc",function(e){var t=Math.abs(e),r=1/(.5*t+1),n=-t*t-1.26551223+r*(r*(r*(r*(r*(r*(r*(r*(.17087277*r-.82215223)+1.48851587)-1.13520398)+.27886807)-.18628806)+.09678418)+.37409196)+1.00002368),$=r*Math.exp(n);return e<0?2-$:$}),e.def(D,"$erfc",x=function(e){return a(B,"Math").$checked("erfc",a(B,"Math")["$float!"](e))},x.$$arity=1),e.def(D,"$exp",M=function(e){return a(B,"Math").$checked("exp",a(B,"Math")["$float!"](e))},M.$$arity=1),e.def(D,"$frexp",k=function(e){if(e=a(B,"Math")["$float!"](e),isNaN(e))return[NaN,0];var t=Math.floor(Math.log(Math.abs(e))/Math.log(2))+1;return[e/Math.pow(2,t),t]},k.$$arity=1),e.def(D,"$gamma",A=function(e){var r,n,$,i,o,l,s,u,c,f=this;e=a(B,"Math")["$float!"](e);var d=4.7421875,_=[.9999999999999971,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];if(isNaN(e))return NaN;if(0===e&&1/e<0)return-Infinity;if(-1!==e&&e!==-Infinity||f.$raise(a(B,"DomainError"),'Numerical argument is out of domain - "gamma"'),a(B,"Integer")["$==="](e)){if(e<=0)return isFinite(e)?Infinity:NaN;if(e>171)return Infinity;for(i=e-2,o=e-1;i>1;)o*=i,i--;return 0==o&&(o=1),o}if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*a(B,"Math").$gamma(t(1,e)));if(e>=171.35)return Infinity;if(e>85)return c=(u=(s=(l=e*e)*e)*e)*e,Math.sqrt(2*Math.PI/e)*Math.pow(e/Math.E,e)*(1+1/(12*e)+1/(288*l)-139/(51840*s)-571/(2488320*u)+163879/(209018880*c)+5246819/(75246796800*c*e));for(e-=1,$=_[0],r=1;r<_.length;++r)$+=_[r]/(e+r);return n=e+d+.5,Math.sqrt(2*Math.PI)*Math.pow(n,e+.5)*Math.exp(-n)*$},A.$$arity=1),s("undefined"!=typeof Math.hypot)||(Math.hypot=function(e,t){return Math.sqrt(e*e+t*t)}),e.def(D,"$hypot",I=function(e,t){return a(B,"Math").$checked("hypot",a(B,"Math")["$float!"](e),a(B,"Math")["$float!"](t))},I.$$arity=2),e.def(D,"$ldexp",z=function(e,t){var r=this;return e=a(B,"Math")["$float!"](e),t=a(B,"Math")["$integer!"](t),isNaN(t)&&r.$raise(a(B,"RangeError"),"float NaN out of range of integer"),e*Math.pow(2,t)},z.$$arity=2),e.def(D,"$lgamma",S=function(e){return-1==e?[Infinity,1]:[Math.log(Math.abs(a(B,"Math").$gamma(e))),a(B,"Math").$gamma(e)<0?-1:1]},S.$$arity=1),e.def(D,"$log",N=function(e,t){var n=this;return s(a(B,"String")["$==="](e))&&n.$raise(o(e,a(B,"Float"))),s(null==t)?a(B,"Math").$checked("log",a(B,"Math")["$float!"](e)):(s(a(B,"String")["$==="](t))&&n.$raise(o(t,a(B,"Float"))),r(a(B,"Math").$checked("log",a(B,"Math")["$float!"](e)),a(B,"Math").$checked("log",a(B,"Math")["$float!"](t))))},N.$$arity=-2),s("undefined"!=typeof Math.log10)||(Math.log10=function(e){return Math.log(e)/Math.LN10}),e.def(D,"$log10",R=function(e){var t=this;return s(a(B,"String")["$==="](e))&&t.$raise(o(e,a(B,"Float"))),a(B,"Math").$checked("log10",a(B,"Math")["$float!"](e))},R.$$arity=1),s("undefined"!=typeof Math.log2)||(Math.log2=function(e){return Math.log(e)/Math.LN2}),e.def(D,"$log2",j=function(e){var t=this;return s(a(B,"String")["$==="](e))&&t.$raise(o(e,a(B,"Float"))),a(B,"Math").$checked("log2",a(B,"Math")["$float!"](e))},j.$$arity=1),e.def(D,"$sin",T=function(e){return a(B,"Math").$checked("sin",a(B,"Math")["$float!"](e))},T.$$arity=1),s("undefined"!=typeof Math.sinh)||(Math.sinh=function(e){return(Math.exp(e)-Math.exp(-e))/2}),e.def(D,"$sinh",q=function(e){return a(B,"Math").$checked("sinh",a(B,"Math")["$float!"](e))},q.$$arity=1),e.def(D,"$sqrt",C=function(e){return a(B,"Math").$checked("sqrt",a(B,"Math")["$float!"](e))},C.$$arity=1),e.def(D,"$tan",F=function(e){return e=a(B,"Math")["$float!"](e),s(e["$infinite?"]())?i(a(B,"Float"),"NAN"):a(B,"Math").$checked("tan",a(B,"Math")["$float!"](e))},F.$$arity=1),s("undefined"!=typeof Math.tanh)||(Math.tanh=function(e){return e==Infinity?1:e==-Infinity?-1:(Math.exp(e)-Math.exp(-e))/(Math.exp(e)+Math.exp(-e))}),e.def(D,"$tanh",P=function(e){return a(B,"Math").$checked("tanh",a(B,"Math")["$float!"](e))},P.$$arity=1),$&&"tanh"}(n[0],n)},Opal.modules["corelib/complex/base"]=function(e){e.top;var t=[],r=e.nil,n=(e.$$$,e.$$),$=e.module,i=e.truthy,a=e.klass;return e.add_stubs(["$new","$from_string"]),function(t,a){var o,l=$(t,"Kernel"),s=[l].concat(a);e.def(l,"$Complex",o=function(e,t){return null==t&&(t=r),i(t)?n(s,"Complex").$new(e,t):n(s,"Complex").$new(e,0)},o.$$arity=-2)}(t[0],t),function(t,$super,$){var i,o=a(t,null,"String"),l=[o].concat($);return e.def(o,"$to_c",i=function(){var e=this;return n(l,"Complex").$from_string(e)},i.$$arity=0),r&&"to_c"}(t[0],0,t)},Opal.modules["corelib/complex"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e*t:e["$*"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function $(e,t){return"number"==typeof e&&"number"==typeof t?e/t:e["$/"](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}var a=e.top,o=[],l=e.nil,s=e.$$$,u=e.$$,c=e.klass,f=e.truthy,d=e.alias;return e.add_stubs(["$require","$===","$real?","$raise","$new","$*","$cos","$sin","$attr_reader","$class","$==","$real","$imag","$Complex","$-@","$+","$__coerced__","$-","$nan?","$/","$conj","$abs2","$quo","$polar","$exp","$log","$>","$!=","$divmod","$**","$hypot","$atan2","$lcm","$denominator","$finite?","$infinite?","$numerator","$abs","$arg","$rationalize","$to_f","$to_i","$to_r","$inspect","$positive?","$zero?","$Rational"]),a.$require("corelib/numeric"),a.$require("corelib/complex/base"),function(a,$super,o){var _,h,p,y,g,m,v,b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D,B,U,L,X,G,H=c(a,$super,"Complex"),Y=[H].concat(o);return H.$$prototype.real=H.$$prototype.imag=l,e.defs(H,"$rect",_=function(e,t){var r=this,n=l,$=l,i=l;return null==t&&(t=0),f(f(n=f($=f(i=u(Y,"Numeric")["$==="](e))?e["$real?"]():i)?u(Y,"Numeric")["$==="](t):$)?t["$real?"]():n)||r.$raise(u(Y,"TypeError"),"not a real"),r.$new(e,t)},_.$$arity=-2),function(e,t){[e].concat(t);d(e,"rectangular","rect")}(e.get_singleton_class(H),Y),e.defs(H,"$polar",h=function(e,r){var n=this,$=l,i=l,a=l;return null==r&&(r=0),f(f($=f(i=f(a=u(Y,"Numeric")["$==="](e))?e["$real?"]():a)?u(Y,"Numeric")["$==="](r):i)?r["$real?"]():$)||n.$raise(u(Y,"TypeError"),"not a real"),n.$new(t(e,u(Y,"Math").$cos(r)),t(e,u(Y,"Math").$sin(r)))},h.$$arity=-2),H.$attr_reader("real","imag"),e.def(H,"$initialize",p=function(e,t){var r=this;return null==t&&(t=0),r.real=e,r.imag=t},p.$$arity=-2),e.def(H,"$coerce",y=function(e){var t=this,r=l;return f(u(Y,"Complex")["$==="](e))?[e,t]:f(f(r=u(Y,"Numeric")["$==="](e))?e["$real?"]():r)?[u(Y,"Complex").$new(e,0),t]:t.$raise(u(Y,"TypeError"),e.$class()+" can't be coerced into Complex")},y.$$arity=1),e.def(H,"$==",g=function(e){var t=this,r=l,n=l,$=l;return f(u(Y,"Complex")["$==="](e))?f(r=t.real["$=="](e.$real()))?t.imag["$=="](e.$imag()):r:f(f(n=u(Y,"Numeric")["$==="](e))?e["$real?"]():n)?f($=t.real["$=="](e))?t.imag["$=="](0):$:e["$=="](t)},g.$$arity=1),e.def(H,"$-@",m=function(){var e=this;return e.$Complex(e.real["$-@"](),e.imag["$-@"]())},m.$$arity=0),e.def(H,"$+",v=function(e){var t=this,n=l;return f(u(Y,"Complex")["$==="](e))?t.$Complex(r(t.real,e.$real()),r(t.imag,e.$imag())):f(f(n=u(Y,"Numeric")["$==="](e))?e["$real?"]():n)?t.$Complex(r(t.real,e),t.imag):t.$__coerced__("+",e)},v.$$arity=1),e.def(H,"$-",b=function(e){var t=this,r=l;return f(u(Y,"Complex")["$==="](e))?t.$Complex(n(t.real,e.$real()),n(t.imag,e.$imag())):f(f(r=u(Y,"Numeric")["$==="](e))?e["$real?"]():r)?t.$Complex(n(t.real,e),t.imag):t.$__coerced__("-",e)},b.$$arity=1),e.def(H,"$*",w=function(e){var $=this,i=l;return f(u(Y,"Complex")["$==="](e))?$.$Complex(n(t($.real,e.$real()),t($.imag,e.$imag())),r(t($.real,e.$imag()),t($.imag,e.$real()))):f(f(i=u(Y,"Numeric")["$==="](e))?e["$real?"]():i)?$.$Complex(t($.real,e),t($.imag,e)):$.$__coerced__("*",e)},w.$$arity=1),e.def(H,"$/",E=function(e){var r=this,n=l,i=l,a=l,o=l,c=l,d=l,_=l,h=l;return f(u(Y,"Complex")["$==="](e))?f(f(n=f(i=f(a=f(o=u(Y,"Number")["$==="](r.real))?r.real["$nan?"]():o)?a:f(c=u(Y,"Number")["$==="](r.imag))?r.imag["$nan?"]():c)?i:f(d=u(Y,"Number")["$==="](e.$real()))?e.$real()["$nan?"]():d)?n:f(_=u(Y,"Number")["$==="](e.$imag()))?e.$imag()["$nan?"]():_)?u(Y,"Complex").$new(s(u(Y,"Float"),"NAN"),s(u(Y,"Float"),"NAN")):$(t(r,e.$conj()),e.$abs2()):f(f(h=u(Y,"Numeric")["$==="](e))?e["$real?"]():h)?r.$Complex(r.real.$quo(e),r.imag.$quo(e)):r.$__coerced__("/",e)},E.$$arity=1),e.def(H,"$**",O=function(a){var o,s,c,d,_=this,h=l,p=l,y=l,g=l,m=l,v=l,b=l,w=l,E=l,O=l,x=l,M=l;if(a["$=="](0))return u(Y,"Complex").$new(1,0);if(f(u(Y,"Complex")["$==="](a)))return s=_.$polar(),h=null==(o=e.to_ary(s))[0]?l:o[0],p=null==o[1]?l:o[1],y=a.$real(),g=a.$imag(),m=u(Y,"Math").$exp(n(t(y,u(Y,"Math").$log(h)),t(g,p))),v=r(t(p,y),t(g,u(Y,"Math").$log(h))),u(Y,"Complex").$polar(m,v);if(f(u(Y,"Integer")["$==="](a))){if(f(i(a,0))){for(w=b=_,E=n(a,1);f(E["$!="](0));){for(c=E.$divmod(2),O=null==(s=e.to_ary(c))[0]?l:s[0],x=null==s[1]?l:s[1];x["$=="](0);)b=_.$Complex(n(t(b.$real(),b.$real()),t(b.$imag(),b.$imag())),t(t(2,b.$real()),b.$imag())),d=(E=O).$divmod(2),O=null==(c=e.to_ary(d))[0]?l:c[0],x=null==c[1]?l:c[1];w=t(w,b),E=n(E,1)}return w}return $(u(Y,"Rational").$new(1,1),_)["$**"](a["$-@"]())}return f(f(M=u(Y,"Float")["$==="](a))?M:u(Y,"Rational")["$==="](a))?(s=_.$polar(),h=null==(o=e.to_ary(s))[0]?l:o[0],p=null==o[1]?l:o[1],u(Y,"Complex").$polar(h["$**"](a),t(p,a))):_.$__coerced__("**",a)},O.$$arity=1),e.def(H,"$abs",x=function(){var e=this;return u(Y,"Math").$hypot(e.real,e.imag)},x.$$arity=0),e.def(H,"$abs2",M=function(){var e=this;return r(t(e.real,e.real),t(e.imag,e.imag))},M.$$arity=0),e.def(H,"$angle",k=function(){var e=this;return u(Y,"Math").$atan2(e.imag,e.real)},k.$$arity=0),d(H,"arg","angle"),e.def(H,"$conj",A=function(){var e=this;return e.$Complex(e.real,e.imag["$-@"]())},A.$$arity=0),d(H,"conjugate","conj"),e.def(H,"$denominator",I=function(){var e=this;return e.real.$denominator().$lcm(e.imag.$denominator())},I.$$arity=0),d(H,"divide","/"),e.def(H,"$eql?",z=function(e){var t=this,r=l,n=l;return f(r=f(n=u(Y,"Complex")["$==="](e))?t.real.$class()["$=="](t.imag.$class()):n)?t["$=="](e):r},z.$$arity=1),e.def(H,"$fdiv",S=function(e){var t=this;return f(u(Y,"Numeric")["$==="](e))||t.$raise(u(Y,"TypeError"),e.$class()+" can't be coerced into Complex"),$(t,e)},S.$$arity=1),e.def(H,"$finite?",N=function(){var e=this,t=l;return f(t=e.real["$finite?"]())?e.imag["$finite?"]():t},N.$$arity=0),e.def(H,"$hash",R=function(){var e=this;return"Complex:"+e.real+":"+e.imag},R.$$arity=0),d(H,"imaginary","imag"),e.def(H,"$infinite?",j=function(){var e=this,t=l;return f(t=e.real["$infinite?"]())?t:e.imag["$infinite?"]()},j.$$arity=0),e.def(H,"$inspect",T=function(){return"("+this+")"},T.$$arity=0),d(H,"magnitude","abs"),e.udef(H,"$negative?"),e.def(H,"$numerator",q=function(){var e=this,r=l;return r=e.$denominator(),e.$Complex(t(e.real.$numerator(),$(r,e.real.$denominator())),t(e.imag.$numerator(),$(r,e.imag.$denominator())))},q.$$arity=0),d(H,"phase","arg"),e.def(H,"$polar",C=function(){var e=this;return[e.$abs(),e.$arg()]},C.$$arity=0),e.udef(H,"$positive?"),d(H,"quo","/"),e.def(H,"$rationalize",F=function(e){var t=this;return arguments.length>1&&t.$raise(u(Y,"ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),f(t.imag["$!="](0))&&t.$raise(u(Y,"RangeError"),"can't' convert "+t+" into Rational"),t.$real().$rationalize(e)},F.$$arity=-1),e.def(H,"$real?",P=function(){return!1},P.$$arity=0),e.def(H,"$rect",D=function(){var e=this;return[e.real,e.imag]},D.$$arity=0),d(H,"rectangular","rect"),e.udef(H,"$step"),e.def(H,"$to_f",B=function(){var e=this;return e.imag["$=="](0)||e.$raise(u(Y,"RangeError"),"can't convert "+e+" into Float"),e.real.$to_f()},B.$$arity=0),e.def(H,"$to_i",U=function(){var e=this;return e.imag["$=="](0)||e.$raise(u(Y,"RangeError"),"can't convert "+e+" into Integer"),e.real.$to_i()},U.$$arity=0),e.def(H,"$to_r",L=function(){var e=this;return e.imag["$=="](0)||e.$raise(u(Y,"RangeError"),"can't convert "+e+" into Rational"),e.real.$to_r()},L.$$arity=0),e.def(H,"$to_s",X=function(){var e=this,t=l,n=l,$=l,i=l,a=l,o=l;return t=r(t=r(t=e.real.$inspect(),f(f(n=f($=f(i=u(Y,"Number")["$==="](e.imag))?e.imag["$nan?"]():i)?$:e.imag["$positive?"]())?n:e.imag["$zero?"]())?"+":"-"),e.imag.$abs().$inspect()),f(f(a=u(Y,"Number")["$==="](e.imag))?f(o=e.imag["$nan?"]())?o:e.imag["$infinite?"]():a)&&(t=r(t,"*")),r(t,"i")},X.$$arity=0),e.const_set(Y[0],"I",H.$new(0,1)),e.defs(H,"$from_string",G=function(e){function t(){return o.test(e)}function r(){var t=e.match(o)[0];return e=e.slice(t.length),t.replace(/_/g,"")}function n(){if(t()){var n=parseFloat(r());if("/"===e[0]){if(e=e.slice(1),t()){var $=parseFloat(r());return a.$Rational(n,$)}return e="/"+e,n}return n}return null}var $,i,a=this,o=/[+-]?[\d_]+(\.[\d_]+)?(e\d+)?/;e.match(o);return($=n())?(i=n())?a.$Complex($,i):"i"===e[0]?a.$Complex(0,$):a.$Complex($,0):"i"===e[0]?a.$Complex(0,1):"-"===e[0]&&"i"===e[1]?a.$Complex(0,-1):"+"===e[0]&&"i"===e[1]?a.$Complex(0,1):a.$Complex(0,0)},G.$$arity=1),l&&"from_string" +}(o[0],u(o,"Numeric"),o)},Opal.modules["corelib/rational/base"]=function(e){e.top;var t=[],r=e.nil,n=(e.$$$,e.$$),$=e.module,i=e.klass;return e.add_stubs(["$convert","$from_string"]),function(t,r){var i,a=$(t,"Kernel"),o=[a].concat(r);e.def(a,"$Rational",i=function(e,t){return null==t&&(t=1),n(o,"Rational").$convert(e,t)},i.$$arity=-2)}(t[0],t),function(t,$super,$){var a,o=i(t,null,"String"),l=[o].concat($);return e.def(o,"$to_r",a=function(){var e=this;return n(l,"Rational").$from_string(e)},a.$$arity=0),r&&"to_r"}(t[0],0,t)},Opal.modules["corelib/rational"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?et:e["$>"](t)}function o(e,t){return"number"==typeof e&&"number"==typeof t?e<=t:e["$<="](t)}var l=e.top,s=[],u=e.nil,c=e.$$$,f=e.$$,d=e.klass,_=e.truthy,h=e.alias;return e.add_stubs(["$require","$to_i","$==","$raise","$<","$-@","$new","$gcd","$/","$nil?","$===","$reduce","$to_r","$equal?","$!","$coerce_to!","$to_f","$numerator","$denominator","$<=>","$-","$*","$__coerced__","$+","$Rational","$>","$**","$abs","$ceil","$with_precision","$floor","$<=","$truncate","$send"]),l.$require("corelib/numeric"),l.$require("corelib/rational/base"),function(l,$super,s){var p,y,g,m,v,b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D,B,U,L=d(l,$super,"Rational"),X=[L].concat(s);return L.$$prototype.num=L.$$prototype.den=u,e.defs(L,"$reduce",p=function(e,n){var $=this,i=u;if(e=e.$to_i(),(n=n.$to_i())["$=="](0))$.$raise(f(X,"ZeroDivisionError"),"divided by 0");else if(_(t(n,0)))e=e["$-@"](),n=n["$-@"]();else if(n["$=="](1))return $.$new(e,n);return i=e.$gcd(n),$.$new(r(e,i),r(n,i))},p.$$arity=2),e.defs(L,"$convert",y=function(e,t){var n=this,$=u,i=u,a=u,o=u,l=u,s=u,c=u,d=u;return _(_($=e["$nil?"]())?$:t["$nil?"]())&&n.$raise(f(X,"TypeError"),"cannot convert nil into Rational"),_(_(i=f(X,"Integer")["$==="](e))?f(X,"Integer")["$==="](t):i)?n.$reduce(e,t):(_(_(a=_(o=f(X,"Float")["$==="](e))?o:f(X,"String")["$==="](e))?a:f(X,"Complex")["$==="](e))&&(e=e.$to_r()),_(_(l=_(s=f(X,"Float")["$==="](t))?s:f(X,"String")["$==="](t))?l:f(X,"Complex")["$==="](t))&&(t=t.$to_r()),_(_(c=t["$equal?"](1))?f(X,"Integer")["$==="](e)["$!"]():c)?f(X,"Opal")["$coerce_to!"](e,f(X,"Rational"),"to_r"):_(_(d=f(X,"Numeric")["$==="](e))?f(X,"Numeric")["$==="](t):d)?r(e,t):n.$reduce(e,t))},y.$$arity=2),e.def(L,"$initialize",g=function(e,t){var r=this;return r.num=e,r.den=t},g.$$arity=2),e.def(L,"$numerator",m=function(){return this.num},m.$$arity=0),e.def(L,"$denominator",v=function(){return this.den},v.$$arity=0),e.def(L,"$coerce",b=function(e){var t=this,r=u;return r=e,f(X,"Rational")["$==="](r)?[e,t]:f(X,"Integer")["$==="](r)?[e.$to_r(),t]:f(X,"Float")["$==="](r)?[e,t.$to_f()]:u},b.$$arity=1),e.def(L,"$==",w=function(e){var t=this,r=u,n=u,$=u;return r=e,f(X,"Rational")["$==="](r)?_(n=t.num["$=="](e.$numerator()))?t.den["$=="](e.$denominator()):n:f(X,"Integer")["$==="](r)?_($=t.num["$=="](e))?t.den["$=="](1):$:f(X,"Float")["$==="](r)?t.$to_f()["$=="](e):e["$=="](t)},w.$$arity=1),e.def(L,"$<=>",E=function(e){var t=this,r=u;return r=e,f(X,"Rational")["$==="](r)?n($(t.num,e.$denominator()),$(t.den,e.$numerator()))["$<=>"](0):f(X,"Integer")["$==="](r)?n(t.num,$(t.den,e))["$<=>"](0):f(X,"Float")["$==="](r)?t.$to_f()["$<=>"](e):t.$__coerced__("<=>",e)},E.$$arity=1),e.def(L,"$+",O=function(e){var t=this,r=u,n=u,a=u;return r=e,f(X,"Rational")["$==="](r)?(n=i($(t.num,e.$denominator()),$(t.den,e.$numerator())),a=$(t.den,e.$denominator()),t.$Rational(n,a)):f(X,"Integer")["$==="](r)?t.$Rational(i(t.num,$(e,t.den)),t.den):f(X,"Float")["$==="](r)?i(t.$to_f(),e):t.$__coerced__("+",e)},O.$$arity=1),e.def(L,"$-",x=function(e){var t=this,r=u,i=u,a=u;return r=e,f(X,"Rational")["$==="](r)?(i=n($(t.num,e.$denominator()),$(t.den,e.$numerator())),a=$(t.den,e.$denominator()),t.$Rational(i,a)):f(X,"Integer")["$==="](r)?t.$Rational(n(t.num,$(e,t.den)),t.den):f(X,"Float")["$==="](r)?n(t.$to_f(),e):t.$__coerced__("-",e)},x.$$arity=1),e.def(L,"$*",M=function(e){var t=this,r=u,n=u,i=u;return r=e,f(X,"Rational")["$==="](r)?(n=$(t.num,e.$numerator()),i=$(t.den,e.$denominator()),t.$Rational(n,i)):f(X,"Integer")["$==="](r)?t.$Rational($(t.num,e),t.den):f(X,"Float")["$==="](r)?$(t.$to_f(),e):t.$__coerced__("*",e)},M.$$arity=1),e.def(L,"$/",k=function(e){var t=this,n=u,i=u,a=u;return n=e,f(X,"Rational")["$==="](n)?(i=$(t.num,e.$denominator()),a=$(t.den,e.$numerator()),t.$Rational(i,a)):f(X,"Integer")["$==="](n)?e["$=="](0)?r(t.$to_f(),0):t.$Rational(t.num,$(t.den,e)):f(X,"Float")["$==="](n)?r(t.$to_f(),e):t.$__coerced__("/",e)},k.$$arity=1),e.def(L,"$**",A=function(e){var r=this,n=u,$=u,i=u;return n=e,f(X,"Integer")["$==="](n)?_(_($=r["$=="](0))?t(e,0):$)?c(f(X,"Float"),"INFINITY"):_(a(e,0))?r.$Rational(r.num["$**"](e),r.den["$**"](e)):_(t(e,0))?r.$Rational(r.den["$**"](e["$-@"]()),r.num["$**"](e["$-@"]())):r.$Rational(1,1):f(X,"Float")["$==="](n)?r.$to_f()["$**"](e):f(X,"Rational")["$==="](n)?e["$=="](0)?r.$Rational(1,1):e.$denominator()["$=="](1)?_(t(e,0))?r.$Rational(r.den["$**"](e.$numerator().$abs()),r.num["$**"](e.$numerator().$abs())):r.$Rational(r.num["$**"](e.$numerator()),r.den["$**"](e.$numerator())):_(_(i=r["$=="](0))?t(e,0):i)?r.$raise(f(X,"ZeroDivisionError"),"divided by 0"):r.$to_f()["$**"](e):r.$__coerced__("**",e)},A.$$arity=1),e.def(L,"$abs",I=function(){var e=this;return e.$Rational(e.num.$abs(),e.den.$abs())},I.$$arity=0),e.def(L,"$ceil",z=function(e){var t=this;return null==e&&(e=0),e["$=="](0)?r(t.num["$-@"](),t.den)["$-@"]().$ceil():t.$with_precision("ceil",e)},z.$$arity=-1),h(L,"divide","/"),e.def(L,"$floor",S=function(e){var t=this;return null==e&&(e=0),e["$=="](0)?r(t.num["$-@"](),t.den)["$-@"]().$floor():t.$with_precision("floor",e)},S.$$arity=-1),e.def(L,"$hash",N=function(){var e=this;return"Rational:"+e.num+":"+e.den},N.$$arity=0),e.def(L,"$inspect",R=function(){return"("+this+")"},R.$$arity=0),h(L,"quo","/"),e.def(L,"$rationalize",j=function(e){var t=this;if(arguments.length>1&&t.$raise(f(X,"ArgumentError"),"wrong number of arguments ("+arguments.length+" for 0..1)"),null==e)return t;for(var $,a,l,s,u,c=e.$abs(),d=n(t,c),_=i(t,c),h=0,p=1,y=1,g=0;!o(l=d.$ceil(),_);)$=(s=l-1)*p+h,a=s*g+y,u=r(1,n(_,s)),_=r(1,n(d,s)),d=u,h=p,y=g,p=$,g=a;return t.$Rational(l*p+h,l*g+y)},j.$$arity=-1),e.def(L,"$round",T=function(e){var n=this,a=u;return null==e&&(e=0),e["$=="](0)?n.num["$=="](0)?0:n.den["$=="](1)?n.num:(a=r(i($(n.num.$abs(),2),n.den),$(n.den,2)).$truncate(),_(t(n.num,0))?a["$-@"]():a):n.$with_precision("round",e)},T.$$arity=-1),e.def(L,"$to_f",q=function(){var e=this;return r(e.num,e.den)},q.$$arity=0),e.def(L,"$to_i",C=function(){return this.$truncate()},C.$$arity=0),e.def(L,"$to_r",F=function(){return this},F.$$arity=0),e.def(L,"$to_s",P=function(){var e=this;return e.num+"/"+e.den},P.$$arity=0),e.def(L,"$truncate",D=function(e){var r=this;return null==e&&(e=0),e["$=="](0)?_(t(r.num,0))?r.$ceil():r.$floor():r.$with_precision("truncate",e)},D.$$arity=-1),e.def(L,"$with_precision",B=function(e,n){var i=this,a=u,o=u;return _(f(X,"Integer")["$==="](n))||i.$raise(f(X,"TypeError"),"not an Integer"),o=$(i,a=10["$**"](n)),_(t(n,1))?r(o.$send(e),a).$to_i():i.$Rational(o.$send(e),a)},B.$$arity=2),e.defs(L,"$from_string",U=function(e){function t(){return o.test(a)}function r(){var e=a.match(o)[0];return a=a.slice(e.length),e.replace(/_/g,"")}var n,$,i=this,a=e.trimLeft(),o=/^[+-]?[\d_]+(\.[\d_]+)?/;a.match(o);return t()?(n=parseFloat(r()),"/"===a[0]?(a=a.slice(1),t()?($=parseFloat(r()),i.$Rational(n,$)):i.$Rational(n,1)):i.$Rational(n,1)):i.$Rational(0,1)},U.$$arity=1),u&&"from_string"}(s[0],f(s,"Numeric"),s)},Opal.modules["corelib/time"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e","$to_f","$nil?","$>","$<","$strftime","$year","$month","$day","$+","$round","$/","$-","$copy_instance_variables","$initialize_dup","$is_a?","$zero?","$wday","$utc?","$mon","$yday","$hour","$min","$sec","$rjust","$ljust","$zone","$to_s","$[]","$cweek_cyear","$isdst","$<=","$!=","$==","$ceil"]),o.$require("corelib/comparable"),function(o,$super,l){function p(e,t,r,n,$,i){if(e=e.$$is_string?parseInt(e,10):u(ae,"Opal")["$coerce_to!"](e,u(ae,"Integer"),"to_int"),t===s)t=1;else if(!t.$$is_number)if(t["$respond_to?"]("to_str"))switch((t=t.$to_str()).toLowerCase()){case"jan":t=1;break;case"feb":t=2;break;case"mar":t=3;break;case"apr":t=4;break;case"may":t=5;break;case"jun":t=6;break;case"jul":t=7;break;case"aug":t=8;break;case"sep":t=9;break;case"oct":t=10;break;case"nov":t=11;break;case"dec":t=12;break;default:t=t.$to_i()}else t=u(ae,"Opal")["$coerce_to!"](t,u(ae,"Integer"),"to_int");return(t<1||t>12)&&ie.$raise(u(ae,"ArgumentError"),"month out of range: "+t),t-=1,((r=r===s?1:r.$$is_string?parseInt(r,10):u(ae,"Opal")["$coerce_to!"](r,u(ae,"Integer"),"to_int"))<1||r>31)&&ie.$raise(u(ae,"ArgumentError"),"day out of range: "+r),((n=n===s?0:n.$$is_string?parseInt(n,10):u(ae,"Opal")["$coerce_to!"](n,u(ae,"Integer"),"to_int"))<0||n>24)&&ie.$raise(u(ae,"ArgumentError"),"hour out of range: "+n),(($=$===s?0:$.$$is_string?parseInt($,10):u(ae,"Opal")["$coerce_to!"]($,u(ae,"Integer"),"to_int"))<0||$>59)&&ie.$raise(u(ae,"ArgumentError"),"min out of range: "+$),i===s?i=0:i.$$is_number||(i=i.$$is_string?parseInt(i,10):u(ae,"Opal")["$coerce_to!"](i,u(ae,"Integer"),"to_int")),(i<0||i>60)&&ie.$raise(u(ae,"ArgumentError"),"sec out of range: "+i),[e,t,r,n,$,i]}var y,g,m,v,b,w,E,O,x,M,k,A,I,z,S,N,R,j,T,q,C,F,P,D,B,U,L,X,G,H,Y,K,V,Z,J,W,Q,ee,te,re,ne,$e,ie=f(o,$super,"Time"),ae=[ie].concat(l);ie.$include(u(ae,"Comparable"));var oe=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],le=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],se=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],ue=["January","February","March","April","May","June","July","August","September","October","November","December"];return e.defs(ie,"$at",y=function(e,t){var r,n=this;return u(ae,"Time")["$==="](e)?(t!==undefined&&n.$raise(u(ae,"TypeError"),"can't convert Time into an exact number"),(r=new Date(e.getTime())).is_utc=e.is_utc,r):(e.$$is_number||(e=u(ae,"Opal")["$coerce_to!"](e,u(ae,"Integer"),"to_int")),t===undefined?new Date(1e3*e):(t.$$is_number||(t=u(ae,"Opal")["$coerce_to!"](t,u(ae,"Integer"),"to_int")),new Date(1e3*e+t/1e3)))},y.$$arity=-2),e.defs(ie,"$new",g=function(e,t,r,n,$,i,a){var o,l,c=this;return null==t&&(t=s),null==r&&(r=s),null==n&&(n=s),null==$&&($=s),null==i&&(i=s),null==a&&(a=s),e===undefined?new Date:(a!==s&&c.$raise(u(ae,"ArgumentError"),"Opal does not support explicitly specifying UTC offset for Time"),e=(o=p(e,t,r,n,$,i))[0],t=o[1],r=o[2],n=o[3],$=o[4],i=o[5],l=new Date(e,t,r,n,$,0,1e3*i),e<100&&l.setFullYear(e),l)},g.$$arity=-1),e.defs(ie,"$local",m=function(e,t,r,n,$,i,a,o,l,u){var f,d;return null==t&&(t=s),null==r&&(r=s),null==n&&(n=s),null==$&&($=s),null==i&&(i=s),null==a&&(a=s),null==o&&(o=s),null==l&&(l=s),null==u&&(u=s),10===arguments.length&&(e=(f=c.call(arguments))[5],t=f[4],r=f[3],n=f[2],$=f[1],i=f[0]),e=(f=p(e,t,r,n,$,i))[0],t=f[1],r=f[2],n=f[3],$=f[4],i=f[5],d=new Date(e,t,r,n,$,0,1e3*i),e<100&&d.setFullYear(e),d},m.$$arity=-2),e.defs(ie,"$gm",v=function(e,t,r,n,$,i,a,o,l,u){var f,d;return null==t&&(t=s),null==r&&(r=s),null==n&&(n=s),null==$&&($=s),null==i&&(i=s),null==a&&(a=s),null==o&&(o=s),null==l&&(l=s),null==u&&(u=s),10===arguments.length&&(e=(f=c.call(arguments))[5],t=f[4],r=f[3],n=f[2],$=f[1],i=f[0]),e=(f=p(e,t,r,n,$,i))[0],t=f[1],r=f[2],n=f[3],$=f[4],i=f[5],d=new Date(Date.UTC(e,t,r,n,$,0,1e3*i)),e<100&&d.setUTCFullYear(e),d.is_utc=!0,d},v.$$arity=-2),function(e,t){[e].concat(t);d(e,"mktime","local"),d(e,"utc","gm")}(e.get_singleton_class(ie),ae),e.defs(ie,"$now",b=function(){return this.$new()},b.$$arity=0),e.def(ie,"$+",w=function(e){var t=this;_(u(ae,"Time")["$==="](e))&&t.$raise(u(ae,"TypeError"),"time + time?"),e.$$is_number||(e=u(ae,"Opal")["$coerce_to!"](e,u(ae,"Integer"),"to_int"));var r=new Date(t.getTime()+1e3*e);return r.is_utc=t.is_utc,r},w.$$arity=1),e.def(ie,"$-",E=function(e){var t=this;if(_(u(ae,"Time")["$==="](e)))return(t.getTime()-e.getTime())/1e3;e.$$is_number||(e=u(ae,"Opal")["$coerce_to!"](e,u(ae,"Integer"),"to_int"));var r=new Date(t.getTime()-1e3*e);return r.is_utc=t.is_utc,r},E.$$arity=1),e.def(ie,"$<=>",O=function(e){var n=this,$=s;return _(u(ae,"Time")["$==="](e))?n.$to_f()["$<=>"](e.$to_f()):($=e["$<=>"](n),_($["$nil?"]())?s:_(t($,0))?-1:_(r($,0))?1:0)},O.$$arity=1),e.def(ie,"$==",x=function(e){var t=this,r=s;return _(r=u(ae,"Time")["$==="](e))?t.$to_f()===e.$to_f():r},x.$$arity=1),e.def(ie,"$asctime",M=function(){return this.$strftime("%a %b %e %H:%M:%S %Y")},M.$$arity=0),d(ie,"ctime","asctime"),e.def(ie,"$day",k=function(){var e=this;return e.is_utc?e.getUTCDate():e.getDate()},k.$$arity=0),e.def(ie,"$yday",A=function(){var e=this,t=s,r=s;return t=u(ae,"Time").$new(e.$year()).$to_i(),r=86400,n($(i(u(ae,"Time").$new(e.$year(),e.$month(),e.$day()).$to_i(),t),r).$round(),1)},A.$$arity=0),e.def(ie,"$isdst",I=function(){var e=this,t=new Date(e.getFullYear(),0,1),r=new Date(e.getFullYear(),6,1);return e.getTimezoneOffset()"](e)["$zero?"]():r},S.$$arity=1),e.def(ie,"$friday?",N=function(){return 5==this.$wday()},N.$$arity=0),e.def(ie,"$hash",R=function(){return"Time:"+this.getTime()},R.$$arity=0),e.def(ie,"$hour",j=function(){var e=this;return e.is_utc?e.getUTCHours():e.getHours()},j.$$arity=0),e.def(ie,"$inspect",T=function(){var e=this;return _(e["$utc?"]())?e.$strftime("%Y-%m-%d %H:%M:%S UTC"):e.$strftime("%Y-%m-%d %H:%M:%S %z")},T.$$arity=0),d(ie,"mday","day"),e.def(ie,"$min",q=function(){var e=this;return e.is_utc?e.getUTCMinutes():e.getMinutes()},q.$$arity=0),e.def(ie,"$mon",C=function(){var e=this;return(e.is_utc?e.getUTCMonth():e.getMonth())+1},C.$$arity=0),e.def(ie,"$monday?",F=function(){return 1==this.$wday()},F.$$arity=0),d(ie,"month","mon"),e.def(ie,"$saturday?",P=function(){return 6==this.$wday()},P.$$arity=0),e.def(ie,"$sec",D=function(){var e=this;return e.is_utc?e.getUTCSeconds():e.getSeconds()},D.$$arity=0),e.def(ie,"$succ",B=function(){var e=this,t=new Date(e.getTime()+1e3);return t.is_utc=e.is_utc,t},B.$$arity=0),e.def(ie,"$usec",U=function(){return 1e3*this.getMilliseconds()},U.$$arity=0),e.def(ie,"$zone",L=function(){var e,t=this.toString();return"GMT"==(e=-1==t.indexOf("(")?t.match(/[A-Z]{3,4}/)[0]:t.match(/\((.+)\)(?:\s|$)/)[1])&&/(GMT\W*\d{4})/.test(t)?RegExp.$1:e},L.$$arity=0),e.def(ie,"$getgm",X=function(){var e=new Date(this.getTime());return e.is_utc=!0,e},X.$$arity=0),d(ie,"getutc","getgm"),e.def(ie,"$gmtime",G=function(){var e=this;return e.is_utc=!0,e},G.$$arity=0),d(ie,"utc","gmtime"),e.def(ie,"$gmt?",H=function(){return!0===this.is_utc},H.$$arity=0),e.def(ie,"$gmt_offset",Y=function(){var e=this;return e.is_utc?0:60*-e.getTimezoneOffset()},Y.$$arity=0),e.def(ie,"$strftime",K=function(e){var t=this;return e.replace(/%([\-_#^0]*:{0,2})(\d+)?([EO]*)(.)/g,function(e,r,n,$,i){var a="",o=-1!==r.indexOf("0"),l=-1===r.indexOf("-"),s=-1!==r.indexOf("_"),u=-1!==r.indexOf("^"),c=-1!==r.indexOf("#"),f=(r.match(":")||[]).length;switch(n=parseInt(n,10),o&&s&&(r.indexOf("0")=12?"pm":"am";break;case"p":a+=t.$hour()>=12?"PM":"AM";break;case"M":o=!s,a+=t.$min();break;case"S":o=!s,a+=t.$sec();break;case"L":o=!s,n=isNaN(n)?3:n,a+=t.getMilliseconds();break;case"N":n=isNaN(n)?9:n,a=(a+=t.getMilliseconds().toString().$rjust(3,"0")).$ljust(n,"0");break;case"z":var d=t.getTimezoneOffset(),_=Math.floor(Math.abs(d)/60),p=Math.abs(d)%60;a+=d<0?"+":"-",a+=_<10?"0":"",a+=_,f>0&&(a+=":"),a+=p<10?"0":"",a+=p,f>1&&(a+=":00");break;case"Z":a+=t.$zone();break;case"A":a+=oe[t.$wday()];break;case"a":a+=le[t.$wday()];break;case"u":a+=t.$wday()+1;break;case"w":a+=t.$wday();break;case"V":a+=t.$cweek_cyear()["$[]"](0).$to_s().$rjust(2,"0");break;case"G":a+=t.$cweek_cyear()["$[]"](1);break;case"g":a+=t.$cweek_cyear()["$[]"](1)["$[]"](h(-2,-1,!1));break;case"s":a+=t.$to_i();break;case"n":a+="\n";break;case"t":a+="\t";break;case"%":a+="%";break;case"c":a+=t.$strftime("%a %b %e %T %Y");break;case"D":case"x":a+=t.$strftime("%m/%d/%y");break;case"F":a+=t.$strftime("%Y-%m-%d");break;case"v":a+=t.$strftime("%e-%^b-%4Y");break;case"r":a+=t.$strftime("%I:%M:%S %p");break;case"R":a+=t.$strftime("%H:%M");break;case"T":case"X":a+=t.$strftime("%H:%M:%S");break;default:return e}return u&&(a=a.toUpperCase()),c&&(a=a.replace(/[A-Z]/,function(e){e.toLowerCase()}).replace(/[a-z]/,function(e){e.toUpperCase()})),l&&(o||s)&&(a=a.$rjust(isNaN(n)?2:n,s?" ":"0")),a})},K.$$arity=1),e.def(ie,"$sunday?",V=function(){return 0==this.$wday()},V.$$arity=0),e.def(ie,"$thursday?",Z=function(){return 4==this.$wday()},Z.$$arity=0),e.def(ie,"$to_a",J=function(){var e=this;return[e.$sec(),e.$min(),e.$hour(),e.$day(),e.$month(),e.$year(),e.$wday(),e.$yday(),e.$isdst(),e.$zone()]},J.$$arity=0),e.def(ie,"$to_f",W=function(){return this.getTime()/1e3},W.$$arity=0),e.def(ie,"$to_i",Q=function(){return parseInt(this.getTime()/1e3,10)},Q.$$arity=0),d(ie,"to_s","inspect"),e.def(ie,"$tuesday?",ee=function(){return 2==this.$wday()},ee.$$arity=0),d(ie,"tv_sec","to_i"),d(ie,"tv_usec","usec"),d(ie,"utc?","gmt?"),d(ie,"gmtoff","gmt_offset"),d(ie,"utc_offset","gmt_offset"),e.def(ie,"$wday",te=function(){var e=this;return e.is_utc?e.getUTCDay():e.getDay()},te.$$arity=0),e.def(ie,"$wednesday?",re=function(){return 3==this.$wday()},re.$$arity=0),e.def(ie,"$year",ne=function(){var e=this;return e.is_utc?e.getUTCFullYear():e.getFullYear()},ne.$$arity=0),e.def(ie,"$cweek_cyear",$e=function(){var e=this,t=s,r=s,o=s,l=s,c=s,f=s,d=s,h=s,p=s;return t=u(ae,"Time").$new(e.$year(),1,1),r=t.$wday(),0,o=e.$year(),_(_(l=a(r,4))?r["$!="](0):l)?c=i(r,1):(c=i(i(r,7),1))["$=="](-8)&&(c=-1),f=$(n(e.$yday(),c),7).$ceil(),_(a(f,0))?u(ae,"Time").$new(i(e.$year(),1),12,31).$cweek_cyear():(f["$=="](53)&&(d=u(ae,"Time").$new(e.$year(),12,31),h=d.$wday(),_(_(p=a(h,3))?h["$!="](0):p)&&(f=1,o=n(o,1))),[f,o])},$e.$$arity=0),s&&"cweek_cyear"}(l[0],Date,l)},Opal.modules["corelib/struct"]=function(e){function t(e,t){return"number"==typeof e&&"number"==typeof t?e>t:e["$>"](t)}function r(e,t){return"number"==typeof e&&"number"==typeof t?e-t:e["$-"](t)}function n(e,t){return"number"==typeof e&&"number"==typeof t?e=t:e["$>="](t)}function i(e,t){return"number"==typeof e&&"number"==typeof t?e+t:e["$+"](t)}var a=e.top,o=[],l=e.nil,s=(e.$$$,e.$$),u=e.klass,c=e.hash2,f=e.truthy,d=e.send,_=e.alias;return e.add_stubs(["$require","$include","$==","$class","$!=","$upcase","$[]","$unshift","$const_name!","$map","$coerce_to!","$new","$each","$define_struct_attribute","$allocate","$initialize","$alias_method","$module_eval","$to_proc","$const_set","$raise","$<<","$members","$define_method","$instance_eval","$last","$>","$length","$-","$keys","$any?","$join","$[]=","$each_with_index","$hash","$===","$<","$-@","$size","$>=","$include?","$to_sym","$instance_of?","$__id__","$eql?","$enum_for","$name","$+","$each_pair","$inspect","$to_h","$args","$each_with_object","$flatten","$to_a","$respond_to?","$dig"]),a.$require("corelib/enumerable"),function(a,$super,o){var h,p,y,g,m,v,b,w,E,O,x,M,k,A,I,z,S,N,R,j,T=u(a,null,"Struct"),q=[T].concat(o);return T.$include(s(q,"Enumerable")),e.defs(T,"$new",h=function(t){var r,n,$,i,a,o,u=h.$$p,_=u||l,p=this,y=l,g=l;if(u&&(h.$$p=null),u&&(h.$$p=null),r=e.slice.call(arguments,1,arguments.length),null==(n=e.extract_kwargs(r)))n=c([],{});else if(!n.$$is_hash)throw e.ArgumentError.$new("expected kwargs");if($=r,null==(i=n.$$smap.keyword_init)&&(i=!1),f(t))if(f(f(y=t.$class()["$=="](s(q,"String")))?t["$[]"](0).$upcase()["$!="](t["$[]"](0)):y))$.$unshift(t),t=l;else try{t=s(q,"Opal")["$const_name!"](t)}catch(m){if(!e.rescue(m,[s(q,"TypeError"),s(q,"NameError")]))throw m;try{$.$unshift(t),t=l}finally{e.pop_exception()}}return d($,"map",[],((a=function(e){null==a.$$s||a.$$s;return null==e&&(e=l),s(q,"Opal")["$coerce_to!"](e,s(q,"String"),"to_str")}).$$s=p,a.$$arity=1,a)),g=d(s(q,"Class"),"new",[p],((o=function(){var t,r=null==o.$$s?this:o.$$s;return d($,"each",[],((t=function(e){var r=null==t.$$s?this:t.$$s;return null==e&&(e=l),r.$define_struct_attribute(e)}).$$s=r,t.$$arity=1,t)),function(t,r){var n;[t].concat(r);return e.def(t,"$new",n=function(){var t,r=this,n=l;return t=e.slice.call(arguments,0,arguments.length),(n=r.$allocate()).$$data={},d(n,"initialize",e.to_a(t)),n},n.$$arity=-1),t.$alias_method("[]","new")}(e.get_singleton_class(r),q)}).$$s=p,o.$$arity=0,o)),f(_)&&d(g,"module_eval",[],_.$to_proc()),g.$$keyword_init=i,f(t)&&s(q,"Struct").$const_set(t,g),g},h.$$arity=-2),e.defs(T,"$define_struct_attribute",p=function(e){var t,r,n=this;return n["$=="](s(q,"Struct"))&&n.$raise(s(q,"ArgumentError"),"you cannot define attributes to the Struct class"),n.$members()["$<<"](e),d(n,"define_method",[e],((t=function(){return(null==t.$$s?this:t.$$s).$$data[e]}).$$s=n,t.$$arity=0,t)),d(n,"define_method",[e+"="],((r=function(t){var n=null==r.$$s?this:r.$$s;return null==t&&(t=l),n.$$data[e]=t}).$$s=n,r.$$arity=1,r))},p.$$arity=1),e.defs(T,"$members",y=function(){var e=this,t=l;return null==e.members&&(e.members=l),e["$=="](s(q,"Struct"))&&e.$raise(s(q,"ArgumentError"),"the Struct class has no members"),e.members=f(t=e.members)?t:[]},y.$$arity=0),e.defs(T,"$inherited",g=function(e){var t,r=this,n=l;return null==r.members&&(r.members=l),n=r.members,d(e,"instance_eval",[],((t=function(){return(null==t.$$s?this:t.$$s).members=n}).$$s=r,t.$$arity=0,t))},g.$$arity=1),e.def(T,"$initialize",m=function(){var n,$,i,a,o=this,u=l,_=l,h=l,p=l;return n=e.slice.call(arguments,0,arguments.length),$=n,f(o.$class().$$keyword_init)?(u=f(_=$.$last())?_:c([],{}),f(f(h=t($.$length(),1))?h:1===$.length&&!u.$$is_hash)&&o.$raise(s(q,"ArgumentError"),"wrong number of arguments (given "+$.$length()+", expected 0)"),p=r(u.$keys(),o.$class().$members()),f(p["$any?"]())&&o.$raise(s(q,"ArgumentError"),"unknown keywords: "+p.$join(", ")),d(o.$class().$members(),"each",[],((i=function(t){var n=null==i.$$s?this:i.$$s,$=l;return null==t&&(t=l),$=[t,u["$[]"](t)],d(n,"[]=",e.to_a($)),$[r($.length,1)]}).$$s=o,i.$$arity=1,i))):(f(t($.$length(),o.$class().$members().$length()))&&o.$raise(s(q,"ArgumentError"),"struct size differs"),d(o.$class().$members(),"each_with_index",[],((a=function(t,n){var i=null==a.$$s?this:a.$$s,o=l;return null==t&&(t=l),null==n&&(n=l),o=[t,$["$[]"](n)],d(i,"[]=",e.to_a(o)),o[r(o.length,1)]}).$$s=o,a.$$arity=2,a)))},m.$$arity=-1),e.def(T,"$initialize_copy",v=function(e){var t=this;t.$$data={};var r,n,$,i=Object.keys(e.$$data);for(r=0,n=i.length;r")},S.$$arity=0),_(T,"to_s","inspect"),e.def(T,"$to_h",N=function(){var t,n=N.$$p,$=n||l,i=this;return n&&(N.$$p=null),n&&(N.$$p=null),$!==l?d(d(i,"map",[],$.$to_proc()),"to_h",e.to_a(i.$args())):d(i.$class().$members(),"each_with_object",[c([],{})],((t=function(n,$){var i=null==t.$$s?this:t.$$s,a=l;return null==n&&(n=l),null==$&&($=l),a=[n,i["$[]"](n)],d($,"[]=",e.to_a(a)),a[r(a.length,1)]}).$$s=i,t.$$arity=2,t))},N.$$arity=0),e.def(T,"$values_at",R=function(){var t,r,n,$=this;t=e.slice.call(arguments,0,arguments.length);for(var i=[],a=0,o=(r=d(r=t,"map",[],(n=function(e){null==n.$$s||n.$$s;return null==e&&(e=l),e.$$is_range?e.$to_a():e},n.$$s=$,n.$$arity=1,n)).$flatten()).length;a>>0,r=1;r>30>>>0)+r,e.state[r]&=4294967295;e.left=1,e.next=a}function r(e){var t,r=0,n=e.state;for(e.left=a,e.next=0,t=a-o+1;--t;r++)n[r]=n[r+o]^f(n[r+0],n[r+1]);for(t=o;--t;r++)n[r]=n[r+(o-a)]^f(n[r+0],n[r+1]);n[r]=n[r+(o-a)]^f(n[r+0],n[0])}function n(e){var t;return--e.left<=0&&r(e),t=e.state[e.next++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,(t^=t>>>18)>>>0}function $(e,t){return(67108864*(e>>>=5)+(t>>>=6))*(1/9007199254740992)}function i(e){return $(n(e),n(e))}var a=624,o=397,l=2567483615,s=2147483648,u=2147483647,c=function(e,t){return e&s|t&u},f=function(e,t){return c(e,t)>>>1^(1&t?l:0)};return{genrand_real:i,init:e}}(),function(r,$super,l){var s=i(r,null,"Random"),u=[s].concat(l),c=n,f=Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1;return e.const_set(u[0],"MERSENNE_TWISTER_GENERATOR",{new_seed:function(){return Math.round(Math.random()*f)},reseed:function(e){return o.init(e)},rand:function(e){return o.genrand_real(e)}}),c=[$(u,"MERSENNE_TWISTER_GENERATOR")],a(s,"generator=",e.to_a(c)),c[t(c.length,1)]}(r[0],0,r)},Opal.modules["corelib/random"]=function(e){var t=e.top,r=[],n=e.nil,$=e.$$$,i=e.$$,a=e.falsy,o=e.klass,l=e.truthy,s=e.send;return e.add_stubs(["$require","$attr_reader","$to_int","$raise","$new_seed","$coerce_to!","$reseed","$rand","$seed","$bytes","$===","$==","$state","$_verify_count","$encode","$join","$new","$chr","$random_number","$random_float","$const_defined?","$const_set"]),t.$require("corelib/random/formatter"),function(t,$super,r){var u,c,f,d,_,h,p,y,g,m,v,b,w,E,O=o(t,null,"Random"),x=[O].concat(r);O.$attr_reader("seed","state"),e.defs(O,"$_verify_count",u=function(e){var t=this;return a(e)&&(e=16),"number"!=typeof e&&(e=e.$to_int()),e<0&&t.$raise(i(x,"ArgumentError"),"negative string size (or size too big)"),e=Math.floor(e)},u.$$arity=1),e.def(O,"$initialize",c=function(e){var t=this;return null==e&&(e=i(x,"Random").$new_seed()),e=i(x,"Opal")["$coerce_to!"](e,i(x,"Integer"),"to_int"),t.state=e,t.$reseed(e)},c.$$arity=-1),e.def(O,"$reseed",f=function(t){var r=this;return r.seed=t,r.$rng=e.$$rand.reseed(t)},f.$$arity=1),e.defs(O,"$new_seed",d=function(){return e.$$rand.new_seed()},d.$$arity=0),e.defs(O,"$rand",_=function(e){return i(x,"DEFAULT").$rand(e)},_.$$arity=-1),e.defs(O,"$srand",h=function(e){var t=n;return null==e&&(e=i(x,"Random").$new_seed()),e=i(x,"Opal")["$coerce_to!"](e,i(x,"Integer"),"to_int"),t=i(x,"DEFAULT").$seed(),i(x,"DEFAULT").$reseed(e),t},h.$$arity=-1),e.defs(O,"$urandom",p=function(e){return $("::","SecureRandom").$bytes(e)},p.$$arity=1),e.def(O,"$==",y=function(e){var t=this,r=n;return!!l(i(x,"Random")["$==="](e))&&(l(r=t.$seed()["$=="](e.$seed()))?t.$state()["$=="](e.$state()):r)},y.$$arity=1),e.def(O,"$bytes",g=function(e){var t,r=this;return e=i(x,"Random").$_verify_count(e),s(i(x,"Array"),"new",[e],(t=function(){return(null==t.$$s?this:t.$$s).$rand(255).$chr()},t.$$s=r,t.$$arity=0,t)).$join().$encode("ASCII-8BIT")},g.$$arity=1),e.defs(O,"$bytes",m=function(e){return i(x,"DEFAULT").$bytes(e)},m.$$arity=1),e.def(O,"$rand",v=function(e){return this.$random_number(e)},v.$$arity=-1),e.def(O,"$random_float",b=function(){var t=this;return t.state++,e.$$rand.rand(t.$rng)},b.$$arity=0),e.defs(O,"$random_float",w=function(){return i(x,"DEFAULT").$random_float()},w.$$arity=0),e.defs(O,"$generator=",E=function(t){var r=this;return e.$$rand=t,l(r["$const_defined?"]("DEFAULT"))?i(x,"DEFAULT").$reseed():r.$const_set("DEFAULT",r.$new(r.$new_seed()))},E.$$arity=1)}(r[0],0,r),t.$require("corelib/random/mersenne_twister")},Opal.modules["corelib/unsupported"]=function(e){function t(t){switch(e.config.unsupported_features_severity){case"error":l(a,"Kernel").$raise(l(a,"NotImplementedError"),t);break;case"warning":r(t)}}function r(e){f[e]||(f[e]=!0,i.$warn(e))}var n,$,i=e.top,a=[],o=e.nil,l=(e.$$$,e.$$),s=e.klass,u=e.module,c=e.alias;e.add_stubs(["$raise","$warn","$%"]);var f={};return function(t,$super,r){var n,$,i,a,o,u,c,f,d,_,h,p,y,g,m,v,b,w,E,O,x,M,k,A=s(t,null,"String"),I=[A].concat(r),z="String#%s not supported. Mutable String methods are not supported in Opal.";e.def(A,"$<<",n=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("<<"))},n.$$arity=-1),e.def(A,"$capitalize!",$=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("capitalize!"))},$.$$arity=-1),e.def(A,"$chomp!",i=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("chomp!"))},i.$$arity=-1),e.def(A,"$chop!",a=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("chop!"))},a.$$arity=-1),e.def(A,"$downcase!",o=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("downcase!"))},o.$$arity=-1),e.def(A,"$gsub!",u=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("gsub!"))},u.$$arity=-1),e.def(A,"$lstrip!",c=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("lstrip!"))},c.$$arity=-1),e.def(A,"$next!",f=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("next!"))},f.$$arity=-1),e.def(A,"$reverse!",d=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("reverse!"))},d.$$arity=-1),e.def(A,"$slice!",_=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("slice!"))},_.$$arity=-1),e.def(A,"$squeeze!",h=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("squeeze!"))},h.$$arity=-1),e.def(A,"$strip!",p=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("strip!"))},p.$$arity=-1),e.def(A,"$sub!",y=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("sub!"))},y.$$arity=-1),e.def(A,"$succ!",g=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("succ!"))},g.$$arity=-1),e.def(A,"$swapcase!",m=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("swapcase!"))},m.$$arity=-1),e.def(A,"$tr!",v=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("tr!"))},v.$$arity=-1),e.def(A,"$tr_s!",b=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("tr_s!"))},b.$$arity=-1),e.def(A,"$upcase!",w=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("upcase!"))},w.$$arity=-1),e.def(A,"$prepend",E=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("prepend"))},E.$$arity=-1),e.def(A,"$[]=",O=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("[]="))},O.$$arity=-1),e.def(A,"$clear",x=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("clear"))},x.$$arity=-1),e.def(A,"$encode!",M=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("encode!"))},M.$$arity=-1),e.def(A,"$unicode_normalize!",k=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(I,"NotImplementedError"),z["$%"]("unicode_normalize!"))},k.$$arity=-1)}(a[0],0,a),function(r,n){var $,i,a=u(r,"Kernel"),o=([a].concat(n),"Object freezing is not supported by Opal");e.def(a,"$freeze",$=function(){var e=this;return t(o),e},$.$$arity=0),e.def(a,"$frozen?",i=function(){return t(o),!1},i.$$arity=0)}(a[0],a),function(r,n){var $,i,a,o=u(r,"Kernel"),l=([o].concat(n),"Object tainting is not supported by Opal");e.def(o,"$taint",$=function(){var e=this;return t(l),e},$.$$arity=0),e.def(o,"$untaint",i=function(){var e=this;return t(l),e},i.$$arity=0),e.def(o,"$tainted?",a=function(){return t(l),!1},a.$$arity=0)}(a[0],a),function(t,$super,r){var n,$,i,a,l=s(t,null,"Module");[l].concat(r);e.def(l,"$public",n=function(){var t=this;return 0===e.slice.call(arguments,0,arguments.length).length&&(t.$$module_function=!1),o},n.$$arity=-1),c(l,"private","public"),c(l,"protected","public"),c(l,"nesting","public"),e.def(l,"$private_class_method",$=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t},$.$$arity=-1),c(l,"public_class_method","private_class_method"),e.def(l,"$private_method_defined?",i=function(){return!1},i.$$arity=1),e.def(l,"$private_constant",a=function(){return e.slice.call(arguments,0,arguments.length),o},a.$$arity=-1),c(l,"protected_method_defined?","private_method_defined?"),c(l,"public_instance_methods","instance_methods"),c(l,"public_instance_method","instance_method"),c(l,"public_method_defined?","method_defined?")}(a[0],0,a),function(t,r){var n,$=u(t,"Kernel");[$].concat(r);e.def($,"$private_methods",n=function(){return e.slice.call(arguments,0,arguments.length),[]},n.$$arity=-1),c($,"private_instance_methods","private_methods")}(a[0],a),function(t,r){var n,$=u(t,"Kernel"),i=[$].concat(r);e.def($,"$eval",n=function(){var t=this;return e.slice.call(arguments,0,arguments.length),t.$raise(l(i,"NotImplementedError"),"To use Kernel#eval, you must first require 'opal-parser'. See https://github.com/opal/opal/blob/"+l(i,"RUBY_ENGINE_VERSION")+"/docs/opal_parser.md for details.")},n.$$arity=-1)}(a[0],a),e.defs(i,"$public",n=function(){return e.slice.call(arguments,0,arguments.length),o},n.$$arity=-1),e.defs(i,"$private",$=function(){return e.slice.call(arguments,0,arguments.length),o},$.$$arity=-1),o&&"private"},Opal.queue(function(e){var t=e.top;e.nil,e.$$$,e.$$;return e.add_stubs(["$require","$autoload"]),t.$require("opal/base"),t.$require("opal/mini"),t.$require("corelib/main"),t.$require("corelib/kernel/format"),t.$require("corelib/string/encoding"),t.$autoload("Math","corelib/math"),t.$require("corelib/complex/base"),t.$autoload("Complex","corelib/complex"),t.$require("corelib/rational/base"),t.$autoload("Rational","corelib/rational"),t.$require("corelib/time"),t.$autoload("Struct","corelib/struct"),t.$require("corelib/dir"),t.$autoload("File","corelib/file"),t.$require("corelib/process/base"),t.$autoload("Process","corelib/process"),t.$autoload("Random","corelib/random"),t.$require("corelib/unsupported")}); \ No newline at end of file diff --git a/lib/hyperstack-compiler.rb b/lib/hyperstack-compiler.rb index dd2f1ff..bfd05c6 100644 --- a/lib/hyperstack-compiler.rb +++ b/lib/hyperstack-compiler.rb @@ -1,7 +1,10 @@ # frozen_string_literal: true +require 'corelib/string/unpack' require 'opal/compiler' +`window.HyperstackOpts = {'transport': 'none'}` + Document.ready? do # rubocop:disable Lint/RescueException # need to catch and report all exceptions